Questo documento descrive i metodi, le proprietà e le opzioni di configurazione di Dataform core. Puoi utilizzare il nucleo di Dataform nei file SQLX e JavaScript.
assert()
assert
|
(name: string, query?: AContextable
|
Aggiunge un'affermazione Dataform al grafico compilato. Disponibile solo nella directory |
Esempio:
// definitions/file.js
assert("name").query(ctx => "select 1");
CommonContext
I metodi di contesto sono disponibili durante la valutazione del codice SQL contestuale, ad esempio all'interno dei file SQLX, o quando si utilizza un argomento Contextable
con il nucleo di Dataform.
database
|
() => string
|
Restituisce il database di questo set di dati, se applicabile. | |
name
|
() => string
|
Restituisce il nome di questa tabella. | |
ref
|
(ref: Resolvable | string[], rest: string[]) => string
|
Fa riferimento a un'altra azione, aggiungendola come dipendenza a questa azione,
restituendo SQL valido da utilizzare in un'espressione from .
Questa funzione può essere chiamata con un oggetto
Questa funzione può essere chiamata anche utilizzando singoli argomenti per i valori ${ref("database", "schema", "name")}
${ref("schema", "name")}
${ref("name")}
|
|
resolve
|
(ref: Resolvable | string[], rest: string[]) => string
|
Simile a ref , ma non aggiunge l'azione di riferimento come dipendenza a questa azione.
|
|
self
|
() => string
|
Equivalente a resolve(name()) .
Restituisce una stringa SQL valida che può essere utilizzata per fare riferimento alla tabella prodotta da questa azione. |
|
schema
|
() => string
|
Restituisce lo schema di questo set di dati. |
Contestuale
Gli argomenti contestuali possono trasmettere un valore normale per il loro tipo genericoT
o una funzione chiamata con l'oggetto contesto per questo tipo di operazione.
T | (ctx: Context) => T
Dataform
Variabile globale contenente l'oggetto IProjectConfig.
Obbligatorio per ottenere le proprietà IProjectConfig
, ad esempio:
dataform.projectConfig.vars.myVariableName === "myVariableValue"
declare()
declare
|
(dataset: dataform.ITarget)
|
Dichiara il set di dati come origine dati Dataform. Disponibile solo nella directory |
Esempio:
// definitions/file.js
declare({name: "a-declaration"})
IActionConfig
Definisce i tag Dataform e le dipendenze applicate a un'azione del flusso di lavoro SQL.
tags
|
string[]
|
Un elenco di tag definiti dall'utente con cui l'azione deve essere etichettata. |
|
dependencies
|
Resolvable| Resolvable[]
|
Dipendenze dell'azione. |
|
disabled
|
boolean
|
Se impostato su true, questa azione non verrà eseguita. Tuttavia, l'azione può essere ancora considerata attendibile. È utile per disattivare temporaneamente le azioni non funzionanti. |
IAssertionConfig
Opzioni di configurazione per i tipi di azioni assertion
.
database
|
string
|
Il database (Google Cloud ID progetto) in cui creare la vista corrispondente per questa asserzione. | |
description
|
string
|
Una descrizione di questa affermazione. | |
disabled
|
boolean
|
Se impostato su true , questa azione non viene eseguita.
L'azione può comunque essere considerata attendibile. Utile per disattivare temporaneamente le azioni non funzionanti.
|
|
hermetic
|
boolean
|
Dichiara se questa azione è ermetica. Un'azione è ermetica
se tutte le sue dipendenze sono dichiarate esplicitamente.
Se questa azione dipende dai dati di un'origine non dichiarata come dipendenza, imposta |
|
schema
|
string
|
Lo schema (set di dati BigQuery) in cui creare la vista corrispondente per questa asserzione. | |
tags
|
string[]
|
Un elenco di tag definiti dall'utente applicati a questa azione. |
IBigQueryOptions
Opzioni di data warehouse specifiche per BigQuery.
additionalOptions
|
|
Coppie chiave/valore per le opzioni tabella, visualizzazione e vista materializzata.
Alcune opzioni, ad esempio
I valori stringa devono essere racchiusi tra virgolette doppie, ad esempio:
Se il nome dell'opzione contiene caratteri speciali, racchiudilo tra virgolette,
ad esempio: |
|
clusterBy
|
string[]
|
Le chiavi in base alle quali raggruppare le partizioni. | |
labels
|
|
Coppie chiave-valore per le etichette BigQuery.
Se il nome dell'etichetta contiene caratteri speciali, ad esempio i trattini,
chiudelo tra virgolette, ad esempio |
|
partitionBy
|
string
|
La chiave in base alla quale partizionare la tabella. In genere, il nome di un timestamp o della colonna della data. | |
partitionExpirationDays
|
number
|
Il numero di giorni per i quali BigQuery archivia i dati in ogni partizione. L'impostazione si applica a tutte le partizioni di una tabella, ma viene calcolata in modo indipendente per ogni partizione in base al momento della partizione. | |
requirePartitionFilter
|
boolean
|
Dichiara se la tabella partizionata richiede un filtro del predicato della clausola WHERE
che filtra la colonna di partizionamento.
|
|
updatePartitionFilter
|
string
|
Filtro basato su SQL per quando vengono applicati aggiornamenti incrementali. |
IColumnsDescriptor
Descrive le colonne di una tabella.
{ [name]: string | IRecordDescriptor }
IDeclarationConfig
Opzioni di configurazione per i tipi di azioni declaration
.
columns
|
IColumnsDescriptor
|
Una descrizione delle colonne all'interno della tabella. | |
database
|
string
|
Esista il database (Google Cloud ID progetto) in cui creare la tabella di origine. | |
description
|
string
|
Una descrizione della tabella. | |
schema
|
string
|
Lo schema (set di dati BigQuery) in cui esiste la tabella di origine. |
IDependenciesConfig
Definisce le dipendenze di un'azione del flusso di lavoro SQL.
dependencies
|
Resolvable| Resolvable[]
|
Una o più dipendenze esplicite per questa azione. Le azioni di dipendenza
verranno eseguite prima delle azioni dipendenti.
In genere, questo valore non viene impostato, perché la maggior parte delle dipendenze viene dichiarata come sottoprodotto dell'utilizzo della funzione |
|
hermetic
|
boolean
|
Dichiara se questa azione è o meno ermetica. Un'azione è ermetica se tutte le sue dipendenze sono dichiarate esplicitamente. Se questa azione dipende da
dati di un'origine che non è stata dichiarata come dipendenza, |
IDocumentableConfig
Definisce le descrizioni di un set di dati e delle relative colonne.
columns
|
IColumnsDescriptor
|
Una descrizione delle colonne all'interno del set di dati. |
|
description
|
string
|
Una descrizione del set di dati. |
INamedConfig
Definisce il tipo e il nome di un'azione del flusso di lavoro SQL.
type
|
string
|
Il tipo di azione. |
|
name
|
string
|
Il nome dell'azione. |
IOperationConfig
Opzioni di configurazione per i tipi di azioni operations
.
columns
|
IColumnsDescriptor
|
Una descrizione delle colonne all'interno della tabella. | |
database
|
string
|
Il database (Google Cloud ID progetto) in cui creare l'output di questa azione. | |
description
|
string
|
Una descrizione della tabella. | |
disabled
|
boolean
|
Se impostato su true , questa azione non viene eseguita.
L'azione può comunque essere considerata attendibile.
È utile per disattivare temporaneamente le azioni non funzionanti.
|
|
hasOutput
|
boolean
|
Dichiara che questa azione operations crea una tabella
a cui è possibile fare riferimento utilizzando la funzione ref .
Se impostato su create or replace table ${self()} as select ...
|
|
hermetic
|
boolean
|
Dichiara se questa azione è ermetica. Un'azione è ermetica
se tutte le sue dipendenze sono dichiarate esplicitamente.
Se questa azione dipende dai dati di un'origine non dichiarata come dipendenza, imposta |
|
schema
|
string
|
Lo schema (set di dati BigQuery) in cui creare l'output di questa azione. | |
tags
|
string[]
|
Un elenco di tag definiti dall'utente applicati a questa azione. |
IProjectConfig
Contiene le impostazioni di compilazione di un repository Dataform.
defaultDatabase
|
string
|
Obbligatorio. Il database predefinito (Google Cloud ID progetto). | |
defaultSchema
|
string
|
Obbligatorio. Lo schema predefinito (ID set di dati BigQuery). | |
defaultLocation
|
string
|
Obbligatorio. La posizione BigQuery predefinita da utilizzare. Per ulteriori informazioni sulle località BigQuery, consulta https://cloud.google.com/bigquery/docs/locations. | |
assertionSchema
|
string
|
Obbligatorio. Lo schema predefinito (ID set di dati BigQuery) per le asserzioni. | |
vars
|
map (key: string, value: string)
|
Facoltativo. Variabili definite dall'utente rese disponibili
al codice del progetto durante la compilazione.
Un oggetto contenente un elenco di coppie "key": value .
Esempio: { "name": "wrench", "mass": "1.3kg", "count": "3" } .
|
|
databaseSuffix
|
string
|
Facoltativo. Il suffisso da aggiungere a tutti i nomi del database (Google Cloud ID progetto). | |
schemaSuffix
|
string
|
Facoltativo. Il suffisso da aggiungere a tutti i nomi dello schema (ID set di dati BigQuery). | |
tablePrefix
|
string
|
Facoltativo. Il prefisso da anteporre a tutti i nomi delle tabelle. | |
warehouse
|
string
|
Obbligatorio. Deve essere impostato su bigquery .
|
Puoi impostare le proprietà IProjectConfig
nelle impostazioni del flusso di lavoro
a livello di repository.
Puoi sostituire le proprietà defaultSchema
e defaultDatabase
per le singole tabelle.
Puoi accedere a tutte le proprietà IProjectConfig
in un'istruzione SELECT
SQL
in un file SQLX o JavaScript.
Il seguente esempio di codice mostra la variabile di compilazione personalizzata myVariableName
impostata nelle impostazioni di flusso di lavoro con la proprietà projectConfig.vars
, a cui si accede in un'istruzione SELECT
in un file SQLX:
config { type: "view" }
SELECT ${when(
dataform.projectConfig.vars.myVariableName === "myVariableValue",
"myVariableName is set to myVariableValue!",
"myVariableName is not set to myVariableValue!"
)}
Per ulteriori informazioni sull'override delle impostazioni di configurazione del progetto per i singoli risultati di compilazione, consulta la risorsa REST projects.locations.repositories.compilationResults#CodeCompilationConfig
nell'API Dataform.
IRecordDescriptor
Descrive una struttura, un oggetto o un record in una tabella con colonne nidificate.
bigqueryPolicyTags
|
string | string[]
|
Identificatori completi dei tag di criteri BigQuery applicati
a questa colonna. Un identificatore completo di un tag criterio BigQuery include il nome, la posizione e la tassonomia del progetto.
Ad esempio: |
|
columns
|
IColumnsDescriptor
|
Una descrizione delle colonne all'interno della struttura, dell'oggetto o del record. | |
description
|
string
|
Una descrizione della struttura, dell'oggetto o del record. |
ITableAssertions
Opzioni per la creazione di asserzioni nell'ambito di una definizione di tabella.
nonNull
|
string | string[]
|
Colonne che non possono mai essere NULL .
Se impostato, l'affermazione corrispondente non va a buon fine se una riga contiene valori |
|
rowConditions
|
string[]
|
Condizioni generali che devono essere vere per tutte le righe della tabella.
Se impostato, l'affermazione corrispondente non va a buon fine se una riga viola una di queste condizioni. |
|
uniqueKey
|
string | string[]
|
Colonne che costituiscono l'indice della chiave univoca della tabella.
Se impostato, l'affermazione risultante non va a buon fine se nella tabella è presente più di una riga con gli stessi valori per tutte le colonne. |
|
uniqueKeys
|
[]
|
Combinazioni di colonne, ciascuna delle quali costituisce un indice di chiave univoca della tabella.
Se impostato, l'affermazione risultante non va a buon fine se nella tabella è presente più di una riga con gli stessi valori per tutte le colonne nelle chiavi univoche. |
ITableConfig
Opzioni di configurazione per le azioni table
, inclusi i tipi di tabelle table
, view
e incremental
.
Estende IActionConfig, IDependenciesConfig, IDocumentableConfig, INamedConfig e ITargetableConfig.
assertions
|
ITableAssertions
|
Verifiche da eseguire sulla tabella.
Se configurate, le asserzioni pertinenti vengono create automaticamente e eseguite come dipendenza di questa tabella. |
|
bigquery
|
IBigQueryOptions
|
Opzioni di data warehouse specifiche per BigQuery. | |
columns
|
IColumnsDescriptor
|
Una descrizione delle colonne all'interno della tabella. | |
database
|
string
|
Il database (Google Cloud ID progetto) in cui creare l'output di questa azione. | |
description
|
string
|
Una descrizione della tabella. | |
disabled
|
boolean
|
Se impostato su true , questa azione non viene eseguita.
L'azione può comunque essere considerata attendibile.
È utile per disattivare temporaneamente le azioni non funzionanti.
|
|
hermetic
|
boolean
|
Dichiara se questa azione è ermetica. Un'azione è ermetica se tutte le sue dipendenze sono dichiarate esplicitamente.
Se questa azione dipende dai dati di un'origine non dichiarata come dipendenza, imposta |
|
materialized
|
boolean
|
Valido solo quando il tipo di tabella è view .
Se viene impostato su true, verrà creata una vista materializzata. |
|
protected
|
boolean
|
Consentito solo per il tipo di tabella incremental .
Se impostato su true, l'esecuzione di questa azione ignora l'opzione |
|
schema
|
string
|
Lo schema (set di dati BigQuery) in cui creare l'output di questa azione. | |
tags
|
string[]
|
Un elenco di tag definiti dall'utente applicati a questa azione. | |
type
|
TableType
|
Il tipo di tabella. | |
uniqueKey
|
string[]
|
Chiavi univoche per i criteri di unione per le tabelle incrementali.
Se configurato, i record con chiavi univoche corrispondenti vengono aggiornati anziché inserire nuove righe. |
ITableContext
I metodi di contesto sono disponibili durante la valutazione del codice SQL contestuale, ad esempio all'interno dei file SQLX, o quando si utilizza un argomento Contextable
con il nucleo di Dataform.
incremental
|
() => boolean
|
Restituisce true quando il contesto corrente indica che la tabella verrà creata in modo incrementale. | |
name
|
() => string
|
Restituisce il nome completo di questa tabella. | |
ref
|
(ref: Resolvable | string[], rest: string[]) => string
|
Fa riferimento a un'altra azione, aggiungendola come dipendenza a questa azione,
restituendo SQL valido da utilizzare in un'espressione from.
Questa funzione può essere chiamata con un oggetto ${ref({ name: "name", schema: "schema", database: "database" })}
Questa funzione può essere chiamata anche utilizzando singoli argomenti per i valori
Quando vengono forniti solo due valori, viene utilizzato il database predefinito e i valori vengono interpretati come Quando viene fornito un solo valore, viene utilizzato lo schema di database predefinito, con il valore fornito interpretato come ""name"". ${ref("database", "schema", "name")}
${ref("schema", "name")}
${ref("name")}
|
|
resolve
|
(ref: Resolvable | string[], rest: string[]) => string
|
Simile a ref , ma anziché aggiungere una dipendenza, risolve il riferimento fornito in modo che possa essere utilizzato in SQL, ad esempio in un'espressione "from".
|
|
self
|
() => string
|
Equivalente a resolve(name()) .
Restituisce una stringa SQL valida che può essere utilizzata per fare riferimento alla tabella prodotta da questa azione. |
|
when
|
(cond: boolean, trueCase: string, falseCase: string) => string
|
Abbreviazione per una condizione if .
Equivalente a cond ? trueCase : falseCase .
|
ITarget
Un riferimento a una tabella in BigQuery.
database
|
string
|
name
|
string
|
schema
|
string
|
ITargetableConfig
Definisce il database e lo schema di destinazione di un'azione del flusso di lavoro SQL.
database
|
string
|
Il database in cui deve essere creato l'output di questa azione. Deve essere impostato su BigQuery. |
|
schema
|
string
|
Lo schema in cui deve essere creato l'output di questa azione. |
operate()
operate
|
(name: string, queries?: Contextable
|
Definisce un'operazione SQL. Disponibile solo nella directory |
Esempio:
// definitions/file.js
operate("an-operation", ["SELECT 1", "SELECT 2"])
publish()
publish
|
(name: string, queryOrConfig?: Contextable
|
Crea una tabella o una visualizzazione. Disponibile solo nella directory |
Esempio:
// definitions/file.js
publish("published-table", {
type: "table",
dependencies: ["a-declaration"],
}).query(ctx => "SELECT 1 AS test");
Risolvibile
Un elemento risolvibile può essere il nome di una tabella come string
o l'oggetto che descrive il percorso completo alla relazione.
string | ITarget
TableType
Tipi di azioni della tabella supportati.
Le tabelle di tipo view
verranno create come visualizzazioni.
Le tabelle di tipo table
verranno create come tabelle.
Le tabelle di tipo incremental
devono includere una clausola where
.
Per ulteriori informazioni, consulta
Configurare le tabelle incrementali.