Les E/S gérées Dataflow pour BigQuery vous permettent de transformer et d'enrichir des données dans vos pipelines de flux et de traitement par lot. Elles intègrent BigQuery en tant que source et destination pour les jobs Dataflow, ce qui simplifie les interactions avec l'API BigQuery. Vous pouvez traiter des ensembles de données à grande échelle pour divers cas d'utilisation, de l'analyse en temps réel à l'entreposage de données, en utilisant la création et les destinations de tables dynamiques dans BigQuery.
Avantages des E/S gérées
Les E/S gérées offrent les avantages et les fonctionnalités suivants pour BigQuery :
- Création de tables dynamiques
- Destinations dynamiques
- Pour les lectures, le connecteur utilise l' API BigQuery Storage Read.
Pour les écritures, le connecteur utilise les méthodes BigQuery suivantes :
- Si la source n'est pas limitée et que Dataflow utilise le traitement de flux "exactement une fois", le connecteur effectue des écritures dans BigQuery à l'aide de l' API BigQuery Storage Write (gRPC) avec une sémantique de diffusion "exactement une fois".
- Si la source n'est pas limitée et que Dataflow utilise le traitement de flux "au moins une fois", le connecteur effectue des écritures dans BigQuery à l'aide de l' API BigQuery Storage Write (gRPC) avec une sémantique de diffusion "au moins une fois" .
- Si la source est limitée, le connecteur utilise les chargements de fichiers BigQuery.
Conditions requises
Les SDK suivants sont compatibles avec les E/S gérées pour BigQuery :
- SDK Apache Beam pour Java version 2.61.0 ou ultérieure
- SDK Apache Beam pour Python version 2.61.0 ou ultérieure
Configuration
Les E/S gérées pour BigQuery sont compatibles avec les paramètres de configuration suivants :
Lecture BIGQUERY
| Configuration | Type | Description |
|---|---|---|
| kms_key |
str
|
Utilisez cette clé Cloud KMS pour chiffrer vos données. |
| requête |
str
|
Requête SQL à exécuter pour lire à partir de la table BigQuery. |
| row_restriction |
str
|
Ne lisez que les lignes qui correspondent à ce filtre, qui doit être compatible avec le SQL standard Google. Cette option n'est pas compatible avec la lecture via une requête. |
| champs |
list[str]
|
Ne lisez que les champs (colonnes) spécifiés à partir d'une table BigQuery. Les champs peuvent ne pas être renvoyés dans l'ordre spécifié. Si aucune valeur n'est spécifiée, tous les champs sont renvoyés. Exemple : "col1, col2, col3" |
| table |
str
|
Nom complet de la table BigQuery à lire. Format: [${PROJECT}:]${DATASET}.${TABLE} |
Écriture BIGQUERY
| Configuration | Type | Description |
|---|---|---|
| table |
str
|
Table BigQuery dans laquelle écrire. Format: [${PROJECT}:]${DATASET}.${TABLE} |
| drop |
list[str]
|
Liste des noms de champs à supprimer de l'enregistrement d'entrée avant l'écriture. Incompatible avec "keep" et "only". |
| keep |
list[str]
|
Liste des noms de champs à conserver dans l'enregistrement d'entrée. Tous les autres champs sont supprimés avant l'écriture. Incompatible avec "drop" et "only". |
| kms_key |
str
|
Utilisez cette clé Cloud KMS pour chiffrer vos données. |
| uniquement |
str
|
Nom d'un champ d'enregistrement unique devant être écrit. Incompatible avec "keep" et "drop". |
| triggering_frequency_seconds |
int64
|
Détermine la fréquence à laquelle "valider" la progression dans BigQuery. La valeur par défaut est de 5 secondes. |
Étape suivante
Pour en savoir plus et obtenir des exemples de code, consultez les sujets suivants :