Particionado de Tablas en SAP HANA (II) – Tipos de Partición

Seguimos señalando las características básicas sobre el particionamiento de los datos en SAP HANA Database (ver entrada anterior)
Tipos de particionamiento


Seguimos señalando las características básicas sobre el particionamiento de los datos en SAP HANA Database (ver entrada anterior)

Tipos de particionamiento

HASH. Los registros son asignados a particiones basados en un algoritmo hash, por lo que no se requiere un conocimiento profundo del contenido de la tabla (no hay una separación lógica de los datos). En la configuración de esta tipo de partición se debe indicar las columnas cuyos valores se utilizarán para determinar el valor hash. Si las tablas tienen columnas índices, estas deben ser utilizadas en este proceso. De fácil configuración, no requieren mantenimiento. Durante las consultas todas las particiones deben ser exploradas a menos que se indique explícitamente las particiones a consultar (parámetros “=” o “IN” de la cláusula “WHERE”).

ROUND-ROBIN. Se utiliza para lograr una distribución uniforme de los datos en las particiones, a diferencia del caso anterior, no es necesario especificar columnas para definir el criterio de este proceso. Los nuevos registros de van asignando rotativamente. Las tablas no deben tener claves primarias. Son de fáciles configuración, no requieren mantenimiento. En consultas, todas las particiones deben ser exploradas. No hay separación lógica de los datos.

RANGE. Los registros son asignados a particiones utilizando los rangos de particiones definidos. Es la única que define la asignación de particiones bajo un criterio lógico, en consecuencia, es la mejor vía para optimizar el acceso a los datos. Para una adecuada configuración, es necesario conocer los datos y sus aplicaciones. Es necesario un regular mantenimiento (p.e. para definir nuevas particiones o eliminar otras cuyos datos han sido archivados). Es necesario el uso de una clave principal. Sólo es aplicable para tipos de datos (cadenas, enteros y fechas).

Particionamiento multinivel en SAP HANA Database

Cualquier definición de partición utilizando uno de los métodos anteriores, dará lugar a un particionamiento simple (single-level partioning). Si cada partición es particionada nuevamente por otros criterios, estaríamos hablando un particionamiento multinivel (multi-level partitioning).

Particionado de Tablas en SAP HANA (I) – Definiciones

En ocasiones, los problemas de rendimiento de muchos sistemas de información pasan por una falta de particionamiento de los datos o una mala adopción de esta técnica, SAP HANA no es una excepción, a pesar de los grandes recursos disponibles que puede tener la plataforma in-memory de SAP, está medida en ocasiones es necesaria.


En ocasiones, los problemas de rendimiento de muchos sistemas de información pasan por una falta de particionamiento de los datos o una mala adopción de esta técnica, SAP HANA no es una excepción, a pesar de los grandes recursos disponibles que puede tener la plataforma in-memory de SAP, está medida en ocasiones es necesaria.

A continuación, una breve relación de respuestas a preguntas frecuentes sobre este tema en SAP HANA:

Que es el Particionado de tablas de datos

  • El particionamiento significa que las tablas son divididas en sub-tablas denominadas particiones según un criterio específico.
  • Sólo es aplicable en tablas con almacenamiento columnar (column store), en tablas con almacenamiento en filas (row store) no soportan particionamiento.
  • El particionamiento es transparente para que las aplicaciones funcionen correctamente. Sin embargo la partición puede tener un impacto en el rendimiento, positivo o negativo, que pueden percibir los usuarios en la carga de los sistemas, depende de la estrategia implementada.

Cuando Particionar las tablas de datos

  • Por lo general, el particionado es muy útil en tablas de gran tamaño, por otro lado, debe tener presente que las tablas columnares no pueden superar los dos mil millones de registros.
  • Además del procesamiento paralelo, en un despliegue scale-out (escalabilidad horizontal, uso de más de un host), en consultas complejas, accediendo a particiones distribuidas en distintos nodos, se obtendría un alto rendimiento, más no en consultas simples.
  • Si las tablas tienes conjuntos de datos de uso frecuente, y otros conjuntos de menos uso, deberían ser particionados según este criterio (partition prune).
  • Si una región de datos sólo es actualizada y la otra no, los procesos de actualización serán más eficientes.

«Query Stripping» en WebI 4.1

“Query Stripping” (traducido como “Eliminación de Consultas” en la versión en español) es una nueva funcionalidad en SAP BusinessObjects 4.1, por el momento sólo aplicable en Web Intelligence (WebI), que permite mejorar el rendimiento de la actualización de documentos


Query Stripping” (traducido como “Eliminación de Consultas” en la versión en español) es una nueva funcionalidad en SAP BusinessObjects 4.1, por el momento sólo aplicable en Web Intelligence (WebI), que permite mejorar el rendimiento o performance de la actualización de documentos. Esta característica redefine la consulta diseñada para sólo incluir los elementos que se utilizan en los informes.

Esta característica es automáticamente incluida cuando se utiliza universos OLAP, en el caso de universos relacionales será necesario seguir los siguientes pasos:

  1. Habilitar en el universo relacional correspondiente, la opción “Allow query stripping” en el panel “Query Options”.
  2. Exportar (Publicar) la Capa de negocios (Business Layer) como un Universo UNX.
  3. Crear un nuevo documento WebI con el Universo UNX.
  4. Habilitar la opción “Enable query stripping” en el panel “Query Properties” del documento WebI.
  5. Antes de obtener los resultados y salvar el documento, verificar que la opción señalada en el punto anterior está habilitada.

 

Claves para definir buenas métricas

La asignación de recursos y esfuerzos a nuestros procesos de negocio, en cantidad, forma y momento oportuno, pasa por medir adecuadamente la salud de nuestra organización. Pero, ¿qué debemos medir? No hay una respuesta única o universal, porque la situación y aspiración de cada empresa es muy diversa.


La asignación de recursos y esfuerzos a nuestros procesos de negocio, en cantidad, forma y momento oportuno, pasa por medir adecuadamente la salud de nuestra organización. Pero, ¿qué debemos medir? No hay una respuesta única o universal, porque la situación y aspiración de cada empresa es muy diversa.

Hemos visto muchos tips o claves para seleccionar las métricas adecuadas, nosotros sugerimos tener presente los siguientes factores al seleccionar una buena métrica:

  • Comparable. Debe ser posible compararla con otro período de tiempo, grupo de usuarios o con la competencia. Es más útil saber que “hemos incrementado la conversión con relación a la semana anterior” que “la conversión es igual al 2%”. Así mismo, debería ser comparable consigo misma (Inherentemente Comparativa), por ejemplo, un indicador diario comparado a nivel mes, podría señalar una variación repentina o un cambio en la tendencia.
  • Comprensible. Si los usuarios de los indicadores no lo recuerdan o no pueden discutir sobre el mismo, difícilmente será útil para lograr algún cambio.
  • Encaminan a la acción. Si estamos conduciendo un vehículo, la distancia recorrida es un dato informativo. Pero la velocidad (distancia por hora), es un dato que encamina a la acción, porque nos facilitará decidir si debemos ir más rápidos o más lentos para llegar al destino en el momento deseado.

Referencia: ISBN 978-1-449-33567-0

Fuzzifiquemos el Análisis de datos (Lógica Difusa – Fuzzy Logic)

La lógica binaria ha demostrado no ser lo más indicado para el análisis de datos, sobre todo cuando se está tratando datos de naturaleza tan ambigua y dispersa como los que están asociados a las personas, llámese clientes, colaboradores, proveedores, empresas, etc. Asignarle un valor único, tal como un cero o un uno (o verdadero/falso o blanco/negro o grande/pequeño,…) a una determinada característica en un mundo que tiene una amplia variedad de matices, puede ser de poca utilidad o conllevar a tomar las decisiones menos adecuadas.


La lógica binaria ha demostrado no ser lo más indicado para el análisis de datos, sobre todo cuando se está tratando datos de naturaleza tan ambigua y dispersa como los que están asociados a las personas, llámese clientes, colaboradores, proveedores, empresas, etc. Asignarle un valor único, tal como un cero o un uno (o verdadero/falso o blanco/negro o grande/pequeño,…) a una determinada característica en un mundo que tiene una amplia variedad de matices, puede ser de poca utilidad o conllevar a tomar las decisiones menos adecuadas.

En nuestras implementaciones de Business Intelligence o Business Analytics deberíamos tender a ofrecer un análisis de datos similar al que se logra con el razonamiento humano, es aquí donde la “Lógica difusa” (Fuzzy Logic) debería tenerse presente. No se trata de un nuevo concepto, fue introducido en 1965, pero es de estos conceptos resucitados y potenciados ahora por las mejoras en la capacidad de procesamiento y por la necesidad de lograr sistemas más útiles en un nuevo contexto con mayor incertidumbre.

Como señala el artículo de referencia, “la lógica difusa se aplica en una amplia variedad de campos relacionados, directa o indirectamente, con la comprensión de la información. Las técnicas de lógica difusa permiten estudiar los datos desde la ambigüedad del propio lenguaje, es decir, comprenderlos como los comprenderían las personas”. La lógica difusa extiende la lógica binaria para ofrecer un abanico de respuestas o valores que puede ser asignado a un elemento que se contendría entre lo completamente cierto y lo completamente falso (Ref. Wikipedia).

Por ejemplo, en la clasificación, segmentación o catalogación de elementos, siguiendo procedimiento clásicos, se concluye en la asignación de los elementos a un segmento en concreto, pero la realidad no siempre es tan clara o exacta porque un mismo elemento puede pertenecer a más de un segmento. Utilizando técnicas de “fuzzy” (fuzzy clustering) se podría identificar la pertenencia de los elementos a los distintos segmentos identificados e inclusive, se podría lograr obtener su grado de pertenencia a cada segmento.

En teoría, todo o casi todo se podría “fuzzificar”, lamentablemente hay pocas herramientas de minería de datos que brinden esta capacidad de procesamiento (ver la propuesta de Matlab), pero conociendo la técnica podríamos lograr resultados más útiles para la toma de decisiones.

Referencia: Harvard Deusto (Nro. 234. Artículo “El gran potencial de la lógica difusa” de Mónica Casabayó y Núria Agell)