Пакет служб SSIS для обработки всей базы данных служб SSAS

Мы используем пакеты служб SSIS для обработки кубов в службах аналитики SQL Server 2008 R2. До сих пор мы использовали задачу обработки служб Analysis Services в пакете и вручную добавляли все объекты Cube и Dimension в очередь обработки в этой задаче. Это также означает, что мы должны скорректировать пакет, когда добавляем измерения в куб или кубы в базу данных SSAS.

Но теперь нам нужен пакет служб SSIS, который будет обрабатывать всю выбранную базу данных SSAS, чтобы в дальнейшем мы могли изменить куб, возможно, добавив измерения, не изменяя также и пакет.

В SQL Server Management Studio можно щелкнуть правой кнопкой мыши базу данных SSAS и выбрать "Обрабатывать...", но для соответствующей задачи служб SSIS я не смог выяснить, как это сделать.

Есть ли способ обработать всю базу данных SSAS в пакете SSIS?

Заранее спасибо, Кристиан

3 ответа

Решение

Я не понимаю, почему нельзя использовать задачу обработки служб анализа служб SSIS. Я считаю, что у вас есть возможность выбрать базу данных в настройках обработки. Вы можете выбрать всю базу данных, а не отдельные кубы или измерения в этой базе данных. Просто убедитесь, что тип говорит база данных.

Я также использовал ответ XMLA, предоставленный @Meff, и он также отлично работает.

Вы также можете использовать AMO, вам нужно будет включить ссылку Microsoft.AnalysisServices на задачу сценария служб SSIS и указать значения переменных. Этот способ не привязывает вас к идентификатору базы данных, но немного сложнее:

   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;

Когда вы приступаете к обработке всей базы данных, прежде чем нажать "ОК", вы должны увидеть кнопку "Сценарий" в верхнем левом углу окна процесса. Это сгенерирует обработку XMLA в новом окне.

Теперь возьмите эту обработку XMLA и используйте ее в компоненте потока управления "Выполнение DDL служб Analysis Services".

Будьте осторожны с повторным развертыванием куба, так как вы увидите, что XMLA использует идентификатор, а не имя базы данных.

Другие вопросы по тегам