(04) About
Statistics first.
Then the plumbing.
with DAG(
dag_id="due_fx_elt",
schedule="15 * * * *",
catchup=False,
default_args={"retries": 3, "retry_delay": timedelta(minutes=5)},
) as dag:
extract = PostgresToGCSOperator(
task_id="extract_transactions",
sql=INCREMENTAL_SQL, # bounded by data_interval_start
bucket=RAW_BUCKET,
export_format="parquet",
)
load = GCSToBigQueryOperator(
task_id="load_staging",
write_disposition="WRITE_TRUNCATE",
destination_project_dataset_table=f"{PROJECT}.staging.transactions",
)
merge = BigQueryInsertJobOperator(
task_id="merge_core",
configuration={"query": {"query": MERGE_SQL, "useLegacySql": False}},
)
transform = BashOperator(task_id="dbt_run", bash_command="dbt build --target prod")
extract >> load >> merge >> transform
Abuja, NG
WAT / UTC+1
I came to data engineering from statistics, which is why I care less about the dashboard and more about whether the number behind it can be trusted at 3am. I build pipelines that are boring on purpose: idempotent, observable, and easy for the next person to read.
I’m in Abuja and work with teams anywhere.
B.Sc. Statistics — University of Nigeria, Nsukka
Professional Diploma, Data Engineering — AltSchool Africa
DataCamp Professional Data Engineer — certified