Introdução a fontes de dados externas

Nesta página, você encontra uma visão geral sobre a 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 a consulta de dados diretamente de um destes:

Os casos de uso de fontes de dados externas incluem o seguinte:

  • Carregamento e limpeza dos dados em uma única transmissão ao consultá-los em uma fonte de dados externa (um local fora do BigQuery) e ao gravar o resultado limpo no armazenamento do BigQuery.
  • Ter uma pequena quantidade de dados alterados com frequência que você une com outras tabelas. Como fonte de dados externa, os dados alterados com frequência não precisam ser recarregados toda vez que são atualizados.

Limitações da fonte de dados externa

Estas são as limitações das fontes de dados externas:

  • O BigQuery não garante a consistência dos dados para fontes de dados externas. Alterações nos dados subjacentes durante a execução de uma consulta 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 de API JSON TableDataList para recuperar dados de tabelas que residem em uma fonte de dados externa. Para mais informações, consulte tabledata.list.

    Para contornar essa limitação, salve os resultados da consulta em uma tabela de destino. Em seguida, use 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. Em seguida, execute 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.

  • As fontes de dados externas não são compatíveis com o clustering ou o particionamento 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. Caso seja necessário 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 nessa tabela.

  • 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

  • Só é possível 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, considere as seguintes informações:

  • Colocation da sua fonte de dados externa e do conjunto de dados do BigQuery.
    • 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 EU, o intervalo do Cloud Storage que contém os dados que você está consultando precisará estar em um intervalo multirregional no EU. Se o conjunto de dados estiver no local multirregional US, seu intervalo do Cloud Storage precisará estar em um intervalo multirregional no US.
    • Se o 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 Tokyo, o intervalo do Cloud Storage precisará ser regional e estar em Tokyo.
    • Se o conjunto de dados externo estiver no Cloud Bigtable, seu conjunto de dados precisará estar no local multirregional US ou EU. 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 a fontes de dados externas do Google Drive.
  • Desenvolvimento de 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, desenvolva 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 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 dos EUA para o local regional de Tóquio, será necessário transferi-los para um intervalo regional em Tóquio. 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 dos 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 de fontes de dados externas

    Ao consultar 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 consulta e Como consultar dados armazenados em preços do Cloud Storage.

    Caso seus dados estejam armazenados em ORC ou Parquet no Cloud Storage, consulte Como consultar formatos em colunas no Cloud Storage.

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

    • Consulte Preços do Cloud Storage para mais informações sobre esse assunto.
    • Consulte Preços para informações sobre os preços do Cloud Bigtable.
    • Consulte Preços para informações sobre os preços do Google Drive.

    Próximas etapas