CN105354317A - 酒店的数据库的更新方法和更新系统 - Google Patents

酒店的数据库的更新方法和更新系统 Download PDF

Info

Publication number
CN105354317A
CN105354317A CN201510771514.1A CN201510771514A CN105354317A CN 105354317 A CN105354317 A CN 105354317A CN 201510771514 A CN201510771514 A CN 201510771514A CN 105354317 A CN105354317 A CN 105354317A
Authority
CN
China
Prior art keywords
state
hotel
data
module
room
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
CN201510771514.1A
Other languages
English (en)
Other versions
CN105354317B (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 Computer Technology Shanghai Co Ltd
Original Assignee
Ctrip Computer 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 Computer Technology Shanghai Co Ltd filed Critical Ctrip Computer Technology Shanghai Co Ltd
Priority to CN201510771514.1A priority Critical patent/CN105354317B/zh
Publication of CN105354317A publication Critical patent/CN105354317A/zh
Application granted granted Critical
Publication of CN105354317B publication Critical patent/CN105354317B/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/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/219Managing data history or versioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/12Hotels or restaurants

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种酒店的数据库的更新方法和更新系统,所述更新方法包括:并行加载N个对比任务内的每一酒店在所述日期中的第一状态和第二状态,并将N个对比任务内的每一酒店在所述日期中的第一状态和第二状态作为一房态对比数据;并行判断所述房态对比数据是否与一数据库中存储的房态对比数据不同,并在所述第一状态发生变化,和/或,所述第二状态发生变化时将状态发生变化了的房态对比数据在所述数据库里做并行更新;本发明以多线程的方式并行执行,能够避免产生对比任务的积压,缩短了对比任务的执行时长,能够保持实时的对比速度以及时更新房态对比数据,且仅对状态产生变化的酒店内的房型在数据库里更新,减少了对数据库的IO消耗。

Description

酒店的数据库的更新方法和更新系统
技术领域
本发明涉及一种酒店的数据库的更新方法和更新系统。
背景技术
随着酒店行业的兴起,酒店内的住房在各大网站上的售卖情况互不相同,通常,酒店内的住房除了在线下售卖外,还会将酒店内的住房发布至各大OTA(OnlineTravelAgent,在线旅游社)上进行线上售卖。为了将OTA内的酒店的住房的售卖信息与其它OTA上的酒店的住房的售卖信息及时做对比,从而更好地为OTA服务。现有技术中通常采用逐一对比的方式进行对比,然而,各OTA上需对比的酒店内的住房信息量很大,逐一对比的方式不仅会产生数据对比任务的排队延迟,对比任务的积压,使得在OTA内酒店的住房的信息变更时,不能达到对比数据的及时更新,还会造成对原有数据库访问量大大增大,导致数据库堵塞。可见,现有技术无法对酒店内的数据库内的对比数据及时更新,且对数据库的IO(Input/Output,输入/输出)消耗很大。
发明内容
本发明要解决的技术问题是为了克服现有技术的酒店内的数据库内的对比数据无法及时更新,且对数据库的IO消耗很大的缺陷,提供一种酒店的数据库的更新方法和更新系统。
本发明是通过下述技术方案来解决上述技术问题的:
一种酒店的数据库的更新方法,其特点在于,所述更新方法以多线程方式执行,每一酒店的房态在一第一OTA上的状态为第一状态,每一酒店的房态在一第二OTA上的状态为第二状态,以一酒店和一日期作为一个对比任务,所述对比任务的数量为N,N大于或等于1,所述更新方法包括:
S1、并行加载N个对比任务内的每一酒店在所述日期中的第一状态和第二状态,并将N个对比任务内的每一酒店在所述日期中的第一状态和第二状态作为一房态对比数据;
S2、并行判断所述房态对比数据是否与一数据库中存储的房态对比数据不同,并在所述第一状态发生变化,和/或,所述第二状态发生变化时执行步骤S3
S3、将状态发生变化了的房态对比数据在所述数据库里做并行更新;
其中,所述第一状态和所述第二状态均包括酒店内的房型的数量、酒店内的房型的价格和酒店内的房型的服务。
在本方案中,多个对比任务的情形可为多个酒店在同一日期中的状态进行的对比,也可为一个酒店在多个日期中的状态的对比,还可为多个酒店在多个日期中的状态的对比。本发明以多线程的方式并行执行,能够避免产生对比任务的积压,缩短了对比任务的执行时长,能够保持实时的对比速度,且仅对状态产生变化的酒店内的房型在数据库里更新,减少了对数据库的IO消耗。
较佳地,步骤S1包括:
S11、从分布式缓存中并行加载N个对比任务内的每一酒店在所述日期中的第一状态,从爬虫数据库中并行加载N个对比任务内的每一酒店在所述日期中的第二状态;
S12、将每一酒店的第一状态和第二状态存储至本地,并将N个对比任务内的每一酒店在所述日期中的第一状态和第二状态作为房态对比数据。
其中,从分布式缓存中加载第一状态和从爬虫数据库中加载第二状态,能够快速获得每一对比任务中的酒店内的住房的第一状态和第二状态。
较佳地,步骤S3包括:
S31、将同一酒店内的同一房型在价格或服务上发生变化的房态对比数据放入更新队列,将同一酒店内新增的房型形成的房态对比数据放入插入队列,将同一酒店内减少的房型形成的房态对比数据放入删除队列;
S32、并行将所述更新队列、所述插入队列和所述删除队列中的房态对比数据提交至所述数据库中。
较佳地,以Cc表示所述第一OTA存储的国内所有城市的ID的集合,以Hc表示所述第一OTA存储的国内所有酒店的ID的集合,步骤S11中所述分布式缓存的形成方法包括:
S111、对该些城市的ID进行分组,并将每组中各城市在所述第一OTA内的所有酒店的ID存储至Hc中;
S112、以Hc为循环条件,并行缓存每一酒店的第一状态至所述分布式缓存中。
较佳地,步骤S1之前包括:
S101、建立每一酒店的第一状态和第二状态的匹配关系数据表,所述匹配关系数据表包括主键ID和与主键ID一一对应的匹配关系数据,所述匹配关系数据包括每一酒店内的每一房型在所述第一OTA上和所述第二OTA上对应的第一状态和第二状态之间的对应关系;
S102、将当前时刻的所述匹配关系数据表的主键ID全量存储到集合A中,并与缓存中存储的所述匹配关系数据表的主键ID对比;
S103、将不同的主键ID对应的匹配关系数据更新至缓存中。
也即,对于房态对比数据进行对比时,其必然要依托于第一OTA,第二OTA,第一OTA内的酒店的ID以及第二OTA内的酒店的ID四者之间形成的对应关系,从而查找到同一酒店内的房型的状态数据的对应关系,以作对比。而这样的对应关系能够保证最终获得的同一酒店内的房型的第一状态和第二状态的数据是相对可靠的。
较佳地,步骤S103包括:
将缓存中存储有但当前时刻集合A未存储的主键ID所对应匹配关系数据从所述缓存中删除,将缓存中未存储有但当前时刻集合A存储的主键ID所对应匹配关系数据增加至所述缓存中。
本发明还提供一种酒店的数据库的更新系统,其特点在于,所述更新系统以多线程方式执行,每一酒店的房态在一第一OTA上的状态为第一状态,每一酒店的房态在一第二OTA上的状态为第二状态,以一酒店和一日期作为一个对比任务,所述对比任务的数量为N,N大于或等于1,所述更新系统包括一加载模块、一判断模块和一更新模块;
所述加载模块用于并行加载N个对比任务内的每一酒店在所述日期中的第一状态和第二状态,并将N个对比任务内的每一酒店在所述日期中的第一状态和第二状态作为一房态对比数据;
所述判断模块用于并行判断所述房态对比数据是否与一数据库中存储的房态对比数据不同,并在所述第一状态发生变化,和/或,所述第二状态发生变化时调用所述更新模块;
所述更新模块用于将状态发生变化了的房态对比数据在所述数据库里做并行更新;
其中,所述第一状态和所述第二状态均包括酒店内的房型的数量、酒店内的房型的价格和酒店内的房型的服务。
较佳地,所述加载模块包括一状态加载模块和一本地存储模块;
所述状态加载模块用于从分布式缓存中并行加载N个对比任务内的每一酒店在所述日期中的第一状态,从爬虫数据库中并行加载N个对比任务内的每一酒店在所述日期中的第二状态;
所述本地存储模块用于将每一酒店的第一状态和第二状态存储至本地,并将N个对比任务内的每一酒店在所述日期中的第一状态和第二状态作为房态对比数据。
较佳地,所述更新模块包括一队列暂存模块和一提交模块;
所述队列暂存模块用于将同一酒店内的同一房型在价格或服务上发生变化的房态对比数据放入更新队列,将同一酒店内新增的房型形成的房态对比数据放入插入队列,将同一酒店内减少的房型形成的房态对比数据放入删除队列;
所述提交模块用于并行将所述更新队列、所述插入队列和所述删除队列中的房态对比数据提交至所述数据库中。
较佳地,以Cc表示所述第一OTA存储的国内所有城市的ID的集合,以Hc表示所述第一OTA存储的国内所有酒店的ID的集合,所述更新系统还包括一分组模块和一缓存模块;
所述分组模块用于对该些城市的ID进行分组,并将每组中各城市在所述第一OTA内的所有酒店的ID存储至Hc中;
所述缓存模块用于以Hc为循环条件,并行缓存每一酒店的第一状态以形成所述分布式缓存。
较佳地,所述更新系统还包括一建表模块、一ID对比模块和一匹配关系数据缓存模块;
所述建表模块用于建立每一酒店的第一状态和第二状态的匹配关系数据表,所述匹配关系数据表包括主键ID和与主键ID一一对应的匹配关系数据,所述匹配关系数据包括每一酒店内的每一房型在所述第一OTA上和所述第二OTA上对应的第一状态和第二状态之间的对应关系;
所述ID对比模块用于将当前时刻的所述匹配关系数据表的主键ID全量存储到集合A中,并与缓存中存储的所述匹配关系数据表的主键ID对比;
所述匹配关系数据缓存模块用于将不同的主键ID对应的匹配关系数据更新至所述缓存中。
较佳地,所述匹配关系数据缓存模块还用于将缓存中存储有但当前时刻集合A未存储的主键ID所对应匹配关系数据从所述缓存中删除,将缓存中未存储有但当前时刻集合A存储的主键ID所对应匹配关系数据增加至所述缓存中。
本发明的积极进步效果在于:本发明以多线程的方式并行执行,能够避免产生对比任务的积压,缩短了对比任务的执行时长,能够保持实时的对比速度以及时更新房态对比数据,且仅对状态产生变化的酒店内的房型在数据库里更新,减少了对数据库的IO消耗。
附图说明
图1为本发明实施例1在硬件配置上的结构示意图。
图2为本发明实施例1的酒店的数据库的更新方法流程图。
图3为本发明实施例2中分布式缓存的形成方法的流程图。
图4为本发明实施例3的酒店的数据库的更新方法流程图。
图5为本发明实施例4的酒店的数据库的更新系统采用实施例1的更新方法的结构示意图。
图6为本发明实施例4的酒店的数据库的更新系统采用实施例2的更新方法的结构示意图。
图7为本发明实施例4的酒店的数据库的更新系统采用实施例3的更新方法的结构示意图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
本实施例提供一种酒店的数据库的更新方法,所述更新方法以多线程方式执行,每一酒店的房态在一第一OTA上的状态为第一状态,每一酒店的房态在一第二OTA上的状态为第二状态,所述第一状态和所述第二状态均包括酒店内的房型的数量、酒店内的房型的价格和酒店内的房型的服务,针对酒店内的房型的价格,可做更细的划分,如包括最低价,最高价,预付的价格或现付的价格等,本实施例仅以一个价格做举例说明。
本实施例的房型的服务包括酒店内的住房是否提供早餐,酒店内的住房是否赠送礼盒,酒店内的住房的支付类型是否支持到店付款,而酒店内的房型的服务可针对所有房型所附带的服务,也可针对某一房型所附带的服务,本实施例以所有房型所附带的服务举例。
以一酒店和一日期作为一个对比任务,该日期可为具体某一天,也可为某一天的具体时间点,所述对比任务的数量为N,N大于或等于1,本实施例的N取为10000。本实施例的多个对比任务是以多个酒店内的住房在一个日期内的状态的数据对比,而10000家酒店可以是相同名称的酒店位于不同的地理位置,也可以是不同名称的酒店位于不同的地理位置,所形成的总的酒店数量。
在硬件上的配置可为:四台服务器,分别以Server1,Server2,Server3,Server4表示,Server1至Server4上总共执行10000家酒店内的住房的状态数据的对比。Server1上执行的2500个对比任务表示为T1-T2500,Server2上执行的2500个对比任务表示为T2501-T5000,Server3执行的2500个对比任务表示为T5001-T7500,Server4执行的2500个对比任务表示为T7500-T10000。如图1所示,10000个对比任务进入对比任务队列,并通过任务调度器调度分配至各服务器以多线程方式执行,Server1,Server2,Server3和Server4构成服务器集群,Server1,Server2,Server3,Server4执行并行加载、判断的操作,并将结果提交至数据库中。
以其中一酒店名称为布丁酒店为例,该酒店内的房型包括单床房(用B1表示)、大床房(用B2表示)和标准房(用B3表示)三个房型,本实施例的第一OTA以携程网为例,第二OTA以去哪儿网为例,以布丁酒店在携程网上日期为2015-10-20售卖的住房的状态为第一状态,以布丁酒店在去哪儿网上日期为2015-10-20售卖的住房的状态为第二状态。
如图2所示,所述更新方法包括:
步骤101、并行加载N个对比任务内的每一酒店在所述日期中的第一状态和第二状态,并将N个对比任务内的每一酒店在所述日期中的第一状态和第二状态作为一房态对比数据;
具体地,从分布式缓存中并行加载10000个对比任务内的每一酒店在所述日期中的第一状态,从爬虫数据库中并行加载10000个对比任务内的每一酒店在所述日期中的第二状态;也即,将Server1,Server2,Server3和Server4上各自分配的2500个对比任务分别拆分成25组数据,每组负责100个酒店的数据的加载,开启多个线程来并行加载各自分配的25组数据,线程数的多少可通过参数进行配置。
其中,分布式缓存是指由一个服务端实现管理和控制,由多个客户端节点存储数据,可以进一步提高数据的读取速率。通过将数据源存储至分布式缓存中,在读取数据时直接读取分布式缓存中的数据,一方面减少了读取存储数据源的数据库的次数,另一方面,也提高了读取数据源的速度。而爬虫数据库是通过爬虫的方式从网页上抓取数据,并将抓取到的数据存储至数据库中而形成的数据库,为了保证对比数据的及时性和准确性,本实施例可定时或周期性地抓取去哪儿网上的数据以作对比。
将每一酒店的第一状态和第二状态存储至本地,并将10000个对比任务内的每一酒店在所述日期中的第一状态和第二状态作为房态对比数据。针对布丁酒店在日期为2015-10-20的房态对比数据如表1所示:
表1布丁酒店在携程网和去哪儿网上的房态对比数据
则本实施例将会加载10000条如表1所示的房态对比数据。而为了使得房态对比数据及时更新,在日期为2015-10-20中取多个时刻点来监测房态对比数据的更新,以保证一天中的房态对比数据是及时有效的。因此,假设表1中加载的数据是2015-10-20号上午7:00时加载的数据。
步骤102、并行判断所述房态对比数据是否与一数据库中存储的房态对比数据不同,并在所述第一状态发生变化,和/或,所述第二状态发生变化时执行步骤103;
同理,将Server1,Server2,Server3和Server4上各自分配的2500个对比任务分别拆分成25组数据,每组负责100个酒店的数据的加载,开启多个线程来并行判断各自分配的25组数据。其中,第一状态的变化可为携程网内部对布丁酒店内的住房的售卖信息做的调整,第二状态的变化可为去哪儿网内部对布丁酒店内的住房的售卖信息做的调整,第一状态和第二状态的变化还可为布丁酒店的官方网站上的住房的售卖信息的变化而推送至第一OTA(即携程网)和第二OTA(即去哪儿网)上所产生的变化。
假设该数据库中刚开始存储的内容为空,则上午7:00中加载的10000条房态对比数据会直接写入所述数据库中。之后,在下午19:00时再监测一次房态对比数据,由于布丁酒店官网推送的酒店的信息取消了单床房(即B1)的售卖,同时增加了房型为商务房(用B4表示)的售卖,价格为400,而去哪儿网内部调整了布丁酒店的大床房(即B2)的价格,调整为500。因此,针对布丁酒店在日期为2015-10-20下午19:00时的房态对比数据如表2所示:
表2布丁酒店在2015-10-20下午19:00时携程网和去哪儿网形成的房态对比数据
与所述数据库中存储的房态对比数据进行对比时,可将数据库中存储的上一次更新了的房态对比数据也加载到本地中,以在本地进行对比,并仅将异同数据在数据库里更新,以进一步减少对原有数据库的IO消耗。对于一个房态对比数据的异同判断,则为表2的数据与表1的房态对比数据进行对比,而本实施例中执行的1000条房态对比数据的对比,则是通过不断拆分的多个线程来并行对比的。在对比后,发现在房型的数量上,下午19:00时的房型为B2,B3,B4,B2的价格在第二OTA上从180变为500,而上午7:00时的房型为B1,B2,B3。可见,两次的数据变化主要表现在房型的增减和房型的价格的变化,而房型的服务未发生变化。
步骤103、将状态发生变化了的房态对比数据在所述数据库里做并行更新;
具体地,将同一酒店内的同一房型在价格或服务上发生变化的房态对比数据放入更新队列,将同一酒店内新增的房型形成的房态对比数据放入插入队列,将同一酒店内减少的房型形成的房态对比数据放入删除队列;
也即,将增加的房型B4放入插入队列,将减少的房型放入B1放入删除队列,将房型B2的价格在去哪儿网上的变化放入更新队列。
并行将所述更新队列、所述插入队列和所述删除队列中的房态对比数据提交至所述数据库中。
以上仅示意了一个对比任务执行对比的情况,对于10000个对比任务执行对比的情况,与举例的布丁酒店进行对比的情况方法相同。
本实施例由于仅对状态发生变化了的酒店内的房型在数据库里做更新,因此,减少了对原有数据库的IO消耗,且,通过多线程的方式来并行执行加载、判断以及更新,能够避免产生对比任务的积压,缩短了对比任务的执行时长,且能保持实时的对比速度并及时更新对比数据。
实施例2
本实施例提供一种酒店的数据库的更新方法,如图3所示,本实施例与实施例1的区别在于:本实施例中分布式缓存的形成方法包括步骤111和步骤112。
以Cc表示所述第一OTA存储的国内所有城市的ID的集合,以Hc表示所述第一OTA存储的国内所有酒店的ID的集合。
步骤111、对该些城市的ID进行分组,并将每组中各城市在所述第一OTA内的所有酒店的ID存储至Hc中;
如,若第一OTA服务的城市有20个,该20个城市的ID分别用00-20表示,可采用取余的方式进行分组,将该些城市的ID号与3取余,余数为0,1或2的分别为一组,也即,城市ID号为03,06,09,12,15,18的构成一组,城市ID号为01,04,07,10,13,16,19的构成一组,城市ID号为02,05,08,11,14,17,20的构成一组。
步骤112、以Hc为循环条件,并行缓存每一酒店的第一状态至所述分布式缓存中。
而若第一OTA服务的国内所有酒店的数量为10000家,该10000家酒店分布于每组城市中的各城市内,最终以分组的城市内的总的酒店ID的数量进行循环缓存,获得的各酒店内的住房的状态存储至分布式缓存中,以供对比时调用。
本实施例在达到实施例1的效果的同时,将数据源存储至分布式缓存中时,能够在房态对比数据进行对比时,直接从该分布式缓存中加载数据,提高获取数据源的速度,进一步提高了房态对比数据的对比速度和更新速度。
实施例3
本实施例提供一种酒店的数据库的更新方法,如图4所示,本实施例与实施例1的区别在于:步骤101之前包括:
步骤100a、建立每一酒店的第一状态和第二状态的匹配关系数据表,所述匹配关系数据表包括主键ID和与主键ID一一对应的匹配关系数据,所述匹配关系数据包括每一酒店内的每一房型在所述第一OTA上和所述第二OTA上对应的第一状态和第二状态之间的对应关系;
步骤100b、将当前时刻的所述匹配关系数据表的主键ID全量存储到集合A中,并与缓存中存储的所述匹配关系数据表的主键ID对比;
步骤100c、将不同的主键ID对应的匹配关系数据更新至缓存中。
具体地,将缓存中存储有但当前时刻集合A未存储的主键ID所对应匹配关系数据从所述缓存中删除,将缓存中未存储有但当前时刻集合A存储的主键ID所对应匹配关系数据增加至所述缓存中。
也即,对于房态对比数据进行对比时,其必然要依托于第一OTA,第二OTA,第一OTA内的酒店的ID以及第二OTA内的酒店的ID四者之间形成的对应关系,从而查找到同一酒店内的房型的状态数据的对应关系,以作对比。而这样的对应关系能够保证最终获得的同一酒店内的房型的第一状态和第二状态的数据是相对可靠的。
匹配关系数据实际上也是第一OTA-第一OTA内的酒店的ID-第二OTA-第二OTA内的酒店的ID的对应关系,对于以单个数据表的形式来存储的多个酒店内的房价,由于酒店ID必然是与酒店内的房型相关联的,因此可依据该匹配关系数据查找到该数据表内酒店内的每一房型在第一OTA内的售卖信息和在第二OTA上的售卖信息,从而实现房态对比数据的对比,进一步提高了对比数据的可靠性。
实施例4
本实施例提供一种酒店的数据库的更新系统,如图5所示,所述更新系统以多线程方式执行,每一酒店的房态在一第一OTA上的状态为第一状态,每一酒店的房态在一第二OTA上的状态为第二状态,以一酒店和一日期作为一个对比任务,所述对比任务的数量为N,N大于或等于1,所述更新系统包括一加载模块1、一判断模块2和一更新模块3;
所述加载模块1用于并行加载N个对比任务内的每一酒店在所述日期中的第一状态和第二状态,并将N个对比任务内的每一酒店在所述日期中的第一状态和第二状态作为一房态对比数据;
具体地,所述加载模块1包括一状态加载模块11和一本地存储模块12;
所述状态加载模块11用于从分布式缓存中并行加载N个对比任务内的每一酒店在所述日期中的第一状态,从爬虫数据库中并行加载N个对比任务内的每一酒店在所述日期中的第二状态;
所述本地存储模块12用于将每一酒店的第一状态和第二状态存储至本地,并将N个对比任务内的每一酒店在所述日期中的第一状态和第二状态作为房态对比数据。
所述判断模块2用于并行判断所述房态对比数据是否与一数据库中存储的房态对比数据不同,并在所述第一状态发生变化,和/或,所述第二状态发生变化时调用所述更新模块;
所述更新模块3用于将状态发生变化了的房态对比数据在所述数据库里做并行更新;
具体地,所述更新模块3包括一队列暂存模块31和一提交模块32;
所述队列暂存模块31用于将同一酒店内的同一房型在价格或服务上发生变化的房态对比数据放入更新队列,将同一酒店内新增的房型形成的房态对比数据放入插入队列,将同一酒店内减少的房型形成的房态对比数据放入删除队列;
所述提交模块32用于并行将所述更新队列、所述插入队列和所述删除队列中的房态对比数据提交至所述数据库中。
其中,所述第一状态和所述第二状态均包括酒店内的房型的数量、酒店内的房型的价格和酒店内的房型的服务。
本实施例的更新系统可采用既可以采用上述实施例1-3中任意一更新方法进行工作,在不产生矛盾的情况下,也可采用实施例1-3的技术方案的任意组合,或者本发明保护的技术方案的任何组合进行工作,其不限制本发明的保护范围。
当采用实施例1的更新方法进行工作时,减少了对原有数据库的IO消耗,且,通过多线程的方式来并行执行加载、判断以及更新,能够避免产生对比任务的积压,缩短了对比任务的执行时长,且能保持实时的对比速度并及时更新对比数据。
当采用实施例2的更新方法进行工作时,如图6所示,所述更新系统还包括一分组模块4和一缓存模块5;
所述分组模块4用于对该些城市的ID进行分组,并将每组中各城市在所述第一OTA内的所有酒店的ID存储至Hc中;
所述缓存模块5用于以Hc为循环条件,并行缓存每一酒店的第一状态以形成所述分布式缓存。
获得的技术效果为:提高获取数据源的速度,进一步提高了房态对比数据的对比速度和更新速度。
当采用实施例3的更新方法进行工作时,如图7所示,所述更新系统还包括一建表模块6、一ID对比模块7和一匹配关系数据缓存模块8;
所述建表模块6用于建立每一酒店的第一状态和第二状态的匹配关系数据表,所述匹配关系数据表包括主键ID和与主键ID一一对应的匹配关系数据,所述匹配关系数据包括每一酒店内的每一房型在所述第一OTA上和所述第二OTA上对应的第一状态和第二状态之间的对应关系;
所述ID对比模块7用于将当前时刻的所述匹配关系数据表的主键ID全量存储到集合A中,并与缓存中存储的所述匹配关系数据表的主键ID对比;
所述匹配关系数据缓存模块8用于将不同的主键ID对应的匹配关系数据更新至所述缓存中。
具体地,所述匹配关系数据缓存模块8还用于将缓存中存储有但当前时刻集合A未存储的主键ID所对应匹配关系数据从所述缓存中删除,将缓存中未存储有但当前时刻集合A存储的主键ID所对应匹配关系数据增加至所述缓存中。
获得的技术效果为:进一步提高了对比数据的可靠性。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

Claims (12)

1.一种酒店的数据库的更新方法,其特征在于,所述更新方法以多线程方式执行,每一酒店的房态在一第一OTA上的状态为第一状态,每一酒店的房态在一第二OTA上的状态为第二状态,以一酒店和一日期作为一个对比任务,所述对比任务的数量为N,N大于或等于1,所述更新方法包括:
S1、并行加载N个对比任务内的每一酒店在所述日期中的第一状态和第二状态,并将N个对比任务内的每一酒店在所述日期中的第一状态和第二状态作为一房态对比数据;
S2、并行判断所述房态对比数据是否与一数据库中存储的房态对比数据不同,并在所述第一状态发生变化,和/或,所述第二状态发生变化时执行步骤S3
S3、将状态发生变化了的房态对比数据在所述数据库里做并行更新;
其中,所述第一状态和所述第二状态均包括酒店内的房型的数量、酒店内的房型的价格和酒店内的房型的服务。
2.如权利要求1所述的更新方法,其特征在于,步骤S1包括:
S11、从分布式缓存中并行加载N个对比任务内的每一酒店在所述日期中的第一状态,从爬虫数据库中并行加载N个对比任务内的每一酒店在所述日期中的第二状态;
S12、将每一酒店的第一状态和第二状态存储至本地,并将N个对比任务内的每一酒店在所述日期中的第一状态和第二状态作为房态对比数据。
3.如权利要求1或2所述的更新方法,其特征在于,步骤S3包括:
S31、将同一酒店内的同一房型在价格或服务上发生变化的房态对比数据放入更新队列,将同一酒店内新增的房型形成的房态对比数据放入插入队列,将同一酒店内减少的房型形成的房态对比数据放入删除队列;
S32、并行将所述更新队列、所述插入队列和所述删除队列中的房态对比数据提交至所述数据库中。
4.如权利要求2所述的更新方法,其特征在于,以Cc表示所述第一OTA存储的国内所有城市的ID的集合,以Hc表示所述第一OTA存储的国内所有酒店的ID的集合,步骤S11中所述分布式缓存的形成方法包括:
S111、对该些城市的ID进行分组,并将每组中各城市在所述第一OTA内的所有酒店的ID存储至Hc中;
S112、以Hc为循环条件,并行缓存每一酒店的第一状态至所述分布式缓存中。
5.如权利要求1所述的更新方法,其特征在于,步骤S1之前包括:
S101、建立每一酒店的第一状态和第二状态的匹配关系数据表,所述匹配关系数据表包括主键ID和与主键ID一一对应的匹配关系数据,所述匹配关系数据包括每一酒店内的每一房型在所述第一OTA上和所述第二OTA上对应的第一状态和第二状态之间的对应关系;
S102、将当前时刻的所述匹配关系数据表的主键ID全量存储到集合A中,并与缓存中存储的所述匹配关系数据表的主键ID对比;
S103、将不同的主键ID对应的匹配关系数据更新至缓存中。
6.如权利要求5所述的更新方法,其特征在于,步骤S103包括:
将缓存中存储有但当前时刻集合A未存储的主键ID所对应匹配关系数据从所述缓存中删除,将缓存中未存储有但当前时刻集合A存储的主键ID所对应匹配关系数据增加至所述缓存中。
7.一种酒店的数据库的更新系统,其特征在于,所述更新系统以多线程方式执行,每一酒店的房态在一第一OTA上的状态为第一状态,每一酒店的房态在一第二OTA上的状态为第二状态,以一酒店和一日期作为一个对比任务,所述对比任务的数量为N,N大于或等于1,所述更新系统包括一加载模块、一判断模块和一更新模块;
所述加载模块用于并行加载N个对比任务内的每一酒店在所述日期中的第一状态和第二状态,并将N个对比任务内的每一酒店在所述日期中的第一状态和第二状态作为一房态对比数据;
所述判断模块用于并行判断所述房态对比数据是否与一数据库中存储的房态对比数据不同,并在所述第一状态发生变化,和/或,所述第二状态发生变化时调用所述更新模块;
所述更新模块用于将状态发生变化了的房态对比数据在所述数据库里做并行更新;
其中,所述第一状态和所述第二状态均包括酒店内的房型的数量、酒店内的房型的价格和酒店内的房型的服务。
8.如权利要求7所述的更新系统,其特征在于,所述加载模块包括一状态加载模块和一本地存储模块;
所述状态加载模块用于从分布式缓存中并行加载N个对比任务内的每一酒店在所述日期中的第一状态,从爬虫数据库中并行加载N个对比任务内的每一酒店在所述日期中的第二状态;
所述本地存储模块用于将每一酒店的第一状态和第二状态存储至本地,并将N个对比任务内的每一酒店在所述日期中的第一状态和第二状态作为房态对比数据。
9.如权利要求7或8所述的更新系统,其特征在于,所述更新模块包括一队列暂存模块和一提交模块;
所述队列暂存模块用于将同一酒店内的同一房型在价格或服务上发生变化的房态对比数据放入更新队列,将同一酒店内新增的房型形成的房态对比数据放入插入队列,将同一酒店内减少的房型形成的房态对比数据放入删除队列;
所述提交模块用于并行将所述更新队列、所述插入队列和所述删除队列中的房态对比数据提交至所述数据库中。
10.如权利要求8所述的更新系统,其特征在于,以Cc表示所述第一OTA存储的国内所有城市的ID的集合,以Hc表示所述第一OTA存储的国内所有酒店的ID的集合,所述更新系统还包括一分组模块和一缓存模块;
所述分组模块用于对该些城市的ID进行分组,并将每组中各城市在所述第一OTA内的所有酒店的ID存储至Hc中;
所述缓存模块用于以Hc为循环条件,并行缓存每一酒店的第一状态以形成所述分布式缓存。
11.如权利要求8所述的更新系统,其特征在于,所述更新系统还包括一建表模块、一ID对比模块和一匹配关系数据缓存模块;
所述建表模块用于建立每一酒店的第一状态和第二状态的匹配关系数据表,所述匹配关系数据表包括主键ID和与主键ID一一对应的匹配关系数据,所述匹配关系数据包括每一酒店内的每一房型在所述第一OTA上和所述第二OTA上对应的第一状态和第二状态之间的对应关系;
所述ID对比模块用于将当前时刻的所述匹配关系数据表的主键ID全量存储到集合A中,并与缓存中存储的所述匹配关系数据表的主键ID对比;
所述匹配关系数据缓存模块用于将不同的主键ID对应的匹配关系数据更新至所述缓存中。
12.如权利要求11所述的更新系统,其特征在于,所述匹配关系数据缓存模块还用于将缓存中存储有但当前时刻集合A未存储的主键ID所对应匹配关系数据从所述缓存中删除,将缓存中未存储有但当前时刻集合A存储的主键ID所对应匹配关系数据增加至所述缓存中。
CN201510771514.1A 2015-11-12 2015-11-12 酒店的数据库的更新方法和更新系统 Active CN105354317B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510771514.1A CN105354317B (zh) 2015-11-12 2015-11-12 酒店的数据库的更新方法和更新系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510771514.1A CN105354317B (zh) 2015-11-12 2015-11-12 酒店的数据库的更新方法和更新系统

Publications (2)

Publication Number Publication Date
CN105354317A true CN105354317A (zh) 2016-02-24
CN105354317B CN105354317B (zh) 2019-03-12

Family

ID=55330289

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510771514.1A Active CN105354317B (zh) 2015-11-12 2015-11-12 酒店的数据库的更新方法和更新系统

Country Status (1)

Country Link
CN (1) CN105354317B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106095877A (zh) * 2016-06-07 2016-11-09 中国建设银行股份有限公司 一种红包数据处理方法和装置
CN109784648A (zh) * 2018-12-14 2019-05-21 北京三快在线科技有限公司 调度资源分配方法、装置、电子设备及可读存储介质
CN111143326A (zh) * 2019-12-26 2020-05-12 深圳前海环融联易信息科技服务有限公司 减少数据库操作的方法、装置、计算机设备及存储介质
CN111275585A (zh) * 2020-02-25 2020-06-12 丁玲 一种基于多因素的酒店数据更新系统及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120059693A1 (en) * 2010-09-02 2012-03-08 Brian Colodny System and method for inventory and return of lost items
CN103345383A (zh) * 2013-06-28 2013-10-09 北京航天金盾科技有限公司 一种多线程数据比对方法和装置
CN104778637A (zh) * 2014-01-10 2015-07-15 携程计算机技术(上海)有限公司 酒店数据的处理系统及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120059693A1 (en) * 2010-09-02 2012-03-08 Brian Colodny System and method for inventory and return of lost items
CN103345383A (zh) * 2013-06-28 2013-10-09 北京航天金盾科技有限公司 一种多线程数据比对方法和装置
CN104778637A (zh) * 2014-01-10 2015-07-15 携程计算机技术(上海)有限公司 酒店数据的处理系统及方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106095877A (zh) * 2016-06-07 2016-11-09 中国建设银行股份有限公司 一种红包数据处理方法和装置
CN109784648A (zh) * 2018-12-14 2019-05-21 北京三快在线科技有限公司 调度资源分配方法、装置、电子设备及可读存储介质
CN111143326A (zh) * 2019-12-26 2020-05-12 深圳前海环融联易信息科技服务有限公司 减少数据库操作的方法、装置、计算机设备及存储介质
CN111143326B (zh) * 2019-12-26 2023-08-18 深圳前海环融联易信息科技服务有限公司 减少数据库操作的方法、装置、计算机设备及存储介质
CN111275585A (zh) * 2020-02-25 2020-06-12 丁玲 一种基于多因素的酒店数据更新系统及方法
CN111275585B (zh) * 2020-02-25 2021-05-14 上海贤旅网络科技有限公司 一种基于多因素的酒店数据更新系统及方法

Also Published As

Publication number Publication date
CN105354317B (zh) 2019-03-12

Similar Documents

Publication Publication Date Title
US8555018B1 (en) Techniques for storing data
US9898522B2 (en) Distributed storage of aggregated data
CN105468473B (zh) 数据迁移方法及数据迁移装置
CN103246612B (zh) 一种数据缓存的方法及装置
CN103473365B (zh) 一种基于hdfs的文件存储方法、装置及分布式文件系统
US11934306B2 (en) Object storage change-events
CN107766402A (zh) 一种楼盘字典云房源大数据平台
CN109558234A (zh) 一种定时任务调度方法和装置
CN105354317A (zh) 酒店的数据库的更新方法和更新系统
CN106255967A (zh) 分布式存储系统中的命名空间管理
CN103177059A (zh) 用于数据库计算引擎的分离处理路径
CN104050250A (zh) 一种分布式键-值查询方法和查询引擎系统
CN106407207A (zh) 一种实时新增数据更新方法和装置
CN102236580B (zh) 为etl任务分配节点的方法和调度系统
US9158768B2 (en) System and methods to configure a query language using an operator dictionary
CN110910203A (zh) 一种商品页面的内容展示方法及装置
CN111563125B (zh) 数据存储系统、数据查询方法及装置
US20120191639A1 (en) Statistics forecast for range partitioned tables
US9292405B2 (en) HANA based multiple scenario simulation enabling automated decision making for complex business processes
CN104850627A (zh) 进行分页展示的方法及装置
CN111985862A (zh) 定位库存物品的方法和装置
CN113760513A (zh) 一种分布式任务调度方法、装置、设备和介质
CN107491549A (zh) 一种数据处理方法及系统
CN101187884A (zh) 资源管理方法和资源管理系统
CN115292414A (zh) 一种业务数据同步到数仓的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant