Μοντελοποίηση διαστάσεων στην Αποθήκη Microsoft Fabric: Πίνακες φόρτωσης
Ισχύει για:✅ Τελικό σημείο ανάλυσης SQL και Αποθήκη στο Microsoft Fabric
Σημείωμα
Αυτό το άρθρο αποτελεί μέρος της σειράς άρθρων Μοντελοποίηση διαστάσεων . Αυτή η σειρά εστιάζει σε οδηγίες και βέλτιστες πρακτικές σχεδίασης που σχετίζονται με τη μοντελοποίηση διαστάσεων στο Microsoft Fabric Warehouse.
Αυτό το άρθρο σάς παρέχει οδηγίες και βέλτιστες πρακτικές για τη φόρτωση πινάκων διαστάσεων και δεδομένων σε ένα διαστατικό μοντέλο. Παρέχει πρακτικές οδηγίες για την Warehouse στο Microsoft Fabric, η οποία είναι μια εμπειρία που υποστηρίζει πολλές δυνατότητες T-SQL, όπως η δημιουργία πινάκων και η διαχείριση δεδομένων σε πίνακες. Επομένως, έχετε τον πλήρη έλεγχο της δημιουργίας πινάκων μοντέλων διαστάσεων και της φόρτωσής τους με δεδομένα.
Σημείωμα
Σε αυτό το άρθρο, ο όρος αποθήκη δεδομένων αναφέρεται σε μια εταιρική αποθήκη δεδομένων, η οποία παρέχει ολοκληρωμένη ενοποίηση κρίσιμων δεδομένων σε ολόκληρο τον οργανισμό. Αντίθετα, η μεμονωμένη αποθήκη όρων αναφέρεται σε μια Αποθήκη Fabric, η οποία είναι μια προσφορά σχεσιακής βάσης δεδομένων λογισμικού ως υπηρεσίας (SaaS), την οποία μπορείτε να χρησιμοποιήσετε για να υλοποιήσετε μια αποθήκη δεδομένων. Για λόγους σαφήνειας, σε αυτό το άρθρο το τελευταίο αναφέρεται ως Fabric Warehouse.
Φιλοδώρημα
Εάν δεν είστε ικανοποιημένοι με τη μοντελοποίηση διαστάσεων, εξετάστε αυτή τη σειρά άρθρων το πρώτο σας βήμα. Δεν προορίζεται για να παρέχει μια πλήρη συζήτηση σχετικά με τη σχεδίαση μοντελοποίησης διαστάσεων. Για περισσότερες πληροφορίες, ανατρέξτε απευθείας σε ευρέως δημοσιευμένο περιεχόμενο, όπως το Κιτ εργαλείων αποθήκης δεδομένων: Ο απόλυτος οδηγός για τη μοντελοποίηση διαστάσεων (3η έκδοση, 2013) του Ralph Kimball και άλλους.
Φόρτωση διαστατικού μοντέλου
Η φόρτωση ενός διαστατικού μοντέλου περιλαμβάνει την περιοδική εκτέλεση μιας διαδικασίας Εξαγωγής, Μετασχηματισμού και Φόρτωσης (ETL). Μια διαδικασία ETL ενορχηστρώνει την εκτέλεση άλλων διαδικασιών, οι οποίες γενικά αφορούν τα δεδομένα προέλευσης προεργασίας, τον συγχρονισμό δεδομένων διάστασης, την εισαγωγή γραμμών σε πίνακες δεδομένων και την καταγραφή δεδομένων ελέγχου και σφαλμάτων.
Για μια λύση Fabric Warehouse, μπορείτε να χρησιμοποιήσετε το Data Factory για να αναπτύξετε και να εκτελέσετε τη διαδικασία ETL. Η διαδικασία μπορεί να σκηνοθετεί, να μετασχηματίζει και να φορτώνει δεδομένα προέλευσης στους πίνακες του μοντέλου διαστάσεων.
Συγκεκριμένα, μπορείτε να κάνετε τα εξής:
- Χρησιμοποιήστε διοχετεύσεις δεδομένων για να δημιουργήσετε ροές εργασιών για την ενορχήστρωση της διαδικασίας ETL. Οι διοχετεύσεις δεδομένων μπορούν να εκτελέσουν δέσμες ενεργειών SQL, αποθηκευμένες διαδικασίες και πολλά άλλα.
- Χρησιμοποιήστε ροές δεδομένων για την ανάπτυξη λογικής χαμηλού κώδικα για την πρόσληψη δεδομένων από εκατοντάδες προελεύσεις δεδομένων. Οι ροές δεδομένων υποστηρίζουν τον συνδυασμό δεδομένων από πολλές προελεύσεις, τον μετασχηματισμό δεδομένων και, στη συνέχεια, τη φόρτωση τους σε έναν προορισμό, όπως έναν πίνακα μοντέλων διαστάσεων. Οι ροές δεδομένων δημιουργούνται χρησιμοποιώντας την οικεία εμπειρία Power Query που είναι διαθέσιμη σήμερα σε πολλά προϊόντα της Microsoft, συμπεριλαμβανομένου του Microsoft Excel και του Power BI Desktop.
Σημείωμα
Η ανάπτυξη ETL μπορεί να είναι σύνθετη και η ανάπτυξη μπορεί να είναι δύσκολη. Εκτιμάται ότι το 60-80 τοις εκατό μιας προσπάθειας ανάπτυξης αποθήκης δεδομένων είναι αποκλειστικά για τη διαδικασία ETL.
Ενορχήστρωση
Η γενική ροή εργασιών μιας διαδικασίας ETL είναι η εξής:
- Προαιρετικά, φορτώστε πίνακες προεργασίας.
- Επεξεργασία πινάκων διαστάσεων.
- Επεξεργασία πινάκων δεδομένων.
- Προαιρετικά, εκτελέστε εργασίες μετά την επεξεργασία, όπως ενεργοποίηση της ανανέωσης εξαρτώμενου περιεχομένου Fabric (όπως ένα σημασιολογικό μοντέλο).
Οι πίνακες διαστάσεων θα πρέπει πρώτα να υποβληθούν σε επεξεργασία για να διασφαλιστεί ότι αποθηκεύουν όλα τα μέλη διάστασης, συμπεριλαμβανομένων εκείνων που προστίθενται στα συστήματα προέλευσης από την τελευταία διαδικασία ETL. Όταν υπάρχουν εξαρτήσεις μεταξύ διαστάσεων, όπως συμβαίνει με τις διαστάσεις εξωτερικού, θα πρέπει να γίνει επεξεργασία των πινάκων διαστάσεων με σειρά εξάρτησης. Για παράδειγμα, μια διάσταση γεωγραφικής τοποθεσίας που χρησιμοποιείται από μια διάσταση πελάτη και μια διάσταση προμηθευτή πρέπει να υποβληθεί σε επεξεργασία πριν από τις άλλες δύο διαστάσεις.
Η επεξεργασία των πινάκων δεδομένων είναι δυνατή όταν γίνεται επεξεργασία όλων των πινάκων διαστάσεων.
Κατά την επεξεργασία όλων των πινάκων μοντέλων διαστάσεων, μπορείτε να ενεργοποιήσετε την ανανέωση εξαρτώμενων σημασιολογικών μοντέλων. Είναι επίσης καλή ιδέα να στείλετε μια ειδοποίηση στο σχετικό προσωπικό για να τους ενημερώσετε για το αποτέλεσμα της διαδικασίας ETL.
Στάδιο δεδομένων
Τα δεδομένα προέλευσης προεργασίας μπορούν να βοηθήσουν στην υποστήριξη των απαιτήσεων φόρτωσης και μετασχηματισμού δεδομένων. Περιλαμβάνει την εξαγωγή δεδομένων συστήματος προέλευσης και τη φόρτωσή τους σε πίνακες προεργασίας, τους οποίους δημιουργείτε για να υποστηρίξετε τη διαδικασία ETL. Συνιστούμε να δημιουργείτε δεδομένα προέλευσης σταδίου καθώς μπορούν:
- Ελαχιστοποιήστε τις επιπτώσεις στα λειτουργικά συστήματα.
- Να χρησιμοποιείται για βοήθεια και βελτιστοποίηση της επεξεργασίας ETL.
- Δώστε τη δυνατότητα επανεκκίνησης της διαδικασίας ETL, χωρίς την ανάγκη επαναφόρτωσης δεδομένων από συστήματα προέλευσης.
Τα δεδομένα σε πίνακες προεργασίας δεν πρέπει ποτέ να διατίθενται στους χρήστες επιχειρήσεων. Αφορά μόνο τη διαδικασία ETL.
Σημείωμα
Όταν τα δεδομένα σας είναι αποθηκευμένα σε ένα Fabric Lakehouse, μπορεί να μην είναι απαραίτητο να κάνετε προετοιμασία των δεδομένων του στην αποθήκη δεδομένων. Εάν υλοποιεί μια αρχιτεκτονική μεταλλίων, μπορείτε να αντλήσετε τα δεδομένα της είτε από χάλκινο, ασημένιο ή χρυσό στρώμα.
Συνιστούμε να δημιουργήσετε ένα σχήμα στην αποθήκη, το οποίο πιθανώς ονομάζεται staging
. Οι πίνακες προεργασίας θα πρέπει να μοιάζουν όσο το δυνατόν πιο προσεκτικά με τους πίνακες προέλευσης όσον αφορά τα ονόματα στηλών και τους τύπους δεδομένων. Τα περιεχόμενα κάθε πίνακα πρέπει να καταργηθούν στην αρχή της διαδικασίας ETL.
TRUNCATE TABLE
υποστηρίζεται για αυτόν τον σκοπό.
Μπορείτε επίσης να εξετάσετε εναλλακτικές απεικόνισης δεδομένων ως μέρος της στρατηγικής προετοιμασίας σας. Μπορείτε να χρησιμοποιήσετε:
- Κατοπτρικό αντίγραφο, το οποίο είναι μια ολοκληρωμένη λύση χαμηλού κόστους και χαμηλού λανθάνοντος χρόνου που σας επιτρέπει να δημιουργήσετε μια αναπαραγωγή των δεδομένων σας στο OneLake. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Γιατί να χρησιμοποιήσετε το Mirroring στο Fabric;.
- Συντομεύσεις OneLake, οι οποίες δείχνουν σε άλλες θέσεις αποθήκευσης που μπορεί να περιέχουν τα δεδομένα προέλευσης. Οι συντομεύσεις μπορούν να χρησιμοποιηθούν ως πίνακες σε ερωτήματα T-SQL.
- PolyBase στον SQL Server, η οποία είναι μια δυνατότητα απεικόνισης δεδομένων για τον SQL Server. Το PolyBase επιτρέπει στα ερωτήματα T-SQL να ενώνουν δεδομένα από εξωτερικές προελεύσεις σε σχεσιακών πίνακες σε μια παρουσία του SQL Server.
- Απεικόνιση δεδομένων με διαχειριζόμενη παρουσία Azure SQL, η οποία σας επιτρέπει να εκτελείτε ερωτήματα T-SQL σε αρχεία που αποθηκεύουν δεδομένα σε κοινές μορφές δεδομένων στο Azure Data Lake Storage (ADLS) Gen2 ή χώρο αποθήκευσης αντικειμένων blob Azure και να τα συνδυάσετε με τοπικά αποθηκευμένα σχεσιακά δεδομένα χρησιμοποιώντας συνδέσμους.
Μετασχηματισμός δεδομένων
Η δομή των δεδομένων προέλευσής σας μπορεί να μην μοιάζει με τις δομές προορισμού των πινάκων μοντέλων διαστάσεων. Επομένως, η διαδικασία ETL πρέπει να αναδιαμορφώσει τα δεδομένα προέλευσης για να συμβαδίζει με τη δομή των πινάκων μοντέλων διαστάσεων.
Επίσης, η αποθήκη δεδομένων πρέπει να παρέχει καθαρισμένο και συμβατά δεδομένα, επομένως, τα δεδομένα προέλευσης μπορεί να χρειαστεί να μετασχηματιστούν για να εξασφαλιστεί η ποιότητα και η συνέπεια.
Σημείωμα
Η έννοια της κάδου απορριμμάτων, η κάδος απορριμμάτων ισχύει σίγουρα για την αποθήκευση δεδομένων, επομένως, αποφύγετε τη φόρτωση δεδομένων απορριφθέντων στοιχείων (χαμηλής ποιότητας) στους πίνακες μοντέλων διαστάσεων.
Ακολουθούν ορισμένοι μετασχηματισμοί που θα μπορούσε να εκτελέσει η διαδικασία ETL.
- Συνδυασμός δεδομένων: Δεδομένα από διαφορετικές προελεύσεις μπορούν να ενοποιηθούν (συγχωνευθούν) με βάση αντίστοιχα κλειδιά. Για παράδειγμα, τα δεδομένα προϊόντων αποθηκεύονται σε διαφορετικά συστήματα (όπως κατασκευή και μάρκετινγκ), ωστόσο όλα χρησιμοποιούν μια κοινή μονάδα φύλαξης στοκ (SKU). Τα δεδομένα μπορούν επίσης να προσαρτηθούν όταν μοιράζονται μια κοινή δομή. Για παράδειγμα, τα δεδομένα πωλήσεων αποθηκεύονται σε πολλά συστήματα. Μια ένωση των πωλήσεων από κάθε σύστημα μπορεί να παράγει ένα υπερσύνολο όλων των δεδομένων πωλήσεων.
- Μετατροπή τύπων δεδομένων: Οι τύποι δεδομένων μπορούν να μετατραπούν σε εκείνους που ορίζονται στους πίνακες μοντέλων διαστάσεων.
- Υπολογισμοί: Μπορούν να γίνουν υπολογισμοί για την παραγωγή τιμών για τους πίνακες μοντέλων διαστάσεων. Για παράδειγμα, για έναν πίνακα διαστάσεων υπαλλήλων, μπορείτε να συνενώσετε το όνομα και το επώνυμο για να δημιουργήσετε το πλήρες όνομα. Σε ένα άλλο παράδειγμα, για τον πίνακα δεδομένων πωλήσεών σας, μπορείτε να υπολογίσετε μικτά έσοδα πωλήσεων, που είναι το προϊόν τιμής μονάδας και ποσότητας.
- Εντοπισμός και διαχείριση αλλαγών ιστορικού: Η αλλαγή μπορεί να εντοπιστεί και αποθηκευτεί κατάλληλα σε πίνακες διαστάσεων. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Διαχείριση αλλαγών ιστορικού παρακάτω σε αυτό το άρθρο.
- Συγκεντρωτικά δεδομένα: Η συνάθροιση μπορεί να χρησιμοποιηθεί για τη μείωση της διαστατικότητας του πίνακα δεδομένων ή/και για την αύξηση της υποδιαίρεσης των δεδομένων. Για παράδειγμα, ο πίνακας στοιχείων πωλήσεων δεν χρειάζεται να αποθηκεύει αριθμούς παραγγελιών πωλήσεων. Επομένως, ένα συγκεντρωτικό αποτέλεσμα που ομαδοποιεί από όλα τα κλειδιά διαστάσεων μπορεί να χρησιμοποιηθεί για την αποθήκευση των δεδομένων του πίνακα δεδομένων.
Φόρτωση δεδομένων
Μπορείτε να φορτώσετε πίνακες σε μια Αποθήκη Fabric χρησιμοποιώντας τις ακόλουθες επιλογές πρόσληψης δεδομένων.
- ΑΝΤΙΓΡΑΦΗ ΣΤΟ (T-SQL): Αυτή η επιλογή είναι χρήσιμη όταν τα δεδομένα προέλευσης περιλαμβάνουν αρχεία Parquet ή CSV αποθηκευμένα σε έναν εξωτερικό λογαριασμό χώρου αποθήκευσης Azure, όπως το ADLS Gen2 ή τον Χώρο αποθήκευσης αντικειμένων Blob Azure.
- Διοχετεύσεις δεδομένων: Εκτός από την ενορχήστρωση της διαδικασίας ETL, οι διοχετεύσεις δεδομένων μπορούν να περιλαμβάνουν δραστηριότητες που εκτελούν προτάσεις T-SQL, εκτελούν αναζητήσεις ή αντιγράφουν δεδομένα από μια προέλευση δεδομένων σε έναν προορισμό.
- Ροές δεδομένων: Ως εναλλακτική στις διοχετεύσεις δεδομένων, οι ροές δεδομένων παρέχουν μια εμπειρία χωρίς κώδικα για τον μετασχηματισμό και την εκκαθάριση δεδομένων.
-
Πρόσληψη μεταξύ αποθηκών: Όταν τα δεδομένα αποθηκεύονται στον ίδιο χώρο εργασίας, η πρόσληψη μεταξύ αποθηκών μεταξύ αποθηκών επιτρέπει τη σύνδεση διαφορετικών πινάκων αποθηκών ή λιμνών. Υποστηρίζει εντολές T-SQL όπως
INSERT…SELECT
,SELECT INTO
καιCREATE TABLE AS SELECT (CTAS)
. Αυτές οι εντολές είναι ιδιαίτερα χρήσιμες όταν θέλετε να μετασχηματίζετε και να φορτώνετε δεδομένα από πίνακες προεργασίας εντός του ίδιου χώρου εργασίας. Είναι επίσης λειτουργίες που βασίζονται σε ορισμό, οι οποίες είναι πιθανό να είναι ο πιο αποτελεσματικός και ταχύτερος τρόπος φόρτωσης πινάκων μοντέλων διαστάσεων.
Φιλοδώρημα
Για μια πλήρη επεξήγηση αυτών των επιλογών πρόσληψης δεδομένων, συμπεριλαμβανομένων των βέλτιστων πρακτικών, ανατρέξτε στο θέμα Πρόσληψη δεδομένων στην Αποθήκη.
Γίνεται σύνδεση
Οι διαδικασίες ETL συνήθως απαιτούν αποκλειστική παρακολούθηση και συντήρηση. Για αυτούς τους λόγους, συνιστούμε να καταγράψετε τα αποτελέσματα της διαδικασίας ETL σε μη διαστατικούς πίνακες μοντέλων στην αποθήκη σας. Θα πρέπει να δημιουργήσετε ένα μοναδικό αναγνωριστικό για κάθε διαδικασία ETL και να το χρησιμοποιήσετε για να καταγράψετε λεπτομέρειες σχετικά με κάθε λειτουργία.
Εξετάστε το ενδεχόμενο καταγραφής:
-
Η διαδικασία ETL:
- Ένα μοναδικό αναγνωριστικό για κάθε εκτέλεση ETL
- Ώρα έναρξης και ώρα λήξης
- Κατάσταση (επιτυχία ή αποτυχία)
- Τυχόν σφάλματα που παρουσιάστηκαν
-
Κάθε πίνακας προεργασίας και μοντέλου διαστάσεων:
- Ώρα έναρξης και ώρα λήξης
- Κατάσταση (επιτυχία ή αποτυχία)
- Γραμμές που έχουν εισαχθεί, ενημερωθεί και διαγραφεί
- Πλήθος τελικών γραμμών πίνακα
- Τυχόν σφάλματα που παρουσιάστηκαν
-
Άλλες λειτουργίες:
- Ώρα έναρξης και ώρα λήξης των λειτουργιών ανανέωσης σημασιολογικού μοντέλου
Φιλοδώρημα
Μπορείτε να δημιουργήσετε ένα σημασιολογικό μοντέλο που είναι αποκλειστικό στην παρακολούθηση και ανάλυση των διαδικασιών ETL. Οι διάρκειες των διαδικασιών μπορούν να σας βοηθήσουν να εντοπίσετε συμφορήσεις που μπορεί να επωφεληθούν από τον έλεγχο και τη βελτιστοποίηση. Το πλήθος γραμμών μπορεί να σας επιτρέψει να κατανοήσετε το μέγεθος του επαυξητικού φόρτου κάθε φορά που εκτελείται το ETL, καθώς και να σας βοηθήσει να προβλέψετε το μελλοντικό μέγεθος της αποθήκης δεδομένων (και πότε να αυξήσετε τους εκχωρημένους πόρους Fabric, εάν χρειάζεται).
Επεξεργασία πινάκων διαστάσεων
Η επεξεργασία ενός πίνακα διαστάσεων περιλαμβάνει τον συγχρονισμό των δεδομένων αποθήκης δεδομένων με τα συστήματα προέλευσης. Τα δεδομένα προέλευσης μετασχηματίζονται και προετοιμάζονται για πρώτη φορά για φόρτωση στον πίνακα διαστάσεων. Στη συνέχεια, αυτά τα δεδομένα αντιστοιχίζονται με τα υπάρχοντα δεδομένα πίνακα διαστάσεων με τη σύνδεση στα κλειδιά επιχείρησης. Στη συνέχεια, είναι δυνατό να προσδιορίσετε εάν τα δεδομένα προέλευσης αντιπροσωπεύουν νέα ή τροποποιημένα δεδομένα. Όταν ο πίνακας διαστάσεων εφαρμόζει τον τύπο διάστασης (SCD) αργής αλλαγής 1, πραγματοποιούνται αλλαγές ενημερώνοντας τις υπάρχουσες γραμμές πίνακα διαστάσεων. Όταν ο πίνακας εφαρμόζει αλλαγές τύπου SCD 2, η υπάρχουσα έκδοση λήγει και εισάγεται μια νέα έκδοση.
Το παρακάτω διάγραμμα απεικονίζει τη λογική που χρησιμοποιείται για την επεξεργασία ενός πίνακα διαστάσεων.
Εξετάστε τη διαδικασία του πίνακα διαστάσεων Product
.
- Όταν προστίθενται νέα προϊόντα στο σύστημα προέλευσης, εισάγονται γραμμές στον
Product
πίνακα διαστάσεων. - Όταν τροποποιούνται προϊόντα, οι υπάρχουσες γραμμές στον πίνακα διαστάσεων είτε ενημερώνονται είτε εισάγονται.
- Όταν ισχύει SCD τύπος 1, πραγματοποιούνται ενημερώσεις στις υπάρχουσες γραμμές.
- Όταν ισχύει scd τύπος 2, πραγματοποιούνται ενημερώσεις για να λήξουν οι τρέχουσες εκδόσεις γραμμών και εισάγονται νέες γραμμές που αντιπροσωπεύουν την τρέχουσα έκδοση.
- Όταν εφαρμόζεται scd τύπος 3, πραγματοποιείται μια διαδικασία παρόμοια με τον τύπο SCD 1, ενημερώνοντας τις υπάρχουσες γραμμές χωρίς να εισάγονται νέες γραμμές.
Υποκατάστατα κλειδιά
Προτείνουμε κάθε πίνακας διαστάσεων να έχει ένα υποκατάστατο κλειδί, το οποίο θα πρέπει να χρησιμοποιεί τον μικρότερο πιθανό τύπο δεδομένων ακέραιου. Σε περιβάλλοντα που βασίζονται σε SQL Server που συνήθως γίνεται δημιουργώντας μια στήλη ταυτότητας, ωστόσο, αυτή η δυνατότητα δεν υποστηρίζεται στην Αποθήκη Fabric. Αντίθετα, θα χρειαστεί να χρησιμοποιήσετε μια τεχνική λύσης που δημιουργεί μοναδικά αναγνωριστικά.
Σημαντικό
Όταν ένας πίνακας διαστάσεων περιλαμβάνει αυτόματα δημιουργημένα υποκατάστατα κλειδιά, δεν θα πρέπει ποτέ να εκτελείτε μια περικομματοποίηση και πλήρη επαναφόρτωση. Αυτό συμβαίνει επειδή θα ακύρωνε τα δεδομένα που φορτώθηκαν σε πίνακες δεδομένων που χρησιμοποιούν τη διάσταση. Επίσης, εάν ο πίνακας διαστάσεων υποστηρίζει αλλαγές scd τύπου 2 , ενδέχεται να μην είναι δυνατή η δημιουργία εκ νέου των εκδόσεων ιστορικού.
Διαχείριση αλλαγής ιστορικού
Όταν ένας πίνακας διαστάσεων πρέπει να αποθηκεύει αλλαγές ιστορικού, θα χρειαστεί να υλοποιήσετε μια διάσταση αργής αλλαγής (SCD).
Σημείωμα
Εάν η γραμμή πίνακα διαστάσεων είναι ένα συναχθεί μέλος (που εισάγεται από μια διαδικασία φόρτωσης δεδομένων), θα πρέπει να αντιμετωπίσετε τυχόν αλλαγές ως λεπτομέρειες διάστασης καθυστερημένης άφιξης αντί για μια αλλαγή SCD. Σε αυτήν την περίπτωση, οποιαδήποτε τροποποιημένα χαρακτηριστικά θα πρέπει να ενημερωθούν και η σχετική στήλη σημαίας μέλους να οριστεί σε FALSE
.
Είναι πιθανό μια διάσταση να υποστηρίζει αλλαγές scd τύπου 1 ή/και SCD τύπου 2.
SCD τύπου 1
Όταν ανιχνεύονται αλλαγές scd τύπου 1 , χρησιμοποιήστε την ακόλουθη λογική.
- Ενημερώστε τυχόν τροποποιημένα χαρακτηριστικά.
- Εάν ο πίνακας περιλαμβάνει την ημερομηνία τελευταίας τροποποίησης και την τελευταία τροποποίηση από τις στήλες, ορίστε την τρέχουσα ημερομηνία και διεργασία που έκαναν τις τροποποιήσεις.
SCD τύπου 2
Όταν ανιχνεύονται αλλαγές τύπου SCD 2 , χρησιμοποιήστε την ακόλουθη λογική.
- Λήγει στην τρέχουσα έκδοση ρυθμίζοντας τη στήλη εγκυρότητας ημερομηνίας λήξης στην ημερομηνία επεξεργασίας ETL (ή μια κατάλληλη χρονική σήμανση στο σύστημα προέλευσης) και την τρέχουσα σημαία σε
FALSE
. - Εάν ο πίνακας περιλαμβάνει την ημερομηνία τελευταίας τροποποίησης και την τελευταία τροποποίηση από τις στήλες, ορίστε την τρέχουσα ημερομηνία και διεργασία που έκαναν τις τροποποιήσεις.
- Εισαγάγετε νέα μέλη στα οποία έχει οριστεί η στήλη εγκυρότητας ημερομηνίας έναρξης στην τιμή στήλης εγκυρότητας ημερομηνίας λήξης (που χρησιμοποιείται για την ενημέρωση της προηγούμενης έκδοσης) και έχει οριστεί η σημαία τρέχουσας έκδοσης σε
TRUE
. - Εάν ο πίνακας περιλαμβάνει την ημερομηνία δημιουργίας και τη δημιουργία του από στήλες, ορίστε την τρέχουσα ημερομηνία και διεργασία που πραγματοποίησε τις εισαγωγές.
SCD τύπου 3
Όταν ανιχνεύονται αλλαγές τύπου SCD 3 , ενημερώστε τα χαρακτηριστικά χρησιμοποιώντας παρόμοια λογική με την επεξεργασία SCD τύπου 1.
Διαγραφές μελών διάστασης
Να προσέχετε αν τα δεδομένα προέλευσης υποδεικνύουν ότι τα μέλη διάστασης έχουν διαγραφεί (είτε επειδή δεν ανακτώνται από το σύστημα προέλευσης είτε έχουν επισημανθεί ως διαγραμμένα). Δεν θα πρέπει να συγχρονίζετε διαγραφές με τον πίνακα διαστάσεων, εκτός εάν τα μέλη διάστασης δημιουργήθηκαν εσφαλμένα και δεν υπάρχουν εγγραφές δεδομένων που σχετίζονται με αυτές.
Ο κατάλληλος τρόπος για να χειριστείτε τις διαγραφές προέλευσης είναι να τις καταγράψετε ως προσωρινή διαγραφή. Μια προσωρινή διαγραφή επισημαίνει ένα μέλος διάστασης ως μη ενεργό ή έγκυρο πλέον. Για την υποστήριξη αυτής της περίπτωσης, ο πίνακας διαστάσεων θα πρέπει να περιλαμβάνει ένα δυαδικό χαρακτηριστικό με τύπο δεδομένων bit , όπως IsDeleted
. Ενημερώστε αυτήν τη στήλη για τυχόν διαγραμμένα μέλη διάστασης σε TRUE
(1). Η τρέχουσα, τελευταία έκδοση ενός μέλους διάστασης μπορεί να επισημανθεί με παρόμοιο τρόπο με μια δυαδική τιμή (bit) στις IsCurrent
στήλες ή IsActive
. Όλα τα ερωτήματα αναφοράς και τα σημασιολογικά μοντέλα Power BI θα πρέπει να φιλτράρουν τις εγγραφές που είναι απαλές διαγραφές.
Διάσταση ημερομηνίας
Οι διαστάσεις ημερολογίου και ώρας είναι ειδικές περιπτώσεις, επειδή συνήθως δεν έχουν δεδομένα προέλευσης. Αντί για αυτό, δημιουργούνται χρησιμοποιώντας σταθερή λογική.
Θα πρέπει να φορτώσετε τον πίνακα διαστάσεων ημερομηνίας στην αρχή κάθε νέου έτους για να επεκτείνετε τις γραμμές του σε έναν συγκεκριμένο αριθμό ετών μπροστά. Ενδέχεται να υπάρχουν και άλλα εταιρικά δεδομένα, για παράδειγμα δεδομένα οικονομικού έτους, αργιών, αριθμών εβδομάδων για τακτική ενημέρωση.
Όταν ο πίνακας διαστάσεων ημερομηνίας περιλαμβάνει χαρακτηριστικά σχετικής μετατόπισης, η διαδικασία ETL πρέπει να εκτελείται καθημερινά για την ενημέρωση των τιμών χαρακτηριστικών μετατόπισης με βάση την τρέχουσα ημερομηνία (σήμερα).
Συνιστούμε η λογική επέκτασης ή ενημέρωσης του πίνακα διαστάσεων ημερομηνίας να είναι γραμμένη σε T-SQL και να συμπυκνώνεται σε μια αποθηκευμένη διαδικασία.
Επεξεργασία πινάκων δεδομένων
Η επεξεργασία ενός πίνακα δεδομένων περιλαμβάνει τον συγχρονισμό των δεδομένων αποθήκης δεδομένων με τα δεδομένα του συστήματος προέλευσης. Τα δεδομένα προέλευσης μετασχηματίζονται και προετοιμάζονται αρχικά για φόρτωση στον πίνακα δεδομένων. Στη συνέχεια, για κάθε κλειδί διάστασης, μια αναζήτηση καθορίζει την τιμή υποκατάστατου κλειδιού που θα αποθηκευτεί στη γραμμή δεδομένων. Όταν μια διάσταση υποστηρίζει SCD τύπου 2, θα πρέπει να ανακτηθεί το υποκατάστατο κλειδί για την τρέχουσα έκδοση του μέλους διάστασης.
Σημείωμα
Συνήθως το υποκατάστατο κλειδί μπορεί να υπολογιστεί για τις διαστάσεις ημερομηνίας και ώρας καθώς πρέπει να χρησιμοποιήσουν YYYYMMDD
ή HHMM
να μορφοποιηθούν. Για περισσότερες πληροφορίες, ανατρέξτε στο Θέμα Ημερολόγιο και ώρα.
Εάν αποτύχει μια αναζήτηση κλειδιού διάστασης, μπορεί να υποδεικνύει ένα πρόβλημα ακεραιότητας με το σύστημα προέλευσης. Στην περίπτωση αυτή, η γραμμή δεδομένων πρέπει ακόμα να εισαχθεί στον πίνακα δεδομένων. Πρέπει ακόμα να αποθηκευτεί ένα έγκυρο κλειδί διάστασης. Μια προσέγγιση είναι η αποθήκευση ενός ειδικού μέλους διάστασης (όπως "Άγνωστο"). Αυτή η προσέγγιση απαιτεί μεταγενέστερη ενημέρωση για τη σωστή αντιστοίχιση της τιμής κλειδιού διαστάσεων true, όταν είναι γνωστή.
Σημαντικό
Επειδή η Fabric Warehouse δεν επιβάλλει εξωτερικά κλειδιά, είναι σημαντικό η διαδικασία ETL να ελέγχει για ακεραιότητα όταν φορτώνει δεδομένα σε πίνακες δεδομένων.
Μια άλλη προσέγγιση, σχετική όταν υπάρχει εμπιστοσύνη ότι το φυσικό κλειδί είναι έγκυρο, είναι η εισαγωγή ενός νέου μέλους διάστασης και, στη συνέχεια, η αποθήκευση της τιμής του υποκατάστατου κλειδιού. Για περισσότερες πληροφορίες, ανατρέξτε στην ενότητα Συνάγεται ότι μέλη διάστασης παρακάτω σε αυτή την ενότητα.
Το παρακάτω διάγραμμα απεικονίζει τη λογική που χρησιμοποιείται για την επεξεργασία ενός πίνακα δεδομένων.
Όποτε είναι δυνατό, ένας πίνακας δεδομένων θα πρέπει να φορτώνεται επαυξητικά, πράγμα που σημαίνει ότι εντοπίζονται και εισάγονται νέα δεδομένα. Μια στρατηγική επαυξητικής φόρτωσης είναι πιο κλιμακούμενη και μειώνει τον φόρτο εργασίας τόσο για τα συστήματα προέλευσης όσο και για τα συστήματα προορισμού.
Σημαντικό
Ειδικά για έναν μεγάλο πίνακα δεδομένων, θα πρέπει να είναι η έσχατη λύση για τον περικόπτοντα και την επαναφόρτωση ενός πίνακα δεδομένων. Αυτή η προσέγγιση είναι δαπανηρή όσον αφορά τον χρόνο διαδικασίας, τους υπολογιστικούς πόρους και την πιθανή διαταραχή των συστημάτων προέλευσης. Περιλαμβάνει επίσης την πολυπλοκότητα όταν οι διαστάσεις του πίνακα δεδομένων εφαρμόζουν SCD τύπου 2. Αυτό συμβαίνει επειδή οι αναζητήσεις κλειδιών διαστάσεων θα χρειαστεί να γίνουν εντός της περιόδου εγκυρότητας των εκδόσεων μελών διάστασης.
Ελπίζουμε ότι μπορείτε να εντοπίσετε αποτελεσματικά νέα δεδομένα βασιζόμενοι σε αναγνωριστικά συστήματος προέλευσης ή χρονικές σημάνσεις. Για παράδειγμα, όταν ένα σύστημα προέλευσης καταγράφει αξιόπιστα παραγγελίες πωλήσεων με τη σειρά, μπορείτε να αποθηκεύσετε τον πιο πρόσφατο αριθμό παραγγελίας πωλήσεων που ανακτήσατε (γνωστό ως υψηλό υδατογράφημα). Η επόμενη διαδικασία μπορεί να χρησιμοποιήσει αυτόν τον αριθμό παραγγελίας πωλήσεων για την ανάκτηση παραγγελιών πωλήσεων που μόλις δημιουργήθηκαν και, πάλι, να αποθηκεύσει τον πιο πρόσφατο αριθμό παραγγελίας πωλήσεων που ανακτήσατε για χρήση από την επόμενη διαδικασία. Μπορεί επίσης να είναι δυνατό να χρησιμοποιηθεί μια στήλη ημερομηνίας δημιουργίας για τον αξιόπιστο εντοπισμό νέων παραγγελιών.
Εάν δεν μπορείτε να βασιστείτε στα δεδομένα του συστήματος προέλευσης για να εντοπίσετε αποτελεσματικά νέα δεδομένα, ίσως μπορείτε να βασιστείτε σε μια δυνατότητα του συστήματος προέλευσης για την εκτέλεση ενός επαυξητικού φόρτου. Για παράδειγμα, ο SQL Server και η Διαχειριζόμενη παρουσία SQL Azure έχουν μια δυνατότητα που ονομάζεται καταγραφή δεδομένων αλλαγής (CDC), η οποία μπορεί να παρακολουθεί τις αλλαγές σε κάθε γραμμή ενός πίνακα. Επίσης, ο SQL Server, η Διαχειριζόμενη παρουσία SQL Azure και η Βάση δεδομένων SQL Azure διαθέτουν μια δυνατότητα που ονομάζεται παρακολούθηση αλλαγών, η οποία μπορεί να προσδιορίσει τις γραμμές που έχουν αλλάξει. Όταν ενεργοποιηθεί, μπορεί να σας βοηθήσει να εντοπίσετε αποτελεσματικά νέα ή τροποποιημένα δεδομένα σε οποιονδήποτε πίνακα βάσης δεδομένων. Μπορεί επίσης να μπορείτε να προσθέσετε εναύσματα σε σχεσιακόυς πίνακες που αποθηκεύουν κλειδιά εγγραφών πίνακα που έχουν εισαχθεί, ενημερωθεί ή διαγραφεί.
Τέλος, μπορεί να μπορείτε να συσχετίσετε τα δεδομένα προέλευσης με τον πίνακα δεδομένων χρησιμοποιώντας χαρακτηριστικά. Για παράδειγμα, ο αριθμός παραγγελίας πωλήσεων και ο αριθμός γραμμής παραγγελίας πωλήσεων. Ωστόσο, για μεγάλους πίνακες δεδομένων, θα μπορούσε να είναι μια πολύ δαπανηρή λειτουργία για τον εντοπισμό νέων, τροποποιημένων ή διαγραμμένων γεγονότων. Θα μπορούσε επίσης να είναι προβληματικό όταν το σύστημα προέλευσης αρχειοθετεί λειτουργικά δεδομένα.
Συνάγεται ότι μέλη διάστασης
Όταν μια διαδικασία φόρτωσης δεδομένων εισάγει ένα νέο μέλος διάστασης, είναι γνωστό ως συναχθεί μέλος. Για παράδειγμα, όταν ένας επισκέπτης ξενοδοχείου επικοινωνεί, του ζητείται να ενταχθεί στην αλυσίδα ξενοδοχείων ως μέλος αφοσίωσης. Ένας αριθμός μέλους εκδίδεται αμέσως, αλλά οι λεπτομέρειες του επισκέπτη μπορεί να μην ακολουθούν μέχρι τα χαρτιά να υποβληθούν από τον επισκέπτη (εάν ποτέ).
Το μόνο που είναι γνωστό για το μέλος διάστασης είναι το φυσικό του κλειδί. Η διαδικασία φόρτωσης δεδομένων πρέπει να δημιουργήσει ένα νέο μέλος διάστασης χρησιμοποιώντας τις τιμές άγνωστου χαρακτηριστικού. Το σημαντικό είναι ότι πρέπει να ορίσει το IsInferredMember
χαρακτηριστικό ελέγχου σε TRUE
. Με αυτόν τον τρόπο, όταν προέρχονται οι λεπτομέρειες καθυστερημένης άφιξης, η διαδικασία φόρτωσης διάστασης μπορεί να κάνει τις απαραίτητες ενημερώσεις στη γραμμή διαστάσεων. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Διαχείριση αλλαγών ιστορικού σε αυτό το άρθρο.
Ενημερώσεις ή διαγραφές δεδομένων
Μπορεί να χρειαστεί να ενημερώσετε ή να διαγράψετε δεδομένα στοιχείων. Για παράδειγμα, όταν μια παραγγελία πώλησης ακυρώνεται ή αλλάζει μια ποσότητα παραγγελίας. Όπως περιγράφηκε παραπάνω για τη φόρτωση πινάκων δεδομένων, πρέπει να εντοπίσετε αποτελεσματικά τις αλλαγές και να εκτελέσετε τις κατάλληλες τροποποιήσεις στα δεδομένα δεδομένων. Σε αυτό το παράδειγμα για την ακυρωμένη παραγγελία, η κατάσταση της παραγγελίας πώλησης πιθανότατα θα αλλάξει από Άνοιγμα σε Ακυρώθηκε. Αυτή η αλλαγή θα απαιτεί ενημέρωση των δεδομένων δεδομένων και όχι διαγραφή μιας γραμμής. Για την αλλαγή ποσότητας, θα χρειαστεί μια ενημέρωση της μέτρησης ποσότητας γραμμής δεδομένων. Αυτή η στρατηγική χρήσης μαλακών διαγραφών διατηρεί το ιστορικό. Μια προσωρινή διαγραφή επισημαίνει μια γραμμή ως δεν είναι πλέον ενεργή ή έγκυρη και όλα τα ερωτήματα αναφορών και τα σημασιολογικά μοντέλα Power BI θα πρέπει να φιλτράρουν τις εγγραφές που είναι soft deletes.
Όταν αναμένετε ενημερώσεις ή διαγραφές στοιχείων, θα πρέπει να συμπεριλάβετε χαρακτηριστικά (όπως έναν αριθμό παραγγελίας πωλήσεων και τον αριθμό γραμμής παραγγελίας πώλησης) στον πίνακα δεδομένων, για να προσδιορίσετε τις γραμμές στοιχείων που θα τροποποιηθούν. Βεβαιωθείτε ότι έχετε καταχωρήσει ευρετήριο σε αυτές τις στήλες για να υποστηρίξετε αποτελεσματικές λειτουργίες τροποποίησης.
Τέλος, εάν έχουν εισαχθεί δεδομένα χρησιμοποιώντας ένα ειδικό μέλος διάστασης (όπως Άγνωστο), θα χρειαστεί να εκτελέσετε μια περιοδική διαδικασία που ανακτά τα τρέχοντα δεδομένα προέλευσης για αυτές τις γραμμές στοιχείων και να ενημερώσετε τα κλειδιά διαστάσεων με έγκυρες τιμές.
Σχετικό περιεχόμενο
Για περισσότερες πληροφορίες σχετικά με τη φόρτωση δεδομένων σε μια Αποθήκη Fabric, ανατρέξτε στο θέμα: