CN107291938A - 订单查询***及方法 - Google Patents

订单查询***及方法 Download PDF

Info

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
Application number
CN201710547413.5A
Other languages
English (en)
Other versions
CN107291938B (zh
Inventor
金丽丽
苏达鼐
张威力
谭宇阳
马涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ctrip Travel Network Technology Shanghai Co Ltd
Original Assignee
Ctrip Travel Network Technology Shanghai Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ctrip Travel Network Technology Shanghai Co Ltd filed Critical Ctrip Travel Network Technology Shanghai Co Ltd
Priority to CN201710547413.5A priority Critical patent/CN107291938B/zh
Publication of CN107291938A publication Critical patent/CN107291938A/zh
Application granted granted Critical
Publication of CN107291938B publication Critical patent/CN107291938B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, 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所述的订单查询方法,其特征在于,所述订单查询方法还包括:
在所述调度模块调度失败时生成报警信息。
CN201710547413.5A 2017-07-06 2017-07-06 订单查询***及方法 Active CN107291938B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 网易(杭州)网络有限公司 数据处理方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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