Agendar tarefas administrativas do SSAS com o SQL Server Agent
Usando o serviço SQL Server Agent, você pode agendar a execução das tarefas administrativas do Analysis Services na ordem e nas horas em que precisa. As tarefas agendadas ajudam a automatizar processos executados em ciclos regulares ou previsíveis. Você pode agendar a execução de tarefas administrativas, como o processamento de cubos, nas horas de menor atividade comercial. Pode também estabelecer a ordem em que essas tarefas devem ser executadas criando etapas em um trabalho do SQL Server Agent. Por exemplo, é possível processar um cubo e, em seguida, fazer o backup do cubo.
Com etapas de trabalho, você tem controle sobre o fluxo de execução. Em caso de falha de um trabalho, é possível configurar o SQL Server Agent para continuar executando as demais tarefas ou interromper a execução. Você também pode configurar o SQL Server Agent para enviar notificações sobre o sucesso ou a falha da execução do trabalho.
Este tópico é um passo a passo que mostra dois modos de usar o SQL Server Agent para executar um script XMLA. O primeiro exemplo demonstra como agendar o processamento de uma única dimensão. O segundo exemplo mostra como combinar tarefas de processamento em um único script executado com base em uma agenda. Para concluir essas etapas, você precisará atender aos pré-requisitos a seguir.
Pré-requisitos
O serviço SQL Server Agent deve ser instalado.
Por padrão, os trabalhos são executados na conta de serviço. No SQL Server 2012, a conta padrão do SQL Server Agent é NT Service\SQLAgent$<nome_da_instância>. Para executar um backup ou uma tarefa de processamento, essa conta deve ser um administrador do sistema na instância do Analysis Services. Para obter mais informações, consulte Conceder permissões de administrador do servidor (Analysis Services).
Você também deveria ter um banco de dados de teste. Você pode implantar o banco de dados de exemplo multidimensional do AdventureWorks ou um projeto do tutorial multidimensional do Analysis Services para usar neste passo a passo. Para obter mais informações, consulte Instalar dados de exemplo e projetos para o tutorial de modelagem multidimensional do Analysis Services.
Exemplo 1: Processando uma dimensão em uma tarefa agendada
Este exemplo demonstra como criar e agendar um trabalho que processa uma dimensão.
Uma tarefa agendada do Analysis Services é um script XMLA inserido em um trabalho do SQL Server Agent. A execução desse trabalho é agendada para as horas e com a frequência desejadas. Como o SQL Server Agent faz parte do SQL Server, você trabalha com o Mecanismo de Banco de Dados e o Analysis Services para criar e agendar uma tarefa administrativa.
Criar um script para processar uma dimensão em um trabalho do SQL Server Agent
No SQL Server Management Studio, conecte-se a Analysis Services. Abra uma pasta de banco de dados e localize uma dimensão. Clique com o botão direito do mouse na dimensão e selecione Processar.
Na caixa de diálogo Processar Dimensão, na coluna Opções de Processo na Lista de objetos, verifique se a opção dessa coluna é Processar Completo. Se essa opção não estiver selecionada, em Opções de Processo, clique na opção e selecione Processar Completo na lista suspensa.
Clique em Script.
Essa etapa abre a janela Consulta XML que contém o script XMLA que processa a dimensão.
Na caixa de diálogo Processar Dimensão, clique em Cancelar para fechar a caixa de diálogo.
Na janela Consulta XMLA, realce o script XMLA, clique com o botão direito do mouse no script realçado e selecione Copiar.
Essa etapa copia o script XMLA para a Área de Transferência do Windows. Você pode deixar o script XMLA na Área de Transferência ou colá-lo no Bloco de Notas ou em outro editor de texto. Este é um exemplo de 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>
Criar e agendar o trabalho de processamento de dimensão
Conecte-se a uma instância do Mecanismo de Banco de Dados e abra o Pesquisador de Objetos.
Expanda SQL Server Agent.
Clique com o botão direito do mouse em Trabalhos e selecione Novo Trabalho.
Na caixa de diálogo Novo Trabalho, digite um nome de trabalho em Nome.
Em Selecionar uma página, selecione Etapas e clique em Novo.
Na caixa de diálogo Nova Etapa do Trabalho, digite um nome de etapa em Nome da etapa.
Em Servidor, digite localhost como instância padrão de Analysis Services e localhost\<instance name> como instância nomeada.
Se você pretende executar o trabalho de um computador remoto, use o nome de servidor e nome de instância onde o trabalho será executado. Use o formato <server name> em uma instância padrão e o formato <server name>\<instance name> em uma instância nomeada.
Em Tipo, selecione Comando do SQL Server Analysis Services.
Em comando, clique com o botão direito do mouse e selecione Colar. O script XMLA gerado na etapa anterior deve aparecer na janela de comando.
Clique em OK.
Em Selecionar uma página, clique em Agendas e clique em Novo.
Na caixa de diálogo Nova Agenda de Trabalho, digite um nome de agenda em Nome e clique em OK.
Essa etapa cria uma agenda para Domingo às 12:00 AM. A próxima etapa mostra como executar o trabalho manualmente. Você também pode especificar uma agenda que executará o trabalho durante o seu monitoramento.
Na caixa de diálogo Novo Trabalho, clique em OK.
No Pesquisador de Objetos, expanda Trabalhos, clique com o botão direito do mouse no trabalho criado e selecione Iniciar Trabalho na Etapa.
Como o trabalho tem apenas uma etapa, ele será executado imediatamente. Se o trabalho contiver mais de uma etapa, você poderá selecionar a etapa em que o trabalho deve iniciar.
Quando o trabalho for concluído, clique em Fechar.
Exemplo 2: Processando uma dimensão e uma partição em lote em uma tarefa agendada
Os procedimentos deste exemplo demonstram como criar e agendar um trabalho que processa uma dimensão de banco de dados do Analysis Services em lote e, ao mesmo tempo, processa uma partição de cubo que depende da dimensão para agregação. Para obter mais informações sobre o processamento de objetos do Analysis Services em lote, consulte Processar em lote objetos do Analysis Services.
Criar um script para processamento de uma dimensão e uma partição em lote em um trabalho do SQL Server Agent
Usando o mesmo banco de dados, expanda Dimensões, clique com o botão direito do mouse na dimensão Cliente e selecione Processo.
Na caixa de diálogo Processar Dimensão, na coluna Opções de Processo da Lista de objetos, verifique se a opção dessa coluna é Processar Completo.
Clique em Script.
Essa etapa abre a janela Consulta XML que contém o script XMLA que processa a dimensão.
Na caixa de diálogo Processar Dimensão, clique em Cancelar para fechar a caixa de diálogo.
Expanda Cubos, expanda Adventure Works, expanda Grupos de Medidas, expanda Vendas pela Internet, expanda Partições, clique com o botão direito do mouse na última partição da lista e selecione Processar.
Na caixa de diálogo Processar Partição, na coluna Opções de Processo da Lista de objetos, verifique se a opção dessa coluna é Processar Completo.
Clique em Script.
Essa etapa abre uma segunda janela Consulta XML que contém o script XMLA que processa a partição.
Na caixa de diálogo Processar Partição, clique em Cancelar para fechar o editor.
Neste ponto, você deve mesclar os dois scripts e assegurar que a dimensão seja processada primeiro.
Cuidado Se a partição for processada primeiro, o processamento da dimensão subsequente fará com que a partição se torne não processada. A partição exigiria um segundo processamento para atingir um estado processado.
Na janela Consulta XMLA que contém o script XMLA que processa a partição, realce o código dentro das tags Batch e Parallel, clique com o botão direito do mouse no script e selecione 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 a janela Consulta XMLA que contém o script XMLA que processa a dimensão. Clique com o botão direito do mouse no script à esquerda da marca </Process> e selecione Colar.
O exemplo a seguir mostra o 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>
Realce o script XMLA revisado, clique com o botão direito do mouse no script realçado e selecione Copiar.
Essa etapa copia o script XMLA para a Área de Transferência do Windows. Você pode deixar o script XMLA na Área de Transferência, salvá-lo em um arquivo ou colá-lo no Bloco de Notas ou em outro editor de texto.
Criar e agendar o trabalho de processamento em lote
Conecte-se a uma instância do SQL Server e abra o Pesquisador de Objetos.
Expanda SQL Server Agent. Inicie o serviço caso ele ainda não esteja em execução.
Clique com o botão direito do mouse em Trabalhos e selecione Novo Trabalho.
Na caixa de diálogo Novo Trabalho, digite um nome de trabalho em Nome.
Em Etapas, clique em Nova.
Na caixa de diálogo Nova Etapa do Trabalho, digite um nome de etapa em Nome da Etapa.
Em Tipo, selecione Comando do SQL Server Analysis Services.
Em Executar como, selecione a Conta do Serviço do SQL Server Agent. Lembre-se, a partir da seção Pré-requisitos, de que essa conta deve ter permissões administrativas no Analysis Services.
Em Servidor, especifique o nome de servidor da instância do Analysis Services.
Em comando, clique com o botão direito do mouse e selecione Colar.
Clique em OK.
Na página Agendas, clique em Nova.
Na caixa de diálogo Nova Agenda de Trabalho, digite um nome de agenda em Nome e clique em OK.
Essa etapa cria uma agenda para Domingo às 12:00 AM. A próxima etapa mostra como executar o trabalho manualmente. Você também pode selecionar uma agenda que executará o trabalho durante o seu monitoramento.
Clique em OK para fechar a caixa de diálogo.
No Pesquisador de Objetos, expanda Trabalhos, clique com o botão direito do mouse no trabalho criado e selecione Iniciar Trabalho na Etapa.
Como o trabalho tem apenas uma etapa, ele será executado imediatamente. Se o trabalho contiver mais de uma etapa, você poderá selecionar a etapa em que o trabalho deve iniciar.
Quando o trabalho for concluído, clique em Fechar.