Building a Target Schema
Learn how to create effective target schemas for your data transformations
If you are building your schema or need to customize an existing one, this guide will walk you through the process.
Schema Basics
Target schemas in Lume use YAML format to define your desired output structure. A target schema requires a models section and each entry requires a name field and columns section. Each column entry contains the following:
- A field name
- A clear description of the field’s business meaning and context
- A set of tests to validate your transformed data
Write clear, specific descriptions that explain your business’s unique requirements and context. For example, specify if “revenue” means monthly recurring revenue, annual revenue, or revenue before returns. Learn more about writing effective descriptions in our Creating Field Descriptions guide.
Defining Enums for Classifications
Within your Target Schema, you can define an enum set that will trigger Lume’s classification module. The classification module will classify the transformed source data needed to fit your target field to one of your options if it fits. Here is an example of defining an enum set of Apparel, Electronics, and Perishable for the field category:
Classifications for SQL projects coming soon!
Defining Code Generation Language Preference
A user can define per model what language they would like Lume’s AI engine to generate code. Here is a quick example:
Lume currently supports code generation in both SQL and Python.
Types of Default Tests
The YAML schema provides built in test options: unique, not_null, accepted_values, and relationships. Here is an example using those tests for an orders model:
Uniqueness Test
Uniqueness Test
Nullability Test
Nullability Test
Accepted Values Test
Accepted Values Test
Nullability Test
Nullability Test
Lume also provides built in support for DBT Utils Tests.
Complete Example
Here’s a complete target schema example:
Ecommerce Product Catalog Mapping
Ecommerce Product Catalog Mapping
When working with ecommerce data, product catalogs often require specific schema structures to handle product attributes, variants, and categorization. Here’s an example schema that demonstrates common ecommerce patterns:
Lume currently supports only single-level category hierarchies in the schema definition. If your product catalog requires multiple category levels (e.g., Clothing > Men > Shirts > T-Shirts), please contact Lume support for assistance with implementing a custom solution.
For ecommerce catalogs, pay special attention to:
- Product variants and their relationships
- Category enumerations
- Product status workflows
- Brand and manufacturer relationships
Best Practices
- Clear Descriptions: Write clear, specific descriptions that explain the business meaning of each field
- Test Rules: Add test rules where appropriate to ensure data quality
- Consistent Naming: Use consistent field naming conventions throughout your schema
Remember: Focus on describing what each field means, not how to transform it. Lume handles the transformation logic automatically!
Property names in Lume’s API cannot contain periods (.).
Lume currently does not support custom test and macros.
- ❌
our_custom_macros_test
- ✅
not_null
- ✅
unique