Ansichten erstellen
In diesem Dokument erfahren Sie, wie Sie Ansichten in BigQuery erstellen.
Sie haben folgende Möglichkeiten, um eine Ansicht in BigQuery zu erstellen:
- Google Cloud Console verwenden
- Den Befehl
bq mk
des 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
TableDataList
kann 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 Google Cloud Console
- Der Befehl
bq update --view
im 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.
mytable
undMyTable
kö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_name
Dieses 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
Klicken Sie nach dem Ausführen einer Abfrage auf die Schaltfläche Ansicht speichern über dem Fenster mit den Abfrageergebnissen, um die Abfrage als Ansicht zu speichern.
Gehen Sie im Dialogfeld Ansicht speichern so vor:
- Wählen Sie für Projektname ein Projekt zum Speichern der Ansicht aus.
- Wählen Sie für Dataset-Name ein Dataset zum Speichern der Ansicht aus. Das Dataset mit der Ansicht und das Dataset mit den Tabellen, auf die in der Ansicht verwiesen wird, müssen sich am selben Standort befinden.
- Geben Sie für Tabellenname 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.
Öffnen Sie in der Google Cloud Console die Seite BigQuery.
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_FILE
ist 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.INTEGER
legt die Lebensdauer für die Ansicht in Sekunden fest. Wenn der Wert fürINTEGER
0
ist, läuft die Ansicht nicht ab. Wenn Sie das Flag--expiration
nicht angeben, erstellt BigQuery die Ansicht mit der Standardlebensdauer des Datasets.DESCRIPTION
ist eine Beschreibung der Ansicht in Anführungszeichen.KEY_1:VALUE_1
ist das Schlüssel/Wert-Paar für ein Label. Wiederholen Sie das Flag--label
, um mehrere Labels anzugeben.KEY_2:VALUE_2
ist das Schlüssel/Wert-Paar für ein Tag. Fügen Sie mehrere Tags unter demselben Flag hinzu und trennen Sie die Schlüssel/Wert-Paare durch Kommas.QUERY
ist eine gültige Abfrage.PROJECT_ID
ist Ihre Projekt-ID (wenn Sie kein Standardprojekt konfiguriert haben).DATASET
ist ein Dataset in Ihrem Projekt.VIEW
ist 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 Google Cloud-Projekt anzuwenden.
Cloud Shell vorbereiten
- Rufen Sie Cloud Shell auf.
-
Legen Sie das Google Cloud-Standardprojekt 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
.tf
haben, z. B.main.tf
. In dieser Anleitung wird die Datei alsmain.tf
bezeichnet.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
-upgrade
ein, 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
yes
an der Eingabeaufforderung ein:terraform apply
Warten Sie, bis Terraform die Meldung „Apply complete“ anzeigt.
- Öffnen Sie Ihr Google Cloud-Projekt, um die Ergebnisse aufzurufen. Rufen Sie in der Google Cloud 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.
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.
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.
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.
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.