paint-brush
¿Qué diablos es DeltaStream?por@progrockrec
599 lecturas
599 lecturas

¿Qué diablos es DeltaStream?

por Shawn Gordon5m2024/12/12
Read on Terminal Reader

Demasiado Largo; Para Leer

DeltaStream es un servicio administrado que le permite utilizar Flink sin tener que lidiar con Flink.
featured image - ¿Qué diablos es DeltaStream?
Shawn Gordon HackerNoon profile picture


Cuando la última vez preguntamos "¿Qué diablos es?", estábamos viendo la plataforma de transmisión de datos compatible con el protocolo __ Apache Kafka __® Corriente de deformación Con los datos de transmisión, debes hacer algo con ellos. Aterrizarlos en algún lugar como Iceberg apache , Copo de nieve , o Bloques de datos , 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 Enlace apache Mirar a Flink me llevó a Corriente Delta , que es nuestro tema de hoy. ¿Qué diablos es DeltaStream? ¿Cómo funciona con Flink y cómo es un complemento de Kafka?

¿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. AWS MSF 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.


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 Guía de inicio rápido para la interfaz web; tenga en cuenta que también tienen una CLI, que no probé.


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.


Navegador de temas de DeltaStream


Aquí están los detalles del tema de páginas vistas como referencia, que usaremos más adelante.

Inspector de temas de DeltaStream


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.

Descripción del espacio de trabajo de DeltaStream


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 de vistas de página 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.


Ejemplo de creación de secuencias DeltaStream


A continuación, declaro un registro de cambios respaldado por el tema del usuario 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.

Ejemplo de registro de cambios de DeltaStream


Aquí es donde empezamos a divertirnos. Voy a crear una nueva secuencia que enriquece la secuencia de vistas de página con datos del registro de cambios users_log utilizando el ID de usuario 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.

Ejemplo de unión a DeltaStream

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:




**