Como consultar dados do Cloud Storage
Com o BigQuery, é possível realizar a consulta de dados do Cloud Storage nos seguintes formatos:
- Valores separados por vírgula (CSV, na sigla em inglês)
- JSON (delimitado por nova linha)
- Avro
- ORC
- Parquet
- Exportações do Datastore
- Exportações do Firestore
O BigQuery é compatível com a consulta de dados do Cloud Storage destas classes de armazenamento:
- Padrão
- Nearline
- Coldline
- Arquivar
Para consultar uma fonte de dados externa do Cloud Storage, forneça o caminho do URI do Cloud Storage para seus dados e crie uma tabela que faça referência a essa fonte. A tabela usada para fazer referência à fonte de dados do Cloud Storage pode ser permanente ou temporária.
Considere a localização do seu conjunto de dados e do intervalo do Cloud Storage ao consultar dados armazenados nele.
Antes de começar
Atribua papéis do Identity and Access Management (IAM) que concedam aos usuários as permissões necessárias para realizar cada tarefa deste documento. As permissões necessárias para executar uma tarefa (se houver) são listadas na seção "Permissões necessárias".
Recuperar o URI do Cloud Storage
Para criar uma tabela externa usando uma fonte de dados do Cloud Storage, é necessário fornecer o URI do serviço.
O URI do Cloud Storage contém o nome do intervalo e o objeto (nome do arquivo).
Por exemplo, se o intervalo do Cloud Storage se chamar mybucket
e o arquivo de dados for denominado myfile.csv
, o URI do intervalo será gs://mybucket/myfile.csv
.
Caso os dados estejam separados em vários arquivos, use um caractere curinga no URI. Para mais informações, consulte URIs de solicitação do Cloud Storage.
O BigQuery não é compatível com URIs de origem que incluam várias barras consecutivas após a barra dupla inicial. Os nomes de objeto do Cloud Storage podem conter vários caracteres de barra ("/") consecutivos. No entanto, o BigQuery os converte em uma única barra. Por exemplo, ainda que válido no Cloud Storage, este URI de origem não funciona no BigQuery: gs://bucket/my//object//name
.
Para recuperar o URI do Cloud Storage:
Abra o Console do Cloud Storage.
Procure a localização do objeto (arquivo) que contém os dados de origem.
Na parte superior do Console do Cloud Storage, anote o caminho para o objeto. Para escrever o URI, substitua
gs://bucket/file
pelo caminho apropriado, como por exemplo,gs://mybucket/myfile.json
. bucket é o nome do bucket do Cloud Storage, e file é o nome do objeto (arquivo) que contém os dados.
Tabelas externas permanentes ou temporárias
É possível consultar uma fonte de dados externa no BigQuery usando uma tabela permanente ou uma temporária. Uma tabela permanente é criada em um conjunto de dados e vinculada à sua fonte de dados externa. Como a tabela é permanente, é possível usar controles de acesso para compartilhá-la com outras pessoas que também têm acesso à fonte de dados externa subjacente e pode consultá-la a qualquer momento.
Ao consultar uma fonte de dados externa usando uma tabela temporária, você envia um comando que inclui uma consulta e cria uma tabela não permanente vinculada a essa fonte. A tabela temporária não é criada em um dos conjuntos de dados do BigQuery. Como ela não fica armazenada de modo permanente em um conjunto de dados, não é possível compartilhá-la com outras pessoas. A consulta em uma fonte de dados externa usando uma tabela temporária é útil no caso de consultas ad hoc únicas em dados externos ou para extrair, transformar e carregar (ETL) processos.
Como consultar dados do Cloud Storage usando tabelas externas permanentes
Permissões necessárias
Para consultar dados externos no Cloud Storage usando uma tabela permanente, você precisa de permissões para fazer o seguinte:
- executar um job de consulta para envolvidos no projeto ou superior;
- criar uma tabela que aponte para os dados externos;
- acessar a tabela.
Se os dados externos estiverem armazenados no Cloud Storage, você também precisará de permissões para acessar o bucket que contém os dados.
Permissões para criar e consultar uma tabela externa no BigQuery
Para criar e consultar uma tabela externa no BigQuery, você precisa destas permissões do IAM:
bigquery.tables.create
bigquery.tables.getData
bigquery.jobs.create
Cada um dos papéis predefinidos do IAM a seguir inclui as permissões necessárias para criar e consultar uma tabela externa no BigQuery:
roles/bigquery.dataEditor
roles/bigquery.dataOwner
roles/bigquery.admin
(inclui a permissãobigquery.jobs.create
)roles/bigquery.user
(inclui a permissãobigquery.jobs.create
)roles/bigquery.jobUser
(inclui a permissãobigquery.jobs.create
)
Além disso, se você tiver a permissão bigquery.datasets.create
, poderá criar e acessar tabelas externas nos conjuntos de dados que criar. No entanto, você ainda precisará da permissão bigquery.jobs.create
para consultar os dados.
Para mais informações sobre papéis e permissões do IAM no BigQuery, consulte Papéis e permissões predefinidos.
Permissões para consultar dados externos em um bucket do Cloud Storage
Para consultar dados externos em um bucket do Cloud Storage, você precisa destas permissões do IAM:
storage.objects.get
storage.objects.list
(obrigatório se você estiver usando um caractere curinga de URI)
O papel predefinido do IAM roles/storage.objectViewer
inclui todas as permissões necessárias para consultar dados externos em um bucket do Cloud Storage.
Escopos de acesso a instâncias do Compute Engine
Em uma instância do Compute Engine, se você precisar consultar uma tabela externa
vinculada a uma origem do Cloud Storage, ela precisará ter pelo menos o
escopo de acesso somente leitura do Cloud Storage
(https://www.googleapis.com/auth/devstorage.read_only
).
Os escopos controlam o acesso da instância do Compute Engine aos produtos do Google Cloud, incluindo o Cloud Storage. Os aplicativos executados na instância usam a conta de serviço anexada à instância para chamar APIs do Google Cloud.
Por padrão, se você configurar uma instância do Compute Engine para ser executada como a
conta de serviço padrão do Compute Engine,
ela terá vários escopos padrão,
incluindo o escopo https://www.googleapis.com/auth/devstorage.read_only
.
Se, em vez disso, você configurar a instância com uma conta de serviço personalizada,
conceda explicitamente o escopo
https://www.googleapis.com/auth/devstorage.read_only
à instância.
Para informações sobre como aplicar escopos a uma instância do Compute Engine, consulte Como alterar a conta de serviço e os escopos de acesso de uma instância. Acesse Contas de serviço para saber mais sobre esse tipo de conta do Compute Engine.
Como criar e consultar uma tabela externa permanente
É possível criar uma tabela permanente vinculada à sua fonte de dados externa da seguinte forma:
- Como usar o Console do Cloud
- Usando o comando
bq mk
. - Criando um
ExternalDataConfiguration
ao usar o método de APItables.insert
- Executando a instrução da linguagem de definição de dados (DDL, na sigla em inglês)
CREATE EXTERNAL TABLE
. - Como usar bibliotecas de cliente
Para consultar uma fonte de dados externa usando uma tabela permanente, crie uma tabela em um conjunto de dados do BigQuery vinculado a essa fonte. Os dados não ficam armazenados na tabela do BigQuery. Como a tabela é permanente, é possível usar controles de acesso para compartilhá-la com outras pessoas que também têm acesso à fonte de dados externa subjacente.
Ao criar uma tabela externa permanente, é possível especificar o esquema das seguintes maneiras:
- Forneça um esquema de tabela explícito
- Use a detecção automática de esquema.
Para criar uma tabela externa:
Console
- No console do Cloud, abra a página do BigQuery.
No painel Explorer, expanda o projeto e selecione um conjunto de dados.
Expanda a opção
Ações e clique em Criar tabela.Na página Criar tabela, na seção Origem:
Em Criar tabela de, selecione Google Cloud Storage.
No campo Selecionar arquivo no bucket do GCS, procure o arquivo/bucket do Cloud Storage ou insira o URI do Cloud Storage. Não é possível incluir vários URIs no Console do Cloud, mas há compatibilidade com caracteres curinga. O bucket do Cloud Storage precisa estar no mesmo local que o conjunto de dados que contém a tabela sendo criada.
Em Formato do arquivo, selecione o formato dos dados.
Na página Criar tabela, na seção Destino:
- Em Conjunto de dados, escolha o conjunto de dados apropriado.
- Verifique se o Tipo de tabela está definido como Tabela externa.
- No campo Nome da tabela, insira o nome da tabela que você está criando no BigQuery.
Na seção Esquema, ative a detecção automática de esquema ou especifique um esquema manualmente.
Para ativar a detecção automática de esquema, selecione a opção Detectar automaticamente.
Para especificar um esquema manualmente, deixe a opção Detectar automaticamente desmarcada e siga um destes procedimentos:
- Ative Editar como texto e insira o esquema da tabela como uma matriz JSON.
Selecione Criar tabela.
Após a criação da tabela permanente, é possível executar uma consulta na tabela como se ela fosse nativa do BigQuery. Após a conclusão da consulta, será possível exportar os resultados como arquivos CSV ou JSON, salvá-los como uma tabela ou nas Planilhas Google.
SQL
É possível criar uma tabela externa permanente executando a instrução DDL CREATE EXTERNAL TABLE
.
É possível especificar o esquema explicitamente. Se você não especificar um esquema, o BigQuery usará a detecção automática de esquema para inferir o esquema a partir dos dados externos.
No exemplo a seguir, a detecção automática de esquema é usada para criar uma tabela externa chamada sales
vinculada a um arquivo CSV armazenado no Cloud Storage:
No console do Cloud, acesse a página do BigQuery.
No editor de consultas, digite a seguinte instrução:
CREATE OR REPLACE EXTERNAL TABLE mydataset.sales OPTIONS ( format = 'CSV', uris = ['gs://mybucket/sales.csv']);
Clique em
Executar.
Para informações sobre como executar consultas, consulte Como executar consultas interativas.
O próximo exemplo especifica um esquema explicitamente e ignora a primeira linha no arquivo CSV:
CREATE OR REPLACE EXTERNAL TABLE mydataset.sales ( Region STRING, Quarter STRING, Total_Sales INT64 ) OPTIONS ( format = 'CSV', uris = ['gs://mybucket/sales.csv'], skip_leading_rows = 1);
bq
Para criar uma tabela externa, use o
comando bq mk
com a
sinalização
--external_table_definition
. Essa sinalização contém um caminho para um
arquivo de definição de tabelas ou uma definição de tabela
in-line.
Opção 1: arquivo de definição da tabela
Use o comando
bq mkdef
para criar um arquivo de definição de tabela e, em seguida, transmita o caminho do arquivo para
o comando bq mk
da seguinte maneira:
bq mkdef --source_format=SOURCE_FORMAT \ BUCKET_URL > DEFINITION_FILE bq mk --table \ --external_table_definition=DEFINITION_FILE \ DATASET_NAME.TABLE_NAME \ SCHEMA
Em que:
- SOURCE_FORMAT é o formato da fonte de dados externa,
por exemplo,
CSV
. - BUCKET_URI é seu URI do Cloud Storage;
- DEFINITION_FILE é o caminho para o arquivo de definição de tabelas na máquina local;
- DATASET_NAME é o nome do conjunto de dados que contém a tabela;
- TABLE_NAME é o nome da tabela que você está criando.
- SCHEMA especifica um caminho para um
arquivo de esquema JSON
ou especifica o esquema no formato
field:data_type,field:data_type,...
.
Exemplo:
bq mkdef --source_format=CSV gs://mybucket/sales.csv > mytable_def
bq mk --table --external_table_definition=mytable_def \
mydataset.mytable \
Region:STRING,Quarter:STRING,Total_sales:INTEGER
Para usar a detecção automática de esquema, defina a sinalização --autodetect=true
no
comando mkdef
e omita o esquema:
bq mkdef --source_format=CSV --autodetect=true \
gs://mybucket/sales.csv > mytable_def
bq mk --table --external_table_definition=mytable_def \
mydataset.mytable
Opção 2: definição da tabela in-line
Em vez de criar um arquivo de definição de tabela, é possível transmitir a definição
da tabela diretamente para o comando bq mk
:
bq mk --table \ --external_table_definition=@SOURCE_FORMAT=BUCKET_URI \ DATASET_NAME.TABLE_NAME \ SCHEMA
Em que:
- SOURCE_FORMAT é o formato da fonte de dados externa,
por exemplo,
CSV
. - BUCKET_URI é seu URI do Cloud Storage;
- DATASET_NAME é o nome do conjunto de dados que contém a tabela;
- TABLE_NAME é o nome da tabela que você está criando.
- SCHEMA especifica um caminho para um
arquivo de esquema JSON
ou especifica o esquema no formato
field:data_type,field:data_type,...
. Para usar a detecção automática de esquema, omita esse argumento.
Exemplo:
bq mkdef --source_format=CSV gs://mybucket/sales.csv > mytable_def
bq mk --table --external_table_definition=mytable_def \
mydataset.mytable \
Region:STRING,Quarter:STRING,Total_sales:INTEGER
API
Crie uma ExternalDataConfiguration
quando utilizar o método de API tables.insert
. Especifique a property schema
ou defina a property autodetect
como true
para ativar a detecção automática de esquema para fontes de dados compatíveis.
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.
Node.js
Antes de testar esta amostra, siga as instruções de configuração do Node.js 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 Node.js.
Python
Antes de testar esta amostra, siga as instruções de configuração para Python 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 Python.
Consulta de dados do Cloud Storage usando tabelas temporárias
Para consultar uma fonte de dados externa sem criar uma tabela permanente, execute um comando para combinar:
- um arquivo de definição de tabela com uma consulta;
- uma definição de esquema in-line com uma consulta;
- um arquivo de definição de esquema JSON com uma consulta.
O arquivo de definição de tabela ou esquema fornecido é usado para criar a tabela externa temporária,
e a consulta será executada nela. É possível consultar uma fonte de dados externa usando uma
tabela temporária com a ferramenta de linha de comando bq
e na API.
A tabela externa temporária não é criada em um dos conjuntos de dados do BigQuery. Como ela não fica armazenada permanentemente em um conjunto de dados, não é possível compartilhá-la com outros. A consulta a uma fonte de dados externa usando uma tabela temporária é útil quando você quer consultar dados externos apenas uma vez, com um propósito específico, ou executar processos de Extração, transformação e carregamento (ETL).
Permissões necessárias
Para consultar dados externos no Cloud Storage usando uma tabela temporária, você precisa de permissões para executar um job de consulta no nível do projeto ou superior e acessar o conjunto de dados contendo uma tabela que aponte para os dados externos. Para consultar dados no Cloud Storage, você também precisa de permissões para acessar o bucket que contém os dados.
Permissões para consultar uma tabela externa no BigQuery
Para consultar uma tabela externa no BigQuery com uma tabela temporária, você precisa das seguintes permissões do IAM:
bigquery.tables.getData
bigquery.jobs.create
Cada um dos seguintes papéis de IAM predefinidos inclui as permissões necessárias para consultar uma tabela externa no BigQuery usando uma tabela temporária:
roles/bigquery.dataEditor
roles/bigquery.dataOwner
roles/bigquery.admin
(inclui a permissãobigquery.jobs.create
)roles/bigquery.user
(inclui a permissãobigquery.jobs.create
)roles/bigquery.jobUser
(inclui a permissãobigquery.jobs.create
)
Além disso, se você tiver a permissão bigquery.datasets.create
, poderá criar e acessar tabelas externas nos conjuntos de dados que criar. No entanto, você ainda precisará da permissão bigquery.jobs.create
para consultar os dados.
Para mais informações sobre papéis e permissões do IAM no BigQuery, consulte Papéis e permissões predefinidos.
Permissões para consultar dados externos em um bucket do Cloud Storage
Para consultar dados externos em um bucket do Cloud Storage, você precisa destas permissões do IAM:
storage.objects.get
storage.objects.list
(obrigatório se você estiver usando um caractere curinga de URI)
O papel predefinido do IAM roles/storage.objectViewer
inclui todas as permissões necessárias para consultar dados externos em um bucket do Cloud Storage.
Criação e consulta de tabela temporária
É possível criar e consultar uma tabela temporária vinculada a uma fonte de dados externa
usando a ferramenta de linha de comando bq
, a API ou as bibliotecas de cliente.
bq
É possível consultar uma tabela temporária vinculada a uma fonte de dados externa usando o comando
bq query
com a
sinalização
--external_table_definition
. Ao usar
a ferramenta de linha de comando bq
para consultar uma tabela temporária vinculada a uma fonte de dados externa,
é possível identificar o esquema dessa tabela usando:
- um arquivo de definição de tabela (armazenado em sua máquina local);
- uma definição de esquema in-line;
- um arquivo de esquema JSON (armazenado em sua máquina local).
Opcional: forneça a sinalização --location
e defina o valor do
local.
Para consultar uma tabela temporária vinculada à sua fonte de dados externa usando um arquivo de definição de tabela, digite o seguinte comando:
bq --location=location query \ --external_table_definition=table::definition_file \ 'query'
Em que:
- location é o nome do seu local.
A sinalização
--location
é opcional. Por exemplo, se você estiver usando o BigQuery na região de Tóquio, defina o valor da sinalização comoasia-northeast1
. É possível definir um valor padrão para o local usando o arquivo .bigqueryrc; - table é o nome da tabela temporária que você está criando;
- definition_file é o caminho do arquivo de definição de tabela na sua máquina local;
- query é a consulta que você está enviando para a tabela temporária.
Por exemplo, o comando a seguir cria e consulta uma tabela temporária
chamada sales
usando um arquivo de definição de tabela chamado sales_def
.
bq query \
--external_table_definition=sales::sales_def \
'SELECT
Region,
Total_sales
FROM
sales'
Para consultar uma tabela temporária vinculada à sua fonte de dados externa usando uma definição de esquema in-line, digite o seguinte comando.
bq --location=location query \ --external_table_definition=table::schema@source_format=Cloud Storage URI \ 'query'
Em que:
- location é o nome do seu local.
A sinalização
--location
é opcional. Por exemplo, se você estiver usando o BigQuery na região de Tóquio, defina o valor da sinalização comoasia-northeast1
. É possível definir um valor padrão para o local usando o arquivo .bigqueryrc; - table é o nome da tabela temporária que você está criando;
- schema é a definição de esquema in-line no formato
field:data_type,field:data_type
. - source_format é o formato da fonte de dados externa, por exemplo,
CSV
. - Cloud Storage URI é seu URI do Cloud Storage;
- query é a consulta que você está enviando para a tabela temporária.
Por exemplo, o comando a seguir cria e consulta uma tabela temporária
chamada sales
vinculada a um arquivo CSV armazenado no Cloud Storage com a
seguinte definição de esquema:
Region:STRING,Quarter:STRING,Total_sales:INTEGER
.
bq query \
--external_table_definition=sales::Region:STRING,Quarter:STRING,Total_sales:INTEGER@CSV=gs://mybucket/sales.csv \
'SELECT
Region,
Total_sales
FROM
sales'
Para consultar uma tabela temporária vinculada à sua fonte de dados externa usando um arquivo de esquema JSON, digite o seguinte comando:
bq --location=location query \ --external_table_definition=schema_file@source_format=Cloud Storage URI \ 'query'
Em que:
- location é o nome do seu local.
A sinalização
--location
é opcional. Por exemplo, se você estiver usando o BigQuery na região de Tóquio, defina o valor da sinalização comoasia-northeast1
. É possível definir um valor padrão para o local usando o arquivo .bigqueryrc; - schema_file é o caminho para o arquivo de esquema JSON na sua máquina local.
- source_format é o formato da fonte de dados externa, por exemplo,
CSV
. - Cloud Storage URI é seu URI do Cloud Storage;
- query é a consulta que você está enviando para a tabela temporária.
Por exemplo, o comando a seguir cria e consulta uma tabela temporária
chamada sales
vinculada a um arquivo CSV armazenado no Cloud Storage usando o
arquivo de esquema /tmp/sales_schema.json
.
bq query \ --external_table_definition=sales::/tmp/sales_schema.json@CSV=gs://mybucket/sales.csv \ 'SELECT Region, Total_sales FROM sales'
API
Crie uma configuração de job de consulta. Consulte Como consultar dados para informações sobre como chamar
jobs.query
ejobs.insert
.Especifique a fonte de dados externa criando um
ExternalDataConfiguration
.
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.
Node.js
Antes de testar esta amostra, siga as instruções de configuração do Node.js 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 Node.js.
Python
Antes de testar esta amostra, siga as instruções de configuração para Python 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 Python.
Como consultar dados particionados externamente
Consulte as instruções para consultar dados do Cloud Storage particionados externamente.
Compatibilidade com caracteres curinga em URIs do Cloud Storage
Se os dados do Cloud Storage estiverem separados em vários arquivos que compartilham um nome de base comum, é possível usar um caractere curinga no URI no arquivo de definição de tabela. Você também pode usar um caractere curinga ao criar uma tabela externa sem usar um arquivo de definição de tabela.
Para adicionar um caractere curinga ao URI do Cloud Storage, adicione um asterisco (*
) ao nome de base.
Exemplos:
O seguinte URI curinga seleciona todos os arquivos em todas as pastas que começam com o prefixo
gs://mybucket/fed-samples/fed-sample
:gs://mybucket/fed-samples/fed-sample*
O URI com o seguinte caractere curinga seleciona apenas arquivos com uma extensão
.csv
na pasta chamadafed-samples
e quaisquer subpastas defed-samples
:gs://mybucket/fed-samples/fed-sample/*.csv
O URI com o caractere curinga a seguir seleciona arquivos com um padrão de nomenclatura de
fed-sample*.csv
na pasta chamadafed-samples
. Este exemplo não seleciona arquivos em subpastas defed-samples
.gs://mybucket/fed-samples/fed-sample*.csv
Ao usar a ferramenta de linha de comando bq
, talvez seja necessário evitar o asterisco em algumas plataformas.
Só é possível usar um caractere curinga para objetos (nomes de arquivos) no intervalo. O caractere curinga pode ser exibido dentro ou no final do nome do objeto.
Não é possível incluir um caractere curinga ao nome do bucket. Vários caracteres curinga não
são compatíveis com o URI de origem. Por exemplo, o caminho
gs://mybucket/fed-*/temp/*.csv
não é válido.
Nas exportações do Google Datastore, só é possível especificar um URI, que precisa terminar com .backup_info
ou .export_metadata
.
O caractere curinga de asterisco não é permitido quando você faz o seguinte:
- criar tabelas externas vinculadas a exportações do Datastore ou do Firestore.
- carrega dados de exportação do Datastore ou do Firestore a partir do Cloud Storage.
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 que fazem referência a dados externos armazenados no Cloud Storage e no Google Drive.
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. A consulta de exemplo abaixo 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"'
Em que:
- project_id é um ID de projeto válido (essa sinalização não é necessária se você usa o Cloud Shell ou configurou um projeto padrão no SDK do 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
aplicam-se para criar predicados de consulta com a pseudocoluna _FILE_NAME
.