/ / Pacote SSIS para processar banco de dados SSAS inteiro - sql-server-2008, ssis, ssas, cube

Pacote SSIS para processar banco de dados SSAS inteiro - sql-server-2008, ssis, ssas, cube

estamos usando pacotes SSIS para processar cubos emSQL Server 2008 R2 Analysis Services. Até agora, utilizamos uma Tarefa de Processamento do Analysis Services no pacote e adicionamos manualmente todos os objetos Cube e Dimension à fila de processamento nessa tarefa. Isso também significa que temos que ajustar o pacote quando adicionamos Dimensões a um Cubo ou Cubos ao SSAS DB.

Mas agora precisamos de um pacote SSIS que processe todo o SSAS base de dados selecionado, para que possamos modificar o Cubo mais tarde, possivelmente adicionando Dimensões, sem ter que modificar o pacote também.

No SQL Server Management Studio, é possível clicar com o botão direito do mouse em um banco de dados do SSAS e selecionar "Processar ...", mas para a tarefa de correcção do SSIS, não consegui descobrir como fazer isso.

Existe alguma maneira de processar um banco de dados SSAS inteiro em um pacote do SSIS?

Desde já, obrigado, cristão

Respostas:

4 para resposta № 1

Estou confuso sobre por que você não pode usar o SSISTarefa de Processamento do Analysis Services. Eu acredito que você tem que opção para selecionar um banco de dados nas configurações de processamento. Você pode escolher um banco de dados inteiro em vez de escolher cubos ou dimensões individuais nesse banco de dados. Apenas certifique-se de que o tipo diz banco de dados.

insira a descrição da imagem aqui

Eu também usei a resposta XMLA fornecida pelo @ Meff e também funciona bem.


2 para resposta № 2

Você também pode usar AMO, você precisaria incluira referência Microsoft.AnalysisServices para uma tarefa de script do SSIS e forneça os valores das variáveis. Desta forma, não trancá-lo para o ID do banco de dados, mas é um pouco mais complexo:

   string cubeConnectionString = Dts.Variables["User::CubeConnectionString"].Value.ToString();
string databaseName = Dts.Variables["User::DatabaseName"].Value.ToString();

Server server = new Server();
server.Connect(cubeConnectionString);

Database database = server.Databases.FindByName(databaseName);
database.Process(ProcessType.ProcessFull);

server.Disconnect();
Dts.TaskResult = (int)ScriptResults.Success;

1 para resposta № 3

Quando você vai processar todo o banco de dados, antes de clicar em "OK", você deve ver um botão "Script" no canto superior esquerdo da janela do processo. Isso gerará o processamento do XMLA para uma nova janela.

Agora pegue o processamento do XMLA e use-o em um componente de fluxo de controle "Analysis Services Execute DDL".

Cuidado com as reimplementações de cubo, pois você verá que o XMLA usa o Id e não o nome do banco de dados.