Tabellenpartitionen und Cluster erstellen

In diesem Dokument erfahren Sie, wie Sie mit Dataform Core Tabellenpartitionen und Cluster erstellen.

BigQuery unterstützt partitionierte Tabellen und das Clustering von Tabellen. Weitere Informationen zu Partitionen und Clustern in BigQuery finden Sie unter Einführung in partitionierte Tabellen und Geclusterte Tabellen erstellen und verwenden.

Hinweis

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

    Zur Seite „Dataform“

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

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

  4. Tabelle erstellen

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 Konfigurieren von Tabellenpartitionen und ‑clustern 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.

Tabellenpartition erstellen

Wenn Sie eine Tabellenpartition erstellen möchten, fügen Sie dem Block bigquery in einer SQLX-Datei für die Tabellendefinition einen BigQuery-partition_expression hinzu.

So erstellen Sie eine Tabellenpartition:

  1. Rufen Sie Ihren Entwicklungsarbeitsbereich auf.
  2. Maximieren Sie im Bereich Dateien definitions/.
  3. Öffnen Sie eine SQLX-Datei mit einer Tabellendefinition.
  4. Fügen Sie im Block config den Block bigquery unter der Deklaration des Tabellentyps im folgenden Format hinzu:

    config {
      type: "table",
      bigquery: {
      }
    }
    
  5. Geben Sie in den Block bigquery das folgende Code-Snippet ein:

        partitionBy: "PARTITION_EXPRESSION"
    

    Ersetzen Sie PARTITION_EXPRESSION durch einen Ausdruck für die Partitionierung der Tabelle.

  6. Optional: Klicken Sie auf Formatieren.

Im folgenden Codebeispiel wird eine Tabelle in einer SQLX-Datei für die Tabellendefinition nach Stunde partitioniert:

config {
  type: "table",
  bigquery: {
    partitionBy: "DATETIME_TRUNC(<timestamp_column>, HOUR)"
  }
}

Im folgenden Codebeispiel wird die Partitionierung einer Tabelle nach einem Ganzzahlwert in einer SQLX-Datei für die Tabellendefinition veranschaulicht:

config {
  type: "table",
  bigquery: {
    partitionBy: "RANGE_BUCKET(<integer_column>, GENERATE_ARRAY(0, 1000000, 1000))"
  }
}

Partitionsfilter festlegen

Weitere Informationen zum Partitionsfilter in BigQuery finden Sie unter Erforderliches Partitionsfilterattribut für partitionierte Tabelle festlegen.

So legen Sie einen Partitionsfilter fest:

  1. Rufen Sie Ihren Entwicklungsarbeitsbereich auf.
  2. Maximieren Sie im Bereich Dateien definitions/.
  3. Öffnen Sie eine SQLX-Datei mit der Definition einer partitionierten Tabelle.
  4. Geben Sie in den Block bigquery das folgende Code-Snippet ein:

    requirePartitionFilter : true
    
  5. Optional: Klicken Sie auf Formatieren.

Das folgende Codebeispiel zeigt einen Partitionsfilter, der im Block bigquery einer SQLX-Datei für eine partitionierte Tabelle festgelegt ist:

config {
  type: "table",
  bigquery: {
    partitionBy: "DATE(ts)",
    requirePartitionFilter : true
  }
}
SELECT CURRENT_TIMESTAMP() AS ts

Aufbewahrungsdauer für Partitionen festlegen

So steuern Sie die Aufbewahrung aller Partitionen in einer partitionierten Tabelle:

  1. Rufen Sie Ihren Entwicklungsarbeitsbereich auf.
  2. Maximieren Sie im Bereich Dateien definitions/.
  3. Öffnen Sie eine SQLX-Datei mit der Definition einer partitionierten Tabelle.
  4. Geben Sie in den Block bigquery das folgende Code-Snippet ein:

    partitionExpirationDays: NUMBER_OF_DAYS
    

    Ersetzen Sie NUMBER_OF_DAYS durch die Anzahl der Tage, für die Partitionen aufbewahrt werden sollen.

  5. Optional: Klicken Sie auf Formatieren.

Im folgenden Codebeispiel ist eine Aufbewahrungsdauer für Partitionen zu sehen, die im Block bigquery einer SQLX-Datei für partitionierte Tabellen auf 14 Tage festgelegt ist:

config {
  type: "table",
  bigquery: {
    partitionBy: "DATE(ts)",
    partitionExpirationDays: 14,
  }
}
SELECT CURRENT_TIMESTAMP() AS ts

Tabellencluster erstellen

Wenn Sie einen Tabellencluster erstellen möchten, fügen Sie dem Block bigquery in einer SQLX-Datei für die Tabellendefinition eine BigQuery-Liste clustering_column_list hinzu.

So erstellen Sie einen Tabellencluster:

  1. Rufen Sie Ihren Entwicklungsarbeitsbereich auf.
  2. Maximieren Sie im Bereich Dateien definitions/.
  3. Öffnen Sie eine SQLX-Datei mit einer Tabellendefinition.
  4. Geben Sie in den Block bigquery das folgende Code-Snippet ein:

        clusterBy: ["CLUSTER_COLUMN"]
    

    Ersetzen Sie CLUSTER_COLUMN durch den Namen der Spalte, nach der Sie die Tabelle clustern möchten.

  5. Optional: Klicken Sie auf Formatieren.

Das folgende Codebeispiel zeigt eine partitionierte Tabelle, die nach den Spalten name und revenue geclustert ist:

config {
  type: "table",
  bigquery: {
    partitionBy: "DATE(ts)",
    clusterBy: ["name", "revenue"]
  }
}
SELECT CURRENT_TIMESTAMP() as ts, name, revenue

Nächste Schritte