Logische Ansichten erstellen und verwalten

In Bigtable ist eine logische Ansicht das Ergebnis einer SQL-Abfrage, die als virtuelle Tabelle fungiert und von anderen SQL-Abfragen abgefragt werden kann. Die Daten verbleiben in der Quelltabelle.

In diesem Dokument werden logische Ansichten beschrieben und wie Sie sie erstellen und Vorgänge darauf ausführen. Einen Vergleich mit kontinuierlichen materialisierten Ansichten und autorisierten Ansichten finden Sie unter Tabellen und Ansichten.

Mit logischen Ansichten können Sie Folgendes mit Ihren Bigtable-Daten tun:

  • Wiederholungen von Abfragen vermeiden: Sie können die Logik für die Spaltenzuordnung und ‑umwandlung in einer logischen Ansicht speichern und weiterentwickeln. Zusätzliche logische Ansichten können diese Logik verwenden, anstatt sie zu kopieren und einzufügen oder sie verstehen zu müssen.
  • In Systeme integrieren, die zum Lesen aus relationalen Datenbanken entwickelt wurden: Mit logischen Ansichten können Sie Ihre Bigtable-Daten so darstellen, als wären sie eine relationale Datenbanktabelle oder eine Cassandra-Tabelle.
  • Dieselbe logische Ansicht für viele Tabellen ausführen: Wenn Sie die FROM Klausel ändern, können Sie mit derselben Ansicht jede Tabelle in Ihrer Bigtable-Instanz abfragen.
  • Konsistente Schnittstelle bereitstellen: Ihre Anwendung kann eine logische Ansicht verwenden auch wenn sich die Quelltabelle ändert.
  • Lesezugriff auf bestimmte Spalten oder Zeilen beschränken: Sie können nur die Daten verfügbar machen, die Nutzer lesen dürfen, ohne ihnen Zugriff auf die gesamte Tabelle zu gewähren.

Eine logische Ansicht ist eine Ressource auf Instanzebene. Sie können eine logische Ansicht mit der Google Cloud CLI oder dem Bigtable Studio-Abfrageeditor in der Google Cloud Console erstellen. Wenn Sie eine logische Ansicht abfragen möchten, können Sie den Bigtable Studio-Abfrageeditor oder eine der Bigtable Clientbibliotheken verwenden, die SQLunterstützen.

Eine logische Ansicht hat die folgenden Merkmale:

  • Muss SQL-Funktionen verwenden, die von GoogleSQL für Bigtable unterstützt werden
  • Schreibgeschützt
  • Muss mit SQL gelesen werden, nicht mit einem Aufruf von ReadRows
  • Kann mit einer der Bigtable Clientbibliotheken abgefragt werden, die SQL unterstützen
  • Verwendet Definiererrechte. Sie können eine logische Ansicht abfragen, wenn Sie Berechtigungen zum Lesen daraus haben, auch wenn Sie keine Berechtigung zum Lesen aus der Quelltabelle haben.

Der Zeilenschlüssel, der Spaltenqualifizierer und die Spaltenwerte, die Sie zum Definieren einer logischen Ansicht verwenden, werden als Dienstdaten behandelt. Erstellen Sie daher keine logische Ansicht mit Zeilenschlüsseln, Spaltenqualifizierern oder Spaltenwerten, die vertrauliche Informationen enthalten. Informationen zum Umgang mit Dienstdaten finden Sie in den Google Cloud Datenschutz Hinweisen.

Hinweis

Führen Sie die folgenden Schritte aus, wenn Sie die gcloud CLI verwenden möchten:

  1. Installieren Sie die Google Cloud CLI.

  2. Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

  3. Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init

Erforderliche Rollen

Um mit logischen Ansichten zu arbeiten, benötigen Sie die folgenden Berechtigungen:

Logische Ansichten verwalten :

  • Zum Erstellen, Aktualisieren oder Löschen logischer Ansichten benötigen Sie die Rolle „Bigtable-Administrator“ (roles/bigtable.admin) für die Instanz.
  • Alternativ können Sie Ihren Administrator bitten, Ihnen die folgenden Berechtigungen auf Instanzebene zu gewähren:
    • Erstellen: bigtable.logicalViews.create
    • Aktualisieren: bigtable.logicalViews.update
    • Löschen: bigtable.logicalViews.delete

Logische Ansichten ansehen und abfragen :

  • Zum Auflisten oder Beschreiben logischer Ansichten benötigen Sie die Rolle „Bigtable-Leser“ (roles/bigtable.reader) für die Instanz.
  • Alternativ können Sie Ihren Administrator bitten, Ihnen die folgenden Berechtigungen auf Instanzebene zu gewähren:

    • Auflisten: bigtable.logicalViews.list
    • Beschreiben: bigtable.logicalViews.get
  • Zum Abfragen einer logischen Ansicht benötigen Sie die Berechtigung bigtable.logicalViews.readRows für die logische Ansicht.

Logische Ansicht erstellen :

  • Sie benötigen mindestens die Berechtigung bigtable.tables.readRows für die Quelltabelle.

Lesezugriff auf eine bestimmte Ansicht gewähren :

Sie können einem Nutzer die Berechtigung zum Lesen einer bestimmten logischen Ansicht gewähren, auch wenn er keine anderen Bigtable-Berechtigungen hat. Verwenden Sie dazu eine IAM-Bedingung, um die Berechtigung bigtable.logicalViews.readRows nur für diese Ansicht zu gewähren:

  1. Weisen Sie dem Nutzer die Rolle bigtable.reader für das Projekt zu.
  2. Erstellen Sie eine IAM-Bedingung, die die Berechtigung bigtable.logicalViews.readRows auf die bestimmte logische Ansicht beschränkt. Beispiel:

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

    Ersetzen Sie Folgendes:

    • PROJECT_ID: das Google Cloud Projekt, in dem sich Ihre Bigtable-Instanz befindet.
    • VIEW: eine bis zu 128 Zeichen lange ID für die neue logische Ansicht. Die ID muss unter den Tabellen-IDs und Ansichts-IDs in der Instanz eindeutig sein.
    • INSTANCE_ID: die ID der Instanz, in der die logische Ansicht erstellt werden soll.

    Weitere Informationen finden Sie unter Zugriff auf Ressourcen mit IAM-Bedingungen verwalten.

Weitere Informationen zu allen verfügbaren Rollen und Berechtigungen finden Sie unter Zugriffssteuerung für Bigtable mit IAM.

Logische Ansicht erstellen

Console

  1. Öffnen Sie in der Google Cloud Console die Liste der Bigtable-Instanzen.

    Liste der Instanzen öffnen

  2. Wählen Sie eine Instanz aus.

  3. Klicken Sie im Navigationsbereich auf Bigtable Studio.

  4. Öffnen Sie einen neuen Tab, indem Sie auf und dann Editor auswählen.

    1. Schreiben Sie im Abfrageeditor Ihre Abfrage. Wenn die Abfrage gültiges SQL ist, wird die Meldung Gültig angezeigt.

    2. Optional: Klicken Sie auf Formatieren, um die Anweisung im SQL-Stil zu formatieren.

    3. Klicken Sie auf Ausführen. Die Ergebnisse der Abfrage werden in der Tabelle Ergebnisse angezeigt.

    4. Wenn Sie mit der Abfrage zufrieden sind, klicken Sie auf den Pfeil zum Maximieren von Speichern unter und wählen Sie Als logische Ansicht speichern aus.

  5. Geben Sie im Dialogfeld Logische Ansicht speichern einen Namen für die Ansicht ein und klicken Sie dann auf Speichern.

    Weitere Informationen zur Verwendung des Abfrageeditors finden Sie unter Daten mit Bigtable Studio verwalten.

gcloud

Verwenden Sie den gcloud bigtable logical-views create Befehl, um eine logische Ansicht zu erstellen.

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

Ersetzen Sie Folgendes:

  • VIEW: eine bis zu 128 Zeichen lange ID für die neue logische Ansicht. Die ID muss unter den Tabellen-IDs und Ansichts-IDs in der Instanz eindeutig sein.
  • QUERY: eine gültige GoogleSQL-Abfrage für Bigtable
  • INSTANCE: die ID der Instanz, in der die logische Ansicht erstellt werden soll

Optional:

  • Wenn Sie die logische Ansicht vor dem Löschen schützen möchten, fügen Sie dem Befehl das Flag --deletion-protection hinzu. Wenn Sie diese Einstellung nicht anwenden, kann die logische Ansicht gelöscht werden. Sie können das Löschen logischer Ansichten auch explizit zulassen, indem Sie --no-deletion-protection anhängen. Weitere Informationen finden Sie im Abschnitt Logische Ansicht aktualisieren in diesem Dokument.

Logische Ansicht aktualisieren

Console

In der Google Cloud Console können Sie den Löschschutz für eine logische Ansicht nicht aktualisieren. Verwenden Sie die Google Cloud CLI, um den Löschschutz zu aktivieren oder zu deaktivieren.

  1. Öffnen Sie in der Google Cloud Console die Liste der Bigtable-Instanzen.

    Liste der Instanzen öffnen

  2. Wählen Sie eine Instanz aus der Liste aus.

  3. Klicken Sie im Navigationsbereich auf Bigtable Studio. Im Explorer wird eine Liste der Ansichten angezeigt.

  4. Optional: Die ersten 10 Ansichten in der Instanz werden aufgelistet. Klicken Sie auf Mehr anzeigen , um 10 weitere Ansichten aufzurufen.

  5. Klicken Sie neben der Ansicht, die Sie aktualisieren möchten, auf das more_vert, und dann auf Definition ansehen.

  6. Ändern Sie die Abfrage.

  7. Klicken Sie auf Ausführen.

  8. Nachdem Sie geprüft haben, ob im Ergebnisbereich die Daten angezeigt werden, die in die Ansicht aufgenommen werden sollen, klicken Sie auf Speichern unter.

  9. Geben Sie im Dialogfeld die ID der geänderten Ansicht ein.

    Im Dialogfeld wird eine Meldung angezeigt, die Sie warnt, dass Sie die vorhandene Ansicht überschreiben.

  10. Klicken Sie auf Speichern.

