Como copiar conjuntos de dados

Copie um conjunto de dados em uma região ou de uma região para outra sem extrair, mover e recarregar dados no BigQuery. Além disso, copie o conjunto de dados uma vez ou por meio de uma programação recorrente personalizada.

Antes de começar

Antes de criar uma cópia do conjunto de dados, siga estas recomendações:

  • A cópia do conjunto de dados usa os recursos do serviço de transferência de dados do BigQuery. Verifique se você realizou todas as ações necessárias para ativar esse serviço.
  • Se você estiver criando a transferência por meio da IU clássica da Web do BigQuery, permita pop-ups no seu navegador em bigquery.cloud.google.com para visualizar a janela de permissões. É preciso permitir que o serviço de transferência de dados do BigQuery gerencie sua cópia do conjunto de dados, que é um tipo de transferência.
  • Crie um conjunto de dados do BigQuery como o conjunto de destino, na mesma região ou em uma região diferente do seu conjunto de origem. Ao criar um conjunto de dados, você especifica um local para armazenar as informações do BigQuery. Nem todas as regiões já são compatíveis com a cópia do conjunto de dados. Consulte Limitações de local. O nome do conjunto precisa ser exclusivo por projeto.
  • Localize o ID do conjunto de dados de origem que você quer copiar e o ID do projeto de origem.
  • Se você quiser configurar notificações de transferência do Cloud Pub/Sub, será preciso ter permissões pubsub.topics.setIamPolicy. As permissões do Cloud Pub/Sub não serão necessárias caso você configure notificações por e-mail. Para saber mais, consulte Notificações de execução do serviço de transferência de dados do BigQuery.

Permissões exigidas

Antes de criar uma cópia do conjunto de dados, verifique se a pessoa responsável por criá-la tem as seguintes permissões necessárias no BigQuery:

  1. A permissão bigquery.transfers.update para criar a transferência da cópia.

  2. A permissão bigquery.tables.list no conjunto de dados de origem.

    Os seguintes papéis predefinidos do IAM para envolvidos no projeto contêm a permissão bigquery.tables.list:

    • bigquery.dataViewer
    • bigquery.dataEditor
    • bigquery.dataOwner
    • bigquery.metadataViewer
    • bigquery.user
  3. As permissões bigquery.tables.list e bigquery.tables.create no conjunto de dados de destino.

    Os seguintes papéis do IAM predefinidos para envolvidos no projeto contêm as permissões bigquery.tables.list e bigquery.tables.create:

    • bigquery.dataEditor
    • bigquery.dataOwner
  4. O papel do IAM bigquery.admin predefinido para envolvidos no projeto inclui todas as permissões necessárias para a cópia de um conjunto de dados. Para mais informações sobre papéis do IAM no BigQuery, consulte Controle de acesso.

Como configurar uma cópia do conjunto de dados

Saiba como criar uma cópia do conjunto de dados.

Console

Opção 1: use o ícone Copiar conjunto de dados.

  1. Acesse a IU da Web do BigQuery.

    Acessar a IU da Web do BigQuery

  2. Selecione o nome do conjunto de dados de origem que você quer copiar.

  3. Clique no ícone Copiar conjunto de dados.

    Ícone de "Copiar conjunto de dados"

  4. Na caixa de diálogo Copiar conjunto de dados, selecione o ID do projeto e do conjunto de dados de destino. O projeto e o conjunto de dados podem estar em diferentes regiões, mas nem todas são compatíveis com a cópia entre regiões.

  5. Os nomes dos conjuntos de dados em um projeto precisam ser exclusivos.

  6. Como alternativa, marque a caixa Substituir tabelas de destino se quiser atualizar todos os dados no conjunto de destino. As tabelas e o esquema serão substituídos.

    Caixa de diálogo "Copiar conjunto de dados"

  7. Exclua o conjunto de dados antigo para evitar mais custos com armazenamento.

