BI平台ETL迁移文档说明
背景:Lily的BI平台截至目前已经承载了总共三期的开发内容,内容较多,目前已经出现了页面刷新慢的问题。为提升页面响应速度,并且更好地利用开发平台的优势,决定将BI平台内所有开发的ETL迁移到开发平台,让BI平台更专注于前端页面报表的展示,由开发平台来承担开发支持、任务调度、性能优化的作用。
以下是具体操作步骤,需要由Lily、观远一起协作完成。
一、操作文档For Lily开发者
填写石墨文档表格
链接:石墨文档
根据BI平台中ETL的情况,完成表格中A:I列的内容填写。
开发平台找到(或者新建)对应输入数据集,填写表格
根据表1中的输入数据集,在开发平台找到对应映射的输入数据集。为保持开发内容的一致性,强烈建议此处两输入数据集的字段名、字段类型保持一致。
找到对应关系后,填写表格中N列。

⚠️1:此处找对应数据集(新建数据集)有较大工作量,且一定不能出错,需谨慎找到对应数据集,若无,则需在开发平台新建!(如有疑问具体可咨询观远)
⚠️2:所有手工数据暂时先集中存放于同一个文件夹中,为根目录下的「手工数据文件夹」。后期关于手工数据上传的问题,我们会再次讨论,是以FTP上传的方式导入到开发平台,还是其他方式。
- 导出BI平台的ETL为JSON文件
进入BI平台ETL编辑界面,点击右上角「…」,点击导出,即可将该ETL导出为JSON文件,存放于本地。JSON文件主要会记录ETL的输入、输出信息、ETL内部的计算逻辑等,类似于ETL的“元数据”。

- 导入JSON文件到开发平台
建立和BI平台相同的文件夹,在相同的路径下新建一个「数据流」,点击右上角「…」,点击导入,选择刚才导出的JSON文件。此时会弹跳出输入数据集的映射关系窗口,需要完成填写。


⚠️:映射关系的填写非常重要,且非常具体,需要完成BI平台每个输入数据集在开发平台的映射关系。建议填写完成后多复查几次!
填写完映射关系之后,点击「确认」,ETL就导入成功了。导入成功之后的页面和BI平台ETL的编辑页面完全一样。
- 验证ETL
分两个模块进行验证:ETL能否运行成功、ETL的输出结果和BI断是否一致
- ETL能否运行成功
运行数据流,看是否能运行成功。若不能则debug(运行失败的原因多半是出现在刚才的映射关系填写上,可以删除该数据流再重新新建,重新设置映射关系) - ETL的输出结果和BI端是否一致
对输出数据集结果做检查,看行数、列数、某个字段的求和是否与BI平台一致。若不一致则debug(原因多半也是出现在刚才的映射关系填写上,可以删除该数据流再重新新建,重新设置映射关系)
⚠️:只有保证数据流能正常运行,且运行结果和BI平台完全一致,才能说此ETL的迁移工作是成功的,否则就要重复4的操作,且要debug,定位并解决数据不一致的问题。
- 完成表格剩余部分填写
填写剩余部分,如更新方式,是否为手工数据等。
对于更新方式,在开发平台我们建议只有两种更新方式:「定时更新」和「任务调度更新」。前者在指定时间更新,后者依赖于某些ETL的运行,在依赖ETL运行完毕之再运行该ETL。
如果是「定时更新」,需填写定时更新的时间;如果是「任务调度更新」,则填写对应依赖的ETL,具体填写示意如下

- 开发平台整体调度
在做了以上步骤之后,BI平台的开发工作量都已经迁移到开发平台上了。为更好地利用开发平台的性能,我们对迁移过来的ETL(在开发平台上改名叫做数据流、工作流)要进行整体调度,用工作流调度的方式来发挥并发的性能优势。
这块具体的调度,要结合石墨文档填写的的更新方式更新时间等内容,综合来设计,需要Lily方、观远方再内部开会讨论。
二、操作文档For 观远开发者
步骤1~7和同上,和「操作文档For Lily开发者」的操作一致,但额外新增步骤8。
- 检查ETL副本与原始ETL的一致性
有部分ETL的部分逻辑/全部逻辑,之前是参照Lily开发的ETL,直接进行复制的,这部分逻辑后续是否有发生变化,运行结果和原始ETL是否一致,目前是不确定的,因此需要核验。有2种核验方式可以参考。
- 对于节点少的ETL,直接比对原始ETL和副本ETL的节点。
- 对于节点多的,可以直接运行两个ETL,比对输出结果是否一致;或者直接咨询原始ETL的开发者后期是否有做逻辑的变更。
