In diesem Dokument werden die Methoden, Eigenschaften 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 der kompilierten Grafik eine Dataform-Assertion hinzu. Nur im Verzeichnis |
Beispiel:
// definitions/file.js
assert("name").query(ctx => "select 1");
CommonContext
Kontextmethoden sind verfügbar, wenn Sie kontextsensitiven 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, sofern zutreffend. | |
name
|
() => string
|
Gibt den Namen dieser Tabelle zurück. | |
ref
|
(ref: Resolvable | string[], rest: string[]) => string
|
Verweist auf eine andere Aktion, fügt sie als Abhängigkeit zu dieser Aktion hinzu und gibt gültigen SQL-Code zur Verwendung in einem from -Ausdruck zurück.
Diese Funktion kann mit einem
Diese Funktion kann auch mit individuellen 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 zu dieser Aktion hinzugefügt.
|
|
self
|
() => string
|
Entspricht resolve(name()) .
Gibt einen gültigen SQL-String zurück, mit dem auf die von dieser Aktion erzeugte Tabelle verwiesen werden kann. |
|
schema
|
() => string
|
Gibt das Schema dieses Datasets zurück. |
Kontextfähig
Kontextfähige Argumente können entweder einen einfachen Wert für ihren generischen Typ T
übergeben oder eine Funktion, die mit dem Kontextobjekt für diese Art von Vorgang aufgerufen wird.
T | (ctx: Context) => T
Dataform
Globale Variable, die das Objekt IProjectConfig enthält.
Erforderlich zum Abrufen von IProjectConfig
-Properties. Beispiel:
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 SQL-Workflowaktion angewendet werden.
tags
|
string[]
|
Eine Liste benutzerdefinierter Tags, mit denen die Aktion gekennzeichnet werden soll. |
|
dependencies
|
Resolvable| Resolvable[]
|
Abhängigkeiten der Aktion. |
|
disabled
|
boolean
|
Ist sie auf „true“ gesetzt, wird diese Aktion nicht ausgeführt. Die Aktion kann jedoch immer noch abhängig sein. 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 Assertion erstellt werden soll. | |
description
|
string
|
Eine Beschreibung dieser Assertion. | |
disabled
|
boolean
|
Wenn dieser Wert auf true gesetzt ist, wird diese Aktion nicht ausgeführt.
Von der Aktion kann immer noch abhängig sein. Nützlich, um fehlerhafte Aktionen vorübergehend zu deaktivieren.
|
|
hermetic
|
boolean
|
Gibt an, ob diese Aktion hermetisch ist. Eine Aktion ist hermetisch, wenn alle zugehörigen Abhängigkeiten explizit deklariert sind.
Wenn diese Aktion von Daten aus einer Quelle abhängt, die nicht als Abhängigkeit deklariert ist, legen Sie |
|
schema
|
string
|
Das Schema (BigQuery-Dataset), in dem die entsprechende Ansicht für diese Assertion 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 Tabelle, Ansicht und materialisierte Ansicht
Einige Optionen, z. B.
Stringwerte müssen in doppelte Anführungszeichen gesetzt werden. Beispiel:
Wenn der Optionsname Sonderzeichen enthält, setzen Sie ihn in Anführungszeichen, z. B. |
|
clusterBy
|
string[]
|
Die Schlüssel, nach denen Partitionen geclustert werden sollen. | |
labels
|
|
Schlüssel/Wert-Paare für BigQuery-Labels.
Wenn der Labelname Sonderzeichen enthält, z. B. Bindestriche, 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 eines Zeitstempels oder der Datumsspalte. | |
partitionExpirationDays
|
number
|
Die Anzahl der Tage, für die BigQuery Daten in den einzelnen Partitionen speichert. Die Einstellung gilt für alle Partitionen in einer Tabelle, wird aber für jede Partition basierend auf der Partitionszeit separat berechnet. | |
requirePartitionFilter
|
boolean
|
Gibt an, ob die partitionierte Tabelle einen Prädikatfilter der WHERE -Klausel erfordert, mit dem die Partitionierungsspalte gefiltert wird.
|
|
updatePartitionFilter
|
string
|
SQL-basierter Filter zum Anwenden inkrementeller Updates. |
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 die Quelltabelle vorhanden ist. |
IDependenciesConfig
Definiert Abhängigkeiten einer SQL-Workflowaktion.
dependencies
|
Resolvable| Resolvable[]
|
Eine oder mehrere explizite Abhängigkeiten für diese Aktion. Abhängigkeitsaktionen werden vor abhängigen Aktionen ausgeführt.
In der Regel bleibt dies 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 zugehörigen 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 SQL-Workflowaktion.
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 dieser Wert auf true gesetzt ist, wird diese Aktion nicht ausgeführt.
Von der Aktion kann immer noch abhängig sein.
Nützlich, um fehlerhafte Aktionen vorübergehend zu deaktivieren.
|
|
hasOutput
|
boolean
|
Deklariert, dass durch diese operations -Aktion eine Tabelle erstellt wird, die mit der Funktion ref referenzierbar ist.
Wenn create or replace table ${self()} as select ...
|
|
hermetic
|
boolean
|
Gibt an, ob diese Aktion hermetisch ist. Eine Aktion ist hermetisch, wenn alle zugehörigen Abhängigkeiten explizit deklariert sind.
Wenn diese Aktion von Daten aus einer Quelle abhängt, die nicht als Abhängigkeit deklariert ist, legen 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 die 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 Assertions. | |
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 sollte. | |
schemaSuffix
|
string
|
Optional. Das Suffix, das an alle Schemanamen (BigQuery-Dataset-ID) angehängt werden sollte. | |
tablePrefix
|
string
|
Optional. Das Präfix, das allen Tabellennamen vorangestellt werden sollte. | |
warehouse
|
string
|
Erforderlich. Muss auf bigquery festgelegt sein.
|
Sie können IProjectConfig
-Attribute in den Workfloweinstellungen auf Repository-Ebene festlegen.
Sie können die Attribute defaultSchema
und defaultDatabase
für einzelne Tabellen überschreiben.
Sie können auf alle IProjectConfig
-Attribute in einer SQL-SELECT
-Anweisung in einer SQLX- oder JavaScript-Datei zugreifen.
Das folgende Codebeispiel zeigt die benutzerdefinierte Kompilierungsvariable myVariableName
, die in den Workfloweinstellungen mit dem Attribut projectConfig.vars
festgelegt wird und auf die über eine SELECT
-Anweisung in einer SQLX-Datei zugegriffen 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 der Projektkonfigurationseinstellungen für einzelne Kompilierungsergebnisse finden Sie in der Dataform API in der REST-Ressource projects.locations.repositories.compilationResults#CodeCompilationConfig
.
IRecordDescriptor
Beschreibt eine Struktur, ein Objekt oder einen Datensatz in einer Tabelle mit verschachtelten Spalten.
bigqueryPolicyTags
|
string | string[]
|
Vollständige Kennungen von BigQuery-Richtlinien-Tags, die auf diese Spalte angewendet werden. Die vollständige Kennzeichnung eines BigQuery-Richtlinien-Tags umfasst den Projektnamen, den Standort und die Taxonomie.
Beispiel: |
|
columns
|
IColumnsDescriptor
|
Eine Beschreibung der Spalten in der Struktur, im Objekt oder im Datensatz. | |
description
|
string
|
Eine Beschreibung der Struktur, des Objekts oder des Eintrags. |
ITableAssertions
Optionen zum Erstellen von Assertions als Teil einer Tabellendefinition.
nonNull
|
string | string[]
|
Spalte(n), die niemals NULL sein darf.
Wenn festgelegt, schlägt die entsprechende Assertion fehl, wenn eine Zeile |
|
rowConditions
|
string[]
|
Allgemeine Bedingungen, die für alle Zeilen in der Tabelle erfüllt sein müssen.
Wenn festgelegt, 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 darstellt.
Wenn dieser Wert festgelegt ist, schlägt die resultierende Assertion fehl, wenn die Tabelle mehr als eine Zeile mit denselben Werten für alle diese Spalten enthält. |
|
uniqueKeys
|
[]
|
Kombinationen von Spalten, von denen jede einen eindeutigen Schlüsselindex der Tabelle darstellt.
Wenn dieser Wert festgelegt ist, schlägt die resultierende Assertion fehl, wenn die Tabelle mehr als eine Zeile mit denselben Werten für alle Spalten des eindeutigen Schlüssels enthält. |
ITableConfig
Konfigurationsoptionen für table
-Aktionen, darunter die Tabellentypen table
, view
und incremental
.
Erweitert IActionConfig, IDependenciesConfig, IDocumentableConfig, INamedConfig und ITargetableConfig.
assertions
|
ITableAssertions
|
Assertions, die für die Tabelle ausgeführt werden sollen.
Wenn die Konfiguration konfiguriert ist, werden relevante Assertions 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 dieser Wert auf true gesetzt ist, wird diese Aktion nicht ausgeführt.
Von der Aktion kann immer noch abhängig sein.
Nützlich, um fehlerhafte Aktionen vorübergehend zu deaktivieren.
|
|
hermetic
|
boolean
|
Gibt an, ob diese Aktion hermetisch ist. Eine Aktion ist hermetisch, wenn alle zugehörigen Abhängigkeiten explizit deklariert sind.
Wenn diese Aktion von Daten aus einer Quelle abhängt, die nicht als Abhängigkeit deklariert ist, legen Sie |
|
materialized
|
boolean
|
Nur gültig, wenn der Tabellentyp view ist.
Wenn die Richtlinie auf „true“ gesetzt ist, wird eine materialisierte Ansicht erstellt. |
|
protected
|
boolean
|
Nur für den Tabellentyp incremental zulässig.
Wenn die Richtlinie auf „true“ gesetzt ist, wird beim Ausführen dieser Aktion 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 Zusammenführungskriterien für inkrementelle Tabellen.
Wenn konfiguriert, werden Datensätze mit übereinstimmenden eindeutigen Schlüsseln aktualisiert, anstatt neue Zeilen einzufügen. |
ITableContext
Kontextmethoden sind verfügbar, wenn kontextbasierter SQL-Code ausgewertet wird, z. B. in SQLX-Dateien, oder wenn ein Contextable
-Argument mit Dataform Core verwendet wird.
incremental
|
() => boolean
|
Gibt "true" zurück, wenn der aktuelle Kontext angibt, dass die Tabelle inkrementell erstellt wird. | |
name
|
() => string
|
Gibt den voll qualifizierten Namen dieser Tabelle zurück. | |
ref
|
(ref: Resolvable | string[], rest: string[]) => string
|
Verweist auf eine andere Aktion, fügt sie als Abhängigkeit zu dieser Aktion hinzu und gibt gültigen SQL-Code zur Verwendung in einem from-Ausdruck zurück.
Diese Funktion kann mit einem ${ref({ name: "name", schema: "schema", database: "database" })}
Diese Funktion kann auch mit individuellen Argumenten für die Werte
Wenn nur zwei Werte angegeben werden, wird die Standarddatenbank verwendet und die Werte als Wenn nur ein Wert angegeben ist, 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 , allerdings ohne eine Abhängigkeit hinzuzufügen, wird der angegebene Verweis aufgelöst, damit er 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 erzeugte 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 Schema einer SQL-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. |
Operation()
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");
Auflösbar
Ein auflösbares Element 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 Typen 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 Tabellen konfigurieren.