Las tablas elásticas son un nuevo tipo de estructura que Microsoft ha añadido para mantener grandes cantidades de datos en los entornos de Power Platform sin que estos hagan tanto uso de la capacidad del entorno. En cuanto al uso y apariencia, la experiencia es la misma que con una tabla estándar, pero si tienen unas características únicas que facilitan la gestión de millones de registros sin sacrificar el rendimiento del entorno y sin tener que gestionar continuamente el almacenamiento y borrado de datos de un histórico.
En este artículo, se expondrá de una forma clara y resumida las ventajas que pueden aportar este nuevo tipo de tablas en los entornos.
Más registros, menos espacio ocupado y potencial ahorro
Esto es el cambio más evidente que podremos encontrarnos con el uso de las tablas elásticas. Su forma de organizar los registros en estas tablas causa que no ocupen tanto como en las tablas estándar. Al distribuir automáticamente sus datos en múltiples nodos, garantizan una utilización eficiente de los recursos y permiten escalar fácilmente adaptándose a las fluctuaciones del volumen de datos sin comprometer el rendimiento.
Esto se traduce también en eficiencia de coste por almacenamiento, ya que las tablas elásticas ajustan dinámicamente sus recursos según demanda. En casos en los que la cantidad de registros que contienen dichas tablas elásticas sea fluctuante, el modelo de precios minimiza los gastos de almacenamiento al no necesitar de un almacenamiento fijo en el tiempo, como si pasa con una estructura basada solo en tablas estándar. Esto se puede entender mejor con un ejemplo:
Como se señaló antes del ejemplo, estos datos son solo orientativos y habría que estudiar la casuística de cada cliente y sus entornos. Pero esto demuestra que existe un potencial ahorro al pasar el modelo de datos del entorno a Tablas elásticas.
Registros con fecha de caducidad
En cada tabla elástica que haya sido creada, el sistema se genera automáticamente una columna de enteros que se llama Periodo de vida, que sirve para poder establecer el tiempo de vida que tendrán esos registros en la tabla. Este tiempo se establece en segundos y cuando este número de segundos se acabe, el registro será eliminado de la base de datos de forma automática.
Todos los registros no tendrán porque tener este periodo de vida establecido. De hecho, si no se establece ningún valor, el registro seguirá indefinidamente en la tabla elástica, al igual que los registros de una tabla estándar.
Esto puede ser muy útil para datos que deben tener una persistencia en el tiempo pero que por definición dejan de servir tras unos años en el sistema. Ahorrando así el preparar periódicamente borrados masivos de estas tablas.
Si se volviera a modificar cualquier columna del registro o la propia columna Periodo de vida, el registro tomará como referencia la fecha de última modificación para aplicar ese tiempo en segundos que debe permanecer el registro en la base de datos. Es decir, cualquier registro creado se puede retrasar su fecha de eliminación o incluso evitar que este sea borrado al dejar en blanco la columna Periodo de vida.
Operaciones masivas de gran volumen con mejor rendimiento
Entre otras virtudes que nos ofrecen estas tablas, Microsoft indica que se consiguen mejoras de 10 veces el rendimiento con los mismos límites de limitación de la API de Dataverse. Es decir, se pueden realizar operaciones de creación, actualización y borrado de registros en muchos más registros y en menos tiempo de lo que se tardaría en tablas estándar.
Esto es debido también a la forma de estructurarse los datos en múltiples nodos, ya que esta estructura distribuida permite el procesamiento en paralelo, acelerando la recuperación y análisis de datos, mejorando así la capacidad de respuesta del sistema en general. Por lo tanto, la información no solo ocupa menos en el sistema, sino que también mejora el rendimiento de este
Con esto, el sistema al crear la tabla ya realizará una serie de pasos distintos a cuando genera una tabla estándar. Creará columnas que no aparecen en el otro tipo de tabla y viceversa:
- Creación de columna Periodo de vida
- No generará las columnas Statuscode y Statecode que son característicos de las tablas estándar
- Tampoco se genera la columna Código de zona horaria de conversión UTC ni la columna Unmero de versión de regla de zona horaria.
- Se genera el campo Id de partición. Este puede servir para especificar que diversos registros queden bajo una misma partición lógica para que así si realizan operaciones de escritura o de recuperación de datos, al estar trabajando bajo la misma partición, el rendimiento será mayor. Este valor no es obligatorio asignarlo, se puede dejar vacío y es el propio sistema el que se encargará de gestionar de forma transparente y automática las particiones.
Adicionalmente a estos cambios, las tablas elásticas tienen una serie de funciones que actualmente no están admitidas y hay que tenerlo en consideración antes de crear una tabla de este tipo.
- Reglas de negocio
- Gráficos
- Flujos de proceso de negocio
- Un conector de Dataverse para Power BI
- Relaciones N:N (varios a varios) con tablas estándar
- Clave alternativa
- Detección de duplicados
- Columnas calculadas y consolidadas
- Columnas de moneda
- Comparación de columnas en consultas mediante FetchXML, Web API o SDK API
- Uso compartido de tablas
- Índices compuestos
- Operaciones en cascada: Eliminar, Reparentar, Asignar, Compartir, Dejar de compartir
- Ordenación en columnas de búsqueda
- Consultas agregadas:
- Valor distinto de attribute1 cuando orderby es según el valor attribute2
- Paginación cuando se tienen múltiples valores distintos
- Distinto con múltiples ordenar por
- Ordenar por y Agrupar por juntos
- Agrupar por según entidad de enlace (combinación externa izquierda)
- Distinto con tablas propiedad del usuario
- Conexiones de tabla
- Equipos de acceso
- Colas
- Adjuntos
Por último, hay que mencionar que por ahora no hay ninguna manera que facilite el convertir una tabla estándar a una elástica. Esta estructura interna se establece en el momento de creación, por lo que, si se desea transformar una tabla ya existente en elástica, habrá que generar una nueva tabla elástica y hacer migración de los datos de la tabla estándar existente a la nueva tabla elástica.
Conclusiones
Las tablas elásticas son un nuevo tipo de tabla que ofrecen los entornos de Power Platform para escenarios en los que se existen gran volumetría de datos. Estos podrán fluctuar en el tiempo con un escalado y ajuste dinámico de recursos que hará que el rendimiento y la latencia del entorno no se vea perjudicado. A la vez, ofrece una solución para recudir la capacidad que tenemos almacenada en el entorno e incluso un sistema de expiración de la vida de los registros para poder despreocuparnos de la limpieza de los datos desde el momento en el que estos son creados. Además, todo esto aporta mejoras de rendimiento y tiempos en cuanto a la realización de operaciones en los datos a través de la misma API de Dataverse que se usa para las tablas estándar ya existentes.
Espero que os sirva de ayuda. Nos vemos en el siguiente #blog : )