Rompiendo las barreras de costos para la captura de datos de cambios en tiempo actual (CDC)


Hoy, me complace compartir algunas actualizaciones de productos en las que hemos estado trabajando relacionadas con la captura de datos modificados (CDC) en tiempo actual, incluido el acceso temprano para plantillas populares y plataformas CDC de terceros. En esta publicación, destacaremos la nueva funcionalidad, algunos ejemplos para ayudar a los equipos de datos a comenzar y por qué CDC en tiempo actual se volvió mucho más accesible.

¿Qué es CDC y por qué es útil?

En primer lugar, una descripción common rápida de lo que Centros para el Management y la Prevención de Enfermedades es y por qué somos tan grandes followers. Debido a que todas las bases de datos hacen concesiones técnicas, es común mover datos de un origen a un destino en función de cómo se utilizarán los datos. En términos generales, hay tres formas básicas de mover datos del punto A al punto B:

  1. Un volcado completo periódico, es decir, copiar todos los datos del origen A al destino B, reemplazando completamente el volcado anterior cada vez.
  2. Actualizaciones periódicas por lotes, es decir, cada 15 minutos ejecute una consulta en A para ver qué registros han cambiado desde la última ejecución (tal vez usando un indicador modificado, hora actualizada, and many others.), e insértelos por lotes en su destino.
  3. Actualizaciones incrementales (también conocidas como CDC): a medida que los registros cambian en A, emiten un flujo de cambios que se pueden aplicar de manera eficiente en sentido descendente en B.

CDC aprovecha la transmisión para rastrear y transportar cambios de un sistema a otro. Este método ofrece algunas ventajas enormes sobre las actualizaciones por lotes. Primero, CDC teóricamente permite a las empresas analizar y reaccionar a los datos en tiempo actual, a medida que se generan. Funciona con sistemas de transmisión existentes como Apache Kafka, Amazon Kinesis y Azure Occasions Hubs, lo que facilita más que nunca la creación de una canalización de datos en tiempo actual.

Un antipatrón común: CDC en tiempo actual en un almacén de datos en la nube

Uno de los patrones más comunes para CDC es mover datos de una base de datos transaccional u operativa a un almacén de datos en la nube (CDW). Este método tiene un puñado de inconvenientes.

En primer lugar, la mayoría de los CDW no admiten actualizaciones en el lugar, lo que significa que, a medida que llegan nuevos datos, tienen que asignar y escribir una copia completamente nueva de cada micropartición a través de la UNIR comando, que también captura inserciones y eliminaciones. ¿El resultado? Es más costoso (escrituras grandes y frecuentes) o lento (escrituras menos frecuentes) usar un CDW como destino de CDC. Los almacenes de datos se crearon para trabajos por lotes, por lo que esto no debería sorprendernos. Pero entonces, ¿qué deben hacer los usuarios cuando surgen casos de uso en tiempo actual? Madison Schott en Airbyte escribe, “Necesitaba datos en tiempo semi actual dentro de Snowflake. Después de aumentar las sincronizaciones de datos en Airbyte a una vez cada 15 minutos, los costos de Snowflake se dispararon. Debido a que los datos se ingerían cada 15 minutos, el almacén de datos casi siempre estaba en funcionamiento”. Si sus costos aumentan con una frecuencia de sincronización de 15 minutos, simplemente no puede responder a los datos recientes, y mucho menos a los datos en tiempo actual.

Una y otra vez, las empresas en una amplia variedad de industrias han aumentado los ingresos, aumentado la productividad y reducido los costos al dar el salto del análisis por lotes al análisis en tiempo actual. Dimona, una empresa de ropa líder en América Latina fundada hace 55 años en Brasil, dijo lo siguiente sobre su base de datos de gestión de inventario: “A medida que trajimos más almacenes y tiendas en línea, la base de datos comenzó a atascarse en el lado analítico. Las consultas que solían demorar decenas de segundos comenzaron a demorar más de un minuto o a agotarse por completo… con el Servicio de migración de base de datos (DMS) de Amazon, ahora replicamos continuamente los datos de Aurora en Rockset, que realiza todo el procesamiento de datos, las agregaciones y los cálculos. .” Las bases de datos en tiempo actual no solo están optimizadas para CDC en tiempo actual, sino que las hacen accesibles y eficientes para organizaciones de cualquier tamaño. A diferencia de los almacenes de datos en la nube, Rockset está diseñado específicamente para ingerir grandes cantidades de datos en segundos y ejecutar consultas en segundos contra esos datos.

CDC para análisis en tiempo actual

En Rockset, hemos visto dispararse la adopción de CDC. Los equipos a menudo tienen canalizaciones que generan deltas de CDC y necesitan un sistema que pueda manejar la ingesta en tiempo actual de esos deltas para permitir cargas de trabajo con baja latencia de extremo a extremo y alta escalabilidad de consultas. Rockset fue diseñado para este caso de uso exacto. Ya hemos creado conectores de datos basados ​​en CDC para muchas fuentes comunes: DynamoDB, MongoDB, y más. Con el nuevo soporte de CDC que estamos lanzando hoy, Rockset habilita sin problemas CDC en tiempo actual proveniente de docenas de fuentes populares en varios formatos de CDC estándar de la industria.

Para algunos antecedentes, cuando ingiere datos en Rockset, puede especificar una consulta SQL, llamada ingerir transformación, que se evalúa en sus datos de origen. El resultado de esa consulta es lo que se conserva en su colección subyacente (el equivalente a una tabla SQL). Esto le brinda el poder de SQL para lograr todo, desde renombrar/eliminar/combinar campos hasta filtrar filas en función de condiciones complejas. Incluso puede realizar agregaciones en tiempo de escritura (resúmenes) y configure funciones avanzadas como la agrupación de datos en su colección.

Los datos de CDC a menudo vienen en objetos profundamente anidados con esquemas complejos y muchos datos que el destino no requiere. Con una transformación de ingesta, puede reestructurar fácilmente los documentos entrantes, limpiar nombres y asignar campos de origen a los campos especiales de Rockset. Todo esto sucede a la perfección como parte de la plataforma de ingesta administrada en tiempo actual de Rockset. Por el contrario, otros sistemas requieren trabajos/canalizaciones de ETL intermedias y complejas para lograr una manipulación de datos related, lo que agrega complejidad operativa, latencia de datos y costo.

Puede ingerir datos de CDC de prácticamente cualquier fuente utilizando la potencia y la flexibilidad de las transformaciones de ingesta de Rockset. Para hacerlo, hay algunos campos especiales que debe completar.

_identificación

Este es el identificador único de un documento en Rockset. Es importante que la clave principal de su fuente se asigne correctamente a _id para que las actualizaciones y eliminaciones de cada documento se apliquen correctamente. Por ejemplo:

-- easy single subject mapping when `subject` is already a string
SELECT subject AS _id;
-- single subject with casting required since `subject` is not a string
SELECT CAST(subject AS string) AS _id;
-- compound main key from supply mapping to _id utilizing SQL operate ID_HASH
SELECT ID_HASH(field1, field2) AS _id;

_hora del evento

Esta es la marca de tiempo de un documento en Rockset. Por lo common, los deltas de CDC incluyen marcas de tiempo de su fuente, lo que es útil para mapear el campo especial de Rockset para marcas de tiempo. Por ejemplo:

-- Map supply subject `ts_epoch` which is ms since epoch to timestamp sort for _event_time
SELECT TIMESTAMP_MILLIS(ts_epoch) AS _event_time

_op

Esto le cube a la plataforma de ingestión cómo interpretar un nuevo registro. Con mayor frecuencia, los documentos nuevos son exactamente eso, documentos nuevos, y se incluirán en la colección subyacente. Sin embargo, al usar _op también puede usar un documento para codificar una operación de eliminación. Por ejemplo:

{"_id": "123", "identify": "Ari", "metropolis": "San Mateo"} → insert a brand new doc with id 123
{"_id": "123", "_op": "DELETE"} → delete doc with id 123

Esta flexibilidad permite a los usuarios mapear lógica compleja desde sus fuentes. Por ejemplo:

SELECT subject as _id, IF(sort="delete", 'DELETE', 'UPSERT') AS _op


cdc-ingest-transformation-example

Verificar nuestros documentos para más información.

Plantillas y Plataformas

