Componentes de Business Intelligence del Microsoft SQL Server Introducción. Microsoft Business Intelligence es una oferta completa de componentes que permite explotar la información empresarial de una forma rápida y económica. Las soluciones de Microsoft Business Intelligence incluyen: SQL Server Database Engine (Motor de base de datos de SQL Server) SQL Server Analysis Services (SSAS), SQL Server Integration Services (SSIS). SQL Server Reporting Services (SSRS), así como un conjunto integrado de herramientas de desarrollo y administración, como: Business Intelligence Development Studio. (BIDs) SQL Server Management Studio. (SSMS) Para el SQL Server 2012 presento además el Microsoft SQL Server Data Tools (SSDT) que amplía la capacidad del Shell de Business Intelligence con la Herramienta de Administración de Datos (SSDT) y Plantillas de Proyectos de Visual Studio. Estos componentes y herramientas combinados le permiten desarrollar y administrar con facilidad soluciones empresariales escalables y de gran interoperabilidad, accesibles para todas las personas de todos los niveles de una organización. Sin embargo, para diseñar, implementar y mantener correctamente una solución empresarial, necesita algo más que componentes y herramientas. También necesita información sobre: Cómo utilizar dichos componentes y herramientas para resolver problemas empresariales, Prácticas recomendadas sobre cómo implementar soluciones empresariales habituales. Conceptos de Analysis Services Microsoft SQL Server 2005 Analysis Services incorpora funcionalidades OLAP (Online Analytical Processing) y de Data Mining para las aplicaciones de Inteligencia Empresarial. Analysis Services soporta la creación y administración OLAP, que son unas bases de datos analíticas, permitiéndole diseñar, crear y gestionar estructuras multidimensionales que contienen datos agregados a partir de orígenes diversos, como bases de datos relacionales. Microsoft Office Excel, ofrece un soporte completo y flexible a Analysis Services, permitiendo crear tablas y gráficos dinámicos que ataquen los cubos OLAP. Microsoft SQL Server Analysis Services es una herramienta que permite a las organizaciones mejorar y optimizar las tomas de decisiones empresariales dentro de la organización.
Analysis Services combina los mejores aspectos del análisis tradicional basado en OLAP y la elaboración de informes basada en relaciones al permitir a los programadores definir un único modelo de datos, denominado Unified Dimensional Model (UDM), a partir de uno o más orígenes de datos físicos. Todas las consultas de usuario final desde aplicaciones OLAP, de elaboración de informes y de BI personalizadas obtienen acceso a los orígenes de datos subyacentes a través del modelo UDM, que proporciona una única vista empresarial de estos datos relacionales. Analysis Services proporciona un amplio conjunto de algoritmos de minería de datos para permitir a los usuarios empresariales recopilar los datos mediante la búsqueda de patrones y tendencias específicos. Estos algoritmos de minería de datos se pueden utilizar para analizar los datos a través de un modelo UDM o directamente a partir de un almacén de datos físico.
Clientes (Analysis Services - Datos multidimensionales) Microsoft SQL Server Analysis Services admite una arquitectura de cliente ligero. El motor de cálculo de Analysis Services depende totalmente del servidor, por lo que todas las consultas se resolverán en él. En consecuencia, para cada consulta solo se necesita realizar un viaje de ida y vuelta entre el cliente y el servidor, lo que produce un rendimiento escalable a medida que las consultas aumenten en complejidad. El protocolo nativo para Analysis Services es XML for analysis (XML/A). Analysis Services proporciona varias interfaces de acceso a datos para aplicaciones cliente, pero todos estos componentes se comunican con una instancia de Analysis Services usando XML for analysis. Se proporcionan varios proveedores distintos en Analysis Services para admitir diferentes lenguajes de programación. Un proveedor se comunica con un servidor de Analysis Services enviando y recibiendo XML for Analysis en paquetes SOAP sobre TCP/IP o sobre HTTP a través de Internet Information Services (IIS). La conexión HTTP utiliza un objeto COM, denominado bombeo de datos y cuya instancia ha sido creada por IIS, que actúa como conducto para los datos de Analysis Services. El bombeo de datos no examina de ningún modo los datos subyacentes contenidos en el flujo HTTP, ni ninguna de las estructuras de datos subyacentes está disponible para el código en la propia biblioteca de datos.
Las aplicaciones cliente de Win32 pueden conectarse con un servidor de Analysis Services mediante interfaces OLE DB para OLAP o mediante el modelo de objetos Microsoft ActiveX Data Objects (ADO) para lenguajes de automatización COM (Modelo de objetos componentes) como, por ejemplo, Microsoft Visual Basic. Las aplicaciones codificadas con lenguajes.net se pueden conectar con un servidor de Analysis Services mediante ADOMD.NET. Las aplicaciones existentes pueden comunicarse con Analysis Services sin necesidad de ser modificadas utilizando simplemente uno de los proveedores de Analysis Services.
Analysis Services tiene una arquitectura web con un nivel medio completamente escalable Lenguaje de programación C++ Visual Basic 6 Lenguajes.NET Cualquier lenguaje que admita SOAP Interfaz de acceso a datos OLE DB para OLAP ADO MD ADO MD.NET XML for Analysis para implementación en organizaciones pequeñas y medianas. Analysis Services ofrece una amplia compatibilidad de nivel medio para servicios web. Las aplicaciones ASP con compatibles con OLE DB para OLAP y ADO MD, y las aplicaciones ASP.NET son compatibles con ADOMD.NET. El nivel medio, que se muestra en la siguiente ilustración, se puede escalar a muchos usuarios simultáneos.
Las aplicaciones cliente y de nivel medio pueden comunicarse directamente con Analysis Services sin necesidad de ningún proveedor. Las aplicaciones cliente y de nivel medio pueden enviar XML for Analysis en paquetes SOAP sobre TCP/IP, HTTP o HTTPS. El cliente puede estar codificado con cualquier lenguaje compatible con SOAP. La comunicación se administra mucho más fácilmente en este caso a través de Internet Information Services (IIS) mediante HTTP, aunque también puede codificarse una conexión directa con el servidor mediante TCP/IP. Se trata de la solución de cliente más ligero para Analysis Services.
Diagrama de la arquitectura Las instancias de Analysis Services se ejecutan como un servicio independiente y la comunicación con el servicio se produce a través de XML for Analysis (XMLA), mediante HTTP o TCP. AMO es el nivel que existe entre la aplicación de usuario y la instancia de Analysis Services. Este nivel proporciona acceso a los objetos administrativos de Analysis Services. AMO es una biblioteca de clases que toma los comandos de una aplicación cliente y los convierte en mensajes XMLA para la instancia de Analysis Services. AMO muestra los objetos de instancia de Analysis Services a la aplicación de usuario final como clases, con miembros de método que ejecutan comandos y miembros de propiedad que contienen los datos de los objetos de Analysis Services. La siguiente ilustración muestra la arquitectura de componentes de Analysis Services, incluidos todos los elementos principales que se ejecutan dentro de la instancia de Analysis Services y todos los componentes de usuario que interactúan con ella. La ilustración también muestra que la única manera de tener acceso a la instancia es utilizando el agente de escucha de XML for Analysis (XMLA), ya sea mediante HTTP o TCP.
Componente de escucha XMLA El componente de escucha XMLA controla todas las comunicaciones XMLA entre Analysis Services y los clientes. Puede utilizarse el valor de configuración Analysis ServicesPort del archivo msmdsrv.ini para especificar un puerto en el que escucha una instancia de Analysis Services. Un valor de 0 en este archivo indica que Analysis Services escucha en el puerto predeterminado. A menos que se especifique lo contrario, Analysis Services utiliza los siguientes puertos TCP predeterminados: Puerto Descripción 2383 Instancia predeterminada de SQL Server Analysis Services. 2382 Redirector de otras instancias de SQL Server Analysis Services. Se asigna dinámicamente al iniciar el servidor. Instancia con nombre de SQL Server Analysis Services.
Cubos locales (Analysis Services - Datos multidimensionales) Para crear, actualizar o eliminar los cubos locales, debe escribir y ejecutar un script ASSL o un programa AMO. Los cubos locales y los modelos de minería de datos locales permiten el análisis en una estación de trabajo cliente aunque esté desconectada de la red. Por ejemplo, una aplicación cliente puede llamar al proveedor OLE DB para OLAP 9.0 (MSOLAP.3), que carga el motor de cubos locales para crear y consultar los cubos locales, tal como se muestra en la siguiente ilustración: ADMOD.NET y los objetos de administración de análisis (AMO) también cargan el motor de cubo local cuando interactúan con los cubos locales. Solo un proceso puede obtener acceso al archivo de cubo local porque el motor de cubo local bloquea exclusivamente un archivo de cubo local cuando establece una conexión al cubo local. En un proceso se permiten hasta cinco conexiones simultáneas. Un archivo.cub puede contener más de un cubo o modelo de minería de datos. Las consultas a los cubos locales y modelos de minería de datos se controlan mediante el motor de cubos locales y no necesitan ninguna conexión con una instancia de Analysis Services. Nota El uso de SQL Server Management Studio y de Herramientas de datos de SQL Server (SSDT) para administrar cubos locales no está admitido.
Cubos locales Un cubo local se puede crear y rellenar desde un cubo existente en una instancia de Analysis Services o desde un origen de datos relacionales. Origen de los datos del cubo local Cubo basado en servidor Origen de datos relacionales Método de creación Puede usar la instrucción CREATE GLOBAL CUBE o un script de Lenguaje de scripting de Analysis Services (ASSL) para crear y rellenar un cubo desde un cubo basado en servidor. Para obtener más información, vea CREATE GLOBAL CUBE (instrucción de MDX) o Referencia de Analysis Services Scripting Language. Puede usar un script ASSL para crear y rellenar una base de datos relacional OLE DB. Para crear un cubo local mediante ASSL, conéctese a un archivo de cubo local (*.cub) y ejecute el script ASSL de la misma forma que ejecuta un script ASSL en una instancia de Analysis Services para crear un cubo de servidor. Para obtener más información, vea Referencia de Analysis Services Scripting Language. Use la instrucción REFRESH CUBE para volver a generar un cubo local y actualizar sus datos. Para obtener más información, vea REFRESH CUBE (Instrucción, MDX). Cubos locales creados desde cubos basados en servidor Al crear cubos locales creados a partir de cubos basados en servidor, debe tener en cuenta las siguientes consideraciones: Las medidas de recuento distintivas no están admitidas. Cuando agrega una medida, también debe incluir como mínimo una dimensión relacionada con la medida que se agrega. Para obtener más información acerca de las relaciones de dimensiones para medir los grupos, vea Relaciones de dimensión. Cuando agrega una jerarquía de elementos primarios y secundarios, los niveles y los filtros de la jerarquía de elementos primarios y secundarios se omiten y se incluye la totalidad de la jerarquía de elementos primarios y secundarios. Las propiedades de los miembros no se crean. Cuando incluye una medida de suma parcial, no se permiten segmentos en la dimensión de Cuenta o Tiempo. Las dimensiones de referencias siempre se materializan. Cuando incluye una dimensión varios a varios, se aplican las siguientes reglas: o La dimensión varios a varios no se puede segmentar. o Se debe agregar una medida del grupo de medidas intermedio.
o No se puede segmentar ninguna dimensión común a los dos grupos de mensajes implicados en la relación varios a varios. Solo los miembros calculados, los conjuntos con nombres y las asignaciones que dependen de medidas y dimensiones agregadas al cubo local se mostrarán en el cubo local. Los miembros calculados, los conjuntos con nombre y las asignaciones no válidos se excluirán automáticamente. Seguridad Para que un usuario pueda crear un cubo local a partir de un cubo del servidor, al usuario se le debe conceder el permiso Obtención de detalles y cubo local en el cubo del servidor. Para obtener más información, vea Conceder acceso a un cubo. Los cubos locales no se protegen mediante roles como los cubos de servidor. Cualquier usuario con acceso de nivel de archivo a un archivo de cubo local puede realizar consultas en los cubos que allí residen. Puede usar la propiedad de conexión Encryption Password en un archivo de cubo local para establecer una contraseña en el archivo de cubo local. Al establecer una contraseña en un archivo de cubo local es preciso que todas las conexiones futuras al archivo de cubo local usen esta contraseña para consultar el archivo.
Acceso a datos de modelos multidimensionales (Analysis Services: datos multidimensionales) Aplicaciones cliente Aunque Analysis Services proporciona interfaces que permiten generar o integrar bases de datos multidimensionales mediante programación, un enfoque más habitual consiste en utilizar aplicaciones cliente existentes de Microsoft y otros fabricantes de software que tienen acceso de datos integrados a datos de Analysis Services. Las aplicaciones de Microsoft siguientes admiten conexiones nativas a datos multidimensionales. Excel Los datos multidimensionales de Analysis Services se suelen presentar usando controles de tablas dinámicas y gráficos dinámicos en un libro de Excel. Las tablas dinámicas son apropiadas para los datos multidimensionales porque las jerarquías, las agregaciones, y las construcciones de navegación del modelo se combinan bien con las características de resumen de datos de una tabla dinámica. En una instalación de Excel se incluye un proveedor de datos OLE DB de Analysis Services para facilitar la configuración de las conexiones de datos. Informes de Reporting Services Puede utilizar el Generador de informes o el Diseñador de informes para crear informes que utilicen bases de datos de Analysis Services que contengan datos analíticos. El Generador de informes y el Diseñador de informes incluyen un diseñador de consultas MDX que se puede utilizar para escribir o diseñar instrucciones MDX que recuperen datos de un origen de datos disponible. Herramientas de datos de SQL Server Los diseñadores de modelos y de informes utilizan las herramientas de de datos de SQL Server para generar soluciones que incluyen modelos multidimensionales. La implementación de la solución en una instancia de Analysis Services es lo que crea la base de datos a la que se conecta posteriormente desde Excel, Reporting Services y otras aplicaciones cliente de Business Intelligence. SQL Server Data Tools se generan en un shell de Visual Studio y usan proyectos para organizar y contener el modelo. SQL Server Management Studio Para los administradores de bases de datos, SQL Server Management Studio es un entorno integrado para administrar las instancias de SQL Server, por ejemplo instancias de Analysis Services y bases de datos multidimensionales..
Lenguajes de consulta MDX es un lenguaje de cálculo y consulta estándar del sector que se utiliza para recuperar datos de bases de datos OLAP. En Analysis Services, MDX es el lenguaje de consulta que se utiliza para recuperar datos, pero también admite la definición de datos y la manipulación de datos. Los editores MDX se integran en SQL Server Management Studio, Reporting Services y las herramientas de datos de SQL Server. Puede utilizar los editores MDX para crear consultas ad hoc o script reutilizable si la operación de datos es repetible. Algunas herramientas y aplicaciones, como Excel, usan construcciones MDX internamente para consultar un origen de datos de Analysis Services. También se puede utilizar MDX mediante programación, incluyendo la instrucción MDX en un solicitud Execute de XMLA.
Integration Services: Integration Services es una plataforma para generar soluciones de integración de datos de alto rendimiento, lo que incluye paquetes que proporcionan procesamiento de extracción, transformación y carga (ETL) para almacenamiento de datos, proporcionando la posibilidad de integrar datos usando tareas y transformaciones de datos Es probable que antes de migrar unos datos de un origen de datos a otro, necesite realizar unas transformaciones previas, ya sean sencillas, como puede ser el cambio de un tipo de datos en la tabla de destino, o más complejos como la creación de columnas calculadas. Mediante la herramienta cliente Business Intelligente Developement Stuido, puede diseñar paquetes con un flujo de trabajo, con restricciones para que ese flujo de trabajo se desvíe por unas tareas o por otras, dependiendo de si cumplen las restricciones. En flujo de trabajo, puede agregar una gran variedad de tareas, desde la ejecución de un trabajo del servidor, a la ejecución de una sentencia Transact SQL pasando por el envío un correo electrónico de notificación. Entre estas tareas, destaca la tarea flujo de datos, donde podrá agregar, si necesita, una transformación de los datos antes de insertarlos en el destino.
Paquetes de Integration Services (SSIS) Un paquete es una colección organizada de conexiones, elementos de flujo de control, elementos de flujo de datos, controladores de eventos, variables, parámetros y configuraciones que se pueden ensamblar con la ayuda de las herramientas gráficas de diseño proporcionadas por SQL Server Integration Services o mediante programación.a continuación guarda el paquete completado en SQL Server, el Almacén de paquetes SSIS o el sistema de archivos, o puede implementar el proyecto de ssisnoversion en el servidor SSIS. El paquete es la unidad de trabajo que se recupera, ejecuta y guarda. Al crear por primera vez un paquete, es un objeto vacío que no hace nada. Para agregar funcionalidad a un paquete, debe agregarle un flujo de control y, opcionalmente, uno o más flujos de datos. El siguiente diagrama muestra un paquete individual que contiene un flujo de control con una tarea Flujo de datos que, a su vez, contiene un flujo de datos. Una vez creado el paquete básico, puede agregarle características avanzadas como registro y variables para extender su funcionalidad. Para obtener más información, vea la sección Objetos que extienden la funcionalidad de un paquete. Una vez completado el paquete, puede configurarse estableciendo propiedades de nivel de paquete que permitan implementar la seguridad, reiniciar paquetes desde puntos de comprobación o incorporar transacciones en el flujo de trabajo de paquetes Un flujo de control consta de una o más tareas y contenedores que se ejecutan cuando se ejecuta el paquete. Para controlar el orden o definir las condiciones para ejecutar la siguiente tarea o contenedor del flujo de control del paquete, puede usar restricciones de precedencia para conectar las tareas y los contenedores de un paquete.también se puede agrupar y ejecutar repetidamente un subconjunto de tareas y contenedores como una unidad en el flujo de control del paquete. Un flujo de datos consta de los orígenes y destinos que extraen y cargan datos, las transformaciones que modifican y extienden datos, y las rutas que vinculan orígenes,
transformaciones y destinos. Para poder agregar un flujo de datos a un paquete, el flujo de control de paquetes debe incluir una tarea Flujo de datos. La tarea Flujo de datos es el ejecutable del paquete SSIS que crea, organiza y ejecuta el flujo de datos. Se abre una instancia independiente del motor de flujo de datos para cada tarea Flujo de datos de un paquete. Un paquete suele incluir al menos un administrador de conexiones. Un administrador de conexiones es un vínculo entre un paquete y un origen de datos que define la cadena de conexión para acceder a los datos que las tareas, transformaciones y controladores de eventos del paquete usan. Integration Services incluye topos de conexiones para orígenes de datos tales como archivos de texto y XML, bases de datos relacionales y proyectos y bases de datos de Analysis Services. Flujo de datos SQL Server Integration Services proporciona tres tipos de componentes de flujo de datos: orígenes, transformaciones y destinos. Los orígenes extraen datos de almacenes de datos tales como tablas y vistas en bases de datos relacionales, archivos y bases de datos de Analysis Services. Las transformaciones modifican, resumen y limpian datos. Los destinos cargan datos en almacenes de datos o crean conjuntos de datos almacenados en la memoria. Además, Integration Services proporciona rutas que conectan la salida de un componente con la entrada de otro componente. Las rutas definen la secuencia de los componentes y permiten agregar anotaciones en el flujo de datos o ver el origen de la columna. Los componentes de flujo de datos se conectan conectando la salida de orígenes y destinos con la entrada de transformaciones y destinos. Al generar un flujo de datos normalmente se conecta el segundo componente y los componentes subsiguientes a medida que se agregan al flujo de datos. Después de conectar el componente, las columnas de entrada están disponibles para su uso en la configuración del componente. Cuando no hay columnas de entrada disponibles, tiene que completar la configuración del componente después de conectarse al flujo de datos. El siguiente diagrama muestra un flujo de datos que tiene un origen, una transformación con una entrada y una salida, y un destino. El diagrama incluye las entradas, salidas y salidas de error además de las columnas de entrada, salida y externas.
Agregar una tarea Flujo de datos al flujo de control de un paquete es el primer paso en la implementación de un flujo de datos en un paquete. Un paquete puede incluir varias tareas Flujo de datos, cada una de las cuales tiene su propio flujo de datos. Por ejemplo, si un paquete requiere que los flujos de datos se ejecuten en un orden especificado, o que se realicen otras tareas entre los flujos de datos, debe utilizar una tarea Flujo de datos independiente para cada flujo de datos.
Reporting Services Microsoft SQL Server Reporting Services es una solución completa basada en servidor diseñada para ayudarle a crear, administrar y publicar informes basados en Web, pudiendo además gestionar de forma centralizada la seguridad y la distribución de los informes generados. Además, permite devolver la información automáticamente en distintos formatos, como pueden ser Excel, PDF etc.. Los desarrolladores pueden crear informes de distintas características desde la herramienta integrada Business Intelligence Developement Studio, mostrando datos agrupados por páginas, gráficos, desplegables para que un usuario filtre la información antes de ejecutar el informe y muchas opciones más. Reporting Services, proporciona la herramienta Report Builder, con la que usuarios finales, pueden crear, formatear y publicar sus propios informes. El acceso a los informes, puede ser de diversas formas, entre ellas: Report Manager: es un portal de Reporting Services donde los usuarios pueden conectarse y visualizar los informes y donde los administradores pueden configurar los accesos y la administración del propio portal. ReportViewer: es un control que pueden usar las aplicaciones cliente para acceder a los informes Sharepoint: Gracias a la integración que tiene Reporting Services con Sharepoint, puede agregar informes en una plataforma de Sharepoint, como un webpart.
Una definición de informe se pueden crear, publicar o guardar, compilar, procesar, almacenar en caché, representar, ver, exportar y guardar como historial. Al ejecutar un informe, el servidor de informes lo procesa en tres pasos: procesamiento del informe, procesamiento de los datos y representación. El procesamiento de los datos y del informe tiene lugar en una definición de informe, y los resultados tienen un formato intermedio interno. Los informes en formato intermedio se representan posteriormente en un formato de visualización específico. En el diagrama siguiente se muestran las etapas y los elementos del procesamiento de informes. Diagrama de procesamiento de informes