CN103548019A - 用于根据数据仓库提供统计信息的方法和系统 - Google Patents

用于根据数据仓库提供统计信息的方法和系统 Download PDF

Info

Publication number
CN103548019A
CN103548019A CN201280009577.8A CN201280009577A CN103548019A CN 103548019 A CN103548019 A CN 103548019A CN 201280009577 A CN201280009577 A CN 201280009577A CN 103548019 A CN103548019 A CN 103548019A
Authority
CN
China
Prior art keywords
index
data
input file
territory
sorting bin
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
CN201280009577.8A
Other languages
English (en)
Other versions
CN103548019B (zh
Inventor
G·纳斯
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.)
Amadeus SAS
Original Assignee
Amadeus SAS
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 Amadeus SAS filed Critical Amadeus SAS
Publication of CN103548019A publication Critical patent/CN103548019A/zh
Application granted granted Critical
Publication of CN103548019B publication Critical patent/CN103548019B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
    • 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/2228Indexing structures
    • 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
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24539Query rewriting; Transformation using cached or materialised query results

Abstract

本发明涉及一种用于根据数据仓库(410)提供统计数据的方法,数据仓库包括一种或多种数据存储装置以及耦合至数据存储装置的一个或多个处理器,所述方法的特征在于包括以下步骤:定义多个索引域(114),每一个索引域都接受多个索引域值;建立多个索引文件(432)并且将文件分层级地索引为索引树(300),其中对于每一棵树都包括以下步骤:分层级地排序索引域(201);定义分选仓,每一个分选仓都关联至一个索引域并且收集用于该索引域的一个或多个索引域值;通过级联跟分层级排序的索引域的层级相一致的一个或多个分选仓构成分选仓序列而建立索引,索引在每一个索引域中都只包括一个分选仓;将文件分层级地索引为索引树(300),每一个索引都拥有零个或更多个子索引和/或拥有最多一个父索引,以使每一个子索引都包括跟其父索引的索引再加上关联至附加索引域的至少一个附加分选仓相同的分选仓序列;给每一个索引提供被设置用于存储统计数据的数据容器(325,335),以使每一个数据容器都被索引并且可以从分层级索引的文件中直接寻址;接收(436)一个或多个包括原始数据的输入文件(434)并且用输入文件(434)更新数据容器,其中包括对于每一个输入文件都使用一个或多个处理器来设置用于执行以下步骤:从原始数据中识别和提取至少一种属性以通过统计信息和表现所述属性特征的一个或多个输入文件参数进行分析;根据输入文件(434)建立至少一条个体记录(620),每一条个体记录(620)都包括至少一种属性和表现所述属性特征的一个或多个输入文件参数;将每一个输入文件参数与至少一个索引域相关联;在每一个输入文件参数以及关联至该输入文件参数的至少一个索引域的分选仓之间建立对应关系;识别出用全都跟所述个体记录(620)的输入文件参数相对应的一个或多个分选仓索引的数据容器;用所述个体记录(620)的至少一种属性增量式地更新识别出的数据容器(325,335)以获取描述属性的统计数据。

Description

