CN118159993A - 基于键的产品购买的处置 - Google Patents
基于键的产品购买的处置 Download PDFInfo
- Publication number
- CN118159993A CN118159993A CN202280072099.9A CN202280072099A CN118159993A CN 118159993 A CN118159993 A CN 118159993A CN 202280072099 A CN202280072099 A CN 202280072099A CN 118159993 A CN118159993 A CN 118159993A
- Authority
- CN
- China
- Prior art keywords
- file
- key
- data
- database
- product
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 53
- 230000004044 response Effects 0.000 claims abstract description 13
- 230000006835 compression Effects 0.000 claims description 8
- 238000007906 compression Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 8
- 230000008859 change Effects 0.000 claims description 4
- 238000013507 mapping Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 abstract description 5
- 238000004891 communication Methods 0.000 abstract description 2
- 239000000047 product Substances 0.000 description 77
- 230000008569 process Effects 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 5
- 239000007795 chemical reaction product Substances 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 239000000872 buffer Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000004308 accommodation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000036962 time dependent Effects 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
Abstract
提出了一种处置产品购买的数据库系统、方法和计算机程序产品,其中数据库系统包括存储多个产品的关系数据的关系数据库、存储多个第一文件和多个第二文件的键‑值数据库、连接关系数据库与键‑值数据库的接口模块,以及与键‑值数据库通信的购物引擎。接口模块将存储在关系数据库中的关系数据转换成第一文件和第二文件。购物引擎查询键‑值数据库以响应于可用性请求而检索可用产品。
Description
技术领域
本发明一般而言涉及使用大型数据库系统进行产品购买的计算机化系统和方法。特别地,本发明涉及在产品购买期间对转换后的产品信息进行基于键的数据检索。
背景技术
由于产品可以在世界各地购买,因此产品购买的计算机化实施方式和支持变得越来越复杂且需要资源。大多数产品信息存储在关系数据库系统中,查询该关系数据库系统以接收关于满足请求的产品的信息并使得能够购买产品。
例如,宾馆物业经理经由连接到一个或多个关系数据库的界面将宾馆费率录入到他们的物业管理系统中。当旅行者提出购物请求时,购物引擎访问一个或多个关系数据库以获得适用的费率。但是,关系数据模型通常不可扩展。因此,关系数据库每秒只能处理有限数量的交易。因此,这种体系架构不适合拥有6000家宾馆和大量并发购物请求的连锁宾馆,因为每秒支持的交易数量通常在20个左右,而实际上每秒有5000个交易需要处置。
许多其他产品类别的产品购物的计算机化实施方式也面临类似的限制,因为出于原子性、并发性和隔离性的原因,产品管理系统传统上依赖于关系数据库。
发明内容
下面呈现了主题的简化摘要,以便提供对主题实施例的一些方面的基本理解。本摘要并不是主题的广泛概述。其无意于识别实施例的关键/重要元素或勾勒主题的范围。
其唯一的目的是以简化的形式呈现主题的一些概念,作为后面呈现的更详细描述的前言。
根据第一方面,提供了一种处置产品购买的数据库系统。该数据库系统包括存储多个产品的关系数据的关系数据库以及存储多个第一文件和多个第二文件的键-值数据库,其中第一文件和第二文件表示关系数据,其中第一文件可通过使用与产品相关联的相应第一键来访问并且包括相应的至少一个第二键,其中第二文件可通过使用相应的至少一个第二键来访问。该数据库系统还包括连接关系数据库与键-值数据库的接口模块以及用于与键-值数据库通信的购物引擎。
接口模块被配置为按照产品将关系数据库中存储的关系数据的至少一部分转换成第一文件中一个第一文件的和第二文件中的至少一个第二文件,并将所述一个第一文件和所述至少一个第二文件存储在键-值数据库中。此外,购物引擎被配置为从客户端设备接收对产品的可用性请求,通过使用与产品相关联的第一键来查询键-值数据库以检索与产品相关联的第一文件,处理所述第一文件以提取至少一个第二键和与所述至少一个第二键相关联的元数据,按照第二键将元数据与可用性请求进行比较以确定元数据满足可用性请求的第二键,通过使用满足可用性请求的所述第二键的列表查询键-值数据库以接收对应的第二文件,从所述第二文件中提取数据,以及将从所述第二文件中提取出的数据发送到客户端设备。
根据第二方面,提供了一种处置数据库系统中的产品购买的方法。该方法包括按照产品将存储在关系数据库中的关系数据的至少一部分转换成第一文件中一个第一文件和第二文件中的至少一个第二文件,并将所述一个第一文件和所述至少一个第二文件存储在键-值数据库中。该方法还包括从客户端设备接收对产品的可用性请求,通过使用与产品相关联的第一键来查询键-值数据库以检索与产品相关联的第一文件,处理所述第一文件以提取至少一个第二键和与所述至少一个第二键相关联的元数据,按照第二键将元数据与可用性请求进行比较以确定元数据满足可用性请求的第二键,通过使用满足可用性请求的所述第二键的列表查询键-值数据库以接收对应的第二文件、从所述第二文件中提取数据,以及将从所述第二文件中提取出的数据发送到客户端设备。
根据第三方面,提供了一种计算机程序产品,该计算机程序产品或者是其上存储有程序代码的机器可读介质的形式,或者是包括程序代码的表示的传播信号的形式。程序代码被布置为当在计算机系统上执行时执行一种方法,其中该方法包括按照产品将存储在关系数据库中的关系数据的至少一部分转换成第一文件中的一个和第二文件中的至少一个,并将所述一个第一文件和所述至少一个第二文件存储在键-值数据库中。该方法还包括从客户端设备接收对产品的可用性请求,通过使用与产品相关联的第一键来查询键-值数据库以检索与产品相关联的第一文件,处理所述第一文件以提取至少一个第二键和与所述至少一个第二键相关联的元数据,按照第二键将元数据与可用性请求进行比较以确定元数据满足可用性请求的第二键,通过使用满足可用性请求的所述第二键的列表查询键-值数据库以接收对应的第二文件,从所述第二文件中提取数据,以及将从所述第二文件中提取出的数据发送到客户端设备。
通过下面参考附图对实施例的详细描述,这些和其他目的、实施例和优点对于本领域技术人员来说将变得显而易见,本发明不限于任何特定实施例。
附图说明
本主题的前述和进一步的目的、特征和优点将从以下参考附图对示例性实施例的描述中变得显而易见,其中相同的附图标记被用于表示相同的元件。
但是,应该注意的是,附图连同附图标记仅图示了本主题的典型实施例,并且因此不应被视为限制其范围,因为本主题可以承认其他同等有效的实施例。
因此,参考以下附图描述实施例。
图1示出了根据本发明的处置产品购买的数据库系统。
图2示出了处置产品购买的数据库系统的展开视图。
图3描绘了具有第一和第二文件的键-值数据库。
图4是将关系数据转换成第一和第二文件的流程图。
图5是检索和提取用于产品购买的数据的流程图。
图6示出了用于将关系数据转换成第一和第二文件的展平数据的示例。
图7A和图7B示出了用于将关系数据转换成第一和第二文件的序列化数据的示例。
图8示出了利用第一、第二和第三文件的数据检索的示例。
图9描绘了具有用于购买旅行相关产品的时段合并模块的实施例。
图10是提取用于将关系数据转换成第一和第二文件的有效性区间的流程图。
图11是实现本文描述的方法的示例性计算机器的图解表示。
具体实施方式
图1示出了根据本发明的处置产品购买的数据库系统100。数据库系统100包括关系数据库101和键-值数据库102、接口模块103,以及购物引擎104。
关系数据库101存储多个产品的关系数据。产品可以全都是同一类型,旅游相关产品、食品相关产品、娱乐相关产品等。关系数据库101还可以存储不同类型的产品。一种类型的产品也可以是相同的子类型,例如,关系数据库101可以存储与旅行相关的产品,特别是宾馆预订产品。相关数据还包括产品的信息,即,详细描述、价格、可用性、运输成本、附加的可预订服务、制造商、航空公司/服务提供者以及更多或更少的信息,这取决于要购买的产品。关系数据库101可以是MySQLTM、/>SQL Server、SQLite、MariaDB、Apache HiveTM或任何其他关系数据库。
键-值数据库102存储多个第一文件和多个第二文件,其中第一和第二文件表示存储在关系数据库101中的关系数据。存储在关系数据库101中的产品的关系数据被转换成存储在键-值数据库102中的对应的第一和第二文件。键-值数据库102可以是Couchbase、LevelDB、Redis、Riak或任何其他键-值数据库。关系数据库101以及键-值数据库可以是本地存储的数据库或也可以包括多个单独存储的数据库的分布式数据库系统。
接口模块103是转换模块,其连接关系数据库101与键-值数据库102并转换来自关系数据库101的数据以作为文件存储在键-值数据库102中。例如,关系数据库101保持与宾馆预订相关联的数据。接口模块103可以被配置为以预定的时间间隔,例如,每小时、每天或任何其他适用的时间间隔,周期性地将关系数据转换成第一文件和至少一个第二文件。
购物引擎104是被配置为通过与键-值数据库102通信来执行购物过程的模块。购物引擎104和接口模块可以存储在同一服务器上、单独的服务器上、云中或任何其他合适的系统或位置处。关系数据库101、键-值数据库102、接口模块103、购物引擎104可以经由网络连接。网络可以是广域网、全球网络、互联网或类似的网络,可以是公共或私有网络,并且可以包括本领域已知的多个互连网络。
图2示出了处置产品购买的数据库系统100的展开视图,其中多个客户端设备205和多个提供者设备206也连接到数据库系统100。
客户端设备205可以连接到购物引擎以搜索和/或购买产品。例如,客户端设备205包括计算机、服务器、移动站、膝上型计算机、智能电话、应用、另外的数据库系统中的至少一种。客户端设备205可以向购物引擎发送购买产品的请求。当请求可用的产品时,这种请求一般可以被称为可用性请求。但是,取决于购物引擎104的具体实施方式,当前不可用的产品也可以被返回到客户端设备205以用于信息目的。例如,客户端设备205还可以响应于可用请求而检索所有现有宾馆房间类型的信息,即使其中一些房间类型在所请求的特定时间不可用。
提供者设备206还可以连接到关系数据库101以存储与要提供给客户端设备的产品相关的数据。提供者设备206可以各自与可以由客户端设备205购买的一种或多种产品的提供者相关联。例如,提供者可以是承运商、休闲/活动提供者或旅行提供者,例如,航空公司、旅馆或连锁宾馆、出租车公司、租车代理公司、火车公司、活动代理公司、票务平台,或处置并提供多种不同服务的元代理公司。附加地或可替代地,提供者还可以是移动电话运营商、网络运营商、仓库、购物连锁店等。
客户端设备205和提供者设备206可以经由网络连接到数据库系统100,网络可以是广域网、全球网络、互联网或类似的网络,可以是公共或私有网络,并且可以包括如本领域已知的多个互连的网络。提供者设备206由此可以直接连接到关系数据库101或者经由接口或其他附加模块(未示出)连接到关系数据库101。
提供者可以例如根据给定的关系数据库方案以树状结构将要提供给客户端的产品的数据存储在关系数据库101中。例如,如果产品是公寓或宾馆房间,那么关系数据库101中可以存在包括所有物业的表,即,包括提供房间的所有宾馆的条目。该表可以具有用于宾馆的不同特点的列,诸如城市代码、国家代码、名称、连锁店等。另一个表可以保持关于房间类型的信息,以及例如关于设施和景观类型等的信息,另一个表可以保持关于费率计划的信息,另一个表可以保持关于不示出或取消的规则的信息,等等。因此存在以树状结构定义最终产品的多个表,在示例中,这个最终产品是宾馆房间。关于宾馆房间的示例,关系数据库101可以存储至少表1中所示的数据库表。
表1
费率计划是用于计算最终产品的主要元素,因为它识别价格,即,宾馆房间的费用。宾馆房间的费用和宾馆房间的特点的列表构成了出售给客户的报价。因此,表RatePlan包含给定物业的所有费率计划的列表。表PriceGrid包含用于价格的参数和对金额规则的引用。表AmountRule定义计算价格的规则,这个表尤其包括金额(固定金额或相对金额,如百分比)以及这个金额适用的日期时段。多种金额规则让您覆盖不同时段和不同产品。价格网格可以被组合以创建不同的价格。例如,考虑第一价格网格PG1包含固定金额,例如,500美元,而另一个价格网格PG2包含相对金额,例如,-10%。如果价格网格PG1链接到PG2,那么结果价格是450美元。
政策表包含销售条件。住宿政策是针对特定宾馆和针对给定时间段定义的销售条件。其他政策表指定针对给定费率计划的销售条件。税费是使用TaxRule和Tax这两个表定义的。这两个表可以引用其他税费来创建复杂的税费模式。费率计划可以具有多个限制中的零个或一个:表NoArrivalRule定义如果入住日期在特定日期之前则禁止使用这个费用的限制,表NoStayRule定义当入住在指定时段内时禁止使用这个费用的限制。表HurdlePoint进一步指定如果计算出的价格小于特定金额则必须将费率计划设置为不可用。
图3描绘了具有多个第一文件310和多个第二文件320的键-值数据库102。第一文件310可通过使用相应的第一键311来访问,第一键311定义相应的唯一标识符以从第一文件310获得数据。第二文件320可通过使用相应的第二键321、322来访问,第二键321、322定义对于相应的第二文件320来说唯一的相应标识符。因此,每个第一文件310或第二文件320与访问相应的第一文件310或第二文件320所需的特定的唯一键311、321、322相关联。第一键311与存储在关系数据库101中的特定产品(例如,每个产品)相关联,在键-值数据库102中具有其唯一的键,这使得能够访问与该产品相关联的第一文件310。
第一文件310中的任何一个在其值部分中包括至少一个第二键321、322。由第一文件310包括的至少一个第二键321、322可以被用于访问第二文件320。在图3的示例中,存储在第一文件310中的第二键321与第二键321(由点线323示出)完全相同,并且存储在第一文件310中的第二键322与第二键322(由点线324所示)完全相同。因此,基于存储在第一文件310中的第二键321、322,可以实现与存储在第一文件310中的产品相关联的数据的高效检索。
具有第一文件310和至少一个第二文件320的方法基于数据检索时间与数据处理的时间之间的技术优化,其中第一文件310包括第二键321、322以访问至少一个第二文件320。例如,如果与特定产品或产品系列相关的所有数据,诸如关于宾馆的所有房间的每个所需信息,都将被第一文件310包括,那么数据检索的时间将较短,因为仅单个文件(即,该第一文件310)必须被访问。但是,从第一文件310(其还具有相当大的尺寸)中提取和处理相关数据的时间将远远超出可接受的响应时间。因此,经由将数据划分在第一文件310和多个第二文件320中,并且当应答请求时,从第一文件310中选择相关的第二键321、322并且仅从相应的第二文件320中检索相关数据,可以达到数据检索和数据处理时间的优化。
关于宾馆房间的示例,第一文件310可以包括关于包括多个宾馆房间的宾馆的基本信息。例如,第一文件310可以包括由信息的两个不同部分组成的物业级别数据。第一部分可以是费率计划信息部分,第二部分可以是奇偶校验组信息部分。
费率计划信息部分可以存储在物业中分布的所有费率计划的列表以及每个费率计划的所有可能的房间类型的列表。费率计划信息部分还可以包括从第二文件320复制的数据,以便能够过滤结果和/或加速访问。例如,第一文件310可以包括特定于列出的费率计划的元信息,该信息定义费率计划何时适用,例如,销售日期和/或住宿日期的结束或开始,以便能够拒绝不适用于最终候选的费率计划。奇偶校验组信息部分可以存储费率计划的依赖性。例如,奇偶校验组信息描述依赖于其他费率的费率组,例如,费率B、C和D依赖于费率A,使得如果费率A不可用,那么费率B、C和D也不可用。
与物业级别数据类似,第二文件320包括费率计划数据。费率计划具有适用的条件规则,通常基于针对交易所考虑的日历时段。这些规则然后被存储在第二文件320中。而且,第二文件320还可以存储描述客户必须满足才能被允许预订报价的最低要求或条件或者如果客户不满足这些规则则是罚款和费用的政策。而且,第二文件320还可以包括价格网格数据,其包括关于价格网格的数据(例如,价格网格的代码、价格网格的类型等),以及定义产品的实际价格的金额规则数据。
这种将宾馆房间信息特定分布和重新组织成具有存储在键-值数据库102中的第一文件310和第二文件320的双层文件结构显著缩短了对购物请求的响应时间。例如,如果购物/搜索请求所需的所有数据都是从关系数据库101检索到的,那么我们期望响应时间约为500ms或甚至更长。对于相同的购物/搜索请求,但是当如上所述使用在键-值数据库102中的两级文件结构时,响应时间将可能小于50ms并且绝不会超过80ms。关系数据库101中存储的数据越多,当应用所描述的在键-值数据库102中的两级文件结构时,响应时间的节省就越大。
如根据上面的描述将对本领域技术人员清楚的,存储在关系数据库101与键-值数据库102中的数据彼此对应。因此,并且如图4中所示,要求在关系数据与键-值数据之间数据转换。
因此,接口模块103执行两阶段转换过程。接口模块103可以以预定时间间隔周期性地将关系数据转换成第一文件310和第二文件320。可替代地,可以响应于关系数据库101中的数据的改变而转换关系数据。
如方框401中所示,将产品的关系数据的部分转换并存储到第一文件(诸如第一文件310)中。在宾馆房间的示例中,其中第一文件310存储物业数据,与物业相关的数据是从关系数据库101提取的,特别地,至少是从表RatePlan提取的,但在一些实施例中也从其他表提取。如方框402中所示,产品的关系数据的部分被进一步转换并存储到第二文件(诸如第二文件320)中。在一些实施例中,存储在第二文件320中的数据的至少一部分被复制在第一文件310中。在宾馆示例中,第一文件310和第二文件320都可以包括从表AmountRule提取的信息。
第一文件310和第二文件320可以以相同的数据格式存储。在替代实施例中,第一文件310与第二文件320的数据格式可以不同。第一文件310和/或第二文件320的数据格式可以是JSON(JavaScript对象表示法)、HTML(超文本标记语言)或任何其他合适的数据格式。
因此,从关系数据库101的数据到存储在键-值数据库102中的文件的转换可以包括展平过程,其中关系数据库101所包括的数据被存储在第一文件310和第二文件320中。展平过程还可以包括进一步的计算。在宾馆房间示例中,除了在第二文件320中存储关于价格网格的所有信息(例如,一般价格网格信息和每个日历时段的金额规则)之外,第二文件320还可以通过检索和解析依赖性的树来包括产品的最终金额。因此,如图4中所描绘的转换过程导致分层的功能结构,以便每个第二文件的核心信息都存储在上层中。这使得能够高效地过滤数据,从而在检索和提取用于产品购买的数据时实现数据的高效检索,因为仅访问满足可用性请求的那些第二文件320。
检索和提取用于产品购买的数据包括图5的流程图中所示的活动。购物引擎104在方框501中从客户端设备205接收对产品的可用性请求。可用性请求可以包括客户端想要购买的产品的信息。例如,如果客户端搜索宾馆房间,那么可用性请求可以包括到达日期和离开日期以及城市/位置。
接下来,如方框502中所描绘的,通过使用与产品相关联的第一键311来查询键-值数据库102(例如,通过接口模块103)以检索与产品相关联的第一文件310。在实施例中,第一键311可以被包括在可用性查询中,即,由客户端录入,或者可以由购物引擎104通过对数据库的预处理查询来检索,该数据库可以是关系数据库101或任何其他远程或本地存储装置。预处理查询可以例如请求满足可用性请求的所有第一键311。在宾馆房间示例中,购物引擎104可以检索在位置方面满足可用性请求的物业(例如,被包括在可用性请求中的位于城市中的所有宾馆)的所有唯一标识号,即,这个示例中的第一键311。在另一个示例中,如果可用性请求是专用请求,即,对指定物业的房间的可用性的请求,那么可以通过物业名称到唯一标识号的映射来检索第一键311。
通过使用第一键311,可以访问相应的第一文件310。然后处理第一文件310以提取至少一个第二键321、322以及元数据。这在方框503中示出。元数据是使得例如接口模块103能够确定哪些第二文件320满足,或者换句话说适用于,可用性请求的数据。在宾馆房间示例中,元数据与上面提到的元信息对应。因此,元数据包括费率计划是否适用于可用性请求的信息。因此,将每个第二键321、322的元数据与可用性请求进行比较以确定元数据满足可用性请求的那些第二键321、322(方框504中所描绘的)。
对于那些确定的第二键321、322,查询键-值数据库102,如方框505中所示。这可以通过使用满足可用性请求并导致接收对应的至少一个第二文件320的所述第二键321、322的列表来完成。在方框506中,提取来自所述至少一个第二文件320的数据以构建(一个或多个)最终产品。在宾馆房间示例中,存储在第二文件320中的针对每个费率计划的相应条件和价格被检索并与第一文件310的信息组合以构建可用于由发出请求的客户端预订的至少一个最终宾馆房间产品。然后将提取出的与要提供的最终产品对应的数据发送到发出请求客户端设备,这由最后一个方框507示出。
本方法促进实时数据检索。所呈现的系统使得能够以较短的响应时间实现高可用性服务。采用关系数据库的常规系统要求对数据库进行大量联合查询才能检索可用产品。利用所呈现的系统,数据检索仅要求检索与所请求的物业相关的一个第一文件310和N个第二文件320,这取决于满足请求的费率计划的数量。因此,响应时间可以缩短至80ms以下。
图6示出了用于将关系数据转换成第一文件310和第二文件320的展平数据的示例。在左侧601,描绘了存储在关系数据库101中的关系数据的树状结构。例如并且在宾馆房间实施例中所解释的,可以存在提供两个费率计划的一个物业。一个费率计划具有三个相关费率计划,这些计划仅在特定条件下适用。另一个费率计划具有另外的两条规则,如果进行预订,那么可以满足这些规则。然后,由接口模块103将树状结构转换成右侧602的多个第一文件310和第二文件320。
图7A和图7B示出了用于将关系数据转换成第一文件310和第二文件320的序列化数据的示例。在图7A中,来自关系数据库101的关系数据经由接口模块103转换成存储在键-值数据库102中的数据文件。在这个实施例中,接口模块103对关系数据应用序列化协议733,以将序列化的数据存储在第一文件310和第二文件320中。通过使用序列化协议,关系数据库101的数据结构被变换成可以更高效地存储(要求更少的存储器)的数据结构并且构成原始数据的语义相同的克隆。序列化协议可以是例如Google Protobuf序列化协议、Hessian 2.0序列化协议、Redis序列化协议或任何其他合适的协议。序列化一般可以通过使用协议缓冲器或平面缓冲器来实现。
在图7B中,接口模块103还对序列化的数据应用压缩协议734。对序列化的数据应用压缩协议使得能够高效存储第一文件310和第二文件320。压缩协议可以是例如IP(互联网协议)有效载荷压缩协议、Snappy压缩协议或任何其他合适的协议。
图8示出了具有存储在键-值数据库102中的三层文件的实施例。因此,第一文件310包括至少一个第二文件320的至少一个第二键321。第二文件320包括至少一个第三文件830的至少一个第三键831。当然,如果需要,四层或更多层文件也是可能的。
图9描绘了用于购买旅行相关产品的另外的实施例。旅行相关产品的价格通常取决于它们适用的时间间隔。因此,接口模块103还包括时段合并模块935。当转换存储在关系数据库101中的关系数据时,由接口模块103所包括的时段合并模块935识别价格结构的此类时间间隔并在键-值数据库102的第一文件310和/或第二文件320中创建条目,从而反映价格结构和时间间隔。
时段合并模块935的工作流程在图10的流程图中描绘。时段合并模块935基于旅行相关产品的费率的时间依赖性来确定旅行相关产品的至少一个价格的有效性区间,即,价格适用的时间间隔。这在方框1001中示出。例如,时段合并模块935分析存储在关系数据库101中的数据。对于所有价格网格,分析价格是否与时间相关。如果是,那么确定有效性区间。
此后,时段合并模块935在有效性区间内识别至少一个价格(如果存在)的周期性和结构(方框1002)。例如,如果价格仅适用于周末,那么周期性为每周并且有效性区间为两天。而且,价格的结构可以是金额,也可以是适用于该价格的条件,诸如仅适用于儿童或老人、仅与迟到相结合等。
在方框1003中,时段合并模块935创建用于该结构的标识符,即,用于特定价格结构的唯一标识符。然后将这个标识符与相应的有效性区间一起存储在例如第一文件310中。第二文件320然后可以存储价格的具体结构。这在方框1004中描绘。通过将有效性区间与具体结构分开存储,可以为一个结构定义多个有效性区间。
在另一个实施例中,提供了一种包括指令的计算机程序产品。当程序由计算机执行时,这些指令使计算机执行本文描述的方法。在本文描述的任何应用/模块中实施的程序代码能够作为各种不同形式的程序产品被单独或集体地分发。特别地,可以使用其上具有用于使处理器执行本发明的实施例的各方面的计算机可读程序指令的计算机可读存储介质来分发程序代码。
计算机可读存储介质本质上是非暂态的,可以包括以用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术实现的易失性和非易失性以及可移动和不可移动有形介质。计算机可读存储介质还可以包括随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存或其他固态存储器技术,便携式光盘只读存储器(CD-ROM)或其他光存储装置,盒式磁带、磁带、磁盘存储装置或其他磁存储设备,或任何其他可以用于存储期望信息并且可以由计算机读取的介质。
计算机可读存储介质本身不应当被认为是暂时信号(例如,无线电波或其它传播的电磁波、传播通过诸如波导之类的传输介质的电磁波,或通过电线传输的电信号)。计算机可读程序指令可以从计算机可读存储介质下载到计算机、另一种类型的可编程数据处理装置或另一个设备,或者经由网络下载到外部计算机或外部存储设备。
图11是实现本文描述的方法的至少一部分的示例性计算机器1100的图解表示。类似的计算机器还可以实现上述模块/接口103、104、客户端和/或提供者设备205、206以及数据库101、102中的一个或多个。计算机器1100包括当由计算机器1100执行时使计算机器1100执行本文所讨论的任何方法的指令集。
计算机器1100包括至少一个处理器1101、主存储器1106和网络接口设备1103,它们经由总线1104彼此通信。可选地,计算机器1100还可以包括静态存储器1105和盘驱动单元。可以提供视频显示器、字母数字输入设备和光标控制设备作为用户接口1102的示例。网络接口设备1103将计算机器1100连接到上述任何其他组件。
计算机器1100包括存储器1106,诸如主存储器、随机存取存储器(RAM)和/或任何另外的易失性存储器。存储器1106可以存储临时数据和程序数据以促进功能性数据库系统100。存储器106还可以包括存储最近从数据库101、102检索到的数据的一个或多个高速缓存1107。高速缓存可以是1级(L1)、2级(L2)和/或3级(L3)高速缓存。存储器1106还可以存储计算机程序数据1108以实现如上所述的方法。
实施本文描述的任何一个或全部方法的计算机可执行指令的集合(计算机程序代码1108)完全或至少部分地驻留在机器可读存储介质中或机器可读存储介质(例如,存储器1106)上。指令1108还可以作为传播信号经由互联网通过网络接口设备1103或经由用户接口1102被传输或接收。计算机器内部的通信经由总线1104执行。计算机器1100的基本操作由也位于存储器1106、至少一个处理器1101和/或静态存储器1105中的操作系统控制。
应当认识到的是,虽然本文已经描述了本发明的特定实施例和变化,但是进一步的修改和替代对于相关领域的技术人员来说将是显而易见的。特别地,这些示例是通过说明本发明的原理来提供的,并且提供了用于实现那些原理的多种具体方法和布置。
因而,所描述的实施例应当被理解为以示例的方式提供,用于教导本发明的一般特征和原理的目的,而不应当被理解为限制本发明的范围,本发明的范围如所附权利要求中定义。
Claims (30)
1.一种用于处置产品购买的数据库系统,该数据库系统包括:
关系数据库,存储多个产品的关系数据;
键-值数据库,存储多个第一文件和多个第二文件,其中第一文件和第二文件表示关系数据,其中第一文件可通过使用与产品相关联的相应第一键来访问并且包括相应的至少一个第二键,其中第二文件可通过使用所述相应的至少一个第二键来访问;
接口模块,连接关系数据库与键-值数据库;
购物引擎,用于与键-值数据库通信;
其中接口模块被配置为:
按照产品将关系数据库中存储的关系数据的至少一部分转换成第一文件中的一个第一文件和第二文件中的至少一个第二文件;以及
将所述一个第一文件和所述至少一个第二文件存储在键-值数据库中;
其中购物引擎被配置为:
从客户端设备接收对产品的可用性请求;
通过使用与产品相关联的第一键来查询键-值数据库以检索与产品相关联的第一文件;
处理所述第一文件以提取至少一个第二键和与所述至少一个第二键相关联的元数据;
按照第二键将元数据与可用性请求进行比较以确定元数据满足可用性请求的第二键;
通过使用满足可用性请求的所述第二键的列表查询键-值数据库以接收对应的第二文件;
从所述第二文件中提取数据;以及
将从所述第二文件中提取出的数据发送到客户端设备。
2.根据权利要求1所述的数据库系统,其中接口模块还被配置为在将关系数据转换成第一文件和所述至少一个第二文件的同时将关系数据库的树状结构展平。
3.根据权利要求1所述的数据库系统,其中接口模块还被配置为在将关系数据转换成所述第一文件和所述至少一个第二文件的同时对关系数据应用序列化协议以将序列化的数据存储在第一文件和第二文件中。
4.根据权利要求3所述的数据库系统,其中接口模块还被配置为在将关系数据转换成所述第一文件和所述第二文件的同时对序列化的数据应用压缩协议。
5.根据权利要求1所述的数据库系统,其中购物引擎和/或接口模块被配置为存储关系数据到对应的第一文件和所述至少一个第二文件的映射。
6.根据权利要求1所述的数据库系统,其中接口模块被配置为以预定时间间隔周期性地将关系数据转换成所述第一文件和所述至少一个第二文件。
7.根据权利要求1所述的数据库系统,其中接口模块被配置为响应于关系数据的改变而将关系数据转换成所述第一文件和所述至少一个第二文件。
8.根据权利要求1所述的数据库系统,其中第一文件和/或第二文件包括至少一个第三键,其中键-值数据库还存储第三文件,其中接口模块还被配置为将关系数据的一部分转换成至少一个第三文件,其中第三文件可通过使用所述至少一个第三键来访问。
9.根据权利要求1所述的数据库系统,其中产品的购买是旅行相关产品的预订。
10.根据权利要求9所述的数据库系统,其中接口模块包括时段合并模块,其中该时段合并模块被配置为:
基于旅行相关产品的费率的时间依赖性,确定旅行相关产品的至少一个价格的有效性区间;
在有效性区间内识别所述至少一个价格的周期性和结构;
为该结构创建标识符;以及
将具有相应标识符的有效性区间与该结构分开存储。
11.一种在数据库系统中处置产品购买的方法,其中数据库系统包括:
关系数据库,存储多个产品的关系数据;
键-值数据库,存储多个第一文件和多个第二文件,其中第一文件和第二文件表示关系数据,其中第一文件可通过使用与产品相关联的相应第一键来访问并且包括相应的至少一个第二键,其中第二文件可通过使用相应的至少一个第二键来访问;
接口模块,连接关系数据库与键-值数据库;
购物引擎,用于与键-值数据库通信;
其中该方法包括:
按照产品将关系数据库中存储的关系数据的至少一部分转换成第一文件中的一个第一文件和第二文件中的至少一个第二文件;
将所述一个第一文件和所述至少一个第二文件存储在键-值数据库中;
从客户端设备接收对产品的可用性请求;
通过使用与产品相关联的第一键来查询键-值数据库以检索与产品相关联的第一文件;
处理所述第一文件以提取至少一个第二键和与所述至少一个第二键相关联的元数据;
按照第二键将元数据与可用性请求进行比较以确定元数据满足可用性请求的第二键;
通过使用满足可用性请求的所述第二键的列表查询键-值数据库以接收对应的第二文件;
从所述第二文件中提取数据;以及
将从所述第二文件中提取出的数据发送到客户端设备。
12.根据权利要求11所述的方法,其中该方法还包括在将关系数据转换成所述第一文件和所述至少一个第二文件的同时将关系数据库的树状结构展平。
13.根据权利要求11所述的方法,其中该方法还包括在将关系数据转换成第一文件和所述至少一个第二文件的同时对关系数据应用序列化协议以将序列化的数据存储在第一文件和第二文件中。
14.根据权利要求13所述的方法,其中该方法还包括在将关系数据转换成第一文件和第二文件的同时对序列化的数据应用压缩协议。
15.根据权利要求11所述的方法,其中该方法还包括存储关系数据到对应的第一文件和所述至少一个第二文件的映射。
16.根据权利要求11所述的方法,其中该方法还包括以预定的时间间隔周期性地将关系数据转换成所述第一文件和所述至少一个第二文件。
17.根据权利要求11所述的方法,其中该方法还包括响应于关系数据的改变而将关系数据转换成所述第一文件和所述至少一个第二文件。
18.根据权利要求11所述的方法,其中第一文件和/或第二文件包括至少一个第三键,其中键-值数据库还存储第三文件,其中该方法还包括将关系数据的一部分转换成至少一个第三文件,其中第三文件可通过使用所述至少一个第三键来访问。
19.根据权利要求11所述的方法,其中产品的购买是旅行相关产品的预订。
20.根据权利要求19所述的方法,其中该方法还包括:
基于旅行相关产品的费率的时间依赖性,确定旅行相关产品的至少一个价格的有效性区间;
在有效性区间内识别所述至少一个价格的周期性和结构;
为该结构创建标识符;以及
将具有相应标识符的有效性区间与该结构分开存储。
21.一种存储程序代码的非暂态机器可读介质,其中程序代码被布置为当在计算机系统上被执行时执行以下方法:
按照多个产品中的产品将存储在关系数据库中的关系数据的至少一部分转换成多个第一文件中的一个第一文件和多个第二文件中的至少一个第二文件,其中关系数据与多个产品相关联;
将所述一个第一文件和所述至少一个第二文件存储在键-值数据库中;
从客户端设备接收对产品的可用性请求;
通过使用与产品相关联的第一键来查询键-值数据库以检索与产品相关联的第一文件;
处理所述第一文件以提取至少一个第二键和与所述至少一个第二键相关联的元数据;
按照第二键将元数据与可用性请求进行比较以确定元数据满足可用性请求的第二键;
通过使用满足可用性请求的所述第二键的列表查询键-值数据库以接收对应的第二文件;
从所述第二文件中提取数据;以及
将从所述第二文件中提取出的数据发送到客户端设备。
22.根据权利要求21所述的非暂态机器可读介质,其中该方法还包括在将关系数据转换成所述第一文件和所述至少一个第二文件的同时将关系数据库的树状结构展平。
23.根据权利要求21所述的非暂态机器可读介质,其中该方法还包括在将关系数据转换成所述第一文件和所述至少一个第二文件的同时对关系数据应用序列化协议以将序列化的数据存储在第一文件和第二文件中。
24.根据权利要求23所述的非暂态机器可读介质,其中该方法还包括在将关系数据转换成所述第一文件和所述第二文件的同时对序列化的数据应用压缩协议。
25.根据权利要求21所述的非暂态机器可读介质,其中该方法还包括存储关系数据到对应的第一文件和所述至少一个第二文件的映射。
26.根据权利要求21所述的非暂态机器可读介质,其中该方法还包括以预定时间间隔周期性地将关系数据转换成所述第一文件和所述至少一个第二文件。
27.根据权利要求21所述的非暂态机器可读介质,其中该方法还包括响应于关系数据的改变而将关系数据转换成所述第一文件和所述至少一个第二文件。
28.根据权利要求21所述的非暂态机器可读介质,其中第一文件和/或第二文件包括至少一个第三键,其中键-值数据库还存储第三文件,其中该方法还包括将关系数据的一部分转换成至少一个第三文件,其中第三文件可通过使用所述至少一个第三键来访问。
29.根据权利要求21所述的非暂态机器可读介质,其中产品的购买是旅行相关产品的预订。
30.根据权利要求29所述的非暂态机器可读介质,其中该方法还包括:
基于旅行相关产品的费率的时间依赖性,确定旅行相关产品的至少一个价格的有效性区间;
在有效性区间内识别所述至少一个价格的周期性和结构;
为该结构创建标识符;以及
将具有相应标识符的有效性区间与该结构分开存储。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/510,876 | 2021-10-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118159993A true CN118159993A (zh) | 2024-06-07 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20130346123A1 (en) | Reservation method and system with improved pnr handling | |
CN105631630A (zh) | 旅客订单数据处理方法及装置 | |
CN103493076B (zh) | 用于优化重复的搜索请求的改进预订系统的方法和系统 | |
WO2018024844A1 (en) | Interactive platform for the exchange of commoditized products | |
US10147055B2 (en) | Aggregation record for managing ancillary travel services | |
US9367563B2 (en) | Managing records in a travel management system | |
KR102199620B1 (ko) | 빅데이터 기반 시계열 분석 및 가격 예측을 이용한 가격비교 서비스 제공 시스템 | |
CN103548019A (zh) | 用于根据数据仓库提供统计信息的方法和系统 | |
US11113637B2 (en) | Content exchange with a travel management system | |
US20160232626A1 (en) | Travel activity tracking system | |
US20150347589A1 (en) | Content access in a travel management system | |
US20210019806A1 (en) | Search-query redirection | |
US10740824B2 (en) | Product delivery system and method | |
CN106777310B (zh) | 信息的校验方法及装置 | |
CN112925974A (zh) | 优化的产品确定系统 | |
US20110251863A1 (en) | Method and system for inventory data sharing between airlines | |
US20230127638A1 (en) | Key-based handling of product purchases | |
CN118159993A (zh) | 基于键的产品购买的处置 | |
US20180040066A1 (en) | Interactive platform for the exchange of commoditized products | |
EP3540606B1 (en) | Product delivery system and method | |
KR20140025364A (ko) | 복합 질의를 처리하기 위한 시스템 및 방법 | |
CN113780650A (zh) | 运力锁定方法、装置、设备和存储介质 | |
JP6976346B2 (ja) | データ管理システムにおける非標準データ管理 | |
US20150294236A1 (en) | Electronic miscellaneous document handling in response to voluntary modifications of ancillary services | |
US11898858B2 (en) | System and method for determining a set of routes, in a computerized environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication |