21.05.2015 Views

ICY - Infocom Year Book 2013

Οδηγός Αγοράς Τεχνολογιών Πληροφορικής και Τηλεπικοινωνιών.

Οδηγός Αγοράς Τεχνολογιών Πληροφορικής και Τηλεπικοινωνιών.

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

72<br />

big data<br />

.........................................................................................................................The Big Data Theory<br />

κλήσεις στη διαχείριση Big Data εφαρμογών και τις ευκαιρίες<br />

που υπάρχουν σε τομείς όπως η εκπαίδευση, η υγειονομική περίθαλψη,<br />

η ενέργεια, οι μεταφορές, ο αστικός σχεδιασμός κ.ά. Οι<br />

εφαρμογές αναπτύσσονται σε 5 κύριες φάσεις, ενώ σε κάθε φάση<br />

υπάρχουν παρούσες 4 προκλήσεις . Η Εικόνα 3 δείχνει τις φάσεις<br />

(πάνω σειρά) και τις προκλήσεις σε κάθε φάση (κάτω σειρά).<br />

Εικόνα 3: Φάσεις και προκλήσεις σε εφαρμογές Big Data<br />

(πηγή: «Challenges and Opportunities with Big Data»)<br />

4. Big Data: Τεχνολογίες<br />

4.1. MapReduce, Hadoop και Οικοσύστημα<br />

Το MapReduce είναι ένα προγραμματιστικό παράδειγμα<br />

(programming paradigm) που επιτρέπει με σχετικά εύκολο τρόπο<br />

την έκφραση διαδικασιών που μπορούν να εκτελεστούν με<br />

καταναμεμημένο και fault-tolerant τρόπο. Ο προγραμματιστής<br />

ορίζει σε μία γλώσσα προγραμματισμού (π.χ. Java) δύο συναρτήσεις,<br />

τη Map και τη Reduce. H πρώτη συνάρτηση (Map) συσχετίζει<br />

μία τιμή με ένα κλειδί, δημιουργώντας ένα ζεύγος κλειδί-τιμή<br />

(key-value pair), συνήθως διαβάζοντας κάποιο αρχείο, δημιουργώντας<br />

έτσι λίστες τιμών ανά κλειδί. Η δεύτερη συνάρτηση<br />

(Reduce) ορίζει με ποιον τρόπο «διατρέχονται» αυτές οι λίστες τιμών.<br />

Όλες οι λεπτομέρειες της καταναμεμημένης επεξεργασίας<br />

είναι κρυμμένες από τον προγραμματιστή. Το MapReduce προτάθηκε<br />

αρχικά από την Google [2] και απαιτεί ένα κατανεμημένο<br />

σύστημα διαχείρισης αρχείων για να λειτουργεί, όπως το Google<br />

File System (GFS). Δεδομένου ότι αυτό έχει αναπτυχθεί από την<br />

Google και είναι κλειστό, η κοινότητα ανοιχτού λογισμικού ανέπτυξε<br />

το HDFS (Hadoop Distributed File System) και υλοποίησε<br />

το MapReduce πάνω σε αυτό. Αυτό βοήθησε στο να αναπτυχθεί<br />

ένα οικοσύστημα εργαλειών (π.χ. Pig, Hive) και εταιρειών (π.χ.<br />

Cloudera, Hadapt) που χρησιμοποιούν το Hadoop σαν τη βάση<br />

της τεχνολογίας τους.<br />

4.2. NoSQL Συστήματα<br />

Τα Συστήματα NoSQL είναι απλές πλατφόρμες διαχείρισης δεδομένων<br />

που δεν ακολουθούν το σχεσιακό μοντέλο και δεν υποστηρίζουν<br />

SQL ερωτήματα. Δημιουργήθηκαν για τις ανάγκες<br />

διαχείρισης δεδομένων των Web 2.0 εταιρειών κοινωνικής δικτύωσης,<br />

όπως το facebook, LinkedIn, Twitter, αλλά και της<br />

Google, Amazon κ.ά. Αυτές οι εταιρείες δεν ήθελαν/μπορούσαν<br />

να βασιστούν στα υπάρχοντα εμπορικά ή ανοιχτού κώδικα συστήματα<br />

βάσεων δεδομένων, λόγω είτε κόστους, είτε ειδικών<br />

απαιτήσεων επεξεργασίας δεδομένων. Οι κύριες απαίτησεις σε<br />

αυτά τα συστήματα ήταν υψηλή διαθεσιμότητα (availability) και<br />

εύκολη και γρήγορη επεκτασιμότητα με οικονομικούς servers<br />

(scalability, commodity servers), ιδιότητες που δεν υποστήριζαν<br />

εύκολα και οικονομικά τα ΣΔΒΔ εκείνης της εποχής. Ταυτόχρονα,<br />

οι εταιρίες αυτές είχαν ένα συγκεκριμένο τρόπο πρόσβασης/ανάκτησης<br />

δεδομένων (πολύ απλά read/writes βασισμένα σε ένα<br />

κλειδί) και δεν ενδιαφέρονταν για πολύπλοκα SQL ερωτήματα<br />

και ιδιότητες ACID (Atomicity, Consistency, Isolation, Durability).<br />

Σαν αποτέλεσμα, αναπτύχθηκαν συστήματα που επιτρέπουν την<br />

αποθήκευση ζευγών κλειδιού-τιμής επιτρέποντας πολύ γρήγορη<br />

αναζήτηση τιμής με βάση το κλειδί, προσφέροντας ταυτόχρονα<br />

fault-tolerance και υψηλή διαθεσιμότητα μέσω πολλαπλών αντιγράφων<br />

των key-value ζευγών στους κόμβους του συστήματος.<br />

Η διαχείριση των ζευγών από τους χρήστες γίνεται με απλά API<br />

(π,χ. set(key, value), get(key)) που διατίθενται για διάφορες γλώσσες<br />

προγραμματισμού. Τα NoSQL συστήματα συνήθως κατηγοριοποιούνται<br />

σε: (α) απλά key-value συστήματα, (β) document<br />

stores (όταν το value έχει κάποια δομή, π.χ. JSON μορφή), (γ)<br />

column-oriented stores όταν η μορφή του value προσομοιάζει<br />

στη γραμμή ενός πίνακα, και (δ) graph databases, όταν το σύστημα<br />

χρησιμοποιείται για την αποθήκευση γράφων, που είναι<br />

συχνοί σε εφαρμογές κοινωνικών δικτύων. Αντιπροσωπευτικά<br />

συστήματα είναι τα: Cassandra, Riak, MongoDB, Couchbase,<br />

Hbase, Neo4j, κ.ά. Ο ενδιαφερόμενος αναγνώστης μπορεί να<br />

ανατρέξει στο [3] για μία εξαιρετική σύντομη τεχνική περιγραφή<br />

του χώρου.<br />

4.3. Data Mining & Predictive Analytics<br />

Οι τεχνικές εξόρυξης γνώσης είναι γνωστές εδώ και πολλά χρόνια,<br />

και αφορούν στατιστικές μεθόδους και τεχνικές machine<br />

learning σε προβλήματα εξαγωγής προτύπων, όπως κατηγοριοποίηση<br />

(classification), συσταδοποίηση (clustering), κανόνων<br />

συσχέτισης (association rules), ανάλυση τάσεων (trend analysis),<br />

κ.ά. Ο όρος predictive analytics έχει εμφανιστεί τα τελευταία λίγα

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!