Задача служб SSIS: обработка куба SSAS и параметризация строк подключения - PullRequest
1 голос
/ 07 апреля 2019

Я хочу обработать куб SSAS в SSIS.Есть ли способ параметризации строк подключения для источника данных Datamart SQL Server?Я хочу иметь возможность устанавливать / настраивать соединительные строки SQL Server для наших сред разработки, тестирования и производства SSAS в Devops.

В настоящее время кубы datamart имеют жестко закодированные соединения в SSAS, SSAS, похоже, не имеет строк подключения проекта, таких как SSIS.

Обновление:

Я что-то слышало в SSIS ---> Службы Analysis Services Выполнить задачу DDL -> запуск сценария XMLA для изменения строки подключения к базе данных.Не знаете, как это сделать.

Может ли кто-нибудь указать направление или обрезать скрипт XMLA, чтобы изменить только строку подключения (сервер Sql и имя базы данных)?Просто хочу изменить только то, что нужно.Я использую SSAS 2016, поэтому может потребоваться обновить схему xmlns.

Также получаю эту ошибку: Есть SQL Server 2016 и 2016 SSAS

Ошибки в диспетчере метаданных.Определение объекта, предоставленное для инструкции ALTER, относится к другому типу, что и ссылка на объект, подлежащая изменению.

Как бы это исправить?

<Alter ObjectExpansion="ObjectProperties" xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">  
    <Object>  
        <DatabaseID>Adventure Works DW Multidimensional 2012</DatabaseID>  
        <DataSourceID>AdventureWorksDW2012</DataSourceID>  
    </Object>  
    <ObjectDefinition>  
        <DataSource xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="RelationalDataSource">  
            <ID>AdventureWorksDW2012</ID>  
            <Name>AdventureWorksDW2012</Name>  
            <ConnectionString>Data Source=fr-dwk-02;Initial Catalog=AdventureWorksDW2008R2;Integrated Security=True</ConnectionString>  
            <ManagedProvider>System.Data.SqlClient</ManagedProvider>  
            <Timeout>PT30S</Timeout>  
        </DataSource>  
    </ObjectDefinition>  
</Alter>  

image

Следующая ссылка от Microsoft использует схему 2001-2003 и изменяет время ожидания в секундах.Я только хочу изменить источник базы данных и сервер.

Это для TFS, однако хочу использоватьSSIS:

Ответы [ 2 ]

1 голос
/ 08 апреля 2019

Это можно сделать, сохранив строку подключения DDL в качестве выражения в строковой переменной SSIS и используя в ней параметр (или переменную) для хранения обновленной строки подключения. В задаче DDL служб Analysis Services измените свойство SourceType на Variable и выберите переменную, содержащую выражение строки соединения, в поле Source. В приведенном ниже примере выражения параметр пакета ($Package::ConnectionString) объединяется в выражении с использованием символов +. Для переменной можно определить выражение, щелкнув многоточие под полем Expression на панели Variables в SSDT, а затем введя выражение в двойные кавычки. Все двойные кавычки и обратная косая черта (\) внутри выражения, за исключением открывающих и закрывающих двойных кавычек, должны быть экранированы символом обратной косой черты . Если вы раньше не работали с выражениями в SSIS, я бы порекомендовал проверить результат выражения с помощью кнопки «Выразить выражение» в построителе выражений. Это покажет, как выражение будет проанализировано во время выполнения, однако это может измениться в зависимости от параметров / переменных в выражении и их значений.

"<Alter ObjectExpansion=\"ObjectProperties\" xmlns=\"http://schemas.microsoft.com/analysisservices/2003/engine\">  
    <Object>  
        <DatabaseID>Adventure Works DW Multidimensional 2012</DatabaseID>  
        <DataSourceID>AdventureWorksDW2012</DataSourceID>  
    </Object>  
    <ObjectDefinition>  
        <DataSource xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"RelationalDataSource\">  
            <ID>AdventureWorksDW2012</ID>  
            <Name>AdventureWorksDW2012</Name>  
            <ConnectionString>" + @[$Package::ConnectionString]   +  "</ConnectionString>  
            <ManagedProvider>System.Data.SqlClient</ManagedProvider>  
            <Timeout>PT30S</Timeout>  
        </DataSource>  
    </ObjectDefinition>  
</Alter>"
1 голос
/ 07 апреля 2019

Перейти к SSMS ---> Службы аналитики

Источник данных сценария -> Изменить на ---> Новое окно запроса

enter image description here

Здесь можно изменить источник данных

enter image description here

Скопировать команду «Изменить сценарии» в переменную в службах SSIS и использовать «Выполнить задачу DDL служб анализа»

enter image description here

...