Introduction
Daana CLI provides a complete data transformation platform built on the Focal framework.
Architecture
The 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
Next Steps
- New to Daana? Start with the Tutorial for a hands-on walkthrough using real e-commerce data
- Want to learn DMDL? Dive into the DMDL documentation for detailed guides on each component