Yapılandırılmış kaynaklardan veri çıkarma

Python ile ETL ve ELT

Jake Roach

Data Engineer

Kaynak sistemler

Bu derste:

  • CSV dosyaları
  • Parquet dosyaları
  • JSON dosyaları
  • SQL veritabanları

Veri ayrıca şuralardan gelir:

  • API’ler
  • Veri gölleri
  • Veri ambarları
  • Web kazıma
  • ... ve daha pek çoğu!
Python ile ETL ve ELT

Parquet dosyalarını okuma

Parquet dosyaları:

  • Alan depolama ve getirmede verimli, açık kaynaklı sütun odaklı biçim
  • CSV ile çalışmaya benzer
import pandas as pd

# Parquet dosyasını belleğe oku
raw_stock_data = pd.read_parquet("raw_stock_data.parquet", engine="fastparquet")
1 https://www.databricks.com/glossary/what-is-parquet
Python ile ETL ve ELT

SQL veritabanlarına bağlanma

  • Veriler SQL veritabanlarından pandas DataFrame’e çekilebilir
  • Bir bağlantı URI’si ile engine oluşturup veritabanına bağlanmak gerekir
import sqlalchemy
import pandas as pd

# Connection URI: schema_identifier://username:password@host:port/db
connection_uri = "postgresql+psycopg2://repl:password@localhost:5432/market"
db_engine = sqlalchemy.create_engine(connection_uri)
# SQL veritabanını sorgula
raw_stock_data = pd.read_sql("SELECT * FROM raw_stock_data LIMIT 10", db_engine)
Python ile ETL ve ELT

Modülerlik

Mantığı işlevlere ayırma

  • Boru hattında okunabilirliği artırır
  • "Kendini tekrar etme" ilkesine uyar
  • Sorun gidermeyi hızlandırır
def extract_from_sql(connection_uri, query):
    # Engine oluştur, veriyi sorgula ve DataFrame döndür
    db_engine = sqlalchemy.create_engine(connection_uri)
    return pd.read_sql(query, db_engine)

extract_from_sql("postgresql+psycopg2://.../market", "SELECT ... LIMIT 10;")
Python ile ETL ve ELT

Hadi pratik yapalım!

Python ile ETL ve ELT

Preparing Video For Download...