Go to file
2023-03-14 17:06:27 -06:00
.github/workflows inital setup 2023-02-09 09:52:37 -05:00
analysis LiveQuery prod schemas (#4) 2023-02-24 10:03:53 -08:00
data add/overview-docs (#3) 2023-02-24 14:14:52 -07:00
docs docs 2023-02-09 09:54:22 -05:00
macros add/udf-hex-to-string (#6) 2023-03-14 13:55:47 -06:00
models modified docs to include quicknode url (#7) 2023-03-14 17:06:27 -06:00
snapshots inital setup 2023-02-09 09:52:37 -05:00
tests inital setup 2023-02-09 09:52:37 -05:00
.gitignore - create utility macros for creating udfs (#2) 2023-02-20 13:05:59 -08:00
.sqlfluff - create utility macros for creating udfs (#2) 2023-02-20 13:05:59 -08:00
.sqlfluffignore - create utility macros for creating udfs (#2) 2023-02-20 13:05:59 -08:00
cspell.yml - create utility macros for creating udfs (#2) 2023-02-20 13:05:59 -08:00
dbt_project.yml LiveQuery prod schemas (#4) 2023-02-24 10:03:53 -08:00
LICENSE Initial commit 2023-02-09 09:26:49 -05:00
packages.yml - create utility macros for creating udfs (#2) 2023-02-20 13:05:59 -08:00
profiles.yml inital setup 2023-02-09 09:52:37 -05:00
README.md LiveQuery prod schemas (#4) 2023-02-24 10:03:53 -08:00

LiveQuery Models

Dbt repo for managing LiveQuery database.

Profile Set Up

Use the following within profiles.yml

livequery:
  target: dev
  outputs:
    dev:
      type: snowflake
      account: <ACCOUNT>
      role: <ROLE>
      user: <USERNAME>
      password: <PASSWORD>
      region: <REGION>
      database: LIVEQUERY_DEV
      warehouse: <WAREHOUSE>
      schema: silver
      threads: 12
      client_session_keep_alive: False
      query_tag: <TAG>
    prod:
      type: snowflake
      account: <ACCOUNT>
      role: <ROLE>
      user: <USERNAME>
      password: <PASSWORD>
      region: <REGION>
      database: LIVEQUERY_DEV
      warehouse: <WAREHOUSE>
      schema: silver
      threads: 12
      client_session_keep_alive: False
      query_tag: <TAG>

Variables

To control the creation of UDF or SP macros with dbt run:

  • UPDATE_UDFS_AND_SPS When True, executes all macros included in the on-run-start hooks within dbt_project.yml on model run as normal When False, none of the on-run-start macros are executed on model run

Default values are False

  • Usage: dbt run --var 'UPDATE_UDFS_AND_SPS": True' -m ...

Dropping and creating udfs can also be done without running a model:

dbt run-operation create_udfs --var 'UPDATE_UDFS_AND_SPS": True' --args 'drop_:false'
dbt run-operation create_udfs --var 'UPDATE_UDFS_AND_SPS": True' --args 'drop_:true'

Resources

  • Learn more about dbt in the docs
  • Check out Discourse for commonly asked questions and answers
  • Join the chat on Slack for live discussions and support
  • Find dbt events near you
  • Check out the blog for the latest news on dbt's development and best practices

Applying Model Tags

Database / Schema level tags

Database and schema tags are applied via the add_database_or_schema_tags macro. These tags are inherited by their downstream objects. To add/modify tags call the appropriate tag set function within the macro.

{{ set_database_tag_value('SOME_DATABASE_TAG_KEY','SOME_DATABASE_TAG_VALUE') }}
{{ set_schema_tag_value('SOME_SCHEMA_TAG_KEY','SOME_SCHEMA_TAG_VALUE') }}

Model tags

To add/update a model's snowflake tags, add/modify the meta model property under config . Only table level tags are supported at this time via DBT.

{{ config(
    ...
    meta={
        'database_tags':{
            'table': {
                'PURPOSE': 'SOME_PURPOSE'
            }
        }
    },
    ...
) }}

By default, model tags are pushed to Snowflake on each load. You can disable this by setting the UPDATE_SNOWFLAKE_TAGS project variable to False during a run.

dbt run --var '{"UPDATE_SNOWFLAKE_TAGS":False}' -s models/core/core__fact_blocks.sql

Querying for existing tags on a model in snowflake

select *
from table(livequery.information_schema.tag_references('livequery.core.fact_blocks', 'table'));