Monitorování využití kvót prostředků katalogu Unity

Tento článek popisuje, jak monitorovat využití zabezpečitelných objektů katalogu Unity, které podléhají kvótám prostředků.

Ke sledování využití můžete použít rozhraní API pro kvóty prostředků katalogu Unity. I když je možné na vyžádání zvýšit některé limity, jiné jsou opravené. Abyste se vyhnuli přerušení, naplánujte předem a pokud očekáváte překročení kvót prostředků, obraťte se na tým účtů Azure Databricks.

Co jsou kvóty prostředků katalogu Unity?

Katalog Unity vynucuje kvóty prostředků pro všechny zabezpečitelné objekty spravované katalogem Unity. Tyto kvóty jsou uvedené v omezeních prostředků. V tomto článku se označují jako kvóty pro čisté místnosti, rozdílové sdílení, marketplace a katalog Unity.

Každá kvóta je definována jako počet objektů na nadřazený objekt (nebo obor). Například 10 000 tabulek na schéma nebo 1 000 000 tabulek na metastore.

Dotazování využití na kvóty prostředků

Pokud chcete aktivně monitorovat využití kvót prostředků, použijte rozhraní REST API pro kvóty prostředků katalogu Unity:

  • GetQuota načte využití kvóty pro jeden typ kvóty definované jako počet podřízených objektů na nadřazený objekt (například tabulky na metastore).
  • ListQuotasnačte všechny hodnoty kvóty v rámci cílového metastoru ve výchozím nastavení stránkované.

Obě rozhraní API vrací informace ve formě objektu quota_info , který obsahuje následující pole. Některá z těchto polí také použijete při vytváření požadavku pomocí rozhraní GetQuota API:

  • parent_securable_type: Typ nadřazeného objektu. Například pro počet tabulek podle schématu je hodnota parent_securable_type schema.

    Poznámka:

    Pro kvóty, ve kterých je nadřazený typ registrovaným modelem, nastavte parent_securable_type hodnotu function.

  • parent_full_name: Úplný název nadřazené kvóty Například main.default schéma. Pokud je nadřazeným objektem metastore, použijte ID metastoru v požadavku.

  • quota_name: Název kvóty. Toto je podřízený objekt (tabulka, schéma, sdílená složka a tak dále) přípona .-quota Například table-quota.

  • quota_count: Nejnovější počet využití. Například 33 tabulky na schéma.

  • quota_limit: Hodnota limitu kvóty v době výpočtu počtu kvót. Například 10000 tabulky na schéma.

  • last_refreshed_at: Čas poslední aktualizace počtu kvót. Zobrazí se jako časové razítko unixového epochu. Časové razítko můžete převést na čitelný formát člověka pomocí online nástrojů, jako je například Epoch Converter.

Rozhraní ListQuotas API také vrátí token stránky v odpovědi, pokud aktuální odpověď nevrátí všechny výsledky.

Autorizace a ověřování rozhraní API

Rozhraní API kvót prostředků můžou volat pouze správci účtů.

Správce účtu, který volá rozhraní API, by měl používat ověřování uživateleM (U2M) OAuth (pro uživatele nebo skupiny) nebo ověřování OAuth typu počítač-počítač (M2M) (pokud je správcem účtu instanční objekt). Viz Ověření přístupu k Azure Databricks pomocí uživatelského účtu pomocí OAuth (OAuth U2M) nebo ověření přístupu k Azure Databricks pomocí instančního objektu pomocí OAuth (OAuth M2M). Tokeny pat (PAT) generované službou Databricks jsou také možností, ale nedoporučuje se.

Získání hodnot využití kvóty pro konkrétní typ kvóty pomocí rozhraní GetQuota API

GetQuota Pomocí rozhraní API získáte informace o využití pro jednu kvótu prostředků definovanou párem podřízeného nadřazeného objektu.

Metoda: GET

Cesta: /unity-catalog/resource-quotas/{parent_securable_type}/{parent_full_name}/{quota_name}

Základní parametry: Popisy parametrů najdete v tématu Dotazování využití na kvóty prostředků.

Referenční informace k rozhraní API najdete v tématu GET /unity-catalog/resource-quotas/.

GetQuota počety jsou přesné do 30 minut od poslední operace vytvoření provedené v rámci nadřazené kvóty. Počet může být zastaralý, pokud byly provedeny pouze operace odstranění, protože Katalog Unity aktualizuje počet kvót pouze během vytváření prostředků. Volání GetQuota aktivuje aktualizaci počtu kvót, pokud je zastaralý, ale trigger je asynchronní a nové počty nemusí být vráceny při prvním volání.

Příklad požadavku

Příklad Pythonu, který požaduje počet schémat vytvořených v main katalogu v metastoru připojeném k pracovnímu prostoru:

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)

Příklad curl, který dělá totéž:

$ curl -X GET -H "Authentication: Bearer $OAUTH_TOKEN" \
"https://example-workspace.databricks.com/api/2.1/unity-catalog/resource-quotas/catalog/main/schema-quota"

Příklad odpovědi

Odpověď, která zobrazuje 2691 schémat proti limitu 10 000 schémat na metastor:

{
  "quota_info": {
    "parent_securable_type": "CATALOG",
    "parent_full_name": "main",
    "quota_name": "schema-quota",
    "quota_count": 2691,
    "quota_limit": 10000,
    "last_refreshed_at": 1722559381517
  }
}

Použití rozhraní ListQuotas API k získání dat o využití pro všechny typy kvót v metastoru

ListQuotas Pomocí rozhraní API získáte data o využití pro všechny typy kvót v metastoru.

Metoda: GET

Cesta: /unity-catalog/resource-quotas/all-resource-quotas

Základní parametry:

  • max_results: Počet výsledků, které se mají vrátit. Maximální hodnota je 500. Výchozí hodnota je 100.
  • page_token: Token stránky z předchozího požadavku na načtení další stránky výsledků.

Referenční informace k rozhraní API najdete v tématu GET /unity-catalog/resource-quotas/all-resource-quotas.

ListQuotas Na rozdílodch GetQuotas Neaktivuje ani aktualizace počtu kvót. K dosažení maximální přesnosti použijte GetQuota rozhraní API.

Příklad požadavku

Příklad Pythonu, který požaduje počty kvót pro všechny objekty v metastoru připojeném k pracovnímu prostoru, a určuje 5 výsledků, které se mají vrátit na stránku:

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

Příklad curl, který dělá totéž:

$ 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"

Příklad odpovědi

Odpověď, která zobrazuje jednu stránku s 5 počty kvót:

"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="