Logische Ansichten erstellen
In diesem Dokument wird beschrieben, wie Sie logische Ansichten in BigQuery erstellen.
Sie haben folgende Möglichkeiten, eine logische Ansicht zu erstellen:
- Cloud de Confiance -Konsole verwenden
- Den Befehl
bq mkdes bq-Befehlszeilentools verwenden - Durch Aufruf der API-Methode
tables.insert - Mithilfe der Clientbibliotheken
- Durch Senden einer
CREATE VIEW-DDL-Anweisung (Data Definition Language, Datendefinitionssprache).
Beschränkungen von Ansichten
BigQuery-Ansichten unterliegen den folgenden Beschränkungen:
- Ansichten sind schreibgeschützt. Sie können beispielsweise keine Abfragen ausführen, die Daten einfügen, aktualisieren oder löschen.
- Das Dataset, in dem die Ansicht enthalten ist, und das Dataset mit den Tabellen, auf die in der Ansicht verwiesen wird, müssen sich am selben Standort befinden.
- Ein Verweis innerhalb einer Ansicht muss mit einem Dataset qualifiziert sein. Das Standard-Dataset hat keinen Einfluss auf einen Ansichtstext.
- Die JSON API-Methode
TableDataListkann nicht zum Abrufen von Daten aus einer Ansicht verwendet werden. Weitere Informationen finden Sie unter Tabledata: list. - Bei Verwendung von Ansichten können GoogleSQL- und Legacy-SQL-Abfragen nicht kombiniert werden. Eine GoogleSQL-Abfrage kann nicht auf eine Ansicht verweisen, die mit der Legacy-SQL-Syntax definiert ist.
- Sie können in Ansichten keine Abfrageparameter referenzieren.
- Die Schemas der zugrunde liegenden Tabellen werden beim Erstellen der Ansicht mit dieser gespeichert. Wenn Spalten nach dem Erstellen der Ansicht hinzugefügt, gelöscht oder geändert werden, wird die Ansicht nicht automatisch aktualisiert. Das gemeldete Schema bleibt so lange ungenau, bis die SQL-Definition der Ansicht geändert oder die Ansicht neu erstellt wird. Auch wenn das gemeldete Schema ungenau sein könnte, geben die übermittelten Abfragen doch genaue Ergebnisse zurück.
- Sie können eine Legacy-SQL-Ansicht nicht automatisch auf die GoogleSQL-Syntax aktualisieren. Zum Ändern der Abfrage zum Definieren einer Ansicht verwenden Sie Folgendes:
- Die Option Abfrage bearbeiten in der Cloud de Confiance Console
- Der Befehl
bq update --viewim bq-Befehlszeilentool - Die BigQuery-Clientbibliotheken
- Die API-Methoden update oder patch.
- Es ist nicht möglich, eine temporäre benutzerdefinierte Funktion oder eine temporäre Tabelle in die SQL-Abfrage aufzunehmen, die eine Ansicht definiert.
- In der Abfrage einer Platzhaltertabelle kann keine Ansicht referenziert werden.
Informationen zu Kontingenten und Beschränkungen von Ansichten finden Sie unter Limits von Ansichten.
Hinweis
Erteilen Sie IAM-Rollen (Identity and Access Management), die Nutzern die erforderlichen Berechtigungen zum Ausführen der einzelnen Aufgaben in diesem Dokument geben.
Erforderliche Berechtigungen
Ansichten werden in BigQuery als Tabellenressourcen behandelt. Daher sind für das Erstellen einer Ansicht dieselben Berechtigungen erforderlich wie für das Erstellen einer Tabelle. Sie benötigen außerdem Berechtigungen zum Abfragen aller Tabellen, auf die die SQL-Abfrage der Ansicht verweist.
Sie benötigen die IAM-Berechtigung bigquery.tables.create, um eine Ansicht zu erstellen. Die vordefinierte IAM-Rolle roles/bigquery.dataEditor enthält die Berechtigungen, die Sie zum Erstellen einer Konfiguration benötigen.
Wenn Sie die Berechtigung bigquery.datasets.create haben, können Sie außerdem Ansichten in den von Ihnen erstellten Datasets erstellen. Wenn Sie eine Ansicht für Daten erstellen möchten, deren Inhaber Sie nicht sind, benötigen Sie die Berechtigung bigquery.tables.getData für diese Tabelle.
Weitere Informationen zu IAM-Rollen und Berechtigungen in BigQuery finden Sie unter Vordefinierte Rollen und Berechtigungen.
Benennung anzeigen
Wenn Sie eine Ansicht in BigQuery erstellen, muss der Name der Ansicht im jeweiligen Dataset eindeutig sein. Der Name der Ansicht kann:
- Zeichen mit insgesamt bis zu 1.024 UTF-8-Byte enthalten.
- Unicode-Zeichen in Kategorie L (Buchstabe), M (Zeichen), N (Zahl), Pc (Verbindungselement, einschließlich Unterstrich), Pd (Strich), Zs (Leerzeichen) enthalten Weitere Informationen finden Sie unter Allgemeine Kategorie.
Beispiele für gültige Ansichtsnamen: view 01, ग्राहक, 00_お客様, étudiant-01.
Vorsichtsmaßnahmen:
- Bei Tabellennamen wird standardmäßig zwischen Groß- und Kleinschreibung unterschieden.
mytableundMyTablekönnen im selben Dataset gleichzeitig vorhanden sein, es sei denn, sie sind Teil eines Datasets mit deaktivierter Berücksichtigung der Groß-/Kleinschreibung. - Einige Ansichtsnamen und Ansichtsnamenspräfixe sind reserviert. Wenn Ihnen eine Fehlermeldung angezeigt wird, dass der Ansichtsname oder das Präfix reserviert ist, wählen Sie einen anderen Namen aus und versuchen Sie es noch einmal.
Wenn Sie mehrere Punktoperatoren (
.) in eine Sequenz aufnehmen, werden die doppelten Operatoren implizit entfernt.Beispiel:
project_name....dataset_name..table_nameDieses Tag wird folgendermaßen geändert:
project_name.dataset_name.table_name
Ansicht erstellen
Sie können eine Ansicht erstellen, indem Sie eine SQL-Abfrage verfassen, mit der die für die Ansicht zugänglichen Daten definiert werden. Die SQL-Abfrage muss aus einer SELECT-Anweisung bestehen.
Andere Anweisungstypen (z. B. DML-Anweisungen) und Abfragen mit mehreren Anweisungen sind in Ansichtsabfragen nicht zulässig.
So erstellen Sie eine Ansicht:
Console
Rufen Sie in der Cloud de Confiance Console die Seite BigQuery auf.
Klicken Sie auf SQL-Abfrage.
Geben Sie im Abfrageeditor eine gültige SQL-Abfrage ein.
Alternativ können Sie eine gespeicherte Abfrage öffnen.
Klicken Sie auf
Speichern > Ansicht speichern.
Gehen Sie im Dialogfeld Ansicht speichern so vor:
- Wählen Sie im Menü Projekt ein Projekt zum Speichern der Ansicht aus.
- Wählen Sie im Menü Dataset ein Dataset aus oder erstellen Sie ein neues Dataset, in dem die Ansicht gespeichert werden soll. Das Ziel-Dataset für eine gespeicherte Ansicht muss sich in derselben Region wie die Quelle befinden.
- Geben Sie im Feld Tabelle den Namen der Ansicht ein.
- Klicken Sie auf Speichern.
SQL
Verwenden Sie die Anweisung CREATE VIEW.
Mit der folgenden Anweisung wird eine Ansicht mit dem Namen usa_male_names aus dem öffentlichen Dataset "USA" erstellt.
Rufen Sie in der Cloud de Confiance Console die Seite BigQuery auf.
Geben Sie im Abfrageeditor die folgende Anweisung ein:
CREATE VIEW mydataset.usa_male_names(name, number) AS ( SELECT name, number FROM `bigquery-public-data.usa_names.usa_1910_current` WHERE gender = 'M' ORDER BY number DESC );
Klicken Sie auf Ausführen.
Informationen zum Ausführen von Abfragen finden Sie unter Interaktive Abfrage ausführen.
bq
Führen Sie den Befehl bq mk
mit dem Flag --view aus. Fügen Sie für GoogleSQL-Abfragen das Flag --use_legacy_sql hinzu und setzen Sie es auf false. Zu den optionalen Parametern gehören --add_tags, --expiration, --description und --label. Eine vollständige Liste der Parameter finden Sie in der bq mk-Befehlsreferenz.
Wenn die Abfrage auf externe, benutzerdefinierte Funktionsressourcen verweist, die in Cloud Storage oder lokalen Dateien gespeichert sind, geben Sie diese Ressourcen mit dem Flag --view_udf_resource an. Das Flag --view_udf_resource wird hier nicht erläutert. Weitere Informationen zur Verwendung von UDFs finden Sie unter UDFs.
Wenn Sie eine Ansicht in einem anderen Projekt als Ihrem Standardprojekt erstellen, geben Sie die Projekt-ID mit dem Flag --project_id an.
bq mk \ --use_legacy_sql=false \ --view_udf_resource=PATH_TO_FILE \ --expiration=INTEGER \ --description="DESCRIPTION" \ --label=KEY_1:VALUE_1 \ --add_tags=KEY_2:VALUE_2[,...] \ --view='QUERY' \ --project_id=PROJECT_ID \ DATASET.VIEW
Dabei gilt:
PATH_TO_FILEist der URI oder der Pfad zu einer lokalen Codedatei, die sofort als UDF-Ressource geladen und ausgewertet und dann von der Ansicht verwendet wird. Wiederholen Sie das Flag, um mehrere Dateien anzugeben.INTEGERlegt die Lebensdauer für die Ansicht in Sekunden fest. Wenn der Wert fürINTEGER0ist, läuft die Ansicht nicht ab. Wenn Sie das Flag--expirationnicht angeben, erstellt BigQuery die Ansicht mit der Standardlebensdauer des Datasets.DESCRIPTIONist eine Beschreibung der Ansicht in Anführungszeichen.KEY_1:VALUE_1ist das Schlüssel/Wert-Paar für ein Label. Wiederholen Sie das Flag--label, um mehrere Labels anzugeben.KEY_2:VALUE_2ist das Schlüssel/Wert-Paar für ein Tag. Fügen Sie mehrere Tags unter demselben Flag hinzu, indem Sie Kommas zwischen die Schlüssel/Wert-Paare setzen.QUERYist eine gültige Abfrage.PROJECT_IDist Ihre Projekt-ID (wenn Sie kein Standardprojekt konfiguriert haben).DATASETist ein Dataset in Ihrem Projekt.VIEWist der Name der Ansicht, die Sie erstellen möchten.
Beispiele:
Geben Sie den folgenden Befehl ein, um eine Ansicht mit dem Namen myview in
mydataset in Ihrem Standardprojekt zu erstellen. Die Ablaufzeit wird auf
3.600 Sekunden (1 Stunde), die Beschreibung auf This is my view und das Label auf organization:development festgelegt. Mit der zum Erstellen der Ansicht verwendeten Abfrage werden Daten aus dem öffentlichen Dataset USA Name Data abgefragt.
bq mk \
--use_legacy_sql=false \
--expiration 3600 \
--description "This is my view" \
--label organization:development \
--view \
'SELECT
name,
number
FROM
`bigquery-public-data.usa_names.usa_1910_current`
WHERE
gender = "M"
ORDER BY
number DESC' \
mydataset.myview
Geben Sie den folgenden Befehl ein, um eine Ansicht mit dem Namen myview in mydataset in myotherproject zu erstellen. Die Beschreibung ist auf This is my view, das Label auf organization:development und der Ablauf der Ansicht auf den Standardtabellenablauf des Datasets gesetzt.
Mit der zum Erstellen der Ansicht verwendeten Abfrage werden Daten aus dem öffentlichen Dataset USA Name Data abgefragt.
bq mk \
--use_legacy_sql=false \
--description "This is my view" \
--label organization:development \
--project_id myotherproject \
--view \
'SELECT
name,
number
FROM
`bigquery-public-data.usa_names.usa_1910_current`
WHERE
gender = "M"
ORDER BY
number DESC' \
mydataset.myview
Nachdem die Ansicht erstellt wurde, können Sie die Ablaufzeit, Beschreibung und Labels der Ansicht aktualisieren. Weitere Informationen finden Sie unter Ansichtsattribute aktualisieren.
Terraform
Verwenden Sie die Ressource google_bigquery_table:
Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Im folgenden Beispiel wird eine Ansicht mit dem Namen myview erstellt:
Führen Sie die Schritte in den folgenden Abschnitten aus, um Ihre Terraform-Konfiguration auf ein Cloud de Confiance -Projekt anzuwenden.
Cloud Shell vorbereiten
- Rufen Sie Cloud Shell auf.
-
Legen Sie das Standardprojekt Cloud de Confiance fest, auf das Sie Ihre Terraform-Konfigurationen anwenden möchten.
Sie müssen diesen Befehl nur einmal pro Projekt und in jedem beliebigen Verzeichnis ausführen.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Umgebungsvariablen werden überschrieben, wenn Sie in der Terraform-Konfigurationsdatei explizite Werte festlegen.
Verzeichnis vorbereiten
Jede Terraform-Konfigurationsdatei muss ein eigenes Verzeichnis haben (auch als Stammmodul bezeichnet).
-
Erstellen Sie in Cloud Shell ein Verzeichnis und eine neue Datei in diesem Verzeichnis. Der Dateiname muss die Erweiterung
.tfhaben, z. B.main.tf. In dieser Anleitung wird die Datei alsmain.tfbezeichnet.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Wenn Sie einer Anleitung folgen, können Sie den Beispielcode in jedem Abschnitt oder Schritt kopieren.
Kopieren Sie den Beispielcode in das neu erstellte
main.tf.Kopieren Sie optional den Code aus GitHub. Dies wird empfohlen, wenn das Terraform-Snippet Teil einer End-to-End-Lösung ist.
- Prüfen und ändern Sie die Beispielparameter, die auf Ihre Umgebung angewendet werden sollen.
- Speichern Sie die Änderungen.
-
Initialisieren Sie Terraform. Dies ist nur einmal für jedes Verzeichnis erforderlich.
terraform init
Fügen Sie optional die Option
-upgradeein, um die neueste Google-Anbieterversion zu verwenden:terraform init -upgrade
Änderungen anwenden
-
Prüfen Sie die Konfiguration und prüfen Sie, ob die Ressourcen, die Terraform erstellen oder aktualisieren wird, Ihren Erwartungen entsprechen:
terraform plan
Korrigieren Sie die Konfiguration nach Bedarf.
-
Wenden Sie die Terraform-Konfiguration an. Führen Sie dazu den folgenden Befehl aus und geben Sie
yesan der Eingabeaufforderung ein:terraform apply
Warten Sie, bis Terraform die Meldung „Apply complete“ anzeigt.
- Öffnen Sie Ihr Cloud de Confiance Projekt, um die Ergebnisse aufzurufen. Rufen Sie in der Cloud de Confiance Console Ihre Ressourcen in der Benutzeroberfläche auf, um sicherzustellen, dass Terraform sie erstellt oder aktualisiert hat.
API
Rufen Sie die Methode tables.insert mit einer Tabellenressource auf, die ein view-Attribut enthält.
Go
Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Go in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Go API.
Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Legen Sie vor dem Ausführen von Codebeispielen die Umgebungsvariable GOOGLE_CLOUD_UNIVERSE_DOMAIN auf s3nsapis.fr fest.
Java
Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Java in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Java API.
Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Legen Sie vor dem Ausführen von Codebeispielen die Umgebungsvariable GOOGLE_CLOUD_UNIVERSE_DOMAIN auf s3nsapis.fr fest.
Node.js
Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Node.js in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Node.js API.
Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Legen Sie vor dem Ausführen von Codebeispielen die Umgebungsvariable GOOGLE_CLOUD_UNIVERSE_DOMAIN auf s3nsapis.fr fest.
Python
Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Python in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Python API.
Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Legen Sie vor dem Ausführen von Codebeispielen die Umgebungsvariable GOOGLE_CLOUD_UNIVERSE_DOMAIN auf s3nsapis.fr fest.
Nachdem Sie eine Ansicht erstellen, fragen Sie diese genauso wie eine Tabelle ab.
Sicherheit ansehen
Informationen zum Steuern des Zugriffs auf Ansichten in BigQuery finden Sie unter Autorisierte Ansichten.