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.
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_STATUS_UNSPECIFIED
  • ACTIVE: a replicação está ativa sem erros
  • SOURCE_DELETED: a visualização materializada de origem foi excluída.
  • PERMISSION_DENIED: a visualização materializada da origem não foi autorizada no conjunto de dados que contém as tabelas de origem do BigLake do Amazon S3 usadas na consulta que criou a visualização materializada.
  • UNSUPPORTED_CONFIGURATION: há um problema com os pré-requisitos da réplica, exceto a autorização de visualização materializada da origem.
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
Substitua:

  • Opcional: PROJECT_ID: o ID do seu projeto do Google Cloud. Se não for especificado, o projeto padrão será usado.

    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 BigQuery
    • myview1: 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", "")]                                                                                                                                                                                             |
    |                        | );                                                                                                                                                                                                                         |
    +------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+