dbt Integration

Honeydew dbt integration allows to materialize Honeydew-managed datasets via dbt.

Usage

Dynamic Datasets in dbt

Given a dynamic dataset named my_dataset_name create a dbt model called my_dataset_name.sql.

Put the following in the model code:

-- Optional: Set up various materialization parameters
{{ config(materialized='table') }}

-- Set up any additional dependencies in dbt with
-- depends_on: {{ ref('upstream_parent_model') }}

-- Dynamic dataset materialization
{{ honeydew.get_dataset_sql('my_dataset_name') }}

Setup

Installation

Honeydew runs in dbt projects connected to Snowflake. To interact with Honeydew, dbt can call the Honeydew Native Application.

Install the Honeydew dbt package by adding to packages.yml of your dbt project:

packages:
  - git: "https://github.com/honeydew-ai/honeydew-dbt.git"
    revision: "latest"

Run dbt deps to apply.

Set the following variables in the dbt project configuration (dbt_project.yml):

NameMeaning
honeydew:workspaceWorkspace in which to operate.
honeydew:branchBranch in which to operate. Default=prod
honeydew:snowflake_native_app_nameSnowflake native app installed name. Default=SEMANTIC_LAYER_ENTERPRISE_EDITION

An example dbt_project.yml configuration:

vars:
  "honeydew:workspace": "tpch_demo"
  "honeydew:branch": "prod"
  "honeydew:snowflake_native_app_name": "SEMANTIC_LAYER_ENTERPRISE_EDITION"

Metadata Sync

dbt Metadata Sync is coming soon.

Honeydew dbt metadata sync supports syncing with dbt the following metadata:

  • Source dbt model references (when source dbt model is set for entities)
  • Column descriptions
  • Labels (as tags)
  • General purpose metadata (if set)