Questa pagina mostra come modificare le impostazioni di elaborazione del flusso di lavoro SQL Dataform per un repository specifico.
Potrebbe essere opportuno modificare il file delle impostazioni per rinominare gli schemi o aggiungere variabili di compilazione personalizzate al tuo repository.
Informazioni sulle impostazioni del repository
Ogni repository Dataform contiene un file univoco di impostazioni del flusso di lavoro. Il file contiene l'ID progetto Google Cloud e lo schema in cui Dataform pubblica gli asset in BigQuery. Dataform utilizza le impostazioni predefinite che puoi ignorare in base alle tue esigenze modificando il file delle impostazioni.
A partire da Dataform core 3.0,
per impostazione predefinita, le impostazioni del flusso di lavoro vengono archiviate
nel file workflow_settings.yaml
. Nelle versioni precedenti del core Dataform, le impostazioni del flusso di lavoro vengono archiviate nel file dataform.json
.
Il file Dataform core 3.0 workflow_settings.yaml
è
compatibile con le versioni precedenti di dataform.json
. Puoi continuare a utilizzare
dataform.json
per configurare le impostazioni di Dataform.
Informazioni su workflow_settings.yaml
Il file workflow_settings.yaml
, introdotto nel core Dataform 3.0, archivia le impostazioni del flusso di lavoro Dataform nel formato YAML
.
Il seguente esempio di codice mostra un file workflow_settings.yaml
di esempio:
defaultProject: my-gcp-project-id
defaultDataset: dataform
defaultLocation: australia-southeast2
defaultAssertionDataset: dataform_assertions
Nell'esempio di codice precedente, le coppie chiave-valore sono descritte come segue:
defaultProject
: l'ID del tuo progetto Google Cloud di BigQuery.defaultDataset
: il set di dati BigQuery in cui Dataform crea gli asset, chiamatodataform
per impostazione predefinita.defaultLocation
: la regione predefinita del set di dati BigQuery. Per saperne di più sulle posizioni dei set di dati BigQuery, consulta Località dei set di dati In questa località, Dataform elabora il tuo codice e archivia i dati eseguiti. Questa regione di elaborazione deve corrispondere alla località dei set di dati BigQuery, ma non alla regione del repository Dataform.defaultAssertionDataset
: il set di dati BigQuery in cui Dataform crea viste con risultati delle asserzioni, chiamatidataform_assertions
per impostazione predefinita.
Per maggiori informazioni sulle proprietà workflow_settings.yaml
, consulta la documentazione di riferimento alle configurazioni per le impostazioni del flusso di lavoro in GitHub.
Puoi accedere alle proprietà definite in workflow_settings.yaml
nel codice
Dataform come proprietà dell'oggetto
dataform.projectConfig
.
Si applicano le seguenti mappature delle opzioni workflow_settings.yaml
al codice accessibile
dataform.projectConfig
:
defaultProject
=>defaultDatabase
.defaultDataset
=>defaultSchema
.defaultAssertionDataset
=>assertionSchema
.projectSuffix
=>databaseSuffix
.datasetSuffix
=>schemaSuffix
.namePrefix
=>tablePrefix
.
Il seguente esempio di codice mostra l'oggetto dataform.projectConfig
chiamato
in un'istruzione SELECT
in una vista:
config { type: "view" }
SELECT ${when(
!dataform.projectConfig.tablePrefix,
"table prefix is set!",
"table prefix is not set!"
)}
Informazioni su dataform.json
Il file dataform.json
archivia le impostazioni del flusso di lavoro Dataform
nel formato JSON
.
Il seguente esempio di codice mostra un file dataform.json
di esempio:
{
"warehouse": "bigquery",
"defaultDatabase": "my-gcp-project-id",
"defaultSchema": "dataform",
"defaultLocation": "australia-southeast2",
"assertionSchema": "dataform_assertions"
}
Nell'esempio di codice precedente, le coppie chiave-valore sono descritte come segue:
warehouse
: un puntatore a BigQuery, dove Dataform crea gli asset.defaultDatabase
: l'ID del tuo progetto Google Cloud di BigQuery.defaultSchema
: il set di dati BigQuery in cui Dataform crea gli asset, chiamatodataform
per impostazione predefinita.defaultLocation
: la regione predefinita del set di dati BigQuery. Per saperne di più sulle posizioni dei set di dati BigQuery, consulta Località dei set di dati In questa località, Dataform elabora il tuo codice e archivia i dati eseguiti. Questa regione di elaborazione deve corrispondere alla località dei set di dati BigQuery, ma non alla regione del repository Dataform.assertionSchema
: il set di dati BigQuery in cui Dataform crea viste con risultati delle asserzioni, chiamatidataform_assertions
per impostazione predefinita.
Puoi accedere alle proprietà definite in dataform.json
nel codice del progetto come
proprietà dell'oggetto dataform.projectConfig
.
Prima di iniziare
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per configurare le impostazioni Dataform,
chiedi all'amministratore di concederti il ruolo IAM
Amministratore Dataform (roles/dataform.admin
) nei repository.
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Configura i nomi degli schemi
Per configurare i nomi dello schema, devi modificare le proprietà defaultDataset
e
defaultAssertionSchema
nel
file workflow_settings.yaml
oppure le proprietà defaultSchema
e assertionSchema
nel file dataform.json
.
Per configurare il nome di uno schema:
workflow_settings.yaml
Nell'area di lavoro di sviluppo, nel riquadro File, fai clic sul file
workflow_settings.yaml
.Modifica il valore di
defaultDataset
,defaultAssertionSchema
o entrambi.
Il seguente esempio di codice mostra un nome defaultDataset
personalizzato definito nel
file workflow_settings.yaml
:
...
defaultDataset: mytables
...
dataform.json
Nell'area di lavoro di sviluppo, nel riquadro File, fai clic sul file
dataform.json
.Modifica il valore di
defaultSchema
,assertionSchema
o entrambi.
Il seguente esempio di codice mostra un nome defaultSchema
personalizzato definito nel
file dataform.json
:
{
...
"defaultSchema": "mytables",
...
}
Creare variabili di compilazione personalizzate
Le variabili di compilazione contengono valori che puoi modificare con gli override della compilazione in una configurazione di release o in una richiesta API Dataform.
Dopo aver definito una variabile di compilazione in workflow_settings.yaml
e averla aggiunta alle tabelle selezionate, puoi modificarne il valore in una configurazione di release o utilizzare gli override delle compilazioni dell'API Dataform per eseguire le tabelle in modo condizionale.
Per ulteriori informazioni sull'esecuzione delle tabelle in modo condizionale utilizzando le variabili di compilazione, consulta Introduzione al ciclo di vita del codice in Dataform.
Per creare una variabile di compilazione da utilizzare in un repository, segui questi passaggi:
workflow_settings.yaml
- Vai all'area di lavoro di sviluppo di Dataform.
- Nel riquadro File, seleziona il file
workflow_settings.yaml
. Inserisci il seguente snippet di codice:
"vars": { "YOUR_VARIABLE":"VALUE" }
Sostituisci quanto segue:
- YOUR_VARIABLE con un nome per la variabile.
- VALUE con il valore predefinito della variabile di compilazione.
Il seguente esempio di codice mostra la variabile di compilazione myVariableName
impostata su myVariableValue
nel file workflow_settings.yaml
:
...
vars:
myVariableName: myVariableValue
...
Il seguente esempio di codice mostra il file workflow_settings.yaml
con la variabile di compilazione executionSetting
impostata su dev
:
defaultProject: default_bigquery_database
defaultLocation: us-west1
defaultDataset: dataform_data,
vars:
executionSetting: dev
dataform.json
- Vai all'area di lavoro di sviluppo di Dataform.
- Nel riquadro File, seleziona il file
dataform.json
. Inserisci il seguente snippet di codice:
"vars": { "YOUR_VARIABLE":"VALUE" }
Sostituisci quanto segue:
- YOUR_VARIABLE con un nome per la variabile.
- VALUE con il valore predefinito della variabile di compilazione.
Il seguente esempio di codice mostra la variabile di compilazione myVariableName
impostata su myVariableValue
nel file dataform.json
:
{
...
"vars": {
"myVariableName": "myVariableValue"
},
...
}
Il seguente esempio di codice mostra il file dataform.json
con la variabile di compilazione executionSetting
impostata su dev
:
{
"warehouse": "bigquery",
"defaultSchema": "dataform_data",
"defaultDatabase": "default_bigquery_database".
"defaultLocation":"us-west-1",
"vars": {
"executionSetting":"dev"
}
}
Aggiungere una variabile di compilazione a una tabella
Per aggiungere una variabile di compilazione a un file di definizione di tabella SQLX, segui questi passaggi:
- Vai all'area di lavoro di sviluppo di Dataform.
- Nel riquadro File, seleziona un file di definizione di tabella SQLX.
Nel file, inserisci una clausola
when
nel seguente formato:${when(dataform.projectConfig.vars.YOUR_VARIABLE === "SET_VALUE", "CONDITION")}
Sostituisci quanto segue:
- YOUR_VARIABLE con il nome della variabile,
ad esempio
executionSetting
. - SET_VALUE con un valore per la variabile,
ad esempio
staging
. - CONDITION con una condizione per l'esecuzione della tabella.
- YOUR_VARIABLE con il nome della variabile,
ad esempio
Il seguente esempio di codice mostra un file SQLX di definizione di tabella con una clausola when
e la variabile executionSetting
che esegue il 10% dei dati nell'impostazione di esecuzione temporanea:
select
*
from ${ref("data")}
${when(
dataform.projectConfig.vars.executionSetting === "staging",
"where mod(farm_fingerprint(id) / 10) = 0",
)}
Il seguente esempio di codice mostra un file SQLX di definizione della vista con una clausola when
e la variabile myVariableName
:
config { type: "view" }
SELECT ${when(
dataform.projectConfig.vars.myVariableName === "myVariableValue",
"myVariableName is set to myVariableValue!",
"myVariableName is not set to myVariableValue!"
)}
Passaggi successivi
Per scoprire di più sulle impostazioni del progetto Dataform, consulta la documentazione di riferimento di
IProjectConfig
.Per scoprire come eseguire il controllo della versione del codice in Dataform, consulta Controllo della versione del codice.
Per informazioni su come definire una tabella, consulta Creare una tabella.