Introdução às origens de dados externas

Esta página oferece uma vista geral da consulta de dados armazenados fora do BigQuery.

Uma origem de dados externa é aquela que pode consultar diretamente a partir do BigQuery, mesmo que os dados não estejam no armazenamento do BigQuery. Por exemplo, pode ter dados numa base de dados Google Cloud diferente, em ficheiros no Cloud Storage ou num produto da nuvem diferente que gostaria de analisar no BigQuery, mas que não está a postos para migrar.

Os exemplos de utilização para origens de dados externas incluem o seguinte:

  • Para cargas de trabalho de ELT (extrair, carregar, transformar), carregar e limpar os seus dados num passe e escrever o resultado limpo no armazenamento do BigQuery através de uma consulta CREATE TABLE ... AS SELECT.
  • Juntar tabelas do BigQuery com dados que mudam frequentemente de uma origem de dados externa. Quando consulta a origem de dados externa diretamente, não é necessário atualizar os dados para o armazenamento do BigQuery sempre que este é alterado.

O BigQuery tem dois mecanismos diferentes para consultar dados externos: tabelas externas e consultas federadas.

Tabelas externas

As tabelas externas são semelhantes às tabelas padrão do BigQuery, uma vez que armazenam os respetivos metadados e esquema no armazenamento do BigQuery. No entanto, os respetivos dados residem numa fonte externa.

As tabelas externas estão contidas num conjunto de dados e são geridas da mesma forma que uma tabela padrão do BigQuery. Por exemplo, pode ver as propriedades da tabela, definir controlos de acesso e assim sucessivamente. Pode consultar estas tabelas e, na maioria dos casos, pode associá-las a outras tabelas.

Existem quatro tipos de tabelas externas:

  • Tabelas do BigLake
  • Tabelas do BigQuery Omni
  • Tabelas de objetos
  • Tabelas externas não pertencentes ao BigLake

Tabelas do BigLake

As tabelas do BigLake permitem-lhe consultar dados estruturados em armazenamentos de dados externos com delegação de acesso. A delegação de acesso desvincula o acesso à tabela do BigLake do acesso ao repositório de dados subjacente. Uma ligação externa associada a uma conta de serviço é usada para estabelecer ligação ao repositório de dados. Uma vez que a conta de serviço processa a obtenção de dados do repositório de dados, só tem de conceder aos utilizadores acesso à tabela do BigLake. Isto permite-lhe aplicar uma segurança detalhada ao nível da tabela, incluindo a segurança ao nível da linha e ao nível da coluna. Para tabelas do BigLake baseadas no Cloud Storage, também pode usar a ocultação de dados dinâmica. Para saber mais sobre as soluções de análise em várias nuvens que usam tabelas do BigLake com dados do Amazon S3 ou Blob Storage, consulte o BigQuery Omni.

Para mais informações, consulte o artigo Introdução às tabelas BigLake.

Tabelas de objetos

As tabelas de objetos permitem-lhe analisar dados não estruturados no Cloud Storage. Pode realizar análises com funções remotas ou realizar inferências através do BigQuery ML e, em seguida, juntar os resultados destas operações com o resto dos seus dados estruturados no BigQuery.

Tal como as tabelas do BigLake, as tabelas de objetos usam a delegação de acesso, o que desvincula o acesso à tabela de objetos do acesso aos objetos do Cloud Storage. Uma associação externa associada a uma conta de serviço é usada para estabelecer ligação ao Cloud Storage, pelo que só tem de conceder aos utilizadores acesso à tabela de objetos. Isto permite-lhe aplicar a segurança ao nível da linha e gerir a que objetos os utilizadores têm acesso.

Para mais informações, consulte o artigo Introdução às tabelas de objetos.

Tabelas externas não pertencentes ao BigLake

As tabelas externas não BigLake permitem-lhe consultar dados estruturados em armazenamentos de dados externos. Para consultar uma tabela externa que não seja do BigLake, tem de ter autorizações para a tabela externa e a origem de dados externa. Por exemplo, para consultar uma tabela externa que não seja do BigLake e que use uma origem de dados no Cloud Storage, tem de ter as seguintes autorizações:

  • bigquery.tables.getData
  • bigquery.jobs.create
  • storage.buckets.get
  • storage.objects.get

Para mais informações, consulte o artigo Introdução às tabelas externas.

Consultas federadas

As consultas federadas permitem-lhe enviar uma declaração de consulta para bases de dados do AlloyDB, Spanner ou Cloud SQL e receber o resultado como uma tabela temporária. As consultas federadas usam a API BigQuery Connection para estabelecer uma ligação com o AlloyDB, o Spanner ou o Cloud SQL. Na sua consulta, usa a função EXTERNAL_QUERY para enviar uma declaração de consulta para a base de dados externa, usando o dialeto SQL dessa base de dados. Os resultados são convertidos em tipos de dados GoogleSQL.

Para mais informações, consulte o artigo Introdução às consultas federadas.

Comparação de funcionalidades de origens de dados externas

A tabela seguinte compara o comportamento das origens de dados externas:

Tabelas do BigLake Tabelas de objetos Tabelas externas não BigLake Consultas federadas
Usa delegação de acesso Sim, através de uma conta de serviço Sim, através de uma conta de serviço Não Sim, através de uma conta de utilizador da base de dados (apenas no Cloud SQL)
Pode basear-se em vários URIs de origem Sim Sim Sim (apenas Cloud Storage) Não aplicável
Mapeamento de linhas As linhas representam o conteúdo do ficheiro As linhas representam os metadados dos ficheiros As linhas representam o conteúdo do ficheiro Não aplicável
Acessíveis por outras ferramentas de tratamento de dados através da utilização de conetores Sim (apenas Cloud Storage) Não Sim Não aplicável
Podem ser associadas a outras tabelas do BigQuery Sim (apenas Cloud Storage) Sim Sim Sim
Pode ser acedida como uma tabela temporária Sim (apenas Cloud Storage) Não Sim Sim
Funciona com o Amazon S3 Yes Não Não Não
Funciona com o armazenamento do Azure Yes Não Não Não
Compatível com o Bigtable Não Não Yes Não
Compatível com o Spanner Não Não Não Yes
Funciona com o Cloud SQL Não Não Não Yes
Funciona com o Google Drive Não Não Yes Não
Funciona com o Cloud Storage Yes Yes Yes Não

O que se segue?