Ce document décrit les méthodes, les propriétés et les options de configuration de Dataform Core. Vous pouvez utiliser Dataform Core dans SQLX. et JavaScript.
assert()
assert
|
(name: string, query?: AContextable
|
Ajoute une assertion Dataform au graphique compilé. Disponible uniquement dans le répertoire |
Exemple :
// definitions/file.js
assert("name").query(ctx => "select 1");
CommonContext
Les méthodes de contexte sont disponibles lors de l'évaluation du code SQL contextuel,
comme dans les fichiers SQLX, ou lorsque vous utilisez
Argument Contextable
avec Dataform Core.
database
|
() => string
|
Renvoie la base de données de cet ensemble de données, le cas échéant. | |
name
|
() => string
|
Renvoie le nom de cette table. | |
ref
|
(ref: Resolvable | string[], rest: string[]) => string
|
Fait référence à une autre action, en l'ajoutant en tant que dépendance à cette action
renvoyant un code SQL valide à utiliser dans une expression from .
Cette fonction peut être appelée avec un objet
Cette fonction peut également être appelée à l'aide d'arguments individuels pour la fonction
Valeurs ${ref("database", "schema", "name")}
${ref("schema", "name")}
${ref("name")}
|
|
resolve
|
(ref: Resolvable | string[], rest: string[]) => string
|
Semblable à ref , mais n'ajoute pas l'objet référencé
comme une dépendance
à cette action.
|
|
self
|
() => string
|
Équivaut à resolve(name()) .
Renvoie une chaîne SQL valide pouvant être utilisée pour référencer la table générées par cette action. |
|
schema
|
() => string
|
Affiche le schéma de cet ensemble de données. |
Contextables
Les arguments contextuels peuvent transmettre une valeur simple pour leur type générique
T
ou une fonction appelée avec l'objet de contexte pour cette
type d'opération.
T | (ctx: Context) => T
Dataform
Variable globale qui contient l'objet IProjectConfig.
Obligatoire pour obtenir les propriétés IProjectConfig
, par exemple:
dataform.projectConfig.vars.myVariableName === "myVariableValue"
declare()
declare
|
(dataset: dataform.ITarget)
|
Déclare l'ensemble de données en tant que source de données Dataform. Disponible uniquement dans le répertoire |
Exemple :
// definitions/file.js
declare({name: "a-declaration"})
IActionConfig
Définit les balises Dataform et les dépendances appliquée à une action de workflow SQL.
tags
|
string[]
|
Liste des tags définis par l'utilisateur auxquels l'action doit être associée. |
|
dependencies
|
Resolvable| Resolvable[]
|
Dépendances de l'action. |
|
disabled
|
boolean
|
Si elle est définie sur "true", cette action n'est pas exécutée. Toutefois, l'action peut dépendre toujours. Utile pour désactiver temporairement les actions erronées. |
IAssertionConfig
Options de configuration pour les types d'action assertion
.
database
|
string
|
Base de données (ID du projet Google Cloud) dans laquelle créer la vue correspondante pour cette assertion. | |
description
|
string
|
Description de cette assertion. | |
disabled
|
boolean
|
Si la valeur est true , cette action n'est pas exécutée.
L'action peut toujours dépendre. Utile pour temporairement
et la désactivation des actions erronées.
|
|
hermetic
|
boolean
|
Indique si cette action est hermétique. Une action est hermétique
si toutes ses dépendances sont explicitement déclarées.
Si cette action dépend de données provenant d'une source non déclarée
en tant que dépendance, puis définissez |
|
schema
|
string
|
Schéma (ensemble de données BigQuery) dans lequel créer la vue correspondante pour cette assertion. | |
tags
|
string[]
|
Liste des tags définis par l'utilisateur appliqués à cette action. |
IBigQueryOptions
Options d'entrepôt spécifiques à BigQuery
additionalOptions
|
|
Paires clé-valeur pour la table, la vue,
et de vue matérialisée.
Certaines options, par exemple
Les valeurs de chaîne doivent être encapsulées entre guillemets doubles, par exemple:
Si le nom de l'option contient des caractères spéciaux, placez-le entre guillemets.
Exemple: |
|
clusterBy
|
string[]
|
Clés par lesquelles utiliser les partitions pour le clustering. | |
labels
|
|
Paires clé-valeur pour les étiquettes BigQuery.
Si le nom de l'étiquette contient des caractères spéciaux, comme des traits d'union,
puis citer son nom, par exemple |
|
partitionBy
|
string
|
La clé par laquelle partitionner la table. Il s'agit généralement du nom d'un code temporel ou de la colonne de date. | |
partitionExpirationDays
|
number
|
Nombre de jours pendant lesquels BigQuery stocke les données chaque partition. Le paramètre s'applique à toutes les partitions d'une table, mais il est calculé indépendamment pour chaque partition en fonction la durée de partition. | |
requirePartitionFilter
|
boolean
|
Indique si la table partitionnée nécessite un WHERE
filtre de prédicat de clause qui filtre la colonne de partitionnement.
|
|
updatePartitionFilter
|
string
|
Filtre basé sur SQL indiquant quand mises à jour incrémentielles s'appliquent. |
IColumnsDescriptor
Décrit les colonnes d'une table.
{ [name]: string | IRecordDescriptor }
IDeclarationConfig
Options de configuration pour les types d'action declaration
.
columns
|
IColumnsDescriptor
|
Description des colonnes de la table. | |
database
|
string
|
Base de données (ID du projet Google Cloud) dans laquelle créer la table source existe. | |
description
|
string
|
Description de la table. | |
schema
|
string
|
Schéma (ensemble de données BigQuery) dans lequel la table source existe. |
IDependenciesConfig
Définit les dépendances d'une action de workflow SQL.
dependencies
|
Resolvable| Resolvable[]
|
Une ou plusieurs dépendances explicites pour cette action. Actions de dépendance
s'exécutera avant les actions dépendantes.
En général, cette valeur n'est pas définie, car la plupart des dépendances sont déclarées
comme résultat de l'utilisation de la fonction |
|
hermetic
|
boolean
|
Indique si cette action est hermétique ou non. Une action est hermétique si
toutes ses dépendances sont explicitement déclarées. Si cette action dépend de
des données provenant d'une source qui n'a pas été déclarée en tant que dépendance,
|
IDocumentableConfig
Définit les descriptions d'un ensemble de données et de ses colonnes.
columns
|
IColumnsDescriptor
|
Description des colonnes de l'ensemble de données. |
|
description
|
string
|
Description de l'ensemble de données. |
INamedConfig
Définit le type et le nom d'une action de workflow SQL.
type
|
string
|
Type d'action. |
|
name
|
string
|
Nom de l'action. |
IOperationConfig
Options de configuration pour les types d'action operations
.
columns
|
IColumnsDescriptor
|
Description des colonnes de la table. | |
database
|
string
|
Base de données (ID du projet Google Cloud) dans laquelle créer le résultat de cette action. | |
description
|
string
|
Description de la table. | |
disabled
|
boolean
|
Si la valeur est true , cette action n'est pas exécutée.
L'action peut toujours dépendre.
Utile pour désactiver temporairement les actions erronées.
|
|
hasOutput
|
boolean
|
Indique que l'action operations crée une table
pouvant être référencé à l'aide de la fonction ref .
Si la valeur est create or replace table ${self()} as select ...
|
|
hermetic
|
boolean
|
Indique si cette action est hermétique. Une action est hermétique
si toutes ses dépendances sont explicitement déclarées.
Si cette action dépend de données provenant d'une source non déclarée
en tant que dépendance, puis définissez |
|
schema
|
string
|
Schéma (ensemble de données BigQuery) dans lequel créer le résultat de cette action. | |
tags
|
string[]
|
Liste des tags définis par l'utilisateur appliqués à cette action. |
IProjectConfig
Contient les paramètres de compilation d'un dépôt Dataform.
defaultDatabase
|
string
|
Obligatoire. Base de données par défaut (ID du projet Google Cloud). | |
defaultSchema
|
string
|
Obligatoire. Schéma par défaut (ID de l'ensemble de données BigQuery). | |
defaultLocation
|
string
|
Obligatoire. Emplacement BigQuery à utiliser par défaut. Pour en savoir plus sur les emplacements BigQuery, consultez https://cloud.google.com/bigquery/docs/locations. | |
assertionSchema
|
string
|
Obligatoire. Schéma par défaut (ID de l'ensemble de données BigQuery) pour les assertions. | |
vars
|
map (key: string, value: string)
|
Facultatif. Variables définies par l'utilisateur mises à disposition
au code du projet lors de la compilation.
Objet contenant une liste de paires "key": value .
Exemple : { "name": "wrench", "mass": "1.3kg", "count": "3" } .
|
|
databaseSuffix
|
string
|
Facultatif. Suffixe à ajouter à toutes les bases de données (ID de projet Google Cloud). | |
schemaSuffix
|
string
|
Facultatif. Suffixe à ajouter à tous les schémas (ID d'ensemble de données BigQuery). | |
tablePrefix
|
string
|
Facultatif. Préfixe devant être ajouté à tous les noms de table. | |
warehouse
|
string
|
Obligatoire. Doit être défini sur bigquery .
|
Vous pouvez définir les propriétés IProjectConfig
dans les paramètres du workflow
au niveau du dépôt.
Vous pouvez remplacer les propriétés defaultSchema
et defaultDatabase
pour
tables individuelles.
Vous pouvez accéder à toutes les propriétés IProjectConfig
dans une instruction SQL SELECT
dans un fichier SQLX ou JavaScript.
L'exemple de code suivant montre la variable de compilation personnalisée myVariableName
défini dans les paramètres du workflow avec la
projectConfig.vars
,
accessible dans une instruction SELECT
d'un fichier SQLX:
config { type: "view" }
SELECT ${when(
dataform.projectConfig.vars.myVariableName === "myVariableValue",
"myVariableName is set to myVariableValue!",
"myVariableName is not set to myVariableValue!"
)}
En savoir plus sur le remplacement des paramètres de configuration d'un projet
Pour obtenir les résultats de compilation individuels, consultez
Ressource REST projects.locations.repositories.compilationResults#CodeCompilationConfig
dans
API Dataform :
IRecordDescriptor
Décrit une structure, un objet ou un enregistrement dans une table contenant des colonnes imbriquées.
bigqueryPolicyTags
|
string | string[]
|
Identifiants complets des tags avec stratégie BigQuery appliqués
dans cette colonne. Identifiant complet d'un tag avec stratégie BigQuery
inclut le nom du projet, l'emplacement et la taxonomie,
Par exemple : |
|
columns
|
IColumnsDescriptor
|
Description des colonnes dans la structure, l'objet ou l'enregistrement. | |
description
|
string
|
Description de la structure, de l'objet ou de l'enregistrement. |
ITableAssertions
Options de création d'assertions dans une définition de table.
nonNull
|
string | string[]
|
Colonne(s) qui ne peuvent jamais être NULL .
Si cette règle est définie, l'assertion correspondante échoue si une ligne contient
|
|
rowConditions
|
string[]
|
Condition(s) générale(s) devant être vraie(s) pour toutes les lignes de la table.
Si cette règle est définie, l'assertion correspondante échoue si une ligne enfreint l'une de ces conditions. |
|
uniqueKey
|
string | string[]
|
Colonne(s) constituant l'index de clé unique de la table.
S'il est défini, l'assertion qui en résulte échoue s'il y a plusieurs lignes du tableau avec les mêmes valeurs pour toutes ces colonnes. |
|
uniqueKeys
|
[]
|
Combinaisons de colonnes, chacune constituant
un index de clé unique de la table.
S'il est défini, l'assertion résultante échoue s'il y a plus d'une ligne dans table avec les mêmes valeurs pour toutes les colonnes de la ou des clés uniques. |
ITableConfig
Options de configuration pour les actions table
, y compris
Types de tables table
, view
et incremental
.
Développe IActionConfig, IDependenciesConfig, IDocumentableConfig, INamedConfig et ITargetableConfig.
assertions
|
ITableAssertions
|
Assertions à exécuter sur la table.
Si elle est configurée, les assertions pertinentes sont automatiquement créées et s'exécuter en tant que dépendance de cette table. |
|
bigquery
|
IBigQueryOptions
|
Options d'entrepôt spécifiques à BigQuery | |
columns
|
IColumnsDescriptor
|
Description des colonnes de la table. | |
database
|
string
|
La base de données (ID du projet Google Cloud) pour créer le résultat de cette action. | |
description
|
string
|
Description de la table. | |
disabled
|
boolean
|
Si la valeur est true , cette action n'est pas exécutée.
L'action peut toujours dépendre.
Utile pour désactiver temporairement les actions erronées.
|
|
hermetic
|
boolean
|
Indique si cette action est hermétique. Une action est hermétique si
toutes ses dépendances sont explicitement déclarées.
Si cette action dépend de données provenant d'une source non déclarée
en tant que dépendance, puis définissez |
|
materialized
|
boolean
|
N'est valide que lorsque le type de la table est view .
Si cette règle est définie sur "True", une vue matérialisée est créée. |
|
protected
|
boolean
|
Autorisé uniquement pour le type de table incremental .
Si elle est définie sur "true", l'exécution de cette action ignore l'option |
|
schema
|
string
|
Schéma (ensemble de données BigQuery) dans lequel crée le résultat de cette action. | |
tags
|
string[]
|
Liste des tags définis par l'utilisateur appliqués à cette action. | |
type
|
TableType
|
Type de la table. | |
uniqueKey
|
string[]
|
Clés uniques pour les critères de fusion des tables incrémentielles.
Si elle est configurée, les enregistrements avec une ou plusieurs clés uniques correspondantes sont mis à jour au lieu d'insérer de nouvelles lignes. |
ITableContext
Les méthodes de contexte sont disponibles lors de l'évaluation du code SQL contextuel,
comme dans les fichiers SQLX, ou lorsque vous utilisez un Contextable
avec Dataform Core.
incremental
|
() => boolean
|
Renvoie la valeur "true" lorsque le contexte actuel indique que le tableau sera créé progressivement. | |
name
|
() => string
|
Renvoie le nom complet de cette table. | |
ref
|
(ref: Resolvable | string[], rest: string[]) => string
|
Fait référence à une autre action, en l'ajoutant en tant que dépendance à cette action
en renvoyant un code SQL valide à utiliser dans une expression "from".
Cette fonction peut être appelée avec un objet ${ref({ name: "name", schema: "schema", database: "database" })}
Cette fonction peut également être appelée à l'aide d'arguments individuels pour la fonction
Valeurs
Lorsque seulement deux valeurs sont fournies, la base de données par défaut est utilisée et les valeurs
sont interprétés comme Lorsqu'une seule valeur est fournie, le schéma de base de données par défaut est utilisé, avec le valeur fournie interprétée comme "nom". ${ref("database", "schema", "name")}
${ref("schema", "name")}
${ref("name")}
|
|
resolve
|
(ref: Resolvable | string[], rest: string[]) => string
|
Semblable à ref , mais au lieu d'ajouter une dépendance,
Il résout la référence fournie afin qu'elle puisse être utilisée en SQL.
par exemple, dans une expression "from".
|
|
self
|
() => string
|
Équivaut à resolve(name()) .
Renvoie une chaîne SQL valide pouvant être utilisée pour référencer le tableau généré par cette action. |
|
when
|
(cond: boolean, trueCase: string, falseCase: string) => string
|
Raccourci d'une condition if .
Équivaut à cond ? trueCase : falseCase .
|
ITarget
Référence à une table dans BigQuery.
database
|
string
|
name
|
string
|
schema
|
string
|
ITargetableConfig
Définit la base de données cible et le schéma d'une action de workflow SQL.
database
|
string
|
Base de données dans laquelle le résultat de cette action doit être créé. Doit être défini sur BigQuery. |
|
schema
|
string
|
Schéma dans lequel le résultat de cette action doit être créé. |
operate()
operate
|
(name: string, queries?: Contextable
|
Définit une opération SQL. Disponible uniquement dans le répertoire |
Exemple :
// definitions/file.js
operate("an-operation", ["SELECT 1", "SELECT 2"])
publish()
publish
|
(name: string, queryOrConfig?: Contextable
|
Crée une table ou une vue. Disponible uniquement dans le répertoire |
Exemple :
// definitions/file.js
publish("published-table", {
type: "table",
dependencies: ["a-declaration"],
}).query(ctx => "SELECT 1 AS test");
Résolu
Un résolvable peut être soit le nom d'une table, soit string
,
ou l'objet qui décrit le chemin complet de la relation.
string | ITarget
TableType
Types d'actions possibles pour les tables.
Les tables de type view
seront créées en tant que vues.
Les tables de type table
seront créées en tant que tables.
Les tables de type incremental
doivent inclure une clause where
.
Pour en savoir plus, consultez
Configurez des tables incrémentielles.