复制和共享功能¶
备注
Snowflake 特征平台 API 在 Snowpark ML Python 包 (snowflake-ml-python
) v1.5.0 及更高版本中提供。
由于特征平台对象是作为 Snowflake 对象实现的,因此它们支持复制和共享。
复制特征平台¶
要复制特征平台,请复制包含其架构的数据库。请注意,复制数据库会复制数据库中的所有架构,而不仅仅是特征平台。有关 Database Replication 的详细信息,请参阅 跨多个账户的复制和故障转移简介。
共享特征平台¶
若要跨账户共享特征,请通过共享底层架构来共享整个特征平台。 这会共享特征平台中的所有特征视图,因此您可能希望根据共享对象将特征视图整理到特征平台中。有关共享的详细信息,请参阅 关于 Secure Data Sharing。
共享特征视图¶
也可以共享单个 特征视图。此操作需要额外的步骤,因为您还必须共享特征平台内部使用的关联标签。 以下步骤共享一个特征视图。
在下面的初始块中设置变量,如下所示:
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执行以下语句,这些语句设置了一些中间变量,然后授予大部分必要的权限。
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最后,根据共享的特征视图类型执行以下两条语句之一。
-
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
-