Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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. Los efectos de las transacciones, las actualizaciones y los cambios deben reflejarse con precisión a través de procesos de un extremo a otro, aplicaciones relacionadas y sistemas de procesamiento de transacciones en línea (OLTP). La latencia tolerable para que los cambios en las aplicaciones OLTP se reflejen en los sistemas posteriores que utilizan 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.
Nota:
Puede implementar una arquitectura similar mediante Microsoft Fabric, que proporciona una plataforma unificada de software como servicio (SaaS) para la ingesta, transformación, almacenamiento y análisis de datos. En este caso, Fabric reemplaza los componentes de Azure Synapse Analytics de la arquitectura y proporciona funcionalidades integradas para el procesamiento y el análisis de datos en tiempo real. Para obtener más información, consulte Fabric Real-Time Intelligence.
Apache y Apache ® Spark son marcas comerciales registradas o marcas comerciales de Apache Software Foundation en Los Estados Unidos o en otros países. El uso de estas marcas no implica la aprobación de Apache Software Foundation.
Arquitectura
Descargue un archivo de Visio de esta arquitectura.
Flujo de datos
La captura de datos modificados (CDC) 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 aprovechar 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.
Los conectores extraen los datos modificados y envían los eventos capturados a Event Hubs. Event Hubs puede recibir grandes cantidades de datos de varios orígenes.
Event Hubs transmite directamente los datos a los grupos de Spark de Azure Synapse Analytics o envía los datos a una zona de aterrizaje de Data Lake Storage en formato sin procesar.
Otros orígenes de datos por lotes pueden usar canalizaciones de Azure Synapse Analytics para copiar datos en Data Lake Storage y hacer que esté disponible para su procesamiento. Es posible que un flujo de trabajo de extracción, transformación y carga (ETL) de un extremo a otro necesite encadenar diferentes pasos o agregar dependencias entre pasos. Las canalizaciones de Azure Synapse Analytics pueden orquestar las dependencias de flujo de trabajo dentro del marco de procesamiento general.
Los grupos de Spark de Azure Synapse Analytics usan API de streaming estructurado de Apache Spark totalmente compatibles para procesar datos en el marco de Spark Streaming. El paso de procesamiento de datos incorpora comprobaciones de calidad de datos y validaciones de reglas de negocio de alto nivel.
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 mejora el rendimiento de Delta Lake. 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.
Los datos de la zona validada de Data Lake Storage, transformados y enriquecidos con más reglas en su estado final procesado, se cargan en un grupo de SQL dedicado para ejecutar consultas analíticas a gran escala.
Power BI usa los datos que se exponen a través del grupo de SQL dedicado para crear informes e paneles de nivel empresarial.
También puede usar datos sin procesar capturados en Data Lake Store y los datos validados en formato Delta para las siguientes tareas:
Análisis no planeado y exploratorio a través de grupos de SQL sin servidor de Azure Synapse Analytics
Entrenamiento e implementación de modelos de Machine Learning mediante Azure Machine Learning
Para algunas interfaces de baja latencia, los datos se deben desnormalizar para obtener latencias de servidor de un solo dígito. Este caso 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.
Es posible que la estrategia de creación de particiones de Azure Cosmos DB no admita eficazmente todos los patrones de consulta. Si es así, puede aumentar la solución mediante la indexación de los datos a los que las API necesitan acceder con Azure AI Search. Azure Cosmos DB y AI Search pueden cumplir la mayoría de los escenarios que requieren respuestas de consulta de baja latencia. Por ejemplo, una aplicación minorista almacena los datos del catálogo de productos en Azure Cosmos DB, pero necesita funcionalidades de búsqueda de texto completo y indexación flexible. AI Search puede indexar los datos y proporcionar características de búsqueda avanzadas, como autocompletar, sinónimos y clasificación semántica. Estas características son útiles cuando las limitaciones de indexación de Azure Cosmos DB restringen escenarios de búsqueda complejos.
Componentes
Esta solución usa los siguientes componentes de Azure:
Event Hubs es un servicio de ingesta distribuido administrado que se puede escalar para ingerir grandes cantidades de datos. Mediante el mecanismo de publicador y suscriptor de Event Hubs, diferentes aplicaciones pueden enviar mensajes a temas de Event Hubs y los consumidores de nivel inferior pueden conectarse a esos mensajes y procesarlos. La característica de captura de Event Hubs puede escribir 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 proporciona una API compatible con Kafka y admite el registro de esquemas. En esta arquitectura, Event Hubs recibe eventos CDC de varios orígenes y los distribuye a los consumidores de nivel inferior.
Data Lake Storage es una solución de lago de datos escalable y segura. Forma el subsistema de almacenamiento que almacena todos los datos en formatos sin procesar y validados. En esta arquitectura, Data Lake Storage controla las transacciones a 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 permisos portables de interfaz de sistema operativo para Unix (POSIX). El controlador Azure Blob Filesystem (ABFS) proporciona 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 Analytics son clústeres que proporcionan un entorno de ejecución de Spark a petición que agrega mejoras de rendimiento integradas a Spark de código abierto. En esta arquitectura, los clientes pueden configurar opciones de escalabilidad automática flexibles, enviar trabajos de forma remota a través del punto de conexión de Apache Livy y usar la interfaz del cuaderno de Synapse Studio para experiencias interactivas.
Los grupos de SQL sin servidor de Azure Synapse Analytics son una característica de consulta a petición que proporciona una interfaz para consultar datos de lakehouse mediante la sintaxis de T-SQL conocida. No hay ninguna infraestructura que configurar y la implementación del área de trabajo de Azure Synapse Analytics crea automáticamente el punto de conexión. En esta arquitectura, los grupos de SQL sin servidor de Azure Synapse Analytics habilitan la detección y exploración básicas de los datos en su lugar para el análisis de consultas no planeados.
Los grupos de SQL dedicados de Azure Synapse Analytics son recursos de almacenamiento de datos aprovisionados. Almacenan datos en tablas relacionales mediante el almacenamiento en columnas. En esta arquitectura, los pools SQL dedicados utilizan una arquitectura de escalado 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 es un servicio de análisis empresarial que 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. En esta arquitectura, puede usar Power BI para transformar los datos en función de los requisitos empresariales y compartir objetos visuales e informes con los clientes.
Azure Cosmos DB es un servicio de base de datos NoSQL distribuido globalmente. 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 proporciona escrituras en varias regiones en todas las regiones de Azure.
AI Search es una plataforma como servicio (PaaS) con tecnología de inteligencia artificial que permite a los desarrolladores crear experiencias de búsqueda enriquecidas para sus aplicaciones y sitios web. Use AI Search en esta solución cuando el modelo de indexación de Azure Cosmos DB sea demasiado rígido para escenarios de búsqueda avanzados. AI Search permite realizar consultas flexibles con características como tolerancia a errores tipográficos, autocompletar, clasificación semántica y coincidencia de sinónimos. Puede consultar datos indexados mediante una API REST o el SDK de .NET. Si necesita recuperar datos de varios índices, puede consolidarlos en un único índice o usar tipos de datos complejos para modelar estructuras anidadas.
Detalles del escenario
El flujo de trabajo integral para procesar los cambios casi en tiempo real requiere:
Una tecnología 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.
Para las respuestas de API de baja latencia, una base de datos NoSQL para almacenar representaciones desnormalizadas 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 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 se adapta a los siguientes casos de uso:
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.
Los escenarios similares se aplican al sector minorista, comercial y sanitario. La habilitación de estos escenarios simplifica las operaciones y conduce a una mayor productividad de la organización y a una mayor satisfacción del cliente.
Consideraciones
Estas consideraciones implementan los pilares de Azure Well-Architected Framework, que es un conjunto de principios rectores que puede usar para mejorar la calidad de una carga de trabajo. Para obtener más información, consulte Well-Architected Framework.
Confiabilidad
La confiabilidad ayuda a garantizar que la aplicación pueda cumplir los compromisos que realice para sus clientes. Para obtener más información, consulte Lista de comprobación de revisión de diseño para confiabilidad.
Event Hubs proporciona 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. Habilite la redundancia de zona para garantizar la resistencia frente a errores del centro de datos. Puede usar la característica de captura de Event Hubs para conservar los datos en Data Lake Storage para escenarios de reproducción y recuperación.
Los trabajos del grupo de Spark de Azure Synapse Analytics se reciclan cada siete días a medida que los nodos se desactivan por mantenimiento. Tenga en cuenta esta actividad mientras gestiona 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 unos 15 minutos. Asegúrese de que el escalado automático está configurado para controlar los picos de carga y los errores de nodo.
Utilice grupos de SQL dedicados que tengan almacenamiento con copia de seguridad geográfica y redundancia de zona (ZRS) para protegerse de interrupciones regionales y zonales.
Optimización de costos
La optimización de costos se centra en formas de reducir los gastos innecesarios y mejorar las eficiencias operativas. Para obtener más información, consulte Lista de comprobación de revisión de diseño para la 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 dedicado a la captura de datos por separado, basado en la cantidad de datos almacenados en Data Lake Storage.
Considere la posibilidad de administrar el ciclo de vida de objetos a través de niveles en Data Lake Storage. A medida que los datos envejecen, puede mover datos de un nivel de acceso caliente, donde necesita acceder a los datos recientes para el análisis, a un nivel de almacenamiento en frío que tiene un costo 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.
En el caso de los grupos de Spark de Azure Synapse Analytics, use el escalado automático para asignar recursos dinámicamente en función de la demanda de cargas de trabajo y evitar el sobreaprovisionamiento. Elija el tamaño de grupo más pequeño que satisfaga las necesidades de rendimiento y use la configuración de terminación automática para apagar rápidamente los grupos inactivos. Optimice los trabajos de Spark al minimizar las operaciones aleatorias, almacenar en caché los resultados intermedios y ajustar los tamaños de partición para reducir el tiempo de ejecución y el consumo de recursos. Supervise el uso mediante las herramientas de supervisión de Azure Synapse Analytics y ajuste las configuraciones en función del rendimiento del trabajo y las tendencias de costos.
Para optimizar la rentabilidad en Azure Cosmos DB, adapte las directivas de indexación para incluir solo las rutas de acceso necesarias, lo que reduce el consumo de unidades de solicitud (RU) y almacenamiento. Elija la API adecuada y el nivel de coherencia para satisfacer las necesidades de carga de trabajo sin sobreaprovisionamiento. Use el rendimiento de escalado automático para ajustar dinámicamente las RU en función de la demanda y consolidar las cargas de trabajo en menos contenedores cuando sea posible para minimizar la sobrecarga. Supervise periódicamente el uso mediante Microsoft Cost Management y establezca alertas para evitar cargos inesperados.
Use la calculadora de precios de Azure para calcular los precios.
Eficiencia del rendimiento
La eficiencia del rendimiento hace referencia a la capacidad de escalado de la carga de trabajo para satisfacer las demandas de los usuarios de forma eficaz. Para obtener más información, vea Lista de comprobación de revisión de diseño para la eficiencia del rendimiento.
Puede escalar Event Hubs a través de la creación de particiones, que distribuye eventos entre varios registros paralelos (particiones) para aumentar el rendimiento. Para conservar el orden de los eventos relacionados, como los eventos del mismo cliente o dispositivo, use una clave de partición coherente al publicar eventos. Esta práctica garantiza que todos los eventos relacionados se enruten a la misma partición, donde Event Hubs mantiene el orden de los eventos. Ajuste las unidades de rendimiento (RU) en función del volumen de eventos esperado. Utilice la función de captura para escribir directamente en Data Lake Storage en formato Avro o Parquet para un procesamiento posterior eficaz.
Puede configurar grupos de Spark de Azure Synapse Analytics con SKU de máquinas virtuales pequeñas, medianas o grandes en función de la carga de trabajo. También puede configurar la escalabilidad automática en grupos de Spark de Azure Synapse Analytics para tener en cuenta los picos de actividad en las cargas de trabajo. Si necesita más recursos de cálculo, los clústeres se escalan automáticamente hacia arriba para satisfacer la demanda y se escalan hacia abajo después de completar el procesamiento.
Delta Lake desempeña un papel central en garantizar el procesamiento de datos escalable, confiable y de alto rendimiento en esta arquitectura:
Habilite las características de optimización automática y compactación automática en Delta Lake para administrar automáticamente archivos pequeños y optimizar el diseño de datos durante las operaciones de escritura. Estas características son ideales para los escenarios de transmisión en continuo o ingesta por micro-lotes frecuentes, ya que reducen la necesidad de intervención manual.
Se usa
OPTIMIZEpara compactar manualmente archivos pequeños en archivos más grandes. Esta práctica es especialmente útil cuando desea mejorar la eficacia de lectura y reducir la sobrecarga de metadatos después de que la ingesta de streaming cree muchos archivos pequeños.Use
OPTIMIZEconZORDER BYen columnas consultadas con frecuencia, como marcas de tiempo o identificadores de cliente, para colocar datos relacionados. Esta consulta mejora el rendimiento de las consultas al reducir la cantidad de datos que se examinan durante las lecturas.
Para optimizar el rendimiento en grupos de SQL dedicados para análisis casi en tiempo real, realice las siguientes tareas:
- Use métodos de distribución adecuados, como los métodos hash, round robin y replicados.
- Particione tablas grandes por tiempo o región para mejorar la poda de consultas.
- Use vistas materializadas y almacenamiento en caché del conjunto de resultados para los datos a los que se accede con frecuencia.
- Mantenga estadísticas e índices actualizados para ejecutar consultas eficazmente.
- Asigne clases de recursos para administrar la memoria y la simultaneidad.
- Supervise el rendimiento mediante herramientas integradas como SQL Insights y vistas de administración dinámica (DMV).
Estos procedimientos ayudan a garantizar un rendimiento de alto rendimiento y baja latencia en cargas de trabajo analíticas a gran escala.
Para optimizar Azure Cosmos DB para el rendimiento en escenarios de análisis en tiempo real, configure las directivas de indexación adecuadas para reducir la latencia de consulta y la sobrecarga de almacenamiento, y elija el nivel de coherencia adecuado para equilibrar el rendimiento con precisión de los datos. Utiliza particiones de forma eficaz para distribuir las cargas de trabajo uniformemente y evitar particiones calientes. Habilite las escrituras de varias regiones para el acceso global de baja latencia y supervise el rendimiento mediante ru para escalar dinámicamente en función de la demanda. Estos procedimientos ayudan a garantizar un rendimiento dinámico y escalable para cargas de trabajo de alta ingesta y baja latencia.
Colaboradores
Microsoft mantiene este artículo. Los colaboradores siguientes escribieron este artículo.
Autor principal:
- Pratima Valavala | Arquitecto de soluciones en la nube
Otro colaborador:
- Rajesh Mittal | Arquitecto de soluciones en la nube
Para ver los perfiles no públicos de LinkedIn, inicie sesión en LinkedIn.
Pasos siguientes
- Escalabilidad con Event Hubs
- Indexación de datos de Azure Cosmos DB
- Procedimientos recomendados para grupos de SQL dedicados
- Procedimientos recomendados para los grupos de SQL sin servidor
- Creación de soluciones de análisis de datos mediante grupos de SQL sin servidor de Azure Synapse Analytics
- Consulta de un lago de datos o un lago mediante grupos de SQL sin servidor de Azure Synapse Analytics