26

SQL Server PDW AU3...SQL Server for catalogs, compilation, authorization Shell DB SQL Server Compute node SQL Server CREATE TABLE customer ( c_custkey bigint, c_name varchar(25),

  • Upload
    others

  • View
    47

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SQL Server PDW AU3...SQL Server for catalogs, compilation, authorization Shell DB SQL Server Compute node SQL Server CREATE TABLE customer ( c_custkey bigint, c_name varchar(25),
Page 2: SQL Server PDW AU3...SQL Server for catalogs, compilation, authorization Shell DB SQL Server Compute node SQL Server CREATE TABLE customer ( c_custkey bigint, c_name varchar(25),
Page 3: SQL Server PDW AU3...SQL Server for catalogs, compilation, authorization Shell DB SQL Server Compute node SQL Server CREATE TABLE customer ( c_custkey bigint, c_name varchar(25),
Page 4: SQL Server PDW AU3...SQL Server for catalogs, compilation, authorization Shell DB SQL Server Compute node SQL Server CREATE TABLE customer ( c_custkey bigint, c_name varchar(25),

Scale out

Page 5: SQL Server PDW AU3...SQL Server for catalogs, compilation, authorization Shell DB SQL Server Compute node SQL Server CREATE TABLE customer ( c_custkey bigint, c_name varchar(25),

9/2/2011 BIRTE 2011 5

Page 6: SQL Server PDW AU3...SQL Server for catalogs, compilation, authorization Shell DB SQL Server Compute node SQL Server CREATE TABLE customer ( c_custkey bigint, c_name varchar(25),

Compute Nodes Control Nodes Active / Passive

Landing Zone

Backup Node

Storage Nodes

Spare Compute Node

Management Nodes

Corporate Network Appliance Network

Control Rack Compute Racks (1/2 to 4x)

Client Drivers

Data Center Monitoring

ETL Load Interface

Corporate Backup Solution

Du

al

Fib

er

Ch

an

nel

Du

al

Infi

nib

an

d

Page 7: SQL Server PDW AU3...SQL Server for catalogs, compilation, authorization Shell DB SQL Server Compute node SQL Server CREATE TABLE customer ( c_custkey bigint, c_name varchar(25),

Legend:

Control Node

Client Interface (ODBC, OLE-DB,

ADO.NET, JDBC) DMS Manager

PDW Engine

Compute Node 1

DMS Core

PDW agent

Landing Zone Node

Bulk Data Loader

PDW agent

Management Node

Active Directory

PDW agent

PDW agent Compute Node 2

DMS Core

PDW agent

Compute Node 10

DMS Core

PDW agent

PDW service

Data Movement Service DMS = Parallel Data Warehouse PDW =

ETL

Interface

Page 8: SQL Server PDW AU3...SQL Server for catalogs, compilation, authorization Shell DB SQL Server Compute node SQL Server CREATE TABLE customer ( c_custkey bigint, c_name varchar(25),
Page 9: SQL Server PDW AU3...SQL Server for catalogs, compilation, authorization Shell DB SQL Server Compute node SQL Server CREATE TABLE customer ( c_custkey bigint, c_name varchar(25),

PDW Engine in control node

Compilation

Distributed execution coordination

Global metadata

Compute nodes

Data movement

DMS

SQL Server for catalogs,

compilation, authorization

Shell DB

SQL Server

Compute node

SQL Server

Page 10: SQL Server PDW AU3...SQL Server for catalogs, compilation, authorization Shell DB SQL Server Compute node SQL Server CREATE TABLE customer ( c_custkey bigint, c_name varchar(25),

CREATE TABLE customer

( c_custkey bigint,

c_name varchar(25),

c_address varchar(40),

c_nationkey int,

c_phone char(15),

c_acctbal decimal(15,2),

c_mktsegment char(10),

c_comment varchar(117))

WITH (distribution=hash(c_custkey)) ;

Compute node

cust1

cust2

cust3

cust4

cust5

cust6

cust7

cust8

CREATE TABLE nation

( n_nationkey int,

n_name varchar(25),

n_regionkey int,

n_comment varchar(117))

WITH (distribution=replicate);

nation

Compute node

cust1

cust2

cust3

cust4

cust5

cust6

cust7

cust8 nation

Page 11: SQL Server PDW AU3...SQL Server for catalogs, compilation, authorization Shell DB SQL Server Compute node SQL Server CREATE TABLE customer ( c_custkey bigint, c_name varchar(25),

PDW resource manager

PDW rollback manager

Shell DB

(SQL Server)

Engine Service

Create

Table

Cre

ate

Ta

ble

Cre

ate

Ta

ble

Cre

ate

Ta

ble

Return

Compute Node

(SQL Server)

Compute Node

(SQL Server)

Compute Node

(SQL Server)

Co

ntro

l No

de

Create

Table

Return

Page 12: SQL Server PDW AU3...SQL Server for catalogs, compilation, authorization Shell DB SQL Server Compute node SQL Server CREATE TABLE customer ( c_custkey bigint, c_name varchar(25),

generates a distributed

execution plan

connects to

‘the appliance’ like he

would to a ‘normal’ SQL

Server

steps

are executed

on each compute node

shared nothing MPP

system

. Data

Movement Service

SQL Server PDW Appliance

Page 13: SQL Server PDW AU3...SQL Server for catalogs, compilation, authorization Shell DB SQL Server Compute node SQL Server CREATE TABLE customer ( c_custkey bigint, c_name varchar(25),

Engine Service

Co

ntro

l No

de

<sp_showmemo_xml>

<memo>

</memo>

Import

ME

MO

Co

ntro

l No

de

SQL Server

<sp_showmemo_xml>

<memo>

</memo>

Shell DB

(SQL Server)

Engine Service

Co

ntro

l No

de

SELECT

SE

LE

CT

User Query

SELECT count(*) FROM

orders o, line_item li

WHERE o.o_custkey = li.l_suppkey

GROUP BY l_suppkey

1. SQL Server parsing, access validation, query simplification and exploration

Query simplification (e.g. column reduction, predicates push-down, subquery unnesting)

Logical space exploration (e.g. join re-ordering, local/global aggregation)

Serializing MEMO into binary XML (logical plans)

De-serializing binary XML into PDW Memo

2. Optimization for distributed plan (PDW) Removing unnecessary plans

Identifying interesting properties

Injecting data move operations

Costing different alternatives

Pruning and selecting lowest cost distributed plan

3. SQL Generation Generating SQL Statements to be executed

Page 14: SQL Server PDW AU3...SQL Server for catalogs, compilation, authorization Shell DB SQL Server Compute node SQL Server CREATE TABLE customer ( c_custkey bigint, c_name varchar(25),
Page 15: SQL Server PDW AU3...SQL Server for catalogs, compilation, authorization Shell DB SQL Server Compute node SQL Server CREATE TABLE customer ( c_custkey bigint, c_name varchar(25),

0

5

10

15

20

25

30

35

40

45

50

1

10

100

1,000

10,000

100,000

Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12 Q13 Q14 Q15 Q16 Q17 Q18 Q19 Q20 Q21 Q22

Imp

rovem

en

t Facto

r

Ela

pse

d T

ime (

s)

TPCH-3TB Performance - AU2 vs. AU3

AU2 AU3 Improvement

Page 16: SQL Server PDW AU3...SQL Server for catalogs, compilation, authorization Shell DB SQL Server Compute node SQL Server CREATE TABLE customer ( c_custkey bigint, c_name varchar(25),
Page 17: SQL Server PDW AU3...SQL Server for catalogs, compilation, authorization Shell DB SQL Server Compute node SQL Server CREATE TABLE customer ( c_custkey bigint, c_name varchar(25),
Page 18: SQL Server PDW AU3...SQL Server for catalogs, compilation, authorization Shell DB SQL Server Compute node SQL Server CREATE TABLE customer ( c_custkey bigint, c_name varchar(25),

Sender Thread

ReaderWorker Thread

SQL Server

Sql Native Client(ODBC)

DmsNative.DLLDmOdbcReadBuffer()

SqlNativeBufferReader

DmsNative Interface

IDmsBufferReader

DistributeBufferReaderWorker

ShuffleDistributor

DataChannelSender

IDistributionManager

IDataChannelSender

DataChannelSenderClient Network (Data Channel)

Buffer Pool

DMSDistribution

2. Reader executes query and fetches rows into native-formatted buffer

3.Return from native call signals buffer full.

5. ReaderWorker advances to beginning of each row and calls into Distribution Manager to Write Row To target data channel Buffer.

1. Pinned pointer to DMS Memory Buffer

passed to native reader routine.

4. Filled buffer retrieved by ReaderWorker

6. Hash distribution column and write row to correct row distribution buffer. Enqueue buffers to Sender when filled.

7. Dequeue and send buffers.

Page 19: SQL Server PDW AU3...SQL Server for catalogs, compilation, authorization Shell DB SQL Server Compute node SQL Server CREATE TABLE customer ( c_custkey bigint, c_name varchar(25),

WriterWorker Thread

Receiver Thread

Network (Data Channel) DataChannelReceiver

WriterWorker

NativeMemoryWriterPipe

SqlNativeBufferBulkCopy

IDmsBufferReader

Buffer Pool

DmsNative.DLLDmsOdbcWriteBuffer()

DmsNative Interface

Sql Native Client(ODBC BCP API)

SQL Server

1. Buffer received and enqueued to target writer

2. WriterWorker invokes SqlNativeBufferBulkCopy to bulk-copy contents of buffers to target table

3. When SqlNativeBufferBulkCopy requests a buffer, a buffer is dequeued from incoming writer queue and returned.

4. Pinned pointer to DMS Memory Buffer passed to native BCP routine.

5. Buffer is processed row-by-row: ODBC bcp_sendrow() used to bulk-write data to SQL Server

Page 20: SQL Server PDW AU3...SQL Server for catalogs, compilation, authorization Shell DB SQL Server Compute node SQL Server CREATE TABLE customer ( c_custkey bigint, c_name varchar(25),
Page 21: SQL Server PDW AU3...SQL Server for catalogs, compilation, authorization Shell DB SQL Server Compute node SQL Server CREATE TABLE customer ( c_custkey bigint, c_name varchar(25),

Compute Node 1

DMS Core

Convert & Hash to

correct Distribution

Staging

Bundle & FastLoad

Compute Node n

DMS Core

Convert & Hash to

correct Distribution

Bundle & FastLoad

Control Node

Landing Zone

DMS Core

• Read stream &

build row groups

• Distribute to nodes

(round-robin)

PDW Engine

SQL

Staging SQL

DMS Mgr

DWLoader

Destination

Adapter

Control

& Status

Load Mgr

Control

& Status

• Create Table

(staging)

• Load Insert

SSIS

User File

= Control & Status = Data

= Auth, Config, Settings

Page 22: SQL Server PDW AU3...SQL Server for catalogs, compilation, authorization Shell DB SQL Server Compute node SQL Server CREATE TABLE customer ( c_custkey bigint, c_name varchar(25),

SS Integration Services (ETL) has PDW as a destination

SS Analysis Services (OLAP) has PDW as a source

SS Reporting Services, Excel PowerPivot

SAS, Business Objects, Informatica, Microstrategy

Hadoop connectors (ETL)

Page 23: SQL Server PDW AU3...SQL Server for catalogs, compilation, authorization Shell DB SQL Server Compute node SQL Server CREATE TABLE customer ( c_custkey bigint, c_name varchar(25),
Page 24: SQL Server PDW AU3...SQL Server for catalogs, compilation, authorization Shell DB SQL Server Compute node SQL Server CREATE TABLE customer ( c_custkey bigint, c_name varchar(25),
Page 25: SQL Server PDW AU3...SQL Server for catalogs, compilation, authorization Shell DB SQL Server Compute node SQL Server CREATE TABLE customer ( c_custkey bigint, c_name varchar(25),
Page 26: SQL Server PDW AU3...SQL Server for catalogs, compilation, authorization Shell DB SQL Server Compute node SQL Server CREATE TABLE customer ( c_custkey bigint, c_name varchar(25),