Χρήση συναρτήσεων φίλτρων αντί για συναρτήσεις χρονικών σειρών

Αυτό το θέμα εξηγεί τη διαφορά μεταξύ των συναρτήσεων χρονικών σειρών και των συναρτήσεων φίλτρων και επίσης εξηγεί πώς να υλοποιήσετε τις συναρτήσεις φίλτρων. Αυτές οι πληροφορίες ισχύουν για τα βιβλία εργασίας και τα κλασικά dashboard.

Συναρτήσεις χρονικών σειρών έναντι συναρτήσεων φίλτρων

Οι συναρτήσεις χρονικών σειρών Ago και Todate προσφέρουν έναν απλό τρόπο να δημιουργήσετε δείκτες μέτρησης που υπολογίζουν year-ago, year-to-date, και ούτω καθεξής. Αυτή η μέθοδος λειτουργεί καλά για αναφορές επιχειρηματικών χρηστών, ωστόσο, αυτές οι συναρτήσεις δημιουργούν περίπλοκα ερωτήματα που επιβαρύνουν σημαντικά την απόδοση. Επίσης, κάθε φορά που χρησιμοποιείται μία από αυτές τις συναρτήσεις σε μια αναφορά, δημιουργείται ένα πρόσθετο υποερώτημα που χρησιμοποιεί ακόμα περισσότερους πόρους στη βάση δεδομένων.

Στα κλασικά dashboard, αντί να χρησιμοποιήσετε συναρτήσεις χρονικής σειράς, μπορείτε συνήθως να πετύχετε το ίδιο αποτέλεσμα χρησιμοποιώντας βασικά μέτρα με τη συνάρτηση Filter για να φιλτράρετε σύμφωνα με την κατάλληλη χρονική περίοδο. Αυτή η μέθοδος μπορεί να είναι πολύ περίπλοκη για αναφορές επιχειρηματικών χρηστών, αλλά λειτουργεί καλά σε dashboard που έχουν προκαθοριστεί από την ομάδα IT. Με τη χρήση αυτής της μεθόδου, ο κώδικας της φυσικής SQL που δημιουργείται είναι πολύ πιο απλός και πιο αποδοτικός, ενώ δεν απαιτεί κάποιο πρόσθετο υποερώτημα. Αυτό σημαίνει ότι το ερώτημα SQL εκτελείται ταχύτερα και χρησιμοποιεί λιγότερους πόρους στη βάση δεδομένων, μειώνοντας τη συνολική χρήση CPU και κλήσεων εισόδου-εξόδου για τη βάση δεδομένων.

Το ακόλουθο σχήμα απεικονίζει ένα παράδειγμα του φυσικού ερωτήματος που δημιουργείται όταν χρησιμοποιείτε τον βασικό δείκτη μέτρησης και τον δείκτη μέτρησης Ago ενός μήνα στην ίδια αναφορά. Δημιουργούνται δύο ερωτήματα.

Ακολουθεί η περιγραφή για GUID-37245A7E-00E9-4071-9627-1A5BAED91311-default.jpg
.jpg''

Το ακόλουθο σχήμα απεικονίζει τον κώδικα SQL που δημιουργείται για ένα μοναδικό ερώτημα όταν χρησιμοποιείτε αντί αυτού μια συνάρτηση Filter.

Ακολουθεί η περιγραφή για GUID-F1D33998-F8D4-40BF-B630-6EDCEF1DCEFC-default.jpg
.jpg''

Υλοποίηση συναρτήσεων φίλτρων σε dashboard με μηνύματα προτροπής

Στις περισσότερες υλοποιήσεις, το dashboard περιλαμβάνει ήδη ένα μήνυμα προτροπής ώστε οι χρήστες να μπορούν να επιλέξουν τον μήνα που αναζητούν. Το πρώτο βήμα είναι ο προσδιορισμός των χρονικών περιόδων που πρέπει να χρησιμοποιηθούν για φιλτράρισμα με βάση την επιλογή ενός χρήστη.

Σε αυτό το παράδειγμα, η διάσταση ημερολογίου περιλαμβάνει τη στήλη Αριθμός Ιουλιανού ημερολογίου, επειδή κάνει τον υπολογισμό πιο εύκολο. Η διαδικασία μπορεί να γίνει και χωρίς τη στήλη Julian Period Number αλλά θα απαιτούσε πολύ πιο περίπλοκους τύπους για τον υπολογισμό της επιλεγμένης χρονικής περιόδου.

  1. Τροποποιήστε το μήνυμα Μήνας για να προσθέσετε τη μεταβλητή παρουσίασης (MonthSelected).

    Ακολουθεί η περιγραφή για GUID-DEEBC7D1-806C-48E9-965C-6131745A65CE-default.png
    .png''

  2. Δημιουργήστε ένα ξεχωριστό μήνυμα dashboard για την ανάκτηση της αντίστοιχης τιμής Αριθμός Ιουλιανού ημερολογίου και τη χρήση της σε μια άλλη μεταβλητή (PeriodNumberSelected). Αυτό το δεύτερο μήνυμα δεν εμφανίζεται στον τελικό χρήστη, αντιθέτως είναι κρυφό στο dashboard και η τιμή υπολογίζεται αυτόματα με βάση τη μεταβλητή MonthSelected.

    Ακολουθεί η περιγραφή για GUID-D41AE43F-CD62-498D-B041-9700D586BF77-default.png
    .png''

  3. Επεξεργαστείτε τις ιδιότητες του dashboard και κάντε κλικ στην επιλογή Φίλτρα και μεταβλητές.
  4. Προσθέστε τη διαδρομή του μηνύματος Ιουλιανή περίοδος.

    Ακολουθεί η περιγραφή για GUID-E46E926E-F0A3-4934-9D10-F0119B9109DF-default.jpg
    .jpg''

  5. Στην ανάλυση, διαγράψτε το καθολικό φίλτρο στη στήλη Μήνας και χρησιμοποιήστε τις συναρτήσεις φίλτρου τύπων στήλης με βάση τον Αριθμό Ιουλιανής περιόδου, όπως απαιτείται. Ακολουθούν μερικά παραδείγματα:

    Current Month: Filter("Revenue Metrics"."Revenue" using "Time"."Julian Month Number"=@{PeriodNumberSelected}{80800})

    Month Ago: Filter("Revenue Metrics"."Revenue" using "Time"."Julian Month Number"=@{PeriodNumberSelected}{80800}-1)

    Year Ago: Filter("Revenue Metrics"."Revenue" using "Time"."Julian Month Number"=@{PeriodNumberSelected}{80800}-12)

    Year to date: Filter("Revenue Metrics"."Revenue" using "Time"."Julian Month Number"<=@{PeriodNumberSelected}{80800} and “Time”.”Year”=@{YearSelected}{2019})

Υλοποίηση συναρτήσεων φίλτρων σε βιβλίο εργασίας με παραμέτρους

Μπορείτε να εφαρμόσετε την ίδια αρχή σε ένα βιβλίο εργασίας. Τα μηνύματα και οι μεταβλητές παρουσίασης θα αντικατασταθούν από ένα φίλτρο dashboard και παραμέτρους.

Δημιουργήστε τρεις παραμέτρους: MonthSelected, PeriodNumberSelected και YearSelected. Μόνο η παράμετρος MonthSelected εμφανίζεται στον καμβά σε ένα φίλτρο dashboard.

Οι πιθανές τιμές για την παράμετρο MonthSelected ορίζονται με βάση ένα λογικό ερώτημα SQL που επιλέγει όλους τους μήνες.

Για τις παραμέτρους PeriodNumberSelected και YearSelected, οι πιθανές τιμές δεν συμπληρώνονται.Ακολουθεί η περιγραφή για GUID-B0D153C1-7DDF-445F-BF09-7E21EBECB88B-default.jpg
.jpg''

Μόνο η αρχική τιμή συμπληρώνεται με ένα λογικό ερώτημα που φιλτράρεται με βάση την τιμή της παραμέτρου MonthSelected.Ακολουθεί η περιγραφή για GUID-C21AC2BA-E3B8-43BC-A812-517A074DBFA2-default.jpg
.jpg''