对于批量导入,Vertex AI Feature Store(旧版)可以从 BigQuery 中的表或 Cloud Storage 中的文件导入数据。
如果您需要导入整个数据集并且不需要使用分区过滤条件,请使用 BigQuery 表。
如果您需要导入特定部分的数据集,请使用 BigQuery 视图。此选项更加节省时间,可让您从整个数据集中导入特定选择的数据,包括根据数据生成的多个表。
从 Cloud Storage 导入的文件中包含的数据必须采用 AVRO 或 CSV 格式。
对于流式导入,请在 API 请求中提供要导入的特征值。这些源数据要求不适用。如需了解详情,请参阅 writeFeatureValues API 参考文档。
每个项(或行)都必须符合以下要求:
必须有一个实体 ID 列,并且值的类型必须为
STRING
。此列包含特征值所针对的实体 ID。源数据值类型必须与特征存储区中目标特征的值类型匹配。例如,必须将布尔值导入到
BOOL
类型的特征中。所有列的标题都必须为
STRING
类型。标题名称没有任何限制。- 对于 BigQuery 表和 BigQuery 视图,列标题是列名称。
- 对于 AVRO,列标题由与二进制数据关联的 AVRO 架构定义。
- 对于 CSV 文件,列标题为第一行。
如果提供特征生成时间戳列,请使用以下时间戳格式之一:
- 对于 BigQuery 表和 BigQuery 视图,时间戳必须位于 TIMESTAMP 列中。
- 对于 Avro,时间戳必须是 long 类型,以及 logical 类型的 timestamp-micro。
- 对于 CSV 文件,时间戳必须为 RFC 3339 格式。
CSV 文件不能包含数组数据类型。请改用 Avro 或 BigQuery。
对于数组类型,数组中不能有 null 值。但是,您可以添加空数组。
特征值时间戳
对于批量导入,Vertex AI Feature Store(旧版)需要用户为导入的特征值提供的时间戳。您可以为每个值指定特定的时间戳,也可以为所有值指定相同的时间戳:
- 如果特征值的时间戳不同,请在源数据的一列中指定时间戳。每行必须有自己的时间戳,用于指明特征值的生成时间。在导入请求中,您需要指定列名称以标识时间戳列。
- 如果所有特征值的时间戳都相同,您可以在导入请求中将其指定为参数。您也可以在源数据的一列中指定时间戳,其中每行具有相同的时间戳。
数据源区域
如果源数据在 BigQuery 或 Cloud Storage 中,则源数据集或存储分区必须位于与特征存储区相同的区域或多区域位置。例如,us-central1
中的特征存储区只能从位于 us-central1
或美国多区域位置的 Cloud Storage 存储桶或 BigQuery 数据集导入数据。例如,您无法从 us-east1
中导入数据。此外,也不支持来自双区域存储桶的源数据。