CN113094776B - 可视化组件模型数据构建的方法、系统及电子设备 - Google Patents
可视化组件模型数据构建的方法、系统及电子设备 Download PDFInfo
- Publication number
- CN113094776B CN113094776B CN202110416452.8A CN202110416452A CN113094776B CN 113094776 B CN113094776 B CN 113094776B CN 202110416452 A CN202110416452 A CN 202110416452A CN 113094776 B CN113094776 B CN 113094776B
- Authority
- CN
- China
- Prior art keywords
- node
- data
- model
- nodes
- component
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/12—Geometric CAD characterised by design entry means specially adapted for CAD, e.g. graphical user interfaces [GUI] specially adapted for CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
- G06F16/212—Schema design and management with details for data modelling support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Architecture (AREA)
- Mathematical Physics (AREA)
- Human Computer Interaction (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种可视化组件模型数据构建的方法、系统及电子设备,该方案包括初始化模型数据;初始化过滤参数;遍述节点数据并分配每个节点的节点ID;通过所述模型数据中的连接线数据建立节点的父子关系;遍历所述节点数据;筛选出正确的根节点和输出节点;解析验证所有节点并将解析结果添加到对应的节点中;将解析成功后的数据存储转换后返回至前端;前端对返回的数据进行验证;若验证失败,则提示用户继续修改模型;若验证成功,则运行已解析模型,该发明具有支持多组件、多数据源、大数据量查询场景,并将前端组件构建的模型数据正确、高效、易扩展地处理解析成可执行SQL语句的优点。
Description
技术领域
本发明涉及数据处理技术领域,具体涉及一种可视化组件模型数据构建的方法、系统及电子设备。
背景技术
可视化建模(VISUALMODELING)是利用围绕现实想法组织模型的一种思考问题的方法。模型对于了解问题、与项目相关的每个人(客户、行业专家、分析师、设计者等)沟通、模仿企业流程、准备文档、设计程序和数据库来说都是有用的。建模促进了对需求的更好地理解、更清晰的设计、更加容易维护的系统。可视化建模就是以图形的方式描述所开发的系统的过程。可视化建模允许你提出一个复杂问题的必要细节,过滤不必要的细节。它也提供了一种从不同的视角观察被开发系统的机制。
目前很多类型的关系型数据库,例如MySQL、Oracle、SQLServer等,这些数据库都遵循SQL标准,通常开发技术人员使用这类数据库可以通过Navicat、PLSQL等一些数据库管理工具来操作数据库,但是对于业务技术人员来说,并没有一定的专业知识基础,使用工具操作数据库或直接写SQL语句有一定难度,因此就有了可视化组件建模系统的诞生,通过组件拖动和连线的方式拼接组装成数据库查询模型,前端将其转化为xml数据传给后端,后端则需要将数据解析成完整的SQL语句来查询相应数据库,这里如何解析建模数据就成了一个问题,而且在大数据场景下,对于可视化建模系统来说,要考虑到各种各样的场景,所以需要支持的组件和数据源比较多,处理解析模型数据时需要考虑到支持足够多的组件并且易扩展,同时也要支持大数据量的并发查询。现有技术均无法很好地解决上述技术问题。
因此,亟待一种能够支持多组件、多数据源、大数据量查询场景下的可视化组件模型数据构建的方法、系统及电子设备。
发明内容
本发明的目的是针对现有技术中存在的上述问题,提供了一种可视化组件模型数据构建的方法、系统及电子设备。
为了实现上述发明目的,本发明采用了以下技术方案:一种可视化组件模型数据构建的方法包括以下步骤:
S100、将用户构建的可视化模型初始化为模型数据,其中模型数据至少包括组件数据、数据源、过滤参数、节点数据及连接线数据,所述节点数据至少对应组件数据中的每一个组件,所述连接线数据作为组件节点之间的标识,所述数据源至少包括一种类型的数据库,所述过滤参数为SQL语句中的查询条件;
S200、初始化所述模型数据中的过滤参数;
S300、遍历所述模型数据中的节点数据并分配每个节点的节点ID;
S400、通过所述模型数据中的连接线数据建立节点的父子关系;
S500、遍历所述节点数据,根据组件类型找出根节点和输出节点,其中所述根节点表示数据源,组件表示输出节点;
S600、根据节点的父子关系,筛选出正确的根节点和输出节点,将其添加到所述模型数据中;
S700、解析验证所有节点并将解析结果添加到对应的节点中;
S800、将解析成功后的数据存储转换后返回至前端;
S900、前端对返回的数据进行验证;
S1001、若验证失败,则提示用户继续修改模型;
S1002、若验证成功,则运行已解析模型。
工作原理及有益效果:1、相比现有技术中前端将其转化为xml数据传给后端,后端则需要将数据解析成完整的SQL语句来查询相应数据库,但是并没有有效的解析验证手段,一旦数据量过大就会经常出错,无法正常运行,本方案用户先通过拖拽组件初始的可视化模型,通过前端转换数据后传给后端,后端通过对节点数据进行分别节点ID,然后形成父子依赖关系,从而快速清晰地配置好每个组件的对应关系,从而能够实现精确筛选并解析验证,从而最终形成正确的模型,保证模型中的每个组件都能够正常运行,对于大数据量、多组件也能很好地完成解析验证;
2、相比现有技术无法很好地兼容多种数据库的缺点,本方案将数据源包含在模型数据中,从而可在后端方便地根据各种数据库类型来调用对应的过滤参数,且通过将节点分配形成依赖关系,使得每个组件(输出节点)都能够对应正确的数据源(根节点),从而完美地解决了不同数据库的兼容性问题;
3、通过本方案构建的可视化模型,可支持足够多的组件且扩展性好,可实现大数据量的并发查询。
进一步地,模型数据的初始化步骤包括:
S110、前端响应用户操作从后端获取数据源和组件数据构建可视化模型;
S120、通过前端将可视化模型转换成JSON格式的模型数据;
S130、后端从前端接收模型数据。
通过此步骤可方便地将用户构建的可视化模型,也就是各种组件的数据进行转换,通过后端对这些数据进行处理。其中相对于xml格式,JSON格式是纯文本,结构简单,层级结构清晰,读写和传输速度快,可进一步提升大数据量的并发查询速度。
进一步地,通过连接线数据初始化节点ID与节点数据的父子关系时,通过节点ID查找到该节点的节点数据,将父节点数据添加到子节点,将子节点数据添加到父节点,所得到的数据均保存到当前节点中,并设置节点之间连接点编号。此步骤,通过梳理所有节点的关系,从而形成完整的节点网络,每个节点的开始到输出均对应,从而能够对快速方便地找出根节点和输出节点,方便后续操作。
进一步地,遍历所述节点数据,根据组件类型找出根节点和输出节点时,若根节点存在父节点或输出节点存在子节点,则抛出错误并反馈至前端,若根节点不存在父节点且输出节点不存在子节点,则该根节点和输出节点为正确的节点。此步骤,可简单快速且有效地筛选出错的根节点和输出节点,及时提醒用户在前端进行修改。
进一步地,解析验证成功后进行SQL拼接,根据节点数据生成SQL解析器,通过SQL解析器拼接SQL语句。相比现有技术直接解析成完整的SQL语句,本方案只有在解析验证成功后才进行SQL拼接,节省了不必要的SQL拼接操作,也节省了计算资源,在拼接成功后即可运行模型。
进一步地,SQL语句的拼接步骤为:
S1003、获取当前节点的位置;
S1004、判断当前节点是否为该组件流程的顶点;
S1005、若否,则获取当前节点的父节点,循环此步骤直至获取到根节点为止;
S1006、获取被查询表名或表达式;
S1007、获取当前节点的展示列和过滤参数;
S1008、根据SQL定义的规范拼接成当前节点的可执行SQL语句。
通过上述步骤,可方便快速地实现SQL语句的拼接操作,由于在验证成功后进行拼接,因此不存在拼接错误的情况,报错率显著降低,大大减少了可视化模型构建时间。
进一步地,解析验证所有节点时,遍历每个节点的所有父节点,并先对所有父节点进行解析,解析过程中若存在错误则抛出错误反馈至前端。此步骤,验证是按节点进行验证,当前节点根据父节点的解析结果,如果父节点验证失败则当前节点同样也验证失败,然后按照节点的类型取出当前节点的配置数据,这里验证的就是对节点的配置数据操的过程,如果配置数据不存在或不符合规则则会验证失败,因此可显著减少验证过程中的计算资源占用,减少验证次数,有利于提高应对大数据量的解析和验证能力。
进一步地,所述组件数据的组件至少包括源目标、数据处理、数据可视化、统计分析及机器学习。组件作为模型的基础支撑,在可视化建模系统中表现为可拖拽的图形组件,包含组件编码、组件名称、组件状态等信息,分为源目标、数据处理、数据可视化、统计分析及机器学习五个类型的组件。
一种可视化组件模型数据构建系统包括前端显示模块、后端存储模块、节点过滤模块、节点遍历模块、节点初始化模块、节点解析验证模块及SQL语句拼接模块;
所述前端显示模块,用于显示前端,实现与用户的交互;
所述后端存储模块,作为后端载体,存储上述的可视化组件模型数据构建的方法;
所述节点过滤模块,用于初始化过滤参数,提供查询功能;
所述节点遍历模块,用于提供节点数据遍历功能并分配节点ID;
所述节点初始化模块,用于标记节点的父子关系;
所述节点验证模块,用于解析验证所有节点并将解析结果添加到对应的节点中。
通过上述系统,可快速有效地构建可视化模型,同时解决了在大数据场景下,可视化数据建模系统通过图形拖拽形成的数据能够被解析、执行落地的解决方案,并且提供了可靠的多数据源处理方式,能够兼容更多的数据源;通过按节点分析的方式能够将组件与数据绑定,形成更多的组合兼容更多的查询场景;通过多节点数据之间互相依赖的方式能够有效缓解大数据量模型查询带来的性能问题。
一种可视化组件模型数据构建电子设备包括存储器、处理器及人机交互界面;
所述存储器,用于存储上述的一种可视化组件模型数据构建的方法;
所述处理器,用于执行存储器的可执行命令;
所述人机交互界面,用于供用户拖拽组件生成可视化模型和操作可视化模型。
通过上述电子设备,可快速有效地构建可视化模型,同时解决了在大数据场景下,可视化数据建模系统通过图形拖拽形成的数据能够被解析、执行落地的解决方案,并且提供了可靠的多数据源处理方式,能够兼容更多的数据源;通过按节点分析的方式能够将组件与数据绑定,形成更多的组合兼容更多的查询场景;通过多节点数据之间互相依赖的方式能够有效缓解大数据量模型查询带来的性能问题。
附图说明
图1是本发明实施例的一种可视化组件模型数据构建的方法的组件流程结构图;
图2是本发明实施例的一种可视化组件模型数据构建的方法的解析流程图;
图3是本发明实施例的一种可视化组件模型数据构建的方法的SQL解析流程图;
图4是本发明实施例的一种可视化组件模型数据构建系统的一种应用场景图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
为了方便理解,下面对于本方案的各种术语进行说明:
(1)Structured Query Language结构化查询语言。是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,下文简称SQL。
(2)PL/SQL Developer是一个集成开发环境,专门开发面向Oracle数据库的应用。以下简称PLSQL。
(3)Navicat是一套快速、可靠并价格相宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设。它的设计符合数据库管理员、开发人员及中小企业的需要。Navicat是以直觉化的图形用户界面而建的,让你可以以安全并且简单的方式创建、组织、访问并共用信息。
(4)ORACLE由甲骨文公司开发的关系型数据库管理系统。
(5)MYSQL MYSQL是一个关系型数据库管理系统。
(6)ODPS(Open Data Processing Service),是阿里巴巴通用计算平台提供的一种快速、完全托管的 GB/TB/PB 级数据仓库解决方案,向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速地快速地解决用户海量数据计算问题,有效降低企业成本,并保障数据安全。
(7)前端,通常是指网站的前台部分,包括网站的表现层和结构层:Web页面的结构、Web的外观视觉表现以及Web层面的交互实现。
(8)后端,控制着前端的内容,主要负责程序设计架构思想,管理数据库等。后端更多的是与数据库进行交互以处理相应的业务逻辑,需要考虑的是如何实现功能、数据的存取、平台的稳定性与性能等。
在本申请中,前端和后端所执行的步骤既可以在一个独立的设备中完成,例如台式电脑、笔记本电脑、智能手机等,也可以在多个设备中完成,例如前端为一个设备,例如台式电脑、笔记本电脑、智能手机等,后端为一个设备或多个设备,例如物理服务器、云端服务器等,本申请对此不做限定。
请参阅图2,为了解决能够支持多组件、多数据源、大数据量查询场景下可视化建模系统将前端组件构建的模型数据正确、高效、易扩展地处理解析成可执行SQL语句,本申请提供了一种可视化组件模型数据构建的方法,具体步骤如下:
步骤201、初始化模型数据,用户进入可视化建模系统后,访问的是系统前端,前端根据从后端获取的数据源和组件数据在页面拖拽构建可视化模型,前端经过处理将可视化模型转化为JSON格式的模型数据,通过后端接口将模型数据传输至后端,前端和后端所执行的步骤可以是单独的带有显示模组的电子设备,例如台式电脑、笔记本电脑、智能手机等,后端可以是单独的一个或多个客户。
其中模型数据中包含模型数据的结构如图1所示,包含组件数据101、 数据源102、过滤参数103、节点数据104、连接线数据105,数据的定义如下所示:
{
"modelID": 模型ID,
"dbtype": 数据源类型,
"databaseId": 数据源ID,
"currentNodeID": 当前节点ID,
"nodes": [
{
"nodeID": 节点ID,
"nodeNo": 节点顺序,
"nodeName": 节点名称,
"compCode": 组件编码,
"nodeDesc": 节点描述,
"positionX": 节点横坐标,
"positionY": 节点纵坐标,
"option": {
"isValid": 验证结果,
"cmptype": 组件类型,
"table": 表英文名,
"cntable": 表中文名,
"tableid": 表ID,
"cols": 字段数组
},
"analyzeResult": 分析结果数据
},
"connections": [
{
"connectID": 连接线ID,
"parentNodeID": 父节点ID,
"childNodeID": 子节点ID,
"childAnchorNo": 连接点编号,
"anchors": 连接点定位值数组
}
],
"params": {
过滤参数ID: 过滤参数信息
},
"roots": 根节点ID数组,
"outs": 输出节点ID数组
};
其中相对于xml格式,JSON是纯文本,结构简单,层级结构清晰,读写和传输速度快;
其中组件数据,组件作为模型的基础支撑,在可视化建模系统中表现为可拖拽的图形组件,包含组件编码、组件名称、组件状态等信息,分为五个类型的组件,如下表1所示:
表1
数据源类型,支持多种数据库类型,不同的数据库类型有不同的连接方式和执行方式,包含MySQL、Oracle、ODPS等多种类型数据库;
节点数据,节点数据是组件拖拽形成的详细数据,相当于模型中每一个组件都有一个节点数据,
分为非可视化节点和可视化节点,节点数据包含了节点ID、节点顺序、节点名称、组件类型、组件编码、节点描述、节点横坐标、节点纵坐标、节点属性配置、节点分析结果等信息;
连接线数据,作为组件节点之间前后连接的标识,在前端表现为点对点的连线,随着组件拖动自由延伸,连接线数据包含了连接标识、父节点编号、子节点编号、连接点定位数值等信息;
过滤参数,模型最终的目的是查询数据,所以避免不了使用查询参数,要使用查询参数就需要用到过滤组件,当使用到过滤组件时就会构建过滤参数,过滤参数信息包括参数标识、参数名、过滤关系、参数类型、过滤条件、参数值,过滤参数是列表形式的,可以有很多组过滤参数;
根流程节点,也就是根节点,没有子流程节点的非可视化节点,记录了所有流程节点的顶端的节点信息;
输出节点,没有子流程节点的可视化节点,记录了所有流程节点最终输出结果的展示形式,包括列表和图形的形式,图形包括柱状图、饼状图等;
步骤202、如果用户配置的模型中存在数据过滤组件,则将过滤组件构建为过滤参数,这里的过滤参数就是SQL语句中的查询条件,其中过滤参数中的过滤关系是数据库常用过滤关系的and或者or之一,参数类型包含常用的数据类型字符型、数字型、日期型、浮点型等等,过滤条件包含大于、小于、等于、大于等于、小于等于、不等于、右匹配、左匹配、中间匹配、不匹配、包含、不包含、为空、不为空,若模型数据存在过滤参数值,则模型分析时将过滤参数值添加至模型数据的过滤节点中;
步骤203、初始化后的模型数据中的节点数据还需要分配节点ID,分配节点ID之后,有以下几个作用:
(1)确保节点不重复;
(2)能够快速查找识别当前节点的组件类型;
(3)支持节点父子关系的构建;
(4)标识根节点、输出节点;
在本实施例中,节点数据中的节点属性配置使用了模板方法的设计模式,不同的组件类型有不同的节点属性配置,包括查询列设置、别名设置、分组设置、统计设置等等;
节点数据的节点分析结果包含了验证标识、查询SQL、数量统计SQL、查询界限SQL、执行结果表名、执行结果表别名、执行结果列名、过滤参数ID,数量统计SQL和查询界限SQL可用于模型分页查询;
步骤204:初始化节点的父子关系,就是通过连接线数据遍历出节点的父子关系,通过节点ID查找到节点数据,将父节点数据添加到子节点,子节点数据添加到父节点,形成依赖关系,并设置连接点编号,对于一个节点来说,除了根节点和输出节点,其他节点可以既是下一节点的父节点,也是上一节点的子节点,所以为了解析过程中能够更快地获取上下节点的数据,就将父子节点的数据都保存到当前节点;
步骤205、遍历所有节点数据,根据组件类型找到根节点和输出节点,本申请中的数据源组件为根节点,列表或图形组件为输出节点,判断根节点不能有父节点,输出节点不能有子节点,否则将会抛出错误反馈至用户端;找到正确的根节点和输出节点后,将其添加到外层的模型数据中,这里的根节点和输出节点都是可以有多个;
步骤206、根据已经存在的当前节点、根节点和输出节点数据,依次进行解析,对节点进行解析的时候,遍历节点的所有父节点并首先对父节点进行解析,解析过程中若存在配置不正确或者其他错误配置则会抛出错误反馈至用户端,解析成功后生成的分析结果数据添加到对应的节点当中,分析结果数据如下所示:
{
"isValid": 验证结果,
"sql": 查询SQL,
"countsql": 数量统计SQL,
"limitsql": 查询界限SQL语句,
"rsttab": 执行结果表名,
"alias": 执行结果表别名,
"rstcols": 执行结果列数组,
"params": 过滤参数ID
};
在解析节点数据构建完成并且验证之后需要进行SQL的拼接,主要流程请参阅图3所示:
根据节点数据生成SQL解析器,SQL解析器随即开始拼接SQL,如果判断当前节点在前面的解析验证步骤中失败则直接终止当前节点的SQL拼接,成功则进入后续步骤,首先获取当前节点的位置,如果当前节点不是组件流程的顶点则获取到当前节点的父节点,以此类推,获取到根节点,也就是数据源组件的SQL作为下一个节点的查询基础表,假如目前有三个节点,根节点的SQL为:
select a,b from table_a
则第二个节点的SQL为:
select A.a,A.b from(select a,b from table a)A
回到当前节点的查询基础表则为:
(select A.a,A.b(select a,b from table a)A) B
因此,获取到查询基础表之后进行真正的SQL拼接,需要获取到当前节点的展示列、过滤参数,根据SQL定义的规范拼接成当前节点的SQL语句,如下所示:
select B.a,B.b from (select A.a,A.b(select a,b from table a)A) Bwhere B.a = ‘abc’
最后拼接成了可执行的SQL语句;
其中每个节点数据都会生成一个SQL解析器,SQL解析器的作用就是将节点数据转化为SQL语句,拼接SQL的开始节点数据时,当前节点由用户指定,通过步骤201中模型数据中传输的当前节点ID来确定;
步骤207、将解析成功后的模型数据转换为模型分析结果数据返回至前端,前端根据结果数据中的验证标识来确定是否验证成功,如果验证成功则可进行模型运行,若不成功则提示验证失败的信息,提示用户继续修改模型,其中上述步骤的验证就是对节点的配置数据操的过程,如果配置数据不存在或不符合规则则会验证失败;
步骤208、最后全部节点都验证成功的模型可以通过可视化建模系统提供的运行按钮直接运行,运行时通过分析结果的SQL语句去查询对应数据源,查询到对应的模型运行结果数据。
一种可视化组件模型数据构建系统包括前端显示模块、后端存储模块、节点过滤模块、节点遍历模块、节点初始化模块、节点解析验证模块及SQL语句拼接模块;所述前端显示模块,用于显示前端,实现与用户的交互;所述后端存储模块,作为后端载体,存储上述的可视化组件模型数据构建的方法;所述节点过滤模块,用于初始化过滤参数,提供查询功能;所述节点遍历模块,用于提供节点数据遍历功能并分配节点ID;所述节点初始化模块,用于标记节点的父子关系;所述节点验证模块,用于解析验证所有节点并将解析结果添加到对应的节点中,其中具体的操作方式或应用场景如图4所示,该场景主要是提供了一个可视化建模系统,其中包括前端和后端,前端和后端可以是由同一个计算机终端提供,也可以是由不同的计算机终端提供,本发明对此不做限定。该场景的具体描述如下:
步骤一、用户进入可视化建模系统后,访问的是系统前端,前端根据从后端获取的数据源和组件数据在页面拖拽构建可视化模型,可视化模型在前端转化为模型数据;
步骤二、前端通过http协议请求后端接口将模型数据传输到后端,后端接收到模型数据后使用本发明提供的一种可视化模型数据构建的方法验证解析模型数据,解析成可执行的SQL语句添加到模型数据中并返回给前端;
步骤三、前端接收到验证解析后的模型数据,根据验证结果进行可视化的结果展示,所有模型节点验证成功前端可以运行模型,前端向后端传输验证解析后的模型数据发起运行模型请求,后端通过在模型对应数据源下执行SQL语句获取运行结果,将运行结果返回至前端。
一种可视化组件模型数据构建电子设备包括存储器、处理器及人机交互界面;所述存储器,用于存储上述的一种可视化组件模型数据构建的方法;所述处理器,用于执行存储器的可执行命令;所述人机交互界面,用于供用户拖拽组件生成可视化模型和操作可视化模型。在本实施例中,电子设备可以是手机、平板电脑等设备,未在附图中表示。
用于实现本方案实施例方法的服务器的计算机系统包括中央处理单元CPU),其可以根据存储在只读存储器(ROM)中的程序或者从存储部分加载到随机访问存储器(RAM)中的程序而执行各种适当的动作和处理。在RAM中,还存储有系统操作所需的各种程序和数据。 CPU、ROM以及RAM 通过总线彼此相连。输入/输出(I/O)接口也连接至总线。
以下部件连接至I/O接口:包括键盘、鼠标等的输入部分;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分;包括硬盘等的存储部分;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分。通信部分经由诸如因特网的网络执行通信处理。驱动器也根据需要连接至I/O接口。可拆卸介质,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器上,以便于从其上读出的计算机程序根据需要被安装入存储部分。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被中央处理单元(CPU)执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的模块也可以设置在处理器中。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备执行以下方法所对应过的流程步骤。
本发明未详述部分为现有技术,故本发明未对其进行详述。
尽管本文较多地使用了专业术语,但并不排除使用其他术语的可能性。使用这些术语仅仅是为了更方便地描述和解释本发明的本质;把它们解释成任何一种附加的限制都是与本发明精神相违背的。
本发明不局限于上述最佳实施方式,任何人在本发明的启示下都可得出其他各种形式的产品,但不论在其形状或结构上做任何变化,凡是具有与本申请相同或相近似的技术方案,均落在本发明的保护范围之内。
Claims (9)
1.一种可视化组件模型数据构建的方法,其特征在于,包括以下步骤:
将用户构建的可视化模型转化为模型数据,其中模型数据至少包括组件数据、数据源、过滤参数、节点数据及连接线数据,每个所述节点数据对应所述组件数据中的一个组件,所述连接线数据作为组件节点之间的标识,所述数据源作为所述可视化模型的输入数据,所述过滤参数为SQL语句中的查询条件;
初始化所述模型数据中的过滤参数;
遍历所述模型数据中的节点数据并分配每个节点的节点ID;
通过所述模型数据中的连接线数据建立节点的父子关系;
遍历所述节点数据,根据组件类型找出根节点和输出节点,其中所述根节点表示数据源,组件表示输出节点;
根据节点的父子关系,筛选出正确的根节点和输出节点,将其添加到所述模型数据中;
解析验证所有节点并将解析结果添加到对应的节点中;
将解析成功后的数据存储转换后返回至前端;
前端对返回的数据进行验证;
若验证失败,则提示用户继续修改模型;
若验证成功,则运行已解析模型;
其中,通过所述模型数据中的连接线数据建立节点的父子关系包括:通过节点ID查找到该节点的节点数据,将父节点数据添加到子节点,将子节点数据添加到父节点,所得到的数据均保存到当前节点中,并设置节点之间连接点编号。
2.根据权利要求1所述的一种可视化组件模型数据构建的方法,其特征在于,模型数据的初始化步骤包括:
前端响应用户操作从后端获取数据源和组件数据构建可视化模型;
通过前端将可视化模型转换成JSON格式的模型数据;
后端从前端接收模型数据。
3.根据权利要求1所述的一种可视化组件模型数据构建的方法,其特征在于,遍历所述节点数据,根据组件类型找出根节点和输出节点时,若根节点存在父节点或输出节点存在子节点,则抛出错误并反馈至前端,若根节点不存在父节点且输出节点不存在子节点,则该根节点和输出节点为正确的节点。
4.根据权利要求1所述的一种可视化组件模型数据构建的方法,其特征在于,解析验证成功后进行SQL拼接,根据节点数据生成SQL解析器,通过SQL解析器拼接SQL语句。
5.根据权利要求4所述的一种可视化组件模型数据构建的方法,其特征在于,SQL语句的拼接步骤为:
获取当前节点的位置;
判断当前节点是否为该组件流程的顶点;
若否,则获取当前节点的父节点,循环此步骤直至获取到根节点为止;
获取被查询表名或表达式;
获取当前节点的展示列和过滤参数;
根据SQL定义的规范拼接成当前节点的可执行SQL语句。
6.根据权利要求1或4所述的一种可视化组件模型数据构建的方法,其特征在于,解析验证所有节点时,遍历每个节点的所有父节点,并先对所有父节点进行解析,解析过程中若存在错误则抛出错误反馈至前端。
7.根据权利要求1所述的一种可视化组件模型数据构建的方法,其特征在于,所述组件数据的组件至少包括源目标、数据处理、数据可视化、统计分析及机器学习。
8.一种可视化组件模型数据构建系统,其特征在于,包括前端显示模块、后端存储模块、节点过滤模块、节点遍历模块、节点初始化模块、节点解析验证模块及SQL语句拼接模块;
所述前端显示模块,用于显示前端,实现与用户的交互;
所述后端存储模块,作为后端载体,存储权利要求1-7任意一项所述的可视化组件模型数据构建的方法;
所述节点过滤模块,用于初始化过滤参数,提供查询功能;
所述节点遍历模块,用于提供节点数据遍历功能并分配节点ID;
所述节点初始化模块,用于标记节点的父子关系;
所述节点验证模块,用于解析验证所有节点并将解析结果添加到对应的节点中。
9.一种可视化组件模型数据构建电子设备,其特征在于,包括存储器、处理器及人机交互界面;
所述存储器,用于存储权利要求1-7任意一项所述的一种可视化组件模型数据构建的方法;
所述处理器,用于执行存储器的可执行命令;
所述人机交互界面,用于供用户拖拽组件生成可视化模型和操作可视化模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110416452.8A CN113094776B (zh) | 2021-04-19 | 2021-04-19 | 可视化组件模型数据构建的方法、系统及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110416452.8A CN113094776B (zh) | 2021-04-19 | 2021-04-19 | 可视化组件模型数据构建的方法、系统及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113094776A CN113094776A (zh) | 2021-07-09 |
CN113094776B true CN113094776B (zh) | 2022-05-03 |
Family
ID=76678848
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110416452.8A Active CN113094776B (zh) | 2021-04-19 | 2021-04-19 | 可视化组件模型数据构建的方法、系统及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113094776B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115098093B (zh) * | 2022-08-24 | 2022-12-02 | 湖南云畅网络科技有限公司 | 一种数据流程表达式处理方法及系统 |
CN117056352A (zh) * | 2023-10-13 | 2023-11-14 | 深圳市金政软件技术有限公司 | 数据的展示方法、装置、终端设备和可读存储介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8970609B2 (en) * | 2011-09-16 | 2015-03-03 | Sybase, Inc. | Text-to-visual switching and mapping |
CN106295983A (zh) * | 2016-08-08 | 2017-01-04 | 烟台海颐软件股份有限公司 | 电力营销数据可视化统计分析方法及系统 |
US20200278862A1 (en) * | 2017-11-14 | 2020-09-03 | Code Walker L.L.C. | Computer Code Mapping and Visualization |
CN110874367B (zh) * | 2018-09-03 | 2023-04-07 | 阿里巴巴集团控股有限公司 | 结构化查询语言语句的可视化方法和装置 |
CN109523318A (zh) * | 2018-11-16 | 2019-03-26 | 杭州市商务委员会(杭州市粮食局) | 跨界电子商务数据可视化建模分析平台 |
CN110245270A (zh) * | 2019-05-09 | 2019-09-17 | 重庆天蓬网络有限公司 | 基于图模型的数据血缘关系存储方法、系统、介质和设备 |
CN111125269B (zh) * | 2019-12-31 | 2023-05-02 | 腾讯科技(深圳)有限公司 | 一种数据管理方法、血缘关系显示方法和相关装置 |
CN112667735A (zh) * | 2020-12-23 | 2021-04-16 | 武汉烽火众智数字技术有限责任公司 | 一种基于大数据的可视化模型建立分析系统和方法 |
CN112632141A (zh) * | 2020-12-29 | 2021-04-09 | 平安普惠企业管理有限公司 | 血缘分析数据的可视化方法、装置、计算机设备和介质 |
-
2021
- 2021-04-19 CN CN202110416452.8A patent/CN113094776B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113094776A (zh) | 2021-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10579344B2 (en) | Converting visual diagrams into code | |
US11669503B2 (en) | Building and managing data-processing attributes for modeled data sources | |
WO2021184725A1 (zh) | 用户界面测试方法、装置、存储介质及计算机设备 | |
CN111427561A (zh) | 业务代码的生成方法、装置、计算机设备和存储介质 | |
CN114424257A (zh) | 使用机器学习对表格数据进行自动描绘和提取 | |
CN113094776B (zh) | 可视化组件模型数据构建的方法、系统及电子设备 | |
CN111512315A (zh) | 文档元数据的按块提取 | |
CN111427971A (zh) | 用于计算机系统的业务建模方法、装置、系统和介质 | |
CN110688111A (zh) | 业务流程的配置方法、装置、服务器和存储介质 | |
CN113238740A (zh) | 代码生成方法、代码生成装置、存储介质及电子设备 | |
CN111435367A (zh) | 知识图谱的构建方法、系统、设备及存储介质 | |
CN116360735A (zh) | 一种表单生成方法、装置、设备和介质 | |
CN115599386A (zh) | 代码生成方法、装置、设备及存储介质 | |
CN114168149A (zh) | 一种数据转换方法及装置 | |
US10372760B2 (en) | Building queries directed to objects hosted on clouds | |
CN113377342B (zh) | 一种项目构建方法、装置、电子设备及存储介质 | |
CN113238739A (zh) | 一种插件开发和数据获取方法、装置、电子设备及介质 | |
CN116414689A (zh) | 一种基于反射机制的接口参数校验方法及系统 | |
CN115145558A (zh) | 一种可视化无代码或轻代码云开发方法及系统 | |
US10620946B1 (en) | Dynamic modeling for opaque code during static analysis | |
CN112363700A (zh) | 智能合约的协同创建方法、装置、计算机设备和存储介质 | |
CN116610706A (zh) | 一种数据血缘分析方法、服务器和系统 | |
Andrunyk et al. | Information System for Finding Inclusive Places for People with Disabilities. | |
CN117406985A (zh) | 页面批量生成方法和装置 | |
CN117573130A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |