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
Rufen Sie in der Cloud Console die Seite Dataform auf.
Wählen Sie ein Repository aus oder erstellen Sie ein Repository.
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 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:
- Rufen Sie Ihren Entwicklungsarbeitsbereich auf.
- Maximieren Sie im Bereich Dateien die Option
definitions/
. - Öffnen Sie eine SQLX-Tabellendefinitionsdatei.
Fügen Sie im Block
config
den Blockbigquery
im folgenden Format unter der Tabellentypdeklaration hinzu:config { type: "table", bigquery: { } }
Geben Sie im
bigquery
-Block das folgende Code-Snippet ein:partitionBy: "PARTITION_EXPRESSION"
Ersetzen Sie PARTITION_EXPRESSION durch einen Ausdruck zum Partitionieren der Tabelle.
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:
- Rufen Sie Ihren Entwicklungsarbeitsbereich auf.
- Maximieren Sie im Bereich Dateien die Option
definitions/
. - Öffnen Sie eine SQLX-Datei mit der Definition einer partitionierten Tabelle.
Geben Sie im
bigquery
-Block das folgende Code-Snippet ein:requirePartitionFilter : true
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:
- Rufen Sie Ihren Entwicklungsarbeitsbereich auf.
- Maximieren Sie im Bereich Dateien die Option
definitions/
. - Öffnen Sie eine SQLX-Datei mit der Definition einer partitionierten Tabelle.
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.
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:
- Rufen Sie Ihren Entwicklungsarbeitsbereich auf.
- Maximieren Sie im Bereich Dateien die Option
definitions/
. - Öffnen Sie eine SQLX-Tabellendefinitionsdatei.
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.
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
- Informationen zur Wiederverwendung von Code mit "Einschließen" finden Sie unter Variablen und Funktionen mit "Einschließen" wiederverwenden.
- Informationen zum Konfigurieren inkrementeller Tabellen finden Sie unter Inkrementelle Tabelle konfigurieren.