Paket in Dataform installieren

In diesem Dokument erfahren Sie, wie Sie ein JavaScript-Paket in einem Dataform-Repository zu erstellen und es in eine JavaScript-Datei zu importieren. eine SQLX-Datei, um das Paket zum Entwickeln von SQL-Workflows in Dataform zu verwenden.

Wenn Sie ein Paket in Dataform verwenden möchten, müssen Sie es in Ihrem Repository installieren.

Sie können die folgenden Pakettypen in Dataform installieren:

Um das Paket dann in einer JavaScript- oder SQLX-Datei zu verwenden, müssen Sie ausgewählten Inhalt des Pakets in der Datei. Sie können auch eine ganze in eine JavaScript- oder SQLX-Datei anstatt in eine JavaScript- oder SQLX-Datei zu laden.

Um Probleme bei der Paketinstallation in der Produktionsumgebung zu vermeiden, empfehlen wir Folgendes:

  • Geben Sie die Paketversion explizit an in package.json, z. B. 3.0.0. Keine anderen dependencies Optionen von package.json, z. B. >version.

  • Neue Paketversionen in einer Nicht-Produktionsumgebung testen Weitere Informationen zum Konfigurieren verschiedener Umgebungen für den Codelebenszyklus finden Sie unter Codelebenszyklus verwalten

Hinweise

  1. Öffnen Sie in der Google Cloud Console die Seite Dataform.

    Zur Seite „Dataform“

  2. Wählen Sie ein Repository aus oder erstellen Sie ein Repository.

  3. Wählen Sie einen Entwicklungsarbeitsbereich aus oder erstellen Sie einen.

  4. Optional: Um ein privates Paket zu installieren, Privates Paket authentifizieren.

Erforderliche Rollen

Um die Berechtigungen zu erhalten, die Sie zum Importieren eines Pakets benötigen, bitten Sie Ihren Administrator, Ihnen IAM-Rolle Dataform Editor (roles/dataform.editor) für Arbeitsbereiche. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Paket in einem Dataform-Repository installieren

Um ein Paket in einem Dataform-Repository zu installieren, müssen Sie Fügen Sie dies als Abhängigkeit in der Datei package.json hinzu. Das Format der Abhängigkeit Die Definition in der Datei package.json hängt vom Pakettyp ab. Wenn Sie hat keine package.json-Datei, da Ihre workflow_settings.yaml-Datei Ihre dataformCoreVersion angibt, entfernen Sie die dataformCoreVersion aus workflow_settings.yaml, erstellen Sie dann eine package.json-Datei und fügen Sie @dataform/core als Abhängigkeit.

So installieren Sie ein Paket in einem Dataform-Repository:

  1. Wählen Sie in Ihrem Arbeitsbereich im Bereich Dateien package.json aus.
  2. Fügen Sie das Paket dem Block dependencies hinzu:

    1. 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 durch die neueste Version des ein veröffentlichtes öffentliches NPM-Paket. Um Probleme bei der Paketinstallation zu vermeiden, explizit die Version an, z. B. 3.0.0.
    2. 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 Drittanbieters Paket-Repository, z. B. https://github.com/user/sample-package-repository/archive/master.tar.gz.
    3. 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 in Ihrem Repository in der Datei .nmprc definiert.
      • PACKAGE-NAME durch den Namen des Pakets.
      • PACKAGE-URL durch die tar.gz-URL des Pakets z. B. ein Repository, https://github.com/user/sample-package-repository/archive/master.tar.gz
  3. Klicken Sie auf Pakete installieren.

  4. Commit und Ihre Änderungen übertragen.

