Replicação e compartilhamento de recursos

Nota

A API do Snowflake Feature Store está disponível no pacote Snowpark ML Python (snowflake-ml-python) v1.5.0 e posterior.

Como os objetos de armazenamento de recurso são implementados como objetos Snowflake, eles oferecem suporte à replicação e ao compartilhamento.

Replicação de um repositório de recursos

Para replicar um repositório de recursos, replique o banco de dados com seu esquema. Observe que a replicação do banco de dados replica todos os esquemas no banco de dados, não apenas os repositórios de recursos. Para obter mais informações sobre a replicação de banco de dados, consulte Introdução à replicação e failover em várias contas.

Compartilhamento de um repositório de recursos

Para compartilhar recursos entre contas, compartilhe todo o repositório de recursos compartilhando o esquema subjacente. Como isso compartilha todas as exibições de recurso no repositório de recursos, talvez você queira organizar as exibições de recurso em repositórios de recursos com base em com quem elas serão compartilhadas. Para obter mais informações sobre compartilhamento, consulte Sobre o Secure Data Sharing.

Compartilhamento de exibições de recurso

Também é possível compartilhar exibições de recurso individuais. Fazer isso requer etapas adicionais porque você também deve compartilhar as tags associadas, que o repositório de recurso usa internamente. As etapas abaixo compartilham uma única exibição de recurso.

  1. Defina as variáveis no bloco inicial, abaixo, da seguinte forma:

    • FS_SHARE: O nome do compartilhamento com o qual a exibição do recurso será compartilhada.

    • FS_DATABASE: O nome do banco de dados com o armazenamento de recursos.

    • FS_SCHEMA: O nome do esquema com a exibição do recurso.

    • FV_NAME: O nome e a versão da exibição do recurso separados por $. Por exemplo, se o nome da exibição do recurso for myfv e sua versão for v1, esse valor será myfv$v1.

    • ENTITY_NAME: A entidade à qual a exibição de recurso pertence.

    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. Execute as seguintes instruções, que definem algumas variáveis intermediárias e, em seguida, concedem a maioria dos privilégios necessários.

    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. Por fim, execute uma das duas instruções abaixo, dependendo do tipo de exibição de recurso que você está compartilhando.