Consultar dados do Blob Storage

Neste documento, descrevemos como consultar dados armazenados em uma tabela BigLake de armazenamento de blobs do Azure.

Antes de começar

Verifique se você tem uma tabela do BigLake de armazenamento de blobs.

Papéis obrigatórios

Para consultar as tabelas do BigLake do armazenamento de blobs, verifique se o autor da chamada da API do BigQuery tem os seguintes papéis:

  • Usuário de conexão do BigQuery (roles/bigquery.connectionUser)
  • Leitor de dados do BigQuery (roles/bigquery.dataViewer)
  • Usuário do BigQuery (roles/bigquery.user)

O autor da chamada pode ser sua conta ou uma conta de serviço de conexão do Blob Storage. Dependendo das suas permissões, é possível conceder esses papéis a você mesmo ou pedir ao administrador para concedê-los. Para mais informações sobre como conceder papéis, consulte Como visualizar os papéis atribuíveis em recursos.

Para ver as permissões exatas necessárias para consultar as tabelas do BigLake do Blob Storage, expanda a seção Permissões necessárias:

Permissões necessárias

Essas permissões também podem ser concedidas com papéis personalizados ou outros papéis predefinidos.

Consultar tabelas do BigLake de armazenamento de blobs

Depois de criar uma tabela do Blob Storage BigLake, você pode consultá-la usando a sintaxe do Google SQL, como se ela fosse uma tabela padrão do BigQuery.

Os resultados de consulta em cache são armazenados em uma tabela temporária do BigQuery. Para conferir uma tabela temporária do BigLake, acesse Consultar uma tabela temporária do BigLake. Para mais informações sobre as limitações e cotas do BigQuery Omni, consulte limitações e cotas.

Ao criar uma reserva em uma região do BigQuery Omni, use a edição Enterprise. Para saber como criar uma reserva com uma edição, consulte Criar reservas.

Execute uma consulta na tabela do BigLake do armazenamento de blobs:

  1. No Console do Google Cloud, acesse a página BigQuery.

    Ir para o BigQuery

  2. No editor de consultas, digite a seguinte instrução:

    SELECT * FROM DATASET_NAME.TABLE_NAME;
    

    Substitua:

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

    • Clique em Executar.

Para mais informações sobre como executar consultas, acesse Executar uma consulta interativa.

Consultar uma tabela temporária

O BigQuery cria tabelas temporárias para armazenar os resultados da consulta. Para recuperar o resultado da consulta de tabelas temporárias, use o console do Google Cloud ou a API BigQuery.

Selecione uma das seguintes opções:

Console

Ao consultar uma tabela do BigLake que faz referência a dados da nuvem externa, você poderá conferir os resultados da consulta exibidos no console do Google Cloud.

API

Para consultar uma tabela do BigLake usando a API, siga estas etapas:

  1. Crie um objeto de 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 no objeto Job.
  3. Leia as linhas com jobs.getQueryResults transmitindo a referência do job especificada e os métodos tabledata.list transmitindo a referência da tabela fornecida do resultado da consulta.

Consultar a pseudocoluna _FILE_NAME

Tabelas baseadas em fontes de dados externas fornecem uma pseudocoluna denominada _FILE_NAME. Ela contém o caminho totalmente qualificado para o arquivo ao qual a linha pertence. Essa coluna está disponível apenas para tabelas com referência a dados externos armazenados no Cloud Storage, Google Drive, Amazon S3 e Armazenamento de Blobs do Azure.

O nome de coluna _FILE_NAME é reservado. Por isso, não crie nenhuma coluna com esse nome nas tabelas. Para selecionar o valor de _FILE_NAME, use um alias. O exemplo de consulta a seguir mostra a seleção de _FILE_NAME ao atribuir o alias fn na 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:

  • PROJECT_ID é um ID de projeto válido (essa flag não é necessária se você usa o Cloud Shell ou configurou um projeto padrão na CLI do 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 arquivos que não satisfazem esse filtro. Recomendações semelhantes às consultas de tabelas particionadas por tempo de processamento usando pseudocolunas são aplicadas ao criar predicados de consulta com a pseudocoluna _FILE_NAME.

A seguir