Het garanderen van de data-integriteit bij een migratie

Het garanderen van de data-integriteit bij een migratie

In mijn eerdere post gaf ik wat meer inzicht in hoe we de datamigratie van een vijftien jaar oude applicatie, het beleensysteem van de Stadsbank van Lening, hebben aangepakt. Aangezien we met financiële data werkten, was de migratie slechts het halve werk; we moesten er ook voor zorgen dat de migratie van deze data goed en veilig verliep, zodat de integriteit kon worden gegarandeerd. Omdat hun oude systeem echter vooral uit persoonlijke data bestond, hadden we enkel toegang tot geanonimiseerde versies van de echte data gedurende het development-proces. Dit maakte het lastig om de integriteit te garanderen en te waarborgen.

Blog

Datamigratie bij een 15 jaar oude applicatie

 

Wat moeten we verifiëren?

De eerste stap op onze integriteitsreis was om te bepalen welke elementen cruciaal waren om te verifiëren. Natuurlijk moesten we een enorme hoeveelheid data migreren, maar niet alles hoefde per se correct gemigreerd te worden. Data die bijvoorbeeld liet zien welke vorm van identificatie een klant heeft gebruikt, is minder belangrijk, omdat het makkelijk opnieuw geverifieerd kan worden. Financiële transacties zijn echter een stuk lastiger, omdat deze data doorgespeeld wordt naar bankrekeningen, etc. Daarom hebben we onze data geverifieerd door onszelf de volgende vragen te stellen:

  1. Is de correcte hoeveelheid data gemigreerd?
    Dit is een variabele die redelijk makkelijk te verifiëren is. Eerst hebben we de hoeveelheid data in het oude systeem gecheckt om daarna te bekijken hoeveel data er in het nieuwe systeem te vinden is. Als die hoeveelheden gelijk zijn, kunnen we bevestigen dat de correcte hoeveelheid data is gemigreerd.
  2. Is de data correct gemigreerd?
    Dit is een stuk lastiger om te verifiëren. Je ontkomt er niet aan om de data op enige wijze transformeren, zij het in de vorm van verschillende formaten of in de vorm van gegevens die vanuit meerdere tabellen worden gemigreerd. Hierdoor is het iets duurder om automatische checks in te stellen die controleren of alle data correct gemigreerd is.

De eerste manier van dataverificatie was makkelijk te realiseren en kon toegepast worden op alle data die we migreerden. De twee manier bleek echter een stuk lastiger. We tackelden dit probleem op twee manieren:

  • Voor de financiële data hebben we alle totalen bij elkaar opgeteld en gekeken of de aantallen overeen kwamen.
  • Voor de basisdata, zoals klantnaam, klantnummer en pandjesnummer, hebben we een HASH gecreëerd. Deze drie velden zijn samengevoegd tot één record. Hierdoor was het een stuk eenvoudiger om verschillen tussen de records identificeren; we hoefden alleen maar naar de hash te kijken in plaats van alle velden afzonderlijk te vergelijken.

 

De zoektocht naar de juiste meta

Bepalen welke gegevens we wilden verifiëren was één ding, maar het implementeren van deze verificaties was een tweede. Gelukkig hadden wij de perfecte tool hiervoor: Metabase. De Stadsbank gebruikt Metabase om managementrapporten te genereren. Deze rapporten zijn belangrijk voor de medewerkers van de Stadsbank om hun werk goed te kunnen doen. In hun eigen woorden is Metabase “een open source business intelligence-tool. Je kunt vragen stellen over je data en het geeft antwoord in elk formaat dat je maar kunt bedenken, of dat nou een staafdiagram of gedetailleerde tabel is.”

Eén van Metabase’s beste functionaliteiten is de mogelijkheid om meerdere databases aan elkaar te verbinden, er vragen voor op te stellen en ze samen te voegen in een dashboard. Hoewel beide database management systems (DBMS’s) totaal verschillend waren, konden we de data toch op uniforme wijze presenteren.

Data-integriteit

Omdat Metabase het mogelijk maakt om de vragen zo specifiek te maken als je wil, konden we de vragen op zo’n manier stellen dat we exact de data die we nodig hadden kregen voorgeschoteld, waardoor we, door het gebruik van SQL, een helder overzicht hadden van de verschillen tussen de brondata en de gemigreerde dataset.

Dit hielp ons om te bepalen welke data correct was en welke niet. Het verfijnde onze migratie en zorgde ervoor dat het allemaal soepel draaide. En dat deed het! Hierdoor veroorzaakte het migreren van al deze data slechts een paar kleine bottlenecks, niets om extra uren voor te schrijven.

 

Is de data correct gemigreerd?

Tot slot heb ik twee tips die ik je mee zou willen geven als het gaat om controleren of je data correct gemigreerd is:

  1. Bepaal welke data je wil verifieren. Een enorme hoeveelheid data migreren betekent niet meteen dat al die data ook correct gemigreerd moet worden. Het heeft vooral te maken met risicomanagement en het schatten welke problemen de kop op kunnen steken als een en ander niet correct gemigreerd is. Houd er hierbij wel rekening mee dat je bij gevoelige data, zoals financiële gegevens en betalingen, altijd moet verifiëren of het correct gemigreerd is.
  2. Gebruik een business intelligence-tool. Zelfs als je twee dezelfde DBMS’s gebruikt, kan het zeer nuttig blijken om beide databases in een business intelligence-tool te importeren, zodat je een goed overzicht hebt van hoe de data is gemigreerd. Metabase is een goed voorbeeld: ze hebben een cloud-versie, maar je kunt ook het ook zelf hosten op je eigen servers. Dat hebben wij gedaan en het heeft echt zijn vruchten afgeworpen.

Als je wil weten wat we precies gedaan hebben voor de Stadsbank van Lening, bekijk dan hier de case study.

 

Case

Een nieuw beleensysteem voor de Stadsbank van Lening

Onze laatste blogs en artikelen ontvangen?
Schrijf je in voor onze nieuwsbrief!

Laat hieronder je naam en email achter

Blijf op de hoogte

Meld je aan voor onze nieuwsbrief en ontvang elke maand artikelen en blogs over innovatie en onze podcast.