102 lines
3.6 KiB
JSON
102 lines
3.6 KiB
JSON
{
|
|
"id": "8aa9e870-b0c9-5417-be80-03154e83c7a3",
|
|
"snapshot": "dbt",
|
|
"instruction": "Create a dbt project called jaffle_shop under ~/projects and configure the connection to duckdb with path jaffle_shop/jaffle_shop.duckdb for the target dev and prod. Load data from jaffle-shop-data.zip into that database using dbt.",
|
|
"source": [
|
|
"https://docs.getdbt.com/docs/core/connect-data-platform/duckdb-setup#",
|
|
"https://docs.getdbt.com/guides/manual-install?step=3",
|
|
"https://docs.getdbt.com/reference/commands/seed"
|
|
],
|
|
"config": [
|
|
{
|
|
"type": "download",
|
|
"parameters": {
|
|
"files": [
|
|
{
|
|
"url": "https://drive.usercontent.google.com/download?id=18pbzQOnAZEZ2psFLWJJQIyLlQBSNRxWs&export=download&authuser=0&confirm=t&uuid=d8045faa-0f74-4c34-ab98-55ab41bcc2c9&at=APZUnTUoi3u-jMpwO8osMEll4gDr:1705548224569",
|
|
"path": "/home/user/projects/jaffle-shop-data.zip"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"trajectory": "trajectories/",
|
|
"related_apps": [
|
|
"dbt",
|
|
"duckdb"
|
|
],
|
|
"evaluator": {
|
|
"func": [
|
|
"check_yaml_file",
|
|
"check_dbt_command",
|
|
"check_database",
|
|
"check_dbt_command"
|
|
],
|
|
"conj": "and",
|
|
"result": [
|
|
{
|
|
"type": "dbt_profiles",
|
|
"paths": [
|
|
"/home/user/.dbt/profiles.yml",
|
|
"/home/user/projects/jaffle_shop/profiles.yml",
|
|
"$DBT_PROFILES_DIR"
|
|
],
|
|
"dest": "profiles.yml"
|
|
},
|
|
{
|
|
"type": "vm_command_line",
|
|
"command": ["/bin/bash", "-c", "cd /home/user/projects/jaffle_shop; source ~/anaconda3/etc/profile.d/conda.sh && conda activate dbt; dbt debug"]
|
|
},
|
|
{
|
|
"type": "vm_file",
|
|
"path": "/home/user/projects/jaffle_shop/jaffle_shop.duckdb",
|
|
"dest": "jaffle_shop.duckdb"
|
|
},
|
|
{
|
|
"type": "vm_command_line",
|
|
"command": ["/bin/bash", "-c", "cd /home/user/projects/jaffle_shop; source ~/anaconda3/etc/profile.d/conda.sh && conda activate dbt; dbt seed"]
|
|
}
|
|
],
|
|
"expected": [
|
|
{
|
|
"type": "rule",
|
|
"rules": [
|
|
["match", ["jaffle_shop", "outputs", "dev", "type"], "duckdb"],
|
|
["match", ["jaffle_shop", "outputs", "prod", "type"], "duckdb"],
|
|
["in", ["jaffle_shop", "outputs", "dev", "path"], ["jaffle_shop.duckdb", "/home/user/projects/jaffle_shop/jaffle_shop.duckdb"]],
|
|
["in", ["jaffle_shop", "outputs", "prod", "path"], ["jaffle_shop.duckdb", "/home/user/projects/jaffle_shop/jaffle_shop.duckdb"]]
|
|
]
|
|
},
|
|
{
|
|
"type": "rule",
|
|
"rules": [
|
|
["contains", "OK connection ok", ""],
|
|
["contains", "All checks passed", ""]
|
|
]
|
|
},
|
|
{
|
|
"type": "cloud_file",
|
|
"path": "https://drive.usercontent.google.com/download?id=12xJuEcBxGqPHjJriUPnkuGRkw9HsZniJ&export=download&authuser=0&confirm=t&uuid=f2b7147f-5114-461d-a939-486750c19029&at=APZUnTVBf4QJMyDPk5BmfZzTecU5:1705548962476",
|
|
"dest": "gold_jaffle_shop.duckdb"
|
|
},
|
|
{
|
|
"type": "rule",
|
|
"rules": [
|
|
["excludes", "Nothing to do", ""],
|
|
["contains", "Completed successfully", ""],
|
|
["contains", "PASS=3", ""],
|
|
["contains", "TOTAL=3", ""]
|
|
]
|
|
}
|
|
],
|
|
"options": [
|
|
{},
|
|
{},
|
|
{
|
|
"db_type": "duckdb",
|
|
"check_type": ["table-schema-content"]
|
|
},
|
|
{}
|
|
]
|
|
}
|
|
} |