CN113760252A - 数据可视化方法、装置、计算机系统和可读存储介质 - Google Patents

数据可视化方法、装置、计算机系统和可读存储介质 Download PDF

Info

Publication number
CN113760252A
CN113760252A CN202011282107.1A CN202011282107A CN113760252A CN 113760252 A CN113760252 A CN 113760252A CN 202011282107 A CN202011282107 A CN 202011282107A CN 113760252 A CN113760252 A CN 113760252A
Authority
CN
China
Prior art keywords
rendering
execution result
code
result
service
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.)
Pending
Application number
CN202011282107.1A
Other languages
English (en)
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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co 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 Beijing Jingdong Century Trading Co Ltd, Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN202011282107.1A priority Critical patent/CN113760252A/zh
Publication of CN113760252A publication Critical patent/CN113760252A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开提供了一种数据可视化方法、数据可视化装置、计算机系统和计算机可读存储介质。其中,数据可视化方法包括:响应于来自客户端的视图渲染请求,获取与目标数据对应的代码文件;调用代码执行服务,以便执行代码文件,得到初始执行结果;调用执行结果渲染服务,利用与初始执行结果相匹配的渲染模板文件对初始执行结果进行渲染,得到目标执行结果,其中,代码执行服务和执行结果渲染服务独立分开部署;以及向客户端发送目标执行结果,以便客户端可视化展示用于表征目标数据的渲染结果。

Description

