Atualize as propriedades do conjunto de dados

Este documento descreve como atualizar as propriedades do conjunto de dados no BigQuery. Depois de criar um conjunto de dados, pode atualizar as seguintes propriedades do conjunto de dados:

Antes de começar

Conceda funções de gestão de identidade e acesso (IAM) que dão aos utilizadores as autorizações necessárias para realizar cada tarefa neste documento.

Autorizações necessárias

Para atualizar as propriedades do conjunto de dados, precisa das seguintes autorizações de IAM:

  • bigquery.datasets.update
  • bigquery.datasets.setIamPolicy (apenas necessário quando atualiza os controlos de acesso ao conjunto de dados na Google Cloud consola)

A função do IAM predefinida roles/bigquery.dataOwner inclui as autorizações necessárias para atualizar as propriedades do conjunto de dados.

Além disso, se tiver a autorização bigquery.datasets.create, pode atualizar as propriedades dos conjuntos de dados que criar.

Para mais informações sobre as funções e as autorizações do IAM no BigQuery, consulte o artigo Funções e autorizações predefinidas.

Atualize as descrições dos conjuntos de dados

Pode atualizar a descrição de um conjunto de dados das seguintes formas:

  • Usar a Google Cloud consola.
  • Usando o comando bq update da ferramenta de linhas de comando bq.
  • Chamar o método da API datasets.patch.
  • Usando as bibliotecas cliente.

Para atualizar a descrição de um conjunto de dados:

Consola

  1. No painel Explorador, expanda o projeto e selecione um conjunto de dados.

  2. Expanda a opção Ações e clique em Abrir.

  3. No painel Detalhes, clique em Editar detalhes para editar o texto da descrição.

    Na caixa de diálogo Editar detalhes apresentada, faça o seguinte:

    1. No campo Descrição, introduza uma descrição ou edite a descrição existente.
    2. Para guardar o novo texto de descrição, clique em Guardar.

SQL

Para atualizar a descrição de um conjunto de dados, use a declaração ALTER SCHEMA SET OPTIONS para definir a opção description.

O exemplo seguinte define a descrição num conjunto de dados denominado mydataset:

  1. Na Google Cloud consola, aceda à página BigQuery.

    Aceda ao BigQuery

  2. No editor de consultas, introduza a seguinte declaração:

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

  3. Clique em Executar.

Para mais informações sobre como executar consultas, consulte o artigo Execute uma consulta interativa.

bq

Emita o comando bq update com a flag --description. Se estiver a atualizar um conjunto de dados num projeto que não seja o projeto predefinido, adicione o ID do projeto ao nome do conjunto de dados no seguinte formato: project_id:dataset.

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

Substitua o seguinte:

  • string: o texto que descreve o conjunto de dados, entre aspas
  • project_id: o ID do seu projeto
  • dataset: o nome do conjunto de dados que está a atualizar

Exemplos:

Introduza o seguinte comando para alterar a descrição de mydataset para "Descrição de mydataset". mydataset está no seu projeto predefinido.

bq update --description "Description of mydataset" mydataset

Introduza o seguinte comando para alterar a descrição de mydataset para "Descrição de mydataset". O conjunto de dados está em myotherproject e não no seu projeto predefinido.

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

API

Chame datasets.patch e atualize a propriedade description no recurso dataset. Uma vez que o método datasets.update substitui o recurso do conjunto de dados completo, é preferível usar o método datasets.patch.

Go

Antes de experimentar este exemplo, siga as Goinstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Go BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.

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

Antes de experimentar este exemplo, siga as Javainstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Java BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.

Crie uma instância de Dataset.Builder a partir de uma instância de Dataset existente com o método Dataset.toBuilder(). Configure o objeto do criador de conjuntos de dados. Crie o conjunto de dados atualizado com o método Dataset.Builder.build() e chame o método Dataset.update() para enviar a atualização para a 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

Antes de experimentar este exemplo, siga as Node.jsinstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Node.js BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.

// 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

Antes de experimentar este exemplo, siga as Pythoninstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Python BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.

Configure a propriedade Dataset.description e chame Client.update_dataset() para enviar a atualização para a 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
    )
)

Atualize os prazos de validade predefinidos das tabelas

