Ivan Kosyakov — PDW

advertisement
Parallel Data Warehouse
Особая благодарность
Алексею Халяко из SQLCAT
Иван Косяков
Technology Architect, MTC Moscow
i-ivanko@microsoft.com
Шкафы PDW
Control
Rack
Data
Rack
Control Rack
Data Rack/s
Состав узлов PDW
Стойка с данными
Контрольная
стойка
Расчетные узлы
Контрольные узлы
(активный/пассивный)
Узлы хранения
SQL
SQL
SQL
SQL
Область выгрузки
SQL
SQL
SQL
SQL
Dual Fiber Channel
Серверы управления
Dual Infiniband
SQL
SQL
Узел резервирования
SQL
Резервный расчетный узел
Частная сеть
Преимущества PDW
 Appliance модель
 Система поставляется с преднастроенной аппаратной частью и
установленным SQL
 Решение разработано и оптимизированно специально для нагрузок
типичных для хранилищ данных
 Пропускные способности CPU и IO сбалансированы для
«сканирующих» запросов
 Проще «стартовать» проект и начать с ним работать:
 Вся система поставляется как один заказной номер
 Установив, можно сразу же создавать базы
PDW – в чем прелесть?
 Загрузка данных и запросы выполняются параллельно
автоматически
 Все DML (Inserts, Updates) также параллельны по всем узам
 Масштабируемость и увеличение скорости обработки запросов
добавлением стойки
 Меньше настроек, меньше сложностей для администраторов
 Не нужно задумываться о физическом расположении файлов
базы данных и таблиц
 Настройки памяти, параллелизм, много других опций уже
настроены оптимально
Parallel Data Warehouse Appliance
Hardware Architecture
Расчетные узлы
Контрольные узлы
SQL
(активный/пассивный)
Клиентские
драйвера
Узлы хранения
SQL
SQL
SQL
SQL
Область выгрузки
СхемаSQL«звезда» или
нормализованные данные
SQL
SQL
SQL
Данные хранятся
на серверах
Интерфейс ETL-загрузки
SQL
Резервные узлы
Решение по
резервированию
Backup
Data
Корпоративная сеть
SQL
Резервный сервер БД
Частная сеть
Dual Fiber Channel
Мониторинг
центра данных
Dual Infiniband
Управляющие сервера
Преимущества PDW – Massive Parallel Processing
Control Rack
Data Rack
Storage Nodes
Compute Nodes
Control Nodes
SQL
Management Servers
Landing Zone
Backup Node
Dual Infiniband
SQL
?
?
?
?
?
?
?
?
?
?
SQL
SQL
SQL
SQL
SQL
SQL
SQL
Dual Fiber Channel
Active / Passive
Запрос 1
Запрос 1
отправляется
управляющему
узлу
SQL
SQL
Spare Compute Node
Private Network
Запрос запускается
на 10 расчетных
узлах
Результаты
отсылаются
клиенту
Преимущества PDW – Massive Parallel Processing
Control Rack
Data Rack
Storage Nodes
Compute Nodes
Control Nodes
SQL
Active / Passive
?
? ???
? ??
?
Management Servers
?
?
Landing Zone
?
?
Backup Node
Dual Infiniband
SQL
? ? ? ? ? ?? ?
SQL
? ? ? ? ? ?? ?
SQL
? ? ? ? ? ?? ?
SQL
? ? ? ? ? ?? ?
? ? ? ? ? ?? ?
SQL
? ? ? ? ? ?? ?
SQL
? ? ? ? ? ?? ?
SQL
? ? ? ? ? ?? ?
SQL
? ? ? ? ? ?? ?
SQL
? ? ? ? ? ?? ?
Dual Fiber Channel
?
SQL
?
Множество
запросов
одновременно
выполняются на
всех узлах.
Spare Compute Node
?
Private Network
PDW
поддерживает
запросы в момент
загрузки данных.
Пример распределения таблиц
DD
DD
SD
SD
Date Dim
Prod Dim ID
Prod Category
Prod Sub Cat
Prod Desc
Sales Fact
DD
SD
DD
Date Dim ID
Store Dim ID
Prod Dim ID
Mktg Camp Id
Qty Sold
Dollars Sold
Store Dim ID
Store Name
Store Mgr
Store Size
ID
ID
PD
MD
Item Dim
Date Dim ID
Calendar Year
Calendar Qtr
Calendar Mo
Calendar Day
Store Dim
SF
SF
1
1
SD
DD
Promo Dim
Mktg Camp ID
Camp Name
Camp Mgr
Camp Start
Camp End
SD
DD
SD
SF
2
SF
3
SF
4
SF
5
ID
PD
ID
PD
ID
PD
ID
PD
Программная архитектура
Query
Tool
MS BI
(AS, RS)
DWSQL
Other ThirdParty Tools
Internet
Explorer
Управляющий узел
IIS
Data Access
MPP Engine Coordinator
Provides single system image
SQL compilation
Global metadata and appliance configuration
Global query optimization and plan generation
Global query execution coordination
Global transaction coordination
Authentication and authorization
Supportability (hardware and software status)
Расчетный узел
Compute Nodes
Compute Nodes
Data Movement Service
Admin
Console
(OLEDB, ODBC, ADO.NET, JDBC)
User Data
SQL
Parser
Core
Engine
Services
DMS
Manager
Data
Movement
Service
MPP Engine Coordinator
SQL Server
Узел резервирования
Data Movement Service
Узел загрузки
DW
Authentication
DW
Configuration
DW
Schema
TempDB
Data Movement Service
SQL Server
Контрольный узел
Data Movement Service
Data movement across the appliance
Distributed query execution operators
Демонстрация PDW
Проектирование и управление базой данных
Physical Storage for PDW
Расчетный узел
Узел хранения
Узел хранения – физическая раскладка файлов
RAID GP01
LUN1
RAID GP02
LUN2
LUN3
RAID GP03
LUN4
LUN5
LUN6
RAID GP04
LUN7
LUN8
FG UDB_Dist
FG UDB_Dist
FG UDB_Dist
FG UDB_Dist
FG UDB_Dist
FG UDB_Dist
FG UDB_Dist
UDBDist.ndf
UDBDist.ndf
UDBDist.ndf
UDBDist.ndf
UDBDist.ndf
UDBDist.ndf
UDBDist.ndf
UDBDist.ndf
User
DB
FG UDB_Dist
UDB Replicated FG
UDBRepl.ndf
UDBRepl.ndf
UDBRepl.ndf
LUN 9
Log
RAID GP05
LUN 10
UDBRepl.ndf
UDBRepl.ndf
UDBRepl.ndf
UDBRepl.ndf
 8 distribution filegroups
 1 replicated filegroup with 8 files
 1 log filegroup
