Aggiornare le proprietà del set di dati

Questo documento descrive come aggiornare le proprietà dei set di dati in BigQuery. Dopo aver creato un set di dati, puoi aggiornare le seguenti proprietà:

Prima di iniziare

Concedi i ruoli IAM (Identity and Access Management) che concedono agli utenti le autorizzazioni necessarie per eseguire ogni attività in questo documento.

Autorizzazioni obbligatorie

Per aggiornare le proprietà del set di dati, sono necessarie le seguenti autorizzazioni IAM:

  • bigquery.datasets.update
  • bigquery.datasets.setIamPolicy (obbligatorio solo per aggiornare i controlli di accesso ai set di dati nella Google Cloud console)

Il ruolo IAM predefinito roles/bigquery.dataOwner include le autorizzazioni necessarie per aggiornare le proprietà del set di dati.

Inoltre, se disponi dell'autorizzazione bigquery.datasets.create, puoi aggiornare le proprietà dei set di dati che crei.

Per ulteriori informazioni sui ruoli e sulle autorizzazioni IAM in BigQuery, consulta Ruoli e autorizzazioni predefiniti.

Aggiornare le descrizioni dei set di dati

Puoi aggiornare la descrizione di un set di dati nei seguenti modi:

  • Utilizzo della Google Cloud console.
  • Utilizzo del comando bq update dello strumento a riga di comando bq.
  • Chiamata del metodo dell'API datasets.patch.
  • Utilizzo delle librerie client.

Per aggiornare la descrizione di un set di dati:

Console

  1. Nel riquadro Spazio di esplorazione, espandi il progetto e seleziona un set di dati.

  2. Espandi l'opzione Azioni e fai clic su Apri.

  3. Nel riquadro Dettagli, fai clic su Modifica dettagli per modificare il testo della descrizione.

    Nella finestra di dialogo Modifica dettaglio visualizzata, segui questi passaggi:

    1. Nel campo Descrizione, inserisci una descrizione o modifica quella esistente.
    2. Per salvare il nuovo testo della descrizione, fai clic su Salva.

SQL

Per aggiornare la descrizione di un set di dati, utilizza la istruzione ALTER SCHEMA SET OPTIONS per impostare l'opzione description.

L'esempio seguente imposta la descrizione su un set di dati denominato mydataset:

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nell'editor di query, inserisci la seguente istruzione:

     ALTER SCHEMA mydataset
     SET OPTIONS (
         description = 'Description of mydataset');
     

  3. Fai clic su Esegui.

Per ulteriori informazioni su come eseguire query, consulta Eseguire una query interattiva.

bq

Esegui il comando bq update con il flag --description. Se stai aggiornando un set di dati in un progetto diverso da quello predefinito, aggiungi l'ID progetto al nome del set di dati nel seguente formato: project_id:dataset.

bq update \
--description "string" \
project_id:dataset

Sostituisci quanto segue:

  • string: il testo che descrive il set di dati, tra virgolette
  • project_id: il tuo ID progetto
  • dataset: il nome del set di dati che stai aggiornando

Esempi:

Inserisci il seguente comando per modificare la descrizione di mydataset in "Descrizione di mydataset". mydataset si trova nel tuo progetto predefinito.

bq update --description "Description of mydataset" mydataset

Inserisci il seguente comando per modificare la descrizione di mydataset in "Descrizione di mydataset". Il set di dati si trova in myotherproject, non nel tuo progetto predefinito.

bq update \
--description "Description of mydataset" \
myotherproject:mydataset

API

Chiama datasets.patch e aggiorna la proprietà description nella risorsa set di dati. Poiché il metodo datasets.update sostituisce l'intera risorsa del set di dati, è preferibile il metodo datasets.patch.

Vai

Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida di BigQuery relativa all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Go.

Per effettuare l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per le librerie client.

import (
	"context"
	"fmt"

	"cloud.google.com/go/bigquery"
)

// updateDatasetDescription demonstrates how the Description metadata of a dataset can
// be read and modified.
func updateDatasetDescription(projectID, datasetID string) error {
	// projectID := "my-project-id"
	// datasetID := "mydataset"
	ctx := context.Background()
	client, err := bigquery.NewClient(ctx, projectID)
	if err != nil {
		return fmt.Errorf("bigquery.NewClient: %v", err)
	}
	defer client.Close()

	ds := client.Dataset(datasetID)
	meta, err := ds.Metadata(ctx)
	if err != nil {
		return err
	}
	update := bigquery.DatasetMetadataToUpdate{
		Description: "Updated Description.",
	}
	if _, err = ds.Update(ctx, update, meta.ETag); err != nil {
		return err
	}
	return nil
}

