Paket in Dataform installieren

In diesem Dokument erfahren Sie, wie Sie ein JavaScript-Paket in einem Dataform-Repository installieren und in eine JavaScript-Datei und eine SQLX-Datei importieren, um mit dem Paket SQL-Workflows in Dataform zu entwickeln.

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:

Wenn Sie das Paket dann in einer JavaScript- oder SQLX-Datei verwenden möchten, müssen Sie ausgewählte Inhalte des Pakets in die Datei importieren. Sie können auch ein ganzes Paket anstelle des ausgewählten Inhalts in eine JavaScript- oder SQLX-Datei importieren.

Hinweise

  1. Rufen Sie in der Google Cloud Console die Seite Dataform auf.

    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] Authentifizieren Sie das private Paket, um ein privates Paket zu installieren.

Erforderliche Rollen

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

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

Paket in einem Dataform-Repository installieren

Wenn Sie ein Paket in einem Dataform-Repository installieren möchten, müssen Sie es als Abhängigkeit in der Datei package.json hinzufügen. Das Format der Abhängigkeitsdefinition in der Datei package.json hängt vom Typ des Pakets ab. Wenn Sie keine package.json-Datei haben, weil Ihre workflow_settings.yaml-Datei Ihre dataformCoreVersion angibt, entfernen Sie das dataformCoreVersion aus workflow_settings.yaml, erstellen Sie eine package.json-Datei und fügen Sie @dataform/core als Abhängigkeit hinzu.

So installieren Sie ein Paket in einem Dataform-Repository:

  1. Wählen Sie in Ihrem Arbeitsbereich im Bereich Dateien die Option package.json aus.
  2. Fügen Sie das Paket dem dependencies-Block 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 veröffentlichten öffentlichen NPM-Pakets.
    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 URL tar.gz des Paket-Repositorys des Drittanbieters, z. B. https://github.com/user/sample-package-repository/archive/master.tar.gz.
    3. Fügen Sie ein authentifizierte 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 URL tar.gz des Paket-Repositorys, z. B. https://github.com/user/sample-package-repository/archive/master.tar.gz.
  3. Klicken Sie auf Pakete installieren.

  4. Führen Sie ein Commit und push Ihrer Änderungen durch.

Das folgende Codebeispiel zeigt das öffentliche Open-Source-Paketpaket für sich langsam ändernde Dimensionen, das der Datei .package.json hinzugefügt wurde:

 ```
 {
   "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 eine Konstante aus einem Paket in eine JavaScript-Datei:

  1. Wählen Sie in Ihrem Arbeitsbereich im Bereich Files (Dateien) die Datei .js aus, in der Sie das Paket 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, und deklariert in module.exports der Datei index.js des Pakets.
    2. Ersetzen Sie PACKAGE-NAME durch den Namen des Pakets, das Sie verwenden möchten.
  3. Führen Sie ein Commit und push Ihrer Änderungen durch.

Das folgende Codebeispiel zeigt die Funktion getDomain aus dem Paket postoffice, die in eine JavaScript-Datei importiert und verwendet wird:

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

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

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:

  1. Wählen Sie in Ihrem Arbeitsbereich im Bereich Dateien die Datei .js aus, in der Sie 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, das Sie verwenden möchten.
  3. Führen Sie ein Commit und push Ihrer Änderungen durch.

Das folgende Codebeispiel zeigt die Funktion getDomain aus dem importierten 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

Wenn Sie eine Funktion oder Konstante aus einem Paket in einer SQLX-Datei verwenden möchten, müssen Sie diese zuerst in die Datei importieren.

So importieren Sie eine Funktion oder eine Konstante aus einem Paket in eine SQLX-Datei:

  1. Wählen Sie in Ihrem Arbeitsbereich im Bereich Dateien die Datei .sqlx aus, in der Sie das Paket verwenden möchten.
  2. Geben Sie den folgenden js-Block in die Datei 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, und deklariert den Namen module.exports in der Datei index.js des Pakets.
    2. Ersetzen Sie PACKAGE-NAME durch den Namen des Pakets, das Sie verwenden möchten.
  3. Führen Sie ein Commit und push Ihrer Änderungen durch.

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

Ganzes Paket in Dataform in eine SQLX-Datei importieren

So importieren Sie das gesamte Paket in eine SQLX-Datei, anstatt ausgewählte Funktionen oder Konstanten in eine JavaScript-Datei zu importieren:

  1. Wählen Sie in Ihrem Arbeitsbereich im Bereich Dateien die Datei .sqlx aus, in der 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, das Sie verwenden möchten.
  3. Führen Sie ein Commit und push Ihrer Änderungen durch.

Das folgende Codebeispiel zeigt das Paket postoffice, das in einen js-Block importiert wurde, und seine 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