Vista TABLE_OPTIONS

A vista INFORMATION_SCHEMA.TABLE_OPTIONS contém uma linha para cada opção, para cada tabela ou vista num conjunto de dados. As visualizações TABLES e TABLE_OPTIONS também contêm informações de alto nível sobre as visualizações. Para obter informações detalhadas, consulte a vista INFORMATION_SCHEMA.VIEWS.

Autorizações necessárias

Para consultar a vista INFORMATION_SCHEMA.TABLE_OPTIONS, precisa das seguintes autorizações de gestão de identidade e de acesso (IAM):

  • bigquery.tables.get
  • bigquery.tables.list
  • bigquery.routines.get
  • bigquery.routines.list

Cada uma das seguintes funções de IAM predefinidas inclui as autorizações anteriores:

  • roles/bigquery.admin
  • roles/bigquery.dataViewer
  • roles/bigquery.metadataViewer

Para mais informações sobre as autorizações do BigQuery, consulte o artigo Controlo de acesso com a IAM.

Esquema

Quando consulta a vista INFORMATION_SCHEMA.TABLE_OPTIONS, os resultados da consulta contêm uma linha para cada opção, para cada tabela ou vista num conjunto de dados. Para ver informações detalhadas sobre as visualizações, consulte a vista INFORMATION_SCHEMA.VIEWS.

A vista 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 a vista também conhecido como datasetId
TABLE_NAME STRING O nome da tabela ou da vista também é conhecido como tableId
OPTION_NAME STRING Um dos valores de nome na tabela de opções
OPTION_TYPE STRING Um dos valores do 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 vista 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 encriptar a tabela

labels

ARRAY<STRUCT<STRING, STRING>>

Uma matriz de STRUCT que representa as etiquetas na tabela

max_staleness

INTERVAL

A desatualização máxima da tabela configurada para inserções/atualizações de captura de dados de alterações (CDC) do BigQuery

partition_expiration_days

FLOAT64

O tempo de vida predefinido, em dias, de todas as partições numa tabela particionada

refresh_interval_minutes

FLOAT64

Com que frequência uma vista materializada é atualizada

require_partition_filter

BOOL

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

tags

ARRAY<STRUCT<STRING, STRING>>

Etiquetas anexadas a uma tabela numa sintaxe <key, value> com espaço de nomes. Para mais informações, consulte o artigo Etiquetas e acesso condicional.

Para tabelas externas, são possíveis as seguintes opções:

Opções
allow_jagged_rows

BOOL

Se true, permita linhas com colunas opcionais finais em falta.

Aplica-se a dados CSV.

allow_quoted_newlines

BOOL

Se true, permita secções de dados entre aspas que contenham carateres de nova linha no ficheiro.

Aplica-se a dados CSV.

bigtable_options

STRING

Só é necessário quando cria uma tabela externa do Bigtable.

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

Para ver uma lista de opções de definição de tabelas do Bigtable, consulte BigtableOptions na referência da API REST.

column_name_character_map

STRING

Define o âmbito dos carateres de nomes de colunas suportados e o comportamento de processamento de carateres não suportados. A predefinição é STRICT, o que significa que os carateres não suportados fazem com que o BigQuery apresente erros. V1 e V2 substituem todos os carateres não suportados por sublinhados.

Os valores suportados incluem:

compression

STRING

O tipo de compressão da origem de dados. Os valores suportados incluem: GZIP. Se não for especificado, a origem de dados não é comprimida.

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 desta tabela.

enable_list_inference

BOOL

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

Aplica-se a dados Parquet.

enable_logical_types

BOOL

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

Aplica-se a dados Avro.

encoding

STRING

A codificação de carateres dos dados. Os valores suportados incluem: UTF8 (ou UTF-8), ISO_8859_1 (ou ISO-8859-1), UTF-16BE, UTF-16LE, UTF-32BE ou UTF-32LE. O valor predefinido é UTF-8.

Aplica-se a dados CSV.

enum_as_string

BOOL

Se true, infira o tipo lógico ENUM Parquet como STRING em vez de BYTES por predefinição.

Aplica-se a dados Parquet.

expiration_timestamp

TIMESTAMP

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

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

field_delimiter

STRING

O separador dos campos num ficheiro CSV.

Aplica-se a dados CSV.

format

STRING

O formato dos dados externos. Os valores suportados para CREATE EXTERNAL TABLE incluem: AVRO, CLOUD_BIGTABLE, CSV, DATASTORE_BACKUP, DELTA_LAKE (pré-visualização), GOOGLE_SHEETS, NEWLINE_DELIMITED_JSON (ou JSON), ORC e PARQUET.

Os valores suportados para LOAD DATA incluem: AVRO, CSV, DELTA_LAKE (pré-visualização) 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 por Hive.

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

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

file_set_spec_type

STRING

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

Os valores suportados incluem:

  • FILE_SYSTEM_MATCH. Expande os URIs de origem listando os ficheiros da loja de objetos. Este é o comportamento predefinido se FileSetSpecType não estiver definido.
  • NEW_LINE_DELIMITED_MANIFEST. Indica que os URIs fornecidos são ficheiros de manifesto delimitados por novas linhas, com um URI por linha. Os URIs com carateres universais não são suportados nos ficheiros de manifesto, e todos os ficheiros de dados referenciados têm de estar no mesmo contentor que o ficheiro de manifesto.

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

ignore_unknown_values

BOOL

Se true, ignore os valores adicionais que não estão representados no esquema da tabela, sem devolver um erro.

Aplica-se a dados CSV e JSON.

json_extension

STRING

Para dados JSON, indica um formato de intercâmbio JSON específico. Se não for especificado, o BigQuery lê os dados como registos JSON genéricos.

Os valores suportados incluem:
GEOJSON. Dados GeoJSON delimitados por Newline. Para mais informações, consulte Criar uma tabela externa a partir de um ficheiro GeoJSON delimitado por novas linhas.

max_bad_records

INT64

O número máximo de registos inválidos a ignorar ao ler os dados.

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

max_staleness

INTERVAL

Aplicável a tabelas BigLake e tabelas de objetos.

Especifica se as operações na tabela usam metadados em cache e qual a antiguidade máxima dos metadados em cache para que a operação os use.

Para desativar a colocação em cache de metadados, especifique 0. Esta é a predefinição.

Para ativar o armazenamento em cache de metadados, especifique um valor literal de intervalo entre 30 minutos e 7 dias. Por exemplo, especifique INTERVAL 4 HOUR para um intervalo de desatualização de 4 horas. Com este valor, as operações na tabela usam metadados em cache se tiverem sido atualizados nas últimas 4 horas. Se os metadados em cache forem mais antigos, a operação recorre à obtenção de metadados do Cloud Storage.

null_marker

STRING

A string que representa os valores NULL num ficheiro CSV.

Aplica-se a dados CSV.

null_markers

ARRAY<STRING>

(Pré-visualizar)

A lista de strings que representam valores NULL num ficheiro CSV.

Não é possível usar esta opção com a opção null_marker.

Aplica-se a dados CSV.

object_metadata

STRING

Só é necessário quando cria uma tabela de objetos.

Defina o valor desta opção como SIMPLE quando criar uma tabela de objetos.

preserve_ascii_control_characters

BOOL

Se true, os carateres de controlo ASCII incorporados que são os primeiros 32 carateres na tabela ASCII, variando de "\x00" a "\x1F", são preservados.

Aplica-se a dados CSV.

projection_fields

STRING

Uma lista de propriedades de entidades a carregar.

Aplica-se aos dados do Datastore.

quote

STRING

A string usada para colocar entre aspas secções de dados num ficheiro CSV. Se os seus dados contiverem carateres 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

Ficheiro de referência facultado pelo utilizador com o esquema da tabela.

Aplica-se a dados Parquet/ORC/AVRO.

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

require_hive_partition_filter

BOOL

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

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

sheet_range

STRING

Intervalo de uma folha de cálculo do Google Sheets a partir do qual fazer a consulta.

Aplica-se aos dados do Google Sheets.

Exemplo: "sheet1!A1:B20",

skip_leading_rows

INT64

O número de linhas na parte superior de um ficheiro a ignorar ao ler os dados.

Aplica-se a dados CSV e do Google Sheets.

source_column_match

STRING

(Pré-visualizar)

Isto controla a estratégia usada para fazer corresponder as colunas carregadas ao esquema.

Se este valor não for especificado, a predefinição baseia-se na forma como o esquema é fornecido. Se a deteção automática estiver ativada, o comportamento predefinido é fazer a correspondência das colunas por nome. Caso contrário, a predefinição é fazer a correspondência das colunas por posição. Isto é feito para manter o comportamento retrocompatível.

Os valores suportados incluem:

  • POSITION: correspondências por posição. Esta opção pressupõe que as colunas estão ordenadas da mesma forma que o esquema.
  • NAME: corresponde por nome. Esta opção lê a linha de cabeçalho como nomes de colunas e reordena as colunas para corresponder aos nomes dos campos no esquema. Os nomes das colunas são lidos a partir da última linha ignorada com base na propriedade skip_leading_rows.
tags <ARRAY<STRUCT<STRING, STRING>>>

