Dataform Core-Referenz

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 Graphen eine Dataform-Assertion hinzu.

Nur im Verzeichnis /definitions verfügbar.

Beispiel:

// definitions/file.js

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

CommonContext

Kontextmethoden sind verfügbar, wenn kontextbezogener SQL-Code ausgewertet wird, z. B. in SQLX-Dateien, oder wenn ein Contextable-Argument mit Dataform Core verwendet wird.

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ück, der in einem from-Ausdruck verwendet werden kann.

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

Diese Funktion kann auch mit einzelnen Argumenten für die Werte "database", "schema" und "name" aufgerufen werden. Wenn nur zwei Werte angegeben werden, wird die Standarddatenbank verwendet und die Werte werden als "schema" und "name" interpretiert. Wenn nur ein Wert angegeben wird, 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, 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, der verwendet werden kann, um auf die von dieser Aktion erzeugte Tabelle zu verweisen.

schema () => string
Gibt das Schema dieses Datasets zurück.

Contextable

Kontextbezogene Argumente können entweder einen einfachen Wert für ihren generischen Typ T oder eine Funktion übergeben, die mit dem Kontextobjekt für diese Art von Vorgang 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 /definitions verfügbar.

Beispiel:

// definitions/file.js

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

defaultLocation

Mit der Property defaultLocation wird der Standardspeicherort für Ihr BigQuery-Dataset angegeben. Dataform verwendet diesen Standort, um Ihren Code zu verarbeiten und die Ergebnisse zu speichern. Dieser Verarbeitungsstandort muss mit dem Standort Ihrer BigQuery-Datasets übereinstimmen. Er muss jedoch nicht mit dem Standort des Dataform-Repositorys übereinstimmen.

Wenn Sie die Property defaultLocation nicht festlegen, bestimmt Dataform den Speicherort anhand der Datasets, auf die in Ihrer SQL-Abfrage verwiesen wird. Das funktioniert so:

  • Wenn Ihre Abfrage auf Datasets am selben Standort verweist, verwendet Dataform diesen Standort.
  • Wenn Ihre Abfrage auf Datasets von zwei oder mehr verschiedenen Standorten verweist, tritt ein Fehler auf. Weitere Informationen zu dieser Einschränkung finden Sie unter Regionenübergreifende Dataset-Replikation.
  • Wenn Ihre Abfrage nicht auf Datasets verweist, ist der Standardspeicherort für Dataform die Multi-Region US. Wenn Sie einen anderen Standort auswählen möchten, legen Sie die Eigenschaft defaultLocation fest. Alternativ können Sie die Systemvariable @@location in Ihrer Abfrage verwenden.

Weitere Informationen finden Sie unter Standorte angeben.

IActionConfig

Definiert Dataform-Tags und Abhängigkeiten, die auf eine Workflow-Aktion angewendet werden.

tags string[]

Eine Liste benutzerdefinierter Tags, mit denen die Aktion gelabelt werden soll.

dependencies Resolvable| Resolvable[]

Abhängigkeiten der Aktion.

disabled boolean

Wenn diese Option auf „true“ gesetzt ist, wird die 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 Assertion erstellt werden soll.
description string
Eine Beschreibung dieser Assertion.
disabled boolean
Wenn sie auf true gesetzt ist, wird diese Aktion nicht ausgeführt. Die Aktion kann weiterhin verwendet 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 hermetic auf false. Andernfalls legen Sie true fest.

schema string
Das Schema (BigQuery-Dataset), in dem die entsprechende Ansicht für diese Behauptung erstellt werden soll.
tags string[]
Eine Liste benutzerdefinierter Tags, die auf diese Aktion angewendet werden.

IBigQueryOptions

BigQuery-spezifische Warehouse-Optionen.

additionalOptions
Schlüssel/Wert-Paare für die Optionen table, view und materialisierte Ansicht.

Für einige Optionen, z. B. partitionExpirationDays, gibt es spezielle Felder, in denen Typ und Gültigkeit geprüft werden. Verwenden Sie für solche Optionen die entsprechenden Felder.

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

Wenn der Optionsname Sonderzeichen enthält, setzen Sie den Namen in Anführungszeichen, z. B. 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, setzen Sie den Namen in Anführungszeichen, z. B. labels: { "label-name": "value" }..

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 aber für jede Partition unabhängig auf Grundlage der Partitionierungszeit berechnet.
requirePartitionFilter boolean
Gibt an, ob für die partitionierte Tabelle ein Prädikatfilter für die WHERE-Klausel erforderlich ist, der die Partitionierungsspalte filtert.
updatePartitionFilter string
SQL-basierter Filter für die Anwendung von inkrementellen Updates.
iceberg IIcebergOptions
Apache Iceberg-spezifische Optionen für verwaltete Iceberg-Tabellen.

IIcebergOptions

Apache Iceberg-spezifische Optionen für verwaltete Iceberg-Tabellen.

connection string

Optional. Der Ressourcenname Ihrer Cloud Storage-Verbindung, die Anmeldedaten zum Lesen aus und Schreiben in externen Speicher bereitstellt. Es kann auf folgende Weise formatiert werden:

  • PROJECT_ID.LOCATION.CONNECTION_ID

    Ersetzen Sie die folgenden Werte:
    • PROJECT_ID: die Google Cloud Projekt-ID
    • LOCATION: der Standortname der Verbindung
    • CONNECTION_ID: Name oder ID der Verbindung
  • projects/PROJECT_ID/locations/LOCATION/connections/CONNECTION_ID
  • DEFAULT

Die Standardeinstellung ist DEFAULT. Weitere Informationen finden Sie unter Standardverbindung – Übersicht.

file_format string

Optional. Das Dateiformat für die Tabellendaten.

Nur PARQUET wird unterstützt. Die Standardeinstellung ist PARQUET.

bucket_name string

Erforderlich auf Tabellen- oder Workflowebene. Der Name des Cloud Storage-Bucket, in dem die Tabellendaten gespeichert sind.

Sie müssen bucket_name im config-Block der Tabellendefinitionsdatei angeben oder einen Standardwert auf Workflowebene in der Datei workflow_settings.yaml festlegen. Wenn keines von beiden angegeben ist, schlägt die Kompilierung fehl. Weitere Informationen finden Sie unter Standardeinstellungen auf Workflowebene für Iceberg-Tabellen konfigurieren .

table_folder_root string

Optional. Der Name des Ordners auf der ersten Ebene im Cloud Storage-Bucket, in dem Tabellendaten gespeichert werden.

Wenn Sie diese Property nicht festlegen, verwendet Dataform den Standardwert auf Workflow-Ebene aus workflow_settings.yaml, sofern er festgelegt ist. Andernfalls wird standardmäßig _dataform verwendet.

table_folder_subpath string

Optional. Ein Unterordner im tableFolderRoot.

Wenn Sie diese Property nicht festlegen, verwendet Dataform den Standardwert auf Workflow-Ebene aus workflow_settings.yaml, sofern einer festgelegt ist. Wenn weder das Attribut noch ein Standardwert auf Workflowebene festgelegt ist, wird der Unterpfad standardmäßig auf DATASET_NAME/TABLE_NAME gesetzt.

Aus diesen Werten wird der Cloud Storage-URI im folgenden Format erstellt: gs://BUCKET_NAME/TABLE_FOLDER_ROOT/TABLE_FOLDER_SUBPATH.

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 sich die Quelltabelle befindet.
description string
Eine Beschreibung der Tabelle.
schema string
Das Schema (BigQuery-Dataset), in dem die Quelltabelle vorhanden ist.

IDependenciesConfig

Definiert Abhängigkeiten einer Workflow-Aktion.

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 leer, da die meisten Abhängigkeiten als Nebenprodukt der Verwendung der Funktion ref deklariert werden.

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 hermetic explizit auf false gesetzt werden. Andernfalls sollte sie auf true festgelegt werden, wenn diese Aktion nur von Daten aus explizit deklarierten Abhängigkeiten abhängt.

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 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 die Richtlinie auf true gesetzt ist, wird diese Aktion nicht ausgeführt. Die Aktion kann weiterhin verwendet werden. Nützlich, um fehlerhafte Aktionen vorübergehend zu deaktivieren.
hasOutput boolean
Deklariert, dass mit dieser operations-Aktion eine Tabelle erstellt wird, auf die mit der Funktion ref verwiesen werden kann.

Wenn der Wert auf true gesetzt ist, wird mit dieser Aktion eine Tabelle mit dem konfigurierten Namen erstellt. Dazu wird die Kontextfunktion self() verwendet.

Beispiel: 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 hermetic auf false. Andernfalls legen Sie true fest.

schema string
Das Schema (BigQuery-Dataset), in dem die Ausgabe dieser Aktion erstellt werden soll.
tags string[]
Eine Liste benutzerdefinierter 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
Optional. Der BigQuery-Standardspeicherort, an dem Dataform Tabellen erstellt.
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 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.
defaultIcebergConfig object
Optional. Standardeinstellungen auf Workflow-Ebene für verwaltete Apache Iceberg-Tabellen. Enthält die folgenden Felder:
  • bucketName: Optional. Der Standardname für den Cloud Storage-Bucket.
  • tableFolderRoot: Optional. Der Standardname für den Ordner der ersten Ebene im Cloud Storage-Bucket.
  • tableFolderSubpath: Optional. Der Standardname für einen Unterordner in tableFolderRoot.
Weitere Informationen finden Sie unter Standardeinstellungen auf Workflow-Ebene für Iceberg-Tabellen konfigurieren.
preserveGovernanceControls boolean
Optional. Wenn dieser Wert auf true gesetzt ist, behält Dataform automatisch vorhandene BigQuery-Datenrichtlinien und Data Governance-Tags (Vorabversion) über Workflowausführungen hinweg für alle Tabellen im Repository bei.
warehouse string
Erforderlich. Muss auf bigquery festgelegt sein.

Sie können IProjectConfig-Attribute in den Workflow-Einstellungen 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-Attribute zugreifen.

Das folgende Codebeispiel zeigt die benutzerdefinierte Kompilierungsvariable myVariableName, die in den Workflow-Einstellungen mit dem Attribut projectConfig.vars festgelegt ist und auf die in einer 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 von Projektkonfigurationseinstellungen für einzelne Kompilierungsergebnisse finden Sie in der Dataform API unter der REST-Ressource CodeCompilationConfig.

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-Richtlinien-Tags umfasst den Projektnamen, den Standort und die Taxonomie.

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

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

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 die Tabelle mehr als eine Zeile mit denselben Werten für alle diese Spalten enthält.

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 die Tabelle mehr als eine Zeile mit denselben Werten für alle Spalten in den eindeutigen Schlüsseln enthält.

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 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 die Richtlinie auf true gesetzt ist, wird diese Aktion nicht ausgeführt. Die Aktion kann weiterhin verwendet 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 hermetic auf false. Andernfalls legen Sie true fest.

materialized boolean
Nur gültig, wenn der Tabellentyp view ist.

Wenn diese Option auf „true“ gesetzt ist, wird eine materialisierte Ansicht erstellt.

onSchemaChange onSchemaChange
Nur gültig, wenn der Tabellentyp incremental ist.

Die Aktion, die ausgeführt wird, nachdem Dataform die SELECT-Abfrage geprüft hat, um festzustellen, ob Spalten hinzugefügt oder entfernt wurden.

Dieses Feature befindet sich im Vorschaumodus.

preserveGovernanceControls boolean
Optional. Wenn dieser Wert auf true gesetzt ist, sichert Dataform vorhandene BigQuery-Datenrichtlinien und Data Governance-Tags (Vorschau) und wendet sie wieder an, wenn eine Tabelle, Ansicht oder inkrementelle Tabelle während einer vollständigen Aktualisierung neu erstellt wird. Überschreibt die in workflow_settings.yaml festgelegten Standardeinstellungen auf Workflowebene.
protected boolean
Nur für den Tabellentyp incremental zulässig.

Wenn dieser Wert auf „true“ gesetzt ist, wird die Option full-refresh beim Ausführen dieser Aktion ignoriert. Dies ist nützlich für Tabellen, die aus temporären Daten erstellt werden, um sicherzustellen, dass Verlaufsdaten nie verloren gehen.

schema string
Das Schema (BigQuery-Dataset), in dem die Ausgabe dieser Aktion erstellt werden soll.
tags string[]
Eine Liste benutzerdefinierter 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.

Falls konfiguriert, werden Datensätze mit übereinstimmenden eindeutigen Schlüsseln aktualisiert, anstatt neue Zeilen einzufügen.

ITableContext

Kontextmethoden sind verfügbar, wenn kontextfähiger 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 und fügt sie als Abhängigkeit für diese Aktion hinzu. Gibt gültigen SQL-Code zurück, der in einem FROM-Ausdruck verwendet werden kann.

Diese Funktion kann beispielsweise mit einem Resolvable-Objekt aufgerufen werden:

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

Diese Funktion kann auch mit einzelnen Argumenten für die Werte "database", "schema" und "name" aufgerufen werden.

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

Wenn nur ein Wert angegeben wird, wird das Standardschemadatenbank 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, aber anstatt eine Abhängigkeit hinzuzufügen, wird die angegebene Referenz aufgelöst, sodass 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 erzeugte Tabelle verwiesen werden kann.

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

falseCase ist optional und standardmäßig ein leerer String.

ITarget

Ein Verweis auf eine Tabelle in BigQuery.

database string
name string
schema string

ITargetableConfig

Definiert die Zieldatenbank und das Zielschema einer Workflow-Aktion.

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.

onSchemaChange

Nachdem Sie das Attribut onSchemaChange festgelegt haben, prüft Dataform die Abfrage SELECT, um festzustellen, ob Spalten hinzugefügt oder entfernt wurden. Dataform führt dann die Aktion aus, die durch den Wert des Attributs onSchemaChange angegeben wird. Sie können die Aktion auf eine der folgenden Optionen festlegen:

  • IGNORE (Standard): Ignoriert hinzugefügte Spalten und zeigt einen Fehler für fehlende Spalten an. Wenn onSchemaChange nicht festgelegt ist, ist dies das Standardverhalten, wenn sich das Schema ändert.
  • FAIL: Beendet die Aktion, wenn Dataform eine Schemaänderung erkennt. Das hilft, das Schema konsistent zu halten.
  • EXTEND: Fügt der inkrementellen Tabelle neue Spalten aus der Abfrage hinzu und fügt NULL-Werte für vorherige Datensätze hinzu. Zeigt einen Fehler an, wenn eine Spalte aus dem ursprünglichen Schema in der Abfrage entfernt wurde oder fehlt. Mit dieser Einstellung können Sie Ihren inkrementellen Tabellen während der Laufzeit neue Spalten hinzufügen.
  • SYNCHRONIZE: Fügt der inkrementellen Tabelle neue Spalten aus der Abfrage hinzu und fügt NULL-Werte für vorherige Datensätze hinzu. Entfernt Spalten, die im ursprünglichen Schema vorhanden waren, aber jetzt in der aktuellen Abfrage fehlen.

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");

Lö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 Tabelle konfigurieren.