Logische Ansichten erstellen und verwalten

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

In diesem Dokument werden logische Ansichten beschrieben und es wird erläutert, wie Sie sie erstellen und Vorgänge für sie ausführen. Einen Vergleich mit kontinuierlichen materialisierten Ansichten und autorisierten Ansichten finden Sie unter Tabellen und Ansichten.

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

  • Wiederholungen von Abfragen vermeiden: Sie können die Logik für die Spaltenzuordnung und das Casting in einer logischen Ansicht speichern und weiterentwickeln. Zusätzliche logische Ansichten können diese Logik dann verwenden, anstatt sie zu kopieren und einzufügen oder sie verstehen zu müssen.
  • Integration in Systeme, die für das Lesen aus relationalen Datenbanken konzipiert sind: Mit logischen Ansichten können Sie Ihre Bigtable-Daten so lesen, als wären sie eine relationale Datenbanktabelle oder eine Cassandra-Tabelle.
  • Dieselbe logische Ansicht für viele Tabellen ausführen: Durch Ändern der FROM-Klausel können Sie mit derselben Ansicht beliebige Tabellen in Ihrer Bigtable-Instanz abfragen.
  • Konsistente Benutzeroberfläche 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 -Konsole erstellen. Wenn Sie eine logische Ansicht abfragen möchten, können Sie den Bigtable Studio-Abfrageeditor oder eine der Bigtable-Clientbibliotheken verwenden, die SQL unterstützen.

Eine logische Ansicht hat die folgenden Merkmale:

  • Es müssen SQL-Funktionen verwendet werden, die von GoogleSQL für Bigtable unterstützt werden.
  • Schreibgeschützt
  • Muss mit SQL und nicht mit einem Aufruf von ReadRows gelesen werden.
  • Kann mit einer beliebigen Bigtable-Clientbibliothek, die SQL unterstützt, abgefragt werden.
  • Verwendet Definer-Rechte. Sie können eine logische Ansicht abfragen, wenn Sie die Berechtigung haben, daraus zu lesen, auch wenn Sie nicht berechtigt sind, aus der Quelltabelle zu lesen.

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üssel, Spaltenqualifizierern oder Spaltenwerten, die vertrauliche Informationen enthalten. Informationen zum Umgang mit Dienstdaten finden Sie in der Google Cloud Datenschutzerklärung.

Hinweise

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

  1. Install the 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 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:

So verwalten Sie logische Ansichten:

  • 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 aufrufen und abfragen:

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

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

So erstellen Sie eine logische Ansicht:

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

So gewähren Sie Lesezugriff auf eine bestimmte Ansicht:

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 erteilen:

  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 jeweilige 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 ID für die neue logische Ansicht mit bis zu 128 Zeichen. 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 Bigtable-Zugriffssteuerung 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  klicken und dann Editor auswählen.

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

    2. Optional: Wenn Sie die Anweisung im SQL-Stil formatieren möchten, klicken Sie auf Formatieren.

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

    4. Wenn Sie mit der Abfrage zufrieden sind, klicken Sie auf Speichern und wählen Sie dann Ansicht speichern aus.

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

gcloud

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

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

Ersetzen Sie Folgendes:

  • VIEW: Eine ID für die neue logische Ansicht mit bis zu 128 Zeichen. 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, hängen Sie das Flag --deletion-protection an den Befehl an. 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 in diesem Dokument im Abschnitt Löschschutz ändern.

Logische Ansicht aktualisieren

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 aufgeführt. Wenn Sie 10 weitere sehen möchten, klicken Sie auf Mehr anzeigen.

  5. Klicken Sie neben der Ansicht, die Sie aktualisieren möchten, auf das Aktionsmenü more_vert und dann auf Ansichtsdefinition.

  6. Ändern Sie die Abfrage.

  7. Klicken Sie auf Ausführen.

  8. Nachdem Sie geprüft haben, ob im Ergebnisbereich Daten angezeigt werden, die in der Ansicht enthalten sein sollten, klicken Sie auf Speichern unter.

  9. Geben Sie im Dialogfeld die ID der Ansicht ein, die Sie geändert haben.

    Im Dialogfeld wird eine Meldung angezeigt, in der Sie gewarnt werden, dass Sie die vorhandene Ansicht überschreiben.

  10. Klicken Sie auf Speichern.

gcloud

Wenn Sie eine logische Ansicht aktualisieren möchten, damit eine andere Abfrage ausgeführt wird, verwenden Sie den Befehl gcloud bigtable logical-views update.

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

Ersetzen Sie Folgendes:

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

Wenn Sie eine logische Ansicht aktualisieren möchten, um den Löschschutz zu ändern, lesen Sie den Abschnitt Löschschutz ändern in diesem Dokument.

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 mit aktiviertem Löschschutz löschen möchten, müssen Sie die logische Ansicht aktualisieren, um den Löschschutz zu deaktivieren. Weitere Informationen finden Sie in diesem Dokument im Abschnitt Löschschutz ändern.

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 aufgeführt. Wenn Sie 10 weitere sehen möchten, klicken Sie auf Mehr anzeigen.

  5. Maximieren Sie Aufrufe.

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

gcloud

Verwenden Sie den Befehl gcloud bigtable logical-views delete, 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 aufgeführt. Wenn Sie 10 weitere sehen möchten, klicken Sie auf Mehr anzeigen.

gcloud

Eine Liste der logischen Ansichten für eine Instanz erhalten Sie mit dem Befehl gcloud bigtable logical-views list.

gcloud bigtable logical-views list --instance=INSTANCE

Ersetzen Sie INSTANCE durch die Instanz-ID.

Logische Ansicht beschreiben

Mit dem Befehl gcloud bigtable logical-views describe können Sie Details zu einer logischen Ansicht abrufen.

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

Im Terminal werden Details ähnlich den 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 reguläre 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.

Löschschutz ändern

Der Löschschutz verhindert das Löschen der logischen Ansicht. Zum Aktivieren oder Deaktivieren des Löschschutzes für eine logische Ansicht benötigen Sie die erforderlichen Berechtigungen. Weitere Informationen finden Sie im Abschnitt Erforderliche Rollen in diesem Dokument.

gcloud

Führen Sie den Befehl gcloud bigtable logical-views update aus, um den Löschschutz für eine logische Ansicht zu aktivieren:

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

Führen Sie den folgenden Befehl aus, um den Löschschutz für eine logische Ansicht zu deaktivieren:

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

Ersetzen Sie Folgendes:

  • VIEW: Eine ID für die logische Ansicht mit bis zu 128 Zeichen. Die ID muss unter den Tabellen- und Ansichts-IDs in der Instanz eindeutig sein.
  • INSTANCE: Die ID der Instanz, in der die logische Ansicht aktualisiert werden soll.

Nächste Schritte