ALTER DATABASE(카탈로그 연결)

기존 :doc:`카탈로그 연결 데이터베이스</user-guide/tables-iceberg-catalog-linked-database>`의 속성을 수정합니다.

데이터베이스 수정은 다음 작업을 포함합니다.

  • 자동 검색 활성화 또는 끄기

  • 허용 및 차단된 네임스페이스 변경

  • Snowflake가 원격 카탈로그에서 스키마와 테이블을 자동으로 검색하는 데 사용할 시간 간격 변경

  • 원격 카탈로그의 읽기 전용 또는 쓰기 가능 여부 변경

구문

ALTER DATABASE [ IF EXISTS ] <name> RENAME TO <new_name>

ALTER DATABASE [ IF EXISTS ] <name> SUSPEND DISCOVERY

ALTER DATABASE [ IF EXISTS ] <name> RESUME DISCOVERY

ALTER DATABASE [ IF EXISTS ] <name> UPDATE LINKED_CATALOG
  ADD ( '<namespace>' [ , ... ] ) TO ALLOWED_NAMESPACES

ALTER DATABASE [ IF EXISTS ] <name> UPDATE LINKED_CATALOG
  REMOVE ( '<namespace>' [ , ... ] ) FROM ALLOWED_NAMESPACES

ALTER DATABASE [ IF EXISTS ] <name> UPDATE LINKED_CATALOG
  UNSET ALLOWED_NAMESPACES

ALTER DATABASE [ IF EXISTS ] <name> UPDATE LINKED_CATALOG
  ADD ( '<namespace>' [ , ... ] ) TO BLOCKED_NAMESPACES

ALTER DATABASE [ IF EXISTS ] <name> UPDATE LINKED_CATALOG
  REMOVE ( '<namespace>' [ , ... ] ) FROM BLOCKED_NAMESPACES

ALTER DATABASE [ IF EXISTS ] <name> UPDATE LINKED_CATALOG
  UNSET BLOCKED_NAMESPACES

ALTER DATABASE [ IF EXISTS ] <name> UPDATE LINKED_CATALOG
  SET SYNC_INTERVAL_SECONDS = <value>

ALTER DATABASE [ IF EXISTS ] <name> UPDATE LINKED_CATALOG
  SET ALLOWED_WRITE_OPERATIONS = { NONE | ALL }

ALTER DATABASE [ IF EXISTS ] <name> SET [ BASE_LOCATION_PREFIX = '<string>' ]
                                        [ COMMENT = '<string_literal>' ]
                                        [ CONTACT <purpose> = <contact_name> [ , <purpose> = <contact_name> ... ] ]

ALTER DATABASE [ IF EXISTS ] <name> UNSET { BASE_LOCATION_PREFIX |
                                            COMMENT              |
                                            CONTACT
                                          }
Copy

매개 변수

name

변경할 카탈로그 연결 데이터베이스의 식별자를 지정합니다.

식별자에 공백이나 특수 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 합니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.

자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.

RENAME TO new_name

카탈로그 연결 데이터베이스의 이름을 :samp:`{new_name}`으로 변경합니다. 새 식별자는 계정에 대해 고유한 식별자여야 합니다.

자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.

오브젝트의 이름이 바뀌면 그 오브젝트를 참조하는 다른 오브젝트도 새 이름으로 업데이트해야 합니다.

SUSPEND DISCOVERY

자동 검색을 일시 중단합니다. 기본 문제로 인해 Snowflake가 원격 카탈로그에서 테이블을 검색하지 못하는 경우 불필요한 크레딧이나 리소스가 소비되지 않도록 자동 검색을 일시 중단할 수 있습니다. 예를 들어, 권한 누락 또는 구성 오류와 관련된 근본적인 문제가 있으므로 자동 검색을 일시 중단할 수 있습니다. 문제를 해결한 후 ALTER DATABASE … RESUME DISCOVERY를 실행하여 검색을 재개합니다.

자동 검색이 일시 중단되었는지 확인하려면 SYSTEM$CATALOG_LINK_STATUS 함수를 호출하고 executionState 필드가 :code:`SUSPENDED`로 설정되어 있는지 확인합니다. 자동 검색을 일시 중단하지만 자동 검색 작업이 현재 실행 중인 경우 작업이 완료될 때까지 실행 상태가 일시 중단됨으로 변경되지 않습니다.

참고

자동 검색을 일시 중단해도 자동 새로 고침은 해제되지 않습니다. 기존 Iceberg 테이블에 대한 자동 새로 고침을 끄려면 자동 새로 고침 활성화 또는 취소 섹션을 참조하세요.

RESUME DISCOVERY

자동 검색을 재개합니다. 다음과 같은 이유로 검색을 재개할 수 있습니다.

  • 문제를 해결하기 위해 검색을 일시 중단했으며 이제 검색을 재개할 준비가 되었습니다.

  • 수정된 권한과 같은 최근 변경 사항이 선택되도록 즉시 검색을 강제로 실행하려고 합니다.

자동 검색이 재개되었는지 확인하려면 SYSTEM$CATALOG_LINK_STATUS 함수를 호출한 다음, executionState 필드가 :code:`RUNNING`으로 설정되었는지 확인합니다.

UPDATE LINKED_CATALOG

카탈로그 연결 데이터베이스에 적용되는 속성을 업데이트합니다. 다음 속성을 설정할 수 있습니다.

ADD ( 'namespace1' [ , 'namespace2' ,  ... ] ) TO ALLOWED_NAMESPACES

원격 카탈로그에서 하나 이상의 네임스페이스를 지정하여 자동 검색 범위를 제한할 수 있습니다. Snowflake는 지정된 네임스페이스와 하위에 중첩된 모든 네임스페이스 및 테이블을 동기화합니다.

  • 빈 ALLOWED_NAMESPACES 목록으로 카탈로그 연결 데이터베이스를 생성한 경우 Snowflake는 원격 카탈로그의 모든 네임스페이스와 테이블을 동기화합니다.

    나중에 ALLOWED_NAMESPACES 매개 변수를 지정하여 특정 네임스페이스 목록만 허용하도록 데이터베이스를 변경하는 경우 Snowflake는 사용자가 허용하는 네임스페이스만 유지하도록 카탈로그 연결 데이터베이스를 업데이트합니다. 다른 모든 네임스페이스와 테이블은 카탈로그 연결 데이터베이스에서 삭제됩니다.

  • ALLOWED_NAMESPACES 목록이 있는 카탈로그 연결 데이터베이스를 생성한 경우 Snowflake는 카탈로그 연결 데이터베이스에 허용된 네임스페이스만 생성합니다.

    나중에 데이터베이스를 변경하여 네임스페이스를 ALLOWED_NAMESPACES 목록에 추가하는 경우 Snowflake는 새로 추가된 네임스페이스만 생성하고 기존의 허용된 네임스페이스를 유지합니다. ALLOWED_NAMESPACES 목록에서 네임스페이스를 제거하는 경우 Snowflake는 카탈로그 연결 데이터베이스에서 새로 제거된 네임스페이스만 삭제하고 나머지 허용된 네임스페이스는 모두 유지합니다.

중첩 네임스페이스가 ALLOWED_NAMESPACES 목록에 포함되어 있지만 NAMESPACE_MODE 매개 변수를 IGNORE_NESTED_NAMESPACE로 설정한 경우, Snowflake는 해당 중첩 네임스페이스 및 하위 스키마와 테이블을 동기화하지 않습니다.

REMOVE ( 'namespace1' [ , 'namespace2' ,  ... ] ) FROM ALLOWED_NAMESPACES

허용된 네임스페이스 목록에서 제거할 원격 카탈로그에 있는 하나 이상의 네임스페이스를 지정합니다.

UNSET ALLOWED_NAMESPACES

허용된 네임스페이스 목록을 기본값(모든 네임스페이스가 허용됨)으로 설정 해제합니다.

ADD ( 'namespace1' [ , 'namespace2' ,  ... ] ) TO BLOCKED_NAMESPACES

원격 카탈로그에서 자동 검색을 차단할 하나 이상의 네임스페이스를 지정합니다.

Snowflake는 지정된 네임스페이스와 하위에 중첩된 모든 네임스페이스 및 테이블을 차단합니다.

ALLOWED_NAMESPACES와 BLOCKED_NAMESPACES를 모두 지정할 경우, BLOCKED_NAMESPACES 목록이 우선 적용됩니다. 예를 들어, ns1.ns2 는 허용되지만 ns1 은 차단된 경우, Snowflake는 ns1.ns2 를 동기화하지 않습니다.

