Ahorro de costos mediante HTAP con Azure SQL

Azure Databricks
Azure Event Hubs
Azure Functions
Azure SQL Database
Azure Stream Analytics

En este artículo se describe una solución para una arquitectura híbrida de procesamiento analítico y transaccional (HTAP). Para procesar transacciones, la mayoría de los sistemas usan cargas de trabajo operativas de baja latencia y gran volumen. En el caso del análisis, las cargas de trabajo de mayor latencia y de menor volumen son más típicas. Las arquitecturas HTAP ofrecen una solución para ambos tipos de cargas de trabajo. Mediante el uso de bases de datos en memoria, HTAP consolida las tecnologías para optimizar las consultas en grandes volúmenes de datos.

Architecture

Architecture diagram showing how data flows through an HTAP solution with Azure SQL Database at its center.

Descargue un archivo Visio de esta arquitectura.

Flujo de datos

  1. Event Hubs ingiere la telemetría desde las instalaciones locales.
  2. Blob Storage captura los datos de Event Hubs y los almacena para su análisis futuro.
  3. Stream Analytics procesa los datos. En la ruta de acceso activa de la solución, Azure Cosmos DB consulta los datos de los dos meses anteriores. Azure Cosmos DB garantiza tiempos de respuesta de menos de 10 milisegundos.
  4. Si se producen errores durante el procesamiento o almacenamiento de los datos, el sistema los registra en Azure Table Storage.
  5. Azure Functions usa la biblioteca cliente de bases de datos elásticas de SQL Database para archivar los datos. Este proceso crea particiones de los datos para optimizar las operaciones de inserción. La solución forma particiones mediante la distribución horizontal de los datos entre varias bases de datos de Azure SQL. Cada base de datos usa un índice de columnas agrupado con particiones para comprimir las tablas. Los tiempos de respuesta en esta ruta de acceso inactiva suelen ser inferiores a un segundo.
  6. Un clúster de Azure Databricks vuelve a procesar los datos de Blob Storage. En concreto, Azure Databricks deserializa los archivos Avro y envía los datos a Event Hubs para su análisis opcional.

Componentes

  • Event Hubs es una plataforma de streaming de macrodatos totalmente administrada.

  • Stream Analytics proporciona procesamiento de flujos sin servidor en tiempo real mediante la ejecución de consultas en la nube y en dispositivos perimetrales.

  • Azure Cosmos DB es una base de datos de varios modelos distribuida globalmente. Con Azure Cosmos DB, las soluciones pueden escalar de forma elástica el rendimiento y el almacenamiento en cualquier número de regiones geográficas.

  • Table Storage forma parte de Azure Storage. Este servicio almacena datos NoSQL estructurados en la nube.

  • SQL Database es un servicio de bases de datos relacionales que forma parte de la familia de Azure SQL. Como servicio totalmente administrado, SQL Database controla funciones de administración de bases de datos. SQL Database también proporciona características automatizadas y basadas en IA que optimizan el rendimiento y la durabilidad. Las opciones de almacenamiento de hiperescala y proceso sin servidor escalan automáticamente los recursos a petición.

  • Las herramientas de bases de datos elásticas le ayudan a crear y administrar bases de datos de escalabilidad horizontal. Esta característica de SQL Database incluye una biblioteca cliente que puede usar para desarrollar aplicaciones con particiones.

  • Blob Storage es un servicio que forma parte de Storage. Blob Storage ofrece almacenamiento optimizado de objetos en la nube para grandes cantidades de datos no estructurados.

  • Azure Databricks es una plataforma de análisis de datos. Sus clústeres de Spark totalmente administrados procesan grandes flujos de datos de varios orígenes. Azure Databricks limpia y transforma los conjuntos de datos sin estructura. Combina los datos procesados con datos estructurados de bases de datos operativas o almacenes de datos. Azure Databricks también entrena e implementa modelos escalables de aprendizaje automático y aprendizaje profundo.

  • Power BI es una colección de servicios y aplicaciones de análisis. Puede usar Power BI para conectarse y mostrar orígenes de datos no relacionados.

Detalles del escenario

Azure SQL Database es el núcleo de esta solución HTAP. El enfoque divide los datos en bases de datos distribuidas horizontalmente o particiones. Otros componentes principales incluyen:

  • Azure Event Hubs para la ingesta de datos.
  • Azure Stream Analytics para el procesamiento de datos.
  • Azure Functions para la creación de particiones.
  • Azure Blob Storage para el almacenamiento de eventos.

De manera conjunta, estos servicios proporcionan una solución HTAP que:

  • Reduce los costos al proporcionar acceso rápido a conclusiones sobre los datos archivados. Con esta solución, las latencias en la ruta de nivel de acceso esporádico bajan de horas a menos de segundos.
  • Simplifica el archivado mediante la adición automática de datos al almacenamiento a largo plazo.
  • Maximiza la escalabilidad mediante la creación de particiones de datos y el uso de una base de datos elástica.

Posibles casos de uso

Esta solución se aplica a las organizaciones que necesitan acceso de baja latencia a grandes volúmenes de datos históricos. Algunos ejemplos son:

  • Minoristas en línea que acceden al historial de clientes e información demográfica para proporcionar experiencias personalizadas.
  • Proveedores de energía que combinan datos de dispositivos con análisis para administrar redes eléctricas inteligentes.
  • Empresas que participan en la prevención del fraude mediante la identificación de patrones en datos históricos y en tiempo real. Este escenario se aplica a los sectores financiero y de servicios financieros.
  • Fabricantes que dependen del procesamiento de eventos en tiempo real para identificar problemas. Este escenario se aplica a la industria manufacturera.

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.

En esta solución se realizan los siguientes supuestos:

  • Después de archivar los datos, no es necesario actualizarlos ni eliminarlos.
  • El esquema de datos solo cambia mínimamente con el tiempo.

Tenga en cuenta las consideraciones siguientes al implementar esta solución:

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.

  • Para optimizar el rendimiento:

    • Combine el particionamiento con la compresión de tablas.
    • Cree las particiones de tablas por fecha. Cada partición contiene datos de un período diferente.
    • Alinee los índices con la creación de particiones de fecha.
  • Para escalar verticalmente hasta más de 50 000 mensajes por segundo, use la biblioteca cliente de bases de datos elásticas desde Functions a fin de:

    • Agrupar mensajes por partición.
    • Dividir las instrucciones de inserción en lotes pequeños.

    Este enfoque es adecuado para sistemas que usan 10 bases de datos Estándar S3 de tipo SQL Database. Para hospedar un índice en columnas, necesita al menos el nivel Estándar.

  • Para obtener el mejor rendimiento durante las operaciones de inserción, use parámetros con valores de tabla con procedimientos almacenados.

  • Cuando use la instrucción CREATE COLUMNSTORE INDEX, use la opción COLUMNSTORE_ARCHIVE. Esta opción proporciona el mayor nivel de compresión posible. Un nivel de compresión alto aumenta el tiempo necesario para almacenar y recuperar datos. Pero el rendimiento de E/S resultante todavía debe ser satisfactorio.

Escalabilidad

  • Use particiones para que pueda expandir el sistema a fin de satisfacer las cargas de trabajo exigentes. Al usar bases de datos con particiones, puede agregar o quitar particiones para escalar horizontalmente o reducir horizontalmente. La herramienta de división y combinación ayuda a dividir y combinar las particiones.
  • Aproveche la funcionalidad de escalado de Functions. Cree funciones que se escalen según la utilización de CPU y memoria. Configure las funciones para iniciar nuevas instancias a fin de dar cabida a cargas de trabajo inesperadas.
  • Aumente el tamaño del clúster de Azure Databricks para escalar verticalmente el reprocesamiento de archivos Avro. La solución usa Azure Databricks para volver a procesar los archivos Avro que Blob Storage ha capturado. Los clústeres de Spark en Azure Databricks pueden procesar toda o parte de la ruta del archivo Avro. Al aumentar el tamaño del clúster de Azure Databricks, puede volver a procesar todos los datos dentro de un período de tiempo necesario. Para controlar el aumento del volumen desde Azure Databricks, agregue instancias de Event Hubs al espacio de nombres según sea necesario.

Resistencia

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.

Use la calculadora de precios de Azure que preconfigura todos los servicios de Azure para explorar el costo de la ejecución de este escenario. Ajuste los parámetros para que coincidan con el tráfico que espera recibir.

En la tabla siguiente se enumeran los perfiles de costo de ejemplo para distintas cantidades de mensajes de 1 kilobyte:

Size Volumen de mensajes Perfil
Pequeña Menos de 500 mensajes por segundo Perfil bajo
Media 1500 mensajes por segundo Perfil medio
grande Más de 5000 mensajes por segundo Perfil grande

Colaboradores

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

Autor principal:

Pasos siguientes