Вячеслав Красовский
Старший инженер-разработчик
Микрософт
BI 202
Вячеслав Красовский
Старший инженер-разработчик
Микрософт
BI 202
Системы с общей памятью
Системы с общим диском
База данных находится на СХД дисках
Независимые системы
(shared-nothing)
Независимые системы
+ Все диски загружаются равномерно
- Неизвестно куда какой ряд попал
Разделение по диапазонам
(Range)
Данные пользователя
Node 2
Node 1
105 ≤ ID ≤ 219
ID ≤ 104
220 ≤ ID ≤ 629
ID ≥ 630
После сортировки можно разбить на нужное количество дипазонов
В этом примере 4 диска, следовательно нужно 4 диапозона
Ряды распеделяются согласно дипазонам
Информация о диапазонх сохраняется в схеме таблицы
Разделение по хэшу (Hash)
Данные пользователя
Обратите внимание: диск 1 машины 1 получил 4 ряда, в то время как диск 1 машины 2 – толко два ряда. Неравномерность (skew).
Машина 2
Машина 1
Информаця о том, по какой колонке совершино хэширование сохраняетья в схеме
Hash_Function (201) ? (Машина 1, Диск 2)
Hash_Function (105) ? (Машина 1, Диск 2)
Hash_Function (933) ? (Машина 2, Диск 2)
Таблица пользователя
Запрос выполняется
Одной машиной
Последовательный поиск
Остальные машины могут выполнять другие запросы
SQL
Server
SQL
Server
SQL
Server
Запрос выполняется
Одной машиной
Поиск по индексу ID
Эффективные короткие транзакции
SQL
Server
SQL
Server
SQL
Server
SQL
Engine
SQL
Engine
Таблица:
Customers (ID, Name, AmtDue)
Разеление по хэшу по ID
Кластерный индекс по AmtDue
Не-кластерный индекс по ID
Запрос:
Select * from Customers
where AmtDue > $30K
Запросы выполняются
Одной машиной
Поиск по индексу ID
Всеми машинами
Поиск по индексу AmtDue
Эффективный поиск в обоих случаях
Запрос:
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
Соединение совершаеться локально
Время выполнение запроса постоянно, вне зависимости от количества машин!
Запрос:
Select Name, Item from Customers C, Orders O
where C.CID = O.CID
SQL
Engine
Это соединение не может совершаеться локально – одна таблица разделна по хэшу CID, другая - OID
Нужно сделать пере-разделение (repartition) - послать копию таблицы Orders похэшировав её по CID (после применеия предикатов например Orders.item = ‘Zune’)
Ряды пересылаются от оператора к оператору, пока не придут к пользователю
Таблица Orders
разделена по хэшу по OID
Management Servers
Compute Rack
Control Rack
Compute Nodes
Dual Infiniband
Пример на базе
аппаратных
средств HP
Вычислительные
машины:
HP DL380 G6
HP MSA
HP PDW 1 Rack
17 Серверов
22 Процессора
132 Ядра
от 35 до 125 TB
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
Результат: слияния фактов с измерениями локальны
С 22 ноября 2010 г. – подписка TechNet бесплатно для слушателей курсов. Количество ограничено!
Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть