Si Wang
08/20/2023, 11:55 PMdagster-dbt project scaffold --project-name dagster_onep --dbt-project-dir dbt_workflows
However, I encountered a KeyError: ‘outputs’
error while trying to load the profile.yml
from the dbt project.
Here are the versions of Dagster, dbt, and Python I’m using:
- dagster==1.4.7
- dagster-dbt==0.20.7
- dbt-bigquery==1.5.0
- dbt-core==1.5.0
- dbt-extractor==0.4.1
- python==3.8.6
I’d appreciate any guidance on this issue.Pedram Navid
08/21/2023, 12:56 AMprofiles.yaml
file. Can you try running dbt from the same folder? dbt debug
for example.
Your profiles.yaml is likely missing a outputs section.
e..g
dbt_proj_name:
target: dev
outputs:
dev:
type: duckdb
Si Wang
08/21/2023, 2:03 AMoutputs
keywordSi Wang
08/21/2023, 2:03 AMdbt_workflows:
target: dev
outputs:
dev:
dataset: headroom_dev
job_execution_timeout_seconds: 3600
Si Wang
08/21/2023, 2:04 AMPedram Navid
08/21/2023, 2:49 AMprofiles.yml
is in the same folder as your dbt projec,t in dbt_workflows
?Si Wang
08/21/2023, 2:50 AMPedram Navid
08/21/2023, 2:51 AMSi Wang
08/21/2023, 2:52 AMSi Wang
08/21/2023, 2:52 AMSi Wang
08/21/2023, 2:53 AMPedram Navid
08/21/2023, 2:54 AM```
Si Wang
08/21/2023, 2:54 AM╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ /Users/SW/.pyenv/versions/3.9.2/lib/python3.9/site-packages/dagster_dbt/cli/app.py:189 in │
│ project_scaffold_command │
│ │
│ 186 │ │
│ 187 │ dagster_project_dir = Path.cwd().joinpath(project_name) │
│ 188 │ │
│ ❱ 189 │ copy_scaffold( │
│ 190 │ │ project_name=project_name, │
│ 191 │ │ dagster_project_dir=dagster_project_dir, │
│ 192 │ │ dbt_project_dir=dbt_project_dir, │
│ │
│ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │
│ │ console = <console width=223 ColorSystem.TRUECOLOR> │ │
│ │ dagster_project_dir = PosixPath('/Users/SW/woolies_git/thecounts-onep-headroom… │ │
│ │ dbt_project_dir = PosixPath('/Users/SW/woolies_git/thecounts-onep-headroom… │ │
│ │ project_name = 'dagster_onep' │ │
│ │ use_dbt_project_package_data_dir = False │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │
│ /Users/SW/.pyenv/versions/3.9.2/lib/python3.9/site-packages/dagster_dbt/cli/app.py:88 in │
│ copy_scaffold │
│ │
│ 85 │ │
│ 86 │ dbt_profiles_path = dbt_project_dir.joinpath(DBT_PROFILES_YML_NAME) │
│ 87 │ dbt_profiles_yaml: Dict[str, Any] = yaml.safe_load(dbt_profiles_path.read_bytes()) │
│ ❱ 88 │ dbt_adapter_packages = [ │
│ 89 │ │ dbt_adapter_pypi_package_for_target_type(target["type"]) │
│ 90 │ │ for profile in dbt_profiles_yaml.values() │
│ 91 │ │ for target in profile["outputs"].values() │
│ │
│ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │
│ │ dagster_project_dir = PosixPath('/Users/SW/woolies_git/thecounts-onep-headroom… │ │
│ │ dbt_profiles_path = PosixPath('/Users/SW/woolies_git/thecounts-onep-headroom… │ │
│ │ dbt_profiles_yaml = { │ │
│ │ │ 'config': { │ │
│ │ │ │ 'send_anonymous_usage_stats': False, │ │
│ │ │ │ 'use_colors': False, │ │
│ │ │ │ 'partial_parse': False, │ │
│ │ │ │ 'printer_width': 120, │ │
│ │ │ │ 'warn_error': True, │ │
│ │ │ │ 'fail_fast': True │ │
│ │ │ }, │ │
│ │ │ 'dbt_workflows': { │ │
│ │ │ │ 'target': 'dev', │ │
│ │ │ │ 'outputs': { │ │
│ │ │ │ │ 'dev': { │ │
│ │ │ │ │ │ 'dataset': 'headroom_dev', │ │
│ │ │ │ │ │ 'job_execution_timeout_seconds': 3600, │ │
│ │ │ │ │ │ 'job_retries': 0, │ │
│ │ │ │ │ │ 'location': 'US', │ │
│ │ │ │ │ │ 'method': 'oauth', │ │
│ │ │ │ │ │ 'priority': 'interactive', │ │
│ │ │ │ │ │ 'project': 'gcp-wow-rwds-ai-onep-dev', │ │
│ │ │ │ │ │ 'threads': 20, │ │
│ │ │ │ │ │ 'type': 'bigquery' │ │
│ │ │ │ │ }, │ │
│ │ │ │ │ 'prod': { │ │
│ │ │ │ │ │ 'dataset': 'headroom_dev', │ │
│ │ │ │ │ │ 'job_execution_timeout_seconds': 3600, │ │
│ │ │ │ │ │ 'job_retries': 0, │ │
│ │ │ │ │ │ 'location': 'US', │ │
│ │ │ │ │ │ 'method': 'oauth', │ │
│ │ │ │ │ │ 'priority': 'interactive', │ │
│ │ │ │ │ │ 'project': 'gcp-wow-rwds-ai-onep-dev', │ │
│ │ │ │ │ │ 'threads': 20, │ │
│ │ │ │ │ │ 'type': 'bigquery' │ │
│ │ │ │ │ } │ │
│ │ │ │ } │ │
│ │ │ } │ │
│ │ } │ │
│ │ dbt_project_dir = PosixPath('/Users/SW/woolies_git/thecounts-onep-headroom… │ │
│ │ dbt_project_name = 'dbt_workflows' │ │
│ │ dbt_project_yaml = { │ │
│ │ │ 'name': 'dbt_workflows', │ │
│ │ │ 'version': '1.0.0', │ │
│ │ │ 'config-version': 2, │ │
│ │ │ 'profile': 'dbt_workflows', │ │
│ │ │ 'model-paths': ['models'], │ │
│ │ │ 'analysis-paths': ['analyses'], │ │
│ │ │ 'test-paths': ['tests'], │ │
│ │ │ 'seed-paths': ['seeds'], │ │
│ │ │ 'macro-paths': ['macros'], │ │
│ │ │ 'snapshot-paths': ['snapshots'], │ │
│ │ │ ... +3 │ │
│ │ } │ │
│ │ dbt_project_yaml_path = PosixPath('/Users/SW/woolies_git/thecounts-onep-headroom… │ │
│ │ project_name = 'dagster_onep' │ │
│ │ use_dbt_project_package_data_dir = False │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │
│ /Users/SW/.pyenv/versions/3.9.2/lib/python3.9/site-packages/dagster_dbt/cli/app.py:91 in │
│ <listcomp> │
│ │
│ 88 │ dbt_adapter_packages = [ │
│ 89 │ │ dbt_adapter_pypi_package_for_target_type(target["type"]) │
│ 90 │ │ for profile in dbt_profiles_yaml.values() │
│ ❱ 91 │ │ for target in profile["outputs"].values() │
│ 92 │ ] │
│ 93 │ │
│ 94 │ if use_dbt_project_package_data_dir: │
│ │
│ ╭─────────────────────── locals ───────────────────────╮ │
│ │ .0 = <dict_valueiterator object at 0x1075c89f0> │ │
│ │ profile = { │ │
│ │ │ 'send_anonymous_usage_stats': False, │ │
│ │ │ 'use_colors': False, │ │
│ │ │ 'partial_parse': False, │ │
│ │ │ 'printer_width': 120, │ │
│ │ │ 'warn_error': True, │ │
│ │ │ 'fail_fast': True │ │
│ │ } │ │
│ ╰──────────────────────────────────────────────────────╯ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
KeyError: 'outputs'
Si Wang
08/21/2023, 2:55 AMPedram Navid
08/21/2023, 3:01 AMconfig:
section in the profiles.yml
to see if that works?Pedram Navid
08/21/2023, 3:02 AMconfig
section in the profiles.yaml
If that works, I'll open an issue to fix itrex
08/21/2023, 2:25 PMSi Wang
08/21/2023, 8:26 PM