一种签收数据查询方法和系统技术方案

技术编号:29789753 阅读:17 留言:0更新日期:2021-08-24 18:08
本发明专利技术公开了一种签收数据查询方法和系统,所述方法包括如下步骤:获取PostgreSQL数据库中签收查询核心表单,并建立PostgreSQL数据库和Kafka集群的通讯链接;将所述签收查询核心表单同步到所述Kafka集群;在所述Kafka集群中将所述签收查询核心表单封装成json数据;将封装完成后的json数据同步到ElasticSearch数据库中,并启动签收查询服务。所述方法和系统采用ElasticSearch搜索引擎,将PostgreSQL数据库中的数据通过Kafka集群以特定的格式将数据同步到ElasticSearch搜索引擎中进行签收和业务查询,从而避免采用复杂的多表关联、嵌套查询技术,可以提高签收数据的处理速度和能力。

【技术实现步骤摘要】
一种签收数据查询方法和系统
本专利技术涉及大数据领域,特别涉及一种签收数据查询方法和系统。
技术介绍
当前签收功能模块的待签收、待寄出、已寄出、已签收四个模块的数据查询是基于PostgreSQL数据库实现的实时查询。产品中所提供的动态查询、模糊查询等高级搜索功能,所采用的技术方案是通过在PostgreSQL数据库中进行多表关联、子查询、左右匹配模糊查询等方式实现。然而现有的上述技术方案实现复杂,在实现过程中需要采用SQL进行多表关联、嵌套查询等复杂操作,开发是需要庞大的工作量,而且随着业务量的增长,SQL的性能会越差,及其影响用户的体验。
技术实现思路
本专利技术其中一个专利技术目的在于提供一种签收数据查询方法和系统,所述方法和系统采用ElasticSearch搜索引擎,将PostgreSQL数据库中的数据通过Kafka集群以特定的格式将数据同步到ElasticSearch搜索引擎中进行签收和业务查询,从而避免采用复杂的多表关联、嵌套查询技术,可以提高签收数据的处理速度和能力。本专利技术另一个专利技术目的在于提供一种签收数据查询方法和系统,所述方法和系统通过封装成适配ElasticSearch搜索引擎格式的数据,降低代码的耦合度,从而使得整个签收查询业务的可维护性更高,减少代码层面的协调处理。本专利技术另一个专利技术目的在于提供一种签收数据查询方法和系统,所述方法和系统由于较少的代码耦合度,因此可以实现查询接口的快速开发,使得业务的拓展性能更好。本专利技术另一个专利技术目的在于提供一种签收数据查询方法和系统,所述方法和系统建立对签收查询核心表单的监听,并对指定核心表单中的指定字段进行分词,用于ElasticSearch搜索引擎的模糊查询,从而提高签收数据查询的响应速度。为了实现至少一个上述专利技术目的,本专利技术进一步提供一种签收数据查询方法,所述方法包括如下步骤:获取PostgreSQL数据库中签收查询核心表单,并建立PostgreSQL数据库和Kafka集群的通讯链接;将所述签收查询核心表单同步到所述Kafka集群;在所述Kafka集群中将所述签收查询核心表单封装成json数据;将封装完成后的json数据同步到ElasticSearch数据库中,并启动签收查询服务。根据本专利技术其中一个较佳实施例,所述签收查询核心表单的同步方法包括:在Kafka集群中创建签收表查询核心表单topic;配置对应的签收查询核心表单参数;配置kafkaconnector,并指定区分键为单据号;根据所述单据号将对应的签收查询核心表单同步至topic;根据本专利技术另一个较佳实施例,所述签收查询核心表单包括:签收任务表、对私报销单据表、对公报销单据表和单据审批任务表,在Kafka集群中启动Kafka脚本执行对所述签收查询核心表单的同步操作。根据本专利技术另一个较佳实施例,当配置好kafkaconnector后,添加PostgreSQL数据库中的签收查询核心表单执行对所述签收查询核心表单的监听操作,用于实时获取变更签收查询核心表单数据。根据本专利技术另一个较佳实施例,启动3个线程间隔指定时间从所述kafka集群中抓取所述签收查询核心表单数据,并判断所述签收查询核心表单数据和变化,根据不同的签收查询核心表单数据的变更数据分别执行不同操作。根据本专利技术另一个较佳实施例,获取对私报销单据表的变更数据,并判断对私报销单据表的变更数据是否为删除指令,若是建立一条ElasticSearch搜索引擎的数据删除对象,用于删除所述对私报销单据表数据;获取对公报销单据表的变更数据并判断是否为删除指令,若是则建立一条ElasticSearch搜索引擎的数据删除对象,用于删除对公报销单据表数据。根据本专利技术另一个较佳实施例,获取签收任务表的变更数据,若判断变更数据为更新操作,则建立一条ElasticSearch搜索引擎的数据更新对象;获取单据审批任务表的变更数据,若判断变更数据是删除指令且是审核节点,则构建一条ElasticSearch的更新审核通过时间的数据对象,其中审核通过时间为当前时间。根据本专利技术另一个较佳实施例,将封装的json格式数据同步到ElasticSearch数据库中的操作还包括如下步骤:构建Kafka集群和ElasticSearch数据库通讯链接;构建签收对象索引,获取签收查询核心表单的指定字段,并对所述指定字段进行分词;将分词结果保存,并封装成json格式数据;调用RestHighLevelClient接口将封装好的json格式数据对象同步到构建好的索引数据库中。为了实现至少一个上述专利技术目的,本专利技术进一步提供一种签收数据查询系统,所述系统采用上述一种签收数据查询方法。本专利技术进一步提供一种计算机可读存储介质,所述计算机可读存储介质保存并应用上述一种签收数据查询应用系统。附图说明图1显示的是本专利技术一种签收数据查询方法的流程示意图。图2显示的是本专利技术一种签收数据查询系统结构示意图。具体实施方式以下描述用于揭露本专利技术以使本领域技术人员能够实现本专利技术。以下描述中的优选实施例只作为举例,本领域技术人员可以想到其他显而易见的变型。在以下描述中界定的本专利技术的基本原理可以应用于其他实施方案、变形方案、改进方案、等同方案以及没有背离本专利技术的精神和范围的其他技术方案。可以理解的是,术语“一”应理解为“至少一”或“一个或多个”,即在一个实施例中,一个元件的数量可以为一个,而在另外的实施例中,该元件的数量可以为多个,术语“一”不能理解为对数量的限制。请结合图1-2,本专利技术提供了一种签收数据查询方法和系统,所述方法和系统将PostgreSQL数据库中的签收查询核心表单数据通过kafka集群转换为适配于ElasticSearch搜索引擎的数据,从而可以实现签收查询的速度。并且由于是通过格式转换进行的签收查询操作,因此无需对PostgreSQL数据库的代码层面进行开放编辑,可以降低签收查询的代码耦合度,并且便于签收应用业务的开发。具体而言,所述签收数据查询方法包括如下步骤:首先需要配置并注册kafkaconnector,建立PostgreSQL数据库和kafka集群的通讯链接,进一步在kafka集群中创建4个topic,对应的配置参数分别为:pg.prod.sign_for_task、pg.prod.reimburse_data、pg.prod.corp_reimburse_data、pg.prod.form_ru_task。上述配置参数用于获取并保存PostgreSQL数据库中指定的签收查询核心表单,上述配置参数对应的签收查询核心表单分别为:签收任务表(sign_for_task),对私报销单据表(reimburse_data),对公报销单据表(corp_reimburse_data),单据审批任务表(form_ru_task)。在建立和kafka集群的通讯链接过程本文档来自技高网...

【技术保护点】
1.一种签收数据查询方法,其特征在于,所述方法包括如下步骤:/n获取PostgreSQL数据库中签收查询核心表单,并建立PostgreSQL数据库和Kafka集群的通讯链接;/n将所述签收查询核心表单同步到所述Kafka集群;/n在所述Kafka集群中将所述签收查询核心表单封装成json数据;/n将封装完成后的json数据同步到ElasticSearch数据库中,并启动签收查询服务。/n

【技术特征摘要】
1.一种签收数据查询方法,其特征在于,所述方法包括如下步骤:
获取PostgreSQL数据库中签收查询核心表单,并建立PostgreSQL数据库和Kafka集群的通讯链接;
将所述签收查询核心表单同步到所述Kafka集群;
在所述Kafka集群中将所述签收查询核心表单封装成json数据;
将封装完成后的json数据同步到ElasticSearch数据库中,并启动签收查询服务。


2.根据权利要求1所述的一种签收数据查询方法,其特征在于,所述签收查询核心表单的同步方法包括:
在Kafka集群中创建签收表查询核心表单topic;
配置对应的签收查询核心表单参数;
配置kafkaconnector,并指定区分键为单据号;
根据所述单据号将对应的签收查询核心表单同步至topic。


3.根据权利要求1所述的一种签收数据查询方法,其特征在于,所述签收查询核心表单包括:签收任务表、对私报销单据表、对公报销单据表和单据审批任务表,在Kafka集群中启动Kafka脚本执行对所述签收查询核心表单的同步操作。


4.根据权利要求1所述的一种签收数据查询方法,其特征在于,当配置好kafkaconnector后,添加PostgreSQL数据库中的签收查询核心表单执行对所述签收查询核心表单的监听操作,用于实时获取变更签收查询核心表单数据。


5.根据权利要求3所述的一种签收数据查询方法,其特征在于,启动3个线程间隔指定时间从所述kafka集群中抓取所述签收查询核心表单数据,并判断所述签收查询核心表单数据的变化,根据不同的签收查询核心表单数据的变更数据分别执行不同操作。
...

【专利技术属性】
技术研发人员:丁佳军
申请(专利权)人:杭州每刻科技有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1