Introduction
Getting started
Daana CLI transforms raw operational data into business-ready analytics with declarative YAML models. Define entities once; mappings, history tracking, and multi-source merges are generated for you.
Tutorial
Get Daana running in 5 minutes and see results in 10 more — a hands-on walkthrough.
DMDL Reference
The four YAML files that define your data model — Model, Mapping, Workflow, Connections.
Focal Framework
The metadata-driven architecture under Daana — non-destructive development for data warehouses.
Command reference
Every daana-cli command, flag, and example — generated from the CLI itself.
Why Daana?
If you've worked with data transformations, you've encountered these challenges:
| Challenge | Traditional approach | Daana approach |
|---|---|---|
| History tracking (SCD2) | Write complex SQL with valid_from/valid_to logic, maintain manually | Declare effective_timestamp: true, history tracked automatically |
| Multi-source merging | FULL OUTER JOINs with conflict resolution, deduplication logic | Add tables to the same mapping group, merged automatically |
| Schema evolution | ALTER TABLE statements, migration scripts, breaking changes | Add attributes via metadata, no schema changes required |
| Documentation | Separate wiki pages, often outdated | Definitions live in model files, always current |
What you define vs. what Daana generates
You write declarative YAML — entities, attributes, relationships, source mappings. Daana generates SQL transformations, history tables, key resolution, and audit lineage.
# model.yaml — your business domain
model:
id: ECOMMERCE
entities:
- id: CUSTOMER
attributes:
- id: CUSTOMER_NAME
type: STRING
effective_timestamp: true
- id: CUSTOMER_EMAIL
type: STRING
effective_timestamp: true
- id: ORDER
attributes:
- id: ORDER_TOTAL
type: NUMBER
effective_timestamp: true
relationships:
- id: ORDER_PLACED_BY
source_entity_id: ORDER
target_entity_id: CUSTOMER
# customer-mapping.yaml — connect source to model
entity_id: CUSTOMER
mapping_groups:
- name: default_mapping_group
tables:
- connection: dev
table: stage.customers
primary_keys: [customer_id]
ingestion_strategy: FULL_LOG
entity_effective_timestamp_expression: updated_at
attributes:
- id: CUSTOMER_NAME
transformation_expression: full_name
- id: CUSTOMER_EMAIL
transformation_expression: email
That's enough for Daana to compile, deploy, and execute the full transformation pipeline. The output is BI-ready views in your data warehouse with history tracking baked in.
Three paths to get started
Beta tester
Use this path if you want to learn Daana CLI and have access to the daana-cli binary. Prerequisites → install Docker → run daana-cli init my-tutorial --example quickstart.
Self-service evaluation
Build from source. Path 2 in Prerequisites walks through cloning, building, and running the same tutorial as beta testers.
Contributor
Contributing code? See Path 3 in Prerequisites: repository access, Go 1.26+, Task automation tool, the build-from-source checklist.
What's in the docs
- Tutorial: seven chapters from zero to a Layer 3 analytics layer.
- DMDL Reference — Model, Mapping, Workflow, Connections.
- Concepts — Focal Framework, data warehousing fundamentals.
- Guides — output structure, AI-assisted mapping.
- Reference — configuration, command reference, glossary, advanced patterns.