I run `edr report` and get an empty report
I run `edr report` and get an empty report
If you get an empty report, there are several steps to understand what went wrong and try and fix it.1. Validate elementary dbt package is deployed and working:
- Check that dbt package version is the latest
-
Refer to the dbt package installation guide, and validate that your version in packages.yml is the one mentioned there. If not, upgrade and run
dbt deps
. Make sure to executedbt run --select elementary
for the package tables to be created. -
Check if the table
elementary_test_results
exists and has data -
If the table does not exist - refer to the dbt package installation guide. Make sure to execute
dbt run --select elementary
for the package tables to be created. -
If the table exists but has no data - Did you execute
dbt test
since deploying the package and creating the models? - If yes, make sure the table was created as an incremental table (not a regular table or view).
-
If not, there is a materialization configuration in your
dbt_project.yml
file that overrides the package config. Remove it, and rundbt run --select elementary --full-refresh
to recreate the tables. After that rundbt test
again and check if there is data. - Still no data in the table? Reach out to the elementary team at #support on Slack.
- Check the CLI version is the latest
-
Use the command
pip show elementary-data
to detect your version, and validate that it is the latest one. If not, runpip install elementary-data --upgrade
. - Try to force update the CLI internal packages
-
Run the CLI with the flag for force updating the packages:
edr report -u true
- Check that the connection profile exists in the right path and format
- Check that the connection profile points to the elementary package schema
- edr.log - Created on the execution folder of the CLI.
- dbt.log - Created under the package location at
/site-packages/monitor/dbt_project/logs/dbt.log
You can find the full path of the package location usingpip show elementary-data
.
Error: `cannot insert into a view`
Error: `cannot insert into a view`
Elementary dbt package includes macros that run insert commands to some of the models.
This error means that these models were materialized as views, and not as tables.
The reason for the error is probably a configuration on your We recommend moving this config to be strictly for models in your package, or else it will override the materialization of packages:
dbt_project.yml
file, under the key materialization
.Error: `command not found: edr` on macOS
Error: `command not found: edr` on macOS
In Python on macOS, when you globally install a package that has executables, such as Elementary’s As you can see,
edr
, it places the executable in a location that is not under the default PATH
which is the environment variable that is used for executable lookups. Here’s an example of the warning you might receive upon running python3 -m pip install elementary-data
.edr
is not found by default upon installation.
There are multiple ways to solve this.- Use the absolute path.
- Edit your shell’s configuration file(
~/.zshrc
) and append Python’s library path.
- Use Python’s virtual environment.
Error: `command not found: edr` on Windows
Error: `command not found: edr` on Windows
If you got a message After that restart your CMD and try
Successfully installed elementary-data
but get a command not found
error, it is probably because of a missing path in your environment variables.Look for a warning in your terminal saying:
Warning: the script edr.exe is installed in '<path>' which is not on PATH
This is the path that needs to be added to your windows env vars, run:edr
again.Error: No such command 'monitor'
Error: No such command 'monitor'
This means the installation was not completed successfully. This is usually a Python dependencies issue.Please try installing again on a clean virtual env:
WARNING - Installed package 'elementary' is overriding the built-in materialization 'XXX'
WARNING - Installed package 'elementary' is overriding the built-in materialization 'XXX'
Starting from dbt 1.8 and above, 3rd party dbt packages cannot override dbt materializations without an explicit configuration from users.
Elementary utilizes this dbt mechanism to add reporting functionality to non-Elementary tests (such as native dbt tests and expectations):
- Collection of the total number of failed rows.
- Collection of failed row samples.
- If you are using the most recent version of dbt 1.6 or 1.7 - this warning will appear by default, since it indicates the aforementioned behavior change in dbt 1.8.
- If you are using dbt 1.8 and above, this warning will NOT appear by default, however it will start appearing once you set the flag
require_explicit_package_overrides_for_builtin_materializations
tofalse
as required in the dbt package installation guide.
I changed the training period but the results are the same
I changed the training period but the results are the same
Elementary tests have a var named
training_period
.
If you change it after executing elementary tests, you will need to run a full refresh to the metrics collected. This will make the next tests collect data for the new training_period
timeframe.
The steps are:- Change var
training_period
in yourdbt_project.yml
. - Full refresh of the model ‘data_monitoring_metrics’ by running
dbt run --select data_monitoring_metrics --full-refresh
. - Running the elementary tests again.
edr report --days-back 45
I want to disable elementary models and / or tests temporarily
I want to disable elementary models and / or tests temporarily
If you want to prevent elementary tests from running the simplest way is to exclude the tag that marks all of them in your dbt command:If you add the following to your dbt_project.yml, elementary models will not run and elementary tests will be executed but will do nothing and always pass.
My problem is not listed here
My problem is not listed here
If you’re experiencing issues of any kind, please contact us on the #support channel.