Programar tareas administrativas de SSAS con el Agente SQL Server
Mediante el servicio del Agente SQL Server, puede programar tareas administrativas de Analysis Services para que se ejecuten en el orden y horas que necesita. Las tareas programadas le ayudan a automatizar procesos que se ejecutan en ciclos periódicos o predecibles. Puede programar tareas administrativas, como procesamiento de cubos, para que se ejecuten en momentos de poca actividad empresarial. También puede determinar el orden en el que se ejecutarán las tareas creando pasos de trabajo en un trabajo del Agente SQL Server. Por ejemplo, puede procesar un cubo y luego realizar una copia de seguridad del cubo.
Los pasos de trabajo le permiten controlar el flujo de ejecución. Si se produce un error en un trabajo, puede configurar el Agente SQL Server para continuar ejecutando las tareas restantes o para detener la ejecución. También puede configurar el Agente SQL Server para enviar notificaciones del éxito o el fracaso de la ejecución del trabajo.
Este tema es un tutorial que muestra dos formas de usar el Agente SQL Server para ejecutar el script XMLA. El primer ejemplo demuestra cómo programar el procesamiento de una sola dimensión. El segundo ejemplo muestra cómo combinar tareas de procesamiento en un único script que se ejecuta según una programación. Para completar este tutorial, deberá cumplir los siguientes requisitos previos.
Requisitos previos
Se debe instalar el servicio del Agente SQL Server.
De forma predeterminada, trabajos se ejecutan con la cuenta de servicio. En SQL Server 2012, la cuenta predeterminada para el Agente SQL Server es NT Service\SQLAgent$<nombre de instancia>. Para realizar una tarea de copia de seguridad o de procesamiento, esta cuenta debe ser administrador del sistema en la instancia de Analysis Services. Para obtener más información, vea Conceder permisos de administrador de servidor (Analysis Services).
También debe tener una base de datos de prueba para trabajar con ella. Puede implementar la base de datos de ejemplo multidimensional AdventureWorks o un proyecto del tutorial multidimensional de Analysis Services para usarlo en este tutorial. Para obtener más información, vea Instalar los datos y proyectos de ejemplo para el tutorial de modelado multidimensional de Analysis Services.
Ejemplo 1: procesar una dimensión en una tarea programada
Este ejemplo muestra cómo crear y programar un trabajo que procesa una dimensión.
Una tarea programada de Analysis Services es un script XMLA incrustado en un trabajo del Agente SQL Server. Este trabajo se programa para ejecutarse en los momentos y con la frecuencia deseados. Dado que el Agente SQL Server es parte de SQL Server, se trabaja con el motor de base de datos y con Analysis Services para crear y programar una tarea administrativa.
Crear un script para procesar una dimensión en un trabajo del Agente SQL Server
En SQL Server Management Studio, conéctese a Analysis Services. Abra una carpeta de base de datos y busque una dimensión. Haga clic con el botón secundario en la dimensión y seleccione Procesar.
En el cuadro de diálogo Procesar dimensión, en la columna Opciones de proceso debajo de Lista de objetos, compruebe que la opción en esta columna sea Procesar completo. De lo contrario, en Opciones de proceso, haga clic en la opción y, a continuación, seleccione Procesar completo en la lista desplegable.
Haga clic Script.
Este paso abre una ventana Consulta XML que contiene el script XMLA que procesa la dimensión.
En el cuadro de diálogo Procesar dimensión, haga clic en Cancelar para cerrar el cuadro de diálogo.
En la ventana Consulta XMLA, resalte el script XMLA, haga clic con el botón secundario en el script resaltado y seleccione Copiar.
Este paso copia el script XMLA en el Portapapeles de Windows. Puede dejar el script XMLA en el portapapeles o pegarlo en el Bloc de notas u otro editor de texto. A continuación, se muestra un ejemplo del script XMLA.
<Batch xmlns="https://schemas.microsoft.com/analysisservices/2003/engine"> <Parallel> <Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Object> <DatabaseID>Adventure Works DW Multidimensional</DatabaseID> <DimensionID>Dim Account</DimensionID> </Object> <Type>ProcessFull</Type> <WriteBackTableCreation>UseExisting</WriteBackTableCreation> </Process> </Parallel> </Batch>
Crear y programar el trabajo de procesamiento de dimensiones
Conéctese a una instancia del Motor de base de datos y, a continuación, abra el Explorador de objetos.
Expanda Agente SQL Server.
Haga clic con el botón secundario en Trabajos y seleccione Nuevo trabajo.
En el cuadro de diálogo Nuevo trabajo, escriba un nombre de trabajo en Nombre.
En Seleccione una página, seleccione Pasos y, a continuación, haga clic en Nuevo.
En el cuadro de diálogo Nuevo paso de trabajo, escriba un nombre de paso en Nombre del paso.
En Servidor, escriba localhost para una instancia predeterminada de Analysis Services y localhost\<instance name> para una instancia con nombre.
Si va a ejecutar el trabajo desde un equipo remoto, use el nombre de servidor y el nombre de instancia donde se ejecutará el trabajo. Use el formato <server name> para una instancia predeterminada y <server name>\<instance name> para una instancia con nombre.
En Tipo, seleccione Comando de SQL Server Analysis Services.
En Comando, haga clic con el botón secundario y seleccione Pegar. El script XMLA que generó en el paso anterior debe aparecer en la ventana de comandos.
Haga clic en Aceptar.
En Seleccione una página, haga clic en Programaciones y, a continuación, haga clic en Nuevo.
En el cuadro de diálogo Nueva programación del trabajo, escriba un nombre de programación en Nombre y, a continuación, haga clic en Aceptar.
Este paso crea una programación para domingo a las 12:00. El paso siguiente muestra cómo ejecutar manualmente el trabajo. También puede especificar una programación que ejecuta el trabajo cuando lo está supervisando.
En el cuadro de diálogo Nuevo trabajo, haga clic en Aceptar.
En Explorador de objetos, expanda Trabajos, haga clic con el botón secundario en el trabajo que creó y, a continuación, seleccione Iniciar trabajo en el paso.
Dado que el trabajo tiene un solo paso, el trabajo se ejecuta inmediatamente. Si el trabajo contuviera varios pasos, podría seleccionar el paso en el que el trabajo debe iniciarse.
Cuando finalice el trabajo, haga clic Cerrar.
Ejemplo 2: procesamiento por lotes de una dimensión y una partición en una tarea programada
Los procedimientos de este ejemplo demuestran cómo crear y programar una trabajo que procese por lotes una dimensión de base de datos de Analysis Services y al mismo tiempo procesar una partición de cubo que dependa de la dimensión para la agregación. Para obtener más información acerca del procesamiento por lotes de los objetos de Analysis Services, vea Procesar por lotes objetos de Analysis Services.
Crear un script para el procesamiento por lotes de una dimensión y una partición en un trabajo del Agente SQL Server
Con la misma base de datos, expanda Dimensiones, haga clic con el botón secundario en la dimensión Cliente y seleccione Procesar.
En el cuadro de diálogo Procesar dimensión, en la columna Opciones de proceso debajo de Lista de objetos, compruebe que la opción en esta columna sea Procesar completo.
Haga clic Script.
Este paso abre una ventana Consulta XML que contiene el script XMLA que procesa la dimensión.
En el cuadro de diálogo Procesar dimensión, haga clic en Cancelar para cerrar el cuadro de diálogo.
Expanda Cubos, Adventure Works, Grupos de medida, Venta por Internet y Particiones; haga clic con el botón secundario en la última partición en la lista y seleccione Proceso.
En el cuadro de diálogo Procesar partición, en la columna Opciones de proceso debajo de Lista de objetos, compruebe que la opción en esta columna sea Procesar completo.
Haga clic Script.
Este paso abre una segunda ventana Consulta XML que contiene el script XMLA que procesa la partición.
En el cuadro de diálogo Procesar partición, haga clic en Cancelar para cerrar el editor.
En este punto debe combinar los dos scripts y asegurarse de que la dimensión se procesa en primer lugar.
Advertencia Si la partición se procesa en primer lugar, el procesamiento posterior de la dimensión provoca que la partición se quede sin procesar. La partición requeriría un segundo procesamiento para alcanzar el estado de procesada.
En la ventana Consulta XMLA que contiene el script XMLA que procesa la partición, resalte el código que hay dentro de las etiquetas Batch y Parallel, haga clic con el botón secundario en el script resaltado y seleccione Copiar.
<Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Object> <DatabaseID> Adventure Works DW Multidimensional</DatabaseID> <CubeID>Adventure Works</CubeID> <MeasureGroupID>Fact Internet Sales 1</MeasureGroupID> <PartitionID> Internet_Sales_2004</PartitionID> </Object> <Type>ProcessFull</Type> <WriteBackTableCreation>UseExisting</WriteBackTableCreation> </Process>
Abra la ventana Consulta XMLA que contiene el script XMLA que procesa la dimensión. Haga clic con el botón secundario en el script situado a la izquierda de la etiqueta </Process> y seleccione Pegar.
El ejemplo siguiente muestra el script XMLA revisado.
<Batch xmlns="https://schemas.microsoft.com/analysisservices/2003/engine"> <Parallel> <Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Object> <DatabaseID>Adventure Works DW Multidimensional</DatabaseID> <DimensionID>Dim Customer</DimensionID> </Object> <Type>ProcessFull</Type> <WriteBackTableCreation>UseExisting</WriteBackTableCreation> </Process> <Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Object> <DatabaseID>Adventure Works DW Multidimensional</DatabaseID> <CubeID>Adventure Works</CubeID> <MeasureGroupID>Fact Internet Sales 1</MeasureGroupID> <PartitionID>Internet_Sales_2004</PartitionID> </Object> <Type>ProcessFull</Type> <WriteBackTableCreation>UseExisting</WriteBackTableCreation> </Process> </Parallel> </Batch>
Resalte el script XMLA revisado, haga clic con el botón secundario en el script resaltado y seleccione Copiar.
Este paso copia el script XMLA en el Portapapeles de Windows. Puede dejar el script XMLA en el portapapeles, guardarlo en un archivo o pegarlo en el Bloc de notas u otro editor de texto.
Crear y programar el trabajo de procesamiento por lotes
Conéctese a una instancia de SQL Server y, a continuación, abra el Explorador de objetos.
Expanda Agente SQL Server. Inicie el servicio, si no se está ejecutando.
Haga clic con el botón secundario en Trabajos y seleccione Nuevo trabajo.
En el cuadro de diálogo Nuevo trabajo, escriba un nombre de trabajo en Nombre.
En Pasos, haga clic en Nuevo.
En el cuadro de diálogo Nuevo paso de trabajo, escriba un nombre de paso en Nombre del paso.
En Tipo, seleccione Comando de SQL Server Analysis Services.
En Ejecutar como, seleccione la Cuenta del servicio del Agente SQL Server. Recuerde de la sección Requisitos previos que esta cuenta debe tener permisos de administrador en Analysis Services.
En Servidor, especifique el nombre de servidor de la instancia de Analysis Services.
En Comando, haga clic con el botón secundario y seleccione Pegar.
Haga clic en Aceptar.
En la página Programaciones, haga clic en Nuevo.
En el cuadro de diálogo Nueva programación del trabajo, escriba un nombre de programación en Nombre y, a continuación, haga clic en Aceptar.
Este paso crea una programación para domingo a las 12:00. El paso siguiente muestra cómo ejecutar manualmente el trabajo. También puede seleccionar una programación que ejecutará el trabajo cuando lo esté supervisando.
Haga clic en Aceptar para cerrar el cuadro de diálogo.
En Explorador de objetos, expanda Trabajos, haga clic con el botón secundario en el trabajo que creó y seleccione Iniciar trabajo en el paso.
Dado que el trabajo tiene un solo paso, el trabajo se ejecuta inmediatamente. Si el trabajo contuviera varios pasos, podría seleccionar el paso en el que el trabajo debe iniciarse.
Cuando finalice el trabajo, haga clic Cerrar.