Dataform-Kernreferenz

In diesem Dokument werden die Methoden, Eigenschaften und Konfigurationsoptionen von Dataform-Kern. Sie können Dataform Core in SQLX verwenden. und JavaScript-Dateien.

assert()

assert (name: string, query?: AContextable)

Fügt der kompilierten Grafik eine Dataform-Assertion hinzu.

Nur im Verzeichnis /definitions verfügbar.

Beispiel:

// definitions/file.js

assert("name").query(ctx => "select 1");

CommonContext

Kontextmethoden stehen für die Auswertung kontextfähiger SQL-Codes zur Verfügung. wie in SQLX-Dateien oder bei Verwendung eines Argument Contextable mit Dataform Core.

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 und fügt sie als Abhängigkeit von dieser Aktion hinzu gibt gültigen SQL-Code zurück, der in einem from-Ausdruck verwendet werden soll.

Diese Funktion kann mit einem Resolvable-Objekt aufgerufen werden. Beispiel: ${ref({ name: "name", schema: "schema", database: "database" })}

Diese Funktion kann auch mit individuellen Argumenten für die "database"-, "schema"- und "name"-Werte. Wenn nur zwei Werte angegeben werden, wird die Standarddatenbank verwendet und die Werte werden als "schema" und "name" interpretiert. Wenn nur ein Wert angegeben ist, werden die Standarddatenbank und das Standardschema verwendet. wobei der angegebene Wert als "Name" interpretiert wird.

${ref("database", "schema", "name")} ${ref("schema", "name")} ${ref("name")}
resolve (ref: Resolvable | string[], rest: string[]) => string
Ähnlich wie ref, enthält aber nicht das referenzierte Feld Aktion als Abhängigkeit von dieser Aktion.
self () => string
Entspricht resolve(name()).

Gibt einen gültigen SQL-String zurück, mit dem auf die Tabelle verwiesen werden kann die durch diese Aktion erzeugt wurden.

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 übergeben T oder eine Funktion, die mit dem entsprechenden Kontextobjekt aufgerufen wird Art des Vorgangs.

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 /definitions verfügbar.

Beispiel:

// definitions/file.js

declare({name: "a-declaration"})

IActionConfig

Definition von Dataform-Tags und Abhängigkeiten auf eine SQL-Workflowaktion angewendet.

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 noch davon abhängig sein können. 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 erstellt werden soll die entsprechende Ansicht für diese Assertion.
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 für vorübergehende Deaktivieren fehlerhafter Aktionen.
hermetic boolean
Gibt an, ob diese Aktion hermetisch ist. Eine Handlung ist hermetisch. wenn alle Abhängigkeiten explizit deklariert sind.

Ob diese Aktion von Daten aus einer nicht deklarierten Quelle abhängt als Abhängigkeit. Legen Sie dann hermetic auf false fest. Andernfalls legen Sie true fest.

schema string
Das Schema (BigQuery-Dataset), in dem erstellt werden soll die entsprechende Ansicht für diese Assertion.
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 Tabelle, Ansicht und für die materialisierte Ansicht.

Einige Optionen, z. B. partitionExpirationDays, haben spezielle Felder für Typ/Gültigkeit. Verwenden Sie für solche Optionen die entsprechenden Felder.

Stringwerte müssen in doppelte Anführungszeichen gesetzt werden. Beispiel: additionalOptions: {numeric_option: "5", string_option: '"string-value"'}

Wenn der Optionsname Sonderzeichen enthält, setzen Sie ihn in Anführungszeichen. Beispiel: additionalOptions: { "option-name": "value" }.

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, und dann den Namen in Anführungszeichen, z. B. labels: { "label-name": "value" }..