Pode atualizar o tempo de expiração predefinido de uma tabela de um conjunto de dados das seguintes formas:

  • Usar a Google Cloud consola.
  • Usando o comando bq update da ferramenta de linhas de comando bq.
  • Chamar o método da API datasets.patch.
  • Usando as bibliotecas cliente.

Pode definir um tempo de validade da tabela predefinido ao nível do conjunto de dados ou definir o tempo de validade de uma tabela quando esta é criada. Se definir a data de validade quando a tabela é criada, a data de validade da tabela predefinida do conjunto de dados é ignorada. Se não definir uma expiração predefinida da tabela ao nível do conjunto de dados e não definir uma expiração da tabela quando a tabela é criada, a tabela nunca expira e tem de eliminar a tabela manualmente. Quando uma tabela expira, é eliminada juntamente com todos os dados que contém.

Quando atualiza a predefinição de data de validade de uma tabela de um conjunto de dados:

  • Se alterar o valor de Never para um tempo de expiração definido, as tabelas que já existam no conjunto de dados não expiram, a menos que o tempo de expiração tenha sido definido na tabela quando foi criada.
  • Se alterar o valor da expiração da tabela predefinida, as tabelas que já existam expiram de acordo com a definição de expiração da tabela original. Todas as novas tabelas criadas no conjunto de dados têm a nova definição de expiração da tabela aplicada, a menos que especifique uma expiração da tabela diferente na tabela quando esta é criada.

O valor da expiração da tabela predefinida é expresso de forma diferente consoante o local onde o valor é definido. Use o método que lhe dá o nível de detalhe adequado:

  • Na Google Cloud consola, a expiração é expressa em dias.
  • Na ferramenta de linhas de comando bq, a validade é expressa em segundos.
  • Na API, a validade é expressa em milissegundos.

Para atualizar o tempo de validade predefinido de um conjunto de dados:

Consola

  1. No painel Explorador, expanda o projeto e selecione um conjunto de dados.

  2. Expanda a opção Ações e clique em Abrir.

  3. No painel de detalhes, clique no ícone de lápis junto a Informações do conjunto de dados para editar a data de validade.

  4. Na caixa de diálogo Informações do conjunto de dados, na secção Expiração da tabela predefinida, introduza um valor para Número de dias após a criação da tabela.

  5. Clique em Guardar.

SQL

Para atualizar o tempo de validade predefinido da tabela, use a declaração ALTER SCHEMA SET OPTIONS para definir a opção default_table_expiration_days.

O exemplo seguinte atualiza a validade predefinida da tabela para um conjunto de dados denominado mydataset.

  1. Na Google Cloud consola, aceda à página BigQuery.

    Aceda ao BigQuery

  2. No editor de consultas, introduza a seguinte declaração:

     ALTER SCHEMA mydataset
     SET OPTIONS(
         default_table_expiration_days = 3.75);
     

  3. Clique em Executar.

Para mais informações sobre como executar consultas, consulte o artigo Execute uma consulta interativa.

bq

Para atualizar a hora de validade predefinida das tabelas recém-criadas num conjunto de dados, introduza o comando bq update com a flag --default_table_expiration. Se estiver a atualizar um conjunto de dados num projeto que não seja o seu projeto predefinido, adicione o ID do projeto ao nome do conjunto de dados no seguinte formato: project_id:dataset.

bq update \
--default_table_expiration integer \
project_id:dataset

Substitua o seguinte:

  • integer: o tempo de vida predefinido, em segundos, para tabelas criadas recentemente. O valor mínimo é de 3600 segundos (uma hora). O tempo de expiração é avaliado como a hora UTC atual mais o valor inteiro. Especifique 0 para remover a hora de validade existente. Qualquer tabela criada no conjunto de dados é eliminada integer segundos após a hora de criação. Este valor é aplicado se não definir uma expiração da tabela quando a tabela é criada.
  • project_id: o ID do seu projeto.
  • dataset: o nome do conjunto de dados que está a atualizar.

Exemplos:

Introduza o seguinte comando para definir a expiração predefinida da tabela para as novas tabelas criadas em mydataset para duas horas (7200 segundos) a partir da hora atual. O conjunto de dados está no seu projeto predefinido.

bq update --default_table_expiration 7200 mydataset

Introduza o seguinte comando para definir a expiração predefinida da tabela para as novas tabelas criadas em mydataset para duas horas (7200 segundos) a partir da hora atual. O conjunto de dados está em myotherproject e não no seu projeto predefinido.

