Consultar dados do Amazon S3
Neste documento, descrevemos como consultar dados armazenados em uma tabela do BigLake do Amazon Simple Storage Service (Amazon S3).
Antes de começar
Verifique se você tem uma tabela do Amazon S3 BigLake.
Funções exigidas
Para consultar as tabelas do Amazon S3 BigLake, verifique se o autor da chamada da API 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 Amazon S3. 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 que são necessárias para consultar as tabelas do Amazon S3 BigLake, expanda a seção Permissões necessárias:
Permissões necessárias
bigquery.connections.use
bigquery.jobs.create
bigquery.readsessions.create
: obrigatório apenas se você estiver lendo dados com a API BigQuery Storage Readbigquery.tables.get
bigquery.tables.getData
Essas permissões também podem ser concedidas com papéis personalizados ou outros papéis predefinidos.
Consultar tabelas do Amazon S3 BigLake
Após criar uma tabela do Amazon S3 BigLake, consulte-a 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 em uma tabela do BigLake Amazon S3:
SQL
Para consultar a tabela:
No Console do Google Cloud, acesse a página BigQuery.
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
: o nome da tabela que você criouClique em
Executar.
Para mais informações sobre como executar consultas, acesse Executar uma consulta interativa.
Java
Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Java.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
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:
- Crie um objeto de 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 no objetoJob
. - Leia as linhas com
jobs.getQueryResults
transmitindo a referência do job especificada e os métodostabledata.list
transmitindo a referência da tabela fornecida do resultado da consulta.
Consulte 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
- Saiba mais sobre como usar o SQL no BigQuery.
- Saiba mais sobre o BigQuery Omni.
- Saiba mais sobre as cotas do BigQuery.