Connettersi a dbt Core
Nota
Questo articolo illustra dbt Core, una versione di dbt per il computer di sviluppo locale che interagisce con databricks SQL warehouse e cluster Azure Databricks all'interno delle aree di lavoro di Azure Databricks. Per usare invece la versione ospitata di dbt (denominata dbt Cloud) o per usare Partner Connect per creare rapidamente un warehouse SQL all'interno dell'area di lavoro e quindi connetterlo a dbt Cloud, vedere Connettersi a dbt Cloud.
dbt (data build tool) è un ambiente di sviluppo che consente agli analisti dei dati e ai data engineer di trasformare i dati semplicemente scrivendo istruzioni select. dbt gestisce la trasformazione di queste istruzioni select in tabelle e viste. dbt compila il codice in SQL non elaborato e quindi esegue tale codice nel database specificato in Azure Databricks. dbt supporta modelli di codifica collaborativi e procedure consigliate, ad esempio il controllo della versione, la documentazione, la modularità e altro ancora.
dbt non estrae o carica i dati. dbt è incentrato solo sul passaggio di trasformazione, usando un'architettura "transform after load". dbt presuppone che nel database sia già presente una copia dei dati.
Questo articolo è incentrato sull'uso di dbt Core. dbt Core consente di scrivere codice dbt nell'editor di testo o nell'IDE di propria scelta nel computer di sviluppo locale e quindi eseguire dbt dalla riga di comando. dbt Core include l'interfaccia della riga di comando dbt. L'interfaccia della riga di comando di dbt è gratuita da usare e open source.
È disponibile anche una versione ospitata di dbt denominata dbt Cloud. dbt Cloud è dotato di supporto chiavi in mano per la pianificazione di processi, CI/CD, documentazione, monitoraggio e avvisi e un ambiente di sviluppo integrato (IDE). Per altre informazioni, vedere Connettersi a dbt Cloud. Il piano dbt Cloud Developer offre un posto gratuito per sviluppatori; Sono disponibili anche piani a pagamento team ed Enterprise. Per altre informazioni, vedere dbt Pricing (Prezzi dbt) nel sito Web dbt.
Poiché dbt Core e dbt Cloud possono usare repository Git ospitati (ad esempio, in GitHub, GitLab o BitBucket), è possibile usare dbt Core per creare un progetto dbt e renderlo disponibile agli utenti di dbt Cloud. Per altre informazioni, vedere Creazione di un progetto dbt e Uso di un progetto esistente nel sito Web dbt.
Per una panoramica generale di dbt, guardare il video di YouTube seguente (26 minuti).
Requisiti
Prima di installare dbt Core, è necessario installare quanto segue nel computer di sviluppo locale:
- Python 3.7 o versione successiva
- Utilità per la creazione di ambienti virtuali Python ( ad esempio pipenv)
Per eseguire l'autenticazione è necessario anche uno dei seguenti:
(Consigliato) dbt Core abilitato come applicazione OAuth nell'account. L'impostazione è abilitata per impostazione predefinita.
Un token di accesso personale
Nota
Come procedura consigliata per la sicurezza quando si esegue l'autenticazione con strumenti automatizzati, sistemi, script e app, Databricks consiglia di usare i token OAuth.
Se si usa l'autenticazione del token di accesso personale, Databricks consiglia di usare token di accesso personali appartenenti alle entità servizio anziché agli utenti dell'area di lavoro. Per creare token per le entità servizio, vedere Gestire i token per un'entità servizio.
Passaggio 1: Creare e attivare un ambiente virtuale Python
In questo passaggio si usa pipenv
per creare un ambiente virtuale Python. È consigliabile usare un ambiente virtuale Python perché isola le versioni dei pacchetti e le dipendenze del codice in tale ambiente specifico, indipendentemente dalle versioni del pacchetto e dalle dipendenze del codice all'interno di altri ambienti. Ciò consente di ridurre le mancate corrispondenze impreviste della versione del pacchetto e i conflitti di dipendenza del codice.
Dal terminale passare a una directory vuota, creando prima di tutto la directory, se necessario. Questa procedura crea una directory vuota denominata
dbt_demo
nella radice della home directory dell'utente.Unix, Linux, macOS
mkdir ~/dbt_demo cd ~/dbt_demo
Finestre
mkdir %USERPROFILE%\dbt_demo cd %USERPROFILE%\dbt_demo
In questa directory vuota creare un file denominato
Pipfile
con il contenuto seguente. Questo pipfile indicapipenv
di usare Python versione 3.8.6. Se si usa una versione diversa, sostituire3.8.6
con il numero di versione.[[source]] url = "https://pypi.org/simple" verify_ssl = true name = "pypi" [packages] dbt-databricks = "*" [requires] python_version = "3.8.6"
Nota
La riga
dbt-databricks = "*"
precedente indicapipenv
di usare la versione più recente deldbt-databricks
pacchetto. Negli scenari di produzione è consigliabile sostituire*
con la versione specifica del pacchetto che si vuole usare. Databricks consiglia la versione 1.6.0 o successiva del pacchetto dbt-databricks. Vedere dbt-databricks Release history (Cronologia delle versioni di dbt-databricks) nel sito Web Python Package Index (PyPI).Creare un ambiente virtuale Python in questa directory eseguendo
pipenv
e specificando la versione di Python da usare. Questo comando specifica Python versione 3.8.6. Se si usa una versione diversa, sostituire3.8.6
con il numero di versione:pipenv --python 3.8.6
Installare l'adapter dbt Databricks eseguendo
pipenv
con l'opzioneinstall
. Vengono installati i pacchetti inPipfile
, che include il pacchetto dell'adapter dbt Databricks, ,dbt-databricks
da PyPI. Il pacchetto dell'adapter dbt Databricks installa automaticamente dbt Core e altre dipendenze.Importante
Se il computer di sviluppo locale usa uno dei sistemi operativi seguenti, è necessario completare prima i passaggi aggiuntivi: CentOS, MacOS, Ubuntu, Debian e Windows. Vedere la sezione "Does my operating system have prerequisites" ( Usa pip per installare dbt nel sito Web dbt Labs).
pipenv install
Attivare questo ambiente virtuale eseguendo
pipenv shell
. Per confermare l'attivazione, il terminale viene visualizzato(dbt_demo)
prima del prompt. L'ambiente virtuale inizia a usare la versione specificata di Python e isola tutte le versioni del pacchetto e le dipendenze del codice all'interno di questo nuovo ambiente.pipenv shell
Nota
Per disattivare questo ambiente virtuale, eseguire
exit
.(dbt_demo)
scompare da prima del prompt. Se si eseguepython --version
opip list
con questo ambiente virtuale disattivato, è possibile che venga visualizzata una versione diversa di Python, un elenco diverso di pacchetti o versioni del pacchetto disponibili o entrambi.Verificare che l'ambiente virtuale esegua la versione prevista di Python eseguendo
python
con l'opzione--version
.python --version
Se viene visualizzata una versione imprevista di Python, assicurarsi di aver attivato l'ambiente virtuale eseguendo
pipenv shell
.Verificare che l'ambiente virtuale esegua le versioni previste di dbt e l'adapter dbt Databricks eseguendo
dbt
con l'opzione--version
.dbt --version
Se viene visualizzata una versione imprevista di dbt o della scheda dbt Databricks, assicurarsi di aver attivato l'ambiente virtuale eseguendo
pipenv shell
. Se viene ancora visualizzata una versione imprevista, provare a installare di nuovo dbt o l'adapter dbt Databricks dopo aver attivato l'ambiente virtuale.
Passaggio 2: Creare un progetto dbt e specificare e testare le impostazioni di connessione
In questo passaggio viene creato un progetto dbt, ovvero una raccolta di directory e file correlati necessari per usare dbt. Si configurano quindi i profili di connessione, che contengono le impostazioni di connessione a un cluster di Azure Databricks, a un'istanza di SQL Warehouse o a entrambi. Per aumentare la sicurezza, i progetti e i profili dbt vengono archiviati in posizioni separate per impostazione predefinita.
Suggerimento
È possibile connettersi a un cluster esistente o a sql warehouse oppure crearne uno nuovo.
- Un cluster esistente o sql warehouse può essere efficiente per più progetti dbt, per l'uso di dbt in un team o per i casi d'uso di sviluppo.
- Un nuovo cluster o sql warehouse consente di eseguire un singolo progetto dbt in isolamento per i casi d'uso di produzione, oltre a sfruttare la terminazione automatica per risparmiare sui costi quando il progetto dbt non è in esecuzione.
Usare Azure Databricks per creare un nuovo cluster o SQL Warehouse e quindi fare riferimento al cluster appena creato o esistente o a SQL Warehouse dal profilo dbt.
Con l'ambiente virtuale ancora attivato, eseguire il comando dbt init con un nome per il progetto. Questa procedura crea un progetto denominato
my_dbt_demo
.dbt init my_dbt_demo
Quando viene richiesto di scegliere un
databricks
database ospark
, immettere il numero corrispondente adatabricks
.Quando viene richiesto un
host
valore, eseguire le operazioni seguenti:- Per un cluster, immettere il valore Nome host server dalla scheda Opzioni avanzate, JDBC/ODBC per il cluster Azure Databricks.
- Per un'istanza di SQL Warehouse, immettere il valore Nome host server nella scheda Dettagli connessione per sql warehouse.
Quando viene richiesto un
http_path
valore, eseguire le operazioni seguenti:- Per un cluster, immettere il valore percorso HTTP dalla scheda Opzioni avanzate, JDBC/ODBC per il cluster Azure Databricks.
- Per un'istanza di SQL Warehouse, immettere il valore percorso HTTP nella scheda Dettagli connessione per sql warehouse.
Per scegliere un tipo di autenticazione, immettere il numero corrispondente a
use oauth
(scelta consigliata) ouse access token
.Se si sceglie
use access token
per il tipo di autenticazione, immettere il valore del token di accesso personale di Azure Databricks.Nota
Come procedura consigliata per la sicurezza, quando si esegue l'autenticazione con strumenti automatizzati, sistemi, script e app, Databricks consiglia di usare token di accesso personali appartenenti alle entità servizio anziché agli utenti dell'area di lavoro. Per creare token per le entità servizio, vedere Gestire i token per un'entità servizio.
Quando viene richiesto il
desired Unity Catalog option
valore, immettere il numero corrispondente ause Unity Catalog
onot use Unity Catalog
.Se si sceglie di usare Unity Catalog, immettere il valore desiderato per
catalog
quando richiesto.Immettere i valori desiderati per
schema
ethreads
quando richiesto.dbt scrive le voci in un
profiles.yml
file. Il percorso di questo file è elencato nell'output deldbt init
comando . È anche possibile elencare questo percorso in un secondo momento eseguendo ildbt debug --config-dir
comando . È ora possibile aprire questo file per esaminarne e verificarne il contenuto.Se si è scelto
use oauth
per il tipo di autenticazione, aggiungere il profilo di autenticazione da computer a computer (M2M) o da utente a computer (U2M) aprofiles.yml
.Per esempi, vedere Configurare l'accesso ad Azure Databricks da dbt Core con Microsoft Entra ID.
Databricks non consiglia di specificare direttamente i segreti.
profiles.yml
Impostare invece l'ID client e il segreto client come variabili di ambiente.Verificare che i dettagli della connessione siano corretti attraversando la
my_dbt_demo
directory ed eseguendo ildbt debug
comando .Se si sceglie
use oauth
per il tipo di autenticazione, viene richiesto di accedere con il provider di identità.Importante
Prima di iniziare, verificare che il cluster o SQL Warehouse sia in esecuzione.
L'output dovrebbe essere simile al seguente:
cd my_dbt_demo dbt debug
... Configuration: profiles.yml file [OK found and valid] dbt_project.yml file [OK found and valid] Required dependencies: - git [OK found] Connection: ... Connection test: OK connection ok
Passaggi successivi
- Creare, eseguire e testare modelli dbt Core in locale. Vedere l'esercitazione su dbt Core.
- Eseguire progetti dbt Core come attività di processo di Azure Databricks. Vedere Usare le trasformazioni dbt in un processo di Azure Databricks.