När jag började i branschen i slutet av 1990-talet var processerna kring datalager och rapportering mycket enklare än i nuläget. Informationskällorna var i huvudsak relationsdatabaser och enkla textfiler. Rapporteringen var inte heller särskilt avancerad, för med dåtidens verktyg kom gränserna snabbt emot. Nu när företag vaknar upp till spännande visioner om AI, så får många tyvärr inse att deras existerande DW-lösningar är konstruerade enligt rätt förlegade principer och att innehållet inte håller måttet.
Traditionella datalager byggdes ofta på följande sätt:
De enklaste systemen kan se liknande ut även idag, men man väljer ofta en betydligt mångsidigare arkitektur, med fler informationskällor och fler alternativ för lagring och visualisering av data.
Vad var det ursprungliga syftet med datalager? Här är några orsaker, som jag hittade i mina PowerPoint-presentationer från 2001.
- Sammanslagning och harmonisering av data från olika system
- Ge ”en sanning” för beslutsfattandet
- Användare kan själv göra ad hoc-analyser och IT-avdelningen får tid för annat arbete
- Datalagret samlar historisk data vilket möjliggör tidsserier och avancerad analys
- De operativa systemen belastas inte av rapportering
I och för sig är de här argumenten relevanta än idag. Men räcker det? Maskininlärnings- och AI-lösningar behöver data för att lära sig – visst har vi väl nytta av den data som samlats i våra DW i decennier?
Ibland är svaret ja, men ofta är det nej.
Traditionellt har data som samlats i datalager valts ut enligt rapporteringsbehoven. För ekonomiska rapporter har man exempelvis lagrat ekonomiska data och för HR-rapporter HR-data. När data har samlats in endast med tanke på traditionella rapporteringsbehov är det allt annat än klart att de lämpar sig för maskininlärning.
Låt oss ta ett exempel.
I datalagret XYZ samlas kunddata i syfte att rapportera kundspecifika säljvolymer per produkt, produktgrupp, kundsegment och kanske per dag. Man samlar därför in fakturerings-, produkt- och kunduppgifter i datalagret. Datan kan kännas heltäckande ur försäljningsrapporteringssynvinkel.
En data scientist dyker upp för att skapa en kundomsättningsmodell (customer churn). Efter att ha tagit en titt på datalagret kan vi snabbt konstatera att datalagret inte innehåller några uppgifter om kundernas avtal. Dessa uppgifter skulle sannolikt vara ett centralt element i kundomsättningsmodellen. Eller så kanske det finns avtalsuppgifter i datalagret, men de ger bara information om den aktuella situationen – inte om hela kundens avtalshistorik, som skulle vara viktig att känna till när man skapar en AI-modellen. Det är alltså möjligt att det finns data, men att man inte har någon nytta av den.
Jag har varit med om otaliga projekt inom AI och maskininlärning. Bara i några få fall all nödvändig data funnits tillgängliga i så kallade traditionella datalager. De vanligaste utmaningarna har varit följande:
- Den data man behöver finns inte alls eller bara delvis i datalagret
- Data finns i datalagret, men under en alltför kort tid (historiken har raderats)
- Historiken för nödvändiga data är för gles/ofullständig.
Hur ska man beakta AI i planeringen av datalager?
Eftersom företag ofta satsar märkbara summor på att planera och bygga datalager, gör man idag klokt i att vidta åtgärder för att försäkra sig om att datalagrens innehåll i framtiden kan användas för att bygga AI-lösningar.
- Förutom rapporteringsbehoven behöver man därför ha en uppfattning om hurdana AI-lösningar man vill utveckla i framtiden.
- Satsa på heltäckande datahistorik. Detta påverkar bland annat modelleringsmetoden för datalagret. Eventuellt är Data Vault inte så dåligt alternativ, även om det kan vara en ganska komplicerad metod för ett enkelt BI/DW-projekt.
- Satsa på historiskt spann. Mängden tillgänlig data kan vara av avgörande betydelse för AI, även om man för traditionell rapportering inte behöver mer än t.ex de tre senaste åren. Man bör därför inte tömma datalagret på ”onödiga data”, utan hellre flytta gamla data till en ny miljö, om man tror att de kanske kan vara till nytta senare.
- All data som ska användas i en AI-lösning behöver inte nödvändigtvis lagrad i ett datalager. Ofta är det klokare att förvara exempelvis IoT-sensordata eller loggfiler från webbplatser i någon annan lösning.
När man beaktar de här aspekterna blir datalagret genast mer användbart för kommande projekt inom artificiell intelligens. Det är dock bra att komma ihåg att insamling av data på ett ställe inte i sig skapar AI-lösningar – för detta krävs tydliga business case. Data fungerar därmed som en möjliggörare.