SQL SERVER PARALLEL DATA WAREHOUSE Обзор, лучшие практики, новое в AU3 Резник Андрей anrez@microsoft.com Гвоздев Александр agvoiz@microsoft.com.

Презентация:



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

FastTrack Data Warehouse Иван Косяков Technology Architect, MTC Moscow Особая благодарность Алексею Халяко из SQLCAT.
9:30 Приветственный кофе 10:00 Ключевой доклад 11:45 Аппаратные решения HP для платформы Microsoft BI Аппаратные решения HP для платформы Microsoft BI.
CREATE TABLE Ident_table ( ID int IDENTITY(1, 1), some_values varchar(50)); IDENTITY [ ( seed, increment ) ]
Опыт проведения нагрузочного тестирования DocsVision Виктор Сущев DocsVision Директор по консалтингу.
Премиум-версии: SQL Server 2008 R2 Parallel Data Warehouse SQL Server 2008 R2 Datacenter Основные версии: SQL Server 2008 R2 Enterprise SQL Server 2008.
Учебный курс Технологии и средства разработки корпоративных систем Лекция 1 Открытые системы. Клиент и сервер Лекции читает кандидат технических наук,
Интернет Университет Суперкомпьютерных технологий Лекция 4 Методы построения параллельных программ (продолжение) Учебный курс Введение в параллельные алгоритмы.
Тема 11 Принципы построения и работы баз данных Тема 01: Введение.
Хранение таблиц По строкам По столбцам Строки нескольких таблиц группируются по общему атрибуту.
Олег Андреев Oracle СНГ Руководитель региональных проектов, государственный сектор.
Parallel Data Warehouse Иван Косяков Technology Architect, MTC Moscow Особая благодарность Алексею Халяко из SQLCAT.
Язык SQL Последовательности Представления Индексы.
Как попробовать виртуализацию VMware Александр Самойленко, Антон Петров.
Интернет Университет Суперкомпьютерных технологий Лекция 3 Методы построения параллельных программ (продолжение) Учебный курс Введение в параллельные алгоритмы.
БАЗЫ ДАННЫХ часть II Распределенные и параллельные системы управления базами данных.
Администрирование и безопасность MySQL. Создание и удаление пользователей Под учетной записью пользователя MySQL подразумевается строка в таблице user.
Обзор операционных систем ВОУНБ им. М. Горького «Операционная система - это совокупность программ, обеспечивающих управление процессом обработки информации.
БАЗЫ ДАННЫХ ЛЕКЦИЯ 12. тема: ОСНОВЫ ЯЗЫКА SQL Общие сведения SQL структурированный язык запросов (Structured Query Language)
Использование MySQL в сервисе дневников LiveInternet.ru Практика, практика, практика Гурьянов Андрей, программист Новиков Лев, системный администратор.
Транксрипт:

SQL SERVER PARALLEL DATA WAREHOUSE Обзор, лучшие практики, новое в AU3 Резник Андрей Гвоздев Александр

Содержание Обзор SQL Server PDW Организация данных Методы загрузки данных Новое в AU3

Предложения Microsoft для построения Хранилищ Данных HP Business Data Warehouse Appliance

Зачем SQL MPP ? Новая возможность для Архитекторов SQL

Программно-аппаратные комплексы Быстрый старт проекта Конфигурация Настройка Интегрированное управление Техническая поддержка комплекса Сбалансированная архитектура

Цели параллелизма Линейное ускорение добавление оборудования ведёт к увеличению скорости исполнения запроса Линейное масштабирование при увеличении объема аппаратного обеспечения большая задача выполняется за то же время 6Track # – Session #

Традиционный подход 7Track # – Session # Системы с общей памятью Системы с общим диском Память CPU Сеть хранения данных (SAN) … Узел 1 MEM CPU Узел 2 MEM CPU Узел Т MEM CPU

Преимущества Нет общих разделяемых компонент (как в системах с общей памятью) Нет распределённого менеджера блокировок (как в системах с общим диском) Пропускная способность памяти и дисков растёт линейно с добавлением узлов Независимые системы (shared-nothing) … Узел N MEM CPU Узел 2 MEM CPU Узел 1 MEM CPU Сеть

