Consultar dados do Amazon S3
Este documento descreve como consultar dados armazenados numa tabela do BigLake do Amazon Simple Storage Service (Amazon S3).
Antes de começar
Certifique-se de que tem uma tabela do BigLake do Amazon S3.
Funções necessárias
Para consultar tabelas do BigLake do Amazon S3, 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 Amazon S3. 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 Amazon S3, 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 do BigLake no Amazon S3
Depois de criar uma tabela BigLake do Amazon S3, pode consultá-la através da sintaxe 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 numa tabela do Amazon S3 do BigLake:
SQL
Para consultar a tabela:
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
: o nome da tabela que criouClique em
Executar.
Para mais informações sobre como executar consultas, consulte o artigo Execute uma consulta interativa.
Java
Antes de experimentar este exemplo, siga as Javainstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Java BigQuery documentação de referência.
Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
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.