BIML - лучший друг для SSIS разработчика

36
BIML - лучший друг для SSIS-разработчика Андрей Коршиков MVP, MCSE, MCITP, MCDBA PASS Regional Mentor for Central Eastern Europe

Transcript of BIML - лучший друг для SSIS разработчика

BIML - лучший друг для SSIS-разработчика

Андрей Коршиков

MVP, MCSE, MCITP, MCDBA

PASS Regional Mentor for Central Eastern Europe

Андрей

Коршиков

[email protected]

@AndreyKorshikov

PASS Regional Mentor for

Central Eastern Europe

Вы знакомы с SSIS?

SQL Server Integration Services

4

Источники

ХД

ERP

CRM

HRMS

Данные

Инструменты анализа

Аналитическиекубы

Integration Services

Analysis Services

Reporting Services

Data Mining

SQL Server Integration Services

Task 1

Task 2

Task 3 Task 4

Task 5

Task 10

Task 6

Task 7

Success (AND)

Failure (AND)

Completion (AND)

Success (OR)

Failure (OR)

Completion (OR)

Task 9 Task 8

SQL Server Integration Services

SQL Server Integration Services

7

Пакет

Поток управления

Задача

Задача "Поток данных"

Поток данных

Источник

Преобразование

Назначение

Что такое BIML?

• Business Intelligence Markup Language

• Описывает BI решение простым xml форматом

• Biml скрипт позволяет автоматически создать SSIS пакет

• Позволяет работать с:

таблицами

SSIS пакетами

SSAS кубами

Немного истории и инструменты

10

http://varigence.com/

https://bidshelper.codeplex.com/

http://bimlscript.com/

Немного о XML

eXtensible Markup Language

Основа XML - тэги: <tag>stuff</tag>

Внутри тэгов элемент

Элементы могут содержать:

другие (дочерние) элементы

аттрибуты – свойства элементов

Business Intelligence Markup Language

Как начать работать с Biml

1. Скачать и установить BIDS Helper (http://bidshelper.codeplex.com)

2. SSIS проекте

3. Правый клик на SSIS проекте и выбрать Add New Biml File

Intellisense

Подсказки работают при наборе текста

CTRL+Space для автозавершения или подсказок

Ошибки

Красный – ошибка

Синий – отсутствует аттрибут или дочерний элемент

Ошибка в написании

отсутствует аттрибут: ConstraintMode

Проверяем на ошибки

Создаем SSIS Package из Biml

Biml SSIS

Biml SSIS

.biml vs .dtsx

что легче понять человеку?

Демонстрация

Связываем задачи. ConstraintMode.

23

Linear Parallel

ConstraintMode

24

<ExecuteSQL Name="Select 3" ConnectionName="DB_Src"><DirectInput>Select 3</DirectInput><PrecedenceConstraints><Inputs><Input OutputPathName="Select 1.Output" /></Inputs></PrecedenceConstraints></ExecuteSQL>

<ExecuteSQL Name="Select 3" ConnectionName="DB_Src"><DirectInput>Select 3</DirectInput><PrecedenceConstraints><Inputs><Input OutputPathName="Select 1.Output" /><Input OutputPathName="Select 4.Output" /></Inputs></PrecedenceConstraints></ExecuteSQL><ExecuteSQL Name="Select 4" ConnectionName="DB_Src"><DirectInput>Select 4</DirectInput><PrecedenceConstraints><Inputs /></PrecedenceConstraints></ExecuteSQL>

ConstraintMode

25

<ExecuteSQL Name="Select 3" ConnectionName="DB_Src"><DirectInput>Select 3</DirectInput><PrecedenceConstraints LogicalType="And"><Inputs><Input OutputPathName="Select 1.Output" /><Input OutputPathName="Select 4.Output" EvaluationValue="Failure" /></Inputs></PrecedenceConstraints></ExecuteSQL>

<ExecuteSQL Name="Select 3" ConnectionName="DB_Src"><DirectInput>Select 3</DirectInput><PrecedenceConstraints LogicalType="Or"><Inputs><Input OutputPathName="Select 1.Output" /><Input OutputPathName="Select 4.Output"/></Inputs></PrecedenceConstraints></ExecuteSQL>

Демонстрация

Включаем автоматизацию. BimlScript.

Расширяем возможности Biml с помощью C# или VB кода

Импорт структуры базы данных или метаданных

Цикл по таблицам и колонкам

Выражения для замены статических значений

(и остальное что доступно в C# или VB)

Блоки кода в BimlScript

Directives

<#@ … #>

Control Blocks

<# … #>

Expression Control Blocks

<#= … #>

BimlScript syntax

<#@ import namespace="Varigence.Hadron.CoreLowerer.SchemaManagement" #>

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

<Packages>

<# foreach (var table in RootNode.Tables) { #>

<Package Name="Load<#=table.Name#>" ConstraintMode="Linear">

</Package>

<# } #>

</Packages>

</Biml>

Как это работает

BIML SCRIPT EXPAND GENERATE

xmlxml

Демонстрация

Повторное использование кода

• <#@ include file="имя_файла.biml" #>

• <#=CallBimlScript("Callee.biml", "xxx") #>

32

MessageBox

33

Демонстрация

Преимущества BIML

Экономия времени: создание многих SSIS пакетов из одного Biml файла

Повторное использование: один Biml скрипт работает для разных версий

SQL Server (2005 – 2014)

Гибкость: Легко начать, легко получить новый опыт использования

Ресурсы

BIDS Helperhttp://bidshelper.codeplex.com/

Biml Sampleshttp://varigence.com/Documentation

BimlScript Tutorials and Snippetshttp://www.bimlscript.com/

LinkedIn: Biml User Grouphttps://www.linkedin.com/groups?home=&gid=4640985

о BIML по-русски

http://bit.ly/1DGn4of

Cathrine Wilhelmsen’s Blog

http://www.cathrinewilhelmsen.net/biml/

Stairway to BIML

http://www.sqlservercentral.com/stairway/100550/

Using BIML as an SSIS Design Patterns Engine

http://www.youtube.com/watch?v=YeZesq29d9U

Вопросы?

[email protected]

Спасибо за участие!