Schema 介绍
Schema 的类型
Schema 的类型分为实体(entity)和事件(event)。实体在模型中代表一个实体,例如一个个人或一家门店;事件则代表一个个发生的动作,必须带有时间戳,例如订单。
Schema 的参数
| 字段 | 解释 | 例子 | 是否必须 |
|---|---|---|---|
| _id | 数仓中的表名 | "product" | 必须 |
| name | 名称 | "产品" | 必须 |
| syno | 同义词,用数组表示,大小写无关 | ["SKU"] | 可选 |
| type | 取值为 entity 或 event | "entity" | 必须 |
| description | 描述 | "产品信息" | 可选 |
| properties | 属性数组,见属性章节 | - | 必须 |
| editable | 前端能否修改数据 | true/false | 可选 |
| is_internal | 是否为内部数据,内部数据不参与前端展示 | true/false | 可选 |
| hierarchy | 层级配置,详见 schema/hierarchy.md | - | 可选 |
| use_db_date_as_mtd | 是否使用数据库数据的最后一天作为 MTD/QTD/YTD 的 today | true/false | 可选 |
| tag | 标签 | ["产品"] | 可选 |
| fallback | 问答失败后的模糊查询策略 | 见下文 Fallback | 可选 |
| drilldown | 手动配置智能归因维度 | 见下文 Drilldown | 可选 |
| modality | 模态,控制前端展示形态 | 见此页面 | 可选 |
| alisa_rank | 当问答维度与指标相同情况下优先选用该 schema | - | 可选 |
| etl | schema 级 ETL 配置方式 | 见此页面 | 可选 |
| skip_learn | 跳过该表的学习流程 | true/false | 可选 |
| order | 控制 Schema 在前端中的排序,越小越靠前 | 1 | 可选 |
| main_pred | PredItem 字典,表示事件表的默认指标 | {"pred": "销售额", ...} | 可选 |
| cache | 表级别缓存清理定时器,字典类型包含 cron 字段 | {"cron": "0 * * * *"} | 可选 |
较少使用的参数
| 字段 | 解释 | 例子 | 是否必须 |
|---|---|---|---|
| is_stage_for_event | 仅实体表可设,代表该实体表中的数据是事件表中的一个节点 | "progress" | 否 |
注意事项
事件(event)类型的 Schema 必须且仅能拥有一个类型为 timestamp 的属性。
Fallback
当问答系统无法理解用户意图时,可以为某个 Schema 配置 fallback,从指定属性中做模糊匹配:
const schema = {
// ...
fallback: {
property: 'property 名称',
},
};
配置完成后,如果智能问答理解失败,系统会从该 schema 的 property 中模糊匹配。匹配成功以列表形式返回,失败则报出“无法理解问题”。
Drilldown
下钻维度配置分为菜单上的下钻维度和智能归因内的分析维度。
1. 菜单下钻维度
{
// ...
drilldown: [
{ _id: '产品_品类' },
{ _id: '店铺_地址', level: '省市' },
{ _id: '活动' },
{ _id: '渠道' },
],
}
2. 智能归因分析维度
{
// ...
analyzer: {
drilldown: [
{ _id: '产品_品类' },
{ _id: '店铺_地址', level: '省市' },
{ _id: '活动' },
{ _id: '渠道' },
],
},
}
Excel 自动生成表结构
可以从 Excel 模板生成 schema: