Introdução às fontes de dados externas

Nesta página, você tem uma visão geral da consulta de dados armazenados fora do BigQuery.

Visão geral

Uma fonte de dados externa (também conhecida como "federada") pode ser consultada diretamente, mesmo que os dados não estejam armazenados no BigQuery. Em vez de carregar os dados ou fazer streaming deles, crie uma tabela que faça referência à fonte de dados externa.

O BigQuery é compatível com consulta de dados diretamente do:

Os casos de uso de fontes de dados externas incluem:

  • Carregamento e limpeza dos dados em uma única passagem, por meio da consulta dos dados a partir de uma fonte de dados externa (um local fora do BigQuery) e gravação do resultado limpo no armazenamento do BigQuery.
  • Ter uma pequena quantidade de dados alterados com frequência que você une com outras tabelas. Como uma fonte de dados externa, os dados alterados com frequência não precisam ser recarregados toda vez que forem atualizados.

Limitações da fonte de dados externa

As limitações das fontes de dados externas incluem o seguinte:

  • 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.
  • O desempenho da consulta para fontes de dados externas talvez não seja tão alto quanto a consulta de dados em uma tabela nativa do BigQuery. Se a velocidade de consulta for uma prioridade, carregue os dados no BigQuery em vez de configurar uma fonte de dados externa. O desempenho de uma consulta que inclui uma fonte de dados externa depende do tipo de armazenamento externo. Por exemplo, a consulta de dados armazenados no Cloud Storage é mais rápida do que a consulta de dados armazenados no Google Drive. Em geral, o desempenho da consulta de fontes de dados externas precisa ser equivalente à leitura dos dados diretamente do armazenamento externo.
  • Não é possível usar o método TableDataList de API JSON para recuperar dados de tabelas que residem em uma fonte de dados externa. Para mais informações, consulte tabledata.list.

    Para resolver essa limitação, salve os resultados da consulta em uma tabela de destino. Depois, é só usar o método TableDataList na tabela de resultados.

  • Não é possível executar um job do BigQuery que exporte dados a partir de uma fonte de dados externa.

    Para contornar essa limitação, salve os resultados da consulta em uma tabela de destino. Depois, é só executar um job de exportação na tabela de resultados.

  • Não é possível referenciar uma fonte de dados externa em uma consulta de tabela de caracteres curinga.

  • Ainda não é possível consultar dados externos armazenados nos formatos Parquet ou ORC.

  • As fontes de dados externas não são compatíveis com o particionamento ou o clustering de tabelas.

  • Ao consultar uma fonte de dados externa, os resultados não são armazenados em cache. Será cobrada cada consulta em uma tabela externa, ainda que a mesma consulta seja enviada diversas vezes. Para enviar repetidamente uma consulta em uma tabela externa que não seja alterada com frequência, convém gravar os resultados da consulta em uma tabela permanente e executar as consultas na tabela permanente.

  • Atualmente, a consulta de dados no Cloud Bigtable só está disponível nas seguintes regiões e zonas:
    Região Zonas
    us-central1

    us-central1-a

    us-central1-b

    us-central1-c

    us-central1-f

    europe-west1

    europe-west1-b

    europe-west1-c

    europe-west1-d

  • Você só pode fazer quatro consultas simultâneas em uma fonte de dados externa do Cloud Bigtable.

Considerações sobre local

Ao escolher um local para os dados, pense nas seguintes opções:

  • Colocar seu conjunto de dados do BigQuery e sua fonte de dados externa.
    • Quando você consulta dados em uma fonte de dados externa, como o Cloud Storage, os dados que está consultando precisam estar no mesmo local que o conjunto de dados do BigQuery. Por exemplo, se o conjunto de dados do BigQuery estiver no local multirregional da UE, o intervalo do Cloud Storage que contém os dados que você está consultando precisará estar em um intervalo multirregional na UE. Se o conjunto de dados estiver no local multirregional dos EUA, o intervalo do Cloud Storage precisará estar em um intervalo multirregional nos EUA.
    • Se o seu conjunto de dados estiver em um local regional, o intervalo do Cloud Storage que contém os dados que você está consultando precisará estar em um intervalo regional no mesmo local. Por exemplo, se o conjunto de dados estiver na região de Tóquio, o intervalo do Cloud Storage precisará ser um intervalo regional em Tóquio.
    • Se o conjunto de dados externo estiver no Cloud Bigtable, seu conjunto de dados precisará estar nos EUA ou no local multirregional da UE. Seus dados do Cloud Bigtable precisam estar em um dos locais compatíveis com o Cloud Bigtable.
    • As considerações sobre o local não se aplicam às fontes de dados externas do Google Drive.
  • 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 locais do Cloud Storage, consulte Locais de intervalos na documentação do Cloud Storage.

Para mover manualmente um conjunto de dados de um local para outro, siga este processo:

  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 da UE, exporte os dados para um intervalo regional ou multirregional na UE.

    Não há cobranças 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 dos EUA para o local regional de Tóquio, será necessário transferi-los para um intervalo regional em Tóquio. Para informações de como transferir objetos do Cloud Storage, consulte Como renomear, copiar e mover objetos na documentação do Cloud Storage.

    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 dos dados no Cloud Storage até que os dados 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.

Preços da fonte de dados externa

Na consulta de uma fonte de dados externa a partir do BigQuery, a cobrança é aplicada pelo número de bytes lidos. Para mais informações, consulte Preços de consultas.

O armazenamento dos dados e qualquer recurso usado pelo aplicativo de origem também são cobrados, sujeitos às diretrizes de preços do aplicativo:

  • Para informações sobre preços do Cloud Storage, consulte Preços do Cloud Storage.
  • Para informações sobre os preços do Cloud Bigtable, consulte Preços.
  • Para informações sobre os preços do Google Drive, consulte Preços.

Próximas etapas

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

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