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
|
|
|
---|---|---|
|
|
Uma descrição da tabela |
|
|
Se a atualização automática está ativada para uma vista materializada |
|
|
A hora em que esta tabela expira |
|
|
O nome descritivo da tabela |
|
|
O nome da chave do Cloud KMS usada para encriptar a tabela |
|
|
Uma matriz de STRUCT que representa as etiquetas na tabela |
|
|
A desatualização máxima da tabela configurada para inserções/atualizações de captura de dados de alterações (CDC) do BigQuery |
|
|
O tempo de vida predefinido, em dias, de todas as partições numa tabela particionada |
|
|
Com que frequência uma vista materializada é atualizada |
|
|
Se as consultas na tabela requerem um filtro de partição |
|
|
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 |
Se Aplica-se a dados CSV. |
allow_quoted_newlines |
Se Aplica-se a dados CSV. |
bigtable_options |
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
|
column_name_character_map |
Define o âmbito dos carateres de nomes de colunas suportados e o comportamento de processamento de carateres não suportados. A predefinição é
Os valores suportados incluem:
Aplica-se a dados CSV e Parquet. |
compression |
O tipo de compressão da origem de dados. Os valores suportados incluem:
Aplica-se a dados CSV e JSON. |
decimal_target_types |
Determina como converter um tipo Exemplo: |
description |
Uma descrição desta tabela. |
enable_list_inference |
Se Aplica-se a dados Parquet. |
enable_logical_types |
Se Aplica-se a dados Avro. |
encoding |
A codificação de carateres dos dados. Os valores suportados incluem:
Aplica-se a dados CSV. |
enum_as_string |
Se Aplica-se a dados Parquet. |
expiration_timestamp |
A hora em que esta tabela expira. Se não for especificado, a tabela não expira. Exemplo: |
field_delimiter |
O separador dos campos num ficheiro CSV. Aplica-se a dados CSV. |
format |
O formato dos dados externos.
Os valores suportados para
Os valores suportados para
O valor |
hive_partition_uri_prefix |
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: |
file_set_spec_type |
Especifica como interpretar os URIs de origem para tarefas de carregamento e tabelas externas. Os valores suportados incluem:
Por exemplo, se tiver um URI de origem de |
ignore_unknown_values |
Se Aplica-se a dados CSV e JSON. |
json_extension |
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: |
max_bad_records |
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 |
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
|
null_marker |
A string que representa os valores Aplica-se a dados CSV. |
null_markers |
A lista de strings que representam valores Não é possível usar esta opção com a opção Aplica-se a dados CSV. |
object_metadata |
Só é necessário quando cria uma tabela de objetos. Defina o valor desta opção como |
preserve_ascii_control_characters |
Se Aplica-se a dados CSV. |
projection_fields |
Uma lista de propriedades de entidades a carregar. Aplica-se aos dados do Datastore. |
quote |
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
Aplica-se a dados CSV. |
reference_file_schema_uri |
Ficheiro de referência facultado pelo utilizador com o esquema da tabela. Aplica-se a dados Parquet/ORC/AVRO. Exemplo: |
require_hive_partition_filter |
Se Aplica-se a dados Avro, CSV, JSON, Parquet e ORC. |
sheet_range |
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: |
skip_leading_rows |
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 |
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:
|
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 |
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 |
Elementos de formato
que definem como os valores DATE são formatados nos ficheiros de entrada (por exemplo, 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 |
Elementos de formato
que definem como os valores DATETIME são formatados nos ficheiros de entrada
(por exemplo, 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 |
Format elements
que definem como os valores TIME são formatados nos ficheiros de entrada (por exemplo, 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 |
Elementos de formato
que definem como os valores de TIMESTAMP são formatados nos ficheiros de entrada
(por exemplo, 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:
Uma matriz de URIs totalmente qualificados para as localizações de dados externos.
Cada URI pode conter um
asterisco ( Os exemplos seguintes mostram valores
Para tabelas do Bigtable:
O URI que identifica a tabela do Bigtable a usar como uma origem de dados. Só pode especificar um URI do Bigtable. Exemplo:
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 |
-
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" | +----------------+---------------+------------+-------------+-------------+--------------+