Tabellendaten verwalten
In diesem Dokument wird beschrieben, wie Tabellendaten in BigQuery verwaltet werden. Sie können auf die folgenden Arten mit BigQuery-Tabellendaten arbeiten:
- Daten in eine Tabelle laden
- Tabellendaten anfügen oder überschreiben
- In Tabellendaten suchen (oder Vorschau ansehen)
- Tabellendaten abfragen
- Tabellendaten mithilfe der Datenbearbeitungssprache (Data Manipulation Language, DML) ändern
- Tabellendaten kopieren
- Tabellendaten exportieren
Weitere Informationen zum Verwalten von Tabellenschemas finden Sie unter Tabellenschemas ändern.
Hinweis
Erteilen Sie Nutzern, die die einzelnen Aufgaben in diesem Dokument ausführen müssen, Rollen. Die erforderlichen Berechtigungen (sofern vorhanden) sind im Bereich "Erforderliche Berechtigungen" der Aufgabe aufgeführt.
Daten in eine Tabelle laden
Sie können Daten laden, wenn Sie eine Tabelle erstellen, oder Sie können eine leere Tabelle erstellen und die Daten später laden. Wenn Sie Daten laden, haben Sie die Möglichkeit, für unterstützte Datenformate die automatische Schemaerkennung zu verwenden oder das Schema anzugeben.
Weitere Informationen zum Laden von Daten finden Sie in der Dokumentation zum Format und Speicherort Ihrer Quelldaten:
Weitere Informationen finden Sie unter Daten aus Cloud Storage laden:
Weitere Informationen zum Laden von Daten aus einer lokalen Quelle finden Sie unter Daten aus lokalen Dateien laden.
Tabellendaten anfügen und überschreiben
Sie haben die Möglichkeit, Tabellendaten mit einem Lade- oder Abfragevorgang zu überschreiben. Sie können zusätzliche Daten an eine vorhandene Tabelle anfügen. Dazu führen Sie einen Lade-/Anfügevorgang aus oder fügen Abfrageergebnisse an die Tabelle an.
Weitere Informationen zum Anfügen oder Überschreiben einer Tabelle beim Laden von Daten finden Sie in der Dokumentation zu Ihrem Quelldatenformat:
- Avro-Daten an eine Tabelle anfügen oder Tabelle mit Avro-Daten überschreiben
- CSV-Daten an eine Tabelle anfügen oder eine Tabelle mit CSV-Daten überschreiben
- JSON-Daten an eine Tabelle anfügen oder Tabelle mit JSON-Daten überschreiben
- Parquet-Daten an eine Tabelle anfügen oder Tabelle mit Parquet-Daten überschreiben
- ORC-Daten an eine Tabelle anfügen oder Tabelle mit ORC-Daten überschreiben
- Datastore-Daten an eine Tabelle anfügen oder Tabelle mit Datastore-Daten überschreiben
Wenn Sie Abfrageergebnissen an eine Tabelle anfügen oder sie damit überschreiben möchten, geben Sie eine Zieltabelle an und legen Sie die Schreibanforderung auf eine dieser Optionen fest:
- Append to table (An Tabelle anfügen): Die Abfrageergebnisse werden an eine vorhandene Tabelle angefügt.
- Overwrite table (Tabelle überschreiben): Eine vorhandene Tabelle mit demselben Namen wird mit den Abfrageergebnissen überschrieben.
Sie können die folgende Abfrage verwenden, um Datensätze aus einer Tabelle an eine andere anzufügen:
INSERT INTO. . ( , ) (SELECT * FROM . . )
Weitere Informationen zum Verwenden von Abfrageergebnissen zum Anfügen oder Überschreiben von Daten finden Sie unter Abfrageergebnisse schreiben.
Tabellendaten durchsuchen
So können Sie Tabellendaten durchsuchen:
- Google Cloud Console verwenden
- Den Befehl
bq head
des bq-Befehlszeilentools verwenden - Durch Aufrufen der API-Methode
tabledata.list
- Mithilfe der Clientbibliotheken
Erforderliche Berechtigungen
Zum Durchsuchen von Tabellen- und Partitionsdaten benötigen Sie die IAM-Berechtigung (Identitäts- und Zugriffsverwaltung) bigquery.tables.getData
.
Jede der folgenden vordefinierten IAM-Rollen enthält die Berechtigungen, die Sie zum Durchsuchen von Tabellen- und Partitionsdaten benötigen:
roles/bigquery.dataViewer
roles/bigquery.dataEditor
roles/bigquery.dataOwner
roles/bigquery.admin
Wenn Sie die Berechtigung bigquery.datasets.create
haben, können Sie in den Tabellen und Partitionen der erstellten Datasets suchen.
Weitere Informationen zu IAM-Rollen und Berechtigungen in BigQuery finden Sie unter Vordefinierte Rollen und Berechtigungen.
In Tabellendaten suchen
So suchen Sie in Tabellendaten:
Console
Öffnen Sie in der Google Cloud Console die Seite „BigQuery“.
Maximieren Sie im Bereich Explorer Ihr Projekt und wählen Sie ein Dataset aus.
Klicken Sie auf eine Tabelle in der Liste.
Klicken Sie auf Details und notieren Sie den Wert in Zeilenanzahl. Möglicherweise benötigen Sie diesen Wert, um den Ausgangspunkt für Ihre Ergebnisse mit dem bq-Befehlszeilentool oder der API zu steuern.
Klicken Sie auf Preview (Vorschau). Ein Beispielsatz mit Daten wird angezeigt:
Befehlszeile
Führen Sie den Befehl bq head
mit dem Flag --max_rows
aus, um alle Spalten in einer bestimmten Anzahl von Tabellenzeilen aufzulisten. Wenn --max_rows
nicht angegeben ist, lautet die Standardeinstellung 100.
Verwenden Sie das Flag --selected_fields
und geben Sie die Spalten als durch Kommas getrennte Liste ein, um in einer Teilmenge von Spalten in der Tabelle zu suchen, einschließlich verschachtelter und sich wiederholender Spalten.
Mit dem Flag --start_row=integer
(oder dem Kürzel -s
) können Sie festlegen, wie viele Zeilen übersprungen werden, bevor die Tabellendaten angezeigt werden. Der Standardwert ist 0
. Die Anzahl der Zeilen in einer Tabelle können Sie mit dem Befehl bq show
zum Abrufen von Tabelleninformationen abfragen.
Wenn sich die Tabelle, die Sie ansehen möchten, in einem anderen Projekt als Ihrem Standardprojekt befindet, fügen Sie dem Befehl die Projekt-ID im folgenden Format hinzu: project_id:dataset.table
.
bq head \ --max_rows integer1 \ --start_row integer2 \ --selected_fields "columns" \ project_id:dataset.table
Dabei gilt:
- integer1 ist die Anzahl der anzuzeigenden Zeilen.
- integer2 ist die Anzahl der zu überspringenden Zeilen, bevor Daten angezeigt werden.
- columns ist eine durch Kommas getrennte Liste von Spalten.
- project_id ist die Projekt-ID.
- dataset ist der Name des Datasets, das die Tabelle enthält.
- table ist der Name der zu durchsuchenden Tabelle.
Beispiele:
Geben Sie den folgenden Befehl ein, um alle Spalten in den ersten 10 Zeilen in mydataset.mytable
aufzulisten. mydataset
befindet sich in Ihrem Standardprojekt.
bq head --max_rows=10 mydataset.mytable
Geben Sie den folgenden Befehl ein, um alle Spalten in den ersten 100 Zeilen in mydataset.mytable
aufzulisten. mydataset
befindet sich im Projekt myotherproject
, nicht in Ihrem Standardprojekt.
bq head myotherproject:mydataset.mytable
Geben Sie den folgenden Befehl ein, um nur field1
und field2
aus mydataset.mytable
anzeigen zu lassen. Der Befehl verwendet das Flag --start_row
, um zu Zeile 100 zu springen.
mydataset.mytable
befindet sich in Ihrem Standardprojekt.
bq head --start_row 100 --selected_fields "field1,field2" mydataset.mytable
Da mit dem Befehl bq head
kein Abfragejob erstellt wird, werden bq head
-Befehle nicht im Abfrageverlauf angezeigt und nicht berechnet.
API
Wenn Sie die Daten in einer Tabelle ansehen möchten, rufen Sie tabledata.list
auf.
Geben Sie den Namen der Tabelle im Parameter tableId
an.
Mit den folgenden optionalen Parametern können Sie die Ausgabe steuern:
maxResults
: Maximale Anzahl der Ergebnisse, die zurückgegeben werden sollenselectedFields
: durch Kommas getrennte Liste der Spalten, die zurückgegeben werden sollen; wenn nicht angegeben, werden alle Spalten zurückgegebenstartIndex
: nullbasierter Index der Startzeile, die gelesen werden soll
Die Werte werden zusammengefasst in einem JSON-Objekt zurückgegeben. Dieses Objekt muss dann wie in der Referenzdokumentation zu tabledata.list
beschrieben geparst werden.
C#
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der C#-Einrichtungsanleitung in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery C# API.
Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Go
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Go-Einrichtungsanleitung 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.
Die Cloud-Clientbibliothek für Go erstellt Seitenumbrüche standardmäßig automatisch. Deshalb müssen Sie die Seitenumbrüche nicht selbst einfügen. Beispiel:
Java
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Java-Einrichtungsanleitung 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 ausprobieren, folgen Sie der Node.js-Einrichtungsanleitung 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.
Die Cloud-Clientbibliothek für Node.js erstellt Seitenumbrüche standardmäßig automatisch. Deshalb müssen Sie die Seitenumbrüche nicht selbst einfügen. Beispiel:
PHP
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der PHP-Einrichtungsanleitung in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery PHP API.
Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Das Erstellen von Seitenumbrüchen erfolgt in den Cloud-Clientbibliotheken für PHP automatisch mit der Generatorfunktion rows
. Diese ruft im Verlauf der Iteration die nächste Seite mit Ergebnissen ab.
Python
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Python-Einrichtungsanleitung 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.
Ruby
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Ruby-Einrichtungsanleitung in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Ruby API.
Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Das Erstellen von Seitenumbrüchen erfolgt in den Cloud-Clientbibliotheken für Ruby automatisch mit Table#data
und Data#next
.
Tabellendaten abfragen
Nachdem Sie Ihre Daten in BigQuery geladen haben, können Sie die Daten mit einem der folgenden Abfragejobtypen abfragen:
- Interaktive Abfragejobs. Standardmäßig führt BigQuery interaktive (On-Demand) Abfragejobs so schnell wie möglich aus.
- Batch-Abfragejobs. Bei diesen Jobs stellt BigQuery jede Batchabfrage in Ihrem Namen in die Warteschlange und startet sie, sobald inaktive Ressourcen verfügbar werden – normalerweise innerhalb weniger Minuten.
Sie können interaktive oder Batch-Abfragejobs mit folgenden Methoden ausführen:
- Erstellen Sie eine Abfrage in der Google Cloud Console und führen Sie sie aus.
- Führen Sie den Befehl
bq query
im bq-Befehlszeilentool aus. - Rufen Sie programmatisch eine der Methoden
jobs.query
oderjobs.insert
in der BigQuery REST API auf. - Verwenden Sie die BigQuery-Clientbibliotheken.
Weitere Informationen zum Abfragen von BigQuery-Tabellen finden Sie unter Einführung in das Abfragen von BigQuery-Daten.
Sie können nicht nur Daten, die in BigQuery-Tabellen gespeichert sind, sondern auch extern gespeicherte Daten abfragen. Weitere Informationen finden Sie unter Einführung in externe Datenquellen.
Tabellendaten ändern
Sie können Daten in einer Tabelle mit DML-Anweisungen (Data Manipulation Language, Datenbearbeitungssprache) in SQL ändern. Mit DML-Anweisungen können Sie Zeilen in Tabellen aktualisieren, zusammenführen, einfügen und löschen. Eine Syntaxreferenz und Beispiele für jeden DML-Anweisungstyp finden Sie unter Anweisungen der Datenbearbeitungssprache in GoogleSQL.
Legacy-SQL unterstützt keine DML-Anweisungen. Sie müssen die Tabelle löschen und anschließend mit den neuen Daten neu erstellen, um Daten mit Legacy-SQL-Dialekt zu aktualisieren oder zu löschen. Alternativ können Sie eine Abfrage schreiben, die die Daten ändert und die Abfrageergebnisse in eine neue Zieltabelle schreibt.
Tabellendaten kopieren
So können Sie eine Tabelle kopieren:
- Google Cloud Console verwenden
- Den Befehl
bq cp
des bq-Befehlszeilentools verwenden - Durch Aufrufen der API-Methode
jobs.insert
und Konfigurieren eines Kopierjobs - Mithilfe der Clientbibliotheken
Weitere Informationen zum Kopieren von Tabellen finden Sie unter Tabelle kopieren.
Tabellendaten exportieren
Sie können Tabellendaten in einen Cloud Storage-Bucket im CSV-, JSON-, Avro- oder Parquet-Format (Vorschau) exportieren. Der Export auf Ihre lokale Maschine wird nicht unterstützt. Sie können jedoch mit der Cloud Console Abfrageergebnisse herunterladen und speichern.
Weitere Informationen finden Sie unter Tabellendaten exportieren.
Tabellensicherheit
Informationen zum Steuern des Zugriffs auf Tabellen in BigQuery finden Sie unter Einführung in die Tabellenzugriffssteuerung.
Nächste Schritte
- Weitere Informationen zum Laden von Daten finden Sie unter Einführung in das Laden von Daten.
- Einführung in das Abfragen von BigQuery-Daten.
- Tabellenschemas ändern
- Tabellen erstellen und verwenden.
- Tabellen verwalten