Πώς μπορείτε να ρυθμίσετε τις παραμέτρους προσαρμοσμένων χώρων συγκέντρωσης SQL χρησιμοποιώντας το Fabric REST API

Ισχύει για: ✅ Τελικό σημείο ανάλυσης SQL και Αποθήκη στο Microsoft Fabric

Οι προσαρμοσμένοι χώροι συγκέντρωσης SQL δίνουν στους διαχειριστές περισσότερο έλεγχο του τρόπου με τον οποίο κατανέμονται οι πόροι για τη διαχείριση αιτήσεων. Σε αυτήν τη γρήγορη εκκίνηση, θα ρυθμίσετε τις παραμέτρους προσαρμοσμένων χώρων συγκέντρωσης SQL και θα παρατηρήσετε τις τιμές ταξινομητή χρησιμοποιώντας το Fabric REST API.

Οι διαχειριστές χώρου εργασίας μπορούν να χρησιμοποιήσουν το όνομα της εφαρμογής (ή το όνομα προγράμματος) από τη συμβολοσειρά σύνδεσης για να δρομολογήσουν αιτήσεις σε διαφορετικούς χώρους υπολογιστικής συγκέντρωσης. Οι διαχειριστές χώρου εργασίας μπορούν επίσης να ελέγχουν το ποσοστό των πόρων στους οποίους μπορεί να έχει πρόσβαση κάθε χώρος συγκέντρωσης υπολογιστικών SQL, με βάση το όριο κλίμακας με δυνατότητα διάσπασης της χωρητικότητας του χώρου εργασίας.

Το Fabric REST API ορίζει ένα ενοποιημένο τελικό σημείο για λειτουργίες.

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

  • Πρόσβαση σε ένα είδος Αποθήκης σε έναν χώρο εργασίας. Θα πρέπει να είστε μέλος του ρόλου Διαχειριστή.

Λήψη της τρέχουσας διαμόρφωσης

Χρησιμοποιήστε το ακόλουθο API για να λάβετε την τρέχουσα διαμόρφωση.

Παράδειγμα σημειωματάριου Fabric

Μπορείτε να εκτελέσετε το παρακάτω παράδειγμα κώδικα Python σε ένα σημειωματάριο Fabric Spark.

  • Ο κώδικας στέλνει μια GET αίτηση στο προσαρμοσμένο API ρύθμισης παραμέτρων χώρου συγκέντρωσης SQL και επιστρέφει τη ρύθμιση παραμέτρων προσαρμοσμένου χώρου συγκέντρωσης SQL για τον χώρο εργασίας.
  • Το workspace_id πεδίο χρησιμοποιεί το mssparkutils.runtime.context GUID για να λάβετε το GUID του χώρου εργασίας στο οποίο εκτελείται το σημειωματάριο. Για να ρυθμίσετε τις παραμέτρους ενός προσαρμοσμένου χώρου συγκέντρωσης SQL σε διαφορετικό χώρο εργασίας, ενημερώστε το workspace_id στο GUID του χώρου εργασίας όπου θέλετε να ρυθμίσετε τις παραμέτρους των προσαρμοσμένων χώρων συγκέντρωσης SQL.
import requests
import json
from notebookutils import mssparkutils

# This will get the workspace_id where this notebook is running. 
# Update to the workspace_id (guid) if running this notebook outside of the workspace where the warehouse exists.
workspaceId = mssparkutils.runtime.context.get('currentWorkspaceId') 

url = f'https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/warehouses/sqlPoolsConfiguration?beta=true'
response = requests.request(method='get', url=url, headers={'Authorization': f'Bearer {mssparkutils.credentials.getToken("pbi")}'})

if response.status_code == 200:
    print(json.dumps(response.json(), indent=4))
else:
    print(response.text)

Ρύθμιση παραμέτρων προσαρμοσμένων χώρων συγκέντρωσης SQL

