一种新型企业内网业务信息聚合与检索系统的设计与实现

2022-06-22 12:46杜炜凝孙海翔马骏毅
无线互联科技 2022年6期
关键词:检索调度数据库

杜炜凝,耿 智,孙海翔,刘 昶,马骏毅

(国网江苏省电力有限公司镇江供电分公司,江苏 镇江 212211)

0 引言

随着电力企业各种业务系统种类和数据量的日益增长,当用户需要对各个业务内容进行搜索时,首先需要了解查找哪个特定的业务模块,如操作票、调度日志、检修单等,再打开对应模块的搜索功能。缺乏统一的检索入口,也缺少对所有模块进行检索后的整合展示,有价值的数据无法以整合、直观的方式被用户获得,因此各种业务数据的灵活获取、拼接、展示和检索成为亟须解决的问题。

本文提出的新型企业内网业务信息聚合与检索系统(以下简称 “LANDBCS” )能够通过配置连接多种数据库,定时爬取数据库内容,并建立缓存和全文索引,为用户提供统一的搜索入口,能够充分满足新一代企业用户对业务信息聚合、检索的需求。

1 开发技术

1.1 Spring Boot

Spring Boot是建立在Spring的基础上的一套全新的开源框架,可以简化Spring应用的搭建和开发过程。Spring Boot去除了大量的XML配置文件,简化了复杂的依赖管理,使用更简单,功能更丰富,性能更稳定健壮。Spring Boot集成了大量常用的第三方库配置,可以让开发者专注于解决业务逻辑[1-2]。本系统以Spring Boot作为后端技术框架,构建爬取连接配置的接口。

1.2 XXL-JOB简介

XXL-JOB是一个开源分布式异步任务调度平台,主要组成部分包含调度中心和执行器。调度中心提供一个后台管理界面,用于创建和修改调度任务,指定不同的执行器来根据场景执行调度任务。执行器提供任务执行的环境,可以根据不同公司的不同需求,部署不同环境的执行器。执行器在集群中部署,可以更加方便的做到服务扩容。本系统基于XXL-JOB完成定期对各业务数据库进行爬取的调度任务,也为用户提供手动开启爬取的功能。

1.3 Spring Boot+XXL-JOB企业级解决方案模型

利用Spring Boot和XXL-JOB,使用BEAN模式实现数据库爬取,同时XXL-JOB调度中心提供RESTful API供LANDBCS调用(操作任务于日志等)。执行器在爬取业务数据库过程中,将 “待爬取表” 中的每一行数据,根据搜索处理成新数据插入LANDBCS数据库的 “缓存表” 中。在 “缓存表” 中针对固定字段建立全文索引,根据关键字会将对应字段内容给到前端展示。定时任务相关应用,通过编写Service调用XXL-JOBADMIN接口,建立好任务的映射关系。可实现通过关键词快速定位目的业务数据库(从不同类型的业务数据库中进行搜索定位)。Spring Boot+XXL-JOB较传统的数据库检索查询,无论是数据的精准性还是用户体验均得到大大改善[3]。它充分利用其分布式任务调度优势加上JDBC的优化连接技术,实现了业务数据于前端发分离,提高了搜索的效率和有效性,改善了用户体验。

2 LANDBCS设计

2.1 系统架构

对爬取的数据源进行必要的配置是数据库搜索系统的基础。LANDBCS为用户提供了安全快捷的配置方法,只需配置主机名(IP)、端口号、用户名、口令、模块名称、模块URL、数据库类型、爬取字段标题、爬取字段内容、关联角色(可选),即可链接到数据源(见图1)。

图1 系统框架体系

使用分布式的任务调度工具XXL-JOB提供的方法来定时或手动执行爬取任务,建立缓存和全文索引库(预分析库)。提供一个简洁且功能强大的数据库检索入口,用户只需要输入业务数据的关键字,即可在1 s内搜索出相关的结果,直观、高效的将有价值的数据整合展示给用户,帮助企业用户快速完成对业务数据库的信息读取[4]。通过在配置信息中填写的模块名称和URL,可以从搜索结果点击模块名称访问到相应的第三方业务模块。

数据爬取与用户检索是相反的过程,由系统管理员配置好要爬取的数据源及要拼接的字段,调度中心定时执行调度任务,对爬取结果建立预分析库,最终供用户检索。在配置时添加了模块URL,则在检索结果中,点击检索结果中的配置名称,系统可以携带用户信息跳转到相应的应用模块。用户点击第三方链接进入该应用模块后的操作权限(可阅读、可编辑权等),则由该第三方系统定义。

2.2 功能模块

LANDBCS系统提供对业务数据库的爬取和搜索,并可以对搜索结果进行钻取(即可以从搜索结果访问到相应的业务模块)[5]。其主要分为3个模块,分别为用户的个人中心模块,提供用户搜索入口的数据库检索模块,以及包含文件检索配置、用户管理、角色管理、日志管理及关于系统信息的管理中心模块。模块划分如图2所示。

图2 LANDBCS模块划分

数据库检索模块为用户提供进行数据库数据检索的操作入口,配置完数据源且已经建立了预分析库后,用户只需在搜索框内输入要搜索的关键字即可搜索到想要查找的业务数据记录。

