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:
- Modelo de faturação
- Prazo de validade predefinido para novas tabelas
- Validade da partição predefinida para novas tabelas com partições
- Modo de arredondamento predefinido para novas tabelas
- Descrição
- Marcadores
- Janelas de viagem no tempo
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
No painel Explorador, expanda o projeto e selecione um conjunto de dados.
Expanda a opção
Ações e clique em Abrir.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:
- No campo Descrição, introduza uma descrição ou edite a descrição existente.
- 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
:
Na Google Cloud consola, aceda à página BigQuery.
No editor de consultas, introduza a seguinte declaração:
ALTER SCHEMA mydataset SET OPTIONS ( description = 'Description of mydataset');
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 aspasproject_id
: o ID do seu projetodataset
: 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.
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.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.
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.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
No painel Explorador, expanda o projeto e selecione um conjunto de dados.
Expanda a opção
Ações e clique em Abrir.No painel de detalhes, clique no ícone de lápis junto a Informações do conjunto de dados para editar a data de validade.
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.
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
.
Na Google Cloud consola, aceda à página BigQuery.
No editor de consultas, introduza a seguinte declaração:
ALTER SCHEMA mydataset SET OPTIONS( default_table_expiration_days = 3.75);
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. Especifique0
para remover a hora de validade existente. Qualquer tabela criada no conjunto de dados é eliminadainteger
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.
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().
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.
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.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
:
Na Google Cloud consola, aceda à página BigQuery.
No editor de consultas, introduza a seguinte declaração:
ALTER SCHEMA mydataset SET OPTIONS( default_partition_expiration_days = 3.75);
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. Especifique0
para remover a hora de validade existente. Todas as partições em tabelas particionadas criadas recentemente são eliminadasinteger
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
oudatasets.update
. O métodoupdate
substitui todo o recurso do conjunto de dados, enquanto o métodopatch
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
- No painel Explorador, expanda o projeto e selecione um conjunto de dados.
- Expanda a opção Ações e clique em Abrir.
- No painel Detalhes, clique em Editar detalhes.
- Expanda Opções avançadas e, de seguida, selecione a Janela de viagem no tempo a usar.
- 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).
Na Google Cloud consola, aceda à página BigQuery.
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 atualizarHOURS
com a duração do período de viagem no tempo em horas.
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 projetoDATASET_NAME
: o nome do conjunto de dados que está a atualizarHOURS
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
- No painel Explorador, expanda o projeto e selecione um conjunto de dados.
- Expanda a opção Ações e clique em Abrir.
- No painel Detalhes, clique em Editar detalhes.
- 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.
- 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
:
Na Google Cloud consola, aceda à página BigQuery.
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 alterarBILLING_MODEL
com o tipo de armazenamento que quer usar,LOGICAL
ouPHYSICAL
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 projetoREGION
com um qualificador de regiãoBILLING_MODEL
com o tipo de armazenamento que quer usar,LOGICAL
ouPHYSICAL
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 projetoDATASET_NAME
: o nome do conjunto de dados que está a atualizarBILLING_MODEL
: o tipo de armazenamento que quer usar,LOGICAL
ouPHYSICAL
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 projetoDATASET_NAME
: o nome do conjunto de dados que está a atualizarBILLING_MODEL
: o tipo de armazenamento que quer usar,LOGICAL
ouPHYSICAL
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?
- Para mais informações sobre como criar conjuntos de dados, consulte o artigo Criar conjuntos de dados.
- Para mais informações sobre a gestão de conjuntos de dados, consulte o artigo Gerir conjuntos de dados.