Surveiller l’utilisation de vos quotas de ressources Unity Catalog
Cet article explique comment surveiller l’utilisation de vos objets sécurisables Unity Catalog soumis à des quotas de ressources.
Vous pouvez utiliser les API de quotas de ressources Unity Catalog pour suivre l’utilisation. Bien que certaines limites puissent être augmentées à la demande, d’autres sont fixes. Pour éviter les interruptions, planifiez et contactez votre équipe de compte Azure Databricks si vous vous attendez à dépasser vos quotas de ressources.
Que sont les quotas de ressources Unity Catalog ?
Unity Catalog applique des quotas de ressources sur tous les objets sécurisables gérés par Unity Catalog. Ces quotas sont répertoriés dans les limites de ressources. Ils sont identifiés dans cet article comme quotas pour les salles blanches, Delta Sharing, la Place de marché et Unity Catalog.
Chaque quota est défini comme un nombre d’objets par objet parent (ou étendue). Par exemple, 10 000 tables par schéma ou 1 000 000 tables par metastore.
Interroger votre utilisation par rapport aux quotas de ressources
Pour surveiller l’utilisation par rapport aux quotas de ressources de manière proactive, utilisez les API REST de quotas de ressources Unity Catalog :
GetQuota
récupère le rapport d’utilisation des quotas pour un type de quota, défini comme le nombre d’objets enfants par parent (par exemple, les tables par metastore).ListQuotas
récupère toutes les valeurs de quota sous le metastore cible, paginés par défaut.
Les deux API renvoient des informations sous la forme d’un objet quota_info
qui contient les champs suivants. Vous utilisez également certains de ces champs lorsque vous effectuez une requête à l’aide de l’API GetQuota :
parent_securable_type
: type de l’objet parent. Par exemple, pour le nombre de tables par schéma, la valeurparent_securable_type
estschema
.Remarque
Pour les quotas dans lesquels le type parent est un modèle inscrit, définissez la valeur
parent_securable_type
surfunction
.parent_full_name:
: nom complet du parent de quota. Par exemple, le schémamain.default
. Si le parent est un metastore, utilisez l’ID de metastore dans votre requête.quota_name
: nom du quota. Il s’agit de l’objet enfant (table, schéma, partage, etc.) suivi du suffixe-quota
. Par exemple :table-quota
.quota_count
: nombre d’utilisations le plus récent. Par exemple,33
tables par schéma.quota_limit
: valeur limite de quota au moment où le nombre de quotas a été calculé. Par exemple,10000
tables par schéma.last_refreshed_at
: dernière fois où le nombre de quotas a été actualisé. Cette valeur s’affiche sous forme d’horodatage d’époque Unix. Vous pouvez convertir l’horodatage dans un format lisible par l’homme à l’aide d’outils en ligne tels que le convertisseur Epoch .
L’API ListQuotas
renvoie également un jeton de page dans la réponse si la réponse actuelle ne renvoie pas tous les résultats.
Autorisation et authentification d’API
Seuls les administrateurs de compte peuvent appeler les API de quotas de ressources.
L’administrateur de compte qui appelle les API doit utiliser l’authentification utilisateur à machine (U2M) OAuth (pour les utilisateurs ou les groupes) ou l’authentification de machine à machine (M2M) OAuth (si l’administrateur de compte est un principal de service). Consultez Authentifier l’accès à Azure Databricks avec un compte utilisateur à l’aide d’OAuth (OAuth U2M) ou Authentifier l’accès à Azure Databricks avec un principal de service à l’aide d’OAuth (OAuth M2M). Les jetons d’accès personnels (PAT) générés par Databricks sont également une option, mais pas recommandés.
Utiliser l’API GetQuota pour obtenir des valeurs d’utilisation des quotas pour un type de quota spécifique
Utilisez l’API GetQuota
pour obtenir des informations d’utilisation pour un quota de ressources unique tel que défini par une association enfant-parent.
Méthode : GET
Path (Chemin d’accès) : /unity-catalog/resource-quotas/{parent_securable_type}/{parent_full_name}/{quota_name}
Paramètres du corps : pour obtenir des descriptions de paramètres, consultez Interroger votre utilisation par rapport aux quotas de ressources.
Pour obtenir la référence de l’API, consultez GET /unity-catalog/resource-quotas/.
Le nombre de GetQuota
est exact dans les 30 minutes suivant la dernière opération de création effectuée sous le parent de quota. Le nombre peut être obsolète si seules des opérations de suppression ont été effectuées, car Unity Catalog met à jour le nombre de quotas uniquement lors de la création de ressources. Appeler GetQuota
déclenche une actualisation du nombre de quotas s’il est obsolète, mais le déclencheur est asynchrone et le nouveau nombre peut ne pas être renvoyé lors du premier appel.
Exemple de requête
Exemple Python qui demande le nombre de schémas créés dans le catalogue main
dans le metastore attaché à l’espace de travail :
import requests
headers = {'Authentication': 'Bearer <OAuthtoken>'}
r = requests.get('https://example-workspace.databricks.com/api/2.1/unity-catalog/resource-quotas/catalog/main/schema-quota', headers=headers)
print(r.text)
Exemple Curl qui fait la même chose :
$ curl -X GET -H "Authentication: Bearer $OAUTH_TOKEN" \
"https://example-workspace.databricks.com/api/2.1/unity-catalog/resource-quotas/catalog/main/schema-quota"
Exemple de réponse
Réponse indiquant 2 691 schémas par rapport à la limite de 10 000 schémas par métastore :
{
"quota_info": {
"parent_securable_type": "CATALOG",
"parent_full_name": "main",
"quota_name": "schema-quota",
"quota_count": 2691,
"quota_limit": 10000,
"last_refreshed_at": 1722559381517
}
}
Utiliser l’API ListQuotas pour obtenir des données d’utilisation pour tous les types de quota dans un metastore
Utilisez l’API ListQuotas
pour obtenir des données d’utilisation pour tous les types de quota dans un metastore.
Méthode : GET
Path (Chemin d’accès) : /unity-catalog/resource-quotas/all-resource-quotas
Paramètres du corps :
max_results
: nombre de résultats à renvoyer. La valeur maximale est 500. La valeur par défaut est 100.page_token
: jeton de page de la demande précédente pour récupérer la page suivante des résultats.
Pour obtenir la référence de l’API, consultez GET /unity-catalog/resource-quotas/all-resource-quotas.
Contrairement à GetQuotas
, ListQuotas
n’a aucun contrat de niveau de service lors de l’actualisation du nombre. Il ne déclenche pas non plus d’actualisation du nombre de quotas. Pour une précision maximale, utilisez l’API GetQuota
.
Exemple de requête
Exemple Python qui demande le nombre de quotas pour tous les objets du metastore attaché à l’espace de travail, en spécifiant 5 résultats à renvoyer par page :
import requests
headers = {'Authentication': 'Bearer <OAuthtoken>'}
next_page = None
max_results = 5
results = []
while True:
payload = {'max_results': max_results, 'page_token': next_page}
r = requests.get(
'https://example-workspace.databricks.com/api/2.1/unity-catalog/resource-quotas/all-resource-quotas', headers=headers, params=payload).json()
results.extend(r["quotas"])
if "next_page_token" not in r: break
next_page = r["next_page_token"]
results
Exemple Curl qui fait la même chose :
$ curl -X GET -H "Authentication: Bearer $OAUTH_TOKEN" \
-d '{"max_results": 5}' "https://example-workspace.databricks.com/api/2.1/unity-catalog/resource-quotas/all-resource-quotas"
Exemple de réponse
Réponse montrant une page de 5 nombres de quotas :
"quotas":[
{
"parent_securable_type":"CATALOG",
"parent_full_name":"auto_maintenance",
"quota_name":"schema-quota",
"quota_count":15,
"quota_limit":10000,
"last_refreshed_at":1707272498713
},
{
"parent_securable_type":"CATALOG",
"parent_full_name":"demo_icecream",
"quota_name":"schema-quota",
"quota_count":3,
"quota_limit":10000,
"last_refreshed_at":1720789637102
},
{
"parent_securable_type":"CATALOG",
"parent_full_name":"primarycatalog",
"quota_name":"schema-quota",
"quota_count":2,
"quota_limit":10000,
"last_refreshed_at":1720829359520
},
{
"parent_securable_type":"CATALOG",
"parent_full_name":"shared_catalog_azure",
"quota_name":"schema-quota",
"quota_count":670,
"quota_limit":10000,
"last_refreshed_at":1722036080791
},
{
"parent_securable_type":"CATALOG",
"parent_full_name":"cat-test",
"quota_name":"schema-quota",
"quota_count":567,
"quota_limit":10000,
"last_refreshed_at":1704845201239
}
],
"next_page_token":"eyJfX3R2IjoiMCIsInB0IjoiQ2F0YWxvZyIsInBpZCI6IjAwNTAyYTM1LWIzMGQtNDc4YS1hYTIwLTE5MDZkMGVmNzdiNiIsInJ0IjoiU2NoZW1hIn0="