Base de datos en python
Conceptos generales
Bases de datos Relacionales y No relacionales
DBMS (Database Management System):
SQL (Structured Query Language): Lenguaje de consulta
Base de datos Relacionales
Más populares: Oracle, MySQL, PostgreSQL, Microsoft SQL Server, SQlite, DB2
Ventajas y desventajas
Ventajas
Desventajas:
No relacionales (Schema agnostic)
Ventajas y desventajas
Ventajas
Desventajas
Comparación de infraestructuras
• Data lakes are primarily about storage and can hold any data in any format, but they often require separate systems for processing and querying.
• Data warehouses are designed specifically for structured, cleaned data and are optimized for high-speed analytics.
• Lakehouses provide the unified storage of a data lake but add structured, queryable, and transactional features like a data warehouse, enabling direct analytics and machine learning. They provide the flexibility to store and work with raw, semi-structured, and unstructured data, while also supporting data analytics and machine learning directly on the data.
SQlite en python
Object-Relational Mappers (ORM)
Instalación de BD para pruebas
SQLite3 / SQLALchemy
Docker
postgres
docker pull postgres
docker run -d \
--name some-postgres \
-e POSTGRES_PASSWORD=mysecretpassword \
-e PGDATA=/var/lib/postgresql/data/pgdata \
-v /custom/mount:/var/lib/postgresql/data \
postgres
MongoDB
En la carpeta del repo crear la carpeta data/mongo
docker pull mongo
docker run -v /Users/julian/Documents/repos/SQL/data/mongo:/data/db -p 27017:27017 mongo
pip install pymongo
pip install mongoengine
Elasticsearch
En la carpeta del repo crear la carpeta data/elasticsearch
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.15.2
docker run -p 127.0.0.1:9200:9200 -p 127.0.0.1:9300:9300 -e "discovery.type=single-node" -v /Users/julian/Documents/repos/SQL/data/elasticsearch:/usr/share/elasticsearch/data docker.elastic.co/elasticsearch/elasticsearch:7.15.2
pip install elasticsearch-dsl
Django → tutorial
pip install django
django-admin startproject django_test
python manage.py runserver 8080
python manage.py migrate
python manage.py createsuperuser
python manage.py startapp polls
Seguir el tutorial