다음을 통해 공유


Unity 카탈로그에 데이터베이스 등록

중요합니다

이 기능은 다음 지역의 공개 미리 보기에 있습니다. westuswestus2eastuseastus2centralussouthcentralusnortheuropewesteuropeaustraliaeastbrazilsouthcanadacentralcentralindiasoutheastasiauksouth

이 페이지에서는 Lakebase 데이터베이스를 읽기 전용 Unity 카탈로그 카탈로그로 등록하는 방법을 설명합니다. 이를 통해 Unity 카탈로그 권한을 사용하여 데이터 액세스를 관리하고 관리되는 데이터 동기화와 같은 통합을 활용할 수 있습니다.

소유권 및 권한

  • 데이터베이스가 으면 카탈로그와 함께 만들 수 있습니다. 이 경우 개체의 소유권은 다음 지침을 따릅니다.
  • 카탈로그 작성자는 Unity 카탈로그 메타스토어에 대한 권한을 추가로 가져야 CREATE CATALOG 합니다.

카탈로그 만들기

Unity 카탈로그에 데이터베이스를 등록하려면 Azure Databricks UI, API 호출, Python SDK 또는 CLI를 사용합니다.

사용자 인터페이스 (UI)

  1. 작업 영역 사이드바에서 컴퓨팅을 클릭합니다.
  2. 데이터베이스 인스턴스 탭에서 데이터베이스 인스턴스를 선택합니다.
  3. 카탈로그 탭에서 카탈로그 만들기를 클릭합니다.
  4. 기존 데이터베이스를 Unity 카탈로그 카탈로그로 등록하거나 새 데이터베이스를 만들 수 있습니다. 다음 옵션 중 하나를 사용합니다.
    • 기존 데이터베이스를 사용하려면 원하는 Unity 카탈로그 카탈로그 이름과 기존 Postgres 데이터베이스의 이름을 입력합니다. 기본 데이터베이스를 데이터베이스 databricks_postgres 이름으로 사용할 수 있습니다.
    • 새 Postgres 데이터베이스와 Unity 카탈로그 카탈로그를 동시에 만들려면 원하는 카탈로그 이름을 입력하고 새 데이터베이스 만들기를 켭니다.
  5. 만들기를 클릭합니다.
  6. 만든 후 카탈로그 목록에서 카탈로그를 클릭하여 카탈로그 탐색기 보기를 확인 합니다 .

Python SDK

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.database import DatabaseCatalog

# Initialize the Workspace client
w = WorkspaceClient()

# Register an existing database as a UC catalog
catalog = w.database.create_database_catalog(
    DatabaseCatalog(
        name="my_catalog",                    # Name of the UC catalog to create
        database_instance_name="my-instance", # Name of the database instance
        database_name="databricks_postgres",  # Name of the existing Postgres database
    )
)
print(f"Created database catalog: {catalog.name}")

# Create a new database and register it as a UC catalog
catalog = w.database.create_database_catalog(
    DatabaseCatalog(
        name="new_catalog",                   # Name of the UC catalog to create
        database_instance_name="my-instance", # Name of the database instance
        database_name="new_database",         # Name of the Postgres database to register (and optionally create)
        create_database_if_not_exists=True    # Create the database if it doesn't exist
    )
)
print(f"Created new database and catalog: {catalog.name}")

CLI

# Register an existing database as a UC catalog
databricks database create-database-catalog my_catalog my-instance databricks_postgres

# Create a new database and register it as a UC catalog
databricks database create-database-catalog new_catalog my-instance new_database \
  --create-database-if-not-exists

curl

export PG_DATABASE_NAME="<name of the PG database to sync to UC>"
export CATLAOG_NAME="<name of UC catalog to create>"
// Optional
export CREATE_DATABASE_IF_NOT_EXISTS="<whether to create a new database>"
curl -X POST --header "Authorization: Bearer ${DATABRICKS_TOKEN}" https://$WORKSPACE/api/2.0/database/catalogs \
--data-binary @- << EOF
{
  "name": "$CATALOG_NAME",
  "database_name": "$PG_DATABASE_NAME",
  "instance_name": "$INSTANCE_NAME",
  "create_database_if_not_exists": "$CREATE_DATABASE_IF_NOT_EXISTS" // optional
}

제한점

  • 데이터베이스 이름은 영숫자 또는 밑줄 문자만 포함해야 합니다. 데이터베이스 이름에는 하이픈을 포함할 수 없습니다.
  • 데이터베이스를 기반으로 Unity 카탈로그에서 만든 카탈로그는 읽기 전용입니다.

데이터베이스 카탈로그를 통해 Unity 카탈로그에서 Postgres 개체 탐색

카탈로그를 보려면 실행 중인 서버리스 SQL 웨어하우스가 연결되어 있는지 확인합니다.

  1. 작업 영역 사이드바에서 카탈로그 를 클릭합니다.
  2. 카탈로그 브라우저에서 클러스터를 클릭하고 실행 중인 서버리스 SQL 웨어하우스를 컴퓨팅 리소스로 선택합니다.
  3. 시작을 클릭하고 닫습니다.

카탈로그, 스키마 및 테이블을 열면 동기화가 자동으로 트리거됩니다. 그러나 UI는 Postgres 요청 수를 줄이기 위해 데이터를 캐시할 수 있으므로 새 개체가 즉시 표시되지 않을 수 있습니다.

전체 새로 고침을 트리거하려면 스키마 새로 고침 아이콘을 클릭합니다.

Unity 카탈로그에서 데이터베이스 카탈로그 삭제

삭제하려면 데이터베이스 카탈로그의 소유자 또는 메타스토어 관리자여야 합니다.

Databricks는 먼저 데이터베이스 카탈로그에서 동기화된 모든 테이블을 삭제하는 것이 좋습니다. 각 원본 테이블은 20개의 동기화된 테이블을 만드는 데만 사용할 수 있으며, 데이터베이스 카탈로그를 삭제한 후 Unity 카탈로그에서 동기화된 테이블을 정리하는 데 최대 3일이 걸릴 수 있습니다. Unity 카탈로그에서 삭제 보류 중인 동기화된 테이블은 원본 테이블 제한당 동기화된 테이블 20개에 해당합니다.

Azure Databricks UI, Python SDK, CLI 또는 API를 사용하여 데이터베이스 카탈로그를 삭제합니다.

사용자 인터페이스 (UI)

  1. 작업 영역 사이드바에서 카탈로그 를 클릭합니다.
  2. 카탈로그 창에서 삭제할 데이터베이스 카탈로그 를 선택합니다.
  3. Kebab 메뉴 아이콘 을 클릭하고 삭제를 클릭합니다.

Python SDK

from databricks.sdk import WorkspaceClient

# Initialize the Workspace client
w = WorkspaceClient()

# Delete a database catalog
catalog_name = "my_catalog"
w.database.delete_database_catalog(name=catalog_name)
print(f"Deleted database catalog: {catalog_name}")

CLI

# Delete a database catalog
databricks database delete-database-catalog my_catalog

curl

curl -X DELETE --header "Authorization: Bearer ${DATABRICKS_TOKEN}" https://$WORKSPACE/api/2.0/database/catalogs/$CATALOG_NAME

카탈로그가 삭제되면 Postgres 데이터베이스의 이름을 바꾸거나 삭제할 수 있습니다.