Σημείωση
Η πρόσβαση σε αυτή τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να συνδεθείτε ή να αλλάξετε καταλόγους.
Η πρόσβαση σε αυτή τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να αλλάξετε καταλόγους.
Αυτό το άρθρο δείχνει πώς μπορείτε να ρυθμίσετε έναν παράγοντα δεδομένων στο Microsoft Fabric χρησιμοποιώντας μια λίμνη ως παράδειγμα προέλευσης δεδομένων. Πρώτα δημιουργούμε και συμπληρώνουμε ένα lakehouse και, στη συνέχεια, δημιουργούμε έναν παράγοντα δεδομένων Fabric και προσθέτουμε το lakehouse σε αυτό. Εάν έχετε ήδη ένα σημασιολογικό μοντέλο Power BI (με τα απαραίτητα δικαιώματα ανάγνωσης/εγγραφής), μια αποθήκη, μια βάση δεδομένων KQL ή μια οντολογία, ακολουθήστε τα ίδια βήματα και επιλέξτε αυτήν την προέλευση. Παρόλο που αυτή η αναλυτική παρουσίαση χρησιμοποιεί ένα lakehouse, το μοτίβο είναι το ίδιο για άλλες προελεύσεις—μόνο η επιλογή προέλευσης δεδομένων διαφέρει.
Important
Αυτή η δυνατότητα είναι σε προεπισκόπηση.
Prerequisites
- Εκχωρημένοι πόροι F2 επί πληρωμή F2 ή υψηλότεροι Fabric ή Power BI Premium ανά εκχωρημένους πόρους (P1 ή υψηλότεροι) με ενεργοποιημένο το Microsoft Fabric
- Οι ρυθμίσεις μισθωτή του παράγοντα δεδομένων Fabric είναι ενεργοποιημένες.
- είναι ενεργοποιημένη η επεξεργασία Διασταυρούμενες γεωγραφικές περιφέρειες για τεχνητής νοημοσύνης.
- είναι ενεργοποιημένη η αποθήκευση Cross-geo για AI.
- Τουλάχιστον ένα από αυτά, με δεδομένα: Μια αποθήκη, μια λίμνη, ένα ή περισσότερα σημασιολογικά μοντέλα Power BI, μια βάση δεδομένων KQL ή μια οντολογία.
- σημασιολογικά μοντέλα Power BI μέσω εναλλαγής μισθωτή τελικών σημείων XMLA ενεργοποιείται για προελεύσεις δεδομένων μοντέλου σημασιολογίας Power BI.
Important
Βεβαιωθείτε ότι η αυτόνομη εμπειρία Copilot είναι ενεργοποιημένη στην πύλη διαχείρισης του Power BI (Ρυθμίσεις > μισθωτή Copilot > Αυτόνομη εμπειρία Copilot). Εάν δεν είναι ενεργοποιημένο, δεν θα μπορείτε να χρησιμοποιήσετε τον παράγοντα δεδομένων μέσα σε σενάρια Copilot, ακόμα κι αν είναι ενεργοποιημένοι άλλοι διακόπτες μισθωτή Copilot. Για λεπτομέρειες, ανατρέξτε στο θέμα Copilot στις ρυθμίσεις μισθωτή Power BI.
Δημιουργία lakehouse με AdventureWorksLH
Πρώτα, δημιουργήστε ένα lakehouse και συμπληρώστε το με τα απαραίτητα δεδομένα.
Εάν έχετε ήδη μια παρουσία της AdventureWorksLH σε ένα lakehouse (ή αποθήκη), μπορείτε να παραλείψετε αυτό το βήμα. Εάν όχι, μπορείτε να χρησιμοποιήσετε τις ακόλουθες οδηγίες από ένα σημειωματάριο Fabric για να συμπληρώσετε το lakehouse με τα δεδομένα.
Δημιουργήστε ένα νέο σημειωματάριο στον χώρο εργασίας όπου θέλετε να δημιουργήσετε τον παράγοντα δεδομένων Fabric σας.
Στην αριστερή πλευρά του παραθύρου της Εξερεύνησης , επιλέξτε + Προελεύσεις δεδομένων. Αυτή η επιλογή σάς επιτρέπει να προσθέσετε μια υπάρχουσα λίμνη ή δημιουργεί ένα νέο lakehouse. Για λόγους σαφήνειας, δημιουργήστε ένα νέο lakehouse και εκχωρήστε ένα όνομα σε αυτό.
Στο επάνω κελί, προσθέστε το ακόλουθο τμήμα κώδικα:
import pandas as pd from tqdm.auto import tqdm base = "https://synapseaisolutionsa.z13.web.core.windows.net/data/AdventureWorks" # load list of tables df_tables = pd.read_csv(f"{base}/adventureworks.csv", names=["table"]) for table in (pbar := tqdm(df_tables['table'].values)): pbar.set_description(f"Uploading {table} to lakehouse") # download df = pd.read_parquet(f"{base}/{table}.parquet") # save as lakehouse table spark.createDataFrame(df).write.mode('overwrite').saveAsTable(table)Επιλέξτε Εκτέλεση όλων.
Μετά από λίγα λεπτά, το lakehouse συμπληρώνεται με τα απαραίτητα δεδομένα.
Caution
Τα σημειωματάρια που συνεχίζουν να εκτελούνται (για παράδειγμα, λόγω τυχαίων άπειρων βρόχων ή συνεχούς σταθμοσκόπησης) μπορούν να καταναλώνουν εκχωρημένους πόρους Fabric επ' αόριστον. Αφού ολοκληρωθεί η φόρτωση των δεδομένων, διακόψτε τυχόν ενεργά κελιά και τερματίστε την περίοδο λειτουργίας του σημειωματαρίου (Γραμμή εργαλείων > σημειωματαρίου Διακοπή περιόδου λειτουργίας) εάν δεν τα χρειάζεστε πλέον. Αποφύγετε την προσθήκη βρόχων μεγάλης διάρκειας χωρίς χρονικό όριο.
Δημιουργία παράγοντα δεδομένων Fabric
Για να δημιουργήσετε έναν νέο παράγοντα δεδομένων Fabric, μεταβείτε στον χώρο εργασίας σας και επιλέξτε το κουμπί + Νέο στοιχείο, όπως φαίνεται σε αυτό το στιγμιότυπο οθόνης:
Στην καρτέλα Όλα τα στοιχεία, κάντε αναζήτηση για παράγοντα δεδομένων Fabric να εντοπίσετε την κατάλληλη επιλογή. Όταν επιλεγεί, μια προτροπή σας ζητά να δώσετε ένα όνομα για τον παράγοντα δεδομένων Fabric, όπως φαίνεται σε αυτό το στιγμιότυπο οθόνης:
Αφού εισαγάγετε το όνομα, ακολουθήστε τα παρακάτω βήματα για να στοιχίσετε τον παράγοντα δεδομένων Fabric με τις συγκεκριμένες απαιτήσεις σας.
Επιλογή των δεδομένων
Επιλέξτε το σπίτι λίμνης που δημιουργήσατε στο προηγούμενο βήμα και, στη συνέχεια, επιλέξτε Προσθήκη, όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης:
Μόλις προστεθεί το σπίτι της λίμνης ως προέλευση δεδομένων, το τμήμα παραθύρου Εξερεύνηση στην αριστερή πλευρά της σελίδας παράγοντα δεδομένων Fabric εμφανίζει το όνομα της λίμνης. Επιλέξτε τη λίμνη για να δείτε όλους τους διαθέσιμους πίνακες. Χρησιμοποιήστε τα πλαίσια ελέγχου για να επιλέξετε τους πίνακες που θέλετε να καταστήσετε διαθέσιμους στο AI. Για αυτό το σενάριο, επιλέξτε αυτούς τους πίνακες:
dimcustomerdimdatedimgeographydimproductdimproductcategorydimpromotiondimresellerdimsalesterritoryfactinternetsalesfactresellersales
Παροχή οδηγιών
Για να προσθέσετε οδηγίες, επιλέξτε το κουμπί Οδηγίες παράγοντα δεδομένων για να ανοίξετε το παράθυρο οδηγιών στα δεξιά. Μπορείτε να προσθέσετε τις παρακάτω οδηγίες.
Η AdventureWorksLH προέλευση δεδομένων περιέχει πληροφορίες από τρεις πίνακες:
-
dimcustomer, για λεπτομερή δημογραφικά στοιχεία πελατών και στοιχεία επικοινωνίας -
dimdate, για δεδομένα που σχετίζονται με ημερομηνίες - για παράδειγμα, ημερολογιακές και οικονομικές πληροφορίες -
dimgeography, για γεωγραφικές λεπτομέρειες, συμπεριλαμβανομένων των ονομάτων πόλεων και των κωδικών περιοχών.
Χρησιμοποιήστε αυτήν την προέλευση δεδομένων για ερωτήματα και αναλύσεις που αφορούν λεπτομέρειες πελατών, συμβάντα βάσει χρόνου και γεωγραφικές θέσεις.
Δώστε παραδείγματα
Για να προσθέσετε παραδείγματα ερωτημάτων, επιλέξτε το κουμπί Παραδείγματα ερωτημάτων για να ανοίξετε το παράθυρο παραδειγμάτων ερωτημάτων στα δεξιά. Αυτό το τμήμα παραθύρου παρέχει επιλογές για την προσθήκη ή επεξεργασία παραδειγμάτων ερωτημάτων για όλες τις υποστηριζόμενες προελεύσεις δεδομένων. Για κάθε προέλευση δεδομένων, μπορείτε να επιλέξετε Προσθήκη ή Επεξεργασία παραδειγμάτων ερωτημάτων για να εισαγάγετε τα σχετικά παραδείγματα, όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης:
Εδώ, θα πρέπει να προσθέσετε Παραδείγματα ερωτημάτων για την προέλευση δεδομένων lakehouse που δημιουργήσατε.
Question: Calculate the average percentage increase in sales amount for repeat purchases for every zipcode. Repeat purchase is a purchase subsequent to the first purchase (the average should always be computed relative to the first purchase)
SELECT AVG((s.SalesAmount - first_purchase.SalesAmount) / first_purchase.SalesAmount * 100) AS AvgPercentageIncrease
FROM factinternetsales s
INNER JOIN dimcustomer c ON s.CustomerKey = c.CustomerKey
INNER JOIN dimgeography g ON c.GeographyKey = g.GeographyKey
INNER JOIN (
SELECT *
FROM (
SELECT
CustomerKey,
SalesAmount,
OrderDate,
ROW_NUMBER() OVER (PARTITION BY CustomerKey ORDER BY OrderDate) AS RowNumber
FROM factinternetsales
) AS t
WHERE RowNumber = 1
) first_purchase ON s.CustomerKey = first_purchase.CustomerKey
WHERE s.OrderDate > first_purchase.OrderDate
GROUP BY g.PostalCode;
Question: Show the monthly total and year-to-date total sales. Order by year and month.
SELECT
Year,
Month,
MonthlySales,
SUM(MonthlySales) OVER (PARTITION BY Year ORDER BY Year, Month ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS CumulativeTotal
FROM (
SELECT
YEAR(OrderDate) AS Year,
MONTH(OrderDate) AS Month,
SUM(SalesAmount) AS MonthlySales
FROM factinternetsales
GROUP BY YEAR(OrderDate), MONTH(OrderDate)
) AS t
Note
Η προσθήκη δειγμάτων ζευγών ερωτημάτων/ερωτήσεων δεν υποστηρίζεται προς το παρόν για προελεύσεις δεδομένων σημασιολογικού μοντέλου Power BI.
Δοκιμή και αναθεώρηση του παράγοντα δεδομένων Fabric
Τώρα που ρυθμίσατε τον παράγοντα δεδομένων Fabric, προσθέσατε οδηγίες παράγοντα δεδομένων Fabric και δώσατε παραδείγματα ερωτημάτων για το lakehouse, μπορείτε να αλληλεπιδράσετε με αυτό κάνοντας ερωτήσεις και λαμβάνοντας απαντήσεις. Καθώς συνεχίζετε τις δοκιμές, μπορείτε να προσθέσετε περισσότερα παραδείγματα και να περιορίσετε τις οδηγίες, για να βελτιώσετε περαιτέρω τις επιδόσεις του παράγοντα δεδομένων Fabric. Συνεργαστείτε με τους συναδέλφους σας για να συγκεντρώσετε σχόλια και, με βάση τα σχόλιά τους, βεβαιωθείτε ότι τα παραδείγματα ερωτημάτων και οδηγιών που παρέχονται ευθυγραμμίζονται με τους τύπους ερωτήσεων που θέλουν να κάνουν.
Δημοσίευση του παράγοντα δεδομένων Fabric
Αφού επικυρώσετε την απόδοση του παράγοντα δεδομένων Fabric, μπορεί να αποφασίσετε να τον δημοσιεύσετε, ώστε να μπορείτε να τον μοιραστείτε με τους συναδέλφους σας που θέλουν να κάνουν τις Ερωτήσεις&Α μέσω δεδομένων. Σε αυτήν την περίπτωση, επιλέξτε Δημοσίευση, όπως φαίνεται σε αυτό το στιγμιότυπο οθόνης:
Ανοίγει το πλαίσιο παράγοντα δεδομένων Δημοσίευση, όπως φαίνεται σε αυτό το στιγμιότυπο οθόνης:
Σε αυτό το πλαίσιο, επιλέξτε Δημοσίευση για να δημοσιεύσετε τον παράγοντα δεδομένων Fabric. Εμφανίζεται η δημοσιευμένη διεύθυνση URL για τον παράγοντα δεδομένων Fabric, όπως φαίνεται σε αυτό το στιγμιότυπο οθόνης:
Χρήση του παράγοντα δεδομένων Fabric στο Copilot στο Power BI
Μπορείτε να χρησιμοποιήσετε το Copilot στο Power BI για να αλληλεπιδράσετε με τον παράγοντα δεδομένων Fabric μετά τη δημοσίευσή του. Με το Copilot στο Power BI, μπορείτε να καταναλώσετε απευθείας τον παράγοντα δεδομένων και άλλα στοιχεία (για παράδειγμα, αναφορές ή σημασιολογικά μοντέλα) χωρίς να χρειάζεται να κάνετε εναλλαγή μεταξύ τους.
Επιλέξτε το κουμπί Copilot στο αριστερό παράθυρο περιήγησης, για να ανοίξετε το Copilot στο Power BI. Στη συνέχεια, επιλέξτε Προσθήκη στοιχείων για καλύτερα αποτελέσματα στο πλαίσιο κειμένου στο κάτω μέρος, για να προσθέσετε τον παράγοντα δεδομένων. Επιλέξτε Παράγοντες δεδομένων στο παράθυρο που ανοίγει. Μπορείτε να δείτε μόνο τους παράγοντες δεδομένων στους οποίους έχετε δικαίωμα πρόσβασης. Επιλέξτε τον παράγοντα δεδομένων που θέλετε και επιλέξτε Επιβεβαίωση. Αυτό το παράδειγμα δείχνει πώς μπορείτε να εργαστείτε με έναν μοναδικό παράγοντα δεδομένων, αλλά μπορείτε να προσθέσετε περισσότερα στοιχεία - για παράδειγμα, άλλους παράγοντες δεδομένων, αναφορές ή σημασιολογικά μοντέλα. Το παρακάτω στιγμιότυπο οθόνης απεικονίζει τα βήματα με έναν μόνο παράγοντα δεδομένων:
Τώρα που προσθέσατε τον παράγοντα δεδομένων στο Copilot στο Power BI, μπορείτε να υποβάλετε οποιεσδήποτε ερωτήσεις σχετίζονται με τον παράγοντα δεδομένων Fabric, όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης:
Χρήση του παράγοντα δεδομένων Fabric μέσω προγραμματισμού
Μπορείτε να χρησιμοποιήσετε τον παράγοντα δεδομένων Fabric μέσω προγραμματισμού μέσα σε ένα σημειωματάριο Fabric. Για να προσδιορίσετε αν ο παράγοντας δεδομένων Fabric έχει δημοσιευμένη τιμή URL, επιλέξτε Ρυθμίσεις, όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης:
Πριν δημοσιεύσετε τον παράγοντα δεδομένων Fabric, δεν έχει δημοσιευμένη τιμή διεύθυνσης URL, όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης:
Εάν δεν έχετε δημοσιεύσει τον παράγοντα δεδομένων Fabric στο παρελθόν, μπορείτε να τον δημοσιεύσετε ακολουθώντας τις οδηγίες στα προηγούμενα βήματα. Στη συνέχεια, μπορείτε να αντιγράψετε τη δημοσιευμένη διεύθυνση URL και να τη χρησιμοποιήσετε στο σημειωματάριο Fabric. Με αυτόν τον τρόπο, μπορείτε να υποβάλετε ερώτημα στον παράγοντα δεδομένων Fabric πραγματοποιώντας κλήσεις στο API παράγοντα δεδομένων Fabric σε ένα σημειωματάριο Fabric. Επικολλήστε τη διεύθυνση URL που αντιγράψατε σε αυτό το τμήμα κώδικα. Στη συνέχεια, αντικαταστήστε την ερώτηση με οποιοδήποτε ερώτημα που σχετίζεται με τον παράγοντα δεδομένων Fabric. Αυτό το παράδειγμα χρησιμοποιείται \<generic published URL value\> ως διεύθυνση URL.
Important
Όταν καλείτε έναν πράκτορα δεδομένων μέσω προγραμματισμού, υλοποιήστε:
- Ένα χρονικό όριο ψηφοφορίας (δείτε το παρακάτω παράδειγμα) για την αποφυγή αόριστων βρόχων.
- Ελάχιστη συχνότητα ψηφοφορίας (ξεκινήστε στα 2-5 δευτερόλεπτα, αυξήστε μόνο εάν χρειάζεται).
- Εκκαθάριση δημιουργημένων νημάτων ή πόρων μετά την ολοκλήρωση.
- Τερματισμός περιόδου λειτουργίας σημειωματαρίου όταν ολοκληρωθεί για την απελευθέρωση εκχωρημένων πόρων Fabric.
Note
Προσαρμόστε τις καρφίτσες έκδοσης (openai, synapseml, pandas, tqdm) στις πιο πρόσφατες επικυρωμένες εκδόσεις για τον χρόνο εκτέλεσης του Fabric, εάν αυτές ακριβώς οι εκδόσεις είναι παλιές.
%pip install "openai==1.70.0"
%pip install "synapseml==1.0.5" # Required for synapse.ml.mlflow (update version as needed)
%pip install pandas tqdm # Skip if already available in the Fabric runtime
import typing as t
import time
import uuid
# OpenAI SDK internals
from openai import OpenAI
from openai._models import FinalRequestOptions
from openai._types import Omit
from openai._utils import is_given
# SynapseML helper for env config
from synapse.ml.mlflow import get_mlflow_env_config
# Removed unused imports: requests, json, pprint, APIStatusError, SynapseTokenProvider
base_url = "https://<generic published base URL value>"
question = "What data sources do you have access to?"
configs = get_mlflow_env_config()
# Create OpenAI Client
class FabricOpenAI(OpenAI):
def __init__(
self,
api_version: str ="2024-05-01-preview",
**kwargs: t.Any,
) -> None:
self.api_version = api_version
default_query = kwargs.pop("default_query", {})
default_query["api-version"] = self.api_version
super().__init__(
api_key="",
base_url=base_url,
default_query=default_query,
**kwargs,
)
def _prepare_options(self, options: FinalRequestOptions) -> None:
headers: dict[str, str | Omit] = (
{**options.headers} if is_given(options.headers) else {}
)
options.headers = headers
headers["Authorization"] = f"Bearer {configs.driver_aad_token}"
if "Accept" not in headers:
headers["Accept"] = "application/json"
if "ActivityId" not in headers:
correlation_id = str(uuid.uuid4())
headers["ActivityId"] = correlation_id
return super()._prepare_options(options)
# Pretty printing helper
def pretty_print(messages):
print("---Conversation---")
for m in messages:
print(f"{m.role}: {m.content[0].text.value}")
print()
fabric_client = FabricOpenAI()
# Create assistant
assistant = fabric_client.beta.assistants.create(model="not used")
# Create thread
thread = fabric_client.beta.threads.create()
# Create message on thread
message = fabric_client.beta.threads.messages.create(thread_id=thread.id, role="user", content=question)
# Create run
run = fabric_client.beta.threads.runs.create(thread_id=thread.id, assistant_id=assistant.id)
# Wait for run to complete (avoid indefinite loop)
terminal_states = {"completed", "failed", "cancelled", "requires_action"}
poll_interval = 2
timeout_seconds = 300 # Adjust based on expected workload
start_time = time.time()
while run.status not in terminal_states:
if time.time() - start_time > timeout_seconds:
raise TimeoutError(f"Run polling exceeded {timeout_seconds} seconds (last status={run.status})")
run = fabric_client.beta.threads.runs.retrieve(
thread_id=thread.id,
run_id=run.id,
)
print(run.status)
time.sleep(poll_interval)
if run.status != "completed":
print(f"Run finished with status: {run.status}")
# Print messages
response = fabric_client.beta.threads.messages.list(thread_id=thread.id, order="asc")
pretty_print(response)
# Delete thread
fabric_client.beta.threads.delete(thread_id=thread.id)
Σχετικό περιεχόμενο
- έννοιας παράγοντα δεδομένων Fabric
- δημιουργίας παράγοντα δεδομένων Fabric