bq update --default_table_expiration 7200 myotherproject:mydataset

API

Chame datasets.patch e atualize a propriedade defaultTableExpirationMs no recurso dataset. A validade é expressa em milissegundos na API. Uma vez que o método datasets.update substitui o recurso do conjunto de dados completo, o método datasets.patch é o preferível.

Go

Antes de experimentar este exemplo, siga as Goinstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Go BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.

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

Antes de experimentar este exemplo, siga as Javainstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Java BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.

Crie uma instância de Dataset.Builder a partir de uma instância de Dataset existente com o método Dataset.toBuilder(). Configure o objeto do criador de conjuntos de dados. Crie o conjunto de dados atualizado com o método Dataset.Builder.build() e chame o método Dataset.update() para enviar a atualização para a API.

Configure o tempo de expiração predefinido com o método 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

Antes de experimentar este exemplo, siga as Node.jsinstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Node.js BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.

// 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

Antes de experimentar este exemplo, siga as Pythoninstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Python BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.

Configure a propriedade Dataset.default_table_expiration_ms e chame Client.update_dataset() para enviar a atualização para a 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
    )
)

Atualize os tempos de validade das partições predefinidos

Pode atualizar a expiração da partição predefinida de um conjunto de dados das seguintes formas:

  • Usando o comando bq update da ferramenta de linhas de comando bq.
  • Chamar o método da API datasets.patch.
  • Usando as bibliotecas cliente.

A definição ou a atualização da validade da partição predefinida de um conjunto de dados não é atualmente compatível com a Google Cloud consola.

Pode definir um tempo de validade da partição predefinido ao nível do conjunto de dados que afeta todas as tabelas particionadas criadas recentemente ou pode definir um tempo de validade da partição para tabelas individuais quando as tabelas particionadas são criadas. Se definir a data de validade da partição predefinida ao nível do conjunto de dados e definir a data de validade da tabela predefinida ao nível do conjunto de dados, as novas tabelas particionadas só têm uma data de validade da partição. Se ambas as opções estiverem definidas, a expiração da partição predefinida substitui a expiração da tabela predefinida.

Se definir o prazo de validade da partição quando a tabela particionada é criada, esse valor substitui o prazo de validade da partição predefinido ao nível do conjunto de dados, se existir.

Se não definir uma data de validade da partição predefinida ao nível do conjunto de dados e não definir uma data de validade da partição quando a tabela é criada, as partições nunca expiram e tem de eliminar as partições manualmente.

Quando define uma expiração de partição predefinida num conjunto de dados, a expiração aplica-se a todas as partições em todas as tabelas particionadas criadas no conjunto de dados. Quando define a expiração da partição numa tabela, a expiração aplica-se a todas as partições criadas na tabela especificada. Atualmente, não pode aplicar diferentes prazos de validade a diferentes partições na mesma tabela.

Quando atualiza a predefinição de data de validade da partição de um conjunto de dados:

  • Se alterar o valor de never para um tempo de expiração definido, as partições que já existam em tabelas particionadas no conjunto de dados não expiram, a menos que o tempo de expiração da partição tenha sido definido na tabela quando foi criada.
  • Se alterar o valor da validade predefinida da partição, todas as partições nas tabelas particionadas existentes expiram de acordo com a validade predefinida da partição original. Todas as novas tabelas particionadas criadas no conjunto de dados têm a nova predefinição de expiração de partições aplicada, a menos que especifique uma expiração de partições diferente na tabela quando esta é criada.

O valor da expiração da partição predefinida é expresso de forma diferente consoante onde o valor é definido. Use o método que lhe dá o nível de detalhe adequado:

  • Na ferramenta de linhas de comando bq, a validade é expressa em segundos.
  • Na API, a validade é expressa em milissegundos.

Para atualizar o tempo de validade da partição predefinido de um conjunto de dados:

Consola

Atualmente, a atualização da expiração da partição predefinida de um conjunto de dados não é suportada pela consola Google Cloud .

SQL

Para atualizar o tempo de validade da partição predefinida, use a declaração ALTER SCHEMA SET OPTIONS para definir a opção default_partition_expiration_days.

O exemplo seguinte atualiza a expiração da partição predefinida para um conjunto de dados com o nome mydataset:

  1. Na Google Cloud consola, aceda à página BigQuery.

    Aceda ao BigQuery

  2. No editor de consultas, introduza a seguinte declaração:

     ALTER SCHEMA mydataset
     SET OPTIONS(
         default_partition_expiration_days = 3.75);
     

  3. Clique em Executar.

