Visualização de TABLES
A visualização INFORMATION_SCHEMA.TABLES
contém uma linha para cada tabela ou visualização em
um conjunto de dados. As visualizações TABLES
e TABLE_OPTIONS
também contêm informações de alto nível sobre visualizações.
Para informações detalhadas, consulte a visualização INFORMATION_SCHEMA.VIEWS
.
Permissões necessárias
Para consultar a visualização INFORMATION_SCHEMA.TABLES
, você precisa das seguintes
permissões de gerenciamento de identidade e acesso (IAM, na sigla em inglês):
bigquery.tables.get
bigquery.tables.list
bigquery.routines.get
bigquery.routines.list
Cada um dos seguintes papéis predefinidos do IAM inclui as permissões anteriores:
roles/bigquery.admin
roles/bigquery.dataViewer
roles/bigquery.metadataViewer
Para mais informações sobre as permissões do BigQuery, consulte Controle de acesso com o IAM.
Esquema
Os resultados das consultas na visualização INFORMATION_SCHEMA.TABLES
contêm uma linha para cada tabela ou visualização do conjunto de dados. Para informações detalhadas sobre
visualizações, consulte a visualização
INFORMATION_SCHEMA.VIEWS
.
A visualização INFORMATION_SCHEMA.TABLES
tem o seguinte esquema:
Nome da coluna | Tipo de dados | Valor |
---|---|---|
table_catalog |
STRING |
O ID do projeto que contém o conjunto de dados. |
table_schema |
STRING |
O nome do conjunto de dados que contém a tabela ou visualização, também conhecido
como datasetId . |
table_name |
STRING |
O nome da tabela ou visualização, também conhecido como
tableId . |
table_type |
STRING |
O tipo de tabela, que pode ser:
|
is_insertable_into |
STRING |
YES ou NO dependendo da compatibilidade da tabela com as instruções DML INSERT |
is_typed |
STRING |
O valor sempre é NO . |
creation_time |
TIMESTAMP |
O horário de criação da tabela |
base_table_catalog |
STRING |
Para clones de tabelas
e snapshots de tabelas,
é o projeto da tabela base. Aplicável apenas a
tabelas com table_type definido como CLONE ou
SNAPSHOT .
|
base_table_schema |
STRING |
Para clones de tabelas
e snapshots de tabelas,
é o conjunto de dados da tabela base. Aplicável apenas a tabelas com
table_type definido como CLONE ou
SNAPSHOT . |
base_table_name |
STRING |
Para clones de tabelas
e snapshots de tabelas,
o nome da tabela base. Aplicável apenas a tabelas com
table_type definido como CLONE ou
SNAPSHOT . |
snapshot_time_ms |
TIMESTAMP |
Para clones de tabelas
e snapshots de tabelas,
a hora em que a operação do clone
ou do snapshot
foi executada na tabela base para criar essa tabela. Se a
viagem no tempo foi usada, esse
campo vai conter o carimbo de data/hora da viagem. Caso contrário, o
campo snapshot_time_ms será igual ao
campo creation_time . Aplicável apenas a
tabelas com table_type definido como CLONE ou
SNAPSHOT .
|
replica_source_catalog |
STRING |
Para réplicas de visualização materializadas, o projeto da visualização materializada base. |
replica_source_schema |
STRING |
Para réplicas de visualização materializadas, o conjunto de dados da visualização materializada base. |
replica_source_name |
STRING |
Para réplicas de visualização materializada, o nome da visualização materializada base. |
replication_status |
STRING |
Para
réplicas de visualização materializadas,
o status da replicação da visualização materializada base para a
réplica de visualização materializada. uma das seguintes opções:
|
replication_error |
STRING |
Se replication_status indicar um problema de replicação para uma
réplica de visualização materializada,
o replication_error fornecerá mais detalhes sobre o problema. |
ddl |
STRING |
A instrução DDL
que pode ser usada para recriar a tabela, como
CREATE TABLE
ou CREATE VIEW |
default_collation_name |
STRING |
Nome da especificação de compilação padrão, se houver. Caso contrário, NULL .
|
upsert_stream_apply_watermark |
TIMESTAMP |
Para tabelas que usam captura de dados alterados (CDC), a hora em que as modificações de linha foram aplicadas pela última vez. Para mais informações, consulte Monitorar o progresso da operação de inserção de tabelas. |
Escopo e sintaxe
As consultas nessa visualização precisam incluir um conjunto de dados ou um qualificador de região. Para consultas com um qualificador de conjunto de dados, é preciso ter permissões para o conjunto de dados. Para consultas com um qualificador de região, é preciso ter permissões para o projeto. Para mais informações, consulte Sintaxe. A tabela a seguir explica os escopos de região e recurso dessa visualização:
Nome da visualização | Escopo do recurso | Escopo da região |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.TABLES |
Nível do projeto | REGION |
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.TABLES |
Nível do conjunto de dados | Local do conjunto de dados |
- Opcional:
PROJECT_ID
: o ID do seu projeto do Google Cloud. Se não for especificado, o projeto padrão será usado. REGION
: qualquer nome da região do conjunto de dados. Por exemplo,region-us
.DATASET_ID
: ID do conjunto de dados. Para mais informações, consulte Qualificador de conjunto de dados.
Exemplo
-- Returns metadata for tables in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.TABLES;
Examples
Exemplo 1:
O exemplo a seguir recupera metadados de tabela para todas as tabelas no
conjunto de dados chamado mydataset
. Os metadados
retornados são para todos os tipos de tabelas em mydataset
no projeto padrão.
mydataset
contém as seguintes tabelas:
mytable1
: uma tabela padrão do BigQuerymyview1
: uma visualização do BigQuery
Para executar a consulta em um projeto diferente do padrão, adicione o ID do projeto ao conjunto de dados no seguinte formato: `project_id`.dataset.INFORMATION_SCHEMA.view
; por exemplo, `myproject`.mydataset.INFORMATION_SCHEMA.TABLES
.
SELECT table_catalog, table_schema, table_name, table_type, is_insertable_into, creation_time, ddl FROM mydataset.INFORMATION_SCHEMA.TABLES;
O resultado será semelhante ao seguinte. Para facilitar a leitura, algumas colunas são excluídas do resultado.
+----------------+---------------+----------------+------------+--------------------+---------------------+---------------------------------------------+ | table_catalog | table_schema | table_name | table_type | is_insertable_into | creation_time | ddl | +----------------+---------------+----------------+------------+--------------------+---------------------+---------------------------------------------+ | myproject | mydataset | mytable1 | BASE TABLE | YES | 2018-10-29 20:34:44 | CREATE TABLE `myproject.mydataset.mytable1` | | | | | | | | ( | | | | | | | | id INT64 | | | | | | | | ); | | myproject | mydataset | myview1 | VIEW | NO | 2018-12-29 00:19:20 | CREATE VIEW `myproject.mydataset.myview1` | | | | | | | | AS SELECT 100 as id; | +----------------+---------------+----------------+------------+--------------------+---------------------+---------------------------------------------+
Exemplo 2:
O exemplo a seguir recupera metadados de todas as tabelas do tipo CLONE
ou SNAPSHOT
da visualização INFORMATION_SCHEMA.TABLES
. Os metadados retornados
são para tabelas em mydataset
no projeto padrão.
Para executar a consulta em um projeto diferente do padrão, adicione o ID do projeto ao conjunto de dados no seguinte formato: `project_id`.dataset.INFORMATION_SCHEMA.view
; por exemplo, `myproject`.mydataset.INFORMATION_SCHEMA.TABLES
.
SELECT table_name, table_type, base_table_catalog, base_table_schema, base_table_name, snapshot_time_ms FROM mydataset.INFORMATION_SCHEMA.TABLES WHERE table_type = 'CLONE' OR table_type = 'SNAPSHOT';
O resultado será semelhante ao seguinte. Para facilitar a leitura, algumas colunas são excluídas do resultado.
+--------------+------------+--------------------+-------------------+-----------------+---------------------+ | table_name | table_type | base_table_catalog | base_table_schema | base_table_name | snapshot_time_ms | +--------------+------------+--------------------+-------------------+-----------------+---------------------+ | items_clone | CLONE | myproject | mydataset | items | 2018-10-31 22:40:05 | | orders_bk | SNAPSHOT | myproject | mydataset | orders | 2018-11-01 08:22:39 | +--------------+------------+--------------------+-------------------+-----------------+---------------------+
Exemplo 3:
O exemplo a seguir recupera colunas table_name
e ddl
da visualização INFORMATION_SCHEMA.TABLES
para a tabela population_by_zip_2010
no
conjunto de dados
census_bureau_usa
. Esse conjunto de dados faz parte do
programa de conjunto de dados públicos do BigQuery.
Como a tabela que você está consultando está em outro projeto, adicione o ID do projeto ao conjunto de dados no
seguinte formato:
`project_id`.dataset.INFORMATION_SCHEMA.view
.
Neste exemplo, o valor é
`bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.TABLES
.
SELECT table_name, ddl FROM `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.TABLES WHERE table_name = 'population_by_zip_2010';
O resultado será semelhante ao seguinte:
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | table_name | ddl | +------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | population_by_zip_2010 | CREATE TABLE `bigquery-public-data.census_bureau_usa.population_by_zip_2010` | | | ( | | | geo_id STRING OPTIONS(description="Geo code"), | | | zipcode STRING NOT NULL OPTIONS(description="Five digit ZIP Code Tabulation Area Census Code"), | | | population INT64 OPTIONS(description="The total count of the population for this segment."), | | | minimum_age INT64 OPTIONS(description="The minimum age in the age range. If null, this indicates the row as a total for male, female, or overall population."), | | | maximum_age INT64 OPTIONS(description="The maximum age in the age range. If null, this indicates the row as having no maximum (such as 85 and over) or the row is a total of the male, female, or overall population."), | | | gender STRING OPTIONS(description="male or female. If empty, the row is a total population summary.") | | | ) | | | OPTIONS( | | | labels=[("freebqcovid", "")] | | | ); | +------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+