Recomendaciones para optimizar el rendimiento de los datos
Se aplica a esta recomendación de lista de comprobación de eficiencia del rendimiento de Azure Well-Architected Framework:
PE:08 | Optimice el rendimiento de los datos. Optimice los almacenes de datos, las particiones y los índices para su uso previsto y real en la carga de trabajo. |
---|
En esta guía se describen las recomendaciones para optimizar el rendimiento de los datos. Optimizar el rendimiento de los datos consiste en refinar la eficacia con la que la carga de trabajo procesa y almacena los datos. Cada operación de carga de trabajo, transacción o cálculo normalmente se basa en la recuperación, el procesamiento y el almacenamiento rápidos y precisos de los datos. Cuando se optimiza el rendimiento de los datos, la carga de trabajo se ejecuta sin problemas. El rendimiento de los datos en peligro crea un efecto dominó de una eficiencia de rendimiento deficiente. Si no se optimiza el rendimiento de los datos, se produce un retraso en la respuesta, una mayor latencia y una escalabilidad reducida. Pone en peligro la eficacia de toda la carga de trabajo.
Definiciones
Término | Definición |
---|---|
Teorema CAP | Un marco que se usa para considerar la coherencia, la disponibilidad y la tolerancia a particiones para ayudar a explicar los inconvenientes en la coherencia de los datos. |
Regeneración del índice de base de datos | Actividad de mantenimiento que quita y vuelve a crear un índice. |
Reorganización de índices de base de datos | Actividad de mantenimiento que optimiza el índice de base de datos actual. |
Almacén de datos | Recurso que almacena datos como una base de datos, un almacén de objetos o un recurso compartido de archivos. |
Coherencia final | Un modelo de sincronización de datos que permite una incoherencia temporal en las réplicas de datos antes de que se sincronicen finalmente. |
Índice | Estructura de base de datos que proporciona acceso rápido a los elementos. |
Procesamiento analítico en línea (OLAP) | Una tecnología que organiza bases de datos empresariales de gran tamaño, admite análisis complejos y realiza consultas analíticas complejas sin afectar negativamente a los sistemas transaccionales. |
Procesamiento de transacciones en línea (OLTP) | Tecnología que registra las interacciones empresariales a medida que se producen en las operaciones diarias de una organización. |
Simultaneidad optimista | Un enfoque para actualizar bases de datos que usan instantáneas para realizar actualizaciones en lugar de mecanismos de bloqueo tradicionales, lo que mejora el rendimiento y la escalabilidad. |
Teorema PACELC | Un marco que se usa para considerar la tolerancia a particiones, la disponibilidad, la coherencia y la latencia para ayudar a explicar los inconvenientes en la coherencia de los datos. |
Creación de particiones | Proceso de dividir físicamente los datos en almacenes de datos independientes. |
Ajuste de las consultas | Proceso que optimiza la velocidad de una consulta de base de datos. |
Réplica de lectura | Una copia activa de una base de datos principal que le permite descargar el tráfico de lectura de una base de datos de escritura. |
Estrategias de diseño principales
Para optimizar el uso de datos, asegúrese de que los almacenes de datos, las particiones y los índices están optimizados para su uso previsto y para su uso real en una carga de trabajo. El uso de datos optimizado puede mejorar el rendimiento de las consultas, reducir el consumo de recursos y mejorar la eficacia general del sistema. Considere las estrategias siguientes:
Datos de perfil. Comprenda los datos y asegúrese de que el modelo de datos es adecuado para la carga de trabajo. Tenga en cuenta factores como la normalización de datos, las estrategias de indexación y las técnicas de creación de particiones. Para una recuperación de datos eficaz, asegúrese de seleccionar los tipos de datos adecuados, definir relaciones entre entidades y determinar una estrategia de indexación óptima.
Ajuste la configuración del almacenamiento de datos. Configure la infraestructura de almacenamiento de datos para que se alinee con los requisitos de carga de trabajo. Seleccione una tecnología de almacenamiento adecuada, por ejemplo, bases de datos relacionales, bases de datos NoSQL y almacenes de datos. Optimice la configuración de almacenamiento, como el tamaño del búfer, los mecanismos de almacenamiento en caché y la compresión.
Optimizar el rendimiento de las consultas. Analice y optimice las consultas que se ejecutan en la carga de trabajo. Use técnicas como la optimización de consultas, la indexación y el almacenamiento en caché. Para identificar cuellos de botella, use los planes de consulta y las herramientas de supervisión del rendimiento y, a continuación, realice las mejoras necesarias.
Supervise y ajuste regularmente el sistema. Supervise continuamente el rendimiento de la carga de trabajo y realice una iteración en la configuración del almacenamiento de datos y las optimizaciones de consultas. En función de los procedimientos recomendados de optimización del rendimiento, analice las métricas del sistema, identifique áreas de mejora e implemente cambios.
Generación de perfiles de datos
La generación de perfiles de datos implica examinar los datos de un origen y recopilar información sobre ellos. El objetivo es comprender la calidad, la estructura y las características de los datos de carga de trabajo. Este proceso permite la identificación de problemas como valores que faltan, duplicados, formatos incoherentes y otras anomalías. Para una generación de perfiles de datos eficaz, tenga en cuenta las estrategias siguientes:
Comprender la estructura de datos. Examine la estructura de los datos, incluidas las tablas, las columnas y las relaciones. Determine los tipos de datos, las longitudes y las restricciones que se aplican a cada columna. La evaluación de la estructura de datos le ayuda a comprender cómo se organizan los datos y cómo se relaciona con otros elementos de datos.
Analice el volumen de datos. Evalúe el volumen de los datos para comprender el tamaño general y los patrones de crecimiento. Determine el número de registros o documentos y el tamaño de tablas o colecciones individuales. Esta información le ayuda a calcular los requisitos de almacenamiento e identificar problemas de escalabilidad.
Identificar las relaciones de datos. Explore las relaciones entre los elementos de datos, como las relaciones de clave principal y externa. Comprenda cómo se conectan los datos, por lo que puede determinar cómo pueden afectar los cambios de una tabla o documento a los datos relacionados.
Evaluar la calidad de los datos. Evalúe la calidad de los datos examinando factores como la integridad, la precisión, la coherencia y la unicidad. Identifique anomalías de datos, valores que faltan o registros duplicados que podrían afectar a la integridad de los datos y al rendimiento de las consultas. Este paso le ayuda a identificar áreas para la limpieza y mejora de datos.
Capturar distribución de datos. Analice la distribución de valores dentro de cada columna para determinar los patrones de datos. Identificar valores frecuentes y poco frecuentes, valores atípicos y sesgos de datos. Para optimizar el rendimiento de las consultas, elija las estrategias de indexación adecuadas y las técnicas de optimización de consultas en función de la distribución.
Supervisión del rendimiento de los datos
La supervisión del rendimiento de los datos es la práctica de realizar un seguimiento coherente de la eficacia de los almacenes de datos, las particiones y los índices en tiempo real. Implica recopilar y analizar métricas de rendimiento específicas de las operaciones de datos, mediante herramientas adaptadas para soluciones de supervisión de nivel de sistema, específicas de la base de datos o de terceros. La supervisión eficaz del rendimiento de los datos permite identificar y mitigar de forma proactiva posibles cuellos de botella, lo que garantiza que los procesos y las tareas relacionados con los datos sean eficaces. Para supervisar el rendimiento de los datos, tenga en cuenta las estrategias siguientes:
Recopilar métricas específicas de datos. Recopile métricas clave que se relacionan directamente con el rendimiento de los datos. Estas métricas incluyen tiempos de respuesta de consulta, rendimiento de datos, E/S de disco relacionados con el acceso a datos y tiempos de carga de particiones de datos específicas.
Configurar alertas de datos. Configure alertas específicamente para las métricas de datos. Use umbrales predefinidos o anomalías en estas métricas para desencadenar alertas. Las alertas permiten recibir notificaciones cuando las métricas de rendimiento superan los intervalos aceptables o muestran un comportamiento anómalo. Por ejemplo, si una consulta de base de datos tarda más de lo esperado o si el rendimiento de los datos cae significativamente, desencadenaría una alerta. Puede configurar estas alertas mediante herramientas de supervisión especializadas o scripts personalizados.
Diagnóstico de problemas de rendimiento de datos. Revise periódicamente las métricas de datos recopiladas para identificar posibles cuellos de botella de rendimiento o degradación en las operaciones de datos. Las herramientas o paneles de visualización pueden ser valiosos en este proceso, lo que ayuda a resaltar tendencias, cuellos de botella y valores atípicos en el rendimiento de los datos. Una vez identificado, adícese a las causas principales de estos problemas y estratifique los pasos de corrección adecuados.
Partición de datos
La creación de particiones implica dividir grandes conjuntos de datos o cargas de trabajo de gran volumen en subconjuntos más pequeños y administrables. La creación de particiones mejora la eficacia del rendimiento de los datos mediante la distribución de la carga de trabajo y la mejora del procesamiento paralelo. También garantiza un acceso a datos más eficaz en función de necesidades específicas y patrones de consulta. Puede particionar los datos vertical u horizontalmente (también denominado particionamiento).
Estrategia | Definición | Ejemplo | Casos de uso |
---|---|---|---|
Creación de particiones verticales | Divida una tabla en tablas más pequeñas seleccionando columnas o campos específicos para cada partición. Cada partición representa un subconjunto de los datos completos. | Si tiene una tabla con columnas A, B, C y D, podría crear una tabla con las columnas A y B y otra con las columnas C y D. | : una tabla contiene muchas columnas, pero las consultas no tienen acceso a todas las columnas juntas. - Algunas columnas son más grandes que otras y separarlas pueden aumentar el rendimiento de E/S. - Las distintas partes de datos tienen diversos patrones de acceso. |
Creación de particiones horizontales | Dividir datos en función de filas o intervalos de valores (también conocidos como particionamiento). Cada partición contiene un subconjunto de filas con características similares. | Si tiene una tabla con filas de 1 a 1000, puede crear una partición con filas de 1 a 500 y otra con filas de 501 a 1000. | - Un conjunto de datos es demasiado grande para una sola ubicación o servidor. - Se tiene acceso a los datos en función de intervalos o filtros específicos. - Necesita distribuir la carga de trabajo entre nodos físicos o servidores para mejorar el rendimiento. |
Para crear particiones de los datos, tenga en cuenta los pasos siguientes:
Analice los datos y las consultas. Analice los patrones de datos y consultas para identificar estrategias adecuadas de particionamiento o particionamiento. Comprenda la naturaleza de los datos, los patrones de acceso y los requisitos de distribución.
Determine una clave. Elija una clave de partición o particionamiento para distribuir los datos entre particiones o particiones. Seleccione cuidadosamente la clave en función de las características de los datos y los requisitos de consulta.
Determine la lógica. Determine una lógica de particionamiento o particionamiento basada en la clave elegida. Considere la posibilidad de dividir los datos en intervalos, aplicar algoritmos hash o usar otras técnicas de creación de particiones.
Configure la infraestructura. Configure el sistema de base de datos para admitir particiones o particionamiento. Considere la posibilidad de crear la infraestructura necesaria, definir las particiones o particiones y configurar la distribución de datos.
Para obtener más información, consulte Data partitioning guidance(Guía de creación de particiones de datos).
Optimización de consultas de base de datos
La optimización de las consultas de base de datos refina las consultas mediante técnicas como sugerencias de índice y almacenamiento en caché. Estos ajustes aumentan la eficacia y la velocidad de recuperación de datos. Como resultado, la base de datos tiene una carga de trabajo más ligera, los recursos funcionan de forma más eficaz y los usuarios disfrutan de interacciones más fluidas. Para optimizar las consultas de base de datos, tenga en cuenta las estrategias siguientes:
Reescritura de consultas. Revise y analice consultas complejas para identificar oportunidades para volver a escribirlas. Considere la posibilidad de reestructurar la lógica de consulta, eliminar las operaciones redundantes o simplificar la sintaxis de consulta.
Evite el problema de consulta N+1. Minimice el número de recorridos de ida y vuelta a la base de datos mediante combinaciones y captura por lotes para recuperar datos relacionados de forma eficaz.
Reordenar combinaciones. Evalúe el plan de consulta y considere la posibilidad de reorganizar el orden de combinación para minimizar el número de filas en cada operación de combinación. El orden en el que se unen las tablas puede afectar al rendimiento de las consultas.
Use sugerencias de índice. Use sugerencias de índice para que un motor de base de datos pueda especificar el uso de índices cuando ejecuta una consulta. Las sugerencias de índice guían al optimizador para seleccionar los índices más adecuados.
Consultas de caché. Almacene los resultados de las consultas que se ejecutan con frecuencia en la memoria. El almacenamiento en caché de consultas elimina la necesidad de ejecutar repetidamente la misma consulta y reduce la sobrecarga de procesamiento de consultas.
Optimice el bloqueo. Evite sugerencias de bloqueo innecesarias o restrictivas en las consultas. Las estrategias de bloqueo eficaces pueden mejorar el rendimiento y la simultaneidad de las consultas. Aplicar mecanismos de bloqueo optimizados que proporciona el sistema de base de datos. Analice y ajuste los niveles de aislamiento para equilibrar la coherencia de los datos y el rendimiento de las consultas.
Supervisar y ajustar. Supervise las métricas de rendimiento de las consultas, como el tiempo de ejecución, el uso de recursos y el rendimiento de las consultas. Use las herramientas de generación de perfiles de base de datos y las funcionalidades de supervisión para identificar consultas con un rendimiento deficiente. Evalúe y ajuste los planes de consulta en función de los datos de rendimiento recopilados. Analice los planes de consulta y las estadísticas de espera para identificar cuellos de botella. Use esa información para optimizar el rendimiento de las consultas.
Optimización del rendimiento del índice
Los índices mejoran la velocidad de recuperación de datos al permitir que las bases de datos encuentren rápidamente datos mediante columnas o campos específicos. Al optimizar estos índices, las operaciones de ordenación y combinación son más eficaces, lo que conduce a consultas más rápidas. Los índices bien optimizados se reducen en las operaciones de E/S de disco necesarias para las consultas. La eliminación de índices innecesarios o redundantes también libera espacio de almacenamiento valioso. Para optimizar el rendimiento del índice, tenga en cuenta las estrategias siguientes:
Analice los patrones de consulta. Comprenda los patrones de consulta que se ejecutan en la base de datos. Identifique las consultas que se ejecutan con frecuencia y podría degradar el rendimiento. Analice los patrones de consulta para determinar qué índices son beneficiosos para optimizar el rendimiento.
Evalúe los índices existentes. Revise los índices existentes en la base de datos. Evalúe su uso, efectos de rendimiento y relevancia para los patrones de consulta. Identifique índices redundantes o no utilizados que puede quitar para mejorar el rendimiento de escritura y reducir la sobrecarga de almacenamiento.
Identificar columnas para la indexación. Identifique las columnas que se usan con frecuencia en las cláusulas where, join y order by de las consultas. Estas columnas son posibles candidatas para la indexación, ya que pueden habilitar la recuperación rápida de datos.
Elija un tipo de índice adecuado. Seleccione un tipo de índice adecuado en función del sistema de base de datos. Entre las opciones comunes se incluyen índices de árbol b para consultas de igualdad y rango, índices hash para consultas de coincidencia exactas e índices de texto completo para las operaciones de búsqueda de texto. Elija un tipo de índice que mejor se ajuste a los requisitos de consulta.
Considere el orden de las columnas de índice. Al crear índices compuestos o índices con varias columnas, tenga en cuenta el orden de las columnas. Coloque las columnas que se usan con más frecuencia en las consultas al principio del índice. El orden de las columnas ayuda a garantizar que la carga de trabajo use de forma eficaz índices para una amplia gama de consultas.
Equilibrar el tamaño del índice. Evite crear índices en columnas con cardinalidad baja o columnas que tengan un número bajo de valores distintos. Estos índices pueden ser ineficazs y aumentar el tamaño de la base de datos. En su lugar, indexe las columnas que tienen una alta selectividad.
Mantener el uso del índice. Supervise continuamente el uso y el rendimiento de los índices. Busque oportunidades para crear nuevos índices o modificar índices existentes en función de los cambios en los patrones de consulta o los requisitos de rendimiento. Quite o actualice los índices que ya no son beneficiosos. Los índices tienen sobrecarga de mantenimiento. A medida que cambian los datos, los índices pueden fragmentar y afectar al rendimiento. Realice periódicamente tareas de mantenimiento de índices, como volver a generar o reorganizar índices, para garantizar un rendimiento óptimo.
Prueba y validación. Antes de revisar los índices en un entorno de producción, realice pruebas y validación exhaustivas. Mida el efecto de rendimiento de las revisiones de índice mediante cargas de trabajo representativas. Compruebe las mejoras en las pruebas comparativas predefinidas.
Equilibrio: los índices de árbol B pueden tener una sobrecarga de almacenamiento alta y las consultas de coincidencia exacta pueden ser lentas. Los índices hash no son adecuados para las consultas de rango ni los operadores de comparación. Los índices de texto completo pueden tener requisitos de almacenamiento elevados y las consultas de datos notextuales pueden ser lentas.
Considerar la compresión de datos
La compresión de datos es el proceso de reducir el tamaño de los datos para optimizar el espacio de almacenamiento y mejorar la eficiencia del rendimiento de la carga de trabajo. Los datos comprimidos requieren menos espacio de almacenamiento y menos ancho de banda para la transmisión, lo que da como resultado una transferencia rápida de datos. Comprimiría los datos para reducir la superficie de almacenamiento y mejorar los tiempos de acceso a los datos. Al comprimir datos, reduce los requisitos de ancho de banda de red y operaciones de E/S.
La compresión sin pérdida y la compresión perdida son algoritmos de compresión de datos. Los algoritmos de compresión sin pérdida reducen el tamaño de los datos sin perder información. Los algoritmos de compresión de pérdida logran relaciones de compresión elevadas mediante la eliminación de información menos importante o redundante.
Equilibrio: para comprimir y descomprimir datos, necesita recursos computacionales, como CPU y memoria. Cuantos más datos comprima, más recursos necesitará.
Archivado y purga de datos
El archivado y la purga son estrategias que simplifican el almacenamiento de datos. El archivado reubica los datos más antiguos y a los que se accede con menos frecuencia a un almacenamiento más rentable. La purga de datos quita permanentemente los datos redundantes. Contribuyen a la eficiencia del rendimiento al reducir el volumen de datos, aumentan la velocidad de acceso a los datos y reducen los tiempos de copia de seguridad y recuperación:
Reducción del volumen de datos: menos datos significa tiempos de procesamiento más rápidos, lo que garantiza respuestas rápidas a las solicitudes de los usuarios.
Aumento de la velocidad de acceso a datos: un conjunto de datos recortado permite consultas más rápidas y recuperación de datos, optimizando la capacidad de respuesta del sistema.
Reducción de los tiempos de copia de seguridad y recuperación: los conjuntos de datos más pequeños aceleran los procesos de copia de seguridad y restauración, lo que minimiza el tiempo de inactividad y garantiza un rendimiento coherente.
El archivado y la purga son fundamentales para mantener la máxima eficiencia del rendimiento en los sistemas controlados por datos.
Optimización de la carga de almacenamiento
Optimizar la carga de almacenamiento significa simplificar las solicitudes en el sistema de almacenamiento. Ayuda a eliminar solicitudes innecesarias. También mejora la recuperación de datos y evita sobrecargar el almacenamiento. La optimización de la carga de almacenamiento garantiza que el sistema de almacenamiento siga respondiendo a solicitudes legítimas y mantenga el máximo rendimiento. Implemente estrategias para reducir la carga de procesamiento en el almacén de datos. Para optimizar la carga del almacén de datos, tenga en cuenta las estrategias siguientes:
Uso del almacenamiento en caché
El almacenamiento en caché almacena datos a los que se accede con frecuencia en un área de almacenamiento de acceso rápido, lo que hace que la recuperación de datos sea más rápida que extraerla del origen principal. Esta técnica aumenta el rendimiento de los datos reduciendo los tiempos de acceso y evitando capturas de datos repetitivas. El almacenamiento en caché mejora las velocidades de lectura y los tiempos de respuesta del usuario, especialmente para los datos a los que se accede con frecuencia. Este método es más eficaz en datos estáticos o datos que rara vez cambian.
Para garantizar una eficiencia óptima del almacenamiento en caché, tenga en cuenta factores como las directivas de expiración, las estrategias de expulsión y la administración del tamaño de la caché. Ajuste la configuración, como el período de vida (TTL), para obtener un rendimiento óptimo. Para usar una memoria caché para optimizar la carga de almacenamiento, tenga en cuenta las estrategias siguientes:
Almacenamiento en caché en memoria: realice el almacenamiento en caché en memoria para almacenar datos a los que se accede con frecuencia en la memoria para una recuperación rápida. Puede usar esta técnica para los datos de la aplicación que son costosos de calcular o recuperar de una base de datos. El almacenamiento en caché en memoria es útil para los datos que se leen con frecuencia, pero que no cambian con frecuencia.
Almacenamiento en caché de consultas de base de datos: use esta técnica para almacenar en caché los resultados de las consultas de base de datos para evitar ejecutar la misma consulta varias veces. El almacenamiento en caché de consultas de base de datos es útil para consultas de base de datos complejas y lentas. Al almacenar en caché los resultados de una consulta, las solicitudes posteriores de la misma consulta se devuelven rápidamente.
Almacenamiento en caché de la red de entrega de contenido: use esta técnica para almacenar en caché el contenido web en servidores de red distribuidos para reducir la latencia y mejorar la entrega de contenido. El almacenamiento en caché de la red de entrega de contenido es eficaz para el contenido estático, como imágenes, archivos CSS y archivos JavaScript. Las redes de entrega de contenido almacenan copias de contenido en varias ubicaciones de todo el mundo, por lo que los usuarios pueden acceder al contenido desde un servidor que esté cerca de ellos geográficamente.
Uso de réplicas de lectura
Muchas bases de datos admiten varias réplicas de lectura. Distribuya consultas de lectura entre réplicas para minimizar la demanda en la base de datos de escritura. Cada réplica de lectura puede servir a un subconjunto de tráfico, lo que puede mejorar el rendimiento.
Cuando tenga una carga de trabajo con varias réplicas de datos que espera mantenerse sincronizada, resulta útil modelar este sistema distribuido mediante el teorema PACELC. El teorema PACELC le ayuda a comprender la latencia frente a las opciones de equilibrio de inquilino en el estado no particionado del sistema. Use esta información para ayudarle a elegir un motor de base de datos y una estrategia de sincronización de datos que mejor se adapte al sistema en un estado particionado y no particionado. Para obtener más información, vea Patrón de segregación de responsabilidades de comandos y consultas (CQRS).
Optimización de la coherencia de los datos
En una carga de trabajo distribuida, donde los datos residen en varios nodos o ubicaciones, el nivel de coherencia que seleccione determina la rapidez con que los cambios en una ubicación se reflejan en otros. La participación en una coherencia más estricta consume más recursos de proceso y puede afectar negativamente a la eficiencia del rendimiento. Por otro lado, un nivel de coherencia menos estricto, como la coherencia final, presenta incoherencias temporales entre los nodos, pero puede aumentar la eficiencia del rendimiento.
La coherencia final produce un equilibrio entre la precisión de los datos y el rendimiento de la carga de trabajo. Los cambios se propagan gradualmente en lugar de al instante, lo que aumenta la capacidad de respuesta de la carga de trabajo y la velocidad de procesamiento de datos. Aunque presenta incoherencias de corta duración, la carga de trabajo presenta finalmente datos coherentes en todos los nodos. La elección de la coherencia final puede elevar el rendimiento de una carga de trabajo y mejorar aún más su disponibilidad y escalabilidad.
Optimización de las actualizaciones de datos
Puede usar la simultaneidad optimista para controlar las actualizaciones simultáneas de los mismos datos. En lugar de bloquear los datos y evitar otras actualizaciones, la simultaneidad optimista permite que varios usuarios o procesos funcionen simultáneamente y supone que los conflictos son poco frecuentes.
Con la simultaneidad optimista, cada operación de actualización incluye una versión o marca de tiempo que representa el estado de los datos en el momento de la actualización. Cuando se detecta una actualización en conflicto, el sistema resuelve el conflicto rechazando la actualización o combinando los cambios.
La simultaneidad optimista minimiza la contención y permite que las actualizaciones simultáneas continúen sin bloqueo innecesario. Reduce el tiempo de espera de los recursos y proporciona un alto rendimiento.
Optimización del movimiento y el procesamiento de datos
La optimización del movimiento y el procesamiento de datos implica mejorar la eficiencia y el rendimiento de las operaciones relacionadas con la extracción, transformación, carga y procesamiento de datos. Tenga en cuenta los siguientes aspectos clave para optimizar el movimiento y el procesamiento de datos:
Optimización de extracción, transformación y carga (ETL): optimice los procesos ETL para minimizar el tiempo de procesamiento. Puede simplificar el proceso de extracción, implementar algoritmos de transformación eficaces y optimizar el proceso de carga. Al hacer que cada paso sea eficaz, puede optimizar el flujo de trabajo general.
Procesamiento paralelo: utilice técnicas de procesamiento paralelo para mejorar el rendimiento. Al distribuir tareas de procesamiento de datos entre varios subprocesos o nodos, puede dividir y procesar la carga de trabajo simultáneamente, lo que da como resultado un procesamiento rápido.
Procesamiento por lotes: agrupa tareas similares para reducir la sobrecarga causada por operaciones repetidas. Procesar varias tareas en un lote para reducir el tiempo de procesamiento general.
Optimización del diseño del almacenamiento
La optimización del diseño del almacenamiento implica la creación de una arquitectura de almacenamiento de datos precisa y la selección de las tecnologías de almacenamiento adecuadas. Un diseño de almacenamiento simplificado mejora el acceso a los datos, la recuperación y la manipulación. Mediante el diseño de almacenamiento estratégico, una carga de trabajo logra tiempos de respuesta mejorados y funcionalidad general.
Diseño de proximidad de datos
La proximidad de datos hace referencia a la ubicación estratégica de los datos más cerca de los usuarios o servicios que acceden a ellos con más frecuencia. Al reducir la distancia física o lógica entre los datos y sus usuarios, la proximidad de los datos garantiza un acceso más rápido a los datos y una mejor capacidad de respuesta. Para optimizar el diseño de proximidad cercana, tenga en cuenta estas estrategias:
Evaluar patrones de acceso a datos: evalúe los patrones de acceso de la carga de trabajo y los datos a los que se accede con frecuencia. Este análisis puede ayudar a determinar dónde colocar los datos para obtener la máxima ventaja.
Elegir soluciones que admitan la reubicación de datos: considere las soluciones que ofrecen reubicación dinámica de datos en función de los patrones de acceso cambiantes, lo que garantiza un posicionamiento óptimo de los datos.
Elegir soluciones que admitan la sincronización de datos: si se trata de una base de usuarios distribuida, opte por soluciones que facilitan la sincronización de datos en varias regiones, lo que garantiza que las réplicas de datos estén disponibles en proximidad a los usuarios.
Compensación: si los datos subyacentes cambian con frecuencia, implemente un mecanismo de invalidación de caché para asegurarse de que los datos almacenados en caché permanecen actualizados.
Uso de la persistencia poliglot
La persistencia poliglot es la práctica de usar varias tecnologías de almacenamiento de datos para almacenar y administrar diferentes tipos de datos dentro de una aplicación o sistema. Los distintos tipos de bases de datos o soluciones de almacenamiento cumplen distintos requisitos de datos.
La persistencia poliglot aprovecha las ventajas de cada tecnología de almacenamiento de datos para garantizar un rendimiento y escalabilidad óptimos para cada tipo de datos. Por ejemplo, puede usar una base de datos relacional para almacenar datos estructurados y transaccionales. Y puede usar una base de datos NoSQL para almacenar datos no estructurados o semiestructurados.
Diseñe un esquema para cada tecnología de almacenamiento de datos en función de los requisitos de los datos. En el caso de las bases de datos relacionales, puede crear tablas normalizadas con relaciones adecuadas. En el caso de las bases de datos NoSQL, puede definir estructuras de documentos o pares clave-valor. Desarrolle los componentes necesarios para interactuar con cada tecnología de almacenamiento de datos, como api, capas de acceso a datos o canalizaciones de integración de datos. Asegúrese de que la aplicación puede leer y escribir datos en los almacenes de datos adecuados.
Equilibrio: una estructura de datos que tiene una normalización baja puede mejorar el rendimiento, pero presenta complejidades.
Sistemas OLTP y OLAP independientes
Para separar los sistemas OLTP y OLAP , diseñe e implemente sistemas distintos para el procesamiento transaccional y las tareas de procesamiento analítico. Esta separación le permite optimizar cada sistema para su carga de trabajo y características específicas.
Los sistemas OLTP se usan para el procesamiento transaccional en tiempo real. Controlan de forma eficaz y confiable las transacciones individuales. Normalmente, los sistemas OLTP se usan para realizar tareas operativas diarias, como el procesamiento de pedidos en línea, la administración de inventario y la administración de datos de clientes. Los sistemas OLTP priorizan la capacidad de respuesta, la coherencia y la simultaneidad.
Los sistemas OLAP se usan para el procesamiento analítico complejo y los informes. Controlan grandes volúmenes de datos y realizan cálculos y agregaciones intensivos. Los sistemas OLAP se usan para tareas como business intelligence, minería de datos y soporte técnico para la toma de decisiones. Los sistemas OLAP priorizan el rendimiento de las consultas, la agregación de datos y el análisis multidimensional.
Al separar los sistemas OLTP y OLAP, puede asignar los recursos adecuados y optimizar cada sistema para su carga de trabajo específica. La separación permite aplicar diferentes técnicas de modelado de datos a cada sistema. Normalmente, los sistemas OLTP usan esquemas normalizados para un procesamiento transaccional eficaz. Los sistemas OLAP pueden usar esquemas desnormalizados o técnicas de almacenamiento de datos para optimizar el rendimiento de las consultas.
Facilitación de Azure
Datos de generación de perfiles: Azure ofrece herramientas y servicios que puede usar para generar perfiles de datos, como Azure Data Catalog, Azure Purview y Azure Synapse Analytics. Estas herramientas permiten extraer, transformar y cargar datos de varios orígenes, realizar comprobaciones de calidad de datos y obtener información sobre los datos.
Supervisión del rendimiento de los datos: para supervisar el rendimiento de los datos, puede usar Azure Monitor para recopilar y analizar métricas de infraestructura, registros y datos de aplicación. Puede integrar Monitor con otros servicios, como Application Insights. Application Insights proporciona supervisión del rendimiento de las aplicaciones y admite muchas plataformas.
Application Insights recopila datos de uso y rendimiento. Puede usar Log Analytics para correlacionar esos datos con datos de configuración y rendimiento entre recursos de Azure.
Puede usar la característica insights de Azure SQL y Azure Cosmos DB para supervisar la base de datos. Esta característica le permite diagnosticar y optimizar los problemas de rendimiento de la base de datos.
Creación de particiones de datos: Azure ofrece varias estrategias de creación de particiones para diferentes almacenes de datos. Cada almacén de datos puede tener diferentes consideraciones y opciones de configuración para la creación de particiones de datos. Para más información, consulte Estrategias de creación de particiones de datos.
Optimización del rendimiento de las consultas de base de datos y del índice: use la característica de información de rendimiento de consultas de Azure SQL Database para optimizar las consultas, las tablas y las bases de datos. Puede usar esta característica para identificar y solucionar problemas de rendimiento de consultas.
En el caso de las bases de datos relacionales, debe seguir las instrucciones de diseño de índices, SQL Server instrucciones de índice y guía de índice de Azure Cosmos DB. Use SQL Database para realizar el ajuste automático de las consultas para mejorar su rendimiento.
En las bases de datos SQL, debe reorganizar o volver a generar índices con regularidad. Identifique consultas lentas y ajustelas para mejorar el rendimiento. Muchos motores de base de datos tienen características de optimización de consultas. Para más información, consulte Procedimientos recomendados para el rendimiento de las consultas.
Azure Cosmos DB tiene una directiva de indexación predeterminada que indexa todas las propiedades de cada elemento y aplica índices de intervalo para cualquier cadena o número. Esta directiva proporciona un rendimiento eficaz de las consultas y no tiene que administrar los índices por adelantado.
Optimización de la carga de almacenamiento: muchos servicios de base de datos de Azure admiten réplicas de lectura. La disponibilidad y la configuración de réplicas de lectura varían en función del servicio de base de datos de Azure. Consulte la documentación oficial de cada servicio para comprender los detalles y las opciones.
Optimización del diseño del almacenamiento: Azure ofrece muchos almacenes de datos diferentes para satisfacer sus necesidades de carga de trabajo. Comprenda los tipos de almacén de datos y seleccione un almacén de datos de Azure para la aplicación.
Vínculos relacionados
- Ajuste automático en SQL Database
- Azure Cosmos DB
- Guía de índice de Azure Cosmos DB
- SQL de Azure
- Procedimientos recomendados para el rendimiento de consultas
- Patrón CQRS
- Guía de creación de particiones de datos
- Estrategias de creación de particiones de datos
- Directiva de indexación predeterminada
- Instrucciones de diseño de índices
- Información general sobre OLAP
- Introducción a OLTP
- Procedimientos recomendados de creación de particiones
- Reorganizar o recompilar índices
- Selección de un almacén de datos de Azure para la aplicación
- guía de índice de SQL Server
- Descripción de los tipos de almacén de datos
Lista de comprobación de eficiencia del rendimiento
Consulte el conjunto completo de recomendaciones.