Almacenamiento en SAP HANA, ¿filas o columnas?

SAP HANA soporta el almacenamiento basado en columnas (column-based storage) y basado en filas (row-based storage), y funciona mejor con el almacenamiento basado en columnas, las tablas de este tipo tienen una lectura optimizada y mejores niveles de compresión. En el futuro, algunas características como el particionado sólo estarán disponibles en tablas column-based storage.


SAP HANA soporta el almacenamiento basado en columnas (column-based storage) y basado en filas (row-based storage), y funciona mejor con el almacenamiento basado en columnas, las tablas de este tipo tienen una lectura optimizada y mejores niveles de compresión.  En el futuro, algunas características como el particionado sólo estarán disponibles en tablas column-based storage.

Pero no siempre es recomendable utilizar tablas basadas en columnas, las cuales están pensadas, principalmente, para grandes volúmenes de datos con lecturas y modificaciones masivas, por otro lado, las tablas basadas en filas son más eficientes en tareas de inserción y actualización, principalmente para pequeños conjuntos de datos con modificaciones individuales.  A continuación mencionamos algunos aspectos que podrían determinar el uso de uno u otro tipo de almacenamiento:

Column Store:

  • Los cálculos serán ejecutados sobre una o pequeños grupos de columnas.
  • La tabla tendrá varias columnas.
  • Gran número de filas que serán procesadas constantemente a nivel de columnas.
  • Las columnas tienen poca variedad de valores y se logrará un alto nivel de compresión.
  • Búsquedas a nivel de los valores de algunas columnas.

Row Store:

  • Se necesita procesar un registro a la vez.
  • Se requiere acceder a todo el registro (todas las columnas de una fila)
  • Las columnas tienen una amplia variedad de datos y los niveles de compresión serían bajos.
  • No se requiere agregaciones, ni búsquedas rápidas
  • La tabla tendrá un número reducido de filas (por ejemplo tablas de configuración)

 Nota: Las tablas de diferente tipo de almacenamiento pueden vincularse, pero resulta más recomendable que siempre sean del mismo tipo. El tipo de almacenamiento asignado a una tabla en su definición puede modificarse vía la sentencia ALTER TABLE ALTER TYPE.

Conceptos básicos sobre gestión de usuarios en SAP HANA

La autorización que tiene un usuario para “hacer algo” sobre determinados “recursos de la base de datos” de SAP HANA, se denomina “privilegios” y la agrupación de estos privilegios para más fácilmente asignarlos a los usuarios, se denomina “roles”. En el sistema SAP HANA tenemos dos grandes categorías de usuarios:


La autorización que tiene un usuario para “hacer algo” sobre determinados “recursos de la base de datos” de SAP HANA, se denomina “privilegios” y la agrupación de estos privilegios para más fácilmente asignarlos a los usuarios, se denomina “roles”.  En el sistema SAP HANA tenemos dos grandes categorías de usuarios:

  • Database Users. Un  usuario de base de datos es un usuario que podrá  trabajar con los recursos de SAP HANA Database.
  • Operating System User. Son usuarios con acceso total a los recursos del sistema, también son referidos como administradores de la operativa del sistema, son los únicos que puede iniciar o detener un servicio o componente del sistema.  Un usuario operador del sistema no es un usuario de base de datos.

Usuarios técnicos

Durante la instalación de SAP HANA Database se crean una serie de “usuarios técnicos”, tales como <sid>adm, SYS,  _SYS_STATISTICS o SYSTEM.  Este último, es un usuario de bases de datos (database user) tiene unos privilegios irrevocables tales como crear usuarios de bases de datos o acceder a las tablas del sistema.  Como en cualquier otro sistema o plataforma de bases de datos, se sugiere no utilizar este usuario para las tareas diarias, sino definir uno con privilegios similares.

Autenticación

Los usuarios son definidos y gestionados por SAP HANA Database en SAP HANA Studio.

La autenticación de usuarios puede ser integrada con Kerberos y SAML (Security Assertion Markup Language).

Desde SAP HANA 1.0 SP05 es posible gestionar una lista de palabras que no podrán ser utilizadas en la definición de contraseñas (Password Blacklist). Esta lista es almacenada en la tabla _SYS_PASSWORD_BLACKLIST del esquema _SYS_SECURITY.  Si se cuenta con privilegios sobre la tabla o el esquema, se podrá actualizar esta lista vía sentencias SQL desde SAP HANA Studio.

Autorización

