订单查询系统及方法技术方案

技术编号:16456450 阅读:72 留言:0更新日期:2017-10-25 20:51
本发明专利技术公开了一种订单查询系统及方法,订单查询系统包括:至少一数据库,每个数据库存储有至少一数据表,数据表包括订单数据;Spark数据抽取模块,用于从所述至少一数据库中读取所有数据表并写入搜索引擎;所述搜索引擎用于对每张数据表创建一个独立的索引;输入模块,用于获取查询关键词;所述搜索引擎还用于反馈包括所述查询关键词的订单数据。本发明专利技术实现了对多个数据库、多张表进行查询,并快速、准确地获取所需的订单数据。

Order inquiry system and method

The invention discloses a system and method for query order, order inquiry system comprises at least one database, each database stores at least one data table, data tables including order data; Spark data extraction module, for all the data table and writes the search engine to read from the at least one database; the search engine for create a separate index for each data table; the input module, used to obtain the query keywords; the search engine is also used for feedback including the order data of the query keywords. The invention realizes the query of multiple databases and multiple tables, and obtains the required order data quickly and accurately.

【技术实现步骤摘要】
订单查询系统及方法
本专利技术涉及数据库数据查询领域,特别涉及一种订单查询系统及方法。
技术介绍
生产业务系统里,开发人员经常需要排查生产问题并对其进行修复,此过程很多时候需要涉及到订单数据的查询。随着业务复杂性增加,数据库、数据表越来越多,开发和问题排查人员要搞清楚所有的数据库表结构,所花费的时间越来越多、成本越来越高。且在仅获取到用户ID或手机号码或航班号等少量信息时,若数据库里没有索引,需要根据这些信息定位到具体的订单相关信息其查询性能会很差甚至会超时。可见,现有技术中在多个数据库、多张表中查询订单数据,不仅耗时而且费力。
技术实现思路
本专利技术要解决的技术问题是为了克服现有技术的订单查询方式不仅耗时而且费力的缺陷,提供一种订单查询系统及方法。本专利技术是通过下述技术方案来解决上述技术问题:一种订单查询系统,其特点在于,所述订单查询系统包括:至少一数据库,每个数据库存储有至少一数据表,数据表包括订单数据;Spark数据抽取模块,用于从所述至少一数据库中读取所有数据表并写入搜索引擎;所述搜索引擎用于对每张数据表创建一个独立的索引;输入模块,用于获取查询关键词;所述搜索引擎还用于反馈包括所述查询关键词的订单数据。较佳地,所述订单查询系统还包括:Spark数据更新模块,用于检测所述数据库,并在检测到当前数据表与上一时刻的数据表存在不同的订单数据时,更新所述搜索引擎中对应的数据表中的订单数据。较佳地,所述Spark数据更新模块还用于在检测到当前数据表中存在新增订单数据时,将所述新增订单数据增加至所述搜索引擎中对应的数据表中。较佳地,所述订单查询系统还包括:调度模块,用于在接收到调度指令时调度所述Spark数据抽取模块和/或Spark数据更新模块。较佳地,所述调度模块还用于在调度失败时生成报警信息。本专利技术还提供一种订单查询方法,其特点在于,所述订单查询方法利用权利要求1所述的订单查询系统实现,所述订单查询方法包括以下步骤:S1、Spark数据抽取模块从所述至少一数据库中读取所有数据表并写入搜索引擎;S2、所述搜索引擎对每张数据表创建一个独立的索引;S3、输入模块获取查询关键词;S4、所述搜索引擎反馈包括所述查询关键词的订单数据。较佳地,所述订单查询系统还包括Spark数据更新模块;所述订单查询方法还包括:Spark数据更新模块检测所述数据库,并在检测到当前数据表与上一时刻的数据表存在不同的订单数据时,更新所述搜索引擎中对应的数据表中的订单数据。较佳地,所述订单查询方法还包括:所述Spark数据更新模块在检测到当前数据表中存在新增订单数据时,将所述新增订单数据增加至所述搜索引擎中对应的数据表中。较佳地,所述订单查询系统还包括调度模块;所述订单查询方法还包括:调度模块在接收到调度指令时调度所述Spark数据抽取模块和/或Spark数据更新模块。较佳地,所述订单查询方法还包括:在所述调度模块调度失败时生成报警信息。本专利技术的积极进步效果在于:本专利技术实现了对多个数据库、多张表进行查询,并快速、准确地获取所需的订单数据。附图说明图1为本专利技术实施例1的订单查询系统的结构示意图。图2为本专利技术实施例2的订单查询方法的流程图。具体实施方式下面通过实施例的方式进一步说明本专利技术,但并不因此将本专利技术限制在所述的实施例范围之中。实施例1如图1所示,本实施例的订单查询系统包括:至少一个数据库1、Spark数据抽取模块2、搜索引擎3和输入模块4。每个数据库1存储有至少一张数据表,数据表包括订单数据。通常不同业务数据、不同业务等级的数据存储在不同的数据库中。Spark数据抽取模块2用于读取所有数据库中的所有数据表并写入搜索引擎中。其中,数据库包括第一类数据库和第二类数据库,第一类数据库用于存储当天的订单数据,第二类数据库(Hive)用于存储延时一天的订单数据。Spark数据抽取模块则从第一类数据库和第二类数据库增量读取数据表,并发送至搜索引擎。搜索引擎3对每张数据表创建一个独立的索引。本实施例中,搜索引擎通过ElasticSearch(一个基于Lucene的搜索服务器)服务器实现,也可以是服务器集群实现。从而,ElasticSearch搜索引擎可实现近实时查询几百亿条数据库表数据,一次查询多张数据表和多个数据库中的数据,秒极响应速度,且稳定可靠。具体的,ElasticSearch索引设计方案如下:1)因为同一个数据库的各个数据表之间存在很多相同名称,不同类型的字段,而ElasticSearch中是不允许在同一个index(索引)里面存在相同字段名称但是类型不同的情况的,为了解决这个问题,因此对每张数据表建立一个独立的index,且index名称格式可以为:数据库名.表名。2)不同数据表中同一个语义的字段名称可能不同,比如,同一个OrderID,有些数据表是小写(orderid),有些是带大写(OrderID),还有一些字段名称是CtripOrderId等,ElasticSearch搜索引擎是大小写敏感的,ElasticSearch搜索引擎可对所有的doctype里的字段类型重新定义,对这些字段进行归一化处理,例如,统一用小名称。3)因为数据库的数据会更新,为了避免索引重复数据的存在,生成数据表的PK(主键字段),如果是单个字段PK,直接用这个字段作为ID,如果是复合主键,用column1_column2_column3(column1,column2,column3为复合主键)之类的格式。输入模块4用于获取查询关键词。搜索引擎则反馈包括查询关键词的所有订单数据。从而,本实施例能够实现对多个数据库、多张表进行查询,并快速、准确地获取所需的订单数据。本实施例中,输入模块可通过查询Web服务器以及前端查询Web服务器实现,前端查询Web服务器用于获取用户输入的请求参数,查询Web服务器用于对请求参数进行处理并生成查询关键词,以发送给搜索引擎。前端查询Web服务器还用于显示搜索引擎反馈的所有订单数据。本实施例中,订单查询系统还包括:调度模块5和Spark数据更新模块6。调度模块(具体采用Zeus调度机制)用于在接收到调度指令时调度Spark数据抽取模块和/或Spark数据更新模块。Spark数据更新模块用于检测数据库,在检测到当前数据表与上一时刻的数据表存在不同的订单数据时,更新搜索引擎中对应的数据表中的订单数据。Spark数据更新模块可以在调度模块调度时执行检测动作,也可设置成周期执行动作(也即周期检测数据库)。Spark数据更新模块还用于在检测到当前数据表中存在新增订单数据时,将新增订单数据增加至搜索引擎中对应的数据表中。本实施例中,调度模块还用于在调度失败时生成报警信息,以及时地监控遗漏的数据导入、数据导入不及时、调度失败等问题。本实施例中,订单查询系统实现了在数据库表新增、表字段新增时,自动发现、自动读取数据到搜索引擎。此系统基于Spark技术框架、Zeus(资源调度系统)调度机制、ElasticSearch搜索引擎和SOA2.0(面向服务的架构)消息机制实现,是一个可扩展、高可用、高性能的分布式系统。Spark利用RDD(弹性分布式数据集)分布式内存计算的优势,提高了数据读取和处理的速度。基于SOA2.0框架,系统还可提供数据查询的封装本文档来自技高网...
订单查询系统及方法

【技术保护点】
一种订单查询系统,其特征在于,所述订单查询系统包括:至少一数据库,每个数据库存储有至少一数据表,数据表包括订单数据;Spark数据抽取模块,用于从所述至少一数据库中读取所有数据表并写入搜索引擎;所述搜索引擎用于对每张数据表创建一个独立的索引;输入模块,用于获取查询关键词;所述搜索引擎还用于反馈包括所述查询关键词的订单数据。

【技术特征摘要】
1.一种订单查询系统,其特征在于,所述订单查询系统包括:至少一数据库,每个数据库存储有至少一数据表,数据表包括订单数据;Spark数据抽取模块,用于从所述至少一数据库中读取所有数据表并写入搜索引擎;所述搜索引擎用于对每张数据表创建一个独立的索引;输入模块,用于获取查询关键词;所述搜索引擎还用于反馈包括所述查询关键词的订单数据。2.如权利要求1所述的订单查询系统,其特征在于,所述订单查询系统还包括:Spark数据更新模块,用于检测所述数据库,并在检测到当前数据表与上一时刻的数据表存在不同的订单数据时,更新所述搜索引擎中对应的数据表中的订单数据。3.如权利要求2所述的订单查询系统,其特征在于,所述Spark数据更新模块还用于在检测到当前数据表中存在新增订单数据时,将所述新增订单数据增加至所述搜索引擎中对应的数据表中。4.如权利要求2所述的订单查询系统,其特征在于,所述订单查询系统还包括:调度模块,用于在接收到调度指令时调度所述Spark数据抽取模块和/或Spark数据更新模块。5.如权利要求4所述的订单查询系统,其特征在于,所述调度模块还用于在调度失败时生成报警信息。6.一种订单查询方法,其特征在于,所述订单查询方法利...

【专利技术属性】
技术研发人员:金丽丽苏达鼐张威力谭宇阳马涛
申请(专利权)人:携程旅游网络技术上海有限公司
类型:发明
国别省市:上海,31

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

1