CN107291938A - 订单查询***及方法 - Google Patents
订单查询***及方法 Download PDFInfo
- Publication number
- CN107291938A CN107291938A CN201710547413.5A CN201710547413A CN107291938A CN 107291938 A CN107291938 A CN 107291938A CN 201710547413 A CN201710547413 A CN 201710547413A CN 107291938 A CN107291938 A CN 107291938A
- Authority
- CN
- China
- Prior art keywords
- data
- order
- tables
- search engine
- spark
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种订单查询***及方法,订单查询***包括:至少一数据库,每个数据库存储有至少一数据表,数据表包括订单数据;Spark数据抽取模块,用于从所述至少一数据库中读取所有数据表并写入搜索引擎;所述搜索引擎用于对每张数据表创建一个独立的索引;输入模块,用于获取查询关键词;所述搜索引擎还用于反馈包括所述查询关键词的订单数据。本发明实现了对多个数据库、多张表进行查询,并快速、准确地获取所需的订单数据。
Description
技术领域
本发明涉及数据库数据查询领域,特别涉及一种订单查询***及方法。
背景技术
生产业务***里,开发人员经常需要排查生产问题并对其进行修复,此过程很多时候需要涉及到订单数据的查询。随着业务复杂性增加,数据库、数据表越来越多,开发和问题排查人员要搞清楚所有的数据库表结构,所花费的时间越来越多、成本越来越高。且在仅获取到用户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搜索引擎可对所有的doc type里的字段类型重新定义,对这些字段进行归一化处理,例如,统一用小名称。
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搜索引擎和SOA 2.0(面向服务的架构)消息机制实现,是一个可扩展、高可用、高性能的分布式***。Spark利用RDD(弹性分布式数据集)分布式内存计算的优势,提高了数据读取和处理的速度。基于SOA 2.0框架,***还可提供数据查询的封装、数据排序、过滤等服务,调用方可以采用不同语言与平台进行调用,这样就彻底解除了客户端与服务端的耦合,并且很好地形成了对服务的重用,且为进一步的业务成长提供坚实的技术平台基础。
实施例2
如图2所示,本实施例的订单查询方法利用实施例1中的订单查询***实现,订单查询方法包括以下步骤:
步骤101、Spark数据抽取模块从所述至少一数据库中读取所有数据表并写入搜索引擎;
步骤102、搜索引擎对每张数据表创建一个独立的索引;
步骤103、输入模块获取查询关键词;
步骤104、搜索引擎反馈包括查询关键词的所有订单数据。
本实施例中,若订单查询***还包括Spark数据更新模块,订单查询方法还包括:
Spark数据更新模块检测数据库,并在检测到当前数据表与上一时刻的数据表存在不同的订单数据时,更新搜索引擎中对应的数据表中的订单数据。
Spark数据更新模块在检测到当前数据表中存在新增订单数据时,将新增订单数据增加至搜索引擎中对应的数据表中。
本实施例中,Spark数据抽取模块、Spark数据更新模块可设置为周期执行动作,当然不同模块执行动作的周期可以设置为相同,也可设置为不同。若订单查询***还包括调度模块,Spark数据抽取模块、Spark数据更新模块可在被调度时执行动作,具体的,调度模块在接收到调度指令时调度Spark数据抽取模块和/或Spark数据更新模块。调度模块还可在调度失败时生成报警信息。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (10)
1.一种订单查询***,其特征在于,所述订单查询***包括:
至少一数据库,每个数据库存储有至少一数据表,数据表包括订单数据;
Spark数据抽取模块,用于从所述至少一数据库中读取所有数据表并写入搜索引擎;
所述搜索引擎用于对每张数据表创建一个独立的索引;
输入模块,用于获取查询关键词;
所述搜索引擎还用于反馈包括所述查询关键词的订单数据。
2.如权利要求1所述的订单查询***,其特征在于,所述订单查询***还包括:
Spark数据更新模块,用于检测所述数据库,并在检测到当前数据表与上一时刻的数据表存在不同的订单数据时,更新所述搜索引擎中对应的数据表中的订单数据。
3.如权利要求2所述的订单查询***,其特征在于,所述Spark数据更新模块还用于在检测到当前数据表中存在新增订单数据时,将所述新增订单数据增加至所述搜索引擎中对应的数据表中。
4.如权利要求2所述的订单查询***,其特征在于,所述订单查询***还包括:
调度模块,用于在接收到调度指令时调度所述Spark数据抽取模块和/或Spark数据更新模块。
5.如权利要求4所述的订单查询***,其特征在于,所述调度模块还用于在调度失败时生成报警信息。
6.一种订单查询方法,其特征在于,所述订单查询方法利用权利要求1所述的订单查询***实现,所述订单查询方法包括以下步骤:
S1、Spark数据抽取模块从所述至少一数据库中读取所有数据表并写入搜索引擎;
S2、所述搜索引擎对每张数据表创建一个独立的索引;
S3、输入模块获取查询关键词;
S4、所述搜索引擎反馈包括所述查询关键词的订单数据。
7.如权利要求6所述的订单查询方法,其特征在于,所述订单查询***还包括Spark数据更新模块;
所述订单查询方法还包括:
Spark数据更新模块检测所述数据库,并在检测到当前数据表与上一时刻的数据表存在不同的订单数据时,更新所述搜索引擎中对应的数据表中的订单数据。
8.如权利要求7所述的订单查询方法,其特征在于,所述订单查询方法还包括:
所述Spark数据更新模块在检测到当前数据表中存在新增订单数据时,将所述新增订单数据增加至所述搜索引擎中对应的数据表中。
9.如权利要求7所述的订单查询方法,其特征在于,所述订单查询***还包括调度模块;
所述订单查询方法还包括:
调度模块在接收到调度指令时调度所述Spark数据抽取模块和/或Spark数据更新模块。
10.如权利要求9所述的订单查询方法,其特征在于,所述订单查询方法还包括:
在所述调度模块调度失败时生成报警信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710547413.5A CN107291938B (zh) | 2017-07-06 | 2017-07-06 | 订单查询***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710547413.5A CN107291938B (zh) | 2017-07-06 | 2017-07-06 | 订单查询***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107291938A true CN107291938A (zh) | 2017-10-24 |
CN107291938B CN107291938B (zh) | 2020-04-07 |
Family
ID=60099963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710547413.5A Active CN107291938B (zh) | 2017-07-06 | 2017-07-06 | 订单查询***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107291938B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108536798A (zh) * | 2018-04-02 | 2018-09-14 | 携程旅游网络技术(上海)有限公司 | 订单级别的数据库数据的恢复方法及*** |
CN109840817A (zh) * | 2017-11-27 | 2019-06-04 | 北京京东尚科信息技术有限公司 | 一种查询订单信息的方法和装置 |
CN112000669A (zh) * | 2020-08-14 | 2020-11-27 | 中科三清科技有限公司 | 一种环境监测数据的处理方法、装置、存储介质及终端 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101022577A (zh) * | 2007-01-09 | 2007-08-22 | 杨李颖 | 短信搜索方法及其*** |
CN102789487A (zh) * | 2012-06-29 | 2012-11-21 | 用友软件股份有限公司 | 数据查询检索处理装置和数据查询检索处理方法 |
CN105320754A (zh) * | 2015-10-08 | 2016-02-10 | 上海瀚银信息技术有限公司 | 一种数据搜索***及方法 |
CN105550347A (zh) * | 2015-12-25 | 2016-05-04 | 网易(杭州)网络有限公司 | 数据处理方法及装置 |
-
2017
- 2017-07-06 CN CN201710547413.5A patent/CN107291938B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101022577A (zh) * | 2007-01-09 | 2007-08-22 | 杨李颖 | 短信搜索方法及其*** |
CN102789487A (zh) * | 2012-06-29 | 2012-11-21 | 用友软件股份有限公司 | 数据查询检索处理装置和数据查询检索处理方法 |
CN105320754A (zh) * | 2015-10-08 | 2016-02-10 | 上海瀚银信息技术有限公司 | 一种数据搜索***及方法 |
CN105550347A (zh) * | 2015-12-25 | 2016-05-04 | 网易(杭州)网络有限公司 | 数据处理方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109840817A (zh) * | 2017-11-27 | 2019-06-04 | 北京京东尚科信息技术有限公司 | 一种查询订单信息的方法和装置 |
CN108536798A (zh) * | 2018-04-02 | 2018-09-14 | 携程旅游网络技术(上海)有限公司 | 订单级别的数据库数据的恢复方法及*** |
CN108536798B (zh) * | 2018-04-02 | 2020-12-01 | 携程旅游网络技术(上海)有限公司 | 订单级别的数据库数据的恢复方法及*** |
CN112000669A (zh) * | 2020-08-14 | 2020-11-27 | 中科三清科技有限公司 | 一种环境监测数据的处理方法、装置、存储介质及终端 |
CN112000669B (zh) * | 2020-08-14 | 2021-08-03 | 中科三清科技有限公司 | 一种环境监测数据的处理方法、装置、存储介质及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN107291938B (zh) | 2020-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220327137A1 (en) | Modifying field definitions to include post-processing instructions | |
CN111459985B (zh) | 标识信息处理方法及装置 | |
US8924373B2 (en) | Query plans with parameter markers in place of object identifiers | |
CN106326429A (zh) | 一种基于solr的Hbase秒级查询方案 | |
CN104899295B (zh) | 一种异构数据源数据关联分析方法 | |
US9959326B2 (en) | Annotating schema elements based on associating data instances with knowledge base entities | |
CN104102710A (zh) | 一种海量数据查询方法 | |
CN106294695A (zh) | 一种面向实时大数据搜索引擎的实现方法 | |
CN106503274A (zh) | 一种数据整合与搜索方法及服务器 | |
US10990573B2 (en) | Fast index creation system for cloud big data database | |
CN107291964A (zh) | 一种基于HBase实现模糊查询的方法 | |
CN103077192B (zh) | 一种数据处理方法及其*** | |
CN107291938A (zh) | 订单查询***及方法 | |
CN105824892A (zh) | 一种数据池对数据同步和处理的方法 | |
EP3282372B1 (en) | Method and apparatus for storing data | |
CN110019306B (zh) | 一种基于xml格式文件的sql语句查找方法及*** | |
CN109739854A (zh) | 一种数据存储方法及装置 | |
CN111259082B (zh) | 大数据环境下实现全量数据同步的方法 | |
KR101955376B1 (ko) | 비공유 아키텍처 기반의 분산 스트림 처리 엔진에서 관계형 질의를 처리하는 방법, 이를 수행하기 위한 기록 매체 및 장치 | |
CN111125045B (zh) | 一种轻量级etl处理平台 | |
US11106739B2 (en) | Document structures for searching within and across messages | |
CN107357919A (zh) | 行为日志查询***及方法 | |
US8805820B1 (en) | Systems and methods for facilitating searches involving multiple indexes | |
CN104809143A (zh) | 用于将表格信息植入信息库的方法和装置 | |
JP2004192657A (ja) | 情報検索システム、情報検索方法および情報検索用プログラムを記録した記録媒体 |
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 |