Mit der verwalteten E/A-Funktion von Dataflow für BigQuery können Sie Daten in Ihren Streaming- und Batchpipelines transformieren und anreichern. BigQuery wird sowohl als Quelle als auch als Ziel für Dataflow-Jobs eingebunden, wodurch die Interaktionen mit der BigQuery API vereinfacht werden. Sie können umfangreiche Datensätze für verschiedene Anwendungsfälle verarbeiten, von Echtzeitanalysen bis hin zu Data Warehousing, indem Sie dynamische Tabellen und Ziele in BigQuery verwenden.
Vorteile der verwalteten E/A-Funktion
Die verwaltete E/A-Funktion bietet die folgenden Vorteile und Funktionen für BigQuery:
- Dynamische Tabellenerstellung
- Dynamische Ziele
- Für Lesevorgänge verwendet der Connector die BigQuery Storage Read API.
Für Schreibvorgänge verwendet der Connector die folgenden BigQuery-Methoden:
- Wenn die Quelle unbegrenzt ist und Dataflow die genau einmalige Streamingverarbeitung verwendet, führt der Connector Schreibvorgänge in BigQuery aus. Dazu wird die BigQuery Storage Write API (gRPC) mit genau einmaliger Zustellungssyntax verwendet.
- Wenn die Quelle unbegrenzt ist und Dataflow die mindestens einmalige Streamingverarbeitung verwendet, führt der Connector Schreibvorgänge in BigQuery aus. Dazu wird die BigQuery Storage Write API (gRPC) mit mindestens einmaliger Zustellungssyntax verwendet.
- Wenn die Quelle begrenzt ist, verwendet der Connector BigQuery-Dateiladevorgänge.
Voraussetzungen
Die folgenden SDKs unterstützen die verwaltete E/A-Funktion für BigQuery:
- Apache Beam SDK für Java, Version 2.61.0 oder höher
- Apache Beam SDK für Python, Version 2.61.0 oder höher
Konfiguration
Die verwaltete E/A-Funktion für BigQuery unterstützt die folgenden Konfigurationsparameter:
BIGQUERY lesen
| Konfiguration | Typ | Beschreibung |
|---|---|---|
| kms_key |
str
|
Verwenden Sie diesen Cloud KMS-Schlüssel, um Ihre Daten zu verschlüsseln. |
| Abfrage |
str
|
Die SQL-Abfrage, die ausgeführt werden soll, um aus der BigQuery-Tabelle zu lesen. |
| row_restriction |
str
|
Es werden nur Zeilen mit Lesezugriff gelesen, die diesem Filter entsprechen. Der Filter muss mit Google Standard-SQL kompatibel sein. Dies wird beim Lesen über eine Abfrage nicht unterstützt. |
| Felder |
list[str]
|
Es werden nur die angegebenen Felder (Spalten) aus einer BigQuery-Tabelle gelesen. Die Felder werden möglicherweise nicht in der angegebenen Reihenfolge zurückgegeben. Wenn kein Wert angegeben ist, werden alle Felder zurückgegeben. Beispiel: „col1, col2, col3“ |
| Tabelle |
str
|
Der voll qualifizierte Name der BigQuery-Tabelle, aus der gelesen werden soll. Format: [${PROJECT}:]${DATASET}.${TABLE} |
BIGQUERY schreiben
| Konfiguration | Typ | Beschreibung |
|---|---|---|
| Tabelle |
str
|
Die BigQuery-Tabelle, in die geschrieben werden soll. Format: [${PROJECT}:]${DATASET}.${TABLE} |
| drop |
list[str]
|
Eine Liste von Feldnamen, die vor dem Schreiben aus dem Eingabedatensatz gelöscht werden sollen. Kann nicht zusammen mit „keep“ und „only“ verwendet werden. |
| Notizen |
list[str]
|
Eine Liste der Feldnamen, die im Eingabedatensatz beibehalten werden sollen. Alle anderen Felder werden vor dem Schreiben gelöscht. Kann nicht zusammen mit „drop“ und „only“ verwendet werden. |
| kms_key |
str
|
Verwenden Sie diesen Cloud KMS-Schlüssel, um Ihre Daten zu verschlüsseln. |
| nur |
str
|
Der Name eines einzelnen Datensatzfelds, in das geschrieben werden soll. Kann nicht zusammen mit „keep“ und „drop“ verwendet werden. |
| triggering_frequency_seconds |
int64
|
Bestimmt, wie oft der Fortschritt in BigQuery „festgeschrieben“ werden soll. Standardmäßig alle 5 Sekunden. |
Nächste Schritte
Weitere Informationen und Codebeispiele finden Sie unter den folgenden Themen: