Skip to content

Jobs de Dataflow

Este documento detalla los jobs de Dataflow activos en la arquitectura de Solvento, incluyendo sus configuraciones, topics de Pub/Sub que consumen y destinos en BigQuery y ELK.

Overview

Los jobs de Dataflow en Solvento procesan datos desde Pub/Sub (streaming) y escriben datos raw a solvento-data-prod. Ningún job de Dataflow escribe a solvento-adv-analytics-prod.

Ingesta a ELK: Los jobs de invoices (invoices-webhook-prod e invoices-api-prod) escriben las invoices a ELK (Elasticsearch) para búsqueda y análisis en tiempo real, además de escribir a BigQuery.

Jobs por Categoría

Jobs de Webhooks

Estos jobs procesan eventos desde webhooks que llegan vía Cloud Run → Pub/Sub.

Job Name Pub/Sub Topic Subscription BigQuery Destino ELK Destino Tipo Estado
invoices-webhook-prod-20251203-154624 invoices-webhook-prod invoices-webhook-subscription Por verificar ELK (invoices) Streaming Activo
buro-webhook-prod-20251204-124756 buro-webhook-prod buro-webhook-subscription Por verificar - Streaming Activo

Flujo:

Webhooks → Cloud Run → Pub/Sub Topics → Dataflow Jobs → BigQuery (data-prod) + ELK (solo invoices-webhook)

Nota: El job invoices-webhook-prod escribe las invoices tanto a BigQuery como a ELK para búsqueda y análisis en tiempo real.

Jobs de APIs Externas

Estos jobs procesan eventos desde APIs externas consumidas por Cloud Run.

Job Name Pub/Sub Topic Subscription BigQuery Destino ELK Destino Tipo Estado
items-api-prod-20251120-135100 items-api-topic items-api-subscription Por verificar - Streaming Activo
invoices-api-prod-* invoices-api-prod invoices-api-subscription Por verificar ELK (invoices) Streaming Activo
cp-api-multischema-prod-20251205-191037 cp-api-prod cp-api-prod-subscription-cloud-run Por verificar - Streaming Activo
tax-compliance-api-multischema-prod-20251210-183338 tax-compliance-api-prod tax-compliance-api-prod-sub Por verificar - Streaming Activo

Flujo:

APIs Externas → Cloud Run → Pub/Sub Topics → Dataflow Jobs → BigQuery (data-prod) + ELK (solo invoices-api)

Nota: El job invoices-api-prod escribe las invoices tanto a BigQuery como a ELK para búsqueda y análisis en tiempo real.

Jobs de Insights y Analytics

Job Name Pub/Sub Topic Subscription BigQuery Destino Tipo Estado
insights-sales-revenue-customers-daily-20251203-154949 insights-topic-prod insights-topic-prod-sub Por verificar Streaming Activo

Jobs Batch

Jobs que procesan datos en modo batch (no desde Pub/Sub).

Job Name Fuente BigQuery Destino Frecuencia Estado
batch-job-name Cloud Storage / BigQuery solvento-data-prod.dataset.table Diario / Semanal Activo

Configuración de Jobs

Recursos Típicos

  • Machine Type: n1-standard-4 o n1-standard-8
  • Max Workers: Variable según carga (típicamente 5-20)
  • Disk Size: 50-100 GB por worker
  • Autoscaling: Habilitado

Parámetros Comunes

  • Project: solvento-data-prod
  • Region: us-central1 (o región específica)
  • Network: VPC específica si aplica
  • Service Account: Service account con permisos para Pub/Sub, BigQuery y ELK (para jobs de invoices)

Ingesta a ELK

Los jobs de invoices (invoices-webhook-prod e invoices-api-prod) escriben datos a ELK (Elasticsearch) para:

  • Búsqueda en tiempo real: Búsqueda rápida de invoices por múltiples criterios
  • Análisis y visualización: Dashboards y análisis en tiempo real
  • Complemento a BigQuery: Mientras BigQuery almacena datos históricos, ELK proporciona capacidades de búsqueda y análisis en tiempo real

Flujo de Invoices a ELK:

Webhooks/APIs → Cloud Run → Pub/Sub → Dataflow (invoices-webhook/invoices-api) → ELK + BigQuery

Monitoreo

Métricas Clave

  • Throughput: Mensajes/elementos procesados por segundo
  • Latency: Tiempo desde publicación en Pub/Sub hasta escritura en BigQuery
  • Backlog: Mensajes pendientes en subscriptions
  • Errors: Tasa de errores y mensajes fallidos

Alertas

  • Backlog creciente en subscriptions
  • Tasa de errores > 1%
  • Jobs fallidos o detenidos
  • Latencia > umbral definido

Troubleshooting

Job Falla

  1. Revisar logs en Cloud Logging
  2. Verificar permisos de service account
  3. Validar formato de mensajes en Pub/Sub
  4. Revisar esquema de BigQuery destino

Backlog Alto

  1. Aumentar número de workers
  2. Optimizar transformaciones en el pipeline
  3. Revisar throughput del topic de Pub/Sub
  4. Verificar que BigQuery no esté limitando escrituras

Referencias