ETL 및 ELT 파이프라인 구축

Python으로 하는 ETL과 ELT

Jake Roach

Data Engineer

CSV 파일에서 데이터 추출하기

import pandas as pd

# Read in the CSV file to a DataFrame
data_frame = pd.read_csv("raw_data.csv")
# Output the first few rows
data_frame.head()
   name         num_firms   total_income
0  Advertising     58         3892.41
1  Apparel         39         5422.69
...
49 Trucking        35         17324.36

read_csv()

  • 파일 경로를 받아 DataFrame을 반환합니다
  • delimiter, header, engine

$$

.head()

  • DataFrame의 처음 n개 행을 출력합니다
Python으로 하는 ETL과 ELT

DataFrame 필터링하기

   name         num_firms   total_income
0  Advertising     58         3892.41
1  Apparel         39         5422.69
...
49 Trucking        35         17324.36

         name         num_firms
      1  Apparel         39
      37 Apparel         61

# First, by rows
data_frame.loc[data_frame["name"] == "Apparel", :]

# Then, by columns
data_frame.loc[:, ["name", "num_firms"]]

.loc

  • DataFrame을 필터링합니다
  • :은 "전체"를 의미합니다
Python으로 하는 ETL과 ELT

DataFrame을 CSV 파일로 저장하기

# Write a DataFrame to a .csv file
data_frame.to_csv("cleaned_data.csv")

.to_csv()

  • path를 받아 해당 경로에 저장된 파일로부터 DataFrame을 생성합니다
  • 출력을 커스터마이즈하는 다른 매개변수도 사용할 수 있습니다

$$

다른 옵션으로는:

.to_json(), .to_excel(), .to_sql()

Python으로 하는 ETL과 ELT

SQL 쿼리 실행하기

data_warehouse.execute(  # Use Python clients or other tools to run SQL queries
    """
    CREATE TABLE total_sales AS 
        SELECT
            ds,
            SUM(sales)
        FROM raw_sales_data
        GROUP BY ds;
    """
)
  • .execute()와 같은 도구로 SQL 쿼리를 실행합니다
Python으로 하는 ETL과 ELT

모두 종합해 봅시다!

# Define extract(), transform(), and load() functions
...

def transform(data_frame, value):
    return data_frame.loc[data_frame["name"] == value, ["name", "num_firms"]]

# First, extract data from a .csv
extracted_data = extract(file_name="raw_data.csv")

# Then, transform the `extracted_data`
transformed_data = transform(data_frame=extracted_data, value="Apparel")

# Finally, load the `transformed_data`
load(data_frame=transformed_data, file_name="cleaned_data.csv")
Python으로 하는 ETL과 ELT

연습해 봅시다!

Python으로 하는 ETL과 ELT

Preparing Video For Download...