La E/S administrada de Dataflow para BigQuery te permite transformar y enriquecer datos en tus canalizaciones de transmisión y por lotes. Integra BigQuery como fuente y destino para los trabajos de Dataflow, lo que simplifica las interacciones con la API de BigQuery. Puedes procesar conjuntos de datos a gran escala para diversos casos de uso, desde análisis en tiempo real hasta almacenamiento de datos, mediante la creación y los destinos de tablas dinámicas en BigQuery.
Beneficios de la E/S administrada
La E/S administrada proporciona los siguientes beneficios y capacidades para BigQuery:
- Creación de tablas dinámicas
- Destinos dinámicos
- Para las lecturas, el conector usa la API de BigQuery Storage Read.
Para las escrituras, el conector usa los siguientes métodos de BigQuery:
- Si la fuente no está delimitada y Dataflow usa el procesamiento de transmisión del tipo “exactamente una vez”, el conector realiza escrituras en BigQuery con la API de BigQuery Storage Write (gRPC) con semántica de entrega del tipo “exactamente una vez”.
- Si la fuente no está delimitada y Dataflow usa el procesamiento de transmisión del tipo “al menos una vez”, el conector realiza escrituras en BigQuery con la API de BigQuery Storage Write (gRPC) con semántica de entrega del tipo “al menos una vez”.
- Si la fuente está delimitada, el conector usa cargas de archivos de BigQuery.
Requisitos
Los siguientes SDKs admiten la E/S administrada para BigQuery:
- SDK de Apache Beam para Java, versión 2.61.0 o posterior
- SDK de Apache Beam para Python, versión 2.61.0 o posterior
Configuración
La E/S administrada para BigQuery admite los siguientes parámetros de configuración:
Lectura de BIGQUERY
| Configuración | Tipo | Descripción |
|---|---|---|
| kms_key |
str
|
Usa esta clave de Cloud KMS para encriptar tus datos. |
| consulta |
str
|
Es la consulta en SQL que se ejecutará para leer desde la tabla de BigQuery. |
| row_restriction |
str
|
Lee solo las filas que coinciden con este filtro, que debe ser compatible con SQL estándar de Google. Esto no se admite cuando se lee a través de una consulta. |
| campos |
list[str]
|
Lee solo los campos (columnas) especificados de una tabla de BigQuery. Es posible que los campos no se muestren en el orden especificado. Si no se especifica ningún valor, se muestran todos los campos. Ejemplo: "col1, col2, col3" |
| tabla |
str
|
Es el nombre completamente calificado de la tabla de BigQuery desde la que se leerá. Formato: [${PROJECT}:]${DATASET}.${TABLE} |
Escritura de BIGQUERY
| Configuración | Tipo | Descripción |
|---|---|---|
| tabla |
str
|
Es la tabla de BigQuery en la que se escribirá. Formato: [${PROJECT}:]${DATASET}.${TABLE} |
| drop |
list[str]
|
Es una lista de nombres de campos que se deben descartar del registro de entrada antes de la escritura. Es mutuamente excluyente con "keep" y "only". |
| keep |
list[str]
|
Es una lista de nombres de campos que se conservarán en el registro de entrada. Se descartan todos los demás campos antes de la escritura. Es mutuamente excluyente con "drop" y "only". |
| kms_key |
str
|
Usa esta clave de Cloud KMS para encriptar tus datos. |
| único |
str
|
Es el nombre de un solo campo de registro que se debe escribir. Es mutuamente excluyente con "keep" y "drop". |
| triggering_frequency_seconds |
int64
|
Determina la frecuencia con la que se “confirma” el progreso en BigQuery. El valor predeterminado es cada 5 segundos. |
¿Qué sigue?
Para obtener más información y ejemplos de código, consulta los siguientes temas: