CN105512139B - 数据可视化的实现方法及装置 - Google Patents

数据可视化的实现方法及装置 Download PDF

Info

Publication number
CN105512139B
CN105512139B CN201410502545.2A CN201410502545A CN105512139B CN 105512139 B CN105512139 B CN 105512139B CN 201410502545 A CN201410502545 A CN 201410502545A CN 105512139 B CN105512139 B CN 105512139B
Authority
CN
China
Prior art keywords
data
visualization
pattern
data source
rendering
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410502545.2A
Other languages
English (en)
Other versions
CN105512139A (zh
Inventor
储晓颖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201410502545.2A priority Critical patent/CN105512139B/zh
Priority to PCT/CN2015/089950 priority patent/WO2016045542A1/zh
Publication of CN105512139A publication Critical patent/CN105512139A/zh
Application granted granted Critical
Publication of CN105512139B publication Critical patent/CN105512139B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明提供一种数据可视化的实现方法及装置,其中,该方法包括:配置数据源、可视化样式,以及数据源和可视化样式之间的关联关系;当收到触发请求时,将数据源、可视化样式、关联关系的配置信息通过定制化接口导入可视化渲染框架;可视化渲染框架根据配置信息进行渲染,并输出至浏览器引擎。本发明的有益效果是:将可视化渲染框架和数据源、可视化样式及其关联关系独立封装,用户只需要对数据源、可视化样式及其关联关系进行配置,即可导入可视化渲染框架进行渲染,提高了研发效率和前端性能。

Description

数据可视化的实现方法及装置
技术领域
本发明涉及一种数据可视化的实现方法及装置,尤其涉及一种前端数据可视化的实现方法及装置。
背景技术
随着技术的进步,大数据分析越发升温,除了海量数据计算和存储的难题,还有一个影响产品研发效率和用户体验的重要环节,即数据可视化。然而即使有EXT、GoogleLineChart等众多可供选择的前端报表技术,也只能被当做工具使用,没有形成一套可扩展的前端IOC开发框架,不能够有效降低研发成本。
在前端报表技术中,常见的包括Ext、Google LineChart、HighChart等等。这些技术通常重渲染而轻框架,仅能作为工具使用。它们各自都规定了自身的数据结构,用户必须自己做AJAX查询,解析JSON,再将data适配为这些工具要求的结构……,这个过程中,工具能够帮助用户解决的仅仅是报表渲染环节,而数据可视化技术的环节还涉及到数据查询、数据解析、数据缓存、结构转换、数据交互、定时驱动、布局控制、弹出拖拽浮动、公用参数控制等等。如果放任这些环节由开发人员自行解决,往往会导致风格迥异的javascript充斥在各个产品代码中(我们不能保证每个前端开发人员都有很高的重构抽象能力),一旦公用的逻辑没有沉淀重用,接下来的维护和扩展工作就会浪费大量的编码成本、学习成本、返工成本。
发明内容
本发明的目的在于提供一种数据可视化的实现方法及装置。
为实现上述发明目的之一,本发明一实施方式提供了一种数据可视化的实现方法,所述方法包括:
配置数据源、可视化样式,以及所述数据源和所述可视化样式之间的关联关系;
当收到触发请求时,将所述数据源、可视化样式、关联关系的配置信息通过定制化接口导入可视化渲染框架;
所述可视化渲染框架根据所述配置信息进行渲染,并输出至浏览器引擎。
作为本发明一实施方式的进一步改进,所述数据源、可视化样式,以及所述可视化渲染框架分别独立封装。
作为本发明一实施方式的进一步改进,所述定制化接口为IOC接口。
作为本发明一实施方式的进一步改进,所述数据源和所述可视化样式为多对多的关联关系,每一个数据源对应至少一个可视化样式,每一个可视化样式对应至少一个数据源。
作为本发明一实施方式的进一步改进,所述『所述可视化渲染框架根据所述配置信息进行渲染』具体包括:
根据所述数据源中配置的服务查询地址及参数信息,获取相应的数据;
根据所述关联关系将所述数据转换为可视化样式匹配的渲染模型;
根据所述渲染模型,调用渲染工具进行渲染。
作为本发明一实施方式的进一步改进,所述参数信息包括:
查询数据的周期、粒度、数据ID的至少其中之一。
作为本发明一实施方式的进一步改进,『根据所述渲染模型,调用渲染工具进行渲染』具体包括:
根据所述可视化样式提供的结构转换逻辑,将所述渲染模型转换为对应的渲染工具所要求参数格式;
根据所述参数格式,调用对应的渲染工具进行渲染。
作为本发明一实施方式的进一步改进,『根据所述参数格式,调用对应的渲染工具进行渲染』具体包括:
根据所述参数格式以及所述可视化样式提供的参数逻辑,调用相应的渲染工具进行渲染。
作为本发明一实施方式的进一步改进,所述『根据所述关联关系将所述数据转换为可视化样式匹配的渲染模型』具体包括:
根据所述关联关系将所述数据转换为可视化样式匹配的的数据结构;
调取所述数据结构并根据与所述数据结构关联的可视化样式,将所述数据结构转换为可视化样式匹配的渲染模型。
作为本发明一实施方式的进一步改进,
所述数据源为插件形式,每个插件中包括数据的服务查询地址及参数信息;
所述可视化样式为插件形式,每个插件中包括一种可视化样式。
作为本发明一实施方式的进一步改进,所述方法还包括:
将事件监听逻辑注册到浏览器引擎。
作为本发明一实施方式的进一步改进,所述方法包括:
配置获取页面坐标函数,以获取触发事件相应的页面元素的页面坐标;
配置获取数据函数,以在获取触发事件相应的页面元素的页面坐标后,调取与所述页面坐标相应的数据;
其中,每一报表类型只对应一个页面元素。
为实现上述发明目的之一,本发明一实施方式提供了一种数据可视化的实现装置,所述数据可视化的实现装置包括:
配置模块,用于配置数据源、可视化样式,以及所述数据源和所述可视化样式之间的关联关系;
导入模块,用于当收到触发请求时,将所述数据源、可视化样式、关联关系的配置信息通过定制化接口导入可视化渲染框架;
所述可视化渲染框架还用于根据所述配置信息进行渲染,并输出至浏览器引擎。
作为本发明一实施方式的进一步改进,所述数据源、可视化样式,以及所述可视化渲染框架分别独立封装。
作为本发明一实施方式的进一步改进,所述定制化接口为IOC接口。
作为本发明一实施方式的进一步改进,所述数据源和所述可视化样式为多对多的关联关系,每一个数据源对应至少一个可视化样式,每一个可视化样式对应至少一个数据源。
作为本发明一实施方式的进一步改进,所述可视化渲染框架具体用于:
根据所述数据源中配置的服务查询地址及参数信息,获取相应的数据;
根据所述关联关系将所述数据转换为可视化样式匹配的渲染模型;
根据所述渲染模型,调用渲染工具进行渲染。
作为本发明一实施方式的进一步改进,所述参数信息包括:
查询数据的周期、粒度、数据ID的至少其中之一。
作为本发明一实施方式的进一步改进,所述可视化渲染框架具体用于:
根据所述可视化样式提供的结构转换逻辑,将所述渲染模型转换为对应的渲染工具所要求参数格式;
根据所述参数格式,调用对应的渲染工具进行渲染。
作为本发明一实施方式的进一步改进,所述可视化渲染框架具体用于:
根据所述参数格式以及所述可视化样式提供的参数逻辑,调用相应的渲染工具进行渲染。
作为本发明一实施方式的进一步改进,所述可视化渲染框架具体用于:
根据所述关联关系将所述数据转换为可视化样式匹配的的数据结构;
调取所述数据结构并根据与所述数据结构关联的可视化样式,将所述数据结构转换为可视化样式匹配的渲染模型。
作为本发明一实施方式的进一步改进,
所述数据源为插件形式,每个插件中包括数据的服务查询地址及参数信息;
所述可视化样式为插件形式,每个插件中包括一种可视化样式。
作为本发明一实施方式的进一步改进,所述可视化渲染框架还用于将事件监听逻辑注册到浏览器引擎。
作为本发明一实施方式的进一步改进,所述配置模块还用于:
配置获取页面坐标函数,以获取触发事件相应的页面元素的页面坐标;
配置获取数据函数,以在获取触发事件相应的页面元素的页面坐标后,调取与所述页面坐标相应的数据;
其中,每一报表类型只对应一个页面元素。
与现有技术相比,本发明的有益效果是:将可视化渲染框架和数据源、可视化样式及其关联关系独立封装,用户只需要对数据源、可视化样式及其关联关系进行配置,即可导入可视化渲染框架进行渲染,提高了研发效率和前端性能。
附图说明
图1是本发明一实施方式的数据可视化的实现方法的流程图;
图2是本发明一实施方式中数据源、可视化样式、以及关联关系与可视化渲染框架中各环节对应的模块示意图;
图3是本发明一实施方式中将前端的角色进行IOC架构设计的模块图;
图4是本发明一实施方式中XSTING用户期望展示一个表格,表格中展示交易摘要相关的数据时的编码示意图;
图5是本发明一实施方式中在多数据源场景下,用户定义ds1和ds2两个数据源配置的编码示意图;
图6是与图5对应的展现效果图;
图7是本发明一实施方式中展现一天1440分钟的数据走势的曲线图;
图8是本发明一实施方式中用DOM元素绘制图7所示的数据走势的示意图;
图9是本发明一实施方式的数据可视化的实现装置的模块图。
具体实施方式
以下将结合附图所示的各实施方式对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所轻易做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。
如图1所示,本发明一实施方式提供了一种数据可视化的实现方法,其包括:
配置数据源、可视化样式,以及数据源和可视化样式之间的关联关系;
在数据分析领域,用户往往会面对多种多样的数据源。比如在数据仓库产出BI报表时,可能既要获取DB中ETL清洗出来的数据(比如某个商品的交易次数),又要获取日志分析的数据(比如某个商品被用户浏览的UV),还要加上消息事件的数据(比如某个商品的炒信行为数量),甚至要去捞取微博上的舆情数据。
用户在想要展现某个报表时,必然清楚应该展示为什么样式(是表格、曲线、还是饼图等),而这些不同的样式也即定义为可视化样式。
数据源和可视化样式为多对多的关联关系,每一个数据源对应至少一个可视化样式,每一个可视化样式对应至少一个数据源。例如,分钟级统计的数据既可以展示为曲线图样式也可以展示为表格样式;而表格样式既可以展示分钟级统计数据又可以展示多笔业务状态机结果。此步骤中,相应地配置了数据源和可视化样式之间的关联关系,以在每个数据源中,为它支持的可视化样式各提供一个之间的关联关系,以便将本数据源查询的原始JSON转换为不同可视化样式偏爱的数据结构,而数据源和可视化样式之间的关联关系就像关系型数据库里的中间表,维持了数据源和可视化样式的多对多关系。
当收到触发请求时,将数据源、可视化样式、关联关系的配置信息通过定制化接口导入可视化渲染框架,可视化渲染框架根据配置信息进行渲染,并输出至浏览器引擎。
如图2所示,触发请求可以是例如定时触发、用户点击等,可视化渲染框架内封装有一套完整的实现流程(这部分将在下文中做详细的描述),并向外暴露定制化接口,等待上述的数据源、可视化样式、关联关系的配置信息导入后实现。而数据源、可视化样式、以及关联关系三者对应到该可视化渲染框架中各部分的关系即如图2所示,图中所示的圆形框中为需要通过数据源、可视化样式、以及关联关系进行配置的逻辑部分。
在本发明的一实施方式中,可视化渲染框架内封装的流程有:
查询驱动(Query Driver)按照一定策略(可能是定时、也可以是人工触发、也可能是页面刚打开时的初始化触发),触发异步查询(Async Query)。
异步查询向提供数据查询服务的REST服务发起AJAX查询,获取数据(比如JSON结构的数据)。具体地,异步查询需要根据数据源中配置的服务查询地址和参数信息,获取相应的数据,这里的服务查询地址指的是数据源为异步查询提供的是REST服务的查询地址,参数信息包括查询数据的周期、粒度、数据ID的至少其中之一。
REST服务返回的只是服务端定义的数据结构,不一定适合前端。造成这种现象的一个重要原因就是前后端的角色差异。差异之一,服务端偏稳,前端追求灵活,面对频繁变更的需求我们更倾向于灵活的修改前端逻辑,而让后端服务逐渐沉淀稳态。差异之二,是前后端的数据视角不同,后端更倾向于通用的视角,而前端则倾向于面向当前展示场景的视角。
例如,服务器端保存了全国各所大学的学生信息,其暴露的REST服务定义的结构可能就是偏本质的List<Student>,Student对象中包含了学号、姓名、性别、专业等基本信息,另一个REST服务提供学分成绩查询(提供学号作为参数),会返回GPA对象(包含各科成绩)。而前端的某个页面可能是一个班级的学分成绩展示场景,它更偏爱的数据结构是List<StudentGPA>,StudentGPA={学号:xxx,姓名:xxx,高等数学:86,英语:92,离散数学:77,Linux程序设计:99…},而且这个List最好还是按总学分降序排列的。
由于上述的这些需求差异,就需要将REST服务返回的原始结果交给数据模型转(Data Model Transform)换进行结构转换,变成前端偏爱的结构。转换好的结果就可以交给数据模型缓存(Data Model Cache)进行前端缓存了(可以做单例缓存,也可以实现多版本,视情况而定)。
渲染驱动(Render Driver)按一定的策略(可能是定时、人工触发、查询完成触发等等)获取数据模型缓存中的数据,执行渲染模型转换。数据源中的多个关联关系(Adaptor)是为渲染模型转换提供结构转换逻辑。在此过程中,需要根据关联关系将该数据转换为可视化样式匹配的渲染模型,更具体地,先根据关联关系将数据转换为可视化样式匹配的数据结构,再调取数据结构并根据与该数据结构关联的可视化样式,将数据结构转换为可视化样式匹配的渲染模型。不同可视化样式要求的渲染模型不同(比如时间曲线样式要求提供Map<Time,Value>,而表格样式要求提供一个二维数组),所以在一个数据源中每个可视化样式会对应一个专有的关联关系,此关联关系负责将原始JSON转换为该可视化样式的渲染模型;同时,可视化样式会为渲染模型转换提供渲染工具的结构转换逻辑(比如将可视化样式自身的渲染模型转换为EXT饼状图所要求的参数格式)。
还是以学生信息为例,List<StudentGPA>结构虽然适用于“班级学分绩展示”这个前端场景,但是它不一定适用于开发者当前使用的报表渲染工具,EXT有它要求的结构、GoogleLineChart要求的又是另一种结构……多出这样一个转换步骤最大的目的在于不被工具绑架数据结构。一旦数据结构被某个工具绑架,会带来诸多问题,例如换工具的时候非常麻烦、结构偏离本质导致可维护性变差、Dashboard难以支持多种展现形式(比如用户想要看心情来选择展示为表格或者饼图)。
转换为渲染模型(Render Model)以后,就正式的托管给各类渲染工具(RenderTool,例如EXT)了。在托管给渲染工具之前,需要根据渲染模型,调用渲染工具进行渲染。具体地,先根据可视化样式提供的结构转换逻辑,将需渲染模型转换为对应的渲染工具所要求参数格式,并根据该参数格式,调用对应的渲染工具进行渲染,如此,可适应更多的渲染工具。而在根据参数格式,调用对应的渲染工具进行渲染时,会同时根据参数格式以及可视化样式提供的参数逻辑(比如曲线样式的可视化样式就会使用EXT中的LineChart、表格样式的可视化样式则使用EXT中的Grid,并提供表头、标题等信息),调用相应的渲染工具进行渲染。
渲染工具按照各自实现方式的不同,将渲染模型提供的信息注册到浏览器引擎(比如向document中插入一个<table>),完成渲染;与此同时,提供给渲染工具的还可能包含事件监听逻辑,此时需要将该事件监听逻辑一并注册到浏览器引擎。
如果DOM元素捕获到交互事件,浏览器引擎则会回调事件监听handler,后者完成事件处理逻辑,这里的逻辑就可能多种多样了,可能是一个简单的alert,也可能是对数据模型缓存中结构的修改,也可能是人工触发一次新的查询流程或渲染流程。
如图3所示,本发明的一实施方式中,上述的定制化接口为IOC接口。IOC(Inversion of Control,控制反转)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核心。通过将控制权交给框架,由框架做重复的流程,而用户只需关注自身的业务(或功能)。在IOC架构实现的过程中,底层的可视化渲染框架负责一套流程的封装和实现,但忽略所有定制化逻辑的实现细节,而是向外暴露IOC接口,等待上层实现;中间的Plugin层负责封装常用的定制化逻辑(包括常用的数据源及常见的可视化样式);最顶层则是最终产品的逻辑,此层的编码要尽量简化,在可视化渲染框架、Plugin两层封装之后,产品层应该只需要提供不同Plugin所必须的参数即可。
在进行IOC的架构设计时,数据源、可视化样式,以及可视化渲染框架分别独立封装。数据源被配置为插件形式,每个插件中包括数据的服务查询地址及参数信息,每个数据源就是一个数据源插件,例如,封装的数据源包括分钟级统计数据、秒级数据统计、ERROR日志分词统计、单笔业务状态机、海量槽位全表遍历查询等多种多样格式不一的数据源;类似地,可视化样式也被配置为插件形式,每个插件中包括一种可视化样式,每个可视化样式就是一个可视化样式插件,例如曲线图、饼图、表格、柱状图等实现逻辑,在XFLUSH中还包含了链路图、网状图、灯图等更多复杂样式。
如图4所示,为用户编写的一个实际例子,他期望展示的是一个表格,表格中展示“交易摘要”相关的数据。他所需的编码内容包括:
第一个框:为数据源提供必需的参数,比如schema=DataSource1是在选择一个数据源插件(DataSource1选择的是分钟级统计数据源),table则表示选择哪张表里的统计结果(可以将XFLUSH中的几千个分钟级统计规则的结果看做几千张表,而此例中则使用了交易相关的数据表),最后这个数据源对象还为Style4提供了专属参数:valueColIndex=3,表示此表返回的结果中代表数值的data会放在第3列提供给Style4。
第二个框:为可视化样式提供必需的参数,比如schema是在选择插件(Style4是高级表格展示插件),heads是在定义表头(表头第3列是“数量”也和valueColIndex对应),defaultSortColIndex=3表示默认按第3列进行排序,defaultSortCount表示默认排序展示前多少个。
第三个框:为报表提供一些基本信息,比如位置、大小、刷新速度、标题等。
只需要这些信息,就能展示出用户所需的报表了,在目前日趋丰富的插件库支持下,能够支持的数据源和样式组合已经能够满足所有日常所需了,用户也只需要简单的编码,就能轻松实现各种不同效果。
如图5和图6所示,在多数据源的场景下作用更加明显:
在本发明的一实施方式中,期望将多个数据源的数据展示在同一张曲线报表中,用户只需要定义多个数据源即可(图5定义了ds1和ds2两个数据源配置,图6为展现效果)。而且多个数据源可以是相异的插件(本例中都是DataSource1插件,实际使用时可以组合使用任意的数据源插件,只要它们都实现了支持曲线图可视化样式的关联关系即可,比如在双十一大促时,ds1获取交易数据,ds2获取微博舆情数据(每分钟出现的与双十一相关的微博数量),继而展示到同一张曲线图中)。而且异步查询环节也利用了Javascript的Deferred技术,实现了同步的编程模型,简化了框架设计,解决了多个异步查询返回结果的时间差问题,避免轮询等劣质解决方案。
不仅如此,框架提供的事件监听机制、交互控制、弹出动态报表等功能都是以最简化的IOC接口暴露给用户,将用户编码量降至最低,只提供绝对需要的定制化参数而已,不需要考虑底层实现细节。
如图7所示,在传统的前端报表技术中,有些只能做到DOM元素级别的渲染和控制。比如一个曲线图,展现了一天1440分钟的数据走势,其中就会有一千多个数据(1440个点)需要渲染,在HTML5等技术出现之前,前端报表技术往往非常被动的采用一些复杂解决方案,甚至会产生与数据点数量相当的DOM元素来绘制出曲线。
如图8所示,这些<circle>元素最终绘制出了图中的曲线。这样的做法不论好坏,在性能上还是略逊一筹的,起码在交互事件上就会非常被动。比如想要监听曲线中某一个点的鼠标单击事件,那就是1440个DOM元素都要被妥善的注册、管理它们的生命周期、处理它们的交互事件等。DOM元素其实还是粒度比较粗的运行时对象(内部包含很多的元数据、运行时数据),会给浏览器引擎带来较大的负担。而且作为渲染为主的工具,往往很难加入细粒度的交互功能(比如想要监听图8中LineChart上某一个“点”的鼠标单击事件,工具未必能够开放出简洁的API),这类工具暴露给用户的交互API粒度一般是较粗的(比如对整个图表进行拖拽、点击)。
而本申请的一实施方式中,为了实现细粒度的交互渲染控制(比如一段1440个“点”的曲线,希望鼠标点击曲线中的某一段区域能弹出另一张详情报表、比如想控制曲线不同区域段的颜色粗细、比如希望将曲线图当做node绘制一个网状交织的链路关系图等等),采用了HTML5的Canvas技术实现了一套简洁易用的渲染工具,也就是类似EXT、GoogleLineChart的制图工具javascript库。此工具库和常规的实现方案最大的区别就是充分采用了游戏引擎中“时间换空间”的设计思路。
在游戏引擎客户端渲染的场景中,可以将2D、3D的地图或模型都全量制造并存储为数据文件,运行时在根据场景切换来动态加载数据文件,将地图、模型数据载入内存,最终完成渲染。举例说明,在2D游戏中,一张野外草地的地图如果是一张图片,那可能会达到1MB(假如有1024*1024个像素,每个像素的RGB值占一个byte),在载入该地图后其实就是将整张图片绘制到界面上。而实际的设计往往简单很多:制造4张小图片ABCD,体现略有差异的植被特征,这4张小图片的排列组合就制造出了不同的地图场景(比如A代表纯草地,B代表有小石头的草地,C代表有杂草的草地,D代表光秃的黄土,那2D地图文件可以仅仅是一个二维数组,其中的元素就是ABCD四选一,不同的排列组合就能形成不同的地图样貌),这种做法能够极大的降低存储空间损耗、内存占用量、元素管理和交互控制的负担,唯一增加的就是渲染时的逻辑复杂度,需要一定的计算量(不像绘制一张大图片那么简单)。
对应到本申请的数据可视化实现方法一实施方式中:
首先,配置获取页面坐标函数,以获取触发事件相应的页面元素的页面坐标;
还是以1440个“点”的曲线举例,原始的数据是Map<Time,Value>,传统的做法就是产生1440个DOM元素,注册给浏览器引擎,后者完成渲染和元素生命周期管理、事件控制。而本发明的做法是:提供一个获取页面坐标函数(getPositionByEntry);对于Map里的每个entry(也就是每个点),作为参数调用页面坐标函数函数(Time可推算出x坐标,Value可推算出y坐标);使用HTML5的Canvas完成“点”的绘制(绘制时可根据各种个性化需求选择颜色、大小等效果)。
其次,配置获取数据函数,以在获取触发事件相应的页面元素的页面坐标后,调取与所述页面坐标相应的数据;其中,每一报表类型只对应一个页面元素。
当鼠标点击事件发生时,将鼠标坐标作为参数调用获取数据函数(getEntryByPosition,x坐标可推算出最相近的Entry,假如x轴总长为N像素,一共M个点,当前x坐标为x,那就是第Math.round(x/(N/M))个entry);将此entry的数据取出做后续事件监听处理。
如此,仅仅是在制图和交互时多了一点计算量,而1440个DOM元素所占用的空间和损耗的维护成本都可以避免了。除了上述实施例中提到的曲线图,表格、饼图等样式下的处理思路都是类似,在此不再赘述。
如图9所示,在本发明一实施方式中,数据可视化的实现装置100包括配置模块10、导入模块20、以及可视化渲染框架30。
配置模块10用于配置数据源、可视化样式,以及数据源和可视化样式之间的关联关系;
在数据分析领域,用户往往会面对多种多样的数据源。比如在数据仓库产出BI报表时,可能既要获取DB中ETL清洗出来的数据(比如某个商品的交易次数),又要获取日志分析的数据(比如某个商品被用户浏览的UV),还要加上消息事件的数据(比如某个商品的炒信行为数量),甚至要去捞取微博上的舆情数据。
用户在想要展现某个报表时,必然清楚应该展示为什么样式(是表格、曲线、还是饼图等),而这些不同的样式也即定义为可视化样式。
数据源和可视化样式为多对多的关联关系,每一个数据源对应至少一个可视化样式,每一个可视化样式对应至少一个数据源。例如,分钟级统计的数据既可以展示为曲线图样式也可以展示为表格样式;而表格样式既可以展示分钟级统计数据又可以展示多笔业务状态机结果。此步骤中,相应地配置了数据源和可视化样式之间的关联关系,以在每个数据源中,为它支持的可视化样式各提供一个之间的关联关系,以便将本数据源查询的原始JSON转换为不同可视化样式偏爱的数据结构,而数据源和可视化样式之间的关联关系就像关系型数据库里的中间表,维持了数据源和可视化样式的多对多关系。
导入模块20用于当收到触发请求时,将数据源、可视化样式、关联关系的配置信息通过定制化接口导入可视化渲染框架30,可视化渲染框架30根据配置信息进行渲染,并输出至浏览器引擎。
如图2所示,触发请求可以是例如定时触发、用户点击等,可视化渲染框架内封装有一套完整的实现流程(这部分将在下文中做详细的描述),并向外暴露定制化接口,等待上述的数据源、可视化样式、关联关系的配置信息导入后实现。而数据源、可视化样式、以及关联关系三者对应到该可视化渲染框架中各部分的关系即如图所示,图中所示的圆形框中为需要通过数据源、可视化样式、以及关联关系进行配置的逻辑部分。
在本发明一实施方式中,可视化渲染框架30内包括:
查询驱动(Query Driver)按照一定策略(可能是定时、也可以是人工触发、也可能是页面刚打开时的初始化触发),触发异步查询(Async Query)。
异步查询向提供数据查询服务的REST服务发起AJAX查询,获取数据(比如JSON结构的数据)。具体地,可视化渲染框架30中的异步查询用于根据数据源中配置的服务查询地址和参数信息,获取相应的数据,这里的服务查询地址指的是数据源为异步查询提供的是REST服务的查询地址,参数信息包括查询数据的周期、粒度、数据ID的至少其中之一。
REST服务返回的只是服务端定义的数据结构,不一定适合前端。造成这种现象的一个重要原因就是前后端的角色差异。差异之一,服务端偏稳,前端追求灵活,面对频繁变更的需求我们更倾向于灵活的修改前端逻辑,而让后端服务逐渐沉淀稳态。差异之二,是前后端的数据视角不同,后端更倾向于通用的视角,而前端则倾向于面向当前展示场景的视角。
例如,服务器端保存了全国各所大学的学生信息,其暴露的REST服务定义的结构可能就是偏本质的List<Student>,Student对象中包含了学号、姓名、性别、专业等基本信息,另一个REST服务提供学分成绩查询(提供学号作为参数),会返回GPA对象(包含各科成绩)。而前端的某个页面可能是一个班级的学分成绩展示场景,它更偏爱的数据结构是List<StudentGPA>,StudentGPA={学号:xxx,姓名:xxx,高等数学:86,英语:92,离散数学:77,Linux程序设计:99…},而且这个List最好还是按总学分降序排列的。
由于上述的这些需求差异,就需要将REST服务返回的原始结果交给数据模型转(Data Model Transform)换进行结构转换,变成前端偏爱的结构。转换好的结果就可以交给数据模型缓存(Data Model Cache)进行前端缓存了(可以做单例缓存,也可以实现多版本,视情况而定)。
渲染驱动(Render Driver)按一定的策略(可能是定时、人工触发、查询完成触发等等)获取数据模型缓存中的数据,执行渲染模型转换。数据源中的多个关联关系(Adaptor)是为渲染模型转换提供结构转换逻辑。在此过程中,可视化渲染框架30需要根据关联关系将该数据转换为可视化样式匹配的渲染模型,更具体地,先根据关联关系将数据转换为可视化样式匹配的数据结构,再调取数据结构并根据与该数据结构关联的可视化样式,将数据结构转换为可视化样式匹配的渲染模型。不同可视化样式要求的渲染模型不同(比如时间曲线样式要求提供Map<Time,Value>,而表格样式要求提供一个二维数组),所以在一个数据源中每个可视化样式会对应一个专有的关联关系,此关联关系负责将原始JSON转换为该可视化样式的渲染模型;同时,可视化样式会为渲染模型转换提供渲染工具的结构转换逻辑(比如将可视化样式自身的渲染模型转换为EXT饼状图所要求的参数格式)。
还是以学生信息为例,List<StudentGPA>结构虽然适用于“班级学分绩展示”这个前端场景,但是它不一定适用于开发者当前使用的报表渲染工具,EXT有它要求的结构、GoogleLineChart要求的又是另一种结构……多出这样一个转换步骤最大的目的在于不被工具绑架数据结构。一旦数据结构被某个工具绑架,会带来诸多问题,例如换工具的时候非常麻烦、结构偏离本质导致可维护性变差、Dashboard难以支持多种展现形式(比如用户想要看心情来选择展示为表格或者饼图)。
转换为渲染模型(Render Model)以后,就正式的托管给各类渲染工具(RenderTool,例如EXT)了。在托管给渲染工具之前,可视化渲染框架30还用于根据渲染模型,调用渲染工具进行渲染。具体地,先根据可视化样式提供的结构转换逻辑,将需渲染模型转换为对应的渲染工具所要求参数格式,并根据该参数格式,调用对应的渲染工具进行渲染,如此,可适应更多的渲染工具。而在根据参数格式,调用对应的渲染工具进行渲染时,会同时根据参数格式以及可视化样式提供的参数逻辑(比如曲线样式的可视化样式就会使用EXT中的LineChart、表格样式的可视化样式则使用EXT中的Grid,并提供表头、标题等信息),调用相应的渲染工具进行渲染。
渲染工具按照各自实现方式的不同,将渲染模型提供的信息注册到浏览器引擎(比如向document中插入一个<table>),完成渲染;与此同时,提供给渲染工具的还可能包含事件监听逻辑,可视化渲染框架30会将该事件监听逻辑一并注册到浏览器引擎。
如果DOM元素捕获到交互事件,浏览器引擎则会回调事件监听handler,后者完成事件处理逻辑,这里的逻辑就可能多种多样了,可能是一个简单的alert,也可能是对数据模型缓存中结构的修改,也可能是人工触发一次新的查询流程或渲染流程。
如图3所示,本发明的一实施方式中,该定制化接口为IOC接口。IOC(Inversion ofControl,控制反转)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核心。通过将控制权交给框架,由框架做重复的流程,而用户只需关注自身的业务(或功能)。所以,本发明提供的数据可视化实现方法实际上是对原有的前端可视化实现流程中,查询流程和渲染流程两部分进行IOC架构实现的过程。底层的可视化渲染框架负责一套流程的封装和实现,但忽略所有定制化逻辑的实现细节,而是向外暴露IOC接口,等待上层实现;中间的Plugin层负责封装常用的定制化逻辑(包括常用的数据源及常见的可视化样式);最顶层则是最终产品的逻辑,此层的编码要尽量简化,在可视化渲染框架、Plugin两层封装之后,产品层应该只需要提供不同Plugin所必须的参数即可。
在进行IOC的架构设计时,数据源、可视化样式,以及可视化渲染框架分别独立封装。数据源被配置为插件形式,每个插件中包括数据的服务查询地址及参数信息,每个数据源就是一个数据源插件,例如,封装的数据源包括分钟级统计数据、秒级数据统计、ERROR日志分词统计、单笔业务状态机、海量槽位全表遍历查询等多种多样格式不一的数据源;类似地,可视化样式也被配置为插件形式,每个插件中包括一种可视化样式,每个可视化样式就是一个可视化样式插件,例如曲线图、饼图、表格、柱状图等实现逻辑,还可包含了链路图、网状图、灯图等更多复杂样式。
如图4所示,为用户编写的一个实际例子,他期望展示的是一个表格,表格中展示“交易摘要”相关的数据。他所需的编码内容包括:
第一个框:为数据源提供必需的参数,比如schema=DataSource1是在选择一个数据源插件(DataSource1选择的是分钟级统计数据源),table则表示选择哪张表里的统计结果(可以将几千个分钟级统计规则的结果看做几千张表,而此例中则使用了交易相关的数据表),最后这个数据源对象还为Style4提供了专属参数:valueColIndex=3,表示此表返回的结果中代表数值的data会放在第3列提供给Style4。
第二个框:为可视化样式提供必需的参数,比如schema是在选择插件(Style4是高级表格展示插件),heads是在定义表头(表头第3列是“数量”也和valueColIndex对应),defaultSortColIndex=3表示默认按第3列进行排序,defaultSortCount表示默认排序展示前多少个。
第三个框:为报表提供一些基本信息,比如位置、大小、刷新速度、标题等。
只需要这些信息,就能展示出用户所需的报表了,在目前日趋丰富的插件库支持下,能够支持的数据源和样式组合已经能够满足所有日常所需了,用户也只需要简单的编码,就能轻松实现各种不同效果。
如图5和图6所示,在多数据源的场景下的作用更加明显:
在本发明的一实施方式中,期望将多个数据源的数据展示在同一张曲线报表中,用户只需要定义多个数据源即可(图5定义了ds1和ds2两个数据源配置,图6为展现效果)。而且多个数据源可以是相异的插件(本例中都是DataSource1插件,实际使用时可以组合使用任意的数据源插件,只要它们都实现了支持曲线图可视化样式的关联关系即可,比如在双十一大促时,ds1获取交易数据,ds2获取微博舆情数据(每分钟出现的与双十一相关的微博数量),继而展示到同一张曲线图中)。而且XSTING的异步查询环节也利用了Javascript的Deferred技术,实现了同步的编程模型,简化了框架设计,解决了多个异步查询返回结果的时间差问题,避免轮询等劣质解决方案。
不仅如此,框架提供的事件监听机制、交互控制、弹出动态报表等功能都是以最简化的IOC接口暴露给用户,将用户编码量降至最低,只提供绝对需要的定制化参数而已,不需要考虑底层实现细节。
如图7所示,在传统的前端报表技术中,有些只能做到DOM元素级别的渲染和控制。比如一个曲线图,展现了一天1440分钟的数据走势,其中就会有一千多个数据(1440个点)需要渲染,在HTML5等技术出现之前,前端报表技术往往非常被动的采用一些复杂解决方案,甚至会产生与数据点数量相当的DOM元素来绘制出曲线。
如图8所示,这些<circle>元素最终绘制出了图中的曲线。这样的做法不论好坏,在性能上还是略逊一筹的,起码在交互事件上就会非常被动。比如想要监听曲线中某一个点的鼠标单击事件,那就是1440个DOM元素都要被妥善的注册、管理它们的生命周期、处理它们的交互事件等。DOM元素其实还是粒度比较粗的运行时对象(内部包含很多的元数据、运行时数据),会给浏览器引擎带来较大的负担。而且作为渲染为主的工具,往往很难加入细粒度的交互功能(比如想要监听图8中LineChart上某一个“点”的鼠标单击事件,工具未必能够开放出简洁的API),这类工具暴露给用户的交互API粒度一般是较粗的(比如对整个图表进行拖拽、点击)。
而本申请的一实施方式中,为了实现细粒度的交互渲染控制(比如一段1440个“点”的曲线,希望鼠标点击曲线中的某一段区域能弹出另一张详情报表、比如想控制曲线不同区域段的颜色粗细、比如希望将曲线图当做node绘制一个网状交织的链路关系图等等),采用了HTML5的Canvas技术实现了一套简洁易用的渲染工具,也就是类似EXT、GoogleLineChart的制图工具javascript库。此工具库和常规的实现方案最大的区别就是充分采用了游戏引擎中“时间换空间”的设计思路。
在游戏引擎客户端渲染的场景中,可以将2D、3D的地图或模型都全量制造并存储为数据文件,运行时在根据场景切换来动态加载数据文件,将地图、模型数据载入内存,最终完成渲染。举例说明,在2D游戏中,一张野外草地的地图如果是一张图片,那可能会达到1MB(假如有1024*1024个像素,每个像素的RGB值占一个byte),在载入该地图后其实就是将整张图片绘制到界面上。而实际的设计往往简单很多:制造4张小图片ABCD,体现略有差异的植被特征,这4张小图片的排列组合就制造出了不同的地图场景(比如A代表纯草地,B代表有小石头的草地,C代表有杂草的草地,D代表光秃的黄土,那2D地图文件可以仅仅是一个二维数组,其中的元素就是ABCD四选一,不同的排列组合就能形成不同的地图样貌),这种做法能够极大的降低存储空间损耗、内存占用量、元素管理和交互控制的负担,唯一增加的就是渲染时的逻辑复杂度,需要一定的计算量(不像绘制一张大图片那么简单)。
对应到本申请的数据可视化实现装置一实施方式中:
首先,配置模块10还用于配置获取页面坐标函数,以获取触发事件相应的页面元素的页面坐标;
还是以1440个“点”的曲线举例,原始的数据是Map<Time,Value>,传统的做法就是产生1440个DOM元素,注册给浏览器引擎,后者完成渲染和元素生命周期管理、事件控制。而本发明的做法是:提供一个获取页面坐标函数(getPositionByEntry);对于Map里的每个entry(也就是每个点),作为参数调用页面坐标函数函数(Time可推算出x坐标,Value可推算出y坐标);使用HTML5的Canvas完成“点”的绘制(绘制时可根据各种个性化需求选择颜色、大小等效果)。
其次,配置模块10配置获取数据函数,以在获取触发事件相应的页面元素的页面坐标后,调取与所述页面坐标相应的数据;其中,每一报表类型只对应一个页面元素。
当鼠标点击事件发生时,将鼠标坐标作为参数调用获取数据函数(getEntryByPosition,x坐标可推算出最相近的Entry,假如x轴总长为N像素,一共M个点,当前x坐标为x,那就是第Math.round(x/(N/M))个entry);将此entry的数据取出做后续事件监听处理。
如此,仅仅是在制图和交互时多了一点计算量,而1440个DOM元素所占用的空间和损耗的维护成本都可以避免了。除了上述实施例中提到的曲线图,表格、饼图等样式下的处理思路都是类似,在此不再赘述。
综上所述,将可视化渲染框架和数据源、可视化样式及其关联关系独立封装,用户只需要对数据源、可视化样式及其关联关系进行配置,即可导入可视化渲染框架进行渲染,提高了研发效率和前端性能。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施方式中的对应过程,在此不再赘述。
在本发明所提供的几个实施方式中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本发明各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以2个或2个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(processor)执行本发明各个实施方式所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read‐Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施方式仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施方式对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施方式技术方案的精神和范围。

Claims (22)

1.一种数据可视化的实现方法,其特征在于,所述方法包括:
配置数据源、可视化样式,以及所述数据源和所述可视化样式之间的关联关系;
当收到触发请求时,将所述数据源、可视化样式、关联关系的配置信息通过定制化接口导入可视化渲染框架;
所述可视化渲染框架根据所述配置信息进行渲染,并输出至浏览器引擎;
其中,所述数据源、可视化样式,以及所述可视化渲染框架分别独立封装。
2.根据权利要求1所述的数据可视化的实现方法,其特征在于,所述定制化接口为IOC接口。
3.根据权利要求1所述的数据可视化的实现方法,其特征在于,所述数据源和所述可视化样式为多对多的关联关系,每一个数据源对应至少一个可视化样式,每一个可视化样式对应至少一个数据源。
4.根据权利要求1所述的数据可视化的实现方法,其特征在于,所述可视化渲染框架根据所述配置信息进行渲染具体包括:
根据所述数据源中配置的服务查询地址及参数信息,获取相应的数据;
根据所述关联关系将所述数据转换为可视化样式匹配的渲染模型;
根据所述渲染模型,调用渲染工具进行渲染。
5.根据权利要求4所述的数据可视化的实现方法,其特征在于,所述参数信息包括:
查询数据的周期、粒度、数据ID的至少其中之一。
6.根据权利要求4所述的数据可视化的实现方法,其特征在于,根据所述渲染模型,调用渲染工具进行渲染具体包括:
根据所述可视化样式提供的结构转换逻辑,将所述渲染模型转换为对应的渲染工具所要求参数格式;
根据所述参数格式,调用对应的渲染工具进行渲染。
7.根据权利要求6所述的数据可视化的实现方法,其特征在于,根据所述参数格式,调用对应的渲染工具进行渲染具体包括:
根据所述参数格式以及所述可视化样式提供的参数逻辑,调用相应的渲染工具进行渲染。
8.根据权利要求4所述的数据可视化的实现方法,其特征在于,所述根据所述关联关系将所述数据转换为可视化样式匹配的渲染模型具体包括:
根据所述关联关系将所述数据转换为可视化样式匹配的的数据结构;
调取所述数据结构并根据与所述数据结构关联的可视化样式,将所述数据结构转换为可视化样式匹配的渲染模型。
9.根据权利要求4所述的数据可视化的实现方法,其特征在于,
所述数据源为插件形式,每个插件中包括数据的服务查询地址及参数信息;
所述可视化样式为插件形式,每个插件中包括一种可视化样式。
10.根据权利要求1所述的数据可视化的实现方法,其特征在于,所述方法还包括:
将事件监听逻辑注册到浏览器引擎。
11.根据权利要求1所述的数据可视化的实现方法,其特征在于,所述方法包括:
配置获取页面坐标函数,以获取触发事件相应的页面元素的页面坐标;
配置获取数据函数,以在获取触发事件相应的页面元素的页面坐标后,调取与所述页面坐标相应的数据;
其中,每一报表类型只对应一个页面元素。
12.一种数据可视化的实现装置,其特征在于,所述数据可视化的实现装置包括:
配置模块,用于配置数据源、可视化样式,以及所述数据源和所述可视化样式之间的关联关系;
导入模块,用于当收到触发请求时,将所述数据源、可视化样式、关联关系的配置信息通过定制化接口导入可视化渲染框架;
所述可视化渲染框架还用于根据所述配置信息进行渲染,并输出至浏览器引擎;
其中,所述数据源、可视化样式,以及所述可视化渲染框架分别独立封装。
13.根据权利要求12所述的数据可视化的实现装置,其特征在于,所述定制化接口为IOC接口。
14.根据权利要求12所述的数据可视化的实现装置,其特征在于,所述数据源和所述可视化样式为多对多的关联关系,每一个数据源对应至少一个可视化样式,每一个可视化样式对应至少一个数据源。
15.根据权利要求12所述的数据可视化的实现装置,其特征在于,所述可视化渲染框架具体用于:
根据所述数据源中配置的服务查询地址及参数信息,获取相应的数据;
根据所述关联关系将所述数据转换为可视化样式匹配的渲染模型;
根据所述渲染模型,调用渲染工具进行渲染。
16.根据权利要求15所述的数据可视化的实现装置,其特征在于,所述参数信息包括:
查询数据的周期、粒度、数据ID的至少其中之一。
17.根据权利要求15所述的数据可视化的实现装置,其特征在于,所述可视化渲染框架具体用于:
根据所述可视化样式提供的结构转换逻辑,将所述渲染模型转换为对应的渲染工具所要求参数格式;
根据所述参数格式,调用对应的渲染工具进行渲染。
18.根据权利要求17所述的数据可视化的实现装置,其特征在于,所述可视化渲染框架具体用于:
根据所述参数格式以及所述可视化样式提供的参数逻辑,调用相应的渲染工具进行渲染。
19.根据权利要求15所述的数据可视化的实现装置,其特征在于,所述可视化渲染框架具体用于:
根据所述关联关系将所述数据转换为可视化样式匹配的的数据结构;
调取所述数据结构并根据与所述数据结构关联的可视化样式,将所述数据结构转换为可视化样式匹配的渲染模型。
20.根据权利要求15所述的数据可视化的实现装置,其特征在于,
所述数据源为插件形式,每个插件中包括数据的服务查询地址及参数信息;
所述可视化样式为插件形式,每个插件中包括一种可视化样式。
21.根据权利要求12所述的数据可视化的实现装置,其特征在于,所述可视化渲染框架还用于将事件监听逻辑注册到浏览器引擎。
22.根据权利要求12所述的数据可视化的实现装置,其特征在于,所述配置模块还用于:
配置获取页面坐标函数,以获取触发事件相应的页面元素的页面坐标;
配置获取数据函数,以在获取触发事件相应的页面元素的页面坐标后,调取与所述页面坐标相应的数据;
其中,每一报表类型只对应一个页面元素。
CN201410502545.2A 2014-09-26 2014-09-26 数据可视化的实现方法及装置 Active CN105512139B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201410502545.2A CN105512139B (zh) 2014-09-26 2014-09-26 数据可视化的实现方法及装置
PCT/CN2015/089950 WO2016045542A1 (zh) 2014-09-26 2015-09-18 数据可视化的实现方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410502545.2A CN105512139B (zh) 2014-09-26 2014-09-26 数据可视化的实现方法及装置

Publications (2)

Publication Number Publication Date
CN105512139A CN105512139A (zh) 2016-04-20
CN105512139B true CN105512139B (zh) 2019-11-05

Family

ID=55580296

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410502545.2A Active CN105512139B (zh) 2014-09-26 2014-09-26 数据可视化的实现方法及装置

Country Status (2)

Country Link
CN (1) CN105512139B (zh)
WO (1) WO2016045542A1 (zh)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105930475A (zh) * 2016-06-28 2016-09-07 齐德昱 大数据的复合文档组织与存取模型GriDoc
CN106682057A (zh) * 2016-07-21 2017-05-17 深圳奇迹智慧网络有限公司 一种多维度数据可视化呈现方法
CN108090035A (zh) * 2016-11-23 2018-05-29 北京国双科技有限公司 数据处理方法及装置
CN107220038A (zh) * 2016-11-25 2017-09-29 广东亿迅科技有限公司 数据可视化图形快速应用方法及系统
CN108153779B (zh) * 2016-12-05 2022-04-05 阿里巴巴集团控股有限公司 页面数据投放信息处理方法及装置
CN106709057A (zh) * 2017-01-09 2017-05-24 郑州云海信息技术有限公司 一种分布式集群可视化数据库
CN106909610B (zh) * 2017-01-10 2020-11-24 中电科华云信息技术有限公司 基于浏览器的可视化拖拽查询数据的方法及系统
CN106815371A (zh) * 2017-02-06 2017-06-09 浪潮通用软件有限公司 一种通过可视化配置实现跨数据源的数据读取方法
CN106846126A (zh) * 2017-03-03 2017-06-13 北京科摩仕捷科技有限公司 一种电商网站订单交易数据可视化方法
CN107220274B (zh) * 2017-04-13 2020-10-09 中科曙光南京研究院有限公司 一种可视化数据接口集市实现方法
CN107832282A (zh) * 2017-11-21 2018-03-23 苏州正载信息技术有限公司 一种定义可视化报表的实现方法
CN110109962A (zh) * 2017-12-26 2019-08-09 广东电网有限责任公司电力调度控制中心 一种基于电网运行的备用数据的可视化展示方法
CN108153886B (zh) * 2017-12-28 2021-02-02 北京恒泰实达科技股份有限公司 实时数据在web应用中的自定义可视化展示方法
CN108563666B (zh) * 2018-01-05 2022-04-05 四川兴政信息技术有限公司 一种基于大数据技术的数据可视化处理系统及方法
CN108388576B (zh) * 2018-01-16 2020-07-24 绿湾网络科技有限公司 交互式生成图谱的方法和系统
CN108287923B (zh) * 2018-02-28 2020-12-29 浪潮云信息技术股份公司 一种可视化接口数据智能提取系统及其设计方法
CN108804513A (zh) * 2018-04-24 2018-11-13 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 大数据平台的自动可视化分析方法
CN108874487B (zh) * 2018-06-13 2020-01-10 北京九章云极科技有限公司 基于工作流的数据分析处理方法、系统、装置及存储介质
CN109086442B (zh) * 2018-08-16 2021-07-06 口口相传(北京)网络技术有限公司 业务数据的展示方法及装置
EP3864521A1 (en) * 2018-10-09 2021-08-18 Tableau Software, Inc. Correlated incremental loading of multiple data sets for an interactive data prep application
CN109542438A (zh) * 2018-11-19 2019-03-29 成都淞幸科技有限责任公司 一种基于可视化的图表开发方法
CN109669992A (zh) * 2018-12-20 2019-04-23 云南电网有限责任公司玉溪供电局 一种数据可视化转换的实现方法
CN109741431B (zh) * 2018-12-31 2023-08-01 广东精一信息技术有限公司 一种二三维一体化电子地图框架
CN111722895B (zh) * 2019-03-21 2024-01-12 成都数天下科技有限公司 一种SPC图表在Power BI组件中的渲染方法
CN110097224B (zh) * 2019-05-05 2022-11-08 中国科学院海洋研究所 一种可视化风暴潮-海浪耦合预报方法
CN112583624B (zh) * 2019-09-30 2023-05-23 北京国双科技有限公司 能耗数据的处理方法和装置
CN110764757B (zh) * 2019-10-22 2023-06-09 成都九洲电子信息系统股份有限公司 一种基于html5的交互式图形绘制引擎
CN111078169B (zh) * 2019-11-29 2023-09-26 武汉虹信技术服务有限责任公司 一种可视化大屏系统的前端装置及其搭建方法
CN111309317A (zh) * 2020-02-09 2020-06-19 北京工业大学 一种实现数据可视化的代码自动化方法和装置
CN114064029A (zh) * 2020-07-31 2022-02-18 阿里巴巴集团控股有限公司 实现后端绘图的方法、装置及架构和数据机器人
CN112100069B (zh) * 2020-09-15 2022-10-14 中国人民解放军国防大学联合作战学院 一种面向simscript语言的离散事件仿真事件队列可视化方法
CN112506738A (zh) * 2020-12-03 2021-03-16 上海哔哩哔哩科技有限公司 数据可视化处理方法及装置
CN112487067A (zh) * 2020-12-04 2021-03-12 国泰新点软件股份有限公司 基于数据配置化进行页面展示的方法、装置及存储介质
CN112800295A (zh) * 2021-01-27 2021-05-14 浪潮云信息技术股份公司 一种基于指标单元的数据可视化工具实现方法
CN114546577B (zh) * 2022-03-04 2024-04-26 北京超图软件股份有限公司 一种数据可视化方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101430710A (zh) * 2008-11-14 2009-05-13 中国科学院软件研究所 一种数据可视化引擎系统
CN103412871A (zh) * 2013-07-08 2013-11-27 北京百度网讯科技有限公司 一种用于生成可视化视图的方法与设备
CN103677789A (zh) * 2012-09-25 2014-03-26 深圳市金正方科技有限公司 基于grid组件的列表数据展现方法及系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8954488B2 (en) * 2009-01-21 2015-02-10 Microsoft Corporation Extensibility for web based diagram visualization
CN102004777B (zh) * 2010-11-19 2013-03-27 中国科学院软件研究所 一种可定制的Web信息集成方法及系统
CN102609262A (zh) * 2012-02-13 2012-07-25 浪潮集团山东通用软件有限公司 在powerbuilder中实现多数据源可驱动的flash图表控件的方法
CN103336805B (zh) * 2013-06-21 2016-12-28 中国电子科技集团公司第四十一研究所 一种基于图形化映射关系的定制报表自动生成方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101430710A (zh) * 2008-11-14 2009-05-13 中国科学院软件研究所 一种数据可视化引擎系统
CN103677789A (zh) * 2012-09-25 2014-03-26 深圳市金正方科技有限公司 基于grid组件的列表数据展现方法及系统
CN103412871A (zh) * 2013-07-08 2013-11-27 北京百度网讯科技有限公司 一种用于生成可视化视图的方法与设备

Also Published As

Publication number Publication date
WO2016045542A1 (zh) 2016-03-31
CN105512139A (zh) 2016-04-20

Similar Documents

Publication Publication Date Title
CN105512139B (zh) 数据可视化的实现方法及装置
US10534605B2 (en) Application system having a gaming engine that enables execution of a declarative language
CN102541541B (zh) 界面生成方法和装置
US20170262165A9 (en) System for high volume data analytic integration and channel-independent advertisement generation
US20100251100A1 (en) Primitive-based presentation of dimensional information using layout script
CN109976735B (zh) 一种基于web可视化的知识图谱算法应用平台
CN108027818A (zh) 基于图的查询
CN104657384A (zh) 一种基于二维关系的动态配置报表数据处理方法
CN109033260A (zh) 基于rdf的知识图谱交互式可视化查询方法
CN104463957A (zh) 一种基于素材的三维场景生成工具集成方法
CN109597613A (zh) 一种拖拽式组合报表的大屏展示系统及方法
Kumar et al. Visualization: a novel approach for big data analytics
CN107577455A (zh) 定制化组件配置的活动管理展示平台及展示方法
CN109359142A (zh) 一种数据处理方法、数据处理装置、计算机设备及可读存储介质
Moncrieff et al. An open source, server-side framework for analytical web mapping and its application to health
CN110443880A (zh) 图像渲染方法、装置、存储介质及电子设备
CN101620528A (zh) 一种基于xpdl的工作流系统的架构方法
CN106055629A (zh) 一种单井信息管理系统
Salter Nova: A modern platform for system dynamics, spatial, and agent-based modeling
Moraes et al. Collaborative information visualization using a multi-projection system and mobile devices
CN107515913A (zh) 一种多变量数据模型集成构建方法及其可视化交互系统
US10255564B2 (en) Context specific resource editors
Ulliana et al. Combining 3D models and functions through ontologies to describe man-made products and virtual humans: toward a common framework
Kontakis et al. DEC-O: an ontology framework and interactive 3D interface for interior decoration applications in the web
CN108139893A (zh) 基于组件的软件系统及开发方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200922

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200922

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: Alibaba Group Holding Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220402

Address after: 801-11, Section B, 8th floor, No.556 Xixi Road, Xihu District, Hangzhou City, Zhejiang Province

Patentee after: Alipay (Hangzhou) Information Technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Innovative advanced technology Co.,Ltd.

TR01 Transfer of patent right