Para mais informações sobre como executar consultas, consulte o artigo Execute uma consulta interativa.

bq

Para atualizar a hora de validade predefinida de um conjunto de dados, introduza o comando bq update com a flag --default_partition_expiration. Se estiver a atualizar um conjunto de dados num projeto que não seja o seu projeto predefinido, adicione o ID do projeto ao nome do conjunto de dados no seguinte formato: project_id:dataset.

bq update \
--default_partition_expiration integer \
project_id:dataset

Substitua o seguinte:

  • integer: o tempo de vida predefinido, em segundos, para partições em tabelas particionadas recém-criadas. Esta flag não tem um valor mínimo. Especifique 0 para remover a hora de validade existente. Todas as partições em tabelas particionadas criadas recentemente são eliminadas integer segundos após a data UTC da partição. Este valor é aplicado se não definir uma expiração da partição na tabela quando esta é criada.
  • project_id: o ID do seu projeto.
  • dataset: o nome do conjunto de dados que está a atualizar.

Exemplos:

Introduza o seguinte comando para definir a expiração da partição predefinida para novas tabelas particionadas criadas em mydataset para 26 horas (93 600 segundos). O conjunto de dados está no seu projeto predefinido.

bq update --default_partition_expiration 93600 mydataset

Introduza o seguinte comando para definir a expiração da partição predefinida para novas tabelas particionadas criadas em mydataset para 26 horas (93 600 segundos). O conjunto de dados está em myotherproject e não no seu projeto predefinido.

bq update --default_partition_expiration 93600 myotherproject:mydataset

API

Chame datasets.patch e atualize a propriedade defaultPartitionExpirationMs no recurso dataset. A validade é expressa em milissegundos. Uma vez que o método datasets.update substitui o recurso de conjunto de dados completo, o método datasets.patch é preferível.

Atualize o modo de arredondamento

Pode atualizar o modo de arredondamento predefinido de um conjunto de dados através da declaração DDL ALTER SCHEMA SET OPTIONS. O exemplo seguinte atualiza o modo de arredondamento predefinido para mydataset para ROUND_HALF_EVEN.

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

Esta opção define o modo de arredondamento predefinido para as novas tabelas criadas no conjunto de dados. Não tem impacto nas novas colunas adicionadas às tabelas existentes. A definição do modo de arredondamento predefinido numa tabela no conjunto de dados substitui esta opção.

Atualize os períodos de viagem no tempo

Pode atualizar o intervalo de tempo de um conjunto de dados das seguintes formas:

  • Usar a Google Cloud consola.
  • Usando a declaração ALTER SCHEMA SET OPTIONS.
  • Usando o comando bq update da ferramenta de linhas de comando bq.
  • Chamar o método da API datasets.patch ou datasets.update. O método update substitui todo o recurso do conjunto de dados, enquanto o método patch substitui apenas os campos fornecidos no recurso do conjunto de dados enviado.

Para mais informações sobre o período de viagem no tempo, consulte o artigo Configure o período de viagem no tempo.

Para atualizar o período de viagem no tempo de um conjunto de dados:

Consola

  1. No painel Explorador, expanda o projeto e selecione um conjunto de dados.
  2. Expanda a opção Ações e clique em Abrir.
  3. No painel Detalhes, clique em Editar detalhes.
  4. Expanda Opções avançadas e, de seguida, selecione a Janela de viagem no tempo a usar.
  5. Clique em Guardar.

SQL

Use a declaração ALTER SCHEMA SET OPTIONS com a opção max_time_travel_hours para especificar o período de tempo quando alterar um conjunto de dados. O valor max_time_travel_hours tem de ser um número inteiro expresso em múltiplos de 24 (48, 72, 96, 120, 144, 168) entre 48 (2 dias) e 168 (7 dias).

  1. Na Google Cloud consola, aceda à página BigQuery.

    Aceda ao BigQuery

  2. No editor de consultas, introduza a seguinte declaração:

    ALTER SCHEMA DATASET_NAME
    SET OPTIONS(
      max_time_travel_hours = HOURS);

    Substitua o seguinte:

    • DATASET_NAME: o nome do conjunto de dados que está a atualizar
    • HOURS com a duração do período de viagem no tempo em horas.

  3. Clique em Executar.

