👉🏻场景
空调冷机、风力发电机这类高压设备运行时,需要隔段时间对机组设备运行状况进行检查,抽查是一种平衡任务量和准确性的方式,例如每个小时都抽查一次10分钟的窗口内更新的运行信息,在对于没有购买实时集成板块的用户来说,可以用分钟级的时间窗口集成任务来同步这些数据,具体怎么做如下。
👉🏻 解决方案及功能
第一步,建立一个离线管道,顶部菜单 研发 > 数据集成→ 新建离线管道任务。从组件库拖入数据库输入组件(这里以MySQL为例)和计算引擎输出组件(这里以 Hive为例),连线,配好数据源连接和来源表/目标表。
第二步,在输入组件配置面板右上角点 切换为脚本模式,找到 parameter → connection,加 querySql如下图,这里相当于是在脚本中选中原表中特定范围内的行(更新时间大于${win_start}小于${win_end}的行,插入了需要实现的时间窗口变量)进行同步。(注意,在添加这个参数时,如原脚本中此处connection内的参数有table,需删除,querySql 和 table 为二选一,table代表选中表全量,同时读取端 parameter.column参数下需 整块删掉)
第三步,配齐参数信息,这里的意思是取调度时间前十分钟内更新的数据行进行同步。可以在预览中查看当前变量的实际意思
属性 → 调度配置 → 运行参数,上面写的 ${win_start}、${win_end}会自动出现在列表里,逐个把类型选成本地变量、填值:
参数名称 |
类型 |
参数值 |
|
本地变量 |
|
|
本地变量 |
|
注意:此处建议在源库中配有索引,因为时间窗口过滤只减少返回的行数,不减少扫描的行数;没有索引时,一个 10 分钟窗口的查询代价等于一次全表扫描。周期调度会把这份代价乘以每天的实例数,并挤占源库缓存、拖慢在线业务——上线前确认时间字段有索引,是这类高频增量任务的必备前置项。
第四步,配置调度信息,这里意味着一天24个小时的每个整点发起调度,举个例子,3点调度时,获取的其实是2:50到3:00之间更新的数据行。从而实现时间窗口抽查式的同步调度。