Μοντέλο Διαστάσεων Αρχιτεκτονική Αποθηκών Δεδομένων Πασχάλης Θρήσκος, PhD Λάρισα 2016-2017
Βασικά βήματα διαχείρισης ενός DW έργου The DW Lifecycle Toolkit
Μοντέλο διαστάσεων (Dimensional Modelling) Τεχνική που έχει στόχο να αναπαραστήσει τα δεδομένα ώστε να έχουμε ταχύτατη ανάκτηση. Χρησιμοποιεί το σχεσιακό μοντέλο δεδομένων με ορισμένες αλλαγές ή περιορισμούς. Βασίζεται σε : Έναν πίνακα που ονομάζεται πίνακας τιμών (Fact Table) Ένα σύνολο μικρότερων πινάκων που ονομάζονται πίνακες διαστάσεων (Dimensions)
Μοντέλο διαστάσεων (Dimensional Modelling) Μοντέλο σχεδίασης που έχει μελετηθεί πολύ Σχετικά εύκολη η εισαγωγή νέων δεδομένων, χωρίς να χρειαστεί να ξαναφορτώσουμε όλον τον πίνακα. Σχετικά εύκολη η προσθήκη νέων χαρακτηριστικών Τυποποιημένες σχεδιαστικές διαδικασίες. Πληθώρα προϊόντων που το υποστηρίζουν
Πίνακας τιμών (Fact Table) Περιέχει αριθμητικές ποσότητες που προκύπτουν από κάποια επιχειρηματική διαδικασία Μπορεί να έχει πολλές εγγραφές Μπορεί να μεγαλώσει σε όγκο δεδομένων πολύ γρήγορα Μπορεί να έχει απλές, σύνθετες ή συναθροίσεις τιμών Ενώνεται με πίνακες διαστάσεων μέσω ξένων κλειδιών
Πίνακας τιμών (Fact Table) Ορισμός Μετρίσιμο μια αριθμητική ποσότητα η οποία αναφέρεται σε κάποια δείκτη απόδοσης της επιχείρησης Συνάθροιση σχηματίζεται όταν ενώνουμε διαστάσεις για να δημιουργήσουμε μια μοναδική τιμή. Μετρήσεις που σχετίζονται με κάποια επιχειρηματική διαδικασία. Τα χαρακτηριστικά των πινάκων τιμών είναι :. Υπολογιζόμενα ή τιμές OLTP Προκύπτουν από άλλα χαρακτηριστικά Αθροίσιμα, ημί-αθροίσιμα, μη-αθροίσιμα
Πίνακας τιμών (Fact Table) Δεν θα πρέπει να περιέχει NULL σε ξένα κλειδιά διαστάσεων Αν ένα μετρήσιμο χαρακτηριστικό εμφανίζεται σε πολλούς πίνακες τιμών, θα πρέπει εννοιολογικά να είναι ίδιο (Conformed fact) Ένας πίνακας τιμών μπορεί έχει μετρήσιμα που έχουν τιμές στον χώρο και το χρόνο (Transaction Fact Table) πχ συναλλαγές ATM.
Πίνακας τιμών (Fact Table) Ένας πίνακας τιμών μπορεί να μην έχει καν μετρήσιμα (Factless Fact Table). Καταγράφουν συνήθως την απουσία κάποιου συμβάντος, πχ ο ασθενής δεν ήρθε στο ραντεβού με τον γιατρό. Ένας πίνακας τιμών μπορεί έχει μετρήσιμα που αφορούν σε συνάθροιση τιμών για κάποιο χρονικό διάστημα (Periodic Snapshot Fact Table), πχ ημέρα, εβδομάδα, μήνας, χρόνος.
Factless Fact Table
Factless Fact Table Δεν περιέχει μετρήσιμα. Περιέχει μόνο ξένα κλειδιά σε διαστάσεις Χρησιμοποιούνται για την καταγραφή ενός γεγονότος με χαρακτηριστικά τις διαστάσεις Το γεγονός που περιγράφεται μπορεί να αναφέρεται στην είτε στην ολοκλήρωση του είτε στην παντελή απουσία Χρησιμοποιείται για Συμμετοχή ή όχι, πχ παρουσία σε μάθημα, συνάντηση κτλ Ολοκλήρωση ενός γεγονότος ή όχι πχ συνάντηση, συναλλαγή κτλ
Transaction Fact Table Το επίπεδο ανάλυσης είναι η συναλλαγή Οι «ατομικές» συναλλαγές εμπεριέχουν την μεγαλύτερη δυνατή πληροφορία Έχουν πολλές εγγραφές εάν για τον συνδυασμό των διαστάσεων υπάρχει εγγραφή Τα μετρήσιμα σε επίπεδο συναλλαγής θα πρέπει να συμφωνούν με το επίπεδο ανάλυσης
Transaction Fact Table Κατάλληλα για Ανάλυση συμπεριφοράς ή αποδοτικότητας στο πιο λεπτομερές επίπεδο Περιγραφική ανάλυση, όπως ανίχνευση απάτης (fraud detection), κατάργηση συνδρομής (chern), προειδοποιήσεις και επισυμάνσεις κτλ Ανάλυση καταναλωτικής συμπεριφοράς Ακατάλληλα για Ανάλυση τρέχουσας κατάστασης
Periodic Snapshot Fact Table Τα μετρήσιμα είναι αθροίσματα για ένα συγκεκριμένο χρονικό διάστημα, πχ εβδομάδα, μήνα, τρίμηνο κτλ Προκύπτουν ως αθροίσματα σε Πίνακες Τιμών Συναλλαγών (Transaction Fact Tables) Το επίπεδο ανάλυσης είναι η περίοδος μέτρησης και όχι η συναλλαγή Περιέχουν συνήθως πολλά μετρήσιμα, τα οποία θα πρέπει να συμφωνούν στις διαστάσεις αλλά κυρίως στην περίοδο μέτρησης Για κάθε μετρήσιμο που δεν έχει τιμή για κάθε συνδυασμό των διαστάσεων, βάζουμε 0. Μια γραμμή στον συγκεκριμένο πίνακα τιμών μπορεί να έχει μηδέν (0) σε όλα τα μετρήσιμα
Periodic Snapshot Fact Table
Transaction Fact Table
Πίνακες Διαστάσεων (Dimension Table) Οι πίνακες διαστάσεων έχουν τα ακόλουθα χαρακτηριστικά : Έχουν ένα πρωτεύον κλειδί. Είναι μη-κανονικοποιημένοι πίνακες Έχουν χαρακτηριστικά χαμηλής πληθικότητας (low cardinality) Είναι συνδεδεμένα με πίνακες τιμών μέσω ξένων κλειδιών.
Πίνακες Διαστάσεων (Dimension Table) Οι πίνακες διαστάσεων έχουν τα ακόλουθα χαρακτηριστικά : Περιέχουν πληροφορία που αφορά στα χαρακτηριστικά μιας επιχειρηματικής διαδικασίας. Τα δεδομένα που περιέχουν είναι επί το πλείστον στατικά Προσδιορίζουν επιχειρησιακούς περιορισμούς Καθορίζουν ομαδοποιήσεις δεδομένων Είναι η βάση στην οποία αναπτύσσονται h διεπαφή του χρήστη και οι εκτυπώσεις Απαντούν στις ερωτήσεις «Ποιός», «Τι», «Που», «Πότε», «Γιατί», «Πως».
Πίνακες Διαστάσεων (Dimension Table)
Κατηγορίες πινάκων διαστάσεων Ακανόνιστες διαστάσεις Διαστάσεις με ιεραρχία Διαστάσεις για λογικές τιμές ή/και δείκτες Διαστάσεις με κενές τιμές Διαστάσεις χρόνου Μίνι-διαστάσεις Διαστάσεις χιονονοιφάδας
Ανανόνιστες διαστάσεις Διάσταση που περιέχει μόνο το πρωτεύον κλειδί Χρησιμοποιείται κυρίως σε
Διαστάσεις με ιεραρχία Πολλές διαστάσεις έχουν μια φυσική ιεραρχία Είναι η βάση για συναρθοιστική άνοδο ή αναλυτική κάθοδο
Διαστάσεις για λογικές τιμές Όταν υπάρχουν λογικές τιμές, ακατανόητες συντμήσεις και επιχειρησιακή ορολογία, τότε θα πρέπει να γίνει αντικατάσταση με επεξηγηματικό κείμενο ή την πλήρη επιχειρηματική ορολογία : Πχ True False ΦΑΠ Ο πελάτης δεν πλήρωσε Δεν έγινε η μεταφορά εμβάσματος Φύλλο αξιολόγησης πράξης
Διαστάσεις με κενές τιμές Όταν κάποια τιμή μιας εγγραφής στον πίνακα διάστασης δεν έχει τιμή ή όταν πρέπει να είναι κενή, τότε να προτιμάται κείμενο με λεκτικό «Δεν υφίσταται». Οι ΒΔ χειρίζονται διαφορετικά τα NULLs κατά την ομαδοποίηση εγγραφών Οι ΒΔ χειρίζονται διαφορετικά τα NULLs κατά τη διαδικασία επιλογής εγγραφών Κενή εγγραφή μπορεί να μπερδέψει τους χρήστες του ΒΙ
Μίνι-Διαστάσεις Όταν: Τα χαρακτηριστικά μιας διάστασης μεταβάλλονται διαφορετικά Το μέγεθος μιας διάστασης γίνεται υπερβολικά μεγάλο τότε: διαχωρίζουμε τον πίνακα διάστασης σε δύο ή περισσότερους πίνακες που αποκαλούνται μίνι-διαστάσεις
Διαστάσεις χρόνου Αναφέρεται σε ωρολογιακές και ημερολογιακές τιμές Σχεδόν κάθε πίνακας τιμών έχει το λιγότερο μια χρονική διάσταση Εορτολόγιο, οικονομικό έτος κτλ πρέπει να ενσωματωθούν Ορίζεται στην αρχή υλοποίησης του DW Δεν έχει κάποια φυσική εξάρτηση με πίνακα. Λίγες τιμές μπορούν να δημιουργηθούν απευθείας με SQL Υλοποίηση με το excel ή αναζήτηση στο Διαδίκτυο
Διαστάσεις χρόνου http://www.kimballgroup.com/wp-content/uploads/1998/12/think-globally-figure-21.png
Αργά μεταβαλλόμενες διαστάσεις (ΑΜΔ) (Slowly Changing Dimensions - SCD) Ιστορικότητα Τύπου 0 Καμία αλλαγή Τύπου 1 Διορθώσεις Τύπου 2 Νέα εγγραφή Τύπου 3 Νέο χαρακτηριστικό Τύπου 4, 5,6 Πιο «εξωτικές»
Αργά μεταβαλλόμενες διαστάσεις Τύπου 1 Πιο εύκολη Δεν μας ενδιαφέρει η ιστορικότητα Χρησιμοποιείται σχεδόν 50% όσο αφορά ΑΜΔ Η αλλαγή γίνεται απευθείας στο χαρακτηριστικό του Πίνακα Διάστασης Αναφορές με συναθροίσεις που εξαρτώνται από την παλαιά τιμή είναι πλέον άκυρες Supplier_Key Supplier_Code Supplier_Name Supplier_Prov 123 ΑΒΓ Κάποια Εταιρεία ΑΤΤΙΚΗ Supplier_Key Supplier_Code Supplier_Name Supplier_Prov 123 ΑΒΓ Κάποια Εταιρεία ΛΑΡΙΣΑ
Αργά μεταβαλλόμενες διαστάσεις Τύπου 2 Μας ενδιαφέρει η ιστορικότητα Εισαγωγή νέας εγγραφής στον Πίνακα Διάστασης Ο Πίνακας Διαστάσεων μπορεί να μεγαλώσει υπερβολικά Η διαδικασία ETL γίνεται αρκετά δύσκολη http://cdn.information-management.com/media/newspics/100108_kimball_fig1_m.gif
Αργά μεταβαλλόμενες διαστάσεις Τύπου 2 https://docs.oracle.com/cd/e13110_01/epm9pbr1/eng/psbooks/penw/img/image204.gif
Αργά μεταβαλλόμενες διαστάσεις Τύπου 3 Μας ενδιαφέρει η ιστορικότητα Εισαγωγή νέου χαρακτηριστικού στον Πίνακα Διάστασης Διατήρηση της εγγραφής Χρησιμοποιείται όταν έχουν μία ή το πολύ δύο αλλαγές ProductKey Description Category OldCat SKU 20001 Mouse Pad Computer Accessory Gadget MP1234
Αρχιτεκτονική σχεδίαση Αστέρα http://www.whizlabs.com/blog/dimensional-modeling/
Αρχιτεκτονική σχεδίαση Αστέρα Η αρχιτεκτονική αστέρα είναι η απλούστερη αρχιτεκτονική σε ένα DW. Ονομάζεται αρχιτεκτονική αστέρα γιατί το διάγραμμα οντοτήτων μοιάζει με αστέρι, με άκρες που εκτείνονται προς τα έξω από ένα κοινό κέντρο. Το κέντρο του αστεριού είναι ο πίνακας τιμών, και οι άκρες οι πίνακες διαστάσεων. Συνήθως οι πίνακες τιμών είναι 3NF κανονικοποιμένοι, ενώ οι πίνακες διαστάσεων δεν είναι κανονικοποιημένοι.
Αρχιτεκτονική σχεδίαση Αστέρα https://docs.oracle.com/database/121/dwhsg/ch2logdes.htm#dwhsg9234
Αρχιτεκτονική σχεδίαση Χιονονοιφάδας Κανονικοποίηση της αρχιτεκτονικής Αστέρα Επηρεάζει τους Πίνακες Διαστάσεων https://docs.oracle.com/database/121/dwhsg/ch2logdes.htm#dwhsg9234
Διαφορές ανάμεσα στο Σχεσιακό Μοντέλο και το Μοντέλο Διαστάσεων Σχεσιακό Μοντέλο Ένας πίνακας ανά οντότητα Κανονικοποιημένο σχήμα Μεγιστοποίηση ταχύτητας ενημέρωσης Μικρές συναλλαγές Μοντέλο Διαστάσεων Ένας πίνακας τιμών, πολλοί πίνακες διαστάσεων Μεγιστοποίηση κατανόησης Μεγιστοποίησης ταχύτητας ανάκτησης Ανάκτησης πολλών εγγραφών
Άσκηση Να σχεδιαστεί το λογικό διάγραμμα μιας αποθήκης δεδομένων που θα αποθηκεύσει ιστορικά δεδομένα για τις συναλλαγές μιας Τράπεζας. Συγκεκριμένα θα πρέπει να κρατάμε ιστορικό για τα ακόλουθα : 1. Πότε έγινε η συναλλαγή 2. Το είδος της συναλλαγής 3. Σε ποιο λογαριασμό αφορούσε 4. Σε ποιο κατάστημα έγινε 5. Το ποσό της συναλλαγής
Άσκηση Στην προηγούμενη άσκηση, πρέπει να απαντήσουμε γρήγορα στα εξής ερωτήματα : 1. Ποιο το σύνολο ποσό εκροών στο σύνολο των τραπεζικών συναλλαγών την τελευταία εβδομάδα. 2. Υπήρξε διαφοροποίηση στο σύνολο εκροών του τελευταίου μήνα Θα χρειαστούν αλλαγές στο λογικό σχήμα της Αποθήκες Δεδομένων. Θα πρέπει να επανασχεδιάσουμε τους Πίνακες Τιμών; Οι Πίνακες Διαστάσεων θα πρέπει να εμπλουτιστούν με νέα χαρακτηριστικά;
Άσκηση Να σχεδιαστεί το λογικό διάγραμμα μιας αποθήκης δεδομένων που να απαντά στα παρακάτω ερωτήματα : 1. Ποια μαθήματα ήταν αυτά που παρακολούθησαν πιο πολύ οι φοιτητές ; 2. Ποιοί οι δέκα (10) καθηγητές με τους περισσότερους φοιτητές στις παραδώσεις των μαθημάτων τους; 3. Ποιες αίθουσες δέχθηκαν τους περισσότερους φοιτητές; 4. Ποιες αίθουσες δεν χρησιμοποιήθηκαν καθόλου στα προηγούμενα δύο εξάμηνα;
CUSTOMER customer_id (PK) customer_name purchase_profile credit_profile address STORE store_id (PK) store_name address district floor_type ERD ORDER order_num (PK) customer_id (FK) store_id (FK) clerk_id (FK) date PRODUCT SKU (PK) description brand category ORDER-LINE order_num (PK) (FK) SKU (PK) (FK) promotion_key (FK) dollars_sold units_sold dollars_cost CLERK clerk_id (PK) clerk_name clerk_grade PROMOTION promotion_num (PK) promotion_name price_type ad_type
TIME time_key (PK) SQL_date day_of_week month STORE store_key (PK) store_id store_name address district floor_type DIMENSONAL MODEL FACT time_key (FK) store_key (FK) clerk_key (FK) product_key (FK) customer_key (FK) promotion_key (FK) dollars_sold units_sold dollars_cost PRODUCT product_key (PK) SKU description brand category CUSTOMER customer_key (PK) customer_name purchase_profile credit_profile address CLERK clerk_key (PK) clerk_id clerk_name clerk_grade PROMOTION promotion_key (PK) promotion_name price_type ad_type