Visualização de TABLE_OPTIONS

A visualização INFORMATION_SCHEMA.TABLE_OPTIONS contém uma linha para cada opção, 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.TABLE_OPTIONS, 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.TABLE_OPTIONS contêm uma linha para cada opção, 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.TABLE_OPTIONS 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
OPTION_NAME STRING Um dos valores de nome na tabela opções.
OPTION_TYPE STRING Um dos valores de tipo de dados na tabela de opções.
OPTION_VALUE STRING Uma das opções de valor na tabela de opções.
Tabela de opções

OPTION_NAME

OPTION_TYPE

OPTION_VALUE

description

STRING

Uma descrição da tabela

enable_refresh

BOOL

Se a atualização automática está ativada para uma visualização materializada.

expiration_timestamp

TIMESTAMP

A hora em que esta tabela expira

friendly_name

STRING

O nome descritivo da tabela.

kms_key_name

STRING

O nome da chave do Cloud KMS usada para criptografar a tabela

labels

ARRAY<STRUCT<STRING, STRING>>

Uma matriz de STRUCTs que representam as identificações na tabela

partition_expiration_days

FLOAT64

A vida útil padrão, em dias, de todas as partições em uma tabela particionada

refresh_interval_minutes

FLOAT64

Com que frequência uma visualização materializada é atualizada

require_partition_filter

BOOL

Se as consultas na tabela exigem um filtro de partição

tags

ARRAY<STRUCT<STRING, STRING>>

Tags anexadas a uma tabela em uma sintaxe <key, value> com namespace. Para mais informações, consulte Tags e acesso condicional.

Em tabelas externas, as seguintes opções podem ser usadas:

Opções
allow_jagged_rows

BOOL

Se true, permita linhas que não têm colunas opcionais posteriores.

Aplica-se a dados CSV.

allow_quoted_newlines

BOOL

Se true, permita seções de dados entre aspas que contenham caracteres de nova linha no arquivo.

Aplica-se a dados CSV.

bigtable_options

STRING

Obrigatório apenas ao criar uma tabela externa do Bigtable.

Especifica o esquema da tabela externa do Bigtable no formato JSON.

Para conferir uma lista de opções de definição de tabela do Bigtable, consulte BigtableOptions na Referência da API REST.

column_name_character_map

STRING

Define o escopo dos caracteres de nome de coluna compatíveis e o comportamento de processamento desses caracteres. A configuração padrão é STRICT, o que significa que os caracteres sem suporte causam erros no BigQuery. V1 e V2 substituem os caracteres não aceitos por sublinhados.

Os valores aceitos são:

  • STRICT. Ativa nomes de colunas flexíveis. Esse é o valor padrão. Os jobs de carregamento com caracteres incompatíveis nos nomes de colunas apresentam falha com uma mensagem de erro. Para configurar a substituição de caracteres sem suporte por sublinhados para que o job de carregamento seja bem-sucedido, especifique a configuração default_column_name_character_map.
  • V1 Os nomes das colunas podem conter apenas caracteres padrão de nome de coluna. Os caracteres não aceitos são substituídos por sublinhados. Esse é o comportamento padrão para tabelas criadas antes da introdução de column_name_character_map.
  • V2. Além dos caracteres padrão de nome de coluna, ele também oferece suporte a nomes de colunas flexíveis. Os caracteres não aceitos são substituídos por sublinhados.
  • Aplica-se a dados CSV e Parquet.

compression

STRING

O tipo de compactação da fonte de dados. Os valores aceitos são: GZIP. Se não for especificada, a fonte de dados será descompactada.

Aplica-se a dados CSV e JSON.

decimal_target_types

ARRAY<STRING>

Determina como converter um tipo Decimal. Equivalente a ExternalDataConfiguration.decimal_target_types

Exemplo: ["NUMERIC", "BIGNUMERIC"].

description

STRING

Uma descrição da tabela.

enable_list_inference

BOOL

Se true, use a inferência de esquema especificamente para o tipo lógico Parquet LIST.

Aplicável a dados Parquet.

enable_logical_types

BOOL

Se true, converta tipos lógicos Avro nos tipos SQL correspondentes. Para mais informações, consulte Tipos lógicos.

Aplica-se a dados Avro.

encoding

STRING

A codificação de caracteres dos dados. Os valores aceitos incluem: UTF8 (ou UTF-8), ISO_8859_1 (ou ISO-8859-1).

Aplica-se a dados CSV.

enum_as_string

BOOL

Se true, inferir o tipo lógico Parquet ENUM como STRING em vez de BYTES por padrão.

Aplicável a dados Parquet.

expiration_timestamp

TIMESTAMP

A hora em que esta tabela expira. Se não for especificado, a tabela não expirará.

Exemplo: "2025-01-01 00:00:00 UTC".

field_delimiter

STRING

O separador de campos em um arquivo CSV.

Aplica-se a dados CSV.

format

STRING

O formato dos dados externos. Os valores compatíveis para CREATE EXTERNAL TABLE incluem: AVRO, CLOUD_BIGTABLE, CSV, DATASTORE_BACKUP, DELTA_LAKE (pré-lançamento), GOOGLE_SHEETS, NEWLINE_DELIMITED_JSON (ou JSON), ORC, PARQUET.

Os valores compatíveis para LOAD DATA incluem: AVRO, CSV, DELTA_LAKE (pré-lançamento ), NEWLINE_DELIMITED_JSON (ou JSON)ORC, PARQUET.

O valor JSON é equivalente a NEWLINE_DELIMITED_JSON.

hive_partition_uri_prefix

STRING

Um prefixo comum para todos os URIs de origem antes do início da codificação da chave de partição. Aplica-se apenas a tabelas externas particionadas pelo Hive.

Aplica-se aos dados Avro, CSV, JSON, Parquet e ORC.

Exemplo: "gs://bucket/path".

file_set_spec_type

STRING

Especifica como interpretar URIs de origem para jobs de carregamento e tabelas externas.

Os valores aceitos são:

  • FILE_SYSTEM_MATCH. Expande URIs de origem listando arquivos do armazenamento de objetos. Esse é o comportamento padrão se FileSetSpecType não estiver definido.
  • NEW_LINE_DELIMITED_MANIFEST. Indica que os URIs fornecidos são arquivos de manifesto delimitados por nova linha, com um URI por linha. Os arquivos de manifesto não aceitam URIs com caracteres curinga, e todos os arquivos de dados referenciados precisam estar no mesmo bucket que o arquivo de manifesto.

Por exemplo, se você tiver um URI de origem de "gs://bucket/path/file" e file_set_spec_type for FILE_SYSTEM_MATCH, o arquivo será usado diretamente como um arquivo de dados. Se file_set_spec_type for NEW_LINE_DELIMITED_MANIFEST, cada linha no arquivo será interpretada como um URI que aponta para um arquivo de dados.

ignore_unknown_values

BOOL

Se for true, ignora valores extras que não estejam representados no esquema da tabela, sem retornar um erro.

Aplica-se a dados CSV e JSON.

json_extension

STRING

Para dados JSON, indica um determinado formato de intercâmbio JSON. Se não for especificado, o BigQuery lerá os dados como registros JSON genéricos.

Os valores aceitos são:
GEOJSON. Dados GeoJSON delimitados por nova linha. Para mais informações, consulte Como criar uma tabela externa a partir de um arquivo GeoJSON delimitado por nova linha.

max_bad_records

INT64

O número máximo de registros corrompidos a serem ignorados durante a leitura dos dados.

Aplica-se a: dados CSV, JSON e Planilhas Google.

max_staleness

INTERVAL

Aplicável a tabelas do BigLake e tabelas de objetos.

Especifica se os metadados em cache são usados pelas operações na tabela e quando eles precisam ser atualizados para que a operação possa usá-los.

Para desativar o armazenamento em cache de metadados, especifique 0. Esse é o padrão.

Para ativar o armazenamento em cache de metadados, especifique um valor de literal de intervalo entre 30 minutos e 7 dias. Por exemplo, especifique INTERVAL 4 HOUR para um intervalo de inatividade de 4 horas. Com esse valor, as operações na tabela usarão metadados em cache se tiverem sido atualizados nas últimas 4 horas. Se os metadados armazenados em cache forem mais antigos que isso, a operação retornará aos metadados do Cloud Storage.

null_marker

STRING

A string que representa os valores NULL em um arquivo CSV.

Aplica-se a dados CSV.

object_metadata

STRING

Obrigatório apenas ao criar uma tabela de objetos.

Defina o valor dessa opção como SIMPLE ao criar uma tabela de objetos.

preserve_ascii_control_characters

BOOL

Se true, os caracteres ASCII de controle incorporados que são os primeiros 32 caracteres na tabela ASCII, que variam de "\x00" a "\x1F", serão preservados.

Aplica-se a dados CSV.

projection_fields

STRING

Uma lista de propriedades da entidade a serem carregadas.

Aplica-se aos dados do Datastore.

quote

STRING

A string usada para citar seções de dados em um arquivo CSV. Se os dados contiverem caracteres de nova linha entre aspas, defina também a propriedade allow_quoted_newlines como true.

Aplica-se a dados CSV.

reference_file_schema_uri

STRING

Arquivo de referência fornecido pelo usuário com o esquema da tabela.

Aplicável aos dados Parquet/ORC/AVRO.

Exemplo: "gs://bucket/path/reference_schema_file.parquet".

require_hive_partition_filter

BOOL

Se true, todas as consultas nesta tabela exigem um filtro de partição que pode ser usado para eliminar partições ao ler dados. Aplica-se apenas a tabelas externas particionadas pelo Hive.

Aplica-se aos dados Avro, CSV, JSON, Parquet e ORC.

sheet_range

STRING

Intervalo de uma planilha do Planilhas Google a ser consultada.

Aplicável aos dados do Planilhas Google.

Exemplo: "sheet1!A1:B20",

skip_leading_rows

INT64

O número de linhas na parte superior de um arquivo a ser ignorado na leitura dos dados.

Aplicável aos dados CSV e Planilhas Google.

uris

Para tabelas externas, incluindo de objetos, que não sejam do Bigtable:

ARRAY<STRING>

Uma matriz de URIs totalmente qualificados para os locais de dados externos. Cada URI pode conter um caractere curinga de asterisco (*), que precisa vir depois do nome do bucket. Quando você especifica valores uris voltados para vários arquivos, todos eles precisam compartilhar um esquema compatível.

Os exemplos a seguir mostram valores uris válidos:

  • ['gs://bucket/path1/myfile.csv']
  • ['gs://bucket/path1/*.csv']
  • ['gs://bucket/path1/*', 'gs://bucket/path2/file00*']

Para tabelas do Bigtable:

STRING

O URI que identifica a tabela do Bigtable a ser usada como fonte de dados. Só é possível especificar um URI do Bigtable.

Exemplo: https://googleapis.com/bigtable/projects/project_id/instances/instance_id[/appProfiles/app_profile]/tables/table_name

Para mais informações sobre como criar um URI do Bigtable, consulte Extrair o URI do Bigtable.

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.TABLE_OPTIONS Nível do projeto REGION
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.TABLE_OPTIONS 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

    Exemplo 1:

    O exemplo a seguir recupera os prazos de validade da tabela padrão para todas as tabelas em mydataset no seu projeto padrão (myproject) consultando a visualização INFORMATION_SCHEMA.TABLE_OPTIONS.

    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.TABLE_OPTIONS.

      SELECT
        *
      FROM
        mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS
      WHERE
        option_name = 'expiration_timestamp';

    O resultado será semelhante ao seguinte:

      +----------------+---------------+------------+----------------------+-------------+--------------------------------------+
      | table_catalog  | table_schema  | table_name |     option_name      | option_type |             option_value             |
      +----------------+---------------+------------+----------------------+-------------+--------------------------------------+
      | myproject      | mydataset     | mytable1   | expiration_timestamp | TIMESTAMP   | TIMESTAMP "2020-01-16T21:12:28.000Z" |
      | myproject      | mydataset     | mytable2   | expiration_timestamp | TIMESTAMP   | TIMESTAMP "2021-01-01T21:12:28.000Z" |
      +----------------+---------------+------------+----------------------+-------------+--------------------------------------+
      

    Exemplo 2:

    O exemplo a seguir recupera os metadados sobre todas as tabelas em mydataset que contêm dados de teste. A consulta usa os valores da opção description para encontrar tabelas que contenham "teste" em qualquer parte da descrição. mydataset está no projeto padrão (myproject).

    Para executar a consulta em um projeto diferente do projeto 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.TABLE_OPTIONS).

      SELECT
        *
      FROM
        mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS
      WHERE
        option_name = 'description'
        AND option_value LIKE '%test%';

    O resultado será semelhante ao seguinte:

      +----------------+---------------+------------+-------------+-------------+--------------+
      | table_catalog  | table_schema  | table_name | option_name | option_type | option_value |
      +----------------+---------------+------------+-------------+-------------+--------------+
      | myproject      | mydataset     | mytable1   | description | STRING      | "test data"  |
      | myproject      | mydataset     | mytable2   | description | STRING      | "test data"  |
      +----------------+---------------+------------+-------------+-------------+--------------+