Visualizzazione TABLE_OPTIONS

La visualizzazione INFORMATION_SCHEMA.TABLE_OPTIONS contiene una riga per ogni opzione, per ogni tabella o visualizzazione in un set di dati. Le visualizzazioni TABLES e TABLE_OPTIONS contengono anche informazioni di alto livello sulle visualizzazioni. Per informazioni dettagliate, esegui una query sulla visualizzazione INFORMATION_SCHEMA.VIEWS.

Autorizzazioni obbligatorie

Per eseguire una query sulla visualizzazione INFORMATION_SCHEMA.TABLE_OPTIONS, devi disporre delle seguenti autorizzazioni Identity and Access Management (IAM):

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

Ognuno dei seguenti ruoli IAM predefiniti include le autorizzazioni precedenti:

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

Per ulteriori informazioni sulle autorizzazioni BigQuery, consulta Controllo dell'accesso con IAM.

Schema

Quando esegui una query sulla vista INFORMATION_SCHEMA.TABLE_OPTIONS, i risultati della query contengono una riga per ogni opzione, per ogni tabella o vista in un set di dati. Per informazioni dettagliate sulle visualizzazioni, esegui query sulla visualizzazione INFORMATION_SCHEMA.VIEWS invece.

La visualizzazione INFORMATION_SCHEMA.TABLE_OPTIONS ha lo schema seguente:

Nome colonna Tipo di dati Valore
TABLE_CATALOG STRING L'ID progetto del progetto contenente il set di dati
TABLE_SCHEMA STRING Il nome del set di dati che contiene la tabella o la vista a cui si fa riferimento anche come datasetId
TABLE_NAME STRING Il nome della tabella o della visualizzazione, indicato anche come tableId
OPTION_NAME STRING Uno dei valori del nome nella tabella delle opzioni
OPTION_TYPE STRING Uno dei valori del tipo di dati nella tabella delle opzioni
OPTION_VALUE STRING Una delle opzioni di valore nella tabella delle opzioni
Tabella delle opzioni

OPTION_NAME

OPTION_TYPE

OPTION_VALUE

description

STRING

Una descrizione della tabella

enable_refresh

BOOL

Se l'aggiornamento automatico è abilitato per una vista materializzata

expiration_timestamp

TIMESTAMP

L'ora in cui questa tabella scade

friendly_name

STRING

Il nome descrittivo della tabella

kms_key_name

STRING

Il nome della chiave Cloud KMS utilizzata per criptare la tabella

labels

ARRAY<STRUCT<STRING, STRING>>

Un array di STRUCT che rappresentano le etichette nella tabella

max_staleness

INTERVAL

Il livello massimo di obsolescenza della tabella configurata per BigQuery upsert di Change Data Capture (CDC)

partition_expiration_days

FLOAT64

La durata predefinita, in giorni, di tutte le partizioni in una tabella partizionata

refresh_interval_minutes

FLOAT64

La frequenza con cui viene aggiornata una vista materializzata

require_partition_filter

BOOL

Indica se le query sulla tabella richiedono un filtro di partizionamento.

tags

ARRAY<STRUCT<STRING, STRING>>

Tag collegati a una tabella in una sintassi <chiave, valore> con spazio dei nomi. Per ulteriori informazioni, consulta Tag e accesso condizionale.

Per le tabelle esterne, sono possibili le seguenti opzioni:

Opzioni
allow_jagged_rows

BOOL

Se true, consenti le righe che non hanno le colonne finali facoltative.

Si applica ai dati CSV.

allow_quoted_newlines

BOOL

Se true, consenti le sezioni di dati tra virgolette che contengono caratteri di fine riga nel file.

Si applica ai dati CSV.

bigtable_options

STRING

Obbligatorio solo durante la creazione di una tabella esterna Bigtable.

Specifica lo schema della tabella esterna Bigtable in formato JSON.

Per un elenco delle opzioni di definizione delle tabelle Bigtable, consulta BigtableOptions nel riferimento API REST.

column_name_character_map

STRING

Definisce l'ambito dei caratteri supportati per i nomi colonna e la modalità di gestione dei caratteri non supportati. L'impostazione predefinita è STRICT, il che significa che i caratteri non supportati causano errori in BigQuery. V1 e V2 sostituiscono i caratteri non supportati con trattini bassi.

