종속성 데이터베이스: 데이터베이스 간 참조 관리하기¶
Snowflake Declarative Native Apps 에서 공급자는 매니페스트 기반 모델을 사용하여 데이터 제품을 공유할 수 있습니다. 대부분의 앱에서 보안 뷰는 다른 공급자 데이터베이스의 오브젝트를 참조합니다. 클래식 보안 공유에서 사용자(공급자)는 참조된 각 데이터베이스에 대해 공유에 대한 REFERENCE_USAGE 권한을 부여합니다. Declarative Native Apps 에서 :code:`required_databases`를 사용하여 매니페스트에서 해당 종속성 데이터베이스를 선언하므로, 특히 다른 리전에서 설치 시 데이터베이스 간 참조를 안정적으로 확인할 수 있습니다. 이는 의미 체계 뷰, 사용자 정의 함수(UDFs) 또는 보안 뷰에서 사용하는 프로시저에도 적용됩니다.
required_databases를 사용해야 하는 경우¶
shared_content`의 공유 오브젝트가 :code:`shared_content/databases 아래에 나열되지 않은 데이터베이스의 오브젝트를 참조할 때마다 :code:`required_databases`에 데이터베이스를 포함해야 합니다. 이는 이러한 종속성이 있다고 가정할 수 없는 리전 간 배포에 필수적입니다. 다음과 같은 상황을 예로 들 수 있습니다.
다른 공급자 데이터베이스의 테이블 또는 뷰에서 JOIN/SELECT하는 공유 데이터베이스의 보안 뷰
다른 데이터베이스에 있는 UDFs 또는 프로시저를 참조하는 뷰
노트북에서 쿼리하는 노트북 논리 또는 뷰가 다른 데이터베이스의 오브젝트에 종속되는 경우 :code:`application_content`를 통해 포함된 노트북
기본 물리적 테이블 또는 뷰가 다른 데이터베이스에 있는 의미 체계 뷰
데이터베이스 간 종속성은 일반적입니다. 외부 데이터베이스를 명시적으로 선언하지 않으면 앱이 공급자의 리전에서 유효성 검사 또는 설치에 성공하지만, 필수 참조를 확인할 수 없기 때문에 다른 리전에서는 실패할 수 있습니다. :code:`required_databases`는 앱이 빌드, 릴리스, 설치될 때마다 존재하고 확인할 수 있어야 하는 종속성 데이터베이스의 선언적 목록을 제공하여 이러한 모호성을 제거합니다.
종속성 데이터베이스가 required_databases`에 명시적으로 선언되지 않은 경우 패키지 버전 릴리스가 차단됩니다. BUILD, COMMIT, RELEASE 시 오류 메시지가 생성되며, 특히 참조된 데이터베이스가 매니페스트의 `required_databases 섹션에서 누락되었음을 나타냅니다.
required_databases를 사용하지 않아야 하는 경우¶
다음의 경우 :code:`required_databases`에 데이터베이스를 포함하는 작업은 적용되지 않습니다.
shared_content/databases아래에 나열된 데이터베이스에 완전히 포함된 오브젝트매니페스트 선언 대신 공유에 대한 권한 부여(REFERENCE_USAGE 포함)를 사용하는 클래식 공유
복제 제한 사항¶
`required_databases`에서 데이터베이스를 선언해도 해당 데이터베이스 또는 해당 내용이 복제되지 않습니다. 프레임워크와 목록 워크플로가 참조를 적절하게 준비하고 확인할 수 있도록 종속성을 등록합니다.
매니페스트에서 `required_databases`를 사용하는 경우 리전 간 설치 및 장애 조치를 지원하려면 다음을 수행합니다.
종속성 데이터베이스 식별:
shared_content.required_databases아래의 각 항목에 대해 소스 계정에서 매핑되는 공급자 소유 데이터베이스를 확인합니다.각 종속성에 대한 복제 구성: 앱을 빌드, 릴리스, 설치할 리전 및 계정에 대한 모든 종속성 데이터베이스에 대해 데이터베이스(또는 계정) 복제를 설정합니다. 이 단계에서는 표준 Snowflake 복제 기능을 사용합니다.
이름을 일관되게 유지: 대상 리전의 데이터베이스 이름이 `required_databases`에서 선언한 이름과 정확히 일치하는지 확인합니다. 이름 불일치로 인해 BUILD/COMMIT/RELEASE가 실패하고 참조된 데이터베이스가 `required_databases`에서 누락되었음을 나타내는 오류가 발생합니다.
복제 완료 후 유효성 검사: 초기 복제 및 후속 새로 고침이 완료된 후 대상 리전에서 BUILD, COMMIT 또는 RELEASE 명령을 실행합니다. 확인되지 않았거나 누락된 종속성 데이터베이스에 대한 오류가 표시되면 다음을 확인합니다.
데이터베이스가 복제되어 대상 계정 및 리전에서 사용할 수 있습니다.
데이터베이스 이름이 `required_databases`의 값과 일치합니다.
해당 데이터베이스가 사용하는 연결된 종속성도 복제되고 올바르게 명명됩니다.
데이터베이스 및 계정 복제를 구성할 때의 엔드투엔드 단계 및 옵션은 여러 계정에 걸쳐 복제 및 장애 조치 도입 섹션을 참조하세요.