dbt-labs / dbt-snowflake

dbt-snowflake contains all of the code enabling dbt to work with Snowflake
https://getdbt.com
Apache License 2.0
297 stars 177 forks source link

Add support for Iceberg Table Materialization #1170

Closed VersusFacit closed 2 months ago

VersusFacit commented 3 months ago

resolves: #321

Add support for Iceberg Table Materialization

Built atop jaffle shop classic for testing.

Problem

We want to add support for materialization S3 bucket Iceberg tables in Snowflake.

Example of our decided model config interface:

{{
  config(
    materialized = "table",
    table_format="iceberg",
    external_volume="s3_iceberg_snow",
    base_location="milas_working_folder",
  )
}}
-- transient gets auto-`falsed`
-- `transient=true` is ignored
select * from {{ ref('raw_orders') }}

Solution

Caveats

this is ready for review but needs two more things I can identify:

  1. a behavior flag to gate Iceberg (did we merge that capability yet?)
  2. activate tests (but while we have an Iceberg volume on our team cluster, it doesn't seem it's live yet on the CI one here)

Impact

Get this shipped for Cloud folks to start using!!

Manually testing scenarios

Checklist

github-actions[bot] commented 3 months ago

Thank you for your pull request! We could not find a changelog entry for this change. For details on how to document a change, see the dbt-snowflake contributing guide.

VersusFacit commented 2 months ago

Blocked by behavior flag / Jinja security issue. Once we have a solution forward, this PR is ready for code review round 2!