Tabellenpartitionen und Cluster erstellen

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

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

Hinweise

  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 Repository.

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

  4. Erstellen Sie eine Tabelle.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Dataform Editor (roles/dataform.editor) für Arbeitsbereiche zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Konfigurieren von Tabellenpartitionen und -clustern 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.

Tabellenpartition erstellen

Zum Erstellen einer Tabellenpartition fügen Sie dem Block bigquery in einer SQLX-Tabellendefinitionsdatei einen partition_expression-Ausdruck von BigQuery hinzu.

So erstellen Sie eine Tabellenpartition:

  1. Rufen Sie Ihren Entwicklungsarbeitsbereich auf.
  2. Maximieren Sie im Bereich Dateien die Option definitions/.
  3. Öffnen Sie eine SQLX-Tabellendefinitionsdatei.
  4. Fügen Sie im Block config den Block bigquery im folgenden Format unter der Tabellentypdeklaration hinzu:

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

        partitionBy: "PARTITION_EXPRESSION"
    

    Ersetzen Sie PARTITION_EXPRESSION durch einen Ausdruck zum Partitionieren der Tabelle.

  6. Optional: Klicken Sie auf Format.

Das folgende Codebeispiel zeigt, wie eine Tabelle in einer SQLX-Tabellendefinitionsdatei nach Stunden partitioniert wird:

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

Das folgende Codebeispiel zeigt, wie eine Tabelle nach einem ganzzahligen Wert in einer SQLX-Tabellendefinitionsdatei partitioniert wird:

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 Attribut „Partitionsfilter anfordern“ für eine partitionierte Tabelle festlegen.

So legen Sie einen Partitionsfilter fest:

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

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

Das folgende Codebeispiel zeigt einen Partitionsfilter, der im Block bigquery einer SQLX-Datei einer partitionierten 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 die Option definitions/.
  3. Öffnen Sie eine SQLX-Datei mit der Definition einer partitionierten Tabelle.
  4. Geben Sie im bigquery-Block das folgende Code-Snippet ein:

    partitionExpirationDays: NUMBER_OF_DAYS
    

    Ersetzen Sie NUMBER_OF_DAYS durch die Anzahl der Tage, für die Sie Partitionen aufbewahren möchten.

  5. Optional: Klicken Sie auf Format.

Das folgende Codebeispiel zeigt eine Aufbewahrungsdauer für Partitionen, die im Block bigquery einer SQLX-Datei einer partitionierten Tabelle auf 14 Tage festgelegt sind:

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

Tabellencluster erstellen

Zum Erstellen eines Tabellenclusters fügen Sie dem Block bigquery in einer SQLX-Tabellendefinitionsdatei eine BigQuery-clustering_column_list hinzu.

So erstellen Sie einen Tabellencluster:

  1. Rufen Sie Ihren Entwicklungsarbeitsbereich auf.
  2. Maximieren Sie im Bereich Dateien die Option definitions/.
  3. Öffnen Sie eine SQLX-Tabellendefinitionsdatei.
  4. Geben Sie im bigquery-Block das folgende Code-Snippet ein:

        clusterBy: ["CLUSTER_COLUMN"]
    

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

  5. Optional: Klicken Sie auf Format.

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