In diesem Dokument werden die Methoden, Attribute und Konfigurationsoptionen von Dataform Core beschrieben. Sie können Dataform-Core in SQLX- und JavaScript-Dateien verwenden.
assert()
assert
|
(name: string, query?: AContextable
|
Fügt dem kompilierten Diagramm eine Dataform-Assertion hinzu. Nur im Verzeichnis |
Beispiel:
// definitions/file.js
assert("name").query(ctx => "select 1");
CommonContext
Kontextmethoden sind verfügbar, wenn Sie kontextbezogenen SQL-Code auswerten, z. B. in SQLX-Dateien, oder wenn Sie ein Contextable
-Argument mit Dataform Core verwenden.
database
|
() => string
|
Gibt die Datenbank dieses Datasets zurück, falls zutreffend. | |
name
|
() => string
|
Gibt den Namen dieser Tabelle zurück. | |
ref
|
(ref: Resolvable | string[], rest: string[]) => string
|
Verweist auf eine andere Aktion und fügt sie als Abhängigkeit zu dieser Aktion hinzu. Gibt gültigen SQL-Code zurück, der in einem from -Ausdruck verwendet werden kann.
Diese Funktion kann mit einem
Diese Funktion kann auch mit einzelnen Argumenten für die Werte ${ref("database", "schema", "name")}
${ref("schema", "name")}
${ref("name")}
|
|
resolve
|
(ref: Resolvable | string[], rest: string[]) => string
|
Ähnlich wie ref , aber die referenzierte Aktion wird nicht als Abhängigkeit für diese Aktion hinzugefügt.
|
|
self
|
() => string
|
Entspricht resolve(name()) .
Gibt einen gültigen SQL-String zurück, mit dem auf die von dieser Aktion erstellte Tabelle verwiesen werden kann. |
|
schema
|
() => string
|
Gibt das Schema dieses Datasets zurück. |
Kontextbezogen
Für kontextbezogene Argumente kann entweder ein einfacher Wert für den generischen Typ T
oder eine Funktion übergeben werden, die mit dem Kontextobjekt für diesen Vorgangstyp aufgerufen wird.
T | (ctx: Context) => T
Dataform
Globale Variable, die das IProjectConfig-Objekt enthält.
Erforderlich, um IProjectConfig
-Attribute abzurufen, z. B.:
dataform.projectConfig.vars.myVariableName === "myVariableValue"
declare()
declare
|
(dataset: dataform.ITarget)
|
Deklariert das Dataset als Dataform-Datenquelle. Nur im Verzeichnis |
Beispiel:
// definitions/file.js
declare({name: "a-declaration"})
IActionConfig
Definiert Dataform-Tags und Abhängigkeiten, die auf eine Workflow-Aktion angewendet werden.
tags
|
string[]
|
Eine Liste mit benutzerdefinierten Tags, mit denen die Aktion gekennzeichnet werden soll. |
|
dependencies
|
Resolvable| Resolvable[]
|
Abhängigkeiten der Aktion. |
|
disabled
|
boolean
|
Wenn sie auf „true“ gesetzt ist, wird diese Aktion nicht ausgeführt. Die Aktion kann jedoch weiterhin verwendet werden. Nützlich, um fehlerhafte Aktionen vorübergehend zu deaktivieren. |
IAssertionConfig
Konfigurationsoptionen für assertion
-Aktionstypen.
database
|
string
|
Die Datenbank (Google Cloud Projekt-ID), in der die entsprechende Ansicht für diese Behauptung erstellt werden soll. | |
description
|
string
|
Eine Beschreibung dieser Behauptung. | |
disabled
|
boolean
|
Wenn der Wert auf true gesetzt ist, wird diese Aktion nicht ausgeführt.
Die Aktion kann weiterhin ausgeführt werden. Nützlich, um fehlerhafte Aktionen vorübergehend zu deaktivieren.
|
|
hermetic
|
boolean
|
Gibt an, ob diese Aktion hermetisch ist. Eine Aktion ist hermetisch, wenn alle ihre Abhängigkeiten explizit deklariert sind.
Wenn diese Aktion von Daten aus einer Quelle abhängt, die nicht als Abhängigkeit deklariert ist, setzen Sie |
|
schema
|
string
|
Das Schema (BigQuery-Dataset), in dem die entsprechende Ansicht für diese Behauptung erstellt werden soll. | |
tags
|
string[]
|
Eine Liste der benutzerdefinierten Tags, die auf diese Aktion angewendet wurden. |
IBigQueryOptions
BigQuery-spezifische Warehouse-Optionen.
additionalOptions
|
|
Schlüssel/Wert-Paare für die Optionen table, view und materialized view.
Für einige Optionen, z. B.
Stringwerte müssen in doppelte Anführungszeichen gesetzt werden, z. B.:
Wenn der Optionsname Sonderzeichen enthält, setzen Sie den Namen in Anführungszeichen, z. B. |
|
clusterBy
|
string[]
|
Die Schlüssel, nach denen Partitionen gruppiert werden sollen. | |
labels
|
|
Schlüssel/Wert-Paare für BigQuery-Labels.
Wenn der Labelname Sonderzeichen wie Bindestriche enthält, setzen Sie ihn in Anführungszeichen, z. B. |
|
partitionBy
|
string
|
Der Schlüssel, nach dem die Tabelle partitioniert werden soll. In der Regel der Name einer Zeitstempel- oder Datumsspalte. | |
partitionExpirationDays
|
number
|
Die Anzahl der Tage, für die BigQuery Daten in jeder Partition speichert. Die Einstellung gilt für alle Partitionen in einer Tabelle, wird jedoch für jede Partition separat basierend auf der Partitionszeit berechnet. | |
requirePartitionFilter
|
boolean
|
Gibt an, ob für die partitionierte Tabelle ein Prädikatfilter mit einer WHERE -Klausel erforderlich ist, der die Partitionierungsspalte filtert.
|
|
updatePartitionFilter
|
string
|
SQL-basierter Filter für den Zeitpunkt, zu dem inkrementelle Updates angewendet werden. |
IColumnsDescriptor
Beschreibt Spalten in einer Tabelle.
{ [name]: string | IRecordDescriptor }
IDeclarationConfig
Konfigurationsoptionen für declaration
-Aktionstypen.
columns
|
IColumnsDescriptor
|
Eine Beschreibung der Spalten in der Tabelle. | |
database
|
string
|
Die Datenbank (Google Cloud Projekt-ID), in der die Quelltabelle erstellt werden soll. | |
description
|
string
|
Eine Beschreibung der Tabelle. | |
schema
|
string
|
Das Schema (BigQuery-Dataset), in dem sich die Quelltabelle befindet. |
IDependenciesConfig
Definiert die Abhängigkeiten einer Workflowaktion.
dependencies
|
Resolvable| Resolvable[]
|
Eine oder mehrere explizite Abhängigkeiten für diese Aktion. Abhängigkeitsaktionen werden vor abhängigen Aktionen ausgeführt.
Normalerweise bleibt dieser Wert nicht festgelegt, da die meisten Abhängigkeiten als Nebenprodukt der Verwendung der Funktion |
|
hermetic
|
boolean
|
Gibt an, ob diese Aktion hermetisch ist. Eine Aktion ist hermetisch, wenn alle ihre Abhängigkeiten explizit deklariert sind. Wenn diese Aktion von Daten aus einer Quelle abhängt, die nicht als Abhängigkeit deklariert wurde, sollte |
IDocumentableConfig
Definiert Beschreibungen eines Datasets und seiner Spalten.
columns
|
IColumnsDescriptor
|
Eine Beschreibung der Spalten im Dataset. |
|
description
|
string
|
Eine Beschreibung des Datasets. |
INamedConfig
Definiert den Typ und den Namen einer Workflow-Aktion.
type
|
string
|
Der Typ der Aktion. |
|
name
|
string
|
Der Name der Aktion. |
IOperationConfig
Konfigurationsoptionen für operations
-Aktionstypen.
columns
|
IColumnsDescriptor
|
Eine Beschreibung der Spalten in der Tabelle. | |
database
|
string
|
Die Datenbank (Google Cloud Projekt-ID), in der die Ausgabe dieser Aktion erstellt werden soll. | |
description
|
string
|
Eine Beschreibung der Tabelle. | |
disabled
|
boolean
|
Wenn der Wert auf true gesetzt ist, wird diese Aktion nicht ausgeführt.
Die Aktion kann weiterhin ausgeführt werden.
Nützlich, um fehlerhafte Aktionen vorübergehend zu deaktivieren.
|
|
hasOutput
|
boolean
|
Gibt an, dass mit dieser operations -Aktion eine Tabelle erstellt wird, auf die mit der Funktion ref verwiesen werden kann.
Wenn diese Option auf create or replace table ${self()} as select ...
|
|
hermetic
|
boolean
|
Gibt an, ob diese Aktion hermetisch ist. Eine Aktion ist hermetisch, wenn alle ihre Abhängigkeiten explizit deklariert sind.
Wenn diese Aktion von Daten aus einer Quelle abhängt, die nicht als Abhängigkeit deklariert ist, setzen Sie |
|
schema
|
string
|
Das Schema (BigQuery-Dataset), in dem die Ausgabe dieser Aktion erstellt werden soll. | |
tags
|
string[]
|
Eine Liste der benutzerdefinierten Tags, die auf diese Aktion angewendet wurden. |
IProjectConfig
Enthält Kompilierungseinstellungen eines Dataform-Repositorys.
defaultDatabase
|
string
|
Erforderlich. Die Standarddatenbank (Google Cloud Projekt-ID). | |
defaultSchema
|
string
|
Erforderlich. Das Standardschema (BigQuery-Dataset-ID). | |
defaultLocation
|
string
|
Erforderlich. Der zu verwendende BigQuery-Standardstandort. Weitere Informationen zu BigQuery-Standorten finden Sie unter https://cloud.google.com/bigquery/docs/locations. | |
assertionSchema
|
string
|
Erforderlich. Das Standardschema (BigQuery-Dataset-ID) für Behauptungen. | |
vars
|
map (key: string, value: string)
|
Optional. Benutzerdefinierte Variablen, die dem Projektcode während der Kompilierung zur Verfügung gestellt werden.
Ein Objekt, das eine Liste von "key": value -Paaren enthält.
Beispiel: { "name": "wrench", "mass": "1.3kg", "count": "3" } .
|
|
databaseSuffix
|
string
|
Optional. Das Suffix, das an alle Datenbanknamen (Google Cloud Projekt-ID) angehängt werden soll. | |
schemaSuffix
|
string
|
Optional. Das Suffix, das an alle Schemanamen (BigQuery-Dataset-ID) angehängt werden soll. | |
tablePrefix
|
string
|
Optional. Das Präfix, das allen Tabellennamen vorangestellt werden soll. | |
warehouse
|
string
|
Erforderlich. Muss auf bigquery festgelegt sein.
|
Sie können IProjectConfig
-Eigenschaften in den Workfloweinstellungen auf Repository-Ebene festlegen.
Sie können die Attribute defaultSchema
und defaultDatabase
für einzelne Tabellen überschreiben.
Sie können in einer SQLX- oder JavaScript-Datei in einer SQL-SELECT
-Anweisung auf alle IProjectConfig
-Eigenschaften zugreifen.
Das folgende Codebeispiel zeigt die benutzerdefinierte Kompilierungsvariable myVariableName
, die in den Workflow-Einstellungen mit der Eigenschaft projectConfig.vars
festgelegt und in einer SELECT
-Anweisung in einer SQLX-Datei aufgerufen wird:
config { type: "view" }
SELECT ${when(
dataform.projectConfig.vars.myVariableName === "myVariableValue",
"myVariableName is set to myVariableValue!",
"myVariableName is not set to myVariableValue!"
)}
Weitere Informationen zum Überschreiben von Projektkonfigurationseinstellungen für einzelne Kompilierungsergebnisse finden Sie in der REST-Ressource projects.locations.repositories.compilationResults#CodeCompilationConfig
in der Dataform API.
IRecordDescriptor
Beschreibt eine Struktur, ein Objekt oder einen Datensatz in einer Tabelle mit verschachtelten Spalten.
bigqueryPolicyTags
|
string | string[]
|
Vollständige Kennungen der BigQuery-Richtlinien-Tags, die auf diese Spalte angewendet werden. Eine vollständige Kennung eines BigQuery-Richtlinientags enthält den Projektnamen, den Standort und die Taxonomie.
Beispiel: |
|
columns
|
IColumnsDescriptor
|
Eine Beschreibung der Spalten innerhalb der Struktur, des Objekts oder des Datensatzes. | |
description
|
string
|
Eine Beschreibung der Struktur, des Objekts oder des Datensatzes. |
ITableAssertions
Optionen zum Erstellen von Zusicherungen als Teil einer Tabellendefinition.
nonNull
|
string | string[]
|
Spalten, die niemals NULL sein können.
Wenn diese Option festgelegt ist, schlägt die entsprechende Assertion fehl, wenn eine Zeile |
|
rowConditions
|
string[]
|
Allgemeine Bedingungen, die für alle Zeilen in der Tabelle gelten sollten.
Wenn diese Option festgelegt ist, schlägt die entsprechende Assertion fehl, wenn eine Zeile gegen eine dieser Bedingungen verstößt. |
|
uniqueKey
|
string | string[]
|
Spalte(n), die den eindeutigen Schlüsselindex der Tabelle bilden.
Wenn diese Option festgelegt ist, schlägt die resultierende Assertion fehl, wenn in der Tabelle mehr als eine Zeile mit denselben Werten für alle diese Spalten vorhanden ist. |
|
uniqueKeys
|
[]
|
Kombinationen von Spalten, die jeweils einen eindeutigen Schlüsselindex der Tabelle bilden.
Wenn diese Option festgelegt ist, schlägt die resultierende Assertion fehl, wenn in der Tabelle mehr als eine Zeile mit denselben Werten für alle Spalten in den eindeutigen Schlüsseln vorhanden ist. |
ITableConfig
Konfigurationsoptionen für table
-Aktionen, einschließlich der Tabellentypen table
, view
und incremental
.
Erweitert IActionConfig, IDependenciesConfig, IDocumentableConfig, INamedConfig und ITargetableConfig.
assertions
|
ITableAssertions
|
Assertionen, die für die Tabelle ausgeführt werden sollen.
Falls konfiguriert, werden relevante Zusicherungen automatisch erstellt und als Abhängigkeit dieser Tabelle ausgeführt. |
|
bigquery
|
IBigQueryOptions
|
BigQuery-spezifische Warehouse-Optionen. | |
columns
|
IColumnsDescriptor
|
Eine Beschreibung der Spalten in der Tabelle. | |
database
|
string
|
Die Datenbank (Google Cloud Projekt-ID), in der die Ausgabe dieser Aktion erstellt werden soll. | |
description
|
string
|
Eine Beschreibung der Tabelle. | |
disabled
|
boolean
|
Wenn der Wert auf true gesetzt ist, wird diese Aktion nicht ausgeführt.
Die Aktion kann weiterhin ausgeführt werden.
Nützlich, um fehlerhafte Aktionen vorübergehend zu deaktivieren.
|
|
hermetic
|
boolean
|
Gibt an, ob diese Aktion hermetisch ist. Eine Aktion ist hermetisch, wenn alle ihre Abhängigkeiten explizit deklariert sind.
Wenn diese Aktion von Daten aus einer Quelle abhängt, die nicht als Abhängigkeit deklariert ist, setzen Sie |
|
materialized
|
boolean
|
Nur gültig, wenn der Tabellentyp view ist.
Wenn diese Option auf „true“ gesetzt ist, wird eine materialisierte Ansicht erstellt. |
|
protected
|
boolean
|
Nur für den Tabellentyp incremental zulässig.
Wenn diese Option auf „true“ gesetzt ist, wird die Option |
|
schema
|
string
|
Das Schema (BigQuery-Dataset), in dem die Ausgabe dieser Aktion erstellt werden soll. | |
tags
|
string[]
|
Eine Liste der benutzerdefinierten Tags, die auf diese Aktion angewendet wurden. | |
type
|
TableType
|
Der Typ der Tabelle. | |
uniqueKey
|
string[]
|
Eindeutige Schlüssel für die Zusammenführungs-Kriterien für inkrementelle Tabellen.
Falls konfiguriert, werden Datensätze mit übereinstimmenden eindeutigen Schlüsseln aktualisiert, anstatt neue Zeilen einzufügen. |
ITableContext
Kontextmethoden sind verfügbar, wenn Sie kontextbezogenen SQL-Code auswerten, z. B. in SQLX-Dateien, oder wenn Sie ein Contextable
-Argument mit Dataform Core verwenden.
incremental
|
() => boolean
|
Gibt „true“ zurück, wenn der aktuelle Kontext angibt, dass die Tabelle inkrementell erstellt wird. | |
name
|
() => string
|
Gibt den vollqualifizierten Namen dieser Tabelle zurück. | |
ref
|
(ref: Resolvable | string[], rest: string[]) => string
|
Verweist auf eine andere Aktion und fügt sie als Abhängigkeit zu dieser Aktion hinzu. Gibt gültigen SQL-Code zurück, der in einem FROM-Ausdruck verwendet werden kann.
Diese Funktion kann mit einem ${ref({ name: "name", schema: "schema", database: "database" })}
Diese Funktion kann auch mit einzelnen Argumenten für die Werte
Wenn nur zwei Werte angegeben werden, wird die Standarddatenbank verwendet und die Werte werden als Wenn nur ein Wert angegeben wird, wird das Standarddatenbankschema verwendet. Der angegebene Wert wird als „name“ interpretiert. ${ref("database", "schema", "name")}
${ref("schema", "name")}
${ref("name")}
|
|
resolve
|
(ref: Resolvable | string[], rest: string[]) => string
|
Ähnlich wie ref , aber anstatt eine Abhängigkeit hinzuzufügen, wird die angegebene Referenz aufgelöst, damit sie in SQL verwendet werden kann, z. B. in einem „from“-Ausdruck.
|
|
self
|
() => string
|
Entspricht resolve(name()) .
Gibt einen gültigen SQL-String zurück, mit dem auf die von dieser Aktion erstellte Tabelle verwiesen werden kann. |
|
when
|
(cond: boolean, trueCase: string, falseCase: string) => string
|
Kurzschreibweise für eine if -Bedingung.
Entspricht cond ? trueCase : falseCase .
|
ITarget
Ein Verweis auf eine Tabelle in BigQuery.
database
|
string
|
name
|
string
|
schema
|
string
|
ITargetableConfig
Definiert die Zieldatenbank und das Zielschema einer Workflowaktion.
database
|
string
|
Die Datenbank, in der die Ausgabe dieser Aktion erstellt werden soll. Muss auf BigQuery festgelegt sein. |
|
schema
|
string
|
Das Schema, in dem die Ausgabe dieser Aktion erstellt werden soll. |
operate()
operate
|
(name: string, queries?: Contextable
|
Definiert einen SQL-Vorgang. Nur im Verzeichnis |
Beispiel:
// definitions/file.js
operate("an-operation", ["SELECT 1", "SELECT 2"])
publish()
publish
|
(name: string, queryOrConfig?: Contextable
|
Erstellt eine Tabelle oder Ansicht. Nur im Verzeichnis |
Beispiel:
// definitions/file.js
publish("published-table", {
type: "table",
dependencies: ["a-declaration"],
}).query(ctx => "SELECT 1 AS test");
Behebbar
Ein „Resolvable“ kann entweder der Name einer Tabelle als string
oder das Objekt sein, das den vollständigen Pfad zur Beziehung beschreibt.
string | ITarget
TableType
Unterstützte Arten von Tabellenaktionen.
Tabellen vom Typ view
werden als Ansichten erstellt.
Tabellen vom Typ table
werden als Tabellen erstellt.
Tabellen vom Typ incremental
müssen eine where
-Klausel enthalten.
Weitere Informationen finden Sie unter Inkrementelle Tabelle konfigurieren.