UDBRepl.ndf
Упрощенный DDL – создание базы
Create Database <dbname>
with(
AUTOGROW = ON | OFF
DISTRIBUTION_SIZE
= value_in_GB
REPLICATION_SIZE
= value_in_GB
LOG_SIZE
= value_in_GB
Упрощенный DDL – создание таблицы
CREATE TABLE [ db_name . ] table_name
[ ( { <column_definition> } ] [ ,...n ] )
[ AS SELECT <select_criteria> ]
[ WITH ( <table_option> [ ,...n ] ) ]
<column_definition> ::=
column_name <data_type>
[ NULL | NOT NULL ]
<table_option> ::=
{
[ CLUSTER_ON column_name [ ,...n ] ]
[ DISTRIBUTE_ON (column_name) ] | [ REPLICATE ] }
[ PARTITION_ON column_name (RANGE [ LEFT | RIGHT ]
FOR VALUES ( [ boundary_value [ ,...n ] ] )
)]
}
Create Table as Select (CTAS)
 Создает еще одну копию таблицы
 Создает Distributed из Replicated или наоборот
 Создает Новую таблицу, Distributed по другой колонке
 Создает Новую таблицу с другим Clustered Index, или вообще без
индекса
 Создает другую таблицу с другим критерием секционирования
 Минимальное журналирование
 Используется периодически для дефрагментации таблиц
 Создает новую таблицу с новой колонкой
 Создает новую таблицу с заменой типов даных.
Загрузка данных в PDW: два варианта
Что происходит внутри PDW
Insert-Select
Load
File
Bulk
Insert
Sort each
BATCH
in memory or
TempDB
Clustered
and/or
Partitioned
Staging
Table
Clustered
and/or
Partitioned
Final
Table
Bulk Insert Phase
Insert-Select Phase
Staging Table
Target Table



PDW Distributed Table Load – Step 1
Control Rack
Data Rack
Control Node
Compute Nodes
(2) Load Manager
creates staging
tables
DMSEngine
Ser er
PDW
SQL
Server
DMS
Manager
Load
Manager
DMS
(3) DMS reads
load data and
buffers records to
send to Compute
Nodes roundrobin
Infiniband
(1) DWLoader
invoked/
SSIS
DMS
Converter
Sender
Receiver
Writer
Storage Nodes
(4) Each row is converted
for bulk insert and hashed
based on the distribution
column
(5) Hashed row is sent to
appropriate node receiver
for loading
Landing Zone
Load
Client
Load
File/SSIS
SSIS
API
DMS
DMS
Distributor
Converter
Sender
Receiver
Writer
(6) Row is bulk
inserted into
staging table
Драйверы для SSIS (and Nexus Query Tool)
 X86 Servers
 ClientTools-x86
 SSISSQLPDWDest-x86
 X64 Servers




ClientTools-x86
ClientTools-amd64
SSISSQLPDWDest-x86
SSISSQLPDWDest-amd64
Integration with PDW: “Hub and Spoke”
PDW
PDW
PDW
Questions?
Download