REMOVE ( 'namespace1' [ , 'namespace2' ,  ... ] ) FROM BLOCKED_NAMESPACES

차단된 네임스페이스 목록에서 제거할 원격 카탈로그에 있는 하나 이상의 네임스페이스를 지정합니다.

UNSET BLOCKED_NAMESPACES

차단된 네임스페이스 목록을 기본값(0개의 네임스페이스가 차단됨)으로 설정 해제합니다.

SET SYNC_INTERVAL_SECONDS = value

Snowflake가 원격 카탈로그에서 스키마와 테이블을 자동으로 검색하는 데 사용할 시간 간격(초)을 지정합니다. 더 긴 시간 간격을 설정하여 크레딧 사용을 줄일 수 있습니다.

값: 30~86,400(1일)

기본값: 30초

SET ALLOWED_WRITE_OPERATIONS = { NONE | ALL }

카탈로그 연결 데이터베이스가 읽기 전용인지 또는 쓰기 가능한지를 지정합니다.

  • NONE: 카탈로그 연결 데이터베이스는 읽기 전용입니다.

    카탈로그 연결 데이터베이스가 읽기 전용인 경우 실행하는 작업 중 카탈로그에 커밋해야 하는 모든 작업이 실패합니다. 예를 들면 DROP ICEBERG TABLE과 같습니다.

  • ALL: 카탈로그 연결 데이터베이스가 쓰기 가능합니다.

    경고

    카탈로그 연결 데이터베이스에 쓰기 권한이 활성화된 경우 Snowflake는 테이블 삭제를 원격 카탈로그로 전파하여 두 시스템에서 테이블과 데이터를 제거합니다.

기본값: ALL

SET ...

카탈로그 연결 데이터베이스에 대해 설정할 하나 이상의 속성 또는 매개 변수를 공백, 쉼표 또는 줄 바꿈으로 구분하여 지정합니다.

BASE_LOCATION_PREFIX = 'string'

Snowflake에서 외부 관리형 Apache Iceberg™ 테이블의 쓰기 경로에 사용할 접두사를 지정합니다. 자세한 내용은 Iceberg 테이블의 데이터 및 메타데이터 디렉터리 및 :ref:`BASE_LOCATION_PREFIX<label-base_location_prefix>`를 참조하세요.

기본값: 값 없음

COMMENT = 'string_literal'

카탈로그 연결 데이터베이스에 대한 설명을 추가하거나 기존 설명을 덮어씁니다.

CONTACT purpose = contact [ , purpose = contact ... ]

기존 오브젝트를 하나 이상의 연락처 와 연결합니다.

동일한 문에서 다른 속성이 있는 CONTACT 속성을 설정할 수 없습니다.

UNSET ...

데이터베이스에 대해 설정 해제할 하나 이상의 속성 또는 매개 변수를 지정하여 이들을 기본값으로 재설정합니다.

  • BASE_LOCATION_PREFIX

  • COMMENT

  • CONTACT

액세스 제어 요구 사항

이 작업을 실행하는 데 사용되는 역할 에는 최소한 다음 권한 이 있어야 합니다.

권한

오브젝트

참고

OWNERSHIP

수정하려는 카탈로그 연결 데이터베이스입니다.

자동 테이블 검색을 일시 중단하거나 재개하는 데 필요합니다.

OWNERSHIP 또는 MODIFY

수정하려는 카탈로그 연결 데이터베이스입니다.

다른 모든 작업에 필요합니다.

지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.

보안 오브젝트 에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여에 대한 일반적인 정보는 액세스 제어의 개요 섹션을 참조하십시오.

이름이 :code:`my_linked_db`인 카탈로그 연결 데이터베이스에 대해 허용된 네임스페이스 목록을 기본값으로 재설정합니다.

ALTER DATABASE IF EXISTS my_linked_db UPDATE LINKED_CATALOG
  UNSET ALLOWED_NAMESPACES;
Copy

이름이 :code:`my_linked_db`인 카탈로그 연결 데이터베이스에 대해 허용된 네임스페이스 목록에 :code:`my_namespace`를 추가합니다.

ALTER DATABASE IF EXISTS my_linked_db UPDATE LINKED_CATALOG
 ADD ('my_namespace') TO ALLOWED_NAMESPACES;
Copy