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
Rufen Sie in der Cloud Console die Seite Dataform auf.
Wählen Sie ein Repository aus oder erstellen Sie ein neues.
Wählen Sie einen Entwicklungsarbeitsbereich aus oder erstellen Sie einen.
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:
- Rufen Sie Ihren Entwicklungsarbeitsbereich auf.
- Maximieren Sie im Bereich Dateien
definitions/
. - Öffnen Sie eine SQLX-Datei mit einer Tabellendefinition.
Fügen Sie im Block
config
den Blockbigquery
unter der Deklaration des Tabellentyps im folgenden Format hinzu:config { type: "table", bigquery: { } }
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.
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:
- Rufen Sie Ihren Entwicklungsarbeitsbereich auf.
- Maximieren Sie im Bereich Dateien
definitions/
. - Öffnen Sie eine SQLX-Datei mit der Definition einer partitionierten Tabelle.
Geben Sie in den Block
bigquery
das folgende Code-Snippet ein:requirePartitionFilter : true
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:
- Rufen Sie Ihren Entwicklungsarbeitsbereich auf.
- Maximieren Sie im Bereich Dateien
definitions/
. - Öffnen Sie eine SQLX-Datei mit der Definition einer partitionierten Tabelle.
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.
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:
- Rufen Sie Ihren Entwicklungsarbeitsbereich auf.
- Maximieren Sie im Bereich Dateien
definitions/
. - Öffnen Sie eine SQLX-Datei mit einer Tabellendefinition.
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.
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
- Informationen zum Wiederverwenden von Code mit Includes finden Sie unter Code in einem einzelnen Repository mit Includes wiederverwenden.
- Informationen zum Konfigurieren von Inkrementtabellen finden Sie unter Inkrementtabelle konfigurieren.