Léame del ejemplo de paquete para sincronizar particiones de Adventure Works DW

Este ejemplo sólo funciona con SQL Server 2005 y SQL Server 2008. No funcionará con ninguna versión de SQL Server anterior a SQL Server 2005.

Un problema común al que se enfrentan los programadores es la automatización del trabajo de creación de particiones en los cubos de Analysis Services. Las particiones normalmente están divididas por una dimensión de tiempo. Por ejemplo, en las bases de datos Adventure Works DW, las particiones de datos de ventas se crearon estadísticamente para los cuatro años comprendidos entre 2001 y 2004. Sin embargo, ¿qué ocurre si las tablas de hechos empiezan a acumular datos que se encuentran fuera de este intervalo de fechas? Si llegan datos de ventas para 2005 y 2006, ¿el programador debe crear nuevas particiones de forma manual, o hay alguna manera de automatizar la creación de nuevas particiones?

El ejemplo de paquete Synchronizing Adventure Works DW Partitions es un paquete que muestra cómo automatizar la identificación y creación de nuevas particiones. Aunque el ejemplo se escribió específicamente para objetos de Adventure Works DW, se puede ampliar fácilmente para su uso en entornos similares.

Este ejemplo no es compatible con los sistemas operativos basados en Itanium.

Importante

Los ejemplos se proporcionan exclusivamente con fines formativos. No se han diseñado para utilizarse en un entorno de producción y no se han probado en ningún entorno de este tipo. Microsoft no ofrece soporte técnico para estos ejemplos.

Requisitos

La ejecución de este paquete de ejemplo requiere lo siguiente:

  • El paquete de ejemplo y los archivos de datos que usa deben instalarse en la unidad local de disco duro.
  • Debe tener instalada la base de datos OLTP AdventureWorks y tener permisos de administración sobre ella.
  • Si tiene la intención de ejecutar el paquete de ejemplo sólo desde la línea de comandos, debe instalar Integration Services.
  • Si tiene la intención de abrir el paquete en el Diseñador SSIS y ejecutar el paquete de ejemplo, debe instalar Business Intelligence Development Studio.
  • Si tiene intención ejecutar el paquete de ejemplo en un equipo de 64 bits, debe establecer la propiedad PreCompile de la tarea Script en True. Si desea analizar el script con herramientas de depuración, debe establecer la propiedad en False.
  • Si las bases de datos relacionales y de Analysis Services no se encuentran en el equipo local, o si se les ha cambiado el nombre, deberá modificar la conexión correspondiente en el paquete de ejemplo para ir a la ubicación correcta de la base de datos. Puede modificar el paquete directamente en el Diseñador SSIS o bien modificar la configuración del paquete.
  • Para ejecutar el script en el paquete, debe hacer referencia a Objetos de administración de análisis (AMO) mediante las tareas siguientes:
    • Incluya una referencia a AMO en el proyecto de Microsoft Visual Studio Tools para aplicaciones (VSTA).
    • Confirme que el archivo Microsoft.AnalysisServices.dll está instalado en la caché de ensamblados global.

Para obtener más información acerca de la instalación de los ejemplos, vea el tema relativo a la instalación de paquetes de ejemplo de Integration Services en los Libros en pantalla de SQL Server.

Ubicación del paquete de ejemplo

Si los ejemplos se instalaron en la ubicación de instalación predeterminada, el paquete de ejemplo Synchronizing Adventure Works DW se encuentra en la siguiente carpeta:

C:\Archivos de programa\Microsoft SQL Server\100\Samples\Integration Services\Package Samples\SyncAdvWorksPartitions Sample\SyncAdvWorksPartitions\

Se necesitan los siguientes archivos para ejecutar este paquete de ejemplo.

Archivo Descripción

Sync Partitions.dtsx

Paquete de ejemplo.

Get Partitions List.sql

Consulta de Transact-SQL que se usa para identificar y devolver metadatos de partición de RDBMS.

Este archivo contiene una copia de la consulta SQL utilizada en la tarea Ejecutar SQL y no es necesario para ejecutar el paquete; no obstante, puede que le resulte más sencillo ver y modificar las instrucciones SQL mediante este archivo de texto.

Ejecutar el ejemplo

El paquete se puede ejecutar desde la línea de comandos mediante la utilidad dtexec (dtexec.exe), o se puede ejecutar en Business Intelligence Development Studio.

Para ejecutar el paquete mediante dtexec

  1. Abra una ventana del símbolo del sistema.

  2. Cambie el directorio a C: Archivos de programa\Microsoft SQL Server\100\DTS\Binn, la ubicación de dtexec.

  3. Escriba el siguiente comando:

    dtexec /f "C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services\Package Samples\SyncAdvWorksPartitions Sample\SyncAdvPartitions\Sync Partitions.dtsx"
    
  4. Presione ENTRAR.

Para obtener más información acerca de la ejecución del paquete mediante la utilidad dtexec, vea el tema que trata sobre la utilidad dtexec en los Libros en pantalla de SQL Server.

Para ejecutar el paquete en Business Intelligence Development Studio

  1. Abra Business Intelligence Development Studio.

  2. En el menú Archivo, seleccione Abrir y haga clic en Proyecto o Solución.

  3. Establezca la opción Archivos de tipo: en Archivos de proyecto de Integration Services (*.dtproj), busque la carpeta SyncAdvWorksPartitions Sample y haga doble clic en el archivo denominado Sync Partitions.dtproj.

  4. En el Explorador de soluciones, haga clic con el botón secundario en Sync Partitions.dtsx en la carpeta SSIS Packages y, a continuación, haga clic en Ejecutar paquete.

Para obtener más información sobre cómo ejecutar el paquete en Business Intelligence Development Studio, vea el tema relativo a la ejecución de paquetes en los Libros en pantalla de SQL Server.

Componentes del ejemplo

En la tabla siguiente se enumeran las tareas, los orígenes y los destinos que se usan en el ejemplo.

Elemento Finalidad

Tarea Ejecutar SQL

La tarea de ejecución de SQL Get Partition List ejecuta una consulta de Transact-SQL en las tablas de hechos. La consulta identifica y devuelve metadatos que definen las particiones divididas por tiempo. El conjunto de filas resultante contiene una fila para cada partición.

Tarea de bucle Foreach

La tarea de bucle Foreach Foreach Partition realiza iteración por cada conjunto de filas generado por la tarea de ejecución de SQL. En cada iteración, el contenido del conjunto de filas se extrae en variables de paquete que se usan en las tareas Script y Ejecutar DDL de Analysis Services.

Tarea Script

Dentro de la tarea de bucle Foreach, la tarea Script, denominada Partition Already There?, usa objetos de administración de análisis (AMO) para identificar si una partición correspondiente ya existe en la base de datos de Analysis Services. Esto se usa para configurar la variable IsNotPresent. Esta tarea también llena la variable XMLA_Script. Esta variable se puede utilizar para crear una nueva partición en la base de datos de Analysis Services.

Tarea Ejecutar DDL de Analysis Services

Si es necesario, la tarea Ejecutar DDL de Analysis Services, denominada Create Partition, ejecuta un script XMLA alojada en la variable XMLA_Script para crear una nueva partición en la base de datos de Analysis Services. Esta tarea contiene una restricción de precedencia condicional que evita que la tarea se ejecute a menos que la variable IsNotPresent se evalúe como true .

Administrador de conexión de Analysis Services

La tarea Ejecutar DDL usa el administrador de conexión AS database para conectarse a la base de datos de Analysis Services que contiene particiones en los grupos de medida Internet Sales, Internet Orders y Customer Count.

Administrador de conexión OLE DB

La tarea Ejecutar SQL usa el administrador de conexión RDBMS database para consultar la base de datos relacional que contiene las tablas de hechos FactInternetSales y FactResellerSales y la tabla de dimensiones DimTime.

Resultados del ejemplo

Dado que las particiones ya existen en la base de datos de Analysis Services, cuando se ejecute el paquete no se crearán nuevas particiones.

Si desea ver que el paquete crea nuevas particiones en la base de datos de Analysis Services, puede eliminar las particiones de los siguientes grupos de medida del cubo Adventure Works: Internet Sales, Internet Orders, Reseller Sales, Reseller Orders o Customer Count. Cuando se ejecute el paquete, las particiones eliminadas de los grupos de medida se volverán a crear (aunque sin ninguna agregación), tras lo cual las particiones podrán volver a procesarse.

Nota

Si elimina y luego vuelve a crear objetos en la base de datos de Analysis Services Adventure Works DW, es recomendable que realice una copia de seguridad de la base de datos actual antes de ejecutar el paquete de ejemplo.