Data Lake Platform — Quick Reference
Build production data lakes and lakehouses: ingest from any source, transform with SQL, store in open formats, query at scale.
When to Use This Skill
- Design data lake/lakehouse architecture (medallion, data mesh, lambda/kappa)
- Set up data ingestion pipelines (dlt, Airbyte)
- Build SQL transformation layers (SQLMesh, dbt)
- Choose and configure table formats (Iceberg, Delta Lake, Hudi)
- Deploy analytical query engines (ClickHouse, DuckDB, Doris, StarRocks)
- Implement streaming pipelines (Kafka, Flink, Spark Streaming)
- Set up orchestration (Dagster, Airflow, Prefect)
- Implement data quality and governance (Great Expectations, DataHub)
- Optimize storage costs and query performance
- Migrate from legacy warehouse to lakehouse
Quick Reference
| Layer |
Tools |
Templates |
When to Use |
| Ingestion |
dlt, Airbyte |
templates/ingestion/ |
Extract from APIs, databases, files |
| Transformation |
SQLMesh, dbt |
templates/transformation/ |
SQL-based data modeling |
| Storage |
Iceberg, Delta, Hudi |
templates/storage/ |
Open table formats with ACID |
| Query Engines |
ClickHouse, DuckDB, Doris |
templates/query-engines/ |
Fast analytical queries |
| Streaming |
Kafka, Flink, Spark |
templates/streaming/ |
Real-time data pipelines |
| Orchestration |
Dagster, Airflow, Prefect |
templates/orchestration/ |
Pipeline scheduling |
| Cloud |
Snowflake, BigQuery, Redshift |
templates/cloud/ |
Managed warehouses |
| Visualization |
Metabase, Superset, Grafana |
templates/visualization/ |
Dashboards, BI, monitoring |
Decision Tree: Choosing Your Stack
Data Lake Architecture?
├─ Self-hosted priority?
│ ├─ OLAP queries? → ClickHouse (Yandex origin, Russian-friendly)
│ ├─ Embedded analytics? → DuckDB (in-process, no server)
│ ├─ Complex joins + updates? → Apache Doris or StarRocks
│ └─ Data lakehouse? → Iceberg + Trino/Spark
│
├─ Cloud-native?
│ ├─ AWS? → Redshift, Athena + Iceberg
│ ├─ GCP? → BigQuery
│ └─ Multi-cloud? → Snowflake
│
├─ Ingestion tool?
│ ├─ Python-first, simple? → dlt (recommended)
│ ├─ GUI, many connectors? → Airbyte
│ └─ Enterprise, CDC? → Debezium, Fivetran
│
├─ Transformation tool?
│ ├─ SQL-first, CI/CD? → SQLMesh (recommended)
│ ├─ Large community? → dbt
│ └─ Python transformations? → Pandas + Great Expectations
│
├─ Table format?
│ ├─ Multi-engine reads? → Apache Iceberg (industry standard)
│ ├─ Databricks ecosystem? → Delta Lake
│ └─ CDC, real-time updates? → Apache Hudi
│
├─ Streaming?
│ ├─ Event streaming? → Apache Kafka
│ ├─ Stream processing? → Apache Flink
│ └─ Batch + streaming? → Spark Streaming
│
└─ Orchestration?
├─ Data-aware, modern? → Dagster (recommended)
├─ Mature, many integrations? → Airflow
└─ Python-native, simple? → Prefect
Architecture Patterns
Pattern 1: Medallion Architecture (Bronze/Silver/Gold)
Use when: Building enterprise data lake with clear data quality tiers.
Sources → Bronze (raw) → Silver (cleaned) → Gold (business-ready)
↓ ↓ ↓
Iceberg Iceberg Iceberg
append-only deduped aggregated
Tools: dlt → SQLMesh → ClickHouse/DuckDB → Metabase
See templates/cross-platform/template-medallion-architecture.md
Pattern 2: Data Mesh (Domain-Oriented)
Use when: Large organization, multiple domains, decentralized ownership.
Domain A ──→ Domain A Lake ──→ Data Products
Domain B ──→ Domain B Lake ──→ Data Products
Domain C ──→ Domain C Lake ──→ Data Products
↓
Federated Catalog (DataHub/OpenMetadata)
Tools: dlt (per domain) → SQLMesh → Iceberg → DataHub
See resources/architecture-patterns.md
Pattern 3: Lambda/Kappa (Streaming + Batch)
Use when: Real-time + historical analytics required.
Lambda: Kafka → Flink (speed layer) ───→ Serving
↓ ↑
Batch (Spark) → Iceberg ───────────┘
Kappa: Kafka → Flink → Iceberg → Serving (single path)
Tools: Kafka → Flink → Iceberg → ClickHouse
See resources/streaming-patterns.md
Core Capabilities
1. Data Ingestion (dlt, Airbyte)
Extract data from any source: REST APIs, databases, files, SaaS platforms.
dlt (Python-native, recommended):
- Simple pip install, Python scripts
- 100+ verified sources
- Incremental loading, schema evolution
- Destinations: ClickHouse, DuckDB, Snowflake, BigQuery, Postgres
Airbyte (GUI, connectors):
- 300+ pre-built connectors
- Self-hosted or cloud
- CDC replication
- Declarative YAML configuration
See templates/ingestion/dlt/ and templates/ingestion/airbyte/
2. SQL Transformation (SQLMesh, dbt)
Build data models with SQL, manage dependencies, test data quality.
SQLMesh (recommended):
- Virtual data environments
- Automatic change detection
- Plan/apply workflow (like Terraform)
- Built-in unit testing
dbt (popular alternative):
- Large community
- Many packages
- Cloud offering
- Jinja templating
See templates/transformation/sqlmesh/ and templates/transformation/dbt/
3. Open Table Formats (Iceberg, Delta, Hudi)
Store data in open formats with ACID transactions, time travel, schema evolution.
Apache Iceberg (recommended):
- Multi-engine support (Spark, Trino, Flink, ClickHouse)
- Hidden partitioning
- Snapshot isolation
- Industry momentum (Snowflake, Databricks, AWS)
Delta Lake:
- Databricks native
- Z-ordering optimization
- Change data feed
Apache Hudi:
- Optimized for CDC/updates
- Record-level indexing
- Near real-time ingestion
See templates/storage/
4. Query Engines (ClickHouse, DuckDB, Doris, StarRocks)
Fast analytical queries on large datasets.
ClickHouse (self-hosted priority):
- 100+ GB/s scan speed
- Columnar storage + compression
- Russian origin (Yandex), fully open source
- MergeTree engine family
DuckDB (embedded):
- In-process, no server
- Parquet/CSV native
- Python/R integration
- Laptop-scale analytics
Apache Doris / StarRocks:
- MPP architecture
- Complex joins
- Real-time updates
- MySQL protocol compatible
See templates/query-engines/
5. Streaming (Kafka, Flink, Spark)
Real-time data pipelines and stream processing.
Apache Kafka:
- Event streaming platform
- Durable log storage
- Connect ecosystem
Apache Flink:
- True stream processing
- Exactly-once semantics
- Stateful computations
Spark Streaming:
- Micro-batch processing
- Unified batch + stream API
- ML integration
See templates/streaming/
6. Orchestration (Dagster, Airflow, Prefect)
Schedule and monitor data pipelines.
Dagster (recommended):
- Software-defined assets
- Data-aware scheduling
- Built-in observability
- Type system
Airflow:
- Mature, battle-tested
- Many operators
- Large community
Prefect:
- Python-native
- Hybrid execution
- Simple deployment
See templates/orchestration/
7. Visualization (Metabase, Superset, Grafana)
Business intelligence dashboards and operational monitoring.
Metabase (business users):
- Intuitive question builder
- Self-serve analytics
- Signed embedding
- Caching and permissions
Apache Superset (analysts):
- SQL Lab for exploration
- Advanced visualizations
- Row-level security
- Custom chart plugins
Grafana (infrastructure):
- Time-series dashboards
- Real-time alerting
- Prometheus/InfluxDB native
- Data pipeline monitoring
See templates/visualization/ and resources/bi-visualization-patterns.md
Navigation
Resources (Deep Guides)
| Resource |
Description |
| architecture-patterns.md |
Medallion, data mesh, lakehouse design |
| ingestion-patterns.md |
dlt vs Airbyte, CDC, incremental loading |
| transformation-patterns.md |
SQLMesh vs dbt, testing, CI/CD |
| storage-formats.md |
Iceberg vs Delta vs Hudi comparison |
| query-engine-patterns.md |
ClickHouse, DuckDB, Doris optimization |
| streaming-patterns.md |
Kafka, Flink, Spark Streaming |
| orchestration-patterns.md |
Dagster, Airflow, Prefect comparison |
| governance-catalog.md |
DataHub, OpenMetadata, lineage |
| cost-optimization.md |
Storage, compute, query optimization |
| operational-playbook.md |
Monitoring, incidents, migrations |
| bi-visualization-patterns.md |
Metabase, Superset, Grafana operations |
Templates (Copy-Paste Ready)
| Category |
Templates |
| Cross-platform |
medallion, pipeline, incremental, quality, schema, partitioning, cost, migration |
| Ingestion/dlt |
pipeline, rest-api, database-source, incremental, warehouse-loading |
| Ingestion/Airbyte |
connection, custom-connector |
| Transformation/SQLMesh |
project, model, incremental, dag, testing, production, security |
| Transformation/dbt |
project, incremental, testing |
| Storage |
iceberg-table, iceberg-maintenance, delta-table, hudi-table, parquet-optimization |
| Query Engines |
clickhouse (setup, ingestion, optimization, materialized-views, replication), duckdb, doris, starrocks |
| Streaming |
kafka-ingestion, flink-processing, spark-streaming |
| Orchestration |
dagster-pipeline, airflow-dag, prefect-flow |
| Cloud |
snowflake-setup, bigquery-setup, redshift-setup |
| Visualization |
metabase (connection-checklist, dashboard-request, incident-playbook) |
Data Quality & Governance
templates/cross-platform/template-ingestion-governance-checklist.md — Intake checklist for new datasets (contracts, access control, operability, cost).
templates/cross-platform/template-data-quality-backfill-runbook.md — Runbook for data incidents, backfills, and safe reprocessing.
templates/cross-platform/template-data-quality-governance.md — Comprehensive checklist for production data platforms.
Key Sections
- Data Quality Contracts — Schema, freshness SLAs, volume bounds, uniqueness
- Governance & Access Control — RBAC, row/column security, classification
- Security — Encryption at rest/transit, network isolation, audit trails
- Reliability — Backfill procedures, idempotency patterns, reprocessing
- Cost Control — Storage optimization, compute governance, monitoring
Do / Avoid
GOOD: Do
- Define data contracts before building pipelines
- Implement quality gates at each tier (Bronze → Silver → Gold)
- Use idempotent operations for all transformations
- Enable audit logging from day one
- Plan for backfills in pipeline design
- Document SLAs for every critical table
BAD: Avoid
- Skipping data quality validation to "move fast"
- Storing PII without classification and access controls
- Creating pipelines that can't be re-run safely
- Using shared service accounts without audit trails
- Ignoring cost controls until the bill arrives
- Manual schema changes without version control
Anti-Patterns
| Anti-Pattern |
Problem |
Fix |
| Schema on read only |
Quality issues discovered too late |
Add schema validation at Bronze layer |
| No freshness SLA |
Stale data used in decisions |
Define and monitor freshness contracts |
| Single partition strategy |
Query costs explode |
Partition by most common filter column |
| Unversioned schemas |
Breaking changes surprise consumers |
Use schema registry + contracts |
| No data owner |
Accountability vacuum |
Assign owner to every dataset |
Optional: AI/Automation
Note: These are enhancements, not requirements. Implement only after core governance is solid.
- Automated Quality Monitoring — Anomaly detection on volumes and distributions
- AI-Assisted Governance — Auto-classification of PII columns, metadata enrichment
- Bounded Claims — AI detection should supplement, not replace, explicit rules; human review required for PII classification
Related Skills
Quick Start Examples
Example 1: dlt + ClickHouse + Metabase
# Install dlt with ClickHouse
pip install "dlt[clickhouse]"
# Initialize pipeline
dlt init rest_api clickhouse
# Configure and run
python pipeline.py
Example 2: SQLMesh + DuckDB (Local Development)
# Install SQLMesh
pip install sqlmesh
# Initialize project
sqlmesh init duckdb
# Plan and apply
sqlmesh plan
sqlmesh run
Example 3: Dagster + dlt + SQLMesh
# dagster_pipeline.py
from dagster import asset, Definitions
import dlt
import sqlmesh
@asset
def raw_data():
pipeline = dlt.pipeline("my_pipeline", destination="duckdb")
return pipeline.run(source_data())
@asset(deps=[raw_data])
def transformed_data():
ctx = sqlmesh.Context()
ctx.run()
Sources
See data/sources.json for 100+ curated sources covering:
- Official documentation (dlt, SQLMesh, ClickHouse, Iceberg, etc.)
- Architecture guides (medallion, data mesh)
- Comparison articles (2024-2025 benchmarks)
- Community resources (Discord, Stack Overflow)
- Russian ecosystem (Yandex DataLens, Arenadata, Altinity)
1---2name: data-lake-platform-23description: Universal data lake and lakehouse patterns covering ingestion (dlt, Airbyte), transformation (SQLMesh, dbt), storage formats (Iceberg, Delta, Hudi, Parquet), query engines (ClickHouse, DuckDB, Doris, StarRocks), streaming (Kafka, Flink), orchestration (Dagster, Airflow, Prefect), and visualization (Metabase, Superset, Grafana). Self-hosted and cloud options.4---5
6# Data Lake Platform — Quick Reference
7
8Build production data lakes and lakehouses: ingest from any source, transform with SQL, store in open formats, query at scale.
9
10---
11
12## When to Use This Skill
13
14- Design data lake/lakehouse architecture (medallion, data mesh, lambda/kappa)
15- Set up data ingestion pipelines (dlt, Airbyte)
16- Build SQL transformation layers (SQLMesh, dbt)
17- Choose and configure table formats (Iceberg, Delta Lake, Hudi)
18- Deploy analytical query engines (ClickHouse, DuckDB, Doris, StarRocks)
19- Implement streaming pipelines (Kafka, Flink, Spark Streaming)
20- Set up orchestration (Dagster, Airflow, Prefect)
21- Implement data quality and governance (Great Expectations, DataHub)
22- Optimize storage costs and query performance
23- Migrate from legacy warehouse to lakehouse
24
25---
26
27## Quick Reference
28
29| Layer | Tools | Templates | When to Use |
30|-------|-------|-----------|-------------|
31| **Ingestion** | dlt, Airbyte | `templates/ingestion/` | Extract from APIs, databases, files |
32| **Transformation** | SQLMesh, dbt | `templates/transformation/` | SQL-based data modeling |
33| **Storage** | Iceberg, Delta, Hudi | `templates/storage/` | Open table formats with ACID |
34| **Query Engines** | ClickHouse, DuckDB, Doris | `templates/query-engines/` | Fast analytical queries |
35| **Streaming** | Kafka, Flink, Spark | `templates/streaming/` | Real-time data pipelines |
36| **Orchestration** | Dagster, Airflow, Prefect | `templates/orchestration/` | Pipeline scheduling |
37| **Cloud** | Snowflake, BigQuery, Redshift | `templates/cloud/` | Managed warehouses |
38| **Visualization** | Metabase, Superset, Grafana | `templates/visualization/` | Dashboards, BI, monitoring |
39
40---
41
42## Decision Tree: Choosing Your Stack
43
44```text
45Data Lake Architecture?
46 ├─ Self-hosted priority?
47 │ ├─ OLAP queries? → ClickHouse (Yandex origin, Russian-friendly)
48 │ ├─ Embedded analytics? → DuckDB (in-process, no server)
49 │ ├─ Complex joins + updates? → Apache Doris or StarRocks
50 │ └─ Data lakehouse? → Iceberg + Trino/Spark
51 │
52 ├─ Cloud-native?
53 │ ├─ AWS? → Redshift, Athena + Iceberg
54 │ ├─ GCP? → BigQuery
55 │ └─ Multi-cloud? → Snowflake
56 │
57 ├─ Ingestion tool?
58 │ ├─ Python-first, simple? → dlt (recommended)
59 │ ├─ GUI, many connectors? → Airbyte
60 │ └─ Enterprise, CDC? → Debezium, Fivetran
61 │
62 ├─ Transformation tool?
63 │ ├─ SQL-first, CI/CD? → SQLMesh (recommended)
64 │ ├─ Large community? → dbt
65 │ └─ Python transformations? → Pandas + Great Expectations
66 │
67 ├─ Table format?
68 │ ├─ Multi-engine reads? → Apache Iceberg (industry standard)
69 │ ├─ Databricks ecosystem? → Delta Lake
70 │ └─ CDC, real-time updates? → Apache Hudi
71 │
72 ├─ Streaming?
73 │ ├─ Event streaming? → Apache Kafka
74 │ ├─ Stream processing? → Apache Flink
75 │ └─ Batch + streaming? → Spark Streaming
76 │
77 └─ Orchestration?
78 ├─ Data-aware, modern? → Dagster (recommended)
79 ├─ Mature, many integrations? → Airflow
80 └─ Python-native, simple? → Prefect
81```
82
83---
84
85## Architecture Patterns
86
87### Pattern 1: Medallion Architecture (Bronze/Silver/Gold)
88
89**Use when:** Building enterprise data lake with clear data quality tiers.
90
91```text
92Sources → Bronze (raw) → Silver (cleaned) → Gold (business-ready)
93 ↓ ↓ ↓
94 Iceberg Iceberg Iceberg
95 append-only deduped aggregated
96```
97
98**Tools:** dlt → SQLMesh → ClickHouse/DuckDB → Metabase
99
100See `templates/cross-platform/template-medallion-architecture.md`
101
102### Pattern 2: Data Mesh (Domain-Oriented)
103
104**Use when:** Large organization, multiple domains, decentralized ownership.
105
106```text
107Domain A ──→ Domain A Lake ──→ Data Products
108Domain B ──→ Domain B Lake ──→ Data Products
109Domain C ──→ Domain C Lake ──→ Data Products
110 ↓
111 Federated Catalog (DataHub/OpenMetadata)
112```
113
114**Tools:** dlt (per domain) → SQLMesh → Iceberg → DataHub
115
116See `resources/architecture-patterns.md`
117
118### Pattern 3: Lambda/Kappa (Streaming + Batch)
119
120**Use when:** Real-time + historical analytics required.
121
122```text
123Lambda: Kafka → Flink (speed layer) ───→ Serving
124 ↓ ↑
125 Batch (Spark) → Iceberg ───────────┘
126
127Kappa: Kafka → Flink → Iceberg → Serving (single path)
128```
129
130**Tools:** Kafka → Flink → Iceberg → ClickHouse
131
132See `resources/streaming-patterns.md`
133
134---
135
136## Core Capabilities
137
138### 1. Data Ingestion (dlt, Airbyte)
139
140Extract data from any source: REST APIs, databases, files, SaaS platforms.
141
142**dlt (Python-native, recommended):**
143- Simple pip install, Python scripts
144- 100+ verified sources
145- Incremental loading, schema evolution
146- Destinations: ClickHouse, DuckDB, Snowflake, BigQuery, Postgres
147
148**Airbyte (GUI, connectors):**
149- 300+ pre-built connectors
150- Self-hosted or cloud
151- CDC replication
152- Declarative YAML configuration
153
154See `templates/ingestion/dlt/` and `templates/ingestion/airbyte/`
155
156### 2. SQL Transformation (SQLMesh, dbt)
157
158Build data models with SQL, manage dependencies, test data quality.
159
160**SQLMesh (recommended):**
161- Virtual data environments
162- Automatic change detection
163- Plan/apply workflow (like Terraform)
164- Built-in unit testing
165
166**dbt (popular alternative):**
167- Large community
168- Many packages
169- Cloud offering
170- Jinja templating
171
172See `templates/transformation/sqlmesh/` and `templates/transformation/dbt/`
173
174### 3. Open Table Formats (Iceberg, Delta, Hudi)
175
176Store data in open formats with ACID transactions, time travel, schema evolution.
177
178**Apache Iceberg (recommended):**
179- Multi-engine support (Spark, Trino, Flink, ClickHouse)
180- Hidden partitioning
181- Snapshot isolation
182- Industry momentum (Snowflake, Databricks, AWS)
183
184**Delta Lake:**
185- Databricks native
186- Z-ordering optimization
187- Change data feed
188
189**Apache Hudi:**
190- Optimized for CDC/updates
191- Record-level indexing
192- Near real-time ingestion
193
194See `templates/storage/`
195
196### 4. Query Engines (ClickHouse, DuckDB, Doris, StarRocks)
197
198Fast analytical queries on large datasets.
199
200**ClickHouse (self-hosted priority):**
201- 100+ GB/s scan speed
202- Columnar storage + compression
203- Russian origin (Yandex), fully open source
204- MergeTree engine family
205
206**DuckDB (embedded):**
207- In-process, no server
208- Parquet/CSV native
209- Python/R integration
210- Laptop-scale analytics
211
212**Apache Doris / StarRocks:**
213- MPP architecture
214- Complex joins
215- Real-time updates
216- MySQL protocol compatible
217
218See `templates/query-engines/`
219
220### 5. Streaming (Kafka, Flink, Spark)
221
222Real-time data pipelines and stream processing.
223
224**Apache Kafka:**
225- Event streaming platform
226- Durable log storage
227- Connect ecosystem
228
229**Apache Flink:**
230- True stream processing
231- Exactly-once semantics
232- Stateful computations
233
234**Spark Streaming:**
235- Micro-batch processing
236- Unified batch + stream API
237- ML integration
238
239See `templates/streaming/`
240
241### 6. Orchestration (Dagster, Airflow, Prefect)
242
243Schedule and monitor data pipelines.
244
245**Dagster (recommended):**
246- Software-defined assets
247- Data-aware scheduling
248- Built-in observability
249- Type system
250
251**Airflow:**
252- Mature, battle-tested
253- Many operators
254- Large community
255
256**Prefect:**
257- Python-native
258- Hybrid execution
259- Simple deployment
260
261See `templates/orchestration/`
262
263### 7. Visualization (Metabase, Superset, Grafana)
264
265Business intelligence dashboards and operational monitoring.
266
267**Metabase (business users):**
268
269- Intuitive question builder
270- Self-serve analytics
271- Signed embedding
272- Caching and permissions
273
274**Apache Superset (analysts):**
275
276- SQL Lab for exploration
277- Advanced visualizations
278- Row-level security
279- Custom chart plugins
280
281**Grafana (infrastructure):**
282
283- Time-series dashboards
284- Real-time alerting
285- Prometheus/InfluxDB native
286- Data pipeline monitoring
287
288See `templates/visualization/` and `resources/bi-visualization-patterns.md`
289
290---
291
292## Navigation
293
294### Resources (Deep Guides)
295
296| Resource | Description |
297|----------|-------------|
298| [architecture-patterns.md](resources/architecture-patterns.md) | Medallion, data mesh, lakehouse design |
299| [ingestion-patterns.md](resources/ingestion-patterns.md) | dlt vs Airbyte, CDC, incremental loading |
300| [transformation-patterns.md](resources/transformation-patterns.md) | SQLMesh vs dbt, testing, CI/CD |
301| [storage-formats.md](resources/storage-formats.md) | Iceberg vs Delta vs Hudi comparison |
302| [query-engine-patterns.md](resources/query-engine-patterns.md) | ClickHouse, DuckDB, Doris optimization |
303| [streaming-patterns.md](resources/streaming-patterns.md) | Kafka, Flink, Spark Streaming |
304| [orchestration-patterns.md](resources/orchestration-patterns.md) | Dagster, Airflow, Prefect comparison |
305| [governance-catalog.md](resources/governance-catalog.md) | DataHub, OpenMetadata, lineage |
306| [cost-optimization.md](resources/cost-optimization.md) | Storage, compute, query optimization |
307| [operational-playbook.md](resources/operational-playbook.md) | Monitoring, incidents, migrations |
308| [bi-visualization-patterns.md](resources/bi-visualization-patterns.md) | Metabase, Superset, Grafana operations |
309
310### Templates (Copy-Paste Ready)
311
312| Category | Templates |
313|----------|-----------|
314| **Cross-platform** | medallion, pipeline, incremental, quality, schema, partitioning, cost, migration |
315| **Ingestion/dlt** | pipeline, rest-api, database-source, incremental, warehouse-loading |
316| **Ingestion/Airbyte** | connection, custom-connector |
317| **Transformation/SQLMesh** | project, model, incremental, dag, testing, production, security |
318| **Transformation/dbt** | project, incremental, testing |
319| **Storage** | iceberg-table, iceberg-maintenance, delta-table, hudi-table, parquet-optimization |
320| **Query Engines** | clickhouse (setup, ingestion, optimization, materialized-views, replication), duckdb, doris, starrocks |
321| **Streaming** | kafka-ingestion, flink-processing, spark-streaming |
322| **Orchestration** | dagster-pipeline, airflow-dag, prefect-flow |
323| **Cloud** | snowflake-setup, bigquery-setup, redshift-setup |
324| **Visualization** | metabase (connection-checklist, dashboard-request, incident-playbook) |
325
326---
327
328## Data Quality & Governance
329
330**[templates/cross-platform/template-ingestion-governance-checklist.md](templates/cross-platform/template-ingestion-governance-checklist.md)** — Intake checklist for new datasets (contracts, access control, operability, cost).
331
332**[templates/cross-platform/template-data-quality-backfill-runbook.md](templates/cross-platform/template-data-quality-backfill-runbook.md)** — Runbook for data incidents, backfills, and safe reprocessing.
333
334**[templates/cross-platform/template-data-quality-governance.md](templates/cross-platform/template-data-quality-governance.md)** — Comprehensive checklist for production data platforms.
335
336### Key Sections
337
338- **Data Quality Contracts** — Schema, freshness SLAs, volume bounds, uniqueness
339- **Governance & Access Control** — RBAC, row/column security, classification
340- **Security** — Encryption at rest/transit, network isolation, audit trails
341- **Reliability** — Backfill procedures, idempotency patterns, reprocessing
342- **Cost Control** — Storage optimization, compute governance, monitoring
343
344### Do / Avoid
345
346#### GOOD: Do
347
348- Define data contracts before building pipelines
349- Implement quality gates at each tier (Bronze → Silver → Gold)
350- Use idempotent operations for all transformations
351- Enable audit logging from day one
352- Plan for backfills in pipeline design
353- Document SLAs for every critical table
354
355#### BAD: Avoid
356
357- Skipping data quality validation to "move fast"
358- Storing PII without classification and access controls
359- Creating pipelines that can't be re-run safely
360- Using shared service accounts without audit trails
361- Ignoring cost controls until the bill arrives
362- Manual schema changes without version control
363
364### Anti-Patterns
365
366| Anti-Pattern | Problem | Fix |
367|--------------|---------|-----|
368| **Schema on read only** | Quality issues discovered too late | Add schema validation at Bronze layer |
369| **No freshness SLA** | Stale data used in decisions | Define and monitor freshness contracts |
370| **Single partition strategy** | Query costs explode | Partition by most common filter column |
371| **Unversioned schemas** | Breaking changes surprise consumers | Use schema registry + contracts |
372| **No data owner** | Accountability vacuum | Assign owner to every dataset |
373
374---
375
376## Optional: AI/Automation
377
378> **Note**: These are enhancements, not requirements. Implement only after core governance is solid.
379
380- **Automated Quality Monitoring** — Anomaly detection on volumes and distributions
381- **AI-Assisted Governance** — Auto-classification of PII columns, metadata enrichment
382- **Bounded Claims** — AI detection should supplement, not replace, explicit rules; human review required for PII classification
383
384---
385
386## Related Skills
387
388- **[ai-mlops](../ai-mlops/SKILL.md)** — ML deployment, drift detection, model registry
389- **[ai-ml-data-science](../ai-ml-data-science/SKILL.md)** — Feature engineering, ML modeling, EDA
390- **[data-sql-optimization](../data-sql-optimization/SKILL.md)** — OLTP database optimization (PostgreSQL, MySQL, Oracle)
391- **[ops-devops-platform](../ops-devops-platform/SKILL.md)** — Infrastructure, CI/CD, Kubernetes
392
393---
394
395## Quick Start Examples
396
397### Example 1: dlt + ClickHouse + Metabase
398
399```bash
400# Install dlt with ClickHouse
401pip install "dlt[clickhouse]"
402
403# Initialize pipeline
404dlt init rest_api clickhouse
405
406# Configure and run
407python pipeline.py
408```
409
410### Example 2: SQLMesh + DuckDB (Local Development)
411
412```bash
413# Install SQLMesh
414pip install sqlmesh
415
416# Initialize project
417sqlmesh init duckdb
418
419# Plan and apply
420sqlmesh plan
421sqlmesh run
422```
423
424### Example 3: Dagster + dlt + SQLMesh
425
426```python
427# dagster_pipeline.py
428from dagster import asset, Definitions
429import dlt
430import sqlmesh
431
432@asset
433def raw_data():
434 pipeline = dlt.pipeline("my_pipeline", destination="duckdb")
435 return pipeline.run(source_data())
436
437@asset(deps=[raw_data])
438def transformed_data():
439 ctx = sqlmesh.Context()
440 ctx.run()
441```
442
443---
444
445## Sources
446
447See [data/sources.json](data/sources.json) for 100+ curated sources covering:
448- Official documentation (dlt, SQLMesh, ClickHouse, Iceberg, etc.)
449- Architecture guides (medallion, data mesh)
450- Comparison articles (2024-2025 benchmarks)
451- Community resources (Discord, Stack Overflow)
452- Russian ecosystem (Yandex DataLens, Arenadata, Altinity)