Einführung in das Laden von Daten aus Cloud Storage

Diese Seite bietet eine Übersicht über das Laden von Daten aus Cloud Storage in BigQuery.

Übersicht

Wenn Sie Daten aus Cloud Storage in BigQuery laden, können Ihre Daten folgende Formate haben:

  • Kommagetrennte Werte (CSV)
  • JSON (durch Zeilenumbruch getrennt)
  • Avro
  • Parquet
  • ORC
  • Datastore-Exporte
  • Firestore-Exporte

Wiederkehrende Ladevorgänge von Cloud Storage in BigQuery werden vom BigQuery Data Transfer Service unterstützt.

BigQuery unterstützt das Laden von Daten aus den folgenden Cloud Storage-Speicherklassen:

  • Standard
  • Nearline
  • Coldline
  • Archivieren

Überlegungen zum Standort

Beachten Sie Folgendes, wenn Sie einen Standort für Ihre Daten auswählen:

  • Platzieren Sie die Cloud Storage-Buckets zum Laden von Daten am selben Standort.
    • Wenn sich Ihr BigQuery-Dataset an einem multiregionalen Standort befindet, muss sich der Cloud Storage-Bucket mit den Daten, die Sie laden, in einem regionalen oder multiregionalen Bucket am selben Standort befinden. Wenn sich Ihr BigQuery-Dataset zum Beispiel in der EU befindet, muss sich der Cloud Storage-Bucket in einem regionalen oder multiregionalen Bucket in der EU befinden.
    • Wenn sich Ihr Dataset an einem regionalen Standort befindet, muss der Cloud Storage-Bucket ein regionaler Bucket am selben Standort sein. Wenn sich Ihr Dataset zum Beispiel in der Region "Tokio" befindet, muss der Cloud Storage-Bucket ein regionaler Bucket in Tokio sein.
    • Ausnahme: Wenn sich Ihr Dataset am multiregionalen Standort "US" befindet, können Sie Daten aus einem Cloud Storage-Bucket laden, der sich an einem beliebigen regionalen oder multiregionalen Standort befindet.
  • Entwickeln Sie einen Plan zur Datenverwaltung.
    • Wenn Sie eine regionale Speicherressource wie ein BigQuery-Dataset oder einen Cloud Storage-Bucket auswählen, müssen Sie einen Plan für die geografische Verwaltung Ihrer Daten erstellen.

Weitere Informationen zu Cloud Storage-Standorten finden Sie unter Bucket-Standorte in der Cloud Storage-Dokumentation.

BigQuery-Daten zwischen Standorten verschieben

Der Standort eines Datasets lässt sich nach seiner Erstellung nicht mehr ändern. Sie können aber eine Kopie des Datasets anlegen. Ein Dataset lässt sich auch nicht von einem Standort an einen anderen verschieben. Sie haben jedoch die Möglichkeit, ein Dataset manuell zu verschieben, d. h. neu zu erstellen.

Datasets kopieren

Unter Datasets kopieren erfahren Sie, wie Sie ein Dataset kopieren, auch regionenübergreifend.

Dataset verschieben

Wenn Sie ein Dataset manuell von einem Standort an einen anderen verschieben möchten, gehen Sie so vor:

  1. Sie exportieren die Daten aus Ihren BigQuery-Tabellen in einen regionalen oder multiregionalen Cloud Storage-Bucket, der sich am selben Standort wie das Dataset befindet. Wenn sich Ihr Dataset zum Beispiel am multiregionalen Standort "EU" befindet, exportieren Sie Ihre Daten in einen regionalen oder multiregionalen Bucket in der EU.

    Beim Exportieren von Daten aus BigQuery fallen keine Gebühren an. Dagegen wird das Speichern der exportierten Daten in Cloud Storage in Rechnung gestellt. BigQuery-Exporte unterliegen den Limits für Exportjobs.

  2. Sie kopieren oder verschieben die Daten aus Ihrem Cloud Storage-Bucket in einen regionalen oder multiregionalen Bucket am neuen Standort. Wenn Sie zum Beispiel Ihre Daten vom multiregionalen Standort "US" an den regionalen Standort "Tokio" verschieben, werden die Daten in einen regionalen Bucket in Tokio übertragen. Weitere Informationen zum Übertragen von Cloud Storage-Objekten finden Sie in der Cloud Storage-Dokumentation unter Objekte umbenennen, kopieren und verschieben.

    Beachten Sie, dass beim Übertragen von Daten zwischen Regionen Gebühren für ausgehenden Netzwerktraffic in Cloud Storage anfallen.

  3. Nachdem Sie die Daten in einen Cloud Storage-Bucket am neuen Standort übertragen haben, erstellen Sie dort ein neues BigQuery-Dataset. Laden Sie Ihre Daten dann aus dem Cloud Storage-Bucket in BigQuery.

    Beim Laden der Daten in BigQuery fallen keine Kosten an. Das gilt jedoch nicht für das Speichern von Daten in Cloud Storage. Hier werden Gebühren berechnet, bis Sie die Daten oder den Bucket löschen. Es fallen außerdem Kosten an, wenn Sie die Daten in BigQuery speichern, nachdem sie geladen wurden. Das Laden von Daten in BigQuery unterliegt den Limits für Ladejobs.

Weitere Informationen zur Verwendung von Cloud Storage zum Speichern und Verschieben großer Datasets finden Sie unter Cloud Storage mit Big Data verwenden.

Beschränkungen

Beim Laden von Daten aus einem Cloud Storage-Bucket in BigQuery gelten die folgenden Beschränkungen:

  • Wenn für den Speicherort Ihres Datasets ein anderer Wert als US festgelegt ist, muss sich der regionale oder multiregionale Cloud Storage-Bucket in derselben Region wie das Dataset befinden.
  • BigQuery übernimmt bei externen Datenquellen keine Garantie für die Datenkonsistenz. Werden die zugrunde liegenden Daten während der Ausführung der Abfrage geändert, kann dies zu einem unerwarteten Verhalten führen.

Je nach Format Ihrer Cloud Storage-Quelldaten sind weitere Beschränkungen möglich. Weitere Informationen

Cloud Storage-URI abrufen

Wenn Sie Daten aus einer Cloud Storage-Datenquelle laden möchten, müssen Sie den Cloud Storage-URI angeben.

Der Cloud Storage-URI enthält den Namen Ihres Buckets und Ihr Objekt (Dateiname). Wenn der Cloud Storage-Bucket beispielsweise den Namen mybucket hat und die Datendatei den Namen myfile.csv hat, lautet der Bucket-URI gs://mybucket/myfile.csv. Wenn Ihre Daten auf mehrere Dateien verteilt sind, können Sie im URI einen Platzhalter verwenden. Weitere Informationen dazu finden Sie unter Anfrage-URIs für Cloud Storage.

BigQuery unterstützt keine Quell-URIs, die nach dem anfänglichen doppelten Schrägstrich weitere, aufeinanderfolgende Schrägstriche enthalten. Cloud Storage-Objektnamen können mehrere aufeinanderfolgende Schrägstriche ("/") enthalten. BigQuery wandelt sie jedoch in einen einzelnen Schrägstrich um. Der folgende Quell-URI ist beispielsweise in Cloud Storage gültig, funktioniert aber nicht in BigQuery: gs://bucket/my//object//name

So rufen Sie den Cloud Storage-URI ab:

  1. Öffnen Sie die Cloud Storage-Konsole.

    Cloud Storage-Konsole

  2. Gehen Sie zum Standort des Objekts (Datei), das die Quelldaten enthält.

  3. Am oberen Rand der Cloud Storage Console sehen Sie den Pfad zum Objekt. Wenn Sie den URI erstellen möchten, ersetzen Sie gs://bucket/file durch den entsprechenden Pfad, z. B. gs://mybucket/myfile.json. bucket ist der Name des Cloud Storage-Buckets und file der Name des Objekts (Datei), das die Daten enthält.

Erforderliche Berechtigungen

Wenn Sie Daten in BigQuery laden möchten, benötigen Sie Berechtigungen zum Ausführen eines Ladejobs und zum Laden von Daten in neue oder vorhandene BigQuery-Tabellen und -Partitionen. Zum Laden von Daten aus Cloud Storage sind außerdem Berechtigungen für den Zugriff auf den Bucket erforderlich, der Ihre Daten enthält.

BigQuery-Berechtigungen

Die folgenden Berechtigungen sind mindestens erforderlich, um Daten in BigQuery zu laden. Sie werden benötigt, wenn Sie Daten in eine neue Tabelle oder Partition laden oder Daten in einer Tabelle oder Partition anfügen oder überschreiben möchten:

  • bigquery.tables.create
  • bigquery.tables.updateData
  • bigquery.jobs.create

Diese vordefinierten IAM-Rollen enthalten die Berechtigungen bigquery.tables.create und bigquery.tables.updateData:

  • bigquery.dataEditor
  • bigquery.dataOwner
  • bigquery.admin

Die folgenden vordefinierten IAM-Rollen enthalten bigquery.jobs.create-Berechtigungen:

  • bigquery.user
  • bigquery.jobUser
  • bigquery.admin

Wenn ein Nutzer mit Berechtigungen vom Typ bigquery.datasets.create ein Dataset erstellt, hat er dafür außerdem bigquery.dataOwner-Zugriff. Mit bigquery.dataOwner-Zugriff kann der Nutzer Tabellen im Dataset über einen Ladejob erstellen und aktualisieren.

Weitere Informationen zu IAM-Rollen und Berechtigungen in BigQuery finden Sie unter Zugriffssteuerung.

Cloud Storage-Berechtigungen

Zum Laden von Daten aus einem Cloud Storage-Bucket benötigen Sie die Berechtigung storage.objects.get. Wenn Sie einen URI-Platzhalter verwenden, ist außerdem die Berechtigung storage.objects.list erforderlich.

Die vordefinierte IAM-Rolle storage.objectViewer kann erteilt werden, um Berechtigungen der Typen storage.objects.get und storage.objects.list zu gewähren.

Zugriffs- und Speicher-Logs in Cloud Storage

Cloud Storage bietet Zugriffs- und Speicher-Logdateien im CSV-Format, die zum Analysieren direkt in BigQuery importiert werden können. Weitere Informationen zum Laden und Analysieren von Cloud Storage-Logs finden Sie unter Zugriffslogs und Speicherlogs in der Cloud Storage-Dokumentation.

Unterstützung von Platzhaltern für Cloud Storage-URIs

Wenn Ihre Cloud Storage-Daten auf mehrere Dateien verteilt sind, die einen gemeinsamen Basisnamen haben, können Sie beim Laden der Daten einen Platzhalter im URI verwenden.

Hängen Sie als Platzhalter im Cloud Storage-URI ein Sternchen (*) an den Basisnamen an. Beispiel: Bei zwei Dateien namens fed-sample000001.csv und fed-sample000002.csv lautet der Bucket-URI gs://mybucket/fed-sample*. Sie können diesen Platzhalter-URI dann in der Cloud Console, der klassischen Web-UI, dem bq-Befehlszeilentool, der API oder den Clientbibliotheken verwenden.

Sie können nur einen Platzhalter für Objekte (Dateinamen) in Ihrem Bucket verwenden. Der Platzhalter kann innerhalb oder am Ende des Objektnamens stehen. Das Anhängen eines Platzhalters an den Bucketnamen wird nicht unterstützt.

Bei Google Datastore-Exporten kann nur ein URI angegeben werden, der außerdem auf .backup_info oder .export_metadata enden muss.

Das Sternchen-Platzhalterzeichen ist in folgenden Fällen nicht zulässig:

  • Externe Tabellen erstellen, die mit Datastore- oder Firestore-Exporten verknüpft sind.
  • Datastore- oder Firestore-Exportdaten aus Cloud Storage laden.

Tipp

Mehr zum Laden von Daten aus Cloud Storage in BigQuery erfahren Sie in der Dokumentation zu Ihrem Datenformat:

Mehr zu wiederkehrenden Ladevorgängen von Cloud Storage in BigQuery erfahren Sie unter Cloud Storage-Übertragungen.