Resumen
En esta actividad se va a crear un cubo OLAP con Microsoft Analysis Services a partir de una base de datos de ejemplo de ventas en una cadena de supermercados. Se importarán las tablas de la base de datos de ejemplo, se crearán las dimensiones y el cubo, y se definirán jerarquías en las dimensiones. Se procesarán las dimensiones y el cubo para desplegarlo en el servidor de Analysis Services y se realizará una prueba en el explorador de cubos de SQL Server Management Studio para comprobar que el cubo se ha creado correctamente. Además, se plantearán actividades complementarias para explorar el cubo mediante una tabla dinámica en Excel y un informe en Power BI.
-
Crear una base de datos en SQL Server con la información de ventas de una cadena de supermercados desde archivos CSV.
-
Crear un cubo OLAP con Microsoft Analysis Services a partir de una base de datos de ejemplo de ventas en una cadena de supermercados.
-
Definir jerarquías y las relaciones entre sus niveles.
-
Procesar las dimensiones y el cubo para desplegarlo en el servidor de Analysis Services.
-
Usar el explorador de cubos de SQL Server Management Studio para consultar el cubo.
-
Explorar el cubo mediante tablas dinámicas en Excel e informes en Power BI.
1. Descripción de la actividad
Clonar el repositorio SampleDatabases de GitHub. La carpeta FoodMart
contiene una serie de archivos en formato CSV de una base de datos de ejemplo de ventas en una cadena de supermercados.
-
Crear una base de datos en SQL Server con el nombre
FoodMart2000
. No dejar a ilimitado el crecimiento del archivo de logs. -
Importar las tablas siguientes desde el menú
Tasks > Import Data
de SQL Server Management Studio. La primera fila tiene los nombres de las columnas. El formato de la fuenta de datos será el de archivo de texto plano y con extensión CSV. El destino será la base de datos SQL ServerFoodMart2000
creada en el paso anterior mediante la opciónSQL Server Native Client 11.0
.-
calendar.csv
(730 filas): Tabla Calendar. -
customer.csv
(10.281 filas): Tabla Customer. -
product.csv
(1.560 filas): Tabla Product. -
region.csv
(109 filas): Tabla Region. -
sales-1997.csv
(86.837 filas): Tabla Sales-1997. -
sales-1998.csv
(182.883 filas): Tabla Sales-1998. -
store.csv
(24 filas): Tabla Store.
-
-
Crear un proyecto nuevo de SQL Server Analysis Services con el nombre
FoodMart2000
usando la plantillaProyecto multidimensional de Analysis Services
. -
Crear un origen de datos con el nombre
FoodMart2000
que apunte a la base de datosFoodMart2000
. El origen de datos definirá una conexión nueva a la base de datosFoodMart2000
de SQL Server y lo hará mediante la autenticación de Windows. En la información de suplantación (Impersonation Information
), seleccionar la opciónUtilizar un nombre de usuario y una contraseña de Windows específicos
y proporcionar las credenciales de acceso al equipo. -
Crear una Vista de origen de datos denominada FoodMart2000 para el Origen de datos creado en el paso anterior agregando las tablas siguientes:
-
Calendar
-
Customer
-
Product
-
Region
-
Sales-1997
-
Sales-1998
-
Store
-
-
Modificar la vista de datos para crear una consulta con nombre denominada
Sales
que realice la unión de las tablasSales-1997
ySales-1998
. La unión deberá realizarse haciendoSELECT
con el nombre de las columnas y no con*
. Una vez creada la consulta con nombre, se pueden eliminar las tablasSales-1997
ySales-1998
de la vista de datos. -
Modificar la vista de datos para crear las relaciones entre la tabla de hechos
Sales
y las tablas de dimensiónCalendar
,Customer
,Product
yStore
. Las relaciones se establecerán entre las columnas que tengan el mismo nombre en las tablas de hechos y en las tablas de dimensiones. Para la relación entreSales
yCalendar
, se deberá establecer la relación entreSales.transaction_date
yCalendar.date
. Establecer también la relación entreStore
yRegion
a través de la columnaregion_id
. Si al crear las relaciones pide convertir la columna de destino (de la dimensión) a una clave principal, aceptar la conversión. -
Crear un cubo con el nombre
FoodMart2000
que contenga la tabla de hechosSales
y las dimensionesCalendar
,Customer
,Product
yStore
. El cubo deberá contener la medida de recuento de unidades vendidas. -
Modificar el diseño de las dimensiones para que incluyan todos los atributos disponibles en las tablas de origen.
-
Modificar el diseño de la dimensión
Customer
para definir una jerarquía denominadaGeografía
con los nivelesCountry
>State Province
>City
>Customer
de arriba a abajo. Establecer también la relación entre atributos de la jerarquía.La tabla
Customer
tiene valores en la columnacity
que pueden corresponder a dos valores diferentes en la columnastate_province
. Por ejemplo,Richmond
puede corresponder aBritish Columbia
enCanada
o aCalifornia
enUSA
. Hay que solucionar este problema antes de definir la jerarquía. Ver video para resolución de problemas de claves duplicadas en dimensiones. -
Modificar el diseño de la dimensión
Store
para definir una jerarquía denomindaGeografía
con los nivelesCountry
>State
>City
>Store
de arriba a abajo. Establecer también la relación entre atributos de la jerarquía. -
Procesar las dimensiones y el cubo para realizar el despliegue en el servidor de Analysis Services.
-
Realizar una prueba en el explorador de cubos de SQL Server Management Studio para comprobar que el cubo se ha creado correctamente. Por ejemplo, se puede comprobar las ventas por marca y país del cliente (Marca
ADJ
y paísCanadá
tiene un valor de12
, y la marcaAmigo
enMéxico`
tiene un valor de91
).
2. Actividades complementarias
Una vez creado el cubo, se pueden realizar las siguientes actividades complementarias:
-
Crear una tabla dinámica en Excel para explorar el cubo
-
Crear un informe en Power BI para explorar el cubo
Para crear la tabla dinámica en excel podemos plantear un ejemplo que muestre en la zona Filas
la jerarquía Geografía
de la dimensión Customer
, en la zona Filtros
los campos Brand
, Low Fat
y Recyclable
de la dimensión Product
. En la zona de datos, mostrar la medida de ventas. La tabla dinámica deberá mostrar algo similar a la figura siguiente al seleccionar el valor 1
en Low Fat
y Recyclable
en la zona de filtros, y desplegando la jerarquía Geografía
en la zona de filas mostrando las ciudades del estado de OR
en USA
.
Como informe Power BI, la siguiente figura muestra un ejemplo de informe variado que combina gráficos de anillo, de columnas, de barras y de mapa. A continuación se muestran unas breves indicaciones de lo que debe representar cada uno de ellos.
-
Gráficos de anillos
-
Ventas por género (
gender
) -
Ventas por país (jeraquía
Geografía
de la dimensiónCustomer
con los nivelesCountry
yCity
) -
Ventas por estado civil (
marital_status
) -
Ventasr por propietario de vivienda (
homeowner
) -
Gráficos de columnas
-
Ventas por número de hijos en casa (
num children at home
) -
Ventas por nivel de estudios (
education
) -
Ventas por tipo de tarjeta de crédito (
member card
) -
Ventas por ocupación (
occupation
) -
Ventas por ingresos anuales (
yearly income
) -
Ventas por estado (jerarquía
Geografía
de la dimensiónCustomer
con los nivelesCountry
yState Province
) -
Gráficos de barras
-
Ventas de productos dietéticos (
low fat
) -
Ventas de productos reciclables (
recyclable
) -
Gráfico de mapa
-
Ventas por ciudad (jerarquía
Geografía
de la dimensiónCustomer
con el nivelCity
)
3. Conclusiones
En esta actividad se ha creado un cubo OLAP con Microsoft Analysis Services a partir de una base de datos de ejemplo de ventas en una cadena de supermercados. Se han importado las tablas de la base de datos de ejemplo, se han creado las dimensiones y el cubo, y se han definido jerarquías en las dimensiones Customer
y Store
. Se han procesado las dimensiones y el cubo para desplegarlo en el servidor de Analysis Services y se ha realizado una prueba en el explorador de cubos de SQL Server Management Studio para comprobar que el cubo se ha creado correctamente. Además, se han planteado actividades complementarias para explorar el cubo mediante una tabla dinámica en Excel y un informe en Power BI.