Το παρακάτω παράδειγμα Python ενεργοποιεί και ρυθμίζει τις παραμέτρους προσαρμοσμένων χώρων συγκέντρωσης SQL. Μπορείτε να εκτελέσετε αυτόν τον κώδικα Python σε ένα σημειωματάριο Fabric Spark.

  • Η ρύθμιση παραμέτρων προσαρμοσμένων χώρων συγκέντρωσης SQL είναι ενεργή μόνο όταν customSQLPoolsEnabled το χαρακτηριστικό έχει οριστεί σε true. Μπορείτε να ορίσετε ένα ωφέλιμο φορτίο στον ορισμό αντικειμένου customSQLPools , αλλά εάν δεν ορίσετε το customSQLPoolsEnabled σε true, το ωφέλιμο φορτίο παραβλέπεται και χρησιμοποιείται αυτόνομη διαχείριση φόρτου εργασίας .
  • Ο κώδικας ρυθμίζει δύο προσαρμοσμένους ContosoSQLPool χώρους συγκέντρωσης SQL και AdhocPool.
    • Πρόκειται ContosoSQLPool να λάβει το 70% των διαθέσιμων πόρων. Ο ταξινομητής ονόματος εφαρμογής έχει την τιμή .MyContosoApp
    • Όλα τα ερωτήματα SQL που προέρχονται από μια συμβολοσειρά σύνδεσης που καθορίζει το όνομα της MyContosoApp εφαρμογής ταξινομούνται στο ContosoSQLPool προσαρμοσμένο χώρο συγκέντρωσης SQL και έχουν πρόσβαση στο 70% του συνόλου των κόμβων χωρητικότητας με δυνατότητα διάρρηξης.
    • Όλα τα ερωτήματα SQL που δεν περιέχονται MyContosoApp στο όνομα εφαρμογής της συμβολοσειράς σύνδεσης αποστέλλονται στον προσαρμοσμένο χώρο συγκέντρωσης SQL, ο Adhoc οποίος ορίζεται ως ο προεπιλεγμένος χώρος συγκέντρωσης. Αυτά τα αιτήματα έχουν πρόσβαση στο 30% των συνολικών κόμβων χωρητικότητας με δυνατότητα διάρρηξης.
  • Όλες οι προσαρμοσμένες ρυθμίσεις παραμέτρων χώρου συγκέντρωσης SQL πρέπει να έχουν έναν προεπιλεγμένο χώρο συγκέντρωσης SQL που προσδιορίζεται ορίζοντας το isDefault χαρακτηριστικό σε true.
  • Το άθροισμα όλων maxResourcePercentage των τιμών πρέπει να είναι μικρότερο ή ίσο με 100%.
  • Το workspace_id πεδίο χρησιμοποιεί το mssparkutils.runtime.context GUID για να λάβετε το GUID του χώρου εργασίας στο οποίο εκτελείται το σημειωματάριο. Για να ρυθμίσετε τις παραμέτρους ενός προσαρμοσμένου χώρου συγκέντρωσης SQL σε διαφορετικό χώρο εργασίας, ενημερώστε το workspace_id στο GUID του χώρου εργασίας όπου θέλετε να ρυθμίσετε τις παραμέτρους των προσαρμοσμένων χώρων συγκέντρωσης SQL.
import requests
import json
from notebookutils import mssparkutils

body = { 
  "customSQLPoolsEnabled": True, 
  "customSQLPools": [ 
    { 
      "name": "ContosoSQLPool", 
      "isDefault": False, 
      "maxResourcePercentage": 70,
      "optimizeForReads": False, 
      "classifier": { 
        "type": "Application Name", 
        "value": [ 
          "MyContosoApp"
        ] 
      } 
    }, 
    { 
      "name": "AdhocPool", 
      "isDefault": True, 
      "maxResourcePercentage": 30,
      "optimizeForReads": True
    } 
  ] 
}

# This will get the workspaceId where this notebook is running. 
# Update to the workspace_id (guid) if running this notebook outside of the workspace where the warehouse exists.
workspace_id = mssparkutils.runtime.context.get('currentWorkspaceId') 

url = f'https://api.fabric.microsoft.com/v1/workspaces/{workspace_id}/warehouses/sqlPoolsConfiguration?beta=true'
response = requests.request(method='patch', url=url, json=body, headers={'Authorization': f'Bearer {mssparkutils.credentials.getToken("pbi")}'})

if response.status_code == 200:
    print("SQL Custom Pools configured successfully.")
else:
    print(response.text)

Συμβουλή

Χρησιμοποιήστε αυτές τις χρήσιμες τιμές ταξινομητή ονόματος εφαρμογής (regex) για την κυκλοφορία από το Fabric:

  • Για να ταξινομήσετε ερωτήματα από διοχετεύσεις Fabric, χρησιμοποιήστε .^Data Integration-to[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$
  • Για να ταξινομήσετε ερωτήματα από το Power BI, χρησιμοποιήστε το ^(PowerBIPremium-DirectQuery|Mashup Engine(?: \(PowerBIPremium-Import\))?).
  • Για να ταξινομήσετε ερωτήματα από το πρόγραμμα επεξεργασίας ερωτημάτων SQL της πύλης Fabric, χρησιμοποιήστε DMS_user.

Ορισμός του ονόματος της εφαρμογής στο SQL Server Management Studio (SSMS)

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

  1. Στο SQL Server Management Studio (SSMS), καθορίστε το όνομα διακομιστή για την αποθήκη και παρέχετε έλεγχο ταυτότητας. Συνιστάται το Microsoft Entra MFA .

  2. Επιλέξτε το κουμπί Για προχωρημένους .

  3. Στη σελίδα Advanced Properties , στην περιοχή Context, αλλάξτε την τιμή του Application Name σε MyContosoApp.

    Στιγμιότυπο οθόνης από το SQL Server Management Studio της σελίδας

  4. Επιλέξτε ΟΚ.

  5. Επιλέξτε Σύνδεση.

  6. Για να δημιουργήσετε κάποιο δείγμα δραστηριότητας, χρησιμοποιήστε αυτήν τη σύνδεση στο SSMS για να εκτελέσετε ένα απλό ερώτημα στην αποθήκη σας, για παράδειγμα:

    SELECT *
    FROM dbo.DimDate;
    

Παρατήρηση πληροφοριών ερωτημάτων για τον προσαρμοσμένο χώρο συγκέντρωσης SQL

  1. Εξετάστε την sys.dm_exec_sessions προβολή δυναμικής διαχείρισης για να δείτε ότι αναγνωρίζεται ως το όνομα της εφαρμογής που MyContosoApp μεταβιβάζεται από το SSMS στη μηχανή SQL.

    SELECT session_id, program_name
    FROM   sys.dm_exec_sessions
    WHERE  program_name = 'MyContosoApp';
    

    Για παράδειγμα:

    Στιγμιότυπο οθόνης από το SQL Server Management Studio που εμφανίζει τα αποτελέσματα του ερωτήματος στο sys.dm_exec_sessions και την περίοδο λειτουργίας που προσδιορίζεται από το όνομα προγράμματος MyContosoApp.

  2. Επειδή το program_name ταιριάζει με το όνομα της εφαρμογής στον προσαρμοσμένο χώρο συγκέντρωσης SQL, αυτό το ερώτημα χρησιμοποιεί τους πόρους σε αυτόν τον MyContosoApp χώρο συγκέντρωσης. Για να αποδείξετε ποια προσαρμοσμένη ομάδα SQL χρησιμοποίησε το ερώτημα, μπορείτε να υποβάλετε ερώτημα στην προβολή συστήματος queryinsights.exec_requests_history . Περιμένετε 10-15 λεπτά για να συμπληρωθούν οι πληροφορίες ερωτήματος και, στη συνέχεια, εκτελέστε το ακόλουθο ερώτημα.

    SELECT distributed_statement_id, submit_time, 
           program_name, sql_pool_name, start_time, end_time
    FROM   queryinsights.exec_requests_history 
    WHERE  program_name = 'MyContosoApp';
    
  3. Μπορείτε επίσης να προσδιορίσετε τη συγκέντρωση ενός ερωτήματος από το αναγνωριστικό της δήλωσης. Στο πρόγραμμα επεξεργασίας ερωτημάτων SQL της πύλης Fabric, εκτελέστε ένα ερώτημα στο τελικό σημείο της αποθήκης ή της ανάλυσης SQL.

    SELECT *
    FROM dbo.DimDate;
    
  4. Επιλέξτε την καρτέλα Μηνύματα και καταγράψτε το αναγνωριστικό δήλωσης για την εκτέλεση του ερωτήματος. Στο πρόγραμμα επεξεργασίας ερωτημάτων SQL, το is , program_nameτο DMS_user οποίο ρυθμίσατε για χρήση του προσαρμοσμένου MyContosoApp χώρου συγκέντρωσης SQL νωρίτερα.

  5. Περιμένετε 10-15 λεπτά για να συμπληρωθούν οι πληροφορίες ερωτήματος.

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

    SELECT distributed_statement_id, submit_time, 
           program_name, sql_pool_name, start_time, end_time
    FROM   queryinsights.exec_requests_history 
    WHERE  distributed_statement_id = '<Statement ID>';
    

Επαναφορά της ρύθμισης παραμέτρων προσαρμοσμένων χώρων συγκέντρωσης SQL

Για να επαναφέρετε τον χώρο εργασίας στην αρχική κατάσταση, αλλάξτε την customSQLPoolsEnabled ιδιότητα σε False. Εάν θέλετε να διατηρήσετε τη ρύθμιση παραμέτρων προσαρμοσμένων χώρων συγκέντρωσης SQL, πρέπει να μεταβιβάσετε κάθε όνομα χώρου συγκέντρωσης όπως στη customSQLPools λίστα.

Αυτό το παράδειγμα κώδικα Python απενεργοποιεί τους προσαρμοσμένους χώρους συγκέντρωσης SQL και επιστρέφει στην αυτόνομη ρύθμιση παραμέτρων διαχείρισης φόρτου εργασίας και SELECT μηSELECT χώρων συγκέντρωσης. Καλείται ένα PATCH αίτημα με την customSQLPoolsEnabled ιδιότητα να έχει οριστεί σε False.

import requests
import json
from notebookutils import mssparkutils

body = { 
  "customSQLPoolsEnabled": False, 
  "customSQLPools": [] 
}

# This will get the workspaceId where this notebook is running. 
# Update to the workspace_id (guid) if running this notebook outside of the workspace where the warehouse exists.
workspace_id = mssparkutils.runtime.context.get('currentWorkspaceId') 

url = f'https://api.fabric.microsoft.com/v1/workspaces/{workspace_id}/warehouses/sqlPoolsConfiguration?beta=true'
response = requests.request(method='patch', url=url, json=body, headers={'Authorization': f'Bearer {mssparkutils.credentials.getToken("pbi")}'})

if response.status_code == 200:
    print("SQL Custom Pools successfully disabled.")
else:
    print(response.text)