Uw gebruik van quota voor Unity Catalog-resources bewaken
In dit artikel wordt beschreven hoe u het gebruik van beveiligbare objecten van Unity Catalog bewaakt waarvoor resourcequota gelden.
U kunt de quota-API's voor Unity Catalog-resources gebruiken om het gebruik bij te houden. Hoewel sommige limieten op verzoek kunnen worden verhoogd, zijn andere vast. Als u onderbrekingen wilt voorkomen, moet u vooruitgaan en contact opnemen met uw Azure Databricks-accountteam als u verwacht dat u uw resourcequota overschrijdt.
Wat zijn resourcequota voor Unity Catalog?
Unity Catalog dwingt resourcequota af voor alle beveiligbare objecten die worden beheerd door Unity Catalog. Deze quota worden vermeld in resourcelimieten. Ze worden in dat artikel geïdentificeerd als quota voor Clean Rooms, Delta Sharing, Marketplace en Unity Catalog.
Elk quotum wordt gedefinieerd als een aantal objecten per bovenliggend object (of bereik). Bijvoorbeeld 10.000 tabellen per schema of 1.000.000 tabellen per metastore.
Query's uitvoeren op uw gebruik op resourcequota
Als u het gebruik proactief wilt controleren op resourcequota, gebruikt u de REST API's voor Unity Catalog-resourcequota:
GetQuota
haalt het quotumgebruik op voor één quotumtype, gedefinieerd als het aantal onderliggende objecten per bovenliggende object (bijvoorbeeld tabellen per metastore).ListQuotas
haalt alle quotumwaarden op onder de doel-metastore, standaard gepagineerd.
Beide API's retourneren informatie in de vorm van een quota_info
object dat de volgende velden bevat. U gebruikt ook enkele van deze velden wanneer u een aanvraag indient met behulp van de GetQuota-API:
parent_securable_type
: Type van het bovenliggende object. Voor het aantal tabellen per schema isparent_securable_type
schema
dat bijvoorbeeld .Notitie
Voor quota waarin het bovenliggende type een geregistreerd model is, stelt u het in
parent_securable_type
opfunction
.parent_full_name:
Volledige naam van het bovenliggende quotum. Bijvoorbeeld hetmain.default
schema. Als het bovenliggende item een metastore is, gebruikt u de metastore-id in uw aanvraag.quota_name
: Naam van het quotum. Dit is het onderliggende object (tabel, schema, share, enzovoort) achtervoegsel van-quota
. Bijvoorbeeld:table-quota
.quota_count
: Het meest recente gebruiksaantal. Bijvoorbeeld33
tabellen per schema.quota_limit
: De quotumlimietwaarde op het moment dat het quotumaantal is berekend. Bijvoorbeeld10000
tabellen per schema.last_refreshed_at
: De laatste keer dat het quotumaantal is vernieuwd. Dit wordt weergegeven als een Unix-tijdstempel. U kunt de tijdstempel converteren naar een door mensen leesbare indeling met behulp van onlinehulpprogramma's zoals Epoch Converter.
De ListQuotas
API retourneert ook een paginatoken in het antwoord als het huidige antwoord niet alle resultaten retourneert.
API-autorisatie en -verificatie
Alleen accountbeheerders kunnen de resourcequota-API's aanroepen.
De accountbeheerder die de API's aanroept, moet gebruikmaken van OAuth-gebruikers-naar-machine-verificatie (U2M) (voor gebruikers of groepen) of OAuth M2M-verificatie (machine-naar-machine) (als de accountbeheerder een service-principal is). Zie Toegang tot Azure Databricks verifiëren met een gebruikersaccount met behulp van OAuth (OAuth U2M) of Toegang tot Azure Databricks verifiëren met een service-principal met behulp van OAuth (OAuth M2M). Door Databricks gegenereerde persoonlijke toegangstokens (PAT's) zijn ook een optie, maar niet aanbevolen.
De GetQuota-API gebruiken om quotumgebruikswaarden op te halen voor een specifiek quotumtype
Gebruik de GetQuota
API om gebruiksgegevens op te halen voor één resourcequotum, zoals gedefinieerd door een bovenliggend bovenliggend koppelen.
Methode: GET
Pad: /unity-catalog/resource-quotas/{parent_securable_type}/{parent_full_name}/{quota_name}
Hoofdtekstparameters: Zie Query's uitvoeren op uw gebruik op basis van resourcequota.
Zie GET /unity-catalog/resource-quotas/voor de API-naslaginformatie.
GetQuota
het aantal is nauwkeurig tot binnen 30 minuten na de laatste bewerking die is uitgevoerd onder het bovenliggende quotum. Het aantal kan verouderd zijn als er alleen verwijderbewerkingen zijn uitgevoerd, omdat Unity Catalog het quotumaantal alleen bijwerken tijdens het maken van resources. Bij het aanroepen GetQuota
wordt een vernieuwing van het quotumaantal geactiveerd als deze verouderd is, maar de trigger asynchroon is en nieuwe aantallen worden mogelijk niet geretourneerd in de eerste aanroep.
Aanvraagvoorbeeld
Python-voorbeeld waarin het aantal schema's wordt aangevraagd dat is gemaakt in de main
catalogus in de metastore die is gekoppeld aan de werkruimte:
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)
Curl-voorbeeld dat hetzelfde doet:
$ curl -X GET -H "Authentication: Bearer $OAUTH_TOKEN" \
"https://example-workspace.databricks.com/api/2.1/unity-catalog/resource-quotas/catalog/main/schema-quota"
Responsvoorbeeld
Antwoord met 2691 schema's ten opzichte van de limiet van 10.000 schema-per-metastore:
{
"quota_info": {
"parent_securable_type": "CATALOG",
"parent_full_name": "main",
"quota_name": "schema-quota",
"quota_count": 2691,
"quota_limit": 10000,
"last_refreshed_at": 1722559381517
}
}
De ListQuotas-API gebruiken om gebruiksgegevens op te halen voor alle quotumtypen in een metastore
Gebruik de ListQuotas
API om gebruiksgegevens op te halen voor alle quotatypen in een metastore.
Methode: GET
Pad: /unity-catalog/resource-quotas/all-resource-quotas
Hoofdtekstparameters:
max_results
: Het aantal resultaten dat moet worden geretourneerd. De maximumwaarde is 500. De standaardwaarde is 100.page_token
: Paginatoken van de vorige aanvraag om de volgende pagina met resultaten op te halen.
Zie GET /unity-catalog/resource-quotas/all-resource-quotas voor de API-naslaginformatie.
In tegenstelling tot GetQuotas
, ListQuotas
heeft geen SLA voor de versheid van aantallen. Er worden ook geen vernieuwingen van het quotumaantal geactiveerd. Gebruik de GetQuota
API voor maximale nauwkeurigheid.
Aanvraagvoorbeeld
Python-voorbeeld waarin quotumaantallen worden aangevraagd voor alle objecten in de metastore die is gekoppeld aan de werkruimte, waarbij 5 resultaten worden opgegeven die per pagina moeten worden geretourneerd:
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
Curl-voorbeeld dat hetzelfde doet:
$ 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"
Responsvoorbeeld
Antwoord met één pagina met vijf quotumaantallen:
"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="