다음을 통해 공유


Unity Catalog 리소스 할당량 사용 모니터링

이 문서에서는 리소스 할당량이 적용되는 Unity Catalog 보안 개체의 사용량을 모니터링하는 방법을 설명합니다.

Unity Catalog 리소스 할당량 API를 사용하여 사용량을 추적할 수 있습니다. 요청 시 일부 한도를 늘릴 수 있지만 다른 한도는 고정되어 있습니다. 중단을 방지하려면 미리 계획하고 리소스 할당량을 초과할 것으로 예상되는 경우 Azure Databricks 계정 팀에 문의하세요.

Unity Catalog 리소스 할당량이란?

Unity Catalog는 Unity Catalog에서 관리하는 모든 보안 개체에 리소스 할당량을 적용합니다. 이러한 할당량은 리소스 한도에 나열됩니다. 이 문서에서는 클린룸, Delta Sharing, 마켓플레이스 및 Unity Catalog에 대한 할당량으로 식별됩니다.

각 할당량은 부모 개체(또는 범위)당 개체 수로 정의됩니다. 예를 들어 스키마당 10,000개 테이블 또는 메타스토어당 1,000,000개의 테이블이 있습니다.

리소스 할당량에 대한 사용량 쿼리

리소스 할당량에 대한 사용량을 사전에 모니터링하려면 Unity Catalog 리소스 할당량 REST API를 사용합니다.

  • GetQuota에서는 부모당 자식 개체 수(예: 메타스토어당 테이블 수)로 정의된 한 할당량 유형의 할당량 사용량을 검색합니다.
  • ListQuotas에서는 기본값으로 페이지를 매긴 대상 메타스토어 아래에서 모든 할당량 값을 검색합니다.

두 API 모두 다음 필드가 포함된 quota_info 개체 양식으로 정보를 반환합니다. GetQuota API를 사용하여 요청을 수행할 때도 이러한 필드 중 일부를 사용합니다.

  • parent_securable_type: 부모 개체 유형. 예를 들어 스키마당 테이블 수의 경우 parent_securable_typeschema입니다.

    참고 항목

    부모 유형이 등록된 모델인 할당량의 경우 parent_securable_typefunction으로 설정합니다.

  • parent_full_name: 할당량 부모의 전체 이름. 예를 들어 main.default 스키마입니다. 부모가 메타스토어인 경우 요청에서 메타스토어 ID를 사용합니다.

  • quota_name: 할당량의 이름. -quota 접미사가 추가되는 자식 개체(테이블, 스키마, 공유 등)입니다. 예들 들어 table-quota입니다.

  • quota_count: 최신 사용량 수. 예를 들어 스키마당 33개의 테이블입니다.

  • quota_limit: 할당량 수를 계산할 때 할당량 한도 값. 예를 들어 스키마당 10000개의 테이블입니다.

  • last_refreshed_at: 할당량 수를 마지막으로 새로 고친 시간. Unix epoch 타임스탬프로 표시됩니다. Epoch Converter와 같은 온라인 도구를 사용하여 타임스탬프를 사람이 읽을 수 있는 형식으로 변환할 수 있습니다.

또한 ListQuotas API는 현재 응답이 모든 결과를 반환하지 않는 경우 응답에서 페이지 토큰을 반환합니다.

API 권한 부여 및 인증

계정 관리자만 리소스 할당량 API를 호출할 수 있습니다.

API를 호출하는 계정 관리자는 OAuth U2M(사용자 대 컴퓨터) 인증(사용자 또는 그룹의 경우) 또는 OAuth M2M(컴퓨터 대 컴퓨터) 인증(계정 관리자가 서비스 주체인 경우)을 사용해야 합니다. OAuth(OAuth U2M)를 사용하여 사용자 계정으로 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 호출 시 만료된 경우 할당량 개수의 새로 고침을 트리거합니다. 그러나 트리거는 비동기식이며 첫 번째 호출에서 새 개수가 반환되지 않을 수 있습니다.

요청 예제

작업 영역에 연결된 메타스토어의 main 카탈로그에 생성된 스키마 수를 요청하는 Python 예제:

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개의 스키마 한도에 대해 2,691개의 스키마를 보여 주는 응답:

{
  "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를 참조하세요.

GetQuotas와 달리, ListQuotas에는 개수의 새로 고침에 대한 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="