BigQuery supporta le tabelle partizionate e il clustering delle tabelle. Per ulteriori informazioni su partizioni e cluster in BigQuery, consulta Introduzione alle tabelle partizionate e Creazione e utilizzo delle tabelle in cluster.
Prima di iniziare
Nella console Cloud, vai alla pagina Dataform.
Seleziona o crea un repository.
Seleziona o crea un'area di lavoro di sviluppo.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per configurare le partizioni e i cluster delle tabelle,
chiedi all'amministratore di concederti il ruolo IAM
Editor Dataform (roles/dataform.editor
) per le aree di lavoro.
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.
Potresti anche essere in grado di ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Crea una partizione della tabella
Per creare una partizione della tabella, aggiungi una partizione partition_expression di BigQuery al blocco bigquery
in un file SQLX di definizione della tabella.
Per creare una partizione della tabella:
- Vai all'area di lavoro di sviluppo.
- Nel riquadro File, espandi
definitions/
. - Apri un file SQLX di definizione della tabella.
Nel blocco
config
, aggiungi il bloccobigquery
sotto la dichiarazione del tipo di tabella nel seguente formato:config { type: "table", bigquery: { } }
Nel blocco
bigquery
, inserisci il seguente snippet di codice:partitionBy: "PARTITION_EXPRESSION"
Sostituisci PARTITION_EXPRESSION con un'espressione per il partizionamento della tabella.
(Facoltativo) Fai clic su Formato.
Il seguente esempio di codice mostra il partizionamento di una tabella in base all'ora in un file di definizione di tabella SQLX:
config {
type: "table",
bigquery: {
partitionBy: "DATETIME_TRUNC(<timestamp_column>, HOUR)"
}
}
Il seguente esempio di codice mostra il partizionamento di una tabella in base a un valore intero in un file SQLX di definizione di tabella:
config {
type: "table",
bigquery: {
partitionBy: "RANGE_BUCKET(<integer_column>, GENERATE_ARRAY(0, 1000000, 1000))"
}
}
Imposta un filtro di partizionamento
Per saperne di più sul filtro di partizionamento in BigQuery, consulta Impostare l'attributo Richiedi filtro di partizionamento in una tabella partizionata.
Per impostare un filtro di partizionamento:
- Vai all'area di lavoro di sviluppo.
- Nel riquadro File, espandi
definitions/
. - Apri un file SQLX di definizione della tabella partizionata.
Nel blocco
bigquery
, inserisci il seguente snippet di codice:requirePartitionFilter : true
(Facoltativo) Fai clic su Formato.
Il seguente esempio di codice mostra un filtro di partizionamento impostato nel blocco bigquery
di un file SQLX di tabella partizionata:
config {
type: "table",
bigquery: {
partitionBy: "DATE(ts)",
requirePartitionFilter : true
}
}
SELECT CURRENT_TIMESTAMP() AS ts
Imposta un periodo di conservazione per le partizioni
Per controllare la conservazione di tutte le partizioni in una tabella partizionata, segui questi passaggi:
- Vai all'area di lavoro di sviluppo.
- Nel riquadro File, espandi
definitions/
. - Apri un file SQLX di definizione della tabella partizionata.
Nel blocco
bigquery
, inserisci il seguente snippet di codice:partitionExpirationDays: NUMBER_OF_DAYS
Sostituisci NUMBER_OF_DAYS con il numero di giorni per i quali vuoi conservare le partizioni.
(Facoltativo) Fai clic su Formato.
Il seguente esempio di codice mostra un periodo di conservazione per le partizioni impostato su 14 giorni nel blocco bigquery
di un file SQLX di tabella partizionata:
config {
type: "table",
bigquery: {
partitionBy: "DATE(ts)",
partitionExpirationDays: 14,
}
}
SELECT CURRENT_TIMESTAMP() AS ts
Crea un cluster di tabelle
Per creare un cluster di tabelle, aggiungi un clustering_column_list BigQuery al blocco bigquery
in un file SQLX di definizione della tabella.
Per creare un cluster di tabelle:
- Vai all'area di lavoro di sviluppo.
- Nel riquadro File, espandi
definitions/
. - Apri un file SQLX di definizione della tabella.
Nel blocco
bigquery
, inserisci il seguente snippet di codice:clusterBy: ["CLUSTER_COLUMN"]
Sostituisci CLUSTER_COLUMN con il nome della colonna in base alla quale vuoi eseguire il cluster della tabella.
(Facoltativo) Fai clic su Formato.
Il seguente esempio di codice mostra una tabella partizionata in cluster per colonne name
e revenue
:
config {
type: "table",
bigquery: {
partitionBy: "DATE(ts)",
clusterBy: ["name", "revenue"]
}
}
SELECT CURRENT_TIMESTAMP() as ts, name, revenue
Passaggi successivi
- Per informazioni su come riutilizzare il codice con le inclusioni, consulta Riutilizzare le variabili e le funzioni con le inclusioni.
- Per informazioni su come configurare le tabelle incrementali, consulta Configurare una tabella incrementale.