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:
-
Install the 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 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
- Erstellen:
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
- Liste:
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:
- Weisen Sie dem Nutzer die Rolle
bigtable.reader
für das Projekt zu. 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
Ö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 im Abfrageeditor. Wenn die Abfrage gültiges SQL ist, wird die Meldung Gültig angezeigt.
Optional: Wenn Sie die Anweisung im SQL-Stil formatieren möchten, klicken Sie auf 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 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 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, 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
Ö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 aufgeführt. Wenn Sie 10 weitere sehen möchten, klicken Sie auf Mehr anzeigen.
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 geprüft haben, ob im Ergebnisbereich Daten angezeigt werden, die in der Ansicht enthalten sein sollten, klicken Sie auf Speichern unter.
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.
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 AnsichtQUERY
: 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
Ö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 aufgeführt. Wenn Sie 10 weitere sehen möchten, klicken Sie auf Mehr anzeigen.
Maximieren Sie Aufrufe.
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 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 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
- GoogleSQL für Bigtable – Übersicht
- Kontinuierliche materialisierte Ansichten
- Übersicht über autorisierte Ansichten