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 visualizzazioni logiche e come creare 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 tuoi dati Bigtable:

  • Evita la ripetizione delle query: puoi archiviare e sviluppare la logica di mapping e cast delle colonne in una visualizzazione logica, che le visualizzazioni logiche aggiuntive possono utilizzare anziché copiare e incollare la logica o doverla comprendere.
  • Esegui l'integrazione con sistemi progettati per leggere da database relazionali: le viste logiche ti consentono di leggere i dati Bigtable come una tabella di database relazionale o una tabella Cassandra.
  • Esegui la stessa visualizzazione logica su più tabelle: modificando la clausola FROM, puoi utilizzare la stessa visualizzazione per eseguire query su qualsiasi tabella nell'istanza Bigtable.
  • Fornisci un'interfaccia coerente: la tua applicazione può utilizzare una visualizzazione 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 visualizzazione logica utilizzando Google Cloud CLI o l'editor di query Bigtable Studio nella console Google Cloud . Per eseguire query su una vista logica, puoi utilizzare l'editor di query di Bigtable Studio o una qualsiasi delle librerie client di Bigtable che supportano SQL.

Una vista logica ha le seguenti caratteristiche:

  • Devi utilizzare le funzionalità SQL supportate da GoogleSQL per Bigtable
  • Sola lettura
  • Deve essere letto con SQL anziché con una chiamata a ReadRows
  • Può essere eseguito con query utilizzando una qualsiasi delle librerie client 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 la 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 del servizio. Per questo motivo, non creare una visualizzazione 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 del servizio, consulta l'Google Cloud Informativa sulla privacy.

Prima di iniziare

Se prevedi di utilizzare gcloud CLI, segui questi passaggi:

  1. Install the Google Cloud CLI.

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

  3. 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 visualizzazioni logiche:

  • Per creare, aggiornare o eliminare viste logiche, devi disporre del ruolo Bigtable Admin (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 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
  • Per eseguire una query su una vista logica, devi disporre dell'autorizzazione bigtable.logicalViews.readRows per la vista logica.

Per creare una visualizzazione logica:

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

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

Puoi concedere a un utente l'autorizzazione a 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 vista:

  1. Concedi all'utente il ruolo bigtable.reader sul progetto.
  2. Crea una condizione IAM che limiti l'autorizzazione bigtable.logicalViews.readRows alla visualizzazione 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 lungo fino a 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 visualizzazione 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'controllo dell'accesso con IAM.

Creare una vista logica

Console

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

    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 su Salva e poi scegli Salva vista.

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

gcloud

Per creare una visualizzazione 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 lungo fino a 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
  • INSTANCE: l'ID dell'istanza in cui creare la visualizzazione logica

Facoltativamente,

  • Per proteggere la visualizzazione logica dall'eliminazione, aggiungi il flag --deletion-protection al comando. Se non applichi questa impostazione, la visualizzazione logica può essere eliminata. Puoi anche consentire esplicitamente l'eliminazione della vista logica aggiungendo --no-deletion-protection. Per ulteriori informazioni, consulta la sezione Modificare la protezione dall'eliminazione di questo documento.

Aggiorna una vista logica

Console

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

    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 visualizzazioni.

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

  5. Accanto alla visualizzazione da aggiornare, fai clic sul menu delle azioni more_vert, quindi fai clic su Visualizza definizione.

  6. Modifica la query.

  7. Fai clic su Esegui.

  8. Dopo aver verificato che il riquadro dei risultati mostri i dati da includere nella visualizzazione, 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 visualizzazione esistente.

  10. Fai clic su Salva.

gcloud

Per aggiornare una vista logica in modo da eseguire una query diversa, utilizza il comando gcloud bigtable logical-views update.

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

Sostituisci quanto segue:

  • VIEW: l'ID della vista logica da aggiornare
  • QUERY: una query GoogleSQL valida
  • INSTANCE: l'ID dell'istanza che contiene la vista logica

Per aggiornare una vista logica per modificare la protezione dall'eliminazione, consulta la sezione Modifica protezione da eliminazione di questo documento.

Eliminare una vista logica

Questa azione è definitiva.

Se una visualizzazione logica ha la protezione da eliminazione abilitata, non puoi eliminarla. Per eliminare una vista logica per cui è abilitata la protezione da eliminazione, devi aggiornarla per disabilitare questa protezione. Per ulteriori informazioni, consulta la sezione Modificare la protezione dall'eliminazione di questo documento.

Console

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

    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 visualizzazioni.

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

  5. Espandi Visualizzazioni.

  6. Accanto alla visualizzazione che vuoi eliminare, fai clic sul menu azioni more_vert, quindi fai clic su Elimina.

gcloud

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

  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

Visualizzare un elenco di viste logiche per un'istanza

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

Console

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

    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 visualizzazioni.

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

gcloud

Per visualizzare un elenco delle visualizzazioni 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.

Descrivere una vista logica

Per ottenere dettagli su una visualizzazione 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

Esegui query su una vista logica

Dopo aver creato una vista logica, puoi eseguirvi query 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 faccia riferimento al nome della vista. Ad esempio, se la visualizzazione 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 query.

Modifica protezione da eliminazione

La protezione contro l'eliminazione impedisce l'eliminazione della vista logica. Per attivare o disattivare la protezione contro l'eliminazione per una vista logica, devi disporre delle autorizzazioni necessarie. Per ulteriori informazioni, consulta la sezione Ruoli richiesti di questo documento.

gcloud

Per abilitare la protezione da eliminazione per una vista logica, esegui il comando gcloud bigtable logical-views update:

gcloud bigtable logical-views update VIEW \
    --instance=INSTANCE \
    --deletion-protection

Per disattivare la protezione dall'eliminazione per una vista logica, esegui questo comando:

gcloud bigtable logical-views update VIEW \
    --instance=INSTANCE \
    --no-deletion-protection

Sostituisci quanto segue:

  • VIEW: un ID lungo fino a 128 caratteri per la visualizzazione logica. L'ID deve essere univoco tra gli ID di tabelle e viste nell'istanza.
  • INSTANCE: l'ID dell'istanza in cui aggiornare la visualizzazione logica.

Passaggi successivi