Opção 2: use a IU Transferências.

  1. Acesse a IU da Web do BigQuery.

    Acessar a IU da Web do BigQuery

  2. Clique em Transferências.

  3. Clique em + CRIAR UMA TRANSFERÊNCIA.

  4. Na página Criar transferência, siga estas instruções:

    • Na seção Tipo de origem, em Origem, escolha Cópia do conjunto de dados.

      Origem da transferência

    • Na seção Nome da configuração de transferência, em Nome de exibição, insira um nome para a transferência, como My Transfer. Esse nome pode ter qualquer valor que identifique facilmente a transferência, caso seja necessário modificá-la futuramente.

      Nome da transferência

    • Na seção Opções de programação, para Programação, deixe o valor padrão (Começar agora) ou clique em Começar no horário definido.

      • Para Repetições, escolha uma opção para a frequência de execução da transferência. As opções são estas:

        • Diário (padrão)
        • Semanal
        • Mensal
        • Personalizada
        • Sob demanda

        Se você escolher uma opção diferente de "Diário", outras opções estarão disponíveis. Por exemplo, se você escolher "Semanal", aparecerá uma opção para selecionar o dia da semana.

      • Para Data e hora de início, insira a data e a hora para iniciar a transferência. Se você escolher Começar agora, essa opção ficará desativada.

        Programação de transferência

    • Em Conjunto de dados de destino, escolha o conjunto que você criou para armazenar seus dados, em uma região diferente.

    • Em Conjunto de dados de origem, insira o nome do conjunto que você quer copiar.

    • Em Projeto de origem, insira o ID do projeto em que o conjunto de dados de origem está.

    • (Opcional) Marque a caixa Substituir tabela de destino se você quiser atualizar todos os dados no conjunto de destino. As tabelas e o esquema serão substituídos.

      Nova cópia do conjunto de dados

    • (Opcional) Na seção Opções de notificação, siga estas instruções:

      • Clique no botão para ativar as notificações por e-mail. Quando você ativa essa opção, o administrador de transferência recebe uma notificação por e-mail quando uma execução de transferência falha.
      • Em Selecionar um tópico do Cloud Pub/Sub, escolha o nome do seu tópico ou clique em Criar um tópico. Essa opção configura notificações de execução do Cloud Pub/Sub para sua transferência.

      Tópico do Cloud Pub/Sub

  5. Clique em Salvar.

  6. Exclua o conjunto de dados antigo para evitar mais custos com armazenamento.

IU clássica

  1. Acesse a IU da Web clássica do BigQuery.

    Acessar a IU da Web clássica do BigQuery

  2. Clique em Transfers.

  3. Clique em Add Transfer.

  4. Na página New Transfer, siga estas instruções:

    • Em Source, escolha Dataset Copy.
    • Em Display name, insira um nome para a transferência, como My Dataset Copy. Ele pode ter qualquer valor que identifique facilmente a transferência, caso seja necessário modificá-la no futuro.
    • (Opcional) Em Schedule, deixe o valor padrão Daily (a cada 24 horas, com base na hora da criação) ou clique em Edit para alterar essa configuração. Também é possível alterar o intervalo para "Weekly", "Monthly" ou "Custom". Se você selecionar "Custom", especifique um horário em estilo "Cron", por exemplo, every 12 hours. O período mais curto permitido é de 12 horas.

    • Em Destination dataset, escolha o conjunto apropriado.

    • Em Source dataset, digite o nome do seu conjunto de origem.

    • Em Source project, selecione o projeto em que o conjunto de dados de origem está.

      Nova cópia do conjunto de dados

    • (Opcional) Expanda a seção Advanced e configure as notificações de execução da transferência.

    • Em Cloud Pub/Subtopic , insira o nome do tópico. Por exemplo, projects/myproject/topics/mytopic.

    • Marque Send email notifications para permitir notificações por e-mail sobre falhas na execução da transferência.

      Tópico do Cloud Pub/Sub

  5. Clique em Add.

  6. Exclua o conjunto de dados antigo para evitar mais custos com armazenamento.

CLI

Digite o comando bq mk e forneça a sinalização de criação da transferência --transfer_config. As sinalizações abaixo também são obrigatórias:

  • --project_id
  • --data_source
  • --target_dataset
  • --display_name
  • --params

    bq mk --transfer_config --project_id=[PROJECT_ID] --data_source=[DATA_SOURCE] --target_dataset=[DATASET] --display_name=[NAME] --params='[PARAMETERS]'
    

Em que:

  • --project_id é o ID do seu projeto do Google Cloud Platform. Se --project_id não for especificado, será usado o projeto padrão;
  • --data_source é a origem de dados: cross_region_copy;
  • --target_dataset é o conjunto de dados de destino do BigQuery na configuração da transferência;
  • --display_name é o nome de exibição do job de cópia ou da configuração de transferência. Ele pode ter qualquer valor que identifique facilmente a transferência, caso seja necessário modificá-la no futuro;
  • --params contém os parâmetros da configuração de transferência criada no formato JSON. Por exemplo: --params='{"param":"param_value"}'. Para copiar o conjunto de dados, é preciso fornecer o source_dataset_id e o source_project_id. Se preferir, informe também os parâmetros overwrite_destination_table.

Veja abaixo os parâmetros de uma configuração de cópia do conjunto de dados:

  • source_dataset_id: o ID do conjunto de dados de origem que você quer copiar.
  • source_project_id: o ID do projeto em que o conjunto de dados de origem está.
  • (Opcional) overwrite_destination_table: inclua este parâmetro se você quiser truncar as tabelas de uma cópia anterior e atualizar todos os dados.

Por exemplo, o comando a seguir cria uma configuração de cópia do conjunto de dados chamada My Transfer com um conjunto de destino denominado mydataset e um projeto com o ID de myproject.

bq mk --transfer_config --project_id=myproject --data_source=cross_region_copy --target_dataset=123_demo_tokyo --display_name='My Dataset Copy' --params='{"source_dataset_id":"123_demo_eu","source_project_id":"mysourceproject","overwrite_destination_table":"true"}'

API

Use o método projects.locations.transferConfigs.create e informe uma instância do recurso TransferConfig.

Como visualizar e atualizar jobs de cópia do conjunto de dados

Para ver o progresso e visualizar os detalhes de uma cópia do conjunto de dados, acesse "Transferências".

Console

Botão "Transferências" do console

Ver detalhes da transferência no console

As execuções de atualização de cópia do conjunto de dados estão programadas para ocorrer de acordo com a frequência especificada, que é configurável. De acordo com o padrão, elas são realizadas a cada 24 horas. Clique no menu Mais e em Atualizar transferência se quiser solicitar uma nova execução imediata.

Botão "Atualizar cópia do conjunto de dados"

IU clássica

Botão antigo de "Transferências"

As execuções de atualização de cópia do conjunto de dados estão programadas para ocorrer de acordo com a frequência especificada, que é configurável. De acordo com o padrão, elas são realizadas a cada 24 horas. Clique em Refresh Transfer se quiser solicitar uma nova execução imediata.

Botão "Atualizar cópia do conjunto de dados"

Preços

Não há cobrança pela cópia do conjunto de dados durante o período da versão Beta.

Na disponibilidade geral, o valor cobrado pelos dados copiados entre as regiões será igual ao dos preços da saída de rede do Compute Engine entre as regiões.

O BigQuery envia dados compactados para cópia entre regiões. Portanto, os gigabytes faturados podem ser inferiores ao tamanho do seu conjunto de dados.

Cotas e limitações

Veja a seguir os limites aplicados à cópia de conjuntos de dados no BigQuery. Os limites se aplicam aos jobs de cópia criados usando a ferramenta de linha de comando, o console ou a IU da Web clássica do BigQuery. Os limites também se aplicam aos jobs de cópia enviados de maneira programática usando o método de API jobs.insert do tipo cópia.

Todas as cobranças de uso padrão do BigQuery para armazenamento e consulta se aplicam aos dados copiados. Consulte Preços do BigQuery para mais informações.

As cópias do conjunto de dados do BigQuery estão sujeitas às seguintes limitações:

Cotas

Na região

A cota da cópia de conjuntos de dados na mesma região é igual para todos os jobs de cópia do BigQuery.

Veja a seguir os limites aplicados à cópia de tabelas no BigQuery. Os limites se aplicam a jobs criados automaticamente ao copiar dados usando a ferramenta de linha de comando, o console ou a IU clássica da Web do BigQuery. Eles também se aplicam a jobs de cópia enviados de maneira programática por meio do método de API jobs.insert do tipo cópia.

  • Jobs de cópia por tabela de destino/dia: 1.000 (incluindo falhas)
  • Jobs de cópia por projeto/dia: 100.000 (incluindo falhas)

