Introdução a fontes de dados externas
Nesta página, você tem uma visão geral da consulta de dados armazenados fora do BigQuery.
Uma fonte de dados externa pode ser consultada diretamente no BigQuery, mesmo que os dados não estejam no armazenamento do BigQuery. Por exemplo, é possível ter dados em um banco de dados diferente do Google Cloud, em arquivos no Cloud Storage ou em um produto de nuvem diferente que você quer analisar no BigQuery, mas não está preparado para a migração.
Os casos de uso de fontes de dados externas incluem:
- Para cargas de trabalho ELT (extrair-carregar-transformar), carregar e limpar os dados
em uma única passagem e gravar o resultado limpo no armazenamento do
BigQuery, usando uma consulta
CREATE TABLE ... AS SELECT
. - Como mesclar tabelas do BigQuery com dados alterados com frequência de uma fonte de dados externa. Ao consultar a fonte de dados externa diretamente, não é necessário recarregar os dados no armazenamento do BigQuery sempre que eles forem alterados.
O BigQuery tem dois mecanismos diferentes para consultar dados externos: tabelas externas e consultas federadas.
Tabelas externas
Essas tabelas são semelhantes às tabelas padrão do BigQuery, porque armazenam esses metadados e esquemas no armazenamento do BigQuery. No entanto, os dados ficam em uma fonte externa.
As tabelas externas estão contidas em um conjunto de dados, e você as gerencia da mesma forma que gerencia uma tabela padrão do BigQuery. Por exemplo, é possível ver as propriedades da tabela, definir controles de acesso e assim por diante. É possível consultar essas tabelas e, na maioria dos casos, mesclá-las com outras.
Há quatro tipos de tabelas externas:
- Tabelas do BigLake
- Tabelas do BigQuery Omni
- Tabelas de objetos
- Tabelas externas que não são do BigLake
Tabelas do BigLake
Com as tabelas do BigLake, é possível consultar dados estruturados em repositórios de dados externos com delegação de acesso. A delegação de acesso desacopla o acesso à tabela do BigLake ao acesso ao armazenamento de dados subjacente. Uma conexão externa associada a uma conta de serviço é usada para se conectar ao armazenamento de dados. Como a conta de serviço processa a recuperação de dados do armazenamento de dados, você só precisa conceder aos usuários acesso à tabela do BigLake. Isso permite aplicar segurança detalhada no nível da tabela, incluindo segurança no nível da linha e no nível da coluna. Nas tabelas do BigLake baseadas no Cloud Storage, também é possível usar o mascaramento de dados dinâmicos. Para saber mais sobre soluções de análise de várias nuvens usando tabelas do BigLake com dados do Amazon S3 ou do Blob Storage, consulte BigQuery Omni.
Para mais informações, consulte Introdução às tabelas do BigLake.
Tabelas de objetos
As tabelas de objetos permitem analisar dados não estruturados no Cloud Storage. É possível fazer análises com funções remotas ou inferência usando o BigQuery ML e, em seguida, mesclar os resultados dessas operações com o restante dos seus dados estruturados no BigQuery.
Assim como as tabelas do BigLake, as tabelas de objetos usam a delegação de acesso, o que desassocia o acesso à tabela do acesso aos objetos do Cloud Storage. Uma conexão externa associada a uma conta de serviço é usada para se conectar ao Cloud Storage. Portanto, você só precisa conceder aos usuários acesso à tabela de objetos. Isso permite que você aplique a segurança no nível da linha e gerencie a quais objetos os usuários têm acesso.
Para mais informações, consulte Introdução às tabelas de objetos.
Tabelas externas que não são do BigLake
As tabelas externas que não são do BigLake permitem consultar dados estruturados em armazenamentos de dados externos. Para consultar uma tabela externa que não seja do BigLake, você precisa ter permissões para a tabela externa e a fonte de dados externa. Por exemplo, para consultar uma tabela externa que não seja do BigLake e que use uma fonte de dados no Cloud Storage, é necessário ter as seguintes permissões:
bigquery.tables.getData
bigquery.jobs.create
storage.buckets.get
storage.objects.get
Para mais informações, consulte Introdução a tabelas externas.
Consultas federadas.
As consultas federadas permitem que você envie uma instrução de consulta para bancos de dados do AlloyDB, Spanner ou Cloud SQL
e receba o resultado como uma tabela temporária. As consultas federadas usam a
API BigQuery Connection para estabelecer uma conexão com o AlloyDB, Spanner ou o Cloud SQL.
Na consulta, use a função EXTERNAL_QUERY
para enviar uma instrução de consulta ao banco de dados externo usando o dialeto SQL desse banco de dados.
Os resultados são convertidos em tipos de dados do GoogleSQL.
Para mais informações, consulte Introdução a consultas federadas.
Comparação de recursos da fonte de dados externa
A tabela a seguir compara o comportamento de fontes de dados externas:
Tabelas do BigLake | Tabelas de objetos | Tabelas externas que não são do BigLake | Consultas federadas | |
---|---|---|---|---|
Usa delegação de acesso | Sim, com uma conta de serviço | Sim, com uma conta de serviço | Não | Sim, por meio de uma conta de usuário do banco de dados (somente Cloud SQL) |
Pode ser baseado em vários URIs de origem | Sim | Sim | Sim (somente no Cloud Storage) | Não relevante |
Mapeamento de linhas | As linhas representam o conteúdo do arquivo | As linhas representam metadados do arquivo | As linhas representam o conteúdo do arquivo | Não relevante |
Acessível por outras ferramentas de processamento de dados usando conectores | Sim (somente no Cloud Storage) | Não | Sim | Não relevante |
Pode ser mesclado a outras tabelas do BigQuery | Sim (somente no Cloud Storage) | Sim | Sim | Sim |
Pode ser acessado como uma tabela temporária | Sim (somente no Cloud Storage) | Não | Sim | Sim |
Funciona com o Amazon S3 | Sim | Não | Não | Não |
Funciona com o Azure Storage | Sim | Não | Não | Não |
Funciona com o Bigtable | Não | Não | Sim | Não |
Funciona com o Spanner | Não | Não | Não | Sim |
Funciona com o Cloud SQL | Não | Não | Não | Sim |
Funciona com o Google Drive | Não | Não | Sim | Não |
Funciona com o Cloud Storage | Sim | Sim | Sim | Não |
A seguir
- Saiba mais sobre as tabelas BigLake.
- Saiba mais sobre tabelas de objetos.
- Saiba mais sobre tabelas externas.
- Saiba mais sobre consultas federadas.
- Saiba mais sobre o preço do BigQuery.