partitionBy string
Der Schlüssel, mit dem die Tabelle partitionieren. In der Regel der Name eines Zeitstempels oder der Datumsspalte.
partitionExpirationDays number
Die Anzahl der Tage, in denen BigQuery Daten speichert für jede Partition. Die Einstellung gilt für alle Partitionen in einer Tabelle, wird jedoch für jede Partition die Partitionszeit.
requirePartitionFilter boolean
Gibt an, ob für die partitionierte Tabelle ein WHERE erforderlich ist Prädikatsfilter, der die Partitionierungsspalte filtert.
updatePartitionFilter string
SQL-basierter Filter für den Zeitraum 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 erstellt werden soll die Quelltabelle vorhanden ist.
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 vor abhängigen Aktionen ausgeführt wird. In der Regel bleibt dieser Wert nicht festgelegt, da die meisten Abhängigkeiten deklariert sind. als Nebenprodukt der Verwendung der ref-Funktion.

hermetic boolean

Gibt an, ob diese Aktion hermetisch ist. Eine Aktion ist hermetisch, wenn dass alle Abhängigkeiten explizit deklariert sind. Wenn diese Aktion von aus einer Quelle stammen, die nicht als Abhängigkeit deklariert wurde, dann gilt: hermetic sollte explizit auf false festgelegt werden. Wenn diese Aktion nur von Daten aus explizit deklarierten sollte er auf true gesetzt werden.

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 erstellt werden soll die Ausgabe dieser Aktion.
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 das mit der Funktion ref referenzierbar ist.

Wenn true festgelegt ist, wird durch diese Aktion eine Tabelle mit ihren konfigurierten Namen unter Verwendung der Kontextfunktion self().

Beispiel: create or replace table ${self()} as select ...
hermetic boolean
Gibt an, ob diese Aktion hermetisch ist. Eine Handlung ist hermetisch. wenn alle Abhängigkeiten explizit deklariert sind.

Ob diese Aktion von Daten aus einer nicht deklarierten Quelle abhängt als Abhängigkeit. Legen Sie dann hermetic auf false fest. Andernfalls legen Sie true fest.

schema string
Das Schema (BigQuery-Dataset), in dem erstellt werden soll die Ausgabe dieser Aktion.
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 verfügbar gemacht werden in den Projektcode. 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 Datenbanken angehängt werden soll (Google Cloud-Projekt-ID).
schemaSuffix string
Optional. Das Suffix, das an alle Schemas angehängt werden sollte (BigQuery-Dataset-ID).
tablePrefix string
Optional. Das Präfix, das allen Tabellennamen vorangestellt werden sollte.
warehouse string
Erforderlich. Muss auf bigquery festgelegt sein.

Sie können IProjectConfig-Eigenschaften in den Workfloweinstellungen festlegen. auf Repository-Ebene.

Sie können die Eigenschaften defaultSchema und defaultDatabase überschreiben für einzelne Tabellen.

Sie können in einer SQL-SELECT-Anweisung auf alle IProjectConfig-Attribute zugreifen in einer SQLX- oder JavaScript-Datei.

Im folgenden Codebeispiel sehen Sie die benutzerdefinierte Kompilierungsvariable myVariableName in den Workflow-Einstellungen mit dem projectConfig.vars Property, Zugriff in einer SELECT-Anweisung in einer SQLX-Datei:

  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, siehe projects.locations.repositories.compilationResults#CodeCompilationConfig REST-Ressource in 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 angewendet in diese Spalte ein. Vollständige Kennzeichnung eines BigQuery-Richtlinien-Tags Projektname, Standort und Taxonomie,

Beispiel: "projects/1/locations/eu/taxonomies/2/policyTags/3"

BigQuery unterstützt ein Tag pro Spalte.
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 NULL Werte für diese Spalte(n).

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 die Richtlinien verstößt mindestens eine dieser Bedingungen.

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 mehr als eine Zeile vorhanden ist in der Tabelle mit denselben Werten für alle diese Spalten ein.

uniqueKeys []
Kombinationen von Spalten, die jeweils einen Ein eindeutiger Schlüsselindex der Tabelle.

Wenn dieser Wert festgelegt ist, schlägt die resultierende Assertion fehl, wenn mehr als eine Zeile in die Tabelle mit denselben Werten für alle Spalten im eindeutigen Schlüssel.

