The dbt-netezza package contains all of the code required to make dbt operate on a Netezza database. For more information on using dbt, consult their docs.
Code and documentation inspired by the redshift dbt plugin, as Netezza and Redshift share some common architectural patterns.
Tables in Netezza have an optimization to improve query performance called distribution keys. Supplying these values as model-level configurations apply the corresponding settings in the generated CREATE TABLE DDL. Note that these settings will have no effect for models set to view or ephemeral models.
distcan take a setting ofrandom, a single column as a string (e.g.visit_key), or a list of columns (e.g.['visit_key','visit_event_key'])
Dist keys can be added to the {{ config(...) }} block for a specific model .sql file, e.g.:
-- Example with one sort key
{{ config(materialized='table', dist='visit_key') }}
select ...
-- Example with multiple sort keys
{{ config(materialized='table', dist=['visit_key', 'visit_event_key']) }}
select ...Dist keys can also be added to the dbt_project.yml file config to set a default, e.g.
# dbt_project.yml
name: "my_project"
version: "0.0.1"
config-version: 2
...
models:
my_project:
+materialized: table
+dist: random