Introduction
What is Daana?
Transform operational data into business-ready analytics faster than manual ETL pipelines.
Daana CLI is a command-line tool that helps you transform raw operational data into clean, historized business entities using declarative YAML models. Instead of writing complex SQL transformations, you define what your business entities should look like, and Daana handles the rest.
It makes it easy to:
- Quickly create new reports and gain insights - Clean, business-ready tables
- Merge raw data from multiple operational systems - Unified view across sources
- Establish a single source of truth - Consistent definitions and relationships
- Reduce complexity for engineering teams - No more manual ETL code
Why Daana?
If you've worked with data transformations, you've likely 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 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 |
| Consistency | Different teams, different implementations | One model, one source of truth |
What Makes Daana Different
Declarative over imperative: You define what your business entities should look like, not how to transform data. Daana generates the transformation logic.
Non-destructive development: Adding new attributes or entities never breaks existing pipelines. The underlying architecture (Focal Framework) separates data from schema.
Built-in temporality: Every attribute can track changes over time. Point-in-time queries work without additional effort.
AI-agent friendly: Daana's declarative model is a reliable foundation for AI-assisted development.
- The model enforces structure: entities, attributes, and relationships have clear, unambiguous definitions
- Unlike SQL projects with redundant logic and scattered business rules, Daana's single source of truth means AI agents can confidently understand context and generate correct configurations
- CLI validation provides immediate feedback, so AI-generated output can be verified instantly
Tools like Cursor or Copilot become genuinely useful for designing models, writing mappings, and iterating on your data warehouse. See the AI-Assisted Mapping Guide for a detailed workflow.
Architecture Overview
Daana CLI handles the entire data transformation lifecycle:
- YAML-Based Modeling: Define data models, mappings, and workflows in human-readable YAML
- Template Generation: Auto-generate scaffolding for mappings and workflows
- Built-in Validation: Check your configurations before deployment
- One-Command Deployment: Deploy everything with a single command
- Multi-Database Support: Works with PostgreSQL, BigQuery, Snowflake, Oracle, and Microsoft SQL Server
The CLI provides a unified interface for the entire data transformation workflow, from model definition to production deployment.
The Four Components of DMDL
The Daana Model Description Language (DMDL) consists of four YAML file types that work together:
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Model │────▶│ Mapping │────▶│ Workflow │────▶│ Connections │
│ (What) │ │ (How) │ │ (When) │ │ (Where) │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
│ │ │ │
▼ ▼ ▼ ▼
Entities Source Tables Execution Order Databases
Attributes Transformations Scheduling Credentials
Relationships Filters Dependencies EndpointsModel - What
The Model defines your business domain - the entities, attributes, and relationships that make up your data model. This is your semantic layer that describes *what* data you're working with.
Mapping - How
Mappings connect your source data to your model. They specify *how* data from operational databases maps to the entities and attributes you've defined.
Workflow - When
Workflows orchestrate the execution of your data transformations. They define *when* and *in what order* your mappings are executed.
Connections - Where
Connections define *where* your data lives - the database connection profiles for your source systems and data warehouse.
The Workflow
From defining your model to executing transformations, here's the typical workflow:
init- Create project with template filesinstall- Set up framework in your database- Edit model.yaml and connections.yaml to define your data
generate- Create mapping templates for entities- Edit mappings to connect to your data sources
check- Validate your configurationsdeploy- Deploy workflow to databaseexecute- Run data transformations
Who Uses Daana?
Daana is designed for data architects, data engineers, and analytics engineers who:
- Build and maintain data warehouses
- Need automatic history tracking and multi-source integration
- Want to reduce SQL maintenance overhead
Prerequisites: Familiarity with SQL, basic data warehousing concepts, and comfort with command-line tools.
Next Steps
- New to Daana? Start with the Tutorial for a hands-on walkthrough
- Want to understand the concepts? Read Data Warehousing Fundamentals
- Ready to dive into syntax? Explore the DMDL Reference
- Evaluating Daana? See the Focal Framework for architectural details