Das folgende Codebeispiel zeigt die öffentliche Open-Source- Das Paketpaket mit sich langsam ändernden Dimensionen wurde der Datei .package.json hinzugefügt:

 ```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

Um eine Funktion oder eine Konstante aus einem Paket in einer JavaScript-Datei in Dataform müssen Sie es zuerst in die Datei importieren.

Um eine Funktion oder Konstante aus einem Paket in eine JavaScript-Datei zu importieren, führen Sie folgende Schritte aus:

  1. Wählen Sie im Arbeitsbereich im Bereich Dateien eine .js-Datei aus, in der das Sie verwenden möchten.
  2. Importieren Sie in der Datei eine Funktion oder eine Konstante im folgenden Format:

    const { EXPORT-NAME } = require("PACKAGE-NAME");
    
    1. Ersetzen Sie EXPORT-NAME durch den Namen der Funktion oder Konstante, die Sie verwenden möchten, in module.exports im Paket index.js.
    2. Ersetzen Sie PACKAGE-NAME durch den Namen von das Sie verwenden möchten.
  3. Commit und Ihre Änderungen übertragen.

Das folgende Codebeispiel zeigt die Funktion getDomain aus dem postoffice-Paket wurde importiert und in einer JavaScript-Datei verwendet:

/*
 * Contents of postoffice index.js:
 * module.exports = { getDomain };
 */

const { getDomain } = require("postoffice");
getDomain();

Ganzes Paket in eine JavaScript-Datei in Dataform importieren

Um das gesamte Paket in eine JavaScript-Datei zu importieren, anstatt es zu importieren ausgewählten Funktionen oder Konstanten zu einer JavaScript-Datei hinzufügen, gehen Sie folgendermaßen vor:

  1. Wählen Sie in Ihrem Arbeitsbereich im Bereich Dateien eine .js-Datei in das Sie für das Paket verwenden möchten.
  2. Importieren Sie das Paket in der Datei im folgenden Format:

    const CONSTANT-NAME = require("PACKAGE-NAME");
    
    1. Ersetzen Sie CONSTANT-NAME durch einen Namen für die Konstante.
    2. Ersetzen Sie PACKAGE-NAME durch den Namen des Pakets. die Sie verwenden möchten.
  3. Commit und Ihre Änderungen übertragen.

Das folgende Codebeispiel zeigt die Funktion getDomain aus dem importiertes postoffice-Paket, das 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

Um eine Funktion oder eine Konstante aus einem Paket in einer SQLX-Datei zu verwenden, müssen Sie sie zuerst in die Datei importieren.

Um eine Funktion oder Konstante aus einem Paket in eine SQLX-Datei zu importieren, führen Sie folgende Schritte aus:

  1. Wählen Sie in Ihrem Arbeitsbereich im Bereich Dateien eine .sqlx-Datei aus. in dem Sie das Paket verwenden möchten.
  2. Geben Sie in der Datei den folgenden js-Block ein:

    js {
      const { EXPORT-NAME } = require("PACKAGE-NAME");
    }
    
    1. Ersetzen Sie EXPORT-NAME durch den Namen der Funktion. oder Konstante, die Sie verwenden möchten, in module.exports deklariert in der Datei index.js.
    2. Ersetzen Sie PACKAGE-NAME durch den Namen des Pakets. die Sie verwenden möchten.
  3. Commit und Ihre Änderungen übertragen.

Das folgende Codebeispiel zeigt die Funktion getDomain aus dem postoffice-Paket wurde in einem js-Block importiert und in einem verwendet: SELECT in einer SQLX-Datei:

/*
 * Contents of postoffice index.js:
 * module.exports = { getDomain };
 */

config {
    type: "table",
}

js {
  const { getDomain } = require("postoffice");
}

SELECT ${getDomain("email")} as test

Ganzes Paket in eine SQLX-Datei in Dataform importieren

Um das gesamte Paket in eine SQLX-Datei zu importieren, anstatt es zu importieren ausgewählten Funktionen oder Konstanten zu einer JavaScript-Datei hinzufügen, gehen Sie folgendermaßen vor:

  1. Wählen Sie in Ihrem Arbeitsbereich im Bereich Dateien eine .sqlx-Datei aus. in dem Sie das Paket verwenden möchten.
  2. Importieren Sie das Paket in der Datei im folgenden Format:

    js {
      const CONSTANT-NAME = require("PACKAGE-NAME");
    }
    
    1. Ersetzen Sie CONSTANT-NAME durch einen Namen für die Konstante.
    2. Ersetzen Sie PACKAGE-NAME durch den Namen des Pakets. die Sie verwenden möchten.
  3. Commit und Ihre Änderungen übertragen.

Im folgenden Codebeispiel sehen Sie, wie das Paket postoffice importiert wird in js-Block und seine getDomain-Funktion in einem SELECT in einer SQLX-Datei:

/*
 * 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