Het verhuizen van een bibliotheek

bibliotheekIn mijn vorig blog haalde ik het al aan; mijn werk als datamigratie consultant is eigenlijk dat van een verhuizer in de IT. Daarbij kijken we in het grote geheel gevoelloos naar de data en scoren het liefst door af en toe wél ons best te doen om verder te kijken dan de requirements. Maar er zijn meer parallellen te vinden.

Afgelopen week volgde ik weer eens een seminar over performance analyses binnen Oracle. Hartstikke interessant met veel leuke tools voor bedrijven met grote budgetten. Kijk voor de gein maar eens op ‘http://howfuckedismydatabase.com/’ om een volledig onafhankelijk advies te krijgen over de keuze van database platform.

Tijdens de seminar ging het natuurlijk weer over indexen en het opvragen van rijen in transactionele systemen. Systemen die mensen dagelijks gebruiken om bijvoorbeeld enkele klanten op te vragen en kleine mutaties uit te voeren. Misschien wel 95% van de systemen die reguliere gebruikers en beheerders onder ogen krijgen, werken op die manier. Zie het als een aloude bibliotheek met voor alle rekken waar je een boek kunt zoeken. Helemaal logisch volgens een SISO methodiek met genres en binnen een genre op auteur. Weet je niet precies waar je boek onder valt, dan kun je de centrale index raadplegen en die wijst je naar het juiste pad en rek. Binnen de catalogus kun je zoeken op verschillende doorsnedes; schrijvers, titels, uitgever etc.. Fantastisch, jeugdsentiment!

De traditionele database wereld werkt nog niet eens zo anders. Data staat in een bibliotheek, gesorteerd of niet gesorteerd maakt eigenlijk niet uit, want raadplegen gaat via de index en die geeft wel aan waar je langs moet. Wil je bijvoorbeeld weten hoe je een goede maaltijd moet voorbereiden voor iemand die op bezoek komt? Dan verloopt de index keurig via de etiquette regels over ontvangst, naar een boek over de juiste tafeldekking naar de kookafdeling en vervolgens een wijn-boek voor bijpassende wijnen. Uit verschillende rekken komen de boeken boven water, precies omdat je wist waarop je moest zoeken én omdat in de index dit zo was opgenomen.

Het kan echter fout gaan. Als niet alle zoekwaarden in de index zijn opgenomen moet de database nét als in een echte bibliotheek alle rekken langs, op zoek naar dat ene boek. Héél veel performance issues in de hedendaagse wereld gaan dus vaak over indexen en het ontbreken van zoekwaarden daarin. Wat nog wel eens vergeten wordt dat een index niet alleen kan versnellen maar ook kan vertragen. Als je bijvoorbeeld niet 1 wijnboek maar alle wijnboeken zou willen hebben. Dan is het soms sneller om gewoon te vragen: doe me maar dat hele rek, dan boek voor boek opvragen.

In ons vak van verhuizer in de IT komen we regelmatig dit soort dingen tegen; de performance van de migratie is niet afdoende, het lukt niet om binnen x-uur de migratie te volbrengen. Als we dan dieper kijken naar de gebruikte programmatuur dan komt het vaak voor dat deze als een soort ‘normale’ gebruiker de data bevraagt of aanbiedt. Dat wil zeggen; boek voor boek. Ons eerste advies is dan ook vaak om te denken naar set voor set. Als het je niet uit maakt naar welk boek je kijkt maar dat je alle boeken van bibliotheek naar bibliotheek wilt verplaatsen, dan is het mogelijk dat op een andere manier te doen. Dan kun je alle boeken op 1 stapel gooien en ze sorteren op elk gewenste doorsnede. Wil je eerst de rode boeken? Doen we dat. Wil je alleen de boeken met een dikte van tenminste 5 centimeter? Dan krijg je die! Welke boeken dat individueel zijn? Maakt ons niet uit, we zijn aan het verhuizen! Achteraf mag de database zelf de index opnieuw opbouwen om de eindgebruiker aan te wijzen waar de boeken zijn geland.

Wij merken in projecten dat zodra de klant mee gaat denken op deze manier, dat niet de individuele gegevens er toe doen maar tot welke groep ze behoren, het migratieproject in een enorme versnelling komt. Het is dan mogelijk om heel snel meters te maken met de standaard zaken en enkel nog maar te focussen op de daadwerkelijke uitzonderingen waarvoor extra denkwerk is vereist. Dit gaat dan ook op voor de controles die uitgevoerd moeten worden ná de migratie. Er hoeft niet per geval gekeken te worden maar er kan een 100% controle plaatsvinden op het geheel.


ITCG denkt én doet al bijna twee decennia in data integratie, datamigratie, datakwaliteit en testdata en deelt haar opgedane kennis graag met de wereld in de vorm van blogs –lees ook onze andere artikelen.