Para mais informações sobre como executar consultas, consulte o artigo Execute uma consulta interativa.

bq

Use o comando bq update com a flag --max_time_travel_hours para especificar o período de tempo de viagem no tempo ao alterar um conjunto de dados. O valor --max_time_travel_hours tem de ser um número inteiro expresso em múltiplos de 24 (48, 72, 96, 120, 144, 168) entre 48 (2 dias) e 168 (7 dias).

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

Substitua o seguinte:

  • PROJECT_ID: o ID do seu projeto
  • DATASET_NAME: o nome do conjunto de dados que está a atualizar
  • HOURS com a duração do intervalo de tempo de viagem em horas

API

Chame o método datasets.patch ou datasets.update com um recurso de conjunto de dados definido no qual especificou um valor para o campo maxTimeTravelHours. O valor maxTimeTravelHours tem de ser um número inteiro expresso em múltiplos de 24 (48, 72, 96, 120, 144, 168) entre 48 (2 dias) e 168 (7 dias).

Atualize os modelos de faturação de armazenamento

Pode alterar o modelo de faturação de armazenamento para um conjunto de dados. Defina o valor de storage_billing_model como PHYSICAL para usar bytes físicos ao calcular alterações ao armazenamento ou como LOGICAL para usar bytes lógicos. LOGICAL é a predefinição.

Quando altera o modelo de faturação de um conjunto de dados, a alteração demora 24 horas a entrar em vigor.

Depois de alterar o modelo de faturação de armazenamento de um conjunto de dados, tem de aguardar 14 dias antes de poder alterar novamente o modelo de faturação de armazenamento.

Consola

  1. No painel Explorador, expanda o projeto e selecione um conjunto de dados.
  2. Expanda a opção Ações e clique em Abrir.
  3. No painel Detalhes, clique em Editar detalhes.
  4. Expanda Opções avançadas e, em seguida, selecione Ativar modelo de faturação de armazenamento físico para usar a faturação de armazenamento físico ou desmarque-a para usar a faturação de armazenamento lógico.
  5. Clique em Guardar.

SQL

Para atualizar o modelo de faturação de um conjunto de dados, use a declaração ALTER SCHEMA SET OPTIONS e defina a opção storage_billing_model:

  1. Na Google Cloud consola, aceda à página BigQuery.

    Aceda ao BigQuery

  2. No editor de consultas, introduza a seguinte declaração:

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

    Substitua o seguinte:

    • DATASET_NAME com o nome do conjunto de dados que está a alterar
    • BILLING_MODEL com o tipo de armazenamento que quer usar, LOGICAL ou PHYSICAL

  3. Clique em Executar.

Para mais informações sobre como executar consultas, consulte o artigo Execute uma consulta interativa.

Para atualizar o modelo de faturação de armazenamento de todos os conjuntos de dados num projeto, use a seguinte consulta SQL para cada região onde os conjuntos de dados estão localizados:

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;

Substitua o seguinte:

  • PROJECT_ID com o ID do seu projeto
  • REGION com um qualificador de região
  • BILLING_MODEL com o tipo de armazenamento que quer usar, LOGICAL ou PHYSICAL

bq

Para atualizar o modelo de faturação de um conjunto de dados, use o comando bq update e defina a flag --storage_billing_model:

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

Substitua o seguinte:

  • PROJECT_ID: o ID do seu projeto
  • DATASET_NAME: o nome do conjunto de dados que está a atualizar
  • BILLING_MODEL: o tipo de armazenamento que quer usar, LOGICAL ou PHYSICAL

API

Chame o método datasets.update com um recurso de conjunto de dados definido, em que o campo storageBillingModel está definido.

O exemplo seguinte mostra como chamar datasets.update usando 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"}'

Substitua o seguinte:

  • PROJECT_ID: o ID do seu projeto
  • DATASET_NAME: o nome do conjunto de dados que está a atualizar
  • BILLING_MODEL: o tipo de armazenamento que quer usar, LOGICAL ou PHYSICAL

Atualize os controlos de acesso

Para controlar o acesso a conjuntos de dados no BigQuery, consulte o artigo Controlar o acesso a conjuntos de dados. Para obter informações sobre a encriptação de dados, consulte o artigo Encriptação em repouso.

O que se segue?