Skip to main content
You can include CSV or Parquet files directly in your packages. When you publish your package, these data files are published along with your models and become queryable via DuckDB. Embedding data files in your packages is valuable when you need to:
  • Package sample data — Example datasets for testing or demos
  • Build standalone models — Models that don’t require database connections
  • Version control data — Keep data synchronized with model changes in your package
Currently, embedded data files work best for standalone models. Support for querying embedded data alongside database connections (e.g., joining embedded lookup tables with warehouse data) is coming soon.

File Structure

Create a data/ folder in your package directory and add your files — CSV (.csv, with a header row) or Parquet (.parquet, more efficient for larger datasets):

Referencing Embedded Data in Models

Use duckdb.table() to reference embedded files in your Malloy models — the same syntax works for CSV and Parquet:

Next Steps

Publishing

Publish your package — embedded data ships with it

Modeling Overview

Build semantic models on top of your embedded data