Ανάγνωση από σημασιολογικά μοντέλα και εγγραφή δεδομένων που είναι αναλώσιμα από το Power BI με χρήση python
Σε αυτό το άρθρο, θα μάθετε πώς να διαβάζετε δεδομένα και μετα-δεδομένα και να αξιολογείτε μετρήσεις σε σημασιολογικά μοντέλα χρησιμοποιώντας τη βιβλιοθήκη python SemPy στο Microsoft Fabric. Θα μάθετε επίσης πώς να γράφετε δεδομένα που μπορούν να καταναλώσουν σημασιολογικά μοντέλα.
Προαπαιτούμενα στοιχεία
Λάβετε μια συνδρομή Microsoft Fabric. Εναλλακτικά, εγγραφείτε για μια δωρεάν δοκιμαστική έκδοση του Microsoft Fabric.
Εισέλθετε στο Microsoft Fabric.
Χρησιμοποιήστε την εναλλαγή εμπειρίας στην αριστερή πλευρά της αρχικής σελίδας σας για να μεταβείτε στην εμπειρία Synapse Data Science.
- Μεταβείτε στην εμπειρία επιστήμης δεδομένων στο Microsoft Fabric.
- Δημιουργήστε ένα νέο σημειωματάριο για αντιγραφή/επικόλληση κώδικα σε κελιά.
- Για το Spark 3.4 και νεότερες εκδόσεις, η Σύνδεση σημασιολογίας είναι διαθέσιμη στον προεπιλεγμένο χρόνο εκτέλεσης όταν χρησιμοποιείτε το Fabric και δεν χρειάζεται να την εγκαταστήσετε. Εάν χρησιμοποιείτε το Spark 3.3 ή παρακάτω ή εάν θέλετε να ενημερώσετε την πιο πρόσφατη έκδοση της Σημασιολογικής σύνδεσης, μπορείτε να εκτελέσετε την εντολή:
python %pip install -U semantic-link
- Προσθέστε ένα Lakehouse στο σημειωματάριό σας.
- Κάντε λήψη του σημασιολογικού μοντέλου Customer Profitability Sample.pbix από τον φάκελο συνόλων δεδομένων του αποθετηρίου δεδομένων fabric-samples και αποθηκεύστε τοπικά το σημασιολογικό μοντέλο.
Αποστολή του μοντέλου σημασιολογίας στον χώρο εργασίας σας
Σε αυτό το άρθρο, χρησιμοποιούμε το σημασιολογικό μοντέλο Customer Profitability Sample.pbix . Αυτό το σημασιολογικό μοντέλο αναφέρεται σε ένα υλικό μάρκετινγκ παραγωγής μιας εταιρείας και περιέχει δεδομένα σχετικά με προϊόντα, πελάτες και αντίστοιχα έσοδα για διάφορες επιχειρηματικές μονάδες.
- Ανοίξτε τον χώρο εργασίας σας στο Fabric Data Science.
- Επιλέξτε Αποστολή αναζήτησης και επιλέξτε το σημασιολογικό μοντέλο Δείγμα κερδοφορίας πελάτη.pbix>.
Όταν ολοκληρωθεί η αποστολή, ο χώρος εργασίας σας θα έχει τρία νέα τεχνουργήματα: μια αναφορά Power BI, έναν πίνακα εργαλείων και ένα σημασιολογικό μοντέλο με την ονομασία Δείγμα κερδοφορίας πελάτη. Θα χρησιμοποιήσετε αυτό το σημασιολογικό μοντέλο για τα βήματα σε αυτό το άρθρο.
Χρήση Python για την ανάγνωση δεδομένων από σημασιολογικά μοντέλα
Το SemPy Python API μπορεί να ανακτήσει δεδομένα και μετα-δεδομένα από σημασιολογικά μοντέλα που βρίσκονται σε έναν χώρο εργασίας Microsoft Fabric και να εκτελέσει ερωτήματα σε αυτά.
Το σημειωματάριο, το σημασιολογικό μοντέλο σας (σύνολο δεδομένων Power BI) και το Lakehouse μπορεί να βρίσκονται στον ίδιο χώρο εργασίας ή σε διαφορετικούς χώρους εργασίας. Από προεπιλογή, το SemPy προσπαθεί να αποκτήσει πρόσβαση στο σημασιολογικό μοντέλο σας από:
- τον χώρο εργασίας του Lakehouse, εάν έχετε συνδέσει ένα Lakehouse στο σημειωματάριό σας.
- τον χώρο εργασίας του σημειωματάριού σας, εάν δεν υπάρχει συνημμένο στο Lakehouse.
Εάν το σημασιολογικό μοντέλο σας δεν βρίσκεται στον προεπιλεγμένο χώρο εργασίας στον οποίο προσπαθεί να αποκτήσει πρόσβαση το SemPy, πρέπει να καθορίσετε τον χώρο εργασίας του μοντέλου σημασιολογίας όταν καλείτε μια μέθοδο SemPy.
Για την ανάγνωση δεδομένων από σημασιολογικά μοντέλα:
Παραθέστε τα διαθέσιμα σημασιολογικά μοντέλα στον χώρο εργασίας σας.
import sempy.fabric as fabric df_datasets = fabric.list_datasets() df_datasets
Παραθέστε τους διαθέσιμους πίνακες στο μοντέλο σημασιολογίας "Δείγμα κερδοφορίας πελάτη".
df_tables = fabric.list_tables("Customer Profitability Sample", include_columns=True) df_tables
Παρατίθενται οι μετρήσεις που ορίζονται στο σημασιολογικό μοντέλο "Δείγμα κερδοφορίας πελάτη".
Φιλοδώρημα
Στον ακόλουθο κώδικα, καθορίσαμε τον χώρο εργασίας για το SemPy για πρόσβαση στο μοντέλο σημασιολογίας. Μπορείτε να αντικαταστήσετε
Your Workspace
το με το όνομα του χώρου εργασίας όπου έχετε αποστείλει το μοντέλο σημασιολογίας (από την ενότητα Αποστολή του μοντέλου σημασιολογίας στον χώρο εργασίας σας).df_measures = fabric.list_measures("Customer Profitability Sample", workspace="Your Workspace") df_measures
Τώρα έχουμε διαπιστώσει ότι ο πίνακας Πελάτης είναι ο πίνακας ενδιαφέροντος.
Διαβάστε τον πίνακα Customer από το σημασιολογικό μοντέλο "Δείγμα κερδοφορίας πελάτη".
df_table = fabric.read_table("Customer Profitability Sample", "Customer") df_table
Σημείωμα
- Τα δεδομένα ανακτώνται με χρήση XMLA και επομένως απαιτείται να είναι ενεργοποιημένη τουλάχιστον XMLA μόνο για ανάγνωση.
- Η ποσότητα των δεδομένων που είναι ανακτήσιμα περιορίζεται από τη μέγιστη μνήμη ανά ερώτημα της SKU εκχωρημένων πόρων που φιλοξενεί το μοντέλο σημασιολογίας και από τον κόμβο προγράμματος οδήγησης Spark (ανατρέξτε στα μεγέθη κόμβων) που εκτελεί το σημειωματάριο.
- Όλες οι αιτήσεις χρησιμοποιούν χαμηλή προτεραιότητα για την ελαχιστοποίηση των επιπτώσεων στις επιδόσεις του Microsoft Υπηρεσίες Ανάλυσης του Azure και χρεώνονται ως αλληλεπιδραστικές αιτήσεις.
Αξιολογήστε τη μέτρηση Συνολικά έσοδα ανά κατάσταση και ημερομηνία πελάτη.
df_measure = fabric.evaluate_measure( "Customer Profitability Sample", "Total Revenue", ["'Customer'[State]", "Calendar[Date]"]) df_measure
Σημείωμα
- Από προεπιλογή, τα δεδομένα δεν ανακτώνται με χρήση XMLA και επομένως δεν απαιτείται η ενεργοποίηση μόνο για ανάγνωση XMLA.
- Επιπλέον, τα δεδομένα δεν υπόκεινται σε περιορισμούς παρασκηνίου του Power BI.
- Η ποσότητα των δεδομένων που είναι ανακτήσιμα περιορίζεται από τη μέγιστη μνήμη ανά ερώτημα της SKU εκχωρημένων πόρων που φιλοξενεί το μοντέλο σημασιολογίας και από τον κόμβο προγράμματος οδήγησης Spark (ανατρέξτε στα μεγέθη κόμβων) που εκτελεί το σημειωματάριο.
- Όλες οι αιτήσεις χρεώνονται ως αλληλεπιδραστικές αιτήσεις.
Μπορείτε να προσθέσετε φίλτρα στον υπολογισμό μέτρησης καθορίζοντας μια λίστα τιμών που μπορεί να βρίσκονται σε μια συγκεκριμένη στήλη.
filters = { "State[Region]": ["East", "Central"], "State[State]": ["FLORIDA", "NEW YORK"] } df_measure = fabric.evaluate_measure( "Customer Profitability Sample", "Total Revenue", ["Customer[State]", "Calendar[Date]"], filters=filters) df_measure
Μπορείτε επίσης να αξιολογήσετε τη μέτρηση Συνολικά έσοδα ανά κατάσταση και ημερομηνία του πελάτη χρησιμοποιώντας ένα ερώτημα DAX.
df_dax = fabric.evaluate_dax( "Customer Profitability Sample", """ EVALUATE SUMMARIZECOLUMNS( 'State'[Region], 'Calendar'[Date].[Year], 'Calendar'[Date].[Month], "Total Revenue", CALCULATE([Total Revenue])) """)
Σημείωμα
- Τα δεδομένα ανακτώνται με χρήση XMLA και επομένως απαιτείται να είναι ενεργοποιημένη τουλάχιστον XMLA μόνο για ανάγνωση.
- Η ποσότητα των δεδομένων που είναι ανακτήσιμα περιορίζεται από τη διαθέσιμη μνήμη στο Microsoft Υπηρεσίες Ανάλυσης του Azure και τον κόμβο προγράμματος οδήγησης Spark (ανατρέξτε στα μεγέθη κόμβων).
- Όλες οι αιτήσεις χρησιμοποιούν χαμηλή προτεραιότητα για την ελαχιστοποίηση των επιπτώσεων στην απόδοση των Υπηρεσιών ανάλυσης και χρεώνονται ως αλληλεπιδραστικές αιτήσεις.
Μπορείτε να αξιολογήσετε το ίδιο ερώτημα DAX χωρίς να χρειάζεται να εισαγάγετε τη βιβλιοθήκη, χρησιμοποιώντας το
%%dax
μαγικό κελί. Ας εκτελέσουμε το κελί από κάτω για να φορτώσουμε%%dax
τα μαγικά κύτταρα.%load_ext sempy
Η παράμετρος χώρου εργασίας είναι προαιρετική και ακολουθεί τους ίδιους κανόνες με την παράμετρο χώρου εργασίας της
evaluate_dax
συνάρτησης. Η μαγεία των κελιών υποστηρίζει επίσης την πρόσβαση σε μεταβλητές Python με χρήση της{variable_name}
σύνταξης. Για να χρησιμοποιήσετε μια άγκιστρο στο ερώτημα DAX, τοποθετήστε ένα άλλο άγκιστρο (π.χ.EVALUATE {{1}}
).%%dax "Customer Profitability Sample" -w "Your Workspace" EVALUATE SUMMARIZECOLUMNS( 'State'[Region], 'Calendar'[Date].[Year], 'Calendar'[Date].[Month], "Total Revenue", CALCULATE([Total Revenue]))
Το αρχείο FabricDataFrame που προκύπτει είναι διαθέσιμο μέσω της
_
μεταβλητής, η οποία καταγράφει την έξοδο του τελευταίου εκτελεσθέντος κελιού.df_dax = _ df_dax.head()
Εναλλακτικά, μπορείτε να προσθέσετε μετρήσεις σε δεδομένα που ανακτώνται από εξωτερικές προελεύσεις. Αυτή η προσέγγιση συνδυάζει τρεις εργασίες: επιλύει ονόματα στηλών σε διαστάσεις Power BI, ορίζει ομαδοποίηση κατά στήλες και φιλτράρει τη μέτρηση. Τυχόν ονόματα στηλών που δεν μπορούν να επιλυθούν εντός του συγκεκριμένου μοντέλου σημασιολογίας παραβλέπονται (ανατρέξτε στην υποστηριζόμενη σύνταξη DAX).
from sempy.fabric import FabricDataFrame df = FabricDataFrame({ "Sales Agent": ["Agent 1", "Agent 1", "Agent 2"], "Customer[Country/Region]": ["US", "GB", "US"], "Industry[Industry]": ["Services", "CPG", "Manufacturing"], } ) joined_df = df.add_measure("Total Revenue", dataset="Customer Profitability Sample") joined_df
Ειδικές παράμετροι
Το SemPy read_table
και evaluate_measure
οι μέθοδοι έχουν περισσότερες παραμέτρους που είναι χρήσιμες για τον χειρισμό της εξόδου. Αυτές οι παράμετροι περιλαμβάνουν:
fully_qualified_columns
: Εάν η τιμή είναι "True", οι μέθοδοι επιστρέφουν ονόματα στηλών στη φόρμαTableName[ColumnName]
.num_rows
: Ο αριθμός των γραμμών που θα προκύψουν στο αποτέλεσμα.pandas_convert_dtypes
: Εάν η τιμή είναι "True", οι στήλες του DataFrame που προκύπτουν ρίχνονται στο καλύτερο δυνατό dtype, χρησιμοποιώντας pandas convert_dtypes. Εάν αυτή η παράμετρος είναι απενεργοποιημένη, μπορεί να προκύψουν προβλήματα ασυμβατότητας τύπου μεταξύ στηλών σχετιζόμενων πινάκων που ενδέχεται να μην έχουν εντοπιστεί στο μοντέλο Power BI λόγω έμμεσης μετατροπής τύπου DAX.
Το SemPy read_table
χρησιμοποιεί επίσης τις πληροφορίες μοντέλου που παρέχονται από το Power BI.
multiindex_hierarchies
: Εάν είναι True, μετατρέπει τις Ιεραρχίες Power BI σε δομή Pandas MultiIndex.
Εγγραφή δεδομένων που είναι αναλώσιμα από σημασιολογικά μοντέλα
Οι πίνακες Spark που προστίθενται σε ένα Lakehouse προστίθενται αυτόματα στο αντίστοιχο προεπιλεγμένο μοντέλο σημασιολογίας. Αυτό το παράδειγμα παρουσιάζει τον τρόπο εγγραφής δεδομένων στο προσαρτημένο Lakehouse. Το FabricDataFrame δέχεται τα ίδια δεδομένα εισόδου με τα πλαίσια δεδομένων Pandas.
from sempy.fabric import FabricDataFrame
df_forecast = FabricDataFrame({'ForecastedRevenue': [1, 2, 3]})
df_forecast.to_lakehouse_table("ForecastTable")
Με τη χρήση του Power BI, ο πίνακας ForecastTable μπορεί να προστεθεί σε ένα σύνθετο μοντέλο σημασιολογίας χρησιμοποιώντας το σημασιολογικό μοντέλο Lakehouse.
Σχετικό περιεχόμενο
Σχόλια
https://aka.ms/ContentUserFeedback.
Σύντομα διαθέσιμα: Καθ' όλη τη διάρκεια του 2024 θα καταργήσουμε σταδιακά τα ζητήματα GitHub ως μηχανισμό ανάδρασης για το περιεχόμενο και θα το αντικαταστήσουμε με ένα νέο σύστημα ανάδρασης. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα:Υποβολή και προβολή σχολίων για