監視 Unity Catalog 資源配額的使用狀況
本文說明如何監視受限於資源配額之 Unity Catalog 安全物件的使用狀況。
您可以使用 Unity Catalog 資源配額 API 追蹤使用狀況。 雖然部分限制經要求可提高,但其他限制則是固定不變。 若要避免中斷,如果您預期超過資源配額,請事先策劃並連絡 Azure Databricks 帳戶團隊。
Unity Catalog 資源配額是什麼?
Unity Catalog 會對 Unity Catalog 管理之所有安全物件強制執行資源配額。 這些配額列在資源限制中。 那篇文章將配額識別為「無塵室」、「Delta Sharing」、「Marketplace」和「Unity Catalog 」的配額。
每個配額的定義為,每個父物件 (或範圍) 的一些物件。 例如,每個結構描述 10,000 份資料表,或每個中繼存放區 1,000,000 份資料表。
根據資源配額查詢使用狀況
若要主動根據資源配額監視使用狀況,請使用 Unity Catalog Resource Quotas REST API:
GetQuota
擷取一個配額類型的配額使用狀況,定義為每個父系的子物件數目 (例如,每個中繼存放區的資料表)。ListQuotas
預設會擷取目標中繼存放區下所有的配額值。
這兩個 API 都會以包含下列欄位的 quota_info
物件形式傳回資訊。 使用 GetQuota API 提出要求時也會使用其中一些欄位:
parent_securable_type
:父物件類型。 例如,針對每個結構描述的資料表計數,parent_securable_type
是schema
。注意
對於父類型為已註冊模型的配額,請將
parent_securable_type
設定為function
。parent_full_name:
配額父系的全名。 例如,main.default
結構描述。 如果父系是中繼存放區,請在要求使用中繼存放區識別碼。quota_name
:配額名稱。 這是子物件 (資料表、結構描述 、共用等等) 後面接上-quota
。 例如:table-quota
。quota_count
:最新的使用計數。 例如,每個結構描述33
個資料表。quota_limit
:計算配額計數時的配額限制值。 例如,每個結構描述10000
個資料表。last_refreshed_at
:上次重新整理配額計數的時間。 這會顯示為 Unix Epoch 時間戳記。 您可以使用上線工具,例如 Epoch Converter,將時間戳記轉換成人類可讀取的格式。
如果目前的回覆未傳回所有結果,ListQuotas
API 也會在回覆傳回頁面權杖。
API 授權和驗證
只有帳戶管理員可以呼叫 Resource Quotas API。
呼叫 API 的帳戶管理員應該使用 OAuth 使用者對機器 (U2M) 驗證 (適用於使用者或群組) 或 OAuth 機器對機器 (M2M) 驗證 (如果帳戶管理員是服務主體)。 請參閱使用 OAuth (OAuth M2M) 透過使用者帳戶對 Azure Databricks 的存取進行驗證或使用 OAuth (OAuth M2M) 透過服務主體對 Azure Databricks 的存取進行驗證。 Databricks 產生的個人存取權杖 (PAT) 也是一個選項,但不建議使用。
使用 GetQuota API 取得特定配額類型的配額使用值
使用 GetQuota
API 取得單一資源配額的使用資訊,如子系父系配對所定義。
方法:GET
路徑:/unity-catalog/resource-quotas/{parent_securable_type}/{parent_full_name}/{quota_name}
主體參數:如需參數描述,請參閱根據資源配額查詢使用狀況。
如需 API 參照,請參閱 GET /unity-catalog/resource-quotas/。
GetQuota
計數在配額父系下執行之最後一次建立作業 30 分鐘內是精確的。 如果只執行刪除作業,計數可能已過期,因為 Unity Catalog 只會在資源建立期間更新配額計數。 如果配額計數已過期,則呼叫 GetQuota
會觸發重新整理配額計數,不過觸發程序非同步,而且第一次呼叫可能不會傳回新的計數。
要求範例
這個 Python 範例要求附加至工作區之中繼存放區目錄中 main
建立的結構描述數目:
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 範例:
$ curl -X GET -H "Authentication: Bearer $OAUTH_TOKEN" \
"https://example-workspace.databricks.com/api/2.1/unity-catalog/resource-quotas/catalog/main/schema-quota"
回應範例
根據每個中繼存放區 10,000 個結構描述的限制,顯示 2691 個結構描述的回覆:
{
"quota_info": {
"parent_securable_type": "CATALOG",
"parent_full_name": "main",
"quota_name": "schema-quota",
"quota_count": 2691,
"quota_limit": 10000,
"last_refreshed_at": 1722559381517
}
}
使用 ListQuotas API 取得中繼存放區中所有配額類型的使用方式資料
使用 ListQuotas
API 取得中繼存放區中所有配額類型的使用方式資料。
方法:GET
路徑:/unity-catalog/resource-quotas/all-resource-quotas
主體參數:
max_results
:要傳回的結果數目。 最大值為 500。 預設為 100。page_token
:上一個要求擷取下一頁的結果的頁面權杖。
如需 API 參照,請參閱 GET /unity-catalog/resource-quotas/all-resource-quotas。
ListQuotas
與 GetQuotas
不同,沒有計數的新鮮度的 SLA。 它也不會觸發配額計數重新整理。 請使用 GetQuota
API,正確性最高。
要求範例
Python 範例針對附加至工作區之中繼存放區中的所有物件要求配額計數,並指定每個頁面傳回 5 筆結果:
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 範例:
$ 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"
回應範例
一頁顯示 5 個配額計數的回覆:
"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="