การดึงข้อมูลจากแหล่งข้อมูลแบบมีโครงสร้าง

ETL and ELT ใน Python

Jake Roach

Data Engineer

ระบบต้นทางข้อมูล

ในคอร์สนี้:

  • ไฟล์ CSV
  • ไฟล์ Parquet
  • ไฟล์ JSON
  • ฐานข้อมูล SQL

ข้อมูลยังมาจากแหล่งอื่นๆ ด้วย:

  • APIs
  • Data lakes
  • Data warehouses
  • Web scraping
  • ... และอีกมากมาย!
ETL and ELT ใน Python

การอ่านไฟล์ parquet

ไฟล์ Parquet:

  • รูปแบบไฟล์แบบ open source ที่จัดเก็บข้อมูลตามคอลัมน์ ออกแบบมาเพื่อการจัดเก็บและเรียกดูข้อมูลอย่างมีประสิทธิภาพ
  • ใช้งานคล้ายกับไฟล์ CSV
import pandas as pd

# Read the parquet file into memory
raw_stock_data = pd.read_parquet("raw_stock_data.parquet", engine="fastparquet")
1 https://www.databricks.com/glossary/what-is-parquet
ETL and ELT ใน Python

การเชื่อมต่อกับฐานข้อมูล SQL

  • ดึงข้อมูลจากฐานข้อมูล SQL เข้าสู่ DataFrame ของ pandas ได้
  • ต้องใช้ connection URI เพื่อสร้าง engine และเชื่อมต่อกับฐานข้อมูล
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)
# Query the SQL database
raw_stock_data = pd.read_sql("SELECT * FROM raw_stock_data LIMIT 10", db_engine)
ETL and ELT ใน Python

การแบ่งเป็นโมดูล

การแยกตรรกะออกเป็นฟังก์ชัน

  • เพิ่มความสามารถในการอ่านของ pipeline
  • เป็นไปตามหลักการ "don't repeat yourself"
  • ช่วยให้แก้ไขปัญหาได้รวดเร็วขึ้น
def extract_from_sql(connection_uri, query):
    # Create an engine, query data and return DataFrame
    db_engine = sqlalchemy.create_engine(connection_uri)
    return pd.read_sql(query, db_engine)

extract_from_sql("postgresql+psycopg2://.../market", "SELECT ... LIMIT 10;")
ETL and ELT ใน Python

มาฝึกกันเถอะ!

ETL and ELT ใน Python

Preparing Video For Download...