同步阶段说明
数据同步环节包含三个阶段:测试数据接入、历史数据接入、增量数据接入。
测试数据
正式数据接入前,通过少量测试数据对齐数据质量及各类校验阈值,强烈建议在测试数据阶段解决完大部分数据问题,再开始接入正式数据,减少修复数据的成本。一般建议同步1-2个星期数据即可。
历史数据
正式数据接入,基于已确认的阈值对历史数据进行校验。通常需要同步几个月甚至半年、一年的原始数据至平台。可同步的时间越长,效果往往会越好。数据校验不通过时,用户可选择重新同步数据,也可以继续调整阈值配置,直到对齐数据质量,输出符合预期的历史数据校验报告。
增量数据
传入后续新数据,可选择增量天级或增量实时。增量数据更新方式选择如下:
- 实时更新:为保证推荐结果的实时性,建议优先选择实时更新。更新方式为实时更新的数据,也会dump成天级数据,供特征工程批式任务使用。
- 天级更新:无法做到实时更新或者对实时性要求不高的数据,可选择天级更新。
注意
先接入增量天级数据后,还可再接入增量实时数据;但接入增量实时数据后,暂不支持再接入增量天级数据。
同步流程
平台限制必须要按照阶段同步和校验数据,即按照以下流程完成数据接入的整个流程。
同步测试数据-->校验测试数据-->同步历史数据-->校验历史数据-->同步增量数据-->校验增量数据
同步配置
每个阶段数据接入时,在同步列表点击“开始接入”,即可开始配置各个表的同步时间范围和同步方式。
同步配置说明:
- 同步方式:默认为API同步,其他同步方式待拓展。
- 时间范围:测试和历史数据选择一段固定时间,增量数据选择开始时间即可(增量实时接入开始时间默认为当天);注意行为表数据时间区间应覆盖用户表和商品表的时间区间。
- 同步说明:
- 行为表:需要每天同步当天数据。
- 用户表和商品表:在接入历史数据第一天同步全量数据,之后每天增量同步即可,即只需要同步必传字段+新增或有更新的数据及字段即可,无更新的字段无需同步。例如item_id=23456的物品,只有tags发生了变化,那么只需要同步
item_id
(必传字段), status
(必传字段)和tags
(更新字段)即可。 平台会每天合并前一天的数据,生成一份全量的用户表和商品表,并基于此进行校验。注意
- 不管是批式传输或流式传输,字段值传 null 时将不会被更新,即使用原值。
- 若需要将原值更新为空,可传输空字符串。
- 接入增量实时数据时,若当前表更新频率比较低,可开启断流自动跳过;开启后,该数据表实时数据出现断流时,第二天零点将执行自动跳过。
同步数据
配置完毕后,进入数据同步记录列表管理页,接入时间范围内数据的同步状态均为“待同步”。您需要按照数据同步接口进行数据传输,传输状态将会在同步列表中展示。
- 天级数据(测试+历史+增量天级):调用write接口开始传输数据后,同步状态将变为“同步中”,数据传输完成调用done接口后,平台将会开启数据归档,等待5~10分钟后同步状态将变为“同步完成”。
- 实时数据(增量实时):调用write接口开始传输数据后,同步状态将变为“同步中”,无需调用done接口,第二天同步状态将变为“同步完成”。
若数据归档失败,或者实时数据阶段没有传输数据,同步状态会变为“同步失败”或“同步异常”,详细的数据同步状态说明如下:
状态 | 状态说明 |
---|
待同步 | 还未开始通过接口同步数据。 |
同步中 | 未接收到数据传输完成信息。 |
同步完成 | 数据接收且落表完成。 |
同步失败 | 接收到数据传输完成信息,但平台未检测到有效数据,可能的情况: - 没有传输数据
- 传输的数据都不合法、被API拒绝了
- 传输了合法数据,但平台归档异常了
同步失败状态下,建议在页面操作重新同步,并通过接口重新传输数据。 |
同步异常(断流) | 当前接入的数据表出现实时数据断流,状态为同步异常;断流时平台会自动跳过该天数据,不阻塞样本生成和模型训练。 |
已跳过 | 手动操作数据跳过,详见【特殊操作-数据跳过】。 |
特殊操作
重新同步
当发现数据同步存在误传、漏传,或校验报告显示数据存在需要修复的质量问题时,可点击同步列表操作中的「重新同步」,平台将清除旧数据,同时同步状态将变更为“旧数据清理中”,清理完成后状态会变更为“待同步”,您只需要将更新后的数据再次通过API同步即可。
注意
- “旧数据清理中”状态下同步的数据将会被拒绝,请等到状态变更为“待同步”后再开始同步。
- 重新同步数据后,因归因周期限制,重新同步的起始时间之后的报告均需要重新生成,建议您尽可能将报告中发现的问题一次性修复后重新同步,避免频繁操作带来额外的成本。
- 测试数据、历史数据阶段在校验报告确认前均支持重新同步;增量数据阶段,均可重新同步,注意重新同步数据后特征工程的相关任务需要手动重跑。
数据跳过
跳过数据通常用于以下两种场景:
- 增量数据(天级或实时)与历史数据之间缺失的数据:离线数据存在一部分缺失,需要跳过。
- 增量天级数据接入中的时间:增量数据存在部分缺失无法提供,或部分数据质量较差,不想作为样本输入训练任务。
此外,测试/历史数据中行为表和用户/物品表传输日期不一致的情况(如用户&物品表时间范围为1.10,行为表时间范围为1.1-1.10),系统默认会对1.1-1.9的用户/物品表执行跳过操作。
跳过数据对下游的影响如下:
- 跳过用户/物品表:对应hive表分区链接到上一个有数分区,对下游无影响。
- 跳过行为表:对应hive表分区为空,且跳过数据的时间将不会产出样本。
数据补传
补传数据通常用于以下场景:接入增量数据(天级或实时)时,起始时间与历史数据之间存在缺失。
注意
- 补传的数据传输stage统一使用
incremental_sync_daily
。 - 当增量数据与历史数据时间存在时间缺失时,必须处理完缺失(跳过或补传),后续的数据才可正常生成报告和样本,否则平台会认为数据不连续,一直等待数据同步完整。
调整同步时间
若当前配置的同步时间需要调整(如时间选错了,或者需要往前/往后补充数据)时,可通过【同步设置】-【修改信息】调整。
- 当前仅在接入测试数据&历史数据时支持调整同步时间。
- 不支持调整的情况:用户表&物品表的起始时间往前调整(会带来较高的回溯成本)。
说明
修改同步时间,已生成的报告会重新生成;调整后的时间范围之外的数据和报告将被清空。建议不要频繁调整。
调整增量数据更新方式
若当前已接入到增量数据阶段,需要变更某张表的更新方式,可通过【同步设置】-【修改信息】调整,支持的变更情况如下:
- 增量阶段没有接入有效数据:即所有业务日期、所有表的数据同步状态均为“待同步”时,三张表的更新方式均支持自由修改。
- 增量阶段已经接入有效数据:即任一天、任一表存在数据同步状态不为“待同步” 时,更新方式的变更存在一些前置条件,如下:
- 天级更新:支持变更为实时更新,或增加实时更新;前置条件是接入前的数据都校验通过、或者状态为”已跳过”。
- 实时更新:不支持变更更新方式,实时数据断流或数据存在异常问题,可通过天级补传或重传。
- 天级+实时更新:支持停止天级数据更新,即仅保留实时更新。平台将判断该表数据更新到了哪一天(依据同步状态为“同步完成” 或“已跳过”),该天之后的数据不会再生成天级同步记录,且不可恢复同步;另外,当操作的表为行为表时,之后的批式样本将会由实时数据生成。