Visualizzazione SEARCH_INDEX_COLUMN_OPTIONS

La visualizzazione INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS contiene una riga per ogni opzione impostata su una colonna indicizzata per la ricerca nelle tabelle di un set di dati.

Autorizzazioni obbligatorie

Per visualizzare i metadati dell'indice di ricerca, devi disporre dell'autorizzazione IAM (Identity and Access Management) bigquery.tables.get o bigquery.tables.list per la tabella con l'indice. Ciascuno dei seguenti ruoli IAM predefiniti include almeno una di queste autorizzazioni:

  • roles/bigquery.admin
  • roles/bigquery.dataEditor
  • roles/bigquery.dataOwner
  • roles/bigquery.dataViewer
  • roles/bigquery.metadataViewer
  • roles/bigquery.user

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

Schema

Quando esegui una query sulla visualizzazione INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS, i risultati della query contengono una riga per ogni opzione impostata in una colonna indicizzata per la ricerca nelle tabelle di un set di dati.

La vista INFORMATION_SCHEMA.SEARCH_INDEX_OPTIONS ha lo schema seguente:

Nome colonna Tipo di dati Valore
index_catalog STRING Il nome del progetto che contiene il set di dati.
index_schema STRING Il nome del set di dati contenente l'indice.
table_name STRING Il nome della tabella di base su cui viene creato l'indice.
index_name STRING Il nome dell'indice.
column_name STRING Il nome della colonna indicizzata su cui è impostata l'opzione.
option_name STRING Il nome dell'opzione specificata nella colonna.
option_type STRING Il tipo di opzione.
option_value STRING Il valore dell'opzione.

Ambito e sintassi

Le query su questa vista devono avere un qualificatore del set di dati. La tabella seguente illustra l'ambito della regione per questa visualizzazione:

Visualizza nome Ambito risorsa Ambito regione
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS A livello di set di dati Posizione del set di dati
Sostituisci quanto segue:
  • (Facoltativo) PROJECT_ID: l'ID del tuo progetto Google Cloud. Se non specificato, viene utilizzato il progetto predefinito.
  • DATASET_ID: l'ID del set di dati. Per ulteriori informazioni, consulta Qualificatore del set di dati.

Esempio

-- Returns metadata for search index column options in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS;

Esempio

L'esempio seguente imposta la granularità predefinita della colonna dell'indice su COLUMN e imposta singolarmente la granularità per col2 e col3 su GLOBAL e COLUMN, rispettivamente. In questo esempio, le colonne col2 e col3 vengono visualizzate nei risultati perché la loro granularità è impostata in modo esplicito. La granularità per la colonna col1 non viene mostrata perché utilizza la granularità predefinita.

CREATE SEARCH INDEX index1 ON `mydataset.table1` (
  ALL COLUMNS WITH COLUMN OPTIONS (
    col2 OPTIONS(index_granularity = 'GLOBAL'),
    col3 OPTIONS(index_granularity = 'COLUMN')
  )
)
OPTIONS(
  default_index_column_granularity = 'COLUMN'
);

SELECT
  index_column_name, option_name, option_type, option_value
FROM
  mydataset.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS
WHERE
  index_schema = 'mydataset' AND index_name = 'index1' AND table_name = 'table1';

Il risultato è simile al seguente:

+-------------+-------------------+---------------+--------------+
| column_name |  option_name      | option_type   | option_value |
+-------------+-------------------+---------------+--------------+
| col2        | index_granularity | STRING        | GLOBAL       |
| col3        | index_granularity | STRING        | COLUMN       |
+-------------+-------------------+---------------+--------------+

Il seguente esempio equivalente, che non utilizza ALL COLUMNS, imposta la granularità della colonna dell'indice predefinita su COLUMN e imposta singolarmente la granularità per due colonne su GLOBAL e COLUMN rispettivamente:

CREATE SEARCH INDEX index1 ON `mydataset.table1` (
  col1,
  col2 OPTIONS(index_granularity = 'GLOBAL'),
  col3 OPTIONS(index_granularity = 'COLUMN')
)
OPTIONS(
  default_index_column_granularity = 'COLUMN'
);

SELECT
  index_column_name, option_name, option_type, option_value
FROM
  mydataset.INFORMATION_SCHEMA.SEARCH_INDEX_COLUMN_OPTIONS
WHERE
  index_schema = 'mydataset' AND index_name = 'index1' AND table_name = 'table1';

Il risultato è simile al seguente:

+-------------+-------------------+---------------+--------------+
| column_name |  option_name      | option_type   | option_value |
+-------------+-------------------+---------------+--------------+
| col2        | index_granularity | STRING        | GLOBAL       |
| col3        | index_granularity | STRING        | COLUMN       |
+-------------+-------------------+---------------+--------------+