Εισαγωγή
Πριν λίγες μέρες η Microsoft Hellas διοργάνωσε την ημερίδα με τίτλο "Microsoft ΒΙ Roadshow 2012". Δυστυχώς δεν μπόρεσα να την παρακολουθήσω. Όμως είδα τα slide decks των παρουσιάσεων και έχω την εντύπωση ότι ήταν πολύ καλή. Από τις παρουσιάσεις υπήρξε κάτι το οποίο μου άρεσε αρκετά. Αυτό ήταν στην παρουσίαση του Νίκου Μακρή και ειδικά στο σημείο που έκανε την αντιπαράθεση μεταξύ του Inmon και Kimball.
Είμαι σίγουρος ότι ο Νίκος θα είπε πολλά και θα έχει καλύψει το θέμα άριστα και λυπάμαι πραγματικά που δεν ήμουν εκεί για να τον ακούσω. Χωρίς να γνωρίζω τι ακριβώς έχει πει ο Νικόλας θα ήθελα να πω και εγώ κάποιες απόψεις πάνω σε αυτή την "διαμάχη", έτσι γιατί απλά μου αρέσει και γιατί ίσως δώσω και εγώ κάτι σαν τροφή αναζήτησης, μιας και όταν το 2000 που ξεκίνησα να ασχολούμαι με το θέμα και να κάνω μαθήματα σε αυτό θα ήθελα κάποιον να μου τα πει καθώς το μυστικό της επιτυχίας μιας BI λύσης είναι το Data Warehouse πάνω στο οποίο αυτή πατάει.
Ιστορική Αναδρομή
To 1990 o Bill Inmon εκδίδει το "Building the Data Warehouse"
Το 1996 ο Ralph Kimball εκδίδει το "The Data Warehouse Toolkit"
Το 1997 ο Kimball δηλώνει "… the data warehouse is nothing more than the union of all the data marts".
To 1998 o Inmon δηλώνει "You can catch all the minnows in the ocean and stack them together and they still do not make a whale…"
To αποτέλεσμα των λεγομένων τους... τo 2002
Ο Inmon κάνει update στο βιβλίο του και ορίζει την top down αρχιτεκτονική/μεθοδολογία για την δημιουργία ενός data warehouse με την οποία υποστηρίζει ότι πρέπει να συμπεριληφθούν όλα τα εταιρικά δεδομένα και όπου τα data marts δημιουργούνται μόνο αφού έχει ολοκληρωθεί οριστικά το data warehouse.
O Kimbal κάνει και αυτός update το βιβλίο του και ορίζει την bottom-up αρχιτεκτονική/μεθοδολογία του όπου υποστηρίζει ότι κάθε data mart παρέχει ένα view στα εταιρικά δεδομένα και που αργότερα όλα αυτά τα μεμονωμένα data marts μπορούν να ενοποιηθούν σε ένα μεγαλύτερο all encompassing data warehouse.
To Data Warehouse για τον Inmon είναι "Subject oriented, Time variant, Non-volatile, Integrated" ενώ για τον Kimball "A copy of transaction data specifically structured for query and analysis"
Τι είναι όμως το Data Warehouse;
Σύμφωνα με την ερμηνεία που δίνουν πλέον αρκετοί και η οποία συγκεράζει τις απόψεις και των δύο είναι "The single organizational repository of enterprise wide data across many or all lines of business and subject areas. Contains massive and integrated data. Represents the complete organizational view of information needed to run and understand the business".
Και το Data Mart τι είναι;
Πάλι σύμφωνα με τους περισσότερους ειδικούς ο ορισμός είναι "The specific, subject oriented, or departmental view of information from the organization. Generally these are built to satisfy user requirements for information".
Data Warehouse Vs Data Mart
|
Data Warehouse |
Data Mart |
Scope |
- Application independent
- Centralized or Enterprise
- Planned
|
- Specific application
- Decentralized by group
- Organic but may be planned
|
Data |
- Historical, detailed, summary
- Some denormalization
|
- Some history, detailed, summary
- High denormalization
|
Subjects |
|
- Single central subject area
|
Sources |
- Many internal and external sources
|
- Few internal and external sources
|
Other |
- Flexible
- Data oriented
- Long life
- Single complex structure
|
- Restrictive
- Project oriented
- Short life
- Multiple simple structures
|
Το μοντέλο του Inmon
Βασίζεται στον CIF (
Corporate Information Factory) και ορίζει το περιβάλλον της databases σαν
- Operational (Day-to-day operations - transactions)
- Atomic data warehouse (Data manipulated and moved - transactions)
- Departmental (Focused, As source is ADW)
- Individual (Ad hoc, As source is ADW)
Βλέπει το Data Warehouse σαν μέρος μια μεγαλύτερης ολότητας που αυτή δεν είναι άλλη από CIF.
Το μοντέλο του Inmon έχει τρία επίπεδα για την υλοποίηση του data modeling
- ERD (Entity Relationship Diagram ) με το οποίο αναπροδιορίζει τα entities, attributes και relationships
- Mid-Level model με το οποίο ορίζει τα Data Item Sets (DIS) και τα πιθανά groupings
- Physical Data Model με το οποίο κάνει το performance optimization συνήθως με την τεχνική του denormalization
Η φιλοσοφία του Inmon είναι εστιασμένη στον οργανισμό σαν ολότητα και μετά στις επιμέρους ανάγκες. Έτσι ζητάει να υπάρχει πρώτα το Data Warehouse και μετά τα Data Marts.
Το μοντέλο του Kimball
Από την μεριά του ο
Kimballείδε τα πράγματα διαφορετικά έτσι όρισε το Dimensional Data Model με τα γνωστά Fact και Dimensional tables. Με τα facts να περιέχουν τα metrics και τα dimensions να περιέχουν τα attributes. Χωρίς να υπάρχει ίχνος από την θεωρία της κανονικοποίησης με την λογική του να είναι εύκολα στην χρήση από τους χρήστες.
Αν παρατηρήσουμε τις δύο παραπάνω εικόνες θα δούμε ότι υπάρχουν διαφορές μία μάλιστα από αυτές είναι ότι ο ένας το ονομάζει Data Warehouse ενώ ο άλλος το ονομάζει Data Lifecycle ή πιο γνωστό σαν The Kimball Data Bus. Φυσικά θα πρέπει να γίνει λόγος για τον σχεδιασμό στο Data Warehouse όπου η προσέγγιση του Kimball γίνεται με επιλογή στο business process ορίζοντας το granularity της πληροφορίας εξ αρχής όπως και τα dimensions και metrics. To ζητούμενο για τον Kimball είναι να εξυπηρετηθεί ο τελικός χρήστης άμεσα, αυτή είναι η φιλοσοφία του. Έτσι ξεκινάει με τα data marts για να έχει γρήγορη παράδοση της λύσης στους χρήστες.
Inmon Vs Kimball
|
Inmon |
Kimball |
Methodology and Architecture |
|
|
Overall approach |
Top-down |
Bottom-up |
Architectural Structure |
Enterprise-wide DW feeds departmental DBs |
Data marts model a business process. Enterprise is achived with conformed dims |
Complexity of method |
Quite complex |
Fairly simple |
Data Modeling |
|
|
Data orientation |
Subject or data driven |
Process oriented |
Tools |
Traditional (ERDs and DIS) |
Dimensional modeling departs from traditional relational modeling |
End user accessibility |
Low |
High |
Dimensions |
|
|
Timeframe |
Continuous and Discrete.
Defines data management via dates in your data
Continuous time
- When is a record active
- Start and end dates
Discrete time
- A point in time
- Snapshot |
Slowly Changing
Defines data management via versioning
Type I
-Change record as required
-No History
Type II
-Manage all changes
-History is recorded
Type III
-Some history is parallel
-Limit to defined history |
Methods |
Timestamps |
Dimension Keys |
Philosophy |
|
|
Primary Audience |
IT |
End Users |
Place in the Organization |
Integral part of the Corporate Information Factory (CIF) |
Transformer and retainer of operational data |
Objective |
Deliver a sound technical solution based on proven methods |
Deliver a solution that makes it easy for end user to directly query data and still have reasonable response rate |
Και τώρα ποιον θα πρέπει να επιλέξω;
Και οι δύο σχολές συμφωνούν στο γεγονός ότι για να κάνεις σωστά data warehouses / data marts θα πρέπει σχολαστικά και με μεθοδικότητα να έχει γίνει συλλογή απαιτήσεων πρώτα.
Και οι δύο συμφωνούν ότι πρέπει να γίνει εξονυχιστικό business-user validation στον σχεδιασμό των data marts με σκοπό την επίτευξη της εφικτότητας των στόχων και την δημιουργία του μοντέλου υλοποίησης. Το μοντέλο αυτό θα αποτελέσει και το σημείο εκκίνησης για τον σχεδιασμό του staging area. Ο Kimball το ονομάζει αυτό backroom ενώ ο Inmon data warehouse. Αυτό είναι και το σημείο στο οποίο γίνεται το referential integrity τα transformation των τιμών που απαιτούνται, καθώς επίσης και κάθε λογής κανόνες που διέπουν τα δεδομένα κ.λ.π.
Αν θέλεις γρήγορα αποτέλεσμα τότε ο Kimball έχει προβάδισμα. Αν ο σκοπός σου είναι να φτιάξεις κάτι μεγαλύτερο και έχεις χρόνο και πόρους σε αφθονία τότε πας με την μεθοδολογία του Inmon.
Προσωπικά μου αρέσει η μεθοδολογία του Kimball που όμως με τα χρόνια τριβής έχω σε αυτή εντάξει στοιχεία της μεθοδολογίας του Inmon. Αν και πάντα αναρωτιέμαι αν αυτό ήταν δική μου απόφαση ή μια απόφαση που βγήκε μέσα από την καθοδήγηση του εργαλείου.
Η πορεία του SQL Server από την έκδοση που εμφανίστηκαν τα Analysis Services (SQL Server 2000) ήταν προσανατολισμένη στην μεθοδολογία του Kimball. Παρόλα αυτά όμως στην πορεία είδα να μπαίνουν όλo και περισσότερα στοιχεία της μεθοδολογία του Inmon.
Αν και σήμερα είναι παντελώς αδιάφορο για τον SQL Server το με ποια μεθοδολογία θα στηθεί το DW, κατά την γνώμη μου ο SQL Server παραμένει ακόμα προσανατολισμένος στην μεθοδολογία του Kimball, αυτή είναι η αίσθηση μου.
Επίλογος
Όμως δεν έχει σημασία ποια μεθοδολογία θα ακολουθήσεις. Αυτό που έχει σημασία είναι εξαρχής να γνωρίζεις το γιατί κτίζεις την συγκεκριμένη λύση και πως ορίζεις την επιτυχία αυτής της λύσης.
Εάν δεν έχεις προηγούμενη εμπειρία σε DW δεν μπορείς να ξέρεις αν θα πετύχεις ή όχι. Αν έχεις προηγούμενη εμπειρία τότε χρησιμοποίησε την σαν βάση για την επόμενη υλοποίηση. Κανένας δεν μπορεί να ισχυριστεί ότι η μια ή άλλη μεθοδολογία είναι πιο επαγγελματική από την άλλη. Όποιος το κάνει αυτό διαπράττει λάθος μεγάλο. Επίσης μην αλλάζεις τη μεθοδολογία που έχεις επιλέξει μεταξύ των δύο γιατί έτσι δεν θα μάθεις ποτέ τι δουλεύει και τι όχι σε αυτή που χρησιμοποιείς.
Αυτό που μπορώ να συμβουλέψω είναι ότι πρέπει να προσπαθήσεις σκληρά όποια και να χρησιμοποιήσεις καθώς τα BI projects έχουν μεγάλο αριθμό αποτυχία εξαιτίας του κακού σχεδιασμού του DW.
Προτείνω να διαβαστεί η βιβλιογραφία των δύο αυτών προσωπικοτήτων που είναι πλούσια και την οποία προσπάθησα στις παραπάνω γραμμές να απεικονίσω.
Τα εργαλεία υπάρχουν είναι εδώ και έχουν όνομα SQL Server 2012, όμως θέλουν μια μεθοδολογία.