Java

Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di BigQuery relativa all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Java.

Per effettuare l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per le librerie client.

Crea un'istanza Dataset.Builder da un'istanza Dataset esistente con il metodo Dataset.toBuilder(). Configura l'oggetto del generatore di set di dati. Crea il set di dati aggiornato con il metodo Dataset.Builder.build() e chiama il metodo Dataset.update() per inviare l'aggiornamento all'API.
import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryException;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.Dataset;

public class UpdateDatasetDescription {

  public static void runUpdateDatasetDescription() {
    // TODO(developer): Replace these variables before running the sample.
    String datasetName = "MY_DATASET_NAME";
    String newDescription = "this is the new dataset description";
    updateDatasetDescription(datasetName, newDescription);
  }

  public static void updateDatasetDescription(String datasetName, String newDescription) {
    try {
      // Initialize client that will be used to send requests. This client only needs to be created
      // once, and can be reused for multiple requests.
      BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();

      Dataset dataset = bigquery.getDataset(datasetName);
      bigquery.update(dataset.toBuilder().setDescription(newDescription).build());
      System.out.println("Dataset description updated successfully to " + newDescription);
    } catch (BigQueryException e) {
      System.out.println("Dataset description was not updated \n" + e.toString());
    }
  }
}

Node.js

Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di BigQuery relativa all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Node.js.

Per effettuare l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per le librerie client.

// Import the Google Cloud client library
const {BigQuery} = require('@google-cloud/bigquery');
const bigquery = new BigQuery();

async function updateDatasetDescription() {
  // Updates a dataset's description.

  // Retreive current dataset metadata
  const dataset = bigquery.dataset(datasetId);
  const [metadata] = await dataset.getMetadata();

  // Set new dataset description
  const description = 'New dataset description.';
  metadata.description = description;

  const [apiResponse] = await dataset.setMetadata(metadata);
  const newDescription = apiResponse.description;

  console.log(`${datasetId} description: ${newDescription}`);
}

Python

Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di BigQuery relativa all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Python.

Per effettuare l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per le librerie client.

Configura la proprietà Dataset.description e chiama Client.update_dataset() per inviare l'aggiornamento all'API.

from google.cloud import bigquery

# Construct a BigQuery client object.
client = bigquery.Client()

# TODO(developer): Set dataset_id to the ID of the dataset to fetch.
# dataset_id = 'your-project.your_dataset'

dataset = client.get_dataset(dataset_id)  # Make an API request.
dataset.description = "Updated description."
dataset = client.update_dataset(dataset, ["description"])  # Make an API request.

full_dataset_id = "{}.{}".format(dataset.project, dataset.dataset_id)
print(
    "Updated dataset '{}' with description '{}'.".format(
        full_dataset_id, dataset.description
    )
)

Aggiornare le scadenze predefinite delle tabelle

Puoi aggiornare la scadenza predefinita della tabella di un set di dati nei seguenti modi:

  • Utilizzo della Google Cloud console.
  • Utilizzo del comando bq update dello strumento a riga di comando bq.
  • Chiamata del metodo dell'API datasets.patch.
  • Utilizzo delle librerie client.

Puoi impostare una scadenza predefinita per le tabelle a livello di set di dati oppure puoi impostare la scadenza di una tabella al momento della sua creazione. Se imposti la scadenza quando viene creata la tabella, la scadenza predefinita della tabella del set di dati viene ignorata. Se non imposti una scadenza predefinita della tabella a livello di set di dati e non imposti una scadenza della tabella al momento della creazione, la tabella non scade mai e devi eliminarla manualmente. Quando una tabella scade, viene eliminata insieme a tutti i dati che contiene.

