本文档介绍了如何使用 Vertex AI Feature Store 通过 Vertex AI SDK for ABAP 执行各种任务,例如同步在线存储区、从在线存储区传送特征,以及使用实体或嵌入式搜索在线特征存储区。
Vertex AI Feature Store 是一项托管式云原生特征存储服务。它允许您在 BigQuery 表或视图中管理特征数据,从而简化了机器学习特征管理和在线传送流程。
在 Vertex AI Feature Store 设置的典型工作流中,您首先需要在 BigQuery 中准备 SAP 数据源,通过创建特征组和特征来注册数据源,然后设置在线存储区和特征视图资源。然后,您可以从特征视图在线传送最新特征值,或在在线特征存储区中执行相似度搜索。如需了解如何设置 Vertex AI Feature Store,请参阅 Vertex AI Feature Store。
Vertex AI Feature Store 准备好在线传送后,您可以使用 ABAP 版 Vertex AI SDK 执行以下操作:
- 为了在模型预测期间为实时传送提供最新且准确的特征值,请将您的在线存储区与 BigQuery 中的特征数据源同步。
- 如需从在线存储区为实时应用提供特征值,请从在线存储区传送特征。
- 如需从在线存储区检索在语义上相似或相关的实体的列表,请使用实体或嵌入进行搜索。
准备工作
在将 Vertex AI SDK for ABAP 与 Vertex AI Feature Store 搭配使用之前,请确保您或您的管理员已满足以下前提条件:
- 在 Google Cloud 项目中启用了 Vertex AI API。
- 在 SAP 环境中安装 Vertex AI SDK for ABAP。
- 设置身份验证以访问 Vertex AI API。
- 设置在线特征传送。如需了解如何创建和使用在线存储区,以通过 Vertex AI Feature Store 在端到端工作流中托管和传送 BigQuery 中的数据,请参阅Vertex AI Feature Store 的 Jupyter Notebook 教程。
为 Vertex AI Feature Store 实例化 ABAP 类
如需在 ABAP 应用中使用 Vertex AI Feature Store,您需要实例化类 /GOOG/CL_FEATURE_STORE
。
DATA(lo_client) = NEW /goog/cl_feature_store(
iv_key_name = 'CLIENT_KEY'
iv_location = 'LOCATION_ID'
iv_feature_store_id = 'FEATURE_ONLINE_STORE_NAME' ).
替换以下内容:
CLIENT_KEY
:为身份验证配置的客户端密钥。LOCATION_ID
:在线存储区所在的区域,例如us-central1
。FEATURE_ONLINE_STORE_NAME
:包含特征视图的在线存储区的名称。
同步在线存储区
为了确保您的在线存储区在模型预测期间拥有最新且准确的特征值,以便实时传送,您需要将在线存储区中的特征视图资源与 BigQuery 中的特征数据源同步。
准备工作
由于您是通过区域端点访问 Vertex AI Feature Store,因此您需要创建 RFC 目标位置才能建立与 Vertex AI API 的连接。然后,在服务映射表中指定 RFC 目标。
使用 Vertex AI Feature Store 所在的区域端点,为 Vertex AI API 创建 RFC 目标位置。例如,如果您的 Vertex AI Feature Store 位于
us-east1
,则目标主机的端点将为us-east1-aiplatform.googleapis.com
。如需了解区域性端点,请参阅服务端点。如需创建 RFC 目标,请执行以下步骤:在 SAP GUI 中,执行事务代码
SM59
。创建新的 RFC 目标。对于您创建的 RFC 目标,请确保按如下方式设置 Connection Type:
G - HTTP connection to external server
。转到技术设置标签页,然后输入以下详细信息:
目标主机:提供 Vertex AI Feature Store 所在的区域端点。
服务编号:输入
443
。 此端口号用于安全通信。
进入 Logon & Security(登录和安全)并确保 SSL Certificate(SSL 证书)字段设置了选项 DFAULT SSL Client (Standard)(默认 SSL 客户端[标准])。
保存更改。
为 Vertex AI API 配置服务映射表:
在 SAP GUI 中,执行事务代码
/GOOG/SDK_IMG
。或者,执行事务代码
SPRO
,然后点击 SAP Reference IMG。点击 ABAP SDK for Google Cloud > 基本设置 > 配置服务映射。
点击新建条目。
为 Vertex AI API 指定 RFC 目标:
名称 服务名称 RFC 目标 用于身份验证的客户端密钥。 aiplatform:v1
RFC 目标的名称。 保存新条目。
同步 Vertex AI Feature Store
如需在特征视图中启动数据同步,请使用 SYNC_FEATURE_DATA_TO_FS
方法。
DATA(lv_feature_view_sync_id) = lo_client->sync_feature_data_to_fs(
iv_feature_view_id = 'FEATURE_VIEW_NAME'
)->get_feature_sync_id( ).
将 FEATURE_VIEW_NAME
替换为要为其启动数据同步的特征视图的名称。
此方法会返回特征视图同步 ID,可用于检查同步状态。
获取 Vertex AI Feature Store 同步状态
如需获取 Vertex AI Feature Store 同步状态,您可以使用 GET_FEATURE_SYNC_STATUS
方法。
DATA(ls_status) = lo_client->get_feature_sync_status(
iv_feature_view_id = 'FEATURE_VIEW_NAME'
iv_feature_sync_id = 'FEATURE_VIEW_SYNC_ID'
)->get_feature_sync_status( ).
替换以下内容:
FEATURE_VIEW_NAME
:您要检查同步状态的特征视图的名称。FEATURE_VIEW_SYNC_ID
:从同步 Vertex AI Feature Store 收到的功能视图同步 ID。此方法会返回以下某个状态以及错误消息(如果有):
C: Complete
、R: Running
或F: Failed
使用 SAP 后台作业同步 Vertex AI Feature Store
如需使用 SAP 后台作业在特征视图中启动数据同步,您可以使用 SYNC_FEATURE_DATA_TO_FS_BGJOB
方法。
此方法会在 SAP 系统中创建一个后台作业,该作业会启动特征存储区同步,并每隔 30 秒检查一次特征存储区同步状态。如果功能存储区同步状态为已完成或失败,则后台作业会相应地显示一条消息并完成。如果特征存储区同步正在运行,则后台作业会一直运行到指定的 TIMEOUT
值。超时后,后台作业会完成,但特征存储区同步会继续运行。
DATA(ls_bgjob_details) = lo_client->sync_feature_data_to_fs_bgjob(
iv_feature_view_id = 'FEATURE_VIEW_NAME'
iv_timeout = TIMEOUT
)->get_background_job_details( ).
替换以下内容:
FEATURE_VIEW_NAME
:您要在其中手动启动数据同步的特征视图的名称。TIMEOUT
:超时后后台作业会超时的秒数。这不会影响 Vertex AI Feature Store 同步。
此方法会返回后台作业名称和相应的 ID。您可以从 SAP 内监控此作业,以检查特征存储空间同步状态。
从在线存储区传送特征
您可以从在线存储区提供特征值,以用于实时应用,例如产品推荐。根据您为在线存储区配置的在线传送类型,您可以通过以下任一方式提供特征值:
- 使用 Bigtable 在线传送提取特征值。
- 使用优化的在线传送从公共端点提取特征值。
- 使用具有 Private Service Connect 端点的优化在线传送提取特征值。
如需详细了解如何提供特征值,请参阅从在线存储区提供特征。
准备工作
您需要先从在线存储区详细信息中检索公共端点域名,为端点创建 RFC 目标,然后在服务映射表中指定 RFC 目标,然后才能开始从在线存储区提供特征值。
检索在线存储区的公共端点域名。
-
在 SAP GUI 中,执行事务代码
/GOOG/SDK_IMG
。或者,执行事务代码
SPRO
,然后点击 SAP Reference IMG。 - 点击 ABAP SDK for Google Cloud > 实用程序 > Vertex AI SDK:获取 Feature Store 和 Vector Search 的 RFC 信息。
- 选择获取特征存储区详细信息。
输入以下参数:
- Google Cloud 密钥名称:用于向 Google Cloud 进行身份验证的客户端密钥。
- 位置:在线存储区所在的区域。
- 特征存储区 ID:包含特征视图的在线存储区的名称。
点击执行以查看详细信息。 记下主机标签对应的公共端点域名。
-
在 SAP GUI 中,执行事务代码
为区域端点、公共端点域名或在线存储区的 Private Service Connect 端点创建 RFC 目标位置。如需创建 RFC 目标,请执行以下步骤:
在 SAP GUI 中,执行事务代码
SM59
。创建新的 RFC 目标。对于您创建的 RFC 目标,请确保按如下方式设置 Connection Type:
G - HTTP connection to external server
。转到技术设置标签页,然后输入以下详细信息:
目标主机:提供 Vertex AI Feature Store 所在的公共端点域名。
服务编号:输入
443
。 此端口号用于安全通信。
进入 Logon & Security(登录和安全)并确保 SSL Certificate(SSL 证书)字段设置了选项 DFAULT SSL Client (Standard)(默认 SSL 客户端[标准])。
保存更改。
为 Vertex AI API 配置服务映射表:
在 SAP GUI 中,执行事务代码
/GOOG/SDK_IMG
。或者,执行事务代码
SPRO
,然后点击 SAP Reference IMG。点击 ABAP SDK for Google Cloud > 基本设置 > 配置服务映射。
点击新建条目。
为 Vertex AI API 指定 RFC 目标:
名称 服务名称 RFC 目标 用于身份验证的客户端密钥。 apiinvoker:v1
RFC 目标的名称。 保存新条目。
提取特征照值
在 Vertex AI Feature Store 中,实体是指您要跟踪特征的项,例如客户、产品或任何其他数据点。每个实体都与一组特征及其对应的值相关联。
如需通过指定单个实体 ID 来提取特征值,请使用 SERVE_FEATURE_VALUES
方法。
DATA(lt_features) = lo_client->serve_feature_values(
iv_feature_view_id = 'FEATURE_VIEW_NAME'
it_entity_id = 'ENTITY_ID'
)->get_features( ).
替换以下内容:
FEATURE_VIEW_NAME
:要从中提供特征值的特征视图的名称。ENTITY_ID
:要从中传送最新特征值的特征记录中的 ID 列值。或者,您也可以提供一个 parts 数组来构建实体 ID。确保 ID 列的顺序与特征视图中定义的顺序相同。
搜索近似最近邻
对于为优化在线传送创建的在线存储区,您可以执行向量相似性搜索来检索在语义上相似或相关的实体(也称为近似最近邻)的列表。您可以根据实体 ID 或嵌入搜索大致最近邻。
准备工作
当您为优化在线传送创建在线存储区时,Vertex AI Feature Store 会为在线存储区生成公共端点域名。您需要先从在线存储区详细信息中检索公共端点域名,为端点创建 RFC 目标,然后在服务映射表中指定 RFC 目标,然后才能开始从在线存储区中的特征视图搜索最近邻。
检索在线存储区的公共端点域名。
-
在 SAP GUI 中,执行事务代码
/GOOG/SDK_IMG
。或者,执行事务代码
SPRO
,然后点击 SAP Reference IMG。 - 点击 ABAP SDK for Google Cloud > 实用程序 > Vertex AI SDK:获取 Feature Store 和 Vector Search 的 RFC 信息。
- 选择获取特征存储区详细信息。
输入以下参数:
- Google Cloud 密钥名称:用于向 Google Cloud 进行身份验证的客户端密钥。
- 位置:在线存储区所在的区域。
- 特征存储区 ID:包含特征视图的在线存储区的名称。
点击执行以查看详细信息。 记下主机标签对应的公共端点域名。
-
在 SAP GUI 中,执行事务代码
为在线存储区的公共端点域名创建 RFC 目标:
在 SAP GUI 中,执行事务代码
SM59
。创建新的 RFC 目标。对于您创建的 RFC 目标,请确保按如下方式设置 Connection Type:
G - HTTP connection to external server
。转到技术设置标签页,然后输入以下详细信息:
目标主机:提供在线存储区的公共端点域名。
服务编号:输入
443
。 此端口号用于安全通信。
进入 Logon & Security(登录和安全)并确保 SSL Certificate(SSL 证书)字段设置了选项 DFAULT SSL Client (Standard)(默认 SSL 客户端[标准])。
保存更改。
为 Vertex AI API 配置服务映射表:
在 SAP GUI 中,执行事务代码
/GOOG/SDK_IMG
。或者,执行事务代码
SPRO
,然后点击 SAP Reference IMG。点击 ABAP SDK for Google Cloud > 基本设置 > 配置服务映射。
点击新建条目。
为 Vertex AI API 指定 RFC 目标:
名称 服务名称 RFC 目标 用于身份验证的客户端密钥。 apiinvoker:v1
RFC 目标的名称。 保存新条目。
检索嵌入的最近邻匹配项
您可以通过指定嵌入来搜索语义相关的实体。
如需搜索嵌入的最近邻,请使用 SEARCH_USING_EMBEDDINGS
方法发送请求。
DATA(lt_embeddings) = VALUE /goog/cl_aiplatform_v1=>ty_t_/goog/num_float( EMBEDDING_DATA ).
DATA(lt_neighbours) = lo_client->search_using_embeddings(
EXPORTING
iv_feature_view_id = 'FEATURE_VIEW_NAME'
it_embeddings = lt_embeddings
is_search_params = VALUE #( neighbor_count = 'NEIGHBOR_COUNT'
return_full_entity = 'RETURN_FULL_ENTITY' )
)->get_neighbours( ).
替换以下内容:
EMBEDDING_DATA
:要为其检索近似最近邻匹配项的嵌入。嵌入由浮点数值数组表示。FEATURE_VIEW_NAME
:您要在其中搜索近似最近邻匹配项的特征视图的名称。NEIGHBOR_COUNT
:要检索的近似最近邻的数量。RETURN_FULL_ENTITY
:可选。指定要在响应中包含还是排除实体的特征。如需在响应中添加特征以及实体,请输入ABAP_TRUE
。默认值为ABAP_FALSE
。
检索实体的最近邻匹配项
您可以通过指定实体 ID 来搜索语义相关的实体。
如需搜索实体 ID 的最近邻,请使用 SEARCH_USING_ENTITY
方法发送请求。
DATA(lt_neighbours) = lo_client->search_using_entity(
EXPORTING
iv_feature_view_id = 'FEATURE_VIEW_NAME'
iv_entity_id = 'ENTITY_ID'
is_search_params = VALUE #( neighbor_count = 'NEIGHBOR_COUNT'
return_full_entity = 'RETURN_FULL_ENTITY' )
)->get_neighbours( ).
替换以下内容:
FEATURE_VIEW_NAME
:您要在其中搜索近似最近邻匹配项的特征视图的名称。ENTITY_ID:
:您要检索其近似最近邻匹配项的实体的实体 ID。NEIGHBOR_COUNT
:要检索的近似最近邻的数量。RETURN_FULL_ENTITY
:可选。指定要在响应中包含还是排除实体的特征。如需在响应中添加特征以及实体,请输入ABAP_TRUE
。默认值为ABAP_FALSE
。
后续步骤
在 Cloud 论坛上提出问题并与社区讨论 Vertex AI SDK for ABAP。