Tabelle e viste
Bigtable archivia i dati nelle tabelle e ti consente di creare viste specializzate, ovvero viste logiche, viste materializzate continue e viste autorizzate, delle tabelle. A seconda del caso d'uso, queste viste ti aiutano a semplificare i pattern di query SQL, precalcolare le aggregazioni e applicare controllo dell'accesso granulare.
Tabelle
Una tabella Bigtable è una mappa chiave/valore ordinata che archivia i dati in righe e colonne. Ogni riga è indicizzata da una singola chiave di riga univoca. Le colonne correlate tra loro sono generalmente raggruppate in una famiglia di colonne.
Bigtable ha un modello dei dati flessibile e le sue tabelle sono sparse. Ciò significa che se una colonna non viene utilizzata in una riga, non vengono memorizzati dati per la colonna. Non devi archiviare valori NULL per le colonne inutilizzate come faresti con un database relazionale. In una tabella Bigtable, una determinata riga potrebbe avere una colonna e la riga successiva 100 colonne.
In una riga, una colonna può contenere più celle, ciascuna identificata dalla quadrupla (chiave di riga, famiglia di colonne, qualificatore di colonna, timestamp). L'archiviazione di più celle in una colonna fornisce un record delle modifiche apportate ai dati archiviati per quella riga e colonna nel tempo.
Una tabella Bigtable non supporta i join e le transazioni sono supportate solo all'interno di una singola riga.
Una tabella è una risorsa a livello di istanza che viene replicata automaticamente in ogni cluster dell'istanza. La conservazione dei dati è controllata dalle norme di garbage collection impostate a livello di famiglia di colonne.
Per saperne di più, consulta la panoramica di Bigtable e le best practice per la progettazione degli schemi.
Visualizzazioni
Bigtable supporta i seguenti tipi di viste delle tabelle: viste logiche, viste materializzate continue e viste autorizzate. Le viste ti consentono di condividere i dati delle tabelle con utenti e gruppi specifici senza concedere loro l'accesso ai dati di origine sottostanti.
Viste logiche
Una vista logica, spesso chiamata semplicemente vista, è il risultato di una query SQL. Funziona come una tabella virtuale su cui è possibile eseguire query con altre query SQL. Per saperne di più, consulta la pagina Creare e gestire viste logiche.
Viste parametrizzate
Una vista parametrizzata è un tipo di vista logica che filtra dinamicamente gli intervalli di dati in base al contesto dell'applicazione. Questo approccio protegge le tue applicazioni da SQL injection e riduce la necessità di più viste statiche.
Per saperne di più, consulta la panoramica delle visualizzazioni parametrizzate.
Viste materializzate continue
Una vista materializzata continua viene creata eseguendo continuamente una query SQL su una tabella Bigtable. Bigtable crea una nuova tabella in base all'output della query e la mantiene sincronizzata con la tabella di origine.
Le viste materializzate continue possono contribuire a migliorare le prestazioni delle query. La nuova tabella, ovvero la vista materializzata continua, ha uno schema diverso rispetto alla tabella di origine e contiene dati preaggregati o trasformati ottimizzati per query diverse da quelle utilizzate nella tabella di origine.
Le viste materializzate continue sono di sola lettura. Ti viene addebitato l'archiviazione di una vista materializzata continua, nonché il lavoro di elaborazione necessario per creare la seconda tabella, mantenerla sincronizzata con la tabella di origine e replicarla.
Per saperne di più, consulta Viste materializzate continue.
Visualizzazioni autorizzate
Le viste autorizzate sono viste delle tabelle che puoi configurare in modo da includere dati specifici della tabella e poi concedere l'accesso separatamente da quello alla tabella di origine. Una vista autorizzata è definita da un file di definizione in formato JSON.
A differenza delle viste materializzate continue o delle viste logiche, le viste autorizzate Bigtable possono essere utilizzate per controllare l'accesso sia in lettura che in scrittura.
Le viste autorizzate sono utili nei casi in cui memorizzi i dati di più clienti in una tabella Bigtable e vuoi concedere a ciascun cliente l'accesso solo a un sottoinsieme della tabella che contiene i suoi dati.
Le visualizzazioni autorizzate non comportano costi di archiviazione aggiuntivi.
Per saperne di più, consulta la panoramica delle visualizzazioni autorizzate.
Confronti
La tabella seguente fornisce ulteriori informazioni sulle differenze tra le visualizzazioni delle tabelle Bigtable.
| Viste logiche | Viste parametrizzate | Viste materializzate continue | Visualizzazioni autorizzate | |
|---|---|---|---|---|
| Struttura | Tabella virtuale che rappresenta i risultati di una query SQL | Tabella virtuale che rappresenta i risultati di una query SQL | Tabella di sola lettura basata su una tabella di origine | Sottoinsieme di una tabella |
| Definizione | Query SQL | Query SQL che utilizza VIEW_PARAMETERS() |
Query SQL | File di definizione JSON |
| Coerenza con la tabella di origine | Coerente quando viene eseguita la query | Coerente quando viene eseguita la query | Coerenza finale | Coerente quando viene eseguita la query |
| Opzioni query | Deve utilizzare SQL | SQL | API SQL o Bigtable Data | API Bigtable Data |
| Scrivibile | No | No | No | Sì |
| Spazio di archiviazione | I dati rimangono nella tabella di origine | I dati rimangono nella tabella di origine | I dati vengono duplicati, aggregati o trasformati e archiviati in una nuova tabella di sola lettura. | I dati rimangono nella tabella di origine |
| Costi di utilizzo | Elaborazione di calcolo per eseguire la query | Elaborazione di calcolo per eseguire la query | Elaborazione di calcolo durante la sincronizzazione, costi di archiviazione | Elaborazione di calcolo per eseguire la query |
Passaggi successivi
- Istanze, cluster e nodi
- Introduzione a SQL in Bigtable
- Controllo dell'controllo dell'accesso con IAM