Introducere în baze de date

Ingestie eficientă a datelor cu pandas

Amany Mahfouz

Instructor

Baze de date relaționale

  • Datele despre entități sunt organizate în tabele
  • Fiecare rând sau înregistrare reprezintă o instanță a unei entități
  • Fiecare coloană conține informații despre un atribut
  • Tabelele pot fi legate între ele prin chei unice
  • Suportă volume mari de date, utilizatori simultani și controale de calitate
  • Tipurile de date sunt specificate pentru fiecare coloană
  • SQL (Structured Query Language) pentru interacțiunea cu bazele de date
Ingestie eficientă a datelor cu pandas

Baze de date relaționale comune

Sigla Microsoft SQL Server

Sigla Oracle

  • Bazele de date SQLite sunt fișiere de calculator

Sigla PostgreSQL

Sigla SQLite

Ingestie eficientă a datelor cu pandas

Conectarea la baze de date

  • Proces în doi pași:
    1. Crearea unei conexiuni la baza de date
    2. Interogarea bazei de date

Ilustrație bază de date

Ingestie eficientă a datelor cu pandas

Crearea unui motor de baze de date

Sigla SQLAlchemy

  • create_engine() din sqlalchemy creează un motor pentru gestionarea conexiunilor la baze de date
    • Necesită un URL de tip șir de caractere al bazei de date
    • Format URL SQLite: sqlite:///filename.db
Ingestie eficientă a datelor cu pandas

Interogarea bazelor de date

  • pd.read_sql(query, engine) pentru a încărca date dintr-o bază de date
  • Argumente
    • query: Șir de caractere cu interogarea SQL sau numele tabelului
    • engine: Obiect de tip conexiune/motor de baze de date
Ingestie eficientă a datelor cu pandas

Recapitulare SQL: SELECT

  • Utilizată pentru a interoga date dintr-o bază de date
  • Sintaxă de bază:
    SELECT [column_names] FROM [table_name];
    
  • Pentru a obține toate datele dintr-un tabel:
    SELECT * FROM [table_name];
    
  • Stil cod: cuvinte cheie cu MAJUSCULE, punct și virgulă (;) la sfârșitul instrucțiunii
Ingestie eficientă a datelor cu pandas

Obținerea datelor dintr-o bază de date

# Load pandas and sqlalchemy's create_engine
import pandas as pd
from sqlalchemy import create_engine

# Create database engine to manage connections engine = create_engine("sqlite:///data.db")
# Load entire weather table by table name weather = pd.read_sql("weather", engine)
Ingestie eficientă a datelor cu pandas
# Create database engine to manage connections
engine = create_engine("sqlite:///data.db")

# Load entire weather table with SQL weather = pd.read_sql("SELECT * FROM weather", engine)
print(weather.head())
       station                         name  latitude  ...   prcp  snow  tavg tmax  tmin
0  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.00   0.0         52    42
1  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.00   0.0         48    39
2  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.00   0.0         48    42
3  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.00   0.0         51    40
4  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.75   0.0         61    50

[5 rows x 13 columns]
Ingestie eficientă a datelor cu pandas

Să exersăm!

Ingestie eficientă a datelor cu pandas

Preparing Video For Download...