Arnab aims to offer a simple, cross-platform solution for organizing and executing data models, focusing on core functionalities essential for data workflows. Just like DBT, but is with subset of its features, jinja-less (except for macros), and (theoretically) more portable.
Its main purpose is simple: give it a directory containing SQL files, it will scan the directory recursively and determine the order of execution of all queries.
Simple transformation demo
Create a project directory where you want to put all of your SQL files.
Create config.yaml
at the root of the directory.
At the very least, it should contain models_dir
and db_path
information:
models_dir: .
db_path: data.duckdb
Optionally, you can create another directories (that may contain subdirectories) and use its name for models_dir
.
Check examples directory for more.
Set the working directory to the root of your project, then run arnab run
.
We can get the visualization of the pipeline in a SVG file format for an additional way to debug the pipeline.
Set the working directory to the root of your project, then run arnab viz outout_name.svg
.
- Single executable file
- Cross-platform
- Automatically determine the order of model execution
- Model materialization types:
- Table
- View
-
Incremental(probably not necessary for now)
- Macro