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.getbigquery.tables.listbigquery.routines.getbigquery.routines.list
Cada um dos seguintes papéis predefinidos do IAM inclui as permissões anteriores:
roles/bigquery.adminroles/bigquery.dataViewerroles/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:
|
managed_table_type |
STRING |
Essa coluna está em pré-lançamento. O tipo de tabela gerenciada, que pode ser:
|
is_insertable_into |
STRING |
YES ou NO dependendo da compatibilidade da tabela com as instruções DML INSERT |
is_fine_grained_mutations_enabled |
STRING |
YES ou NO, dependendo de se as mutações DML refinadas estão ativadas na tabela.
|
is_typed |
STRING |
O valor sempre é NO. |
is_change_history_enabled |
STRING |
YES ou NO, dependendo se o
histórico de alterações
está ativado |
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", "")] |
| | ); |
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+