I valori supportati includono:

compression

STRING

Il tipo di compressione dell'origine dati. I valori supportati includono: GZIP. Se non viene specificata, l'origine dati non viene compressa.

Si applica ai dati CSV e JSON.

decimal_target_types

ARRAY<STRING>

Determina come convertire un tipo Decimal. Equivalente a ExternalDataConfiguration.decimal_target_types

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

description

STRING

Una descrizione di questa tabella.

enable_list_inference

BOOL

Se true, utilizza l'inferenza dello schema specificamente per il tipo logico LIST di Parquet.

Si applica ai dati Parquet.

enable_logical_types

BOOL

Se true, converti i tipi logici Avro nei tipi SQL corrispondenti. Per saperne di più, consulta Tipi logici.

Si applica ai dati Avro.

encoding

STRING

La codifica dei caratteri dei dati. I valori supportati includono: UTF8 (o UTF-8), ISO_8859_1 (o ISO-8859-1), UTF-16BE, UTF-16LE, UTF-32BE o UTF-32LE. Il valore predefinito è UTF-8.

Si applica ai dati CSV.

enum_as_string

BOOL

Se true, deduci il tipo logico ENUM Parquet come STRING anziché BYTES per impostazione predefinita.

Si applica ai dati Parquet.

expiration_timestamp

TIMESTAMP

L'ora in cui questa tabella scade. Se non specificato, la tabella non scade.

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

field_delimiter

STRING

Il separatore dei campi in un file CSV.

Si applica ai dati CSV.

format

STRING

Il formato dei dati esterni. I valori supportati per CREATE EXTERNAL TABLE includono: AVRO, CLOUD_BIGTABLE, CSV, DATASTORE_BACKUP, DELTA_LAKE (anteprima), GOOGLE_SHEETS, NEWLINE_DELIMITED_JSON (o JSON), ORC, PARQUET.

Valori supportati per LOAD DATA includi: AVRO, CSV, DELTA_LAKE (anteprima) NEWLINE_DELIMITED_JSON (o JSON), ORC, PARQUET.

Il valore JSON è equivalente a NEWLINE_DELIMITED_JSON.

hive_partition_uri_prefix

STRING

Un prefisso comune per tutti gli URI di origine prima dell'inizio della codifica della chiave di partizione. Si applica solo alle tabelle esterne partizionate in Hive.

Si applica ai dati Avro, CSV, JSON, Parquet e ORC.

Esempio: "gs://bucket/path".

file_set_spec_type

STRING

Specifica come interpretare gli URI di origine per i job di caricamento e le tabelle esterne.

I valori supportati includono:

  • FILE_SYSTEM_MATCH. Espande gli URI di origine elencando i file dell'object store. Questo è il comportamento predefinito se FileSetSpecType non è impostato.
  • NEW_LINE_DELIMITED_MANIFEST. Indica che gli URI forniti sono file manifest delimitati da interruzioni di riga, con un URI per riga. Gli URI con caratteri jolly non sono supportati nei file manifest e tutti i file di dati a cui viene fatto riferimento devono trovarsi nello stesso bucket del file manifest.

Ad esempio, se hai un URI di origine "gs://bucket/path/file" e file_set_spec_type è FILE_SYSTEM_MATCH, il file viene utilizzato direttamente come file di dati. Se file_set_spec_type è NEW_LINE_DELIMITED_MANIFEST, ogni riga del file viene interpretata come un URI che punta a un file di dati.

ignore_unknown_values

BOOL

Se true, ignora i valori aggiuntivi non rappresentati nello schema della tabella, senza restituire un errore.

Si applica ai dati CSV e JSON.

json_extension

STRING

Per i dati JSON, indica un particolare formato di scambio JSON. Se non specificato, BigQuery legge i dati come record JSON generici.

I valori supportati includono:
GEOJSON. Dati GeoJSON delimitati da nuova riga. Per ulteriori informazioni, vedi Creare una tabella esterna da un file GeoJSON delimitato da nuova riga.

max_bad_records

INT64

Il numero massimo di record non validi da ignorare durante la lettura dei dati.

Si applica a: dati CSV, JSON e Fogli Google.

max_staleness

INTERVAL

Applicabile a tabelle BigLake e tabelle degli oggetti.

