Mientras las reglas TM1 en IBM
Cognos TM1 son relativamente fáciles de escribir y validar, y el impacto de la
utilización de un lenguaje simple de negocios para integrar cálculos complejos
en un modelo de negocio es fácil de apreciar, los Feeders son mucho menos
visibles y, sin embargo puede tener un impacto muy importante en la precisión y
el rendimiento de un modelo.
Entonces, ¿qué son los Feeders
de TM1? Básicamente, TM1 explota un algoritmo único "Hyper-Sparsity",
que permite a su motor de consolidación ignorar las celdas vacías. Esta es una
característica muy útil cuando la mayoría de las celdas en un cubo evalúan a
cero. Los Feeders se utilizan para desencadenar banderas contra reglas
calculadas en "celdas hojas", también conocidos como Base o puntos de
datos de "N-Level", lo que podría contener un valor que debe ser
incluido para la agregación en una jerarquía TM1. Feeders funcionan a partir de
celdas de origen que son "visibles" para el motor de consolidación
TM1, y más a menudo que no, tienen un impacto en el cálculo resultante también.
Si una celda calculada no se alimenta, el motor de consolidación TM1 asume que
las células carecen de valor y "salta" la comprobación de ellos. Esta
es una razón clave por la TM1 supera a sus competidores cuando se trata de la
consolidación de cálculos complejos en vastos (todavía escasa) modelos de
negocio, que a su vez permite una navegación rápida y el análisis "qué
pasaría si", dando a los usuarios la ventaja competitiva de ser ágil.
Bueno, entiéndase que los
Feeders no son sólo "otro tipo de regla", que unimos con nuestros
cálculos valiosos. Sí, Reglas y Alimentadores TM1 a menudo vienen en pares,
pero la comprensión de Alimentadores da un desarrollador de la libertad para
construir mejor, más rápido, más fuerte.
Es importante resaltar que no
todos los cálculos necesitan ser alimentados! Las Reglas de TM1 aplicadas a
nivel consolidado (también conocido como "nivel C"), es decir,
métricas calculadas, evaluarán si ellos mismos no dependen de la agregación de
elementos de hoja o nodos, aunque (por la totalidad), incluso la agregación
puede ser forzado a través del uso de la función
"ConsolidateChildren". La única razón por la que podría alimentar a
una regla de nivel C sería para atender la supresión de cero, pero esto significa
necesariamente un uso óptimo de la memoria ram.
Pero antes de discutir cómo construir
Feeders correctamente, vamos a considerar el impacto que generan unos Feeders
mal elaborados.
Hay tres estados de
alimentación en un modelo TM1:
1.
Sub
Alimentado
2.
Perfectamente
Alimentado
3.
Sobre
Alimentado
Sin la implementación de los
alimentadores correctos para la consolidación de un modelo, o
"Subalimentación" del mismo, es insoportable porque la exactitud de
los cálculos se verá comprometida. Si una empresa no puede confiar en sus
números, ¿cómo se supone que los tomadores de decisiones puedan dirigir la
compañía de forma acertada?
"Perfectamente Alimentado"
se produce cuando sólo las celdas que contienen datos calculados (que deben ser
agregados) se activan para la consolidación, y ningún otra celda lo hace. Si
bien esta es la situación ideal, la Alimentación Perfecta rara vez se logra
debido a la escala y la granularidad que se puede lograr en nuestros modelos.
"Sobrealimentación"
se produce cuando todas las células que se suman son alimentados (para que
nuestros cálculos sean exactos), y a su vez otras áreas en nuestros cubos
pueden ser alimentados en exceso también. ¿Por qué es importante? La
sobrealimentación resulta en una fuga de rendimiento, ya que se necesita más
tiempo para consolidar lo que son efectivamente las celdas vacías. Además, TM1
es una tecnología en memoria, y La sobrealimentación puede dar lugar a una
explosión de la memoria. En los modelos grandes, los cubos pueden llegar a ser
de muchos, muchos gigabytes.
Así que ¿por qué habríamos de
sobrealimentar? En esencia, usamos la Sobrealimentación como una técnica para
evitar Subalimentación! Con un motor de cálculo rápido como IBM Cognos TM1, la
Sobrealimentación debe ser utilizada con extrema precaución. Cuando los modelos
son muy grandes y la información se convierte en explosiva, La
sobrealimentación puede tener un impacto tal que un modelo de negocio puede ser
inútil, e incluso puede bloquear el servidor. La sobrealimentación, sin el
debido cuidado, puede afectar negativamente el rendimiento y la estabilidad del
modelo de negocio, que a su vez puede crear problemas de confianza para el
cliente que ha invertido su tiempo, dinero y reputación en IBM Cognos TM1.
TM1
Feeder Syntaxis
A continuación, vamos a cubrir
la sintaxis básica de Alimentadores en IBM Cognos TM1. Si ya está familiarizado
con esto, deje que esta sección sirva de repaso y sea no más que una visión
rápida. Así que vamos a empezar...
Las sentencias de Feeders se
compilan en el archivo de reglas TM1 (.RUX) del cubo TM1 que contiene los datos
de origen que hacen referencia a nuestras celdas calculadas. Cuando se trata de
simple alimentación interna, una declaración alimentador tiene la siguiente
forma abreviada:
[Region de Origen]
=> [Region de Destino];
La "Región de Origen"
denota un área en nuestro cubo donde queremos establecer nuestras
desencadenantes o disparadores y el "Región de destino" define un
mapa para los alimentadores para activar banderas contra nuestras celdas
calculadas mediante reglas. El estilo de estas definiciones de área es conocido
como Referencia Interna de Cubo. El símbolo "=>" se lee como
"feeds" y separa las dos zonas (origen y de destino) de la sintaxis. El
punto y coma al final del Feeder se utiliza como un salto de línea para la
sintaxis.
Múltiples regiones de destino
pueden ser alimentadas en conjunto por una misma fuente de origen:
[Region de Origen] => [Region de Destino 1]; [Region de Destino 2];
El formato anterior es útil
cuando nuestros requisitos de "mapeo", del origen al destino, son
simples. Los Alimentadores Inter-cubo, y
aquellos que necesitan ser evaluados cuando se compila (o al
"run-time"), tendrán que ser formado utilizando la referencia
completa de la zona de destino:
[Region de Origen] => DB( Region de Destino, Target Dim Ref 1, …, Target Dim Ref N);
La función "DB
inter-cubo" de forma de referencia es intercambiable con referencias internas
en un cubo, donde los requisitos de alimentación son simples (es decir, ninguna
asignación variable), y puede ser usada de la misma manera cuando se alimenta a
varios objetivos.
Reglas
Vs Feeders.
A continuación, vamos a tener
una breve discusión sobre cómo los Feeders en TM1 difieren de sus reglas en "contraparte".
Mientras los cálculos o reglas
de TM1 utilizan "modificadores" para indicar el nivel al que un
cálculo se ha aplicado, por ejemplo, "N" para los cálculos de nivel
de base y "C:" para los miembros consolidados, los Alimentadores o
Feeders se aplican siempre en el nivel de hoja, y del mismo modo, alimentan a
un conjunto de puntos de datos de destino que son también en el nivel de hoja.
Las Reglas en TM1 tienen la
flexibilidad de realizar evaluaciones utilizando constantes, funciones y / o
fórmulas que hacen referencia a otros puntos de datos. Los Alimentadores, por
otro lado, deben siempre apuntar a las celdas hoja. Sin embargo, al igual que
las reglas de TM1, los alimentadores también se pueden configurar para evaluar
condicionalmente.
Como nota final, mientras que
las reglas TM1 puede resultar en relativamente inofensivas "Referencia
circular" si no está correctamente configurado, una referencia circular en
un Feeder colgará el servidor, lo cual bloqueará el servidor hasta que se
elimine el archivo de Reglas.
… Happy Feeding!