Crea e gestisci viste logiche
Le viste logiche in Bigtable ti consentono di salvare le query SQL come tabelle virtuali a cui altre query SQL possono fare riferimento mentre i dati rimangono nella tabella di origine. L'utilizzo di queste visualizzazioni ti consente di:
- Evita di ripetere la logica delle query
- Presentare i dati in un formato relazionale
- Limita l'accesso in lettura a righe o colonne specifiche
Puoi creare e gestire le viste logiche utilizzando Google Cloud CLI o l'editor di query di Bigtable Studio nella console Google Cloud . Puoi eseguire query sulle viste logiche utilizzando l'editor di query o una qualsiasi delle librerie client di Bigtable che supportano SQL. Per un confronto con le viste materializzate continue e le viste autorizzate, consulta Tabelle e viste.
Informazioni sulle viste logiche
Le viste logiche ti consentono di eseguire le seguenti operazioni con i dati Bigtable:
- Evita la ripetizione delle query: puoi archiviare ed evolvere la mappatura delle colonne e la logica di cast in una vista logica, che altre viste logiche possono utilizzare invece di copiare e incollare la logica o doverla comprendere.
- Integrazione con sistemi progettati per la lettura da database relazionali: le viste logiche ti consentono di leggere i dati di Bigtable come una tabella di database relazionale o una tabella Cassandra.
- Esegui la stessa vista logica su più tabelle: modificando la clausola
FROM, puoi utilizzare la stessa vista per eseguire query su qualsiasi tabella nell'istanza Bigtable. - Fornire un'interfaccia coerente: la tua applicazione può utilizzare una vista logica anche se la tabella di origine cambia.
- Limita l'accesso in lettura a colonne o righe specifiche: puoi esporre solo i dati che vuoi consentire agli utenti di leggere, senza concedere loro l'accesso all'intera tabella.
Una vista logica è una risorsa a livello di istanza con le seguenti caratteristiche:
- Deve utilizzare le funzionalità SQL supportate da GoogleSQL per Bigtable
- La query SQL che definisce una vista logica non può utilizzare
SELECT *. - Sola lettura
- Deve essere letto con SQL anziché con una chiamata a
ReadRows - È possibile eseguire query utilizzando una qualsiasi delle librerie client di Bigtable che supportano SQL
- Utilizza i diritti di definizione. Puoi eseguire query su una vista logica se disponi delle autorizzazioni per leggerla, anche se non disponi dell'autorizzazione per leggere dalla tabella di origine.
La chiave di riga, il qualificatore di colonna e i valori di colonna che utilizzi per definire una vista logica vengono trattati come dati di servizio. Per questo motivo, non creare una vista logica utilizzando valori di chiave di riga, qualificatore di colonna o colonna che contengono informazioni sensibili. Per informazioni su come vengono gestiti i dati di servizio, consulta l'Informativa sulla privacy diGoogle Cloud .
Prima di iniziare
Se prevedi di utilizzare gcloud CLI, segui questi passaggi:
-
Installa Google Cloud CLI.
-
Configura gcloud CLI per utilizzare la tua identità federata.
Per saperne di più, consulta Accedi a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init
Ruoli obbligatori
Per lavorare con le visualizzazioni logiche, devi disporre delle seguenti autorizzazioni:
Per gestire le viste logiche:
- Per creare, aggiornare o eliminare le viste logiche, devi disporre del ruolo Amministratore Bigtable (
roles/bigtable.admin) nell'istanza. - In alternativa, puoi chiedere all'amministratore di concederti le seguenti autorizzazioni a livello di istanza:
- Crea:
bigtable.logicalViews.create - Aggiorna:
bigtable.logicalViews.update - Elimina:
bigtable.logicalViews.delete
- Crea:
Per visualizzare ed eseguire query sulle viste logiche:
- Per elencare o descrivere le viste logiche, devi disporre del ruolo Bigtable Reader (
roles/bigtable.reader) nell'istanza. In alternativa, puoi chiedere all'amministratore di concederti le seguenti autorizzazioni a livello di istanza:
- Elenco:
bigtable.logicalViews.list - Descrivi:
bigtable.logicalViews.get
- Elenco:
Per eseguire una query su una vista logica, devi disporre dell'autorizzazione
bigtable.logicalViews.readRowssulla vista logica.
Per creare una vista logica:
- Devi disporre almeno dell'autorizzazione
bigtable.tables.readRowssulla tabella di origine.
Per concedere l'accesso in lettura a una vista specifica:
Puoi concedere a un utente l'autorizzazione per leggere una visualizzazione logica specifica, anche se non dispone di altre autorizzazioni Bigtable. Per farlo, utilizza una condizione IAM per concedere l'autorizzazione bigtable.logicalViews.readRows solo per quella visualizzazione:
- Concedi all'utente il ruolo
bigtable.readersul progetto. Crea una condizione IAM che limiti l'autorizzazione
bigtable.logicalViews.readRowsalla vista logica specifica. Ad esempio:resource.name == projects/PROJECT_ID/instances/INSTANCE_ID/logicalViews/VIEWSostituisci quanto segue:
PROJECT_ID: il progetto Google Cloud in cui si trova l'istanza Bigtable.VIEW: un ID di massimo 128 caratteri per la nuova visualizzazione logica. L'ID deve essere univoco tra gli ID tabella e gli ID visualizzazione nell'istanza.INSTANCE_ID: l'ID dell'istanza in cui creare la vista logica.
Per saperne di più, consulta Gestisci l'accesso alle risorse utilizzando le condizioni IAM.
Per saperne di più su tutti i ruoli e le autorizzazioni disponibili, consulta Controllo dell'controllo dell'accesso con IAM.
Crea una vista logica
Console
Nella console Google Cloud , apri l'elenco delle istanze Bigtable.
Seleziona un'istanza.
Nel riquadro di navigazione, fai clic su Bigtable Studio.
Apri una nuova scheda facendo clic su e poi scegliendo Editor.
Nell'editor di query, scrivi la query. Se la query è un comando SQL valido, viene visualizzato il messaggio Valida.
(Facoltativo) Per formattare l'istruzione in stile SQL, fai clic su Formatta.
Fai clic su Esegui. I risultati della query vengono visualizzati nella tabella Risultati.
Quando la query ti soddisfa, fai clic sulla freccia di espansione Salva con nome e scegli Salva come vista logica.
Nella finestra di dialogo Salva la vista logica, inserisci un nome per la vista e poi fai clic su Salva.
Per saperne di più sull'utilizzo dell'editor di query, consulta Gestisci i tuoi dati utilizzando Bigtable Studio.
gcloud
Per creare una vista logica, utilizza il comando gcloud bigtable logical-views create.
gcloud bigtable logical-views create VIEW \
--instance=INSTANCE --query=QUERY
Sostituisci quanto segue:
VIEW: un ID di massimo 128 caratteri per la nuova visualizzazione logica. L'ID deve essere univoco tra gli ID tabella e gli ID visualizzazione nell'istanza.QUERY: una query GoogleSQL valida per Bigtable. La query non può utilizzareSELECT *.INSTANCE: l'ID dell'istanza in cui creare la visualizzazione logica
Facoltativamente,
- Per proteggere la vista logica dall'eliminazione, aggiungi il flag
--deletion-protectional comando. Se non applichi questa impostazione, la vista logica può essere eliminata. Puoi anche consentire esplicitamente l'eliminazione della vista logica aggiungendo--no-deletion-protection. Per saperne di più, consulta la sezione Aggiorna una vista logica di questo documento.
Aggiorna una vista logica
Console
Non puoi aggiornare la protezione da eliminazione per una vista logica nella consoleGoogle Cloud . Per abilitare o disabilitare la protezione da eliminazione, utilizza Google Cloud CLI.
Nella console Google Cloud , apri l'elenco delle istanze Bigtable.
Seleziona un'istanza dall'elenco.
Nel riquadro di navigazione, fai clic su Bigtable Studio. In Explorer viene visualizzato un elenco di visualizzazioni.
(Facoltativo) Vengono elencate le prime 10 visualizzazioni nell'istanza. Per visualizzarne altri 10, fai clic su Mostra altro.
Accanto alla vista che vuoi aggiornare, fai clic sul menu Azioni more_vert, quindi su Visualizza definizione.
Modifica la query.
Fai clic su Esegui.
Dopo aver verificato che il riquadro dei risultati mostra i dati che devono essere inclusi nella visualizzazione, fai clic su Salva con nome.
Nella finestra di dialogo, inserisci l'ID della vista che hai modificato.
La finestra di dialogo mostra un messaggio che ti avvisa che stai sovrascrivendo la visualizzazione esistente.
Fai clic su Salva.
gcloud
Per aggiornare una vista logica in modo che esegua una query diversa o per modificare la protezione da eliminazione, utilizza il comando gcloud bigtable logical-views update. Devi specificare la query, la protezione da eliminazione o entrambe.
Per aggiornare la query di una vista logica:
gcloud bigtable logical-views update VIEW \
--instance=INSTANCE --query=QUERY
Per abilitare la protezione da eliminazione per una vista logica:
gcloud bigtable logical-views update VIEW \
--instance=INSTANCE \
--deletion-protection=true
Per disattivare la protezione da eliminazione per una vista logica:
gcloud bigtable logical-views update VIEW \
--instance=INSTANCE \
--deletion-protection=false
Sostituisci quanto segue:
VIEW: l'ID della visualizzazione logica da aggiornareINSTANCE: l'ID dell'istanza che contiene la vista logicaQUERY: una query GoogleSQL valida
Elimina una vista logica
Questa azione è definitiva.
Se una vista logica ha la protezione da eliminazione abilitata, non puoi eliminarla. Per eliminare una vista logica con la protezione da eliminazione abilitata, devi aggiornare la vista logica per disabilitare la protezione da eliminazione. Per saperne di più, consulta la sezione Aggiorna una vista logica di questo documento.
Console
Nella console Google Cloud , apri l'elenco delle istanze Bigtable.
Seleziona un'istanza dall'elenco.
Nel riquadro di navigazione, fai clic su Bigtable Studio. In Explorer viene visualizzato un elenco di visualizzazioni.
(Facoltativo) Vengono elencate le prime 10 visualizzazioni nell'istanza. Per visualizzarne altri 10, fai clic su Mostra altro.
Espandi Visualizzazioni.
Accanto alla visualizzazione che vuoi eliminare, fai clic sul menu Azioni more_vert e poi su Elimina.
gcloud
Per eliminare una visualizzazione logica, utilizza il comando gcloud bigtable logical-views delete.
gcloud bigtable logical-views delete VIEW \
--instance=INSTANCE
Sostituisci quanto segue:
VIEW: l'ID della visualizzazione logica da aggiornareINSTANCE: l'ID dell'istanza che contiene la vista logica
Ottieni un elenco di viste logiche per un'istanza
Puoi visualizzare un elenco di viste logiche per un'istanza.
Console
Nella console Google Cloud , apri l'elenco delle istanze Bigtable.
Seleziona un'istanza dall'elenco.
Nel riquadro di navigazione, fai clic su Bigtable Studio. In Explorer viene visualizzato un elenco di visualizzazioni.
(Facoltativo) Vengono elencate le prime 10 visualizzazioni nell'istanza. Per visualizzarne altri 10, fai clic su Mostra altro.
gcloud
Per visualizzare un elenco di viste logiche per un'istanza, utilizza il comando gcloud bigtable logical-views list.
gcloud bigtable logical-views list --instance=INSTANCE
Sostituisci INSTANCE con l'ID istanza.
Descrivi una vista logica
Per visualizzare i dettagli di una vista logica, utilizza il comando gcloud bigtable logical-views
describe.
gcloud bigtable logical-views describe VIEW \
--instance=INSTANCE
Il terminale visualizza dettagli simili ai seguenti:
createTime: '2025-03-07T19:49:56.316578Z'
etag: W/"/v1/17919275593532352351"
name: projects/my-project/instances/my-instance/logicalViews/my-view
query: SELECT street FROM addresses
updateTime: '2025-03-07T19:49:56.316578Z'
deletion_protection: true
Esegui query su una vista logica
Dopo aver creato una vista logica, puoi eseguirvi query utilizzando SQL, in modo simile a come esegui query su una tabella normale. Puoi utilizzare le viste logiche nella clausola FROM delle istruzioni SELECT.
Nell'editor di query, inserisci una query GoogleSQL che faccia riferimento al nome della vista. Ad esempio, se la vista si chiama MyLogicalView:
SELECT *
FROM MyLogicalView
LIMIT 100;
Per saperne di più sull'esecuzione di query SQL in Bigtable, consulta Esegui query sui dati con SQL nell'editor di query.
Limitazioni
- Non puoi creare viste logiche su tabelle con granularità del timestamp in microsecondi.
Passaggi successivi
- Per scoprire di più sull'esecuzione di query sui dati di Bigtable con SQL, consulta Panoramica di GoogleSQL per Bigtable.
- Per precalcolare e memorizzare nella cache i risultati delle query di una tabella di origine, consulta Viste materializzate continue.
- Per configurare l'accesso in lettura e scrittura granulare a sottoinsiemi di dati specifici, consulta la panoramica delle viste autorizzate.
- Per filtrare dinamicamente i dati della vista logica in base al contesto dell'applicazione, consulta la panoramica delle viste parametrizzate.