Advanced Programs heeft Snowflake sinds 2018 omarmd in haar portfolio, om hiermee organisaties te ondersteunen in hun ambitie om snel en flexibel te zijn in het beschikbaar stellen van data. Cloud Data Warehousing is een essentieel onderdeel van onze visie op “het Data Platform”. Nadat wij verschillende databronnen geïntegreerd hebben, is het immers ons doel om deze data overal, veilig, en snel beschikbaar te stellen.

Kijk ook eens op:

https://www.advancedprograms.nl/data-platform-services/cloud-data-warehousing/

https://www.advancedprograms.nl/data-platform-services/het-data-platform/

Door de opgebouwde kennis en ervaring van diverse Snowflake migraties bij elkaar te brengen, hebben wij een generieke Snowflake Migratie Kit ontwikkeld. Wij zijn nu trotse eigenaar van een tool waarmee we verschillende databases, zoals SQL Server, Oracle, en DB2, naar Snowflake kunnen migreren inclusief de views en stored procedures die vaak in dit soort Data Warehouse omgevingen essentieel zijn.

Naast dat wij snel een Snowflake-omgeving beschikbaar kunnen maken, kunnen wij door inzet van de Migratie Kit zonder een hoop voorwerk direct aan de slag met de database migratie. Wij nemen volledig verantwoordelijkheid van de database migratie, en dit doen wij op een zeer efficiënte wijze. Bij het gebruiken van de Migratie Kit, hoeven wij slechts een aantal database-specifieke parameters in te voeren. Vervolgens genereert de tool een reeks aan scripts die de database volledig en (bijna volledig) geautomatiseerd migreert – van de inventarisatie tot de verificatie.

Inventarisatie

Stap 1 van ons migratieproces is het ophalen van de metadata uit de bronomgeving. Met deze stap inventariseren wij verschillende aspecten van de database, zoals kolomnamen, primary keys, en column defaults. Deze gegevens slaan we op in .csv-bestanden met een vaste indeling (dus twee metadata-csv’s uit respectievelijk Oracle en DB2 hebben een identieke structuur). Uit deze metadata kunnen wij vervolgens opmaken hoe we de Snowflake-omgeving in moeten richten (e.g. tabelstructuur). Hierbij zorgen we uiteraard voor de nodige vertalingen. Een simpel voorbeeld hiervan zijn datatypes: in Snowflake hebben discrete getallen het datatype INTEGER, maar SQL Server hanteert de naam INT. Voor al deze (en vergelijkbare) vertalingen, gebruiken we een soort woordenboek, die alle benodigde conversies bevat.

Migratie

Nadat de tabellen (automatisch dus!) zijn aangemaakt in Snowflake, gaan we de data migreren naar Snowflake. Ook hierbij maken we gebruik van .csv’s: de Migratie Kit exporteert alle tabellen naar gezipte .csv-bestanden. Deze bestanden laden we vervolgens in de tabellen in Snowflake. Het gebruik van .csv als opslag- en transfer medium maakt dat de tool platform onafhankelijk is. Bovendien gaat Snowflake prettig om met .csv’s – waardoor de datamigratie soepel, veilig, en intuïtief verloopt. Hierbij zijn we er overigens trots op dat we vrijwel ieder datatype kunnen migreren met onze methode – zelfs binaire kolommen (bijv. opgeslagen afbeeldingen)!

Functionaliteit

Tot slot zetten we de Migratie Kit in om de views en stored procedures te vertalen. De meeste views kunnen we – afhankelijk van de platform-specifieke functies die gebruikt worden – automatisch vertalen. Voor de stored procedures is iets meer handwerk vereist (in Snowflake werken die namelijk met JavaScript-syntax). Met de Migratie Kit hebben we echter wel een workflow waarbij het kwantificeren, aanmaken, en testen van de views en stored procedures heel gemakkelijk is.

Verificatie

Nadat de database gemigreerd is, is het zaak om te checken of de overdracht compleet en foutloos is. Ook deze stap is onderdeel van de Migratie Kit – deze bevat logica om aan de bron- en Snowflake-kant een checksum te berekenen. Met dit algoritme kunnen we vaststellen dat de data één op één is overgekomen (i.e. als de checksum aan beide zijden gelijk is). De checksum waardes, plus de database-structuur, worden overzichtelijk weergegeven in een automatisch gegenereerde rapportage. Deze rapportage vergelijkt de bronomgeving met Snowflake – hierin is in één oogopslag de volledigheid van de migratie te beoordelen. Deze rapportage sturen we op naar de klant, en vanaf dat moment beschikt de klant over een volledig ingerichte database-omgeving in de cloud!