Replikation und gemeinsame Nutzung von Features

Bemerkung

Der Snowflake Feature Store API ist im Snowpark ML Python-Paket (snowflake-ml-python) v1.5.0 und höher verfügbar.

Da Feature Store-Objekte als Snowflake-Objekte implementiert sind, unterstützen sie Replikation und Freigabe.

Replikation eines Feature Stores

Um einen Feature Store zu replizieren, replizieren Sie die Datenbank, die sein Schema enthält. Beachten Sie, dass bei der Replikation der Datenbank alle Schemata in der Datenbank repliziert werden, nicht nur die Feature Stores. Weitere Informationen zur Datenbankreplikation finden Sie unter Einführung in Replikation und Failover über mehrere Konten.

Freigabe eines Feature Stores

Um Features über Konten hinweg freizugeben, geben Sie den gesamten Feature Store frei, indem Sie das zugrunde liegende Schema freigeben. Da auf diese Weise alle Feature-Ansichten im Feature Store freigegeben werden, sollten Sie die Feature-Ansichten in Feature Stores organisieren, je nachdem, für wen sie freigegeben werden sollen. Weitere Informationen zur Freigabe finden Sie unter Über Secure Data Sharing.

Freigabe von Feature-Ansichten

Es ist auch möglich, einzelne Feature-Ansichten freizugeben. Dies erfordert zusätzliche Schritte, da Sie auch die zugehörigen Tags freigeben müssen, die der Feature Store intern verwendet. Die folgenden Schritte beziehen sich auf eine einzelne Feature-Ansicht.

  1. Stellen Sie die Variablen im Ausgangsblock unten wie folgt ein:

    • FS_SHARE: Der Name der Freigabe, mit der die Feature-Ansicht gemeinsam genutzt werden soll.

    • FS_DATABASE: Der Name der Datenbank, die den Feature Store enthält.

    • FS_SCHEMA: Der Name des Schemas, das die Feature-Ansicht enthält.

    • FV_NAME: Der Name und die Version der Feature-Ansicht, getrennt durch $. Wenn der Name der Feature-Ansicht beispielsweise myfv und ihre Version v1 ist, lautet dieser Wert myfv$v1.

    • ENTITY_NAME: Die Entität, zu der die Feature-Ansicht gehört.

    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. Führen Sie die folgenden Anweisungen aus, die einige Zwischenvariablen einstellen und dann die meisten der erforderlichen Berechtigungen erteilen.

    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. Führen Sie schließlich eine der beiden folgenden Anweisungen aus, je nachdem, welche Art von Feature-Ansicht Sie gemeinsam nutzen.