Wenn Sie ein Paket in Dataform verwenden möchten, müssen Sie es in Ihrem Repository installieren.
Sie können die folgenden Arten von Paketen in Dataform installieren:
- Veröffentlichte öffentliche NPM-Pakete.
- Nicht veröffentlichte öffentliche NPM-Pakete.
- Authentifizierte private NPM-Pakete
Wenn Sie das Paket dann in einer JavaScript- oder SQLX-Datei verwenden möchten, müssen Sie den ausgewählten Inhalt des Pakets in die Datei importieren. Sie können auch ein ganzes Paket in eine JavaScript- oder SQLX-Datei importieren, anstatt den ausgewählten Inhalt.
Um Probleme mit der Paketinstallation in Ihrer Produktionsumgebung zu vermeiden, empfehlen wir Folgendes:
Geben Sie die Paketversion explizit in
package.json
an, z. B.3.0.0
. Verwenden Sie keine anderendependencies
-Optionen vonpackage.json
, z. B.>version
.Testen Sie neue Paketversionen in einer Nicht-Produktionsumgebung. Weitere Informationen zum Konfigurieren verschiedener Codelebenszyklusumgebungen finden Sie unter Codelebenszyklus verwalten.
Hinweis
Öffnen Sie in der Google Cloud Console die Seite Dataform.
Wählen Sie ein Repository aus oder erstellen Sie ein neues.
Wählen Sie einen Entwicklungsarbeitsbereich aus oder erstellen Sie einen.
Wenn Ihr Repository keine
package.json
-Datei enthält, erstellen Siepackage.json
und verschieben Sie das Dataform-Kernpaket.Optional: Wenn Sie ein privates Paket installieren möchten, authentifizieren Sie es.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Dataform Editor (roles/dataform.editor
) für Arbeitsbereiche zuzuweisen, damit Sie die Berechtigungen erhalten, die Sie zum Installieren eines Pakets benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Paket installieren
Wenn Sie ein Paket in einem Dataform-Repository installieren möchten, müssen Sie es in der Datei package.json
als Abhängigkeit hinzufügen.
So fügen Sie der Datei package.json
ein Paket als Abhängigkeit hinzu:
- Wählen Sie in Ihrem Arbeitsbereich im Bereich Dateien die Option
package.json
aus. Fügen Sie das Paket dem
dependencies
-Block hinzu:Fügen Sie ein veröffentlichtes öffentliches NPM-Paket im folgenden Format hinzu:
"PACKAGE-NAME": "PACKAGE-VERSION"
Ersetzen Sie Folgendes:
- PACKAGE-NAME durch den Namen des Pakets.
- PACKAGE-VERSION mit der neuesten Version des veröffentlichten öffentlichen NPM-Pakets. Geben Sie die Version explizit an, z. B.
3.0.0
, um Probleme mit der Paketinstallation zu vermeiden.
Fügen Sie ein nicht veröffentlichtes öffentliches NPM-Paket im folgenden Format hinzu:
"PACKAGE-NAME": "PACKAGE-URL"
Ersetzen Sie Folgendes:
- PACKAGE-NAME durch den Namen des Pakets.
- PACKAGE-URL durch die
tar.gz
URL des Paket-Repositorys des Drittanbieters, z. B.https://github.com/user/sample-package-repository/archive/master.tar.gz
.
Fügen Sie ein authentifiziertes privates NPM-Paket im folgenden Format hinzu:
"REGISTRY-SCOPE/PACKAGE-NAME": "PACKAGE-URL"
Ersetzen Sie Folgendes:
- REGISTRY-SCOPE durch den Namen des Pakets.
REGISTRY-SCOPE muss mit dem Registry-Bereich übereinstimmen, der in der Datei
.nmprc
in Ihrem Repository definiert ist. - PACKAGE-NAME durch den Namen des Pakets.
- PACKAGE-URL durch die
tar.gz
-URL des Paket-Repositorys, z. B.https://github.com/user/sample-package-repository/archive/master.tar.gz
.
- REGISTRY-SCOPE durch den Namen des Pakets.
REGISTRY-SCOPE muss mit dem Registry-Bereich übereinstimmen, der in der Datei
Klicken Sie auf Pakete installieren.
Führen Sie einen Commit aus und übertragen Sie die Änderungen per Push.
Das folgende Codebeispiel zeigt das öffentliche Open-Source-Paket „Slowly changing dimensions“, das der .package.json
-Datei hinzugefügt wurde:
```json
{
"name": "repository-name",
"dependencies": {
"@dataform/core": "2.0.3",
"dataform-scd": "https://github.com/dataform-co/dataform-scd/archive/0.3.tar.gz"
}
}
```
Paketfunktion oder ‑konstante in eine JavaScript-Datei in Dataform importieren
Wenn Sie eine Funktion oder Konstante aus einem Paket in einer JavaScript-Datei in Dataform verwenden möchten, müssen Sie sie zuerst in die Datei importieren.
So importieren Sie eine Funktion oder Konstante aus einem Paket in eine JavaScript-Datei:
- Wählen Sie in Ihrem Arbeitsbereich im Bereich Dateien eine
.js
-Datei aus, in der Sie das Paket verwenden möchten. Importieren Sie in der Datei eine Funktion oder Konstante im folgenden Format:
const { EXPORT-NAME } = require("PACKAGE-NAME");
- Ersetzen Sie EXPORT-NAME durch den Namen der Funktion oder Konstante, die Sie verwenden möchten, die in
module.exports
in der Paketdateiindex.js
deklariert ist. - Ersetzen Sie PACKAGE-NAME durch den Namen des Pakets, das Sie verwenden möchten.
- Ersetzen Sie EXPORT-NAME durch den Namen der Funktion oder Konstante, die Sie verwenden möchten, die in
Führen Sie einen Commit aus und übertragen Sie die Änderungen per Push.
Im folgenden Codebeispiel wird die Funktion getDomain
aus dem Paket postoffice
importiert und in einer JavaScript-Datei verwendet:
/*
* Contents of postoffice index.js:
* module.exports = { getDomain };
*/
const { getDomain } = require("postoffice");
getDomain();
Ein ganzes Paket in eine JavaScript-Datei in Dataform importieren
So importieren Sie das gesamte Paket in eine JavaScript-Datei, anstatt ausgewählte Funktionen oder Konstanten in eine JavaScript-Datei zu importieren:
- Wählen Sie in Ihrem Arbeitsbereich im Bereich Dateien eine
.js
-Datei aus, in der Sie das Paket verwenden möchten. Importieren Sie das Paket in der Datei im folgenden Format:
const CONSTANT-NAME = require("PACKAGE-NAME");
- Ersetzen Sie CONSTANT-NAME durch einen Namen für die Konstante.
- Ersetzen Sie PACKAGE-NAME durch den Namen des Pakets, das Sie verwenden möchten.
Führen Sie einen Commit aus und übertragen Sie die Änderungen per Push.
Das folgende Codebeispiel zeigt die getDomain
-Funktion aus dem importierten postoffice
-Paket, die in einer JavaScript-Datei verwendet wird:
/*
* Contents of postoffice index.js:
* module.exports = { getDomain };
*/
const postoffice = require("postoffice");
postoffice.getDomain();
Paketfunktion oder ‑konstante in eine SQLX-Datei in Dataform importieren
Wenn Sie eine Funktion oder Konstante aus einem Paket in einer SQLX-Datei verwenden möchten, müssen Sie sie zuerst in die Datei importieren.
So importieren Sie eine Funktion oder Konstante aus einem Paket in eine SQLX-Datei:
- Wählen Sie in Ihrem Arbeitsbereich im Bereich Dateien eine
.sqlx
-Datei aus, in der Sie das Paket verwenden möchten. Fügen Sie in der Datei den folgenden
js
-Block ein:js { const { EXPORT-NAME } = require("PACKAGE-NAME"); }
- Ersetzen Sie EXPORT-NAME durch den Namen der Funktion oder Konstante, die Sie verwenden möchten, die in
module.exports
in der Paketdateiindex.js
deklariert ist. - Ersetzen Sie PACKAGE-NAME durch den Namen des Pakets, das Sie verwenden möchten.
- Ersetzen Sie EXPORT-NAME durch den Namen der Funktion oder Konstante, die Sie verwenden möchten, die in
Führen Sie einen Commit aus und übertragen Sie die Änderungen per Push.
Das folgende Codebeispiel zeigt die getDomain
-Funktion aus dem postoffice
-Paket, die in einen js
-Block importiert und in einer SELECT
-Anweisung in einer SQLX-Datei verwendet wird:
/*
* Contents of postoffice index.js:
* module.exports = { getDomain };
*/
config {
type: "table",
}
js {
const { getDomain } = require("postoffice");
}
SELECT ${getDomain("email")} as test
Ein ganzes Paket in eine SQLX-Datei in Dataform importieren
So importieren Sie das gesamte Paket in eine SQLX-Datei, anstatt ausgewählte Funktionen oder Konstanten in eine JavaScript-Datei zu importieren:
- Wählen Sie in Ihrem Arbeitsbereich im Bereich Dateien eine
.sqlx
-Datei aus, in der Sie das Paket verwenden möchten. Importieren Sie das Paket in der Datei im folgenden Format:
js { const CONSTANT-NAME = require("PACKAGE-NAME"); }
- Ersetzen Sie CONSTANT-NAME durch einen Namen für die Konstante.
- Ersetzen Sie PACKAGE-NAME durch den Namen des Pakets, das Sie verwenden möchten.
Führen Sie einen Commit aus und übertragen Sie die Änderungen per Push.
Das folgende Codebeispiel zeigt das postoffice
-Paket, das in einen js
-Block importiert wurde, und die getDomain
-Funktion, die in einer SELECT
-Anweisung in einer SQLX-Datei verwendet wird:
/*
* Contents of postoffice index.js:
* module.exports = { getDomain };
*/
config {
type: "table",
}
js {
const postoffice = require("postoffice");
}
SELECT ${postoffice.getDomain("email")} as test
Nächste Schritte
- Informationen zum Authentifizieren eines privaten NPM-Pakets in Dataform finden Sie unter Privates Paket in Dataform authentifizieren.
- Informationen zum Verwalten des erforderlichen Dataform-Kernpakets finden Sie unter Dataform-Kernpaket verwalten.
- Informationen zum Erstellen eines eigenen Pakets in Dataform finden Sie unter Paket in Dataform erstellen.
- Informationen zur Verwendung eines Open-Source-Pakets in Dataform finden Sie unter Langsam ändernde Dimensionen in Dataform verwenden.