Amazon S3-Übertragungen

Mit BigQuery Data Transfer Service für Amazon S3 können Sie wiederkehrende Ladejobs von Amazon S3 in BigQuery automatisch planen und verwalten.

Unterstützte Dateiformate

Der BigQuery Data Transfer Service unterstützt derzeit das Laden von Amazon S3-Daten in einem der folgenden Formate:

  • Kommagetrennte Werte (CSV)
  • JSON (durch Zeilenumbruch getrennt)
  • Avro
  • Parquet
  • ORC

Unterstützte Komprimierungstypen

BigQuery Data Transfer Service für Amazon S3 unterstützt das Laden komprimierter Daten. Die Komprimierungstypen, die von BigQuery Data Transfer Service unterstützt werden, sind mit jenen identisch, die von BigQuery-Ladejobs unterstützt werden. Weitere Informationen finden Sie unter Komprimierte und unkomprimierte Daten laden.

Voraussetzungen für Amazon S3

Wenn Sie Daten aus einer Amazon S3-Datenquelle laden möchten, gehen Sie folgendermaßen vor:

  • Geben Sie den Amazon S3-URI für Ihre Quelldaten an
  • Halten Sie Ihre Zugangsschlüssel-ID bereit
  • Halten Sie Ihren geheimen Zugangsschlüssel bereit
  • Richten Sie mindestens die AWS-Verwaltungsrichtlinie AmazonS3ReadOnlyAccess für Ihre Amazon S3-Quelldaten ein

Amazon S3-URIs

Wenn Sie den Amazon S3-URI angeben, muss der Pfad das Format s3://bucket/folder1/folder2/... haben. Nur der Bucket-Name der obersten Ebene ist erforderlich. Ordnernamen sind optional. Wenn Sie einen URI angeben, der nur den Bucket-Namen enthält, werden alle Dateien im Bucket übertragen und in BigQuery geladen.

Laufzeitparametrisierung für Amazon S3-Übertragungen

Der Amazon S3-URI und die Zieltabelle lassen sich parametrisieren, um Daten nach Datum organisiert aus Amazon S3-Buckets zu laden. Beachten Sie, dass der Bucket-Teil des URI nicht parametrisiert werden kann. Die von Amazon S3-Übertragungen verwendeten Parameter sind die gleichen wie die von Cloud Storage-Übertragungen.

Weitere Informationen finden Sie unter Laufzeitparameter in Übertragungen verwenden.

Unterstützung von Platzhaltern für Amazon S3-URIs

Wenn Ihre Quelldaten in mehrere Dateien mit einem gemeinsamen Basisnamen aufgeteilt sind, können Sie beim Laden der Daten im URI einen Platzhalter verwenden. Ein Platzhalter besteht aus einem Sternchen (*) und kann mit Ausnahme des Bucket-Namens überall im Amazon S3 URI verwendet werden.

Obwohl im Amazon S3-URI mehr als ein Platzhalter verwendet werden kann, ist eine Optimierung möglich, wenn der Amazon S3-URI nur einen einzelnen Platzhalter angibt:

  • Es gibt ein höheres Limit für die maximale Anzahl von Dateien pro Übertragungsausführung.

  • Der Platzhalter reicht über Verzeichnisgrenzen hinweg. Zum Beispiel schließt der Amazon S3-URI s3://my-bucket/*.csv die Datei s3://my-bucket/my-folder/my-subfolder/my-file.csv ein.

Beispiele für Amazon S3-URIs

Beispiel 1

Um eine einzelne Datei aus Amazon S3 in BigQuery zu laden, geben Sie den Amazon S3-URI der Datei an.

s3://my-bucket/my-folder/my-file.csv

Beispiel 2

Wenn Sie alle Dateien aus einem Amazon S3-Bucket in BigQuery laden möchten, geben Sie nur den Bucket-Namen mit oder ohne Platzhalter an.

s3://my-bucket/

oder

s3://my-bucket/*

Beachten Sie, dass s3://my-bucket* kein zulässiger Amazon S3-URI ist, da im Bucket-Namen kein Platzhalter verwendet werden kann.

Beispiel 3

Wenn Sie aus Amazon S3 alle Dateien mit einem gemeinsamen Präfix laden möchten, geben Sie das gemeinsame Präfix gefolgt von einem Platzhalter an.

s3://my-bucket/my-folder/*

Im Gegensatz zum Laden aller Dateien aus einem Amazon S3-Bucket der obersten Ebene muss der Platzhalter am Ende des Amazon S3-URI angegeben werden, damit Dateien geladen werden.

Beispiel 4

Wenn Sie aus Amazon S3 alle Dateien mit einem ähnlichen Pfad laden möchten, geben Sie das gemeinsame Präfix gefolgt von einem Platzhalter an.

s3://my-bucket/my-folder/*.csv

Beispiel 5

Beachten Sie, dass die Platzhalter Verzeichnisse überspannen. Es werden also alle csv-Dateien in my-folder sowie in Unterordnern von my-folder in BigQuery geladen.

Wenn sich diese Quelldateien in einem Ordner logs befinden:

