Вячеслав Красовский Старший инженер-разработчик Микрософт BI 202. презентация

Содержание

Горизонтальная масштабируемость аналитических систем в редакции SQL Server 2008 R2 Parallel Data Warehouse Вячеслав Красовский Старший инженер-разработчик Микрософт BI 202

Слайд 2Горизонтальная масштабируемость аналитических систем в редакции SQL Server 2008 R2 Parallel

Data Warehouse

Вячеслав Красовский

Старший инженер-разработчик

Микрософт

BI 202


Слайд 3Вчера и сегодня
1975-1985:
Упор на экзотические архитектуры
Неразвитые «строительные блоки» (напр. TCP/IP)
Чересчур

сложные дизайны

Сегодня:
Мощные широкодоступные компьютеры
Дешёвые сетевые технологии
Проверенный подход к параллелизму




Слайд 4Содержание
Много-компьютерная масштабируемость
Метрики успеха: линейный рост производительности

Подходы к масштабированию
Независимость рулит

Алгоритмы PDW:

Как разделить данные и властвовать
Секционный (партиционный) параллелизм

Microsoft SQL Server 2008 R2 PDW
Устройство устройства


Слайд 5Метрики успеха (или почему PDW мощнее обычного SQL сервера)
Два ключевых аспекта
(1) -

Линейное ускорение (рост в быстродействии) – добавление оборудования ведёт к увеличению скорости исполнения запроса


Слайд 6Метрики успеха
(2) - Линейное масштабирование (рост максимальных объёмов данных)– добавление оборудования

ведёт к увеличению количества данных при прежней скорости исполнения запросов

Слайд 7Барьеры к ускорению
Стартовое время
Время необходимое для запуска операции
Для большого количества процессоров

(100) может быть весьма значительным
Интерференция
Замедление всех запросов привносимое при добавлении нового запроса. Возникает в результате доступа к общим ресурсам
Неравномерность (Skew)
Общее время запроса ограничено временем исполнения самого медленного шага

Слайд 8Содержание
Много-компьютерная масштабируемость
Метрики успеха: линейный рост производительности

Подходы к масштабированию
Даёшь независимость!

Как разделить

данные и властвовать
Партиционный параллелизм

Microsoft SQL Server 2008 R2 PDW
Устройство устройства


Слайд 9Как достигнуть петабайта
Пета-байтные хранилища уже в эксплуатации!
Сотни машин и тысячи дисков
Системы

на сотни терабайт уже в широком обиходе
Что же делать с сотнями 1 ТВ дисков?
Простой перечень подходов:
(1) Системы с общей памятью
(2) Системы с общим диском
(3) Независимые (shared-nothing) системы


Слайд 10Процессоры делят всю память и все диски






Достоинства:
Простая организация упрощает код
Проблемы с

масштабированием
Система памяти становится узким местом
Проблемы вызванные протоколами синхронизации кэшей
Интерференция вследствие доступа к общим ресурсам (таблицы блокировок, буфер страниц, т.п.)
Весьма сложно достичь масштаба сотни ядер ЦПУ

Системы с общей памятью


Слайд 11Обычные компьютеры (2-4 проц., память, локальный диск)




СХД - дорого
Ограничения в масштабируемости

(10-20 машин)
Для координации доступа нужен сложный распределённый менеджер блокировок
Пример: Oracle RAC

Системы с общим диском

База данных находится на СХД дисках


Слайд 12Обычные машины объединённые в обычную сеть (gigabit Ethernet, Infiniband)





Дизайн масштабируется бесконечно
Нет

общих разделяемых компонент (как в системах с общей памятью)
Нет распределённого менеджера блокировок (как в системах с общим диском)
Пропускная способность памяти и дисков растёт линейно с добавлением машин

Независимые системы (shared-nothing)


Слайд 13Независимые системы
Достоинства
Дешёвые общедоступные компьютеры
Отличная масштабируемость
Отказоустойчивость
Нет «горячих» компонент (буферный кэш, таблица блокировок)
Линейный

рост производительности (ускорение и масштабирование)
Недостатки
Администрация – труднее создать систему администрирования
Сложнее подобрать удачный дизайн базы данных приложения
Нужен ПО для обработки ситуаций отказа компонент и неравномерностей (skew) данных

Слайд 14
СУБД на базе такой архитектурной модели были предложены например 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) система







Независимые системы


Слайд 15Содержание
Много-компьютерная масштабируемость
Метрики успеха: линейный рост производительности

Подходы к масштабированию
Даёшь независимость!

Алгоритмы PDW:

Как разделить данные и властвовать
Партиционный параллелизм

Microsoft SQL Server 2008 R2 PDW
Устройство устройства


Слайд 16Горизонтальное разделение данных
Ключевая идея: Разделить ряды всех таблиц равномерно по всем

машинам и дискам
Масштабируется прекрасно
сотни машин, тысячи дисков
Основа линейного ускорения и масштабируемости
Три варианта
Разделение по кругу (Round Robin)
Разделение по диапазонам (Range)
Разделение по хэшу (Hash)

