Daana Model Description Language
The Daana Model Description Language (DMDL) is a YAML-based declarative language for defining data transformation pipelines. It provides a structured way to describe your business domain and how data flows from source systems to your analytics warehouse.
Core Components
DMDL consists of four main components 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
- Define your Model - Describe your business entities and their attributes
- Create Mappings - Connect source tables to model entities
- Configure Workflow - Set up execution order and scheduling
- Set up Connections - Define database connection profiles
Getting Started
If you're new to DMDL, we recommend starting with the Tutorial which walks through creating a complete data pipeline from scratch.