BIML. Создаем “Hello, world!”

By | February 24, 2015

В прошлой статье мы разобрали что такое BIML. Теперь создадим первый аналог Hello, world для BIML. Надеюсь вы уже скачали и установили BIDS Helper соответствующей версии. Я использую SQL Server Data Tools-BI, установленную на Visual Studio 2012, и SQL Server 2014 (хотя он официально не поддерживается, но все работает).

Создаем новый SSIS проект, назовем его BIML_example. В Solution Explorer по правому клику мыши на имени проекта в контекстном меню выбираем Add New Biml File. Новый файл BimlScript.biml создан в папке Miscellaneous. Двойным кликом мыши по новому файлу откройте его в редакторе.

Стандартный новый файл содержит следующий текст:

<Biml xmlns=http://schemas.varigence.com/biml.xsd>

</Biml>

Добавим XML теги описывающие пакеты, которые будут созданы в рамках этого файла. Теперь наш скрипт будет выглядеть следующим образом:

<Biml xmlns=http://schemas.varigence.com/biml.xsd>

<Packages>

<Package Name=BIMLtest”  ConstraintMode=Parallel>

</Package>

</Packages>

</Biml>

Сохраним файл, кликнем правой клавишей мыши на файле и выберем в контекстном меню Generate SSIS Packages. Теперь у нас в проекте появился файл TestBimlPackage.dtsx

Теперь вернемся в файл BimlScript.biml и добавим задачу. Создайте новый узел XML в внутри узла <Package>. Между тэгами <Tasks> и </Tasks> добавьте новый узел, называемый ExecuteSQL. Теперь добавим в новый узел аттрибут Name и зададим ему значение «Test Select». Далее создаем новый узел между <ExecuteSQL> и </ExecuteSQL> и назовем его DirectInput. Между <DirectInput> и </DirectInput> добавим команду T-SQL: Select 1 As One. У вас должен получиться следующий скрипт:

<Biml xmlns=http://schemas.varigence.com/biml.xsd>

<Packages>

<Package Name=BIMLtest” ConstraintMode=Parallel>

<Tasks>

<ExecuteSQL Name=Test Select>

<DirectInput>Select 1 As One</DirectInput>

</ExecuteSQL>

</Tasks>

</Package>

</Packages>

</Biml>

Давайте попробуем протестировать. Сохраните файл и сгенерируйте пакет как делали в прошлый раз. Вы должны получить сообщение об ошибке:

Движок Business Intelligence Markup Language включает в себя функциональность проверки. Вы можете в любой момент проверить скрипт. Для этого кликните правой клавишей мыши на соответствующем файле и в контекстном меню выберите Check Biml For Errors.

В этом примере для фиксации ошибки нам нужно добавить аттрибут ConnectionName в тэг ExecuteSQL. Но мы ещё не задали соединение (connection). Для этого вернитесь в начало скрипта и добавьте новую строку после тэга Biml и до тэга Packages. В этой строке добавьте узел Connections. А в нем добавьте узел Connection. Узел Connection требует два аттрибута: Name и ConnectionString. У меня используется именованный экземпляр SQL\SQL14 и база данных AdventureWorks2014. У меня скрипт выглядит следующим образом:

<Biml xmlns=http://schemas.varigence.com/biml.xsd>

<Connections>

<Connection Name=AdventureWorks2014” ConnectionStringData Source=SQL\SQL14;Initial Catalog=AdventureWorks2014;Provider=SQLNCLI11.1;Integrated Security=SSPI; />

</Connections>

<Packages>

<Package Name=BIMLtest” ConstraintMode=Parallel>

<Tasks>

<ExecuteSQL Name=Test Select” ConnectionName=AdventureWorks2014>

<DirectInput>Select 1 As One</DirectInput>

</ExecuteSQL>

</Tasks>

</Package>

</Packages>

</Biml>

Давайте протестируем. Снова сгенерируйте пакет (появится диалоговое окно с вопросом о том действительно вы хотите перезаписать существующий пакет) и посмотрите его содержимое.

Отлично. Вы сделали свой первый пакет с помощью BIML. Интересно? Дальше будет ещё занятней.

P.S. в статье использованы примеры из книги “SQL Server Integration Services Design Patterns

2 thoughts on “BIML. Создаем “Hello, world!”

  1. Pingback: BIML. Сборник статей в этом блоге | Korshikov's

  2. Pingback: BIML. Усложняем задачу. | Korshikov's

Comments are closed.