Массивно Параллельные Вычисления=Скорость Разделение данных на малые части Получение данных из каждой части Сборка результата MPP дает наиболее быстрый результат по большим объемам данных 9Track # – Session #

PDW Аппаратно-программный комплекс Независимые системы (Shared Nothing "ничего не разделяется") Массивно-параллельные вычисления (MPP) PDW поставляется в инсталлированном и полностью сконфигурированном состоянии. Plug & Play Стандартные: Сервера Системы хранения Сетевое оборудование

Control Rack Data Rack Архитектура PDW Запрос 1 ? ? ? ? ? ? ? ? ? ? Результат

Landing Zone ETL Tools Архитектура Распределенного Хранилища Departmental Reporting Regional Reporting High-Performance Reporting Central EDW Hub Regional Reporting with Business Decision Appliance Third-Party RDBMS Third-Party Data Integration Mobile Applications

v v PDW: Организация данных

Репликация Таблица копируется между всеми узлами Parallel Data Warehouse. Подходы к организации данных Распределение Таблица равномерно распределена между узлами Ультра Shared-Nothing Возможность создать дизайн таким образом, чтобы минимизировать перемещение данных между узлами

Реплицируемые таблицы Time Dim Date Dim ID Calendar Year Calendar Qtr Calendar Mo Calendar Day Date Dim ID Calendar Year Calendar Qtr Calendar Mo Calendar Day Store Dim Store Dim ID Store Name Store Mgr Store Size Store Dim ID Store Name Store Mgr Store Size Product Dim Prod Dim ID Prod Category Prod Sub Cat Prod Desc Prod Dim ID Prod Category Prod Sub Cat Prod Desc Sales Facts Date Dim ID Store Dim ID Prod Dim ID Mktg Camp Id Qty Sold Dollars Sold Mktg Campaign Dim Mktg Campaign Dim Mktg Camp ID Camp Name Camp Mgr Camp Start Camp End TDTD TDTD PDPD PDPD SDSD SDSD MDMD MDMD TDTD TDTD PDPD PDPD SDSD SDSD MDMD MDMD TDTD TDTD PDPD PDPD SDSD SDSD MDMD MDMD Небольшие таблицы измерений реплицируются в каждый Вычислительный Узел TDTD TDTD PDPD PDPD SDSD SDSD MDMD MDMD

Распределенные таблицы Time Dim Date Dim ID Calendar Year Calendar Qtr Calendar Mo Calendar Day Date Dim ID Calendar Year Calendar Qtr Calendar Mo Calendar Day Store Dim Store Dim ID Store Name Store Mgr Store Size Store Dim ID Store Name Store Mgr Store Size Product Dim Prod Dim ID Prod Category Prod Sub Cat Prod Desc Prod Dim ID Prod Category Prod Sub Cat Prod Desc Sales Facts Date Dim ID Store Dim ID Prod Dim ID Mktg Camp Id Qty Sold Dollars Sold Mktg Campaign Dim Mktg Campaign Dim Mktg Camp ID Camp Name Camp Mgr Camp Start Camp End TDTD TDTD PDPD PDPD SDSD SDSD MDMD MDMD TDTD TDTD PDPD PDPD SDSD SDSD MDMD MDMD TDTD TDTD PDPD PDPD SDSD SDSD MDMD MDMD TDTD TDTD PDPD PDPD SDSD SDSD MDMD MDMD Большие таблицы фактов распределяются по хэш-ключу между всеми Вычислительными Узлами SF -1 SF -2 SF -3 SF -4

CREATE TABLE SalesFact ( DateKey INT NOT NULL, CustomerKey INT, DollarAmount MONEY) WITH (DISTRIBUTION = HASH(CustomerKey)) Распределенные таблицы (пример) PDW Узел 1 Create Table _a Create Table _b … Create Table _h 8 Таблиц PDW Узел 10 Create Table _a Create Table _b … Create Table _h PDW Узел …

Архитектура вычислительного узла CP U RAM VendorModel Form Factor Total CoresMemory HPDL360 G61U 8 Cores Hyper threaded 72 GB DELLR6101U 8 Cores Hyper threaded 96 GB SQL Server 2008Local Direct Attached Storage Dual Multi-Core Processors SAN Storage

SAN Архитектура вычислительного узла