Uma matriz de etiquetas de IAM para a tabela, expressa como pares de chave-valor. A chave deve ser o nome da chave com espaço de nomes, e o valor deve ser o nome abreviado.

time_zone

STRING

(Pré-visualizar)

Fuso horário predefinido que é aplicado ao analisar valores de data/hora que não têm um fuso horário específico.

Verifique os nomes de fusos horários válidos.

Se este valor não estiver presente, os valores de data/hora sem um fuso horário específico são analisados através do fuso horário predefinido UTC.

Aplica-se a dados CSV e JSON.

date_format

STRING

(Pré-visualizar)

Elementos de formato que definem como os valores DATE são formatados nos ficheiros de entrada (por exemplo, MM/DD/YYYY).

Se este valor estiver presente, este formato é o único formato DATE compatível. A deteção automática de esquemas também decide o tipo de coluna DATE com base neste formato, em vez do formato existente.

Se este valor não estiver presente, o campo DATE é analisado com os formatos predefinidos.

Aplica-se a dados CSV e JSON.

datetime_format

STRING

(Pré-visualizar)

Elementos de formato que definem como os valores DATETIME são formatados nos ficheiros de entrada (por exemplo, MM/DD/YYYY HH24:MI:SS.FF3).

Se este valor estiver presente, este formato é o único formato DATETIME compatível. A deteção automática do esquema também decide o tipo de coluna DATETIME com base neste formato, em vez do formato existente.

Se este valor não estiver presente, o campo DATETIME é analisado com os formatos predefinidos.

Aplica-se a dados CSV e JSON.

time_format

STRING

(Pré-visualizar)

Format elements que definem como os valores TIME são formatados nos ficheiros de entrada (por exemplo, HH24:MI:SS.FF3).

Se este valor estiver presente, este formato é o único formato TIME compatível. A deteção automática do esquema também decide o tipo de coluna TIME com base neste formato, em vez do formato existente.

Se este valor não estiver presente, o campo TIME é analisado com os formatos predefinidos.

Aplica-se a dados CSV e JSON.

timestamp_format

STRING

(Pré-visualizar)

Elementos de formato que definem como os valores de TIMESTAMP são formatados nos ficheiros de entrada (por exemplo, MM/DD/YYYY HH24:MI:SS.FF3).

Se este valor estiver presente, este formato é o único formato de DATA/HORA compatível. A deteção automática do esquema também decide o tipo de coluna TIMESTAMP com base neste formato, em vez do formato existente.

Se este valor não estiver presente, o campo TIMESTAMP é analisado com os formatos predefinidos.

Aplica-se a dados CSV e JSON.

uris

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

ARRAY<STRING>

Uma matriz de URIs totalmente qualificados para as localizações de dados externos. Cada URI pode conter um asterisco (*) carácter universal, que tem de aparecer após o nome do contentor. Quando especifica uris valores que segmentam vários ficheiros, todos esses ficheiros têm de partilhar um esquema compatível.

Os exemplos seguintes 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 usar como uma origem de dados. Só pode 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 o artigo Obtenha o URI do Bigtable.

Âmbito e sintaxe

As consultas desta vista têm de incluir um conjunto de dados ou um qualificador de região. Para consultas com um qualificador de conjunto de dados, tem de ter autorizações para o conjunto de dados. Para consultas com um qualificador de região, tem de ter autorizações para o projeto. Para mais informações, consulte a secção Sintaxe. A tabela seguinte explica os âmbitos da região e dos recursos para esta vista:

Nome da visualização de propriedade Âmbito do recurso Âmbito 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 Localização do conjunto de dados
Substitua o seguinte:
  • Opcional: PROJECT_ID: o ID do seu projeto do Google Cloud Google Cloud. Se não for especificado, é usado o projeto predefinido.
  • REGION: qualquer nome da região do conjunto de dados. Por exemplo, `region-us`.
  • DATASET_ID: o ID do seu conjunto de dados. Para mais informações, consulte o artigo Qualificador de conjunto de dados.

Exemplo

Exemplo 1:

O exemplo seguinte obtém os tempos de expiração predefinidos das tabelas para todas as tabelas em mydataset no seu projeto predefinido (myproject) consultando a vista INFORMATION_SCHEMA.TABLE_OPTIONS.

Para executar a consulta num projeto que não seja o seu projeto predefinido, 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.

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

O resultado é 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 seguinte obtém metadados sobre todas as tabelas em mydataset que contêm dados de teste. A consulta usa os valores na opção description para encontrar tabelas que contenham "teste" em qualquer parte da descrição. mydataset está no seu projeto predefinido: myproject.

Para executar a consulta num projeto que não seja o projeto predefinido, 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 é 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"  |
  +----------------+---------------+------------+-------------+-------------+--------------+