用于根据数据仓库提供统计信息的方法和系统
技术领域
本发明整体上主要涉及数据仓库和商业智能,并且更具体地致力于解决在考虑提供统计数据时加快数据检索以实时处理从大型数据储存库中查询的问题。
本发明涉及特定的内存中的数据结构,其允许明显加快针对通常在商业智能中使用的大量数据进行统计联机分析处理(OLAP)查询的响应时间。
背景技术
所有的大型公司和企业在实施其商业行为的过程中每天都需要收集和累积大量的信息。一种普遍适用的解决方案是将这些信息以数据库的形式存储,最常见的是称作关系数据库的数据库模型。关系数据库实际上是一种在特定的关系数据库管理系统(RDBMS)的控制之下的表格的集合以及表格之间的定义关系,并且配备有结构化查询语言(SQL)以使得信息能够被有效地存储、更新和检索。也存在其他的模型例如层级模型。无论使用何种模型,在要存储和组织的总体数据量显著增加时都需要进一步地组织数据库的集合。实际上,现在很常见的是仅仅为了允许这些大型公司的日常操作就需要存储太字节(terabyte)(也就是1012字节)量级的信息数据,并且内容要做成持久保存和易于访问;因此,自从80年代以来就提出了数据仓库的概念。数据仓库和数据集市是由任何大型机构建立用于保存其战略经营和商业数据的储存库。组织仓库的方式跟商业智能有很大关系。为了允许任意地彻底分析其内容以使得尽管可能必须要涉及海量的数据但是所有仓库用户都能够做出知情决策,设计用于跟储存库之间来回地提取、转换和加载数据的仓库结构和工具以及检索信息的表达和报告是关键性的。
在旅游业中,这种需要存储和组织大量数据的大型机构通常是航空公司或GDS也就是“全球分销系统”。GDS是在全世界范围内支持包括航空公司、连锁酒店、租车公司、传统的旅行社、其他在线旅游服务提供商等在内的所有旅游业参与者的几家大型旅游服务提供商中的任何一家。这样的GDS例如是AMADEUS,这是一家总部在西班牙马德里的欧洲旅游服务提供商。GDS因此必须要从他们大量的存储资源、计算资源和网络资源中记录可能是数以百万计的游客、成千上万家旅行社和在线服务提供商以及数十家航空公司和运输公司的相关数据。为此,任何一家GDS都需要建立很多大型数据库来保存例如所支持的运输公司的所有日程表、他们提供的日常更新的各种费用以及数以百万计的游客的所有票据数据等内容。
例如航空公司或GDS等机构经常需要依赖于统计信息来确定其战略。统计信息也可以作为帮助终端用户购买的服务而被提供给终端用户。统计信息经常需要分析散布在构成某个机构(例如航空公司或GDS)的数据仓库的很多数据库中的海量数据。
然而,这种海量分散数据的分析并不是一项简单的工作。即使事实上数据库被专门设计为有助于检索数据,但是仓库的内容分析仍然隐含地表明来自不同数据库的可能会涉及很多大表的数据需要交叉比对,以使得能够响应于这样的查询而提取有意义的信息片段并将其提供给终端用户。通常,对于关系数据库而言,这就意味着要对表项执行联合运算。已知这些运算在处理资源和时间等方面都代价高昂。而且,从可能是独立的计算机化操作平台访问多个数据库将触发大量的I/O(输入/输出)操作,这跟如果能将处理限制在单一的内部计算机化单元内相比当然要慢得多。此外,所有这些操作都会影响到需要一直运行并且能够同时处理多名用户的仓库数据库的正常生产工作。这就使得难以甚至是无法实时处理(也就是在几毫秒到几十毫秒的期望时限内)涉及到获取大量信息(例如收集和计算日常统计数据)的复杂查询。
因此,本发明的目标是公开一种根据数据仓库保持更新的数据结构,并且其目的在于加快统计数据的检索以使得即使是复杂的查询,尽管可能会涉及到大量的数据,但是也能够实时地处理和响应。
本发明的更多目标、特征和优点将在本领域技术人员参照附图研读以下的说明内容之后变得显而易见。应该理解任何附加的优点均可并入本文。
发明内容
为了满足上述目标,本发明介绍了一种用于根据数据仓库提供统计数据的方法,数据仓库包括一种或多种数据存储装置以及耦合至数据存储装置的一个或多个处理器。
在下文中并且在附图简要说明之前提供了用于描述本发明的术语和参考词汇的名词解释。
所述方法的特征在于其包括以下步骤:
·定义多个索引域,每一个索引域都接受多个索引域值;
·建立多个索引文件并且将文件分层级地索引为索引树,其中对于每一棵树都包括以下步骤:
-分层级地排序索引域;
-定义分选仓,每一个分选仓都关联至一个索引域并且收集用于该索引域的一个或多个索引域值;
-通过级联跟分层级排序的索引域的层级相一致的一个或多个分选仓构成分选仓序列而建立索引,索引在每一个索引域中都只包括一个分选仓;
-将文件分层级地索引为索引树,每一个索引都拥有零个或更多个子索引和/或拥有最多一个父索引,以使每一个子索引都包括跟其父索引的索引相同的分选仓序列再加上关联至附加索引域的至少一个附加分选仓;
·给每一个索引提供被设置用于存储统计数据的数据容器,以使每一个数据容器都被索引并且可以从分层级索引的文件中直接寻址;
·接收一个或多个包括原始数据的输入文件并且用输入文件更新数据容器,其中包括对于每一个输入文件都使用一个或多个处理器来设置用于执行以下步骤:
-从原始数据中识别和提取通过统计信息分析的至少一种属性和表征所述属性的一个或多个输入文件参数;
-根据输入文件建立至少一条个体记录,每一条个体记录都包括至少一种属性和表征所述属性的一个或多个输入文件参数;
-将每一个输入文件参数与至少一个索引域相关联;
-在每一个输入文件参数以及关联至该输入文件参数的至少一个索引域的分选仓之间建立对应关系;
-识别出用全都跟所述个体记录的输入文件参数相对应的一个或多个分选仓索引的数据容器;
-用所述个体记录的至少一种属性增量式地更新识别出的数据容器以获取描述属性的统计数据。
优选地,所述方法包括接收查询的附加步骤并且针对每一次查询都将一个或多个处理器编程用于:
-在查询中识别出一个或多个查询域以及关联至查询域的至少一个查询域值;
-在每一个查询域和索引域之间建立对应关系;
-在每一个查询域值以及跟所述一个或多个识别出的查询域相对应的每一个索引域的分选仓之间建立对应关系,由此定义跟查询相对应的一组分选仓;
-搜索并识别出用包括跟查询相对应的分选仓的索引来索引的相关数据容器;
-检索并向用户发送识别出的相关容器的统计数据。
有利地,统计数据涉及频率分布或集中趋势分布的度量或分散分布的度量。根据一个有利的示例,统计数据以涉及由游客为运输服务实际支付的价格的统计数据为基础。
在涉及运输并且更具体地涉及旅客运输的一个特定实施例中,本发明可以包括以下可选特征中的任何一项:
-索引域是以下内容中的至少一项:起点城市、起点国家、起点地理区域、目的地城市、目的地国家、目的地地理区域、文化目的地、体育赛事、美食、野生动植物观察、娱乐活动、用准确出发日期表示的出发日期、用月表示的出发时段、用周表示的出发时段、用准确日期表示的返回日期、用月表示的返回时段、用周表示的返回时段、到达之后的行程时长、预购类别。
-根据一个实施例,通过级联至少两个分选仓来建立没有父索引的至少一个索引。例如,没有父索引的索引包括关联至涉及起点城市的索引域的分选仓,关联至涉及出发前行程时长的索引域的分选仓,以及关联至涉及航班出发周的索引域的分选仓。根据具体的使用情形,分选仓收集涉及以下内容之一的一些索引域值:起点城市、出发城市、出发日期、出发周、返回日期、返回周、用于行程时长的天数、用于预购的天数。
-根据另一个实施例,没有父索引的至少一个索引仅包括一个分选仓。
-输入文件是运输服务的电子票并且包括体现出用于运输区段的所有信息的至少一张优惠券。
-属性是为每一张票或优惠券实际支付的价格。输入文件参数描述以下内容中的至少一项:起点城市、出发城市、出发日期、返回日期、行程时长、预订和出发之间的天数。
-查询域涉及以下域中的至少一个:起点城市、起点国家、起点地理区域、目的地城市、目的地国家、目的地地理区域、文化目的地、体育目的地、美食、野生动植物观察、娱乐活动、用准确出发日期表示的出发日期、用月表示的出发时段、用周表示的出发时段、用准确日期表示的返回日期、用月表示的返回时段、用周表示的返回时段、到达之后的行程时长、预订和出发之间的天数。
-单个索引域值可以关联至多个索引域。例如,描述目的地城市的索引域值可关联至以下索引域中的至少两个:起点城市、起点国家、起点地理区域、文化目的地、体育赛事、美食、野生动植物观察、娱乐活动。
可选地,所述方法根据本发明可以包括以下特征和步骤中的任何一项:
-建立个体记录包括以下步骤:为每一条个体记录赋予日期或周或月或学期或年,日期对应于接收输入文件;将个体记录存储在数据存储装置内。
-用个体记录更新数据容器包括以下步骤:建立多批具有相同日期或者具有相同日期时段的个体记录;通过各批个体记录来更新数据容器。
-更新并不需要计算所有的先前记录。因此只需要最小的计算量。通常,统计信息是在每一天结束时收到所有的输入文件之后更新。这就允许将每一天的交易数据无缝集成到应该可供下一天使用的数据范围内且无需取消直到前一天为止所进行的计算。
-优选地,索引域值和属性是利用适当的计数或者新数值更新的整数、小数或区间。
向容器加入新的个体记录涉及的改变最少:仅仅是相应频率分选仓内的计数值。因此,尽管个体记录的总数有巨大的增加,但是由于使用了频率分布表达和增量机制,因此容器大小和文件大小不会增加太多。不再加入其他的数据。
-为了保持统计数据准确,本发明可以包括以下的步骤:读取存储的个体记录的日期;识别出被赋予的日期早于指定日期的先前个体记录;通过这些识别出的先前个体记录的输入文件参数定位用这些识别出的先前个体记录更新过的数据容器;通过删除这些识别出的先前个体记录来更新定位的数据容器。更准确地说,通过利用识别出的先前个体记录的属性增量式地删除定位的数据容器来更新数据容器。删除记录并不需要计算所有的先前记录。因此,需要用最小的计算量来放弃过去的数据和保留相关的统计数据且无需放弃过去的计算。
-增量式地更新识别出的数据容器包括根据先前计算的统计数据和所述个体记录的至少一种属性增量式计算更新的统计数据的步骤。
-如果所述数据容器由等于或小于输入文件参数的数量的若干个分选仓索引并且假设这一个或多个分选仓中的每一个都对应于所述输入文件的输入文件参数,那么数据容器即被识别用于通过输入文件来更新。
-如果个体记录的输入文件参数被关联至现有的索引域但是并不对应于该关联的现有索引域中的任何分选仓,那么就针对该关联的现有索引域建立附加分选仓;建立用这一附加分选仓索引的附加数据容器;用所述个体记录更新附加的数据容器。
例如,如果存在用索引NBO和NBO05索引的数据容器并且如果个体记录的输入文件参数对应于分选仓NBO、05和40,那么就应建立数据容器NBO0540。该个体记录的属性应将数据容器更新为用以下的索引来索引:NBO、NBO05和新建的NBO0540。用NBO0532和NBO0540索引的数据容器位于索引树的同一层级。
-个体记录的每一个输入文件参数都对应于分选仓,但是仍有一个或多个分选仓的组合跟并不对应于索引的所述输入文件参数相对应,那就建立用这种一个或多个对应分选仓的组合索引的附加数据容器;用所述个体记录更新附加的数据容器。
例如,如果存在用索引NBO和NBO05索引的数据容器并且如果个体记录的输入文件参数对应于分选仓NBO、05和32,那么以下的分选仓组合就并未对应于现有的索引:NBO0532。随后就应建立数据容器NBO0532。该个体记录的属性应将数据容器更新为用以下的索引来索引:NBO、NBO05和新建的NBO0532。
-如果不同的实体例如GDS、航空公司、旅行社等需要将不同的索引用于相同或部分重叠的数据,那么就建立用于每一家商业实体的索引并且用单独的预先计算建立可以对其进行查询的不同文件。
-存储在数据容器内的所有数据都以包含没有相对关系结构的记录的文件(flat file)的形式存储。
-查询允许将通配符作为用于一个或多个查询域的查询域值。通配符在本发明中被标注为“*”。通配符意味着仅搜索跟所述查询域相对应的索引域中的*或通配符分选仓。因此,对于查询域值为NBO、*、32的查询,本发明定位其索引中将分选仓NBO和32用于第一和第三索引域并且第二索引中有*或通配符分选仓的所有容器。这是查询加速的原因之一。搜索所有的分选仓响应会比较慢。通过以数据转换时间来整合搜索组合即可在查询时段期间节约大量的计算时间。
-查询允许用于一个或多个查询域的通配符查询域值,并且通配符查询域值意味着将搜索跟用于该索引域的通配符分选仓相对应的统计信息。更准确地说,所述方法包括通过构成一个或多个分选仓的序列来建立索引的步骤,这些分选仓中至少有一个接受用于索引域的所有索引域值。这样的分选仓被称为通配符分选仓。因此,本发明自动建立附加索引以及索引不太明确的数据容器。
考虑来自我们的系统中的一个索引例如NCE0152:这是从NCE预订的旅游类型为01且处于一年中第52周的所有行程的分组细节所用的索引。类似地是NCE0602:这是从NCE预订的旅游类型为06且处于一年中第2周的所有行程的分组细节所用的索引。本发明在索引过程期间建立通配符索引。例如建立了以下的索引:NCE*52是从NCE预订的处于一年中第52周的任意旅游类型的所有行程的分组细节所用的索引;NCE2**是从NCE预订的处于一年52周中任何一周的旅游为02的所有行程的分组细节所用的索引;NCE***是从NCE预订的处于一年52周中任何一周的任何旅游类型的所有行程的分组细节所用的索引。也被称作星号的通配符表示接受所有的索引域值。通配符还也可以由索引值“all”表示。语义上表明NCE***包括用于每一个NEC xx DD的所有记录,其中xx是用于第二索引域(例如旅游类型)的任何指定值且DD是用于第三索引域(例如一年中的周数)的任何指定值。这种特征允许用固定的时间检索对大规模查询的响应。
本发明的另一主题是一种从根据上述方法得到并且包括一个或多个处理器的数据仓库中检索统计数据的方法,其特征在于所述方法包括以下步骤:
-在查询中识别出一个或多个查询域以及关联至查询域的至少一个查询域值;
-在每一个查询域和索引域之间建立对应关系;
-在每一个查询域值以及跟所述一个或多个识别出的查询域相对应的每一个索引域的分选仓之间建立对应关系,由此定义跟查询相对应的一组分选仓;
-搜索并识别出用索引来索引的其中包括跟查询相对应的分选仓组的相关数据容器;
-检索并向用户发送识别出的相关容器的统计数据。
本发明的另一个目标是一种用于从包括一个或多个数据库的数据仓库中收集统计数据的方法和系统,其中收集的统计数据被保留在多个索引包含没有相对关系结构的记录的文件内,所述方法的特征在于包括以下步骤:将统计数据收集到类别分选仓内;增量式地更新类别分选仓;将包含没有相对关系结构的记录的文件分层级地索引为索引树;在每一棵索引树的根节点定义主索引;根据索引直接寻址统计数据的容器或者另一个索引。
可选地,所述方法和系统至少包括以下可选特征和步骤中的至少一项:
-索引包含没有相对关系结构的记录的文件被导入并保持驻留在计算机操作服务平台的主存储器内。
-根据保持驻留在计算机操作服务平台的主存储器内的多个索引包含没有相对关系结构的记录的文件完备地服务来自终端用户的查询。
-以预定的时间间隔从数据仓库中收集统计数据。
-统计数据是由航空公司航班上运输的游客支付的实际机票费用。
-类别分选仓是:航班起点、航班目的地、旅游类型、出发周和预购类别。
-主索引包括起点、旅游类型和航班的出发周。
-包含没有相对关系结构的记录的文件索引包括航班的目的地和预购类别。
-索引包括至少一个通配符。
本发明的另一个目标是一种存储在非易失性计算机可读取存储介质上的计算机程序产品,包括计算机可读取代码装置,被指示用于促使至少一个微处理器操作根据任何一项前述步骤提供统计数据所用的方法。
优选地,计算机程序产品通过在线的网站提供。
本发明的另一个目标涉及一种用于在包括处理装置以及耦合至处理装置的一种或多种数据存储装置的数据仓库内建立统计数据的系统。所述系统的特征在于数据存储装置和处理装置被设置用于实现以下步骤:
·定义多个索引域,每一个索引域都接受多个索引域值;
·建立多个索引文件并且将文件分层级地索引为索引树,其中对于每一棵树都包括以下步骤:分层级地排序索引域;定义分选仓,每一个分选仓都关联至一个索引域并且收集用于该索引域的一个或多个索引域值;通过级联跟分层级排序的索引域的层级相一致的一个或多个分选仓构成分选仓序列而建立索引,索引在每一个索引域中都只包括一个分选仓;将文件分层级地索引为索引树,每一个索引都拥有零个或更多个子索引和/或拥有最多一个父索引,以使每一个子索引都包括跟其父索引的索引相同的分选仓序列再加上关联至附加索引域的至少一个附加分选仓;
·给每一个索引提供被设置用于存储统计数据的数据容器,以使每一个数据容器都被索引并且可以从分层级索引的文件中直接寻址;
·接收一个或多个包括原始数据的输入文件并且用输入文件更新数据容器,其中包括对于每一个输入文件都使用一个或多个处理器来设置用于执行以下步骤:从原始数据中识别和提取通过统计信息分析的至少一种属性和表征所述属性的一个或多个输入文件参数;根据输入文件建立至少一条个体记录,每一条个体记录都包括至少一种属性和表现所述属性特征的一个或多个输入文件参数;将每一个输入文件参数与至少一个索引域相关联;在每一个输入文件参数以及关联至该输入文件参数的至少一个索引域的分选仓之间建立对应关系;识别出用全都跟所述个体记录的输入文件参数相对应的一个或多个分选仓索引的数据容器;用所述个体记录的至少一种属性增量式地更新识别出的数据容器以获取描述属性的统计数据。
优选地,所述系统还包括用于接收查询并且被设置为针对每一次查询都通过使用一个或多个处理器来执行以下步骤:在查询中识别出一个或多个查询域以及关联至查询域的至少一个查询域值;在每一个查询域和索引域之间建立对应关系;在每一个查询域值以及跟所述一个或多个识别出的查询域相对应的每一个索引域的分选仓之间建立对应关系,由此定义跟查询相对应的一组分选仓;搜索并识别出用索引索引的其中包括跟查询相对应的分选仓组的相关数据容器;检索并向用户发送识别出的相关容器的统计数据,由此允许响应于终端用户的查询而跟涉及的数据量无关地并且在短暂的毫秒级耗时内检索统计数据。
本发明由此允许以非常短的时间响应复杂的查询也就是涉及到获取大量信息例如收集和计算日常统计数据的查询。
本发明的另一个目标是一种存储在非易失性计算机可读取存储介质上的计算机程序产品,包括计算机可读取代码装置,被指示用于促使至少一个微处理器操作根据任何一项前述步骤提供统计数据所用的方法。
以下通过注释和定义来详细介绍本发明的各种特征。
统计数据
本发明提供了一种用于建立、存储、增量式更新和检索根据大量原始数据算出的统计数据的系统。对于指定的变量,这些统计数据例如可以涉及频率分布;集中趋势分布的度量例如平均值或中值;分散趋势分布的度量例如标准差;分布本身的性质,由百分位数/分位数等注明。
这样的统计数据并非限制性的。通过统计信息研究的数据性质也不是限制性的。
典型的示例涉及关于待售或由顾客支付的任何指定产品或服务的价格的统计信息。本发明的一种特别有利的应用涉及关于由乘客实际支付的交通票的价格的统计数据。
索引,索引域,索引域值和分选仓
索引域(IF)是一种参数,其与表征另一种待分析参数的统计信息相关。例如,对于旅行费用的相关统计数据,索引域可以涉及:旅行起点(例如索引域=“城市”、“国家”、“地理区域”等);位置方面的旅行目的地(例如索引域=“城市”、“国家”、“地理区域”)和/或主题目的地方面的旅行目的地(例如索引域=“文化目的地”、“体育目的地”、“美食目的地”、“野生动植物观察”、“娱乐活动”等);出发日期(例如索引域=“准确的出发日期”)或“出发时段”(例如索引域=“准确的出发日期”、“出发月”、“出发周”);返回日期(例如索引域=“准确的返回日期”)或“返回时段”(特定的月或周或周末)或“旅游类型分类”(到达之后的行程时长),“预订日期”或“预订时段”,“预购类别”(预订和出发之间的时间段)。以下列出并且在所述示例中描述的索引域是为了便于理解而选择但并非限制性的。
索引域的值(IFV)是能够从预定的值域中分配给索引域的值。该值可以是数字(天数)或者表示某一实体或实体集合(例如机场或城市或目的地主题)的字母数字编码。索引域值通常将具有预先选定的固定长度。例如,在分析关于旅游优惠券价格的统计信息时:
-用于索引域“起点”的索引域值可以是以下的一种:Nairobi(起点城市),Kenya(起点国家),非洲(地理区域)。
-用于涉及旅行目标的索引域“目的地城市”、“地理区域”、“野生动植物观察”、“铁路博物馆”的索引域值例如可以是“Nairobi”。因此显而易见的是单一的索引域值可以关联至多个索引域。
-用于涉及出发日期的索引域“准确出发日期”、“出发周”、“出发月”的索引域值可以是“2007年6月14日”。
-用于索引域“旅游类型分类”或“旅游时长”的索引域值可以是以下的一种:1天、3天、2周、1个月零3天等。
-用于索引域“预购类别”的索引域值可以是以下的一种:1天、3天、2周、1个月等。
-索引域值可以是通过重复适当固定长度的*而标明的通配符。这就类似于全选索引值,其含义对应于计算中常用的无关符(don'tcare symbol)。
分选仓在数学上表示确保索引域值在其中分配的值域。分配给分选仓的标签表现为用于索引域的索引域值并且对应于该长度。即使索引域值对应于一个集合,这一点也同样成立,但是相应地该标签的含义就不再是单个实体而是表示离散的取值集合或可以通过数值范围的端点表示的连续集。例如,索引域“用月表示的出发时段”可以将其值域离散地定义为1-12范围内的整数,12个分选仓能够将一年内的每一个日期粗略地分类成位于1到12之间的一个分选仓标签。
类似地,索引域“野生动植物观察”或“主题目的地”可以具有分选仓“狩猎旅行”以跟构成用于狩猎旅行的良好起点的城市相对应。分选仓“狩猎旅行”可以收集的索引域值有“Nairobi”、“Mara Serena”、“Gaborone”以及位于国家公园附近因其狩猎旅行而闻名的其他城市。
输入文件,记录,属性,数据容器
输入文件是由系统接收并且其中包含初始数据集、系统待分析的原始数据的文件。系统分析输入文件并保留、删除或者将其中的记录属性转化为适当的索引域值,索引域值对应于预定的索引域集合,这涉及如下参数相关联,所述参数的统计信息是由系统作为对查询的响应结果而提供的。输入文件内的所有数据在进行分析之前都被指定为原始数据。
在初始数据集(原始数据)中,记录仅仅是属性元组,由此可以定义并随后计算出我们想要获知其统计信息的一组参数或索引域值。例如,如果我们决定将模型起点和目的地作为影响称为飞行价格的参数的仅有索引域-输入数据源文件可以是优惠券或机票。我们可以设想每一张优惠券都是一条记录,就像表或电子表格内的一行,其中表的列表头对应于多种属性,例如起点、目的地、出发日期、出票日期、PNR日期、舱位等级、票价等级等,其中有一些被选择为索引域,例如其对于索引指定参数是有意义的起点和终点,指定参数譬如是我们感兴趣的价格。转换过程针对初始数据集的属性值进行以获得选定索引域的转换索引域值。例如,如果出发天数被选择为索引域,那么转换过程就利用被称为出发日期和PNR日期(或机票日期)的初始数据集属性以将“出发天数”索引域的值得出为出发日期-PNR日期或者出发日期-出票日期。
要注意的是在转换的数据集中,记录的概念有所不同。在转换记录的储存库中,每一条记录都是索引树内的一条路径。初始数据集内的多条记录映射为转换数据集内的单条记录。作为示例,考虑我们将价格统计信息作为感兴趣的主要研究参数,并且决定将起点和目的地建模作为价格的主要确定因素。现在如果第一级索引域是起点机场,由于在分析的每一张优惠券内都会遇到若干起点机场的大的数目,因此多个索引值分支作为用于每一个起点机场的索引域值。如果第二级是目的地机场,那么多个索引域值分支用于针对指定起点机场的每一个目的地机场,得到2级树。并且最终对于每一个起点-目的地的索引对,都有多种可能的价格。因此从每一个目的地节点分出多种价格,得到树的第三级。对于每一个唯一的起点-目的地-价格三元组或这棵树内的一条路径,都存在频率计数以得到树的第四级。但是应注意,在第三级内每一个树节点和第四级内每一个节点之间的关系是一对一的,这跟树的更高层级中的关系是一对多不同。用于该树内索引路径的价格-频率计数对被称为“数据容器”,实际上其中存储了将相同索引域值(例如NCE-NYC)作为起点-目的地城市的所有原始记录的不同价格分布。(起点,目的地集合)配对和(目的地,价格集合)配对被称为“索引容器”。通常,树内开始于根节点的任何一条完整(直达叶节点)或不完整(未达叶节点)的任意路径都被统称为容器。
查询,查询域和查询域值
由用户填写并发送查询以获取要统计分析的数据的相关统计信息。查询在本发明中可以包括用一条或多条搜索标准指定的“查询域值”。查询在包括大量的查询域值时可能非常复杂,或者在包括一个或少量查询域值时也可能很简单。
查询域是表征查询的参数。每一个查询域值都涉及一个查询域。每一个查询域都对应于一个索引域。当不存在对应于查询域值的索引域时要引入可选步骤。这些可选步骤在下文中有详细说明。
指定的查询域值对应于跟指定查询域值的查询域相对应的索引域分选仓。“对应”表示查询域值可以类似于索引域值(真实值或描述值),可以包含在索引域的分选仓内或者可以等价于索引域的分选仓。无论是哪种形式或形态,查询界面均可接受用户输入,必须将该输入转化为查询域值的字符串,这是通过首先将确切的输入转化为如下索引域的分选仓值而实现的,其中该索引域的顺序恰好跟用于建立用于自身的转化数据集所使用的索引的顺序相同。
例如,如果存在以2个索引域值索引的转化数据储存库,第一级是包括起点、旅游类型和起始周的级联的复合类型,并且第二级索引是目的地城市,那么查询“出发日期为8月4日且对于25天的旅行时长来说从Dubai旅行到Nairobi由旅客实际支付费用的频率分布是多少?”就通过首先将用户输入转化为类似于DBX532这样的字符串作为用于第一索引的索引域值,获取用于下一个索引的对应容器,为了到达最终数据容器而在找到的索引中渐进地搜索第二索引NBO来进行回答。
因此,本发明的有利特征是:
-存储、索引和推理记录组(也就是业务相关容器)而不是个体记录。与传统数据库中的做法相反,本发明具有存储、索引、检索和推理记录组而不必存储个体原子记录的能力。
-在查询时间并不执行容器索引或内容的计算。所有内容都是预先计算的。在查询时间,仅搜索相关记录并且结果不是发现就是未发现。用于每一个容器的所有索引、递归和非递归内容都是根据对于所需特定业务来说重要的个体记录中的任何域预先计算的。在查询时间仅检索对应于正确记录的统计数据容器。
-如果不同的商业用户需要将不同的索引用于相同或部分重叠的数据,那么单独的预先计算建立不同的文件并且随后可以对这些查询进行不同的储存库索引
-索引用作在存储器索引表内快速检索以寻址大块内容的钥匙:RAM(随机存取存储器)驻留的分组记录数据允许快速检索,因此跟RAM方法相比克服了如今缓慢的日常I/O方法。为了实现这一点,文件大小被保持在可接受的限制内,正如在本发明以下的说明内容中介绍的那样。
-索引可以组合有指定索引变量中的多个取值之一,指定索引变量是其含义为“不关心”的通配符*。在关系数据库术语中,这就意味着针对所有可行的相关表连接而预先计算出结果。
-在需要加入新的个体记录或者需要删除旧的个体记录时将增量机制用于更新容器而无需放弃过去的计算。在需要加入新的个体记录时,建立并搜索其对应的索引。如果发现这样的索引,那么就更新对应于参数的统计信息。只用适当的计数或新的值更新序数或间隔值。如果新的个体记录没有对应的索引容器,那就建立其对应的索引并更新内容。
-通过业务需求的所有相关标准建立、存储和增量式更新统计价格分布的机制需要使用上述机制。尽管个体记录的总数有巨大的增加,但是由于使用了频率分布表达,因此容器大小和文件大小不会增加太多。由于向容器加入新的个体记录而改变的所有内容最少:仅仅是相应频率分选仓内的计数值。不再加入其他的数据。这样就保持文件大小可控。
附图说明
图1示出了设计用于根据本发明的数据结构实时处理的查询类型的示范性结果。
图2介绍了如何组织从仓库数据库预先获取的数据以允许实时访问存储信息。
图3示出了如何记忆和组织输入密钥以允许快速访问数据结构的计算出的统计数据。
图4根据本发明示出了允许快速索引、检索和显示从数据仓库中收集的统计数据的系统的整体架构。
图5讨论了根据本发明得到的系统的性能。
图6讨论了根据输入的原始数据增量式更新索引文件。
具体实施方式
本发明以下的详细说明应参照附图。尽管说明内容包括了示范性实施例,但是其他的实施例也是可行的,并且可以对介绍的实施例进行修改而并不背离本发明的实质和保护范围。
尽管以下对本发明的详细说明是在涉及旅行数据并且更具体地涉及飞行航线和票价的GDS的背景下示出,但是对信息系统领域的技术人员来说显而易见的是本发明可以轻易地适用于处理任何类型的数据以使其应用并不受限于飞行航线的行程服务领域。
图1示出了设计用于根据本发明的数据结构实时处理的查询类型的示范性结果。图1还示出了设置为响应于这种查询而提供的统计数据的显示示例。
被本发明的数据结构允许的查询实际上跟发往常规关系数据库的查询(例如SQL查询)有很大的不同。主要的不同之处在于查询中并不隐含其他情况下都需要的任何后处理,这是因为,要获得图1中的示范性显示,多个关系数据库表格中的个体项目都要被集中起来并进行处理。
为了运营任何大型公司,管理团队和主管专业人员通常都需要收集统计数据,其片段必须可以从他们的数据仓库的各种数据库中组装并且保持日常更新。在本发明中介绍航空业的背景下,预订编号以及旅客为从指定起点飞行到指定目的地所支付的实际费用对应于专业人员希望通过实施本发明数据结构的软件应用程序实时显示的请求种类。
因此,如110所示,可能想要显示例如在任意的出发日期115(输入域为空),在芬兰的赫尔辛基市111和挪威的奥斯陆机场112之间并且用于所有预定的返回日期或旅行时长117的所有已完成并付款的预订。域(114):起点、目的地、出发日期、返回/时长和提前预订的时间,每一个都构成了可查询的域。取值是如前定义的说明性文本编码或数字。对于旅游业来说感兴趣的一个重要参数是如图所示设置为八个分选仓的提前预订或预购时间119。考虑该示范性显示中的所有内容以使柱形图110示出出现频率与在指定的起点和目的地航线城市之间登记和支付的实际预订费用。明显地,表现这种分布特征的所有标准统计数字也可以计算并且在112处显示,其中包括:平均值、标准差、最小值和最大值等。
用户可能想要进一步限定显示内容以仅示出在某一确定的日期125出发,仅考虑某种类型的旅行时长127并且用于两周或更短的提前预订时间,以使显示的柱形图变成如120所示。
为了能够实时地显示和更新这种查询,在附图中详细介绍的本发明的数据结构必须从数据仓库中预先读取、计算和组织数据结构,以使所有需要的片段在查询时均可轻易地可用于快速显示。在用于介绍本发明的航空旅游业的说明背景下,并且对于以110示出的示范性种类的复杂请求,数据结构被组织为使得可以支持全世界的所有航线城市和机场,而且还设置为直接输入到数据结构中以允许显示其他的选定参数,例如出发日期、旅行时长、提前预订时间等。另外,通配符参数也是可行的,由此使用户具有不必明确某些参数(例如出发日期)的自由度。数据结构提供的可行性包括例如大概的起点和目的地,以使用户可能想要查阅从精确的起点(例如赫尔辛基)到世界的某些区域(例如北美的所有城市和机场)的全部航班的预订情况。
本发明的数据结构也可以由能够在线可用以允许事先安排旅行的旅行应用程序的终端用户使用。由于使用的数据是(从GDS数据库提取)由游客为预订航班而支付的实际价格,因此如图1所示的收集和显示内容就成为很有价值的工具。工具可以被用于利用上述特征估算未来行程的价格并确定游客的选择。例如,不必选择精确日期和/或不必选择精确起点或目的地的可行方案就为目前的旅游点增加了很大的自由度。
实际上,后面这些情况通常仅考虑公开的票价并且甚至更常见的是仅考虑最低的公开票价,而不顾及可用性且只需要忽略由旅客支付的实际费用的范围和分布。此外,数据结构可以扩展以使起点和目的地包括例如可能毫无共同点而仅仅是关注地理位置的主题目的地。这样的主题例如可以是包括埃及金字塔的古代文明景点以及在墨西哥和拉丁美洲有前哥伦布时期居民的古代文明景点。如上所述,古代文明景点可以对应于专用的索引域值和查询域值。
正如在本发明以下的说明内容中进一步介绍的那样,响应于上述类型的查询显示统计结果的检索过程几乎跟涉及的数据量无关并且在小数值的毫秒级范围内。即使对于涉及临时(ad-hoc)参数的分布子集也可以确保类似的响应时间并且显示内容允许以用户可选择的方式轻易地视觉比较该分布子集。
图2介绍了如何组织从仓库数据库预先获取数据以允许实时访问存储的信息。
为了实现该目标,通过将预先获取的数据记录重新分组为有限数量的数据类别、本说明书中的指定分选仓并且很好地适用于考虑的业务类型(也就是示例中选择用于介绍本发明的航空业)来执行预先获取的数据记录的压缩。因此预先获取的数据通过从仓库中检索而构成,所有的出票数据记录或优惠券(关于现已消失的印刷机票的优惠券)每天都通过包括旅行社、在线旅游服务提供商和航空公司办事处自身在内的各种销售渠道发放。总之,在累积了一个较长的时间段(例如一年)之后,这就代表了海量的信息,但是这些信息在数据结构中利用以下的分选仓来压缩。
预购日期是旅游业的非常重要的参数。预购日期通常如下所示被重新分组为仅8个标准分选仓:
Figure BDA0000368875720000201
另一种压缩步骤通过将旅游类型也用如下所示的8个标准分选仓重新分组来实现。这就允许将数据空间从考虑到一年中每一天均可作为出发或到达的365*364维快速压缩至8维的数据空间。
Figure BDA0000368875720000211
第三压缩步骤通过仅考虑将一年中的52周而不是单独的天用作出发日期来获得,以使平时的每一天都落在一年的52个周分选仓之一内。365维的数据空间由此被压缩为52维空间。
在本示例中并未针对起点和目的地的配对尝试进行特定压缩,但这并不是对本发明的限制。本发明可以扩展为包含范围更广的标记为“亚洲”、“美洲”等以涵盖多个目的地机场的分选仓。尽管全世界存在成千上万个机场,但是实际上并不需要考虑所有的配对组合,而且毕竟优惠票只能针对实际上其间有航班运行的机场配对发放。这就极大地减少了需要考虑的组合数量。
下一个步骤是定义用于数据结构的主索引或输入关键字。构建主关键字的方式适用于介绍本发明的背景也就是航空业。其他的设置方式明显也是可行的。在该示例中,主关键字是通过级联获得的第一级索引:
-航班起点(第一索引域)使用常规的用于机场和城市代码的3字母IATA(国际航空运输协会代码)。
-旅游类型的索引(第二索引域),如上所示是0-7范围内的对应分选仓的一位数字。
-出发周(第三索引域),是1-52范围内的两位数字。
用于索引数据结构的主关键字示例如下:
Figure BDA0000368875720000221
主关键字是用于寻址查询表的主要输入关键字,查询表采用文本字符串可能是非常长的字符串构成的包含没有相对关系结构的记录的文件(flat file)的形式,每一个字符串都以压缩的方式容纳根据从仓库中预先获取的原始数据计算出的计算统计数据并且跟这一主关键字相匹配,图2示出了其中的一个示例。
在此应该注意的是,压缩算法可以被用于进一步压缩文本字符串并降低存储要求,以使得即使是最大的数据结构也可以被完全保存在计算机的主存储器内,从而确保非常快速地访问任意的输入关键字。
在该示例200中示出了3个主关键字:201,202和203。第一个是在周索引域内具有通配符的主关键字。该主关键字由此将在一年中的任何一周期间从肯尼亚的Nairobi(NBO)出发的所有类型5的航班的统计数据重新分组。文本字符串因此而相当长。其如图所示在205处结束。
每一个字符串都包含对每一个目的地和预购或提前预订分选仓定义计算出的统计数据边界的副关键字,以使得如随后图3中介绍的那样在已经检索到字符串内的对应关键字索引之后就可以对其直接访问。字符串201的所有第二级关键字都以210示出。它们表示针对相应的主关键字201已经从数据仓库中检索出的那些航班预订信息的全部目的地。跟用于起点一样,目的地城市和机场也用其3字母IATA码表示。每一个3字母IATA码都是索引域“起点城市”的索引域值。
第三级索引通过先前定义的预购分选仓编码(也就是如220所示0到7之间的编号)来完成。计算出的统计数据就像通过任意两个关键字限定边界的230一样被保存在容器内。
图3示出了如何记忆和组织输入关键字以允许快速访问计算出的数据结构统计数据。
每一个主关键字都位于搜索树300的根节点处。用简单的文本字符串301来举例说明这棵树。主索引、第一级关键字310因此是NBO532,表示该查询表项如前所述是索引来自NBO(肯尼亚的Nairobi)的出发日期属于一年中的第32周的旅游类型5的所有航班。树的主索引是用于这棵树所有索引的父索引。
在本示例中,这一查询表项内存在通过目的地机场,也就是通过先前定义的第二级关键字320索引的三个容器,即DXB(阿拉伯联合酋长国的迪拜),KGL(卢旺达的Kigali)和LHR(英国的伦敦)。拥有目的地机场的每一个索引都是主索引的子索引。更一般地并且正如通常在本技术领域内认可的那样,对于指定的树索引,父索引就是树中比指定索引更加靠近树根的索引。对于所述的指定索引,子索引就是该树中比指定索引更加远离树根的索引。指定索引可能拥有多个父索引和多个子索引。
如果已经针对所有的预购类别计算出统计信息,那么就应该在本发明的数据结构内的325这一点插入这些信息。对应数据容器的内容可以因此开放以允许访问从Nairobi到迪拜的所有旅行的统计信息,而跟其所述购买类别无关。
另外,每一种预购类别都用第三级关键字330来单独寻址。对于本示例中的第一目的地机场也就是DXB,第三级关键字就是分选仓编码6,其表示用于该预购分选仓的统计信息。用于该容器335的统计信息是数据块:104347-0-104347-104347-3-0;并且用于该数据的频率分布是104347-3。这些数字是直到第n行计算出的统计参数的状态值并且对应于在随后的公式中出现的Mn,Vn,Sn以及用于计算Mn+1,Vn+1,Sn+1的一些其他的增量状态。
一般情况下,针对指定的目的地存在多种预购分选仓。然后,针对每一个预购或提前预订的分选仓重复同样的格式335。例如,在图2的数据结构中,对于第二级关键字AMS(荷兰的阿姆斯特丹)210,定义了五个第三级关键字220也就是0,1,2,3,4和6;每一个都拥有其自身的统计数据集。
一系列的关键字树(每一个主关键字一棵)正如300所示通常是用于允许快速检索输入关键字的最方便结构,以使能够直接寻址多维查询表内的容器由此接近于以恒定的时间检索。但是也可以考虑包括节点图或节点网络的其他组织结构。
图2和图3中介绍的多维数据结构实现了对于行业用户群组来说很重要的以高效搜索为导向的数据索引存储。因此允许处理例如以下的复杂查询:
Figure BDA0000368875720000241
索引被用作RAM(随机存取存储器)驻留的嵌入索引表的主关键字。使用索引表是因为它们是随机访问索引存储器的已知快速方法。它们允许恒定时间或接近恒定时间或者最差情况下对数时间的存取,如用常规的编程语言譬如C,C++对数组的随机存取。这样明显有助于提高本发明的速度。
另外,本发明使用的存储器-CPU总线也有助于提高统计数据的处理和检索速度。
根据本发明,索引例如NBO532可以用各种不同的方法可视化和实现。
根据第一种方法,索引可以形象化并处理为索引域或索引的层级。例如,NBO532可以被认为是以下的层级:NBO→5→32。在这方面,全局上其他的潜在节点也可能是在第三索引级从NBO发出(例如NBO→5→41或NBO→5→45)。NBO532,NBO541和NBO545是NBO5的子索引。类似地,其他的潜在节点也可能是在第二索引级从NBO发出(例如NBO→4→28或NBO→4→26)。NBO→4→28和NBO→4→26是NBO的子索引。这是一种有向树的实施方式并且全局上整个数据结构就是这种树构成的森林,其中每一棵树的根节点就是特定的起点。根节点没有父索引。叶没有子索引,也被称为子索引。
更一般地,域的分层级排序意味着要确定域的层级。这种层级优选地根据预计的查询来自由确定。将文件分层级地索引为索引树意味着每一个文件都可以根据其索引的层级排序被放入树内。
例如,对于以上的示例,涉及起点的域的层级要高于涉及旅游类型的域的层级。而且,涉及旅游类型的域的层级要高于涉及出发周的域的层级。例如,如图3所示,涉及起点、旅游类型和出发周的域在层级上高于涉及目的地机场的域,涉及目的地机场的域相应地在层级上高于涉及预购类别的域。
关于将文件分层级地索引为索引树,文件是根据其与域相同的层级排序的索引来索引的。例如索引NBO532在层级上高于以下的索引:NBO532+DXB,NBO532+KGL,NBO532+DXB+类别0,NBO532+KGL+类别0。在索引树中,用索引NBO532索引的文件因此跟用以下索引NBO532+DXB、NBO532+KGL、NBO532+DXB+类别0、NBO532+KGL+类别0索引的文件相比更加靠近根节点。相应地,例如索引NBO532+DXB在层级上要高于索引NBO532+DXB+类别0。那么用索引NBO532+DXB索引的文件因此就比用索引NBO532+DXB+类别0索引的文件更加靠近根节点。涉及域的分层级排序以及文件的分层级索引的所有这些说明在本说明书和附图中都有清楚的体现。
根据另一种实施方法,索引被扁平化并且索引是一种复合,在此意义上,NBO532被处理为没有任何层级的单个索引。这就意味着例如NBO428和NBO426不再是NBO的层级子节点,而是其他树的独立根节点。
在这两种极端方法之间,本发明还提供了索引结构表现出的整个维度链条中的某些部分(例如起点→旅游类型→出发周→目的地→预购→价格→价格频率)是一种层级和扁平化索引的混合方案的索引可行性。这种索引被称作混合索引。例如我们可以选择将起点→旅游类型→出发周表示为扁平化索引(例如NBO532)也就是没有层级,并且将其余的维度(例如目的地和预购)表示为层级。例如我们还可以选择(起点→旅游类型)作为扁平化作引而将其余部分(出发周→目的地→预购)选择为层级。
通常层级表示会比扁平化表示消耗更多的内存,但是能够满足更加多样化的统计查询。反之对扁平化索引同样成立,扁平化索引通常提供了较低的灵活性但是需要的内存也较少。在任何情况下,无论使用哪一种方法,索引都会变成为树中的路径或者在一维或一种扁平化复合维度的情况下表现为退化的路径。
根据上述内容显而易见的是,选择分层级排序的索引树在维度顺序以及这些元素是分层级还是扁平化模式方面都可以有不同的排列或组合可能性。选择混合索引中的哪一种取决于获知商业应用需要的查询范围以及在合理的内存需求范围内适应这样的要求。因为构成层级一部分的每一个索引都索引下一个维度的可能的索引域值或分选仓,所以减少存储器的关键就在于预先获知一个维度内可能有的输入文件参数范围-无限或有限,离散或连续。这会影响索引域的建立和分选仓的效果,因此影响树在分层级索引中的分支系数-高分支系数会提高对内存的要求。而且,我们需要问这样的问题:有必要让业务保留一个维度中所有可行的输入文件参数/索引域值或者为了便于理解而将其分组到分选仓内吗?以上通过用于旅游类型和预购的详细示例介绍的分选仓通过降低当前维度(例如旅游类型)的分支系数以及降低在索引方案(例如出发周→目的地→预购)中遵循的维度分支系数的组合爆炸式增长效应而减少内存需求。
一个很自然的问题是如果有人发送了对应于例如索引NBO532的查询,那么会输出怎样的值?所输出的包含针对从NBO出发的旅游类型为5且出发周为第32周的所有旅程的属性(通常是价格)的频率分布的统计信息容器是什么?
因此本发明的一种主要方面是在存储器内建立相关的数据结构以将这种详尽的依赖于运输服务提供商领域的数据索引方案与其相应的统计容器相连接-在其中建立这些索引并且其相应的统计数据容器在批量预处理时被填充。数据容器可以在选定的索引层级连接至这些索引并且由此就能够根据用户指定的查询准确地获得用于索引的这些取值组合的统计信息。用这种方式就能够非常快速地回答例如“我从尼斯可以去哪些地方?”或者“在一年中的第32周从NCE到各个目的地的价格如何?”等各种查询。
多种机器的RAM都可以被用于提高速度,特别是如果数据量不适合装在内存中的话更是如此。如果两个不同的用户需要以快速响应时间访问相同的数据,那么可以在不同的索引表中为他们建立不同的索引并将其载入分布式RAM。
图4根据本发明示出了允许快速索引、检索和显示从数据仓库中收集的统计数据的系统的整体架构。
实施本发明的应用软件被假设为由计算机化操作平台410运行。例如,通过由GDS架设的大型存储、计算和网络资源来支持其相关的旅行社、航空公司和旅游服务提供商。软件应用在此被称为典型价格聚合器或TPA420。生成的文件432通常是统计数据的包含没有相对关系结构的记录的文件,如先前附图中所述这些文件被索引以允许快速检索统计容器。被索引的文件也称为索引文件。
聚合器加工的输入原始数据在本发明的这种示范性实施方式中是优惠券文件434,这些文件例如在每天被汇总到由GDS运行的各种数据库中以支持其客户网络。通常,优惠券由远程连接的来自相关旅行社的旅行代理人440、市内或机场的航空旅行办公室预订,并且也可以由旅客利用GDS支持的在线旅游网站直接预订。
索引包含没有相对关系结构的记录的文件按预定的时间间隔更新(例如每天更新一次),以使优惠券文件和生成索引包含没有相对关系结构的记录的文件所必须的任何数据436都相应地从实现GDS数据仓库410的已在其中记录所有日常交易的存储和计算设备下载。它们被存储在通常是FTP储存库的储存库430内。
通常,例如在单个处理器上索引一个千兆字节的数据文件需要用8分钟。
一旦索引的包含没有相对关系结构的记录的文件已经生成和/或由聚合器应用程序420根据最新传输的优惠券文件更新,那就将它们存储在储存库内并且导入452以通过服务器450的计算资源来存储和处理。服务器的作用在于响应聚合器应用程序的各种终端用户(例如管理团队和公司主管专业人员)的查询,管理团队和公司主管专业人员需要从数据仓库公司以及所有正规旅行社和游客那里收集统计数据,此时聚合器应用程序可用作很有价值的工具以增强由常规旅游在线网站和常规旅行社提供的服务。
无论终端用户是谁,他们的查询处理都通过执行任何一种标准软件来完成,标准软件意味着被开发用于实现常规的互联网客户端/服务器模型。终端用户460通常在其终端和个人计算机上运行某一种可用的客户端浏览器,以使他们能够跟服务器中适当的前端应用程序458通信。本发明成功地将前述数据结构的规模保持得足够小从而能够完全装入服务器的主存储器内。因此,索引包含没有相对关系结构的记录的文件的集合就能够持久地保留在由RAM(随机存取存储器)构成的快速主存储器454内,目的是为了加快通过web服务层456的终端用户查询的处理速度。
图5讨论了典型价格聚合器的性能。
第一示意图510示出了由聚合器运行一个月所处理的典型数据量。该图比较了处理的原始数据量也就是每天接收的优惠券文件累积一个月后的整体大小512以及计算得到的索引包含没有相对关系结构的记录的文件的大小514。Hash树存储量以118Mb/月的速度增长,而输入(优惠券文件的)速度则是10Gb/月。但是,曲线图表明在一个月结束时处理的数据会达到2千兆字节。
每一天通常对输入的优惠券文件也就是原始数据的处理时间由示意图520示出。由聚合器应用程序索引包含没有相对关系结构的记录的文件所需的总体处理时间每个月不会超过一小时。每天所需的总时间由上方曲线522表示。中间曲线524示出了总时间中花费用于将属性原始值转化为索引域的分选仓数值的比例。下方曲线526示出了总时间中用于在现有的索引树内计算和插入路径的比例。
示意图530的用途是频率分布表达及其优点的证明。该图示出了在处理的第一天以空树开始,随着我们处理的数据越来越多,转换数据集内的容器(树内索引路径)数量的斜率随之减小。这是因为在处理开始时,我们拥有的是一棵空树,在其中很容易添加原本没有的大量新的起点-目的地-价格路径。由于维数小,这些路径很快就能达到接近于完全覆盖起点城市数量乘以目的地城市数量乘以可能的出发周数量乘以可能的旅游类型数量的向量积-这还要感谢少量精心选择的仅用于旅游类型和出发周的重要业务分选仓。因此,在我们遇到越来越多的数据时,树内仅加入了少许几个新容器-相当多的数据是作为频率计数被加入-完全覆盖的时间在斜率为0度时才会达到。尽管图530针对第一次处理示出了容器的增加趋势,但是在日常处理中我们通常会看到容器数量只有很少的增加或者没有增加-此时我们应该启动高层级容器并且以几乎相同层级的容器结束-这是完整的平面生长曲线。这就意味着如果只增加频率计数,那么文件大小跟初始数据集记录的数量增加相比只会增加极小的数量。也就是说文件大小几乎跟初始数据集记录的数量无关,并且因此即使是记录数量显著增加也仍然能够装在RAM内-这一点只要维数小就成立。
如前所述,改变涉及到的统计容器在每一次接收原始数据新片段(也就是从每天的优惠券文件中接收)时并不是完全重新计算。为了保持包含没有相对关系结构的记录的文件的总体规模较小并且将处理时间限制为如图520所示,统计数据是被增量式地更新。已知有数学方法可以做到这一点。以下简要介绍几种用作主要的统计参数:
Figure BDA0000368875720000301
这就允许将每一天的交易无缝集成到应该可供下一天使用的数据范围内且无需取消直到前一天为止所进行的计算。
图6讨论了根据输入的原始数据也就是优惠券文件来增量式更新索引文件。
在工作日结束后,所有的票据交易都被批量加入现有的索引表内。为了示范这种情况,我们以小得多的比例示出了记录的添加并且假设今天是2007年5月29日。用于当前日期的关于优惠券文件的交易以610示出。
原始优惠券文件记录610通过得到个体出票记录的过程重构为机票。以620示出了两项个体记录。每一个原始输入文件610和个体记录620都包括属性(8000KES,25USD)和输入文件参数(NBO,KIS,BLM,2007年7月1日,2007年7月2日,04等)。每一种输入文件参数都对应于一个索引域(起点城市、目的地城市、出发日期、到达日期、旅游类型、预购组等)。个体记录620在图6中尚未分组。对于每一条个体记录,第一域621是机票编号;第五域625收集绝大部分输入文件参数并且是所有分层级索引域:全都在这一序列内的起点、旅游类型分选仓、出发周、目的地和预购分选仓的级联表达。
用于每一天的机票记录都被保存在以日期命名的独立文件内。
无论这一机票记录在何时建立,只要存在主索引NBO027、NBO0**、NBO*27和NBO***就要进行更新。由于主索引表已经载入内存,因此这种更新只需要耗费O(1)或恒定的时间。如果在建立记录时不存在任何索引,那么是主索引表内的一条添加记录。根据内部实施方式这可能要耗费O(1)的时间或O(log n)的时间,其中n是索引表内的记录数。要注意的是如果记录尚不存在并且跟搜索和检索时间无关,那么O(log n)的时间就增加了用于索引建立的时间。
一旦识别出新表或旧表的记录,那么就搜索嵌入的目的地表以寻找关键字KIS,该关键字也是起点关键字的一部分。如果不存在那就建立该关键字,如果存在就识别该关键字。这一时间也是O(1)或O(log n)。一旦识别出KIS关键字就更新所有用于预购类别的统计记录。由于例如用于增量式更新的数学公式要移动平均值、移动标准差和移动百分位,因此这种更新也要耗费O(1)的时间。
在同样的分层级思想下,原始关键字中的最后一个字符0表示建立或找到了预购类别。该时间也是O(1)或O(log n),但是与以上的情况相比是O(log n)或O((log n)^2)。更新其中的统计信息。
用于更新频率分布的右侧集成价格分选仓的发现也可以是恒定的时间。这是因为频率分布也是通过价格索引的表。而且,价格是参照起点的货币记录的。要进行合适的转换。因此,在这种情况下,第一记录具有8000KES的价格(肯尼亚的当地货币,肯尼亚先令)。如果8000在频率分布中已经存在,那么就通过将数值加1来更新其频率,否则就用关键字8000建立频率分布表内新的表项并且其值为1。
要注意的是频率分布表的大小自然是通过支付的费用控制的,这也相应地取决于航线的费用级别。对于任何指定的起点和目的地,这都是一个很小的数字。
典型的索引建立时间520已经在图5中示出。
由于根据用于每一天的优惠券文件构建的机票记录被保存在通过日期命名的单独文件内,因此很容易通过自动处理来定位用于指定日期的记录。
如果如前所述记录仅保留一年,这就意味着在添加用于2007年5月29日的交易时就必须要删除用于2006年5月29日的记录。
删除过程恰好是添加过程的翻转。定位用于2006年5月29日的机票文件,每一张机票都被读入内存。由于机票620记录了个体记录的索引,这些嵌入的索引被用于定位分组容器及其子容器。对于第一条记录,在此情况下这些索引是NBO027,随后是KIS,随后是0并且随后是8000。但是跟添加不同,删除必须要从最深的层级到最浅的层级由下往上地进行,这就意味着首先减小子容器NBO027KIS0的8000频率分选仓的频率计数,然后整体统计信息更新NBO027KIS的0分选仓,并且随后整体统计信息针对NBO027KIS的分选仓进行更新。所有更新都要耗费O(1)的时间来定位和更新。如果在8000分选仓内只有一个数据片段,那么只有在8000频率分选仓的计数减少为0时才予以删除。只要8000频率分选仓将来再次出现,这种优化就能节约添加过程期间插入记录的一段O(log(n))的时间。这还具有另外的优点是:搜索具有0计数频率分选仓的记录也可以潜在地指示商业用户在前些年和今年之间任何的价格变化-这一点本身可以是识别价格年度变化的单独离线过程。
最后,作为删除过程的一部分,用于NBO*27、NBO0**或NBO***的嵌入表也必须更新。
总之,本发明包括以下特征:
-给出大量的每日客户数据(例如来自GDS的旅客航空优惠券和出票记录),其中每一条个体记录都有不同的域(例如预订日期、出发日期、起点、目的地、付款价格等);
-还有能够通过预订标准的集合(例如通过预购、旅游类型等)及其意味着数据量爆炸至千兆字节级别的组合来搜索和检索在长时间段(例如一年)内关注单一维度(例如付款价格)的累积数据群组(而不是个体记录)的商业需求;
-还有向不同的产业用户(例如航空公司、游客、旅行机构)提供对这些千兆字节级别数据的多种在线统计服务的进一步的商业需求;
本发明提供了技术解决方案:
-用于有效搜索有向索引存储中对于产业用户群组来说很重要的此类数据;
-还允许将每一天的交易数据无缝集成到应该可供下一天使用的数据范围内且无需取消直到前一天为止所进行的计算;
-使得对查询的统计结果检索过程几乎独立于数据量并且耗时在小数值的毫秒级范围内;
-其中即使对于涉及临时参数的分布子集也可以确保类似的响应时间;
-其中显示内容允许以用户可选择的方式轻易地视觉比较分布子集。
跟现有技术关注数据仓库和数据集市相反,本发明带来了比通常由这些数据储存库使用的一种关系数据库都更为轻巧和精简的方法。实际上,关系数据库自身带有跟解决背景技术部分所述的商业问题无关的太多特征以及计算和I/O开销。以下介绍主要的区别:
-首先,关系数据库实现了检索每一条原始个体记录。如果用户仅大体上对某些数据的群组和亚群组的性质感兴趣,那么在查询时间进行的计算会显著增加响应时间。本发明提出识别业务相关群组和亚群组并且针对其大规模地预先计算期望性质。这是本发明自身区别于关系数据库方法的一项关键特征。
-导致本发明的方法跟关系数据库之间有所区别的其他原因是在考虑的商业环境中,用户只会实时读取该数据库。由于没有实时写入,因此就不需要像关系数据库那样实时提交回退的设备开销。
-本发明相对于关系数据库考虑的第三点是如果数据是以关系数据库的最优规范化-非规范化方案存储的,那么为了回答查询就需要进行连接。由于关系数据库存储有几百万甚至是上亿条这样的原始记录,因此连接就会变成对响应时间过大的影响因素。在本发明的方案中,所有可能的连接结果都在业务相关参数值范围内用索引域值预先计算。为了实现这一点,如上所述使用了通配符索引技术。
-考虑的第四点是标准的关系数据库在被查询时先从磁盘中检索原始记录,然后才能开始对一组记录进行计算。现代I/O操作跟RAM机器相比仍然处于较慢的数量级。因此,通过保持文件大小低于RAM限制而使本发明的数据结构能够RAM驻留,就提供了相当可观的速度效益。这是通过操作分组而不是原始记录以及通过存储频率分布来实现的,从而使得每一条新纪录最多只会增加几个字节,导致文件大小的增加斜率非常小。
-另外,由于本发明操作群组而不是原子记录(跟关系数据库的做法相反),因此在每一天业务结束时的批量处理期间是用增量方法来更新每一个记录群组。由于可查询的文件大小被保持为远低于上限,因此可以轻易地制作该文件的另一个(不是被查询的)副本。该文件可以位于单独的实体机器内或者处于第二处理中,第二处理接收所有的实时客户数据更新以更新其群组和亚群组而不会以任何方式影响到用户的查询响应时间。该处理能够以周期性的间隔将数据保存至文件。用另一种特定的对应于实时解决方案所需的周期性间隔,或者在特定的数据子群组未经过主动查询时,第二处理可以向用户正在针对其运行查询的文件发送更新包。
如前所述,根据本发明的在线旅行系统能够跟旅行参数无关地大大增强游客和旅行社规划行程的能力。本发明跟现有系统相比的优点将通过以下的问答而得到进一步的体现:
问题:“我是对价格敏感的休闲游客,想在不可改变的日期寻找最便宜的价格。行程系统怎样才能帮到我?”
回答:“您可能想要查看在未来的预购日期范围内是否存在最低价格的预订。行程系统将向您展示过去是否有某些航空公司推出过一些跟今天的日期(假设今天的日期是2009年12月18日)相比更接近于您的出发日期(例如2010年7月1日)的低价舱位。这就意味着如果您不想现在就预订,那么行程系统会告诉您可以在何时(可以是出发日期也就是在6月1日出发前的30天内)重新进行搜索并预订到这些价格。当然这一点不能担保。但是这种假设是以由旅客实际支付的价格的历史数据为基础的。因此还是很有可能做到的。”
问题:“我是对价格敏感的休闲游客,想在可以改变的日期寻找最便宜的价格。行程系统怎样才能帮助我得知何时旅行?”
回答:“如果您想要现在预订并且您的出发日期灵活可变,那么您只需简单地加入可能的提前预订时段,其上有直到目前可知的最低价格,然后针对这些日期搜索航班即可。”
问题:“我计划到澳大利亚度假。我不太确定日期或旅行的时长?我的航空旅行预算应该是怎样的?
回答:“只需用您的起点以及您想要游览的一些主要城市的价格来查询行程系统。获取不同预订日期的均价以得到您的预算。”
问题:“虚假在线广告在我的行程搜索期间引诱我尝试点击,并且我在这些站点上从来都找不到非常低的票价,因此浪费了我的时间,对此我感到失望。行程系统怎样才能帮到我?”
回答:“行程系统能够通过旅游类型、通过不同的预购时段并且针对一整年中特定的出发周向您示出起点和目的地之间的整个票价范围。这就意味着您能够获得以该起点和目的地运行的所有航线的所有机票等级的(含税)价格。这还意味着您在开始实时机票搜索之前,如果您已经查询过根据本发明所述的行程系统,那么就已经获知了该有怎样的预期。您被不合理诱导的几率更低。另外,通过察看预订频率,您就能够获知消费者市场的评价,其中不仅有供应方,而且还有需求方(哪些人在预定哪些地方)。此外,您可以获知何时是(价格较低)搜索和预定的理想时间以及何时不是,而不必认定您就想现在预订。
尽管图示和介绍了给出的本发明优选实施例,但是显然应该理解本发明并不局限于此而是可以在所附权利要求的保护范围内有各种不同的实施和实现。

Claims (25)

1.一种用于根据数据仓库(410)提供统计数据的方法,其特征在于包括由至少一个数据处理器执行的以下步骤:
·定义多个索引域(114),每一个索引域都接受多个索引域值;
·建立多个文件(432)并且将所述文件分层级地索引为索引树(300),其中对于每一棵树都包括以下步骤:
-分层级地排序索引域(201);
-定义分选仓,每一个分选仓都关联至一个索引域并且收集用于该索引域的一个或多个索引域值;
-通过级联跟分层级排序的索引域的层级一致的一个或多个分选仓以构成分选仓序列从而建立索引,索引对每一个索引域都只包括一个分选仓;
-将文件分层级地索引为索引树(300),每一个索引都拥有零个或更多个子索引和/或拥有最多一个父索引,以使每一个子索引都包括跟其父索引的索引相同的分选仓序列再加上关联至附加索引域的至少一个附加分选仓;
·给每一个索引提供被设置用于存储统计数据的数据容器(325,335),以使每一个数据容器都被索引并且能够从分层级索引的文件中直接寻址;
·接收(436)一个或多个包括原始数据的输入文件(434)并且用输入文件(434)更新所述数据容器,其中包括对于每一个输入文件都使用一个或多个处理器,其被设置用于执行以下步骤:
-从原始数据中识别和提取通过统计信息分析的至少一种属性和表征所述属性的一个或多个输入文件参数;
-根据输入文件(434)建立至少一条个体记录(620),每一条个体记录(620)都包括至少一种属性和表征所述属性的一个或多个输入文件参数;
-将每一个输入文件参数与至少一个索引域相关联;
-在每一个输入文件参数以及关联至该输入文件参数的至少一个索引域的分选仓之间建立对应关系;
-识别出用全都跟所述个体记录(620)的输入文件参数相对应的一个或多个分选仓来索引的数据容器;
-用所述个体记录(620)的至少一种属性增量式地更新识别出的数据容器(325,335)以获取描述所述属性的统计数据。
2.如权利要求1所述的方法,包括接收查询的附加步骤并且针对每一次查询使用编程的一个或多个处理器用于:
-在查询中识别出一个或多个查询域以及关联至查询域的至少一个查询域值;
-在每一个查询域和索引域之间建立对应关系;
-在每一个查询域值以及跟所述一个或多个识别出的查询域相对应的每一个索引域的分选仓之间建立对应关系,由此定义跟查询相对应的分选仓;
-搜索并识别出用包括跟查询相对应的分选仓的索引来索引的相关数据容器;
-检索并向用户发送识别出的相关容器的统计数据。
3.如以上权利要求中的任意一项所述的方法,其中统计数据涉及属性的频率分布或属性的分布的集中趋势的度量或属性的分布的分散的度量。
4.如以上权利要求所述的方法,其中统计数据基于与由游客为运输服务实际支付的价格相关的统计数据。
5.如以上权利要求中的任意一项所述的方法,其中索引域是以下内容中的至少一项:起点城市、起点国家、起点地理区域、目的地城市、目的地国家、目的地地理区域、文化目的地、体育赛事、美食、野生动植物观察、娱乐活动、用准确出发日期表示的出发日期、用月表示的出发时段、用周表示的出发时段、用准确日期表示的返回日期、用月表示的返回时段、用周表示的返回时段、到达之后的行程时长、预购类别。
6.如以上权利要求中的任意一项所述的方法,其中通过级联至少两个分选仓来建立没有父索引的至少一个索引。
7.如以上权利要求所述的方法,其中没有父索引的索引包括关联至涉及起点城市的索引域的分选仓,关联至涉及出发前行程时长的索引域的分选仓,以及关联至涉及航班出发周的索引域的分选仓。
8.如以上权利要求所述的方法,其中分选仓收集涉及以下内容之一的一些索引域值:起点城市、出发城市、出发日期、出发周、返回日期、返回周、用于行程时长的天数、用于预购的天数。
9.如权利要求1至5中的任意一项所述的方法,其中没有父索引的至少一个索引仅包括一个分选仓。
10.如以上权利要求中的任意一项所述的方法,其中输入文件是运输服务的电子票并且包括体现出用于运输区段的所有信息的至少一张优惠券(434)。
11.如以上权利要求所述的方法,其中属性是为票或优惠券实际支付的价格,并且输入文件参数描述以下域中的至少一个:起点城市、出发城市、出发日期、返回日期、行程时长、预订和出发之间的天数。
12.如以上权利要求所述的方法,其中查询域涉及以下域中的至少一个:起点城市、起点国家、起点地理区域、目的地城市、目的地国家、目的地地理区域、文化目的地、体育目的地、美食、野生动植物观察、娱乐活动、用准确出发日期表示的出发日期、用月表示的出发时段、用周表示的出发时段、用准确日期表示的返回日期、用月表示的返回时段、用周表示的返回时段、到达之后的行程时长、预订和出发之间的天数。
13.如权利要求1所述的方法,其中单个索引域值可以关联至多个索引域。
14.如以上权利要求所述的方法,其中描述目的地城市的索引域值被关联至以下索引域中的至少两个:起点城市、起点国家、起点地理区域、文化目的地、体育赛事、美食、野生动植物观察、娱乐活动。
15.如以上权利要求中的任意一项所述的方法,其中建立个体记录(620)包括以下步骤:为每一条个体记录赋予日期或周或月或学期或年,日期对应于输入文件的接收;将该个体记录(620)存储在数据存储装置内。
16.如以上权利要求所述的方法,其中用个体记录(620)更新数据容器包括以下步骤:建立多批次具有相同日期或者具有相同日期时段的个体记录(620);通过个体记录(620)的批次来更新数据容器。
17.如前两项权利要求中的任意一项所述的方法,为了保持准确的统计数据而包括以下的步骤:读取存储的个体记录(620)的日期;识别出被赋予的日期早于指定日期的先前个体记录(620);通过这些识别出的先前个体记录(620)的输入文件参数定位用这些识别出的先前个体记录(620)更新过的数据容器;通过删除这些识别出的先前个体记录(620)来更新定位的数据容器。
18.如以上权利要求中的任意一项所述的方法,其中增量式地更新识别出的数据容器(325,335)包括根据先前计算的统计数据和所述个体记录(620)的至少一种属性增量式地计算更新的统计数据的步骤。
19.如权利要求1所述的方法,其中如果数据容器由等于或小于所述输入文件的输入文件参数数量的若干个分选仓索引并且假设这一个或多个分选仓中的每一个都对应于所述输入文件的输入文件参数,那么所述数据容器即被识别用于通过所述输入文件来更新。
20.如权利要求1所述的方法,其中如果个体记录(620)的输入文件参数被关联至现有的索引域但是并不对应于该关联的现有索引域中的任何分选仓,那么就针对所述关联的现有索引域建立附加分选仓;建立用所述附加分选仓索引的附加数据容器;用所述个体记录更新该附加数据容器。
21.如权利要求1所述的方法,其中如果个体记录(620)的每一个输入文件参数都对应于分选仓但是有一个或多个分选仓的组合跟并不对应于索引的所述输入文件参数相对应,那就建立用这种一个或多个对应分选仓的组合索引的附加数据容器;用所述个体记录更新附加的数据容器。
22.如以上权利要求中的任意一项所述的方法,其中存储在数据容器内的所有数据都以包含没有相对关系结构的记录的文件的形式存储。
23.如权利要求1所述的方法,包括通过构成一个或多个分选仓的序列来建立索引的步骤,所述序列中至少有一个分选仓收集被关联至所述至少一个分选仓的索引域接受的所有可能的索引域值。
24.一种用于根据包括处理装置的数据仓库(410)提供统计数据的系统,其特征在于所述处理装置被设置用于执行以下步骤:
·定义多个索引域(114),每一个索引域都接受多个索引域值;
·建立多个文件(432)并且将所述文件分层级地索引为索引树(300),其中对于每一棵树都包括以下步骤:
-分层级地排序索引域(201);
-定义分选仓,每一个分选仓都关联至一个索引域并且收集用于该索引域的一个或多个索引域值;
-通过级联跟分层级排序的索引域的层级相一致的一个或多个分选仓以构成分选仓序列从而建立索引,索引对每一个索引域都只包括一个分选仓;
-将文件分层级地索引为索引树(300),每一个索引都拥有零个或更多个子索引和/或拥有最多一个父索引,以使每一个子索引都包括跟其父索引的索引相同的分选仓序列再加上关联至附加索引域的至少一个附加分选仓;
·给每一个索引提供被设置用于存储统计数据的数据容器(325,335),以使每一个数据容器都被索引并且可以从分层级索引的文件中直接寻址;
·接收(436)一个或多个包括原始数据的输入文件(434)并且用输入文件(434)更新数据容器,其中包括对于每一个输入文件都使用一个或多个处理器,其被设置用于执行以下步骤:
-从原始数据中识别和提取通过统计信息分析的至少一种属性和表征所述属性的一个或多个输入文件参数;
-根据输入文件(434)建立至少一条个体记录(620),每一条个体记录(620)都包括至少一种属性和表征所述属性的一个或多个输入文件参数;
-将每一个输入文件参数与至少一个索引域相关联;
-在每一个输入文件参数以及关联至该输入文件参数的至少一个索引域的分选仓之间建立对应关系;
-识别出用全都跟所述个体记录(620)的输入文件参数相对应的一个或多个分选仓来索引的数据容器;
-用所述个体记录(620)的至少一种属性增量式地更新识别出的数据容器(325,335)以获取描述所述属性的统计数据。
25.一种存储在非易失性计算机可读取存储介质上的计算机程序产品,包括计算机可读取代码装置,被指示用于促使至少一个微处理器操作如权利要求1至23中的任意一项所述的提供统计数据的方法。
CN201280009577.8A 2011-02-21 2012-02-20 用于根据数据仓库提供统计信息的方法和系统 Expired - Fee Related CN103548019B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP11305177.5 2011-02-21
EP11305177A EP2490135A1 (en) 2011-02-21 2011-02-21 Method and system for providing statistical data from a data warehouse
PCT/EP2012/052872 WO2012113756A1 (en) 2011-02-21 2012-02-20 Method and system for providing statistical from a data warehouse

Publications (2)

Publication Number Publication Date
CN103548019A true CN103548019A (zh) 2014-01-29
CN103548019B CN103548019B (zh) 2017-07-07

Family

ID=44342862

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280009577.8A Expired - Fee Related CN103548019B (zh) 2011-02-21 2012-02-20 用于根据数据仓库提供统计信息的方法和系统

Country Status (11)

Country Link
US (1) US9710506B2 (zh)
EP (1) EP2490135A1 (zh)
JP (1) JP5963780B2 (zh)
KR (1) KR101673461B1 (zh)
CN (1) CN103548019B (zh)
AU (1) AU2012219687B2 (zh)
BR (1) BR112013018831A2 (zh)
CA (1) CA2824348A1 (zh)
SG (1) SG192164A1 (zh)
WO (1) WO2012113756A1 (zh)
ZA (1) ZA201305948B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104133836A (zh) * 2014-06-24 2014-11-05 腾讯科技(深圳)有限公司 一种实现变更数据检测的方法及装置
CN105989072A (zh) * 2015-02-10 2016-10-05 阿里巴巴集团控股有限公司 去重计数方法及设备
CN106022896A (zh) * 2016-06-07 2016-10-12 中国建设银行股份有限公司 用于交易统计的报表生成方法及系统
CN106294860A (zh) * 2016-08-23 2017-01-04 浪潮电子信息产业股份有限公司 一种实时索引数据同步的系统及其实现方法
CN107704475A (zh) * 2016-08-10 2018-02-16 泰康保险集团股份有限公司 多层分布式非结构化数据存储方法、查询方法及装置
CN108108387A (zh) * 2016-11-23 2018-06-01 谷歌有限责任公司 基于模版的结构化文档分类和提取
CN109471852A (zh) * 2018-05-29 2019-03-15 平安医疗健康管理股份有限公司 医疗数据库建立方法、装置、计算机设备和存储介质
CN111712825A (zh) * 2018-02-09 2020-09-25 微软技术许可有限责任公司 在生产力应用程序中识别集合并且操作集合数据
CN112114531A (zh) * 2020-08-10 2020-12-22 广州明珞装备股份有限公司 快速部署气缸逻辑块的方法、系统、设备和存储介质
CN112236759A (zh) * 2018-09-14 2021-01-15 谷歌有限责任公司 日志结构合并森林中的交错合并
CN112527828A (zh) * 2020-12-10 2021-03-19 福建新大陆支付技术有限公司 一种税控机税控记录存储方法及检索查询方法
CN112114531B (zh) * 2020-08-10 2024-05-14 广州明珞装备股份有限公司 快速部署气缸逻辑块的方法、系统、设备和存储介质

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8914866B2 (en) 2010-01-19 2014-12-16 Envizio, Inc. System and method for user authentication by means of web-enabled personal trusted device
EP2727247B1 (en) * 2011-06-30 2017-04-05 Openwave Mobility, Inc. Database compression system and method
US20130132128A1 (en) 2011-11-17 2013-05-23 Us Airways, Inc. Overbooking, forecasting and optimization methods and systems
CN104203913B (zh) 2012-03-20 2016-10-19 弗门尼舍有限公司 用于控释活性加香分子的化合物
US20140114717A1 (en) * 2012-09-05 2014-04-24 Moose Loop Holdings, LLC Task Schedule Modification
CN103885983B (zh) * 2012-12-21 2017-09-01 阿里巴巴集团控股有限公司 一种旅游线路的确定方法、优化方法以及装置
US20140257881A1 (en) * 2013-03-08 2014-09-11 Us Airways, Inc. Demand forecasting systems and methods utilizing fare adjustment
US11321721B2 (en) 2013-03-08 2022-05-03 American Airlines, Inc. Demand forecasting systems and methods utilizing prime class remapping
US9727940B2 (en) 2013-03-08 2017-08-08 American Airlines, Inc. Demand forecasting systems and methods utilizing unobscuring and unconstraining
US20140278615A1 (en) 2013-03-15 2014-09-18 Us Airways, Inc. Misconnect management systems and methods
US9372889B1 (en) * 2013-04-04 2016-06-21 Amazon Technologies, Inc. Incremental statistics update
US10755207B1 (en) 2014-01-17 2020-08-25 American Airlines, Inc. Demand class remapping for airline seat bookings
US10748087B2 (en) 2014-01-17 2020-08-18 American Airlines, Inc. Determining even-spaced quantiles for network optimization
CN105446991B (zh) * 2014-07-07 2018-10-30 阿里巴巴集团控股有限公司 数据存储方法、查询方法及设备
KR101594916B1 (ko) * 2014-08-25 2016-02-17 (주)휴민텍 손상 감시 시스템 및 손상 감시 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
CN104182540B (zh) * 2014-09-03 2017-10-27 北京国双科技有限公司 数据仓库中的索引统计信息处理方法及装置
CN104463420B (zh) * 2014-11-05 2017-11-21 上海携程商务有限公司 Ota网站的订单处理系统及方法
CN105574060A (zh) * 2015-01-13 2016-05-11 北京中体骏彩信息技术有限公司 竞彩统计数据的提取方法
US10146820B2 (en) * 2015-09-24 2018-12-04 Nxp Usa, Inc. Systems and methods to access memory locations in exact match keyed lookup tables using auxiliary keys
US10146854B2 (en) 2016-02-29 2018-12-04 International Business Machines Corporation Continuous automatic update statistics evaluation using change data capture techniques
US20170364932A1 (en) * 2016-06-21 2017-12-21 Amadeus S.A.S. Data warehouse for mining search query logs
US11270395B2 (en) * 2016-12-15 2022-03-08 Mastercard International Incorporated Systems and methods for building a data table to reduce false declines over a network
WO2018134426A1 (en) * 2017-01-23 2018-07-26 Amadeus S.A.S. Record aggregation database
WO2018140659A1 (en) * 2017-01-25 2018-08-02 Systems And Software Enterprises, Llc Systems architecture for interconnection of multiple cabin aircraft elements
US10909074B2 (en) * 2017-04-18 2021-02-02 Microsoft Technology Licensing, Llc File table index aggregate statistics
US11010387B2 (en) * 2017-10-06 2021-05-18 Microsoft Technology Licensing, Llc Join operation and interface for wildcards
KR102507837B1 (ko) * 2017-11-14 2023-03-07 주식회사 케이티 데이터의 품질 관리 방법 및 장치
CN109299931A (zh) * 2018-09-13 2019-02-01 百富计算机技术(深圳)有限公司 一种数据统计方法、系统及终端设备
US11080358B2 (en) 2019-05-03 2021-08-03 Microsoft Technology Licensing, Llc Collaboration and sharing of curated web data from an integrated browser experience
US10983975B2 (en) 2019-06-13 2021-04-20 Ant Financial (Hang Zhou) Network Technology Co., Ltd. Data block storage method and apparatus, and electronic device
CN111190952B (zh) * 2019-12-23 2023-10-03 中电海康集团有限公司 一种基于图像金字塔提取城市画像多尺度特征并持久化的方法
CN111782663B (zh) * 2020-05-21 2023-09-01 浙江邦盛科技股份有限公司 一种提升聚合查询效率的聚合索引结构及聚合索引方法
CN112528616B (zh) * 2020-12-18 2023-08-22 平安银行股份有限公司 业务表单生成方法、装置、电子设备及计算机存储介质
KR102449580B1 (ko) * 2021-02-15 2022-09-30 (주)아이브릭스 컴포넌트 네트워크 기반의 분석 시스템을 이용한 비정형 데이터 분석 방법
US20220300869A1 (en) * 2021-03-22 2022-09-22 Sap Se Intelligent airfare pattern prediction
CN114185983A (zh) * 2021-12-14 2022-03-15 中南大学 一种数据抽取管控方法、装置、设备及存储介质
WO2023211813A1 (en) * 2022-04-24 2023-11-02 Morgan Stanley Services Group Inc. Dynamic script generation for distributed query execution and aggregation
US11520739B1 (en) * 2022-04-24 2022-12-06 Morgan Stanley Services Group Inc. Distributed query execution and aggregation

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1492336A (zh) * 2003-09-04 2004-04-28 上海格尔软件股份有限公司 基于数据仓库的信息安全审计方法
US20040122844A1 (en) * 2002-12-18 2004-06-24 International Business Machines Corporation Method, system, and program for use of metadata to create multidimensional cubes in a relational database
US20050262108A1 (en) * 2004-05-07 2005-11-24 Interlace Systems, Inc. Methods and apparatus for facilitating analysis of large data sets
US20080059418A1 (en) * 2004-01-08 2008-03-06 International Business Machines Corporation Method and system for creating profiling indices
CN101763415A (zh) * 2009-12-16 2010-06-30 北京握奇数据系统有限公司 一种数据库的b树索引的生成方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3552339B2 (ja) * 1995-05-30 2004-08-11 富士通株式会社 データベースシステム
JPH11232283A (ja) * 1998-02-10 1999-08-27 Hitachi Ltd 情報検索方法
KR20010068047A (ko) * 2000-04-24 2001-07-13 김준수 인터넷 가상 여행 방법 및 장치
KR100656528B1 (ko) 2001-09-10 2006-12-12 한국과학기술원 영역-합 질의를 위한 동적 업데이트 큐브와 하이브리드질의 검색방법
KR100473058B1 (ko) 2001-12-27 2005-03-08 삼성에스디에스 주식회사 관계형 데이타베이스 서버에서의 분석적 처리방법
US7415487B2 (en) 2004-12-17 2008-08-19 Amazon Technologies, Inc. Apparatus and method for data warehousing
KR100834760B1 (ko) * 2006-11-23 2008-06-05 삼성전자주식회사 최적화된 인덱스 검색 방법 및 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040122844A1 (en) * 2002-12-18 2004-06-24 International Business Machines Corporation Method, system, and program for use of metadata to create multidimensional cubes in a relational database
CN1492336A (zh) * 2003-09-04 2004-04-28 上海格尔软件股份有限公司 基于数据仓库的信息安全审计方法
US20080059418A1 (en) * 2004-01-08 2008-03-06 International Business Machines Corporation Method and system for creating profiling indices
US20050262108A1 (en) * 2004-05-07 2005-11-24 Interlace Systems, Inc. Methods and apparatus for facilitating analysis of large data sets
CN101763415A (zh) * 2009-12-16 2010-06-30 北京握奇数据系统有限公司 一种数据库的b树索引的生成方法及装置

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
JAIDEEP SRIVASTAVA 等: "TBSAM: An Access Method for Efficient Processing of Statistical Queries", 《IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING》 *
JOACHIM HAMMER 等: "CubiST++: Evaluating Ad-Hoc CUBE Queries Using Statistics Trees", 《DISTRIBUTED AND PARALLEL DATABASES》 *
LIXIN FU 等: "CubiST: A New Algorithm for Improving the Performance of Ad-hoc OLAP Queries", 《DOLAP ‘00 PROCEEDINGS OF THE 3RD ACM INTERNATIONAL WORKSHOP ON DATA WAREHOUSING AND OLAP》 *
MIREK RIEDEWALD 等: "pCube: Update-Efficient Online Aggregation with Progressive Feedback and Error Bounds", 《SCIENTIFIC AND STATISTICAL DATABASE MANAGEMENT,2000.PROCEEDINGS.12TH INTERNATIONAL CONFERENCE ON》 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104133836B (zh) * 2014-06-24 2015-09-09 腾讯科技(深圳)有限公司 一种实现变更数据检测的方法及装置
CN104133836A (zh) * 2014-06-24 2014-11-05 腾讯科技(深圳)有限公司 一种实现变更数据检测的方法及装置
US10540600B2 (en) 2014-06-24 2020-01-21 Tencent Technology (Shenzhen) Company Limited Method and apparatus for detecting changed data
CN105989072B (zh) * 2015-02-10 2019-09-27 阿里巴巴集团控股有限公司 去重计数方法及设备
CN105989072A (zh) * 2015-02-10 2016-10-05 阿里巴巴集团控股有限公司 去重计数方法及设备
CN106022896A (zh) * 2016-06-07 2016-10-12 中国建设银行股份有限公司 用于交易统计的报表生成方法及系统
CN107704475A (zh) * 2016-08-10 2018-02-16 泰康保险集团股份有限公司 多层分布式非结构化数据存储方法、查询方法及装置
CN106294860A (zh) * 2016-08-23 2017-01-04 浪潮电子信息产业股份有限公司 一种实时索引数据同步的系统及其实现方法
CN108108387A (zh) * 2016-11-23 2018-06-01 谷歌有限责任公司 基于模版的结构化文档分类和提取
CN111712825A (zh) * 2018-02-09 2020-09-25 微软技术许可有限责任公司 在生产力应用程序中识别集合并且操作集合数据
CN111712825B (zh) * 2018-02-09 2023-10-31 微软技术许可有限责任公司 在生产力应用程序中识别集合并且操作集合数据
CN109471852A (zh) * 2018-05-29 2019-03-15 平安医疗健康管理股份有限公司 医疗数据库建立方法、装置、计算机设备和存储介质
CN112236759A (zh) * 2018-09-14 2021-01-15 谷歌有限责任公司 日志结构合并森林中的交错合并
CN112114531A (zh) * 2020-08-10 2020-12-22 广州明珞装备股份有限公司 快速部署气缸逻辑块的方法、系统、设备和存储介质
CN112114531B (zh) * 2020-08-10 2024-05-14 广州明珞装备股份有限公司 快速部署气缸逻辑块的方法、系统、设备和存储介质
CN112527828A (zh) * 2020-12-10 2021-03-19 福建新大陆支付技术有限公司 一种税控机税控记录存储方法及检索查询方法

Also Published As

Publication number Publication date
ZA201305948B (en) 2014-04-30
AU2012219687B2 (en) 2015-02-26
CA2824348A1 (en) 2012-08-30
KR101673461B1 (ko) 2016-11-08
AU2012219687A1 (en) 2013-05-02
CN103548019B (zh) 2017-07-07
WO2012113756A1 (en) 2012-08-30
JP5963780B2 (ja) 2016-08-03
EP2490135A1 (en) 2012-08-22
JP2014509008A (ja) 2014-04-10
KR20140064718A (ko) 2014-05-28
BR112013018831A2 (pt) 2017-02-21
US20140074853A1 (en) 2014-03-13
US9710506B2 (en) 2017-07-18
SG192164A1 (en) 2013-08-30

Similar Documents

Publication Publication Date Title
CN103548019A (zh) 用于根据数据仓库提供统计信息的方法和系统
Vaisman et al. Data warehouse systems
EP2842085B1 (en) Database system using batch-oriented computation
CN103597503B (zh) 用于具有提高的搜索效率的售前预订系统的方法和系统
Chakhar et al. Enhancing geographical information systems capabilities with multi-criteria evaluation functions
US8868535B1 (en) Search engine optimizer
EP2608074B1 (en) Systems and methods for merging source records in accordance with survivorship rules
US8386456B1 (en) Codex search patterns
US20130073586A1 (en) Database system using batch-oriented computation
CN104731791A (zh) 一种市场销售分析数据集市系统
KR102199620B1 (ko) 빅데이터 기반 시계열 분석 및 가격 예측을 이용한 가격비교 서비스 제공 시스템
CN101410865A (zh) 基于细粒度数据实体建立数据管理费用结构的方法
Irudeen et al. Big data solution for Sri Lankan development: A case study from travel and tourism
CN103955814B (zh) 计算机中基于数据立方体的物流智能交易数据处理方法
US20120215569A1 (en) Method, system and computer program to provide fares detection from rules attributes
CN102467544A (zh) 基于空间模糊编码的信息智能搜索方法及系统
Albano Decision support databases essentials
Prabawa et al. Analysis and Design Data Warehouse For E-Travel Business Optimization
JP2001028005A (ja) データウェアハウスにおける検索・集計高速化を実現するデータ格納、更新、検索、集計方法
KR20180087198A (ko) 수치정보를 이용한 컨텐츠 제공장치
Kotenko Data analytics
Rajagopal et al. Book recommendation system using data mining for the university of Hong Kong libraries
Krüpl et al. A flight meta-search engine with metamorph
CN117009663A (zh) 基于搜索的旅游热点分析方法、系统、设备及存储介质
Prokopova et al. Process of transformation, storage and data analysis for data mart enlargement

Legal Events

Date Code Title Description
C06 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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170707

Termination date: 20210220

CF01 Termination of patent right due to non-payment of annual fee