Un usuario autenticado como usuario de base de datos indica que podrá realizar operaciones, la confirmación que pueda hacer algo se denomina autorización, la cual se determinará por la verificación de los derechos efectivos sobre los recursos y privilegios para ejecutar la operación. Tipos de privilegios en SAP HANA database:

  • System privilege.  Permiten el control total del sistema con el fin de administrarlo permitiendo la ejecución de tareas tales como creación de esquemas, definición de usuarios y roles, copias de respaldo, gestión de licencias, etc.
  • Object privilege. Es usado para restringir el acceso y las modificaciones de los objetos de la base de datos.
  • Anlytic privilege. Son utilizados para determinar el acceso a las vistas de información, estos privilegios son evaluados durante la ejecución de las consultas
  • Package privillege. Determina si el usuario podrá acceder y trabajar con paquetes del repositorio, los cuales pueden contener vistas de información en tiempo de diseño.
  • Privilegios para tareas administrativas. Para las tareas típicas de un administrador del sistema, además de tener derechos sobre los objetos a gestionar, debe contarse con privilegios específicos como los siguientes:
    • Abrir la Consola de Administración (CATALOG READ y DATA ADMIN.  MONITORING para sólo conslta)
    • Iniciar o detener servicios (SERVICE ADMIN)
    • Gestionar licencias (LICENSE ADMIN)
    • Gestionar roles (ROLE ADMIN)
    • Gestionar usuarios (USER ADMIN)
    • Gestionar tablas, esquemas y particiones (DATA ADMIN o CATALOG READ)
    • Importar catálogo de objetos (IMPORT)
    • Exportar catálogo de objetos (EXPORT)

Licencias de SAP HANA Database


Las licencias de SAP HANA se requieren para su base de datos, núcleo de la plataforma in-memory computing de SAP.  Al igual que otros productos SAP, existen dos tipos de licencias:

  •  Licencias “Temporales”. Son las licencias con la que viene una nueva base de datos SAP HANA, tienen una vigencia de 90 días, período en el cual se debe solicitar (en SAP Market Place) y aplicar las licencias permanentes.
  • Licencias “Permanentes”. Estas licencias determinan la cantidad de memoria que podrá utilizar la base de datos y tienen un período de vigencia determinado, luego de los cual se deberá solicitar una nueva licencia permanente.  Si una licencia permanente caducara y no se contara con una nueva, se podrá utilizar una licencia temporal por un período de 28 días.

En cuanto a licencias permanentes, hay dos tipos, enforced y unenforced, la primera de ellas bloque el sistema si supera la cantidad de memoria permitida y la segunda permite uso requerimiento adicional.  Por ahora, la licencia permanente “enforced” sólo es aplicable en instalaciones SAP Business One

Vía para consulta o modificar las licencias SAP HANA Database,... (gups... no tenemos acceso)

(Nota: Para consultar o modificar las licencias de la base de datos SAP HANA es necesario privilegio LICENSE ADMIN)

Monitorización del sistema SAP HANA al iniciarlo o detenerlo


Editores de la perspectiva Consola de Administración de SAP HANA StudioLa gran parte de la información sobre el funcionamiento del sistema SAP HANA se guarda en la base de datos, pero cuando los servicios que gestionan SAP HANA Database no están disponibles porque se está iniciando el sistema o este se está deteniendo, la información sobre el funcionamiento de estas operaciones (start y stop services) no es almacenada en base de datos, pero es accesible en SAP HANA Studio vía la perspectiva de “Administration Console”, pero a diferencia de las dos entradas anteriores, utilizando la opción “Diagnosis mode”

El «modo diagnóstico» será el editor por defecto de la «Consola de Administración» cuando el sistema se esté deteniendo o poniendo en marcha, o cuando ninguna conexión SQL esté disponible.

Opciones para reiniciar un sistema SAP HANA


En SAP HANA, un cambio de un parámetro no obliga reiniciar el sistema o incluso son raras las veces que se requiera reiniciar un servicio, pero en algún caso podría ser necesario si se llegase instalar un nuevo servicio como puede darse si actualizas un sistema SAP HANA a SPS05 e instalas el servicio SAP HANA extended application services (SAP HANA XS) o el caso que figura en el manual de administración de SAP HANA“En un sistema distribuido, un host deja de funcionar y sus tareas pasan a ser gestionadas por el host de respaldo, pero sin embargo este sigue ocupado aun cuando el host que tuvo problemas esta nuevamente operativo”

Servicios SAP HANA, donde el principal es SAPSTARTSRV el cual pone en funcionamiento todo el sistema

Como tarea de administración, para reiniciar el sistema, utilizaremos la perspectiva de la “Consola de Administración” de SAP HANA Studio, si tenemos un usuario adecuado (operating system user) podremos detener y reiniciar el sistema denominado sapstartsrv el cual es responsable de poner en funcionamiento los servicios que requiere la plataforma SAP HANA.  Al reiniciar el sistema nos encontraremos con dos opciones:

  • Hard. Fuerza una inmediata interrupción de todos los servicios en todos los host.  La opción menos recomendada debido a que no permite la grabación de las operaciones en curso  (savepoint operation) y originaría una reinicialización más lenta.
  • Soft. Ejecuta la grabación de todas las modificaciones (savepoint operation) realizadas, antes de detener los servicios de base de datos.

Al igual que muchas otras tablas de información de SAP HANA Studio, se puede especificar que datos se desean ver

(Nota: Para reiniciar el sistema SAP HANA se solicita el usuario y contraseña del administrador y para el caso de reiniciar los servicios de base de datos basta el privilegio SERVICE ADMIN)