数据规范

物品详情表

  1. 物品详情表至少需要有两个数据字段,其中一个字段为主键,同时也是分片字段,其他字段为物品属性字段。

  2. 表中的记录和物品一一对应,主键为物品的唯一标识,因此主键必须是唯一的。

  1. 主键的字段类型必须为STRING

  2. 其他物品属性字段的字段类型按照数据需要定义即可。

  1. 物品详情表应符合数据表分区规范,仅支持“依赖数据源产出新分区”调度策略,因此必须为分区表。

物品向量表

  1. 物品向量表要求有两个数据字段,其中一个字段为主键,同时也是分片字段,另一个字段为向量

  2. 表中的记录和物品一一对应,主键为物品的唯一标识,因此主键必须是唯一的。主键的字段类型必须为STRING

  1. 向量字段的字段类型应为STRING,其值应为一串以逗号连接的浮点数所组成的字符串,例如1.10,2.03,3.45,7.89,且值中所含的浮点数的个数应与注册该表时填写的维度一致。

  2. 物品向量表应符合数据表分区规范,仅支持“依赖数据源产出新分区”调度策略,因此必须为分区表。

X2I召回表(KKV类型)

数据规范

  1. KKV类型的X2I召回表要求有三个数据字段,其中一个为主键,一个为分片字段,另一个为召回分

  2. 每条记录代表一个召回关系,其中主键为召回的X,而分片字段为召回的物品的唯一标识,召回分一般代表此召回关系的强度,可以被用于召回打分。因此一个主键能够对应多条记录,这些记录的集合即是该主键所对应的召回物品集合。

  1. 主键分片字段的字段类型必须为STRING

  2. 召回分一般代表此召回关系的强度,必须为数值类型,例如BIGINTDOUBLE

  1. KKV类型的X2I召回表应符合数据表分区规范,仅支持“依赖数据源产出新分区”调度策略,因此必须为分区表。

数据示例

一个KKV类型的X2I召回表的示例如下:

trigger_id

item_id

score

A

10001

1.12

A

10002

1.04

B

10001

0.97

C

10003

0.89

在这个例子中,共有三个X,其中X为A可以召回两个物品,即10001和10002;X为B可以召回一个物品,即10001;X为C可以召回一个物品,即10003。

X2I召回表(KV类型)

数据规范

  1. KV类型X2I召回表要求有两个数据字段,其中一个为主键,另一个为召回集合

  2. 每条记录代表一个X所对应的完整召回集合,其中主键为召回的X,必须是唯一的。

  1. 召回集合的类型为STRING,其值表示多对召回物品召回分的集合,格式形如:<召回物品1>:<召回分1> <召回物品2>:<召回分2> ……,其中每一对就对应了一个召回关系。注册时,aime会将每一对中的召回物品解析为分列字段,而将召回分解析为召回分字段。

  2. 主键的字段类型必须为STRING

  1. 召回分一般代表此召回关系的强度,必须为数值类型,例如BIGINTDOUBLE

  2. KV类型的X2I召回表目前仅支持“定时执行”的全量调度策略,因此按照数据表分区规范,必须为非分区表。

数据示例

一个KV类型的X2I召回表的示例如下:

trigger_id

recall_items

A

10001:1.12 10002:1.04

B

10001:0.97

C

10003:0.89

在这个例子中,共有三个X,其中X为A可以召回两个物品,即10001和10002;X为B可以召回一个物品,即10001;X为C可以召回一个物品,即10003。

X2I召回表(PAI类型)

由PAI所产出的X2I召回表,一般符合KV类型召回表的规范,不再赘述。

数据表分区

依赖数据源产出新分区

aime对接的离线数据往往是周期性更新的,这种情况下您可以将数据表的全量调度策略设置为“依赖数据源产出新分区”,这种策略下,aime会自动检测您的数据表是否有更新。为了使数据更新事件能够被aime感知,并及时将离线数据同步到召回引擎中,您的ODPS数据表需要满足以下规范:

  1. 数据表为分区表,关于分区的操作详见MaxCompute文档

  2. 有且仅有一个分区字段,字段类型为STRING,最新的数据分区的分区字段值必须是所有分区字段值中按字典序最大的。一般我们建议使用格式化的业务日期/时间作为分区字段值,例如202108222021082214

  1. 对于已经产出完成暨可用的数据分区,需要产出一个标识分区,分区字段值为对应数据分区的分区字段值后加.done,例如数据分区为20210822,则对应的标识分区为20210822.done

定时执行

如果您设置的全量调度策略为“定时执行”,则aime会按照您设置的定时计划执行全量更新。这种情况下,您的ODPS数据表需要满足如下规范:

  1. 数据表为非分区表。