/
O3 Redundancy Manager

O3 Redundancy Manager

Cómo agregar redundancia con Redundancy Manager

RedundancyManager es una aplicación que se ejecuta en línea de comandos y se utiliza para agregarle niveles de redundancia a un cubo construído previamente con O3Builder u O3Designer. 

El principal cometido de esta aplicación es permitir agregar la redundancia en un paso separado al de la construcción del cubo, esto permite repetir el proceso las veces que sea necesario hasta lograr optimizar el cubo sin necestiad de perder tiempo en reconstruirlo. Esta aplicación despliega además información util sobre los niveles de redundancia. Por ejemplo, muestra la cantidad de tuplas que tiene un nivel y sobre qué nivel fue construído, lo que permite tener una idea de si cierto nivel de redundancia mejora o no la performance del cubo.

Los niveles de redundancia primero se planifican, o sea que se agregan niveles al cubo para que después con otro comando realmente se construyan.

Ejecución

Se encuentra en la carpeta bat(o sh) y se llama RedunMgr.bat.
Se ejecuta pasandole como parametro el cubo y el comando de lo que se le quiere hacer. Ejecutandolo sin parametros muestra un listado de todos los comandos que acepta.

RedunMgr [opciones] <datamart>

Ejemplo linux

redunmgr.sh [opciones] miDataMart.cube -debug

Ejemplo windows

RedunMgr.bat [opciones] miDataMart.cube -debug

Opciones disponibles

Opción

Descripción

-log

Habilita o deshabilita el log en pantalla.

-logfile=<file>

Especifica donde se desea guardar el log.

-logtype=clear

(clear|append) Especifica si se desea sobrescribir o concatenar los datos en el log.

-help

Muestra un mensaje de ayuda

-version

Muestra el número de versión

-cmnd=[comando]

Permite ejecutar un comando

-level

"l1, l2, ..., ln" Especifica el nivel de los comandos: suspend, unsuspend, update, delete and add.

-compact

Para que el nivel de información tenga un tipo de notación compacta.

-update

Si la redundancia debe ser calculada (Solo si el comando es add).

-noecho

Desactiva el log en consola

-scheme

Nombre de esquema, solo es válido cuando cmnd=updateScheme o cmnd=showScheme

Comandos

Para correr comandos los comandos del Redundancy Manager la sintaxis es la siguiente:

RedunMgr -cmnd=<show|showCover|suspend|unsuspend|delete|add|update|updateAll|addAuto|testAuto|updateScheme|showScheme>[opciones] <datamart>

Comando

Descripción

Ejemplo de uso

show

Despliega en pantalla toda la información de redundancia del datamart.

RedunMgr -cmnd=show  datamart

showCover

Muestra información sobre el nivel de redundancia "0" (nivel base)
además de la información de los otros iveles de redundancia.

RedunMgr -cmnd=showCover  datamart

suspend

Suspende un nivel de redundancia

RedunMgr -cmnd=suspend -level="1,1,1,1,1"  datamart

unsuspend

Retoma un nivel de redundancia

RedunMgr -cmnd=unsuspend -level="1,1,1,1,1"  datamart

delete

Elimina un nivel de redundancia

RedunMgr -cmnd=delete -level="1,1,1,1,1"  datamart

add

Agrega un nivel de redundancia

RedunMgr -cmnd=add -level="1,1,1,1,1"  datamart
RedunMgr -cmnd=add -update -level="2,1,2,1,2"  datamart

update

Calcula un nivel de redundancia

RedunMgr -cmnd=update -level="1,1,1,1,1"  datamart

updateAll

Construye todos los niveles de redundancia que esten planificados.

RedunMgr -cmnd=updateAll  datamart

addAuto

Agrega los niveles de redundancia con el algoritmo automático,
pero no realiza los cálculos

RedunMgr -cmnd=addAuto  datamart

testAuto

Despliega el resultado del algoritmo automático, pero no lo aplica en el datamart

RedunMgr -cmnd=testAuto  datamart

updateScheme

Calcula todos los niveles de redundancia del schema indicado con el parámetro -scheme

RedunMgr -cmnd=updateScheme -scheme=schema  datamart

showScheme

Muestra en pantalla la información del esquema indicado con el parámetro -scheme.
Muestra todos los esquemas en el caso que no exista el parámetro -scheme.

RedunMgr -cmnd=showScheme  datamart
RedunMgr -cmnd=showScheme -scheme=schema  datamart

Ejemplo 1

RedunMgr -cmnd=add -level="1,1,1,1,1" C:\IdeaSoft\o3\installations\O3_3.3.000\files\Demo.cube -debug

planifica el nivel de redundancia [1,1,1,1,1] (o sea, nivel [Quarter,Line,Customer Type,Line,Team,Country]) en el cubo Demo.cube

Ejemplo 2:

RedunMgr -cmnd=show C:\IdeaSoft\o3\installations\O3_3.3.000\files\Demo.cube -debug

Despligua en pantalla toda la informacion de redundancia del cubo Demo.cube
El resultado del comando es:
.....
Notificación: Phase: 0
Notificación: Base Level: 0 [ 0, 0, 0, 0, 0 ]
Notificación: RedundancyLevel: 1 - [ 1, 1, 1, 1, 1 ]
Generation: 5 dependOn: [ 0 ]
Measures: [ T, T, T, T, T, T ] Base Measures: [ F, F, F, F, F, F ]
Updated : [ null ] Empty: [ F, F, F, F, F, F ]
Notificación: Status: planned
.....

El log muestra que existe un nivel de redundancia de nombre "1" definido como [1,1,1,1,1] (fue el que se agrego en el Ejemplo 1). El nivel "1" depende de otro nivel de redundancia llamado "0" (el nivel de redundancia "0" existe en el cubo aunque el este no tenga redundancia, es el llamado nivel base, sobre el cual se resuelven todas las consultas del cubo cuando no tiene redundancia)
El ninvel de redundancia "1" esta planificado.

Ejemplo 3

RedunMgr -cmnd=updateAll C:\IdeaSoft\o3\installations\O3_3.3.000\files\Demo.cube -debug

Construye todos los niveles de redundancia que esten planificados.
Después de ejecutarlo el comando "show" muestra lo siguiente:

Notificación: Phase: 0
Notificación: Base Level: 0 [ 0, 0, 0, 0, 0 ]
Notificación: RedundancyLevel: 1 - [ 1, 1, 1, 1, 1 ]
Generation: 5 dependOn: [ 0 ]
Measures: [ T, T, T, T, T, T ] Base Measures: [ F, F, F, F, F, F ]
Updated : [ T, T, T, T, T, T ] Empty: [ F, F, F, F, F, F ]
Notificación: Status: running
Notificación: Index ID: 1 TuplesCount: 518

Muestra dos cosas, el nivel está calculado (estado running) y tiene 518 tuplas. Esto último significa que en el peor caso para una consulta que se resuelva utilizando ese nivel de redundancia se recorreren 518 tuplas, esto es un indicador de la performance que tienen las consultas para resolverse con ese nivel de redundancia.

Otras consideraciones:
1- No se pueden remover niveles de redudancia (a pesar de que aparece la opción en la ayuda del comando), solo se pueden suspender, pero la informacion sigue ahí (el tamaño del cubo se conserva)
2- El comando showCover muestra información sobre el nivel de redundancia "0" (nivel base) además de la información de los otros niveles de redundancia. Esto sirve para saber cuantas tuplas tiene el cubo.

Resultado ejemplo de ejecutar showCover:
Notificación: Cover:
Notificación: RedundancyLevel: 0 - [ 0, 0, 0, 0, 0 ]
Generation: 0 dependOn: [ ]
Measures: [ T, T, T, T, T, T ] Base Measures: [ T, T, T, T, T, T ]
Updated : [ T, T, T, T, T, T ] Empty: [ F, F, F, F, F, F ]
Notificación: Status: running
Notificación: Index ID: 0 TuplesCount: 1270
Notificación:
Notificación: RedundancyLevel: 1 - [ 1, 1, 1, 1, 1 ]
Generation: 5 dependOn: [ 0 ]
Measures: [ T, T, T, T, T, T ] Base Measures: [ F, F, F, F, F, F ]
Updated : [ T, T, T, T, T, T ] Empty: [ F, F, F, F, F, F ]
Notificación: Status: running
Notificación: Index ID: 1 TuplesCount: 518

Por mas información sobre Redundancia referirse al manual de Desarrollador en la sección de "Optimización de Consultas"