Типы запросов Совместимое распределение Запрос не требует перераспределение данных Простой select по одной таблице Ключ распределения используется в операциях соединения или группировки распределенных таблиц Таблица репликации внутренне соединяется с таблицей распределения Несовместимое распределение Запрос требует перераспределение данных между узлами для возврата корректного результата. Простой запрос по распределенной таблице с Group By, который не включает в себя ключ распределения Ключ распределения не используется в соединения и группировках распределенных таблиц. Таблица репликации внешне соединяется с таблицей распределения

Типы соединений Shared Nothing Join Достигается совместимым распределением из- за использования совместимых ключей распределения в условии соединения Ultra Shared Nothing Join Достигается совместимым распределением из- за наличия реплицируемой таблицы Redistribution Join Требует динамического перераспределения данных между вычислительными узлами для достижения совместимого распределения

Node 1 Простой запрос типа Ultra Shared Nothing 22 Тип соединения: USN (Ultra Shared Nothing) Совместимое распределение Используется репликационная таблица. Ключ распределения Store Sales Distribution Key не используется. Item_keyColor 1Red 2Green 3Blue 4Yellow Item Dim ss_key Item_key Qty Store Sales SELECT ss_key, Qty FROM item_dim a JOIN store_sales b ON a.item_key = b.item_key WHERE a.color = Yellow Result Set 5,12 Result Set 5,12 Результат 5,12 : 6,17 Result Set 6,17 Result Set 6,17 Node 2 Item Dim ss_key item_key Qty Store Sales \ Item_keyColor 1Red 2Green 3Blue 4Yellow

Node 1 Простой запрос типа Shared Nothing Join 23 ss_keyQty Store Sales SELECT a.color, b.Qty FROM web_sales a JOIN store_sales b ON ws_key = ss_key WHERE a. color = Red Result Set Red,5 Result Set Red,5 Node 2 Результат Red,5 : Red,3 Result Set Red,3 Result Set Red,3 ss_keyQty Store Sales Distributed Table ws_keyColorQty 1Red15 3Blue20 5Yellow22 7Green17 Web Sales ws_keyColorQty 2Red13 4Blue21 6Yellow27 8Green11 Web Sales Distributed Table Тип соединения: shared nothing Совместимое распределение Соединение включает в себя совместимые ключи распределения

Соединение с перераспределением: Shuffle 24 Тип соединения: Перераспределение Таблицы физически не размещены согласно своим ключам распределения Несовместимое распределение Распределение используется только из левой таблицы (vendor_sales) Операция перераспределения Shuffle Данные правой таблицы Store_Sales) перестраиваются с ключем распределения VID Запрос становиться совместимым Node 1 ss_keyVIDQty Store Sales SELECT vs_key, a.ord, b.qty FROM vendor_sales a JOIN store_sales b ON a.vs_key = b.VID WHERE a. color = Red Result Set 11,15, 5 Result Set 11,15, 5 Результат 11,15,5 : 21,13,3 Result Set 21,13, 3 Result Set 21,13, 3 Node 2 ss_keyVIDQty Store Sales vs_keyColorOrd 11Red15 32Blue20 54Yellow22 78Green17 Vendor Sales vs_keyColorOrd 21Red13 42Blue21 63Yellow27 84Green11 Vendor Sales Distributed Table ss_keyVIDQty ss_keyVIDQty

Соединение с мульти-перераспределением 25 Тип соединения: Перераспределение Таблицы физически не размещены согласно своим ключам распределения Несовместимое распределение Соединения не идет по ключам распределения Двойная операция Shuffle Левая перестраивается (Vendor_Sales) с ключем распределения DK = Color Правая страница (Store Sales) перестраивается с ключем распределения DK = Color Запрос становится полностью совместимым Node 1 ss_keyColorQty 1Red5 3Blue10 5Yellow12 7Green7 Store Sales SELECT a.color, a.ord,b.qty FROM vendor_sales a JOIN store_sales b ON a.color = b.color WHERE a.color = Red Result Set 15, 5 13,3 Result Set 15, 5 13,3 Final Result Set 15,5 : 13,3 Result Set NULL Result Set NULL Node 2 ss_keyColorQty 2Red3 4Blue11 6Yellow17 8Green1 Store Sales Distributed Table vs_keyColorOrd 11Red15 32Blue20 54Yellow22 78Green17 Vendor Sales vs_keyColorOrd 21Red13 42Blue21 63Yellow27 84Green11 Vendor Sales Distributed Table ss_keyColorQty 1Red Blue10 4Blue11 ss_keyColorQty 5Yellow12 6Yellow17 7Green7 8 1 vs_keyColorOrd 11Red15 21Red13 32Blue20 42Blue21 vs_keyColorOrd 54Yellow22 63Yellow27 73Green17 84Green11 Distributed Table

26Track # – Session # PDW-иной зверь! Архитектура, заточенная на сканирование данных, а не на индексирование Запрос автоматически преобразуется в MPP план Добавляются необходимые операции перемещения данных Bottleneck – перемещение данных между узлами Необходимость для некоторых соединений Необходимость для некоторых агрегаций Производительность PDW великолепна, когда: Соединения могут быть выполнены локально Агрегации могут быть выполнены локально

v v PDW: Загрузка данных

Control Rack PDW процесс загрузки Control Node Active/Passive Control Node Active/Passive Landing Zone Database Server Nodes Storage Nodes Infiniband Файл DMS Ser er PDWEngine Load Manager Export Manager DMS Manager DMS Manager DMS SQL Server SQL Server Load Client DMS Converter Sender Receiver Writer DMS Converter Sender Receiver Writer Запуск DWLoader DMS читает файл и буферизирует записи для посылки Вычислительным узлам по round-robin Load Manager создает промежуточные таблицы такой же геометрии, что и целевая таблица Каждая строка конвертируется для bulk insert и хэшируется Хэшированная строка отсылается узлу, которому она принадлежит Полученная строка поступает в очередь получателя Строка вставляется в промежуточную таблицу методом bulk insert

Методы загрузки данных Integration ServicesDWLoader Используется для Extract, Transform and Load (ETL) Используется для Extract, Load and Transform (ELT) Выгрузка и загрузка данных напрямую из сторонних систем Загрузка данных из плоских файлов в PDW Трансформации до загрузки в PDWСамый быстрый механизм загрузки данных из файлов Трансформации проводятся после загрузки dwloader.exe -i D:\TPCH\lineItem.tbl -M Fastappend -E -m -d tpch_100gb -E -c -b rt value -rv 100 -R LineItem.tbl.rejects -e ascii -t "|" -r \r\n -U sa -P {password} -T tpch_100gb.dbo.lineitem_Load dwloader.exe -i D:\TPCH\lineItem.tbl -M Fastappend -E -m -d tpch_100gb -E -c -b rt value -rv 100 -R LineItem.tbl.rejects -e ascii -t "|" -r \r\n -U sa -P {password} -T tpch_100gb.dbo.lineitem_Load

Результат ELT SMP vs. PDW

Выводы Загрузка данных в PDW o DWLoader работает быстрее для плоских файлов Не нужна трансформация Нужно планировать ресурсы на создание файлов o PDW Destination Adapter для SSIS Если необходимы трансформации Параллельное выполнение для ускорения скорости загрузки o Использовать больше ELT вместо ETL для переноса нагрузки на MPP движок Использовать мощь операций CTAS o PDW дает возможность одновременной загрузки данных и запросов

Место PDW в BI стеке PDW Connector for Informatica PDW Connector for Hadoop

33Track # – Session # Что нового в PDW Appliance Update 3?

PDW начального уровня ½ Rack Функциональность: –~40% мощность (4+1 Compute Nodes) –До 50TB –Полная функциональность PDW Преимущества: –~40% от цены 1 rack –Наименьшая цена/TB на рынке

Преимущества PDW Appliance модель Система поставляется с преднастроенной аппаратной частью и установленным SQL Меньше настроек, меньше сложностей для администраторов Не нужно задумываться о физическом расположении файлов базы данных и таблиц Настройки памяти, параллелизм, много других опций уже настроены оптимально Решение разработано и оптимизированно специально для нагрузок типичных для хранилищ данных Проще «стартовать» проект и начать с ним работать: Вся система поставляется как один заказной номер Установив, можно сразу же создавать базы

v v Вопросы?