基于多源数据融合的数据可视化方法及系统与流程

摘要: 本发明涉及数据处理,尤其涉及一种基于多源数据融合的数据可视化方法及系统。背景技术:1、随着大数据技术的迅猛发展,企业内部积累了大量分散在不同存储系统中的多源异构...
基于多源数据融合的数据可视化方法及系统与流程

本发明涉及数据处理,尤其涉及一种基于多源数据融合的数据可视化方法及系统。

背景技术:

1、随着大数据技术的迅猛发展,企业内部积累了大量分散在不同存储系统中的多源异构数据(如关系型数据库、nosql数据库、excel文件、应用程序编程接口(applicationprogramming interface,api)等)。为了从这些分散的数据中获取业务洞察,数据可视化看板被广泛应用。然而,现有的多源数据可视化技术在面向海量数据时存在诸多瓶颈:

2、1)多源数据融合困难且缺乏统一路由机制:传统方法在连接多源数据时,往往依赖人工编写复杂的集成脚本或使用重量级抽取-转换-加载(extraction transformationloading,etl)工具进行全量数据抽取。当底层数据源结构发生变化时,系统无法自动感知,导致查询失败或数据错乱。

3、2)内存溢出与网络i/o瓶颈:在执行跨源连接(join)操作时,传统方法常采用嵌套循环或全量拉取至内存再进行归并的方式。当数据量达到百万级时,极易导致系统内存溢出(oom);同时,全量数据在网络中传输导致严重的i/o延迟。

4、3)前端渲染卡顿与超采样问题:当后端返回数十万甚至更多数据点至前端时,由于前端图表组件的物理屏幕像素有限(如宽度仅为1920px),远超像素数量的数据点会相互重叠覆盖,产生“超采样”现象,导致浏览器渲染引擎过载、画面卡顿。

5、4)增量更新机制缺失或代价过高:当底层数据发生频繁变更时,传统可视化系统通常需要重新发起全量查询并重绘整个图表,无法精准定位受影响的数据子集进行局部增量更新,导致系统资源极大浪费。

6、因此,亟需一种能够在统一数据指纹索引下,实现算子下推与流式哈希连接、前端动态降采样以及局部脏矩形重绘的全链路数据可视化方法。

技术实现思路

1、本发明提供了一种基于多源数据融合的数据可视化方法及系统。本发明解决了现有技术存在的多源数据融合困难且缺乏统一路由机制、内存溢出与网络i/o瓶颈、前端渲染卡顿与超采样问题以及增量更新机制缺失或代价过高的问题。

2、第一方面,本发明实施例提供了一种基于多源数据融合的数据可视化方法,所述方法包括:

3、接入多源异构数据源,提取表结构元数据并计算字段哈希值,生成包含跨源映射关系的统一数据指纹;

4、接收前端看板的交互请求,以所述统一数据指纹为索引,解析并生成包含算子下推规则与流式连接顺序的查询执行拓扑图;

5、根据所述查询执行拓扑图,通过游标流式拉取底层物理数据并在内存中进行哈希归并,输出标准化聚合数据流;

6、前端渲染引擎接收所述标准化聚合数据流,基于当前图表组件的视口像素尺寸对数据流进行动态降采样,生成渲染特征点集合,并进行可视化;

7、当底层数据源发生变更时,通过对比重新计算的统一数据指纹,定位受影响的查询执行拓扑图,重新生成增量标准化聚合数据流,并利用增量流精准更新对应的渲染特征点集合,触发局部重绘。

8、本技术实施例提供的技术方案至少带来以下有益效果:

9、1)统一数据指纹与状态感知:通过提取表结构元数据及数据状态版本信息生成统一数据指纹,不仅内嵌了物理查询路由,还能通过对比版本信息精准感知底层数据行的变化,为增量更新提供基础。

10、2)内存安全与性能优化:采用流式哈希连接代价估算方法,将内存开销较小的一侧作为构建侧驻留内存,另一侧通过游标流式探测匹配,将内存峰值占用约束在规定量级,从源头规避内存溢出风险;同时将选择和投影算子下推为原生方言,极大降低了网络i/o。

11、3)像素级动态降采样:基于物理像素尺寸直接按逻辑x坐标映射划分像素分箱,提取首、尾、中、最大、最小等1-5个视觉代表点,在保留视觉特征的前提下将传输与渲染数据量降至最低,彻底解决超采样卡顿问题。

12、4)无失真的局部增量重绘:构建侧数据变更时,通过重拉时间窗口探测侧数据进行重新匹配,避免了流式状态下历史数据丢失导致的错算;基于增量像素分箱索引精准构建脏矩形区域,仅对局部区域清空重绘,实现毫秒级实时数据联动。

13、在一种可选的实现方式中,接入多源异构数据源,提取表结构元数据并计算字段哈希值,生成包含跨源映射关系的统一数据指纹,包括:

14、通过协议适配器建立与多源异构数据源中每一底层数据源的轻量级连接,执行表结构查询语句,提取每一底层数据源的数据源物理连接信息、结构元数据以及数据状态版本信息;

15、对每一底层数据源的结构元数据进行类型归一化、格式清洗以及拼接,得到对应的规范化字段特征串;

16、使用多项式滚动哈希算法,对每一底层数据源的规范化字段特征串进行计算,得到对应的字段哈希值;

17、用户基于预设的可视化配置界面,拖拽来自不同底层数据源的两个规范化字段特征串建立关联,生成跨源映射对,并根据对应的字段哈希值,计算对应的联合哈希;

18、遍历用户建立的所有跨源映射对,生成包括若干跨源映射对、联合哈希及其对应物理路由信息的集合,即跨源映射对集;

19、将所有底层数据源的数据源物理连接信息、字段哈希值以及跨源映射对集,按照预设的结构化格式进行序列化打包,生成多源异构数据源的包含跨源映射关系的统一数据指纹。

20、在一种可选的实现方式中,所述结构元数据包括物理表名、物理字段名以及原始数据类型;

21、所述数据状态版本信息包括数据变更日志位置、最大更新时间戳或数据行数校验和。

22、在一种可选的实现方式中,接收前端看板的交互请求,以所述统一数据指纹为索引,解析并生成包含算子下推规则与流式连接顺序的查询执行拓扑图,包括:

23、接收前端看板的交互请求,采用经典的逻辑表达式解析方法,将交互请求转化为一棵由逻辑算子节点组成的逻辑算子树,所述逻辑算子树的叶子节点代表对单一底层数据源的投影操作,且其非叶子节点代表关系代数操作,所述关系代数操作包括选择、投影以及连接;

24、以所述统一数据指纹为索引,遍历所述逻辑算子树,对于逻辑算子树中的选择算子或投影算子,查询统一数据指纹中记录的该字段所属的物理数据源及方言类型,将所述选择算子或投影算子转化为底层物理数据源的原生方言片段,并从所述逻辑算子树中剥离;

25、遍历所有选择算子和投影算子,得到所有下推至叶子节点的原生方言片段构成的下推规则集和剥离所有选择算子和投影算子的剥离后的逻辑树;

26、查询所述统一数据指纹中预存的各物理表基础统计权重,对剥离后的逻辑树中任意两个待连接的节点,采用流式哈希连接代价估算方法计算其执行代价,并基于代价最小化原则划分探测侧和流式连接构建侧;

27、使用动态规划算法,在剥离后的逻辑树中所有可能的二叉连接树中搜索总执行代价最小的连接路径,生成有序的二元连接队列,即连接顺序序列;

28、将下推规则集和连接顺序序列进行结构化组装,生成最终的有向无环图,即查询执行拓扑图。

29、在一种可选的实现方式中,所述交互请求包括用户交互的所选维度、度量以及过滤条件。

30、在一种可选的实现方式中,根据所述查询执行拓扑图,通过游标流式拉取底层物理数据并在内存中进行哈希归并,输出标准化聚合数据流,包括:

31、从所述查询执行拓扑图的叶子节点开始激活,根据其叶子节点中封装的物理路由信息与下推规则集,向对应的底层数据源发起游标查询请求;

32、根据游标查询请求,基于批量游标拉取策略,从底层数据源中批处理拉取一系列连续的原始数据分片;

33、若执行到所述查询执行拓扑图中由连接顺序序列确定的流式连接构建侧的节点时,在内存中构建哈希索引,并将对应的原始数据分片中的每一行插入到对应的内存哈希桶中,生成内存哈希桶集;

34、若执行到所述查询执行拓扑图中探测侧的节点时,基于批量游标拉取策略,从探测侧的底层数据源中批处理拉取一系列连续新的原始数据分片;

35、针对所述新的原始数据分片中的每一行,提取其连接键值并计算哈希地址,在所述内存哈希桶集中定位至对应的内存哈希桶进行扫描匹配,若匹配成功,则将该行数据与内存哈希桶中匹配的行进行拼接,生成连接后中间数据流;

36、将连接后中间数据流汇聚到所述查询执行拓扑图的根节点,在内存中维护基于分组键的累加器字典,对于连接后中间数据流中的每一个数据元组,提取其分组键与度量值并执行增量聚合计算,最终输出标准化聚合数据流。

37、在一种可选的实现方式中,前端渲染引擎接收所述标准化聚合数据流,基于当前图表组件的视口像素尺寸对数据流进行动态降采样,生成渲染特征点集合,并进行可视化,包括:

38、前端渲染引擎监听当前图表组件的视口宽度的物理像素值,并接收所述标准化聚合数据流;

39、若所述标准化聚合数据流的数据点总数大于物理像素值,则判定存在严重的超采样,触发降采样机制,提取所述标准化聚合数据流的逻辑边界极值,生成降采样执行参数,所述降采样执行参数包括逻辑边界极值和物理像素值;

40、基于所述降采样执行参数中的逻辑边界极值,按数据点的逻辑x坐标将所述标准化聚合数据流的x轴值域划分为若干个相互独立的像素分箱区间,生成规模不超过降采样执行参数中的物理像素值的像素分箱区间集,并计算对应的像素分箱索引;

