Editar

Share via


Procesamiento de datos del almacén del lago de datos casi en tiempo real

Azure AI Search
Azure Cosmos DB
Azure Data Lake
Azure Event Hubs
Azure Synapse Analytics

Las empresas controladas por datos deben mantener sus sistemas de back-end y de análisis sincronizados casi en tiempo real con las aplicaciones orientadas al cliente. El impacto de las transacciones, las actualizaciones y los cambios se debe reflejar con precisión en los procesos integrales, las aplicaciones relacionadas y los sistemas de procesamiento de transacciones en línea (OLTP). La latencia tolerable de los cambios en las aplicaciones OLTP para reflejarse en los sistemas del flujo descendente que usan los datos puede ser de solo unos minutos.

En este artículo, se describe una solución completa para el procesamiento de datos casi en tiempo real para mantener sincronizados los datos del almacén del lago de datos. La solución usa Azure Event Hubs, Azure Synapse Analytics y Azure Data Lake Storage para el procesamiento y el análisis de datos.

Apache® y Apache Spark son marcas comerciales registradas o marcas comerciales de Apache Software Foundation en los Estados Unidos u otros países. El uso de estas marcas no implica la aprobación de Apache Software Foundation.

Architecture

Diagrama que muestra el flujo de datos de la solución de procesamiento de datos integral.

Descargue un archivo Visio de esta arquitectura.

Flujo de datos

  1. La captura de datos modificados es un requisito previo para que los sistemas de origen escuchen los cambios. Los conectores de Debezium pueden conectarse a diferentes sistemas de origen y utilizar los cambios a medida que se producen. Los conectores pueden capturar cambios y generar eventos de varios sistemas de administración de bases de datos relacionales (RDBMS). La instalación de un conector de Debezium requiere un sistema de conexión de Kafka.

  2. Los conectores extraen los datos modificados y envían los eventos capturados a Azure Event Hubs. Event Hubs puede recibir grandes cantidades de datos de varios orígenes.

  3. Event Hubs transmite directamente los datos a los grupos de Spark de Azure Synapse Analytics o puede enviar los datos a una zona de aterrizaje de Azure Data Lake Storage en formato sin procesar.

  4. Otros orígenes de datos por lotes pueden usar canalizaciones de Azure Synapse para copiar los datos en Data Lake Storage y ponerlos a disposición para su procesamiento. Es posible que un flujo de trabajo de extracción, transformación y carga de datos (ETL) integral tenga que encadenar diferentes pasos o agregar dependencias entre los pasos. Las canalizaciones de Azure Synapse pueden orquestar las dependencias del flujo de trabajo dentro del marco de procesamiento general.

  5. Los grupos de Spark de Azure Synapse usan las API de streaming estructurado de Apache Spark totalmente compatibles para procesar los datos en el marco de streaming de Spark. El paso de procesamiento de datos incorpora comprobaciones de calidad de datos y validaciones de reglas de negocio de alto nivel.

  6. Data Lake Storage almacena los datos validados en el formato abierto de Delta Lake. Delta Lake proporciona semántica y transacciones con atomicidad, coherencia, aislamiento y durabilidad (ACID), control de metadatos escalable y procesamiento unificado de datos por lotes y de streaming para los lagos de datos existentes.

    El uso de índices para la aceleración de consultas aumenta Delta con mejoras de rendimiento adicionales. Los datos de la zona validada de Data Lake Storage también pueden ser un origen para el análisis avanzado y el aprendizaje automático.

  7. Los datos de la zona validada de Data Lake Storage, transformados y enriquecidos con más reglas en su estado procesado final, se cargan en un grupo de SQL dedicado para ejecutar consultas analíticas a gran escala.

  8. Power BI usa los datos expuestos mediante el grupo de SQL dedicado para crear informes y paneles de clase empresarial.

  9. También puede usar los datos sin procesar capturados en la zona de aterrizaje de Data Lake Store y los datos validados en formato Delta para:

    • Análisis ad hoc y exploratorio mediante los grupos sin servidor de Azure Synapse SQL.
    • Aprendizaje automático mediante Azure Machine Learning.
  10. Para algunas interfaces de baja latencia, los datos se deben desnormalizar para obtener latencias de servidor de un solo dígito. Este escenario de uso es principalmente para las respuestas de API. Este escenario consulta documentos de un almacén de datos NoSQL, como Azure Cosmos DB, para obtener respuestas de un solo dígito en milisegundos.

  11. Es posible que la estrategia de creación de particiones de Azure Cosmos DB no se preste a todos los patrones de consulta. Si ese es el caso, puede aumentar la solución mediante la indexación de los datos a los que las API tienen que acceder con Azure Cognitive Search. Azure Cosmos DB y Cognitive Search pueden cumplir la mayoría de los escenarios que requieren respuestas de consultas de baja latencia.

Componentes

Esta solución usa los siguientes componentes de Azure:

  • Event Hubs es un servicio de ingesta distribuido y administrado que se puede escalar para ingerir grandes cantidades de datos. Con el mecanismo de publicador y suscriptor de Event Hubs, las diferentes aplicaciones pueden enviar mensajes a temas de Event Hubs y los consumidores del flujo descendente pueden conectarse a ellos y procesar los mensajes. La característica Capture de Event Hubs puede escribir los mensajes en Data Lake Storage en formato AVRO a medida que llegan. Esta capacidad permite un procesamiento por microlotes sencillo y escenarios de retención a largo plazo. Event Hubs también ofrece una API compatible con Kafka y admite el registro de esquema.

  • Data Lake Storage forma el subsistema de almacenamiento que almacena todos los datos en formatos sin procesar y validados. Data Lake Storage puede controlar transacciones a gran escala y admite diferentes formatos y tamaños de archivo. Los espacios de nombres jerárquicos ayudan a organizar los datos en una estructura de carpetas conocida y admiten los permisos de la Interfaz de sistema operativo portable para UniX (POSIX). El controlador de Azure Blob File System (ABFS) ofrece una API compatible con Hadoop.

  • Azure Synapse Analytics es un servicio de análisis ilimitado que combina la integración de datos, el almacenamiento de datos empresariales y el análisis de macrodatos. Esta solución usa las siguientes características del ecosistema de Azure Synapse Analytics:

    • Los grupos de Spark de Azure Synapse ofrecen un entorno de ejecución de Spark a petición que agrega mejoras de rendimiento integradas a la versión de código abierto de Spark. Los clientes pueden configurar opciones de escalabilidad automática flexibles, enviar trabajos de forma remota mediante el punto de conexión de Apache Livy y usar la interfaz de cuadernos de Synapse Studio para las experiencias interactivas.

    • Los grupos sin servidor de Azure Synapse SQL proporcionan una interfaz para consultar datos del almacén del lago de datos mediante una sintaxis de T-SQL conocida. No hay ninguna infraestructura que configurar y la implementación del área de trabajo de Azure Synapse crea automáticamente el punto de conexión. Los grupos sin servidor de Azure Synapse SQL permiten la detección y exploración básicas de los datos de forma local y son una buena opción para el análisis de las consultas ad hoc de usuario.

    • Los grupos de SQL dedicados de Azure Synapse almacenan los datos en tablas relacionales con almacenamiento en columnas. Los grupos de SQL dedicados usan una arquitectura de escalabilidad horizontal para distribuir el procesamiento de datos entre varios nodos. Las consultas de PolyBase traen los datos a las tablas del grupo de SQL. Las tablas pueden conectarse a Power BI para análisis e informes.

  • Power BI proporciona una interfaz visual para crear y acceder a informes y paneles. Power BI Desktop puede conectarse a varios orígenes de datos, combinar los orígenes en un modelo de datos y crear informes o paneles. Con Power BI, puede transformar los datos en función de los requisitos empresariales y compartir objetos visuales e informes con otros usuarios mediante el servicio Power BI.

  • Azure Cosmos DB es una base de datos NoSQL multimodal y administrada que admite API abiertas, como MongoDB y Cassandra. Esta solución usa Azure Cosmos DB para aplicaciones que requieren tiempos de respuesta de un solo dígito en milisegundos y alta disponibilidad. Azure Cosmos DB ofrece escrituras en varias regiones en todas las regiones de Azure. Puede usar Azure Synapse Link para Azure Cosmos DB para obtener conclusiones y ejecutar análisis en los datos en tiempo real.

  • Azure Cognitive Search es un servicio de búsqueda en la nube que puede indexar los datos que necesitan las aplicaciones y las API. Cognitive Search tiene características de enriquecimiento con IA opcionales que ayudan con la extracción de texto y la inferencia de texto a partir de archivos que no son de texto. Cognitive Search se integra con servicios como Azure Data Lake Storage y Azure Cosmos DB para acceder fácilmente a los datos e indexarlos. Puede consultar los datos indexados mediante una API REST o el SDK de .NET. Para obtener datos de dos índices independientes, puede combinarlos en un único índice o usar tipos de datos complejos.

Detalles del escenario

El flujo de trabajo integral para procesar los cambios casi en tiempo real requiere:

  • Una tecnología de captura de datos modificados (CDC). Las aplicaciones OLTP pueden tener diferentes almacenes de datos back-end, como SQL Server, MySQL y Oracle. El primer paso es escuchar los cambios a medida que se producen y propagarlos hacia delante.
  • Un búfer de ingesta para publicar los eventos de cambio a gran escala. Este servicio debe tener la capacidad de controlar grandes cantidades de datos a medida que llegan los mensajes. Los suscriptores individuales pueden conectarse a este sistema y procesar los datos.
  • Almacenamiento distribuido y escalable para los datos tal cual están en un formato sin procesar.
  • Un sistema de procesamiento de flujos distribuido y eficaz que permite a los usuarios reiniciar y administrar el estado.
  • Un sistema de análisis que se ejecuta a gran escala para impulsar las decisiones empresariales.
  • Una interfaz de análisis de autoservicio.
  • En el caso de las respuestas de API de baja latencia, una base de datos NoSQL para almacenar la representación desnormalizada de los datos.
  • En algunos casos, un sistema para indexar los datos, actualizar el índice a intervalos regulares y hacer que los datos más recientes estén disponibles para su consumo en el flujo descendente.

Todas las tecnologías anteriores deben usar las construcciones de seguridad pertinentes para la seguridad perimetral, la autenticación, la autorización y el cifrado de datos.

Posibles casos de uso

Esta solución es adecuada para:

  • Sectores que tienen que propagar los cambios desde OLTP al procesamiento analítico en línea (OLAP).
  • Aplicaciones que requieren transformación o enriquecimiento de datos.

El escenario de procesamiento de datos en tiempo real es especialmente importante para los sectores de servicios financieros. Por ejemplo, si un cliente bancario, o del sector de seguros o de tarjetas de crédito, realiza un pago y, a continuación, se pone en contacto inmediatamente con el servicio de atención al cliente, el agente de atención al cliente debe tener la información más reciente.

Escenarios similares se aplican a los sectores de venta minorista, comercial y sanitario. La habilitación de estos escenarios simplifica las operaciones, lo que conduce a una mayor productividad organizativa y a una mayor satisfacción del cliente.

Consideraciones

Estas consideraciones implementan los pilares del marco de buena arquitectura de Azure, que es un conjunto de principios guía que se pueden usar para mejorar la calidad de una carga de trabajo. Para más información, consulte Marco de buena arquitectura de Microsoft Azure.

Confiabilidad