Specifica se i metadati memorizzati nella cache vengono utilizzati dalle operazioni sulla tabella e quanto devono essere aggiornati i metadati memorizzati nella cache affinché l'operazione possa utilizzarli.

Per disattivare la memorizzazione nella cache dei metadati, specifica 0. Questa è l'impostazione predefinita.

Per attivare la memorizzazione nella cache dei metadati, specifica un valore letterale di intervallo compreso tra 30 minuti e 7 giorni. Ad esempio, specifica INTERVAL 4 HOUR per un intervallo di obsolescenza di 4 ore. Con questo valore, le operazioni sulla tabella utilizzano i metadati memorizzati nella cache se sono stati aggiornati nelle ultime 4 ore. Se i metadati memorizzati nella cache sono più vecchi, l'operazione torna al recupero dei metadati da Cloud Storage.

null_marker

STRING

La stringa che rappresenta i valori NULL in un file CSV.

Si applica ai dati CSV.

object_metadata

STRING

Obbligatorio solo quando si crea una tabella degli oggetti.

Imposta il valore di questa opzione su SIMPLE quando crei una tabella degli oggetti.

preserve_ascii_control_characters

BOOL

Se true, i caratteri di controllo ASCII incorporati, ovvero i primi 32 caratteri della tabella ASCII, compresi tra '\x00' e '\x1F', vengono conservati.

Si applica ai dati CSV.

projection_fields

STRING

Un elenco di proprietà dell'entità da caricare.

Si applica ai dati Datastore.

quote

STRING

La stringa utilizzata per citare le sezioni di dati in un file CSV. Se i tuoi dati contengono caratteri di nuova riga tra virgolette, imposta anche la proprietà allow_quoted_newlines su true.

Si applica ai dati CSV.

reference_file_schema_uri

STRING

File di riferimento fornito dall'utente con lo schema della tabella.

Si applica ai dati Parquet/ORC/AVRO.

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

require_hive_partition_filter

BOOL

Se true, tutte le query su questa tabella richiedono un filtro di partizionamento che può essere utilizzato per eliminare le partizioni durante la lettura dei dati. Si applica solo alle tabelle esterne partizionate in Hive.

Si applica ai dati Avro, CSV, JSON, Parquet e ORC.

sheet_range

STRING

Intervallo di un foglio di lavoro Google Sheets da cui eseguire la query.

Si applica ai dati di Fogli Google.

Esempio: "sheet1!A1:B20",

skip_leading_rows

INT64

Il numero di righe nella parte superiore di un file da saltare durante la lettura dei dati.

Si applica ai dati CSV e Fogli Google.

tags <ARRAY<STRUCT<STRING, STRING>>>

Un array di tag IAM per la tabella, espressi come coppie chiave-valore. La chiave deve essere il nome della chiave con spazio dei nomi, e il valore deve essere il nome breve.

time_zone

STRING

(Anteprima)

Fuso orario predefinito che verrà applicato durante l'analisi dei valori timestamp che non hanno un fuso orario specifico.

Controlla i nomi dei fusi orari validi.

Se questo valore non è presente, i valori timestamp senza un fuso orario specifico vengono analizzati utilizzando il fuso orario UTC predefinito.

Si applica ai dati CSV e JSON.

date_format

STRING

(Anteprima)

Elementi di formato che definiscono come vengono formattati i valori DATE nei file di input (ad esempio, MM/DD/YYYY).

Se questo valore è presente, questo formato è l'unico formato DATE compatibile. La rilevamento automatico dello schema determinerà anche il tipo di colonna DATE in base a questo formato anziché a quello esistente.

Se questo valore non è presente, il campo DATE viene analizzato con i formati predefiniti.

Si applica ai dati CSV e JSON.

datetime_format

STRING

(Anteprima)

Elementi di formato che definiscono come vengono formattati i valori DATETIME nei file di input (ad esempio, MM/DD/YYYY HH24:MI:SS.FF3).

Se questo valore è presente, questo formato è l'unico DATETIME compatibile. Il rilevamento automatico dello schema determinerà anche il tipo di colonna DATETIME in base a questo formato anziché al formato esistente.

Se questo valore non è presente, il campo DATETIME viene analizzato con i formati predefiniti.

Si applica ai dati CSV e JSON.

time_format

STRING

(Anteprima)

Elementi di formato che definiscono come vengono formattati i valori TIME nei file di input (ad esempio, HH24:MI:SS.FF3).

Se questo valore è presente, questo formato è l'unico formato TIME compatibile. Il rilevamento automatico dello schema determinerà anche il tipo di colonna TIME in base a questo formato anziché a quello esistente.

Se questo valore non è presente, il campo TIME viene analizzato con i formati predefiniti.

Si applica ai dati CSV e JSON.

timestamp_format

STRING

(Anteprima)

Elementi di formato che definiscono come vengono formattati i valori TIMESTAMP nei file di input (ad esempio, MM/DD/YYYY HH24:MI:SS.FF3).

Se questo valore è presente, questo formato è l'unico formato TIMESTAMP compatibile. Il rilevamento automatico dello schema determinerà anche il tipo di colonna TIMESTAMP in base a questo formato anziché al formato esistente.

Se questo valore non è presente, il campo TIMESTAMP viene analizzato con i formati predefiniti.

Si applica ai dati CSV e JSON.

uris

Per le tabelle esterne, incluse le tabelle di oggetti, che non sono tabelle Bigtable:

ARRAY<STRING>

Un array di URI completi per le posizioni dei dati esterni. Ogni URI può contenere un asterisco (*) carattere jolly, che deve essere inserito dopo il nome del bucket. Quando specifichi valori uris che hanno come target più file, tutti questi file devono condividere uno schema compatibile.

I seguenti esempi mostrano valori uris validi:

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

Per le tabelle Bigtable:

STRING

L'URI che identifica la tabella Bigtable da utilizzare come origine dati. Puoi specificare un solo URI Bigtable.

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

Per ulteriori informazioni sulla creazione di un URI Bigtable, consulta Recuperare l'URI Bigtable.

Ambito e sintassi

Le query su questa vista devono includere un qualificatore di set di dati o regione. Per le query con un qualificatore del set di dati, devi disporre delle autorizzazioni per il set di dati. Per le query con un qualificatore di regione, devi disporre delle autorizzazioni per il progetto. Per saperne di più, consulta la sezione Sintassi. La tabella seguente spiega gli ambiti di regione e risorsa per questa visualizzazione:

Nome vista Ambito risorsa Ambito regione
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.TABLE_OPTIONS Livello progetto REGION
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.TABLE_OPTIONS Livello del set di dati Posizione del set di dati
Sostituisci quanto segue:
  • (Facoltativo) PROJECT_ID: l'ID del tuo Google Cloud progetto. Se non specificato, viene utilizzato il progetto predefinito.
  • REGION: qualsiasi nome della regione del set di dati. Ad esempio: `region-us`.
  • DATASET_ID: l'ID del tuo set di dati. Per maggiori informazioni, consulta Qualificatore del set di dati.

Esempio

Esempio 1:

L'esempio seguente recupera i tempi di scadenza predefiniti delle tabelle per tutte le tabelle in mydataset nel tuo progetto predefinito (myproject) eseguendo una query sulla visualizzazione INFORMATION_SCHEMA.TABLE_OPTIONS.

Per eseguire la query su un progetto diverso da quello predefinito, aggiungi l'ID progetto al set di dati nel seguente formato: `project_id`.dataset.INFORMATION_SCHEMA.view; ad esempio, `myproject`.mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS.

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

Il risultato è simile al seguente:

  +----------------+---------------+------------+----------------------+-------------+--------------------------------------+
  | 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" |
  +----------------+---------------+------------+----------------------+-------------+--------------------------------------+
  

Esempio 2:

L'esempio seguente recupera i metadati di tutte le tabelle in mydataset che contengono dati di test. La query utilizza i valori nell'opzione description per trovare tabelle che contengono "test" in qualsiasi punto della descrizione. mydataset si trova nel tuo progetto predefinito: myproject.

Per eseguire la query su un progetto diverso da quello predefinito, aggiungi l'ID progetto al set di dati nel seguente formato: `project_id`.dataset.INFORMATION_SCHEMA.view; ad esempio, `myproject`.mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS.

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

Il risultato è simile al seguente:

  +----------------+---------------+------------+-------------+-------------+--------------+
  | 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"  |
  +----------------+---------------+------------+-------------+-------------+--------------+