Zusätzliche Tabelleneinstellungen konfigurieren

In diesem Dokument erfahren Sie, wie Sie zusätzliche Tabelleneinstellungen in einer Tabellendefinitionsdatei konfigurieren. Mit Dataform Core können Sie pre_operations und post_operations so definieren, dass eine SQL-Anweisung vor oder nach der Tabellenerstellung ausgeführt wird. Sie können auch Tabelleneinstellungen wie database oder schema überschreiben und die Tabellenerstellung deaktivieren.

Hinweise

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

    Zu 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. Tabelle erstellen

Erforderliche Rollen

Um die Berechtigungen zu erhalten, die Sie zum Konfigurieren zusätzlicher Tabelleneinstellungen 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.

Tabelleneinstellungen überschreiben

Sie können das Schema, die Datenbank und den Namen einer ausgewählten Tabelle überschreiben.

Standardmäßig folgt eine Tabelle dem Schema und der Datenbankkonfiguration, die Sie in dataform.json Der Name einer Tabelle entspricht dem Namen der Tabelle SQLX-Definitionsdatei.

So überschreiben Sie das Schema und den Namen einer ausgewählten Tabelle:

  1. Rufen Sie den Entwicklungsarbeitsbereich auf.

  2. Maximieren Sie im Bereich Dateien den Bereich definitions/.

  3. Öffnen Sie eine SQLX-Tabellendefinitionsdatei.

  4. Geben Sie im Block config das folgende Code-Snippet ein:

     {
       schema: "OVERRIDDEN_SCHEMA",
       database: "OVERRIDDEN_DATABASE",
       name: "OVERRIDDEN_NAME"
     }
    

    Ersetzen Sie Folgendes:

    • OVERRIDDEN_SCHEMA: BigQuery Dataset, in dem Sie die Tabelle erstellen möchten

    • OVERRIDDEN_DATABASE: die ID des BigQuery-Projekt, in dem Sie die Tabelle erstellen möchten

    • OVERRIDDEN_NAME: der Name der Tabelle unterscheidet sich vom Namen der SQLX-Tabellendefinitionsdatei

  5. Optional: Klicken Sie auf Format.

Auf eine Tabelle mit einem überschriebenen Tabellennamen verweisen

  • Um auf eine Tabelle mit einem überschriebenen Tabellennamen zu verweisen, geben Sie in der Funktion ref Folgendes an: Geben Sie den überschriebenen Tabellennamen ein, der in name: "" festgelegt wurde.

Im folgenden Codebeispiel wird auf eine Tabelle verwiesen, deren Name durch überschrieben wird overridden_name:

  SELECT * FROM ${ref("overridden_name")}

SQL-Anweisung definieren, die vor der Tabellenerstellung ausgeführt werden soll

Sie können Dataform so konfigurieren, dass eine oder mehrere SQL-Anweisungen ausgeführt werden bevor Sie eine ausgewählte Tabelle in BigQuery erstellen. Um eine SQL-Abfrage bevor Dataform eine ausgewählte Tabelle erstellt, fügen Sie -Anweisung zum Block pre_operations in der SQLX-Tabellendefinitionsdatei hinzu.

Um eine benutzerdefinierte SQL-Anweisung zu erstellen, die ausgeführt wird, bevor Dataform eine bestimmte führen Sie die folgenden Schritte aus:

  1. Rufen Sie den Entwicklungsarbeitsbereich auf.

  2. Maximieren Sie im Bereich Dateien den Bereich definitions/.

  3. Öffnen Sie eine SQLX-Tabellendefinitionsdatei.

  4. Geben Sie außerhalb des Blocks config pre_operations { ... } ein.

  5. Fügen Sie in pre_operations { ... } Ihre SQL-Anweisung hinzu.

  6. Optional: Wenn Sie mehrere Anweisungen hinzufügen möchten, trennen Sie sie durch ---.

  7. Optional: Klicken Sie auf Format.

Das folgende Codebeispiel zeigt eine pre_operations-Anweisung, mit der ein temporäre Funktion, die in der select-Anweisung verwendet werden kann:

  pre_operations {
    CREATE TEMP FUNCTION AddFourAndDivide(x INT64, y INT64)
      RETURNS FLOAT64
      AS ((x + 4) / y);
  }

SQL-Anweisung definieren, die nach der Tabellenerstellung ausgeführt werden soll

Sie können Dataform so konfigurieren, dass eine oder mehrere SQL-Anweisungen ausgeführt werden nachdem Sie eine ausgewählte Tabelle in BigQuery erstellt haben. So führen Sie eine SQL-Anweisung aus: Nachdem Dataform eine ausgewählte Tabelle erstellt hat, fügen Sie Ihre Anweisung post_operations-Block in der SQLX-Tabellendefinitionsdatei. Sie können mehrere SQL-Anweisungen in den post_operations-Block ein.

Um eine benutzerdefinierte SQL-Anweisung zu erstellen, die ausgeführt wird, nachdem Dataform eine bestimmte führen Sie die folgenden Schritte aus:

  1. Rufen Sie den Entwicklungsarbeitsbereich auf.

  2. Maximieren Sie im Bereich Dateien den Bereich definitions/.

  3. Öffnen Sie eine SQLX-Tabellendefinitionsdatei.

  4. Geben Sie außerhalb des Blocks config post_operations { ... } ein.

  5. Fügen Sie in post_operations { ... } Ihre SQL-Anweisung hinzu.

  6. Optional: Klicken Sie auf Format.

Das folgende Codebeispiel zeigt post_operations-Anweisungen, die Gruppen gewähren auf die erstellte Tabelle:

    post_operations {
      GRANT `roles/bigquery.dataViewer`
      ON
      TABLE ${self()}
      TO "group:allusers@example.com", "user:otheruser@example.com"
    }

Tabellenerstellung deaktivieren

Um zu verhindern, dass Dataform eine ausgewählte Tabelle erstellt in BigQuery können Sie die Tabelle in der zugehörigen SQLX-Tabellendefinitionsdatei deaktivieren. Dataform behält eine deaktivierte Tabelle im Abhängigkeitsdiagramm bei, nicht kompilieren und erstellen. Dies kann beispielsweise nützlich sein, wenn eine Tabelle ausfällt und möchten Sie nicht, dass der gesamte Workflow fehlt, während Sie das Problem beheben.

So deaktivieren Sie eine Tabelle:

  1. Rufen Sie den Entwicklungsarbeitsbereich auf.

  2. Maximieren Sie im Bereich Dateien den Bereich definitions/.

  3. Wählen Sie eine SQLX-Tabellendefinitionsdatei aus.

  4. Geben Sie im Block config der Datei disabled: true ein.

  5. Optional: Klicken Sie auf Format.

Das folgende Codebeispiel zeigt eine deaktivierte Tabelle:

  config {
    type: "table",
    disabled: true
  }

  select * from ${ref("source_data")}

Nächste Schritte