Creare e gestire viste logiche

In Bigtable, una vista logica è il risultato di una query SQL che funziona come una tabella virtuale su cui è possibile eseguire query con altre query SQL. I dati rimangono nella tabella di origine.

Questo documento descrive le viste logiche e spiega come crearle ed eseguire operazioni su di esse. Per un confronto con le viste materializzate continue e le viste autorizzate, consulta Tabelle e viste.

Le viste logiche ti consentono di eseguire le seguenti operazioni con i dati Bigtable:

  • Evitare la ripetizione delle query: puoi archiviare ed evolvere la logica di mappatura e cast delle colonne in una vista logica, che le altre viste logiche possono utilizzare anziché copiare e incollare la logica o doverla comprendere.
  • Eseguire l'integrazione con i sistemi progettati per leggere dai database relazionali: le viste logiche ti consentono di fare in modo che i dati Bigtable vengano letti come una tabella di database relazionale o una tabella Cassandra.
  • Eseguire la stessa vista logica su più tabelle: modificando la FROM clausola, puoi utilizzare la stessa vista per eseguire query su qualsiasi tabella nell' istanza Bigtable.
  • Fornire un'interfaccia coerente: l'applicazione può utilizzare una vista logica anche se la tabella di origine cambia.
  • Limitare 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. Puoi creare una vista logica utilizzando Google Cloud CLI o l'editor di query di Bigtable Studio in the Google Cloud console. Per eseguire query su una vista logica, puoi utilizzare l' editor di query di Bigtable Studio o una delle librerie client di Bigtable che supportano SQL.

Una vista logica ha le seguenti caratteristiche:

  • Deve utilizzare le funzionalità SQL supportate da GoogleSQL for Bigtable
  • Sola lettura
  • Deve essere letta con SQL anziché con una chiamata a ReadRows
  • È possibile eseguire query utilizzando una delle librable client di Bigtable che supportano SQL
  • Utilizza i diritti del definer. Puoi eseguire query su una vista logica se hai le autorizzazioni per leggerla, anche se non hai l'autorizzazione per leggere la tabella di origine.

La chiave di riga, il qualificatore di colonna e i valori delle colonne utilizzati per definire una vista logica vengono trattati come dati di servizio. Per questo motivo, non creare una vista logica utilizzando la chiave di riga, il qualificatore di colonna o i valori delle colonne che contengono informazioni sensibili. Per informazioni su come vengono gestiti i dati di servizio, consulta l'Google Cloud Informativa sulla privacy.

Prima di iniziare

Se prevedi di utilizzare gcloud CLI, segui questi passaggi:

  1. Installa Google Cloud CLI.

  2. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  3. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init

Ruoli obbligatori

Per utilizzare le viste 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) sull'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

Per visualizzare ed eseguire query sulle viste logiche:

  • Per elencare o descrivere le viste logiche, devi disporre del ruolo Lettore Bigtable (roles/bigtable.reader) sull'istanza.
  • In alternativa, puoi chiedere all'amministratore di concederti le seguenti autorizzazioni a livello di istanza:

    • Elenca: bigtable.logicalViews.list
    • Descrivi: bigtable.logicalViews.get
  • Per eseguire query su una vista logica, devi disporre dell'autorizzazione bigtable.logicalViews.readRows sulla vista logica.

Per creare una vista logica:

  • Devi disporre almeno dell'autorizzazione bigtable.tables.readRows sulla tabella di origine.

Per concedere l'accesso in lettura a una vista specifica:

Puoi concedere a un utente l'autorizzazione per leggere una vista logica specifica, anche se non dispone di altre autorizzazioni Bigtable. Per farlo, utilizza una condizione IAM per concedere l'autorizzazione bigtable.logicalViews.readRows solo su quella vista:

  1. Concedi all'utente il ruolo bigtable.reader sul progetto.
  2. Crea una condizione IAM che limiti l'autorizzazione bigtable.logicalViews.readRows alla vista logica specifica. Ad esempio:

    resource.name == projects/PROJECT_ID/instances/INSTANCE_ID/logicalViews/VIEW
    

    Sostituisci quanto segue:

    • PROJECT_ID: il Google Cloud progetto in cui si trova l'istanza Bigtable.
    • VIEW: un ID di massimo 128 caratteri per la nuova vista logica. L'ID deve essere univoco tra gli ID delle tabelle e gli ID delle viste nell'istanza.
    • INSTANCE_ID: l'ID dell'istanza in cui creare la vista logica.

    Per saperne di più, consulta Gestire l'accesso alle risorse utilizzando le condizioni IAM.

Per saperne di più su tutti i ruoli e le autorizzazioni disponibili, consulta Controllo dell'accesso a Bigtable con IAM.

Creare una vista logica

Console

  1. Apri l'elenco delle istanze Bigtable nella Google Cloud console.

    Apri l'elenco delle istanze

  2. Seleziona un'istanza.

  3. Nel riquadro di navigazione, fai clic su Bigtable Studio.

  4. Apri una nuova scheda facendo clic su e poi scegliendo Editor.

    1. Nell'editor di query, scrivi la query. Se la query è SQL valido, viene visualizzato il messaggio Valido.

    2. (Facoltativo) Per formattare l'istruzione in stile SQL, fai clic su Formatta.

    3. Fai clic su Esegui. I risultati della query vengono visualizzati nella tabella Risultati.

    4. Quando la query ti soddisfa, fai clic sulla freccia di espansione Salva come e scegli Salva come vista logica.

  5. Nella finestra di dialogo Salva la vista logica , inserisci un nome per la vista e fai clic su Salva.

    Per saperne di più sull'utilizzo dell'editor di query, consulta Gestire i dati utilizzando Bigtable Studio.

