ΕΞΑΓΩΓΗ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ ΜΕΤΑΦΟΡΤΩΣΗ (EXTRACT, TRANSFORM, LOAD) Πασχάλης Θρήσκος, PhD Λάρισα 2016-2017
ΤΙ ΕΙΝΑΙ ; Είναι μια διαδικασία σε ένα περιβάλλον Αποθήκης Δεδομένων όπου συμβαίνουν τα εξής: Εξαγωγή δεδομένων από διάφορες ομοιογενές ή ετερογενές πηγές. Μετασχηματισμός δεδομένων σε σωστή μορφή ή δομή ικανή για εύκολη ανάκτηση Μεταφόρτωση δεδομένων στο σύστημα ανάλυσης (data mart, DW) https://en.wikipedia.org/wiki/extract,_transform,_load
Η εξαγωγή δεδομένων και η εισαγωγή τους στο DW είναι απλά μια διεργασία όπου γίνεται μεταφορά δεδομένων από ένα σύστημα σε ένα άλλο. Τα δεδομένα εξάγονται από ένα OLTP σύστημα, μετασχηματίζονται για να ταιριάζουν στο σχήμα της αποθήκης δεδομένων και στη συνέχεια μεταφορτώνονται στην ΒΔ του DW Πολλές αποθήκες δεδομένων περιέχουν δεδομένα από αρκετά ετερογενή συστήματα, όπως συστήματα που δεν εμπεριέχουν την έννοια συναλλαγής, όπως αρχεία κειμένου, λογιστικά φύλλα (excel), xml κτλ Όταν αναφερόμαστε στον όρο ETL στο πλαίσιο του DW θα πρέπει να θεωρούμε ότι είναι μια διαδικασία και όχι μια απλή υλοποίηση σε φυσικό επίπεδο πινάκων ΒΔ.
Extract Transform & Clean Load Sources DSA DW https://www.google.gr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=6&cad=rja&uact=8&ved=0ahukewji2bj4l9dpahvechqkhcyebqaqfghzmau&url=http%3a%2f%2fwiki.esi.ac.uk%2fw%2ff iles%2f5%2f5f%2fvassiliadis.ppt&usg=afqjcneq-rxfbinc8tq3lnanlgkkeos3_a
Τα εργαλεία ETL and Data Cleaning tools cost 30% της προσπάθειας και του κόστους σε ένα έργο DW 55% του κόστους λειτουργίας 80% του χρόνου ανάπτυξης ενός έργου DW Η αποτίμηση της αγοράς εργαλείων ETL : πολλά εκατομμύρια Η IBM πλήρωσε 1.1 δισ. δολάρια για την απόκτηση της Ascential Τα εργαλεία ETL που υπάρχουν είναι : Εμπορικά πακέτα (βλ. Oracle Data Integrator) Open Source (βλ. Pentaho Kettle) Αναπτύσσονται από ιδίους πόρους (In-house) Δεν υπάρχουν πρότυπα ή κάποιο κοινό μοντέλο οι περισσότεροι προμηθευτές υλοποιούν ένα σύνολο λειτουργιών και ένα GUI για την υλοποίηση ροών Adapted from https://www.google.gr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=6&cad=rja&uact=8&ved=0ahukewji2bj4l9dpahvechqkhcyebqaqfghzmau&url=http%3a%2f%2fwiki.esi.ac.uk%2fw%2ffiles%2f5 %2F5f%2FVassiliadis.ppt&usg=AFQjCNEQ-rxfBInC8TQ3lNanLGkKEOs3_A
ΕΞΑΓΩΓΗ (EXTRACT)
Η ενοποίηση των διαφορετικών πηγών δεδομένων της επιχείρησης και η ενσωμάτωση στο DW ώστε το τελευταίο να είναι επιχειρησιακά λειτουργικό, είναι μια πραγματική πρόκληση Οι πληροφορίες εξάγονται από ετερογενές πηγές δεδομένων, μερικές εκ των οποίων μπορεί να μην βρίσκονται στην επιχείρηση (πχ στο Διαδίκτυο) Κάθε πηγή δεδομένων είναι διαφορετική, με τα δικά της χαρακτηριστικά και πρέπει να τη διαχειριστούμε διαφορετικά για να μπορέσουμε να την ενσωματώσουμε στο ETL σύστημα.
Η διαδικασία ETL πρέπει να ενσωματώσει επιτυχώς συστήματα που έχουν διαφορετικά : ΣΔΒΔ (DBMS) Λειτουργικά συστήματα (Windows, Linux, Solaris) Υλικό (Hardware) Πρωτόκολλα επικοινωνία (TCP, UDP, Sockets) Χρειαζόμαστε ένα λογικό σχήμα (logical map) πριν καταλήξουμε στη φυσική υλοποίηση (physical implementation)
Λογικό σχήμα ETL Το λογικό σχήμα εκφράζει τη ροή των βημάτων της διαδικασίας ETL. Από πού αρχίζουμε Που καταλήγουμε Τι χρειαζόμαστε ενδιάμεσα Συνήθως αναπαραστήστε με έναν πίνακα Excel που περιέχει o Το πίνακα-στόχο στη DW( τιμών ή διάστασης) o Τη στήλη του πίνακα-στόχου o Το χαρακτηρισμό μετρήσιμο ή διάσταση o Το χαρακτηρισμό της, εάν είναι αργά μεταβαλλόμενη διάσταση o Τη ΒΔ από την οποία προκύπτει o Τον πίνακα εξαγωγής o Τη στήλη εξαγωγής o Τον μετασχηματισμό εάν υπάρχει
Λογικό σχήμα ETL
Η προσέγγιση του συστήματος προέλευσης δεδομένων μπορεί να αναλυθεί σε δύο μείζονες φάσεις: Φάση εκμάθησης των δεδομένων Φάση ανακάλυψης «ανωμαλιών» στα δεδομένα
Φάση εκμάθησης των δεδομένων Βασική προϋπόθεση επιτυχίας ενός έργου DW, είναι η καθαρότητα και συνεκτικότητα τω δεδομένων που περιέχει Όταν γίνει κατανοητό τι απαιτείται να περιέχει η Αποθήκη Δεδομένων, θα πρέπει να τυποποιηθούν και παράλληλα να ελεγχθούν οι πηγές αυτών των δεδομένων
Φάση εκμάθησης των δεδομένων Εξαρτάται από την ομάδα υλοποίησης ETL να εξετάσει προσεκτικά τις απαιτήσεις για να μπορέσει να καθορίσει επακριβώς την σωστή ΒΔ, το σωστό πίνακα, τη σωστή στήλη, και τη σωστή επεξεργασία που πρέπει να γίνει. Θα πρέπει να : τεκμηριωθεί η σωστή ΒΔ και να καταγραφούν αλλαγές οριστεί επακριβώς η προέλευση της πληροφορίας, γιατί μπορεί να υπάρχει σε περισσότερα του ενός πίνακα (data redundancy). Σε επιχειρησιακά πληροφοριακά συστήματα είναι σύνηθες η ίδια πληροφορία να αντιγράφεται, μετασχηματίζεται, αλλάζει η και να καταστρέφεται με αποτέλεσμα να υπάρχουν πολλές εκδόσεις της ίδιας πληροφορίας.
Η κατανόηση του περιεχομένου της πληροφορίας είναι ουσιώδους σημασίας για την επιλογή της καταλληλότερης μεθόδου εξαγωγής. Για παράδειγμα - NULL τιμές Μια μη διαχειρίσιμη τιμή NULL μπορεί να καταστρέψει μια ETL διαδικασία. Η τιμές NULL παρουσιάζουν τον μεγαλύτερο ρίσκο όταν αναφέρονται σε ξένα κλειδιά.pose the biggest risk when they are in foreign key columns. Σε μια ΒΔ το NULL δεν είναι ίσο με NULL. Για αυτό το λόγο μια ένωση πινάκων θα αποτύχει. Έτσι θα πρέπει Να ελέγχουμε πάντα για NULL σε κάθε ξένο κλειδί Όταν υπάρχουν NULL τιμές τότε οι πίνακες θα πρέπει να ενώνονται με outer join
Στην αρχή, η διαχείριση των αλλαγών στο περιεχόμενο της πληροφορίας δεν έχει σημασία, γιατί συνήθως εξάγουμε την πληροφορία σε ένα προκαθορισμένο χρονικό σημείο. Αργότερα, η δυνατότητα διαχείρισης αλλαγών στα αρχικά δεδομένα γίνεται προτεραιότητα Η ομάδα ETL πρέπει να φροντίσει να διαχειριστεί τις αλλαγές που προκύπτουν όταν η πληροφορία εξάγεται αυξητικά (incremental extraction).
Αρχική και αυξητική εξαγωγή Πως την αντιμετωπίζουμε; Δημιουργούμε δύο πίνακες που περιέχουν τα δεδομένα της προηγούμενης εξαγωγής (Α) και της τρέχουσας (Β). Αρχικά μεταφέρουμε όλα τα δεδομένα στον πίνακα Β. Μια και σ αυτή την φάση οι αλλαγές δεν έχουν σημασία, τα δεδομένα θα μετασχηματισθούν (αν χρειάζεται) και θα μεταφερθούν στον πίνακα του DW. Όταν η διαδικασία της μεταφοράς ολοκληρωθεί, ο πίνακας Α καταργείται και ο πίνακας Β μετονομάζεται σε Α. Την επόμενη φορά που θα γίνει κάποια εξαγωγή, ο πίνακας Β γεμίζει με τα νέα δεδομένα. Τα δεδομένα προς μεταφορά στο DW είναι τα δεδομένα του Β MINUS τα δεδομένα του Α. Τα δεδομένα του Β μεταφέρονται στον Α.
Tips & Tricks κατά την εξαγωγή (από ΣΣΒΔ) Στο WHERE έχουμε χαρακτηριστικά που έχουν δείκτες (indices) Ανακτούμε μόνο δεδομένα που χρειαζόμαστε Αποφεύγουμε τη χρήση του DISTINCT. Είναι αργός τελεστής Αποφεύγουμε τη χρήση τελεστών που έχουν σχέση με πράξεις συνόλων, πχ MINUS, UNION, INTERESECT. Είναι αργοί τελεστές. Χρησιμοποιούμε υποδείξεις (hints) για να αλλάξουμε το πλάνο εκτέλεσης του ερωτήματος (execution plan) Αποφεύγουμε τη χρήση των λογικών τελεστών NOT ή <>. Η ΒΔ θα εκτελέσει πλήρη σάρωση του πίνακα και δεν θα χρησιμοποιήσει καθόλου τους δείκτες
Φάση ανακάλυψης «ανωμαλιών» Σε αυτή την φάση καθορίζουμε ένα συστηματικό τρόπο με τον οποίον θα δώσουμε στους χρήστες «καθαρά» και αξιόπιστα δεδομένα. Γιατί : o «Καθαρά» και αξιόπιστα δεδομένα χρειάζονται μικρή ή καθόλου παρέμβαση από την ομάδα ETL o «Βρώμικα» και αναξιόπιστα δεδομένα χρειάζονται Διαγραφή δεδομένων Χαρακτηρισμό δεδομένων αν δεν υπάρχουν και δημιουργία κλειδιών στους αντίστοιχους πίνακες Στην καλύτερη περίπτωση αντικατάσταση των κατεστραμμένων δεδομένων Χρειάζεται ανθρώπινη παρέμβαση σε επίπεδο εγγραφής
Φάση ανακάλυψης «ανωμαλιών» Δειγματοληψία για να Null τιμές σε υποχρεωτικά πεδία Τιμές εκτός στατιστικά αναμενόμενων ορίων Στήλες με πολύ μεγάλο ή μικρό εύρος Στήλες που περιέχουν τιμές εκτός των επιτρεπόμενων αποδεκτών διακριτών τιμών Συμμόρφωση με απαιτούμενα πρότυπα
ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ (TRANSFORM)
Το βήμα όπου η όλη διαδικασία ETL προσδίδει αξία στα δεδομένα Τα δεδομένα υφίστανται επεξεργασία Γίνεται αντιληπτό αν τα δεδομένα μπορούν να χρησιμοποιηθούν για το σκοπό που ορίζουν οι απαιτήσεις Γίνεται σε ενδιάμεσο χώρο επεξεργασίας (staging area) Διασφαλίζεται η ποιότητα των δεδομένων
Σωστά δεδομένα είναι αυτά που είναι : Ακριβή Οι τιμές αναφέρονται σε πραγματικά αντικείμενα Σαφή Ένα και μοναδικό νόημα Συνεπή Ίδια τιμή όπου υπάρχει η πληροφορία Πλήρη Δεν χάνουμε πληροφορία
Προτεραιότητες ενός Συστήματος Διασφάλισης Ποιότητας Διαφανές Διορθωτικό Ακριβές Σύστημα Διασφάλισης Ποιότητας Γρήγορο
Προτεραιότητες ενός Συστήματος Διασφάλισης Ποιότητας Ακριβές Οι χρήστες θεωρούν το DW πηγή αξιόπιστης πληροφορίας Γρήγορο Θα πρέπει να επεξεργαστεί μεγάλο όγκο σε πολύ σύντομο διάστημα Διορθωτικό Αν υπάρχουν μη συνεπή δεδομένα, θα πρέπει να διορθώνονται Διαφανές Η ανακάλυψη μη αποδεκτών δεδομένων, θα πρέπει να κινητοποιήσει την επιχείρηση να αναλάβει διορθωτικές ενέργειες εξωγενείς από το σύστημα διασφάλισης ποιότητας
Ταχύτητα Ακρίβεια Ισορροπίες σε ένα Συστήματος Διασφάλισης Ποιότητας Ακρίβεια και Ταχύτητα Ένα σύστημα διασφάλισης ποιότητας δεν μπορεί να είναι ταυτόχρονα γρήγορο και ακριβές. Θα πρέπει να αποφασίσουμε σε ποιο σημείο είναι αποδεκτό να υπάρχουν αναξιόπιστα δεδομένα Το χρονικό διάστημα μετά το οποίο θα πρέπει το σύστημα να έχει τρέξει όλα τους ελέγχους διασφάλισης ποιότητας
Παραδοτέα ενός Συστήματος Διασφάλισης Ποιότητας Σχήμα βάσης για την υποστήριξη της διαδικασίας διασφάλισης ποιότητας Πεδία ορισμού τιμών των διαφόρων χαρακτηριστικών Περιγραφή των πηγών δεδομένων Κανόνες διασφάλισης ποιότητας.
Παραδοτέα ενός Συστήματος Διασφάλισης Ποιότητας http://www.kimballgroup.com/wp-content/uploads/2007/10/an-architecture-for-data-quality1.pdf
http://www.dataintegration.ninja/
ΕΠΑΝΑΦΟΡΤΩΣΗ (LOAD)
ΔΙΑΣΤΑΣΕΙΣ Σε φυσικό επίπεδο, χρησιμοποιείται ένας ή το πολύ δύο πίνακες Το πρωτεύον κλειδί είναι μία στήλη που έχει για κάθε στήλη ένα αριθμό (συνήθως σε αύξουσα σειρά) Μη κανονικοποιημένοι πίνακες όλα τα χαρακτηριστικά σε έναν πίνακα διάστασης πρέπει να έχουν μια τιμή για κάθε τιμή του πρωτεύοντος κλειδιού. Η Διάσταση Ημερολογίου πρέπει να υπάρχει σε κάθε DW. Δημιουργείται μια φορά με τιμές ικανές για τον χρόνο ζωής του DW. Νέες εγγραφές εισάγονται σπανια και συνήθως με ανθρώπινη παρέμβαση. Αργά μεταβαλλόμενες διαστάσεις εισάγονται στο DW στη σωστή μορφή και με τα σωστά δεδομένα
ΜΕΤΡΗΣΙΜΑ Στους πίνακες τιμών αποθηκεύονται τα μετρήσιμα της επιχείρησης. Η σχέση μεταξύ μετρήσιμων και πινάκων τιμών είναι απλή. Εάν ένα μετρήσιμο υπάρχει, τότε θα αποτελέσει μια γραμμή σε έναν πίνακα τιμών. Και αντίστροφα, εάν ύπάρχει μια εγγραφή σε ένα πίνακα τιμών, τότε αυτό αποτελεί ένα μετρήσιμο.
ΜΕΤΡΗΣΙΜΑ Όταν δημιουργούμε έναν πίνακα τιμών, στο τελικό στάδιο της ETL διαδικασίας, θα πρέπει να μετατρέψουμε τα πρωτεύοντα κλειδιά των εγγραφών σε πρωτεύον κλειδί ή βοηθητικό κλειδί (surrogate key) του πίνακα τιμών. Η διαδικασία ETL συνήθως έχει έναν πίνακα τιμών για τα πρωτεύοντα κλειδιά όλων των πινάκων διάστασης. Ο πίνακας αυτός ενημερώνεται κάθε φορά που ένας καινούργιος πίνακας διάστασης δημιουργείται ή μια νέα εγγραφή για μια Διάσταση Τύπου 2 καταχωρείται σε μια υπάρχουσα διάσταση. Για την καλύτερη απόδοση σε επίπεδο ΒΔ (ταχύτητα εκτέλεσης), ο πίνακας αυτός θα πρέπει να βρίσκεται στην μνήμη, ώστε η αναζήτηση και ενημέρωση θα πρέπει να γίνονται πολύ γρήγορα για κάθε νέα εγγραφή σε έναν πίνακα τιμών. Εξάλλου οι εγγραφές στους πίνακες τιμών ανέρχονται σε εκατομμύρια.
ΜΕΤΡΗΣΙΜΑ Διαχείριση δεικτών Χειρότερη επίδοση κατά την εισαγωγή νέων εγγραφών Διαγραφή όλων των δεικτών πριν την επαναφόρτωση δεδομένων στο DW Διαχωρισμός εγγραφών ενημέρωσης από εγγραφές εισαγωγής Επαναδημιουργία δεικτών στο DW
ΜΕΤΡΗΣΙΜΑ Ο Διαχωρισμός (Partition) επιτρέπει σε έναν πίνακα (και τους αντίστοιχους δείκτες του) να σπάσουν σε μικτότερους πίνακες, με αποτέλεσμα να υπάρχει υπάρξει βελτιστοποίηση στην ταχύτητα εκτέλεσης των ερωτημάτων Η συνηθέστερη μορφή διαχωρισμού σε πίνακες τιμών είναι να σπάσουμε τον πίνακα χρησιμοποιώντας το κλειδί ημερομηνίας. Επειδή η χρονική διάσταση είναι στατική, γνωρίζουμε ακριβώς τα κλειδιά, οπότε μπορούμε να αποφασίσουμε για το ακριβές σπάσιμο του πίνακα. Η ομάδα ETL θα πρέπει να συνεργαστεί με τον Διαχειριστή ΒΔ του DW, ώστε να γνωρίζει ποιοί πίνακες θα σπάσουνε, ώστε να το συμπεριλάβει αυτό στην διαδικασία μεταφόρτωσης.
ΜΕΤΡΗΣΙΜΑ Το ημερολόγιο επαναφοράς (rollback log), γνωστό επίσης και σαν ημερολόγιο επανάληψης (redo log), προσφέρει ανεκτίμητη βοήθεια σε ένα σύστημα συναλλαγών (OLTP). Στα συστήματα DW, η οποία ουσιαστικά επιβραδύνει τη διαδικασία μεταφόρτωσης. Οι λόγοι που ένα σύστημα DW δεν έχει ανάγκη το ημερολόγιο επαναφοράς είναι οι: Όλες οι συναλλαγές είναι κάτω από τον έλεγχο της διαδικασίας ETL. Τα δεδομένα μεταφορτώνονται σε μεγάλου όγκους Τα δεδομένα μπορούν να μεταφορτωθούν αν η διαδικασία ETL αποτύχει σε κάποιο σημείο. Κάθε ΣΔΒΔ έχει ένα δικό του σύστημα διαχείρισης ημερολογίου με διαφορετικές ρυθμίσεις. Η ETL διαδικασία θα έπρεπε να τα διαχειριστεί όλα