recorded future ingång


De som ägnar sig åt riktigt sofistikerad börshandel och omvärldsbevakning är Recorded futures huvudsakliga kunder. Precis som sökmotorer söker deras lösningar igenom webbsidor, twitterflöden, pressreleaser, bloggar och historisk information – de kallar arbetet för harvesting, alltså att skörda.

Nästa steg är att göra en serie automatiska analyser av informationen. Först och främst kommer en lingvistisk analys där man försöker förstå innebörden av det som har skrivits och vaskar fram ”entiteter”, som ungefär betyder ”företeelser” på lingvistspråk. En entitet kan till exempel vara en person eller en plats, och alla sätt att omnämna den. Till exempel utgör ”Fredrik Reinfeldt”, ”statsministern” och ”regeringschefen” en och samma entitet. I dag tolkar Recorded future texter som är skrivna på engelska, mandarin och arabiska, men fler språk lär läggas till.


När hände det?
Därefter gör man en temporalanalys, det vill säga försöker förstå exakt när någonting har hänt – det behöver inte nödvändigtvis vara samma sak som när texten skrevs.

Slutligen utför man vad som kallas för en ortogonal analys, där systemet försöker se samband mellan olika entiteter, till exempel att Kiruna är en plats i Sverige och alltså ska tas med om en sökning görs på ”Sverige”.

Men det är inte en data warehouse-lösning, förklarar Anders Karlsson, databasarkitekt på Recorded future:
– Vår tjänst ger inte statistik som ett datalager gör, utan kan mer liknas vid att leta efter nålar i en höstack. Till exempel finns vissa pressreleaser bara i enstaka exemplar, men de kan innehålla väldigt viktig information.

Rådata och sökmotorns index sparas i MySQL 5.5-databaser, men informationen som har analyserats sparas i MongoDB – en ”nosql-databas” passar bra för uppgiften. Anders Karlsson förklarar varför de har valt två olika databasmotorer:

– Strukturerad lagring, som i en sql-databas, är nödvändig för att kunna göra analys och rankning. Nosql-databaser måste planeras noga och objekt identifieras i förväg, vilket försvårar om man vill göra annorlunda sökningar mot den i framtiden. Och våra analyser utvecklas hela tiden. Vi ändrar algoritmerna och utökar datamängden kontinuerligt, så vi måste ha rådata i MySQL.




Insamlade data lagras i en MySQL-databas och bearbetas sedan för att göra olika sorters sökningar så snabba som möjligt. Recorded Future hjälper systemet att tolka och ranka informationen från harvesting-processen, till exempel genom att namnge företeelser (”entiteter”). För att låta kunderna fritextsöka används i dag sökmotorn Sphinx, som har en egen Mysql-databas. Men informationen ”tvättas” också, och sorteras för snabba sökningar för att sedan lagras i MongoDB.


Inga egna servrar
För samtidigt körs systemet i skarp drift. Företaget har ingen egen serverhall, utan har lagt ut hela verksamheten i Amazons moln. Men det är inte gratis.

– Om man vill spara pengar måste man anpassa verksamheten efter molnet, säger Anders Karlsson.

I dagsläget har man ungefär 60–70 virtuella Ubuntu-servrar, varav ett dussin är den största varianten med hela 68 gigabyte minne och 8 processorkärnor. Datavolymerna tiofaldigas varje år. Nu lagrar de över 50 terabyte data utspritt på över 400 EBS-volymer (Elastic Block Store), Amazons traditionella disklagring för servrarna i molnet.

– En anledning till att vi använder just Amazon är att ingen annan molnleverantör har så stora serverinstanser som vi behöver. Amazon har ”spot-priser” som bestäms i en auktion där kunderna får ange ett tak för hur mycket de är beredda att betala. Det blir nästan alltid mycket billigare än de fasta priserna, och det utnyttjar Recorded future på de noder som arbetar med harvesting och analys av data. Men om andra företag bjuder över kan Recorded futures servrar helt enkelt stängas av. Amazons disklagring EBS är också riktigt seg, vilket begränsar antalet transaktioner som kan göras under en given tidsperiod, säger Anders Karlsson.


Databasgurun



Anders Karlsson är databasarkitekt på Recorded Future. Han har en gedigen erfarenhet av olika data-baser och var i många år anställd på MySQL, som ju blev uppköpt av Sun, och så småningom blev en avdelning inom Oracle. Andra arbetsgivare har varit Informix och Timesten. Anders bloggar om databaser på karlssonondatabases.blogspot.com


Sida 1 / 2

Innehållsförteckning