Manual Lab 2016-II 00 Inteligencia de Negocios (0561)
Manual Lab 2016-II 00 Inteligencia de Negocios (0561)
Manual Lab 2016-II 00 Inteligencia de Negocios (0561)
Negocios
(Laboratorio)
INTELIGENCIA DE NEGOCIOS
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
ndice
Presentacin
Red de contenidos
5
7
Unidad de Aprendizaje 1
:
:
:
:
:
8
9
9
11
16
18
18
20
25
25
Unidad de Aprendizaje 2
37
38
38
40
49
65
70
72
72
81
99
99
107
113
113
122
Unidad de Aprendizaje 3
129
130
130
131
131
147
150
159
175
INTELIGENCIA DE NEGOCIOS
3.2 Tema 8
3.2.1
3.2.1.1
3.2.1.2
3.2.1.3
3.2.1.4
3.2.1.5
:
:
:
:
:
:
:
Proceso de carga
Diseo de proceso de carga
Mapeo de Datos
Estrategia de manejo de errores
Estandarizacin y limpieza de datos
Relacionando Dimensiones y grupos de medida
Creacin y Desarrollo de Proyecto SSIS
200
200
200
201
205
205
206
Unidad de Aprendizaje 4
208
209
209
209
213
214
227
4.2 Tema 10
4.2.1
4.2.2
4.2.2.1
4.2.2.2
4.2.2.3
4.2.2.4
:
:
:
:
:
:
:
229
229
231
232
235
239
239
4.3 Tema 11
4.3.1
4.3.1.1
4.3.1.2
4.3.1.3
4.3.1.4
4.3.2
:
:
:
:
:
:
:
243
243
243
247
253
253
254
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
Presentacin
Una buena toma de decisiones debe estar soportada en un anlisis exhaustivo de la
realidad. La importancia de tener diversas perspectivas del negocio es imprescindible.
El presente manual, desarrolla la manera de implementar una solucin analtica
basada en un proceso de datawarehousing. Las herramientas empleadas permiten
que el usuario (quien toma las decisiones), tenga diversas formas de ver su realidad y
lo ms importante es que le permite a l mismo crear sus propias perspectivas de su
realidad. Para esto se desarrolla un ejemplo completo de implementacin de una
solucin OLAP, desde la definicin de los indicadores (signos vitales de una
organizacin), pasando por el modelamiento analtico, la implementacin de
estructuras conocidas por cubos (vista analtica personalizada al usuario) hasta la
explotacin de datos en herramientas Office y su publicacin en Internet.
Este material esta unidades de aprendizaje. Cada unidad tiene objetivos, contenidos y
actividades que permitirn afianzar el logro de los objetivos.
Las unidades de aprendizaje han sido elaboradas, tambin, sobre la base de diversos
textos sobre el tema y publicaciones en Internet que aparecen en la bibliografa del
curso. Estos resmenes, en algunos casos, contienen copias literales de fragmentos
de estas fuentes, los cuales han sido complementados con comentarios del autor para
un mejor entendimiento del tema.
Se recomienda la lectura del material de la unidad correspondiente antes de asistir a
clase, con el fin de fomentar la discusin del tema y facilitar la comprensin del mismo.
INTELIGENCIA DE NEGOCIOS
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
Red de contenidos
DATA WAREHOUSING
INDICADORES
ARQUITECTURA
ANLISIS DE
REQUERIMIENTO
Y FUENTES
ACCESO AL
DATA
WAREHOUSE
MODELAMIENTO
Y
DISEO
CONSULTAS
OLAP MINERIA
DE DATOS
POBLANDO EL
DATA
WAREHOUSE
BIG DATA
HADOOP
MACHINE
LEARNING
METADATOS
METODOLOGA
CONSTRUCCIN
INTELIGENCIA DE NEGOCIOS
UNIDAD
1
APLICACIONES MICROSOFT DE
INTELIGENCIA DE NEGOCIOS
LOGRO DE LA UNIDAD DE APRENDIZAJE
Al trmino de la unidad, el alumno conocer de forma preliminar las
herramientas de Business Intelligence de Microsoft.
TEMARIO
1.1 Tema 1
1.1.1
1.1.2
1.1.3
:
:
:
:
Introduccin
SQL Server como herramienta de diseo de soluciones de BI
Revisin de los servicios SSAS, SSIS, SSRS y SQL Server Agent
Revisin del Data Warehouse AdventureWors 2014
1.2 Tema 2
1.2.1
1.2.2
1.2.3
1.2.4
:
:
:
:
:
ACTIVIDADES PROPUESTAS
1. Los alumnos reconocen las herramientas Microsoft para BI.
2. Los alumnos reconocen el DW Adventure Works 2014
3. Los alumnos identifican Cubos OLAP.
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
INTRODUCCIN
1.1.1. SQL Server como herramienta de soluciones BI
Microsoft, empresa visionaria en Inteligencia de negocios proporciona las siguientes
herramientas para soluciones de Inteligencia de Negocios:
SQL Server Integration Services.Herramienta ETL que permite la extraccin, transformacin y carga de datos.
SSIS es una plataforma para la construccin de soluciones de integracin de datos de
alto rendimiento, incluyendo la extraccin, transformacin y paquetes de carga (ETL)
para el almacenamiento de datos. SSIS incluye herramientas y asistentes para la
construccin y depuracin grficas de paquetes; tareas para llevar a cabo las
funciones de flujo de trabajo, tales como operaciones de FTP, ejecutar sentencias
SQL, y el envo de mensajes de correo electrnico; la extraccin y carga de datos;
transformaciones, limpieza, agregacin, fusin y copia de datos.
SQL Server Analysis Services.Herramienta OLAP que permite la creacin de Cubos de Informacin y Datamining.
SSAS es la herramienta de Microsoft Business Intelligence, para desarrollar soluciones
de procesamiento analtico en lnea (OLAP). En trminos simples, se puede utilizar
para crear cubos SSAS a partir de datos de data marts / almacn de datos para el
anlisis de datos ms profundos y ms rpidos. Los cubos son las fuentes de datos
multidimensionales que tienen dimensiones y hechos (tambin conocidas como
medidas) como componentes bsicos. Desde una perspectiva relacional dimensiones
pueden ser considerados como tablas maestras y los hechos pueden considerarse
detalles medibles.
SQL Server Reporting Services.Herramienta Enterprise Reporting que satisface los 3 niveles del ciclo de vida de
reportes empresariales: Creacin, Administracin y Envo.
INTELIGENCIA DE NEGOCIOS
10
SQL Server Reporting Services ofrece una gama completa de herramientas y servicios
para crear, implementar y administrar informes para el negocio. Reporting Services
incluye caractersticas de programacin que permite ampliar y personalizar la
funcionalidad de informes.
Reporting Services es una plataforma de informes basada en servidor que proporciona
una completa funcionalidad de informes para una variedad de fuentes de datos.
Reporting Services incluye un conjunto completo de herramientas para crear,
administrar y entregar informes y as tambin APIs que permiten a los desarrolladores
procesar informes con aplicaciones personalizadas.
Master Data
Services.-
Servicio de maestro de datos que consolida las tablas principales en un solo servidor.
Master Data Services (MDS) es la solucin de SQL Server para la gestin de datos
maestros. Gestin de datos maestros (MDM) describe los esfuerzos realizados por
una organizacin para descubrir y definir listas no transaccionales de datos, con el
objetivo de compilar listas maestras mantenibles. Un proyecto de MDM generalmente
incluye una evaluacin y reestructuracin de los procesos de negocio internos junto
con la implementacin de la tecnologa MDM. El resultado de una exitosa solucin
MDM es de datos fiables y centralizados que puede ser analizada, lo que resulta en
mejores decisiones para el negocio.
Data Quality Services.Servicio de calidad de datos.
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
11
1.1.2. Revisin de los servicios SSAS, SSIS, SSRS, SQL Server Agent
Para trabajar con las herramientas Business Intelligence de Microsoft se debe tener
activado los servicios:
Hacer click en Inicio, todos los programas, Microsoft SQL Server 2014, Herramientas
de Configuracin, Administracin de configuracin SQL Server 2014.
Aparecer una ventana donde se verificar que los servicios estn iniciados o
ejecutndose.
INTELIGENCIA DE NEGOCIOS
Servicio
12
Cundo se inicia
Analysis Services
Una instancia de Analysis Services
(Nombre de la instancia
predeterminada:MSSQLServerOLAPService debe iniciarse para que los
usuarios puedan iniciar sesin en
esa instancia.
Nombre de la
instancia:MSOLAP$InstanceName)
SQL Server
(Nombre de la instancia
predeterminada:MSSQLServer
Nombre de la
instancia:MSSQL$InstanceName)
Si el almacenamiento relacional de
Analysis Services se almacena en
SQL Server, o si la reescritura se
ha configurado para SQL Server, el
servicio de SQL Server que aloja
los datos relacionales debe
iniciarse antes de que Analysis
Services pueda obtener acceso a
los datos del almacenamiento
relacional o volver a escribir datos
al almacn relacional.
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
13
INTELIGENCIA DE NEGOCIOS
14
Puede especificar cualquier valor para el identificador de instancia, pero evite los
caracteres especiales y las palabras clave reservadas.
Puede especificar un identificador de instancia no predeterminado durante la
instalacin de SQL Server. En lugar de <Archivos de programa>\Microsoft SQL Server,
se usa una <ruta de acceso personalizada>\Microsoft SQL Server, si el usuario decide
cambiar el directorio de instalacin predeterminado. Tenga en cuenta que no se
admiten identificadores de instancia que comienzan por un subrayado (_) o que
contienen el signo de almohadilla (#) o el signo de dlar ($).
Integration Services y los componentes de cliente no reconocen las instancias y, por
consiguiente, no tienen asignado un identificador de instancia. De forma
predeterminada, los componentes que no reconocen las instancias se instalan en un
nico directorio: <unidad>:\Archivos de programa\Microsoft SQL Server\120\. Si
cambia la ruta de instalacin de un componente compartido, cambiar tambin la de
los dems componentes compartidos. Las instalaciones posteriores instalan
componentes que no reconocen instancias en el mismo directorio que la instalacin
original.
SQL ServerAnalysis Services es el nico componente de SQL Server que permite
cambiar el nombre de las instancias despus de la instalacin. Si se cambia el nombre
una instancia de Analysis Services, el identificador de la instancia no cambiar.
Despus de completarse el cambio de nombre de la instancia, los directorios y claves
del Registro continuarn utilizando el identificador de instancia creado durante la
instalacin.
El subrbol del Registro se crea debajo de HKLM\Software\Microsoft\Microsoft SQL
Server\<Instance_ID> para los componentes dependientes de la instancia. Por
ejemplo,
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
15
La ruta de instalacin solo aparece para las caractersticas cuya carpeta de destino
puede configurar el usuario:
Componente
Ruta de acceso
configurable o fija
Componentes
de
\Archivos de programa\Microsoft SQL
servidor de Motor
Configurable
Server\MSSQL12.InstanceID<>\
de base de datos
Archivos de datos
\Archivos de programa\Microsoft SQL
de Motor de base
Configurable
Server\MSSQL12.InstanceID<>\
de datos
Servidor Analysis
Services
Archivos de datos
de
Analysis
Services
Servidor
de \Archivos de programa\Microsoft SQL
informes
de Server\MSRS12.<InstanceID>\Reporting Configurable
Reporting Services Services\ReportServer\Bin\
Administrador
de
informes
de
Reporting Services
Integration Services
Componentes
cliente
(excepto
bcp.exe
y
sqlcmd.exe)
Componentes
cliente (bcp.exe y
sqlcmd.exe)
Configurable
<Directorio
de
instalacin>\Client
Ruta de acceso fija
SDK\ODBC\110\Tools\Binn
SQL
de
Server\120\ Ruta de acceso fija
DLL
de
componentes
de
Integration Services
del motor en tiempo
de ejecucin de
<unidad>:\Archivos
transformacin de
programa\Microsoft
datos, el motor de
DTS\Binn
canalizacin
de
transformacin de
datos y la utilidad
de smbolo del
sistemadtexec
SQL
de
Server\120\ Ruta de acceso fija
DLL
que
proporcionan
<unidad>:\Archivos
compatibilidad con programa\Microsoft
la
conexin DTS\Connections
administrada para
SQL
de
Server\120\ Ruta de acceso fija
INTELIGENCIA DE NEGOCIOS
16
Integration Services
<unidad>:\Archivos de
programa\Microsoft SQL Server\120\
DTS\ForEachEnumerators
Servicio Explorador
de SQL Server,
proveedores WMI
<unidad>:\Archivos de
programa\Microsoft SQL Server\120\
Shared\
Componentes que
se comparten entre
todas las instancias
de SQL Server
<unidad>:\Archivos de
programa\Microsoft SQL Server\120\
Shared\
Basado en 13
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
17
Comentado: 10 opiniones
2015 porDerrickVMSFT
Descargas: 3745
INTELIGENCIA DE NEGOCIOS
18
Cuota de Ventas
Contiene datos de cuota de ventas de los representantes de ventas.
Soporta el grupo de medida Sales Quota.
Las tablas de ventas por Internet han tenido una tendencia a apoyar escenarios de
minera de datos, mientras que las otras mesas se han tendido a apoyar escenarios
OLAP.
Escenarios de Minera de Datos
La tendencia en la base de datos AdventureWorksDW2014 soporta los siguientes
escenarios de minera de datos:
Prediccin: Apoya el escenario de un analista que investiga el crecimiento de
modelos de bicicletas por el tiempo y la regin.
Targeted Mailing Campaa: Apoya el escenario de un analista de la aplicacin
de diversos algoritmos de minera de datos para Adventure Works datos de
ventas de los clientes y de Internet para determinar los atributos demogrficos
de los clientes que estn dispuestos a comprar una bicicleta. El analista puede
entonces aplicar el modelo de minera de datos a una lista de clientes
potenciales con el fin de determinar qu clientes tienen ms probabilidades de
responder a un correo directo que promueve Adventure Works bicicletas.
Market Basket Analysis: Apoya el escenario de un desarrollador crea una
solucin cesta de mercado que sugiere un producto basado en otros productos
que ya existen en un carrito de la compra a los clientes.
Clsteres de secuencia: Apoya el escenario de un analista de la investigacin
de la secuencia en la que los clientes ponen artculos en un carrito de compras.
Estos escenarios y la tendencia en el almacn de datos se demuestran en el tutorial
de minera de datos en SQL Server Libros en pantalla y en el proyecto de ejemplo
Adventure Works DW.
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
19
Una vez que la informacin ha sido consolidada y transferida al Data Mart (donde
reside el esquema STAR o SNOWFLAKE), puede ser enviada a repositorios
multidimensionales. SQL Server 2014 implementa el almacenamiento multidimensional
a travs de los Servicios de Anlisis (SQL Server Analysis Services, o SSAS).
Los repositorios multidimensionales se denominan cubos. Estos permiten efectuar
consultas muy complejas sobre grandes conjuntos de datos, con alto rendimiento y
velocidad. Los datos se encuentran totalizados y precalculados, lo cual permite
obtener un tiempo de respuesta reducido para consultas que implican clculos sobre
grandes volmenes de informacin
Un cubo se define a partir de una tabla de hechos y una o varias tablas de dimensin.
Las medidas (measures) de la tabla de hechos se convertirn en las medidas del
cubo. Las dimensiones del cubo se definen a partir de las tablas de dimensin. Por
ejemplo, un cubo de ventas puede tener las medidas Precio_Producto y
Costo_Producto, provenientes de la tabla de hechos Sales_Fact. Estas medidas se
cruzan con las dimensiones Almacn,
Lnea_de_Producto y Ao_Fiscal. Las consultas efectuadas sobre este cubo
permitiran obtener la evolucin del precio de un producto a lo largo del tiempo, por
almacn y lnea de producto.
Veamos la ilustracin:
INTELIGENCIA DE NEGOCIOS
20
Cada dimensin en un cubo tiene uno o varios niveles (levels). Los niveles
representan agrupaciones jerrquicas al interior de una dimensin; por ejemplo, la
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
21
Los componentes bsicos de un cubo son las dimensiones (dimensions), los miembros
(members), (estos dos componentes provienen de las tablas dimensionales) y las
celdas (cells) (que provienen de la tabla de hechos).
Dimensiones (dimensions)
Cada dimensin en un cubo representa una perspectiva desde la cual los usuarios
consultan y analizan los datos. Desde un punto de vista grfico, se puede afirmar que
las dimensiones corresponden con los ejes del cubo. Por ejemplo, se desea un reporte
que nos muestre las ventas por Producto, Tiempo y Ubicacin, ellas representan las
dimensiones de un cubo. En la figura superior, podemos ver la representacin grfica
de las dimensiones Productos (en el eje vertical), Tiempo (en el eje horizontal) y
Ubicacin (en el eje que atraviesa perpendicularmente esta pgina).
Niveles (levels)
Los niveles representan los grados de sumarizacin de una dimensin. Por ejemplo, la
dimensin Tiempo puede contener los niveles Ao, Mes y Da.
Miembros (members)
Cada ocurrencia particular en una dimensin est representada por un miembro. Por
ejemplo, en la figura los miembros de la dimensin Productos son Uvas, Fresas,
Melones, Manzanas y Peras. Los miembros de la dimensin Ubicacin son Loreto,
Lima y Cuzco.
INTELIGENCIA DE NEGOCIOS
22
Celdas (cells)
Una celda est definida por una interseccin de las dimensiones del cubo. En la figura,
la celda de color blanco representa la interseccin de los miembros T4 (Tiempo),
Fresas (Productos) y Cuzco (Ubicacin).
SQL Server 2014 introduce muchas mejoras respecto de las caractersticas existentes
en Analysis Services 2000. A continuacin se enumeran algunas de estas mejoras:
Utilizacin de UDM: Los cubos de SQL Server 2012 son, en realidad, definiciones
escritas a travs del Unified Dimensional Modeling (UDM). El UDM permite
especificar la estructura del cubo (dimensiones y medidas) en un archivo XML que
contiene tanto la data del cubo como su metadata. (Estructura).
Mejoras en Data Mining. Contra los dos modelos de data mining soportados en la
versin 2000, SSAS 2014 presenta siete modelos de data mining. Esto permite a
las empresas llegar a un grado muy alto de compresin de la informacin del
negocio. Por otro lado, SSAS incluye el lenguaje de consulta DMX (Data Mining
Expressions), para consultar la informacin de los modelos de Data Mining.
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
23
Con el entorno de desarrollo SQL Server Data Tools, se crean proyectos de Analisys
Services, a travs de los cuales se define la estructura de los cubos en una solucin
de
Business Intelligence.
Algunas de las mejoras respecto de la herramienta existente en la versin 2000 de
SQL Server son las siguientes:
INTELIGENCIA DE NEGOCIOS
24
Para definir cubos en el SQL Server Data Tools, se debe crear un proyecto de tipo
Analysis Services Project.
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
25
INTELIGENCIA DE NEGOCIOS
26
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
27
INTELIGENCIA DE NEGOCIOS
28
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
29
9. Pulse el botn Next. En la ventana final del asistente, establezca el nombre del
nuevo data source a AWDataMart. Pulse el botn Finish para finalizar el
asistente.
10. En el Solution Explorer, seleccione el nodo Data Source Views. Haga un clic
derecho, y seleccione la opcin New Data Source View.
11. Aparecer la ventana inicial del asistente de creacin de vistas de orgenes de
datos. Pulse el botn Next.
12. La siguiente ventana mostrar la lista de data sources existentes en el proyecto
de anlisis. En el lado izquierdo de la ventana, seleccione el data source
AWDataMart, y pulse el botn Next.
13. La siguiente ventana mostrar las tablas y vistas disponibles en el data source
AWDataMart. Se deben seleccionar aquellas tablas y vistas que conformarn
el data source view. Seleccione las siguientes tablas con el botn >.
INTELIGENCIA DE NEGOCIOS
30
FactResellerSales
FactInternetSales
DimTime
DimSalesTerritory
DimReseller
DimPromotion
DimProductCategory
DimProductSubCategory
DimProduct
DimGeography
DimEmployee
DimCustomer
DimCurrency
14. Pulse el botn Next. Aparecer la ventana final del asistente. Establezca el
nombre del nuevo data source view a AWDataMart_DSView. Pulse el botn
Finish.
15. Observe el entorno de diseo. Todas las definiciones de las tablas han sido
copiadas al Data Source View, y se muestran de forma grfica:
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
31
Build the cube using a data source: Esta opcin obtiene las definiciones del
cubo a partir de la estructura existente en una base de datos, donde reside un
esquema STAR o SNOWFLAKE. Si se selecciona la opcin Auto build, el
asistente analizar la estructura de las tablas, y detectar automticamente las
tablas de hechos y tablas de dimensin. Adems, el asistente podr determinar
cules sern los niveles que se agregarn a las dimensiones. Si la opcin Auto
build no se selecciona, el desarrollador definir manualmente la estructura del
cubo.
Build the cube without using a data source: Esta opcin permite que el
desarrollador defina la estructura del cubo sin necesidad de elegir un data
source view. Posteriormente, a partir de la estructura propuesta por el
desarrollador, SSAS generar las definiciones del STAR o SNOWFLAKE.
SSAS provee dos plantillas de diseo: una de ellas es compatible con las
caractersticas de la versin Enterprise Edition, y la otra con las opciones
disponibles en la versin Standard Edition.
INTELIGENCIA DE NEGOCIOS
32
4. La siguiente ventana permite elegir el data source view que se utilizar para
definir la estructura del cubo. Asimismo permite elegir las tablas que contienen
las medidas de nuestro datamart. Presione el botn Suggest para que el
asistente nos sugiera las tablas de hechos. Observe que la tabla DimReseller
ha sido identificada como tabla de hechos. Para corregir esto, desmarque el
checkbox. Luego pulse el botn Next.
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
33
5. La siguiente ventana permite determinar cules son las medidas que tendr el
cubo. En SSAS, las medidas se agrupan en Measure Groups (grupos de
medidas). Existe un measure group por cada tabla de hechos del cubo.
Observe que, en el cubo que est construyendo, existen dos measure groups:
uno para la tabla FactResellerSales y otro para la tabla FactInternetSales.
Cada columna numrica de las tablas de hechos es reconocida como
potenciales medidas del cubo. Desmarque todos los checkboxes de la ventana.
Bajo el measure group Fact Reseller Sales, seleccione las medidas Order
Quantity, Discount Amount, Sales Amount, Tax Amt y Freight. Bajo el
measure group Fact Internet Sales, seleccione las medidas Order Quantity
Fact Internet Sales, Discount Amount Fact Internet Sales, Sales Amount
Fact Internet Sales, Tax Amt Fact Internet Sales y Freight Fact Internet
Sales.
INTELIGENCIA DE NEGOCIOS
34
Pulse el botn Next. Aparecer la ventana final del asistente. Establezca el nombre del
nuevo cubo a Ventas.
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
35
Una vez finalizado el diseo del cubo, se debe crear fsicamente el cubo en un
servidor de anlisis. Este proceso, conocido como deployment, consiste en la
generacin de un script que se enviar a un servidor de anlisis, y que generar el
cubo y sus dimensiones. A continuacin, se efectuar el procesamiento del cubo.
Durante la fase de procesamiento, el servidor de anlisis se conecta con el data
source donde residen las tablas de hechos y las tablas de dimensin, y extrae su
informacin para poblar el cubo.
INTELIGENCIA DE NEGOCIOS
36
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
37
INTELIGENCIA DE NEGOCIOS
38
UNIDAD
2
IMPLEMENTANDO SOLUCIONES
OLAP CON MICROSOFT SQL
SERVER
LOGRO DE LA UNIDAD DE APRENDIZAJE
Al trmino de la unidad, el alumno implementa cubos de anlisis definiendo
medidas, personalizando dimensiones e indicadores de rendimiento, utilizando
MS SQL Server Analysis Services.
TEMARIO
2.1 Tema 3
2.1.1
2.1.2
2.1.3
2.1.4
2.1.5
2.1.6
:
:
:
:
:
:
:
ACTIVIDADES PROPUESTAS
4.
5.
6.
7.
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
39
INTELIGENCIA DE NEGOCIOS
40
jerarqua llamada Ubicacin, cuyos niveles son Pas y Ciudad. Las jerarquas se
denotan con la notacin nombre_de_dimensin.nombre_de_jerarqua. Por ejemplo, la
jerarqua Ubicacin de la dimensin Ubigeo tendra la siguiente representacin:
Ubigeo.Ubicacin
Pas
Ciudad
Este diseo especifica que cada pas contiene varias ciudades, y cada ciudad se
encuentra en un solo pas.
La siguiente figura muestra las relaciones existentes entre miembros y niveles en la
dimensin UbiGeo:
Una dimensin puede contener varias jerarquas. Cada jerarqua definir una forma
distinta de agrupar y sumarizar la informacin de una dimensin. Existen entidades de
negocio que no tienen un nico criterio de agrupacin; por ejemplo, los clientes
pueden ser disgregados por su ubicacin geogrfica (pas, regin y ciudad) y tambin
por su gnero (masculino o femenino).
Ejemplo
Considrese el siguiente escenario
Se desea obtener indicadores de rendimiento de los empleados de la corporacin. Los
reportes de evaluacin de los empleados deben ser totalizados de acuerdo a las
divisiones organizacionales y regiones geogrficas de la corporacin. Cada empleado
trabaja para una divisin organizacional. A su vez, cada empleado pertenece a una
ciudad, y cada ciudad est contenida en una regin. Cul es la manera ms
adecuada de definir los niveles de la dimensin Empleado?
De acuerdo con el problema, se tienen dos maneras de disgregar la informacin de los
empleados: por divisin organizacional y por ubicacin geogrfica. No puede afirmarse
que las divisiones organizacionales estn contenidas en ubicaciones geogrficas, pues
pueden existir divisiones que se encuentren dispersas a travs de varios sitios
geogrficos. Por tanto, la estructura ms adecuada para la dimensin Empleado
consiste en definir dos jerarquas de la siguiente manera:
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
41
Empleado.Regin
Regin
Ciudad
Empleado
Empleado.Divisin
Divisin
Empleado
Relaciones entre los miembros de una dimensin
Existen ciertas relaciones de parentesco entre los miembros de una dimensin. Dichas
relaciones se basan en la posicin relativa de los miembros.
El siguiente grfico muestra los miembros de la
dimensin UbiGeo. Las relaciones que se pueden
identificar son las siguientes:
INTELIGENCIA DE NEGOCIOS
42
con las tablas de hechos. Slo puede existir un atributo de tipo Key en
una dimensin, y toda dimensin debe tener un atributo Key.
o Parent: El atributo se utiliza para definir una dimensin Parent Child.
o Regular: El atributo se utiliza slo para mostrar informacin.
Propiedad KeyColumns: Establece el identificador nico de los miembros de un
atributo. Dicho identificador puede estar compuesto por una o varias columnas
de la tabla de dimensin. Por ejemplo, el identificador del atributo Mes de la
dimensin Tiempo puede estar compuesto por las columnas Ao y
NumeroMes de la tabla de dimensin.
Propiedad NameColumn: Esta propiedad determina la columna de la tabla de
dimensin a partir de la cual se obtiene el valor que mostrarn los miembros de
un atributo. Por ejemplo, en de la dimensin Tiempo, la propiedad
NameColumn del atributo Mes puede apuntar hacia la columna NombreMes
de la tabla de dimensin.
Ejercicio 1
Cree las dimensiones PROMOTION y CURRENCY.
1. A travs del SQL Server Data Tools, abra el proyecto.AdventureWorksDataMart,
desarrollado en el captulo anterior.
2. En el Solution Explorer, ubique el cubo Ventas. Haga un clic derecho, y seleccione
la opcin Delete para eliminar el cubo.
3. En el Solution Explorer, seleccione la dimensin Dim Time. Haga un clic derecho,
y seleccione la opcin Delete para eliminar la dimensin. Repita este paso para
todas las dimensiones restantes.
4. En el Solution Explorer, seleccione el folder Dimensions. Haga un clic derecho, y
seleccione la opcin New Dimension. Esto iniciar el asistente para la creacin de
dimensiones. En la primera ventana del asistente, presione el botn Next.
5. La siguiente ventana permite definir el mtodo que se usar para construir la
dimensin. Mantenga la opcin por default Use an existing table.
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
43
6. Pulse el botn Next. La siguiente ventana permite elegir el data source view a partir
del cual se construir la dimensin. Seleccione el data source view
AWDataMart_DSView. Adicionalmente esta ventana tambin permitir definir las
propiedades KeyColumns y NameColumns. En la propiedad Main Table, elija la
tabla DimPromotion. En la propiedad Key Columns, seleccione la columna
PromotionKey. En la propiedad Column containing the member name, seleccione la
columna EnglishPromotionName.
7. Pulse el botn Next. La siguiente ventana permite definir atributos adicionales para
la dimensin. Seleccione las columnas Discount Pct, English Promotion Type y
English Promotion Category.
INTELIGENCIA DE NEGOCIOS
44
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
45
INTELIGENCIA DE NEGOCIOS
46
15. Repita los pasos anteriores para crear una nueva dimensin llamada Currency
(Moneda) con las siguientes configuraciones:
Tabla de Dimensin
Key Columns
Column containing
the member name
Atributos adicionales
Jerarqua
DimCurrency
Currency Key
Curency Alternate Key
Ninguno
Ninguna
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
47
INTELIGENCIA DE NEGOCIOS
48
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
49
INTELIGENCIA DE NEGOCIOS
50
10. Repita el paso (9) con la dimensin Currency para observar su data. Puede
observarse que no existe un miembro All en esta dimensin, debido a la
configuracin efectuada sobre la propiedad IsAggregatable.
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
51
INTELIGENCIA DE NEGOCIOS
52
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
53
INTELIGENCIA DE NEGOCIOS
54
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
55
INTELIGENCIA DE NEGOCIOS
56
END
11. En la tabla DimDate, cree un nuevo named calculation llamado Semester
basado en la siguiente expresin SQL:
Semester + CAST(CalendarSemester
CAST(CalendarYear AS CHAR(4))
AS
CHAR(1))
AS
CHAR(1))
La figura superior muestra la tabla DimEmployee. Esta tabla posee una relacin
recursiva, en la cual participan las columnas EmployeeKey y ParentEmployeeKey.
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
57
INTELIGENCIA DE NEGOCIOS
58
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
59
10. Guarde los cambios y efecte un deployment del proyecto. Observe los datos
de la jerarqua Dependency de la dimensin Employee:
INTELIGENCIA DE NEGOCIOS
60
El criterio fundamental para definir attribute relationships es que la relacin entre los
atributos sea uno muchos. Por ejemplo, para relacionar los atributos Ciudad y
Pas, es necesario que cada ciudad est contenida en un solo pas. Esta relacin
puede representarse de la siguiente forma:
Ciudad
Pas
Ejercicio:
1. En el Solution Explorer, haga doble clic sobre Product.dim.
2. En la pestaa Attribute Relationships, expanda el atributo Product Name. Este
es el atributo clave de la dimensin. Observe las relaciones que posee con los
dems atributos.
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
61
INTELIGENCIA DE NEGOCIOS
62
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
63
INTELIGENCIA DE NEGOCIOS
64
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
65
16. Seleccione el atributo Sales Territory Region y como siguiente paso cree una
relacin con el atributo Sales Territory Country.
17. Seleccione el atributo Sales Territory Country y a continuacin cree una
relacin con el atributo Sales Territory Group.
18. Grabe los cambios. Las relaciones creadas hasta este momento tienen como
objetivo optimizar el funcionamiento de las jerarquas definidas en las
dimensiones. A continuacin, se mostrar la creacin de una relacin para
configurar el ordenamiento de un atributo.
19. El atributo FullName de la dimensin Employee est formado por la
concatenacin del nombre y apellidos del empleado. Es deseable que los
miembros del atributo FullName no estn ordenados con base en el nombre,
sino en el apellido del empleado. En primer lugar, en el panel de origen de
datos, seleccione la columna LastName de la tabla DimEmployee, y
arrstrela bajo la dimensin Employee en el panel de atributos. De esta
manera, se agregar el atributo Last Name a la dimensin. Al finalizar, la
estructura de la dimensin Employee debe quedar de la siguiente manera:
INTELIGENCIA DE NEGOCIOS
66
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
67
Ejercicio:
Creacin de una Dimensin Time
1. Inicie la creacin de una nueva dimensin. En la ventana de seleccin del
mtodo de creacin de la dimensin, asegrese de que la opcin Use an
existing table est marcada.
2. En la siguiente ventana seleccione como Main Table la tabla DimDate, como
Key Column el atributo DateKey y como Name Column el atributo DateKey.
INTELIGENCIA DE NEGOCIOS
68
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
69
INTELIGENCIA DE NEGOCIOS
70
Observe que los meses estn ordenados de forma alfabtica, lo cual constituye un
error.
10. En el panel de origen de datos, seleccione la columna MonthNumberOfYear
de la tabla DimDate, y arrstrela hacia el panel de atributos, debajo de la
dimensin Time. De esta manera, se ha creado el atributo Month Number Of
Year en la dimensin.
11. Cada atributo adicional que se agrega a una dimensin eleva el tiempo de
procesamiento y el espacio en disco. Sin embargo, el atributo Month Number
Of Year no se utilizar directamente en las consultas; su nica finalidad es
servir como criterio de ordenacin para el atributo Month. Por tanto, se debe
eshabilitar el uso del atributo Month Number Of Year en las consultas. Para
esto, en el panel de atributos seleccione el atributo Month Number Of Year, y
en
la
ventana
de
propiedades,
establezca
su
propiedad
AttributeHierarchyEnabled a False.
12. A continuacin, se debe crear una relacin entre el atributo Month y el atributo
Month Number Of Year. Para esto, dirijase a la pestaa Attribute
Relationships y cree la relacin. Al final, la estructura debe quedar de la
siguiente manera:
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
71
Equal Areas: Examina los valores del atributo, y crea grupos que tienen igual
nmero de valores.
Clusters: Utiliza el algoritmo K Means para obtener los grupos a travs de
distribuciones de Gauss. Slo puede usarse con valores numricos.
Equal Ranges: Cada grupo obtenido corresponde con un rango de valores. Por
ejemplo, si se tienen valores entre 0 y 100, y la propiedad
DiscretizationBucketCout est establecida a 4, se generarn cuatro grupos:
(0 25, 26 50, 51 75, 76 100).
INTELIGENCIA DE NEGOCIOS
72
muestreo de los datos del atributo. Sin embargo, si se desea controlar el nmero de
grupos generados, puede establecerse esta propiedad a un nmero mayor que 0.
Debe tenerse en cuenta que es posible que, aun as, el algoritmo no produzca
exactamente el nmero de grupos deseado, pues esto depende de la distribucin
estadstica de la data.
Ejercicio:
Definir propiedades de agrupamiento en la Dimensin Product.
1. En el Solution Explorer, haga doble clic sobre Product.dim.
2. En el panel de origen de datos, seleccione la columna DealerPrice y
arrstrela sobre el panel de atributos, debajo de la dimensin Product. Haga
lo mismo con las columnas ListPrice y Weight. Al finalizar, la estructura de la
dimensin Product debe quedar de la siguiente manera:
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
73
Observe que los miembros del atributo Dealer Price son todos los valores que toma
esta columna en la tabla de dimensin. Por supuesto, sera ms conveniente que
SSAS generase rangos significativos con estos valores. Los siguientes pasos
configurarn este comportamiento.
4. En el panel de atributos, seleccione el atributo Dealer Price. En la ventana de
propiedades, establezca su propiedad DiscretizationMethod a Equal Areas, y
la propiedad DiscretizationBucketCount a 0.
5. En el panel de atributos, seleccione el atributo List Price. En la ventana de
propiedades, establezca su propiedad DiscretizationMethod a Equal Areas, y
la propiedad DiscretizationBucketCount a 0.
6. En el panel de atributos, seleccione el atributo Weight. En la ventana de
propiedades, establezca su propiedad DiscretizationMethod a Clusters, y la
propiedad DiscretizationBucketCount a 5.
7. Guarde los cambios y efecte un deployment del proyecto. A continuacin,
consulte la informacin del atributo Dealer Price. Observe los grupos
generados por SSAS.
INTELIGENCIA DE NEGOCIOS
74
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
75
INTELIGENCIA DE NEGOCIOS
76
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
77
Ejercicio
Crear el cubo de ventas a travs de Cube Editor
1. Desde el SQL Server Data Tools, abra el proyecto AdventureWorksDataMart.
En el Solution Explorer, seleccione la carpeta Cubes. Haga un clic derecho, y
seleccione la opcin New Cube.
2. Se iniciar el asistente para la creacin de cubos (Cube Wizard). Pulse el botn
Next para continuar.
3. La ventana siguiente permite seleccionar el mtodo de creacin del cubo. Debe
estar seleccionada la opcin Use existing tables.
INTELIGENCIA DE NEGOCIOS
78
5. La siguiente ventana muestra los measure groups y las medidas que pueden
definirse a partir de las columnas en las tablas de hechos. Slo deben estar
seleccionadas las columnas siguientes:
En el measure group Fact Reseller Sales
Order Quantity
Discount Amount
Sales Amount
Tax Amt
Freight
En el measure group Fact Internet Sales
Order Quantity Fact Internet Sales
Discount Amount Fact Internet Sales
Sales Amount Fact Internet Sales
Tax Amt Fact Internet Sales
Freight Fact Internet Sales
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
79
INTELIGENCIA DE NEGOCIOS
80
7. Pulse el botn Next. En la ventana final del asistente, establezca el nombre del
nuevo cubo a Sales:
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
81
INTELIGENCIA DE NEGOCIOS
82
13. Pulse el botn OK para aceptar. Se habr creado una nueva medida llamada
Reseller Sales Count en el measure group Reseller Sales. Esta medida
efecta un conteo de las filas de la tabla de hechos FactResellerSales.
14. A continuacin, repita el paso (13) para crear una nueva medida llamada
Internet Sales Count en el measure group Internet Sales. Esta medida debe
ser de tipo Count of rows. Al finalizar, la estructura de las medidas del cubo
Sales debe quedar de la siguiente manera:
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
83
Relacin regular.
Relacin referenciada.
Relacin fact.
Relacin many to many.
El tipo de relacin entre las dimensiones y los measure groups se determina a travs
del tab Dimension Usage en el diseador de cubos.
Relacin regular
Las relaciones regulares constituyen el tipo ms frecuente de relacin. En una relacin
regular, la tabla de dimensin se encuentra directamente relacionada a travs de una
relacin de tipo primary key foreign key. La siguiente figura muestra una relacin de
este tipo entre DimPromotion y FactInternetSales:
La siguiente figura muestra las caractersticas de la relacin entre la dimensin
Promotion y el measure group Internet Sales:
INTELIGENCIA DE NEGOCIOS
84
Una tabla de hechos puede contener tres columnas que lo enlacen con la
dimensin de tiempo: una columna para almacenar la fecha de facturacin, otra
para almacenar la fecha de remisin, y otra para almacenar la fecha de
entrega.
Una tabla de hechos puede contener dos columnas enlazadas con la
dimensin de empleados: una columna para representar al empleado que
efectu la venta, y otra para representar al empleado que efectu el despacho.
En SQL Server 2000, este tipo de requerimiento slo poda satisfacerse duplicando las
tablas de dimensin, o creando vistas a partir de la tabla de dimensin (en los
ejemplos anteriores, la solucin hubiera consistido en crear tres tablas de dimensin
para el tiempo y dos tablas de dimensin para los empleados; o en crear tres vistas a
partir de la tabla de dimensin de tiempo y dos vistas a partir de la tabla de
empleados).
En cambio, SSAS 2014 provee soporte natural a las situaciones de Role Playing. En
SSAS 2014, la misma dimensin puede participar mltiples veces en el mismo cubo.
Por ejemplo, la dimensin Empleado puede participar dos veces en el cubo Ventas,
con los nombres Empleado vendedor y Empleado despachador.
Ejercicio
Visualizar relaciones de tipo Role Playing en el cubo Sales
1. La siguiente figura muestra las relaciones existentes entre la tabla DimDate y
las tablas FactInternetSales y FactResellerSales.
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
85
Obsrvese que cada tabla de hechos tiene tres relaciones con la tabla de dimensin
DimDate. Estas relaciones estn definidas en tres columnas distintas de cada tabla
de hechos: las columnas OrderDateKey (fecha de emisin de orden), DueDateKey
(fecha esperada) y ShipDateKey (fecha de embarque de la orden). Esto significa que
la dimensin Time juega tres roles distintos con cada tabla de hechos.
2. En el Solution Explorer, haga doble clic sobre el cubo Sales para abrir el
diseador de cubos.
3. En la parte superior del diseador de cubos, seleccione el tab Dimension
Usage (es el segundo tab, inmediatamente despus del tab Cube Structure).
Este tab muestra las relaciones existentes entre las tablas de hechos del cubo
y las dimensiones.
INTELIGENCIA DE NEGOCIOS
86
Obsrvese que cada measure group est relacionado con cada dimensin a travs de
un atributo que los une. Por ejemplo, la dimensin Sales Territory y el measure
group Reseller Sales estn relacionados por el atributo Sales Territory Region.
4. Note la presencia de las tres relaciones con la dimensin Time: Time (Due
Date), Time (Ship Date) y Time (Order Date). Seleccione la interseccin
entre Time (Due Date) y Reseller Sales. Pulse el botn
. Aparecer una
ventana que muestra los detalles de la relacin existente entre la dimensin
Time y el measure group Reseller Sales:
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
87
Obsrvese que, en este caso, la relacin entre la dimensin Time y el measure group
Reseller Sales se produce a travs de la columna DueDateKey, de la tabla de
hechos FactResellerSales. Pulse el botn Cancel.
5. Seleccione la interseccin entre Time (Ship Date) y Reseller Sales. Pulse el
botn
.
Obsrvese que, en este caso, la relacin entre la dimensin Time y el measure group
Reseller Sales se produce a travs de la columna ShipDateKey, de la tabla de
hechos FactResellerSales. Pulse el botn Cancel.
INTELIGENCIA DE NEGOCIOS
88
Obsrvese que, en este caso, la relacin entre la dimensin Time y el measure group
Reseller Sales se produce a travs de la columna OrderDateKey, de la tabla de
hechos FactResellerSales. Pulse el botn Cancel.
El asistente de creacin de cubos gener automticamente estas relaciones debido a
que, en el origen de datos, existen tres relaciones de foreign key entre la tabla
DimDate y la tabla de hechos FactResellerSales: una relacin a travs de la
columna DueDateKey, otra a travs de la columna ShipDateKey, y otra a travs de
la columna OrderDateKey.
7. Repita los pasos anteriores para visualizar las relaciones existentes entre la
dimensin Time y el measure group Internet Sales.
Relacin referenciada (referenced relationship)
Una relacin referenciada se produce cuando la tabla de dimensin no est
directamente relacionada con la tabla de hechos. En esta situacin, la relacin se
produce a travs de una tabla de dimensin intermedia, como se muestra en la figura
superior.
Este tipo de situaciones corresponde con lo que tpicamente se llama Dimensin
Snowflake. Sin embargo, el enfoque de relacin referenciada provee mayor
flexibilidad en el diseo de las dimensiones. Por ejemplo, vase el siguiente diseo:
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
89
Puede construirse una dimensin de tipo Snowflake con atributos provenientes de las
tablas DimGeography y DimReseller. Esta dimensin podr conectarse sin
problemas con la tabla de hechos FactResellerSales. Sin embargo, no podr
relacionarse con la tabla de hechos FactInternetSales, pues, como puede verse en la
siguiente figura, no existe ninguna relacin entre DimReseller y FactInternetSales:
Ejercicio
Crear relaciones referenciadas.
INTELIGENCIA DE NEGOCIOS
90
entre
las
tablas
Obsrvese que no existe una relacin directa entre las tablas DimGeography y
FactResellerSales, sino que estn relacionadas a travs de una dimensin
intermedia: la tabla DimReseller. La columna que relaciona a DimReseller y
DimGeography es la columna GeographyKey.
2. Como primer paso, en el proyecto AdventureWorksDataMart cree una nueva
dimensin llamada Geography con las siguientes especificaciones:
Tabla de dimensin principal: DimGeography
Tablas de dimensin snowflake: ninguna
KeyColumns: GeographyKey
NameColumn: City
Atributo clave: Renombrarlo como City.
Atributos adicionales
Atributo
State Province Name
Country Region Name
CARRERA DE COMPUTACIN
Columna origen
DimGeography.StateProvinceName
DimSalesTerritory.EnglishCountryRegionName
INTELIGENCIA DE NEGOCIOS
91
Jerarquas
Jerarquas
Geographic Location
Niveles
Country Region Name
State Province Name
City
3. En el Solution Explorer, haga doble clic sobre el cubo Sales para abrir el
diseador de cubos.
4. En el panel de dimensiones, haga clic derecho sobre el cubo Sales.
Seleccione la opcin Add Cube Dimension.
INTELIGENCIA DE NEGOCIOS
92
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
93
INTELIGENCIA DE NEGOCIOS
94
12. La siguiente figura muestra las relaciones existentes entre las tablas
DimGeography, DimCustomer y FactInternetSales:
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
95
INTELIGENCIA DE NEGOCIOS
96
Observe que la clave primaria est formada por las columnas SalesOrderNumber y
SalesOrderLineNumber. La columna SalesOrderNumber almacena el nmero del
documento de orden de venta. Este es un caso de dimensin degenerada; es decir,
en la tabla de hechos existe informacin que no corresponde con medidas ni tampoco
con claves forneas provenientes de tablas de dimensin.
2. En el proyecto AdventureWorksDataMart, inicie la creacin de una nueva
dimensin. En la ventana de seleccin del mtodo de creacin de la dimensin,
asegrese de que el checkbox Use an existing table est marcado.
3. Contine con el asistente. En la ventana de seleccin de la tabla de dimensin,
seleccione la tabla FactInternetSales. En la propiedad KeyColumns,
seleccione las columnas SalesOrderNumber y SalesOrderLineNumber. En
la propiedad Name Column, seleccione la columna SalesOrderNumber.
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
97
INTELIGENCIA DE NEGOCIOS
98
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
99
Observe que se ha generado de manera automtica una relacin de tipo Fact. Pulse el
botn Cancel.
Relacin muchos a muchos (many to many)
En las relaciones estudiadas hasta este momento, se asume que una dimensin tiene
una relacin uno muchos con las tablas de hechos. Por ejemplo, un cliente (un
registro en DimCustomer) puede tener muchas ventas (varios registros en
FactResellerSales); pero cada venta corresponde con un solo cliente.
Sin embargo, existen situaciones en las cuales las dimensiones tienen relaciones de
tipo muchos muchos con las tablas de dimensin. Por ejemplo, vase la imagen
superior.
La tabla DimSalesReason almacena motivos de venta. Como puede deducirse de la
figura, la relacin entre DimSalesReason y FactInternetSales es de tipo muchos
muchos: cada venta (un registro en FactInternetSales) puede tener mltiples motivos
de venta (registros en DimSalesReason). Y, anlogamente, cada motivo de venta
puede estar relacionado con mltiples ventas. En este diseo, la relacin muchos
muchos se implementa a travs de la tabla FactInternetSalesReason, que relaciona
los registros de FactInternetSales con los registros de DimSalesReason.
SSAS 2014 provee un tipo especial de relacin que permite implementar relaciones de
muchos a muchos entre las tablas de hechos y las tablas de dimensin. Vase la
siguiente figura:
INTELIGENCIA DE NEGOCIOS
100
Las tablas Fact Table, Regular Dimension e Intermediate Fact Table deben estar
relacionadas en el data source view. De lo contrario, no se podr definir la relacin
muchos muchos.
Ejercicio:
Crear una relacin many to many en el cubo Sales.
1. En el proyecto AdventureWorksDataMart, en el Solution Explorer, haga doble
clic en el data source view AWDataMart_DSView.
2. Haga un clic derecho sobre cualquier lugar del diseador de data source views.
Seleccione la opcin Add/Remove Tables. Aada al data source view las tablas
FactInternetSalesReason y DimSalesReason. Al finalizar, grabe los
cambios.
3. La siguiente figura muestra las relaciones existentes entre las tablas
FactInternetSales, FactInternetSalesReason y DimReason:
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
101
NameColumn: SalesReasonName
Atributo clave: Renombrarlo como Reason.
Atributos adicionales
Atributo
Type
Columna origen
DimSalesReason.SalesReasonReasonType
Jerarquas
Jerarquas
Sales Reasons
Niveles
Type
Reason
INTELIGENCIA DE NEGOCIOS
102
7. Pulse el botn OK para aceptar. Este measure group tendr como nico
objetivo relacionar al measure group Internet Sales (basado en la tabla
FactInternetSales) con la dimensin Sales Reason (basado en la tabla
DimSalesReason).
8. En el panel de medidas, seleccione el measure group Fact Internet Sales
Reason. Seleccione la medida Fact Internet Sales Reason Count y
establezca, en la ventana de propiedades, su propiedad Visible a False.
9. En el panel de Dinmensions, haga clic derecho sobre el cubo Sales y
seleccione la opcin Add Cube Dimension. Seleccione la dimensin Sales
Reason.
10. Seleccione el tab Dimension Usage. Obsrvese que se ha creado
automticamente una relacin regular entre la dimensin Sales Reason y el
measure group Fact Internet Sales Reason. Sin embargo, no hay relacin
entre la dimensin Sales Reason y el measure group Internet Sales.
11. Seleccione la interseccin entre la dimensin Sales Reason y el measure
group Internet Sales. Pulse el botn
. Se abrir la ventana de definicin de
relaciones. En la propiedad Select relationship type seleccione el tipo Many
to Many. En la propiedad Intermediate measure group, seleccione el
measure group FactInternetSalesReason.
12. Pulse el botn OK. Observe que se ha creado una relacin de tipo many to
many entre la dimensin Sales Reason y el measure group Internet Sales,
representada por el smbolo
:
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
103
INTELIGENCIA DE NEGOCIOS
104
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
105
Los miembros calculados son muy tiles para definir nuevas medidas con funciones
personalizadas de clculo. En estos casos, los miembros calculados deben asignarse
a la dimensin Measures. Por ejemplo, puede utilizarse la siguiente expresin MDX en
la definicin del miembro calculado Valor Descontado en la dimensin Measures.
Measures.[Sales Amount] Measures.[Discount Amount]
Los miembros calculados proveen gran flexibilidad para implementar lgica
personalizada de clculo; sin embargo, penalizan la performance de las consultas,
debido a que son calculados por el servidor en tiempo de ejecucin. Es una prctica
recomendable evitar la complejidad en la escritura de miembros calculados, y tener en
cuenta la cantidad de celdas que sern procesadas durante la ejecucin del clculo.
Ejercicios
1. Con el Sql Server Data Tools, abra el proyecto AdventureWorksDataMart. En
el Solution Explorer, haga doble clic en el cubo Sales.
2. En el diseador de cubos, seleccione el tab Calculations (es el tercero
empezando por la izquierda). Los miembros calculados se crean en este tab.
INTELIGENCIA DE NEGOCIOS
106
([Measures].[Sales Amount],
parallelperiod([Order Date].[Calendar].currentmember.level, 1,
[Order Date].[Calendar].currentmember))
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
107
INTELIGENCIA DE NEGOCIOS
108
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
109
Observe que existen varias celdas para las cuales el valor de Discount Amount es 0.
Se desea modificar esta medida de acuerdo a la siguiente regla de negocio: si el valor
de Discount Amount para algn miembro de la jerarqua Geography.Geographic
location en el ao 2004 es 0, su valor cambiar automticamente para ser el 10% del
valor de la medida Sales Amount.
Efecte los siguientes pasos:
1. En el diseador de cubos, seleccione el tab Calculations.
2. Pulse el botn
del toolbar del tab Calculations. Este botn muestra la vista
de script de todas las expresiones de clculo creadas en el cubo. Note que en
el script mostrado estn las expresiones correspondientes con los miembros
calculados creados en el ejercicio anterior.
INTELIGENCIA DE NEGOCIOS
110
La sentencia SCOPE(ROOT()) tiene como objetivo fijar el mbito al root del cubo; es
decir, a todos los miembros All o miembros por defecto en el caso de dimensiones no
agregables (por ejemplo, Currency). La segunda sentencia SCOPE expresa un
subcubo, es decir, un subconjunto del cubo. Este subcubo est formado por la
interseccin de la medida Discount Amount, el miembro 2004 de la jerarqua Order
Date.Calendar, todos los miembros de la jerarqua Geography.Geographic location y
todos los miembros de la jerarqua Currency.Currency Name. La expresin que
sigue:
THIS=CASE
WHEN [Measures].[Discount Amount] = 0 THEN [Measures].[Sales Amount]*0.1
ELSE [Measures].[Discount Amount]
END;
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
111
INTELIGENCIA DE NEGOCIOS
112
CARRERA DE COMPUTACIN
para agregar un
INTELIGENCIA DE NEGOCIOS
113
2. Se abrir el editor de KPIs. En la propiedad Name del nuevo KPI, escriba KPI
Ventas Internet USA. En la propiedad Value Expression, escriba la siguiente
expresin MDX para obtener el valor de Internet Sales Amount en los Estados
Unidos:
([Measures].[Internet Sales Amount],
[Geography].[Geographic location].[Country Region Name].[United States])
3. En la propiedad Goal Expression, escriba la siguiente expresin MDX para
obtener el valor de Sales Amount para los Estados Unidos, multiplicado por
0.5:
0.5*([Measures].[Sales Amount],
[Geography].[Geographic location].[Country Region Name].[United States])
4. En la propiedad Status Indicator, seleccione el smbolo
end
INTELIGENCIA DE NEGOCIOS
114
6. Repita los pasos anteriores para crear un nuevo KPI con nombre KPI Ventas
Internet Francia. En la propiedad Value Expression, escriba la siguiente
expresin MDX para obtener el valor de Internet Sales Amount en Francia:
([Measures].[Internet Sales Amount],
[Geography].[Geographic location].[Country Region Name].[France])
7. En la propiedad Goal Expression, escriba la siguiente expresin MDX para
obtener el valor de Sales Amount para Francia, multiplicado por 0.5:
0.5*([Measures].[Sales Amount],
[Geography].[Geographic location].[Country Region Name].[France])
8. En la propiedad Status Indicator, seleccione el smbolo
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
115
10. Cree un nuevo KPI llamado KPI Ventas Internet. En la propiedad Value
Expression, escriba la siguiente expresin MDX para obtener la suma de los
valores de los KPIs creados en los pasos anteriores:
KPIVALUE("KPI Ventas Internet USA") + KPIVALUE("KPI Ventas Internet Francia")
11. En la propiedad Goal Expression, escriba la siguiente expresin MDX para
obtener el valor de la suma de los objetivos de los KPIs creados en los pasos
anteriores:
KPIGOAL("KPI Ventas Internet USA") + KPIGOAL("KPI Ventas Internet Francia")
12. En la propiedad Status Indicator, seleccione el smbolo
.
13. En la propiedad Status Expression, escriba la siguiente expresin MDX:
case
when KPIVALUE("KPI Ventas Internet") >= KPIGOAL("KPI Ventas Internet")
then 1
when KPIVALUE("KPI Ventas Internet") >= 0.9 * KPIGOAL("KPI Ventas
Internet")
then 0.75
when KPIVALUE("KPI Ventas Internet") >= 0.7 * KPIGOAL("KPI Ventas
Internet")
then 0.5
when KPIVALUE("KPI Ventas Internet") >= 0.5 * KPIGOAL("KPI Ventas
Internet")
then 0
else -1
end
INTELIGENCIA DE NEGOCIOS
116
14. En el lado izquierdo del editor de KPIs se encuentra el panel del KPI Organizer.
Seleccione el tem KPI Ventas Internet USA y, en el editor, expanda el cuadro
Additional Properties. En la propiedad Parent KPI, seleccione KPI Ventas
Internet.
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
117
Observe que en USA el indicador de status muestra que los objetivos de crecimiento
de ventas por Internet estn lejos de cumplirse. Sin embargo, esto muestra
informacin evaluada sobre la totalidad del cubo Sales. En la parte superior, en el
grid de seleccin de criterios, sobre la etiqueta <Select dimension> seleccione la
dimensin Order Date.
En la columna Hierarchy, seleccione la jerarqua Calendar. En la columna Operator,
seleccione el operador Equal, y en la columna Filter Expression, seleccione el ao
2004. Luego, haga un clic sobre el grfico que muestra los KPIs. Los valores
cambiarn de la siguiente forma:
Observe que la informacin de status mostrada por los KPIs muestra una clara mejora
en el ao 2004, respecto de los objetivos trazados para las ventas por Internet.
INTELIGENCIA DE NEGOCIOS
118
El servidor de Analysis Services detecta el lenguaje utilizado por el cliente que efecta
la consulta. Acto seguido, define los valores que se mostrarn a dicho cliente con base
en las traducciones definidas en la solucin. Por ejemplo, si un cliente se conecta
desde una PC configurada para el idioma espaol, visualizar los nombres de cubos,
medidas, dimensiones, etc. traducidos al espaol, de acuerdo con las equivalencias
definidas en las traducciones creadas en el proyecto de anlisis.
Se pueden crear dos tipos de traducciones.
Ejercicio:
Crear Traducciones en la solucin AdventureWorksDatamart
En el siguiente ejercicio, se definir una traduccin al espaol para el cubo Sales y la
dimensin Product. Tambin se definirn traducciones de los valores del atributo
Product Name.
1. Con el Sql Server Data Tools, abra el proyecto AdventureWorksDataMart. En
el Solution Explorer, haga doble clic en el cubo Sales.
2. En el diseador de cubos, seleccione el tab Translations (es el noveno
empezando por la izquierda). Las traducciones se crean en este tab.
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
119
3. En el toolbar del tab Translations, pulse el botn para iniciar la creacin de una
nueva traduccin.
Se abrir una ventana que permitir seleccionar el idioma de la traduccin.
Seleccione el idioma Spanish (Peru).
4. Pulse el botn OK. Observe que se ha creado una traduccin llamada Spanish
(Peru).
INTELIGENCIA DE NEGOCIOS
120
Nombre
Sales
Reseller Sales
Order Quantity
Discount Amount
Sales Amount
Tax Amt
Freight
Reseller Sales Count
Internet Sales
Internet Order Quantity
Internet Discount Amount
Internet Sales Amount
Internet Tax Amt
Internet Freight
Internet Sales Count
Traduccin
Ventas
Ventas por Distribuidor
Cantidad por Distribuidor
Descuento por Distribuidor
Monto por Distribuidor
Impuestos por Distribuidor
Flete por Distribuidor
Cantidad de Ventas por Distribuidor
Ventas por Internet
Cantidad por Internet
Descuento por Internet
Monto por Internet
Impuestos por Internet
Flete por Internet
Cantidad de Ventas por Internet
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
121
Nombre de Dimensin
Sales Territory
Currency
Due Date
Product
Ship Date
Promotion
Reseller
Order Date
Employee
Customer
Geography
Internet Sales
Reseller Sales
Sales Reason
Traduccin
Territorio de Ventas
Moneda
Fecha Programada
Producto
Fecha de Despacho
Promocin
Distribuidor
Fecha de Orden
Empleado
Cliente
Geografa
Ordenes por Internet
Ordenes por Distribuidor
Motivo de Compra
INTELIGENCIA DE NEGOCIOS
122
10. Consulte el cubo Sales a travs del tab Browser. En la propiedad Language,
seleccione el idioma Spanish (Peru) como se muestra en la siguiente figura:
11. Observe los cambios en los nombres del cubo, las medidas y las dimensiones.
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
123
INTELIGENCIA DE NEGOCIOS
124
Nombre
Traduccin
Product
Producto
All Products
Todos los productos
Product Name
Nombre de Producto
Description
Descripcin
Product Subcategory Name Subcategora de Producto
Product Category Name
Categora de Producto
Dealer Price
Precio en Distribuidor
List Price
Precio de Lista
Weight
Peso
Product Categories
Productos por Categora
All Products
Todos los productos
Product Category Name
Categora de Producto
Product Subcategory Name Subcategora de Producto
Product Name
Nombre de Producto
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
125
INTELIGENCIA DE NEGOCIOS
126
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
127
Un cubo de SQL Server Analysis Services 2012 puede ser definido a partir de
mltiples tablas de hechos y tablas de dimensin. Como resultado, se pueden
construir cubos de alta complejidad que combinen un gran nmero de medidas y
dimensiones. En estos casos, los usuarios finales pueden encontrar difcil navegar a
travs de la informacin del cubo. SSAS 2014 provee la capacidad de definir
perspectivas (perspectives) para facilitar esta interaccin.
Una perspectiva es un subconjunto de las medidas y dimensiones que componen un
cubo. Cada perspectiva es vista por el usuario final como un cubo distinto, en el cual
slo participan las medidas y dimensiones de su inters. De esta manera, la
complejidad del cubo subyacente queda oculta.
Las perspectivas controlan la visibilidad de los siguientes elementos:
Dimensiones
Atributos
Jerarquas
Grupos de medidas
Medidas
KPIs
Miembros calculados (calculated members) y sets con nombre (named sets)
Las perspectivas sirven para mejorar la interaccin del usuario final. No constituyen un
mecanismo de seguridad.
Ejercicio:
Crear Perspectivas en el cubo Sales.
En este ejercicio, se crear una perspectiva que contendr nicamente a las medidas
y dimensiones que estn relacionadas con las ventas a travs de Internet.
Efecte los siguientes pasos:
1. En el Solution Explorer, haga doble clic en el cubo Sales.
2. En el diseador de cubos, seleccione el tab Perspectives (es el octavo
empezando por la izquierda). Las perspectivas se crean en este tab.
INTELIGENCIA DE NEGOCIOS
128
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
129
8. Guarde los cambios y despliegue la solucin. Consulte el cubo a travs del tab
Browser.
9. En la lista de cubos, observe que se encuentran las perspectivas Ventas
(correspondiente con la totalidad del cubo) y Internet Sales Perspective.
Seleccione la perspectiva Internet Sales Perspective.
10. Observe que slo estn presentes las medidas y dimensiones que fueron
marcadas como pertenecientes a la perspectiva Internet Sales Perspective.
INTELIGENCIA DE NEGOCIOS
130
Acciones
Las acciones (actions) son comandos que pueden ser ejecutados para presentar
informacin adicional a los usuarios mientras navegan en un cubo. Permiten
profundizar el nivel de anlisis de la informacin. Por ejemplo, un usuario puede
observar un valor bajo en una medida de ventas al consultar el cubo. Para encontrar la
causa de esto, puede disparar una accin que muestre el detalle de las facturas que
estn detrs de dicha cifra, o un reporte que muestre informacin detallada sobre la
evolucin de las ventas.
Las acciones son implementadas a travs de sentencias MDX que producen
comandos, los cuales pueden ser ejecutados desde el cliente que efecta la consulta
sobre el cubo. SQL Server Analysis Services 2014 permite crear los siguientes tipos
de acciones:
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
131
3. En el toolbar del tab Actions, pulse el botn para iniciar la creacin de una
nueva accin de tipo Drillthrough.
4. Establezca las siguientes propiedades a la accin que acaba de crear:
Propiedad
Valor
Name
View Internet Orders
Measure group members Seleccione el grupo de medidas Internet Sales
En la columna Dimensions, seleccione la
dimensin "Internet Sales". En la columna
Drillthrough Columns
Returns Columns, seleccione el atributo "Internet
Order Number"
INTELIGENCIA DE NEGOCIOS
132
CARRERA DE COMPUTACIN
y luego
INTELIGENCIA DE NEGOCIOS
133
8. Si a continuacin nos muestra una venta de Microsoft Excel Security, haga clic
en Enable.
9. Luego del panel derecho de datos, seleccione del grupo de medidas Ventas
por Internet, la medida: Monto por Internet.
10. Haga clic derecho, Addiontal Actions y elija la accin creada View Internet
Orders.
INTELIGENCIA DE NEGOCIOS
134
11. Luego, mostrar el detalle de todas las rdenes que corresponden a esa
medida.
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
135
UNIDAD
3
POBLANDO DATA WAREHOUSE
LOGRO DE LA UNIDAD DE APRENDIZAJE
Al trmino de la unidad, el alumno puebla un datawarehouse utilizando SQL
Server Integration Services.
TEMARIO
3.1 Tema 7
3.1.1
3.1.2
3.1.2.1
3.1.2.2
3.1.2.3
3.1.2.4
3.1.2.5
:
:
:
:
:
:
:
:
Herramienta ETL
SQL Data Tools y el diseador de paquetes
Elementos de SSIS
Conexiones y tipos
Tasks
Control Flow
Containers
Package
3.2 Tema 8
3.2.1
3.2.1.1
3.2.1.2
3.2.1.3
3.2.1.4
:
:
:
:
:
:
Procesos de Carga
Diseo de proceso de carga
Mapeo de Datos
Estratega de manejo de errores
Estandarizacin y limpieza de datos
Creacin y desarrollo de proyectos SSIS
ACTIVIDADES PROPUESTAS
8. Los alumnos identifican el proceso ETL y sus etapas.
9. Los alumnos identifican los elementos de SSIS.
10. Los alumnos identifican conexiones y tipos.
11. Los alumnos identifican y definen procesos de carga
INTELIGENCIA DE NEGOCIOS
136
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
137
INTELIGENCIA DE NEGOCIOS
138
3. En el men Inicio, seleccione All Programs > Microsoft SQL Server 2014 > SQL
Server Data Tools. Se abrir el entorno de desarrollo de .Net.
4. En el men File, seleccione New y luego Project. Aparecern los distintos tipos de
proyecto que se pueden crear.
Escoja la plantilla Integration Services Project. En la casilla Location, elija la ruta donde
desea crear el proyecto. En la casilla Name, escriba AdventureWorks_SSIS_Demo1.
La ventana debe quedar como se muestra en la figura anterior. Presione el botn OK
para crear el proyecto.
5. Aparecer el entorno de desarrollo de proyectos de Integration Services. En la
ventana del Solution Explorer, observe los elementos constituyentes del proyecto:
Project.Params, Connection Managers,SSIS Packages y Miscellaneous.
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
139
INTELIGENCIA DE NEGOCIOS
140
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
10.
141
INTELIGENCIA DE NEGOCIOS
142
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
143
14. Repita los pasos del (6) al (11) para crear un nuevo Connection Manager llamado
AWorksMartDemo, dirigido hacia la base de datos AWorksMartDemo. Para este
data source, elija el tipo OLEDB.
INTELIGENCIA DE NEGOCIOS
144
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
145
INTELIGENCIA DE NEGOCIOS
146
22. En el toolbox, seleccione la tarea Data Flow Task y arrstrela hacia la ventana de
diseo del paquete (en la parte central del entorno de desarrollo). Se crear una
tarea llamada Data Flow Task. El entorno de desarrollo quedar de la siguiente
manera:
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
147
24. Cada tarea de flujo de datos consiste en varias transferencias de informacin entre
orgenes de datos. A continuacin, se definirn los flujos de informacin al interior
de la tarea Copiar productos. Para iniciar el proceso, haga un doble clic sobre la
tarea Copiar productos. Se abrir en el entorno de desarrollo la pestaa Data
Flow.
25. En el Toolbox, expanda la pestaa Other Sources, seleccione el tem ADO Net
Source y arrstrelo sobre la ventana de diseo. Se crear un nuevo origen de
registros llamado ADO NET Source. Seleccinelo y, en la ventana de
propiedades, cambie su propiedad Name a Consulta Adventure Works. La
pantalla debe quedar de la siguiente manera:
INTELIGENCIA DE NEGOCIOS
148
26. Haga doble clic sobre el origen Consulta Adventure Works. Aparecer el editor de
propiedades del ADO.NET Source. En la opcin ADO.NET connection managers,
seleccione el data source Adventure Works2012, como muestra la figura.
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
149
27. En la opcin Data Access mode seleccione SQL command como muestra la figura.
29. Al lado izquierdo del panel, seleccione la pestaa Columns, observe que las
columnas de la consulta han sido detectadas:
INTELIGENCIA DE NEGOCIOS
150
30. Pulse el botn OK. Con estos pasos, se ha completado la creacin de un origen
de registros, basado en una consulta SQL.
31. En el Toolbox, expanda la pestaa Other Destinations, elija el tem OLE DB
Destination y arrstrelo sobre la ventana de diseo. Se crear un nuevo destino de
registros llamado OLE DB Destination. Seleccinelo y, en la ventana de
propiedades, cambie su propiedad Name a Destino AWorks MartDemo. La
pantalla debe quedar de la siguiente manera:
32. Seleccione el origen Consulta Adventure Works. Observe que aparece una flecha
azul y una flecha roja saliendo del origen de registros. La flecha verde representa
el flujo de datos que se produce en caso de que la lectura de registros transcurra
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
151
sin problemas; la flecha roja representa el flujo que tendr lugar ante un error en la
lectura de los registros del origen.
33. Presione la flecha verde que sale de Consulta Adventure Works, y arrstrela con
el mouse sobre el destino Destino AWorks MartDemo. Esta accin define el flujo
de los datos entre el origen y el destino de registros. Al finalizar, la ventana debe
mostrarse de la siguiente forma:
34. Haga doble clic sobre el destino Destino AWorks MartDemo. Se abrir el editor
de propiedades del destino de registros. La ventana debe quedar de la siguiente
manera:
INTELIGENCIA DE NEGOCIOS
152
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
153
37. Pulse el botn OK para aceptar los cambios y finalizar la configuracin del destino
de registros.
38. Para depurar el paquete, haga clic en el botn
en la barra de herramientas del
entorno de desarrollo, o seleccione la opcin Start Debugging en el men Debug.
Al finalizar la ejecucin, el entorno de desarrollo mostrar la transferencia de datos
de la siguiente forma:
INTELIGENCIA DE NEGOCIOS
154
3.1.2.2. Tasks
Definir Precedencias
En el ejercicio anterior, se cre una tarea de flujo de datos para transferir datos hacia
la tabla ResumenProductos. Es posible que, antes de efectuar la transferencia de los
registros, se desee limpiar esta tabla a travs de una sentencia DELETE o
TRUNCATE. Para ello, SSIS tiene una tarea llamada Execute SQL Task, a travs de
la cual se puede ejecutar un batch SQL. Bastar con agregar esta tarea al paquete, y
escribir en ella la sentencia SQL que elimine la informacin de la tabla
ResumenProductos.
Sin embargo, al ejecutar el paquete, es posible que la tarea de eliminacin de los
registros se efecte despus de la transferencia de registros. Como resultado, al
finalizar el paquete, la tabla ResumenProductos estar vaca. Por tanto, es necesario
implementar algn mecanismo de precedencia que garantice que la tarea SQL se
efectuar antes de la transferencia de datos.
SSIS permite conectar dos tareas a travs de una precedencia. De esta forma, se
garantiza que la segunda tarea se efectuar despus de la primera. A travs de las
precedencias, se puede determinar el orden en que se efectuarn las
transformaciones y tareas. Los principales tipos de precedencia son los siguientes:
Es posible, tambin, configurar una precedencia para evaluar una expresin, a travs
de la cual se verifique el valor de una variable. De esta manera, si la expresin
devuelve True, la tarea destino se efectuar.
Ejercicio:
Defnir precedencias en un proyecto de SQL Server Integration Services.
En el siguiente ejercicio, se implementar una tarea Execute SQL Task que limpiar la
tabla Resumen Productos y adems, estableceremos precedencias con el Data Flow
Task Copiar productos.
1. En el entorno de desarrollo, en el paquete CopiaProductos.dtsx, se debe regresar
a la pestaa Control Flow. En grupo Favorites del Toolbox, seleccione el tem
Execute SQL Task, y arrstrelo sobre la ventana de diseo. La pantalla debe
quedar de la siguiente manera:
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
155
INTELIGENCIA DE NEGOCIOS
156
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
157
3.1.2.3
Control Flow
INTELIGENCIA DE NEGOCIOS
158
CARRERA DE COMPUTACIN
Valor
Archivo de territorios
Informacin de territorios en formato de texto plano
Utilice el botn Browse para ubicar el archivo Territorios.txt
Delimited
(comillas dobles)
Desmarcado
INTELIGENCIA DE NEGOCIOS
159
INTELIGENCIA DE NEGOCIOS
160
7. Haga doble clic sobre Archivo de territorios. Se abrir la ventana Flat File Source
Editor. En la propiedad Flat file connection manager, seleccione Archivo de
territorios.
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
161
9. Pulse el botn OK para finalizar la configuracin del origen del Flat File Source.
10. En el ToolBox, expanda la pestaa Common Transformations. Seleccione el tem
Script Component y arrstrelo sobre la ventana de diseo. Se abrir una ventana
que permite determinar el tipo de componente que se desea crear. Elija la opcin
Transformation.
INTELIGENCIA DE NEGOCIOS
162
12. A continuacin, haga doble clic sobre Transformacin de regiones para abrir su
ventana de propiedades.
13. En la opcin Input Columns del lado izquierdo de la ventana de propiedades,
marque los checkboxes que sealan las columnas Column 0, Column 1 y
Column 2 (estas columnas representan los inputs provenientes del origen
Territorios).
14. Seleccione la opcin Inputs and Outputs del lado izquierdo de la ventana de
propiedades. Expanda Output 0. Expanda Output Columns. Presione el botn
Add Column para agregar un nuevo Output a la transformacin. Establezca las
siguientes propiedades para el output:
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
Opcin
Name
Data Type
Length
163
Valor
Regin
Seleccione STRING [DT_STR]
10
15. Seleccione la opcin Script del lado izquierdo de la ventana de propiedades; luego
en la opcin ScriptLanguage, seleccionar Microsoft Visual Basic 2010 y presione
el botn Design Script.
INTELIGENCIA DE NEGOCIOS
164
16. Se abrir el entorno de desarrollo de .Net para scripts de SSIS. Escriba el siguiente
cdigo para definir la transformacin en la funcin Input0_ProcessInputRow:
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
165
19. Haga doble clic sobre el destino Tabla de territorios para abrir su ventana de
propiedades. Seleccione la opcin Connection Manager del lado izquierdo de la
pantalla, y establezca los siguientes valores para las propiedades:
Opcin
OLE DB Connection Manager
Data Access Mode
Name of the table or the view
Valor
Seleccione AWorks MartDemo
Table or view Fast load
Pulse el botn New para crear una nueva tabla. Escriba
la siguiente sentencia SQL:
CREATE TABLE Territorios
(ZipCode char(5),
Territorio varchar(50),
Region varchar(10))
20. Seleccione la opcin Mappings del lado izquierdo de la pantalla. Establezca los
siguientes mapeos entre las columnas definidas en Transformacin de regiones y
el destino Tabla de territorios:
Column 0
Column 1
Region
ZipCode
Territorio
Region
INTELIGENCIA DE NEGOCIOS
166
3.1.2.4
Container
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
167
Variables
A menudo, es necesario que los paquetes SSIS utilicen valores que deben calcularse
en tiempo de ejecucin. Por ejemplo, una variable en un paquete SSIS puede ser
utilizada para almacenar el nombre de un servidor de base de datos. De esta manera,
si una base de datos cambia de servidor, no sera necesario actualizar los connection
managers o data sources en el proyecto SSIS.
Las propiedades de los objetos de SSIS (data sources, connection managers, tasks,
containers, etc.) pueden ser obtenidas desde variables. El uso de variables resulta
particularmente til cuando se utilizan Script Components o Script Tasks.
Una variable en SSIS tiene siempre el mbito o alcance del container donde fue
declarada.
Por ejemplo, si se declara una variable en el paquete SSIS, dicha variable ser visible
desde cualquier lugar del paquete. Si la variable es declarada en un contenedor For
Each Loop, ser visible slo en las tareas que se encuentren en dicho contenedor.
En el siguiente ejercicio, leeremos una serie de archivos de texto correspondiente a
datos enviados por diferentes plantas, para ello definiremos una variable
varTerritoryFile y un contenedor del tipo For Each Loop que nos permitir recorrer
cada uno de los archivos y cargarlos a la tabla Despachos.
Ejercicios:
Definir variables en el paquete. Uso del contenedor For Each Loop.
1. Abra el paquete CopiaProductos.dtsx, y sitese en la pestaa Control Flow. Haga
un clic sobre cualquier parte de la ventana de diseo, asegurndose de no
seleccionar ninguna tarea. A continuacin, seleccione el men SSIS, y elija la
opcin Variables.
INTELIGENCIA DE NEGOCIOS
168
Propiedad
Name
Scope
Data Type
Value
CARRERA DE COMPUTACIN
Valor
varTerritoryFile
CopiaProductos
String
INTELIGENCIA DE NEGOCIOS
169
3. Abra el Toolbox, seleccione del grupo Containers el tem Foreach Loop Container,
y arrstrelo sobre la ventana de diseo del paquete. Renombre el elemento
creado como Archivos de despachos de planta, y agrguele una precedencia
con origen en la tarea Borrar datos. El entorno de diseo debe quedar de la
siguiente manera:
INTELIGENCIA DE NEGOCIOS
170
CARRERA DE COMPUTACIN
Valor
Foreach File Enumerator
Seleccione la carpeta donde se encuentran los archivos
DespachosPlantaLima.txt y DespachosPlantaTrujillo.txt
DespachosPlanta*.txt
Seleccione la opcin Fully Qualified
INTELIGENCIA DE NEGOCIOS
171
6. A continuacin, se configurar el bucle para que, por cada vez que encuentre un
archivo, almacene su nombre en la variable varTerritoryFile. En el lado izquierdo de
la ventana de propiedades, seleccione la opcin Variable Mappings. En la columna
Variables, seleccione la variable varTerritoryFile, y asgnela al elemento de posicin
0 de la coleccin de archivos (el bucle Foreach recorre colecciones, y las
colecciones tienen filas y columnas; en el caso de una coleccin que recorre una
lista de archivos, slo hay una columna que corresponde con la posicin 0 de la
coleccin).
INTELIGENCIA DE NEGOCIOS
172
Valor
Despachos de planta
Seleccione el archivo DespachosPlantaLima.txt
Delimited
(comillas dobles)
Seleccionado
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
173
INTELIGENCIA DE NEGOCIOS
174
14. Haga doble clic sobre la tarea Copiar Despachos para disear el flujo de datos.
Realice los siguientes pasos:
Desde el Toolbox, agregue un Flat File Source y renmbrelo como
Despachos. Ascielo con el connection manager Despachos de planta.
Desde el Toolbox, agregue un OLE DB Destination y renmbrelo como
Tabla de Despachos. A continuacin, una Despachos con Tabla de
Despachos.
Edite las siguientes propiedades del destino Tabla de despachos:
Propiedad
OLE DB Connection Manager
Data access mode
Name of the table or the view
Valor
AWorks MartDemo
Table or view fast load
Presione el botn New para crear una tabla, con la
siguiente sentencia SQL:
CREATE TABLE [Despachos](
[IdPlanta] int,
[IdProducto] int,
[IdCliente] char(11),
[Cantidad] smallint
)
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
175
15. Regrese al Control Flow, y edite la tarea Borrar Datos para efectuar un
DELETE sobre la tabla Despachos al inicio de la ejecucin del paquete.
16. Grabe los cambios y pruebe el paquete
Lookup y Data Conversions
Lookup
En el ejercicio previo al anterior, se utiliz un Script Component para traducir los
cdigos numricos a nombres de regiones. En dicho ejemplo, debido a que slo
existen cuatro regiones, basta conescribir una sentencia SELECT CASE en el cdigo
.Net del Script Component. Sin embargo, si la transformacin involucra una cantidad
grande de valores distintos (por ejemplo, los cdigos de los distritos de un pas), el
script puede hacerse muy extenso y difcil de escribir.
INTELIGENCIA DE NEGOCIOS
176
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
177
2. A travs del SQL Server Management Studio, ingrese los siguientes registros
en la tabla Ciudades:
IdCiudad
AN
AQ
CJ
CZ
HU
LI
Descripcin
ANCASH
AREQUIPA
CAJAMARCA
CUZCO
HUANUCO
LIMA
INTELIGENCIA DE NEGOCIOS
178
Observe que la columna Ciudad contiene cdigos de ciudades (LI, CJ, etc.).
5. Agregue al paquete (con cuidado de NO colocarlo dentro del bucle Archivos
de despachos de planta) un nuevo Data Flow Task y renmbrelo como Copiar
clientes. Agrguele una precedencia con origen en la tarea Borrar Datos.
6. Dentro del Data Flow Task Copiar clientes, agregue un nuevo OLE DB Source
estableciendo las siguientes propiedades:
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
179
INTELIGENCIA DE NEGOCIOS
180
Input Column
OutPut Alias
Data Type
NomCliente
NomCliente-noUNC String [DT_STR]
TelCliente
TelCliente-noUNC
String [DT_STR]
Ciudad
Ciudad-noUNC
String [DT_STR]
Length
50
10
2
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
181
10.
Haga doble clic sobre Lookup Ciudades para editar sus propiedades. Se
abrir la ventana del Lookup Transformation Editor. En la parte izquierda del editor,
seleccione Connection, la propiedad OLE DB Connection Manager debe apuntar al
connection manager AWorks MartDemo. La tabla de referencia debe ser
dbo.Ciudades.
INTELIGENCIA DE NEGOCIOS
182
De esta manera, la transformacin Lookup efecta una operacin de join con la tabla
dbo.Ciudades, basada en la igualdad de las columnas IdCiudad y Ciudad-noUNC.
El
join efectuado permite obtener, para cada registro en la tabla ClientesPeru del
archivo
Access de origen, el valor de la columna Descripcion que le corresponde en la tabla
dbo.Ciudades.
12. Pulse el botn OK para confirmar los cambios.
13. Desde el Toolbox, en la pestaa Other Destinations, agregue un nuevo OLE DB
Destination, y renmbrelo como Tabla Clientes. Conecte la salida de Lookup
Ciudades con Tabla Clientes y en la ventana Input Output Selection seleccione
en Output: Lookup Match Output.
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
183
14. Haga doble clic sobre el destino Tabla clientes para abrir su ventana de
propiedades. Seleccione la opcin Connection Manager del lado izquierdo de la
pantalla y establezca los siguientes valores para las propiedades:
Propiedad
OLE DB Connection Manager
Data Access Mode
Name of the table or the view
Valor
Seleccione AWorks MartDemo
Table or view Fast load
Pulse el botn New para crear una nueva tabla. Escriba
la siguiente sentencia SQL:
CREATE TABLE Clientes
(IdCliente integer,
NombreCliente varchar(50),
TelefonoCliente varchar(10),
CiudadCliente varchar(20))
15. Seleccione la opcin Mappings del lado izquierdo de la pantalla. Establezca los
siguientes mapeos entre las columnas de Lookup Ciudades y el destino
Clientes:
idCliente
NomCliente-noUNC
TelCliente-noUNC
Descripcion
idCliente
NombreCliente
TelefonoCliente
CiudadCliente
INTELIGENCIA DE NEGOCIOS
184
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
3.1.2.5
185
Package
Package Configurations
A menudo, para aumentar la flexibilidad de un paquete SSIS, es necesario pasarle
ciertos valores de entrada. Por ejemplo, si una base de datos se mueve hacia otro
servidor, es deseable que el nombre del servidor pueda ser establecido en tiempo de
ejecucin sin necesidad de modificar el paquete SSIS.
Los Package Configurations implementan mecanismos para pasarle valores de
entrada a un paquete SSIS. Los package configurations permiten definir informacin
de entrada a travs de:
una
variable
llamada
Valor
varPaqueteActivo
CopiaProductos
Boolean
True
INTELIGENCIA DE NEGOCIOS
186
2. Haga un clic sobre la pestaa Control Flow en el entorno de diseo. Y luego en las
propiedades del paquete, ubique la propiedad Configurations y haga clic en la
elipse.
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
187
INTELIGENCIA DE NEGOCIOS
188
8. Pulse el botn Finish para finalizar el asistente. Pulse el botn Close para cerrar el
Package Configurations Organizer.
9. Observe que se ha creado un archivo XML llamado Configuraciones.dstConfig en
la ruta seleccionada durante la ejecucin del asistente. Abra el archivo utilizando el
Internet Explorer. Observe la existencia de un elemento Configuration, de tipo
booleano, establecido a -1 (true).
10. Desde el Toolbox, agregue al paquete una tarea de tipo Script Task, y renmbrela
como Verificar activacin. A continuacin, agregue a la tarea Borrar datos una
precedencia con origen en Verificar activacin.
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
189
11. Haga doble clic en la tarea Verificar Activacin. Se abrir la ventana del Script
Task Editor. En la parte izquierda de la ventana, seleccione la opcin Script. En la
propiedad ScriptLanguage seleccione Microsoft Visual Basic 2013, luego en la
propiedad ReadOnlyVariables, escriba varPaqueteActivo. Esto indica que el script
tiene acceso de slo lectura sobre la variable varPaqueteActivo.
12. Pulse el botn Edit Script para escribir el cdigo .Net que define el comportamiento
de la tarea. Escriba el siguiente cdigo en el mtodo Main() de la clase ScriptMain:
INTELIGENCIA DE NEGOCIOS
190
13. Guarde el script y cierre la ventana de .Net. En la ventana del Script Task Editor,
pulse el botn OK.
14. Guarde el paquete y ejectelo. Observe que, como el valor de la variable
varPaqueteActivo es True, el script task finaliza notificando xito, y da paso a la
ejecucin de las tareas siguientes.
15. Abra el archivo Configuraciones.dtsConfig utilizando el Notepad. Modifquelo,
para establecer el valor de la configuracin para la variable varPaqueteActivo a 0
(False). Al finalizar, el archivo debe quedar de la siguiente manera:
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
191
Derived Column
La transformacin Derived Column se utiliza para generar nuevas columnas, con base
en las columnas de input ya existentes. Esto se hace a travs de expresiones, es
decir, frmulas que se aplican a las columnas de input para generar un nuevo valor de
output.
El lenguaje de expresiones de SSIS posee un vasto conjunto de funciones y
operadores que permite efectuar transformaciones avanzadas en la informacin de
una fila.
El Derived Column es muy til para situaciones en las cuales se debe efectuar
concatenaciones, extraer una porcin de una cadena, obtener partes de una fecha,
aplicar funciones matemticas, etc.
En el siguiente ejercicio, se crear un DerivedColumn para concatenar los valores de
las columnas FirstName y LastName de la tabla Person.Contact, y enviar el
resultado hacia una nueva tabla llamada ResumenContactos.
Ejercicio
Utilizar Transformacin Derived Column en el proyecto SSIS desarrollado.
1. En el paquete CopiarProductos.dtsx, agregue un Data Flow Task y renmbrelo
como Copiar Contactos.
2. En el data flow Copiar Contactos, agregue un ADO NET Source con las
siguientes propiedades:
INTELIGENCIA DE NEGOCIOS
Propiedad
Name
ADO.NET Connection Manager
Data access mode
SQL command text
192
Valor
Contactos
Adventure Works2014
SQL command
Select BusinessEntityID,
FirstName, LastName
From Person.Person
4. Haga doble clic sobre la transformacin Derived Column para editar sus
propiedades. Aparecer la ventana del Derived Column Transformation Editor. En
el grid de la parte inferior, agregue nueva columna derivada con las siguientes
propiedades:
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
Propiedad
Derived Column Name
Derived Column
Expression
Data Type
193
Valor
NombreCompleto
<add as new column>
[LastName] + , + [FirstName]
Unicode string [DT_WSTR]
Valor
AWorks MartDemo
Table or view fast load
Presione el botn New para crear una tabla, con la
siguiente sentencia SQL:
CREATE TABLE [ResumenContactos](
BusinessEntityID Integer,
NombreCompleto Nvarchar(150)
)
INTELIGENCIA DE NEGOCIOS
194
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
195
Fuzzy Lookup
Al igual que el Lookup, la transformacin Fuzzy Lookup compara los datos de entrada
con una tabla de equivalencias. Sin embargo, en Fuzzy Lookup no es necesario que
las equivalencias sean exactas; basta con que exista cierta similitud para que
Integration Services decida que existe una correspondencia.
La transformacin Fuzzy Lookup crea columnas adicionales que almacenan
indicadores numricos de semejanza. Esta caracterstica permite que el desarrollador
del paquete establezca polticas de tipo si la semejanza es mayor que 90%, la
decisin tomada por Integration Services es correcta. Para las filas restantes, el
administrador tomar la decisin final.
Ejercicio:
Utilizar la transformacin Fuzzy Lookup en el proyecto SSIS desarrollado.
En este ejercicio, se implementa el siguiente escenario: peridicamente, los
vendedores remiten informacin en archivos de texto. Esta informacin consiste en el
nombre de cada cliente, y la venta correspondiente. Sin embargo, es comn que estos
nombres contengan errores ortogrficos y de digitacin.
Adicionalmente, se tiene una tabla llamada Clientes, que contiene la informacin de
los clientes de la empresa. Este ejercicio consistir en construir un paquete de
Integration Services que lea la informacin de un archivo de texto, y efecte
correctamente el mapeo entre los clientes en este archivo y los clientes en la tabla
Clientes, basado en la similitud de sus valores.
Por ejemplo, en esta tabla se tienen los siguientes registros:
IdCliente NombreCliente
----------- -------------------------------------------------2 Karina Palacios Ramos
3 Jessica Linares Hidalgo
En el archivo de ventas, la informacin viene en la siguiente forma:
Cliente, Ventas
Karina Palasios Ramos, 124500
Jesica Linares Hidalgo, 89076
Obsrvese que en el archivo de texto, el apellido en la primera fila es Palasios en
lugar de Palacios. En la segunda fila, el nombre es Jesica en lugar de Jessica. El
paquete que se construir tendr la capacidad de determinar el cliente correcto para
cada venta en el archivo de texto con base en la similitud de su nombre con los
registros existentes en la tabla Clientes.
1. Agregue al proyecto un nuevo paquete llamado Demo Fuzzy Lookup.
2. Agregue un nuevo Flat File Connection Manager con las siguientes caractersticas:
INTELIGENCIA DE NEGOCIOS
Propiedad
Name
Archivo
Text Qualifier
Column names in the first
data row
196
Valor
Ventas Sucio
Seleccione el archivo Ventas-sucio.txt
Ninguno
S
3. En el paquete, cree una tarea de tipo Data Flow Task. Asgnele el nombre Limpiar
Datos de Ventas.
4. Dentro de la tarea Limpiar Datos de Ventas, agregue un Flat File Source con las
siguientes propiedades:
Propiedad
Name
Flat File Connection
Manager
Valor
Archivo de Ventas
Seleccione el connection manager Ventas Sucio
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
197
7. Seleccione la pestaa Columns. Observe que se muestran dos tablas: una llamada
Available Input Columns que corresponde con el archivo de texto VentasSucio.txt; y otra llamada Available Lookup Columns que corresponde con la tabla
Clientes. Realice los siguientes pasos:
INTELIGENCIA DE NEGOCIOS
198
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
199
10. Configure las propiedades del destino Ventas a clientes de la siguiente manera:
Propiedad
OLE DB Connection Manager
Data access mode
Name of the table or the view
Valor
AWorks MartDemo
Table or view fast load
Presione el botn New para crear una tabla, con la
siguiente sentencia SQL:
CREATE TABLE [VentasClientes] (
[Ventas] VARCHAR(50),
[IdCliente] INTEGER,
[NombreCliente] VARCHAR(50),
[_Similarity] REAL,
[_Confidence] REAL,
[_Similarity_Cliente] REAL
)
INTELIGENCIA DE NEGOCIOS
200
las equivalencias sean exactas; basta con que exista cierta similitud para que
Integration Services decida que existe una correspondencia.
La transformacin Fuzzy Lookup crea columnas adicionales que almacenan
indicadores numricos de semejanza. Esta caracterstica permite que el desarrollador
del paquete establezca polticas de tipo si la semejanza es mayor que 90%, la
decisin tomada por
Integration Services es correcta.
Para las filas restantes, el administrador tomar la decisin final. Una necesidad
comn durante las extracciones de datos consiste en efectuar agregaciones (sumas,
promedios, etc.), y ordenar la informacin. Este tipo de operacin puede efectuarse
desde la misma consulta de datos (usando operadores como ORDER BY, GROUP BY
y SUM). Sin embargo, existen varias circunstancias en las cuales se necesitar
efectuar estas operaciones durante el proceso de transferencia de datos y no en la
consulta de origen.
4, 178, "87123490112", 9
4, 179, "76130920114", 5
Obsrvese que cada cliente tiene informacin en dos plantas (1 y 4). Se desea obtener
el total de la columna Cantidad para cada cliente. Por ejemplo, el total de Cantidad
para el primer cliente sera 13 (la suma de 4 y 9). La salida de datos estar ordenada
descendentemente por cantidad.
1. Agregue al proyecto un nuevo paquete llamado Demo Aggregate y Sort.
2. Agregue un nuevo Flat File Connection Manager con las siguientes caractersticas:
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
Propiedad
Name
Archivo
Text Qualifier
Column names in the first
data row
201
Valor
Despachos Detallados
Seleccione el archivo Detalle Despachos.txt
(comilla doble)
S
Valor
DataType: four-byte signed integer [DT_I4]
DataType: four-byte signed integer [DT_I4]
DataType: string [DT_STR]
OutputColumnWidth: 11
DataType: decimal [DT_DECIMAL]
Propiedad
Name
Flat File Connection
Manager
Valor
Archivo de despachos
Seleccione el connection manager Despachos
Detallados
INTELIGENCIA DE NEGOCIOS
202
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
203
14. Haga doble clic sobre el destino Archivo ordenado para editar sus propiedades.
En el editor, pulse el botn New para crear un nuevo connection manager. En la
ventana Flat File Format, seleccione la opcin Delimited. Pulse el botn OK.
15. En la ventana de edicin del nuevo connection manager, establezca las siguientes
propiedades:
INTELIGENCIA DE NEGOCIOS
Propiedad
Connection Manager Name
File Name
Column Names in the First
data row
204
Valor
Despachos ordenados
Seleccione una ruta cualquiera. Establezca el
nombre del archivo a DespachosOrdenados.txt
S
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
205
17. Pulse el botn OK. Guarde el paquete y ejectelo. El paquete generar un archivo
de texto llamado DespachosOrdenados.txt donde la informacin estar
sumarizada por cantidad y agrupada por cliente. Verifique los resultados.
Merge Join
La transformacin Merge Join permite combinar dos filas provenientes de orgenes de
datos distintos en una sola fila con base en una o ms columnas que tengan valores
comunes. Por ejemplo, pueden tenerse las siguientes filas en un archivo de texto:
1, 67000
2, 78000
Donde la primera columna representa el ID del cliente, y la segunda columna
representa las ventas totales. Por otro lado, en una tabla de clientes se tienen las
siguientes filas:
IdCliente NombreCliente
1
Jorge Gonzles Barrera
2
Mara Flores Herrera
A travs de la transformacin Merge Join, las filas provenientes del archivo de texto
pueden combinarse con las filas de la tabla con base en los valores de las columnas
que contienen el ID del cliente para producir un nico conjunto de resultados con la
siguiente estructura:
INTELIGENCIA DE NEGOCIOS
206
IdCliente NombreCliente
Ventas
1
Jorge Gonzles Barrera
67000
2
Mara Flores Herrera
78000
En este caso, las columnas IdCliente del archivo de texto y la tabla reciben el nombre
de Join Keys debido a que son usadas para definir la regla de combinacin.
La implementacin de una transformacin Merge Join tiene las siguientes condiciones:
Las columnas que cumplen el papel de Join Keys deben tener el mismo tipo de
datos.
Las filas que ingresan a la transformacin Merge Join deben estar ordenadas
con base en los valores de las columnas que cumplen el papel de Join Keys.
Ejercicio
Utilizar la transformacin Merge Join en el proyecto SSIS desarrollado.
En este ejercicio, se leern las filas existentes en un archivo de texto que contiene
informacin como la siguiente:
IdSubCategoria, Ventas
1, 879765
2, 678596
3, 987432
Estas filas se combinarn con los registros provenientes
Production.ProductSubCategory que tienen la siguiente estructura:
de
la
tabla
ProductSubCategoryID Name
1 Mountain Bikes
2 Road Bikes
3 Touring Bikes
La salida producida por la transformacin Merge Join contendr el Id de la
subcategora, las ventas y el nombre de la subcategora. Se utilizar el Id de la
subcategora como condicin de combinacin (join key).
Realice los siguientes pasos:
1. En el proyecto AdventureWorks_SSIS_Demo1 cree un nuevo Connection
Manager con nombre AdventureWorks OLE DB con las siguientes propiedades:
Propiedad
Provider
Server Name
Database Name
Name
Valor
NATIVE OLE DB\SQL Native Client 11.0
Localhost
AdventureWorks2014
Adventure Works2014 OLE DB
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
Propiedad
Name
Archivo
Text Qualifier
Column names in the first
data row
207
Valor
Archivo de Ventas
Seleccione el archivo VentasSubCategoria.txt
Ninguno
S
Valor
DataType: four-byte signed integer [DT_I4]
DataType: decimal [DT_DECIMAL]
Valor
Ventas por Subcategoria
Seleccione el connection manager Archivo de
Ventas
Valor
Subcategorias
Seleccione el connection manager
AdventureWorks - OLEDB
Table or view
[Production].[ProductSubCategory]
Marque nicamente las columnas
ProductSubCategoryID y Name.
INTELIGENCIA DE NEGOCIOS
208
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
209
12. Haga doble clic sobre la transformacin Merge Join. Observe que la condicin de
join consiste en el enlace entre la columna IdSubCategoria (proveniente del
archivo de texto) y la columna ProductSubCategoryID (proveniente de la tabla
ProductSubCategory). Este enlace se ha creado automticamente, debido a que
estas son las dos nicas columnas que tienen el mismo tipo de dato (Integer). Sin
embargo, esta relacin puede ser cambiada por el desarrollador, si es necesario.
INTELIGENCIA DE NEGOCIOS
210
Valor
Seleccione AWorks MartDemo
Table or view Fast load
Pulse el botn New, y cree una nueva tabla con la
siguiente definicin:
CREATE TABLE [VentasSubcategoria] (
[ProductSubcategoryID] INTEGER,
[Name] NVARCHAR(50),
[Ventas] DECIMAL
)
15. Una vez finalizada la edicin del destino Ventas, el diseador debe tener la
siguiente apariencia:
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
211
Mapeo de Datos
Mediante herramientas y tcnicas de ETL extraemos los datos de las distintas fuentes
en los que pudieran estar alojados (ERP, CRM, bases de datos tradicionales, planillas
Excel, etc) para posteriormente depuramos, consolidamos y cargarlos en un almacn
de datos.
INTELIGENCIA DE NEGOCIOS
3.2.1.2
212
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
213
Por ejemplo en este caso mientras que la lectura de los datos en Ole DB Source sea
correcta, se ejecutar la transformacin Sort. En caso contrario el SSIS fallar y no
realizar nada.
Esto se puede cambiar si por ejemplo, aadimos un componente Flat File Destination
y arrastramos la flecha roja sobre este nuevo elemento.
Al conectar estos dos elementos nos aparece una pantalla de propiedades donde se
podr configurar qu queremos que haga SSIS en caso de producirse un error en este
punto.
INTELIGENCIA DE NEGOCIOS
214
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
215
INTELIGENCIA DE NEGOCIOS
216
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
3.2.1.3
217
En este tema se describe cmo limpiar los datos mediante un proyecto de calidad de
datos de Data Quality Services (DQS).La limpieza de datos se realiza en los datos de
origen utilizando una base de conocimiento generada en DQS a partir de un conjunto
de datos de alta calidad.Para obtener ms informacin, vea Crear una base de
conocimiento.
La limpieza de datos se realiza en cuatro fases: una fase de asignacin en la que se
identifica el origen de datos que se va a limpiar y se asigna a los dominios requeridos
de una base de conocimiento, una fase de limpieza asistida por PC en la que DQS
aplica la base de conocimiento a los datos que se van a limpiar y propone o realiza
cambios en los datos de origen, una fase de limpieza interactiva en la que los
administradores de datos pueden analizar los cambios en los datos, as como
aceptarlos o rechazarlos, y, por ltimo, la fase de exportacin que le permite exportar
los datos limpios.Cada uno de estos procesos se realiza en una pgina distinta del
asistente para la actividad de limpieza, lo que le permite desplazarse de una pgina a
otra, volver a ejecutar el proceso, y cerrar un proceso de limpieza especfico y volver a
la misma fase del proceso.DQS proporciona estadsticas sobre los datos de origen y
los resultados de limpieza que permiten tomar decisiones fundadas sobre la limpieza
de datos.
Requisitos previos
Es necesario especificar valores de umbral apropiados para la actividad de
limpieza.Para obtener ms informacin acerca de cmo hacerlo, vea Configurar los
valores de umbral para la limpieza y coincidencia.
Debe estar disponible una base de conocimiento de DQS en Servidor de calidad de
datos con la que comparar y limpiar los datos de origen.Adems, la base de
conocimiento debe contener conocimiento sobre el tipo de datos que desea limpiar.Por
ejemplo, si desea limpiar datos de origen que contienen direcciones de EE. UU., debe
tener una base de conocimiento creada a partir de datos de ejemplo de alta calidad
para las direcciones de EE. UU.
Si los datos de origen implicados en el proceso de limpieza estn en un archivo de
Excel, es necesario tener instalado Microsoft Excel en el equipo de Cliente de calidad
de datos.De lo contrario, no podr seleccionar dicho archivo en la fase de
asignacin.Los archivos creados por Microsoft Excel pueden tener la extensin .xlsx,
.xls o .csv.Si se utiliza la versin de 64 bits de Excel, solo se admitirn los archivos de
Excel 2003 (.xls); los archivos de Excel 2007 o 2010 (.xlsx) no son compatibles.Si
utiliza la versin de 64 bits de Excel 2007 o 2010, guarde el archivo como un archivo
.xls o .csv, o instale una versin de 32 bits de Excel en su lugar.
Permisos
Debe disponer del rol dqs_kb_editor o dqs_kb_operator en la base de datos
DQS_MAIN para realizar la limpieza de datos.
3.2.1.4
INTELIGENCIA DE NEGOCIOS
218
Normal (Regular). Relaciona directamente una tabla de hechos con una tabla
de dimensiones, a travs de una o ms columnas. Es el caso ms habitual.
Refenciada (Referenced). Una dimensin se relaciona con un grupo de
medidas a travs de otra dimensin. Se suele utilizar cuando modelamos en
copo de nieve (snowflake).
Varios a Varios (Many-to-Many). La tabla de dimensiones se combina con una
tabla de hechos intermedia, y sta a su vez se combina con una tabla de
dimensiones intermedia con la que la tabla de hechos est combinada.
Hecho (Fact). Se basan en la propia tabla de hechos, y el atributo clave de la
dimensin ser una columna de la tabla de hechos. Por ejemplo, si en la tabla
de hechos tenemos el nmero de factura y queremos una dimensin Factura.
3.2.1.5
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
219
Utilice una tarea que permita mover los archivos de texto utilizados en el
presente o directorio.
Desarrolle un ejemplo usando el componente DataProfiling utilizando la base
de datos AdventureWorks2012, vista Sales.vSalesPerson.
Restaure las bases de datos Northwind, Northwind_Stage, Northwind_Mart y
cree toda la solucin de carga al Datawarehouse.
Carga al STAGE:
Carga DATAMART:
INTELIGENCIA DE NEGOCIOS
220
UNIDAD
4
GENERANDO
REPORTES
CONSULTAS MDX
:
:
:
:
:
:
MDX
Introduccin a MDX
Consulta de cubos a travs de MDX
Concepto de Tuplas y Sets.
Funciones de MDX
Filtra y ordena resultados
4.2 Tema 10
4.2.1
4.2.2
4.2.2.1
4.2.2.2
4.2.2.3
4.2.2.4
:
:
:
:
:
:
:
4.3 Tema 11
4.3.1
4.3.1.1
4.3.1.2
4.3.1.3
4.3.1.4
4.3.2
:
:
:
:
:
:
:
ACTIVIDADES PROPUESTAS
12. Los alumnos identifican los conceptos de MDX.
13. Los alumnos identifican y desarrollan reportes utilizando SSRS
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
4.1
221
MDX
Funciones de Array
Funciones de Dimensin
Funciones de Jerarquas
Funciones de Levels
Funciones Lgicas
Funciones Member
Funciones Numricas
Funciones de Set
Funciones de cadenas
Funciones de Tuplas
INTELIGENCIA DE NEGOCIOS
222
Pulse el botn Connect. El SQL Server Management Studio mostrar la lista de bases
de datos de anlisis en el Object Explorer (si no puede visualizar esta ventana,
seleccione el men View y la opcin Object Explorer).
Cada vez que se cree una nueva consulta MDX, se abrir nuevamente la ventana de
autenticacin. Se deben aceptar los valores por defecto y pulsar el botn Connect. En
la lista de la parte superior del toolbox, seleccione la base de datos
AdventureWorksDataMart:
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
223
INTELIGENCIA DE NEGOCIOS
224
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
225
INTELIGENCIA DE NEGOCIOS
226
Las medidas de un cubo son tratadas como una dimensin privada denominada
Measures. Por ejemplo, en la figura anterior, la celda encerrada en la elipse puede
identificarse a travs de la siguiente Tupla:
(Route.[Eastern Hemisphere].Africa, Time.[2nd half].[4th quarter],
Source.nonground.Air, Measures.Packages)
La Tupla mostrada identifica nicamente a una celda del cubo. La siguiente Tupla
identifica a todas las celdas que corresponden al miembro Eastern Hemisphere de la
dimensin Route:
(Route.[Eastern Hemisphere])
La siguiente T upla identifica a todas las celdas que corresponden al miembro
Eastern Hemisphere de la dimensin Route, y el miembro 2nd half de la dimensin
Time:
(Route.[Eastern Hemisphere], Time.[2nd half])
Estas secciones parciales del cubo se denominan slicers. Cada slicer contiene una o
ms celdas.
Un set es una coleccin de T uplas. Los sets se escriben utilizando llaves al inicio y
al final de la expresin de set. Por ejemplo:
{ (Time.[1st half].[1st quarter]), Time.[2nd half].[3rd quarter]) }
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
227
La siguiente consulta obtiene los valores de todas las medidas del cubo Sales, para el
miembro United States de la dimensin Geography, y para todos sus descendientes
en el nivel City segn la jerarqua Geographic location:
SELECT Measures.Members ON COLUMNS,
{[Geography].[Geographic location].[Country Region Name].[United States],
DESCENDANTS([Geography].[Geographic location].[Country Region
Name].[United States],
[Geography].[Geographic location].[City])} ON ROWS
FROM Sales
Los resultados son los siguientes:
INTELIGENCIA DE NEGOCIOS
228
La clusula WHERE
La clusula WHERE se utiliza para limitar el conjunto de celdas que se totalizan para
dar origen a la informacin de la consulta. La clusula WHERE define un slicer
conformado por dimensiones y miembros especficos, que restringen el universo de la
consulta.
Por ejemplo, la siguiente sentencia muestra la medida Internet Order Quantity, para
todos los aos de la jerarqua Calendar en la dimensin Order Date, y para todos los
miembros en el nivel Country Region Name de la jerarqua Geographic location:
SELECT [Order Date].[Calendar].[Year].Members ON COLUMNS,
[Geography].[Geographic location].[Country Region Name].Members
ROWS
FROM Sales
CARRERA DE COMPUTACIN
ON
INTELIGENCIA DE NEGOCIOS
229
Cada celda muestra el valor de Internet Order Quantity para todas las categoras de
productos. Si se desea restringir ms la consulta para que slo considere la categora
Bikes, se puede utilizar la siguiente expresin slicer:
([Measures].[Internet Order Quantity],
[Product].[Product Categories].[Product Category Name].[Bikes])
SELECT [Order Date].[Calendar].[Year].Members ON COLUMNS,
[Geography].[Geographic location].[Country Region Name].Members ON
ROWS
FROM Sales
where ([Measures].[Internet Order Quantity],
[Product].[Product Categories].[Product Category Name].[Bikes])
Los resultados sern los siguientes:
INTELIGENCIA DE NEGOCIOS
230
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
231
INTELIGENCIA DE NEGOCIOS
232
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
233
2003]'
MEMBER [Order Date].[Calendar].[2003].[Bimestre 2 - 2003] AS
'[Order Date].[Calendar].[March 2003] + [Order Date].[Calendar].[April 2003]'
select {[Order Date].[Calendar].[Bimestre 1 - 2003],
[Order Date].[Calendar].[Bimestre 2 - 2003]} ON COLUMNS,
[Geography].[Geographic location].[Country Region Name].MEMBERS ON
ROWS
FROM SALES
WHERE (Measures.[Sales Amount])
En este ejemplo, los miembros calculados Bimestre 1 2003 y Bimestre 2 2003 se
han designado como hijos del miembro 2003. El resultado es el siguiente:
Un set con nombre (named set) permiten crear sets en tiempo de ejecucin y
utilizarlos en consultas MDX. La sintaxis para definir sets con nombre es la siguiente:
WITH SET nombre_set AS 'expression'
Por ejemplo, se puede crear un set llamado Norteamerica que contenga a los
miembros Canada y United States de la dimensin Geography como se muestra a
continuacin:
WITH SET [Norteamerica] AS
'{[Geography].[Geographic
location].[Canada],
[Geography].[Geographic
location].[United
States]}'
select [Norteamerica] ON COLUMNS,
[Product].[Product Categories].[Product Category Name].MEMBERS ON ROWS
FROM SALES
WHERE (Measures.[Sales Amount])
El resultado es el siguiente:
INTELIGENCIA DE NEGOCIOS
234
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
235
INTELIGENCIA DE NEGOCIOS
236
Si se desea mostrar en las filas de una consulta todas las categoras de productos
(nivel Product Category Name de la jerarqua Product Categories), excluyendo a los
miembros Clothing y Unknown se puede utilizar la funcin EXCEPT para efectuar esta
exclusin.
SELECT {Measures.[Order Quantity], Measures.[Sales Amount]} ON
COLUMNS,
EXCEPT([Product].[Product Categories].[Product Category Name].MEMBERS,
{[Product].[Product Categories].[Product Category Name].[Clothing],
[Product].[Product Categories].[Product Category Name].[Unknown]}) ON
ROWS
FROM SALES
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
237
Si se desea comparar las ventas actuales contra las ventas del siguiente mes, se debe
utilizar la funcin NEXTMEMBER.
La funcin GENERATE
La funcin GENERATE tiene la siguiente sintaxis:
GENERATE(set1, set2 [, ALL])
Esta funcin aplica el set2 a cada miembro de set1 y retorna el set generado por esta
operacin. Por ejemplo, la siguiente clusula:
GENERATE({Per, Mxico, Ecuador}, {Bebidas, Condimentos}, ALL)
Retorna el set {Bebidas, Condimentos, Bebidas, Condimentos, Bebidas,
Condimentos}. Para cada miembro del primer set (pases) se ha generado
repetidamente el segundo set (productos). Las repeticiones se han conservado debido
a la inclusin de la clusula ALL. Si se desea eliminar las repeticiones, la clusula
correcta es la siguiente:
GENERATE({Per, Mxico, Ecuador}, {Bebidas, Condimentos})
En este caso, el resultado es {Bebidas, Condimentos}
La funcin GENERATE es muy til cuando se combina con la funcin
CURRENTMEMBER. La siguiente sentencia genera, por cada miembro en el nivel
Year de la jerarqua Calendar en la dimensin Order Date, un set conformado por
dicho miembro y sus hijos directos. El resultado de esta operacin se muestra en las
columnas de la consulta.
SELECT GENERATE([Order Date].Calendar.Year.MEMBERS,
{[Order Date].Calendar.CURRENTMEMBER,
[Order Date].Calendar.CURRENTMEMBER.CHILDREN}) ON COLUMNS,
[Product].[Product Categories].[Product Category Name].MEMBERS ON ROWS
FROM Sales
WHERE Measures.[Sales Amount]
Los resultados obtenidos son los siguientes:
INTELIGENCIA DE NEGOCIOS
238
Funciones TIME
Las funciones PARALLELPERIOD, CLOSINGPERIOD, OPENINGPERIOD,
PERIODSTODATE proveen potentes funcionalidades de manipulacin de fechas.
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
239
INTELIGENCIA DE NEGOCIOS
240
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
241
Esta funcin aplica al set1 todos los miembros que cumplan el criterio de bsqueda.
Por ejemplo, si se desea observar las ciudades cuyas unidades vendidas exceden a
25000, se puede escribir la siguiente sentencia:
SELECT {Measures.[Sales Amount], Measures.[Order Quantity]} ON
COLUMNS,
FILTER([Geography].[Geographic location].[State Province Name].MEMBERS,
Measures.[Sales Amount] > 25000) ON ROWS
FROM Sales
Los resultados de la consulta son los siguientes:
INTELIGENCIA DE NEGOCIOS
242
Observe que el resultado no se visualiza con un orden alfabtico estricto. Esto se debe
a que el parmetro ASC de la funcin ORDER ordena a los miembros del nivel State
Province Name dentro de cada miembro padre en el nivel Country Region Name. Es
decir, primero ordena alfabticamente a New South Wales, Queensland, South
Australia, Tasmania y Victoria, que son hijos de la regin Australia. Luego, repite
nuevamente la ordenacin para los hijos de Canad, y as sucesivamente. Si se desea
evitar este comportamiento, debe especificarse el parmetro BASC:
SELECT {Measures.[Sales Amount], Measures.[Order Quantity]} ON
COLUMNS,
ORDER([Geography].[Geographic location].[State Province Name].MEMBERS,
[Geography].[Geographic location].CURRENTMEMBER.NAME, BASC) ON
ROWS
FROM Sales
En este caso, el ordenamiento s es absoluto.
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
4.2
243
INTELIGENCIA DE NEGOCIOS
244
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
245
Data Sources: Definen los orgenes de datos del reporte. Un reporte puede
conectarse con mltiples orgenes de datos.
Datasets: Contienen vistas de datos, obtenidos a partir de los data sources. Un
reporte puede obtener su informacin desde mltiples datasets.
Fields: Contienen las definiciones de las columnas de los datasets. Permiten
disear grficamente los reportes.
Regiones de datos: Una regin de datos define un formato de visualizacin.
Reporting Services cuenta con tablas, matrices, listas, subreportes, etc.
Ejercicio:
Crear Reporte Tabular sobre el cubo Sales
1. Abra el entorno de desarrollo del SQL Server Data Tools.
2. En el men File, seleccione la opcin New Project:
INTELIGENCIA DE NEGOCIOS
246
4.2.2.1
5. Agregue un nuevo origen de datos al proyecto. Para esto, haga un clic derecho
sobre el flder Shared Data Sources en el explorador de soluciones, y seleccione
la opcin Add New Data Source:
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
247
INTELIGENCIA DE NEGOCIOS
248
9. Para crear un nuevo reporte, haga un clic derecho sobre el flder Reports en el
explorador de la solucin, y seleccione la opcin Add New Item (observe la
siguiente figura):
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
249
11. Presione el botn Add. Aparecer el diseador de reportes. Este diseador consta
de un panel Report Data y dos tabs: Design y Preview. El panel Report Data
permite configurar los datasets que utilizar el reporte. La pestaa Design permite
disear grficamente el reporte. La pestaa Preview ejecuta el reporte y
proporciona una vista preliminar de ste (ver la siguiente figura).
4.2.2.2
12. En la pestaa Report Data, seleccione la lista New y haga clic sobre la opcin
Dataset:
INTELIGENCIA DE NEGOCIOS
250
14. En la siguiente pantalla, en la opcin Use Shared data source reference, elija
AdventureWorksDW y luego el botn Ok:
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
251
16. A continuacin, aparecer la pantalla del Query Designer, elija el cubo Ventas
(Sales).
INTELIGENCIA DE NEGOCIOS
252
17. Desde el panel de metadata, arrastre las medidas Monto por Distribuidor (Sales
Amount) y Monto por Internet (Internet Sales Amount), y el atributo Categora de
Producto (Product Category Name) de la dimensin Producto (Product) sobre el
panel de resultados. Las columnas elegidas y sus resultados aparecern sobre el
panel de resultados.
18. Haga dos veces clic en el botn Ok. Observe que se muestra la lista de campos
del dataset con las columnas seleccionadas para la consulta. Las consultas MDX
experimentan un proceso de aplanamiento (flatening), que permite tratar los
miembros y niveles referenciados por la consulta como si fueran campos de una
tabla relacional.
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
4.2.2.3
253
Diseo de Reportes
4.2.2.4
20. Aparecer una tabla con dos filas y tres columnas. Para agregar una nueva
columna a la tabla, haga un clic derecho sobre la cabecera de la tercera columna,
y seleccione la opcin Insert Column y Right:
21. Escriba sobre las cabeceras de las dos ltimas columnas, como se muestra en la
siguiente figura:
INTELIGENCIA DE NEGOCIOS
254
22. Seleccione el men View y elija la opcin Report Data para abrir la ventana de
datasets. Seleccione el campo Categora de Producto y arrstrelo sobre la
segunda fila de la tabla, en la segunda celda. Esto har que el reporte cargue la
lista de categoras de productos, en la segunda columna de cada fila. Renombre la
cabecera de la columna a Categoras de productos si fuera necesario. Al finalizar,
la ventana de diseo tendr la siguiente apariencia:
24. Seleccione la pestaa Preview para obtener una vista preliminar del reporte:
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
255
25. A continuacin, se modificar la apariencia del reporte, para que los encabezados
de columna aparezcan con fondo gris. Para esto, regrese al tab Design y
seleccione las cuatro celdas de la primera fila. En la ventana de propiedades,
cambie el valor de la propiedad BackgroundColor de la siguiente manera:
26. Para que los encabezados de columna aparezcan en negrita, seleccione la primera
fila del reporte. En la ventana de propiedades, expanda la propiedad Font, y
cambie el valor de la propiedad FontWeight a Bold:
INTELIGENCIA DE NEGOCIOS
256
27. Para colocar bordes en la tabla de color negro, seleccione todas las celdas de la
tabla utilizando el mouse. A continuacin, en la ventana de propiedades expanda
la propiedad BorderColor, y cambie el valor de la propiedad Default a Black:
28. Seleccione la pestaa Preview para obtener la vista preliminar del reporte:
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
4.3
257
INTELIGENCIA DE NEGOCIOS
258
Haga clic en Inicio, seleccione Todos los programas, seleccione Microsoft SQL
Server 2014 y, a continuacin, haga clic en SQL Server Data Tools.
En el men Archivo, seleccione Abrir y haga clic en Proyecto o solucin.
Haga clic en Tutorial y, a continuacin, elija Tutorial.sln. Este es el tutorial que
se
cre
en
Tutorial:
Crear
un
informe
de
tabla
bsico.
(https://technet.microsoft.com/es-es/library/ms167305(v=sql.105).aspx )
Haga clic en Aceptar para abrir el proyecto. El proyecto Tutorial se muestra en
el Explorador de soluciones con un informe denominado Sales Orders.rdl.
Nota
Si no ve el panel Datos de informe, en el men Ver, haga clic en Datos de informe.
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
259
SELECT
soh.OrderDate AS [Date],
soh.SalesOrderNumber AS [Order],
pps.Name AS Subcat, pp.Name as Product,
SUM(sd.OrderQty) AS Qty,
SUM(sd.LineTotal) AS LineTotal
FROM Sales.SalesPerson sp
INNER JOIN Sales.SalesOrderHeader AS soh
ON sp.BusinessEntityID = soh.SalesPersonID
INNER JOIN Sales.SalesOrderDetail AS sd
ON sd.SalesOrderID = soh.SalesOrderID
INNER JOIN Production.Product AS pp
ON sd.ProductID = pp.ProductID
INNER JOIN Production.ProductSubcategory AS pps
ON pp.ProductSubcategoryID = pps.ProductSubcategoryID
INNER JOIN Production.ProductCategory AS ppc
ON ppc.ProductCategoryID = pps.ProductCategoryID
GROUP BY ppc.Name, soh.OrderDate, soh.SalesOrderNumber,
pps.Name, pp.Name, soh.SalesPersonID
HAVING (ppc.Name = 'Clothing'
AND (soh.OrderDate BETWEEN (@StartDate) AND (@EndDate)))
Esta consulta es la misma que la anterior, con la nica excepcin de que se ha
agregado una condicin con dos parmetros de lmite:
AND (soh.OrderDate BETWEEN (@StartDate) AND (@EndDate))
INTELIGENCIA DE NEGOCIOS
260
Una vez que haya creado los parmetros para el informe, podr agregar valores
predeterminados para dichos parmetros. Los parmetros predeterminados permiten
que el informe se ejecute automticamente; en caso contrario, ser el usuario quien
deba especificar los valores de los parmetros para ejecutar el informe.
Para establecer los valores predeterminados para los parmetros
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
261
SELECT
soh.OrderDate AS [Date], DATENAME(weekday, soh.OrderDate) as Weekday,
soh.SalesOrderNumber AS [Order],
pps.Name AS Subcat, pp.Name as Product,
SUM(sd.OrderQty) AS Qty,
SUM(sd.LineTotal) AS LineTotal
FROM Sales.SalesPerson sp
INNER JOIN Sales.SalesOrderHeader AS soh
ON sp.BusinessEntityID = soh.SalesPersonID
INNER JOIN Sales.SalesOrderDetail AS sd
ON sd.SalesOrderID = soh.SalesOrderID
INNER JOIN Production.Product AS pp
ON sd.ProductID = pp.ProductID
INNER JOIN Production.ProductSubcategory AS pps
ON pp.ProductSubcategoryID = pps.ProductSubcategoryID
INNER JOIN Production.ProductCategory AS ppc
ON ppc.ProductCategoryID = pps.ProductCategoryID
GROUP BY ppc.Name, soh.OrderDate, soh.SalesOrderNumber,
pps.Name, pp.Name, soh.SalesPersonID
HAVING (ppc.Name = 'Clothing' AND (soh.OrderDate BETWEEN (@StartDate) AND
(@EndDate)))
En la consulta, se ha definido una columna calculada adicional para el da de la
semana en que tuvo lugar una venta; para ello, se ha agregado el siguiente comando
a la instruccin SELECT:
DATENAME (weekday, soh.OrderDate) as Weekday.
INTELIGENCIA DE NEGOCIOS
262
comprenda antes de crear los grficos; esto le ayudar a disearlos de manera rpida
y eficaz.
En la ilustracin siguiente se muestran muchos de los distintos elementos que se usan
en un grfico.
Puede publicar grficos por separado de un informe como elementos de informe. Los
elementos de informe son elementos de informe independientes que se almacenan en
el servidor de informes y se pueden incluir en otros informes. Use el Generador de
informes para examinar y seleccionar elementos de la Galera de elementos de
informe para agregarlos a los informes. Use el Diseador de informes o el Generador
de informes para guardar los elementos de informe en la galera de elementos de
informe.
Agregar un grfico a un informe (Generador de informes y SSRS)
La manera ms simple de agregar una regin de datos de Grfico a su informe es
ejecutar el Asistente para nuevo grfico. El asistente proporciona grficos de columna,
lnea, circular, barra y rea. Para stos y otros tipos de grfico, puede agregar tambin
un grfico manualmente.
Despus de agregar una regin de datos Grfico a la superficie de diseo, puede
arrastrar los campos de conjunto de datos de informe para los datos numricos y no
numricos hasta el panel de Datos del grfico en el grfico. Haga clic en el grfico
para mostrar el panel Datos del grfico con sus tres reas: Grupos de series, Grupos
de categoras y Valores
Para agregar un grfico a un informe utilizando el Asistente para grficos
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
263
En los grficos con ejes, como los grficos de barras y de columnas, es posible
que el eje de categoras no muestre todas las etiquetas de categora.
Medidores
La regin de datos de medidor es una regin de datos unidimensional que muestra un
solo valor del conjunto de datos. Los medidores siempre se sitan dentro de un panel
de medidores, en el que pueden agregarse medidores secundarios o adyacentes. En
el mismo panel de medidores, puede crear varios medidores que comparten funciones
comunes como el filtrado, la agrupacin o la ordenacin.
En un informe, puede usar los medidores para realizar muchas tareas:
INTELIGENCIA DE NEGOCIOS
264
Tipos de medidor
Reporting Services proporciona dos tipos de medidores: radial y lineal. Normalmente,
el medidor radial se utiliza cuando los datos se quieren expresar como una velocidad.
El medidor lineal se usa para expresar los datos como una temperatura o valor de
escala.
Las diferencias principales entre los dos tipos son la forma del medidor y los punteros
de medidor disponibles. Los medidores radiales son circulares, o partes de un crculo,
y se parecen a los indicadores de velocidad. Los punteros del medidor suelen ser
agujas, pero pueden ser marcadores o barras.
Los medidores lineales son rectangulares, orientados horizontal o verticalmente, y se
parecen a las reglas. Los punteros del medidor suelen ser termmetros, pero pueden
ser marcadores o barras. Debido a su forma, este tipo de medidor resulta til para su
integracin en las regiones de datos de la tabla o matriz para mostrar los datos de
progreso.
Aparte de estas diferencias, los dos tipos de medidor son intercambiables. Sin
embargo, si tiene que utilizar un medidor simple en su informe, podra interesarle
utilizar un indicador en lugar de un medidor.
Las opciones de medidor radial: Radial, Radial con medidor mini, Dos escalas, 90
grados Noreste, 90 grados Noroeste, 90 grados Suroeste, 90 grados Sureste, 180
grados Norte, 180 grados Sur, 180 grados Oeste, 180 grados Este e Indicador.
Medidor lineal
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
265
Las opciones de medidor lineal: Horizontal, Vertical, Varios punteros de barra, Dos
escalas, Rango de tres colores, Logartmico, Termmetro, Termmetro
fahrenheit/celsius y Grfico de vietas.
Agregar datos a un medidor
Una vez que haya agregado un medidor a la superficie de diseo, arrastre un campo
de conjunto de datos hasta el panel de datos del medidor. De forma predeterminada,
el medidor agrega los valores del campo en un valor que se muestra en el medidor.
Ese valor se adjunta al puntero utilizando la propiedad Value. Dependiendo del tipo de
datos del campo, el medidor utiliza el agregado SUM o COUNT. Al usar datos
numricos, indicados para agregar, el medidor usa la funcin SUM. De lo contrario,
usa el agregado COUNT. El valor del puntero puede utilizar otro agregado distinto o
ninguno.
Puede agregar agrupacin al medidor para ver grupos individuales o filas individuales
en el mismo. Cuando se aplican la agrupacin y el filtrado, el medidor usa el valor del
puntero para mostrar el ltimo grupo o la ltima fila del conjunto de datos devuelto.
Puede agregar varios valores a un mismo medidor agregando otro puntero. Este
puntero puede pertenecer a la misma escala o puede agregar otra escala y, a
continuacin, asociar el puntero a la misma.
A diferencia de los tipos de grficos del cuadro de dilogo Seleccionar tipo de grfico,
los tipos de medidores del cuadro de dilogo Seleccionar tipo de medidor se crean
mediante una combinacin de propiedades de medidor. Por tanto, no se puede
cambiar de tipo de medidor de la misma manera que se cambia de tipo de grfico.
Para cambiar el tipo de medidor, primero debe quitar el medidor y, a continuacin,
debe volver a agregarlo a la superficie de diseo. Un medidor tiene al menos una
escala y un puntero.
Si desea tener varias escalas, haga clic con el botn secundario en el medidor y, a
continuacin, seleccione Agregar escala. De forma predeterminada, se crea una
escala ms pequea que se sita dentro de la primera escala. La escala muestra
etiquetas y marcas de graduacin. Hay dos conjuntos de marcas de graduacin:
secundarias y principales.
Si desea tener varios punteros, haga clic con el botn secundario en el medidor y, a
continuacin, seleccione Agregar puntero. Se crea otro puntero en la misma escala,
pero si tiene varias escalas, puede asociar un puntero a cualquiera de ellas en el
medidor.
Consideraciones al agregar datos al medidor
Al igual que todas las dems regiones de datos, la regin de datos de medidor solo se
puede enlazar a un conjunto de datos. Si tiene varios conjuntos de datos, considere la
posibilidad de usar JOIN o UNION para crear un conjunto de datos o use medidores
independientes para cada conjunto de datos.
INTELIGENCIA DE NEGOCIOS
266
Los tipos de datos numricos se agregan con la funcin SUM. Los tipos de datos no
numricos se agregan con la funcin COUNT, que cuenta el nmero de instancias
para un valor o campo determinado perteneciente al conjunto de datos o al grupo.
Una vez agregados los datos, al hacer clic con el botn secundario en el puntero,
obtendr las opciones Borrar valor de puntero y Eliminar puntero. La opcin Borrar
valor de puntero quita el campo adjuntado al medidor, pero el puntero seguir
apareciendo en el medidor. La opcin Eliminar puntero quita el campo del medidor y
hace que el puntero deje de verse. Si vuelve a agregar un campo al medidor,
reaparece el puntero predeterminado. Despus de haber agregado el campo al
medidor, debe establecer los valores mximo y mnimo en la escala correspondiente
para dar contexto al valor en el medidor. Tambin puede establecer los valores mnimo
y mximo en un intervalo, que muestra un rea crtica en la escala. El medidor no
establecer automticamente los valores mnimo o mximo en la escala o el intervalo
porque no puede determinar cmo se debera percibir el valor.
Nota
Este mtodo no es aplicable cuando no hay ningn puntero en el medidor o el
informe contiene ms de un conjunto de datos y el panel de medidores no est
asociado a un conjunto de datos.
CARRERA DE COMPUTACIN
INTELIGENCIA DE NEGOCIOS
267
contienen nmeros con formato. Puede usar una expresin de Visual Basic para
convertir los valores de cadena en un tipo de datos numrico usando la constante
CDbl o CInt. Por ejemplo, la expresin siguiente convierte un campo de cadena
llamado MyField en valores numricos.
=Sum (CDbl (Fields!MyField.Value))
Definir un grupo en un medidor
Despus de haber agregado un campo al medidor, puede agregar un grupo de datos.
El medidor difiere de todas las dems regiones de datos de Reporting Services, que
pueden mostrar varios grupos en una regin de datos. El hecho de agregar un grupo
definiendo una expresin de grupo en el medidor, equivale a agregar un grupo de filas
en la regin de datos Tablix. Sin embargo, cuando se agrega el grupo, solo se muestra
el valor del ltimo grupo como valor del puntero en el medidor. Por ejemplo, si agrega
una expresin de agrupacin segn el ao, el puntero sealar al valor que representa
el valor de ventas agregado para el ltimo ao del conjunto de datos.
Es posible que desee agregar un grupo al medidor si, por ejemplo, est mostrando
varios medidores en una tabla o una lista y desea mostrar datos agregados por grupo.
4.3.1.3 Creacin de SubInformes
Un subinforme es un elemento de informe que muestra otro informe dentro del cuerpo
del informe principal. Como concepto, un subinforme de un informe es como un marco
en una pgina web. Se utiliza para incrustar un informe dentro de un informe.
Cualquier informe puede utilizarse como subinforme. El informe que se muestra como
el subinforme se almacena en un servidor de informes, normalmente en la misma
carpeta que el informe primario. Es posible disear el informe primario para que pase
sus parmetros al subinforme. Este tipo de informe puede repetirse dentro de las
regiones de datos mediante un parmetro que filtre los datos de cada instancia del
subinforme.
INTELIGENCIA DE NEGOCIOS
268
CARRERA DE COMPUTACIN