Iceberg tables don't allow custom Materializations types

Aperta
#1,313 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 6 giorni

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
68/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Tranquilla
Stack tecnologico
python, sql
Ambito
databases

Direzione di ricerca

Inizia da dbt/adapters/databricks/impl.py intorno alla riga 260, dove viene segnalato il controllo della materializzazione Iceberg. Riproduci il problema con il modello custom_table_materialization.sql e i flag mostrati di dbt_project.yml. Il lavoro è completato quando la materializzazione personalizzata viene eseguita con table_format impostato su iceberg senza l’errore di runtime segnalato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug Stale
Describe the bug

When Iceberg tables are enabled with custom materialization types, dbt is explicitly checking if materialization is of types 'incremental', 'table', or 'snapshot' and erroing out. This works without any issues in delta format.

Steps To Reproduce
  1. Create a custom materialization type.
  2. Use the custom materialization type in a dbt model with table_format as iceberg.
  3. Run the dbt model.
Sample code

custom_table_materialization.sql
{% materialization custom_table_materialization, default %}
    {%- set target_relation = api.Relation.create(database=database, identifier=model['alias'], schema=schema, type='table') -%}

    {% set new_table_sql -%}
        {{ sql }}
    {%- endset %}

    {%- call statement('source_table_creation') -%}
        {{ dbt.create_table_as(False, target_relation, new_table_sql) }}
    {%- endcall -%}

    {{ return({'relations': [target_relation]}) }}

{%- endmaterialization %}
custom_mat_table.sql
{{
    config({
        "schema": var("core_silver_schema"),
        "materialized": "custom_table_materialization",
        "table_format": "iceberg",
        "file_format": "delta"
    })
}}

SELECT
    1 AS dummy_column
dbt_project.yml
.....
flags:
  use_managed_iceberg: true
  .....

Expected behavior

dbt model with custom materialization of iceberg type runs without any errors.

Screenshots and log output
Runtime Error in model custom_mat_tables (models/custom_mat_table.sql)
  When table_format is 'iceberg', materialized must be 'incremental', 'table', or 'snapshot'.
System information

The output of dbt --version:

Core:
  - installed: 1.11.2
  - latest:    1.11.2 - Up to date!

Plugins:
  - databricks: 1.11.4 - Up to date!
  - spark:      1.10.0 - Up to date!

The operating system you're using: macOS Tahoe: Version 26.2 (25C56)

The output of python --version: Python 3.12.11

Additional context

The problem appears to be a explicit check for these materializations in dbt create table macro. link

Lingua principale
Python
Stelle
391
Fork
231
Merge medio
9g 7h
PR unite (30g)
29

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di databricks/dbt-databricks

Tutte le issue di databricks/dbt-databricks

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.