Wiki Markup |
---|
{scrollbar} |
Cómo agregar redundancia con Redundancy Manager
RedundancyManager Redundancy Manager 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 necesidad de perder tiempo en reconstruirlo. Esta aplicación despliega además información util útil 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.
Se encuentra en la carpeta bat (o sh) y se llama RedunMgr.bat.
Se ejecuta pasandole pasándole como parametro parámetro el cubo y el comando de lo que se le quiere hacer. Ejecutandolo Ejecutándolo sin parametros parámetros muestra un listado de todos los comandos que acepta.
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.
Note |
---|
Para los siguientes ejemplos consideramos que la instalación de O3BI está en C:\IdeaSoft\o3bi y utilizaremos el Cubo Demo.cube que se ofrece con la instalación. |
Ejemplo 1
RedunMgr -cmnd=add -level="1,1,1,1,1" C:\IdeaSoft\o3\installations\O3_3.3.000o3bi\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 -debug -cmnd=show C:\IdeaSoft\o3\installations\O3_3.3.000o3bi\files\Demo.cube -debug
Despligua Despliegua en pantalla toda la informacion de redundancia del cubo Demo.cube
Code Block | ||
---|---|---|
| ||
C:\IdeaSoft\o3bi\bat>RedunMgr.bat -debug -cmnd=show C:\IdeaSoft\o3bi\files\Demo.cube Loading Application properties file from: file:C:/ideasoft/o3bi/O3.properties Loading Custom Application properties file from: file:C:/ideasoft/o3bi/O3_custom.properties Loading User properties file from: file:C:/Users/ernesto/O3_user.properties Loading Alternative User properties file from: file:C:/ideasoft/o3bi/O3_user.properties Logfile enabled. Append mode Log enabled Debug level set Advertencia: No se encuentra archivo de propiedades en biz.ideasoft.argos.licens e.model.basic.msg.license Loading Configuration from : C:\Users\ernesto/O3.properties Version: 6.4.2 Expiration date: 3 de diciembre de 2014 Licensed to: Ideasoft Notificaci¾n: O3 Versi¾n Completa: 6.4.2-04 Debug: Initializing Spring context from: com/ideasoft/o3/client/spring-o3client.xml,com/ideasoft/o3/client/spring-o3client-remote.xml Notificaci¾n: Working on: file:/C:/IdeaSoft/o3bi/files/Demo.cube Debug: ContentHandler 'ideasoft.olap.mdclient.O3ViewContentHandler' instantiation Ok Debug: ContentHandler 'ideasoft.olap.mdm.CubeDefContentHandler' instantiation Ok Debug: ContentHandler 'ideasoft.olap.profile.CubeProfileContentHandler' instantiation Ok Fase: Abriendo el Cubo. Fase: Abriendo el Cubo. Notificaci¾n: Multithread query processing enabled. Notificaci¾n: Concurrent query processing enabled, concurrent queries: 5. Notificaci¾n: Non-blocking IO enabled. Notificaci¾n: Instantiating the pool container to hold up to 250000 blocks. Trace: Recabando informaci¾n del cubo. Fase: Validando Usuario Trace: Cargando datos. Trace: Cargando dimensiones. Debug: initialOffset is 16384 poolLength=151552 initialCubePos=167936 Trace: Cargando MetaData. Trace: Config: No storage provided Trace: Config: No storage provided Advertencia: Double no encontrado en ideasoft.expr.msg.expr Advertencia: Double no encontrado en ideasoft.expr.msg.expr Fase: Cargando MetaData. Debug: Dimension Date. |
...
Loading time: 5 ms. Dimension Size: 180
Debug: Levels for dimension Date: [ Year, Quarter, Month ]
Debug: Dimension Products. Loading time: 5 ms. Dimension Size: 38
Debug: Levels for dimension Products: [ Family, Line, Product ]
Debug: Dimension Customers. Loading time: 1 ms. Dimension Size: 22
Debug: Levels for dimension Customers: [ Customer Type, Customer ]
Debug: Dimension Salesmen. Loading time: 1 ms. Dimension Size: 14
Debug: Levels for dimension Salesmen: [ Team, Seller ]
Debug: Dimension Location. Loading time: 1 ms. Dimension Size: 27
Debug: Levels for dimension Location: [ Country, City ]
Debug: Measures dimension created with 8 measures: [ [<measures>][<measures>][Units Sold], [<measures>][<measures>][Gross Amount],
[<measures>][<measures>][Discount], [<measures>][<measures>][Net Amount], [<measures>][<measures>][Commissions],
[<measures>][<measures>][Cost], [<measures>][<measures>][Revenue], [<measures>][<measures>][% Profit] ]
Trace: Config: No storage provided
Trace: Config: No storage provided
Trace: Verificando el certificado.
Debug: Metadata Size on disk: 23655, cube file size: 192731
Debug: XML runtime descriptor not found: java.io.FileNotFoundException: C:\IdeaSoft\o3bi\files\Demo.cubedir\descriptor.xml (El sistema no puede encontrar la ruta especificada)
Trace: FIN
Notificaci¾n: Measures mapping:
Notificaci¾n: Measure #1 - Units Sold
Notificaci¾n: Measure #2 - Gross Amount
Notificaci¾n: Measure #3 - Discount
Notificaci¾n: Measure #4 - Net Amount
Notificaci¾n: Measure #5 - Commissions
Notificaci¾n: Measure #6 - Cost
Notificaci¾n:
Notificaci¾n: Phases:
Notificaci¾n: Phase: 0
Notificaci¾n: Base Level: 0 - [ 0, 0, 0, 0, 0 ] - 1270 - 18
Notificaci¾n: Redundancy Level: 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
Notificaci¾n:
Notificaci¾n: FULL OK |
El log muestra que existe un nivel de redundancia de nombre "1" definido como [1,1,1,1,1] (fue el que se agrego agregó 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 éste no tenga redundancia, es el llamado nivel base, sobre el cual se resuelven todas las consultas del cubo cuando no tiene redundancia)
El ninvel nivel de redundancia "1" esta está planificado.
Ejemplo 3
RedunMgr -debug -cmnd=updateAll C:\IdeaSoft\o3\installations\O3_3.3.000o3bi\files\Demo.cube -debug
Construye todos los niveles de redundancia que esten planificados.
Code Block |
---|
...... Fase: Construyendo Fases de Redundancia. Fase: Fase 0, se procesaron 0 tuplas ... Debug: Building phase #0, base: [ 0, 0, 0, 0, 0 ], measures: [ T, T, T, T, T, T] Debug: Building phase 0, redundancy levels: 1 Fase: Fase 0 lista. Se procesaron 1.270 tuplas. Notificaci¾n: Fases de Redundancia construidas. Debug: Closing RandomAccessPool ... Debug: RandomAccessPool closed successfully. Notificaci¾n: FULL OK |
Después de ejecutarlo el comando "show" muestra lo siguiente:
Code Block | ||
---|---|---|
| ||
...... Trace: Config: No storage provided Trace: Config: No storage provided Trace: Verificando el certificado. Debug: Metadata Size on disk: 23665, cube file size: 246237 Debug: XML runtime descriptor not found: java.io.FileNotFoundException: C:\IdeaSoft\o3bi\files\Demo.cubedir\descriptor.xml (El sistema no puede encontrar la ruta especificada) Trace: FIN Notificaci¾n: Measures mapping: Notificaci¾n: Measure #1 - Units Sold Notificaci¾n: Measure #2 - Gross Amount Notificaci¾n: Measure #3 - Discount Notificaci¾n: Measure #4 - Net Amount Notificaci¾n: Measure #5 - Commissions Notificaci¾n: Measure #6 - Cost Notificaci¾n: Notificaci¾n: Phases: Notificaci¾n: Phase: 0 |
...
Notificaci¾n: Base Level: 0 - [ 0, 0, 0, 0, 0 |
...
] - 1270 - 18
Notificaci¾n: Redundancy Level: 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 BucketsCount: 8
Notificaci¾n:
Notificaci¾n: FULL OK |
Muestra dos cosa:
- 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)
...
- 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"