Réplication et partage de fonctionnalités

Note

L’API Snowflake Feature Store est disponible dans le paquet Snowpark ML Python (snowflake-ml-python) v1.5.0 et ultérieure.

Étant donné que les objets du magasin de fonctionnalités sont implémentés en tant qu’objets Snowflake, ils prennent en charge la réplication et le partage.

Réplication d’un Feature Store

Pour répliquer un Feature Store, répliquez la base de données qui contient son schéma. Notez que la réplication de la base de données réplique tous les schémas de la base de données, pas seulement les Feature Stores. Pour plus d’informations sur la réplication des bases de données, voir Présentation de la réplication et du basculement à travers plusieurs comptes.

Partage d’un Feature Store

Pour partager des fonctionnalités entre comptes, partagez l’intégralité de la Feature Store en partageant le schéma sous-jacent. Étant donné que cela partage toutes les vues de fonctionnalités dans le Feature Store, vous souhaiterez peut-être organiser les vues de fonctionnalités dans des Features Stores en fonction des personnes avec lesquelles elles seront partagées. Pour plus d’informations sur le partage, voir À propos de Secure Data Sharing.

Partage des vues de fonctionnalités

Il est également possible de partager des vues de fonctionnalités individuelles. Cela nécessite des étapes supplémentaires, car vous devez également partager les balises associées, que le Feature Store utilise en interne. Les étapes ci-dessous partagent une vue de fonctionnalité unique.

  1. Définissez les variables dans le bloc initial, ci-dessous, comme suit :

    • FS_SHARE : le nom du partage avec lequel la vue des fonctionnalités sera partagée.

    • FS_DATABASE : le nom de la base de données qui contient le Feature Store.

    • FS_SCHEMA : le nom du schéma contenant la vue des fonctionnalités.

    • FV_NAME : le nom et la version de la vue des fonctionnalités séparés par $. Par exemple, si le nom de la vue des fonctionnalités est myfv et sa version est v1, cette valeur est myfv$v1.

    • ENTITY_NAME : l’entité à laquelle appartient la vue de fonctionnalité.

    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. Exécutez les instructions suivantes, qui définissent certaines variables intermédiaires, puis accordez la plupart des privilèges nécessaires.

    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. Enfin, exécutez l’une des deux instructions ci-dessous en fonction du type de vue de fonctionnalités que vous partagez.