
dbt - Funzionalità avanzate
Macro Jinja, test personalizzati, packages, hooks, snapshots (SCD), incremental models, dbt Cloud, CI/CD
1In dbt, qual è lo scopo principale delle macro Jinja?
In dbt, qual è lo scopo principale delle macro Jinja?
Risposta
Le macro Jinja permettono di riutilizzare il codice SQL in più modelli dbt. Funzionano come funzioni che accettano parametri e restituiscono codice SQL generato dinamicamente. Questo evita la duplicazione del codice e facilita la manutenzione di trasformazioni complesse nell'intero progetto.
2Come definire una macro dbt riutilizzabile in un file?
Come definire una macro dbt riutilizzabile in un file?
Risposta
Una macro dbt è definita utilizzando la sintassi Jinja macro/endmacro in un file .sql all'interno della cartella macros. Il nome della macro è specificato dopo la parola chiave macro, seguito dai parametri tra parentesi. Questa macro può quindi essere chiamata da qualsiasi modello del progetto.
3Qual è la differenza tra le strategie 'timestamp' e 'check' per gli snapshots dbt?
Qual è la differenza tra le strategie 'timestamp' e 'check' per gli snapshots dbt?
Risposta
La strategia timestamp confronta una colonna di data di aggiornamento (updated_at) per rilevare i cambiamenti, il che è più performante in quanto confronta solo una colonna. La strategia check confronta i valori delle colonne specificate (check_cols) per rilevare qualsiasi cambiamento, utile quando non è disponibile una colonna timestamp affidabile.
Quali colonne vengono aggiunte automaticamente da dbt durante la creazione di uno snapshot?
Come configurare un modello incremental con la strategia 'merge' in dbt?
+17 domande da colloquio
Altri argomenti di colloquio Data Engineering
Linux & Shell - Fondamenti
Git & GitHub - Fondamenti
Python avanzato per Data Engineering
Docker - Fondamenti
Google Cloud Platform - Fondamenti
CI/CD e qualità del codice
Docker Compose
FastAPI - API per dati
SQL avanzato per il Data Engineering
Data Lake - Architettura e ingestione
BigQuery per il Data Engineering
PostgreSQL - Amministrazione
Data Modeling per Data Engineering
Fivetran & Airbyte - Ingestione dati
dbt - Fondamenti
Apache Airflow - Fondamenti
Kubernetes - Fondamenti
Pattern ETL / ELT / ETLT
Apache Airflow - Avanzato
Airflow + dbt - Orchestrazione delle pipeline
PySpark - Elaborazione su larga scala
Google Pub/Sub - Streaming di dati
Apache Beam & Dataflow
Kubernetes - Produzione e scaling
Terraform - Infrastructure as Code
Database NoSQL
Data Architecture moderna
Monitoraggio e osservabilità
IAM e sicurezza dei dati
Padroneggia Data Engineering per il tuo prossimo colloquio
Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.
Inizia gratis