La confiabilidad garantiza que la aplicación pueda cumplir los compromisos contraídos con los clientes. Para más información, consulte Resumen del pilar de fiabilidad.

  • Event Hubs ofrece una retención de datos de 90 días en los niveles Premium y Dedicado. En escenarios de conmutación por error, puede configurar un espacio de nombres secundario en la región emparejada y activarlo durante la conmutación por error.

  • Los trabajos del grupo de Spark de Azure Synapse se reciclan cada siete días a medida que los nodos se apagan para el mantenimiento. Tenga en cuenta esta actividad a medida que trabaja en los Acuerdos de Nivel de Servicio (SLA) vinculados al sistema. Esta limitación no es un problema para muchos escenarios en los que el objetivo de tiempo de recuperación (RTO) es de aproximadamente 15 minutos.

Optimización de costos

La optimización de costos trata de buscar formas de reducir los gastos innecesarios y mejorar las eficiencias operativas. Para más información, vea Información general del pilar de optimización de costos.

  • Puede seleccionar entre distintos niveles de Event Hubs en función de las características de la carga de trabajo. Event Hubs factura el almacenamiento de Capture por separado, en función de la cantidad de datos que se almacenan en Data Lake Storage.

  • Considere la posibilidad de administrar el ciclo de vida de los objetos mediante niveles en Azure Data Lake Storage. A medida que los datos toman antigüedad, puede mover los datos desde un nivel de acceso frecuente, donde necesita acceder a los datos recientes para el análisis, a un nivel de almacenamiento en frío que tenga un precio mucho menor. El nivel de almacenamiento en frío es una opción rentable para la retención a largo plazo.

  • Puede pausar el grupo de SQL dedicado cuando no lo use en los entornos de desarrollo o prueba. Puede programar un script para pausar el grupo según sea necesario, o bien puede pausar el grupo manualmente mediante el portal.

  • Azure Cosmos DB ofrece diferentes modelos de aprovisionamiento, como la opción sin servidor, el rendimiento aprovisionado manual y la escalabilidad automática. Considere la posibilidad de usar el aprovisionamiento sin servidor para las cargas de trabajo de desarrollo y pruebas. También puede usar la escalabilidad automática, en la que puede establecer las unidades de solicitud máximas por segundo (RU/s) en el contenedor. El rendimiento del contenedor se escala automáticamente entre el 10 % de las RU/s máximas como el umbral inferior y las RU/s máximas configuradas.

Eficiencia del rendimiento

La eficiencia del rendimiento es la capacidad de la carga de trabajo para escalar con el fin de satisfacer de manera eficiente las demandas que los usuarios hayan ejercido sobre ella. Para obtener más información, vea Resumen del pilar de eficiencia del rendimiento.

  • Puede escalar Event Hubs mediante la creación de particiones. Considere la posibilidad de crear particiones de los datos para conservar el orden de los eventos mediante un registro de confirmación. La creación de particiones permite crear varios registros en paralelo maximizando la capacidad de rendimiento disponible.

  • Puede configurar los grupos de Spark de Azure Synapse con SKU de máquina virtual pequeñas, medianas o grandes, en función de la carga de trabajo. También puede configurar la escalabilidad automática en los grupos de Spark de Azure Synapse para tener en cuenta las cargas de trabajo con picos. Si necesita más recursos de proceso, los clústeres se escalan verticalmente automáticamente para satisfacer la demanda y se reducen verticalmente una vez completado el procesamiento.

  • Use los procedimientos recomendados para el diseño de tablas en el grupo de SQL dedicado. Se aplican los límites de rendimiento y escalabilidad asociados, en función del nivel en el que se ejecute el grupo de SQL.

  • Azure Cosmos DB usa particiones para escalar los contenedores, en función de una clave de partición. Todos los datos basados en una clave de partición forman una partición lógica. Asegúrese de elegir la estrategia de creación de particiones correcta en función de los requisitos de carga de trabajo. También puede usar índices para una recuperación de datos más rápida.

Colaboradores

Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.

Autor principal:

Otro colaborador:

Para ver los perfiles no públicos de LinkedIn, inicie sesión en LinkedIn.

Pasos siguientes