管理中心-任务调度中心,数据库爬取任务调度中心为用户提供对爬取数据库任务的周期调度功能,用户可配置爬取的周期或者手动启动爬取任务。

管理中心-数据库检索配置,为用户提供配置搜索数据库的数据源功能,配置IP、端口号、用户名、口令、模块名称、模块URL、数据库类型(包含DM7、DM8、MySQL 5.7、MySQL 8),设置组成业务数据卡片的标题及内容,关联角色(可选,关联后,数据库检索的结果将按角色顺序排序),最终完成配置。

管理中心-用户管理,提供对系统内用户的管理功能,包含对用户账号的增删、用户信息的修改,用户身份类型修改、用户角色的修改等功能。

管理中心-角色管理,提供对系统内角色的管理功能,包含对角色进行增删、角色信息的修改、绑定角色到用户等功能。

管理中心-日志管理,提供对系统内用户的登录日志及管理日志的记录审计功能,可删除、查询日志。

个人中心模块,提供用户对个人信息进行查看和修改的功能,主要信息包括头像、工号、姓名、账号、性别、状态(账号启用和禁用)、手机号码、邮箱、角色。

3 系统实现

3.1 数据库检索配置

数据库检索配置的目的是保障数据连接通道稳定性,建立起检索的数据基础,检索配置模块可自定义数据库爬取配置信息。其中的关键字段有以下几点。(1)IP:测试机局域网中对应的IP地址。(2)端口:数据库对应的端口号。(3)用户名:进入数据库时需要输入的用户名。(4)口令:进入数据库时需要输入的密码。(5)数据库类型:DM7,DM8,MySQL 5.7,MySQL 8。(6)标题、内容:根据数据库中相应数据表的字段来编写有效的SQL语句。爬取数据库支持达梦数据库,适应电力企业的行业需求。

对于标题和内容,支持使用SQL语句,可以很好地满足用户多样化的爬取需求,用户可以自由配置所需要的字段信息,例如使用 “SELECT ID,NAME FROM TESTTABLE.CZP” 就可以获取到操作票的ID和名称并组成标题,使用 “SELECT ID,DINDEX,CZMD FROM TESTTABLE.CZP” 获取到操作票的序号、目的等信息组成内容,标题和内容拟合组成数据库检索的基本条目,系统支持模糊检索。

爬取预分析过程举例如下:(1)操作票表。将【操作单位(czdw)+ “-” +操作目的(czmd)+ “-” +检修单编号(jxd)】按照配置进行采集拼接,存入DM库。(2)操作令表。将【操作票ID(CZP_ID)】,【序号(DINDEX)+ “-” +操作单位(czdw)+ “:” +操作内容(cznr)】分别作为两个字段存入DM库。

3.2 创建并启动定时任务逻辑

企业生产过程中,业务数据库的数据也在不断积累更新,所以需要不断地爬取数据库数据,为用户的数据检索提供时效性保障。定时任务默认为启动状态,系统管理人员可随时关闭爬取任务,定时爬取任务支持使用CRON表达式,也支持用户手动即时地启动一次爬取任务。并且对于调度爬取的任务,系统提供了爬取日志的查看功能,满足审计需求。

3.3 数据库检索

数据库检索模块提供了对业务数据库按单个、多个关键字检索进行检索的功能,并提供对搜索结果进行钻取的功能。用户在搜索栏内输入业务关键字段,即可快速查出相关业务数据聚合后的信息。数据库爬取的目的是建立 “预分析库(DM库)” ,加快后续搜索(检索)速度。

数据库中分散的数据被聚合后,检索时通过卡片的形式在前端展现。检索时,被检索内容命中的关键字会高亮显示。

在查询到业务信息后,点击下方的超链接,即可跳转到配置好的第三方业务模块中。搜索出的结果会按照当前用户所属角色的顺序进行排列,例如用户拥有A,B两个角色,结果将优先展示和角色A绑定的内容,然后是展示和角色B绑定的内容。

3.3.1 数据库检索逻辑实现,根据关键字检索

3.3.2 数据库检索逻辑实现,根据角色排序

系统提供了为用户添加角色的功能,一个用户可以拥有多个角色,为了优化用户的检索体验,提供数据库检索按角色排序的功能,在数据库检索配置时,可以配置角色信息,用户检索时,系统优先将和用户角色一致的结果排在前面,例如用户的角色是操作员,则优先展示调度员相关的检索结果,从而达到更快地帮助用户获取需要的信息的目的。同时,在检索配置时,角色信息非必填,角色为空时,检索结果则不会按角色排序,也满足用户不想按角色排序的需求。

4 结语

实践证明,Spring Boot+XXL-JOB提供的全新解决方案可以大幅度提高快速访问业务数据库的速度,提供更好的用户体验[6]。将来会尝试不同的任务调度解决方案并结合ElasticSearch实现更加高效的业务数据聚合搜索系统[7],并计划将本方案运用到协同工作平台、基于浏览器的即时消息系统以及客户服务中心系统等领域。

猜你喜欢
检索调度数据库
《调度集中系统(CTC)/列车调度指挥系统(TDCS)维护手册》正式出版
一种基于负载均衡的Kubernetes调度改进算法
2019年第4-6期便捷检索目录
虚拟机实时迁移调度算法
专利检索中“语义”的表现
SVC的RTP封装及其在NS2包调度中的应用研究
国际标准检索
国际标准检索