CN108205582A - 基于数据老化优化数据访问 - Google Patents
基于数据老化优化数据访问 Download PDFInfo
- Publication number
- CN108205582A CN108205582A CN201711346680.2A CN201711346680A CN108205582A CN 108205582 A CN108205582 A CN 108205582A CN 201711346680 A CN201711346680 A CN 201711346680A CN 108205582 A CN108205582 A CN 108205582A
- Authority
- CN
- China
- Prior art keywords
- date
- aging
- view
- limiting
- data
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2477—Temporal data queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2291—User-Defined Types; Storage management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/24569—Query processing with adaptation to specific hardware, e.g. adapted for using GPUs or SSDs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种数据库,包括具有相应分区日期的多个分区。从数据库的视图接收对数据的查询,该查询包含用于检索数据的过滤参数。分析视图的定义以确定有助于视图的数据库的表格以及与该表格关联的老化对象。例如,基于视图的定义中的注释来识别与老化对象相关联的限制规则。基于限制规则确定老化对象的限制日期。基于分区的分区日期等于或晚于限制日期选择来自所述多个分区的分区。根据过滤参数从选择的分区中检索查询的数据,并基于检索的数据生成对查询的响应。
Description
技术领域
本公开一般涉及数据处理,并且在具体实施例中涉及利用数据库老化功能来优化从数据库对数据进行访问。
背景技术
企业在其运营过程中可能会使用各种软件应用和/或服务。这些软件应用和/或服务可以用来完成各种企业任务,并且可以与一个或多个后端系统(例如,服务器、数据库等)结合使用。后端系统可以存储企业数据,例如业务对象和其他业务数据,并且存储用于操纵企业数据的逻辑,诸如事务逻辑或其他业务逻辑。为了完成企业操作,软件应用和/或服务可能需要从后端系统的数据库访问存储的企业数据。后端系统可以使用例如SAP HANA数据库,SAP HANA数据库是可从德国瓦尔多夫的SAP AG获得的面向列的存储器内数据库。数据库可以通过数据库管理系统(DBMS)与应用进行通信。数据库还可以与表现出不同特征(例如速度、成本、可靠性、能量消耗)的多个不同存储介质通信。
企业数据可以被存储在具有数据老化功能的数据库中,数据老化功能基于与数据相关联的“老化日期”以及与分区相关联的对应分区日期(或分区日期范围),将数据存储在数据库的特定分区中。数据库还可以包括其他数据隔离功能,诸如用于根据数据的当前状态(例如,未决或已完成)来存储企业数据,和/或可以用于将数据隔离到数据库的单独分区中的任何其他值。例如,具有最近的老化日期(例如,少于一年)和/或具有“未决”的“老化值”的数据(例如,业务相关(或“当前”)数据)可以被存储在可被快速访问的更快、更昂贵的存储介质中,并且具有较早的老化日期(例如,一年以上)或具有“已完成”的老化值的数据(例如,不相关的(或“历史的”)数据)可以存储在较慢、较便宜的存储介质中。因此,可以根据存储级别将企业数据存储在数据库的不同分区中,从而可以容易地访问。数据记录的老化日期/值可以基于用于操纵引用数据记录的软件对象(例如,业务对象)的规则(例如业务规则)的逻辑来分配。
数据老化的目的是为了例如通过在联机事务处理(OLTP)环境中将历史交易数据存储在数据库的较慢/较便宜的分区中,减少访问老化隔离数据的软件应用的存储器占用,以减少系统负载。尽管数据可以冗余地存储在存储架构(例如,数据库系统)的不同级别(例如,分区),但是可以通过仅将最近数据存储在存储架构的最高级别中来优化存储数据的成本。在老化日期/值已经被分配给特定的软件对象数据(例如数据记录)并且已经确定适当的存储位置(例如数据库分区)之后,可以适当地查询/访问数据。然而,考虑到存储的数据的多个老化日期/值,可能难以确定如何最优地访问来自多个不同存储级别的数据,使得如果具有较老的日期/值的数据不会有助于查询的结果集,则数据查询不一定加载或者甚至处理这样的数据。
规则(例如业务规则)可以应用于数据,以确保从规则的整体角度来看确保彼此相关的所有数据记录可以仅存储在相同存储级别(和/或更新的数据的更高级别)内。包括相关数据片段的软件对象可以跨不同的数据结构(例如表格)存储在数据库中。以这种方式,通过“关系”链接在一起的记录表格可以被分开存储,同时仍允许用户以有效的方式对数据库进行复杂的查询。因此,从规则的角度,对于与(由规则操纵的)同一个软件对象相关联的数据的查询将返回完整的结果集。结构化查询语言(SQL)是用于在这样的“关系”数据库上创建和操作的标准化语言。然而,查询应该到达多久远的历史数据可能在查询执行之前并不一定清楚。
附图说明
本公开内容通过示例而非限制的方式在附图中示出,其中相同的附图标记表示类似的元件,并且其中:
图1是与一些实施例一致的被配置为基于数据库的数据老化功能来优化数据访问的系统的数据流的高级框图。
图2是与一些实施例一致的被配置为基于数据库的数据老化功能来优化数据访问的系统的数据流的框图。
图3是示出与一些实施例一致的用于基于数据库的数据老化功能来优化数据访问的方法的流程图。
图4A是示出与一些实施例一致的用于基于数据库的数据老化功能来优化数据访问的方法的流程图。
图4B是进一步示出与一些实施例一致的用于基于数据库的数据老化功能来优化数据访问的方法的流程图。
图5是示出与一些实施例一致的用于基于数据库的数据老化功能来优化数据访问的方法的流程图。
图6是示出根据一些示例实施例的可以安装在机器上的软件架构的示例的框图。
图7示出了计算机系统形式的机器的图示,其中可以执行一组指令以使机器执行本文讨论的任何一个或多个方法。
具体实施方式
使用数据老化功能从数据库访问数据的传统方法涉及用户指定是否响应于用户查询考虑历史数据。然而,这不是最佳的,因为用户通常不知道导致数据老化的逻辑(例如,检查、标准等),更不用说已经分配给数据的任何老化日期/值,因此不能够识别是否需要考虑历史数据。这种对用户的依赖可能导致查询没有达到用户所请求的数据(例如,用户可能被迫重新运行具有较早的老化日期的查询)、由于存储在较慢的分区中的数据的不必要的评估而导致的性能损失、和高于所需的数据量的处理。因此,传统方法未能提供如下的数据访问,其可避免(内容上)不必要的数据加载和处理成本,而不会对最终用户是否访问历史数据造成决定负担。
在本文描述的示例实施例中,可以通过利用历史数据从数据库的主节点的快速/昂贵的存储器内存储传送到较慢/较便宜的存储介质(例如,在磁盘上)的事实,实现优化的数据访问。如上所述,保留在主存储器中的数据可以被称为当前数据(或者较早的术语中的热数据),并且移出主存储器的数据被称为历史数据(或者较早的术语中的冷数据)。可以利用数据老化功能来通过在数据检索期间限制对历史数据的访问而实现性能改进;换句话说,如果不需要从主存储器移出的数据响应用户查询,则可以避免对于该数据的检索。
如上所述,基于与每个分区相关联的分区日期(或分区日期范围),可以将数据库分成单独的分区,用于存储具有不同关联的老化日期/值的数据。特殊分区(例如,表示为“0000”分区)可以保存所有当前数据,并且可以为具有与较早日期时段或值范围对应的老化日期/值(例如,年分区)的数据创建附加分区。这些附加分区保存可能存储在较慢介质(例如磁盘)上的历史数据。替代地,历史数据也可以驻留在单独的存储器内节点中、或者甚至在动态的基于层的设置中的单独的数据库中。老化表(例如,配置用于数据老化的表)的行根据其被分配的老化日期/值而被分发给这些分区。在实施例中,对分区的这种分发由被称为表的分区列(或老化分区列)的表的特殊日期列控制。分区列值为“0000-00-00”的行属于当前分区;分区列的其他行根据每行的分区列的相应日期值属于历史分区。
老化运行是定期执行的工作,其检查活动老化对象(例如相关表的活动组)的表格,根据以下条件确定足够成熟的当前记录:配置的数据驻留时段、作为老化规则的一部分的条件的满足、应用的完成和过程特定的检查(例如状态值、文件前身存在)和/或通过任何对于老化的否决检查;并且如果记录合格,则设置老化日期/值。在计划的老化运行中,数据库在更新分区列时将记录移到对应的历史分区。分区列没有自己的应用规则/语义来确定列中的值;因此,在创建之后,记录在分区列的对应行中具有“0000-00-00”的初始值,并且最初在当前(例如0000)分区中创建。
数据到历史分区的移动可以由应用特定的老化逻辑来控制,并且通过定期安排的老化运行来执行。老化运行可以首先基于表中的一个(或几个)日期列来确定表的一行的年龄。通常单个年龄参考日期可用,并用于计算记录的年龄。表的年龄参考日期列包括可以用作根据老化规则计算行年龄的参考的应用语义。例如,在老化运行期间,年龄参考日期列的每一行的年龄参考日期可被复制到表的分区列的对应行。老化运行然后可以选择比指定驻留时段老(例如,老于一年)的表格的行。老化运行然后可以处理应用特定的否决检查(例如,根据老化规则),这可以防止数据移动到历史分区。例如,具有状态“未完成”而不是“已完成”(例如,在状态栏中)的行可以始终保持在当前分区中。然后,老化运行可以用从应用的语义日期列(例如,年龄参考日期列)确定的值来更新表的分区列。如上所述,这可能只需要将“年龄参考日期”的值复制到分区列的对应行。最后,老化运行可以更新表格的老化统计;特别是可以为表格存储分区列的最大值。
数据老化的主要挑战是从较慢的存储介质访问历史数据对性能的影响,这可能是巨大的。因此,为了优化数据访问,如果历史数据不是正确的结果所需要的,则可以避免访问历史数据。例如,如果用户希望看到状态为“未完成”的行的列表、并且存在具有状态“未完成”的行保留在当前分区中的老化规则,则仅检索当前数据来响应用户就足够了。遗憾的是,如果对历史数据的搜索对于回答用户请求(例如查询)是必需的,则大多数数据库不能自动决定。替代地,调用者(例如,请求的消费者)必须“先验”决定需要哪些数据并且向该请求添加适当的子句。这可以是分区列上的“where condition”,也可以是“with range_restriction()”的新SQL语法元素。在高级业务应用编程(ABAP)应用中,范围限制可以由特定的API设置。例如:
对于基于数据库视图的一般应用或分析(例如,分布在多个表格上的应用数据的组合),由于若干原因,关于访问历史数据的需要的先验决定是困难的。在只有数据库视图名称和连同请求提供的任何过滤器(例如,参数)的情况下,请求的完整上下文可能不能被很好地获知。这个已知的上下文(例如,数据库视图名称和语义列的可用过滤器)可以被转换成技术限制,以连同对数据的请求一起提供给数据库。可以跨应用区域并触摸多个老化对象定义视图,并且在用户查询中可以自由组合老化表(例如,经由连结(joins))。因此,限制不会排除适当执行连结或其他视图构建逻辑所需的表的数据。
示例设计概述
图1是与一些实施例一致的被配置为基于数据库数据老化功能来优化数据访问的系统100的数据流的高级框图。
系统100的总体设置包括应用(例如移植到移动设备的SAP Fiori应用)或在分析前端中执行的分析查询工具130。系统100进一步包括:通用基础架构150,其可以是(例如分析前端的)分析引擎或高级业务应用编程(ABAP)应用基础架构;以及数据库170,例如SAPHANA数据库。在实施例中,通用基础架构150可以形成数据库170的一部分,例如作为数据库170的“上层”,其可以将接收的数据请求转换成“较低级”请求(例如,SQL请求)。基于用户110想要从数据库170查看一些数据或分析图形,用户110启动应用或查询工具130,并且可选地提供用于从数据库170进行数据选择的过滤器120。应用或查询工具130接受来自用户110的输入,并且以开放数据(OData)协议或者在分析前端的情况下以信息访问(InA)协议向通用基础架构150发送查询140。通用基础架构150解释查询140,将其转换为关于(例如,数据库170的)一个或多个对应的数据库视图的SQL语句,并且将转换的请求160发送到数据库170。
在实施例中,用户110想要看到未完成的销售订单的列表;因此,用户110打开适当的应用或查询工具130并指定关于销售订单状态的过滤器120,例如status=open。应用或查询工具130(例如,前端)从具有关于销售订单状态的过滤器120的对应OData服务,发送对于销售订单实体集的查询140。通用基础架构150从对应的数据库视图中选择具有where子句中的过滤器120的消费视图,例如where status=open。在没有(例如由用户110)明确限制数据的特定时间段的情况下,数据库170将在所有存储的数据中搜索未完成的销售订单。然而,在构建请求160时,系统100可以利用销售订单的已知业务逻辑,其在销售订单的老化运行中提供否决检查,从而防止未完成订单的老化。因此,将请求160限制为当前数据(例如,在老化运行中尚未老化的数据)是可能的,并且将提升性能,而不会丢失响应来自用户110的查询140所需的来自数据库170的任何数据。
在实施例中,用户110想要查看当年的所有销售订单值的总和。用户110打开适当的应用或查询工具130,并且指定(例如,作为过滤器120)当年的1月1日作为销售订单创建日期的下限。应用或查询工具130经由InA协议从通用基础架构150(例如分析引擎)发送对于累计(例如总和)查询结果的查询140,其中给定关于创建日期的下限。通用基础架构150从对应的数据库视图(例如立方体视图)中选择具有where条件中的日期边界的累计结果,例如创建日期>=“20160101”。如上所述,在没有来自用户110的明确限制的情况下,数据库170将在其所有数据中搜索创建日期大于或等于1月1日的记录。然而,销售订单的老化逻辑(例如,基于销售订单的业务逻辑)使用销售订单的创建日期作为与销售订单相关联的历史记录的分区日期。因此,2016年1月1日可以用作“限制日期”,用于将对数据库170中的老化数据的访问限制为具有等于或晚于限制日期的关联分区日期(或分区日期范围)的数据库170的分区。此外,在老化运行期间写入的老化统计提供了所有历史记录(例如数据库170的当前分区)的最大(例如,最近的)分区日期。如果这个最近的分区日期早于1月1日,则SQL在当前数据(例如,数据库170的当前分区)选择就足够,并且将提升性能,而不会丢失响应来自用户110的查询140所需的来自数据库170的任何数据。
以这种方式,用户110可以利用适当的业务语义(例如,基于销售订单业务逻辑)来指定对应数据库视图的列的过滤器120值,从该业务语义可以制定从数据库170访问老化数据的限制(例如,针对请求160的一部分的SQL选择)。此外,为了确保在来自用户110的查询140中使用这些列,可以在应用或查询工具130的用户界面中使列成为强制性的,并且这些列的过滤器120可以预先填充适当的默认值。可以选择适当的默认值以确保良好的响应时间,同时允许用户110改变过滤器120的默认值,例如,以从数据库170查看更多数据。重要的是,用户110不面临关于数据库170的分区的技术分区日期的决定或甚至由数据库170中的数据老化导致的当前和历史数据的概念。
示例系统架构
图2是与一些实施例一致的被配置为基于数据库数据老化功能来优化数据访问的系统200的数据流的框图。图2中的元件包括来自图1的元件,这些元件标有相同的标识符。
如上所述,关于数据库170的数据老化功能(例如,老化运行),系统200包括数据库170,数据库170包括具有相应分区日期(或分区日期范围)的多个分区。系统200包括应用或查询工具130,用于向通用基础架构150发送对于来自数据库170的视图的数据的查询140(例如,以OData或InA协议),查询140包含至少一个过滤器120(例如,过滤参数=订单状态),用于检索来自数据库170的数据。如上所述,通用基础架构150可以包括分析引擎202或ABAP应用基础架构204。在图2的示例中,通用基础架构150(或数据库170)包括老化基础架构206,该老化基础架构206包括限制日期基础架构214、与数据库170相关联的数据库数据字典(DDIC)216以及老化控制218。
通用基础架构150从限制日期基础架构214的限制处理器208发送对于数据访问限制日期的请求220。请求220指定:(例如,在单个SQL选择中)请求其数据的(数据库170的)数据库视图、对于数据库视图的字段(例如,经由“与”语义的连接)的选择选项、以及用于形成请求220的任何视图关联。然后,限制处理器208分析222数据库DDIC 216中的每个视图的定义,以确定对每个视图有贡献的数据库170的表,并识别视图的定义中的任何元数据(例如,注释)。
限制处理器208然后确定224视图中的哪些表是老化表、它们各自的老化对象212(例如,销售订单老化对象)、以及这些相应的老化对象212是否是活动的,例如销售订单状态=未完成。限制处理器208随后识别(例如,基于视图的注释)与相应的老化对象212相关联的限制规则(例如,被定义为数据库170的限制规则视图),并将请求226发送到数据库170以执行所识别的限制规则视图。数据库170中的限制规则视图的执行提供限制日期,如以下关于在此描述的方法所说明的。限制处理器208然后可使用228老化统计210来优化限制日期,例如,如果限制日期比数据库170的分区(例如,当前数据分区)的最近分区日期更新,则等于最近的分区日期的限制日期将足以响应查询140。
然后,通用基础架构150基于所选择的分区的相应分区日期等于或者晚于优化的限制日期,使用230老化控制218来设置用于从数据库170的多个分区中选择至少一个分区的限制日期。最后,通用基础架构150根据查询140的过滤器120从所选择的分区中检索232数据,并用检索的数据对查询140作出响应。
示例数据结构
数据结构的以下描述参考来自图1和图2的元件,这些元件使用相同的标识符来指代。用于访问来自数据库170的数据的限制规则可以依赖于单独的老化对象212的老化逻辑和分区设置。由于数据库视图可以从多个老化对象212中选择数据,所以识别多个老化对象212中的每一个的限制规则是重要的。与数据库视图相关联的给定老化对象的限制规则可以如下制定:限制规则采用可用过滤器120(例如,来自查询140),并返回规则最小日期或“规则最早日期”。规则最小日期是用于限制日期的下限(包括下限),所述限制日期用于选择包括将通过过滤器120的历史数据的日期分区。限制规则可以被认为是如下声明:所有通过给定过滤器120的视图行不是基于具有比规则最小日期更低(更早)的分区日期的规则的老化对象的老化表的历史数据。
图2的数据库DDIC 216中的视图的定义可以包括指示视图的日期列的注释,日期列指定了老化对象212的每个实例的老化日期。例如,日期列(LastChangeDate)可以在分析数据库视图中由注释标记如下:
基于来自用户110的典型查询140:
select*from SalesOrderItemCube
where LastChangeDate>='20160101',
可以应用以下数据访问限制逻辑。where条件(例如,过滤器120)的日期2016-01-01可以被用作限制日期的下限,所述限制日期用于选择数据库170的分区(例如,经由与分区的相应分区日期比较)以响应于查询140进行搜索。因此,读取分区日期为2016-01-01或更近的数据库170的分区(包括当前分区)就足够了。数据库170的老化(例如,历史)分区中的数据的每个老化对象212(上述示例中的EPM_SO)的最近的分区日期从老化统计数据210是已知的。这允许优化数据访问限制日期:如果最旧的请求日期2016-01-01比历史分区的最近分区日期更近,则读取数据库170的当前分区以形成对查询140的完整响应就足够了。
因此,限制处理器208解释任何注释(例如,指示视图的日期列)并一般地执行每个限制规则。如果关于视图的注释列的过滤器120可用(例如,表示为选择选项),则可以使用由选择选项描述的最小日期作为规则最小日期,并且如果没有过滤器120可用(例如,来自查询140),则使用最低(例如,最旧)的日期0001-01-01。执行限制规则的结果是一对(AgingObject,RuleMinimalDate),其可以与其他限制规则的执行结果相结合,如下所述。限制规则的执行只有在视图中存在适当的年龄参考日期列时才是可能的,所述年龄参考日期列例如由数据库DDIC 216中的视图的定义中的参考日期列的注释所标识。
图2的老化对象212可以是业务对象,并且与这些老化对象212相关联的限制规则可以基于与业务对象相关联的业务规则的逻辑。例如,限制规则可以基于由数据库DDIC216中的视图定义的注释指定的老化规则,因为用于对历史数据的访问的先验限制的逻辑可以是在老化运行期间应用的逻辑(老化逻辑)的逆,其选择行(例如,对视图有贡献的表的行)以移动到数据库170的历史分区。限制规则视图是(例如关于数据库170的)数据库视图,其具有在该视图的注释中列出的所有列以及附加的强制性列“DataAgingRelevantDate”。限制规则视图可以可选地包括从数据库视图传递的一些参数。
在以下示例中,注释对应于视图列SalesOrderLifeCycleStatus,并为限制规则指定限制规则视图SalesOrderStatusAgingRule:
限制规则视图表示仅已完成或取消的销售订单可能会老化、而新的或正在处理的订单始终保留在当前分区中的业务规则。它可以被定义(例如,在数据库DDIC 216中)如下:
来自用户110的典型查询140可以请求所有新的或正在处理的销售订单:
select*from SalesOrderItemCube
where SalesOrderLifeCycleStatus='N'
or SalesOrderLifeCycleStatus='P'
(例如,由限制处理器208)执行规则视图,其具有从用户请求的where条件(例如,过滤器120)导出的where条件:
所产生的MinimalDate(例如,最早的日期,在该示例中:99991231)可以被确定为在当从数据库170的历史分区选择以便响应查询140时、在将过滤器120的应用用作限制日期的下限之后的列“DataAgingRelevantDate”的最小值。因此,在本示例中,仅选择当前数据分区(例如从老化统计210已知)来用于搜索。
执行限制规则视图的结果是一对(AgingObject,RuleMinimalDate),其可以与其他限制规则的执行结果组合,如下所述。数据库规则视图可以独立于在限制规则注释中使用它的视图(例如,在数据库DDIC 216中的视图的定义中)来定义,只要字段名称在视图和限制规则视图中相同。因此,限制规则视图可以容易地在多个数据库视图注释中重用;能够通过简单地使用注释来实现用于数据老化的进一步的数据库视图,从而限制了开发工作。
用于访问来自数据库170的数据的限制规则可以以保守的方式组合,以便搜索最少数量的分区,同时仍然搜索与来自用户110的查询140相关的所有数据。数据库视图可以对每个老化对象212具有多个相关联的限制规则,其具有相应的规则最小日期。由于用于不同列的选择选项(例如,过滤器120)通过逻辑“与”来组合,所以也可以通过逻辑“与”来组合经由限制规则的执行而确定的规则最小日期。因此,有效的最小日期(例如,限制日期)是所有规则最小日期的最大值,或所有规则最小日期的最高值或最近值。该最大值是老化对象212的限制日期,使得该限制日期之前的历史数据对于响应数据库视图上的查询140是不相关的。
例如,考虑以下查询140:
select*from SalesOrderItemCube
where SalesOrderLifeCycleStatus='C'
and LastChangeDate>='20160101'
这里,限制处理器208将确定针对以下两个条件的最小日期:
LastChangeDate>='20160101'确定限制日期的下限2016-01-01;并且
SalesOrderLifeCycleStatus='C'触发规则视图的执行并确定限制日期的下限0001-01-01。
这两个条件可以组合,并且取限制日期的最大(或最晚或最近)的边界日期,即2016-01-01。以这种方式,可以组合并执行每个视图的多个限制规则以确定限制日期的最佳边界。
在每次老化运行期间,对每个老化对象212将历史数据的最大(或最高或最晚)分区日期记录在老化统计210中。该最大(或最高或最晚或最近)分区日期可用于改善老化对象212的最小日期。经由老化基础架构206的API读取最大分区日期。如果老化对象212的最小日期晚于最大分区日期,则当产生对包括来自老化对象212的数据的数据库视图的查询140的响应时,仅访问对于该老化对象212的当前数据就足够了。因此,对于每个老化对象212用于读取对该视图有贡献的表的所有相关行的限制由公式(1)给出:
statistics_optimization(maxrules(minfiltered rulerows(DataAgingRelevantdate))).
示例方法
图3是说明与一些实施例一致的用于基于数据库数据老化功能来优化数据访问的方法300的流程图。图3的以下描述引用来自图1和图2的元件,这些元件使用相同的标识符来指代。
在操作302,通过通用基础架构(例如,通用基础架构150),(例如从应用或查询工具130)接收对于来自数据库(例如,数据库170)的视图的数据的查询(例如,查询140),所述通用基础架构被增强(例如,包括老化基础架构206)有在访问数据库170时处理用于先验历史数据限制的应用特定逻辑(例如,业务逻辑)的能力。此外,所接收的查询140包含至少一个过滤参数(例如,过滤器120)用于从数据库170中检索数据。
在操作304,分析(例如,在数据库DDIC 216中的)视图的定义(例如,老化基础架构206的限制日期基础架构214的限制处理器208识别视图的注释),以确定有助于视图的数据库170的表和与有助于视图的表相关联的老化对象(例如,来自老化对象212)。在操作306,例如基于视图定义的注释,由限制处理器208来识别与老化对象212相关联的限制规则(例如,关于数据库170的限制规则视图)。在操作308,基于与老化对象212相关联的限制规则为老化对象212确定限制日期,例如,执行关于数据库170的所识别的限制规则视图,以确定用作限制日期的规则最小日期。
在操作310,通用基础架构150基于与所选择的分区相关联的分区日期等于或晚于所确定的限制日期,从数据库170的多个分区中选择分区。在操作312,根据查询140的过滤器120从所选择的分区检索查询数据。在操作314,基于从数据库170的所选择的分区检索的数据来生成对查询140的响应。
图4A是示出与一些实施例一致的用于基于数据库数据老化功能来优化数据访问的方法400A的流程图。图4A的以下描述引用来自图1和图2的元件,这些元件使用相同标识符来指代。
如果数据库视图使用来自多个老化对象212的老化表的数据,则老化对象特定的限制日期必须被组合到整体限制日期中,因为在来自数据库170的SQL请求(例如,请求160)中只能指定一个限制日期。基于该视图,即,查询140的主题,使用来自多个老化对象212的老化表的数据,确定查询140的限制日期可以进一步包括:
在操作402,基于多个老化对象212中的每一个的相应规则限制日期,例如,基于与多个老化对象212中的每一个相关联的相应限制规则,(例如,通过限制处理器208)确定多个老化对象212中的每一个的老化对象限制日期(如上所述);并且在操作404,将查询140的限制日期设置为多个老化对象212中的每一个的最早老化对象限制日期。
换句话说,为了确保选择所有相关数据,可以使用限制的最小值,并且对于每个老化对象212,用于读取有助于视图的表的所有相关行的上述公式(1)可以扩展到下面的公式(2):
minaging objects(statistics_optimization(maxrules
(minfiltered rule rows(DataAgingRelevant date)))).
如果(例如,基于视图的定义)对于与视图相关的老化对象212不存在限制规则,则可以读取数据库170的全部数据以正确地响应于查询140。这可以由作为规则的空集的最大值的值“0001-01-01”在上述公式(2)中反映。
图4B是示出与一些实施例一致的用于基于数据库数据老化功能来优化数据访问的方法400B的流程图。图4B的以下描述引用来自图1和图2的元件,这些元件使用相同标识符来指代。
应用(例如,应用或查询工具130)可以在单个OData调用(例如,查询140)中请求来自通过关联连接的多个数据库视图的数据,所述单个OData调用导致对数据库170的单个SQL请求(例如请求160)。如上所述,用于组合与每个视图相关联的限制日期的保守方法是单独地确定每个涉及的视图的视图限制日期,然后使用视图限制日期中的最小值作为单个SQL请求中的整体限制日期。然而,视图之间的一些关联可以确保关联视图的连接行对于共同的老化对象212具有相同的限制日期,并且可以仅为一个视图确定该老化对象212的限制日期,因为其对于另一视图也成立。
例如,在用于销售订单的OData请求(例如,查询140)中,还经由视图之间的关联来检索客户名称。关于销售订单创建日期的过滤器120将请求限制为当年订单。数据老化可用于销售订单,但不用于客户数据。因此,在这种情况下,对于销售订单视图(来自提供的过滤器120)确定的限制日期可以用于来自所连结的销售订单和顾客视图的SQL请求(例如,请求160)。基于请求来自多个视图的数据的查询140,使用来自多个老化对象212的多个老化表的数据的每个视图,确定查询140的限制日期还可以包括:
在操作406,对于多个视图中的每一个,分析(例如,在数据库DDIC 216中的)视图的定义以(例如,通过限制处理器208)确定有助于视图的数据库170的表和与表关联的老化对象212;在操作408,基于与有助于视图的表相关联的多个老化对象212中的每一个的相应老化对象限制日期来确定多个视图中的每一个的视图限制日期;并且在操作410,将(查询140的)限制日期设置为最早的视图限制日期。
换句话说,为了确保选择所有相关的数据,可以使用限制的最小值,并且对于每个查询的视图,用于读取有助于组合的视图的表的所有相关行的上述公式(2)可以扩展到下面的公式(3):
mincombined views(minaging objects(statistics_optimization(maxrules
(minfiltered rule rows(DataAgingRelevant date)))).
如果(例如,基于检查视图的定义)对于与多个视图中的一个相关的老化对象212不存在规则,则可以读取数据库170的所有数据以正确地响应于查询140。这可以通过上述公式(3)中作为规则的空集的最大值的值“0001-01-01”反映。
图5是示出与一些实施例一致的用于基于数据库数据老化功能来优化数据访问的方法500的流程图。图5的以下描述引用来自图1和图2的元件,这些元件使用相同的标识符来指代。
示例1:在对于来自销售订单项目视图的数据的OData请求(例如,查询140)中,还经由销售订单视图和销售订单项目视图之间的关联来检索一些销售订单视图字段。给出了关于销售订单视图的过滤器120,但是没有为关联的销售订单项目视图提供过滤器120。由于销售订单视图和销售订单项目视图具有相同的老化对象212,并且所使用的关联是连接相同分区日期(例如,与相同老化对象212相关联)的行的关联,所以从销售订单项目视图过滤器120确定的限制日期可用于对数据库170的组合SQL请求(例如,请求160)。
示例2:在对与第一老化对象212(例如,文档A)的实例相关联的数据的OData(例如查询140)请求中,第二老化对象212的相关实例(例如,后续文档B)的一些字段经由视图的关联而被检索。给出关于文档A的过滤器120,但是没有对相关的后续文档B提供过滤器120。文档A和B不具有相同的老化对象212(例如,第一和第二老化对象是不同的)。但是关联(例如,文档B跟随文档A)将它们沿着处理链连接起来。老化逻辑确保文档B被移动到文档A之后的历史数据分区,因此文档B具有更晚的分区日期。因此,从文件A的过滤器120导出的限制可以应用于对数据库170的组合SQL请求(例如,请求160)。
从文档A到文档B的这一限制日期继承可以通过在启用继承应该所沿着的(被暴露的)关联处的文档B的视图的注释“@DataAging.inheritRestrictionDate”来表示。然而,由于这种继承是特定于每个老化对象212(例如,第一和第二老化对象212)的,所以必须小心。例如,在从销售订单项目视图到组合销售订单和生产订单的视图的关联的情况下,只有销售订单老化对象的限制可以沿着关联被继承;由于生产订单限制与不同的老化对象212相关联,所以可以单独导出生产订单限制。因此,在视图定义中的继承注释还可以包括其所应用的源和目标老化对象212的指定。如果指定的源和目标老化对象212不同,则限制日期仅可以从源老化对象212继承到目标老化对象212。如果指定的源和目标老化对象212相等,则限制日期从目标老化对象212到源老化对象212的继承也是可能的。
基于视图的定义,在包括从多个老化对象中识别源老化对象和目标老化对象的注释的多个视图中,确定查询140的限制日期可以进一步包括:
在操作502,(例如,由限制处理器208)确定源老化对象和目标老化对象不相同;并且在操作504,将对于目标老化对象的老化对象限制日期设置为源老化对象的老化对象限制日期。
在操作506,(例如,通过限制处理器208)确定源老化对象和目标老化对象是相同的;并且在操作508,基于所述源老化对象与目标老化对象相同,将所述目标老化对象的老化对象限制日期设置为所述源老化对象的老化对象限制日期,或者将源老化对象的老化对象限制日期设置为目标老化对象的老化对象限制日期。
示例1的继续:在销售订单项目视图中,销售订单视图的继承关联被注释如下:
@DataAging.inheritRestrictionDate:
{sourceAgingObject:'SD_VBAK',targetAgingObject:
'SD_VBAK'}
_SalesOrder.
OData请求可以经由到SalesOrder的Odata关联,从来自SalesOrder实体集的SalesOrderItem实体集(SoldToParty等)对数量、材料等进行检索。OData请求可以包括关于SalesOrder的CreationDate的过滤器条件,例如>=‘2015-01-01’。该OData请求可以得到关于组合视图的SQL请求,如下:
SELECT soi.Material,so.SoldToParty,…
FROM I_SalesOrderItem AS soi
LEFT OUTER JOIN I_SalesOrder AS so
ON…
WHERE so.CreationDate>='20150101'
INTO@result.
此请求有关于I_SalesOrder而没有关于I_SalesOrderItem的过滤器。因此,通常不可能限制对组合视图的历史数据的访问。然而,因为视图的连结来自注释的关联,所以为I_SalesOrder和老化对象212“SD_VBAK”导出的限制日期对于I_SalesOrderItem也是有效的。由于不涉及其他老化对象212,所以在应用统计优化之后,可以使用日期2015-01-01作为用于访问组合视图的历史数据的限制日期。
示例2的继续:在这个更抽象的示例中,从文档A到文档B视图的关联被注释如下:
@DataAging.inheritRestrictionDate:
{sourceAgingObject:'DOC_A',targetAgingObject:'DOC_B'}
_DocumentB,
可以假定,对于文档A和B,只有老化对象DOC_A和DOC_B是相关的。然后,在下面的SQL请求中,由于在关联处的注释,因此限制日期可以从关于文档A的创建日期的过滤器120单独导出:
SELECT a.AProperty1,b.Bproperty1,…
FROM I_DocumentA AS a
LEFT OUTER JOIN I_DocumentB AS b
ON<condition of association_DocumentB>
WHERE a.ACreationDate IN@cdate
INTO@result.
添加沿关联继承的限制为每个老化对象的限制给出以下公式(4):
maxown+inherited(statistics_optimization(maxrules
(minfiltered rule rows(DataAgingRelevant date)))).
现在,用于从视图组合进行选择的每视图的限制日期的最小值可以添加到公式,得到以下公式(5):
mincombined views(maxown+inherited(statistics_optimization(maxrules
(minfiltered rule rows(DataAgingRelevant date))))).
最后,可以添加所有涉及的老化对象的最小值,得到以下公式(6):
minaging objects(mincombined
views(maxown+inherited(statistics_optimization(maxrules
(minfiltered rule rows(DataAgingRelevant date)))))).
示例
示例1:一种系统,包括:硬件处理器;包括具有相应分区日期的多个分区的数据库;以及包括指令的存储器,所述指令在由所述处理器执行时使所述系统执行包括以下的操作:从所述数据库的视图接收对数据的查询,所述查询包含用于检索所述数据的过滤参数;使用所述处理器分析所述视图的定义以确定有助于所述视图的所述数据库的表格和与所述表格相关联的老化对象;使用所述处理器识别与所述老化对象相关联的限制规则;基于所述限制规则,使用所述处理器来确定所述老化对象的限制日期;基于分区的分区日期等于或晚于限制日期从所述多个分区中选择分区;根据过滤参数从所选择的分区中检索数据;以及用所检索的数据对查询作出响应。
示例2:如示例1所述的系统,其中,所述老化对象是业务对象,并且所述老化对象的限制规则基于与所述业务对象相关联的业务规则的逻辑。
示例3:如示例1-2中的任一所述的系统,其中,所述视图的定义包括指示所述视图的日期列的注释,所述日期列指定所述老化对象的每个实例的老化日期。
示例4:如示例3所述的系统,其中为了基于所述限制规则确定所述限制日期,所述操作还包括:使用所述处理器确定所述过滤参数包括所述老化对象的实例的最早老化日期;以及将限制日期设置为最早老化日期。
示例5.根据示例3所述的系统,其中,所述老化对象的每个实例的所述老化日期包括所述老化对象的每个实例的创建日期。
示例6.如示例1-5中的任一所述的系统,其中:视图的定义包括识别视图的相关列的注释和用于老化对象的限制规则视图;限制规则视图包括指定老化对象的每个实例的老化日期的相关日期列;以及老化对象的每个实例的相关日期列中的值基于老化对象的每个实例的相关列中的相应值。
示例7.根据示例6所述的系统,其中,所述视图的相关列指示所述老化对象的每个实例的状态,并且为了基于所述限制规则确定所述限制日期,所述操作还包括:使用处理器确定最晚的分区日期并将相关联的分区指定为当前分区;使用所述处理器确定所述过滤参数包括所述老化对象的实例的未完成状态;以及将限制日期设置为最晚的分区日期。
示例8.根据示例1-7中的任一所述的系统,其中,与所述老化对象相关联的所述限制规则包括多个限制规则,并且为了基于所述限制规则确定所述限制日期,所述操作还包括:使用所述处理器基于所述多个限制规则中的每一个来确定所述老化对象的相应规则限制日期;以及将限制日期设置为最晚的规则限制日期。
示例9.根据示例8所述的系统,其中,所述老化对象包括多个老化对象,并且为了基于所述限制规则确定所述限制日期,所述操作还包括:使用所述处理器基于所述多个老化对象中的每一个老化对象的各自的规则限制日期,确定所述多个老化对象中的每一个老化对象的老化对象限制日期;以及将限制日期设置为最早的老化对象限制日期。
示例10.如示例9所述的系统,其中所述视图包括多个视图,并且为了基于所述限制规则确定所述限制日期,所述操作还包括:使用所述处理器基于与有助于所述视图的所述表格相关联的所述多个老化对象中的每一个的所述老化对象限制日期,确定所述多个视图中的每一个的视图限制日期;以及将限制日期设置为最早的视图限制日期。
示例11.根据示例10所述的系统,其中,所述多个视图中的所述视图的定义包括识别所述多个老化对象中的源老化对象和目标老化对象的注释,并且所述操作还包括:基于所述源老化对象与所述目标老化对象不同,将所述目标老化对象的老化对象限制日期设置为所述源老化对象的老化对象限制日期;以及基于所述源老化对象与所述目标老化对象相同,将所述目标老化对象的老化对象限制日期设置为源老化对象的老化对象限制日期,或者将源老化对象的老化对象限制日期设置为目标老化对象的老化对象限制日期。
示例12.一种用于从包括具有相应分区日期的多个分区的数据库进行数据访问的计算机化方法,所述方法包括:从所述数据库的视图接收对数据的查询,所述查询包含用于检索所述数据的过滤参数;分析所述视图的定义以使用处理器来确定有助于所述视图的所述数据库的表格和与所述表格相关联的老化对象;使用所述处理器识别与所述老化对象相关联的限制规则;基于所述限制规则,使用所述处理器来确定所述老化对象的限制日期;基于分区的分区日期等于或晚于限制日期,从所述多个分区中选择分区;根据过滤参数从所选择的分区中检索数据;以及用检索的数据对查询作出响应。
示例13.根据示例12所述的方法,其中,所述视图的定义包括指示所述视图的日期列的注释,所述日期列指定所述老化对象的每个实例的老化日期,并且为了基于所述限制规则确定所述限制日期,所述方法还包括:使用所述处理器确定所述过滤参数包括所述老化对象的实例的最早老化日期;以及将限制日期设置为最早老化日期。
示例14.如示例12-13中的任一所述的方法,其中:视图的定义包括识别视图的相关列的注释和用于老化对象的限制规则视图;限制规则视图包括指定老化对象的每个实例的老化日期的相关日期列;以及老化对象的每个实例的相关日期列中的值基于老化对象的每个实例的相关列中的相应值。
示例15.如示例14所述的方法,其中,所述视图的相关列指示所述老化对象的每个实例的状态,并且为了基于所述限制规则确定所述限制日期,所述方法还包括:使用处理器确定最晚的分区日期并将相关联的分区指定为当前分区;使用所述处理器确定所述过滤参数包括所述老化对象的实例的未完成状态;以及将限制日期设置为最晚的分区日期。
示例16.如示例12-15中的任一所述的方法,其中,与老化对象相关联的限制规则包括多个限制规则,并且为了基于限制规则确定限制日期,所述方法还包括:使用所述处理器基于所述多个限制规则中的每一个来确定所述老化对象的相应规则限制日期;以及将限制日期设置为最晚的规则限制日期。
示例17.根据示例16所述的方法,其中,所述老化对象包括多个老化对象,并且为了基于所述限制规则确定限制日期,所述方法还包括:使用所述处理器基于所述多个老化对象中的每一个的各自的规则限制日期来确定所述多个老化对象中的每一个的老化对象限制日期;以及将限制日期设置为最早的老化对象限制日期。
示例18.根据示例17所述的方法,其中,所述视图包括多个视图,并且为了基于所述限制规则确定所述限制日期,所述方法还包括:使用所述处理器基于与有助于所述视图的所述表格相关联的所述多个老化对象中的每一个的所述老化对象限制日期,确定所述多个视图中的每一个的视图限制日期;以及将限制日期设置为最早的视图限制日期。
示例19.根据示例18所述的方法,其中,所述多个视图中的视图的定义包括识别所述多个老化对象中的源老化对象和目标老化对象的注释,并且所述方法还包括:基于所述源老化对象与所述目标老化对象不同,将所述目标老化对象的老化对象限制日期设置为所述源老化对象的老化对象限制日期;以及基于所述源老化对象与所述目标老化对象相同,将所述目标老化对象的老化对象限制日期设置为源老化对象的老化对象限制日期,或者将源老化对象的老化对象限制日期设置为目标老化对象的老化对象限制日期。
示例20.一种存储指令的非暂时性机器可读存储介质,所述指令在由机器的至少一个处理器执行时使所述机器执行包括以下的操作:从数据库的视图接收对数据的查询,所述数据库包括具有相应分区日期的多个分区,并且所述查询包含用于检索所述数据的过滤参数;分析所述视图的定义,以使用所述至少一个处理器来确定有助于所述视图的所述数据库的表格和与所述表格相关联的老化对象;使用所述至少一个处理器识别与所述老化对象相关联的限制规则;使用所述至少一个处理器基于所述限制规则来确定所述老化对象的限制日期;基于分区的分区日期等于或晚于限制日期从所述多个分区中选择分区;根据过滤参数从所选择的分区中检索数据;以及用检索的数据对查询作出响应。
示例21:示例20的非暂时性机器可读存储介质还存储指令,所述指令在由所述至少一个处理器执行时使所述机器执行包括示例13-19中的任一所述的操作的操作。
模块、组件和逻辑
本文将某些实施例描述为包括逻辑或多个组件、模块或机制。模块可以构成软件模块(例如,包含在机器可读介质上的代码)或者硬件模块。“硬件模块”是能够执行某些操作的有形单元,并且可以以某种物理方式被配置或布置。在各种示例实施例中,一个或多个计算机系统(例如,独立计算机系统,客户端计算机系统或服务器计算机系统)或计算机系统的一个或多个硬件模块(例如,处理器或一组处理器)可以由软件(例如,应用或应用部分)配置为操作来执行如本文所述的特定操作的硬件模块。
在一些实施例中,硬件模块可以机械地、电子地或以其任何适当的组合来实现。例如,硬件模块可以包括被永久配置为执行特定操作的专用电路或逻辑。例如,硬件模块可以是专用处理器,诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。硬件模块还可以包括由软件临时配置以执行特定操作的可编程逻辑或电路。例如,硬件模块可以包括由通用处理器或其他可编程处理器执行的软件。一旦由这样的软件配置,硬件模块就变成特别适配为执行被配置的功能并且不再是通用处理器的特定机器(或机器的特定组件)。将理解的是,在专用和永久配置的电路中,或者在临时配置的电路(例如,由软件配置)中机械地实现硬件模块的决定可以由成本和时间考虑来驱动。
因此,术语“硬件模块”应被理解为包含有形实体,即物理构造、永久配置(例如硬连线)或临时配置(例如,编程)以在特定方式操作或执行本文所述的特定操作的实体。如这里所使用的,“硬件实现的模块”是指硬件模块。考虑到硬件模块被临时配置(例如,编程)的实施例,每个硬件模块不需要在任何一个时刻被配置或实例化。例如,在硬件模块包括由软件配置成一般处理器的一般处理器的情况下,一般处理器可以被配置为在不同的时间分别作为不同的专用处理器(例如,包括不同的硬件模块)。软件相应地配置特定的一个或多个处理器,例如在一个时刻构成特定的硬件模块并且在不同的时刻构成不同的硬件模块。
硬件模块可以向其他硬件模块提供信息并从其接收信息。因此,所描述的硬件模块可以被认为是通信地耦合的。在同时存在多个硬件模块的情况下,可以通过两个或更多个硬件模块之间的信号传输(例如,通过适当的电路和总线)来实现通信。在不同时间配置或实例化多个硬件模块的实施例中,可以例如通过存储和检索多个硬件模块可以访问的存储器结构中的信息来实现这样的硬件模块之间的通信。例如,一个硬件模块可以执行操作并且将该操作的输出存储在其通信地耦合到的存储器设备中。之后,另外的硬件模块可以在稍后访问存储器设备以检索和处理存储的输出。硬件模块也可以启动与输入或输出设备的通信,并且可以在资源(例如,信息集合)上操作。
这里描述的示例方法的各种操作可以至少部分地由临时配置(例如,通过软件)或永久配置为执行相关操作的一个或多个处理器来执行。无论是临时配置还是永久配置,这样的处理器都可以构成由处理器实现的模块,其操作来执行本文描述的一个或多个操作或功能。如这里所使用的,“处理器实现的模块”是指使用一个或多个处理器实现的硬件模块。
类似地,在此描述的方法可以至少部分地由处理器实现,其中特定的一个或多个处理器是硬件的示例。例如,方法的至少一些操作可以由一个或多个处理器或由处理器实现的模块来执行。此外,一个或多个处理器还可以操作以支持在“云计算”环境或“软件即服务”(SaaS)中的相关操作的执行。例如,至少一些操作可以由一组计算机(作为包括处理器的机器的示例)执行,这些操作可以经由网络(例如因特网)并且经由一个或多个适当的接口(例如,应用编程接口(API))来访问。
特定操作的执行可以在处理器之间分布,不仅驻留在单个机器中,而且部署在多个机器上。在一些示例实施例中,处理器或由处理器实现的模块可以位于单个地理位置(例如,在家庭环境、办公室环境或服务器场内)。在其他示例实施例中,处理器或由处理器实现的模块可以分布在多个地理位置。
机器和软件架构
在一些实施例中,结合图1-5描述的模块、方法、应用等等在机器和相关联的软件架构的上下文中实现。下面的部分描述适用于所公开的实施例的代表性软件架构和机器(例如,硬件)架构。
软件架构与硬件架构结合使用来创建对于特定目的而定制的设备和机器。例如,与特定软件架构耦合的特定硬件架构将创建移动设备,诸如移动电话、平板设备等。稍微不同的硬件和软件架构可能会产生用于“物联网”的智能设备,而另一种组合产生用于云计算架构内的服务器计算机。这里没有呈现这种软件和硬件架构的所有组合,因为本领域技术人员可以容易地理解如何在与本文所包含的公开内容不同的背景下实现本主题。
软件架构
图6是示出根据一些示例实施例的可以安装在机器上的软件架构602的示例的框图600。图6仅仅是软件架构的非限制性示例,并且将理解的是,可以实现许多其他架构以促进本文描述的功能。软件架构602可以在诸如图7的机器700的硬件上执行。机器700包括处理器710、存储器/存储装置730以及I/O组件750等。代表性的硬件层604被示出并且可以表示例如图7的机器700。代表性硬件层604包括具有相关联的可执行指令608的一个或多个处理单元606。可执行指令608表示软件架构602的可执行指令,包括图1-5的方法、模块等的实现。硬件层604还包括存储器或存储模块610,其也具有可执行指令608。硬件层604还可以包括表示硬件层604的任何其他硬件的其他硬件612,诸如作为机器700的一部分示出的其他硬件。
在图6的示例架构中,软件架构602可以被概念化为层的堆栈,其中每个层提供特定的功能。例如,软件架构602可以包括多个层,诸如操作系统614、库616、框架/中间件618、应用620和表示层644。操作上,层内的应用620或其他组件可以通过软件堆栈调用API调用624,并响应于API调用624接收响应、返回值等(如消息626所示)。所示的层本质上是代表性的,并不是所有的软件架构都具有所有的层。例如,一些移动或专用操作系统可能不提供框架/中间件618层,而其他操作系统可能提供这样的层。其他软件架构可以包括附加的或不同的层。
操作系统614可以管理硬件资源并提供公共服务。操作系统614可以包括例如内核628、服务630和驱动632。内核628可以充当硬件与其他软件层之间的抽象层。例如,内核628可以负责存储器管理、处理器管理(例如调度)、组件管理、联网、安全设置等。服务630可以为其他软件层提供其他公共服务。驱动632可以负责控制或接口底层硬件。例如,依赖于硬件配置,驱动632可以包括显示驱动、相机驱动、闪存驱动、串行通信驱动(例如通用串行总线(USB)驱动器)、音频驱动、电源管理驱动等等。
库616可以提供可以被应用620和/或其他组件和/或层使用的公共基础架构。库616通常提供允许其他软件模块以比通过与底层操作系统614功能(例如,内核628、服务630或驱动632)直接接口更容易的方式来执行任务的功能。库616可以包括可以提供诸如存储器分配功能、字符串操作功能、数学功能等的功能的系统库634(例如,C标准库)。另外,库616可以包括API库636,诸如媒体库(例如,支持诸如MPEG4、H.264、MP3、AAC、AMR、JPG、PNG的各种媒体格式的呈现和操纵的库)、图形库(例如可以用于在显示器上呈现2D和3D图形内容的OpenGL框架)、数据库库(例如,可以提供各种关系数据库功能的SQLite)、Web库(例如WebKit,其可以提供web浏览功能)等等。库616还可以包括各种各样的其他库638,以向应用620和其他软件组件/模块提供许多其他API。
框架618(有时也被称为中间件)可以提供可由应用620或其他软件组件/模块使用的更高级别的公共基础架构。例如,框架618可以提供各种图形用户界面(GUI)功能、高级资源管理、高级定位服务等等。框架618可以提供可由应用620和/或其他软件组件/模块使用的广泛的其他API,其中一些可以是特定于特定操作系统或平台的。
应用620包括内置应用640和/或第三方应用642。代表性内置应用640的示例可以包括但不限于联系人应用、浏览器应用、图书阅读器应用、位置应用、媒体应用、消息收发应用或游戏应用。第三方应用642可以包括任何内置应用640以及各种各样的其他应用。在具体示例中,第三方应用642(例如,除特定平台的供应商之外的实体使用AndroidTM或iOSTM软件开发套件(SDK)开发的应用)可以是在诸如iOSTM、AndroidTM、或其他移动操作系统的移动操作系统上运行的移动软件。在该示例中,第三方应用642可以调用由诸如操作系统614的移动操作系统提供的API调用624以促进本文描述的功能。
应用620可以利用内置的操作系统功能(例如内核628、服务630或驱动632)、库(例如,系统库634、API库636和其他库638)或框架/中间件618来创建用户界面来与系统的用户进行交互。可选地或附加地,在一些系统中,与用户的交互可以通过表示层(诸如表示层644)进行。在这些系统中,可以将应用/模块“逻辑”与应用/模块与用户交互的方面分开。
一些软件架构利用虚拟机。在图6的示例中,这由虚拟机648说明。虚拟机创建软件环境,其中应用/模块可以像在硬件机器(例如,图7的机器700)上执行一样执行。虚拟机648由主机操作系统(例如,操作系统614)主管,并且通常(虽然不总是)具有虚拟机监视器646,其管理虚拟机648的操作以及与主机操作系统(例如,操作系统614)的接口。软件架构在诸如操作系统650、库652、框架/中间件654、应用656和表示层658的虚拟机648内执行。在虚拟机648内执行的这些软件架构层与先前描述的对应层可以是相同的(或不同的)。
机器结构和机器可读介质
图7示出了计算机系统形式的机器的图示,其中可以执行一组指令以使机器执行本文讨论的任何一个或多个方法。具体而言,图7示出了计算机系统的示例形式的机器700的示意图,在机器700内的指令716(例如,软件、程序、应用、小程序、小应用或其他可执行代码)用于使得机器700执行本文讨论的任何一个或多个方法。例如,指令716可以使机器700执行图3的方法300。附加地或替代地,指令716可以实现图4A、4B和/或图5的方法。指令716将通用的未编程的机器700转换成被编程为以所描述的方式执行所描述和示出的功能的特定机器700。
在替代实施例中,机器700作为独立设备来操作或者可以被耦合(例如,联网)到其他机器。在联网部署中,机器700可以在服务器-客户端网络环境中以服务器机器或客户端机器的资格操作,或者在对等(或分布式)网络环境中作为对等机器操作。机器700可以包括但不限于服务器计算机、客户端计算机、个人计算机(PC)、平板电脑、膝上型计算机、上网本、机顶盒(STB)、PDA、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如智能手表)、智能家居设备(例如智能电器)、其他智能设备、网络设备、网络路由器、网络交换机、网络桥接器或能够执行指令716的任何机器,所述指令716顺序地或以其他方式指定机器700将要采取的动作。此外,尽管仅示出了单个机器700,但是术语“机器”也应被视为包括单独或联合执行指令716以执行本文讨论的任何一种或多种方法的机器700的集合。
机器700可以包括处理器710、存储器/存储装置730和I/O组件750,其可以被配置为例如经由总线702彼此通信。在示例实施例中,处理器710(例如,中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、ASIC、射频集成电路(RFIC)、另一处理器或其任何适当的组合)可以包括例如可以执行指令716的处理器712和处理器714。术语“处理器”旨在包括多核处理器,其可以包括可以同时执行指令的两个或更多个独立处理器(有时被称为“内核”)。虽然图7示出了多个处理器710,但是机器700可以包括具有单个核心的单个处理器、具有多个核心的单个处理器(例如,多核处理器)、具有单个核心的多个处理器、具有多个核心的多个处理器或者处理器和内核的任何组合。
存储器/存储装置730可以包括诸如主存储器或其它存储器存储装置的存储器732以及存储单元736,这两者都可以由处理器710诸如经由总线702访问。存储单元736和存储器732存储体现本文描述的方法或功能中的任何一个或多个的指令716。在由机器700的执行期间,指令716还可以完全或部分地驻留在存储器732内、在存储单元736内、在处理器710中的至少一个内(例如,处理器的高速缓冲存储器内)或其任何适当组合内。因此,存储器732、存储单元736和处理器710的存储器是机器可读介质的示例。
如本文所使用的,“机器可读介质”是指能够临时或永久地存储指令和数据的设备,并且可以包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、缓冲存储器、闪存、光学介质、磁介质、高速缓冲存储器、其他类型的存储器(例如,可擦除可编程只读存储器(EEPROM))或其任何适当的组合。术语“机器可读介质”应被理解为包括能够存储指令716的单个介质或多个介质(例如,集中式或分布式数据库、或相关联的高速缓存和服务器)。术语“机器可读介质”也应被认为包括能够存储由机器(例如机器700)执行的指令(例如,指令716)的任何介质或多个介质的组合,使得指令在由机器的一个或多个处理器(例如,处理器710)执行时,使机器执行本文所述的方法中的任何一个或多个。因此,“机器可读介质”是指单个存储装置或设备、以及包括多个存储装置或设备的“基于云的”存储系统或存储网络。
I/O组件750可以包括用于接收输入、提供输出、产生输出、发送信息、交换信息、捕获测量等的各种各样的组件。包含在特定机器中的特定I/O组件750将取决于机器的类型。例如,诸如移动电话的便携式机器将可能包括触摸输入设备或其他这种输入机构,而无终端(headless)服务器机器将可能不包括这种触摸输入设备。将会理解,I/O组件750可以包括图7中未示出的许多其他组件。仅仅是为了简化以下讨论,将I/O组件750根据功能进行分组,并且分组决不是限制性的。在各种示例实施例中,I/O组件750可以包括输出组件752和输入组件754。输出组件752可以包括可视组件(例如,诸如等离子显示面板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT)的显示器)、声学组件(例如扬声器)、触觉组件(例如振动马达、阻力机构)、其他信号发生器等等。输入组件754可以包括字母数字输入组件(例如,键盘、被配置为接收字母数字输入的触摸屏、光电键盘或其它字母数字输入组件)、基于点的输入组件(例如鼠标、触摸板、轨迹球、操纵杆、运动传感器或另一指向组件)、触觉输入组件(例如,物理按钮、提供触摸或触摸手势的位置和/或力的触摸屏、或其他触觉输入组件)、音频输入组件(例如,麦克风)等等。
在进一步的示例实施例中,I/O组件750可以包括生物测量组件756、运动组件758、环境组件760或位置组件762以及种类广泛的其他组件。例如,生物测量组件756可以包括用于进行如下操作的组件:检测表情(例如,手部表情、面部表情、声音表情、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、出汗或脑波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等。运动组件758可以包括提升度传感器组件(例如,提升计)、重力传感器组件、旋转传感器组件(例如陀螺仪)等等。环境组件760可以包括例如照明传感器组件(例如光度计)、温度传感器组件(例如,检测环境温度的一个或多个温度计)、湿度传感器组件、压力传感器组件(例如气压计)、声学传感器(例如,检测背景噪声的一个或多个麦克风)、接近传感器组件(例如,检测附近物体的红外传感器)、气体传感器(例如,气体检测传感器以检测危险气体的浓度以确保安全或者测量大气中的污染物)或可以提供与周围物理环境对应的指示、测量或信号的其他部件。位置组件762可以包括位置传感器组件(例如,GPS接收器组件)、高度传感器组件(例如检测可以从其导出高度的气压的高度计或气压计)、朝向传感器组件(例如磁力计)等。
通信可以使用种类广泛的技术来实现。I/O组件750可以包括通信组件764,通信组件764可以分别经由耦合782和耦合772将机器700耦合到网络780或设备770。例如,通信组件764可以包括网络接口组件或另一适当的设备以与网络780接口。在进一步的示例中,通信组件764可以包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(NFC)组件、组件(例如低功耗)、组件以及经由其他形式提供通信的其他通信组件。设备770可以是另一台机器或种类广泛的外围设备中的任何一种(例如,经由USB耦合的外围设备)。
而且,通信组件764可以检测标识符或者包括可操作来检测标识符的组件。例如,通信组件764可以包括射频识别(RFID)标签读取器组件、NFC智能标签检测组件、光学读取器组件(例如,用于检测诸如通用产品码(UPC)条码的一维条码、诸如快速响应(QR)码、Aztec码、数据矩阵、Dataglyph、MaxiCode、PDF417、超码、UCC RSS-2D条码和其他光码的多维条码的光学传感器)、或者声学检测组件(例如,用于识别标记的音频信号的麦克风)。另外,可经由通信组件764得到各种信息,诸如经由因特网协议(IP)地理位置的位置、经由信号三角测量的位置、经由检测可指示特定位置的NFC信标信号的位置,等等。
传输介质
在各种示例实施例中,网络780的一个或多个部分可以是自组织网络、内联网、外联网、VPN、LAN、WLAN、WAN、WWAN、MAN、互联网、互联网的一部分、PSTN的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、网络、另一种类型的网络或两个或更多个这些网络的组合。例如,网络780或网络780的一部分可以包括无线或蜂窝网络,并且耦合782可以是码分多址(CDMA)连接、全球移动通信系统(GSM)连接或另一类型的蜂窝或无线耦合。在这个示例中,耦合782可以实现各种类型的数据传输技术中的任一种,诸如单载波无线电传输技术(1xRTT)、演进数据优化(EVDO)技术、通用分组无线电服务(GPRS)技术、增强型数据速率GSM演进(EDGE)技术、包括3G、第四代无线(4G)网络、通用移动电信系统(UMTS)、高速分组接入(HSPA)、全球微波接入互操作性(WiMAX)、长期演进(LTE)标准、由各种标准制定组织定义的标准、其他远程协议或其他数据传输技术。
可以经由网络接口设备(例如,包括在通信组件764中的网络接口组件)并且利用多个众所周知的传输协议中的任何一个(例如,超文本传输协议(HTTP)),使用传输介质通过网络780来发送或接收指令716。类似地,可以经由到设备770的耦合772(例如,对等耦合)使用传输介质发送或接收指令716。术语“传输介质”应被理解为包括任何无形介质,其能够存储、编码或携带由机器700执行的指令716,并且包括数字或模拟通信信号或其他促进这种软件的通信的无形介质。
语言
在整个说明书中,多个实例可以实现被描述为单个实例的组件、操作或结构。尽管一个或多个方法的单独操作被图示和描述为单独的操作,但是单独的操作中的一个或多个可以同时执行,并且不要求以所示的顺序执行操作。在示例配置中作为单独组件呈现的结构和功能可以实现为组合结构或组件。类似地,呈现为单个组件的结构和功能可以被实现为单独组件。这些和其他变型、修改、添加和改进落入在此描述的主题的范围内。
虽然已经参考具体示例实施例描述了发明主题的概述,但是可以对这些实施例进行各种修改和改变而不脱离本公开的实施例的更宽范围。本发明主题的这些实施例在本文中可以单独地或共同地由术语“发明”来引用,这仅仅是为了方便,而不意图将本申请的范围自愿地限制为任何单个公开或发明构思(如果实际公开了多于一个公开或发明构思的话)。
本文所示的实施例被足够详细地描述以使本领域技术人员能够实践所公开的教导。可以使用其他实施例并从中导出,使得可以在不脱离本公开的范围的情况下进行结构和逻辑的替换和改变。因此,具体实施方式不应被认为是限制性的,并且各种实施例的范围仅由所附权利要求以及这些权利要求的等同物的全部范围来限定。
如本文所使用的,术语“或”可以被解释为包含性或排他性意义。而且,可以为在此描述为单个实例的资源、操作或结构提供多个实例。另外,各种资源、操作、模块、引擎和数据存储之间的边界有些随意,并且特定的操作在特定说明性配置的上下文中示出。可以构思功能的其他分配并且其可以落入本公开的各种实施例的范围内。通常,在示例配置中作为单独资源呈现的结构和功能可以被实现为组合结构或资源。类似地,呈现为单个资源的结构和功能可以被实现为单独的资源。这些和其它变型、修改、添加和改进落入由所附权利要求表示的本公开的实施例的范围内。因此,说明书和附图被认为是说明性的而不是限制性的。
Claims (20)
1.一种系统,包括:
硬件处理器;
包括具有相应分区日期的多个分区的数据库;以及
包括指令的存储器,所述指令在由所述处理器执行时使所述系统执行包括以下的操作:
从所述数据库的视图接收对数据的查询,所述查询包含用于检索所述数据的过滤参数;
使用所述处理器分析所述视图的定义以确定有助于所述视图的所述数据库的表格和与所述表格相关联的老化对象;
使用所述处理器识别与所述老化对象相关联的限制规则;
基于所述限制规则,使用所述处理器来确定所述老化对象的限制日期;
基于分区的分区日期等于或晚于限制日期从所述多个分区中选择分区;
根据过滤参数从所选择的分区中检索数据;以及
用所检索的数据对查询作出响应。
2.如权利要求1所述的系统,其中,所述老化对象是业务对象,并且所述老化对象的限制规则基于与所述业务对象相关联的业务规则的逻辑。
3.如权利要求1所述的系统,其中,所述视图的定义包括指示所述视图的日期列的注释,所述日期列指定所述老化对象的每个实例的老化日期。
4.如权利要求3所述的系统,其中为了基于所述限制规则确定所述限制日期,所述操作还包括:
使用所述处理器确定所述过滤参数包括所述老化对象的实例的最早老化日期;以及
将限制日期设置为最早老化日期。
5.根据权利要求3所述的系统,其中,所述老化对象的每个实例的所述老化日期包括所述老化对象的每个实例的创建日期。
6.如权利要求1所述的系统,其中:
视图的定义包括识别视图的相关列的注释和用于老化对象的限制规则视图;
限制规则视图包括指定老化对象的每个实例的老化日期的相关日期列;以及
老化对象的每个实例的相关日期列中的值基于老化对象的每个实例的相关列中的相应值。
7.根据权利要求6所述的系统,其中,所述视图的相关列指示所述老化对象的每个实例的状态,并且为了基于所述限制规则确定所述限制日期,所述操作还包括:
使用处理器确定最晚的分区日期并将相关联的分区指定为当前分区;
使用所述处理器确定所述过滤参数包括所述老化对象的实例的未完成状态;以及
将限制日期设置为最晚的分区日期。
8.根据权利要求1所述的系统,其中,与所述老化对象相关联的所述限制规则包括多个限制规则,并且为了基于所述限制规则确定所述限制日期,所述操作还包括:
使用所述处理器基于所述多个限制规则中的每一个来确定所述老化对象的相应规则限制日期;以及
将限制日期设置为最晚的规则限制日期。
9.根据权利要求8所述的系统,其中,所述老化对象包括多个老化对象,并且为了基于所述限制规则确定所述限制日期,所述操作还包括:
使用所述处理器基于所述多个老化对象中的每一个老化对象的各自的规则限制日期,确定所述多个老化对象中的每一个老化对象的老化对象限制日期;以及
将限制日期设置为最早的老化对象限制日期。
10.如权利要求9所述的系统,其中所述视图包括多个视图,并且为了基于所述限制规则确定所述限制日期,所述操作还包括:
使用所述处理器基于与有助于所述视图的所述表格相关联的所述多个老化对象中的每一个的所述老化对象限制日期,确定所述多个视图中的每一个的视图限制日期;以及
将限制日期设置为最早的视图限制日期。
11.根据权利要求10所述的系统,其中,所述多个视图中的所述视图的定义包括识别所述多个老化对象中的源老化对象和目标老化对象的注释,并且所述操作还包括:
基于所述源老化对象与所述目标老化对象不同,将所述目标老化对象的老化对象限制日期设置为所述源老化对象的老化对象限制日期;以及
基于所述源老化对象与所述目标老化对象相同,将所述目标老化对象的老化对象限制日期设置为源老化对象的老化对象限制日期,或者将源老化对象的老化对象限制日期设置为目标老化对象的老化对象限制日期。
12.一种用于从包括具有相应分区日期的多个分区的数据库进行数据访问的计算机化方法,所述方法包括:
从所述数据库的视图接收对数据的查询,所述查询包含用于检索所述数据的过滤参数;
分析所述视图的定义以使用处理器来确定有助于所述视图的所述数据库的表格和与所述表格相关联的老化对象;
使用所述处理器识别与所述老化对象相关联的限制规则;
基于所述限制规则,使用所述处理器来确定所述老化对象的限制日期;
基于分区的分区日期等于或晚于限制日期,从所述多个分区中选择分区;
根据过滤参数从所选择的分区中检索数据;以及
用检索的数据对查询作出响应。
13.根据权利要求12所述的方法,其中,所述视图的定义包括指示所述视图的日期列的注释,所述日期列指定所述老化对象的每个实例的老化日期,并且为了基于所述限制规则确定所述限制日期,所述方法还包括:
使用所述处理器确定所述过滤参数包括所述老化对象的实例的最早老化日期;以及
将限制日期设置为最早老化日期。
14.如权利要求12所述的方法,其中:
视图的定义包括识别视图的相关列的注释和用于老化对象的限制规则视图;
限制规则视图包括指定老化对象的每个实例的老化日期的相关日期列;以及
老化对象的每个实例的相关日期列中的值基于老化对象的每个实例的相关列中的相应值。
15.如权利要求14所述的方法,其中,所述视图的相关列指示所述老化对象的每个实例的状态,并且为了基于所述限制规则确定所述限制日期,所述方法还包括:
使用处理器确定最晚的分区日期并将相关联的分区指定为当前分区;
使用所述处理器确定所述过滤参数包括所述老化对象的实例的未完成状态;以及
将限制日期设置为最晚的分区日期。
16.如权利要求12所述的方法,其中,与老化对象相关联的限制规则包括多个限制规则,并且为了基于限制规则确定限制日期,所述方法还包括:
使用所述处理器基于所述多个限制规则中的每一个来确定所述老化对象的相应规则限制日期;以及
将限制日期设置为最晚的规则限制日期。
17.根据权利要求16所述的方法,其中,所述老化对象包括多个老化对象,并且为了基于所述限制规则确定限制日期,所述方法还包括:
使用所述处理器基于所述多个老化对象中的每一个的各自的规则限制日期来确定所述多个老化对象中的每一个的老化对象限制日期;以及
将限制日期设置为最早的老化对象限制日期。
18.根据权利要求17所述的方法,其中,所述视图包括多个视图,并且为了基于所述限制规则确定所述限制日期,所述方法还包括:
使用所述处理器基于与有助于所述视图的所述表格相关联的所述多个老化对象中的每一个的所述老化对象限制日期,确定所述多个视图中的每一个的视图限制日期;以及
将限制日期设置为最早的视图限制日期。
19.根据权利要求18所述的方法,其中,所述多个视图中的视图的定义包括识别所述多个老化对象中的源老化对象和目标老化对象的注释,并且所述方法还包括:
基于所述源老化对象与所述目标老化对象不同,将所述目标老化对象的老化对象限制日期设置为所述源老化对象的老化对象限制日期;以及
基于所述源老化对象与所述目标老化对象相同,将所述目标老化对象的老化对象限制日期设置为源老化对象的老化对象限制日期,或者将源老化对象的老化对象限制日期设置为目标老化对象的老化对象限制日期。
20.一种存储指令的非暂时性机器可读存储介质,所述指令在由机器的至少一个处理器执行时使所述机器执行包括以下的操作:
从数据库的视图接收对数据的查询,所述数据库包括具有相应分区日期的多个分区,并且所述查询包含用于检索所述数据的过滤参数;
分析所述视图的定义,以使用所述至少一个处理器来确定有助于所述视图的所述数据库的表格和与所述表格相关联的老化对象;
使用所述至少一个处理器识别与所述老化对象相关联的限制规则;
使用所述至少一个处理器基于所述限制规则来确定所述老化对象的限制日期;
基于分区的分区日期等于或晚于限制日期,从所述多个分区中选择分区;
根据过滤参数从所选择的分区中检索数据;以及
用检索的数据对查询作出响应。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/382,286 | 2016-12-16 | ||
US15/382,286 US10346418B2 (en) | 2016-12-16 | 2016-12-16 | Optimizing data access based on data aging |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108205582A true CN108205582A (zh) | 2018-06-26 |
CN108205582B CN108205582B (zh) | 2020-12-29 |
Family
ID=60515076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711346680.2A Active CN108205582B (zh) | 2016-12-16 | 2017-12-15 | 基于数据老化优化数据访问 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10346418B2 (zh) |
EP (1) | EP3336720A1 (zh) |
CN (1) | CN108205582B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111444221A (zh) * | 2020-05-18 | 2020-07-24 | 江苏电力信息技术有限公司 | 一种sap hana与abap灵活传参的优化方法 |
CN113722346A (zh) * | 2020-05-20 | 2021-11-30 | Sap欧洲公司 | 通过外部基于云的分析系统实现数据访问 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11327995B2 (en) | 2019-09-11 | 2022-05-10 | Micro Focus Llc | Complex data type encoding within columnar database |
US11449198B2 (en) | 2020-05-11 | 2022-09-20 | Sap Se | User interface support for large hierarchies |
US11941074B2 (en) * | 2022-03-18 | 2024-03-26 | International Business Machines Corporation | Fetching a query result using a query filter |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103917971A (zh) * | 2011-12-06 | 2014-07-09 | 华为技术有限公司 | 具有老化机制的数据库和管理数据库的方法 |
US20140365424A1 (en) * | 2013-06-06 | 2014-12-11 | Axel Herbst | Systems and methods to manage online analytical and transactional processing for an in-memory columnar database |
EP2857993A1 (en) * | 2013-10-01 | 2015-04-08 | Sap Se | Transparent access to multi-temperature data |
US20160092555A1 (en) * | 2014-09-30 | 2016-03-31 | Sumanth HEGDE | Data aging in hana using grading attributes |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5544355A (en) * | 1993-06-14 | 1996-08-06 | Hewlett-Packard Company | Method and apparatus for query optimization in a relational database system having foreign functions |
US7516103B1 (en) * | 2001-03-09 | 2009-04-07 | Whitefence, Inc. | Method and apparatus for facilitating electronic acquisition and maintenance of goods and services via the internet |
US7082600B1 (en) * | 2002-11-04 | 2006-07-25 | Savaje Technologies, Inc. | Method and apparatus for integrating a computer application programming language runtime environment with an operating system kernel |
US8688622B2 (en) * | 2008-06-02 | 2014-04-01 | The Boeing Company | Methods and systems for loading data into a temporal data warehouse |
US8819042B2 (en) * | 2010-04-23 | 2014-08-26 | Bank Of America Corporation | Enhanced data comparison tool |
US9727608B2 (en) * | 2012-01-30 | 2017-08-08 | International Business Machines Corporation | Generating statistical views in a database system |
-
2016
- 2016-12-16 US US15/382,286 patent/US10346418B2/en active Active
-
2017
- 2017-11-29 EP EP17001958.2A patent/EP3336720A1/en active Pending
- 2017-12-15 CN CN201711346680.2A patent/CN108205582B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103917971A (zh) * | 2011-12-06 | 2014-07-09 | 华为技术有限公司 | 具有老化机制的数据库和管理数据库的方法 |
US20140365424A1 (en) * | 2013-06-06 | 2014-12-11 | Axel Herbst | Systems and methods to manage online analytical and transactional processing for an in-memory columnar database |
EP2857993A1 (en) * | 2013-10-01 | 2015-04-08 | Sap Se | Transparent access to multi-temperature data |
US20160092555A1 (en) * | 2014-09-30 | 2016-03-31 | Sumanth HEGDE | Data aging in hana using grading attributes |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111444221A (zh) * | 2020-05-18 | 2020-07-24 | 江苏电力信息技术有限公司 | 一种sap hana与abap灵活传参的优化方法 |
CN113722346A (zh) * | 2020-05-20 | 2021-11-30 | Sap欧洲公司 | 通过外部基于云的分析系统实现数据访问 |
Also Published As
Publication number | Publication date |
---|---|
EP3336720A1 (en) | 2018-06-20 |
CN108205582B (zh) | 2020-12-29 |
US20180173771A1 (en) | 2018-06-21 |
US10346418B2 (en) | 2019-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108205582A (zh) | 基于数据老化优化数据访问 | |
CN108431809A (zh) | 使用语义含义向量的跨语言搜索 | |
CN108701118A (zh) | 语义类别分类 | |
CN109409516A (zh) | 用于职位推荐的具深度和宽度的机器学习模型 | |
US11507884B2 (en) | Embedded machine learning | |
CN109716320A (zh) | 用于分布式事件处理系统的图生成 | |
CN107003987A (zh) | 增强的搜索查询建议 | |
CN110199276A (zh) | 用方面标记查询 | |
CN107111591A (zh) | 在设备之间传送认证的会话和状态 | |
JP2019533246A (ja) | 製品タイトルの選択 | |
CN110494852A (zh) | 智能匹配自动完成系统 | |
CN110325967A (zh) | 速率限制器 | |
CN109313629A (zh) | 管理通过网络连接的数据传输 | |
CN110383266A (zh) | 使用语义存储器的个性化通信 | |
CN109154936A (zh) | 数据库搜索优化器和主题过滤器 | |
CN109328344A (zh) | 文件系统映像处理系统 | |
WO2019204374A1 (en) | Utility-based price guidance | |
CN108701150A (zh) | 使用通用概念图产生文本片断 | |
KR102460293B1 (ko) | 거래 피드백의 처리 | |
CN108027944A (zh) | 电子商务中的结构化项目组织机制 | |
CN110168591A (zh) | 确定行业相似性以增强职位搜索 | |
CN109154945A (zh) | 基于数据属性的新连接推荐 | |
CN108694228A (zh) | 社交网络分类中的头衔消歧 | |
CN108370324A (zh) | 分布式数据库作业数据倾斜检测 | |
CN109076098A (zh) | 跨不同站点采用数据 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |