Evan Barke

Características de SQL Server Business Intelligence – Creando un Simple Cubo OLAP

December 18, 2015 by

Introducción

Los cubos multidimensionales y las bases de datos transaccionales son dos cosas muy diferentes. Por experiencia he visto DBAs veteranos evadir el tema de los cubos completamente porque es un área desconocida para ellos. Frecuentemente el trabajo de los cubos es pasado a los desarrolladores por su comodidad al usar Visual Studio. Esto es una gran pena porque es, en realidad, nada difícil crear un cubo OLAP. Es seguro decir que la mayoría del trabajo necesita ser hecho en un ambiente tradicional de motor de bases de datos / SSIS creando el modelo de almacén de datos para mantenerlo con paquetes ETL. Este artículo asume que usted ya tiene un almacén de datos y usa AdventureWorksDW2012 como ejemplo. Seguir estos pasos debería ponerlo en camino a una solución decente de inteligencia de negocios de SQL Server en un cubo OLAP optimizado para lectura:

  • *Por favor tome nota: Usted necesitará SQL Server Data Tools o SQL Server Business Intelligence Developments Studio (BIDS). Puede obtenerlo aquí.

Iniciando

Cada cubo OLAP es creado con una solución de análisis. Para crear uno, abra SQL Server Data Tools o BIDS y cree un nuevo “Analysis Services Multidimensional and Data Mining Project”.

Creating a new project using SQL Server Data Tools or BIDS

Esto abrirá una solución vacía y creará las carpetas básicas necesarias en el explorador de soluciones. Algo que es bastante útil saber acerca de los proyectos SQL Server Analysis es el orden de creación en el flujo de trabajo sigue el orden de las carpetas en el Explorador de Soluciones.

Así que el orden de creación tiene que ser:

  1. Data Source
  2. Data Source View
  3. OLAP Cube
  4. Dimensions

The order of the folders in the Solution Explorer

Así que comencemos a crear una nueva fuente de datos. Para hacer esto, haga clic derecho en Data Sources y haga clic en “New Data Source”. Esto abrirá un asistente que le permitirá crear una conexión normal de base de datos a su almacén de datos:

Data source creation - Creating a database connection

En el siguiente paso se le pedirá especificar el tipo de conexión. Es importante aquí pensar acerca del tipo de seguridad que necesitará para su cubo OLAP. Yo recomiendo crear una cuenta de servicio en su Active Directory y usar la opción “Use a specific Windows user name and password” para establecer este usuario. Usted puede encontrar más información acerca de esto aquí.

Data Source Wizard - specifying the type of the connection

Después de completar este paso ahora usted tiene una fuente de datos para su cubo OLAP. Lo siguiente que debe hacer es crear una vista de fuente de datos y especificar qué datos desea usar para su cubo. Esto puede ser hecho haciendo clic derecho en la carpeta Data Source Views y añadiendo uno nuevo. El asistente le preguntará qué conexión desearía usar y qué hechos / dimensiones de tabla desea usar para su cubo. Generalmente usted deseará seleccionar todas las tablas de hechos y dimensiones y lidiar con el particionamiento después en el cubo, de modo que pueda seguir y hacer esto. Usted también tiene la opción de elegir sólo partes de su almacén de datos. Por simplicidad he hecho esto y sólo elegí las secciones de Internet Sales de la base de datos AdventurWorksDW2012.

Creating a data source view - specifying which data you want to use for your cube

Es importante tener las relaciones de llave externa correctas en su almacén de datos de antemano porque SQL Server Data Tools puede crear un diagrama de vista decente usando las relaciones existentes en la DW. Si usted no ha hecho esto, tendrá que especificar explícitamente las relaciones entre sus tablas de hecho y dimensiones. Si todo va bien usted tendrá una vista similar a esta:

SQL Server Data Tools - View diagram

Ahora viene la parte divertida: crear la estructura del cubo. Una vez que tiene una vista de fuente de datos configurada, usted puede crear un cubo. Haga clic derecho en “Cubes” y elija “New Cube”. En este asistente usted debería elegir “Use existing tables”. Se le pedirá seleccionar su “Measure Group Tables”. Estas son sus tablas de hechos. Selecciónelas y haga clic en next. El asistente luego detectará automáticamente los campos que pueden ser usados como medidas. Haga clic en next de nuevo. Asumiendo que sus llaves externas eran correctas en el DW o usted hizo las relaciones explícitas correctamente en la vista de la fuente de datos, el asistente ahora seleccionará automáticamente las dimensiones necesarias. Para declarar explícitamente las relaciones entre las tablas la manera más fácil es arrastrar y soltar las uniones entre la llave/llave externa y el modelo de vista de fuente de datos / interfaz. Una vez que esto esté hecho, haga clic en next de nuevo. Dele un nombre a su cubo y haga clic en “Finish”.

Cube Wizard - setting the cube name, reviewing its structure

¡Voila! Ahora tiene su primera estructura de cubo. Debería verse algo así:

Cube structure preview

Ya está cerca de terminar. La configuración básica está completa pero su cubo sólo existe como un plano en este punto. Para crearlo en su servidor Analysis Services primero necesita decirle a Data Tools dónde está localizado su servidor. Esto se hace con un clic en Project > [ElNombreDeSuProyecto] Properties, y luego yendo a la pestaña de despliegue. Aquí usted puede especificar la localización de su servidor Analysis Services y el nombre de su base de datos (si no existe será creada):

Cube property page - deployment tab

Para crear el cubo y procesar los datos del almacén de datos al nuevo cubo usted necesita hacer clic en Build > Process… en la barra de herramientas superior de Visual Studio o haciendo clic derecho en el archivo de su cubo dentro de la solución. Esto mostrará una pantalla diciendo que su base de datos está caducada (lo cual es normal, ya que aún no existe), acepte desplegar su proyecto y Data Tools creará la base de datos. Luego una pantalla de “Process Cube” aparecerá:

Process Cube dialog

En esta pantalla usted puede dejar todo por defecto y hacer clic en “Run…” y si usted no tiene errores de configuración su cubo se procesará:

Process progress dialog - process succeeded

Una vez que ha procesado el cubo por primera vez usted puede explorar los datos a través de la solución abriendo el cubo y haciendo clic en la pestaña “Browser”. Usted también puede abrir la misma pantalla abriendo SQL Server Management Studio y conectándose a su Analysis Server (debe tener cuidado de no conectarse al motor de base de datos usual) y haciendo clic derecho en el cubo. Ahí puede elegir “Explore”.

Exploring the created cube

sitio MSDN. De todas maneras, el tópico de crear reportes SSRS basados en consultas MDX será cubierto en otro artículo.

¿A dónde ir desde aquí?

Una vez que tenga un cubo básico funcionando hay muchas cosas que puede que desee hacer para mejorar la experiencia del usuario. Algunos ejemplos de características avanzadas son las medidas calculadas (para crear sumas año a fecha o sumas de meses concurrentes que son pre calculados), dimensiones jerárquicas que pueden ser usadas para ordenar dimensiones y permitir un análisis más significativo de los datos. Este tipo de cosas pueden se añadidas al cubo usando la selección de pestañas en la pantalla Cube en Data Tools:

Cube screen in SQL Server Data Tools

Una vez que los cambios ha sido hechos a su solución de cubo usted puede aplicarlos al cubo reprocesando desde la solución analítica como hizo anteriormente.

En conclusión, puede que usted quiera pensar acerca de las siguientes cosas:

  • Añada un paso de procesamiento de cubo a su paquete ETL que es usado para actualizar el almacén de datos.
  • Configure su servidor de reportes y comience a crear reportes.
  • Añada medidas calculadas avanzadas, dimensiones jerárquicas y perspectivas de cubo.
  • Investigue la utilidad de SharePoint y los reportes de auto servicio.

Referencias
The Basic MDX Query
SSAS Impersonation Smackdown – Specific Windows Acct vs Service Acct How to Create an Analysis Services Cube

Evan Barke

Evan Barke

Having worked on highly transactional production systems and advanced corporate business intelligence, Evan is now using this experience make a difference in the eHealth world. He is driven by the love of technology and a desire to solve complex problems creatively.

View all posts by Evan Barke
Evan Barke
7,658 Views