Ένα πολύ σημαντικό πρόβλημα του σύγχρονου κόσμου αποτελεί η διαχείριση κι η επεξεργασία των δεδομένων όσο το δυνατόν γρηγορότερα. Τα δεδομένα αυτά ακόμα και στον χρονικό ορίζοντα μιας ημέρας έχουν έναν τεράστιο όγκο εμπεριέχοντας όμως χρησιμότατη πληροφορία για την πρόοδο κι εξέλιξη της ανθρωπότητας. Ένας τρόπος για την άντληση αυτής της πληροφορίας αποτελεί ο λεγόμενος σύνδεσμος και μάλιστα ο πολλαπλός. Ο σύνδεσμος δεν είναι τίποτα άλλο παρά μια τεχνική, μια μέθοδος, ένας αλγόριθμος που συνδυάζει τα δεδομένα, εξάγει την πληροφορία και την παρουσιάζει με κατανοητό τρόπο στον χρήστη. Ο πολλαπλός σύνδεσμος συνδυάζει πολλές πηγές δεδομένων ταυτόχρονα.
Στην παρούσα διπλωματική eξετάζεται αρχικά κι εν συντομία η έννοια του πολλαπλού συνδέσμου κι αναδεικνύεται η σημασία του. Έπειτα μελετώνται μερικές σημαντικές και σύγχρονες τεχνικές που είτε εφαρμόζονται ήδη είτε βρίσκονται σε στάδιο ανάπτυξης. Οι τεχνικές αυτές αφορούν σε ποικίλα περιβάλλοντα ώστε να καλυφθεί το θέμα πλήρως. Άλλωστε συνηθίζεται οι καλύτερες τεχνικές να συγκερνούν ένα πλήθος άλλων.
Η τελευταία από όλες τις τεχνικές μελετάται εκτεταμένα κι αποτελεί το κύριο αντικείμενο της παρούσας εργασίας. Η τεχνική αυτή αφορά στην απόδοση ενός συνδέσμου όταν αυτός υλοποιείται στο περιβάλλον του Map – Reduce. Μετά την θεωρητική ανάλυση της μεθόδου αυτής παρουσιάζονται μια σειρά από πειράματα όπου δοκιμάζεται η απόδοση της έναντι πιο παραδοσιακών τεχνικών σε σχέση με διάφορους παράγοντες όπως ο χρόνος εκτέλεσης και το κόστος επικοινωνίας.
Το προγραμματιστικό περιβάλλον στο οποίο γίνονται τα πειράματα είναι αυτό του Hadoop της Apache, μια ανοικτού κώδικα υλοποίηση του Map – Reduce. Τέλος, παρουσιάζονται τα πειραματικά δεδομένα και τα συνεπαγόμενα συμπεράσματα προκειμένου να οριοθετηθεί το πεδίο της περαιτέρω βελτίωσης του συνδέσμου.
Data management and processing as fast as possible is one very important problem of modern world. Data, even in the time horizon of a day, have a massive volume, including however very useful information for the progress and evolution of humanity. Join and particular multi – way join is one way to obtain this information. A join is a technique, a method, an algorithm that combines data, extracts information and presents this information to the user. The multi – way join combines many data sources simultaneously.
In this diploma thesis, in the beginning the meaning of multi – way is briefly examined and its value is exposed. Then some important and modern techniques are studied which either are already applied or are on a developing stage. These techniques concern various environments with the intention to fully cover the subject.
The last of these techniques is studied extensively and it is the main subject of this thesis. This technique concerns the output of a multi – way join when it is implemented in a Map – Reduce environment. After the theoretical analysis of this method, a series of experiments is presented where the efficiency of this method is tested against more traditional techniques in dependence of various factors such as execution time and communication cost.
The programing environment where these experiments take place is that of Hadoop, from Apache, which is an open source implementation of Map – Reduce. In the end, the experimental data and the consequent conclusions are presented in order to set the record of join's further improvement.