Skip to content

Page spec#

One row per page; the Page column is the page id and filename. Order is the row position: section number, dot, position with two digits (the third row of Storage is 2.03). Scope says what the page covers; Not here says what it leaves to another page (named in brackets). Before reading lists prerequisite pages. Example uses the shared example world from GUIDELINES.md. Research: S = stable concept, light check; P = check claims against spec or official docs; C = current research, products change.

Pages are listed in learning order within each section.

01 Foundations#

Page Scope Not here Before reading Example Research
oltp-vs-olap Operational vs analytical workloads: access patterns, row vs column orientation, why analytics needs a separate copy Columnar file internals [columnar-files-parquet] — The same order stored for checkout vs counted for a monthly sales report S
lake-warehouse-lakehouse The three storage approaches, what each optimises for, how open table formats created the lakehouse Table format mechanics [iceberg-table-format-basics] oltp-vs-olap Where shop data lives in each approach S
etl-elt-etlt Where transformation happens relative to loading; the light-transform-on-load variant; trade-offs (cost, privacy, flexibility) Tools [dbt]; streaming [processing-patterns] lake-warehouse-lakehouse Masking card numbers before load (EtLT) vs modelling after load (ELT) S
processing-patterns Batch, micro-batch, streaming, real-time; latency vs cost vs complexity; how to choose by use case Stream processing engines [stream-processing]; CDC mechanics [change-data-capture] etl-elt-etlt Daily sales report vs fraud check vs stock alert S
schema-on-write-vs-read Validate at load vs interpret at query; where each fits; how layers combine both Schema changes over time [schema-evolution] lake-warehouse-lakehouse Raw clickstream JSON vs typed clean_orders S
medallion-layers Bronze, silver, gold: purpose, rules and consumers of each layer; what goes wrong without layers Modelling inside gold [dimensional-modeling]; naming [naming-conventions] schema-on-write-vs-read raw_orders → clean_orders → fct_daily_sales S
data-products-and-mesh Data as a product (owner, contract, consumers); data mesh principles; central vs federated ownership Contract mechanics [data-contracts]; roles [governance-roles] medallion-layers Orders team owns clean_orders and publishes fct_daily_sales S
data-team-roles (opt) Data engineer, analytics engineer, analyst, data scientist, ML engineer, platform engineer, data product owner; how responsibilities split and overlap Governance decision rights [governance-roles] data-products-and-mesh Who builds what for the daily sales report S

02 Storage#

Page Scope Not here Before reading Example Research
object-storage Buckets and keys, the S3 API as a standard, consistency, no in-place edits, cost model, S3-compatible stores Table semantics on top [iceberg-table-format-basics] lake-warehouse-lakehouse Layout of shop files in a bucket P
columnar-files-parquet Row groups, column chunks, encoding, compression, footer statistics, why engines skip data; brief mention of ORC and Avro Partitioning [partitioning]; tuning [query-performance] oltp-vs-olap, object-storage One orders Parquet file, its footer stats P
partitioning Splitting data by a key, partition pruning, choosing keys, over- and under-partitioning, bucketing Iceberg hidden partitioning [iceberg-table-format-basics] columnar-files-parquet Orders by order date vs by customer S
iceberg-table-format-basics Snapshots, metadata tree, atomic commits, schema evolution by ID, hidden partitioning, copy-on-write vs merge-on-read, time travel Maintenance [iceberg-maintenance]; catalog role in depth [catalogs] object-storage, columnar-files-parquet, partitioning shop.orders (draft done) P
iceberg-maintenance Small files, compaction, snapshot expiry, orphan file removal, delete files, ordering and frequency of jobs Erasure policy [privacy-lifecycle] iceberg-table-format-basics Compacting a streamed orders table P
iceberg-internals (opt) Manifest lists and manifests in detail, inspecting them with metadata tables, how planning uses statistics — iceberg-maintenance Inspecting shop.orders$files and $manifests P
query-performance Pruning, predicate and projection pushdown, file sizing, sorting and clustering, statistics, reading a query plan Engine choice [sql-query-engines] partitioning, iceberg-table-format-basics Making a daily sales query read 1% of files P
catalogs What a catalog does, Iceberg REST protocol, authentication and credential vending, examples of implementations, backup and recovery of the catalog Business catalog and lineage [catalog-and-lineage] iceberg-table-format-basics One table registered and read by two engines C
table-format-comparison (opt) Iceberg, Delta Lake, Hudi and Paimon: design differences, engine and catalog support, interoperability (UniForm, XTable), how to choose Iceberg mechanics [iceberg-table-format-basics] iceberg-table-format-basics, catalogs One table read through Iceberg and Delta clients C

03 Ingestion#

Page Scope Not here Before reading Example Research
ingestion-patterns Full vs incremental loads, watermarks and cursors, API and file ingestion, push vs pull, landing raw Log-based CDC [change-data-capture] processing-patterns, medallion-layers Loading products daily (full) and orders hourly (incremental by updated_at) S
kafka-and-connect Topics, partitions, offsets, consumer groups, retention, compaction; Kafka Connect sources, sinks and transforms Delivery semantics [delivery-guarantees-idempotency] processing-patterns Clickstream topic partitioned by session P
change-data-capture Log-based vs query-based CDC, the database log, snapshot then stream, change event shape, tombstones, deletes, risks (log retention, replication slots) Writing changes to tables [kafka-to-iceberg]; merging [deduplication-and-merge] ingestion-patterns, kafka-and-connect An order update and delete as change events P
delivery-guarantees-idempotency At-most-once, at-least-once, exactly-once; where duplicates come from; idempotent writes and keys Deduplication in models [deduplication-and-merge] kafka-and-connect A payment event delivered twice P
late-and-out-of-order-data Event time vs processing time, lateness, watermarks in streams, reprocessing windows Stream engines [stream-processing] delivery-guarantees-idempotency A mobile click arriving three hours late S
schema-evolution Compatible and breaking changes, schema registries, compatibility modes, handling drift in raw and clean layers Contracts [data-contracts] schema-on-write-vs-read, kafka-and-connect Adding discount_code to orders; renaming a column P
event-design What makes a good event: facts not commands, naming, envelope, IDs, timestamps, granularity, versioning, CloudEvents Schema mechanics [schema-evolution] kafka-and-connect, schema-evolution OrderPlaced and OrderCancelled events P
kafka-to-iceberg Sink connectors writing to table formats, append vs upsert, commit intervals, routing, CDC metadata columns Compaction [iceberg-maintenance] change-data-capture, iceberg-table-format-basics Orders change events appended to raw_orders C
outbox-pattern (opt) Publishing events reliably from an application via a table and CDC; why dual writes fail — change-data-capture OrderPlaced event via an outbox table S
iot-and-device-data (opt) Device telemetry characteristics, MQTT basics, topic design, time-series storage concerns Stream engines [stream-processing] kafka-and-connect Warehouse scanners sending stock counts P
stream-processing (opt) Stateful processing, windows, joins on streams, exactly-once in engines, when it is worth it Basics of streaming [processing-patterns] late-and-out-of-order-data Live basket abandonment alerts C

04 Modelling and transformation#

Page Scope Not here Before reading Example Research
sql-query-engines What a distributed SQL engine does, separation of storage and compute, connectors, federation, examples of engines and how they differ Tuning [query-performance] iceberg-table-format-basics Joining orders in the lake with customers in Postgres C
dimensional-modeling Facts, dimensions, grain, star schema, conformed dimensions, wide tables as an alternative History [history-and-scd] medallion-layers fct_order_line and dim_product S
deduplication-and-merge Finding duplicates, choosing the winning record, MERGE from a change log, ordering by sequence Delivery semantics [delivery-guarantees-idempotency] change-data-capture, delivery-guarantees-idempotency clean_orders built from raw change events S
history-and-scd Keeping history: SCD type 1 and 2, snapshots, effective dates, point-in-time joins — dimensional-modeling, deduplication-and-merge Customer address changes and past orders S
multi-source-conformance Combining the same entity from several sources: mapping, matching, identity resolution, survivorship, master data — history-and-scd Customers from the shop and an acquired marketplace S
dbt Models, materializations, ref and lineage, tests, incremental models, packages, documentation Testing strategy [testing-data-pipelines]; contracts [data-contracts] medallion-layers, sql-query-engines stg_orders → clean_orders → fct_daily_sales P
testing-data-pipelines Kinds of tests (schema, data, unit, reconciliation), where each runs, test data, what to test first Quality monitoring in production [data-quality-dimensions] dbt Testing that daily sales equals the sum of orders S
write-audit-publish Writing to a staging branch or table, checking, then publishing atomically; branches and tags in table formats — testing-data-pipelines, iceberg-table-format-basics Publishing fct_daily_sales only after checks pass P
backfill-and-replay Re-running history, idempotent and partition-scoped models, replaying from raw or from a log, cost control Orchestration mechanics [orchestration] deduplication-and-merge, dbt Rebuilding three months after a bug fix S
naming-conventions (opt) Naming layers, schemas, tables, columns, keys, timestamps; names carry contracts not deployments; enforcing in CI — medallion-layers, dbt The shop naming rules S
other-modelling-approaches (opt) Data Vault (hubs, links, satellites), one big table, activity schema; when each fits next to star schemas — dimensional-modeling, history-and-scd Orders as a Data Vault and as one big table S

05 Governance and security#

Page Scope Not here Before reading Example Research
governance-roles Owners, stewards, custodians, consumers, platform team; who decides what Contract mechanics [data-contracts] data-products-and-mesh Who owns clean_orders S
data-contracts What a contract states (schema, semantics, quality, SLAs, ownership), contract standards, enforcement in CI Schema mechanics [schema-evolution] governance-roles, dbt A contract for fct_daily_sales C
data-quality-dimensions Accuracy, completeness, consistency, timeliness, validity, uniqueness; measuring and alerting; freshness Test types [testing-data-pipelines] testing-data-pipelines Freshness and completeness checks on clean_orders S
catalog-and-lineage Business catalog, search, glossary, ownership, column-level lineage, how metadata is collected Technical table catalog [catalogs] dbt, governance-roles Tracing a dashboard number back to raw_orders C
governance-as-code (opt) Tags, owners, glossary and policies kept in version control and applied by CI — catalog-and-lineage, data-contracts Tagging PII columns from contract files C
authn-vs-authz-oidc-jwt Authentication vs authorization, OIDC and OAuth2 flows, JWT structure and claims, service accounts — — A token for a shop analyst and one for a pipeline P
rbac-vs-abac Role-based vs attribute-based access, policy evaluation, where policies live Row filters and masks [row-level-security-masking] authn-vs-authz-oidc-jwt Analysts vs regional managers S
row-level-security-masking Row filters, column masks, where to enforce (engine, semantic layer, catalog), one place of enforcement — rbac-vs-abac Managers see only their region; card numbers masked S
multi-tenancy Tenant isolation models (shared tables, schema per tenant, stack per tenant), tenant keys, noisy neighbours — row-level-security-masking Marketplace sellers seeing only their sales S
pii-and-classification Identifying and tagging personal data, classification levels, pseudonymisation vs anonymisation Retention and erasure [privacy-lifecycle] governance-roles, data-contracts Email, address and card data in customers S
privacy-lifecycle Retention, archiving, deletion requests, erasure across layers and snapshots, proving deletion Iceberg mechanics [iceberg-maintenance] pii-and-classification, iceberg-maintenance Erasing one customer everywhere S
residency-and-regions Keeping data in a jurisdiction, regional stacks, global aggregates, routing by home region — pii-and-classification EU and US shop customers S
encryption-and-key-management Encryption in transit and at rest, server-side and client-side, envelope encryption and KMS, Parquet and Iceberg encryption, key rotation, crypto-shredding, secrets — object-storage, privacy-lifecycle Customer tables encrypted with a per-region key P
audit-logging What to log (access, queries, changes, admin actions), sources (engine, catalog, storage, identity provider), central tamper-resistant storage, retention, using logs Operational monitoring [observability-and-slos] authn-vs-authz-oidc-jwt, row-level-security-masking Who read customer emails last month S

06 Serving#

Page Scope Not here Before reading Example Research
semantic-layer What it does (metrics, dimensions and joins defined once, in business terms); three placements: inside a BI tool (e.g. Power BI semantic model, LookML), standalone/headless with its own SQL, REST or GraphQL APIs (e.g. Cube, dbt Semantic Layer), inside the warehouse or engine (e.g. semantic views, metric views); who can consume each (dashboards, apps, agents); caching; access rules in the layer; metrics API vs data API; pitfall: the same metric defined in two places Row-level security in general [row-level-security-masking]; serving records to apps [data-api-and-bff]; agent patterns [agents-and-mcp] dimensional-modeling Revenue and order count defined once, used by a dashboard, an app and an agent C
data-api-and-bff Serving data to applications, metrics API vs data API (records for an app vs aggregates), the backend-for-frontend pattern, tokens, pagination, caching, why apps should not query the lake directly — semantic-layer, authn-vs-authz-oidc-jwt A customer's order history page S
reverse-etl-activation Pushing platform results into operational tools, push vs pull (activation by the target), risks — data-api-and-bff Sending a churn score to the CRM C
data-sharing (opt) Sharing tables with other teams or companies without copying, open sharing protocols, shares vs exports — catalogs, row-level-security-masking Sharing a supplier's sales with that supplier C
low-latency-serving-stores (opt) When the lake is too slow, real-time OLAP and key-value stores, keeping them in sync — query-performance, processing-patterns Live product view counts on the shop homepage C
agents-and-mcp AI agents querying governed data, tools over a semantic layer, MCP, acting as the user, guardrails Embeddings and retrieval [embeddings-vector-search-rag] semantic-layer, authn-vs-authz-oidc-jwt An assistant answering "how did sales do last week" C
bi-and-dashboards BI tools, live queries and extracts, curated and self-service dashboards, designing for decisions, performance, governance of reports Metric definitions [semantic-layer] semantic-layer The daily sales dashboard C

07 Operations#

Page Scope Not here Before reading Example Research
orchestration Scheduling, dependencies, task vs asset-based orchestration, retries, sensors, examples of tools Backfill strategy [backfill-and-replay] dbt A nightly build triggered after orders land C
environments-and-ci Dev, test, prod for data; CI checks, deploying models, isolated test data, promoting changes Testing types [testing-data-pipelines] dbt, testing-data-pipelines A pull request changing fct_daily_sales S
observability-and-slos Pipeline and data observability, metrics, logs, SLOs for freshness and availability, alerting Quality dimensions [data-quality-dimensions] orchestration, data-quality-dimensions An SLO: daily sales ready by 07:00 S
cost-finops (opt) Where cost comes from (storage, compute, egress), measuring per team or product, cutting cost safely — query-performance Finding the query that doubled the bill S
disaster-recovery (opt) Backup of data and metadata, recovery objectives, region failure, rebuilding from raw — catalogs, iceberg-maintenance Restoring after an accidental table drop S
infrastructure-as-code (opt) Declaring buckets, catalogs, clusters, grants and jobs as code; Terraform and OpenTofu, Helm, GitOps; state, drift, environments Governance rules as code [governance-as-code] environments-and-ci The shop's bucket, catalog and roles as code C
platform-migration (opt) Moving from a legacy warehouse to a lakehouse: inventory, parallel running, reconciliation, consumer cutover, decommissioning — environments-and-ci, testing-data-pipelines Moving daily sales off a legacy warehouse S

08 Data science and ML#

Page Scope Not here Before reading Example Research
data-science-workflow From a business question to an answer: framing, exploration, hypotheses, sandbox schemas, reproducibility, when analysis becomes a pipeline or a product Python tooling [python-on-the-lakehouse] dimensional-modeling, semantic-layer Why repeat purchases dropped in Q3 S
python-on-the-lakehouse Notebooks, dataframes (pandas, Polars, DuckDB, Spark), reading and writing Iceberg from Python, choosing compute, moving notebook code into pipelines Engine internals [sql-query-engines] data-science-workflow, sql-query-engines Loading clean_orders into a notebook C
experimentation-ab-testing Randomisation units, assignment logging, metrics and guardrail metrics, sample size, peeking, sample ratio mismatch, what the platform must provide Metric definitions [semantic-layer] data-science-workflow Testing a new checkout page S
feature-engineering-feature-stores Features, point-in-time joins, leakage, offline and online stores, training-serving skew, feature reuse Low-latency stores in general [low-latency-serving-stores] history-and-scd, python-on-the-lakehouse Customer features for a churn model C
training-data-management Dataset versions with table snapshots and tags, splits, labelling, class balance, synthetic data, rights and consent for training use Feature computation [feature-engineering-feature-stores] feature-engineering-feature-stores, pii-and-classification The training set for the demand forecast S
ml-lifecycle-mlops Training runs, experiment tracking, model registry, versioning and approval, batch scoring, predictions returning as data Features [feature-engineering-feature-stores]; serving and monitoring [model-serving-monitoring] training-data-management, data-contracts A demand forecast per product C
model-serving-monitoring Batch and online serving, shadow and canary releases, rollback, drift, joining predictions with outcomes, retraining triggers Stream engines [stream-processing] ml-lifecycle-mlops, low-latency-serving-stores A fraud score at checkout C

09 Generative AI#

Page Scope Not here Before reading Example Research
unstructured-multimodal-data Documents, images, audio and video in the lake, metadata tables, parsing, OCR and transcription pipelines, multimodal formats such as Lance, governance of files — object-storage, catalog-and-lineage Product images and PDF manuals C
embeddings-vector-search-rag Embeddings, vector indexes, similarity search, retrieval-augmented generation, keeping access rules on documents Agents over metrics [agents-and-mcp] unstructured-multimodal-data Searching product manuals and support articles C
llm-applications-evaluation Hosted vs self-hosted models, prompts as versioned code, evaluation sets, model-graded evaluation, tracing, cost and latency, guardrails, LLMOps Agents and tools [agents-and-mcp] embeddings-vector-search-rag Evaluating the support assistant C
fine-tuning-vs-rag (opt) Prompting, retrieval, fine-tuning and distillation: what each changes, the data each needs, how to choose — llm-applications-evaluation, training-data-management Product descriptions in the shop's tone C
responsible-ai-governance AI inventory, model and data cards, bias and fairness checks, explainability, human oversight, rights to training data, EU AI Act risk classes and timeline Privacy mechanics [privacy-lifecycle] ml-lifecycle-mlops, pii-and-classification Reviewing the churn model before launch C

Index, glossary, further reading#

Page Scope
README What the wiki is, how to use it, four learning paths (core, data engineer, analyst or consumer, data scientist and ML)
glossary Every key term from every page, one line each, linking to its page
further-reading Books, specs and articles worth reading in full, grouped by section

Totals#

79 topic pages (16 optional) plus 3 reference pages. Research: S 38, P 16, C 25.