Kappa Arquitectura: una manera diferente de procesar datos

https://www.blue-granite.com/blog/a-different-way-to-process-data-kappa-architecture

Arquitectura Kappa propone un flujo de datos inmutables como la fuente primaria de registro. A diferencia de lambda, kappa mitiga la necesidad de código duplicado en múltiples servicios. En mi último mensaje , introduje las opciones de arquitectura lambda de herramientas disponibles en Microsoft Azure , arquitecturas de referencia de la muestra, y algunas limitaciones. En este post, voy a hablar de un patrón de carga de trabajo de grandes volúmenes de datos alternativa: la arquitectura kappa. 

 

A continuación, voy a dar una visión general de lo que es la kappa, discutir algunos de los beneficios y las ventajas y desventajas de la aplicación de la kappa frente lambda en Azure, y revisar una arquitectura de referencia de la muestra. Por último, voy a ofrecer algunas consideraciones adicionales cuando se implementa a escala empresarial arquitecturas de grandes volúmenes de datos.

Kappa Arquitectura: el Inmutable, persistió Conectarse

Arquitectura Kappa, que se atribuye a Jay Kreps, CEO de confluentes, Inc. y co-creador de Apache Kafka , propone un flujo de datos inmutables como la fuente primaria de registro, en lugar de las representaciones de punto en el tiempo de las bases de datos o archivos. En otras palabras, si un flujo de datos que contiene todos los datos de la organización se puede conservar indefinidamente (o por el tiempo que los casos de uso pueden requerir), luego se transforma en código puede ser reproducido para eventos pasados, según sea necesario. Esto permite que la unidad de pruebas y revisiones de streaming de cálculos que lambda no admite. Arquitectura Kappa también elimina la necesidad de un proceso de ingreso a base de lotes, ya que todos los datos se escriben como eventos con la corriente persistía.arquitectura Kappa es un enfoque novedoso para la arquitectura de sistemas distribuidos, y yo personalmente disfrutar de la filosofía de diseño detrás de él.

Apache Kafka

Kafka es una plataforma de streaming a propósito diseñado para kappa, que es compatible con el tiempo de vida (TTL) de períodos de tiempo indefinidos. Utilizando la compactación del registro en el clúster, el flujo de eventos kafka puede crecer tan grande como se puede añadir almacenamiento. Hay petabytes de tamaño ( imaginar la Biblioteca del Congreso ) kafka racimos en la producción hoy. Este conjuntos Kafka única aparte de otros streaming y plataformas de mensajería, ya que puede reemplazar las bases de datos como el sistema de registro . Aquí hay algunas fascinantes escribir-ups en la capacidad de Kafka:

Lambda Kappa vs.

Vamos con la arquitectura kappa. Lo que estamos esperando, ¿verdad? Bueno, no hay nada gratis. Kappa ofrece nuevas capacidades en comparación con lambda, pero lo hace pagar un precio en la aplicación de tecnologías de vanguardia - en concreto, a partir de hoy, usted va a tener que rodar en algunos de su propia infraestructura para hacer este trabajo.

Opciones No gestionados Servicio

No se puede apoyar kappa arquitectura utilizando servicios en la nube nativos. Los proveedores de cloud, incluyendo Azure, no diseñaron los servicios de streaming con kappa en mente. El costo de las corrientes de agua con mayor TTL de 24 horas es más caro, y, en general, el TTL máximo alcanza un máximo de alrededor de 7 días. Si desea ejecutar kappa, vas a tener que correr plataforma como servicio (PaaS) o Infraestructura como Servicio (IaaS), lo que añade más la administración a su arquitectura. Por lo tanto, lo que podría este aspecto como en Azure?

Arquitectura de referencia para Kappa con HDInsight

Arquitectura Kappa con HDInsight.png

En esta arquitectura de referencia, estamos eligiendo para transmitir todos los datos de la organización en kafka. Las aplicaciones pueden leer y escribir directamente a Kafka como desarrollado, y por fuentes de eventos existentes, los oyentes se utilizan para transmitir escribe directamente de los registros de base de datos del almacén de datos (o equivalentes), eliminando la necesidad de procesamiento por lotes durante la penetración. En la práctica, se requiere una carga histórica de una sola vez para los datos de los lotes existentes para llenar inicialmente el lago de datos.

Apache Spark es el motor de procesamiento única para la transformación y consulta durante la ingestión corriente. El tratamiento posterior con el almacén de datos lago se puede realizar para el aprendizaje de máquina o de otros análisis que requieren representaciones históricas de datos. A medida que cambian las necesidades, podemos cambiar el código y “repetición” de la corriente, la escritura a una nueva versión de la porción de tiempo existente en el lago de datos (v2, v3, y así sucesivamente). Desde nuestro lago ya no actúa como un almacén de datos inmutable de registro, simplemente podemos reproducir y reconstruir nuestras divisiones de tiempo como sea necesario.

Con kappa en su lugar, podemos eliminar cualquier pantano potencial mediante la repoblación de nuestro lago de datos según sea necesario. También se elimina el requisito de la lambda de código reproducen tanto en transmisión y el procesamiento por lotes - todos los eventos de entrada y de las transformaciones ocurren exclusivamente dentro de procesamiento de flujo.

consideraciones adicionales

Esquemas y Gobierno

Todavía es necesario un programa de gobierno de datos sólida, independientemente de la arquitectura de su elección. Para lambda, servicios como el Catálogo de datos Azure pueden detectar automáticamente y sistemas de archivos de documentos y bases de datos. Kafka no se alinea con estas herramientas, por lo que el apoyo a escala para entornos multinacionales: infiere fuertemente aplicación empresarial confluentes (disponible en el Azure mercado ).

Una característica clave de la empresa que proporciona una confluencia es el registro de esquema. Esto permite para temas a ser auto-descripción y proporciona advertencias de compatibilidad para aplicaciones de publicación para temas específicos, asegurando contratos con las aplicaciones posteriores se mantienen. Ejecución de la empresa confluentes trae en una relación de ayuda de tercera persona a su arquitectura y el coste de licencia adicional, pero es muy valiosa para implementaciones exitosas a escala empresarial.

 

Supongo que te gusta

Origin www.cnblogs.com/dadadechengzi/p/12639249.html
Recomendado
Clasificación