|
Îåêßíçóå áðü ôï ìÝëïò axaros. Τελευταία δημοσίευση από το μέλος KelMan στις 23-12-2005, 20:40. Υπάρχουν 16 απαντήσεις.
-
13-10-2005, 11:03
|
-
13-10-2005, 12:30
|
|
Έπιασες ένα δύσκολο θέμα εδώ.
Πριν σκεφτείς τί σχήμα θα έχει η βάση του data warehouse θα πρέπει να σκεφτείς τί θέλεις να "πάρεις" από αυτό. Θέλεις να κάνεις πιο εύκολη τη δημιουργία κάποιων reports? Ή μήπως να μαζέψεις δεδομένα από πολλά διαφορετικά συστήματα και να τα συνδιάσεις? Τί μετρήσεις και σύνολα θέλεις να σου δίνει το data warehouse?
Μόλις σκεφτείς τί θέλεις να φτιάξεις, πρέπει να σκεφτείς τις διαστάσεις και τις ιεραρχίες με τις οποίες θέλεις να αναλύσεις και να παρουσιάσεις διάφορες μετρήσεις. Αν μετράς πωλήσεις, θα επιλέξεις σίγουρα χρόνο (ανά ημέρα, εβδομάδα, μήνα, χρόνο), γεωγραφική περιοχή (δήμο, νομό, περιφέρεια), προϊόν (μεμονωμένο και οικογένεια προϊόντων), ίσως και πωλητή. Η επιλογή των διαστάσεων και των ιεραρχιών είναι πολύ σημαντική γιατί σε περίπτωση που θέλεις να τις τροποποιήσεις θα χρειαστεί να ξαναφορτώσεις όλα τα δεδομένα. Αν για παράδειγμα διαπιστώσεις ότι δεν αρκεί ο δήμος στη γεωγραφική περιοχή (φαντάσου την Αθήνα!) θα πρέπει να αλλάξεις την ιεραρχία και να ξαναφορτώσεις τα δεδομένα.
Μόλις καταλήξεις σε διαστάσεις και μετρήσεις, δημιουργείς ένα πίνακα για κάθε διάσταση που θα περιέχει μια γραμμή για κάθε τιμή της διάστασης στο κατώτερο επίπεδο και ένα κεντρικό πίνακα με τις μετρήσεις που θα έχει κλειδιά στους πίνακες με τις διαστάσεις. Αυτό είναι το εύκολο. Μετά θα πρέπει να σκεφτείς πως θα τραβήξεις τα δεδομένα από την κανονική σου βάση, πως θα μεταφέρεις τα νέα δεδομένα, πως θα αντιμετωπίσεις αλλαγές στις διαστάσεις (π.χ. συγχώνευση γεωγραφικών περιοχών, εμφάνιση νέου πωλητή κλπ.). Τέλος, δημιουργείς ένα κύβο στα Analysis Services που θα υπολογίσει τα αθροίσματα για κάθε συνδιασμό των διαστάσεων, σε κάθε επίπεδο της ιεραρχίας.
Ακούγεται φασαρία, αλλά σκέψου τί πετυχαίνεις έτσι. Δεν σε απασχολεί πλέον αν χρειάζεται να φτιάξεις ένα report ανά μήνα ή έτος ή ανά νομό. Το data warehouse θα περιέχει έτοιμα τα αθροίσματα για κάθε συνδιασμό που θέλεις. Ακόμα και το πιο περίπλοκο report δεν θα χρειάζεται περισσότερο χρόνο από ένα απλό select!
Ευτυχώς, υπάρχουν μερικές πολύ καλές πηγές για data warehouses. Δες το Intelligent Enterprise Magazine έχει σειρά πάρα πολλά άρθρα από τους ειδικούς στο χώρο. Πιστεύω ότι ο Παπασωτηρίου έκανε πολύ χοντρή βλακεία όταν σταμάτησε να το φέρνει πριν μερικά χρόνια. Επίσης, ο Ralph Kimbal έχει γράψει 4 βιβλία για το σχεδιασμό data warehouses, ένα μάλιστα ειδικά για SQL Server 2000. Τα βιβλία του και τα άρθρα του καθόρισαν σε μεγάλο βαθμό το πως φτιάχνονται τα data warehouses. Άσε που αυτός ο καλός άνθρωπος έχει και όλα τα άρθρα του online!
Συγγνώμη που δεν αναλύω περισσότερα τα περί data warehouse αλλά το θέμα σηκώνει πολύ κουβέντα!
Παναγιώτης Καναβός, Freelancer Twitter: http://www.twitter.com/pkanavos
|
|
-
13-10-2005, 18:22
|
|
Μερικές μεταφρασούλες, ίσως βοηθήσουν:
Dimension = διάσταση = οι διαφορετικές παράμετροι με τις οποίες θα επιλέγει (φιλτράρει) ο χρήστης τα δεδομένα. Πχ σε στο παράδειγμα πωλήσεων που αναφέρει ο Πάνος, διαστάσεις είναι η ημερομηνία της πώλησης, η γεωγραφική περιοχή, η κατηγορία του πελάτη.
Measure = μέτρο = αυτό που μετράς, το πεδίο για το οποίο θέλεις σύνολα, μέτρημα, μέσους όρους κλπ. Πχ στο ίδιο παράδειγμα, measure είναι είναι η καθαρή αξία κάθε παραστατικού, ο αριθμός των τεμαχίων κλπ.
Χρήστος Γεωργακόπουλος
|
|
-
14-10-2005, 09:24
|
-
KelMan
-
-
-
Μέλος από τις 03-11-2004
-
Planet Earth
-
Δημοσιεύσεις 2.851
-
-
|
Πάνο, μπορείς να ξεκινήσεις με τα Analysis Services και λίγο με τα BOLs, λίγο με googling να φτιάξεις ένα πρόχειρο DW για να μπεις στο νόημα.
Αν όμως ρωτάς λόγω κάποιου έργου που σας έχει αναθέσει πελάτης, τότε (χωρίς να θέλω να σε αποθαρρύνω) θα πρέπει να αρχίσεις πολύ διάβασμα.
Βασικά, έχεις να εστιάσεις σε τρεις τομείς διαβάσματος. Ο πρώτος είναι το ETL process. Δηλαδή πως θα μαζέψεις όλα τα data σου από δεξιά-αριστερά (από τα transactional συστήματα που λες), πως θα τα μετασχηματίσεις και πως θα τα ρίξεις μέσα στο DW. Εδώ, αν παίζεις με τεχνολογίες Microsoft, μπορείς να ξεκινήσεις με DTS και (αν χρειαστεί) να καταλήξεις σε κάποιο εργαλείο τρίτου κατασκευαστή.
O δεύτερος είναι το DW. Στο σχεδιασμό ενός DW υπάρχουν και πολλές business-oriented αποφάσεις που θα πρέπει να πάρει κανείς, πέρα από τις τεχνικές. Μαθαίνοντας το τεχνικό κομμάτι, θα αποκτήσεις και την αίσθηση του σχετικού business κομματιού.
Ο τρίτος είναι τα MDX queries... Άουτς! Αν ο πελάτης αρχίσει να ζητάει περίεργα πράγματα, τότε έρχεται η ώρα των MDX statements τα οποία είναι για ένα DW, ότι η SQL για ένα RDBMS. Κατ' εμέ, ο πιο δύσκολος τομέας από τους τρεις...
Άντε, καλή αρχή!
Vir prudens non contra ventum mingit
|
|
-
14-10-2005, 09:38
|
-
axaros
-
-

-
Μέλος από τις 17-05-2005
-
Να μην σας νοιάζει αδιάκριτοι!!
-
Δημοσιεύσεις 842
-
-
|
Καλημέρα σε όλους !!! Σας ευχαριστώ για τις απαντήσεις. Έχω ξεκινήσει εδώ και κάποιο καιρό διάβασμα και προσπαθώ δειλά -δειλά να προσεγγίσω το "θηρίο".
KelMan wrote: | Βασικά, έχεις να εστιάσεις σε τρεις τομείς διαβάσματος. Ο πρώτος είναι το ETL process. Δηλαδή πως θα μαζέψεις όλα τα data σου από δεξιά-αριστερά (από τα transactional συστήματα που λες), πως θα τα μετασχηματίσεις και πως θα τα ρίξεις μέσα στο DW. Εδώ, αν παίζεις με τεχνολογίες Microsoft, μπορείς να ξεκινήσεις με DTS και (αν χρειαστεί) να καταλήξεις σε κάποιο εργαλείο τρίτου κατασκευαστή.
|
|
Μάνο έχεις κάποιες πηγές να προτείνεις για ETL Processes;
To The Data Warehouse ETL Toolkit: Practical Techniques for Extracting, Cleanin (Paperback)
- Paperback: 525 pages
- Publisher: John Wiley & Sons (September 13, 2004)
- Language: English
- ISBN: 0764567578
- Product Dimensions: 9.2 x 7.4 x 1.1 inches
του Kimball υποθέτω είναι μια καλή αρχή ;
Πάνος Αβραμίδης
|
|
-
15-10-2005, 11:07
|
-
-
25-10-2005, 11:39
|
|
Εξαρτάται τί θέλεις να φτιάξεις. Οι μεθοδολογίες του Kimball είναι κατάλληλες για οποιοδήποτε αυτόνομο έργο data warehouse. Αν μια εταιρεία θέλει να κρατάει τα δεδομένα της σε data warehouse για ανάλυση και ιστορικότητα, θα πρέπει να καταλάβεις τις διαδικασίες της εταιρείας, να προβλέψεις μηχανισμούς αλλαγών και να σκεφτείς πως θα τροποποιείται το σύστημα καθώς όλο και περισσότερα τμήματα της εταιρείας θα θέλουν να περάσουν τα στοιχεία τους στο data warehouse. Αν όμως θέλεις απλά να προσθέσεις γρήγορο reporting σε ένα δικό σου σύστημα δεν χρειάζεται να κάνεις τόση μελέτη, καθώς ξέρεις ήδη τους δείκτες και τις διαστάσεις που μπορεί να σου δώσει το σύστημά σου. Για παράδειγμα, αν φτιάχνεις ERP ή εφαρμογή αποθήκης ή πωλήσεων, έχεις προϊόντα, τεμάχια, πωλητές κλπ. Αν έχεις workflow, έχεις διαδικασίες, βήματα, αιτήσεις ή κείμενα, πόσο χρόνο πήρε το κάθε κομμάτι κλπ. Μετά, τραβάς τα στοιχεία και τα δείχνεις σε μια δική σου φόρμα ή στο Pivot table του Excel.
Όσο για σοβαρά έργα, υπάρχουν πάρα πολλά. Πριν τον SQL Server 7 κόστιζε πάρα πολύ να φτιάξεις ένα data warehouse, καθώς η Oracle και η DB2 το χρεώνανε έξτρα. Ο SQL Server 7 έφερε σχεδόν τσάμπα OLAP και πολλές εταιρείες μπήκανε στο χορό. Μιλάμε από το 1998 και μετά! Ειδικά με την άνοδο του χρηματιστηρίου οι τράπεζες και οι χρηματιστηριακές έτρεχαν να δημιουργήσουν data warehouse. Θα υπέθετα ότι και κάθε αντιπροσωπεία ή μεγάλη εμπορική εταιρεία έχει στήσει ένα. Αν σου πω συγκεκριμμένη εταιρεία τώρα, ο Αδμίν θα μου πει ότι κάνω διαφήμιση, αλλά δες ποια εταιρεία είναι Gold Partner της Microsoft στην Ελλάδα για Business Intelligence. Όσο για εφαρμογές που ενσωματώνουν data warehouses, τα δύο πιο γνωστά παραδείγματα για εμάς τους προγραμματιστές είναι το Visual Studio Team System και ο Microsoft Operations Manager. Τα στατιστικά που μαζεύουν τα γράφουν σε data warehouse. Από αυτό μετά κάνουν monitoring των δεικτών, δημιουργούν τα reports, στέλνουν alerts κλπ.
Όσο για εργαλεία, θα βρεις κυρίως reporting εργαλεία τα οποία θα διαβάσουν δεδομένα από ένα data warehouse. Επίσης, υπάρχουν κάποια accelerators που έχει βγάλει η Microsoft κατά καιρούς με πρότυπα warehouses για συγκεκριμμένους τομείς. Δεν θα βρεις όμως εργαλεία που θα σου φτιάξουν εύκολα ένα γενικό data warehouse. Είναι σα να ζητάς εργαλείο για βάσεις δεδομένων. Ένα schema κονσέρβα δεν μπορεί ποτέ να σε καλύψει, αλλά βοηθάει για να ξεκινήσεις. Τώρα για ETL, το DTS του 2000 είναι αρκετά καλό για αρχή και πολύ γρήγορο στο φόρτωμα των δεδομένων. Σε γενικές γραμμές όμως, θα το χρησιμοποιήσεις για να φορτώσεις τα δεδομένα σε προσωρινούς πίνακες και μετά θα εκτελέσεις stored procedures για να καθαρίσεις τα δεδομένα και να τα περάσεις στο data warehouse. Μπορείς να χρησιμοποιήσεις VBScript για να φτιάξεις δικά σου βήματα στη διαδικασία, αλλά έχει τους περιορισμούς της. Στον SQL Server 2005 τα πράγματα έχουν αλλάξει πολύ σε σχέση με τον 2000 και είναι πλέον πολύ ευκολότερο να σχεδιάσεις ένα data warehouse. Το καθάρισμα και η τροποποίηση των δεδομένων μπορεί να γίνει κατά τη διάρκεια του φορτώματος. Επιπλέον έχεις διαθέσιμους νέες δυνατότητες, πχ. fuzzy lookup, fuzzy grouping για να ομαδοποιήσεις τα δεδομένα βάση ονόματος, ή να ταιριάξεις ένα όνομα που έχει γραφτεί λάθος. Μπορείς επίσης να έχεις πολλές ιεραρχίες πάνω σε μια διάσταση, απλοποιώντας πολύ το schema του data warehouse. Μπορείς δηλαδή να έχεις γεωγραφική ιεραρχεία ανά διαμέρισμα/νομό/δήμο, ή διαμέρισμα/νομό. Και το καλύτερο? Αντί για VBscript, μπορείς πλέον να χρησιμοποιήσεις οποιαδήποτε γλώσσα .NET. Σύντομα μάλιστα ο Kimball θα βγάλει και ένα βιβλίο πως να χρησιμοποιήσεις τις δυνατότητες του 2005 για να φτιάξεις data warehouse.
Παναγιώτης Καναβός, Freelancer Twitter: http://www.twitter.com/pkanavos
|
|
-
25-10-2005, 12:09
|
-
axaros
-
-

-
Μέλος από τις 17-05-2005
-
Να μην σας νοιάζει αδιάκριτοι!!
-
Δημοσιεύσεις 842
-
-
|
pkanavos wrote: | Στον SQL Server 2005 τα πράγματα έχουν αλλάξει πολύ σε σχέση με τον 2000 και είναι πλέον πολύ ευκολότερο να σχεδιάσεις ένα data warehouse. Το καθάρισμα και η τροποποίηση των δεδομένων μπορεί να γίνει κατά τη διάρκεια του φορτώματος. Επιπλέον έχεις διαθέσιμους νέες δυνατότητες, πχ. fuzzy lookup, fuzzy grouping για να ομαδοποιήσεις τα δεδομένα βάση ονόματος, ή να ταιριάξεις ένα όνομα που έχει γραφτεί λάθος. Μπορείς επίσης να έχεις πολλές ιεραρχίες πάνω σε μια διάσταση, απλοποιώντας πολύ το schema του data warehouse. Μπορείς δηλαδή να έχεις γεωγραφική ιεραρχεία ανά διαμέρισμα/νομό/δήμο, ή διαμέρισμα/νομό. Και το καλύτερο? Αντί για VBscript, μπορείς πλέον να χρησιμοποιήσεις οποιαδήποτε γλώσσα .NET. Σύντομα μάλιστα ο Kimball θα βγάλει και ένα βιβλίο πως να χρησιμοποιήσεις τις δυνατότητες του 2005 για να φτιάξεις data warehouse. |
|
Πάνο σε ευχαριστώ !!
Κάποια keywords : fuzzy lookup, fuzzy grouping
Τ'ν τούτο ;
Πάνος Αβραμίδης
|
|
-
-
25-10-2005, 13:04
|
|
axaros wrote: |
Κάποια keywords : fuzzy lookup, fuzzy grouping
Τ'ν τούτο ;
|
|
Tο Fuzzy Lookup ψάχνει να βρει σε ποιά εγγραφή αντιστοιχεί ένα string κατά προσέγγιση. Έτσι μπορείς να αντιστοιχίσεις ονόματα που γράφτηκαν λάθος ή με διαφορετικό τρόπο σε μια εγγραφή που ήδη υπάρχει. Αν για παράδειγμα έχεις μια εγγραφή πελάτη "Φώντας Λαδοπρακόπουλος" και στη βάση σου αναφέρεται σαν "Φώντας Δ. Λαδοπρακόπουλος" ή "Φ. Λαδοπρακόπουλος", θα τα ταιριάξει και θα σου επιστρέψει και μια εκτίμηση, πχ. 0,95 για το πρώτο, 0.80 για το δεύτερο. Με αντίστοιχο τρόπο, το Fuzzy Grouping ομαδοποιεί εγγραφές που μοιάζουν κατά προσέγγιση μεταξύ τους. Αν χρειάζονται πιο εξελιγμένα ταιριάσματα, μπορείς να χρησιμοποιήσεις ακόμα και τα μοντέλα data mining που υποστηρίζει ο 2005 για να τις κάνεις. Αχ, τα μεγαλεία του .ΝΕΤ!
Αχ, αν χρησιμοποιούσε αυτό τον αλγόριθμο η Microsoft για να σταματήσουν να μου έρχονται 2-3 φορές τα ίδια email!
Παναγιώτης Καναβός, Freelancer Twitter: http://www.twitter.com/pkanavos
|
|
-
-
23-12-2005, 14:07
|
-
KelMan
-
-
-
Μέλος από τις 03-11-2004
-
Planet Earth
-
Δημοσιεύσεις 2.851
-
-
|
Είναι, κάπως γενική η ερώτηση που κάνεις...
Που είναι το data source και που το destination; Ποιό είναι το περιβάλλον πάλι στις δύο άκρες; Πως συνδέονται;
Αυτό είναι τυπικά το πρώτο στάδιο του ETL, το λεγόμενο Extract. Τα data μπορεί να είναι από flatfiles, από COBOLoσυστήματα, από άλλα RDBMS, από excel files, κοκ. To destination τυπικά πάλι, θα μπορούσε να είναι μια βάση στον SQL Server, ωστόσο ανάλογα την αρχιτεκτονική του ευρύτερου συστήματος μπορεί σε πρώτη φάση απλά να φέρνεις τα data τοπικά με διαδικασίες άσχετες με το ETL εργαλείο (μe scripting, κλπ) και κατόπιν να τα κάνεις feed (π.χ. με DTS ή SSIS ή thrid party tool) στην περίπτωση που δεν μπορεί ο ETL μηχανισμός να βγει εκτός της περιμέτρου του δικτύου. Που ξέρεις, μπορεί να τα φέρνει άνθρωπος με DAT κάθε πρωί (μου έχει τύχει)
Από την άλλη μεριά, αν έχεις όλα τα data ήδη τοπικά, τότε μπορείς να τα τραβήξεις κατευθείαν από την πηγή, πχ να διαβάσεις τα log files από έναν web server για να ερμηνεύσεις την κίνηση ενός site, να διαβάσεις τα data από ένα ERP, κλπ.
Vir prudens non contra ventum mingit
|
|
-
23-12-2005, 15:06
|
-
23-12-2005, 16:37
|
|
Στην περίπτωση των off-line clients θα μπορούσες να χρησιμοποιήσεις το Internet API για να χρησιμοποιήσεις τις εκάστοτε local συνδέσεις για να βγεις Internet. Σαν συνέχεια μπορείς να έχεις είτε ένα ftp server που να σου βάζουν τα δεδομένα που χρειάζεσαι (αρχεία Access, Excel, CSV ότι σε βολεύει και στη συνέχεια DTS/SSIS) ή να στα κάνουν submit σε ένα web service που θα τα βάζει κατευθείαν και στον SQL Server που θα είναι το Data Warehouse.
Εκτός από Internet να πω εδώ ότι μπορείς να κάνεις και VPN over Internet και να μπαίνεις κατευθείαν στο τοπικό δίκτυο του Data Warehouse ή εναλλακτικά να έχεις ένα RAS server στο τοπικό δίκτυο και να συνδέονται στο τοπικό σου δίκτυο μέσω τηλεφώνου και όλα αυτά με ασφάλεια που θα παρέχει το Windows domain σου.
Θα πρέπει να αξιολογήσεις τι είναι καλύτερο για σένα. Πάντως βολεύει το VPN over Internet αν μιλάμε για μια κατάσταση του τύπου είναι διάσπαρτοι σε όλοι την Ελλάδα και τα υπεραστικά τηλέφωνα είναι πολύ ακριβά για αυτούς. Αν υποθέσουμε ότι όλοι είναι στην Αθήνα, και που να τους βρούμε Internet αφού δεν ξέρουν τι είναι και δεν το χρησιμοποιούν, θα ήταν προτιμότερη η λύση να παίρνουν τηλέφωνο τοπικά εσένα και μέσω του RAS server σου να γίνονται μέρος του δικτύου σου για λίγο όσο χρειάζεται για να αφήσουν τα απαραίτητα.
Από την άλλη μεριά αν οι clients είναι on-line με το Data Warehouse, τίποτα καλύτερο από DTS/SSIS να τα τραβάς απ' ευθείας από τον SQL server του κατά περίπτωση client.
George J.
|
|
Σελίδα 1 από 2 (17 εγγραφές)
1
|
|
|