Pot of money
Blog

Halveren van je Data Warehouse Kosten in de Cloud

Data warehouses (DWH) zijn essentieel voor moderner bedrijven. Ze maken het mogelijk om grote volumes aan data op te slaan, te verwerken en te analyseren. Maar hoe meer organisaties migreren naar cloud gebaseerde data warehouses, hoe meer het in de hand houden en verminderen van de kosten een hoofdpijndossier wordt. Efficiëntie is al belangrijk voor een data warehouse in het eigen data center, voor een data warehouse in de cloud is het kritiek. Of je nu je data warehouse draait als IAAS, PAAS of SAAS oplossing of dat je een cloud native data warehouse als Amazon Redshift, Google BigQuery, of Snowflake, inefficiëntie vertaalt zich direct in extra kosten. En dan gaat het niet om klein bier vorige week is een query in het data warehouse van een klant verbeterd met een factor 24.000.000. Niemand had er bij stil gestaan om de efficiëntie van die query te controleren maar hij is teruggebracht van een belangrijke kostenpost naar bijna gratis. In dit blog zal ik verschillende strategieën bespreken om data warehouse kosten in de cloud omlaag te brengen.

De gebruikelijke manier is niet efficiënt

Één van onze klanten had een heel grote tabel met 55 true/false kolommen (boolean kolommen voor de techneuten). Om de informatie in het data warehouse te krijgen werd eerst de dimensie van een kolom bepaald, daarna werd voor de hele tabel geteld hoe vaak elke waarde voorkwam. Nu is de dimensie boor een boolean kolom altijd [true, false] dus de dimensie bepalen is niet nodig. Dat zou al de helft van de tijd gescheeld hebben. De tabel één keer lezen en 55 tellers voor true en 55 tellers voor false bij houden was nog een versnelling met een factor 55. Met exact hetzelfde eindresultaat in het data warehouse.

Door de omvang van de tabel moest deze elke keer van disk gelezen worden. Door de tabel maar 1 keer te lezen in plaats van 110 keer ging de verwerkingstijd van 2 uur naar 1 minuut. En omdat de verwerkingstijd nu zo kort was, en er nog verschillende optimalisaties geïmplementeerd zijn, is de totale geheugen behoefte van het dat warehouse omlaag gebracht. Met een grote kostenbesparing, vooral op licenties, als gevolg.

Software slijt

En een data warehouse is gebouwd met software. Het lijkt niet op een fysiek magazijn waar mensen in en uit kunnen lopen om er spullen in te zetten en uit te halen. Voor veel van jullie zal dat een open deur zijn, maar ik kom nog steeds mensen tegen die denken dat hun fysieke en hun digitale magazijn hetzelfde werkt.

Software slijt als je het niet onderhoudt. Vooral omdat de omgeving verandert. En omdat het een grotere gebruikersgroep krijgt. Een ambachtelijke brouwerij kan zijn gerstenat met bestelbusjes afleveren. Naarmate ze groeien zullen ze overstappen op vrachtwagens of zelfs treinen. Voor een data warehouse is dat niet anders. Als het groeit en je blijft leveren met het equivalent van bestelbusjes dan ben je niet efficiënt en betaal je veel te veel.

Cloud dwingt je resources af te nemen die je niet gebruikt

Als je workload niet voldoet aan de standaard cloud resource verhoudingen dan moet je resources afnemen die je niet gaat gebruiken. En vaak zelfs licentiekosten aftikken over die ongebruikte resources. Inefficiënte data warehouses vaak heel veel geheugen nodig hebben om ze überhaupt te laten lopen binnen de beschikbare tijd. Dat betekent dat je extra, onnodige CPU moet afnemen en meer dure licenties voor al die CPU’s.

Delen van de workload verhuizen van het geheugen naar de nu niet gebruikte CPU gaat kosten schelen. Traditioneel zijn data warehouses meer geheugen en disk intensief dan CPU intensief. Gebruik maken van de beschikbare CPU zorgt voor minder behoefte aan geheugen en disk.

Cloud storage is langzamer en duurder

Als je 8TB premium SSD in de cloud afneemt kost dat je elke maand hetzelfde bedrag als het aanschaffen van een SSD van dezelfde grootte voor een server. Alleen is die SSD 14 keer zo snel als de cloud storage. Dus in de cloud betaal je 60 keer zo veel (uitgaande van een levensduur van 60 maanden) voor 7% van de performance. De SSD geeft je 840 keer zoveel waarde voor je geld. Opmerking: afhankelijk van je hardware keuzes kan de rekensom anders uitpakken maar zelfs als ik er een factor 10 naast zit is de cloud storage 84 keer zo duur.

Nu is dit geen pleidooi om terug te gaan naar een on premisse data warehouse. Maar het optimaliseren van I/O is in de cloud veel belangrijker dan op je eigen apparatuur. Je bespaart er meer geld mee.

Groepeer processen voor dezelfde data

Als je processen hebt die dezelfde data gebruiken laat ze dan direct achter elkaar lopen. Dan is de data nog aanwezig in het geheugen als het tweede, derde en verdere proces draait. Als je de processen in willekeurige volgorde laat lopen dan moet de dat steeds van disk gehaald worden en dat is langzaam en duur.

De meeste data warehouses draaien eerst de data kwaliteit op bron data, dan doen ze alle ETL, daarna de data kwaliteit op het resultaat.

Als je de data kwaliteit van een stuk data controleert direct nadat de ETL gedraaid heeft dan heb je een veel betere kans dat je de data nog in het geheugen aantreft en dat het niet opnieuw van disk geladen hoeft te worden.

Controleer je geheugen bandbreedte

Geheugen bandbreedte is één van de belangrijkste resources voor een data warehouse. Het is de snelheid waarmee data van het interne geheugen naar de CPU’s getransporteerd kan worden. En er wordt nooit naar gekeken in een data warehouse. Hoe sneller data naar de CPU gebracht kan worden, hoe korter die data in het intern geheugen hoeft te staan. Daarmee wordt de hoeveelheid geheugen die nodig is omlaag gebracht. Geheugen bandbreedte kun je niet direct meten, maar de bandbreedte die je hebt en de bandbreedte die je zou moeten hebben kan wel berekend worden. Deze twee parameters op elkaar afstemmen versnelt je data warehouse en vermindert het benodigde geheugen. Wat op zijn beurt weer flink kosten bespaart.

Goed dimensioneren van geheugen bandbreedte vereist het selecteren van de juiste virtuele hardware. Er is geen schoen die iedereen past. Nadat je data warehouse is geoptimaliseerd moet er een goede sizing gemaakt worden gebaseerd op wat je cloud provider aanbiedt.

Zoek hulp

Meten is weten, gissen is missen. Zeker, veel data warehouse platforms geven je wel wat metrics en statistieken, maar ze zullen je hooguit vertellen dat je een probleem hebt en niet waarom of hoe je het oplost. Vaak zeggen ze dat je nog meer resources moet afnemen en dat wil je nou net niet als je kosten wil besparen.

Het vinden van de optimalisaties voelt vaak als het vinden van een naald in een hooiberg. Vaker is het meer als het vinden van een naald in een naaldenberg. Wij helpen je om deze optimalisaties snel te vinden en tegen een fractie van de kostenbesparing die je zult realiseren. Maak een afspraak van 15 minuten en ik leg uit hoe het moet. Klik hier om de afspraak te maken.