Möt Matillion – pusselbiten som underlättar i din ETL-resa i molnet

10 augusti 2018

Jag och mina kollegor på Sparks jobbar väldigt mycket med helt molnbaserade datalager och analyslösningar. Riktigt kul att så många får upp ögonen för fördelarna med molnet även inom vårt område. En central del i vägen mot molnet är att bygga nya eller migrera befintliga datalakes och warehouse till molnet. Där hamnar datat ofta i Snowflake, Redshift, SQL Azure eller BigQuery.

Just Snowflake har blivit en personlig favorit för flera av oss. Framför allt för att det känns som att Snowflake är mönsterexemplet på hur styrkorna med molnet ska användas. Enkelt och skalbart. En pusselbit har dock saknats.

Hur bygger man på ett lika smidigt och skalbart sätt dataladdningar och orkestrering av dessa i molnet? Dvs det som i den ”gamla” BI-världen ofta går under samlingsnamnet ETL.

MATILLION

Efter en hel del letande, testande och utvärderande så har vi hittat det bästa svaret för oss och många av våra kunder, Matillion. Ett verktyg byggt specifikt för att tillgodogöra sig alla de fördelar vi sett med molnet och samtidigt vara så enkelt att man snabbt kan komma igång och bygga sina dataladdningar. Allt utan att behöva vara gammal ETL-expert eller ha svart bälte i Python. Dataladdningarna byggs i ett grafiskt webb-baserat gränssnitt. Inga installationer behövs för utvecklare, det är bara logga in på en i en portal och köra. Där det, som ses nedan, mesta kan lösas med grafiska flöden likt klassiska ETL-flöden.

 

Versioner för Snowflake, Redshift och Google BigQuery

Matillion finns i tre versioner som alla är byggda för en specifik molndatabas. Vad betyder då det? Jo, Matillion jobbar med att flytta så mycket som möjligt av dataladdningens logik och kraft till databaslagret. Det kallas push down. Det som byggs i det visuella gränssnittet översätts till SQL, optimerad för just den version av databas man arbetar med. I skrivande stund finns Matillion för Snowflake, Redshift och Google BigQuery. Tekniken med push down och specifika versioner gör att väldigt lite kapacitet behövs i Matillion-lagret. Istället får molndatabaserna som är byggda för att hantera dagens stora volymer göra det de är bäst på.

Trots att de olika versionerna av Matillion under skalet genererar väldigt olika kod behöver du som utvecklare inte tänka på vilken Matillion du jobbar i. Det känns väldigt bra och genomtänkt.

Integrationer och data från alla källor

En annan av styrkorna jag gillar med Matillion är enkelheten att koppla upp sig mot alla de olika tjänster som finns i form av API:er. Det kan man göra med någon av alla komponenterna för specifika tjänster som finns, och ständigt utökas. Saknas någon tjänst kan man alltid använda den standardiserade API-komponenten. Här är ett exempel på de CRM och marknadssystem som stöds. Det finns integrationer från väldigt många system med olika nisher. Självklart också alla traditionella databaser. Vilka som stöds skiljer lite mellan de olika Matillinon-versionerna. Här kan du t ex se vad Snowflakeversionen stöder för integrationer.

 

Skulle trots detta ett scenario uppstå som inte går att lösa går det alltid att inkorporera Python- eller bash-skript och lösa de mest komplexa problemen.

Var platsar Matillion i den moderna moln-arkitekturen?

Exakt hur en sådan arkitektur ser ut beror som vanligt på vilka källor som finns, hur de är strukturerade och vilka krav som finns på slutprodukten. Men för att generalisera och välja ett exempel där vi arbetar med Snowflake skulle det kunna se ut som något enligt bilden nedan.

Vi försöker alltid använda respektive tjänst till det de är bäst på, i bilden nedan används Snowflakes Snowpipe för att kontinuerligt läsa in den data som strömmar in till Amazon S3. Här kommer data från en försäljningssite via Amazon Kinesis i form av JSON-data. Så fort denna data är inne i Snowflake, går det som bilden hintar om naturligtvis att direkt börja analysera med t.ex. Tableau.

Ibland räcker det dock inte att bara arbeta med vyer mot JSON datat utan aggregeringar eller berikningar kan behövas på det data som kommit in till Snowflake, och det är här vi ofta ser Matillion komma in. Det kan handla om att via någon tjänst inhämta valutakurser för att växla all försäljning till en gemensam bas-valuta. Sedan även hämta Google Analytics data för att tillsammans med kundregistreringar och köp från försäljningssiten skapa en verklig ”funnel” från besök till första köp. Vanligt är också som sagt att använda Matillion till jobb som aggregerar datat så att Tableau eller andra analysverktyg har ett mindre och mer lätthanterligt dataset att arbeta mot.

Vad kostar Matillion?

Till att börja med så är det som driver kostnad för Matillion inte behovet av att ha någon kraftfull ETL-maskin eller hårdvara. Detta eftersom all databearbetning, som jag berättade ovan, görs av underliggande molndatabas. Det är istället användningstiden och storleken på utvecklingsteamet som driver kostnaden.

Matillion kostar per timme lösningen är igång. Igång betyder att någon sitter och utvecklar eller att något färdigt flöde exekveras, t.ex. en morgonladdning. Ett tips är därför att optimera lösningen så att den bara är igång när det behövs. Det går t ex fint att använda Lambda i AWS och slå på och av maskinen när ingen utvecklare behöver den eller när schemalagt jobb ska gå.

Det som sedan bestämmer vad varje timme kostar är den nivå av Matillion du vill ha, och det du förenklat väljer är antalet samtidiga utvecklare som ska kunna jobba med lösningen. Exempel på nivåer här är MEDIUM för 2 samtidiga utvecklare som kostar 1,37 USD per timme och XLARGE för 12 samtidiga användare för 5,48 USD per timme.

Vad händer nu?

Vi tror starkt på Matillion och dess plats i en modern molnarkitektur. Idag hjälper vi flera kunder där Matillion passar mycket bra i lösningarna. Och antalet kunder ökar snabbt. I kommande inlägg om Matillion försöker vi ta upp saker vi lärt oss på vägen. Hoppas det gör att du kan komma igång lite snabbare själv. Jag kommer även inom kort med en snabbstartsguide om hur man kommer igång med Matillion, kopplar upp sig mot sin egen Snowflakeinstans och skapar flöden, enkelt integrerar med olika datakällor som t.ex. Google Analytis samt lite tips och tricks på vanliga mönster.

Och om du inte orkar du inte vänta tills nästa inlägg? Då går det naturligtvis bra att höra av dig till oss på Sparks redan idag så hjälper vi dig!

Berätta mer!