Poca documentación para una tecnología disruptiva como SAP HANA

Una tecnología disruptiva es aquella que por sus características innovadoras conduce a la extinción de otras propuestas más costosas o que aportan menos valor o beneficio. Creemos que SAP HANA es una tecnología disruptiva en toda regla y la “tecnología obsoleta a extinguir” son el resto de modelos de bases de datos tradicionales.


Una tecnología disruptiva es aquella que por sus características innovadoras conduce a la extinción de otras propuestas más costosas o que aportan menos valor o beneficio.  Creemos que SAP HANA es una tecnología disruptiva en toda regla y la “tecnología obsoleta a extinguir” son el resto de modelos de bases de datos tradicionales.

Debe ser por la novedad, pero encontrar buena documentación no parece fácil, quedamos algo decepcionados al recibir el TZHANA, uno de los manuales de los principales cursos de formación para la certificación en SAP HANA, muchas de sus páginas ya las habíamos visto en algunas presentaciones publicadas en Internet.  Por lo pronto, los documentos en SAP Help son los más completos, a la espera de ver los otros documentos de los cursos oficiales como el TZH300 (aquí plan de formación).

Mientras tanto, una buena fuente de información son las notas técnicas, revisando las asociadas a HANA podemos enterarnos de las novedades y problemas que están teniendo algunas implementaciones.  Una esperanza de documentación es el libro de Jeff Word, anunciado en el portal “Experience SAP HANA” (aquí tabla de contenidos) pero leyendo un avance parece que será una novela, esperemos que no, este documento será gratuito a partir de mayo.

Aclarando conceptos básicos

En notas como la 1684255 podemos encontrar algunas definiciones que pueden ser identificadas como punto de partida:

  • HANA es una marca que engloba varios componentes.
  • SAP HANA Database, es el principal componente de la plataforma, es una base de datos in-memory con almacenamiento basado en filas y columnas, diseñada con tecnología de objetos, optimizada para utilizar características del hardware como el procesamiento paralelo y arquitecturas multi core/CPU.
  • Un Appliance es un conjunto de hardware y software específicamente preparados para HANA.  Cuando se instala SAP HAHA Database, el dispositivo es llamado SAP HANA Appliance.
  • El conjunto de herramientas para administrar y modelar SAP HANA se denominan SAP HANA Studio.
  • Las aplicaciones específicamente diseñadas para HANA en su denominación se incluye el texto “powered by SAP HANA”.

¿Con qué datos se puede utilizar SAP HANA?

Para la pregunta ¿qué aplicaciones pueden conectarse a SAP HANA? (o similares), la respuesta la encontramos en la nota técnica 1577128 (Supported clients for SAP HANA 1.0). Oficialmente SAP HANA sólo está certificado y optimizado para trabajar con SAP BusinessObjects BI 4.0


Para la pregunta ¿qué aplicaciones pueden conectarse a SAP HANA? (o similares), la respuesta la encontramos en la nota técnica 1577128 (Supported clients for SAP HANA 1.0).   Oficialmente SAP HANA sólo está certificado y optimizado para trabajar con SAP BusinessObjects BI 4.0 (La versión 1.0 SP03 de HANA puede trabajar con la versión SP02 Patch 5 y superiores de BusinessObjects BI 4.0).

SAP HANA también brinda interfaces ODBC, ODBO, JDBC y SQLDBC lo que abre la puerta a más posibilidades permitiendo el uso de cualquier tipo de datos o aplicaciones cliente.  Cabe agregar que SAP HANA esta integrada a SAP BusinessObjects Data Services, aumentando las posibilidades de cargar todo tipo de datos no-SAP.

Objetivo In-memory computing (SAP HANA): Mover los datos lo menos posible

Para lograr tiempos de respuesta reales la tecnología In-Memory Computing se vale de una serie de técnicas que tienen por objetivo mover lo menos posible los datos en las bases de datos y entre la base de datos y las aplicaciones.


Para lograr tiempos de respuesta reales la tecnología In-Memory Computing se vale de una serie de técnicas que tienen por objetivo mover lo menos posible los datos en las bases de datos y entre la base de datos y las aplicaciones.

Compresión

A pesar que se pueda contar con grandes cantidades de memoria, con la compresión se persigue evitar el tránsito de los datos. Una técnica habitual es el uso de diccionarios, un método sencillo, porque al final, de lo que se trata es no sobrecargar la capacidad de procesamiento del CPU. Esta técnica consiste en sustituir los textos y fechas por números enteros, tal como se muestra en la siguiente imagen:

Con esta técnica se consigue un factor de compresión que depende de la cantidad de valores distintos. Hay otras técnicas más eficientes, pero lo que se busca es un método flexible que no afecte el tiempo de respuesta al acceder a los datos.

Almacenamiento en Columnas

El almacenamiento basado en columnas (column-based, columnar storage o columnar) es una alternativa al tradicional sistema de bases de datos relacional con su almacenamiento basado en filas.

Como se puede ver en el anterior cuadro, las debilidades del almacenamiento basado en columnas están en las operaciones de actualización e inserción de datos, la tarea menos habitual en un entorno de análisis.

Lógica de aplicaciones en bases de datos

Las técnicas anteriores están enfocadas a agilizar el acceso a la información contenida en las bases de datos.  Pero las aplicaciones pueden realizar operaciones con los datos, generando un «tráfico» de ida y vuelta que puede repercutir en el rendimiento general, aumentando los tiempos de latencia o espera.  Para evitar estos inconvenientes, los cálculos u operaciones que requieren las aplicaciones son procesados en donde están los datos (BBDD).

En «in-memory computing» (técnica de SAP HANA), los datos están en disco

Se entiende por in-memory computing, el procesamiento de grandes cantidades de datos en la memoria principal (RAM) para ofrecer resultados inmediatos en las transacciones y tareas de análisis. El llamado procesamiento en tiempo real es posible por la aplicación de los siguientes principios


Se entiende por in-memory computing, el procesamiento de grandes cantidades de datos en la memoria principal (RAM) para ofrecer resultados inmediatos en las transacciones  y tareas de análisis.  El  llamado procesamiento en tiempo real es posible por la aplicación de los siguientes principios:

  • Mantener los datos en la memoria principal para acelerar el acceso a la información.
  • Reducir el mínimo el movimiento de datos, aprovechando técnicas de almacenamiento en columnas, compresión y cálculos a nivel de base de datos.
  • Maximizar el uso de la arquitectura tales como los procesadores multi-core, entornos distribuido o procesamiento multiservidor.

 La respuesta a la pregunta ¿por qué utilizar la memoria como almacén de datos? se encuentra en el siguiente gráfico:

Las dos primeras alternativas son más rápidas pero se limitan al procesamiento de datos.  La memora RAM es la única, de las alternativas más rápidas, que permite el almacenamiento de un gran volumen de datos.

Podría pensar que tener los datos en memoria es un»riesgo» si se pierde la fuente de alimentación de energía, pero tal riesgo no existe: «El almacenamiento utilizado por una base de datos para guardar los datos (en este caso en la memoria) se divide en páginas. Cuando una transacción cambia los datos, las páginas correspondientes se marcan y se escriben en almacenamiento  no volátil en intervalos regulares». Esto asegura que todas las transacciones son permanentes.

La evolución de las tecnologías SAP para llegar a HANA

IBM es uno de los cinco socios de hardware que tiene SAP para SAP HANA, el denominado “Gigante Azul”, recientemente ha publicado un libro sobre la tecnología de procesamiento en memoria (in-memory computing) y HANA, en pocas páginas plasma importante información sobre la evolución, principales conceptos y características técnicas de esta tecnología sobre la arquitectura de IBM.


IBM es uno de los cinco socios de hardware que tiene SAP para SAP HANA, el denominado “Gigante Azul”, recientemente ha publicado un libro sobre la tecnología de procesamiento en memoria (in-memory computing) y HANA, en pocas páginas plasma importante información sobre la evolución, principales conceptos y características técnicas de esta tecnología sobre la arquitectura de IBM.

SAP HANA no es un “invento reciente”, es el resultado de la evolución de varias tecnologías que han confluido en un producto que inicialmente fue pensado sólo para mejorar las tareas de análisis de datos, pero que muy pronto, SAP identificó su potencial y cambió su alcance y ahora está llamada a ser la base de datos y plataforma sobre la que funcionarán todas las aplicaciones de SAP.