Ranking Streaming Data With Continuous Queries
Abstract
En økende mengde data genereres som en del av digitaliseringen av samfunnet vårt. Forskning fra 2013 viser at 90% av all dataen generert i verden frem til det tidspunktet, ble generert i løpet av de to foregående årene. Sosiale medier har blitt en del av hverdagen til folk,og måten mennesker bruke disse sosiale mediene kan generere store datastrømmer, sliksom for eksempel strømmen av meldinger fra mikrobloggen Twitter, som genererer millioner av “tweets” daglig. Denne dataen kan analyseres i sanntid for få innblikk i mangetemaer, for eksempel hvilke naturkatastrofer eller andre kriser som rammer verden i et gittøyeblikk. Men, det er ikke mulig for en bruker med et spesifikt informasjonsbehov å navigere den store mengden av data for å finne akkurat den dataen som er mest relevant forhenne. Dette har skapt et økende behov for automatiske sanntidssystemer for å håndtereslike problemstillinger. Sanntidsanalyse av denne typen strømdata er ikke en ny idé, menmange av de tidligere tilnærmingene til løsninger har vært avhengige av å “lime” sammenflere uavhengige systemer.I lys av de overnevnte utfordringene utforskerer denne oppgaven hvordan elementer i endatastrøm generert av et sosial medium kan rangeres ved å benytte eksisterende systemersom håndterer Big Data. Målet med å utføre rangering er å til enhver tid kunne identifisereog hente ut den mest relevante informasjonen fra datastrømmen for et gitt informasjonsbehov. Dette adresserer problemet med informasjonsoverflod som brukere kan oppleve pånett.Det første steget i det foreslåttet systemet er å filtrere datastrømmen basert på en ståendebrukerspørring, og dermed redusere mengden data som må prosesseres. Videre blir engrupperingsalgoritme tatt i bruk på de resterende elementene i datastrømmen for å redusere antallet enheter som må rangeres. Deretter blir relevansen mellom grupperingeneav Twitter-meldinger og brukerspørringen kalkulert, og det blir produsert en liste overde k mest relevante grupperingene. Til slutt vil bare tweets som er lagret i den høyestrangerte grupperingen bli persistent lagret, og lagringsmediumet blir oppdatert kun nårdet er endringer i rangeringen av grupperinger. Et sanntidseksperiment viste at filtreringog rangering blir påført med hell på datastrømmen, og at systemet oppdaterer resultateatbasert på den nåværende rangeringen med lav kostnad. Denne oppgaven viser at strømdatakan håndteres internt i AsterixDB, og fjerner behovet for flere systemer til å løse et sliktproblem. An increasing amount of data is being generated as part of the digitialization of our society.In 2013, research found that 90% of the data in the world was generated during the pasttwo years. Social media platforms have become a part of people’s daily life, and the usageof these platforms can generate large data streams, such as the stream of messages frommicroblogging platform Twitter, where millions of “tweets” are posted daily. This data canbe analyzed in real-time to gain insight into many subjects, for instance natural disastersor other crises as they happen, but it would be overwhelming for a user with a specificinformation need to cherry-pick the most relevant posts from such an immense volume ofdata. This has led to a need for automatic, real-time systems for handling such tasks. Realtime analysis of streaming data is not a new idea, but many of the previous approaches haverequired the use of several independent systems which are “glued" together.Bearing in mind the above challenges, this project investigates how to implement rankingof items in a data stream generated by a social media platform using an existing, unifiedbig data management system. The goal is to be able to continuously identify and retrievethe most relevant items by ranking based on a user’s information need at every time instant,and thus address the information overload effect users can be subject to when using theweb.In the proposed system, the first step is to filter the data stream by the means of a continuous user-defined query to avoid processing data not found relevant. Next, an onlineclustering algorithm is applied to the remaining tweets to further reduce the search spaceof relevant items. Then, a scoring function calculates the relevance score for each clusterwith respect to the user query, and these are ranked to find the top-k most relevant ones.Finally, only tweets in the highest ranked cluster are retrieved and persisted, and the storage is updated as the most relevant items change as time passes by. A real-time experimentshow that filtering and ranking is applied to the data stream, and that the system updatesthe retrieved result based on the current ranking with low costs. This study show thatstreaming data can be handled natively within AsterixDB, yielding no need for combiningseveral systems for that purpose.