Upload
hosea
View
90
Download
0
Embed Size (px)
DESCRIPTION
Горизонтальная масштабируемость аналитических систем в редакции SQL Server 2008 R2 Parallel Data Warehouse. Вячеслав Красовский. Старший инженер-разр а ботчик. Микрософт. BI 202. Вчера и сегодня. 1975-1985: Упор на экзотические архитектуры - PowerPoint PPT Presentation
Citation preview
Горизонтальная масштабируемость аналитических систем в редакции SQL Server 2008 R2 Parallel Data Warehouse
Вячеслав КрасовскийСтарший инженер-разработчик Микрософт
BI 202
Вчера и сегодня1975-1985:
Упор на экзотические архитектурыНеразвитые «строительные блоки» (напр. TCP/IP)Чересчур сложные дизайны
Сегодня: Мощные широкодоступные компьютерыДешёвые сетевые технологииПроверенный подход к параллелизму
Содержание Много-компьютерная масштабируемость
Метрики успеха: линейный рост производительности
Подходы к масштабированиюНезависимость рулит
Алгоритмы PDW: Как разделить данные и властвовать
Секционный (партиционный) параллелизм
Microsoft SQL Server 2008 R2 PDWУстройство устройства
Метрики успеха(или почему PDW мощнее обычного SQL сервера)Два ключевых аспекта
(1) - Линейное ускорение (рост в быстродействии) – добавление оборудования ведёт к увеличению скорости исполнения запроса
MEM
CPU
MEM
CPU
MEM
CPU
MEM
CPU
Сеть Сеть
MEM
CPU
MEM
CPU
MEM
CPU
MEM
CPU
MEM
CPU
MEM
CPU
MEM
CPU
MEM
CPU
10 TB на 4 машинах и 4 дисках
10 TB на 8 машинах и 8 дисках
Метрики успеха
(2) - Линейное масштабирование (рост максимальных объёмов данных)– добавление оборудования ведёт к увеличению количества данных при прежней скорости исполнения запросов
10 TB на 4 машинах и 4 дисках
20 TB на 8 машинах и 8 дисках
MEM
CPU
MEM
CPU
MEM
CPU
MEM
CPU
Сеть Сеть
MEM
CPU
MEM
CPU
MEM
CPU
MEM
CPU
MEM
CPU
MEM
CPU
MEM
CPU
MEM
CPU
6
Барьеры к ускорениюСтартовое время
Время необходимое для запуска операцииДля большого количества процессоров (100) может быть весьма значительным
ИнтерференцияЗамедление всех запросов привносимое при добавлении нового запроса. Возникает в результате доступа к общим ресурсам
Неравномерность (Skew)Общее время запроса ограничено временем исполнения самого медленного шага
7
Содержание Много-компьютерная масштабируемость
Метрики успеха: линейный рост производительности
Подходы к масштабированиюДаёшь независимость!
Как разделить данные и властвоватьПартиционный параллелизм
Microsoft SQL Server 2008 R2 PDWУстройство устройства
Как достигнуть петабайта
Пета-байтные хранилища уже в эксплуатации!
Сотни машин и тысячи дисковСистемы на сотни терабайт уже в широком обиходе
Что же делать с сотнями 1 ТВ дисков?Простой перечень подходов:
(1) Системы с общей памятью (2) Системы с общим диском(3) Независимые (shared-nothing) системы
9
Процессоры делят всю память и все диски
Достоинства:
Простая организация упрощает кодПроблемы с масштабированием
Система памяти становится узким местомПроблемы вызванные протоколами синхронизации кэшейИнтерференция вследствие доступа к общим ресурсам (таблицы блокировок, буфер страниц, т.п.)
Весьма сложно достичь масштаба сотни ядер ЦПУ
Системы с общей памятью
Память
CPU CPU CPU CPU CPU CPU
10
Обычные компьютеры (2-4 проц., память, локальный диск)
СХД - дорогоОграничения в масштабируемости (10-20 машин)
Для координации доступа нужен сложный распределённый менеджер блокировокПример: Oracle RAC
Системы с общим диском
Сеть хранения данных (SAN)
…
Машина 1
MEM
CPU
Машина 2
MEM
CPU
Машина K
MEM
CPU
База данных находится на СХД дисках
11
Обычные машины объединённые в обычную сеть (gigabit Ethernet, Infiniband)
Дизайн масштабируется бесконечноНет общих разделяемых компонент (как в системах с общей памятью)Нет распределённого менеджера блокировок (как в системах с общим диском)Пропускная способность памяти и дисков растёт линейно с добавлением машин
Независимые системы(shared-nothing)
…
Машина K
MEM
CPU
Машина 2
MEM
CPU
Машина 1
MEM
CPU
Сеть
12
Независимые системыДостоинства
Дешёвые общедоступные компьютерыОтличная масштабируемостьОтказоустойчивостьНет «горячих» компонент (буферный кэш, таблица блокировок)Линейный рост производительности (ускорение и масштабирование)
НедостаткиАдминистрация – труднее создать систему администрирования Сложнее подобрать удачный дизайн базы данных приложенияНужен ПО для обработки ситуаций отказа компонент и неравномерностей (skew) данных
13
СУБД на базе такой архитектурной модели были предложены например Teradata или Gamma (Univ. of Wisconsin)
IBM DB2/PE – 1990-еInformix XPS – конец 1990-хНыне: Greenplum, Netezza, Vertica, Aster
Этот же подход используется поисковиками (Bing, Yahoo, Google)
Кластеры из 10,000 машин
Microsoft SQL Server 2008 R2 PDW – независимая (shared-nothing) система
Независимые системы
14
Содержание Много-компьютерная масштабируемость
Метрики успеха: линейный рост производительности
Подходы к масштабированиюДаёшь независимость!
Алгоритмы PDW: Как разделить данные и властвовать
Партиционный параллелизм
Microsoft SQL Server 2008 R2 PDWУстройство устройства
Горизонтальное разделение данных
Сеть
ID Name …
201 cBob …
105 Sue …
933 Mary …
ID Name …
201 cBob …
105 Sue …
933 Mary …
ID Name …
201 cBob …
105 Sue …
933 Mary …
ID Name …
201 cBob …
105 Sue …
933 Mary …
ID Name …
201 cBob …
105 Sue …
933 Mary …
ID Name …
201 cBob …
105 Sue …
933 Mary …
ID Name …
201 cBob …
105 Sue …
933 Mary …
ID Name …
201 cBob …
105 Sue …
933 Mary …
Ключевая идея: Разделить ряды всех таблиц равномерно по всем машинам и дискамМасштабируется прекрасно
сотни машин, тысячи дисков
Основа линейного ускорения и масштабируемостиТри варианта
Разделение по кругу (Round Robin)Разделение по диапазонам (Range)Разделение по хэшу (Hash)
16
Идея: ряды направляются по очереди
Разделение по кругу (Round Robin)
ID Name City Balance
201 Bob Madison $3,000
105 Sue San Fran $110
933 Mary Seattle $40,000
150 George Seattle $60
220 Sally Mtn View $990
600 Larry Palo Alto $1,001
750 Anne L.A. $22,000
50 Liz NYC $2,200
86 Bob Chicago $180
630 Bob London $994
19 George Paris $3,105
320 Jeff Madison $0
Загружаемые Данные
Сеть
MEM
CPU
MEM
CPU
ETL
Node 1
Node 2
17
ID Name …
ID Name …
ID Name …
ID Name …
105 Sue …
201 Bob …
933 Mary …
600 Larry …
220 Sally …
150 George …
750 Anne …
50 Liz …
86 Bob …
320 Jeff …
19 George …
630 Bob …
+ Все диски загружаются равномерно- Неизвестно куда какой ряд попал
Ключевая идея: рыды раздаются согласно значению одной из колонок (в данном примере ID)
Разделение по диапазонам(Range)
ID Name City Balance201 Bob Madison $3,000 105 Sue San Fran $110 933 Mary Seattle $40,000 150 George Seattle $60 220 Sally Mtn View $990 600 Larry Palo Alto $1,001 750 Anne L.A. $22,000 50 Liz NYC $2,200 86 Bob Chicago $180
630 Bob London $994 19 George Paris $3,105
320 Jeff Madison 1818
Да
нны
е п
ольз
оват
еля
Inte
rcon
nect
ion
Netw
ork
MEM
CPU
MEM
CPU
ID Name …19 George …50 Liz …86 Bob …
ID Name …105 Sue …150 George …201 Bob …
ID Name …220 Sally …320 Jeff …600 Larry …
ID Name …630 Bob …750 Anne …933 Mary …
ID Name City Balance19 George Paris $3,105 50 Liz NYC $2,200
86 Bob Chicago $180 105 Sue San Fran $110 150 George Seattle $60 201 Bob Madison $3,000 220 Sally Mtn View $990 320 Jeff Madison $0 600 Larry Palo Alto $1,001 630 Bob London $994 750 Anne L.A. $22,000 933 Mary Seattle $40,000
Сортировка по ID
ETL
Node 2
Node 1
18
105 ≤ ID ≤ 219
ID ≤ 104
220 ≤ ID ≤ 629
ID ≥ 630
После сортировки можно разбить на нужное количество дипазонов
В этом примере 4 диска, следовательно нужно 4 диапозона
Ряды распеделяются согласно дипазонам
Информация о диапазонх сохраняется в схеме таблицы
Ключевая идея: рады раздаются путём вычесления хэш функции от значения одной из колонок
Разделение по хэшу (Hash)
ID Name City Balance
201 Bob Madison $3,000
105 Sue San Fran $110
933 Mary Seattle $40,000
150 George Seattle $60
220 Sally Mtn View $990
602 Larry Palo Alto $1,001
752 Anne L.A. $22,000
50 Liz NYC $2,200
86 Bob Chicago $180
633 Bob London $994
19 George Paris $3,105
320 Jeff Madison $0
Данные пользователя
MEM
CPU
Сеть
MEM
CPU
ID Name …
ID Name …
ID Name …
ID Name …
Хэшпо ID
933 Mary …
602 Larry …
105 Sue …
201 Bob …
50 Liz …
150 George …
220 Sally …
320 Jeff …
752 Anne …
86 Bob …
19 George …
633 Bob …
Обратите внимание: диск 1 машины 1 получил 4 ряда, в то время как диск 1 машины 2 – толко два ряда. Неравномерность (skew).
Машина 2
Машина 1
19
Информаця о том, по какой колонке совершино хэширование сохраняетья в схеме
Hash_Function (201) (Машина 1, Диск 2)Hash_Function (105) (Машина 1, Диск 2)Hash_Function (933) (Машина 2, Диск 2)
Реляционный операторПримитив, используемый СУБД для выполнения конструкций языка SQLПример, предикат “AmtDue > $30K”
FILTER и SCAN – есть реляционные операторы, ряды проходят через конвейер таких операторов и приходят к пользователю
AmtDue > $30KFILTER
SCAN
ID Name AmtDue933 Mary $49K633 Bob $19K19 George $83K
20
Партиционный Паралеллизм
ID Name AmtDue
201 Bob $9K
105 Sue $11K
86 Bob $90K
ID Name AmtDue
933 Mary $49K
633 Bob $19K
19 George $83K
ID Name AmtDue
602 Larry $13K
752 Anne $75K
322 Jeff $20K
Координатор выполнения
Оптимизатор
Парсер
Каталог
Приложение
Запрос:Select * from Customers where AmtDue > $30K
86 Bob $90K
752 Anne $75K
933 Mary $49K19 George $83K
752 Anne $75K86 Bob $90K
Запрос выполняется(1) Всеми машинами(2) Последовательный
поиск на всех машинах
(3) Легко маштабируется
(4) Блокировка локальна
AmtDue > $30K
Filter
Scan
AmtDue > $30K
Filter
Scan
AmtDue > $30K
Filter
Scan
SQL Server
SQL Server
SQL Server
Та
бли
ца
пол
ьзов
ател
я
933 Mary $49K19 George $83K
21
Используем информацию о разделении
ID Name AmtDue
201 Bob $9K
105 Sue $11K
86 Bob $90K
ID Name AmtDue
933 Mary $49K
633 Bob $19K
19 George $83K
ID Name AmtDue
602 Larry $13K
752 Anne $75K
322 Jeff $20K
Координатор выполнения
Оптимизатор
Парсер
Приложение
Запрос:Select * from Customers where ID = 933
933 Mary $49K
Customers (ID, Name, AmtDue)Разеление по хэшу по ID
933 Mary $49K Запрос выполняется(1) Одной машиной(2) Последовательный
поиск(3) Остальные машины
могут выполнять другие запросы
SQL Server
ID=933Filter
Scan
SQL Server
SQL Server
22
Роль индексов
Пример #1:Таблица Customers (ID, Name, AmtDue)
Разделение по хэшу по ID
Имеем кластерный индекс по Customers (ID)
23
Роль индексов
ID Name AmtDue86 Bob $90K
105 Sue $11K201 Bob $9K
ID Name AmtDue19 George $83K
633 Bob $19K933 Mary $49K
ID Name AmtDue322 Jeff $20K602 Larry $13K752 Anne $75K
Координатор выполнения
Оптимизатор
Парсер
Приложение
Запрос:Select * from Customers where ID = 933
933 Mary $49K
Таблица:Customers (ID,Name,AmtDue)Разеление по хэшу по IDКластерный индекс по ID
933 Mary $49K
ID ID ID
Запрос выполняется(1) Одной машиной(2) Поиск по индексу ID(3) Эффективные
короткие транзакции
SQL Server
SQL Server
IndexSelect ID=933
SQL Server
24
Роль индексов: пример 2
Пример #1:Таблица Customers (ID, Name, AmtDue)
Разделение по хэшу по ID
Имеем кластерный индекс по Customers (AmtDue)
Имеем не кластерный индекс по Customers (ID)
25
Роль индексов: пример 2
ID Name AmtDue
201 Bob $9K105 Sue $11K86 Bob $90K
ID Name AmtDue
633 Bob $19K933 Mary $49K19 George $83K
ID Name AmtDue
602 Larry $13K322 Jeff $20K752 Anne $75K
Координатор выполнения
Оптимизатор
Парсер
Приложение
Запрос:Select * from Customers where ID = 933
IndexSelect ID=933
933 Mary $49K
SQL Engine
SQL Engine
SQL Engine
Таблица:Customers (ID, Name, AmtDue)Разеление по хэшу по IDКластерный индекс по AmtDueНе-кластерный индекс по ID
933 Mary$49K
IDAmtDue IDAmtDue IDAmtDue
Запрос:Select * from Customers where AmtDue > $30K
IndexSelect AmtDue >$30K
IndexSelect AmtDue >$30K
IndexSelect AmtDue >$30K
86 Bob $90K752 Anne $75K
933 Mary $49K
19 George $83K
752 Anne $75K
86 Bob $90K
933 Mary $49K
19 George $83K
26
Запросы выполняются(1) Одной машиной(2) Поиск по индексу ID
(3) Всеми машинами(4) Поиск по индексу
AmtDue(5) Эффективный поиск
в обоих случаях
Что мы пока знаем:Операторы SELECT легко распределяются
Select * from Customers where AmtDue > $30K
Простые агрегации тоже Select Avg (AmtDue) from Customers
Каждая машина независимо выполняет под-запросОдна из машин собирает полный результат
НО: как быть со сложными агрегациями? Select City, Avg(AmtDue) from Customersgroup by City
Как работают слияния (join)?Select Customer.Name, Order.ShipDate wherewhere Customer.CID = Order.CID
27
Соединие (Join) – пример 1
Координатор выполнения
Оптимизатор
Парсер
CatalogsПриложение
SQLEngine
Таблица Ordersразделена по хэшу
СID
Таблица Customersразделена по хэшу
CID
Запрос:Select Name, Item from Customers C, Orders Owhere C.CID = O.CID
SQLEngine
JOINC.CID = O.CID
JOINC.CID = O.CID
•Соединение совершаеться локально•Время выполнение запроса постоянно, вне зависимости от количества машин!
28
CID OID Item
602 10 Xbox
602 11 iPod
602 10 Tivo
752 31 Zune
CID Name AmtDue
602 Larry $13K
322 Jeff $20K
752 Anne $75K
CID OID Item
633 21 TV
633 21 DVD
933 20 Zune
19 51 TV
CID Name AmtDue
933 Mary $49K
19 George $83K
633 Bob $19K
Соединие (Join) – пример 2
Execution Coordinator
Optimizer
Parser
CatalogsApplication
SQLEngine
Таблица Ordersразделена по хэшу
OID
Таблица Customersразделена по хэшу
CID
Запрос:Select Name, Item from Customers C, Orders Owhere C.CID = O.CID
SQLEngine
•Это соединение не может совершаеться локально – одна таблица разделна по хэшу CID, другая - OID
• Нужно сделать пере-разделение (repartition) - послать копию таблицы Orders похэшировав её по CID (после применеия предикатов например Orders.item = ‘Zune’)
29
CID Name AmtDue
602 Larry $13K
322 Jeff $20K
752 Anne $75K
CID Name AmtDue
933 Mary $49K
19 George $83K
633 Bob $19K
CID OID Item
633 21 DVD
602 11 iPod
19 51 TV
752 31 Zune
633 21 TVCID OID Item
602 10 Xbox
602 10 Tivo
933 20 Zune
Пере-разделение (repartition)Фундаментальный механизм для
Слияния в случае когда таблицы не разделены по одному и тому же атрибутуАгрегаты с группировкой (GROUP BY)
Концептуально 3 фазыФаза разбиения: каждая машина разбивает таблицу на N кусочков (где N – количество машин) Фаза пересылки - каждая машина посылает свои кусочки другим машинам (и оставляет один себе)Фаза сборки - каждая машина принимает свои кусочки от других машин и делает одну временную таблицу
Split
Scan Scan
Merge Merge
Join
Split
Scan
Split
Scan
Split
MergeMerge
Join
A0 A1B0 B1
Ряды пересылаются от оператора к оператору, пока не придут к пользователю
Перераспределение
Если происходит слияние по атрибуту по которому ни одна из таблиц не разделена, обе таблицы перераспределяться (после применения предикатов)
Не обязательно на самом деле всегда материализовать временные таблицы
На практике эти 3 фазы выполняются одновременно и используется идея конвейера
31
Использование репликации для неболших таблиц размерностей
SQLEngine
OID CID Item
20 3 Zune
21 3 TV
21 1 DVD
51 1 TV
CID Name
1 U.S.
2 France
3 Italy
OID CID Item
10 1 Tivo
31 2 Zune
10 2 Xbox
11 1 iPod
SQLEngine
SQLEngine
OID CID Item
40 2 iPod
43 2 Iron
9 3 DVD
33 1 VCR
CID Name
1 U.S.
2 France
3 Italy
CID Name
1 U.S.
2 France
3 Italy
ТаблицаCountryРеплицированана всех машинах
Сеть
•Хорошо работает для сценариев хранилища данных
Соединения (Join) с таблицей фактов локально
• Компромисс в том, что изменения к таким таблицам применяються на всех машинах
Таблица Ordersразделена по хэшу по OID
32
Итог паралеллизации
Всего 3 механизма:Репликация операторов – параллельное выполнениеОператор разделения – разделяет таблицу при перераспределенииОператор слияния – совершает слияние
Результат: параллельная СУБД способная достичь линейного ускорения и масштабирования
33
Сеть
Повашаем отказоустойчивость
RAID помогает, но не достаточен
34
MEM
CPU
RAID
MEM
CPU
RAID
MEM
CPU
RAID
MEM
CPU
RAID
MEM
CPU
RAID
MEM
CPU
RAID
Нужен дублицированый доступ к дискам
Содержание Много-компьютерная масштабируемость
Метрики успеха: линейный рост производительности
Подходы к масштабированиюДаёшь независимость!
Алгоритмы PDW: Как разделить данные и властвовать
Партиционный параллелизм
Microsoft SQL Server 2008 R2 PDWУстройство устройства
PDW - это устройство (т.е. аппаратно-программный комплекс)
Устройство PDW
Database Servers
Control Nodes
Active / Passive
Landing Zone
Backup Node
Storage Nodes
Spare Database Server
Du
al
Fib
er
Ch
an
nel
SQL
SQL
SQL
SQL
SQL
SQL
SQL
SQL
SQL
Management Servers
Compute Rack Control Rack
Compute Nodes
SQL
SQL
SQL
Du
al
Infi
nib
an
d
Пример на базеаппаратных средств HP
Вычислительныемашины:HP DL380 G6HP MSA
Линейная масштабируемасть
Control Rack Compute Rack
HP PDW 4 Rack:
47 Серверов
82 Процессора
492 Ядра
от 140 до 500 TB
HP PDW 1 Rack
17 Серверов
22 Процессора
132 Ядра
от 35 до 125 TB
Простой дизайн базы на PDW“Ultra Shared Nothing”
39
SQL
SQL
SQL
SQL
Time DimDate Dim IDCalendar YearCalendar QtrCalendar MoCalendar Day
Store Dim
Store Dim IDStore NameStore MgrStore Size
Product Dim
Prod Dim IDProd CategoryProd Sub CatProd Desc
MktgCampaign Dim
Mktg Camp IDCamp NameCamp MgrCamp StartCamp End
Sales Facts
Date Dim IDStore Dim IDProd Dim IDMktg Camp IdQty SoldDollars Sold
SF-1
SF-1
SF-1
SF-1
SF-1
SF-1
SF-1
SF-1
SF-1
SF-1
SF-1
SF-1
40
Sales Facts
Date Dim IDStore Dim IDProd Dim IDMktg Camp IdQty SoldDollars Sold
SQL
SQL
SQL
SQL
Большая таблица фактов разделена
SF-1
SF-2
SF-3
SF-4
Time DimDate Dim IDCalendar YearCalendar QtrCalendar MoCalendar Day
Store Dim
Store Dim IDStore NameStore MgrStore Size
Product Dim
Prod Dim IDProd CategoryProd Sub CatProd Desc
MktgCampaign Dim
Mktg Camp IDCamp NameCamp MgrCamp StartCamp End
Простой дезайн базы на PDW“Ultra Shared Nothing”
41
Time DimDate Dim IDCalendar YearCalendar QtrCalendar MoCalendar Day
Store Dim
Store Dim IDStore NameStore MgrStore Size
Product Dim
Prod Dim IDProd CategoryProd Sub CatProd Desc
MktgCampaign Dim
Mktg Camp IDCamp NameCamp MgrCamp StartCamp End
SQL
SQL
SQL
SQL
TD
PD
SD
MD
TD
PD
SD
MD
TD
PD
SD
MD
Таблицы измерений реплицированы на
каждой машине
TD
PD
SD
MD
Sales Facts
Date Dim IDStore Dim IDProd Dim IDMktg Camp IdQty SoldDollars Sold
Простой дизайн базы на PDW“Ultra Shared Nothing”
SF-1
SF-1
SF-1
SF-1
SF-1
SF-1
SF-1
SF-1
SF-1
SF-1
SF-1
SF-1
SF-1
SF-2
SF-3
SF-4
Результат: слияния фактов с измерениями
локальны
Синтаксис для PDWCREATE DATABASE database_name [ WITH AUTOGROW = ON | OFF ,| REPLICATED_SIZE = replicated_size [ GB ]| DISTRIBUTED_SIZE = distributed_size [ GB ]| LOG_SIZE = log_size [ GB ] ]
CREATE TABLE table_name [ ( { <column_definition> } [ ,...n ] ) [ CLUSTERED INDEX ( column_name ) ] , [ DISTRIBIUTE ON = ( column_name ) ] | [ REPLICATE ] , [ PARTITION column_name ( RANGE { LEFT | RIGHT } FOR VALUES { [ boundary_value [,...n] ] ) ) ] }
BACKUP DATABASE database_name TO backup_directory WITH [ ( ] DIFFERENTIAL [, DESCRIPTION = 'text'] [ ) ]
ИтогиБудущие СУБД за параллелизмом
Независимые (Shared-nothing) архитектуры будут превалировать т.к. предлагают по настоящему масштабируемый параллелизм на базе общедоступного оборудования
Техника разделения данных и разделённого выполнения запросов является ключом к достижению линейного ускорения и масштабирования
Microsoft SQL Server 2008 R2 PDW – продукт обеспечивает производительность и масштабируемость посредством массивной параллельной обработки данных, используя комплекс систем общедоступных машин
43
Вопросы
Вячеслав КрасовскийSenior Software Engineer
SQL Server [email protected]
http://www.microsoft.com/sqlserver/2008/en/us/parallel-data-warehouse.aspx
Ваше мнение очень важно для нас.Пожалуйста, оцените доклад, заполните анкету
и сдайте ее при выходе из зала
Спасибо!
Официальные курсы и сертификация Microsoft
Более 300 официальных курсов Microsoft доступно в России. Официальные курсы можно прослушать только в авторизованных учебных центрах Microsoft
под руководством опытного сертифицированного инструктора Microsoftинтенсивное обучение с акцентом на практикуболее 80-и учебных центров более чем в 20-и городах России (+ дистанционные и выездные курсы)
Сертификат Microsoft - показатель квалификации ИТ-специалиста для работодателя .
• Microsoft предлагает гибкую систему сертификаций.
• Все курсы, учебные центры и центры тестирования: www.microsoft.com/rus/learning
40% Доказательство № 75
сертифицированных специалистов считают, что сертификация помогла им получить работу или повышение
57% Доказательство № 119
рекрутеров считают сертификацию сотрудников одним из критериев для повышения в должности
Специальные предложенияСертификационный пакет со вторым шансом
Пакеты экзаменационных ваучеров со скидкой от 15 до 20% и бесплатной пересдачей («вторым шансом»). Все экзамены сдаются одним человеком.
Сэкономьте 15% на сертификации вашей ИТ-команды
Пакет из 10-и экзаменационных ваучеров со скидкой 15% для сотрудников ИТ-отдела. «Второй шанс» включен. Ваучеры можно произвольно распределять между сотрудниками.
Microsoft Certified Career ConferenceПервая 24-часовая глобальная виртуальная конференция с 18 ноября с 15.00 (моск. время) по 19 ноября 2010 г.Сессии по технологиям и построению карьерыСкидка 50% для сертифицированных специалистов Microsoft и студентов
Бесплатная подписка на TechNet для слушателей официальных курсов
Некоторые курсы по SharePoint, Windows 7; Windows Server 2008; SQL Server 2008
Детали: www.microsoft.com/rus/learning
С 22 ноября 2010 г. – подписка TechNet
бесплатно для слушателей курсов.
Количество ограничено!