41、遍历所述像素分箱区间集中的每一非空的像素分箱区间,计算该像素分箱区间的视觉代表点集合;

42、将所有非空的像素分箱区间的视觉代表点集合按x轴顺序进行合并,并去除重复项,生成降采样后子集;

43、根据所述标准化聚合数据流的逻辑边界极值,将降采样后子集中的每一数据点的逻辑坐标转换为前端画布的物理屏幕坐标,并结合对应的点位的类型标识和所属的像素分箱索引号封装为结构化对象,生成最终的渲染特征点集合;

44、前端渲染引擎调取渲染特征点集合,生成可视化区域。

45、在一种可选的实现方式中,当底层数据源发生变更时,通过对比重新计算的统一数据指纹,定位受影响的查询执行拓扑图,重新生成增量标准化聚合数据流,并利用增量流精准更新对应的渲染特征点集合,触发局部重绘,包括:

46、当底层数据源发生新增、修改或删除操作时,拦截数据变更日志,提取数据变更日志中发生变更的物理记录对应的变更字段及其所属表的数据状态版本信息,使用多项式滚动哈希算法,重新计算变更字段的变更字段哈希值;

47、将变更字段哈希值和最新的数据状态版本信息与统一数据指纹的索引表进行对比,若变更字段哈希值命中索引表中的字段哈希值且最新的数据状态版本信息发生变化,判定该字段哈希值参与前端看板查询,将该命中的字段哈希值及其所属的物理表路由信息收集,生成受影响指纹集;

48、根据受影响指纹集,在所述查询执行拓扑图进行反向溯源与隔离,生成受影响拓扑子图;

49、针对受影响拓扑子图内的叶子节点发起增量游标查询请求,拉取对应的增量原始数据分片,并使用增量探测机制,生成增量标准化聚合数据流;

50、对增量标准化聚合数据流中的每一个增量数据点,提取其增量逻辑x坐标;

51、根据增量逻辑x坐标和降采样执行参数,计算增量数据点在像素分箱区间集中对应的增量像素分箱索引;

52、在对应的渲染特征点集合中,使用哈希查找快速定位像素分箱索引等于增量像素分箱索引的所有目标特征点,将增量数据点与该像素分箱区间内的对应的目标特征点缓存合并,生成局部更新特征点集;

53、将局部更新特征点集中的每一增量数据点的逻辑坐标转换为前端画布的物理屏幕坐标,生成更新后的坐标点;

54、根据增量像素分箱索引,在可视化区域上构建对应的脏矩形区域,前端渲染引擎对脏矩形区域进行清空操作,并从局部更新特征点集中读取更新后的坐标点,仅在该局部区域内重新连线绘制;

55、绘制完成后,系统将局部更新特征点集中的新特征点同步替换至渲染特征点集合中,完成本次增量联动更新。

56、在一种可选的实现方式中,根据受影响指纹集,在所述查询执行拓扑图进行反向溯源与隔离,生成受影响拓扑子图,包括:

57、遍历所述查询执行拓扑图,从查询执行拓扑图的叶子节点开始反向遍历,对于叶子节点封装的下推规则集,若下推规则集包含的下推字段对应的字段哈希值存在于受影响指纹集中,则标记该叶子节点为受影响源节点;

58、沿着查询执行拓扑图的边向上游传播受影响源节点的标记,标记所有以受影响源节点为输入的中间连接节点,得到对应的若干受影响中间节点;

59、直至到达根节点,并抽取所有被标记的受影响源节点、受影响中间节点及其连接边,在内存中生成孤立的受影响拓扑子图。

60、第二方面,本发明实施例提供了一种基于多源数据融合的数据可视化系统,用于实现数据可视化方法,所述系统包括:

61、指纹生成单元,用于接入多源异构数据源,提取表结构元数据并计算字段哈希值,生成包含跨源映射关系的统一数据指纹;

62、拓扑生成单元,用于接收前端看板的交互请求,以所述统一数据指纹为索引,解析并生成包含算子下推规则与流式连接顺序的查询执行拓扑图;

63、流式执行单元,用于根据所述查询执行拓扑图,通过游标流式拉取底层物理数据并在内存中进行哈希归并,输出标准化聚合数据流;

64、可视化单元,用于前端渲染引擎接收所述标准化聚合数据流,基于当前图表组件的视口像素尺寸对数据流进行动态降采样,生成渲染特征点集合,并进行可视化;

65、增量联动单元,用于当底层数据源发生变更时,通过对比重新计算的统一数据指纹,定位受影响的查询执行拓扑图,重新生成增量标准化聚合数据流,并利用增量流精准更新对应的渲染特征点集合,触发局部重绘。

66、本发明实施例第三方面提出一种电子设备,电子设备包括:

67、至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,

68、存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本发明实施例第一方面提出方法。

69、本发明实施例第四方面提出一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例第一方面提出方法。