使用 Python 的 ETL 和 ELT
Jake Roach
Data Engineer
$$

……负责将数据从源端移动到目标端,并在过程中进行转换。
$$

pandas$$
$$
$$
$$
def load(data_frame, target_table):
# 一些自定义的 Python 逻辑,将数据加载到 SQL
data_frame.to_sql(name=target_table, con=POSTGRES_CONNECTION)
print(f"Loading data to the {target_table} table")
# 现在运行数据流水线
extracted_data = extract(file_name="raw_data.csv")
transformed_data = transform(data_frame=extracted_data)
load(data_frame=transformed_data, target_table="cleaned_data")
Extracting data from raw_data.csv
Transforming data to remove 'null' records
Loading data to the cleaned_data table
...
def transform(source_table, target_table):
data_warehouse.run_sql("""
CREATE TABLE {target_table} AS
SELECT
<field-name>, <field-name>, ...
FROM {source_table};
""")
# 与 ETL 流水线类似,依次调用提取、加载和转换函数
extracted_data = extract(file_name="raw_data.csv")
load(data_frame=extracted_data, table_name="raw_data")
transform(source_table="raw_data", target_table="cleaned_data")
$$

使用 Python 的 ETL 和 ELT