Data Engineering��Building Pipelines / Plumbing�Operationalization / DataOps
A Very Pragmatic Topic
In the “real world” you don’t deal with data sets, you deal with data feeds
When data arrives, you need to “do the right thing”
Things to consider
How does data arrive?
Push:
What do you do upon Data Arrival?
Isn’t this all Data Transformation?
How do we automate the work?
What about quality and exceptions
Agenda
Two Slides on Pub-Sub / Message Queues
Current Landscape
Can I just use a transactional database for this?
It’s doable in SQL, but DBMSs are not tuned for this workload.
Two Slides on Workflow Systems
Example: Apache Airflow
Dataflow: Spark, Google Dataflow, etc.
Advantage of Algebras over SQL for Transformation
Data Pipelines in SQL: dbt
A Basic dbt Repo 1/4
A Basic dbt Repo 2/4
A Basic dbt Repo 3/4
A Basic dbt Repo 4/4
A Simple dbt project for Project 2
A Simple Model
Source References
Source References
Model Materialization:�Table
Model Materialization:�Incremental
Model Materialization:�Incremental
ref and pipelines
Lineage DAG in dbt docs
Jinja Macros
Running Your Models
Tests
Schema Tests
“Data” Tests
Running Tests
How to Debug Models & Tests
Look in:
Transactional Concerns in dbt
DataOps: CI Testing
Dev/Test/Prod