BIML - лучший друг для SSIS разработчика
-
Upload
andrey-korshikov -
Category
Education
-
view
143 -
download
6
Transcript of BIML - лучший друг для SSIS разработчика
BIML - лучший друг для SSIS-разработчика
Андрей Коршиков
MVP, MCSE, MCITP, MCDBA
PASS Regional Mentor for Central Eastern Europe
Андрей
Коршиков
@AndreyKorshikov
PASS Regional Mentor for
Central Eastern Europe
SQL Server Integration Services
4
Источники
ХД
ERP
CRM
HRMS
Данные
Инструменты анализа
Аналитическиекубы
Integration Services
Analysis Services
Reporting Services
Data Mining
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>
Внутри тэгов элемент
Элементы могут содержать:
другие (дочерние) элементы
аттрибуты – свойства элементов
Как начать работать с Biml
1. Скачать и установить BIDS Helper (http://bidshelper.codeplex.com)
2. SSIS проекте
3. Правый клик на SSIS проекте и выбрать Add New Biml File
Ошибки
Красный – ошибка
Синий – отсутствует аттрибут или дочерний элемент
Ошибка в написании
отсутствует аттрибут: ConstraintMode
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>
Повторное использование кода
• <#@ include file="имя_файла.biml" #>
• <#=CallBimlScript("Callee.biml", "xxx") #>
32
Преимущества 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