Κοινοποίηση μέσω


Ενοποίηση του OneLake με το Azure Databricks

Αυτό το σενάριο δείχνει πώς μπορείτε να συνδεθείτε στο OneLake μέσω του Azure Databricks. Μετά την ολοκλήρωση αυτής της εκμάθησης, θα μπορείτε να διαβάζετε και να γράφετε σε μια λίμνη Microsoft Fabric από τον χώρο εργασίας σας Azure Databricks.

Προϋποθέσεις

Πριν συνδεθείτε, πρέπει να έχετε:

  • Ένας χώρος εργασίας Fabric και ένα lakehouse.
  • Ένας premium χώρος εργασίας Azure Databricks. Μόνο οι premium χώροι εργασίας Azure Databricks υποστηρίζουν τη διαβίβαση διαπιστευτηρίων Microsoft Entra, την οποία χρειάζεστε για αυτό το σενάριο.

Ρύθμιση του χώρου εργασίας Databricks

  1. Ανοίξτε τον χώρο εργασίας Azure Databricks και επιλέξτε Δημιουργία>συμπλέγματος.

  2. Για να πραγματοποιήσετε έλεγχο ταυτότητας στο OneLake με την ταυτότητά σας Microsoft Entra, πρέπει να ενεργοποιήσετε τη διαβίβαση διαπιστευτηρίων Azure Data Lake Storage (ADLS) στο σύμπλεγμά σας στις Επιλογές για προχωρημένους.

    Στιγμιότυπο οθόνης που δείχνει πού να επιλέξετε Δημιουργία συμπλέγματος στην οθόνη Επιλογές για προχωρημένους.

    Σημείωμα

    Μπορείτε επίσης να συνδέσετε το Databricks στο OneLake χρησιμοποιώντας μια κύρια υπηρεσία. Για περισσότερες πληροφορίες σχετικά με τον έλεγχο ταυτότητας Azure Databricks χρησιμοποιώντας μια κύρια υπηρεσία, ανατρέξτε στο θέμα Διαχείριση κύριων υπηρεσιών.

  3. Δημιουργήστε το σύμπλεγμα με τις παραμέτρους που προτιμάτε. Για περισσότερες πληροφορίες σχετικά με τη δημιουργία ενός συμπλέγματος Databricks, ανατρέξτε στο θέμα Ρύθμιση παραμέτρων συμπλεγμάτων - Azure Databricks.

  4. Ανοίξτε ένα σημειωματάριο και συνδέστε το στο σύμπλεγμα που μόλις δημιουργήσατε.

Σύνταξη του σημειωματαρίου σας

  1. Μεταβείτε στο lakehouse του Fabric και αντιγράψτε τη διαδρομή του συστήματος αρχείων Azure Blob (ABFS) στο lakehouse σας. Μπορείτε να το βρείτε στο παράθυρο Ιδιότητες .

    Σημείωμα

    Το Azure Databricks υποστηρίζει μόνο το πρόγραμμα οδήγησης Azure Blob Filesystem (ABFS) κατά την ανάγνωση και εγγραφή σε ADLS Gen2 και OneLake: abfss://myWorkspace@onelake.dfs.fabric.microsoft.com/.

  2. Αποθηκεύστε τη διαδρομή προς το lakehouse σας στο σημειωματάριό σας Databricks. Αυτό το lakehouse είναι το σημείο όπου γράφετε τα επεξεργασμένα δεδομένα σας αργότερα:

    oneLakePath = 'abfss://myWorkspace@onelake.dfs.fabric.microsoft.com/myLakehouse.lakehouse/Files/'
    
  3. Φόρτωση δεδομένων από ένα δημόσιο σύνολο δεδομένων Databricks σε ένα πλαίσιο δεδομένων. Μπορείτε επίσης να διαβάσετε ένα αρχείο από αλλού στο Fabric ή να επιλέξετε ένα αρχείο από έναν άλλο λογαριασμό ADLS Gen2 που έχετε ήδη.

    yellowTaxiDF = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load("/databricks-datasets/nyctaxi/tripdata/yellow/yellow_tripdata_2019-12.csv.gz")
    
  4. Φιλτράρετε, μετασχηματίστε ή προετοιμάστε τα δεδομένα σας. Για αυτό το σενάριο, μπορείτε να περικόψετε το σύνολο δεδομένων σας για ταχύτερη φόρτωση, να ενώσετε με άλλα σύνολα δεδομένων ή να φιλτράρετε σε συγκεκριμένα αποτελέσματα.

    filteredTaxiDF = yellowTaxiDF.where(yellowTaxiDF.fare_amount<4).where(yellowTaxiDF.passenger_count==4)
    display(filteredTaxiDF)
    
  5. Γράψτε το φιλτραρισμένο πλαίσιο δεδομένων σας στο Fabric lakehouse χρησιμοποιώντας τη διαδρομή OneLake.

    filteredTaxiDF.write.format("csv").option("header", "true").mode("overwrite").csv(oneLakePath)
    
  6. Ελέγξτε ότι τα δεδομένα σας γράφτηκαν με επιτυχία διαβάζοντας το αρχείο που φορτώθηκε πρόσφατα.

    lakehouseRead = spark.read.format('csv').option("header", "true").load(oneLakePath)
    display(lakehouseRead.limit(10))
    

Αυτό ολοκληρώνει τη ρύθμιση και τώρα μπορείτε πλέον να διαβάζετε και να γράφετε δεδομένα στο Fabric χρησιμοποιώντας το Azure Databricks.