ITableConfig

Konfigurationsoptionen für table-Aktionen, darunter: table, view und incremental.

Erweitert IActionConfig, IDependenciesConfig, IDocumentableConfig, INamedConfig und ITargetableConfig.

assertions ITableAssertions
Assertions, die für die Tabelle ausgeführt werden sollen.

Wenn konfiguriert, werden relevante Assertions automatisch erstellt und als Abhängigkeit dieser Tabelle ausgeführt werden.

bigquery IBigQueryOptions
BigQuery-spezifische Warehouse-Optionen.
columns IColumnsDescriptor
Eine Beschreibung der Spalten in der Tabelle.
database string
Die Datenbank (Google Cloud-Projekt-ID) in dem 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 dass alle Abhängigkeiten explizit deklariert sind.

Ob diese Aktion von Daten aus einer nicht deklarierten Quelle abhängt als Abhängigkeit. Legen Sie dann hermetic auf false fest. Andernfalls legen Sie true fest.

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 full-refresh ignoriert. Dies ist nützlich für Tabellen, die aus vorübergehenden Daten erstellt werden, damit Verlaufsdaten nicht verloren gehen.

schema string
Das Schema (BigQuery-Dataset), in dem die Ausgabe dieser Aktion erstellen.
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 wie aktualisiert, anstatt neue Zeilen einzufügen.

ITableContext

Kontextmethoden stehen für die Auswertung kontextfähiger SQL-Codes zur Verfügung. z. B. in SQLX-Dateien oder bei Verwendung eines Contextable mit Dataform-Kern sprechen.

incremental () => boolean
Gibt „true“ zurück, wenn der aktuelle Kontext angibt, wird die Tabelle inkrementell erstellt.
name () => string
Gibt den voll qualifizierten Namen dieser Tabelle zurück.
ref (ref: Resolvable | string[], rest: string[]) => string
Verweist auf eine andere Aktion und fügt sie als Abhängigkeit von dieser Aktion hinzu gibt gültigen SQL-Code zurück, der in einem from-Ausdruck verwendet werden soll.

Diese Funktion kann mit einem Resolvable-Objekt aufgerufen werden. Beispiel:

${ref({ name: "name", schema: "schema", database: "database" })}

Diese Funktion kann auch mit individuellen Argumenten für die "database"-, "schema"- und "name"-Werte.

Wenn nur zwei Werte angegeben werden, wird die Standarddatenbank verwendet und die Werte werden als "schema" und "name" interpretiert.

Wenn nur ein Wert angegeben ist, wird das Standarddatenbankschema verwendet, mit dem Parameter angegebener Wert als "Name" interpretiert.

${ref("database", "schema", "name")} ${ref("schema", "name")} ${ref("name")}
resolve (ref: Resolvable | string[], rest: string[]) => string
Ähnlich wie ref, aber ohne eine Abhängigkeit hinzuzufügen, wird der angegebene Verweis aufgelöst, sodass er in SQL verwendet werden kann. beispielsweise in einem "Von"-Ausdruck.
self () => string
Entspricht resolve(name()).

Gibt einen gültigen SQL-String zurück, der als Referenz verwendet werden kann die durch diese Aktion erzeugte Tabelle.

when (cond: boolean, trueCase: string, falseCase: string) => string
Kurzschreibweise für eine if -Bedingung. Entspricht cond ? trueCase : falseCase.

falseCase ist optional und entspricht standardmäßig einem leeren String.

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.

operate()

operate (name: string, queries?: Contextable)

Definiert einen SQL-Vorgang.

Nur im Verzeichnis /definitions verfügbar.

Beispiel:

// definitions/file.js

operate("an-operation", ["SELECT 1", "SELECT 2"])

publish()

publish (name: string, queryOrConfig?: Contextable | ITableConfig)

Erstellt eine Tabelle oder Ansicht.

Nur im Verzeichnis /definitions verfügbar.

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, das den vollständigen Pfad zu der 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