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
bigquery.connections.use
bigquery.jobs.create
bigquery.readsessions.create
(Só é necessário se estiver a ler dados com a API BigQuery Storage Read)bigquery.tables.get
bigquery.tables.getData
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:
Na Trusted Cloud consola, aceda à página BigQuery.
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 criouTABLE_NAME
: a tabela do BigLake com o nome que criouClique 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:
- Crie um objeto Job.
- Chame o método
jobs.insert
para executar a consulta de forma assíncrona ou o métodojobs.query
para executar a consulta de forma síncrona, transmitindo o objetoJob
. - Leia linhas com o método
jobs.getQueryResults
transmitindo a referência da tarefa fornecida e os métodostabledata.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?
- Saiba como usar o SQL no BigQuery.
- Saiba mais acerca do BigQuery Omni.
- Saiba mais acerca das quotas do BigQuery.