gcloud

Verwenden Sie den gcloud bigtable logical-views update Befehl, um eine logische Ansicht zu aktualisieren, eine andere Abfrage auszuführen oder den Löschschutz zu ändern. Sie müssen die Abfrage, den Löschschutz oder beides angeben.

So aktualisieren Sie die Abfrage einer logischen Ansicht:

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

So aktivieren Sie den Löschschutz für eine logische Ansicht:

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

So deaktivieren Sie den Löschschutz für eine logische Ansicht:

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

Ersetzen Sie Folgendes:

  • VIEW: die ID der zu aktualisierenden logischen Ansicht
  • INSTANCE: die ID der Instanz, die die logische Ansicht enthält
  • QUERY: eine gültige GoogleSQL-Abfrage

Logische Ansicht löschen

Diese Aktion ist dauerhaft.

Wenn für eine logische Ansicht der Löschschutz aktiviert ist, können Sie sie nicht löschen. Wenn Sie eine logische Ansicht löschen möchten, für die der Löschschutz aktiviert ist, müssen Sie die logische Ansicht aktualisieren, um den Löschschutz zu deaktivieren. Weitere Informationen finden Sie im Abschnitt Logische Ansicht aktualisieren in diesem Dokument.

Console

  1. Öffnen Sie in der Google Cloud Console die Liste der Bigtable-Instanzen.

    Liste der Instanzen öffnen

  2. Wählen Sie eine Instanz aus der Liste aus.

  3. Klicken Sie im Navigationsbereich auf Bigtable Studio. Im Explorer wird eine Liste der Ansichten angezeigt.

  4. Optional: Die ersten 10 Ansichten in der Instanz werden aufgelistet. Klicken Sie auf Mehr anzeigen , um 10 weitere Ansichten aufzurufen.

  5. Maximieren Sie Ansichten.

  6. Klicken Sie neben der Ansicht, die Sie löschen möchten, auf das more_vert, und dann auf Löschen.

gcloud

Verwenden Sie den gcloud bigtable logical-views delete Befehl, um eine logische Ansicht zu löschen.

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

Ersetzen Sie Folgendes:

  • VIEW: die ID der zu aktualisierenden logischen Ansicht
  • INSTANCE: die ID der Instanz, die die logische Ansicht enthält

Liste der logischen Ansichten für eine Instanz abrufen

Sie können eine Liste der logischen Ansichten für eine Instanz aufrufen.

Console

  1. Öffnen Sie in der Google Cloud Console die Liste der Bigtable-Instanzen.

    Liste der Instanzen öffnen

  2. Wählen Sie eine Instanz aus der Liste aus.

  3. Klicken Sie im Navigationsbereich auf Bigtable Studio. Im Explorer wird eine Liste der Ansichten angezeigt.

  4. Optional: Die ersten 10 Ansichten in der Instanz werden aufgelistet. Klicken Sie auf Mehr anzeigen , um 10 weitere Ansichten aufzurufen.

gcloud

Verwenden Sie den gcloud bigtable logical-views list Befehl, um eine Liste der logischen Ansichten für eine Instanz aufzurufen.

gcloud bigtable logical-views list --instance=INSTANCE

Ersetzen Sie INSTANCE durch die Instanz-ID.

Logische Ansicht beschreiben

Verwenden Sie den Befehl gcloud bigtable logical-views describe, um Details zu einer logischen Ansicht abzurufen.

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

Im Terminal werden Details ähnlich dem folgenden angezeigt:

  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

Logische Ansicht abfragen

Nachdem Sie eine logische Ansicht erstellt haben, können Sie sie mit SQL abfragen, ähnlich wie eine normale Tabelle. Sie können logische Ansichten in der FROM-Klausel von SELECT-Anweisungen verwenden.

Geben Sie im Abfrageeditor eine GoogleSQL-Abfrage ein, die auf den Ansichtsnamen verweist. Wenn Ihre Ansicht beispielsweise MyLogicalView heißt:

SELECT *
FROM MyLogicalView
LIMIT 100;

Weitere Informationen zum Ausführen von SQL-Abfragen in Bigtable finden Sie unter Daten mit SQL im Abfrageeditor abfragen.

Nächste Schritte