Schema di informazioni per i database in dialetto GoogleSQL

Lo schema delle informazioni è uno schema integrato comune a ogni database Spanner. Puoi eseguire query SQL sulle tabelle in INFORMATION_SCHEMA per recuperare i metadati dello schema per un database.

Ad esempio, la seguente query recupera i nomi di tutte le tabelle definite dall'utente in un database:

  SELECT
    table_schema,
    table_name
  FROM
    information_schema.tables
  WHERE
    table_schema NOT IN ('information_schema', 'SPANNER_SYS')
    AND table_type = 'BASE TABLE'

Gli utenti con controllo dell'accesso granulare visualizzano risultati filtrati per alcune INFORMATION_SCHEMA tabelle a seconda del loro ruolo nel database. Per saperne di più, consulta Informazioni sul controllo dell'accesso granulare.

Utilizzo

Le tabelle INFORMATION_SCHEMA sono disponibili solo tramite interfacce SQL, ad esempio:

  • L'API executeQuery
  • Il comando gcloud spanner databases execute-sql
  • La pagina Spanner Studio di un database nella console Google Cloud

Altri metodi di lettura singola non supportano INFORMATION_SCHEMA.

Alcune note aggiuntive sull'utilizzo di INFORMATION_SCHEMA:

Filtro delle righe nelle tabelle information_schema

Le entità con autorizzazioni IAM a livello di database e le entità a cui è stato concesso l'accesso al ruolo di sistema spanner_info_reader (o ai membri di questo ruolo) possono visualizzare tutte le righe in tutte le tabelle information_schema. Per altri principal, per alcune tabelle, le righe vengono filtrate in base al ruolo del database corrente. Le descrizioni delle tabelle e delle visualizzazioni nelle sezioni seguenti indicano come viene applicato il filtro delle righe per ogni tabella e visualizzazione.

Tabelle in INFORMATION_SCHEMA

Le sezioni seguenti descrivono le tabelle in INFORMATION_SCHEMA per i database con dialetto GoogleSQL.

SCHEMATA

La tabella INFORMATION_SCHEMA.SCHEMATA elenca gli schemi nel database. Questi includono lo schema delle informazioni e gli schemi denominati, che contengono le tabelle che definisci.

Nome colonna Tipo Descrizione
CATALOG_NAME STRING Il nome del catalogo. Questa colonna esiste per la compatibilità con le tabelle dello schema informativo standard SQL. Questa colonna è sempre una stringa vuota.
SCHEMA_NAME STRING Il nome dello schema. Si tratta di un nome per gli schemi denominati o `` per lo schema predefinito.
PROTO_BUNDLE STRING Se il database contiene istruzioni proto bundle, questa colonna fornisce informazioni sul proto bundle utilizzato nello schema. Questa colonna è NULL se nel database non esiste alcun bundle proto.

DATABASE_OPTIONS

Questa tabella elenca le opzioni impostate nel database.

Nome colonna Tipo Descrizione
CATALOG_NAME STRING Il nome del catalogo. Sempre una stringa vuota.
SCHEMA_NAME STRING Il nome dello schema. Una stringa vuota se non ha nome.
OPTION_NAME STRING Il nome dell'opzione del database.
OPTION_TYPE STRING Il tipo di dati dell'opzione del database.
OPTION_VALUE STRING Il valore dell'opzione del database.

PLACEMENTS

Questa tabella elenca i posizionamenti nel database.

Nome colonna Tipo Descrizione
PLACEMENT_NAME STRING Il nome del posizionamento.
IS_DEFAULT BOOL Un valore booleano che indica se il posizionamento è quello predefinito.

PLACEMENT_OPTIONS

Per ogni posizionamento, questa tabella elenca le opzioni impostate nel posizionamento nella clausola OPTIONS dell'istruzione CREATE PLACEMENT.

I valori validi per OPTION_NAME includono:

  • instance_partition
  • default_leader
Nome colonna Tipo Descrizione
PLACEMENT_NAME STRING Il nome del posizionamento.
OPTION_NAME STRING Il nome dell'opzione di posizionamento.
OPTION_TYPE STRING Il tipo di dati dell'opzione di posizionamento. Per entrambe le opzioni, il valore è STRING(MAX).
OPTION_VALUE STRING Il valore dell'opzione di posizionamento. Per instance_partition, questo è il nome della partizione dell'istanza. Per default_leader, è il nome della regione leader predefinita.

