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
FROMKlausel ä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:
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
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
- Erstellen:
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
- Auflisten:
Zum Abfragen einer logischen Ansicht benötigen Sie die Berechtigung
bigtable.logicalViews.readRowsfür die logische Ansicht.
Logische Ansicht erstellen :
- Sie benötigen mindestens die Berechtigung
bigtable.tables.readRowsfü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:
- Weisen Sie dem Nutzer die Rolle
bigtable.readerfür das Projekt zu. Erstellen Sie eine IAM-Bedingung, die die Berechtigung
bigtable.logicalViews.readRowsauf die bestimmte logische Ansicht beschränkt. Beispiel:resource.name == projects/PROJECT_ID/instances/INSTANCE_ID/logicalViews/VIEWErsetzen 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
Öffnen Sie in der Google Cloud Console die Liste der Bigtable-Instanzen.
Wählen Sie eine Instanz aus.
Klicken Sie im Navigationsbereich auf Bigtable Studio.
Öffnen Sie einen neuen Tab, indem Sie auf und dann Editor auswählen.
Schreiben Sie im Abfrageeditor Ihre Abfrage. Wenn die Abfrage gültiges SQL ist, wird die Meldung Gültig angezeigt.
Optional: Klicken Sie auf Formatieren, um die Anweisung im SQL-Stil zu formatieren.
Klicken Sie auf Ausführen. Die Ergebnisse der Abfrage werden in der Tabelle Ergebnisse angezeigt.
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.
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 BigtableINSTANCE: 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-protectionhinzu. 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-protectionanhä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.
Öffnen Sie in der Google Cloud Console die Liste der Bigtable-Instanzen.
Wählen Sie eine Instanz aus der Liste aus.
Klicken Sie im Navigationsbereich auf Bigtable Studio. Im Explorer wird eine Liste der Ansichten angezeigt.
Optional: Die ersten 10 Ansichten in der Instanz werden aufgelistet. Klicken Sie auf Mehr anzeigen , um 10 weitere Ansichten aufzurufen.
Klicken Sie neben der Ansicht, die Sie aktualisieren möchten, auf das more_vert, und dann auf Definition ansehen.
Ändern Sie die Abfrage.
Klicken Sie auf Ausführen.
Nachdem Sie geprüft haben, ob im Ergebnisbereich die Daten angezeigt werden, die in die Ansicht aufgenommen werden sollen, klicken Sie auf Speichern unter.
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.
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 AnsichtINSTANCE: die ID der Instanz, die die logische Ansicht enthältQUERY: 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
Öffnen Sie in der Google Cloud Console die Liste der Bigtable-Instanzen.
Wählen Sie eine Instanz aus der Liste aus.
Klicken Sie im Navigationsbereich auf Bigtable Studio. Im Explorer wird eine Liste der Ansichten angezeigt.
Optional: Die ersten 10 Ansichten in der Instanz werden aufgelistet. Klicken Sie auf Mehr anzeigen , um 10 weitere Ansichten aufzurufen.
Maximieren Sie Ansichten.
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 AnsichtINSTANCE: 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
Öffnen Sie in der Google Cloud Console die Liste der Bigtable-Instanzen.
Wählen Sie eine Instanz aus der Liste aus.
Klicken Sie im Navigationsbereich auf Bigtable Studio. Im Explorer wird eine Liste der Ansichten angezeigt.
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
- GoogleSQL für Bigtable – Übersicht
- Kontinuierliche materialisierte Ansichten
- Übersicht über autorisierte Ansichten