Microsoft Parallel Data Warehouse (PDW)
Deze week wordt bij Info Support een Microsoft Parallel Data Warehouse training gegeven door Mark Stacey. Mark is eigenaar van Aphelion BI, dat ook op de Nederlandse markt actief is, en onder andere gespecialiseerd is in Microsoft Parallel Data Warehouse implementaties.
Microsoft Parallel Data Warehouse, vanaf nu afgekort tot PDW, is een zogenaamde datawarehouse appliance. Een soort van plug and play systeem wat je kant en klaar koopt bij HP of Dell met een speciale PDW versie van SQL Server 2012 voorgeïnstalleerd en met support van Microsoft. Soort van plug and play, want de installatie van de appliance, die geheel door Microsoft en de hardware partner wordt uitgevoerd, duurt 1 tot 2 dagen. Daaraan voorafgaand vindt er een site survey plaats waarbij bepaald wordt of de deuren naar je server ruimte wel groot genoeg zijn, de vloer wel sterk genoeg is, de aanlevering van stroom en koeling geen problemen gaan vormen en of er wel voldoende vrije IP-adressen zijn. PDW is onderdeel van het totale Microsoft datawarehouse productaanbod dat daarmee bestaat uit SQL Server 2012 Enterprise, SQL Server 2012 Fast Track Data Warehouse en SQL Server 2012 Parallel Data Warehouse.
De kracht van PDW schuilt in de toepassing van massive parallel processing. Alle CPUs in de appliance worden parallel ingezet om een bepaalde taak uit te voeren, waarbij iedere CPU zijn eigen geheugen heeft. De capaciteit van de appliance kan vervolgens eenvoudig worden uitgebreid waarbij de performance verbetering lineair is. PDW wordt, afhankelijk van de hardware partner, geleverd in racks of delen daarvan, waarbij een full rack bestaat uit 128 CPU kernen verdeeld over 8 compute nodes, 2 TB aan RAM, 168 TB aan tempDB en 1 PB aan user data… De verschillende onderdelen in een rack zijn via InfiniBand met elkaar verbonden. Onder de motorkap gebruikt de PDW versie van SQL Server de xVelocity engine waarbij data kolomsgewijs kan worden opgeslagen, wat een verdere verbetering van de performance geeft. Vermeldenswaardig is de toevoeging van een connector voor Hadoop genaamd PolyBase. Hiermee kunnen queries tegen PDW resultaten uit Hadoop data omvatten.
Leuk natuurlijk, al deze marketing verhalen. Maar deze week krijgen we als deelnemer aan deze PDW training ook de kans echt aan de slag te gaan met een quarter rack PDW (2 compute nodes) dat in Atlanta staat. En daarbij zie je dat PDW zich als een echte plug and play appliance manifesteert. Bottom line is het net een ‘gewone’ SQL Server database waar je tegenaan praat en waar je ‘gewoon’ Reporting Services rapporten, Analysis Services kubussen op kunt bouwen of met PowerPivot op tekeer kunt gaan. Maar er zijn wel dingen waar je rekening mee moet houden bij het opzetten van een datawarehouse op een PDW omgeving. Zo moet je bij iedere tabel kiezen of je die wilt repliceren over de compute nodes of wilt distribueren. De vuistregel hierbij is dat je kleinere tabellen repliceert (vaak dimensietabellen) en grote tabellen distribueert (de meeste feitentabellen). Ook zijn er dingen die je af moet leren. Zo is het onderhouden van statistics in een PDW database veel belangrijker dan het aanmaken van aanvullende indexen. Sterker nog, de best practice is geen non-clustered indexen aan te maken. En zo zijn er meer dingen waar je aan moet wennen, zoals dat je beter niet gebruik kunt maken van SQL Server Management Studio omdat de object explorer daarbinnen niet met PDW werkt. SQL Server Data Tools werkt wel, al lijkt intellisense daarin ook niet te werken tegen PDW. Een ander belangrijk gereedschap dat je veel zult gebruiken bij het werken met PDW, is de Admin Console. Een web based tool dat veel inzicht biedt in de manier waarop PDW queries uitvoert. Hierin zie je ook de query plans.
Vooral bij een query die een gedistribueerde tabel raakt, zie je dan hoe de query gedistribueerd wordt over de verschillende compute nodes:
Er valt natuurlijk over PDW héél veel meer te vertellen dan ik in deze korte blog post doe. Voor mij is ondertussen wel duidelijk dat deze appliance van Microsoft en HP/Dell zeer interessant kan zijn voor bedrijven die hoge eisen stellen aan de performance van hun datawarehouse. Een markt met concurrenten zoals EMC Greenplum, Teradata, Oracle Exadata en IBM Netezza. Meer informatie over de positionering van Microsoft’s PDW in relatie tot deze concurrenten, vind je hier.