掌桥专利:专业的专利平台
掌桥专利
首页

用于生成内存表格模型数据库的系统和方法

文献发布时间:2023-06-19 12:16:29


用于生成内存表格模型数据库的系统和方法

背景技术

可视化和解释事务数据的解决方案可以包括针对不同类型数据的许多平台。例如,企业可能期望查看先前销售的各个方面,以更好地理解这样的销售的性质、成本和/利润、销售发生的位置等。业务智能团队可以依赖于的一种这样的解决方案包括可以被呈现在各种类型的数据分析包中的表格立方体(tabular cube)。使用表格立方体,公司可以从各种视点可视化和/或理解公司的事务并且获得有价值的见解,这可以使得公司能够改善未来的销售或者以其他方式改变其业务战略。

然而,构建和维护表格立方体的现有方法通常是手动并且耗时的过程。例如,当表格立方体从头开始被构建时,数据被要从其被获取的各种源系统中的每个源系统被标识,包括被存储在这种源系统中的数据库中的每一列和/或行。通过对一个或多个结构化查询语言(SQL)命令的执行,数据被提取到临时数据库(staging database)中。为了以可呈现的格式来渲染内容,各种变换被执行,并且数据可以被放入展示数据库(presentationdatabase)中,该展示数据库被用于在合适的软件或分析包中设计表格立方体。结果,(例如,在临时数据库和展示数据库中)准备数据需要工程师理解关于业务过程和相关源系统(例如,支付系统、工资信息等)中的所有源系统的细节,以用适当的方式拉取和格式化数据。

如果后续期望表格立方体被修改(例如,通过标识源系统的新列中所呈现的附加数据或者完全地从不同的源系统获取信息),则需要采取附加的手动并且耗时的步骤,包括修改一个或多个SQL命令以拉取新的源数据、更新临时数据库中的模式(schema)、修改展示数据库模式、以及修改表格模型。结果,表格立方体的生成会延迟,通常会延迟几周,导致没有能力及时地分析事务数据。

发明内容

提供本发明内容以简化形式介绍一些概念,这些概念将在下面的具体实施方式中进一步描述。本发明内容既不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。

用于生成表格模型的方法、系统、装置和计算机程序产品被提供。事件模型被生成,该事件模型包括多个事件以及每个事件之间的一个或多个依赖。例如,通过与图形用户接口(GUI)(诸如事件工作室)的交互,事件和依赖可以被标识。多个维度被映射到每个事件,并且与事件模型相关的事件记录被获得。针对事件模型,展示数据库被生成。使用展示数据库,表格模型可以被生成。在一些实现中,表格模型可以被存储和/或被呈现为用于分析事务数据的平台中的表格立方体。

根据本文所描述的实现,表格模型可以更快地被生成和/或被更新。以这种方式,可以使得分析平台(例如,业务智能解决方案)的用户能够更有效率地创建、查看和/或修改表格立方体中所呈现的数据。

下面参照附图详细描述本发明的进一步特征和优点,以及各种实施例的结构和操作。需要注意的是,本发明不限于本文所描述的特定实施例。这种实施例在本文中仅出于说明目的而被呈现。基于本文所包含的教导,其他实施例对于相关领域的技术人员将是明显的。

附图说明

被并入本文并构成说明书的一部分的附图图示了本申请的实施例,并且与说明书一起,进一步用来解释实施例的原理并使得相关领域的技术人员能够做出并且使用实施例。

图1示出了根据示例实施例的用于生成表格模型的系统的框图。

图2示出了根据示例实施例的用于生成表格模型的方法的流程图。

图3示出了根据示例实施例的表格模型生成系统的框图。

图4示出了根据示例实施例的用于将维度元数据存储在在超广义数据库中的方法的流程图。

图5示出了根据示例实施例的用于部分地基于维度元数据生成展示数据库的方法的流程图。

图6示出了根据示例实施例的用于生成与在展示数据库中的维度表相关联的事实表的方法的流程图。

图7示出了根据示例实施例的用于得出维度属性名称的方法的流程图。

图8A-图8G示出了根据示例实施例的可以被生成的说明性的数据库模式。

图9示出了可以被用于实现示例实施例的示例计算设备的框图。

本发明的特征和优点将从以下结合附图阐述的具体实施方式而变得更加明显,其中相同的附图标记贯穿始终标识对应的元件。在附图中,相同的附图标记通常指示相同、功能相似和/或结构相似的元件。元件第一次出现的图由对应附图标记中最左边的(多个)数字表示。

具体实施方式

I.介绍

本说明书和附图公开了并入本发明特征的一个或多个实施例。本发明的范围不限于所公开的实施例。所公开的实施例仅用于举例说明本发明,并且所公开的实施例的修改形式也包含在本发明中。本发明的实施例由所附权利要求限定。

说明书中对“一个实施例(one embodiment)”、“实施例(an embodiment)”、“示例实施例”等的引用表示所描述的实施例可以包括特定特征、结构或特性,但是每个实施例可以不必须包括特定特征、结构或特性。此外,这样的短语不一定指相同的实施例。此外,当结合示例实施例描述特定特征、结构或特性时,可以认为结合其他实施例实现这样的特征、结构或特性在本领域技术人员的知识范围内,无论是否被明确描述。

在讨论中,除非另有说明,否则诸如“基本上”和“大约”等形容词修饰本公开的示例实施例的一个或多个特征的条件或关系特征,应被理解为意味着条件或特性被限定在对于其预期应用的实施例的操作可接受的容差内。

许多示例性实施例被描述如下。应注意,本文提供的任何节/小节标题并非旨在进行限制。实施例贯穿本文被描述,并且任何类型的实施例可以被包括在任何部分/小节下。此外,在任何节/小节中所公开的实施例可以以任何方式与在相同节/小节和/或不同节/小节中所描述的任何其他实施例组合。

II.示例实现

可视化和解释事务数据的解决方案可以包括针对不同类型数据的许多平台。例如,企业可能期望查看先前销售的各个方面,以更好地理解这样的销售的性质、成本和/利润、销售发生的位置等。业务智能团队可以依赖于的一种这样的解决方案包括可以被呈现在各种类型的数据分析包中的表格立方体。使用表格立方体,公司可以从各种视点可视化和/或理解公司的事务并且获得有价值的见解,这可以使得公司能够改善未来的销售或者以其他方式改变其业务战略。

然而,构建和维护表格立方体的现有方法通常是手动并且耗时的过程。例如,当表格立方体从头开始被构建时,数据被要从其被获取的各种源系统中的每个源系统被标识,包括被存储在这种源系统中的数据库中的每一列和/或行。通过对一个或多个结构化查询语言(SQL)命令的执行,数据被提取到临时数据库中。为了以可呈现的格式来渲染内容,各种变换被执行,并且数据可以被放入展示数据库中,该展示数据库被用于在合适的软件或分析包中设计表格立方体。结果,(例如,在临时数据库和展示数据库中)准备数据需要工程师理解关于业务过程和相关源系统(例如,支付系统、工资信息等)中的所有源系统的细节,以用适当的方式拉取和格式化数据。

如果后续期望表格立方体被修改(例如,通过标识源系统的新列中所呈现的附加数据或者完全地从不同的源系统获取信息),则需要采取附加的手动并且耗时的步骤,包括修改一个或多个SQL命令以拉取新的源数据、更新临时数据库中的模式、修改展示数据库模式、以及修改表格模型。结果,表格立方体的生成会延迟,通常会延迟几周,导致没有能力及时地分析事务数据。

本文所描述的实施例通过提供用于生成表格模型的系统来解决这些和其他问题。在该系统中,事件模型生成器可以生成包括不同事件以及在每个事件之间的一个或多个相关性的身份标识的事件模型。事件模型可以部分地通过与GUI的交互而被生成,诸如事件工作室。事件记录器被配置为向每个事件映射维度。事件记录器还可以获得针对事件的记录并生成超广义临时数据库。仓库构建器可以针对事件模型来生成展示数据库,该展示数据库可以包括一个或多个事实表和多个维度表。使用来自展示数据库的事实和维度表,表格模型构建器可以生成表格模型,该表格模型可以被存储和/或呈现在用于分析事务数据的合适平台中。

以这种方式生成表格模型有很多优点,包括使得业务智能团队能够以减少的手动劳动来为分析师实现和部署这样的模型,从而使得周转时间能够更快。此外,通过以这种方式生成表格模型,处理资源可以被减少,从而改进其上生成了这样的模型的计算系统。例如,在表格模型的生成和后续的修改期间,被执行以从源系统检索事务数据的查询的数目可以被减少,这可以改进计算机系统的性能。

另外,虽然其他技术通常要求检索比表格模型所期望的事务数据更多的事务数据来放置在临时数据库中,但是本文所描述的实现使得能够以迭代方式来检索数据以包含在给定表格模型中,从而允许基于分析师的实际需要放大或缩小模型。结果,基于期望要被包含在模型中的实际数据,处理和存储器资源可以被更好地利用。此外,这样的放大或缩小可以使分析师能够有意地省略从源系统检索某些敏感信息(例如,电子邮件地址、登录信息等),从而改进表格模型的生成中所涉及的计算系统的安全性。

另外,通过生成如本文所述的表格模型,还改进了在一个或多个计算系统上执行的数据分析、数据见解和/或数据可视化的现有技术过程。例如,通过使得表格模型能够以更简单、更快和更有效率的方式被生成,业务智能团队可以更容易地理解和解释针对他们公司的事务数据。因此,表格模型生成的技术过程被大大地改进。

下面描述了针对表格模型生成系统的示例实现。例如,图1示出了根据示例实施例的用于生成表格模型的示例系统100的框图。如图1所示,系统100包括服务器102、计算设备106、以及一个或多个源系统110,它们可以由一个或多个网络114通信地耦合。服务器102包括表格模型生成系统104,表格模型生成系统104用于根据本文所描述的实现生成表格模型。计算设备106包括事件工作室(event studio)108,事件工作室108可以包括用于与表格模型生成系统104等交互的图形用户接口(GUI)等。(多个)源系统110包括事务数据112。下面进一步描述系统100。

网络114可以包括局域网(LAN)、广域网(WAN)、个域网(PAN)和/或通信网络的组合(诸如互联网)中的一个或多个网络。服务器102、计算设备106和(多个)源系统110经由网络114相互通信地连接。在一个实现中,服务器102、计算设备106和(多个)源系统110可以经由一个或多个应用编程接口(API)和/或根据其他接口和/或技术来通信。

服务器102、计算设备106和(多个)源系统110可以各自包括至少一个网络接口,使得能够与彼此通信。这样的有线或无线网络接口的示例包括IEEE 802.11无线LAN(WLAN)无线接口、全球微波接入互操作性(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、BluetoothTM接口、近场通信(NFC)接口,等等。

服务器102可以包括被共置的或位于远程的一个或多个服务器设备和/或其他计算设备,包括例如基于云的计算平台。在示例中,服务器102还可以通信地耦合到用于存储事务相关事件的存储装置或其他储存库,诸如包括一个或多个数据库、电子表格、数据仓库等的存储设备。在一个实现中,这样的存储设备可以位于服务器102本地。在其他实现中,这样的存储设备可以相对于服务器102位于远程(例如,在一个或多个源系统110中,如下所述)。服务器102还可以包括或者通信地耦合到用于存储本文所描述的表格模型的一个或多个物理存储设备,包括但不限于一个或多个本地存储设备和/或一个或多个基于云的存储设备。这样的存储设备的示例包括硬盘驱动器、固态驱动器、随机存取存储器(RAM)设备等。下面参考图9描述了可以并入服务器102的功能性的示例计算设备。

表格模型生成系统104被配置为根据本文所描述的技术自动地生成表格模型。表格模型可以包括内存(in-memory)数据库,该内存数据库包括(例如,在不同表中的)各种数据库字段之间的关系信息,以供经由一个或多个软件接口向用户呈现。表格模型可以包括由Microsoft

表格模型生成系统104可以被配置为从一个或多个源系统110(或任何其他操作数据库)中的事务数据112自动地生成表格立方体。如下文更详细地描述,表格模型生成系统104可以被配置为生成事件模型,该事件模型标识多个相关事件(例如,业务事件)以及每个事件之间的依赖。维度,诸如与事件相关的描述性方面(例如,人的姓名或标识符、零售位置或任何其他地理地点、对象等)和/或描述事件或事实的定量元素的度量(例如,数量、销售额、单价等)可以被映射到每个事件。超广义临时数据库可以被配置为存储与事件模型相关的事件记录,并且后续地展示数据库可以被生成。使用展示数据库,表格模型生成系统104可以被配置为生成事实表和多个维度表,它们可以在表格模型的生成中被使用。所生成的立方体可以被存储在存储器(例如,RAM)中和/或被呈现在本文所描述的可以访问表格模型的一个或多个业务智能解决方案中。以这种方式,表格模型可以以快速、敏捷和可缩放的方式被生成,这可以使分析师和其他负责实体更有效地分析数据以及支持企业的日常决策过程。下面更详细地描述了表格模型生成系统104。

计算设备106可以包括被配置为使得用户(诸如业务智能团队的成员或分析师,能够构建、修改、更新和/或与表格模型生成系统104(或被从其生成的表格模型)交互的任何设备。在一些示例实现中,事件工作室108可以使得用户能够标识事件,诸如公司的业务事件,连同在一个或多个事件之间的依赖。事件工作室108可以包括任何合适的接口,诸如GUI,用于使得用户能够标识这样的事件和依赖。在一些其他实现中,事件工作室108还可以使得用户能够查看、输入和/或修改本文所描述的在表格模型的生成期间被使用的一个或多个SQL命令。

事件工作室108还可以包括用于在软件包中(诸如业务智能包或软件)呈现表格模型的一个或多个交互接口,用于使得用户能够跨各种维度可视化事务数据。计算设备102还可以被配置为在计算设备106中所实现的合适的存储设备中存储所生成的表格模型。在一些示例中,表格模型可以包括被存储在计算设备106中的一个或多个RAM设备中的内存数据库。然而,实现不限于这样的存储器设备,并且可以包括用于存储表格模型的一个或多个其他合适的存储设备。计算设备106可以包括台式计算机、便携式计算机、智能电话、平板电脑或者任何其他处理设备。然而,应注意并理解,计算设备106可以包括任何数目的计算设备。例如,一个或多个计算设备可以被提供用于标识业务事件和依赖,而一个或多个其他计算设备可以包括用于基于所生成的表格模型来呈现数据可视化的软件包。以下参考图9描述了可以并入计算设备106的功能性的示例计算设备。

(多个)源系统110可以包括任何数目和/或类型的系统,与事务事件相关的信息可以被存储于这些系统中。例如,(多个)源系统110可以包括用于存储与业务事件相关的事务数据112的系统,事务数据112诸如是支付信息、订单信息、客户信息、产品、雇员信息(例如,标识符、工资等)、事务日期或时期,或者与事件或业务事务相关的任何其他信息。(多个)源系统110可以包括多种不同类型的系统(例如,基于不同的平台、格式/布置、存储结构等的系统),并且不限于任何特定类型的系统。在一个示例中,当事务发生时,与事务相关的信息可以被存储在一个或多个适当的系统中或者跨一个或多个适当的系统被存储,并且在一些实现中,与事务相关的信息可以利用适当的标识符(例如,键(key)等)而被链接在一起。任何一个或多个源系统110包括用于存储信息的任何合适的数据结构,并且不限于任何特定实现或格式。例如,(多个)源系统110可以包括数据库、电子表格、文本文件、文档等或其组合中的任何一项或多项。

尽管如图1所示,表格模型生成系统104可以在服务器102中被实现并且事件工作室108可以计算设备106中被实现,但是应当理解,表格模型生成系统104和/或事件工作室108可以在如图1所示的一个或多个服务器或计算设备、或者未示出的任何附加服务器或计算设备中被实现,或者跨这些服务器或计算设备而被分布。还应注意的是,虽然计算设备106在图1中被示出为位于服务器102的远程,但实现不受此限制。例如,计算设备106和服务器102可以被共置,可以在单个计算设备上被实现,或者可以在未在图1中明确示出的一个或多个附加计算设备上被实现或这些附加计算设备而被分布。类似地,事务数据112不需要位于如图1所示的源系统中,而是可以位于一个或多个其他设备上、和/或跨一个或多个其他设备而被分布,这些其他设备诸如是服务器102、计算设备106和/或未示出的(例如,在基于云的存储设备上的)其他服务器或设备。

表格模型生成系统104可以以各种方式操作来生成表格模型。例如,表格模型生成系统104可以根据图2操作。图2示出了根据示例实施例的用于生成表格模型的方法的流程图200。出于说明的目的,以下关于图3描述了流程图200和表格模型生成系统104。图3示出了根据示例实施例的表格模型生成系统300的框图。如图3所示,系统300包括表格模型生成系统104。表格模型生成系统104包括事件模型生成器302、事件记录器308、仓库构建器318和表格模型构建器326。事件模型生成器302包括工作室接口304,并且可以被配置为获取事件映射330以及生成被存储在超广义临时数据库314中的事件模型306。事件记录器308包括维度映射器310和记录获取器312。事件记录器308可以获取与事件模型306相关的多个事件记录322,以首先利用维度元数据316更新超广义临时数据库314,并且然后将相关联的维度记录连同它们与事件记录的关系一起存储。如图1所示,仓库构建器318可以生成包括一个或多个事实表322和多个维度表324的展示数据库320。表格模型构建器326可以根据本文所描述的实现来生成表格模型328。以下更详细描述了流程图200和系统300。

图2的流程图200开始于步骤202。在步骤202中,包括多个事件以及每个事件之间的一个或多个依赖的事件模型被生成。例如,参考图3,事件模型生成器302可以被配置为生成包括多个事件以及每个事件之间的一个或多个依赖的事件模型306。在实现中,事件模型306可以包括业务事件模型,该业务事件模型包括与业务相关联的多个业务事件(例如,销售、事务、里程碑等),以及在每个业务事件之间的相应依赖。

事件模型生成器302可以以各种方式来生成事件模型306。在一个示例中,事件模型生成器302可以获取标识事件和事件依赖的事件映射330。例如,工作室接口304可以被配置为与在客户端计算机上执行的业务智能平台或其他进行接口(诸如事件工作室108)或通信,以获取事件映射330,该事件映射包括用户指定的一组业务事件和依赖。在一些示例实施例中,开发者或分析师可以与事件工作室108交互以标识业务事件、事件依赖,并且注册或标识包含从其中数据将被检索的业务事件记录的一个或多个上游数据源,和/或编写一个或多个SQL查询,从这样的数据源检索业务事件记录。

因此,在一些实现中,事件映射330可以包括在环境中发生的一个或多个相互关联的和/或独立的事件(诸如业务环境中的事件或事务)的时间线或序列。基于可以通过如本文所述的事件工作室108而被标识的事件映射330,事件模型生成器302可以生成将业务环境建模的事件模型306。在一些实现中,事件模型306可以被存储在超广义数据库314中,如下所述。在一个说明性示例中,事件映射330可以标识以应计资金开始的事件序列,然后是营销计划的提交、营销计划的审核、报销的提交、报销的审核、付款日的计算、支出的批准,和付款的发放。在该示例中,事件映射330还可标识事件中的一个或多个事件之间的依赖,诸如营销计划的审查仅可以发生在营销计划的提交之后。

此外,每个这样的事件可以创建一个或多个维度值和/或引用先前所创建的维度值。在上面的说明中,前述业务事件可以创建和/或引用维度值,诸如公司标识符、帐户号、激励项目、应计期、使用期、营销计划、报销编号、执行证明、应计标识符、支出标识符、结算文档标识符等。然而,该示例并非旨在进行限制,并且仅出于说明性目的而被提供。本文所描述的示例实施例可以在任何类型的环境(业务环境或非业务环境)中被实现,包括可以创建和/或引用各种维度值的相互关联的和/或独立的事件的序列。

在实现中,事件模型306中的每个事件可以与包括一个或多个SQL命令的SQL查询相关联。例如,针对上述说明性示例中所标识的业务事件中的每个业务事件,单独的SQL查询可以被编写。在示例中,包括一个或多个SQL命令的SQL查询可以被配置为定义事件的一个或多个维度和/或度量。例如,针对给定事件的SQL查询可以包括与事件所引用的维度和/或度量对应的信息。然而,应注意并且理解,尽管本文将示例描述为包括具有一个或多个SQL命令的SQL查询,但实现不限于此,并且可以包括任何其他类型的代码或命令,这些代码或命令可以被用于从数据库或者任何其他存储系统访问事务数据。

事件之间的依赖可以标识一个或多个其他事件之间的任何关系,如果这样的关系存在的话。例如,业务事件可以是独立或离散事件(例如,与其他事件不相关)、起始事件、演变事件(例如,具有一个或多个后续事件的事件)、再现事件、里程碑事件(例如,在另一事件之后发生的、可以表示在演变事件中显著里程碑的完成的事件),或任何其他类型的事件。在一些示例中,事件依赖可以与可以标识整组事件中的相对顺序的序列号等相关联。可以使用工作室接口304来指示事件之间这样的依赖。作为标识这样的依赖的结果,基于事件关系的业务问题可以被容易地回答,诸如自特定事件被触发以来的时间、哪些事件是未解决的等。

除了标识事件以及每个事件之间的依赖之外,工作室接口304还可以被用于标识一个或多个数据源,与事件相关的数据可以从该一个或多个数据源被检索。例如,数据源的标识可以包括服务器名称、数据库名称、源超时等,或者以注册要从中检索信息的数据源任何其他标识信息。在一些示例中,给定事件可以包括多个SQL查询,每个查询被配置为从不同的数据源(例如,产品数据库、支付数据库等)拉取数据。

在步骤204中,多个维度被映射到事件(例如,业务事件)中的每个事件。例如,参考图3,维度映射器310可以解码来自与事件相关联的SQL查询的维度信息,并且使用该维度信息将多个维度映射到所标识的事件中的每个事件。如上所讨论,每个事件可以引用或者创建一个或多个维度值,诸如公司标识符、帐户号、激励项目、应计期、使用期、营销计划、报销编号、执行证明、应计标识符、支出标识符、结算文档标识符等。通过在SQL查询中包括与维度中的每个维度相关联的一个或多个参数,这样的维度可以被标识为针对给定事件的SQL查询的一部分。例如,针对给定事件,SQL查询可以标识维度组(dimension group)、维度名称(dimension name)、维度属性名称(dimension attribute name)、一个或多个属性标签、使用上下文(context)(例如,创建或只读)、记录状态标志(flag)或任何其他属性。结果,由每个事件引用和/或创建的各种维度可以在针对这样的事件的事务数据的检索(例如,事件记录)之前被映射。

例如,在解析与每个事件对应的查询之后,维度映射器310可以自动地确定不同维度可以如何彼此相关。针对维度中的每个维度,维度映射器310可以更新被配置为存储维度以及与维度相关的一个或多个维度属性的模式。在一个实现中,维度映射器310可以被配置为将维度和维度属性中的每个维度和维度属性存储到超广义临时数据库314的表中。

因此,维度映射器310可以通过解析每个事件查询来自动地生成维度映射,该维度映射标识每个事件如何与每个维度相关。换言之,维度映射器310可以通过事件的排序或序列,或者以任何其他合适的方式来存储以下指示:当每种类型的业务事件在超广义临时数据库314中发生时,哪些维度可以被创建和/或被引用。

此外,维度映射器310还可以被配置为在超广义临时数据库314中存储与业务事件中的每个业务事件相关联的元数据。例如,维度映射器310可以存储维度元数据316,维度元数据316指示关于特定布置中的每个维度的信息,诸如使用被包含在表的列头(例如,顶行)内的信息的预定编码格式。在一个说明性示例中,包括维度元数据316的列头可以根据标识与由某个事件创建或引用的维度相关联的多个字段或标识符中的每个字段或标识符的某个格式而被编码,诸如{维度组}-{维度名称}-{维度属性名称}-{维度属性标签}-{使用上下文}-{记录状态标志}。应注意,这种编码格式仅是说明性的,并且实现可以包括布置和/或存储维度元数据316的任何其他方式。

以这种方式,当SQL查询在运行时被执行时,数据可以按照由SQL查询定义的特定方式被检索并且被映射到所标识的维度。换言之,当SQL查询被执行时,可以使得数据能够以特定或预定格式(例如,通过将维度属性标识为元数据)被放置在表中,如由在表格模型的生成期间中要被使用的超广义临时数据库314的模式确定的。在一些示例实现中,当查询被执行时,维度到在SQL查询中的事件的映射可以引起这样的维度信息(即,维度元数据)被放置在一个或多个列的头中。结果,如果新维度要被添加、被移除或者被修改,则针对适当事件的SQL查询可以简单地被更新以修改维度映射,而不是手动地更改一个或多个数据库模式。

在步骤206中,查询被执行以获取与事件模型相关的事件记录。例如,参考图3,记录获取器312被配置为执行与多个事件中的每个事件相关联的一个或多个查询以获取与事件模型306相关的事件记录332。事件记录322可包括被存储在本文所描述的一个或多个源系统110中的事务数据112。例如,事件记录332可以包括财务记录、销售记录、营销记录等,或者可以与业务环境相关联的任何其他记录。因此,记录获取器312可以被配置为执行相关联的每个查询以检索针对事件中的每个事件的这样的事件记录。

在实现中,记录获取器312可以以特定或预定格式将检索到的事件记录332存储在超广义临时数据库314中,诸如基于针对超广义临时数据库314所生成的模式。例如,记录获取器312可以以以下方式来存储所获取的针对特定事件的事件记录(例如,通过执行针对该事件的SQL查询所获取的事件记录):事件发生数据(事件id、时间戳等)被保持在单个表中,而维度记录和事件记录到维度映射被存储在超广义临时数据库314中的一个或多个简单的键值类型查找表中。

如上所讨论,在一些示例实施例中,超广义临时数据库314还可以被配置为存储针对每个事件的维度元数据316。例如,可以在如上所述的针对事件的SQL查询中被标识的维度元数据316可以被存储在超广义临时数据库314的一个或多个表中。用于存储维度元数据316的其他实现也被考虑,诸如将维度元数据存储为超广义临时数据库314中的XML或JSON字符串。以这种方式,如果与特定事件相关的维度映射要被修改,则更新SQL查询以反映所期望的变化可以在记录获取器312执行查询时,自动地使超广义临时数据库314中的表或字符串利用经修改的维度映射而被更新。结果,一个或多个数据库(例如,临时数据库)的模式不需要由用户手动改变,从而提高了临时数据库和/或展示数据库可以被生成的敏捷性。此外,由于每个业务事件可以包含其自己的SQL查询,该SQL查询标识与事件相关的维度并且可以被迭代地执行,因此单独的开发团队可以并行工作并且优化工作分配以进一步提高生产力。

在示例中,记录获取器312可以被配置为利用适当的事件记录、维度信息和度量(如稍后所述)加载或者填充超广义临时数据库314的多个表。例如,在解析与所标识的事件相关联的SQL查询中的每个SQL查询后,超广义临时数据库314可以被设置有适当的模式来存储维度记录、业务事件记录和度量。结果,记录获取器312在执行查询时,可以从一个或多个源系统检索数据来自动地填充适当的表,包括但不限于事件记录表、事件记录度量表、维度记录表、维度属性表、和/或可以是超广义临时数据库314的一部分的任何其他表。

因此,在执行每个SQL查询后,记录获取器312可以从在查询中的所标识的(多个)源系统检索适当的事务数据,并且将所获取的事件记录放置在超广义临时数据库314中。因为临时数据库的模式是基于在SQL查询中所编码的列名称而被确定的,所以通过定制SQL查询,超广义临时数据库可以被用于各种环境、企业和/或行业。结果,临时数据库可以被普适地实现。此外,由于超广义临时数据库存储维度元数据(例如,以表、XML、JSON或者任何其他方式),临时数据库可以类似地跨不同实现被使用以生成表格模型,如下文更详细所描述的。换言之,超广义临时数据库314可以在查询的执行后存储维度元数据316,该维度元数据可以被使用来生成用于生成表格模型的一个或多个维度表。通过定制在查询中的列名称来反映特定业务的业务智能期望,(例如,针对不同的业务环境的)不同类型的维度表的生成可以被执行。

在实现中,事件记录器308(包括维度映射器310和记录获取器312)可以包括用于解析和/或执行本文所描述的SQL查询的任何合适的软件指令和/或执行引擎。在一些示例实施例中,事件记录器308可以执行通过一个或多个C Sharp(也称为C#)编程语言指令所描述的任务中的任何任务,该指令被配置为解析和执行查询中所定义的针对一个或多个事务源系统的SQL查询。在一些其他实现中,事件记录器308可以包括用C#或者用任何其他合适的编程语言的一个或多个软件指令,该一个或多个软件指令用于如本文所述的在解析和/或查询的执行后生成维度映射并且将事件记录加载到超广义临时数据库314中。如相关领域的技术人员将理解的,也考虑解析和/或执行查询的其他方式被用于实现所描述的技术。

在步骤208中,针对事件模型的展示数据库被生成。例如,参考图3,仓库构建器318可以被配置为自动地生成针对事件模型306的展示数据库320。在示例中,展示数据库320可以包括超广义临时数据库314内所包括的信息的一个或多个变换。在示例中,仓库构建器318可以包括(例如,用C#或任何其他合适的编程语言所编写的)一个或多个软件指令,该一个或多个软件指令被配置为读取超广义临时数据库314中的维度元数据316和事件模型306。基于维度元数据316和事件模型306,仓库构建器318可以生成具有适当类型和布置的表的展示数据库320。例如,在实现中,仓库构建器318可以在展示数据库320中自动地生成与多个维度表324相关联的一个或多个事实表322,展示数据库320可以被用于构建表格模型。仓库构建器318还可以被配置为利用来自超广义临时数据库314的适当数据自动地加载或填充每个所生成的事实表和维度表。

如本文所使用的,(多个)事实表322可以包括在数据仓库中的星形模式或雪花模式的中心表。例如,事实表可以包括被多个维度表围绕的中心表。(多个)事实表322可以包括多种形式的事务数据,包括但不限于原始事实和/或数据的度量(例如,聚合)。维度表324可以包括描述性属性,通过其中的描述性属性,事实表322中的事实可以被分析。虽然维度表可以包括文本属性,但维度表也可以包括数值(例如,商店标识符、产品代码等)。根据技术,多个维度表324可以与单个事实表相关联。如相关领域的技术人员所理解的,维度表中的条目可以通过一个或多个键,诸如主键和/或外键,与事实表中的条目相关联。

在一些实现中,仓库构建器318可以被配置为将超广义临时数据库314的模式转换成领域特定的数据库(即,展示数据库320),表格模型可以从该领域特定的数据库被生成。例如,仓库构建器318可以跨超广义临时数据库314的各种表来读取数据存储,包括维度元数据316,并且生成包括一个或多个维度表(例如,用于报销、营销计划等的单独维度表)的展示数据库320。换言之,凭借包括依赖信息等的维度元数据316,仓库构建器318可以自动地查询与每个特定业务事件相关的维度中的每个维度,并且将针对这些事件从超广义临时数据库314检索到的数据加载到展示数据库320中。结果,通过解析可以作为表被存储在超广义临时数据库314中的维度元数据316,仓库构建器318可以执行一个或多个软件指令以即时创建维度表。

在步骤210中,使用展示数据库,表格模型被生成。例如,参考图3,表格模型构建器326可以被配置为使用展示数据库320(包括一个或多个事实表322和多个维度表324)和被存储在超广义数据库314中的元数据来生成表格模型328。在示例实现中,表格模型构建器326可以包括一个或多个软件指令(例如,用C#或任何其他合适的编程语言所编写的),该一个或多个软件指令被配置为从超广义临时数据库314读取维度元数据316和事件模型306,以自动地标识一个或多个事实表322与多个维度表324之间的关系。在一些示例中,表格模型构建器326还可以被配置为结合表格模型328的生成自动地生成星形模式或者雪花模式。

表格模型构建器326还可以被配置为利用表格模型328的一个或多个表分区来执行一个或多个数据刷新查询。例如,表格模型构建器326可以实现一种或多种提取、变换和加载(ETL)技术来刷新表格模型328中的数据以确保其中被存储的数据是最新的。表格模型构建器326可以自动地执行这样的刷新查询,或者可以手动地执行这样的查询(例如,响应于用户发起的事件,诸如与BI包中的GUI元素的交互)。

还应注意的是,虽然表格模型构建器326可以如图3所示在表格模型生成系统104中被实现,但是表格模型构建器326可以在未明确示出的一个或多个其他系统或服务中被实现或者跨该一个或多个其他系统或服务而被分布。例如,表格模型构建器326可以被配置为通过一个或多个其他系统或服务、通过合适的API等等来生成表格模型328。

在实现中,表格模型328可以被加载或填充以适当的数据、并且被部署到适当的分析服务,诸如SSAS(SQL Server分析服务)或者用于BI解决方案的其他软件包(诸如

以这种方式,表格模型构建器326可以使用通用数据库来生成表格模型328,通用数据库可以针对各种领域或行业(例如,零售、电信、咨询等或者任何其他非业务领域)被普适地实现。换言之,通过标识业务事件及其依赖,以及与一个或多个维度的相互关系,超广义临时数据库314可以以如下方式被设计:使得它可以被用于对广泛的业务事件进行建模,并且使得分析师能够使用表格模型生成系统104来生成鲁棒的且自适应的表格模型。结果,表和数据库(例如,维度表)的手动创建和可以被减少甚至完全被避免。而是,由通过事件工作室108定义事件,特定领域数据库可以基于事件模型306而从适当的数据源被自动地生成和被填充。

在实现中,开发者或分析师期望利用变化请求来修改表格模型328的过程也可以使用本文所描述的技术被流线化。例如,在新字段被添加到表格模型328之处,一个或多个SQL查询可以通过事件工作室108被修改以标识或注册从其获取新字段的新上游数据源。事件记录器308可以被配置为针对所标识的业务事件中的一个或多个所标识的业务事件来执行SQL查询,这使超广义临时数据库314包括已更新的维度元数据316,该维度元数据包括新字段。事件记录器308还可以被配置为基于所标识的数据源、以新添加的字段的适当数据值来填充超广义临时数据库314。仓库构建器318可以被执行以重新生成如本文所描述的(多个)事实表322和维度表324,使得新添加的字段表现为适当的(多个)维度表中的列。在生成已更新的事实表和维度表后,表格模型构建器326可以利用已更新的字段来重新生成表格模型328,并且将模型部署到所期望的BI包和/或将表格模型存储在存储器中。以这种方式,修改表格模型的手工劳动可以被减少,使得表格模型能够更有效率地被更新。

事件记录器308可以以各种方式操作来存储维度元数据到事件的映射。例如,图4示出了根据示例实施例的用于将维度元数据存储在超广义数据库中的方法的流程图400。在一个实现中,流程图400的方法可以由事件记录器308实现。继续对图3的参考来描述图4。基于以下关于流程图400和图3的系统300的讨论,其他结构和操作实现对于(多个)相关领域的技术人员来说将是明显的。

流程图400开始于步骤402。在步骤402中,与每个事件相关联的查询被解析以将维度元数据映射到事件。例如,参考图3,维度映射器310可以被配置为解析与事件模型306中的每个事件相关联的每个SQL查询以将维度元数据映射到事件。如上所述,每个事件可以与特定查询相关联,该特定查询标识与该事件相关联的多个维度参数等。例如,查询可以被解析以标识维度组、维度名称、维度属性名称、一个或多个属性标签、使用上下文、记录状态标志或者和与事件相关联的维度相关的任何其他属性。

因此,在示例中,维度和维度属性元数据可以以如下方式被包括作为SQL查询的一部分:该方式使得(当被执行时)查询的结果自动地利用元数据来编码事件记录。在一些说明性示例中,在检索事件记录后,列名称或列头可以通过以特定编码格式标识维度信息、利用维度元数据而被编码,(例如,{维度组}-{维度名称}-{维度属性名称}-{维度属性标签}-{使用上下文}-{记录状态标志})。以这种方式,可以由时间戳和/或键值标识的每个事件记录可以基于列头信息自动地被映射到多个维度。

在步骤404中,维度元数据被存储在超广义数据库中。例如,参考图3,维度映射器310可以将维度属性信息存储在如上所述的超广义临时数据库314中。在一些示例中,维度映射器310可以被配置为生成数据库模式,该数据库模式将每个事件与维度和维度属性相关联作为维度元数据316。在一些其他实现中,维度映射器310还可以基于查询中的被编码信息来自动地创建模式,以在超广义临时数据库314中存储维度和相关维度属性。例如,如上所述,在执行针对每个事件的查询后,维度元数据316可以与从查询中所标识的源系统检索到的事件记录332一起被存储在超广义临时数据库314中。以这种方式,与(例如,以表、XML、JSON或者以任何其他方式的)维度元数据316组合的超广义临时数据库314可以以自动地将事件中的每个事件与一个或多个维度相关联的方式被填充。

如上所述,展示数据库320可以从超广义临时数据库314被生成。例如,图5示出了根据示例实施例的用于部分地基于维度元数据来生成展示数据库的方法的流程图500。在一个实现中,流程图500的方法可以由仓库构建器318实现。继续对图3的参考来描述图5。基于以下关于流程图500和图3的系统300的讨论,其他结构和操作实现对于(多个)相关领域的技术人员将是明显的。

流程图500开始于步骤502。在步骤502中,维度元数据从超广义数据库的模式被标识。例如,参考图3,维度元数据316可以被包括在超广义临时数据库314的模式中,如上所述。仓库构建器318可以被配置为获取维度元数据316,该维度元数据316可以标识维度和维度属性到每个业务事件的映射等。例如,这样的维度元数据可以被存储在针对每个事件类型的超广义临时数据库314的表中。

然而,应注意并理解,每个事件可以与多个维度相关联。例如,维度元数据316可以包括表中的多个行,其中每个行标识与特定事件相关联的不同维度。以这种方式,通过从超广义临时数据库314获取维度元数据316,仓库构建器318可以自动地标识事件与维度之间的关系和关联。

在步骤504中,部分地基于维度元数据,展示数据库被生成。例如,继续参考图3,仓库构建器318可以被配置为基于维度元数据316来在展示数据库320中生成维度表。在实现中,仓库构建器318可以被配置为基于维度元数据316来生成多个维度表324并且以来自超广义临时数据库314的适当数据来加载这些表。例如,因为维度元数据316标识要被包括在表格模型中的各种维度以及其与业务事件的关系,所以仓库构建器318可以自动地设置适当的维度表并且以必要的数据来加载表。类似地,凭借标识事件模型306中事件的依赖以及每个事件与各种维度的关系,仓库构建器318可以被配置为即时生成一个或多个事实表322。

在示例实现中,事实表和维度表可以以各种方式被生成。例如,图6示出了根据示例实施例的用于生成与展示数据库中的维度表相关联的事实表的流程图的方法。在一个实现中,流程图600的方法可以由仓库构建器318而被实现。继续对图3的参考来描述图6。基于以下关于流程图600和图3的系统300的讨论,其他结构和操作实现对于(多个)相关领域的技术人员将是明显的。

流程图600开始于步骤602。在步骤602中,与在展示数据库中的多个维度表相关联的事实表被生成。例如,参考图3,仓库构建器318可以被配置为生成一个或多个事实表322并且将其与如上所述的展示数据库320中的多个维度表相关联。在实现中,仓库构建器318可以被配置为至少部分地基于维度元数据316和事件模型306来自动地和/或即时地生成事实表和维度表,这可以标识事件与维度之间的关系。

在一些示例实施例中,基于业务事件与维度的映射,通过执行与每种类型的事件相关联的动态查询(例如,用于发起事件的指令、用于演变事件的指令等),事实表可以被即时生成,如上面所讨论的。例如,仓库构建器318可以执行一组指令以组合超广义临时数据库314中的各种条目。如前所述,超广义临时数据库314可以被加载以事件记录和维度记录等。在一个示例中,仓库构建器318可以包括对这样的条目执行LEFT JOIN(或OUTER JOIN)的指令。LEFT JOIN在被执行时,可以使仓库构建器从超广义临时数据库314的两个单独的表中检索记录。例如,LEFT JOIN命令可以被执行以连结事件和维度以即时生成事实表。结果,包括被引用和/或被创建的事件和维度的组合的事实表可以被生成。实现不限于使用LEFT JOIN来生成事实表,而是可以包括任何其他JOIN命令或者用于组合被存储在超广义临时数据库314中的值的其他技术。

使用以上面所描述的方式所生成的这样的相关联的事实表和维度表,表格模型构建器326可以在运行时自动地生成星形模式或者雪花模式,该模式具有在中心的事实表,该事实表以由本领域技术人员理解的方式(例如,通过链接主键和外键)适当地被链接到多个维度表中的每个维度表。

在一些其他示例实施例中,一个或多个事实表322可以包括被定义在与事件相关联的查询中的度量。度量可以包括任何聚合、求和或者事实的组合(例如,给定月份、季度、年份等的销售)。在一些其他示例中,度量可以包括各种事件之间的时间间隔,诸如在报销提交事件和报销的最终处理之间的处理时间。例如,时间间隔可以基于在事件工作室108中所定义的并且被存储在超广义数据库314的事件模型306中的事件依赖而被确定。如果这样的事件依赖存在,则这样的依赖可以使得一个或多个事件能够经由序列号或键被链接在一起。由于事件之间的依赖信息是已知的,当事实表被生成时,包括事件之间的期望间隔的度量、或者指示某些事件尚未发生(例如,尽管提交了报销,但是报销还没有被处理)的度量可以自动地被包括。然而,度量不限于这样的说明性示例,并且可以包括对跨一个或多个维度或事件进行分析可能有益的任何其他分析。

在示例中,度量可以在与业务事件相关联的一个或多个SQL查询中被定义。例如,开发者或者分析师可以确定某些度量对针对给定事件分析可以是受期望的,并且因此可以在与该事件相关联的SQL查询中定义这样的度量。以这种方式,如果度量要被添加、移除和/或修改,则开发者或分析师可以修订针对事件的查询,而不是参与以其他方式定义度量的复杂并且耗时的过程。

在一些示例实现中,维度属性信息可以从超广义临时数据库314的维度元数据316被提取。例如,图7示出了根据示例实施例的用于得出维度属性名称的方法的流程图700。在一个实现中,流程图700的方法可以由维度映射器310实现。继续对图3的参考来描述图7。基于以下关于流程图700和图3的系统300的讨论,其他结构和操作实现对于(多个)相关领域的技术人员来说将是明显的。

流程图700开始于步骤702。在步骤702中,维度表中的一个维度表的维度属性名称从列头被得出。例如,参考图3,超广义临时数据库314可以包括如前所述的维度元数据316。维度元数据316可以包括以各种方式链接事件和维度的元数据。在示例实现中,维度元数据316可以包括元数据,当来自与事件相关联的查询的结果被加载到数据库中时,元数据被编码到与事件相关联的SQL查询的列头中并且被存储在超广义临时数据库314中。

在早先所描述的说明性示例中,列头可以以预定格式被编码,诸如通过标识一个或多个维度相关的字段。例如,列头可以以非限制性方式被编码如下:{维度组}-{维度名称}-{维度属性名称}-{维度属性标签}-{使用上下文}-{记录状态标志},其中每个字段包含适当的标识符或标志条目。因此,基于这样的维度元数据,维度映射器310可以被配置为从列头自动地标识维度属性名称,该维度属性名称在生成如上所述的维度表时可以被使用。在一些其他实现中,维度映射器310还可以被配置为将维度属性名称重新命名或重新格式化为一个或多个用户友好(user-friendly)的名称,诸如通过在单词之间添加空格、将某些字母大写、固定标点符号等。表格模型构建器326还可以被配置为在表格模型328中示出这些用户友好的名称,提高模型的可读性和数据可发现性。以这种方式,用户友好的维度表的生成可以通过自动地包括维度属性的适当名称(或者可能存在于维度元数据316中的任何其他标识符)而进一步被自动化。

III.说明性数据库模式实施例

如上所述,表格模型生成系统104(和其中所包括的子组件)解释和处理被存储在超广义数据库314中的域无关事件和维度数据以自动地生成展示数据库320,并且然后构建表格模型328。图8A-图8G描绘了可以根据示例实施例所生成的说明性数据库模式,以便使得事件模型生成器302、事件记录器308、仓库构建器318和表格模型构建器326能够有效地存储、解释和处理域无关事件和维度数据。应注意并且理解,图8A-8G中所示的示例是出于说明目的而被提供的,并非旨在进行限制。每个说明性的数据库模式被描述如下。

图8A示出了根据示例实施例的用于存储业务事件(business event)和查询的示例模式801。例如,图8A中所示的说明性模式可以根据上述流程图200的步骤202而被生成。例如,事件工作室108和事件模型生成器302可以被配置为生成包括示例模式801的事件模型306。在示例实现中,示例模式801(例如,在事件模型306中)可以被存储在超广义临时数据库314中,如上所述。

图8B示出了根据示例实施例的用于存储维度(dimension)和相关属性(attribute)的示例模式802。例如,图8B中所示的说明性模式可以根据流程图200的步骤204和/或流程图400的步骤402和步骤404而被生成,如上所述。在示例实现中,维度映射器310可以被配置为解析与每个事件相关联的查询中的被编码的列名称,并且使用图8B中所示的说明性模式将维度和维度属性中的每个维度和维度属性存储在超广义临时数据库314中。

图8C示出了根据示例实施例的用于存储业务事件到维度的映射(map)的示例模式803。例如,如图8C中所示的说明性模式可以根据流程图200的步骤204和/或流程图400的步骤402和步骤404而被生成,如上所述。例如,维度映射器310可以被配置为针对每个事件解析查询中的被编码的列名称,然后使用如图8C所示的说明性模式在超广义临时数据库314中存储指示当事件发生时哪些维度可以被创建和/或被引用的信息。

图8D示出了根据示例实施例的用于存储维度记录(dimension record)的示例模式804。例如,如图8D中所示的说明性模式可以根据上述流程图200的步骤206而被生成。在示例实现中,记录获取器312可以被配置为在如图8D所示的示例模式804中加载维度记录和维度记录属性(例如,通过从一个或多个源系统110检索事务数据)。如上所述,示例模式804也可以被存储在超广义临时数据库314中。

图8E示出了根据示例实施例的用于存储事件记录(例如业务事件记录(businessevent record))的示例模式805。例如,如图8E中所示的说明性模式可以根据上述流程图200的步骤206而被生成。在示例中,记录获取器312可以被配置为执行与每个事件相关联的查询以获得事务性事件记录332,并且然后以如下方式加载或填充示例模式805,如图8E所示:事件发生数据(例如,事件记录键(event record key)、发生时间(occurrence time)等)被存储在业务事件记录表中,同时事件记录到维度记录的映射被存储在业务事件记录矩阵(matrix)表中。

图8F示出了根据示例实施例的用于存储度量(measure)(例如,业务事件记录度量)的示例模式806。例如,图8F中所示的说明性模式可以根据上述流程图200的步骤206而被生成。在示例中,记录获取器312可以被配置为执行与每个事件相关联的查询以加载或填充示例模式806。结果,超广义临时数据库314中的事件记录度量表可以以如每个查询中所定义的适当度量(例如,聚合、求和、或者事实组合、或事件之间的时间间隔等)而被填充。

图8G示出了根据示例实施例的可以自动地被生成的示例星型模式807。例如,示例星形模式807可以根据上述流程图200的步骤208和/或步骤210、和/或流程图600的步骤602而被生成。如上所述,仓库构建器318和表格模型构建器326可以被配置为生成示例星型模式807,示例星型模式807包括示例中的事实表和多个维度表。例如,如图8G所示,示例星型模式807可以包括在中心处的事实表(例如,事实表322),该事实表与多个维度表(例如,维度表324)相关联。尽管图8G中描绘了示例星型模式,但是应当理解,包括与多个维度表相关联的事实表的雪花模式或者其他适当模式可以根据实现而被生成。

IV.示例移动和固定设备实施例

服务器102、表格模型生成系统104、计算设备106、事件工作室108、(多个)源系统110(和/或任何前述项的任何子组件)、流程图200、流程图400、流程图500、流程图600和/或流程图700可以以硬件或者与软件和/或固件组合的硬件而被实现,诸如被实现为被存储在物理/基于硬件的计算机可读存储介质中、并且被配置为在一个或多个处理器中执行的计算机程序代码/指令,或者被实现为硬件逻辑/电路装置(例如,由晶体管、逻辑门、运算放大器、一个或多个专用集成电路(ASIC)、一个或多个现场可编程门阵列(FPGA)组成的电路)。例如,服务器102、表格模型生成系统104、计算设备106、事件工作室108、(多个)源系统110(和/或任何前述项的任何子组件)、流程图200、流程图400、流程图500、流程图600和/或流程图700中的一项或多项可以单独或一起在SoC中被实现。SoC可以包括集成电路芯片,该集成电路芯片包括处理器(例如,中央处理单元(CPU)、微控制器、微处理器、数字信号处理器(DSP)等)、存储器、一个或多个通信接口、和/或其他电路中的一项或多项,并且可以可选地执行所接收的程序代码和/或包括嵌入式固件以执行功能。

图9描绘了其中可以实现示例实施例的计算设备900的示例性实现。例如,服务器102、表格模型生成系统104、计算设备106、事件工作室108、(多个)源系统110(和/或任何前述项的任何子组件)中的任何项可以在类似于固定或移动计算机实施例中的计算设备900的一个或多个计算设备中被实现,包括计算设备900的一个或多个特征和/或备选特征。本文所提供的计算设备900的描述是出于说明的目的而提供的,并非旨在进行限制。示例实施例可以在其他类型的计算机系统中被实现,如(多个)相关领域的技术人员所知。

如图9所示,计算设备900包括被称为处理器电路902的一个或多个处理器、系统存储器904和总线906,总线906将包括系统存储器904在内的各种系统组件耦合到处理器电路902。处理器电路902是在一个或多个物理硬件电学电路设备元件和/或集成电路设备(半导体材料芯片或管芯)中被实现为中央处理单元(CPU)、微控制器、微处理器、和/或其他物理硬件处理器电路的电学电路和/或光学电路。处理器电路902可以执行被存储在计算机可读介质中的程序代码,诸如操作系统930、应用程序932、其他程序934等的程序代码。总线906表示多种类型的总线结构中的任何一种或多种总线结构,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线架构中的任一种总线架构的处理器或本地总线。系统存储器904包括只读存储器(ROM)908和随机存取存储器(RAM)910。基本输入/输出系统912(BIOS)被存储在ROM 908中。

计算设备900还具有以下驱动器中的一个或多个驱动器:用于读取和写入硬盘的硬盘驱动器914、用于读取或写入可移除磁盘918的磁盘驱动器916、以及用于读取或写入可移除光盘922(诸如CD ROM、DVD ROM或者其他光学介质)的光盘驱动器920。硬盘驱动器914、磁盘驱动器916和光盘驱动器920分别通过硬盘驱动器接口924、磁盘驱动器接口926和光盘驱动器接口928连接到总线906。驱动器及其关联的计算机可读介质为计算机提供计算机可读指令、数据结构、程序模块和其他数据的非易失性存储。尽管描述了硬盘、可移除磁盘和可移除光盘,但是可以使用其他类型的基于硬件的计算机可读存储介质来存储数据,诸如闪存卡、数字视频磁盘、RAM、ROM和其他硬件存储介质。

多个程序模块可以被存储在硬盘、磁盘、光盘、ROM或RAM上。这些程序包括操作系统930、一个或多个应用程序932、其他程序934和程序数据936。应用程序932或其他程序934可以包括例如用于实现服务器102、表格模型生成系统104、计算设备106、事件工作室108、(多个)源系统110(和/或任何前述项的任何子组件)、流程图200、流程图400、流程图500、流程图600和/或流程图700(包括流程图200、400、500、600或700的任何合适的步骤)和/或本文所描述的其他示例实施例的计算机程序逻辑(例如,计算机程序代码或指令)。

用户可以通过诸如键盘938和定点设备940的输入设备将命令和信息录入到计算设备900中。其他输入设备(未示出)可以包括麦克风、操纵杆、游戏手柄、卫星天线、扫描仪、触摸屏和/或触摸板、接收语音输入的语音识别系统、接收手势输入的手势识别系统,等等。这些和其他输入设备通常通过耦合到总线906的串行端口接口942连接到处理器电路902,但是也可以通过其他接口连接,例如并行端口、游戏端口或通用串行总线(USB)。

显示屏944还经由接口连接到总线906,诸如视频适配器946。显示屏944可以在计算设备900的外部或者被并入计算设备900中。显示屏944可以显示信息,以及作为用于接收用户命令和/或其他信息(例如,通过触摸、手指手势、虚拟键盘,等等)的用户接口。除了显示屏944之外,计算设备900可以包括其他外围输出设备(未示出),诸如扬声器和打印机。

计算设备900通过适配器或网络接口950、调制解调器952或者用于在网络之上建立通信的其他部件连接到网络948(例如,互联网)。调制解调器952可以是内部的或外部的,其可以经由串行端口接口942连接到总线906,如图9所示,或者可以使用另一接口类型,包括并行接口,连接到总线906。

如本文所使用,术语“计算机程序介质”、“计算机可读介质”和“计算机可读存储介质”用于指代物理硬件介质,诸如与硬盘驱动器相关联的硬盘914、可移除磁盘918、可移除光盘922,其他物理硬件介质,诸如RAM、ROM、闪存卡、数字视频磁盘、zip磁盘、MEM、基于纳米技术的存储设备,以及其他类型的物理/有形硬件存储介质。这样的计算机可读存储介质与通信介质不同并且不重叠(不包括通信介质)。通信介质在诸如载波的调制数据信号中体现为计算机可读指令、数据结构、程序模块或其他数据。术语“调制数据信号”是指如下信号:该信号的一个或多个特征以将信息编码在信号中的方式设置或改变。作为示例而非限制,通信介质包括无线介质(诸如声学、RF、红外和其他无线介质)以及有线介质。示例实施例还针对与针对计算机可读存储介质的实施例分开并且不重叠的这样的通信介质。

如上所述,计算机程序和模块(包括应用程序932和其他程序934)可以被存储在硬盘、磁盘、光盘、ROM、RAM或其他硬件存储介质上。这样的计算机程序也可以经由网络接口950、串行端口接口942或者任何其他接口类型而被接收。这样的计算机程序在由应用程序执行或加载时,使得计算设备900能够实现本文所描述的示例实施例的特征。因此,这样的计算机程序表示计算设备900的控制器。

示例实施例还针对包括被存储在任何计算机可读介质上的计算机代码或指令的计算机程序产品。这样的计算机程序产品包括硬盘驱动器、光盘驱动器、存储器设备包、便携式存储器棒、存储器卡和其他类型的物理存储硬件。

V.示例实施例

本文描述了一种用于生成表格模型的系统。该系统包括一个或多个处理器、一个或多个存储器设备、以及用于存储表格模型的存储设备,该一个或多个存储器设备存储被配置为由一个或多个处理器执行的程序代码,该程序代码包括:事件模型生成器,被配置为生成事件模型,事件模型包括多个事件以及每个事件之间的一个或多个依赖;事件记录器,被配置为将多个维度映射到事件中的每个事件、以及执行查询以获取与事件模型相关的事件记录;仓库构建器,被配置为针对事件模型来自动地生成展示数据库;以及表格模型构建器,被配置为使用展示数据库来生成表格模型。

在前述系统的一个实现中,事件记录器还被配置为:解析与每个事件相关联的查询以将维度元数据映射到事件,以及将维度元数据存储在超广义数据库中。

在前述系统的另一实现中,仓库构建器被配置为:从超广义数据库的模式标识维度元数据,以及部分地基于维度元数据,生成展示数据库。

在前述系统的另一实现中,仓库构建器被配置为生成与展示数据库中的多个维度表相关联的事实表。

在前述系统的另一实现中,事实表包括被定义在与事件相关联的查询中的度量。

在前述系统的另一实现中,系统还包括维度映射器,维度映射器被配置为从列头得出维度表中的一个维度表的维度属性名称。

在前述系统的另一实现中,系统还包括图形用户接口(GUI),图形用户接口被配置为接收多个事件的标识、以及每个事件之间的一个或多个依赖。

本文公开了一种由一个或多个计算设备实现的用于生成表格模型的方法。该方法包括:生成事件模型,该事件模型包括多个事件以及每个事件之间的一个或多个依赖;将多个维度映射到事件中的每个事件;执行查询以获取与事件模型相关的事件记录;针对事件模型来生成展示数据库;以及使用展示数据库来生成表格模型。

在前述方法的一个实现中,该方法还包括:解析与每个事件相关联的查询以将维度元数据映射到事件;以及将维度元数据存储在超广义数据库中。

在前述方法的另一实现中,该方法还包括:从超广义数据库的模式标识维度元数据,以及部分地基于维度元数据,生成展示数据库。

在前述方法的另一实现中,该方法还包括生成与展示数据库中的多个维度表相关联的事实表。

在前述方法的另一实现中,事实表包括被定义在与事件相关联的查询中的度量。

在前述方法的另一实现中,生成多个维度表包括从列头得出维度表中的一个维度表的维度属性名称。

在前述方法的另一实现中,该方法还包括:经由图形用户接口(GUI)接收多个事件的标识、以及每个事件之间的一个或多个依赖。

本文公开了一种计算机可读存储器。该计算机可读存储器上记录有程序代码,该程序代码当由至少一个处理器执行时,使该至少一个处理器执行一种方法,该方法包括:生成事件模型,该事件模型包括多个事件以及每个事件之间的一个或多个依赖;将多个维度映射到事件中的每个事件;执行查询以获取与事件模型相关的事件记录;针对事件模型来生成展示数据库;以及使用展示数据库来生成表格模型。

在前述计算机可读存储器的一个实现中,该方法还包括:解析与每个事件相关联的查询以将维度元数据映射到事件;以及在超广义数据库中存储维度元数据。

在前述计算机可读存储器的另一实现中,该方法还包括:从超广义数据库的模式标识维度元数据,以及部分地基于维度元数据,生成展示数据库。

在前述计算机可读存储器的另一实现中,该方法还包括生成与展示数据库中的多个维度表相关联的事实表。

在前述计算机可读存储器的另一实现中,事实表包括被定义在与事件相关联的查询中的度量。

在前述计算机可读存储器的另一实现中,生成多个维度表包括从列头得出维度表中的一个维度表的维度属性名称。

VI.总结

虽然本发明的各种实施例在上面已经被描述,但是应当理解,它们仅通过示例而非限制的方式而被呈现。(多个)相关领域的技术人员将理解,在不脱离如所附权利要求所限定的本发明的精神和范围的情况下,可以在形式和细节上进行各种改变。因此,本发明的广度和范围不应受上述示例性实施例中的任一项限制,而应仅根据所附权利要求及其等效物而被限定。

相关技术
  • 用于生成内存表格模型数据库的系统和方法
  • 表格边框预测模型生成方法、装置及表格定位方法、装置
技术分类

06120113236182