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:
- Le query sul
INFORMATION_SCHEMApossono essere utilizzate in una transazione di sola lettura, ma non in una transazione di lettura/scrittura. - Le query sul
INFORMATION_SCHEMApossono utilizzare limiti di obsolescenza rigidi, delimitati o esatti timestamp. - Se utilizzi un database di dialetti PostgreSQL, consulta Schema delle informazioni per i database di dialetti PostgreSQL.
- Se utilizzi il controllo dell'accesso granulare,
le tabelle
INFORMATION_SCHEMAvengono filtrate in modo da mostrare solo gli elementi dello schema a cui hai accesso.
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_partitiondefault_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:
|
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,UPDATEoDELETEvengono concessi nella tabella al ruolo di database corrente, ai ruoli di cui il ruolo di database corrente è membro o apublic. - I privilegi
SELECT,INSERToUPDATEvengono concessi a qualsiasi colonna della tabella al ruolo di database corrente, ai ruoli di cui il ruolo di database corrente è membro o apublic.
| 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:
|
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:
|
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).
|