Η εξάπλωση των ασύρματων δικτύων σε συνδυασμό με την εξέλιξη των κινητών τηλεφώνων σε υπερσύγχρονες συσκευές με ιδιαίτερες δυνατότητες έχει προάγει την ευρεία χρήση κοινωνικών δικτύων και υπηρεσιών από κινητούς χρήστες. Στο πλαίσιο αυτό, δημιουργήθηκαν νέες υπηρεσίες, που κάνουν χρήση των δυνατοτήτων των συσκευών αυτών,
χρησιμοποιώντας το γεωγραφικό στίγμα του χρήστη για να εμπλουτίσουν την εμπειρία που
προσφέρουν. Τα δεδομένα τέτοιων υπηρεσιών αποτελούν σημαντική πηγή πληροφορίας για
πληθώρα εφαρμογών, όπως για παράδειγμα προσωποποιημένη διαφήμιση ή εφαρμογές κυκλοφορίας .
Με τα κοινωνικά δίκτυα να συλλέγουν συνεχώς πληροφορία από εκατομμύρια χρήστες και
την απαίτηση για διατήρηση των δεδομένων αυτών για μελλοντική χρήση, δημιουργήθηκε ανάγκη για όλο και μεγαλύτερους αποθηκευτικούς πόρους. Το μέχρι τότε πρότυπο της κεντρικής αποθήκευσης στάθηκε αδύναμο να προσαρμοστεί στη συνεχή αύξηση των δεδομένων που έπρεπε να αποθηκευτούν και τη θέση του πήραν σε πολλές επιχειρήσεις οι
κατανεμημένες βάσεις δεδομένων. Μία από αυτές είναι και η HBase με την οποία θα ασχοληθούμε εμείς. Επίσης, τα γεωγραφικά δεδομένα που συλλέγονται από τις υπηρεσίες θέσης απαιτούν ειδικά σχήματα αποθήκευσης. Το σχεσιακό σχήμα δεν αρκεί, αφού στην περίπτωση ερωτημάτων που αφορούν την επιλογή σημείων μιας περιοχής για παράδειγμα,
είναι ιδιαίτερα χρονοβόρο. Για το λόγο αυτό, τα χωροχρονικά δεδομένα συνοδεύονται με την
επιπρόσθετη ανάγκη της αποδοτικής αποθήκευσης και δεικτοδότησης, ανάλογα με τα ερωτήματα που θα εφαρμοστούν επάνω τους.
Σκοπός της διπλωματικής είναι η συλλογή, αποθήκευση και δεικτοδότηση δεδομένων από
υπηρεσίες θέσης σε κατανεμημένη βάση δεδομένων με κατάλληλο τρόπο, ώστε να γίνεται αποδοτικά η αναζήτησή τους. Σε αυτή την κατεύθυνση αναπτύξαμε ένα σύστημα που συλλέγει δεδομένα για τις θέσεις των χρηστών των τριών πιο δημοφιλών κοινωνικών δικτύων στην Ελλάδα, του Facebook, του Foursquare και του Twitter, και έπειτα τα αποθηκεύει σε ένα
σχήμα HBase. Η δεικτοδότηση έχει επιλεχθεί έτσι ώστε να κάνει αποδοτικές τις ερωτήσεις
που αφορούν ανάκτηση εγγραφών σε ένα δεδομένο γεωγραφικό τετράγωνο. Τέλος, σχεδιάσαμε μια εφαρμογή, που να κάνει χρήση της βάσης, υπολογίζοντας το συνολικό αριθμό χρηστών που βρίσκεται σε κάποια περιοχή της Αθήνας για ένα δεδομένο χρονικό διάστημα και να εμφανίζει στο χρήστη ένα χάρτη, όπου θα φαίνεται ποιοτικά η πληροφορία αυτή.
The spread of wireless networks, combined with the evolution of mobile phones to sophisticated devices with special abilities, boosted the wide use of social networks and services from mobile users. New services, which can make use of these devices' abilities, have been launched, using the location of their users to add spatio-temporal information to enrich the experience they offer. Data from these services are a useful source of information for a variety of applications, such as personalized advertisment or traffic applications.
Social networks continuously collect informations from millions of users, demanding to hold these data for future use, so the need for bigger save resources became bigger. Central storing could not adjust to the constant growth fo data, which had to be stored and it was replaced with distributed databases. One popular distributed database is HBase, which we will use in this thesis. Also, spatial data which are collected from the location based services demand special store schemas. Relation data model is not enough, since it is extremely slow in queries that ask for tupples within a regional area for example. For this reason, spatiotemporal data come along with the extra need of special store and indexing schemas, which will most efficiently fit to the queries' needs.
The purpose of this thesis is the collection, storing and indexing of data from location based
services in a distributed database, in a way that will make queries over them more efficient.
We have developed a system which collects data from the three most popular location based
services in Greece – Foursquare, Facebook and Twitter – and then stores them in an HBase
schema. A special indexing is used in order to make range queries more efficient. Finally, we
developed an application which makes use of this database and calculates the total number of
users who are inside an area for a specific range of time, providing a map which will better show this information.