Prácticas recomendadas generales al usar Datastream

En esta página, encontrará las prácticas recomendadas para usar Datastream. Esto incluye prácticas recomendadas generales para usar Datastream.

Cambiar la base de datos de origen de un flujo

En algunos casos, es posible que tengas que cambiar la base de datos de origen de un flujo. Por ejemplo, es posible que tengas que modificar el flujo para replicar desde una réplica en lugar de desde la instancia de base de datos principal.

  1. Crea un perfil de conexión para la instancia de réplica.
  2. Crea un flujo con el perfil de conexión de la réplica que has creado y el perfil de conexión de destino.
  3. Inicia la emisión con el relleno histórico inhabilitado. Cuando se inicia la réplica, solo se transfieren los datos de los registros binarios.
  4. Opcional. Una vez que la emisión esté en curso, modifícala para habilitar el relleno automático.
  5. Pausa la secuencia que está leyendo de la instancia principal.
  6. Opcional. Elimine el flujo que estaba transmitiendo datos desde la instancia principal.
  7. Opcional. Elimine el perfil de conexión de la instancia principal.

Alertas y monitorización en DataStream

El panel de control de Datastream contiene mucha información. Esta información puede ser útil para depurar errores. Puedes encontrar más información en los registros, que están disponibles en Cloud Logging.

Alertas de Datastream

No hay ninguna alerta predeterminada configurada para Datastream. Por ejemplo, puedes crear una política de alertas para la métrica Actualización de datos haciendo clic en el enlace Crear política de alertas de la pestaña Resumen. Para el resto de las métricas, sigue estos pasos:

  1. En la Google Cloud consola, ve a la página  Alertas:

    Ve a Alertas.

  2. Haz clic en Crear política.

  3. Haz clic en el desplegable Selecciona una métrica.

  4. En el campo de filtro, introduce Datastream.

  5. Opcional: Es posible que tengas que inhabilitar el filtro Activo para ver todas las métricas disponibles.

  6. Busca la métrica que quieras monitorizar en Datastream Stream.

  7. Haz clic en Aplicar.

  8. Opcional: Introduce los detalles necesarios en las secciones Añadir filtros y Transformar datos. Haz clic en Siguiente.

  9. Introduce la información necesaria en la sección Configurar activador de alerta. Haz clic en Siguiente.

  10. Configura las notificaciones en la sección Configurar notificaciones y finalizar alerta.

  11. Revisa la alerta y haz clic en Crear política cuando lo tengas todo listo.

    Para obtener información detallada sobre cómo completar cada uno de estos pasos, consulta Crear una política de alertas.

Te recomendamos que crees alertas para las siguientes métricas de Datastream:

  • Actualización de datos
  • Número de eventos no admitidos de la secuencia
  • Latencias totales de la emisión

Una alerta sobre cualquiera de estas métricas puede indicar un problema con el flujo o con la base de datos de origen.

Acerca de la latencia

Datastream proporciona las siguientes métricas para ayudarte a comprender la latencia de replicación:

  • Actualización de datos: la diferencia entre el momento en que se insertaron los datos en la fuente y el momento en que Datastream los leyó. Si esta métrica es alta, indica que Datastream está leyendo datos más lentamente de lo que se generan en la fuente. Esto indica que puede haber un problema con la fuente o con la conexión de red a la fuente.
  • Latencia del sistema: tiempo que tarda Datastream en procesar un evento, desde el momento en que se lee de la fuente hasta que se escribe en el destino.
  • Latencia total: el retraso de replicación de extremo a extremo, que representa el tiempo total transcurrido desde que los datos se confirman en el origen hasta que se escriben en el destino.

Si la actualización de los datos es alta, las causas habituales son las siguientes:

  • Sobrecarga de la fuente: la base de datos de origen genera registros (archivos binlog, archivos de registro de rehacer y archivos WAL) más rápido de lo que Datastream puede leerlos.
    • Acción para MySQL u Oracle: Aumenta el parámetro maxConcurrentCdcTasks para leer más registros en paralelo.
    • Acción para PostgreSQL: aísla las tablas con alta rotación en sus propias secuencias dedicadas.
    • Acción para SQL Server: aumenta el parámetro maxConcurrentCdcTasks para leer más tablas de cambios en paralelo.
  • Falta de recursos de origen: el propio servidor de la base de datos de origen tiene problemas, como un uso elevado de la CPU, poca memoria o cuellos de botella de E/S de disco.
    • Acción: asegúrese de que la instancia de origen esté en buen estado. Comprueba el uso de CPU y RAM. En PostgreSQL, considera la posibilidad de aumentar el valor del parámetro logical_decoding_work_mem. En Oracle, asegúrate de que se haya asignado suficiente área global del sistema (SGA).
  • Problemas de capacidad de la red: tiempo de ping alto o ancho de banda saturado entre tu fuente y Google Cloud.
    • Acción: monitoriza el ancho de banda y la latencia de tu VPN o Cloud Interconnect.
  • Transacción grande única: un trabajo por lotes de gran tamaño, como una UPDATE en millones de filas, puede provocar un pico temporal de latencia.
    • Acción: es el comportamiento esperado. Espera a que Datastream procese el evento de gran tamaño. Te recomendamos que dividas las tareas por lotes grandes en fragmentos más pequeños en el futuro.

Si la latencia del sistema es alta, puede que haya un problema en Datastream o en el destino.

  • Acción: comprueba si hay errores persistentes a nivel de fila en Cloud Logging (por ejemplo, invalid input for type json). Si el flujo está en un bucle de reintentos debido a errores de tipo de datos o de restricción, es posible que sea necesario corregir los datos manualmente en la fuente. Si no hay errores evidentes, ponte en contacto con el equipo de Asistencia de Google para obtener ayuda.

¿Cuántas tablas puede gestionar un solo flujo?

Recomendamos que un solo flujo incluya hasta 10.000 tablas. No hay límite de tamaño para las tablas. Si necesitas crear una emisión con más tablas, es posible que la emisión entre en un estado de error. Para evitarlo, divide la fuente en varios flujos.