LOCALITY_GROUP_OPTIONS

Per ogni gruppo di località, questa tabella elenca il nome e le opzioni impostate nel gruppo di località nella clausola OPTIONS dell'istruzione CREATE LOCALITY GROUP.

Nome colonna Tipo Descrizione
LOCALITY_GROUP_NAME STRING Il nome del gruppo di località.
OPTION_NAME STRING Il nome dell'opzione del gruppo di località. Le opzioni valide sono:
  • STORAGE: definisce il tipo di archiviazione per il gruppo di località.
  • SSD_TO_HDD_SPILL_TIMESPAN: definisce per quanto tempo i dati vengono archiviati nell'archiviazione SSD prima di essere spostati nell'archiviazione HDD.
OPTION_VALUE STRING Il valore dell'opzione del gruppo di località. Per STORAGE, questo valore è ssd o hdd. Per SSD_TO_HDD_SPILL_TIMESPAN, questo è il periodo di tempo in cui i dati devono essere archiviati su SSD prima di essere spostati nell'archiviazione HDD. Ad esempio, 10d è di 10 giorni. Il periodo di tempo minimo che puoi impostare è un'ora.

TABLES

Questa tabella filtrata per righe elenca le tabelle e le visualizzazioni nel database. Le entità con autorizzazioni IAM a livello di database e le entità a cui è stato concesso l'accesso al ruolo di sistema spanner_info_reader o ai membri di questo ruolo possono visualizzare tutte le righe in questa visualizzazione. Tutte le altre entità possono visualizzare solo le tabelle che soddisfano uno dei seguenti requisiti:

  • I privilegi di controllo dell'accesso granulare SELECT, INSERT, UPDATE o DELETE vengono concessi nella tabella al ruolo di database corrente, ai ruoli di cui il ruolo di database corrente è membro o a public.
  • I privilegi SELECT, INSERT o UPDATE vengono concessi a qualsiasi colonna della tabella al ruolo di database corrente, ai ruoli di cui il ruolo di database corrente è membro o a public.
Nome colonna Tipo Descrizione
TABLE_CATALOG STRING Non utilizzato. Sempre una stringa vuota.
TABLE_SCHEMA STRING Il nome dello schema della tabella. Il nome è vuoto per lo schema predefinito e contiene un valore per gli altri schemi. Questa colonna contiene sempre un valore.
TABLE_NAME STRING Il nome della tabella, della vista o del sinonimo.
TABLE_TYPE STRING Il tipo di tabella. Per le tabelle ha il valore BASE TABLE; per le viste ha il valore VIEW; per i sinonimi, ha il valore SYNONYM.
PARENT_TABLE_NAME STRING Il nome della tabella principale se questa tabella è interleaved e NULL altrimenti.
ON_DELETE_ACTION STRING Questa proprietà è impostata su CASCADE o NO ACTION per le tabelle interleaved e su NULL in caso contrario. Per ulteriori informazioni, consulta TABLE statements.
SPANNER_STATE STRING Una tabella può passare attraverso più stati durante la creazione, se sono coinvolte operazioni collettive. Ad esempio, quando la tabella viene creata con una chiave esterna che richiede il riempimento dei relativi indici. Gli stati possibili sono:
  • ADDING_FOREIGN_KEY: aggiunta delle chiavi esterne della tabella.
  • WAITING_FOR_COMMIT: Finalizzazione della modifica dello schema.
  • COMMITTED: La modifica dello schema per creare la tabella è stata confermata. Non puoi scrivere nella tabella finché la modifica non viene confermata.
INTERLEAVE_TYPE STRING Il testo dell'espressione che indica se esiste una relazione padre-figlio tra questa tabella e la tabella in cui è intercalata. I valori possibili sono:
  • IN: La tabella non ha una relazione padre-figlio. Una riga di questa tabella può esistere indipendentemente dall'esistenza della riga della tabella principale.
  • IN PARENT: La tabella ha una relazione padre-figlio. Una riga di questa tabella richiede l'esistenza della riga della tabella padre.
  • Una stringa vuota indica che questa tabella non ha relazioni di interleaving.
ROW_DELETION_POLICY_EXPRESSION STRING Il testo dell'espressione che definisce il criterio di eliminazione delle righe della tabella. Ad esempio, OLDER_THAN(CreatedAt, INTERVAL 1 DAY) o OLDER_THAN(ExpiredDate, INTERVAL 0 DAY).