Слайд 17Идея: ряды направляются по очереди







Разделение по кругу (Round Robin)
Загружаемые Данные
Node 1
Node

2

+ Все диски загружаются равномерно
- Неизвестно куда какой ряд попал


Слайд 18Ключевая идея: рыды раздаются согласно значению одной из колонок (в данном

примере ID)







Разделение по диапазонам (Range)

Данные пользователя

Node 2

Node 1

105 ≤ ID ≤ 219

ID ≤ 104

220 ≤ ID ≤ 629

ID ≥ 630

После сортировки можно разбить на нужное количество дипазонов

В этом примере 4 диска, следовательно нужно 4 диапозона

Ряды распеделяются согласно дипазонам

Информация о диапазонх сохраняется в схеме таблицы


Слайд 19Ключевая идея: рады раздаются путём вычесления хэш функции от значения одной

из колонок







Разделение по хэшу (Hash)

Данные пользователя

Обратите внимание: диск 1 машины 1 получил 4 ряда, в то время как диск 1 машины 2 – толко два ряда. Неравномерность (skew).

Машина 2

Машина 1

Информаця о том, по какой колонке совершино хэширование сохраняетья в схеме

Hash_Function (201) ? (Машина 1, Диск 2)

Hash_Function (105) ? (Машина 1, Диск 2)

Hash_Function (933) ? (Машина 2, Диск 2)


Слайд 20Реляционный оператор
Примитив, используемый СУБД для выполнения конструкций языка SQL
Пример, предикат “AmtDue

> $30K”






FILTER и SCAN – есть реляционные операторы, ряды проходят через конвейер таких операторов и приходят к пользователю



Слайд 21



Партиционный Паралеллизм
Запрос:
Select * from Customers
where AmtDue > $30K
Запрос выполняется
Всеми машинами
Последовательный

поиск на всех машинах
Легко маштабируется
Блокировка локальна

Таблица пользователя


Слайд 22



Используем информацию о разделении
Запрос:
Select * from Customers
where ID = 933
Customers

(ID, Name, AmtDue)
Разеление по хэшу по ID

Запрос выполняется
Одной машиной
Последовательный поиск
Остальные машины могут выполнять другие запросы

SQL
Server

SQL
Server

SQL
Server


Слайд 23Роль индексов
Пример #1:
Таблица Customers (ID, Name, AmtDue) Разделение по хэшу по

ID

Имеем кластерный индекс по Customers (ID)


Слайд 24



Роль индексов
Запрос:
Select * from Customers
where ID = 933
Таблица:
Customers (ID,Name,AmtDue)
Разеление по

хэшу по ID
Кластерный индекс по ID

Запрос выполняется
Одной машиной
Поиск по индексу ID
Эффективные короткие транзакции




SQL
Server

SQL
Server

SQL
Server


Слайд 25Роль индексов: пример 2
Пример #1:
Таблица Customers (ID, Name, AmtDue) Разделение по

хэшу по ID

Имеем кластерный индекс по Customers (AmtDue)

Имеем не кластерный индекс по Customers (ID)



Слайд 26



Роль индексов: пример 2
Запрос:
Select * from Customers
where ID = 933



SQL


Engine

SQL
Engine

SQL
Engine

Таблица:
Customers (ID, Name, AmtDue)
Разеление по хэшу по ID
Кластерный индекс по AmtDue
Не-кластерный индекс по ID

Запрос:
Select * from Customers
where AmtDue > $30K

Запросы выполняются
Одной машиной
Поиск по индексу ID


Всеми машинами
Поиск по индексу AmtDue
Эффективный поиск в обоих случаях


Слайд 27Что мы пока знаем:
Операторы SELECT легко распределяются
Select * from Customers where

AmtDue > $30K
Простые агрегации тоже
Select Avg (AmtDue) from Customers
Каждая машина независимо выполняет под-запрос
Одна из машин собирает полный результат

НО: как быть со сложными агрегациями?
Select City, Avg(AmtDue) from Customers group by City
Как работают слияния (join)?
Select Customer.Name, Order.ShipDate where where Customer.CID = Order.CID

Слайд 28
Соединие (Join) – пример 1
SQL Engine
Таблица Orders
разделена по хэшу СID
Таблица Customers
разделена по

хэшу CID

Запрос:
Select Name, Item from Customers C, Orders O where C.CID = O.CID

SQL Engine

JOIN C.CID = O.CID

JOIN C.CID = O.CID

Соединение совершаеться локально
Время выполнение запроса постоянно, вне зависимости от количества машин!


Слайд 29
Соединие (Join) – пример 2
SQL Engine
Таблица Orders
разделена по хэшу OID
Таблица Customers
разделена по

хэшу CID

Запрос:
Select Name, Item from Customers C, Orders O where C.CID = O.CID

SQL Engine

Это соединение не может совершаеться локально – одна таблица разделна по хэшу CID, другая - OID
Нужно сделать пере-разделение (repartition) - послать копию таблицы Orders похэшировав её по CID (после применеия предикатов например Orders.item = ‘Zune’)