Entre regiões

  • Jobs de cópia por tabela de destino/dia: 100 (incluindo falhas)
  • Jobs de cópia por projeto/dia: 2.000 (incluindo falhas)

Limitações gerais

  • É preciso criar o conjunto de dados de destino antes de criar uma configuração de transferência para a cópia do conjunto de dados.

  • Em cada configuração de cópia do conjunto de dados, é possível ter uma cópia ativa por vez. Outras execuções de transferência serão colocadas na fila.

Limitações do tipo de dados

  • Não é possível copiar visualizações.
  • Não é possível copiar visualizações materializadas.
  • Não é possível copiar tabelas externas.
  • Não é possível copiar armazenamento em um buffer de streaming.
  • A possibilidade de copiar tabelas criptografadas com chaves gerenciadas pelo cliente varia se você estiver copiando na mesma região ou entre regiões.

Na região

A cópia de tabelas criptografadas, incluindo aquelas com chaves gerenciadas pelo cliente (CMEK, na sigla em inglês), é compatível com cópias de conjuntos de dados na mesma região.

Entre regiões

A cópia de tabelas com a criptografia padrão entre regiões é compatível. No momento, não é possível copiar tabelas criptografadas com chaves gerenciadas pelo cliente (CMEK, na sigla em inglês) entre regiões. As tabelas criptografadas com CMEK serão ignoradas quando usadas ao copiar tabelas para o conjunto de dados de destino.

Limitações do conjunto de dados de origem

O tamanho máximo do conjunto de dados de origem é de 20.000 tabelas. A quantidade de tabelas que podem ser copiadas por execução varia se o processo é realizado na mesma região ou entre regiões.

Na região

  • O tamanho do conjunto de dados de origem pode ter no máximo 20.000 tabelas.

  • No máximo 20.000 tabelas podem ser copiadas por execução no conjunto de dados de destino.

Entre regiões

  • O tamanho do conjunto de dados de origem pode ter no máximo 20.000 tabelas.

  • No máximo 1.000 tabelas podem ser copiadas por execução no conjunto de dados de destino.

Exemplo

Se você configurar uma cópia entre regiões de um conjunto de dados com 8.000 tabelas, o serviço de transferência de dados do BigQuery criará automaticamente oito execuções de maneira sequencial. A primeira execução copiará 1.000 tabelas. 24 horas depois, outra execução copiará 1.000 tabelas. Isso continuará até que todas as tabelas no conjunto de dados sejam copiadas. O limite é de 20.000 tabelas por conjunto.

Limitações da tabela

  • No momento, a cópia de tabelas particionadas é aceita. No entanto, não é possível anexar dados a uma tabela particionada.

  • Se existir uma tabela nos conjuntos de dados de origem e de destino que não tenha sido alterada desde a última cópia bem-sucedida, ela será ignorada. Isso ocorrerá mesmo se a caixa Substituir tabela de destino estiver marcada.

  • Ao truncar tabelas, a cópia do conjunto de dados não detecta nenhuma alteração feita no conjunto de destino antes de iniciar a cópia. Todos os dados no conjunto de destino serão atualizados. As tabelas e o esquema serão substituídos.

Limitações do local

Os conjuntos de dados podem ser copiados de uma região para outra, de uma para várias, de várias para uma ou de várias para várias.

No momento, nem todas as regiões são compatíveis com a cópia de conjuntos de dados. É possível criar cópias nas regiões em que o serviço de transferência de dados do BigQuery atualmente é compatível, como mostrado abaixo.

Locais regionais

Nome da região Descrição da região
Europa
europe-west2 Londres
Ásia-Pacífico
asia-northeast1 Tóquio
australia-southeast1 Sydney

Locais multirregionais

Nome multirregional Descrição multirregional
EU União Europeia1
US Estados Unidos

1 Os dados localizados na multirregião EU não são armazenados no data center europe-west2 (Londres).

A seguir

  • Para mais informações sobre o uso de transferências, incluindo detalhes sobre a configuração de transferência, como listar configurações e como visualizar o histórico de execução de uma transferência, consulte Como trabalhar com transferências.
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.