创建特征组

您可以创建特征组以注册包含特征数据的 BigQuery 表或视图。

对于与特征组关联的任何 BigQuery 表或视图,您需要确保:

  • 数据源的架构符合数据源准备准则

  • 该数据源包含实体 ID,它们在名为 entity_id 的列中以 string 值的形式存在。

  • 该数据源在名为 feature_timestamp 的列中包含 timestamp 类型的特征时间戳。

创建特征组并关联 BigQuery 数据源后,您可以创建特征以与数据源中的列关联。创建特征组时,指定数据源是可选操作。但是,您需要在创建特征之前指定数据源。

使用特征组和特征注册数据源具有以下优势:

  • 您可以使用来自多个 BigQuery 数据源的特定特征列来定义用于在线传送的特征视图。

  • 您可以通过添加 feature_timestamp 列将数据格式化为时序格式。Vertex AI Feature Store 仅传送特征数据中的最新特征值,不包括历史值。

使用以下示例可创建特征组并关联 BigQuery 数据源。

控制台

按照以下说明使用 Google Cloud 控制台创建特征组。

  1. 在 Google Cloud 控制台的“Vertex AI”部分,转到 Feature Store 页面。

    转到 Feature Store 页面

  2. 特征组部分中,点击创建以打开创建特征组页面上的基本信息窗格。

  3. 指定特征组名称

  4. 可选:若要添加标签,请点击添加标签,然后指定标签名称和值。您可以为一个特征组添加多个标签。

  5. BigQuery 路径字段中,点击浏览,以选择要与特征组关联的 BigQuery 源表或视图。

  6. 可选:在实体 ID 列列表中,点击 BigQuery 源表或视图中的实体 ID 列。

  7. 点击继续

  8. 注册窗格中,点击以下选项之一,以指示是否要向新特征组添加特征:

    • 包括 BigQuery 表中的所有列 - 在特征组中为 BigQuery 源表或视图中的所有列创建特征。

    • 手动输入特征 - 根据 BigQuery 来源中的特定列创建特征。对于每个特征,请输入特征名称,然后点击列表中相应的 BigQuery 源列名称。

      如需添加更多特征,请点击添加其他特征

    • 创建空特征组 - 创建特征组而不向其添加特征。

  9. 点击创建

REST

如需创建 FeatureGroup 资源,请使用 featureGroups.create 方法发送 POST 请求。

在使用任何请求数据之前,请先进行以下替换:

  • LOCATION_ID:要在其中创建特征组的区域,例如 us-central1
  • PROJECT_ID:您的项目 ID。
  • FEATUREGROUP_NAME:您要创建的新特征组的名称。
  • BIGQUERY_SOURCE_URI:您要为特征组注册的 BigQuery 源表或视图的 URI。

HTTP 方法和网址:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups?feature_group_id=FEATUREGROUP_NAME

请求 JSON 正文:

{
  "big_query": {
    "big_query_source": {
      "input_uri": "BIGQUERY_SOURCE_URI"
    }
  }
}

如需发送请求,请选择以下方式之一:

curl

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups?feature_group_id=FEATUREGROUP_NAME"

PowerShell

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups?feature_group_id=FEATUREGROUP_NAME" | Select-Object -Expand Content

您应该收到类似以下内容的 JSON 响应:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.UpdateFeatureGroupOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-09-18T03:00:13.060636Z",
      "updateTime": "2023-09-18T03:00:13.060636Z"
    }
  }
}

后续步骤