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 di 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 partizioni e cluster di tabelle,
chiedi all'amministratore di concederti il ruolo IAM Editor di Dataform (roles/dataform.editor
) negli spazi di lavoro.
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Creare una partizione della tabella
Per creare una partizione della tabella, aggiungi un valore BigQuery
partition_expression
al blocco bigquery
in un file SQLX di definizione della tabella.
Per creare una partizione di tabella:
- Vai allo spazio 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 partitioning della tabella.
(Facoltativo) Fai clic su Formato.
Il seguente esempio di codice mostra il partizionamento di una tabella per ora in un file SQLX di definizione della tabella:
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 della tabella:
config {
type: "table",
bigquery: {
partitionBy: "RANGE_BUCKET(<integer_column>, GENERATE_ARRAY(0, 1000000, 1000))"
}
}
Impostare un filtro di partizione
Per ulteriori informazioni sul filtro di partizione in BigQuery, consulta Impostare l'attributo require partition filter su una tabella partizionata.
Per impostare un filtro della partizione:
- Vai allo spazio di lavoro di sviluppo.
- Nel riquadro File, espandi
definitions/
. - Apri un file SQLX di definizione di una 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 partizione impostato nel blocco bigquery
di un file SQLX della tabella partizionata:
config {
type: "table",
bigquery: {
partitionBy: "DATE(ts)",
requirePartitionFilter : true
}
}
SELECT CURRENT_TIMESTAMP() AS ts
Impostare un periodo di conservazione per le partizioni
Per controllare la conservazione di tutte le partizioni in una tabella partizionata:
- Vai allo spazio di lavoro di sviluppo.
- Nel riquadro File, espandi
definitions/
. - Apri un file SQLX di definizione di una 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 della tabella partizionata:
config {
type: "table",
bigquery: {
partitionBy: "DATE(ts)",
partitionExpirationDays: 14,
}
}
SELECT CURRENT_TIMESTAMP() AS ts
Creare 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 allo spazio 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 raggruppare la tabella.
(Facoltativo) Fai clic su Formato.
Il seguente esempio di codice mostra una tabella partizionata raggruppata in cluster in base alle colonne name
e revenue
:
config {
type: "table",
bigquery: {
partitionBy: "DATE(ts)",
clusterBy: ["name", "revenue"]
}
}
SELECT CURRENT_TIMESTAMP() as ts, name, revenue
Passaggi successivi
- Per scoprire come riutilizzare il codice con gli include, consulta Riutilizzare il codice in un singolo repository con gli include.
- Per scoprire come configurare le tabelle incrementali, consulta Configurare una tabella incrementale.