Introdução ao carregamento de dados do Cloud Storage

Nesta página, você encontra uma visão geral sobre o carregamento de dados do Cloud Storage no BigQuery.

Visão geral

Para carregar os dados do Cloud Storage no BigQuery, eles precisam estar em um dos formatos a seguir:

  • valores separados por vírgula (CSV)
  • JSON (delimitado por nova linha)
  • Avro
  • Parquet
  • ORC
  • Exportações do Datastore
  • Exportações do Firestore

As cargas recorrentes do Cloud Storage no BigQuery são compatíveis com o serviço de transferência de dados do BigQuery.

O BigQuery é compatível com o carregamento de dados de qualquer uma das classes de armazenamento do Cloud Storage a seguir:

  • Padrão
  • Nearline
  • Coldline
  • Archive

Considerações sobre o local

Ao escolher um local para os dados, pense no seguinte:

  • Colocar os intervalos do Cloud Storage para carregar dados.
    • Se o conjunto de dados do BigQuery estiver em um local multirregional, o intervalo do Cloud Storage que contém os dados que você está carregando precisará estar em um intervalo regional ou multirregional no mesmo local. Por exemplo, se o conjunto de dados do BigQuery estiver na UE, o intervalo do Cloud Storage precisará estar em um intervalo regional ou multirregional na UE.
    • Se o conjunto de dados estiver em um local regional, seu intervalo do Cloud Storage precisará ser um intervalo regional no mesmo local. Por exemplo, se o conjunto de dados estiver na região de Tóquio, seu bucket do Cloud Storage precisará ser um bucket regional em Tóquio.
    • Exceção: se o conjunto de dados estiver no local multirregional US, será possível carregar dados de um intervalo do Cloud Storage em qualquer local regional ou multirregional.
  • Desenvolver um plano de gerenciamento de dados.
    • Se você escolher um recurso de armazenamento regional, como um conjunto de dados do BigQuery ou um intervalo do Cloud Storage, será necessário desenvolver um plano para gerenciar geograficamente seus dados.

Para mais informações sobre os locais do Cloud Storage, consulte Locais de intervalo na documentação do Cloud Storage.

Como mover dados do BigQuery entre locais

Não é possível alterar o local de um conjunto de dados após a criação, mas é possível fazer uma cópia dele. Não é possível mover um conjunto de dados de um local para outro, mas é possível mover (recriar) manualmente um conjunto de dados.

Como copiar conjuntos de dados

Para ver as etapas para essa ação, inclusive entre regiões, consulte Como copiar conjuntos de dados.

Como mover conjuntos de dados

Para mover manualmente um conjunto de dados de um local para outro, siga estas instruções:

  1. Exporte os dados das tabelas do BigQuery para um intervalo regional ou multirregional do Cloud Storage no mesmo local do conjunto de dados. Por exemplo, se o conjunto de dados estiver no local multirregional EU, exporte os dados para um intervalo regional ou multirregional no EU.

    Não há cobrança pela exportação de dados do BigQuery, mas são cobradas taxas pelo armazenamento dos dados exportados no Cloud Storage. As exportações do BigQuery estão sujeitas aos limites de jobs de exportação.

  2. Copie ou mova os dados do intervalo do Cloud Storage para um intervalo regional ou multirregional no novo local. Por exemplo, se você estiver movendo os dados do local multirregional US para o local regional Tokyo, será necessário transferi-los para um intervalo regional em Tokyo. Para mais informações sobre como transferir objetos do Cloud Storage, consulte na documentação do Cloud Storage Como renomear, copiar e mover objetos.

    A transferência de dados entre regiões gera cobranças de saída de rede no Cloud Storage.

  3. Depois de transferir os dados para um intervalo do Cloud Storage no novo local, crie um novo conjunto de dados do BigQuery no novo local. Em seguida, carregue os dados do intervalo do Cloud Storage no BigQuery.

    Você não será cobrado pelo carregamento dos dados no BigQuery, mas haverá cobranças pelo armazenamento no Cloud Storage até que eles ou o intervalo sejam excluídos. Também haverá cobrança pelo armazenamento de dados no BigQuery depois que eles forem carregados. O carregamento de dados no BigQuery está sujeito às limitações de jobs de carregamento.

Para mais informações sobre como usar o Cloud Storage para armazenar e mover grandes conjuntos de dados, consulte Como usar o Cloud Storage com Big Data.

Limitações

Você está sujeito às limitações a seguir ao carregar dados de um intervalo do Cloud Storage para o BigQuery:

  • Se o local do conjunto de dados estiver definido com um valor diferente de US, o intervalo regional ou multirregional do Cloud Storage precisará estar na mesma região que o conjunto de dados.
  • O BigQuery não garante a consistência dos dados para fontes de dados externas. Alterações nos dados subjacentes enquanto uma consulta estiver em execução podem resultar em comportamentos inesperados.

Dependendo do formato dos dados de origem do Cloud Storage, pode haver outras limitações. Veja mais informações em:

Recuperar o URI do Cloud Storage

Para carregar dados de uma fonte do Cloud Storage, é preciso fornecer o URI dele.

O URI do Cloud Storage contém o nome do intervalo e o objeto (nome do arquivo). Por exemplo, se o intervalo do Cloud Storage se chamar mybucket e o arquivo de dados for denominado myfile.csv, o URI do intervalo será gs://mybucket/myfile.csv. Caso os dados estejam separados em vários arquivos, use um caractere curinga no URI. Para mais informações, consulte URIs de solicitação do Cloud Storage.

O BigQuery não é compatível com URIs de origem que incluam várias barras consecutivas após a barra dupla inicial. Os nomes de objeto do Cloud Storage podem conter vários caracteres de barra ("/") consecutivos. No entanto, o BigQuery os converte em uma única barra. Por exemplo, ainda que válido no Cloud Storage, este URI de origem não funciona no BigQuery: gs://bucket/my//object//name.

Para recuperar o URI do Cloud Storage:

  1. Abra o Console do Cloud Storage.

    Console do Cloud Storage

  2. Procure a localização do objeto (arquivo) que contém os dados de origem.

  3. Na parte superior do Console do Cloud Storage, anote o caminho para o objeto. Para escrever o URI, substitua gs://bucket/file pelo caminho apropriado, como por exemplo, gs://mybucket/myfile.json. bucket é o nome do bucket do Cloud Storage, e file é o nome do objeto (arquivo) que contém os dados.

Permissões exigidas

Ao carregar dados no BigQuery, você precisa de permissões para executar um job de carregamento e para carregar dados em tabelas e partições novas ou antigas do BigQuery. Se você estiver carregando dados do Cloud Storage, também precisará de permissões para acessar o intervalo que contém os dados.

Permissões do BigQuery

Pelo menos as permissões a seguir são obrigatórias para carregar dados no BigQuery. Elas serão necessárias se você estiver carregando dados em uma nova tabela ou partição ou anexando/substituindo uma tabela ou partição.

  • bigquery.tables.create
  • bigquery.tables.updateData
  • bigquery.jobs.create

Os seguintes papéis predefinidos do Cloud IAM incluem permissões bigquery.tables.create e bigquery.tables.updateData:

  • bigquery.dataEditor
  • bigquery.dataOwner
  • bigquery.admin

Os seguintes papéis predefinidos do Cloud IAM incluem permissões bigquery.jobs.create:

  • bigquery.user
  • bigquery.jobUser
  • bigquery.admin

Além disso, se um usuário tiver permissões bigquery.datasets.create ao criar um conjunto de dados, será concedido o acesso bigquery.dataOwner. O acesso bigquery.dataOwner permite que o usuário crie e atualize tabelas no conjunto de dados usando um job de carregamento.

Consulte Controle de acesso para mais informações sobre papéis e permissões do Cloud IAM no BigQuery.

Permissões do Cloud Storage

Para carregar dados de um intervalo do Cloud Storage, você precisa ter permissões storage.objects.get. Se você estiver usando um caractere curinga de URI, também precisará ter permissões storage.objects.list.

O papel predefinido do Cloud IAM storage.objectViewer concede as permissões storage.objects.get e storage.objects.list.

Registros de acesso e armazenamento do Cloud Storage

O Cloud Storage oferece arquivos de registros de acesso e armazenamento no formato CSV, que podem ser importados diretamente ao BigQuery para análise. Para mais informações sobre como carregar e analisar os registros do Cloud Storage, consulte Registros de acesso e de armazenamento na documentação do Cloud Storage.

Compatibilidade com caracteres curinga para URIs do Cloud Storage

Se os dados do Cloud Storage estiverem separados em vários arquivos que compartilham um nome de base comum, é possível usar um caractere curinga no URI ao carregar os dados.

Para adicionar um caractere curinga ao URI do Cloud Storage, adicione um asterisco (*) ao nome de base. Por exemplo, se você tiver dois arquivos chamados fed-sample000001.csv e fed-sample000002.csv, o URI do intervalo será gs://mybucket/fed-sample*. Esse URI com caractere curinga pode ser usado no console, na IU da Web clássica, na ferramenta de linha de comando bq, na API ou nas bibliotecas de cliente.

Só é possível usar um caractere curinga para objetos (nomes de arquivos) no intervalo. O caractere curinga pode ser exibido dentro ou no final do nome do objeto. Não é possível anexar um caractere curinga ao nome do intervalo.

Nas exportações do Google Datastore, só é possível especificar um URI, que precisa terminar com .backup_info ou .export_metadata.

O caractere curinga * não é permitido ao:

  • criar tabelas externas vinculadas a exportações do Datastore ou do Firestore;
  • carregar dados de exportação do Datastore ou do Firestore a partir do Cloud Storage

A seguir

Para saber como carregar dados do Cloud Storage no BigQuery, consulte a documentação referente ao seu formato de dados:

Para saber mais sobre as cargas recorrentes do Cloud Storage no BigQuery, consulte Transferências do Cloud Storage.