Consultar dados do armazenamento de blobs

Este documento descreve como consultar dados armazenados numa tabela BigLake do armazenamento de blobs do Azure.

Antes de começar

Certifique-se de que tem uma tabela do BigLake no armazenamento de blobs.

Funções necessárias

Para consultar tabelas BigLake do Blob Storage, certifique-se de que o autor da chamada da API BigQuery tem as seguintes funções:

  • Utilizador de ligação do BigQuery (roles/bigquery.connectionUser)
  • Visualizador de dados do BigQuery (roles/bigquery.dataViewer)
  • Utilizador do BigQuery (roles/bigquery.user)

O autor da chamada pode ser a sua conta ou uma conta de serviço de ligação do Blob Storage. Consoante as suas autorizações, pode atribuir estas funções a si próprio ou pedir ao seu administrador para as atribuir. Para mais informações sobre a concessão de funções, consulte o artigo Ver as funções atribuíveis aos recursos.

Para ver as autorizações exatas necessárias para consultar tabelas do BigLake no Blob Storage, expanda a secção Autorizações necessárias:

Autorizações necessárias

Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.

Consultar tabelas BigLake do armazenamento de blobs

Depois de criar uma tabela BigLake do Blob Storage, pode consultá-la através da sintaxe do GoogleSQL, tal como se fosse uma tabela padrão do BigQuery.

Os resultados da consulta em cache são armazenados numa tabela temporária do BigQuery. Para consultar uma tabela temporária do BigLake, consulte o artigo Consulte uma tabela temporária do BigLake. Para mais informações acerca das limitações e quotas do BigQuery Omni, consulte as limitações e as quotas.

Quando criar uma reserva numa região do BigQuery Omni, use a edição Enterprise. Para saber como criar uma reserva com uma edição, consulte o artigo Crie reservas.

Execute uma consulta na tabela BigLake do armazenamento de blobs:

  1. Na Trusted Cloud consola, aceda à página BigQuery.

    Aceda ao BigQuery

  2. No editor de consultas, introduza a seguinte declaração:

    SELECT * FROM DATASET_NAME.TABLE_NAME;

    Substitua o seguinte:

    • DATASET_NAME: o nome do conjunto de dados que criou
    • TABLE_NAME: a tabela do BigLake com o nome que criou

    • Clique em Executar.

Para mais informações sobre como executar consultas, consulte o artigo Execute uma consulta interativa.

Consulte uma tabela temporária

O BigQuery cria tabelas temporárias para armazenar os resultados das consultas. Para obter o resultado da consulta de tabelas temporárias, pode usar a Trusted Cloud consola ou a API BigQuery.

Selecione uma das seguintes opções:

Consola

Quando consulta uma tabela do BigLake que faz referência a dados externos na nuvem, pode ver os resultados da consulta apresentados na Trusted Cloud consola.

API

Para consultar uma tabela do BigLake através da API, siga estes passos:

  1. Crie um objeto Job.
  2. Chame o método jobs.insert para executar a consulta de forma assíncrona ou o método jobs.query para executar a consulta de forma síncrona, transmitindo o objeto Job.
  3. Leia linhas com o método jobs.getQueryResults transmitindo a referência da tarefa fornecida e os métodos tabledata.list transmitindo a referência da tabela fornecida do resultado da consulta.

Consulte a pseudocoluna _FILE_NAME

As tabelas baseadas em origens de dados externas fornecem uma pseudocoluna denominada _FILE_NAME. Esta coluna contém o caminho totalmente qualificado para o ficheiro ao qual a linha pertence. Esta coluna está disponível apenas para tabelas que referenciam dados externos armazenados no Cloud Storage, Google Drive, Amazon S3 e armazenamento de blobs do Azure.

O nome da coluna _FILE_NAME está reservado, o que significa que não pode criar uma coluna com esse nome em nenhuma das suas tabelas. Para selecionar o valor de _FILE_NAME, tem de usar um alias. A consulta de exemplo seguinte demonstra a seleção de _FILE_NAME através da atribuição do alias fn à pseudocoluna.

  bq query \
  --project_id=PROJECT_ID \
  --use_legacy_sql=false \
  'SELECT
     name,
     _FILE_NAME AS fn
   FROM
     `DATASET.TABLE_NAME`
   WHERE
     name contains "Alex"' 

Substitua o seguinte:

  • PROJECT_ID é um ID do projeto válido (esta flag não é necessária se usar o Cloud Shell ou se definir um projeto predefinido na CLI Google Cloud)
  • DATASET é o nome do conjunto de dados que armazena a tabela externa permanente
  • TABLE_NAME é o nome da tabela externa permanente

Quando a consulta tem um predicado de filtro na pseudocoluna _FILE_NAME, o BigQuery tenta ignorar a leitura de ficheiros que não satisfazem o filtro. As recomendações semelhantes às consultas de tabelas particionadas por tempo de carregamento com pseudocolunas aplicam-se quando cria predicados de consulta com a pseudocoluna _FILE_NAME.

O que se segue?