Fixing MissingPlusPrefixDeprecation for job_cluster_config in dbt_project.yml causes “Missing required field” errors

Aperta
#1,301 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à
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
50/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
python
Ambito
cloud

Direzione di ricerca

Riproduci entrambe le configurazioni dbt_project.yml con submission_method: job_cluster e confronta il percorso MissingPlusPrefixDeprecation con il percorso di creazione di un cluster di job Databricks. Traccia il modo in cui i campi job_cluster_config preceduti da plus vengono passati attraverso l’adapter; il lavoro è completato quando l’avviso di deprecazione è risolto senza che si verifichino Missing required field errors.

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

Descrizione

bug Stale
Describe the bug

Without + on job_cluster_config fields, dbt emits MissingPlusPrefixDeprecation warning(s).

After adding + to job_cluster_config fields to resolve the warning, Databricks job cluster creation fails with “Missing required field …” errors for all plus-prefixed fields.

Steps To Reproduce
  1. In dbt_project.yml, configure Databricks job submission using submission_method: job_cluster and a
    job_cluster_config like:

Version A (produces deprecation warning):

models:
  project_name:
    +submission_method: job_cluster
    +job_cluster_config:
      spark_version: "16.4.x-photon-scala2.13"
      node_type_id: "md-fleet.xlarge"
      autoscale: {"min_workers": 1, "max_workers": 8}
      data_security_mode: "USER_ISOLATION"
      policy_id: "{{ env_var('DBT_POLICY_ID') }}"
      aws_attributes:
        availability: "ON_DEMAND"
  1. Run dbt run -s model_name.
  2. Observe MissingPlusPrefixDeprecation warnings referencing job_cluster_config fields.
  3. Update dbt_project.yml to:

Version B (resolves deprecation warning, triggers runtime error):

models:
  project_name:
    +submission_method: job_cluster
    +job_cluster_config:
      +spark_version: "16.4.x-photon-scala2.13"
      +node_type_id: "md-fleet.xlarge"
      autoscale: {+"min_workers": 1, +"max_workers": 8}
      +data_security_mode: "USER_ISOLATION"
      +policy_id: "{{ env_var('DBT_POLICY_ID') }}"
      aws_attributes:
        +availability: "ON_DEMAND"
  1. Run dbt run -s model_name again.
  2. Observe the Databricks job cluster creation fails with errors like:
  • Missing required field 'spark_version'
  • Missing required field 'node_type_id'
  • Missing required field 'autoscale'
  • Missing required field 'data_security_mode'
  • etc. (applies to all fields that were plus-prefixed)
Expected behavior

Either:

  • job_cluster_config fields in dbt_project.yml do not require + prefixes (and do not trigger MissingPlusPrefixDeprecation), or
  • if + prefixes are required to satisfy deprecation behavior, the resulting configuration should allow successful Databricks job cluster creation without the "Missing required field..." errors.
Screenshots and log output
  • MissingPlusPrefixDeprecation warning screenshot/log excerpt:
Image
  • Error output showing “Missing required field …” after plus-prefixing:
Image
System information

The output of dbt --version:
Image

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.