Mit verwalteter E/A für BigQuery in Dataflow können Sie Daten in Ihren Streaming- und Batch-Pipelines 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
Die verwaltete E/A 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, schreibt der Connector Daten in BigQuery. Dazu wird die BigQuery Storage Write API mit genau einmaliger Zustellungssyntax verwendet.
- Wenn die Quelle unbegrenzt ist und Dataflow die mindestens einmalige Streamingverarbeitung verwendet, schreibt der Connector Daten in BigQuery. Dazu wird die BigQuery Storage Write API 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 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 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. |
| only |
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. Die Standardeinstellung ist alle 5 Sekunden. |
Nächste Schritte
Weitere Informationen und Codebeispiele finden Sie unter den folgenden Themen: