Dataform Core können Sie SQL-Workflow-Objekte mit SQLX und JavaScript erstellen. Optional, aber mit JavaScript zusammen mit SQLX zum Erstellen ähnlicher Elemente in Ihrem Workflow wiederholt ausführen. Mit JavaScript können Sie beispielsweise eine Ansicht jeder Tabelle in Ihrem Workflow, wobei bestimmte Nutzer-IDs entfernt wurden. Sie können SQL-Workflow-Objekte auch ausschließlich mit JavaScript entwickeln.
Um mit der Entwicklung von Dataform-SQL-Workflows mit JavaScript zu beginnen, müssen Sie mit der JavaScript-Syntax und die folgenden JavaScript-Konzepte:
- Variablen
- Arrays
- Bedingte Anweisungen
- Für Schleifen
- Maps
- Funktionen
- Objekte
- Module exportieren und importieren
JavaScript-Code zu einer SQLX-Datei hinzufügen
Sie können einer SQLX-Datei auf zwei Arten JavaScript-Code hinzufügen: oder in einem JavaScript-Block.
Sie können einen JavaScript-Block verwenden, um Funktionen oder Konstanten in einer SQLX-Datei zu definieren. Sie können Inline-JavaScript verwenden, um eine SQLX- oder SQL-Abfrage dynamisch zu ändern.
Das folgende Codebeispiel zeigt den integrierten Dataform Core self
Inline zum Block post_operations
in einer SQLX-Datei hinzugefügte JavaScript-Funktion:
config {type: "table"}
SELECT * FROM ...
post_operations {
GRANT `roles/bigquery.dataViewer`
ON
TABLE ${self()}
TO "group:allusers@example.com", "user:otheruser@example.com"
}
Das folgende Codebeispiel zeigt eine in einem JavaScript-Block definierte Konstante und in einer Abfrage in einer SQLX-Datei verwendet:
js {
const columnName = "foo";
}
SELECT 1 AS ${columnName} FROM "..."
Code mit JavaScript wiederverwenden
Sie können JavaScript-Code wiederverwenden, um die Entwicklung in Dataform zu optimieren. Um JavaScript-Konstanten und -Funktionen in einer einzelnen SQLX-Datei wiederzuverwenden, können Sie sie in einen JavaScript-Block kapseln. Um JavaScript-Code wiederzuverwenden Dataform-Repository verwenden können, können Sie auch Einbindungen erstellen. Um JavaScript-Code in mehreren Dataform-Repositories wiederzuverwenden, können Sie ein Paket erstellen oder importieren.
Code in einer einzelnen SQLX-Datei mit JavaScript-Kapselung wiederverwenden
Um sich wiederholende Teile des SQL-Codes zu erstellen, die Sie in SQL wiederverwenden können können Sie Funktionen und Konstanten in einer einzigen SQLX-Datei JavaScript-Block. Sie können nur Code wiederverwenden, der in einem JavaScript-Block definiert wurde in der SQLX-Datei, in der der Block definiert ist. Weitere Informationen Siehe Dataform Core – Übersicht.
Das folgende Codebeispiel zeigt eine Konstante und eine Funktion, die in einem JavaScript-Block, der inline in einer Abfrage in einer SQLX-Datei verwendet wird:
js {
const foo = 1;
function bar(number){
return number+1;
}
}
select
${foo} as one,
${bar(foo)} as two
Code mithilfe von Einbindungen in einem einzelnen Repository wiederverwenden
Dazu gehören JavaScript-Konstanten oder -Funktionen, die global für Ihr Repository verfügbar sind.
Sie definieren Umfasst in der includes
Verzeichnis Ihres Repositorys. Sie können sie dann in Ihrem gesamten Repository wiederverwenden.
in JavaScript- und SQLX-Dateien.
Das folgende Codebeispiel zeigt die Definition der launch_date
-Konstante
in der Datei includes/constants.js
:
// filename is includes/constants.js
const launch_date = "11.11.2011";
module.exports = { launch_date };
Das folgende Codebeispiel zeigt die launch_date
-Konstante, auf die in einer Tabelle verwiesen wird.
Definitionsabfrage in einer SQLX-Datei an:
config {type: "table"}
SELECT * FROM source_table WHERE date > ${constants.launch_date}
Code mit Paketen in mehreren Repositories wiederverwenden
Pakete sind Sammlungen von JavaScript-Code, den Sie in verschiedene Dataform-Repositories zur Optimierung der SQL-Workflow-Entwicklung.
Sie können ein eigenes benutzerdefiniertes Paket erstellen in Dataform oder eines der Open-Source-Dataform-Pakete. verfügbar im Open-Source-Dataform-Seite von GitHub.
Ein Beispiel für die Verwendung eines Open-Source-Pakets in Dataform finden Sie unter Sich langsam ändernde Dimensionen in Dataform verwenden
Um den Inhalt eines Pakets in Dataform verwenden zu können, müssen Sie Installieren Sie das Paket in Ihrem Dataform-Repository und importieren Sie es in Die JavaScript- oder SQLX-Datei, in der Sie das Paket verwenden möchten. Weitere Informationen finden Sie unter Paket in Dataform installieren.
Damit Sie ein privates NPM-Paket in einem Dataform-Repository installieren können, musst du das Paket authentifizieren.
SQL-Workflows in JavaScript erstellen
Als Alternative zur Entwicklung von SQL-Workflows in SQLX oder SQLX in Kombination mit
JavaScript verwenden, können Sie SQL-Workflow-Objekte in .js
-Dateien erstellen, indem Sie
JavaScript Sie können mehrere SQL-Workflow-Objekte in einem JavaScript erstellen.
mit globalen Dataform-Methoden und beliebigem ES5-JavaScript-Code.
wie Schleifen und Konstanten. Alle globalen Dataform-JavaScript-
enthalten Eigenschaften, mit denen Sie die erstellten Objekte konfigurieren können.
Sie können die folgenden SQL-Workflow-Objekte erstellen: indem Sie in Dataform nur JavaScript verwenden:
- Datenquellendeklarationen
- Tabellen
- Manuelle Assertions
- Benutzerdefinierte SQL-Vorgänge
Weitere Informationen zum Erstellen von SQL-Workflow-Objekten nur mit JavaScript finden Sie unter Dataform-SQL-Workflows mit JavaScript erstellen
Nächste Schritte
- Informationen zum Wiederverwenden von Variablen und Funktionen mit Einbindungen finden Sie unter Variablen und Funktionen mit Einbindungen in Dataform wiederverwenden
- Informationen zum Erstellen eines Pakets finden Sie unter Paket in Dataform erstellen
- Informationen zum Installieren eines Pakets findest du unter Paket in Dataform installieren
- Informationen zum Authentifizieren eines privaten Pakets findest du unter Privates Paket authentifizieren
- Informationen zur Verwendung eines Open-Source-Pakets in Dataform finden Sie unter Sich langsam ändernde Dimensionen in Dataform verwenden
- Informationen zum Erstellen von SQL-Workflows mit JavaScript finden Sie unter Dataform-SQL-Workflows mit JavaScript erstellen