gcloud

Per creare una vista logica, utilizza il gcloud bigtable logical-views create comando.

gcloud bigtable logical-views create VIEW \
  --instance=INSTANCE --query=QUERY

Sostituisci quanto segue:

  • VIEW: un ID di massimo 128 caratteri per la nuova vista logica. L'ID deve essere univoco tra gli ID delle tabelle e gli ID delle viste nell'istanza.
  • QUERY: una query GoogleSQL valida per Bigtable
  • INSTANCE: l'ID dell'istanza in cui creare la vista logica

(Facoltativo)

  • Per proteggere la vista logica dall'eliminazione, aggiungi il flag --deletion-protection al 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 Aggiornare una vista logica di questo documento.

Aggiornare una vista logica

Console

Non puoi aggiornare la protezione da eliminazione per una vista logica nella Google Cloud console. Per attivare o disattivare la protezione da eliminazione, utilizza Google Cloud CLI.

  1. Apri l'elenco delle istanze Bigtable nella Google Cloud console.

    Apri l'elenco delle istanze

  2. Seleziona un'istanza dall'elenco.

  3. Nel riquadro di navigazione, fai clic su Bigtable Studio. Nell'explorer viene visualizzato un elenco di viste.

  4. (Facoltativo) Vengono elencate le prime 10 viste nell'istanza. Per visualizzarne altre 10, fai clic su Mostra altro.

  5. Accanto alla vista che vuoi aggiornare, fai clic sul menu Azioni more_vert, e poi su Visualizza definizione.

  6. Modifica la query.

  7. Fai clic su Esegui.

  8. Dopo aver verificato che il riquadro dei risultati mostra i dati da includere nella vista, fai clic su Salva come.

  9. 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 vista esistente.

  10. 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 gcloud bigtable logical-views update comando. 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 attivare 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 vista logica da aggiornare
  • INSTANCE: l'ID dell'istanza che contiene la vista logica
  • QUERY: una query GoogleSQL valida

Eliminare una vista logica

Questa azione è definitiva.

Se una vista logica ha la protezione da eliminazione attivata, non puoi eliminarla. Per eliminare una vista logica con la protezione da eliminazione attivata, devi aggiornarla per disattivare la protezione da eliminazione. Per saperne di più, consulta la sezione Aggiornare una vista logica di questo documento.

Console

  1. Apri l'elenco delle istanze Bigtable nella Google Cloud console.

    Apri l'elenco delle istanze

  2. Seleziona un'istanza dall'elenco.

  3. Nel riquadro di navigazione, fai clic su Bigtable Studio. Nell'explorer viene visualizzato un elenco di viste.

  4. (Facoltativo) Vengono elencate le prime 10 viste nell'istanza. Per visualizzarne altre 10, fai clic su Mostra altro.

  5. Espandi Viste.

  6. Accanto alla vista che vuoi eliminare, fai clic sul more_vert menu Azioni, e poi su Elimina.

gcloud

Per eliminare una vista logica, utilizza il gcloud bigtable logical-views delete comando.

  gcloud bigtable logical-views delete VIEW \
    --instance=INSTANCE

Sostituisci quanto segue:

  • VIEW: l'ID della vista logica da aggiornare
  • INSTANCE: l'ID dell'istanza che contiene la vista logica

Ottenere un elenco di viste logiche per un'istanza

Puoi visualizzare un elenco di viste logiche per un'istanza.

Console

  1. Apri l'elenco delle istanze Bigtable nella Google Cloud console.

    Apri l'elenco delle istanze

  2. Seleziona un'istanza dall'elenco.

  3. Nel riquadro di navigazione, fai clic su Bigtable Studio. Nell'explorer viene visualizzato un elenco di viste.

  4. (Facoltativo) Vengono elencate le prime 10 viste nell'istanza. Per visualizzarne altre 10, fai clic su Mostra altro.

gcloud

Per visualizzare un elenco di viste logiche per un'istanza, utilizza il gcloud bigtable logical-views list comando.

gcloud bigtable logical-views list --instance=INSTANCE

Sostituisci INSTANCE con l'ID dell'istanza.

Descrivere una vista logica

Per ottenere i dettagli di una vista logica, utilizza il comando gcloud bigtable logical-views describe.

  gcloud bigtable logical-views describe VIEW \
      --instance=INSTANCE

Il terminale mostra 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

Eseguire query su una vista logica

Dopo aver creato una vista logica, puoi eseguire query su di essa utilizzando SQL, proprio come faresti con una tabella normale. Puoi utilizzare le viste logiche nella clausola FROM delle istruzioni SELECT.

Nell'editor di query, inserisci una query GoogleSQL che fa 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 Eseguire query sui dati con SQL nell'editor di query.

Passaggi successivi