Comprender los conceptos anteriores hace posible llevar los datos de CDC a Rockset tal como están. Sin embargo, construir la transformación correcta en estos objetos profundamente anidados y mapear correctamente todos los campos especiales a veces puede ser propenso a errores y engorroso. Para hacer frente a estos desafíos, hemos agregado soporte nativo de acceso temprano para una variedad de plantillas de transformación de ingesta. Estos ayudarán a los usuarios a configurar más fácilmente las transformaciones correctas sobre los datos de CDC. Al ser parte de la transformación de ingesta, obtiene el poder y la flexibilidad de la plataforma de ingesta de datos de Rockset para traer estos datos de CDC desde cualquiera de nuestras fuentes admitidas, incluidas transmisiones de eventos, directamente a través de nuestra API de escritura o incluso a través de lagos de datos como S3, GCS, y almacenamiento de blobs de Azure. La lista completa de plantillas y plataformas para las que anunciamos soporte incluye lo siguiente:

Soporte de plantilla

  • Debezium: una plataforma distribuida de código abierto para la captura de datos modificados.
  • Servicio de migración de datos de AWS: Servicio internet de Amazon para la migración de datos.
  • Nube Confluente (a través de Debezium): una plataforma de transmisión de datos nativa de la nube.
  • Arción: una plataforma CDC empresarial diseñada para la escalabilidad.
  • Striim: una plataforma unificada de integración y transmisión de datos.

Soporte de plataforma

  • Airbyte: una plataforma abierta que unifica las canalizaciones de datos.
  • Estuario: Una plataforma de operaciones de datos en tiempo actual.
  • decodificable: Una plataforma de datos en tiempo actual sin servidor.

Si desea solicitar acceso anticipado al soporte de plantillas de CDC, envíe un correo electrónico a assist@rockset.com.

Como ejemplo, aquí hay una plantilla de mensaje que Rockset admite la configuración automática para:

{
  "knowledge": {
    "ID": "1",
    "NAME": "Person One"
  },
  "earlier than": null,
  "metadata": {
    "TABLENAME": "Worker",
    "CommitTimestamp": "12-Dec-2016 19:13:01",
    "OperationName": "INSERT"
  }
}

Y aquí está la transformación inferida:

SELECT
    IF(
        _input.metadata.OperationName="DELETE",
        'DELETE',
        'UPSERT'
    ) AS _op,
    CAST(_input.knowledge.ID AS string) AS _id,
    IF(
        _input.metadata.OperationName="INSERT",
        PARSE_TIMESTAMP(
            '%d-%b-%Y %H:%M:%S',
            _input.metadata.CommitTimestamp
        ),
        UNDEFINED
    ) AS _event_time,
    _input.knowledge.ID,
    _input.knowledge.NAME
FROM
    _input
WHERE
    _input.metadata.OperationName IN ('INSERT', 'UPDATE', 'DELETE')

Estas tecnologías y productos le permiten crear canalizaciones de datos altamente seguras, escalables y en tiempo actual en solo minutos. Cada una de estas plataformas tiene un conector integrado para Rockset, lo que evita muchos requisitos de configuración handbook, como los de:

  • postgresql
  • mysql
  • ibm db2
  • Vittes
  • casandra

De lote a tiempo actual

CDC tiene el potencial de hacer posible el análisis en tiempo actual. Pero si su equipo o aplicación necesita acceso de baja latencia a los datos, depender de sistemas que procesan datos por lotes o microlotes aumentará sus costos. Los casos de uso en tiempo actual están hambrientos de computación, pero las arquitecturas de los sistemas basados ​​en lotes están optimizadas para el almacenamiento. Ahora tienes una opción nueva y totalmente viable. Cambiar las herramientas de captura de datos como Airbyte, Striim, Debezium, et al, junto con las bases de datos de análisis en tiempo actual como Rockset reflejan una arquitectura completamente nueva y finalmente pueden cumplir la promesa de CDC en tiempo actual. Estas herramientas están diseñadas específicamente para análisis de alto rendimiento y baja latencia a escala. CDC es versatile, potente y está estandarizado de una manera que garantiza que el soporte para orígenes y destinos de datos seguirá creciendo. Rockset y CDC son una combinación perfecta, ya que reducen el costo de CDC en tiempo actual para que las organizaciones de cualquier tamaño puedan finalmente reenviar lotes anteriores y hacia análisis en tiempo actual.

Si desea probar Rockset + CDC, puede comenzar una prueba gratuita de dos semanas con $ 300 en créditos aquí.



Related Articles

Comments

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Same Category

spot_img

Stay in touch!

Follow our Instagram