Logische Ansichten erstellen und verwalten
Mit logischen Ansichten in Bigtable können Sie SQL-Abfragen als virtuelle Tabellen speichern, auf die andere SQL-Abfragen verweisen können, während die Daten in der Quelltabelle verbleiben. Diese Ansichten bieten Ihnen folgende Möglichkeiten:
- Wiederholung der Abfragelogik vermeiden
- Daten in einem relationalen Format darstellen
- Lesezugriff auf bestimmte Zeilen oder Spalten beschränken
Sie können logische Ansichten mit der Google Cloud CLI oder dem Bigtable Studio-Abfrageeditor in der Google Cloud Console erstellen und verwalten. Sie können logische Ansichten mit dem Abfrageeditor oder einer der Bigtable-Clientbibliotheken, die SQL unterstützen, abfragen. Einen Vergleich mit kontinuierlichen materialisierten Ansichten und autorisierten Ansichten finden Sie unter Tabellen und Ansichten.
Logische Ansichten
Mit logischen Ansichten können Sie Folgendes mit Ihren Bigtable-Daten tun:
- Abfragewiederholungen vermeiden: Sie können die Spaltenzuordnung und die Umwandlungslogik in einer logischen Ansicht speichern und weiterentwickeln. Diese Logik kann dann von zusätzlichen logischen Ansichten verwendet werden, anstatt sie zu kopieren und einzufügen oder sie verstehen zu müssen.
- In Systeme einbinden, die für das Lesen aus relationalen Datenbanken konzipiert sind: Mit logischen Ansichten können Sie Ihre Bigtable-Daten wie eine relationale Datenbanktabelle oder eine Cassandra-Tabelle lesen.
- Dieselbe logische Ansicht für viele Tabellen ausführen: Wenn Sie die
FROM-Klausel ändern, können Sie dieselbe Ansicht verwenden, um jede Tabelle in Ihrer Bigtable-Instanz abzufragen. - Konsistente Oberflä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 freigeben, die Nutzer lesen dürfen, ohne ihnen Zugriff auf die gesamte Tabelle zu gewähren.
Eine logische Ansicht ist eine Ressource auf Instanzebene mit den folgenden Merkmalen:
- Es müssen SQL-Funktionen verwendet werden, die von GoogleSQL for Bigtable unterstützt werden.
- Die SQL-Abfrage, die eine logische Ansicht definiert, kann
SELECT *nicht verwenden. - Schreibgeschützt
- Muss mit SQL und nicht mit einem Aufruf von
ReadRowsgelesen werden - Kann mit allen Bigtable-Clientbibliotheken, die SQL unterstützen, abgefragt werden
- Verwendet Definiererrechte. Sie können eine logische Ansicht abfragen, wenn Sie Leseberechtigungen dafür haben, auch wenn Sie keine Leseberechtigungen für die 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 Datenschutzhinweisen fürGoogle Cloud .
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
Für die Arbeit mit logischen Ansichten 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
- Erstellen:
So rufen Sie logische Ansichten auf und fragen sie ab:
- 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:
- Liste:
bigtable.logicalViews.list - Beschreiben:
bigtable.logicalViews.get
- Liste:
Zum Abfragen einer logischen Ansicht benötigen Sie die Berechtigung
bigtable.logicalViews.readRowsfür die logische Ansicht.
So erstellen Sie eine logische Ansicht:
- Sie benötigen mindestens die Berechtigung
bigtable.tables.readRowsfü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 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 spezifische 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 ID mit bis zu 128 Zeichen 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 Bigtable-Zugriffssteuerung 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 klicken und dann Editor auswählen.
Schreiben Sie Ihre Abfrage in den Abfrageeditor. 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 Ihrer Abfrage werden in der Tabelle Ergebnisse angezeigt.
Wenn Sie mit der Abfrage zufrieden sind, klicken Sie auf den Erweiterungspfeil 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 zum Erstellen einer logischen Ansicht den Befehl gcloud bigtable logical-views create.
gcloud bigtable logical-views create VIEW \
--instance=INSTANCE --query=QUERY
Ersetzen Sie Folgendes:
VIEW: Eine ID mit bis zu 128 Zeichen 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 for Bigtable-Abfrage. Die Abfrage darf nichtSELECT *verwenden.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-protectionan 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-protectionanhängen. Weitere Informationen finden Sie im Abschnitt Logische Ansicht aktualisieren in diesem Dokument.
Logische Ansicht aktualisieren
Console
Sie können den Löschschutz für eine logische Ansicht nicht in derGoogle Cloud Console 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 weitere 10 anzuzeigen.
Klicken Sie neben der Ansicht, die Sie aktualisieren möchten, auf das Aktionsmenü more_vert und dann auf Ansichtsdefinition.
Ändern Sie die Abfrage.
Klicken Sie auf Ausführen.
Nachdem Sie überprüft haben, ob im Ergebnisfenster die Daten angezeigt werden, die in der Ansicht enthalten sein sollen, klicken Sie auf Speichern unter.
Geben Sie im Dialogfeld die ID der Ansicht ein, die Sie geändert haben.
Im Dialogfeld wird eine Warnung angezeigt, dass Sie die vorhandene Ansicht überschreiben.
Klicken Sie auf Speichern.
gcloud
Verwenden Sie den Befehl gcloud bigtable logical-views update, um eine logische Ansicht so zu aktualisieren, dass eine andere Abfrage ausgeführt wird, oder um 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 logischen Ansicht, die aktualisiert werden sollINSTANCE: 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 weitere 10 anzuzeigen.
Maximieren Sie Ansichten.
Klicken Sie neben der Ansicht, die Sie löschen möchten, auf das Aktionsmenü more_vert und dann auf Löschen.
gcloud
Verwenden Sie zum Löschen einer logischen Ansicht den Befehl gcloud bigtable logical-views delete.
gcloud bigtable logical-views delete VIEW \
--instance=INSTANCE
Ersetzen Sie Folgendes:
VIEW: die ID der logischen Ansicht, die aktualisiert werden sollINSTANCE: 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 weitere 10 anzuzeigen.
gcloud
Verwenden Sie den Befehl gcloud bigtable logical-views list, 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
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 wie die 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 Namen der Ansicht 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.
Beschränkungen
- Sie können keine logischen Ansichten für Tabellen mit Mikrosekunden-Zeitstempel-Detaillierungsgrad erstellen.
Nächste Schritte
- Weitere Informationen zum Abfragen von Bigtable-Daten mit SQL finden Sie unter GoogleSQL für Bigtable – Übersicht.
- Informationen zum Vorberechnen und Speichern von Abfrageergebnissen aus einer Quelltabelle im Cache finden Sie unter Kontinuierliche materialisierte Ansichten.
- Informationen zum Konfigurieren des detaillierten Lese- und Schreibzugriffs auf bestimmte Teilmengen von Daten finden Sie unter Übersicht über autorisierte Ansichten.
- Informationen zum dynamischen Filtern von Daten in logischen Ansichten basierend auf dem Anwendungskontext finden Sie unter Übersicht über parametrisierte Ansichten.