Crea partizioni di tabelle e cluster

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 delle 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 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:

  1. Vai all'area 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 partizionamento della tabella.

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

  1. Vai all'area di lavoro di sviluppo.
  2. Nel riquadro File, espandi definitions/.
  3. Apri un file SQLX di definizione della 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 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:

  1. Vai all'area di lavoro di sviluppo.
  2. Nel riquadro File, espandi definitions/.
  3. Apri un file SQLX di definizione della 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 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:

  1. Vai all'area 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 eseguire il cluster della tabella.

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