복제 및 공유 기능

참고

Snowflake Feature Store API는 Snowpark ML Python 패키지(snowflake-ml-python) v1.5.0 이상에서 사용할 수 있습니다.

기능 스토어 오브젝트는 Snowflake 오브젝트로 구현되므로 복제와 공유를 지원합니다.

기능 저장소 복제하기

기능 스토어를 복제하려면 해당 스키마가 포함된 데이터베이스를 복제해야 합니다. 데이터베이스를 복제하면 기능 스토어뿐만 아니라 데이터베이스의 모든 스키마가 복제됩니다. 데이터베이스 복제에 대한 자세한 내용은 여러 계정에 걸쳐 복제 및 장애 조치 도입 섹션을 참조하십시오.

기능 저장소 공유

여러 계정에서 기능을 공유하려면 기본 스키마를 공유하여 전체 기능 저장소를 공유합니다. 이렇게 하면 기능 스토어에 있는 모든 기능 뷰가 공유되므로, 기능 뷰를 공유할 대상에 따라 기능 스토어로 구성하는 것이 좋습니다. 공유에 대한 자세한 내용은 Secure Data Sharing 정보 섹션을 참조하십시오.

기능 뷰 공유

개별 기능 뷰 를 공유할 수도 있습니다. 이를 수행하려면 기능 스토어가 내부적으로 사용하는 관련 태그도 공유해야 하므로 추가 단계가 필요합니다. 아래 단계에서는 단일 기능 뷰를 공유합니다.

  1. 아래의 초기 블록에서 변수를 다음과 같이 설정합니다.

    • FS_SHARE: 기능 뷰가 공유될 공유의 이름입니다.

    • FS_DATABASE: 기능 스토어가 포함된 데이터베이스의 이름입니다.

    • FS_SCHEMA: 기능 뷰가 포함된 스키마의 이름입니다.

    • FV_NAME: 기능 뷰의 이름과 버전을 $ 로 구분합니다. 예를 들어, 기능 뷰의 이름이 myfv 이고 해당 버전이 v1 인 경우 이 값은 myfv$v1 입니다.

    • ENTITY_NAME: 기능 뷰가 속한 엔터티입니다.

    SET FS_SHARE = '<fs_share_name>';
    SET FS_DATABASE = '<fs_database_name>';
    SET FS_SCHEMA = '<fs_schema_name>';
    SET FV_NAME = '<feature_view_name_with_version>';
    SET ENTITY_NAME = '<entity_name>';
    
    Copy
  2. 다음 문을 실행하여 일부 중간 변수를 설정한 다음 필요한 대부분의 권한을 부여합니다.

    SET SCHEMA_FQN = CONCAT($FS_DATABASE, '.', $FS_SCHEMA);
    SET TAG_OBJECT_FQN = CONCAT($SCHEMA_FQN, '.', 'SNOWML_FEATURE_STORE_OBJECT');
    SET TAG_METADATA_FQN = CONCAT($SCHEMA_FQN, '.', 'SNOWML_FEATURE_VIEW_METADATA');
    SET FULL_ENTITY_NAME = CONCAT('SNOWML_FEATURE_STORE_ENTITY_', $ENTITY_NAME);
    SET ENTITY_FQN = CONCAT($SCHEMA_FQN, '.', $FULL_ENTITY_NAME);
    SET FV_FQN = CONCAT($SCHEMA_FQN, '.', $FV_NAME);
    
    -- Grant privileges to target share
    GRANT USAGE ON DATABASE IDENTIFIER($FS_DATABASE) TO SHARE IDENTIFIER($FS_SHARE);
    GRANT REFERENCE_USAGE ON DATABASE IDENTIFIER($FS_DATABASE) to SHARE IDENTIFIER($FS_SHARE);
    GRANT USAGE ON SCHEMA IDENTIFIER($SCHEMA_FQN) TO SHARE IDENTIFIER($FS_SHARE);
    GRANT READ ON TAG IDENTIFIER($TAG_OBJECT_FQN) TO SHARE IDENTIFIER($FS_SHARE);
    GRANT READ ON TAG IDENTIFIER($TAG_METADATA_FQN) TO SHARE IDENTIFIER($FS_SHARE);
    GRANT READ ON TAG IDENTIFIER($ENTITY_FQN) TO SHARE IDENTIFIER($FS_SHARE);
    
    Copy
  3. 마지막으로, 공유하는 기능 뷰의 유형에 따라 아래 두 가지 문 중 하나를 실행합니다.

    • Snowflake 관리 기능 뷰 의 경우:

      GRANT SELECT ON DYNAMIC TABLE IDENTIFIER($FV_FQN) TO SHARE IDENTIFIER($FS_SHARE);
      
      Copy
    • 외부 기능 뷰 의 경우:

      GRANT SELECT ON VIEW IDENTIFIER($FV_FQN) TO SHARE IDENTIFIER($FS_SHARE);
      
      Copy