1 / 47

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

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

hosea
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Вчера и сегодня • 1975-1985: • Упор на экзотические архитектуры • Неразвитые «строительные блоки» (напр. TCP/IP) • Чересчур сложные дизайны • Сегодня: • Мощные широкодоступные компьютеры • Дешёвые сетевые технологии • Проверенный подход к параллелизму

  3. Содержание • Много-компьютерная масштабируемость • Метрики успеха: линейный рост производительности • Подходы к масштабированию • Независимость рулит • Алгоритмы PDW: Как разделить данные и властвовать • Секционный (партиционный) параллелизм • Microsoft SQL Server 2008 R2 PDW • Устройство устройства

  4. Метрики успеха(или почему PDW мощнее обычного SQL сервера) Два ключевых аспекта (1) - Линейное ускорение(рост в быстродействии) – добавление оборудования ведёт к увеличению скорости исполнения запроса Сеть Сеть 10 TB на 4 машинахи 4 дисках 10 TB на8машинахи 8дисках CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU MEM MEM MEM MEM MEM MEM MEM MEM MEM MEM MEM MEM

  5. Метрики успеха (2) - Линейное масштабирование(рост максимальных объёмов данных)– добавление оборудования ведёт к увеличению количества данных при прежней скорости исполнения запросов Сеть Сеть CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU MEM MEM MEM MEM MEM MEM MEM MEM MEM MEM MEM MEM 10 TB на 4 машинахи 4 дисках 20 TB на8машинахи 8дисках

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

  7. Содержание • Много-компьютерная масштабируемость • Метрики успеха: линейный рост производительности • Подходы к масштабированию • Даёшь независимость! • Как разделить данные и властвовать • Партиционный параллелизм • Microsoft SQL Server 2008 R2 PDW • Устройство устройства

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

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

  10. Машина 1 Машина 2 МашинаK … MEM MEM MEM CPU CPU CPU Сеть хранения данных (SAN) Системы с общим диском • Обычные компьютеры (2-4 проц., память, локальный диск) • СХД - дорого • Ограничения в масштабируемости (10-20 машин) • Для координации доступа нужен сложный распределённый менеджер блокировок • Пример: Oracle RAC База данных находится на СХД дисках

  11. МашинаK Машина 1 Машина 2 … MEM MEM MEM CPU CPU CPU Сеть Независимые системы(shared-nothing) • Обычные машины объединённые в обычную сеть (gigabitEthernet, Infiniband) • Дизайн масштабируется бесконечно • Нет общих разделяемых компонент (как в системах с общей памятью) • Нет распределённого менеджера блокировок (как в системах с общим диском) • Пропускная способность памяти и дисков растёт линейно с добавлением машин

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

  13. Независимые системы • СУБД на базе такой архитектурной модели были предложены например Teradata или Gamma (Univ. ofWisconsin) • 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 • Устройство устройства

  15. Сеть Горизонтальное разделение данных • Ключевая идея: Разделить ряды всех таблиц равномерно по всем машинам и дискам • Масштабируется прекрасно • сотни машин, тысячи дисков • Основа линейного ускорения и масштабируемости • Три варианта • Разделение по кругу (Round Robin) • Разделение по диапазонам (Range) • Разделение по хэшу (Hash)

  16. MEM MEM CPU CPU Сеть Разделение по кругу (Round Robin) Node 1 • Идея: ряды направляются по очереди + Все диски загружаются равномерно - Неизвестно куда какой ряд попал Загружаемые Данные ETL Node 2

  17. MEM MEM CPU CPU Interconnection Network Разделение по диапазонам(Range) ID ≤ 104 Node 1 • Ключевая идея: рыды раздаются согласно значению одной из колонок (в данном примере ID) Информация о диапазонх сохраняется в схеме таблицы 105 ≤ ID ≤ 219 ETL После сортировки можно разбить на нужное количество дипазонов В этом примере 4 диска, следовательно нужно 4 диапозона Ряды распеделяются согласно дипазонам Сортировка по ID Данные пользователя 220 ≤ ID ≤ 629 Node 2 ID ≥ 630

  18. MEM MEM CPU CPU Сеть Разделение по хэшу (Hash) 50 105 633 752 19 201 320 220 150 933 602 86 Liz Sally George Jeff Bob Sue Bob Larry Anne George Bob Mary … … … … … … … … … … … … Машина 1 Информаця о том, по какой колонке совершино хэширование сохраняетья в схеме • Ключевая идея: рады раздаются путём вычесленияхэш функции от значения одной из колонок Данные пользователя Хэш поID Hash_Function (201)  (Машина 1, Диск 2) Hash_Function (105)  (Машина 1, Диск 2) Hash_Function (933)  (Машина 2, Диск 2) Обратите внимание: диск 1 машины 1 получил 4 ряда, в то время как диск 1 машины 2 – толко два ряда. Неравномерность (skew). Машина 2

  19. Реляционный оператор FILTER AmtDue > $30K SCAN • Примитив, используемый СУБД для выполнения конструкций языка SQL • Пример, предикат “AmtDue > $30K” • FILTER и SCAN – есть реляционные операторы, ряды проходят через конвейер таких операторов и приходят к пользователю

  20. Партиционный Паралеллизм Filter Filter Filter AmtDue > $30K AmtDue > $30K AmtDue > $30K Запрос выполняется Всеми машинами Последовательный поиск на всех машинах Легко маштабируется Блокировка локальна Scan Scan Scan Приложение Запрос: Select * from Customers where AmtDue > $30K Каталог Парсер Оптимизатор Координатор выполнения SQL Server SQL Server SQL Server Таблица пользователя

  21. Используем информацию о разделении Filter ID=933 Scan Приложение Customers (ID, Name, AmtDue) Разеление по хэшу по ID Запрос выполняется Одной машиной Последовательный поиск Остальные машины могут выполнять другие запросы Запрос: Select * from Customers where ID = 933 Парсер Оптимизатор Координатор выполнения SQL Server SQL Server SQL Server

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

  23. Роль индексов Таблица: Customers (ID,Name,AmtDue) Разеление по хэшу по ID Кластерный индекспо ID Запрос выполняется Одной машиной Поиск по индексу ID Эффективные короткие транзакции Приложение Парсер Запрос: Select * from Customers where ID = 933 Оптимизатор Координатор выполнения IndexSelectID=933 SQL Server SQL Server SQL Server ID ID ID

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

  25. Роль индексов: пример 2 Запросы выполняются Одноймашиной Поиск по индексу ID Всеми машинами Поиск по индексу AmtDue Эффективный поиск в обоих случаях Таблица: Customers (ID, Name, AmtDue) Разеление по хэшу по ID Кластерный индекспо AmtDue Не-кластерный индекспо ID Приложение Парсер Оптимизатор Запрос: Select * from Customers where ID = 933 Запрос: Select * from Customers where AmtDue > $30K Координатор выполнения IndexSelect IndexSelect IndexSelectID=933 IndexSelect SQL Engine SQL Engine SQL Engine AmtDue >$30K AmtDue >$30K AmtDue >$30K AmtDue ID ID AmtDue ID AmtDue

  26. Что мы пока знаем: • Операторы SELECT легко распределяются Select * fromCustomerswhereAmtDue > $30K • Простые агрегации тоже SelectAvg (AmtDue) fromCustomers • Каждая машина независимо выполняет под-запрос • Одна из машин собирает полный результат • НО: как быть со сложными агрегациями? SelectCity, Avg(AmtDue) fromCustomersgroupbyCity • Как работают слияния (join)? SelectCustomer.Name, Order.ShipDatewherewhereCustomer.CID = Order.CID

  27. Соединие (Join) – пример 1 • Соединение совершаеться локально • Время выполнение запроса постоянно, вне зависимости от количества машин! Запрос: Select Name, Item from Customers C, Orders Owhere C.CID = O.CID Приложение Catalogs JOINC.CID = O.CID JOINC.CID = O.CID Парсер SQLEngine SQLEngine Оптимизатор Координатор выполнения Таблица Orders разделена по хэшуСID Таблица Customers разделена по хэшуCID

  28. Соединие (Join) – пример 2 • Это соединение не может совершаеться локально – одна таблица разделна по хэшу CID, другая - OID • Нужно сделать пере-разделение (repartition) - послать копиютаблицы Orders похэшировав её по CID (после применеия предикатов например Orders.item = ‘Zune’) Запрос: Select Name, Item from Customers C, Orders Owhere C.CID = O.CID Application Catalogs Parser SQLEngine SQLEngine Optimizer Execution Coordinator Таблица Orders разделена по хэшуOID Таблица Customers разделена по хэшуCID

  29. Join Join Merge Merge Merge Merge Split Split Split Split Scan Scan Scan Scan A B A B 1 1 0 0 Пере-разделение (repartition) • Фундаментальный механизм для • Слияния в случае когда таблицыне разделены по одному и тому же атрибуту • Агрегаты с группировкой (GROUP BY) • Концептуально 3 фазы • Фаза разбиения: каждая машина разбивает таблицу на N кусочков (где N – количество машин) • Фаза пересылки - каждая машина посылает свои кусочки другим машинам (и оставляет один себе) • Фаза сборки - каждая машина принимает свои кусочки от других машин и делает одну временную таблицу Ряды пересылаются от оператора к оператору, пока не придут к пользователю

  30. Перераспределение • Если происходит слияние по атрибуту по которому ни одна из таблиц не разделена, обе таблицы перераспределяться (после применения предикатов) • Не обязательно на самом деле всегда материализовать временные таблицы • На практике эти 3 фазы выполняются одновременно и используется идея конвейера

  31. Использование репликации для неболших таблиц размерностей • Хорошо работает для сценариев хранилища данных •  Соединения (Join) с таблицей фактов локально • Компромиссв том, что изменения к таким таблицам применяються на всех машинах Сеть SQLEngine SQLEngine SQLEngine Таблица Orders разделена по хэшу по OID ТаблицаCountry Реплицированана всех машинах

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

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

  34. Содержание • Много-компьютерная масштабируемость • Метрики успеха: линейный рост производительности • Подходы к масштабированию • Даёшь независимость! • Алгоритмы PDW: Как разделить данные и властвовать • Партиционный параллелизм • Microsoft SQL Server 2008 R2 PDW • Устройство устройства

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

  36. Устройство PDW Control Rack Compute Rack Compute Nodes Control Nodes Active / Passive Database Servers Storage Nodes SQL SQL SQL SQL SQL SQL SQL SQL SQL SQL SQL SQL Пример на базе аппаратных средств HP Вычислительные машины: HP DL380 G6 HP MSA Management Servers Dual Infiniband Dual Fiber Channel Landing Zone Backup Node Spare Database Server

  37. Линейная масштабируемасть HP PDW 1 Rack 17 Серверов 22 Процессора 132 Ядра от 35 до125 TB HP PDW 4 Rack: 47 Серверов 82 Процессора 492 Ядра от 140 до500 TB ComputeRack Control Rack

  38. Time Dim Product Dim Date Dim ID Calendar Year Calendar Qtr Calendar Mo Calendar Day Prod Dim ID Prod Category Prod Sub Cat Prod Desc Store Dim Store Dim ID Store Name Store Mgr Store Size Простой дизайн базы на PDW“UltraSharedNothing” SQL SQL SQL SQL Sales Facts Date Dim ID Store Dim ID Prod Dim ID Mktg Camp Id Qty Sold Dollars Sold Mktg Campaign Dim Mktg Camp ID Camp Name Camp Mgr Camp Start Camp End

  39. Time Dim Product Dim Date Dim ID Calendar Year Calendar Qtr Calendar Mo Calendar Day Prod Dim ID Prod Category Prod Sub Cat Prod Desc Store Dim Store Dim ID Store Name Store Mgr Store Size Простой дезайн базы на PDW“Ultra Shared Nothing” Большая таблица фактов разделена SQL SQL SQL SQL SF-1 SF-1 SF-1 SF-1 Sales Facts SF-1 SF-1 SF-1 SF-2 Date Dim ID Store Dim ID Prod Dim ID Mktg Camp Id Qty Sold Dollars Sold SF-1 SF-1 SF-1 SF-3 SF-1 SF-1 SF-1 SF-4 Mktg Campaign Dim Mktg Camp ID Camp Name Camp Mgr Camp Start Camp End

  40. Time Dim Product Dim Date Dim ID Calendar Year Calendar Qtr Calendar Mo Calendar Day Prod Dim ID Prod Category Prod Sub Cat Prod Desc Store Dim Store Dim ID Store Name Store Mgr Store Size Простой дизайн базы на PDW“UltraSharedNothing” Таблицы измерений реплицированы на каждой машине SQL SQL SQL SQL TD PD SF-1 SF-1 SF-1 SF-1 MD SD Sales Facts SF-1 SF-1 TD PD SF-1 SF-2 Date Dim ID Store Dim ID Prod Dim ID Mktg Camp Id Qty Sold Dollars Sold MD SD SF-1 SF-1 TD PD SF-1 SF-3 MD SD SF-1 TD PD SF-1 SF-1 SF-4 MD SD Mktg Campaign Dim Mktg Camp ID Camp Name Camp Mgr Camp Start Camp End Результат: слияния фактов с измерениями локальны

  41. Синтаксис для 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 [ ( { <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'] [ ) ]

  42. Итоги • Будущие СУБД за параллелизмом • Независимые (Shared-nothing) архитектуры будут превалировать т.к. предлагают по настоящему масштабируемый параллелизм на базе общедоступного оборудования • Техника разделения данных и разделённого выполнения запросов является ключом к достижению линейного ускорения и масштабирования • Microsoft SQL Server 2008 R2 PDW – продукт обеспечивает производительность и масштабируемость посредством массивной параллельной обработки данных, используя комплекс систем общедоступных машин

  43. Вопросы Вячеслав Красовский SeniorSoftwareEngineer SQL ServerEngine viatk@microsoft.com http://www.microsoft.com/sqlserver/2008/en/us/parallel-data-warehouse.aspx Ваше мнение очень важно для нас. Пожалуйста, оцените доклад, заполните анкету и сдайте ее при выходе из зала Спасибо!

  44. Официальные курсы и сертификация Microsoft • Более 300 официальных курсов Microsoft доступно в России. • Официальные курсы можно прослушать только в авторизованных учебных центрах Microsoft • под руководством опытного сертифицированного инструктора Microsoft • интенсивное обучение с акцентом на практику • более 80-и учебных центров более чем в 20-и городах России (+ дистанционные и выездные курсы) • Сертификат Microsoft - показатель квалификации ИТ-специалиста для работодателя . • Microsoft предлагает гибкую систему сертификаций. • Все курсы, учебные центры и центры тестирования: www.microsoft.com/rus/learning 40 57 % % Доказательство № 75 Доказательство № 119 • рекрутеров считают сертификацию сотрудников одним из критериев для повышения в должности • сертифицированных специалистов считают, что сертификация помогла им получить работу или повышение

  45. Специальные предложения • Сертификационный пакет со вторым шансом • Пакеты экзаменационных ваучеров со скидкой от 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 бесплатно для слушателей курсов. Количество ограничено!

More Related