cnstlungu / portable-data-stack-dagster

A portable Datamart and Business Intelligence suite built with Docker, Dagster, dbt, DuckDB, PostgreSQL and Superset
MIT License
181 stars 37 forks source link

Duckdb example database is version 7.0 #1

Closed developeer closed 1 year ago

developeer commented 1 year ago

Getting error that the database is an old version 0.7 and version expected is 0.8.
The example database is empty. I assume it would get populated with data during build. I ran the build again but the database has no data.

The superset docker file installs the latest driver instead of the specific version for the datamart.duckdb database.

If I try to run the dashboard I get

Catalog Error: Table with name fact_sales does not exist! Did you mean "temp.information_schema.tables"? This may be triggered by: Issue 1002 - The database returned an unexpected error.

also get erro: FATAL: role "root" does not exist

The database is empty.

dagster is getting an error: Copydagster_dbt.errors.DagsterDbtCliFatalRuntimeError: Fatal error in the dbt CLI (return code 2): Running with dbt=1.6.1 Registered adapter: duckdb=1.6.0 Encountered an error:Compilation Error dbt found 1 package(s) specified in packages.yml, but only 0 package(s) installed in dbt_packages. Run "dbt deps" to install package dependencies. File "/usr/local/lib/python3.11/site-packages/dagster/_grpc/server.py", line 290, in init self._loaded_repositories: Optional[LoadedRepositories] = LoadedRepositories( ^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/dagster/_grpc/server.py", line 134, in init loadable_targets = get_loadable_targets( ^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/dagster/_grpc/utils.py", line 57, in get_loadable_targets else loadable_targets_from_python_package(package_name, working_directory) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/dagster/_core/workspace/autodiscovery.py", line 48, in loadable_targets_from_python_package module = load_python_module( ^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/dagster/_core/code_pointer.py", line 135, in load_python_module return importlib.import_module(module_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/importlib/init.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "", line 1204, in _gcd_import File "", line 1176, in _find_and_load File "", line 1147, in _find_and_load_unlocked File "", line 690, in _load_unlocked File "", line 940, in exec_module File "", line 241, in _call_with_frames_removed File "/dagster-dbt/postcard_company_dm/postcard_company_dm/init.py", line 33, in defs = Definitions(assets=load_assets_from_dbt_project(DBT_PROJECT_PATH, profiles_dir=DBT_PROFILES, use_build_command=True), resources=model_resources, jobs=[run_dbt_test_job]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/dagster_dbt/asset_defs.py", line 605, in load_assets_from_dbt_project manifest, cli_output = _load_manifest_for_project( ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/dagster_dbt/asset_defs.py", line 85, in _load_manifest_for_project cli_output = execute_cli( ^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/dagster_dbt/core/utils.py", line 235, in execute_cli for event in _core_execute_cli( File "/usr/local/lib/python3.11/site-packages/dagster_dbt/core/utils.py", line 157, in _core_execute_cli raise DagsterDbtCliFatalRuntimeError(messages=messages)

developeer commented 1 year ago

The issue is line 41 in docker-compose.yaml. If it is removed the project works but the database is still empty but do not see any additional errors.

cnstlungu commented 1 year ago

Hi @developeer, thanks for reaching out. This should be fixed now.

I've upgraded the DuckDB database and fixed the dbt deps issue

Kindly check and let me know if you face any other issues.

image

developeer commented 1 year ago

The docker compose up --build worked but the datamark.duckdb is empty. the dashboard can't find the fact_sales table. It seems that the dagster/dbt job is not populating the database. image

does the job need to be run manually through dagster to populate the database? The page does not give any instructions to do that.

image

developeer commented 1 year ago

I expected that after running docker compose up --build, the dashboards could be access. The instructions do not mention anything about running the job to populate the tables. Once I ran the job, the dashboard showed up. Explicit instructions should be added or it should be automated so that. also you don't need docker-compose you can use docker compose now.

cnstlungu commented 1 year ago

Thanks @developeer , I have now updated the documentation to reflect these steps as well.