Cuando la última vez preguntamos "¿Qué diablos es?", estábamos viendo la plataforma de transmisión de datos compatible con el protocolo __ __® Con los datos de transmisión, debes hacer algo con ellos. Aterrizarlos en algún lugar como , , o , o consultar esos datos en vuelo para enriquecerlos y/o filtrarlos antes de aterrizar. Existen algunas opciones para esto último, pero la más importante es, sin duda, el proyecto de código abierto Mirar a Flink me llevó a , que es nuestro tema de hoy. ¿Qué diablos es DeltaStream? ¿Cómo funciona con Flink y cómo es un complemento de Kafka? Apache Kafka Corriente de deformación Iceberg apache Copo de nieve Bloques de datos Enlace apache Corriente Delta ¿Qué es Flink? Flink fue aceptado inicialmente como un proyecto Apache en diciembre de 2014, por lo que ha existido durante un tiempo. El crecimiento del procesamiento de flujo ha llevado a un interés y uso acelerados en los últimos años. Flink es un sistema un tanto difícil de implementar y usar internamente, que requiere talento de ingeniería dedicado. El servicio, aunque más sencillo, sigue siendo bastante complejo. Para utilizar Java, por ejemplo, es necesario escribir la consulta Java, generar un archivo jar, comprimirlo, subirlo a S3, configurar los permisos y, luego, ejecutarlo. AWS MSF Voy a tomar prestado de la página web de Apache Flink aquí. Apache Flink es un marco y un motor de procesamiento distribuido para cálculos con estado sobre flujos de datos ilimitados y acotados. Flink ha sido diseñado para ejecutarse en todos los entornos de clúster comunes y realizar cálculos a velocidad en memoria y a cualquier escala. No quiero replicar más de lo que hay en su sitio web, así que si no estás seguro acerca de Flink, échale un vistazo. Uso de DeltaStream En su forma más básica, DeltaStream te brinda el poder de Flink sin tener que lidiar con Flink. En absoluto. Para mi prueba, utilicé su para la interfaz web; tenga en cuenta que también tienen una CLI, que no probé. Guía de inicio rápido Cuando te registras, obtienes una prueba gratuita de 14 días. Se crea un clúster de Kafka de muestra llamado "trial_store" que puedes usar en lugar de tus propios datos para probar. La demostración contiene una serie de temas con los que puedes jugar. Los íconos debajo de ACCIONES te permiten eliminar un tema o ver detalles y contenido sobre el tema. Aquí están los detalles del tema como referencia, que usaremos más adelante. de páginas vistas Bien, tenemos un clúster de Kafka en funcionamiento y temas en él. Ahora, hagamos algo interesante. Como se mencionó en la introducción, lo más interesante que puedo hacer es enriquecer o filtrar datos mientras están en tránsito antes de que aterricen en su destino final, como una base de datos, un almacén o un lago. Para esos fines, vamos al espacio de trabajo. Esta parte me costó un poco acostumbrarme. Una base de datos y un esquema en DeltaStream son simplemente carpetas organizativas. Puedes crear 'n' cantidad de bases de datos y, dentro de una base de datos, puedes tener 'n' cantidad de esquemas. Los esquemas contendrán el diseño de definición de tus objetos DeltaStream conocidos como STREAM, CHANGELOG, MATERIALIZED VIEW y TABLE. Una tabla se relaciona con una tabla de base de datos en algo como PostgreSQL, y la vista materializada es una forma de conservar los datos en un conjunto de resultados sin colocarlos en algún lugar específico. No voy a hacer nada con ninguno de ellos en este blog; me voy a centrar en Stream y Changelog. Estoy creando un flujo del tema en el clúster de Kafka en la siguiente captura de pantalla. Pienso en ello como si se estuviera creando una definición de tabla del tema. Hemos asignado los nombres de los campos y les hemos indicado qué tema utilizar y cuál es el formato de los datos. No tenemos que justificar por completo el clúster trial_store, ya que está configurado como predeterminado en el cuadro combinado de la parte superior. Una vez que se ejecuta ese comando, aparecerá en TestDB.public. Luego puedo consultarlo con algo como SELECT * FROM PAGEVIEWS y comenzaré a ver los datos en el panel de resultados de la parte inferior. de vistas de página A continuación, declaro un registro de cambios respaldado por el tema y ordenado por ID de usuario. Un registro de cambios es similar a un flujo, pero permite interpretar eventos en un tema como eventos UPSERT. Los eventos requieren una clave principal; DeltaStream interpreta cada evento como una inserción o actualización para la clave principal dada. En este caso, el registro de cambios refleja detalles específicos por usuario, como género e intereses. del usuario Aquí es donde empezamos a divertirnos. Voy a crear una nueva secuencia que enriquece la secuencia con datos del registro de cambios utilizando el como el valor clave para unirse. Esto ahora me da un tema único en el clúster con datos de dos temas diferentes. Desde aquí, puedo filtrarlo utilizando algo como regionid y escribir los resultados de esa consulta en un destino final, como una base de datos, un almacén o un lago. Esto me permitió enriquecer y filtrar los datos en tránsito antes de que llegaran, mejorando así la latencia y reduciendo los costos de computación y almacenamiento. de vistas de página users_log ID de usuario Resumen Entonces, ¿qué diablos es DeltaStream? Es una forma muy sencilla de usar Apache Flink sin saber nada sobre él ni hacer nada directamente con él. En mi ejemplo, viste lo sencillo que fue conectarse a Apache Kafka y luego leer, unir y filtrar los datos. Otras conexiones compatibles actualmente son Kinesis, PostgreSQL, Snowflake y Databricks, y me dijeron que ClickHouse e Iceberg pronto estarán disponibles. En definitiva, DeltaStream te ofrece el poder de Apache Flink sin tener que lidiar con Apache Flink, y puedes hacerlo usando SQL en lugar de Java. Si trabajas con transmisión de datos o buscas implementarla, esta es definitivamente una solución muy inteligente y conveniente. Consulta mis otros artículos de What the Heck is… en los enlaces que aparecen a continuación: ¿Qué diablos es DuckDB? ¿Qué diablos es Malloy? ¿Qué diablos es PRQL? ¿Qué diablos es GlareDB? ¿Qué diablos es SeaTunnel? ¿Qué diablos es LanceDB? ¿Qué diablos es SDF? ¿Qué diablos es Paimon? ¿Qué diablos es Protón? ¿Qué diablos es PuppyGraph? ¿Qué diablos es GPTScript? ¿Qué diablos es WarpStream? **