Einführung in JavaScript in Dataform

In diesem Dokument erfahren Sie, wie Sie JavaScript verwenden können. um SQL-Workflows in Dataform zu entwickeln.

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