Quando aggiorni l'impostazione di scadenza predefinita della tabella di un set di dati:

  • Se modifichi il valore da Never a una data e ora di scadenza definita, le tabelle che esistono già nel set di dati non scadranno, a meno che la data e ora di scadenza non sia stata impostata sulla tabella al momento della sua creazione.
  • Se modifichi il valore della scadenza predefinita della tabella, tutte le tabelle esistenti scadono in base all'impostazione originale della scadenza della tabella. A tutte le nuove tabelle create nel set di dati viene applicata l'impostazione di scadenza della nuova tabella, a meno che non specifichi una scadenza diversa per la tabella al momento della sua creazione.

Il valore della scadenza della tabella predefinita è espresso in modo diverso a seconda di dove viene impostato. Utilizza il metodo che offre il livello di granularità appropriato:

  • Nella Google Cloud console, la scadenza è espressa in giorni.
  • Nello strumento a riga di comando bq, la scadenza è espressa in secondi.
  • Nell'API, la scadenza è espressa in millisecondi.

Per aggiornare la data e l'ora di scadenza predefinite per un set di dati:

Console

  1. Nel riquadro Spazio di esplorazione, espandi il progetto e seleziona un set di dati.

  2. Espandi l'opzione Azioni e fai clic su Apri.

  3. Nel riquadro dei dettagli, fai clic sull'icona a forma di matita accanto a Informazioni set di dati per modificare la scadenza.

  4. Nella finestra di dialogo Informazioni set di dati, nella sezione Scadenza tabella predefinita, inserisci un valore per Numero di giorni dopo la creazione della tabella.

  5. Fai clic su Salva.

SQL

Per aggiornare la scadenza predefinita della tabella, utilizza l'istruzione ALTER SCHEMA SET OPTIONS per impostare l'opzione default_table_expiration_days.

L'esempio seguente aggiorna la scadenza predefinita della tabella per un set di dati chiamato mydataset.

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nell'editor di query, inserisci la seguente istruzione:

     ALTER SCHEMA mydataset
     SET OPTIONS(
         default_table_expiration_days = 3.75);
     

  3. Fai clic su Esegui.

Per ulteriori informazioni su come eseguire query, consulta Eseguire una query interattiva.

bq

Per aggiornare la scadenza predefinita per le tabelle appena create in un set di dati, inserisci il comando bq update con il flag --default_table_expiration. Se stai aggiornando un set di dati in un progetto diverso da quello predefinito, aggiungi l'ID progetto al nome del set di dati nel seguente formato: project_id:dataset.

bq update \
--default_table_expiration integer \
project_id:dataset

Sostituisci quanto segue:

  • integer: la durata predefinita, in secondi, per le tabelle appena create. Il valore minimo è 3600 secondi (un'ora). La data e l'ora di scadenza vengono valutate in base all'ora UTC corrente più il valore intero. Specifica 0 per rimuovere la data e l'ora di scadenza esistenti. Qualsiasi tabella creata nel set di dati viene eliminata integer secondi dopo la relativa ora di creazione. Questo valore viene applicato se non imposti la scadenza di una tabella al momento della sua creazione.
  • project_id: il tuo ID progetto.
  • dataset: il nome del set di dati che stai aggiornando.

Esempi:

Inserisci il seguente comando per impostare la scadenza predefinita delle nuove tabelle create in mydataset su due ore (7200 secondi) dall'ora corrente. Il set di dati si trova nel tuo progetto predefinito.

bq update --default_table_expiration 7200 mydataset

Inserisci il seguente comando per impostare la scadenza predefinita delle nuove tabelle create in mydataset su due ore (7200 secondi) dall'ora corrente. Il set di dati si trova in myotherproject, non nel tuo progetto predefinito.

bq update --default_table_expiration 7200 myotherproject:mydataset

API

Chiama datasets.patch e aggiorna la proprietà defaultTableExpirationMs nella risorsa set di dati. La scadenza è espressa in millisecondi nell'API. Poiché il metodo datasets.update sostituisce l'intera risorsa del set di dati, è preferibile il metodo datasets.patch.

Vai

Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida di BigQuery relativa all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Go.

Per effettuare l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per le librerie client.

import (
	"context"
	"fmt"
	"time"

	"cloud.google.com/go/bigquery"
)

// updateDatasetDefaultExpiration demonstrats setting the default expiration of a dataset
// to a specific retention period.
func updateDatasetDefaultExpiration(projectID, datasetID string) error {
	// projectID := "my-project-id"
	// datasetID := "mydataset"
	ctx := context.Background()
	client, err := bigquery.NewClient(ctx, projectID)
	if err != nil {
		return fmt.Errorf("bigquery.NewClient: %v", err)
	}
	defer client.Close()

	ds := client.Dataset(datasetID)
	meta, err := ds.Metadata(ctx)
	if err != nil {
		return err
	}
	update := bigquery.DatasetMetadataToUpdate{
		DefaultTableExpiration: 24 * time.Hour,
	}
	if _, err := client.Dataset(datasetID).Update(ctx, update, meta.ETag); err != nil {
		return err
	}
	return nil
}

Java

Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di BigQuery relativa all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Java.

Per effettuare l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per le librerie client.

Crea un'istanza Dataset.Builder da un'istanza Dataset esistente con il metodo Dataset.toBuilder(). Configura l'oggetto del generatore di set di dati. Crea il set di dati aggiornato con il metodo Dataset.Builder.build() e chiama il metodo Dataset.update() per inviare l'aggiornamento all'API.

Configura la data e l'ora di scadenza predefinite con il metodo Dataset.Builder.setDefaultTableLifetime().

import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryException;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.Dataset;
import java.util.concurrent.TimeUnit;

public class UpdateDatasetExpiration {

  public static void runUpdateDatasetExpiration() {
    // TODO(developer): Replace these variables before running the sample.
    String datasetName = "MY_DATASET_NAME";
    updateDatasetExpiration(datasetName);
  }

  public static void updateDatasetExpiration(String datasetName) {
    try {
      // Initialize client that will be used to send requests. This client only needs to be created
      // once, and can be reused for multiple requests.
      BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();

      // Update dataset expiration to one day
      Long newExpiration = TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS);

      Dataset dataset = bigquery.getDataset(datasetName);
      bigquery.update(dataset.toBuilder().setDefaultTableLifetime(newExpiration).build());
      System.out.println("Dataset description updated successfully to " + newExpiration);
    } catch (BigQueryException e) {
      System.out.println("Dataset expiration was not updated \n" + e.toString());
    }
  }
}

Node.js

Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di BigQuery relativa all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Node.js.

Per effettuare l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per le librerie client.

// Import the Google Cloud client library
const {BigQuery} = require('@google-cloud/bigquery');
const bigquery = new BigQuery();

async function updateDatasetExpiration() {
  // Updates the lifetime of all tables in the dataset, in milliseconds.

  /**
   * TODO(developer): Uncomment the following lines before running the sample.
   */
  // const datasetId = "my_dataset";

  // Retreive current dataset metadata
  const dataset = bigquery.dataset(datasetId);
  const [metadata] = await dataset.getMetadata();

  // Set new dataset metadata
  const expirationTime = 24 * 60 * 60 * 1000;
  metadata.defaultTableExpirationMs = expirationTime.toString();

  const [apiResponse] = await dataset.setMetadata(metadata);
  const newExpirationTime = apiResponse.defaultTableExpirationMs;

  console.log(`${datasetId} expiration: ${newExpirationTime}`);
}

Python

Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di BigQuery relativa all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Python.

Per effettuare l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per le librerie client.

Configura la proprietà Dataset.default_table_expiration_ms e chiama Client.update_dataset() per inviare l'aggiornamento all'API.

from google.cloud import bigquery

# Construct a BigQuery client object.
client = bigquery.Client()

# TODO(developer): Set dataset_id to the ID of the dataset to fetch.
# dataset_id = 'your-project.your_dataset'

dataset = client.get_dataset(dataset_id)  # Make an API request.
dataset.default_table_expiration_ms = 24 * 60 * 60 * 1000  # In milliseconds.

dataset = client.update_dataset(
    dataset, ["default_table_expiration_ms"]
)  # Make an API request.

full_dataset_id = "{}.{}".format(dataset.project, dataset.dataset_id)
print(
    "Updated dataset {} with new expiration {}".format(
        full_dataset_id, dataset.default_table_expiration_ms
    )
)

Aggiornare le scadenze predefinite delle partizioni

Puoi aggiornare la scadenza predefinita della partizione di un set di dati nei seguenti modi:

  • Utilizzo del comando bq update dello strumento a riga di comando bq.
  • Chiamata del metodo dell'API datasets.patch.
  • Utilizzo delle librerie client.

L'impostazione o l'aggiornamento della scadenza predefinita della partizione di un set di dati non è attualmente supportata dalla Google Cloud console.

Puoi impostare una scadenza predefinita della partizione a livello di set di dati che influisce su tutte le tabelle partizionate appena create oppure puoi impostare una scadenza della partizione per le singole tabelle quando vengono create. Se imposti la scadenza predefinita della partizione a livello di set di dati e la scadenza predefinita della tabella a livello di set di dati, le nuove tabelle partizionate avranno solo una scadenza della partizione. Se sono impostate entrambe le opzioni, la scadenza della partizione predefinita supplanta la scadenza della tabella predefinita.

Se imposti la data e l'ora di scadenza della partizione quando viene creata la tabella partizionata, questo valore sostituisce la scadenza predefinita della partizione a livello di set di dati, se esistente.

Se non imposti una scadenza predefinita per le partizioni a livello di set di dati e non imposti una scadenza per le partizioni al momento della creazione della tabella, le partizioni non scadono mai e devi eliminarle manualmente.

Quando imposti una scadenza predefinita per una partizione in un set di dati, la scadenza si applica a tutte le partizioni di tutte le tabelle partizionate create nel set di dati. Quando imposti la scadenza della partizione in una tabella, la scadenza si applica a tutte le partizioni create nella tabella specificata. Al momento, non puoi applicare diversi tempi di scadenza a partizioni diverse nella stessa tabella.

Quando aggiorni l'impostazione della scadenza predefinita della partizione di un set di dati:

  • Se modifichi il valore da never a una data e ora di scadenza definita, le eventuali partizioni già esistenti nelle tabelle partizionate del set di dati non scadranno, a meno che la data e l'ora di scadenza della partizione non siano state impostate sulla tabella al momento della sua creazione.
  • Se modifichi il valore della scadenza della partizione predefinita, tutte le partizioni delle tabelle partizionate esistenti scadono in base alla scadenza della partizione predefinita originale. A tutte le nuove tabelle partizionate create nel set di dati viene applicata la nuova impostazione predefinita di scadenza della partizione, a meno che non specifichi una scadenza della partizione diversa per la tabella al momento della creazione.

Il valore per la scadenza predefinita della partizione è espresso in modo diverso a seconda di dove viene impostato. Utilizza il metodo che offre il livello di granularità appropriato:

  • Nello strumento a riga di comando bq, la scadenza è espressa in secondi.
  • Nell'API, la scadenza è espressa in millisecondi.

Per aggiornare la scadenza predefinita della partizione per un set di dati:

Console

L'aggiornamento della scadenza predefinita di una partizione di un set di dati non è attualmente supportato dalla Google Cloud console.

SQL

Per aggiornare la scadenza predefinita della partizione, utilizza la istruzione ALTER SCHEMA SET OPTIONS per impostare l'opzione default_partition_expiration_days.

L'esempio seguente aggiorna la scadenza predefinita della partizione per un set di dati denominato mydataset:

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nell'editor di query, inserisci la seguente istruzione:

     ALTER SCHEMA mydataset
     SET OPTIONS(
         default_partition_expiration_days = 3.75);
     

  3. Fai clic su Esegui.

Per ulteriori informazioni su come eseguire query, consulta Eseguire una query interattiva.

bq

Per aggiornare la scadenza predefinita di un set di dati, inserisci il comando bq update con il flag --default_partition_expiration. Se stai aggiornando un set di dati in un progetto diverso da quello predefinito, aggiungi l'ID progetto al nome del set di dati nel seguente formato:project_id:dataset.

bq update \
--default_partition_expiration integer \
project_id:dataset

Sostituisci quanto segue:

  • integer: la durata predefinita, in secondi, per le partizioni nelle tabelle partizionate appena create. Questo flag non ha un valore minimo. Specifica 0 per rimuovere la data e l'ora di scadenza esistenti. Tutte le partizioni nelle tabelle partizionate appena create vengono eliminate integer secondi dopo la data UTC della partizione. Questo valore viene applicato se non imposti una scadenza della partizione nella tabella al momento della sua creazione.
  • project_id: il tuo ID progetto.
  • dataset: il nome del set di dati che stai aggiornando.

Esempi:

Inserisci il seguente comando per impostare la scadenza predefinita della partizione per le nuove tabelle partizionate create in mydataset su 26 ore (93.600 secondi). Il set di dati si trova nel tuo progetto predefinito.

bq update --default_partition_expiration 93600 mydataset

Inserisci il seguente comando per impostare la scadenza predefinita della partizione per le nuove tabelle partizionate create in mydataset su 26 ore (93.600 secondi). Il set di dati si trova in myotherproject, non nel tuo progetto predefinito.

bq update --default_partition_expiration 93600 myotherproject:mydataset

API

Chiama datasets.patch e aggiorna la proprietà defaultPartitionExpirationMs nella risorsa set di dati. La scadenza è espressa in millisecondi. Poiché il metodo datasets.update sostituisce l'intera risorsa set di dati, è preferito il metodo datasets.patch.

Aggiorna la modalità di arrotondamento

Puoi aggiornare la modalità di arrotondamento predefinita di un set di dati utilizzando l'istruzione DDL ALTER SCHEMA SET OPTIONS. L'esempio seguente aggiorna la modalità di arrotondamento predefinita per mydataset su ROUND_HALF_EVEN.

ALTER SCHEMA mydataset
SET OPTIONS (
  default_rounding_mode = "ROUND_HALF_EVEN");

Viene impostata la modalità di arrotondamento predefinita per le nuove tabelle create nel set di dati. Non influisce sulle nuove colonne aggiunte alle tabelle esistenti. L'impostazione della modalità di arrotondamento predefinita in una tabella del set di dati sostituisce questa opzione.

Aggiornare le finestre di spostamento cronologico

Puoi aggiornare la finestra di spostamento temporale di un set di dati nei seguenti modi:

  • Utilizzo della Google Cloud console.
  • Utilizzo dell'istruzione ALTER SCHEMA SET OPTIONS.
  • Utilizzo del comando bq update dello strumento a riga di comando bq.
  • Chiamata al metodo API datasets.patch o datasets.update. Il metodo update sostituisce l'intera risorsa set di dati, mentre il metodo patch sostituisce solo i campi forniti nella risorsa set di dati inviata.

Per ulteriori informazioni sulla finestra di viaggio nel tempo, consulta Configurare la finestra di viaggio nel tempo.

Per aggiornare la finestra di spostamento nel tempo per un set di dati:

Console

  1. Nel riquadro Spazio di esplorazione, espandi il progetto e seleziona un set di dati.
  2. Espandi l'opzione Azioni e fai clic su Apri.
  3. Nel riquadro Dettagli, fai clic su Modifica dettagli.
  4. Espandi Opzioni avanzate, quindi seleziona la Finestra di viaggio nel tempo da utilizzare.
  5. Fai clic su Salva.

SQL

Utilizza l'istruzione ALTER SCHEMA SET OPTIONS con l'opzione max_time_travel_hours per specificare la finestra di scorrimento temporale quando modifichi un set di dati. Il valore max_time_travel_hours deve essere un numero intero espresso in multipli di 24 (48, 72, 96, 120, 144, 168) compreso tra 48 (2 giorni) e 168 (7 giorni).

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nell'editor di query, inserisci la seguente istruzione:

    ALTER SCHEMA DATASET_NAME
    SET OPTIONS(
      max_time_travel_hours = HOURS);

    Sostituisci quanto segue:

    • DATASET_NAME: il nome del set di dati che aggiorni
    • HOURS con la durata della finestra di spostamento cronologico in ore.

  3. Fai clic su Esegui.

Per ulteriori informazioni su come eseguire query, consulta Eseguire una query interattiva.

bq

Utilizza il comando bq update con il flag --max_time_travel_hours per specificare la finestra di viaggio nel tempo quando modifichi un set di dati. Il valore --max_time_travel_hours deve essere un numero intero espresso in multipli di 24 (48, 72, 96, 120, 144, 168) compreso tra 48 (2 giorni) e 168 (7 giorni).

bq update \
--dataset=true --max_time_travel_hours=HOURS \
PROJECT_ID:DATASET_NAME

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto
  • DATASET_NAME: il nome del set di dati che stai aggiornando
  • HOURS con la durata della finestra di spostamento cronologico in ore

API

Chiama il metodo datasets.patch o datasets.update con una risorsa set di dati definita in cui hai specificato un valore per il campo maxTimeTravelHours. Il valore maxTimeTravelHours deve essere un numero intero espresso in multipli di 24 (48, 72, 96, 120, 144, 168) compreso tra 48 (2 giorni) e 168 (7 giorni).

Aggiornare i modelli di fatturazione dello spazio di archiviazione

Puoi modificare il modello di fatturazione dello spazio di archiviazione per un set di dati. Imposta il valore storage_billing_model su PHYSICAL per utilizzare i byte fisici durante il calcolo delle modifiche dello spazio di archiviazione oppure su LOGICAL per utilizzare i byte logici. LOGICAL è il valore predefinito.

Quando modifichi il modello di fatturazione di un set di dati, sono necessarie 24 ore prima che la modifica venga applicata.

Una volta modificato il modello di fatturazione dello spazio di archiviazione di un set di dati, devi attendere 14 giorni prima di poterlo modificare di nuovo.

Console

  1. Nel riquadro Spazio di esplorazione, espandi il progetto e seleziona un set di dati.
  2. Espandi l'opzione Azioni e fai clic su Apri.
  3. Nel riquadro Dettagli, fai clic su Modifica dettagli.
  4. Espandi Opzioni avanzate, quindi seleziona Abilita il modello di fatturazione dell'archiviazione fisica per utilizzare la fatturazione dell'archiviazione fisica o deselezionalo per utilizzare la fatturazione dell'archiviazione logica.
  5. Fai clic su Salva.

SQL

Per aggiornare il modello di fatturazione di un set di dati, utilizza la istruzione ALTER SCHEMA SET OPTIONS e imposta l'opzione storage_billing_model:

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nell'editor di query, inserisci la seguente istruzione:

    ALTER SCHEMA DATASET_NAME
    SET OPTIONS(
     storage_billing_model = 'BILLING_MODEL');

    Sostituisci quanto segue:

    • DATASET_NAME con il nome del set di dati che stai modificando
    • BILLING_MODEL con il tipo di archiviazione che vuoi utilizzare, LOGICAL o PHYSICAL

  3. Fai clic su Esegui.

Per ulteriori informazioni su come eseguire query, consulta Eseguire una query interattiva.

Per aggiornare il modello di fatturazione dello spazio di archiviazione per tutti i set di dati di un progetto, utilizza la seguente query SQL per ogni regione in cui si trovano i set di dati:

FOR record IN
 (SELECT CONCAT(catalog_name, '.', schema_name) AS dataset_path
 FROM PROJECT_ID.region-REGION.INFORMATION_SCHEMA.SCHEMATA)
DO
 EXECUTE IMMEDIATE
   "ALTER SCHEMA `" || record.dataset_path || "` SET OPTIONS(storage_billing_model = 'BILLING_MODEL')";
END FOR;

Sostituisci quanto segue:

  • PROJECT_ID con l'ID del tuo progetto
  • REGION con un qualificatore regione
  • BILLING_MODEL con il tipo di archiviazione che vuoi utilizzare, LOGICAL o PHYSICAL

bq

Per aggiornare il modello di fatturazione per un set di dati, utilizza il comando bq update e imposta il flag --storage_billing_model:

bq update -d --storage_billing_model=BILLING_MODEL PROJECT_ID:DATASET_NAME

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto
  • DATASET_NAME: il nome del set di dati che stai aggiornando
  • BILLING_MODEL: il tipo di archiviazione che vuoi utilizzare, LOGICAL o PHYSICAL

API

Chiama il metodo datasets.update con una risorsa set di dati definita in cui è impostato il campo storageBillingModel.

L'esempio seguente mostra come chiamare datasets.update utilizzando curl:

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -L -X PUT https://bigquery.googleapis.com/bigquery/v2/projects/PROJECT_ID/datasets/DATASET_ID -d '{"datasetReference": {"projectId": "PROJECT_ID", "datasetId": "DATASET_NAME"}, "storageBillingModel": "BILLING_MODEL"}'

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto
  • DATASET_NAME: il nome del set di dati che stai aggiornando
  • BILLING_MODEL: il tipo di archiviazione che vuoi utilizzare, LOGICAL o PHYSICAL

Aggiornare i controlli di accesso

Per controllare l'accesso ai set di dati in BigQuery, consulta Controllo dell'accesso ai set di dati. Per informazioni sulla crittografia dei dati, consulta Crittografia at-rest.

Passaggi successivi