Está en la página 1de 4

CUBOS.

qxd 10/15/03 11:18 AM Page 52

FERNANDO TRIVERI
.sql DESARROLLADOR WEB PROFESIONAL
ferni@tectimes.com

« DATA WAREHOUSING CON


SQL SERVER 2000 ENTERPRISE

EL ANALISIS DE INFORMACION A GRAN ESCALA PARA LA TOMA DE as bases de datos tradicionales


DECISIONES A NIVEL CORPORATIVO REQUIERE DE UN NUEVO TIPO
DE PROGRAMAS QUE MODIFICAN LOS CONCEPTOS CLASICOS SOBRE
L han sido diseñadas para obte-
ner el máximo rendimiento en
EL FUNCIONAMIENTO DE UNA BASE DE DATOS. CONOZCAN LA la ejecución de transacciones; es decir,
FUNCION DE ESTE COMPONENTE DE SQL SERVER 2000 ENTERPRISE en el alta, modificación y baja de regis-
Y COMO UTILIZARLO EN PROCESOS DE DATA WAREHOUSING. tros. Esta modalidad, conocida como
OLTP (Online Transaction Processing,
procesamiento de transacciones en línea),

CUBOS DE
resulta imprescindible para la manipula-
ción de grandes volúmenes de datos.
El problema surge cuando se desea anali-
zar la información para la toma de deci-
siones corporativas. Las consultas a las

DATOS CON
bases de datos son lentas e ineficaces,
incluso usando los motores más poten-
tes, cuando hay que revisar cientos de
miles o millones de registros, una situa-

ANALYSIS
ción frecuente en las grandes empresas.
El análisis de información a gran escala,
conocido también como Data Warehou-
sing, ofrece un sistema alternativo de
procesamiento de datos conocido como

SERVICES
OLAP (Online Analytical Processing, pro-
cesamiento analítico en línea). OLAP
proporciona un acercamiento diametral-
mente opuesto al propulsado por OLTP, y
en consecuencia, para aprender a utili-
zarlo tendremos primero que modificar
nuestros conceptos adquiridos sobre el
GRAFICO #1 almacenamiento de la información en
ESTA REPRESENTACION GRAFICA DE UN CUBO MULTIDIMEN- REFERENCIAS bases de datos.
UNIDADES
SIONAL MUESTRA COMO SE PERCIBEN REALMENTE LOS DATOS,
SUS DIMENSIONES Y SUS JERARQUÍAS ASOCIADAS. MEDIDAS IMPORTE OLAP VERSUS OLTP
El sistema clásico de bases de datos es
Buenos Aires transaccional. Su objetivo es realizar in-
Argentina
SUCURSALES La Plata
serciones, actualizaciones y eliminacio-
D.F. nes de los datos tan rápido como sea po-
México
Cancún
sible. Entonces, se evita el almacena-
miento de datos redundantes o que pue-
Invest. y
Desarrollo dan derivarse de la información de otros
datos (por ejemplo, totales de ventas).
Dpto.
Costos Sistemas Los datos se separan en tablas diferentes,
Operativos
Marketing
que se relacionan entre sí por campos
clave. La estructura de un sistema OLTP
INGRESOS NETOS
Gastos está diseñada para absorber el flujo per-
Fijos manente de la información procesada.
Ventas OLAP, por su parte, se encuentra en la
Ventas Brutas
Netas vereda opuesta. En este sistema, la base
Costo de los de datos (o Data Warehouse) está rela-
Productos
Vendisos cionada con el almacenamiento de da-
1er 2do 3er 4to tos agregados, que surgen del cálculo
Trimestre Trimestre Trimestre Trimestre
de otros datos. Por ejemplo: ¿cuántos
1er Semestre 2do Semestre productos se vendieron ayer?, ¿cuántos
se vendieron el mes pasado?, ¿cuáles
fueron las ventas de este mes con res-
PERIODO pecto al mes anterior?, ¿qué tal fueron
las ventas de la semana pasada en rela-
52 POWERUSR
CUBOS.qxd 10/15/03 11:18 AM Page 53

EN OLAP, LA BASE DE DATOS


ESTA RELACIONADA CON EL
ALMACENAMIENTO DE DATOS
AGREGADOS, QUE SURGEN
DEL CALCULO DE OTROS DATOS.

ción con la misma semana del año ante-


rior? Aunque estas preguntas pueden
responderse usando un sistema OLTP, la
recuperación de los datos resulta engo-
rrosa debido al número de tablas vincu-
ladas y a la enorme cantidad de registros
que deben revisarse hasta obtener un to-
tal. Para acelerar la ejecución de estas
consultas, los sistemas OLAP desnorma-
lizan los datos; es decir, almacenan in-
formación redundante, junto con totales
ya calculados. Por ejemplo, se pueden
guardar los totales de venta de los pro- MEDIANTE EL EXAMINADOR DE CUBOS SE PUEDEN ANALIZAR LOS DATOS AGREGANDO
ductos con respecto al día de ayer, la se- O QUITANDO DIMENSIONES Y TAMBIEN CONSULTANDO LA INFORMACION EN LOS
mana pasada, el mes pasado y el último DIFERENTES NIVELES JERARQUICOS.
año, de manera que ya estén calculados
y se puedan recuperar sin tener que su-
mar nuevamente los registros. Estos da- tres o más. Por ejemplo, para responder a la pregunta ¿cuáles son
tos redundantes son conocidos como las ventas mensuales por producto y por región?, para obtener la
agregaciones. celda que contiene cada dato se necesita la intersección de tres di-
La actualización de los sistemas OLAP no mensiones: tiempo, producto y región. Esta estructura se puede
se produce generalmente en tiempo real, imaginar como un cubo, y es así como se denominan los equiva-
ya que, por ejemplo, para obtener el to- lentes de las tablas en OLAP.
tal de ventas del día hay que esperar a Esta es, entonces, la primera gran diferencia entre OLAP y OLTP:
que el día termine. Por lo tanto, OLTP y las celdas son referencias desde tres o más dimensiones. Pero
OLAP no son excluyentes sino comple- también existen otras diferencias importantes: por ejemplo, la cel-
mentarios: son las bases de datos tran- da de una tabla tradicional sólo contiene un dato, mientras que la
saccionales las que alimentan regular- celda de un cubo de datos puede contener más de un dato alma-
mente de datos a las bases OLAP, las cenado (podrían ser, por ejemplo, la cantidad de ventas realizadas,
cuales luego son procesadas para obtener el importe total de las ventas y las utilidades obtenidas). Cada
información para la toma de decisiones. uno de los datos contenidos en estas celdas se conoce como me-
La versión Enterprise de Microsoft SQL dida y pueden surgir como resultado del cálculo de otros valores
Server 2000 incluye una herramienta pa- de una base de datos OLTP.
ra Data Warehousing denominada Un aspecto importante sobre las dimensiones de un cubo de datos
Analysis Services, que proporciona una es que normalmente tienen una jerarquía de datos incorporada.
solución muy eficaz y económica con Por ejemplo, la dimensión temporal comienza generalmente en
respecto a los productos de otros compe- años, luego en trimestres, meses, semanas y, por último, en días
tidores, como Oracle o Informix. Con individuales. Las dimensiones geográficas también suelen ser es-
Analysis Services, la creación, manteni- tructuras jerárquicas: se puede dividir el mundo entero en países,
miento y administración de sistemas y luego en provincias, ciudades y barrios.
OLAP es una tarea relativamente sencilla Si una dimensión tiene una estructura jerárquica, ¿cómo es el cu-
y que brinda excelentes resultados para bo exactamente? Se puede imaginar como cubos dentro de cubos,
las pequeñas y medianas empresas. dentro de cubos. Obviamente, la visualización es cada vez más
compleja, y si el cubo posee más de tres dimensiones, resulta im-
CUBOS DE DATOS, posible de dibujar o explicar, pero no es tan difícil de imaginar.
DIMENSIONES Y MEDIDAS Sólo hay que darse cuenta de que si se está en el nivel mes de la
Se puede pensar en una tabla tradicional dimensión temporal, existen ciertas medidas para cada uno de
como si fuese un plano de dos dimensio- ellos. Si se desciende a una semana determinada, se tienen las
nes, filas y columnas. Las filas están re- mismas medidas, calculadas para dicha semana. El gran potencial
presentadas por los registros; las colum- de OLAP consiste, justamente, en que se pueden calcular las me-
nas, por los campos, y la celda con el didas en todos los niveles jerárquicos de todas las dimensiones de
dato que deseamos obtener se encuentra los cubos de datos.
en la intersección de la dimensión fila
(registro) y columna (campo).
En el caso de los sistemas OLAP, la cues-
tión se complica, porque no estaremos
trabajando con dos dimensiones, sino con
POWERUSR
«
53
CUBOS.qxd 10/15/03 11:18 AM Page 54

UTILIZANDO CONOCIMIENTOS AVANZADOS DE PROGRAMACION, ES POSIBLE DESARROLLAR SISTEMAS QUE REALICEN LAS TAREAS
DE CONSULTA Y ANALISIS DE LA INFORMACION CONTENIDA EN LOS CUBOS, INCLUSO A TRAVES DE LA WEB, POR MEDIO DE UN BROWSER
Y DE UNA APLICACION DEL TIPO CLIENTE/SERVIDOR.

CREACION DE LOS CUBOS DE DATOS tipo de archivo de información. Luego de


Analysis Services presenta entre sus opciones un asistente para la definir la tabla de hechos que habrá de
creación de cubos de datos. Así como una base de datos incluye di- utilizarse, se seleccionan las medidas o da-
versas tablas que contienen datos afines, un sistema de Data Ware- tos numéricos que serán representados por
housing puede estar compuesto de varios cubos, cada uno de ellos cada celda del cubo. Finalmente, se deben
con cierto tipo de información, y que pueden compartir (o no) deter- indicar las dimensiones correspondientes,
minadas dimensiones. que pueden crearse específicamente para
El asistente de Analysis Services es muy sencillo de usar. En primer cada cubo o bien compartirse entre varios
término, se debe determinar la tabla de hechos, o el conjunto de de ellos si es necesario.
datos que se utilizará para el contenido de los cubos. La tabla de Una vez creado el cubo (un proceso que
hechos puede ser una tabla o una vista SQL de una base de datos, lleva pocos minutos), éste se puede grabar
aunque también puede usarse una planilla de Excel o cualquier otro y procesar, para generar las agregaciones y
poblar las celdas con los totales obtenidos
a partir de la tabla de hechos y las medi-
das asignadas. El proceso del cubo deberá
realizarse periódicamente, para mantener
actualizados sus datos, con una frecuencia
que será determinada por el administrador
del sistema de acuerdo con las característi-
cas de los datos almacenados.

EXTRACCION DE DATOS
Y VISUALIZACION
Resulta virtualmente imposible represen-
tar en la pantalla de una computadora un
conjunto multidimensional de datos. Lo
que suele hacerse es tomar una “rodaja”
del cubo y extraer los datos en dos di-
mensiones. Luego, al hacer clic sobre
cualquiera de los ejes, se pueden observar
los datos de los niveles jerárquicos supe-
riores e inferiores.
El Examinador de cubos de Analysis Ser-
vices es, quizá, la manera más simple y di-
recta de analizar la información contenida
en los cubos de datos. Aunque no se trata
de una herramienta para el usuario final,
EL EDITOR DE CUBOS DE ANALYSIS MANAGER SIRVE PARA MODIFICAR Y VISUALIZAR LA
ESTRUCTURA DE LOS CUBOS DE DATOS, SUS COMPONENTES (DIMENSIONES, MEDIDAS, ETC.) sino que más bien se utiliza para explorar
Y TAMBIEN LOS DATOS QUE CONTIENE. los cubos y asegurarse de que el diseño de
su estructura sea el deseado, resulta muy
54 POWERUSR
CUBOS.qxd 10/15/03 11:18 AM Page 55

*
SI UNA DIMENSION TIENE UNA ESTRUCTURA JERARQUICA, ¿COMO ES EL CUBO
EXACTAMENTE? SE PUEDE IMAGINAR COMO CUBOS DENTRO DE CUBOS, DENTRO
DE CUBOS. OBVIAMENTE, LA VISUALIZACION ES CADA VEZ MAS COMPLEJA, Y SI
EL CUBO POSEE MAS DE TRES DIMENSIONES, RESULTA IMPOSIBLE DE DIBUJAR
O EXPLICAR, PERO NO ES TAN DIFICIL DE IMAGINAR.

práctica y efectiva como una primera GRAFICO #2


aproximación al análisis de un cubo.
MODELO DE OBJETO ADO MD. ADO MD INCLUYE REFERENCIAS
En el Examinador, las dimensiones se OBJETOS NO SOLO PARA LA CONSULTA Y LA
arrastran con el mouse hacia el área del EXPLORACION DE LOS DATOS, SINO TAMBIEN
reporte, para establecer filtros y selec- PARA OBTENER INFORMACION SOBRE LA OBJETO COLECCION
ESTRUCTURA DE LOS CUBOS A LOS QUE SE ACCEDE.
cionar la información deseada.
Los cubos de datos también se pueden
visualizar con otros programas, como Catalog
Microsoft Excel, o con soluciones espe-
cíficas como ProClarity de Konsys Cub Def Cub Def
(www.knosync.com). Pero la opción más
interesante consiste en desarrollar Dimension Dimension
nuestras propias aplicaciones para exa-
minar los cubos, incluso desde la Web, Hierarchy Hierarchy
a través de un browser.
Para hacerlo, Microsoft ha desarrollado Cell Level Level
una versión especial de OLE DB para
OLAP. Así como existe ADO sobre OLE Cell Member Member
DB, Microsoft ha implementado el obje-
to ADO MD (ActiveX Data Objects Mul- Position Position
tidimensional) sobre OLE DB para
OLAP. ADO MD es similar a ADO en Axis Axis
varios aspectos: se conecta a una fuen-
te de datos, ejecuta instrucciones contra Position Position
dicha fuente y devuelve resultados que
se pueden leer y visualizar.
Member Member
Por supuesto, existen ciertas diferen-
cias. La fuente de datos en ADO MD
es un cubo presentado mediante
Analysis Services. Para las instruccio-
nes no se utiliza el lenguaje SQL, si- Así como en las bases de datos tradicionales se recurre al objeto Command y al
no que se ha creado un lenguaje para lenguaje SQL para efectuar una consulta, aquí se utilizan el objeto Cellset y
consultas multidimensionales denomi- MDX. Este es un lenguaje de consulta similar a SQL, pero con una estructura di-
nado MDX, que como resultado de- ferente. El aprendizaje de MDX requiere de mucha paciencia, además de eliminar
vuelve conjuntos de celdas en lugar parte de lo que se conoce sobre SQL. Cabe destacar que aunque MDX es un len-
de conjuntos de registros. guaje desarrollado por Microsoft, su objetivo es que pueda utilizarse para acceder
Los principales objetos ADO (Connec- a los datos desde cualquier producto para almacenamiento de datos.
tion, Command y Recordset) tienen su La recuperación de datos es algo más compleja que con ADO. Con el objeto ADO
contrapartida en ADO MD. El objeto Recordset, se obtiene una estructura tabular con filas y columnas, mientras que
Catalog es el equivalente al primero de con ADO MD, las consultas devuelven objetos Cellset, que almacenan datos en un
estos objetos, si bien además de esta- formato multidimensional: arrays de arrays de arrays.
blecer la conexión con la fuente de da- La programación de estos objetos puede llevarse a cabo desde cualquier herra-
tos (tal como hace su “primo” Connec- mienta visual de Microsoft (Visual Basic, Visual C++) así como desde ASP y, por
tion), también sirve para analizar la es- supuesto, desde las herramientas de programación .NET.
tructura de los cubos de datos.
Una vez establecida la conexión con el CONCLUSION
objeto Catalog, podemos encontrarnos Esta nota no pretende más que ponerlos en conocimiento de esta poderosa
con uno o más cubos definidos. A cada aplicación, y esperamos que haya cumplido con su objetivo. Analysis Services
uno de ellos se le asigna un objeto es una herramienta compleja y rica que puede utilizarse para el diseño de sis-
CubeDef, con los detalles de su confi- temas de apoyo a la toma de decisiones, así como sistemas de Data Warehou-
guración. A su vez, cada objeto CubeDef sing de mediana y gran envergadura. Su uso supone modificar muchos de los
incluye una colección Dimensions, que conceptos asociados a las bases de datos tradicionales, pero su potencial es
alberga un objeto Dimension por cada enorme, y su aplicación, sobre todo en sistemas de visualización a través de
dimensión en un cubo. Cada una de la Web, permite obtener el máximo provecho de la información acumulada
estas dimensiones posee un objeto por las organizaciones ■
Hierarchy, para definir la estructura
jerárquica de cada dimensión.
POWERUSR 55

También podría gustarte