Σύνδεση στο OneLake με χρήση υπολογιστών χωρίς διακομιστή Databricks

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

Σημείωμα

Αυτός ο περιορισμός δεν είναι μοναδικός για το Azure Databricks. Οι υλοποιήσεις χωρίς διακομιστή Databricks στο Amazon Web Services (AWS) και στο Google Cloud παρουσιάζουν την ίδια συμπεριφορά.

Εάν επιχειρήσετε να τροποποιήσετε ή να ορίσετε μια μη υποστηριζόμενη ρύθμιση παραμέτρων Spark σε ένα σημειωματάριο που είναι συνδεδεμένο με υπολογιστές χωρίς διακομιστή Databricks, το σύστημα επιστρέφει ένα σφάλμα CONFIG_NOT_AVAILABLE.

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

Το OneLake υποστηρίζει εισερχόμενη συνδεσιμότητα από υπολογιστές χωρίς διακομιστή Databricks. Μπορείτε να συνδεθείτε στο OneLake (από το Databricks serverless compute) με την προϋπόθεση ότι έχετε την κατάλληλη πρόσβαση και υπάρχει μια διαδρομή δικτύου μεταξύ του Databricks serverless compute και του OneLake. Με το Databricks χωρίς διακομιστή, πρέπει να βεβαιωθείτε ότι ο κώδικάς σας δεν τροποποιεί τυχόν μη υποστηριζόμενες ιδιότητες Spark.

Προϋποθέσεις

Πριν συνδεθείτε, πρέπει να έχετε:

  • Ένας χώρος εργασίας Fabric και ένα lakehouse.
  • Ένας premium χώρος εργασίας Azure Databricks.
  • Μια κύρια υπηρεσία με ελάχιστη ανάθεση ρόλου χώρου εργασίας Συμβάλλοντα .
  • Μυστικά βάσης δεδομένων ή Azure Key Vault (AKV) για αποθήκευση και ανάκτηση μυστικών. Αυτό το παράδειγμα χρησιμοποιεί μυστικά Databricks.

Σύνταξη του σημειωματαρίου σας

  1. Δημιουργήστε ένα σημειωματάριο στον χώρο εργασίας Databricks και επισυνάψτε το σε υπολογιστές χωρίς διακομιστή.

    Στιγμιότυπο οθόνης που δείχνει πώς μπορείτε να συνδέσετε το σημειωματάριο Databricks με υπολογιστές χωρίς διακομιστή.

  2. Εισαγωγή λειτουργικών μονάδων Python - σε αυτό το δείγμα, χρησιμοποιείτε τρεις λειτουργικές μονάδες:

    • Το msal είναι η Βιβλιοθήκη ελέγχου ταυτότητας της Microsoft (MSAL) και έχει σχεδιαστεί για να βοηθά τους προγραμματιστές να ενσωματώσουν τον έλεγχο ταυτότητας της πλατφόρμας ταυτότητας της Microsoft στις εφαρμογές τους.
    • requests χρησιμοποιείται για την υποβολή αιτημάτων HTTP χρησιμοποιώντας Python.
    • Το delta lake χρησιμοποιείται για την ανάγνωση και εγγραφή πινάκων Delta Lake χρησιμοποιώντας Python.
    from msal import ConfidentialClientApplication
    import requests
    from deltalake import DeltaTable
    
  3. Δηλώστε μεταβλητές για τον μισθωτή Microsoft Entra, συμπεριλαμβανομένου του αναγνωριστικού εφαρμογής. Χρησιμοποιήστε το αναγνωριστικό μισθωτή του μισθωτή όπου αναπτύσσεται το Microsoft Fabric.

    # Fetch from Databricks secrets.
    tenant_id = dbutils.secrets.get(scope="<replace-scope-name>",key="<replace value with key value for tenant _id>")
    client_id = dbutils.secrets.get(scope="<replace-scope-name>",key="<replace value with key value for client _id>") 
    client_secret = dbutils.secrets.get(scope="<replace-scope-name>",key="<replace value with key value for secret>")
    
  4. Δηλώστε μεταβλητές χώρου εργασίας Fabric.

    workspace_id = "<replace with workspace name>"
    lakehouse_id = "<replace with lakehouse name>"
    table_to_read = "<name of lakehouse table to read>"
    storage_account_name = workspace_id
    onelake_uri = f"abfss://{workspace_id}@onelake.dfs.fabric.microsoft.com/{lakehouse_id}.lakehouse/Tables/{table_to_read}"
    
  5. Αρχικοποιήστε τον πελάτη για να αποκτήσετε διακριτικό.

    authority = f"https://login.microsoftonline.com/{tenant_id}"
    
    app = ConfidentialClientApplication(
     client_id,
     authority=authority,
     client_credential=client_secret
     )
    
     result = app.acquire_token_for_client(scopes=["https://onelake.fabric.microsoft.com/.default"])
    
     if "access_token" in result:
       access_token = result["access_token"]
       print("Access token acquired.")
       token_val = result['access_token']
    
  6. Διαβάστε έναν πίνακα δέλτα από το OneLake

    dt = DeltaTable(onelake_uri, storage_options={"bearer_token": f"{token_val}", "use_fabric_endpoint": "true"})
    df = dt.to_pandas()
    print(df.head())
    

    Σημείωμα

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

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