s3://my-bucket/logs/logs.csv
s3://my-bucket/logs/system/logs.csv
s3://my-bucket/logs/some-application/system_logs.log
s3://my-bucket/logs/logs_2019_12_12.csv

können sie so angegeben werden:

s3://my-bucket/logs/*

Beispiel 6

Wenn Sie diese Quelldateien haben, aber nur Dateien mit dem Dateinamen logs.csv übertragen möchten:

s3://my-bucket/logs.csv
s3://my-bucket/metadata.csv
s3://my-bucket/system/logs.csv
s3://my-bucket/system/users.csv
s3://my-bucket/some-application/logs.csv
s3://my-bucket/some-application/output.csv

können Sie so die Dateien mit logs.csv im Namen angeben:

s3://my-bucket/*logs.csv

Beispiel 7

Durch die Verwendung mehrerer Platzhalter lässt sich besser steuern, welche Dateien übertragen werden. Allerdings sind dann die Limits niedriger. Die Verwendung mehrerer Platzhalter bedeutet, dass jeder Platzhalter nur bis zum Ende eines Pfads innerhalb eines Unterverzeichnisses reicht. Angenommen, es gibt in Amazon S3 die folgenden Quelldateien:

s3://my-bucket/my-folder1/my-file1.csv
s3://my-bucket/my-other-folder2/my-file2.csv
s3://my-bucket/my-folder1/my-subfolder/my-file3.csv
s3://my-bucket/my-other-folder2/my-subfolder/my-file4.csv

Wenn nur my-file1.csv und my-file2.csv übertragen werden sollen, verwenden Sie folgenden Wert für den Amazon S3-URI:

s3://my-bucket/*/*.csv

Da keiner der Platzhalter Verzeichnisse überspannt, beschränkt dieser URI die Übertragung auf die CSV-Dateien in my-folder1 und my-other-folder2. Unterordner würden bei der Übertragung nicht berücksichtigt werden.

AWS-Zugriffsschlüssel

Die Zugriffsschlüssel-ID und der geheime Zugriffsschlüssel werden dazu verwendet, in Ihrem Namen auf die Amazon S3-Daten zuzugreifen. Erstellen Sie als Best Practice eine eindeutige Zugriffsschlüssel-ID und einen geheimen Zugriffsschlüssel, die speziell für Amazon S3-Übertragungen bestimmt sind, um minimalen Zugriff auf den BigQuery Data Transfer Service zu gewähren. Informationen zum Verwalten Ihrer Zugriffsschlüssel finden Sie in der allgemeinen Referenzdokumentation zu AWS.

Überlegungen zur Konsistenz

Wenn Sie Daten von Amazon S3 übertragen, werden möglicherweise einige Ihrer Daten nicht an BigQuery übertragen, insbesondere wenn die Dateien erst vor Kurzem dem Bucket hinzugefügt wurden. Es sollte ungefähr 10 Minuten dauern, bis eine Datei für BigQuery Data Transfer Service verfügbar ist, nachdem sie dem Bucket hinzugefügt wurde.

In einigen Fällen kann es jedoch länger als 10 Minuten dauern. Planen Sie Ihre Amazon S3-Übertragungen so, dass sie mindestens 10 Minuten nach dem Hinzufügen Dateien zum Bucket erfolgen, um das Risiko von fehlenden Daten zu reduzieren. Weitere Informationen zum Amazon S3-Konsistenzmodell finden Sie unter Amazon S3-Datenkonsistenzmodell in der Amazon S3-Dokumentation.

Best Practice bezüglich der Kosten für ausgehenden Traffic

Übertragungen von Amazon S3 können fehlschlagen, wenn die Zieltabelle nicht richtig konfiguriert wurde. Folgende Gründe können zu einer falschen Konfiguration führen:

  • Die Zieltabelle ist nicht vorhanden.
  • Das Tabellenschema ist nicht definiert.
  • Das Tabellenschema ist nicht mit den übertragenen Daten kompatibel.

Um Amazon S3-Kosten für ausgehenden Traffic zu vermeiden, sollten Sie zuerst eine Übertragung mit einer kleinen, aber repräsentativen Teilmenge der Dateien testen. Klein bedeutet, dass die Datenmenge und die Dateianzahl klein sein sollten.

Preise

Die Preise für BigQuery Data Transfer Service finden Sie auf der Seite Preise.

Beachten Sie, dass durch die Nutzung dieses Dienstes Kosten außerhalb von Google anfallen können. Weitere Informationen dazu finden Sie auf der Seite Amazon S3 – Preise.

Kontingente und Limits

BigQuery Data Transfer Service verwendet Ladejobs, um Amazon S3-Daten in BigQuery zu laden. Alle BigQuery-Kontingente und -Limits für Ladejobs gelten für wiederkehrende Amazon S3-Übertragungen. Dabei ist Folgendes zu beachten:

Wert Limit
Maximale Größe pro Ladejob-Übertragungsausführung 15 TB
Maximale Anzahl von Dateien pro Übertragungsausführung, wenn der Amazon S3-URI 0 oder 1 Platzhalter enthält 10.000.000 Dateien
Maximale Anzahl von Dateien pro Übertragungsausführung, wenn der Amazon S3-URI mehr als 1 Platzhalter enthält 10.000 Dateien

Weitere Informationen