Слайд 30Пере-разделение (repartition)
Фундаментальный механизм для
Слияния в случае когда таблицы не разделены по

одному и тому же атрибуту
Агрегаты с группировкой (GROUP BY)
Концептуально 3 фазы
Фаза разбиения: каждая машина разбивает таблицу на N кусочков (где N – количество машин)
Фаза пересылки - каждая машина посылает свои кусочки другим машинам (и оставляет один себе)
Фаза сборки - каждая машина принимает свои кусочки от других машин и делает одну временную таблицу

Ряды пересылаются от оператора к оператору, пока не придут к пользователю


Слайд 31Перераспределение
Если происходит слияние по атрибуту по которому ни одна из таблиц

не разделена, обе таблицы перераспределяться (после применения предикатов)

Не обязательно на самом деле всегда материализовать временные таблицы

На практике эти 3 фазы выполняются одновременно и используется идея конвейера


Слайд 32Использование репликации для неболших таблиц размерностей
SQL Engine
SQL Engine
SQL Engine
ТаблицаCountry
Реплицирована на всех машинах

Сеть
Хорошо работает для сценариев

хранилища данных
? Соединения (Join) с таблицей фактов локально

Компромисс в том, что изменения к таким таблицам применяються на всех машинах

Таблица Orders
разделена по хэшу по OID


Слайд 33Итог паралеллизации
Всего 3 механизма:
Репликация операторов – параллельное выполнение
Оператор разделения – разделяет

таблицу при перераспределении
Оператор слияния – совершает слияние
Результат: параллельная СУБД способная достичь линейного ускорения и масштабирования

Слайд 34Повашаем отказоустойчивость
RAID помогает, но не достаточен
Нужен дублицированый доступ к дискам


Слайд 35Содержание
Много-компьютерная масштабируемость
Метрики успеха: линейный рост производительности

Подходы к масштабированию
Даёшь независимость!

Алгоритмы PDW:

Как разделить данные и властвовать
Партиционный параллелизм

Microsoft SQL Server 2008 R2 PDW
Устройство устройства


Слайд 36PDW - это устройство (т.е. аппаратно-программный комплекс)


Слайд 37Устройство PDW
Database Servers
Control Nodes
Active / Passive
Landing Zone
Backup Node
Storage Nodes
Spare Database Server
Dual

Fiber Channel

Management Servers


Compute Rack


Control Rack

Compute Nodes

Dual Infiniband

Пример на базе
аппаратных
средств HP

Вычислительные
машины:
HP DL380 G6
HP MSA


Слайд 38Линейная масштабируемасть
HP PDW 4 Rack:
47 Серверов
82 Процессора
492 Ядра
от 140 до 500

TB

HP PDW 1 Rack
17 Серверов
22 Процессора
132 Ядра
от 35 до 125 TB


Слайд 39Простой дизайн базы на PDW “Ultra Shared Nothing”


Слайд 40SF-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
Простой дезайн базы на PDW “Ultra Shared Nothing”


Слайд 41TD
PD
SD
MD
TD
PD
SD
MD
TD
PD
SD
MD
Таблицы измерений реплицированы на каждой машине

TD
PD
SD
MD
Простой дизайн базы на 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

Результат: слияния фактов с измерениями локальны


Слайд 42Синтаксис для PDW
CREATE 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    [ ( { } [ ,...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'] [ ) ]


Слайд 43Итоги
Будущие СУБД за параллелизмом
Независимые (Shared-nothing) архитектуры будут превалировать т.к. предлагают по

настоящему масштабируемый параллелизм на базе общедоступного оборудования
Техника разделения данных и разделённого выполнения запросов является ключом к достижению линейного ускорения и масштабирования
Microsoft SQL Server 2008 R2 PDW – продукт обеспечивает производительность и масштабируемость посредством массивной параллельной обработки данных, используя комплекс систем общедоступных машин

Слайд 44Вопросы
Вячеслав Красовский
Senior Software Engineer
SQL Server Engine
viatk@microsoft.com

http://www.microsoft.com/sqlserver/2008/en/us/parallel-data-warehouse.aspx

Ваше мнение очень

важно для нас.
Пожалуйста, оцените доклад, заполните анкету и сдайте ее при выходе из зала

Спасибо!


Слайд 45Официальные курсы и сертификация Microsoft
Более 300 официальных курсов Microsoft доступно в

России.
Официальные курсы можно прослушать только в авторизованных учебных центрах Microsoft
под руководством опытного сертифицированного инструктора Microsoft
интенсивное обучение с акцентом на практику
более 80-и учебных центров более чем в 20-и городах России (+ дистанционные и выездные курсы)
Сертификат Microsoft - показатель квалификации ИТ-специалиста для работодателя .
Microsoft предлагает гибкую систему сертификаций.





Все курсы, учебные центры и центры тестирования: www.microsoft.com/rus/learning


Слайд 46Специальные предложения

Сертификационный пакет со вторым шансом
Пакеты экзаменационных ваучеров со скидкой от

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 бесплатно для слушателей курсов. Количество ограничено!


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика