Crea partizioni e cluster di tabelle

Questo documento mostra come utilizzare Dataform core per creare partizioni e cluster di tabelle.

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

  1. Nella console Cloud, vai alla pagina Dataform.

    Vai alla pagina Dataform

  2. Seleziona o crea un repository.

  3. Seleziona o crea un'area di lavoro di sviluppo.

  4. Crea una tabella.

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:

  1. Vai allo spazio di lavoro di sviluppo.
  2. Nel riquadro File, espandi definitions/.
  3. Apri un file SQLX di definizione della tabella.
  4. Nel blocco config, aggiungi il blocco bigquery sotto la dichiarazione del tipo di tabella nel seguente formato:

    config {
      type: "table",
      bigquery: {
      }
    }
    
  5. Nel blocco bigquery, inserisci il seguente snippet di codice:

        partitionBy: "PARTITION_EXPRESSION"
    

    Sostituisci PARTITION_EXPRESSION con un'espressione per il partitioning della tabella.

  6. (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:

  1. Vai allo spazio di lavoro di sviluppo.
  2. Nel riquadro File, espandi definitions/.
  3. Apri un file SQLX di definizione di una tabella partizionata.
  4. Nel blocco bigquery, inserisci il seguente snippet di codice:

    requirePartitionFilter : true
    
  5. (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:

  1. Vai allo spazio di lavoro di sviluppo.
  2. Nel riquadro File, espandi definitions/.
  3. Apri un file SQLX di definizione di una tabella partizionata.
  4. 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.

  5. (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:

  1. Vai allo spazio di lavoro di sviluppo.
  2. Nel riquadro File, espandi definitions/.
  3. Apri un file SQLX di definizione della tabella.
  4. 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.

  5. (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