数据可视化方法、装置、计算机系统和可读存储介质
技术领域
本公开涉及计算机技术领域,更具体地,涉及一种数据可视化方法、数据可视化装置、计算机系统和计算机可读存储介质。
背景技术
信息通常以数据的形式进行存储与展现,随着信息化时代的快速发展,形形色色的数据也随之产生。在实际的应用场景中,为了可以准确、高效、精简且全面的表达信息,数据可视化已成为一种比较常用的技术手段。
然而,在实现本公开构思的过程中,发明人发现相关技术中至少存在如下问题,现有的数据可视化技术中在针对代码执行结果进行渲染时需要开发人员掌握web前端开发技能,且现有的数据可视化执行代码无法被重复使用。
发明内容
有鉴于此,本公开提供了一种数据可视化方法、数据可视化装置、计算机系统和计算机可读存储介质。
本公开的一个方面提供了一种数据可视化方法,包括:响应于来自客户端的视图渲染请求,获取与目标数据对应的代码文件;调用代码执行服务,以便执行所述代码文件,得到初始执行结果;调用执行结果渲染服务,利用与所述初始执行结果相匹配的渲染模板文件对所述初始执行结果进行渲染,得到目标执行结果,其中,所述代码执行服务和所述执行结果渲染服务独立分开部署;以及向所述客户端发送所述目标执行结果,以便所述客户端可视化展示用于表征所述目标数据的渲染结果。
本公开的另一个方面提供了一种数据可视化装置,包括:获取模块,用于响应于来自客户端的视图渲染请求,获取与目标数据对应的代码文件;第一调用模块,用于调用代码执行服务,以便执行所述代码文件,得到初始执行结果;第二调用模块,用于调用执行结果渲染服务,利用与所述初始执行结果相匹配的渲染模板文件对所述初始执行结果进行渲染,得到目标执行结果,其中,所述代码执行服务和所述执行结果渲染服务独立分开部署;以及发送模块,用于向所述客户端发送所述目标执行结果,以便所述客户端可视化展示用于表征所述目标数据的渲染结果。
本公开的另一方面提供了一种计算机系统,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上所述的方法。
本公开的另一方面提供了一种计算机可读存储介质,其上存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
根据本公开的实施例,通过采用了响应于来自客户端的视图渲染请求,获取与目标数据对应的代码文件;调用代码执行服务,以便执行代码文件,得到初始执行结果;调用执行结果渲染服务,利用与初始执行结果相匹配的渲染模板文件对初始执行结果进行渲染,得到目标执行结果,其中,代码执行服务和执行结果渲染服务独立分开部署;以及向客户端发送目标执行结果,以便客户端可视化展示用于表征目标数据的渲染结果的技术手段,由于将代码执行服务与执行结果渲染服务独立分开部署,得到了一种高效的数据可视化自助服务平台,平台可以根据不同可视化结果自动加载合适的前端样式配置,所以至少部分地克服了现有的数据可视化技术中在针对代码执行结果进行渲染时需要开发人员掌握web前端开发技能,且数据可视化执行代码无法被重复使用的技术问题,进而达到了减轻开发人员的开发负担,并能实现一次编码、多次复用的技术效果。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的可以应用数据可视化方法的示例性系统架构;
图2示意性示出了根据本公开实施例的数据可视化方法的流程图;
图3示意性示出了根据本公开实施例的数据可视化自助服务平台的系统架构图;
图4示意性示出了根据本公开实施例的render notebook逻辑的处理流程图;
图5示意性示出了根据本公开的实施例的数据可视化装置的框图;以及
图6示意性示出了根据本公开实施例的适于实现上文描述的数据可视化方法的计算机系统的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
数据可视化是机器学习和大数据项目中非常重要的一环。通过数据可视化的展示,可以将分析结果展示的更加清晰和友好。现有技术中常用的大数据分析处理工具Python语言源生有很多可视化库支持,从比较基础的matplotlib(一种Python的2D绘图库)、Pandas(python的一个数据分析包)到pyecharts(一种常用图表)、Bokeh(焦外成像,一种Photoshop插件)等,均各有所长。但是这也同时带来两个问题:如何在多用户执行场景下实现高效执行且互不干扰的可视化结果;如何将用户可视化的执行结果自动生成为可参数化配置的HTML(超文本标记语言)页面,实现一次编写,多次复用展示。目前可采用的方式包括:(1)最基础的实现方式:通过server(服务)端服务器的Python解析器,通过类似线程池方式执行代码,将图表执行结果进行HTML(超文本标记语言)渲染,最后返回页面给客户端;(2)Jupyter Notebook:前身是IPython Notebook,一款基于网页的开源的Web应用程序,为用户提供交互式的计算服务,可被应用于全过程计算、开发、文档编写、运行代码和展示结果。
但发明人在实现本公开构思的过程中发现:上述第(1)种实现方式,无法应对用户频繁访问、计算任务耗时长所带来的问题,会影响server端的响应速度,同时无法解决用户不同env变量环境相互隔离的需要,并且需要对代码执行结果进行HTML渲染;上述第(2)种实现方式更适用于个人应用及代码自测,只能基于Jupyter Notebook的Web服务应用来进行计算结果的交互开发,无法实现平台应用级别需要,如无法作为平台内视图进行发布展示及共享,也无法作为视图结果为用户实现多次复用。
本公开的实施例提供了一种数据可视化方法、数据可视化装置、计算机系统和计算机可读存储介质。该方法包括:响应于来自客户端的视图渲染请求,获取与目标数据对应的代码文件;调用代码执行服务,以便执行代码文件,得到初始执行结果;调用执行结果渲染服务,利用与初始执行结果相匹配的渲染模板文件对初始执行结果进行渲染,得到目标执行结果,其中,代码执行服务和执行结果渲染服务独立分开部署;以及向客户端发送目标执行结果,以便客户端可视化展示用于表征目标数据的渲染结果。
图1示意性示出了根据本公开实施例的可以应用数据可视化方法的示例性系统架构100。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线和/或无线通信链路等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端和/或社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本公开实施例所提供的数据可视化方法一般可以由服务器105执行。相应地,本公开实施例所提供的数据可视化装置一般可以设置于服务器105中。本公开实施例所提供的数据可视化方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的数据可视化装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。或者,本公开实施例所提供的数据可视化方法也可以由终端设备101、102、或103执行,或者也可以由不同于终端设备101、102、或103的其他终端设备执行。相应地,本公开实施例所提供的数据可视化装置也可以设置于终端设备101、102、或103中,或设置于不同于终端设备101、102、或103的其他终端设备中。
例如,代码文件可以原本存储在终端设备101、102、或103中的任意一个(例如,终端设备101,但不限于此)之中,或者存储在外部存储设备上并可以导入到终端设备101中。然后,终端设备101可以在本地执行本公开实施例所提供的数据可视化方法,或者将代码文件发送到其他终端设备、服务器、或服务器集群,并由接收该代码文件的其他终端设备、服务器、或服务器集群来执行本公开实施例所提供的数据可视化方法。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图2示意性示出了根据本公开实施例的数据可视化方法的流程图。
如图2所示,该方法包括操作S201~S204。
在操作S201,响应于来自客户端的视图渲染请求,获取与目标数据对应的代码文件。
根据本公开的实施例,视图例如可以为一个或多个数据库表依照某个或某些条件组合而成的结果集,视图渲染例如可以为针对该结果集进行CSS(层叠样式表)渲染,目标数据例如为上述视图渲染请求所针对的结果集数据,上述目标数据对应的代码文件例如可以为人为编写好的与该目标数据相关的语言可视化库的编程文件。
根据本公开的实施例,在执行上述操作201的过程中,例如可以由用户首先选择预渲染目标数据的视图ID(标识符),上述视图渲染请求针对的对象即为该视图ID所包含的内容,然后可以根据该视图ID确定对应的代码文件。
在操作S202,调用代码执行服务,以便执行代码文件,得到初始执行结果。
根据本公开的实施例,代码执行服务用于对上述代码文件进行简单的编译和执行操作,初始执行结果例如可以为图表结构的展现形式,展现结果中例如可以存在部分内容未被识别而仍然以代码或其他编码的形式展现。
在操作S203,调用执行结果渲染服务,利用与初始执行结果相匹配的渲染模板文件对初始执行结果进行渲染,得到目标执行结果,其中,代码执行服务和执行结果渲染服务独立分开部署。
根据本公开的实施例,执行结果渲染服务用于对上述展现结果进一步渲染,渲染中采用与初始执行结果相匹配的模板文件,渲染结果(即上述目标执行结果)例如可以为上述展现结果中以代码或其他编码形式展现的部分内容正常呈现后的结果,或者可以为构造得到的一种更为清晰(例如可以包括增加了颜色上的区分等)的数据展现结果。
需要说明的是,上述代码执行服务和执行结果渲染服务在执行逻辑上为独立分开部署,在实际的部署环境中,该两个服务可以部署于同一个服务端,也可以部署于不同的服务端。
在操作S204,向客户端发送目标执行结果,以便客户端可视化展示用于表征目标数据的渲染结果。
根据本公开的实施例,在通过上述操作S201~S203得到上述目标执行结果后,即将目标执行结果可视化的展示至客户端页面。由此,用户通过针对某一视图发出视图渲染请求即可得到相应视图的渲染结果的展现。
通过本公开的上述实施例,由于将代码执行服务与执行结果渲染服务独立分开部署,构造得到了一种高效的数据可视化自助服务平台。通过该平台可以为不同可视化结果自动加载合适的前端样式配置,相对于现有的数据可视化技术中需要自行设计代码执行方法和渲染方法等相关代码的方式,本公开通过上述实施方式,为开发人员提供了极大的便利,例如本公开实施例中可以无需开发人员掌握web前端开发技能。同时,解决了现有的数据可视化技术中针对目标数据需独立设计可视化程序而导致的数据可视化执行代码无法被重复使用的技术问题,通过本公开的实施例能够实现一次编码、多次复用,可有效减轻开发人员的开发负担。
下面参考图3~图4,结合具体实施例对图2所示的方法做进一步说明。
图3示意性示出了根据本公开实施例的数据可视化自助服务平台的系统架构图。
如图3所示,该数据可视化自助服务平台例如可以包括实验室、视图中心和视图网关等部分,其中,视图网关和视图中心分别负责上述的代码执行服务和执行结果渲染服务。
视图中心例如可以为独立部署的Web server(Web服务器),通过tornado(一种Web服务器软件的开源版本)开发,主要负责接收用户发布|获取视图的请求,分为视图管理模块和视图渲染模块两大主要模块。其中,视图管理模块负责将视图的增删改查信息同步至数据库(例如可以为MySQL)。视图渲染模块例如可以包括Rneder api(负责执行渲染相关操作的应用程序接口)、Params api(与参数、配置等相关的应用程序接口)、Code api(负责执行与代码文件相关操作的应用程序结构)等,视图渲染模块负责将视图Code(视图对应的代码文件)提交到视图网关,等待执行结果渲染为HTML页面后返回给客户端。
视图网关例如可以为分布式部署的server,每个网关server部署时会预先启动10个指定编程语言环境的Kernel(内核)进程。网关主要负责接收代码执行请求,根据内部Kernel池的资源情况,将代码提交到空闲的Kernel执行代码,最终将执行结果返回给视图中心。
实验室例如可以为用户提供交互式的Notebook式(例如可以为语言可视化库的编程)编程环境,并可支持用户代码一键发布到视图中心。其中,用户的代码文件可以保存在共享云存储上。
根据本公开的实施例,上述操作S202包括:从内核池中获取空闲的内核进程,其中,内核池中包括多个指定编程语言环境的内核进程;以及通过空闲的内核进程执行代码文件。
参见图3所示的数据可视化自助服务平台,上述操作S202即对应平台中与视图网关相关的操作内容。视图网关在接收到Code后,从内部的Kernel pool(内核池)中获取一个空闲的Kernel(内核进程),由Kernel执行Code并将执行结果(即上述的初始执行结果)返回给视图网关,在此过程中,视图网关监听Kernel执行Code全部完成后,将初始执行结果返回给视图中心。
根据本公开的实施例,针对上述Kernel执行Code的过程,上述操作S202还包括:获取内核执行处理程序;将代码文件传输至内核底层的第一端口进行代码处理,处理结果从内核底层的第二端口输出;根据内核执行处理程序监听内核底层的第二端口,判断第二端口是否输出一预定语句;以及将第二端口在输出预定语句之前的输出结果进行汇总,得到初始执行结果。
根据本公开的实施例,上述视图网关例如可以为Jupyter Kernel Gateway(一种Web服务器),其作为一种封装了Jupyter原生的Kernelgateway,在原生框架提供的底层Kernel管理和websocket(网络通讯)接口模式的基础上,还增加了自研的KernelExecuteHandler(即上述内核执行处理程序)并暴露HTTP Post接口用于接收和处理code执行请求。该Jupyter Kernel Gateway可提供对Jupyter内核的headless访问(一种浏览器访问模式),并提供了通过REST HTTP(REST,一种软件架构的风格,REST HTTP例如可以采用Notebook cell方式,其中,Notebook的一对In、Out会话被视作一个代码单元,称为cell)和Websockets两种调用接口与内核进行远程通信。本实施例中,通过KernelExecuteHandler Post接口执行代码文件的主要处理流程如下:
Step1:从视图网关的Kernel池中获取空闲的Kernel client(内核客户端);
Step2:将Code通过Kernel client的execute接口(执行接口)传输到Kernel底层的SHELL端口(即上述的第一端口)进行代码处理;同时,KernelExecuteHandler监听Kernel底层的IOPub端口(即上述的第二端口),将输出结果汇总;
Step3:KernelExecuteHandler监听时根据execution_state==idle(即上述的预定语句)判断代码执行完成,将最终汇总的output(输出结果,即上述得到的初始执行结果)返回给调用端(即视图中心)。
通过本公开的上述实施例,由于视图网关以HTTP接口并提供多核的方式承接用户计算任务的执行,可以解决用户不同计算环境相互独立的问题,并解决了多用户任务执行时对视图平台影响及执行效率等问题。
根据本公开的实施例,上述操作S203包括:根据渲染模板文件生成与初始执行结果相匹配的配置文件;根据配置文件和模板引擎将初始执行结果渲染为超文本标记语言页面代码,得到渲染结果;以及将渲染结果作为目标执行结果。
参见图3所示的数据可视化自助服务平台,上述操作S203即对应平台中与视图中心的视图渲染模块相关的操作内容。视图中心在拿到Code的初始执行结果后,调用视图渲染模块的render notebook逻辑,将初始执行结果按HTML模板样式进行渲染,最终将渲染后的HTML返回给客户端。
图4示意性示出了根据本公开实施例的render notebook逻辑的处理流程图。
如图4所示,Notebook文件类型结果(即上述初始执行结果)进入Render(视图渲染模块)后,执行的render notebook逻辑包括:配置templates模板信息、处理加载HTML对应的Css header样式代码、调用Jinjia2进行template render、render后的HTML代码对多媒体数据进行转义以及返回视图HTML代码。其中,Jinjia2模板是一种Python版的模板引擎,在定义了符合模板引擎中的语法和语义结构的模板文本文件后,通过Jinjia2引擎可以渲染生成任何基于文本的格式(HTML、XML、CSV、LaTex等等)。
根据本公开的实施例,在上述渲染结果中包含多媒体类型数据的情况下,上述操作S203中还需要将多媒体类型数据转换为超文本标记语言可识别展示的编码格式的数据。
基于上述render notebook逻辑,上述视图渲染模块的具体处理流程例如可以包括如下内容:
Step1:将Notebook格式的处理结果(即初始执行结果),首先通过render模块加载匹配的template_file(即渲染模板文件),并生成对应的exporter_config(即上述配置文件);
Step2:HTML Exporter加载export_config配置,然后装填Css Header格式,通过Jinjia2模板(即上述模板引擎)渲染为HTML页面代码;
Step3:将Jinjia2模板渲染结果中的多媒体类型的数据,识别转义为HTML可识别展示的代码。如多媒体数据类型为image/png,将其转义为HTML可识别的base64编码图片代码。
通过本公开的上述实施例,由视图平台Web服务负责执行结果的渲染,该渲染过程中可自动装填页面Css前端样式,并可配置匹配的渲染模板,以及实现渲染结果的HTML展示。而且,视图平台Web服务作为平台整体服务的独立模块,可以与平台其他功能打通,具有很高的扩展性,从而可有效实现平台内视图的发布展示及共享。
根据本公开的实施例,上述数据可视化方法例如还可以包括:解析代码文件,得到目标数据所包含的参数信息;将参数信息以参数栏的形式展示;以及向客户端发送参数栏和目标执行结果,以便客户端可视化展示用于表征目标数据的渲染结果。
根据本公开的上述实施例,再请参见图3所示,用户选择某视图ID并向视图中心发送针对该视图ID的渲染视图请求后,视图中心可以从数据库中获取对应该视图ID的具体信息,并通过固定规则,从共享云存储网盘中获取到该视图ID对应的Code,通过解析Code中的Parameters(参数信息)返回给客户端的参数栏展示,再将Code+Parameters通过GatewayClient(网关客户端)调用HTTP接口,随机发送给某个视图网关,经过视图网关的代码执行服务和视图中心的执行结果渲染服务得到针对该视图ID的渲染结果,最终可以将该参数栏展示结果和渲染结果一并显示在客户端。
根据本公开的实施例,在上述参数栏中的参数信息被改变的情况下,重新调用代码执行服务,以便根据改变后的参数信息执行代码文件,得到新的执行结果;以及重新调用执行结果渲染服务,利用与新的执行结果相匹配的渲染模板文件对新的执行结果进行渲染。
根据本公开的上述实施例,上述参数栏中的信息可以结合实际需要进行改变,例如用户如果需要修改视图展示的参数(如日期、feature等影响图表的参数),可以直接改动客户端中视图页面的参数栏,并再次提交,重新执行上述代码执行服务和执行结果渲染服务后,即可在视图页面下显示更新参数后的与参数栏中相对应的图表视图。
通过本公开的上述实施例,实现了一种可参数化配置的HTML页面。
本公开在上述实施例中提供了一种高效的数据可视化自助服务平台,该平台对代码执行服务与执行结果渲染服务独立分开部署。通过视图网关独立提供多核执行模式的方式实现了代码的高效执行,且保证了用户不同脚本执行环境的绝对隔离;执行结果渲染服务实现了渲染结果的灵活可配性,同时为数据开发人员提供了极大的便利,使得视图平台Web服务真正实现一次编码,一次发布,即可生成可视化web页面;由平台根据而不同可视化结果自动加载前端样式配置,减轻了需要掌握web前端开发技能的开发负担,尤其是由于使用该平台只需要具有语言可视化库的编程能力即可,而不需要掌握web前端开发技能,未具有图表web页面开发需求的数据开发人员进行迅速开发提供了极大的方便。
图5示意性示出了根据本公开的实施例的数据可视化装置的框图。
如图5所示,数据可视化装置500包括获取模块510、第一调用模块520、第二调用模块530和发送模块540。
获取模块510,用于响应于来自客户端的视图渲染请求,获取与目标数据对应的代码文件。
第一调用模块520,用于调用代码执行服务,以便执行代码文件,得到初始执行结果。
第二调用模块530,用于调用执行结果渲染服务,利用与初始执行结果相匹配的渲染模板文件对初始执行结果进行渲染,得到目标执行结果,其中,代码执行服务和执行结果渲染服务独立分开部署。
发送模块540,用于向客户端发送目标执行结果,以便客户端可视化展示用于表征目标数据的渲染结果。
根据本公开的实施例,上述第一调用模块包括第一获取单元和执行单元。
第一获取单元,用于从内核池中获取空闲的内核进程,其中,内核池中包括多个指定编程语言环境的内核进程。
执行单元,用于通过空闲的内核进程执行代码文件。
根据本公开的实施例,上述第一调用模块还包括第二获取单元、代码处理单元、监听单元和汇总单元。
第二获取单元,用于获取内核执行处理程序。
代码处理单元,用于将代码文件传输至内核底层的第一端口进行代码处理,处理结果从内核底层的第二端口输出。
监听单元,用于根据内核执行处理程序监听内核底层的第二端口,判断第二端口是否输出一预定语句。
汇总单元,用于将第二端口在输出预定语句之前的输出结果进行汇总,得到初始执行结果。
根据本公开的实施例,上述第二调用模块包括生成单元、渲染单元和定义单元。
生成单元,用于根据渲染模板文件生成与初始执行结果相匹配的配置文件。
渲染单元,用于根据配置文件和模板引擎将初始执行结果渲染为超文本标记语言页面代码,得到渲染结果。
定义单元,用于将渲染结果作为目标执行结果。
根据本公开的实施例,上述第二调用模块还包括转换单元。
转换单元,用于在渲染结果中包含多媒体类型数据的情况下,将多媒体类型数据转换为超文本标记语言可识别展示的编码格式的数据。
根据本公开的实施例,上述数据可视化装置还包括解析单元、展示单元和发送单元。
解析单元,用于解析代码文件,得到目标数据所包含的参数信息。
展示单元,用于将参数信息以参数栏的形式展示。
发送单元,用于向客户端发送参数栏和目标执行结果,以便客户端可视化展示用于表征目标数据的渲染结果。
根据本公开的实施例,上述数据可视化装置还包括第一调用单元和第二调用单元。
第一调用单元,用于在参数栏中的参数信息被改变的情况下,重新调用代码执行服务,以便根据改变后的参数信息执行代码文件,得到新的执行结果。
第二调用单元,用于重新调用执行结果渲染服务,利用与新的执行结果相匹配的渲染模板文件对新的执行结果进行渲染。
根据本公开的实施例的模块、单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,获取模块510、第一调用模块520、第二调用模块530和发送模块540中的任意多个可以合并在一个模块/单元中实现,或者其中的任意一个模块/单元可以被拆分成多个模块/单元。或者,这些模块/单元中的一个或多个模块/单元的至少部分功能可以与其他模块/单元的至少部分功能相结合,并在一个模块/单元中实现。根据本公开的实施例,获取模块510、第一调用模块520、第二调用模块530和发送模块540中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块510、第一调用模块520、第二调用模块530和发送模块540中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
需要说明的是,本公开的实施例中数据可视化装置部分与本公开的实施例中数据可视化方法部分是相对应的,数据可视化装置部分的描述具体参考数据可视化方法部分,在此不再赘述。
图6示意性示出了根据本公开实施例的适于实现上文描述的数据可视化方法的计算机系统的框图。图6示出的计算机系统仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,根据本公开实施例的计算机系统600包括处理器601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。处理器601例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器601还可以包括用于缓存用途的板载存储器。处理器601可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 603中,存储有系统600操作所需的各种程序和数据。处理器601、ROM 602以及RAM 603通过总线604彼此相连。处理器601通过执行ROM 602和/或RAM 603中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM602和RAM 603以外的一个或多个存储器中。处理器601也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,系统600还可以包括输入/输出(I/O)接口605,输入/输出(I/O)接口605也连接至总线604。系统600还可以包括连接至I/O接口605的以下部件中的一项或多项:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被处理器601执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质。例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 602和/或RAM 603和/或ROM 602和RAM 603以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

Claims (10)

1.一种数据可视化方法,包括:
响应于来自客户端的视图渲染请求,获取与目标数据对应的代码文件;
调用代码执行服务,以便执行所述代码文件,得到初始执行结果;
调用执行结果渲染服务,利用与所述初始执行结果相匹配的渲染模板文件对所述初始执行结果进行渲染,得到目标执行结果,其中,所述代码执行服务和所述执行结果渲染服务独立分开部署;以及
向所述客户端发送所述目标执行结果,以便所述客户端可视化展示用于表征所述目标数据的渲染结果。
2.根据权利要求1所述的方法,其中,调用代码执行服务,以便执行所述代码文件,得到初始执行结果包括:
从内核池中获取空闲的内核进程,其中,所述内核池中包括多个指定编程语言环境的内核进程;以及
通过所述空闲的内核进程执行所述代码文件。
3.根据权利要求1或2所述的方法,其中,调用代码执行服务,以便执行所述代码文件,得到初始执行结果还包括:
获取内核执行处理程序;
将所述代码文件传输至内核底层的第一端口进行代码处理,处理结果从所述内核底层的第二端口输出;
根据所述内核执行处理程序监听所述内核底层的第二端口,判断所述第二端口是否输出一预定语句;以及
将所述第二端口在输出所述预定语句之前的输出结果进行汇总,得到所述初始执行结果。
4.根据权利要求1所述的方法,其中,调用执行结果渲染服务,利用与所述初始执行结果相匹配的渲染模板文件对所述初始执行结果进行渲染,得到目标执行结果包括:
根据所述渲染模板文件生成与所述初始执行结果相匹配的配置文件;
根据所述配置文件和模板引擎将所述初始执行结果渲染为超文本标记语言页面代码,得到渲染结果;以及
将所述渲染结果作为所述目标执行结果。
5.根据权利要求4所述的方法,还包括:
在所述渲染结果中包含多媒体类型数据的情况下,将所述多媒体类型数据转换为超文本标记语言可识别展示的编码格式的数据。
6.根据权利要求1所述的方法,还包括:
解析所述代码文件,得到所述目标数据所包含的参数信息;
将所述参数信息以参数栏的形式展示;以及
向所述客户端发送所述参数栏和所述目标执行结果,以便所述客户端可视化展示用于表征所述目标数据的渲染结果。
7.根据权利要求6所述的方法,还包括:
在所述参数栏中的参数信息被改变的情况下,重新调用所述代码执行服务,以便根据改变后的参数信息执行所述代码文件,得到新的执行结果;以及
重新调用所述执行结果渲染服务,利用与所述新的执行结果相匹配的渲染模板文件对所述新的执行结果进行渲染。
8.一种数据可视化装置,包括:
获取模块,用于响应于来自客户端的视图渲染请求,获取与目标数据对应的代码文件;
第一调用模块,用于调用代码执行服务,以便执行所述代码文件,得到初始执行结果;
第二调用模块,用于调用执行结果渲染服务,利用与所述初始执行结果相匹配的渲染模板文件对所述初始执行结果进行渲染,得到目标执行结果,其中,所述代码执行服务和所述执行结果渲染服务独立分开部署;以及
发送模块,用于向所述客户端发送所述目标执行结果,以便所述客户端可视化展示用于表征所述目标数据的渲染结果。
9.一种计算机系统,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现权利要求1至7中任一项所述的方法。
CN202011282107.1A 2020-11-16 2020-11-16 数据可视化方法、装置、计算机系统和可读存储介质 Pending CN113760252A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011282107.1A CN113760252A (zh) 2020-11-16 2020-11-16 数据可视化方法、装置、计算机系统和可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011282107.1A CN113760252A (zh) 2020-11-16 2020-11-16 数据可视化方法、装置、计算机系统和可读存储介质

Publications (1)

Publication Number Publication Date
CN113760252A true CN113760252A (zh) 2021-12-07

Family

ID=78786105

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011282107.1A Pending CN113760252A (zh) 2020-11-16 2020-11-16 数据可视化方法、装置、计算机系统和可读存储介质

Country Status (1)

Country Link
CN (1) CN113760252A (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100289804A1 (en) * 2009-05-13 2010-11-18 International Business Machines Corporation System, mechanism, and apparatus for a customizable and extensible distributed rendering api
CN102487402A (zh) * 2010-12-03 2012-06-06 腾讯科技(深圳)有限公司 由服务器端实现网页渲染的方法、设备和系统
US20160062555A1 (en) * 2014-09-03 2016-03-03 Palantir Technologies Inc. System for providing dynamic linked panels in user interface
US20180316587A1 (en) * 2017-04-27 2018-11-01 Salesforce.Com, Inc. Automated analysis and recommendations for highly performant single page web applications
CN109739489A (zh) * 2017-10-31 2019-05-10 天津数观科技有限公司 一种利用JavaScript生成数据图表的方法及装置
CN109739604A (zh) * 2018-12-28 2019-05-10 北京城市网邻信息技术有限公司 页面渲染方法、装置、服务器及存储介质
CN109901834A (zh) * 2019-01-25 2019-06-18 平安科技(深圳)有限公司 文档页面生成方法、装置、计算机设备和存储介质
CN110275754A (zh) * 2019-06-28 2019-09-24 百度在线网络技术(北京)有限公司 用于用户界面呈现的交互方法、装置、设备及存储介质
CN110765251A (zh) * 2019-10-21 2020-02-07 百度在线网络技术(北京)有限公司 渲染方法、服务器、电子设备及存储介质
CN111581555A (zh) * 2020-04-27 2020-08-25 北京字节跳动网络技术有限公司 一种文档加载方法、装置、设备及存储介质
CN111581473A (zh) * 2020-04-01 2020-08-25 北京皮尔布莱尼软件有限公司 一种网页处理方法
CN111880788A (zh) * 2020-06-12 2020-11-03 北京三快在线科技有限公司 页面渲染方法、装置、客户端和计算机可读存储介质

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100289804A1 (en) * 2009-05-13 2010-11-18 International Business Machines Corporation System, mechanism, and apparatus for a customizable and extensible distributed rendering api
CN102487402A (zh) * 2010-12-03 2012-06-06 腾讯科技(深圳)有限公司 由服务器端实现网页渲染的方法、设备和系统
US20160062555A1 (en) * 2014-09-03 2016-03-03 Palantir Technologies Inc. System for providing dynamic linked panels in user interface
US20180316587A1 (en) * 2017-04-27 2018-11-01 Salesforce.Com, Inc. Automated analysis and recommendations for highly performant single page web applications
CN109739489A (zh) * 2017-10-31 2019-05-10 天津数观科技有限公司 一种利用JavaScript生成数据图表的方法及装置
CN109739604A (zh) * 2018-12-28 2019-05-10 北京城市网邻信息技术有限公司 页面渲染方法、装置、服务器及存储介质
CN109901834A (zh) * 2019-01-25 2019-06-18 平安科技(深圳)有限公司 文档页面生成方法、装置、计算机设备和存储介质
CN110275754A (zh) * 2019-06-28 2019-09-24 百度在线网络技术(北京)有限公司 用于用户界面呈现的交互方法、装置、设备及存储介质
CN110765251A (zh) * 2019-10-21 2020-02-07 百度在线网络技术(北京)有限公司 渲染方法、服务器、电子设备及存储介质
CN111581473A (zh) * 2020-04-01 2020-08-25 北京皮尔布莱尼软件有限公司 一种网页处理方法
CN111581555A (zh) * 2020-04-27 2020-08-25 北京字节跳动网络技术有限公司 一种文档加载方法、装置、设备及存储介质
CN111880788A (zh) * 2020-06-12 2020-11-03 北京三快在线科技有限公司 页面渲染方法、装置、客户端和计算机可读存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
宋文文;孙力群;: "大数据可视化数据加载模式比较分析", 电脑知识与技术, no. 36, 25 December 2019 (2019-12-25) *
张立敏;唐明;: "分布式虚拟集群渲染系统研究", 计算机与现代化, no. 05, 15 May 2009 (2009-05-15) *
高瞻;孙万捷;王杰华;蒋峥峥;: "渲染器与Web服务器耦合实现远程体渲染的交互优化", 中国图象图形学报, no. 03, 16 March 2017 (2017-03-16) *

Similar Documents

Publication Publication Date Title
US11144711B2 (en) Webpage rendering method, device, electronic apparatus and storage medium
CN108984714B (zh) 页面渲染方法、装置、电子设备及计算机可读介质
US10592319B2 (en) API notebook tool
US11119812B2 (en) Method and device for processing application program page according to a common interface container
US11210109B2 (en) Method and system for loading resources
US8245125B1 (en) Hybrid rendering for webpages
WO2017206626A1 (zh) 网络资源访问设备、混合设备及方法
US9645983B1 (en) Modifying a document at a script processing server using a client device's state information
CN111338623A (zh) 一种开发用户界面的方法、装置、介质和电子设备
CN112395027B (zh) 微件界面生成方法、装置、存储介质与电子设备
CN110795649A (zh) 目标页面展示方法、装置、系统及电子设备
CN113434241A (zh) 页面跳转方法及装置
US20230171329A1 (en) Systems and methods for rendering interactive web pages
CN113159970A (zh) 数据格式转换方法、装置、系统、电子设备及存储介质
CN110442406B (zh) 分页控件处理数据的方法及分页控件、电子设备
Crawl et al. Kepler webview: A lightweight, portable framework for constructing real-time web interfaces of scientific workflows
CN112965916A (zh) 页面测试方法、页面测试装置、电子设备及可读存储介质
US11438403B2 (en) Page presentation method and system, computer system, and computer readable medium
CN115982491A (zh) 页面更新方法及装置、电子设备和计算机可读存储介质
CN113535565B (zh) 一种接口用例生成方法、装置、设备和介质
CN113760252A (zh) 数据可视化方法、装置、计算机系统和可读存储介质
CN113596164A (zh) 数据访问方法、装置、系统、设备和介质
CN114677114A (zh) 基于图形拖拽的审批流程生成方法及装置
US11770437B1 (en) Techniques for integrating server-side and client-side rendered content
CN112965699B (zh) 前端页面生成方法、装置、计算机系统和可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination