单元格数据缓存系统和单元格数据缓存方法

文档序号:6509862阅读:134来源:国知局
单元格数据缓存系统和单元格数据缓存方法
【专利摘要】本发明提供了一种单元格数据缓存系统和方法,其中,该单元格数据缓存系统包括:验证单元,验证接收到的请求表达式的预设信息是否正确;解析单元,在验证单元判定请求表达式的预设信息正确的情况下,解析请求表达式得到查询模型;单元格生成单元,根据查询模型的属性信息生成单元格,并根据查询模型在数据库中查询单元格的值,根据单元格模型和单元格的值得到单元格数据;缓存单元,根据单元格的属性信息缓存单元格数据。通过本申请的技术方案,能够对联机分析过程中生成的单元格数据进行缓存,便于在以后的分析过程中直接获取单元格数据,而无需再次与数据库交互来获取单元格的值生成单元格数据,提高了联机分析处理的速度。
【专利说明】单元格数据缓存系统和单元格数据缓存方法
【技术领域】
[0001]本发明涉及数据存储【技术领域】,具体而言,涉及一种单元格数据缓存系统和一种单元格数据缓存方法。
【背景技术】
[0002]联机分析处理过程中,核心部分就是对多维数据的分析,现有技术中对于报表数据进行格式化的流程如图1所示,在生成单元格信息的过程中,表达式解析器可以将查询表达式解析成查询模型,表达式计算器则可以根据查询模型生成单元格模型,并从数据库中查询该单元格的值。但是,在从数据库中获取到一次单元格的值之后,以后的分析过程中依然需要查询数据库,而当多个维度交叉分析,并且维度成员很多时,频繁与数据库交互会造成每次分析处理速度都很慢。

【发明内容】

[0003]本发明正是基于上述问题,提出了一种单元格数据缓存技术,能够对联机分析过程中生成的单元格数据进行缓存,便于在以后的分析过程中直接获取单元格数据,而无需再次与数据库交互来获取单元格的值,提高了联机分析处理的速度。
[0004]有鉴于此,本发明提出了一种单元格数据缓存系统,包括:验证单元,用于验证接收到的请求表达式的预设信息是否正确;解析单元,在所述验证单元判定所述请求表达式的预设信息正确的情况下,解析所述请求表达式得到查询模型;单元格生成单元,用于根据所述查询模型的属性信息生成单元格,并根据所述查询模型在数据库中查询所述单元格的值,根据所述单元格模型和所述单元格的值得到单元格数据;缓存单元,用于根据所述单元格的属性信息缓存所述单元格数据。
[0005]在上述技术方案中,优选的,所述单元格的属性信息包括维度和指标,则所述缓存单元还用于根据所述维度和所述指标的交叉信息作为键值对所述单元格数据进行缓存。
[0006]在上述技术方案中,优选的,还包括:分区单元,用于根据所述请求表达式的用户信息在缓存中划分相应分区,其中,所述缓存单元用于将所述单元格数据缓存至所述相应分区中。
[0007]在上述任一技术方案中,优选的,还包括:数据检测单元,用于检测缓存中的所述单元格数据的数据量,并在所述数据量大于预设数据量时,删除所述缓存中的所述单元格数据。
[0008]在上述任一技术方案中,优选的,还包括:数据删除单元,用于根据预设时间间隔删除缓存中的所述单元格数据。
[0009]本申请还提出了一种单元格数据缓存方法,包括:步骤202,验证接收到的请求表达式的预设信息是否正确,若正确,则解析所述请求表达式得到查询模型;步骤204,根据所述查询模型的属性信息生成单元格,并根据所述查询模型在数据库中查询所述单元格的值,根据所述单元格模型和所述单元格的值得到单元格数据;步骤206,根据所述单元格的属性信息缓存所述单元格数据。
[0010]在上述技术方案中,优选的,所述单元格的属性信息包括维度和指标,则所述步骤206还包括:根据所述维度和所述指标的交叉信息作为键值对所述单元格数据进行缓存。
[0011]在上述技术方案中,优选的,在所述步骤206之前还包括:根据所述请求表达式的用户信息在缓存中划分相应分区,则所述步骤206包括:将所述单元格数据缓存至所述相应分区中。
[0012]在上述任一技术方案中,优选的,还包括:检测缓存中的所述单元格数据的数据量,并在所述数据量大于预设数据量时,删除所述缓存中的所述单元格数据。
[0013]在上述任一技术方案中,优选的,还包括:根据预设时间间隔删除缓存中的所述单元格数据。
[0014]通过以上技术方案,能够对联机分析过程中生成的单元格数据进行缓存,便于在以后的分析过程中直接获取单元格数据,而无需再次与数据库交互来获取单元格的值,提高了联机分析处理的速度。
【专利附图】

【附图说明】
[0015]图1示出了相关技术中报表数据格式化的示意流程图;
[0016]图2示出了根据本发明的实施例的单元格数据缓存系统的示意框图;
[0017]图3示出了根据本发明的实施例的单元格数据缓存方法的示意流程图;
[0018]图4示出了根据本发明的实施例的报表数据格式化的示意流程图。
【具体实施方式】
[0019]为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和【具体实施方式】对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
[0020]在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
[0021]图2示出了根据本发明的实施例的单元格数据缓存系统的示意框图。
[0022]如图2所示,根据本发明的实施例的单元格数据缓存系统100包括:验证单元102,用于验证接收到的请求表达式的预设信息是否正确;解析单元104,在验证单元102判定请求表达式的预设信息正确的情况下,解析请求表达式得到查询模型;单元格生成单元106,用于根据查询模型的属性信息生成单元格,并根据查询模型在数据库中查询单元格的值,根据单元格模型和单元格的值得到单元格数据;缓存单元108,用于根据单元格的属性信息缓存单元格数据。
[0023]由于商业上的联机分析处理是针对生产数据进行的,而一般情况下,这些数据在某种粒度下是不会经常变化的,都会保持固定的维度的生产数据进行一段时间的生产。因此在这种情况下,用户根据需要输入请求表达式的维度和指标也是不变的,通过分析该表达式生成的单元格模型也就是固定的,进而从数据库中查询到的单元格的数值也是固定,从而在生成单元格数据之后,可以将该单元格数据缓存,使得在下次用户输入同样请求时,或者需要再次调用单元格数据时,可以直接将缓存中的单元格数据返回给用户,而无需再次从数据库中查询单元格的值,将少了与数据库的信息交互,提高了联机分析处理的速度。
[0024]优选的,单元格的属性信息包括维度和指标,则缓存单元108还用于根据维度和指标的交叉信息作为键值对单元格数据进行缓存。
[0025]用户根据需要输入的请求表达式中的维度和指标是不同的,根据请求表达式所得到的单元格的维度和指标也是不同的,因此,针对用户每次的需要可以生成不同的单元格,比如某个单元格所处的位置是{[门店].[USA],[产品].[FOOD],[销售金额]},那么将该单元格的维度和指标进行交叉所得到的信息可以作为键值,对该单元格数据进行缓存,具体地,可以是缓存该单元格的值或整个单元格数据(包括维度和指标以及单元格的值),从而在以后需要调用该单元格数据时,可以根据维度和指标快速且准确地查找到相应的单元格的值,进而快速地将单元格数据返回给用户。
[0026]优选的,还包括:分区单元110,用于根据请求表达式的用户信息在缓存中划分相应分区,其中,缓存单元108用于将单元格数据缓存至相应分区中。
[0027]由于不同用户的需要差异较大,且一般不会存在相同的需求,因此可以将根据不同用户的请求表达式得到的单元格数据存放在缓存的不同分区中,使得一个用户的请求操作仅会对相应的缓存区域产生影响,即在相应的缓存区域中生成单元格数据,从该缓存区域中获取单元格数据,一方面避免了不同用户的单元格数据发生覆盖,一方面针对不同的用户可以在其相应的缓存区域中获取数据,提高了联机分析处理的速度。
[0028]优选的,还包括:数据检测单元112,用于检测缓存中的单元格数据的数据量,并在数据量大于预设数据量时,删除缓存中的单元格数据。
[0029]可以在缓存区域中的单元格数据量较大时,将其删除,以避免无法缓存新得到的单元格数据。
[0030]优选的,还包括:数据删除单元114,用于根据预设时间间隔删除缓存中的单元格数据。
[0031]可以按照预设周期删除缓存区域中的单元格数据,由于缓存中较早存储的单元格数据一般与当前用户所需的分析处理维度和指标相差较大,因此可以每隔一段时间删除一次缓存中的数据,以保证缓存空间充裕。
[0032]图3示出了根据本发明的实施例的单元格数据缓存方法的示意流程图。
[0033]如图3所示,根据本发明的实施例的单元格数据缓存方法包括:步骤202,验证接收到的请求表达式的预设信息是否正确,若正确,则解析请求表达式得到查询模型;步骤204,根据查询模型的属性信息生成单元格,并根据查询模型在数据库中查询单元格的值,根据单元格模型和单元格的值得到单元格数据;步骤206,根据单元格的属性信息缓存单元格数据。
[0034]由于商业上的联机分析处理是针对生产数据进行的,而一般情况下,这些数据在某种粒度下是不会经常变化的,都会保持固定的维度的生产数据进行一段时间的生产。因此在这种情况下,用户根据需要输入请求表达式的维度和指标也是不变的,通过分析该表达式生成的单元格模型也就是固定的,进而从数据库中查询到的单元格的数值也是固定,从而在生成单元格数据之后,可以将该单元格数据缓存,使得在下次用户输入同样请求时,或者需要再次调用单元格数据时,可以直接将缓存中的单元格数据返回给用户,而无需再次从数据库中查询单元格的值,将少了与数据库的信息交互,提高了联机分析处理的速度。
[0035]在上述技术方案中,优选的,单元格的属性信息包括维度和指标,则步骤206还包括:根据维度和指标的交叉信息作为键值对单元格数据进行缓存。
[0036]用户根据需要输入的请求表达式中的维度和指标是不同的,根据请求表达式所得到的单元格的维度和指标也是不同的,因此,针对用户每次的需要可以生成不同的单元格,比如某个单元格所处的位置是{[门店].[USA],[产品].[FOOD],[销售金额]},那么将该单元格的维度和指标进行交叉所得到的信息可以作为键值,对该单元格数据进行缓存,具体地,可以是缓存该单元格的值或整个单元格数据(包括维度和指标以及单元格的值),从而在以后需要调用该单元格数据时,可以根据维度和指标快速且准确地查找到相应的单元格的值,进而快速地将单元格数据返回给用户。
[0037]在上述技术方案中,优选的,在步骤206之前还包括:根据请求表达式的用户信息在缓存中划分相应分区,则步骤206包括:将单元格数据缓存至相应分区中。
[0038]由于不同用户的需要差异较大,且一般不会存在相同的需求,因此可以将根据不同用户的请求表达式得到的单元格数据存放在缓存的不同分区中,使得一个用户的请求操作仅会对相应的缓存区域产生影响,即在相应的缓存区域中生成单元格数据,从该缓存区域中获取单元格数据,一方面避免了不同用户的单元格数据发生覆盖,一方面针对不同的用户可以在其相应的缓存区域中获取数据,提高了联机分析处理的速度。
[0039]在上述任一技术方案中,优选的,还包括:检测缓存中的单元格数据的数据量,并在数据量大于预设数据量时,删除缓存中的单元格数据。
[0040]可以在缓存区域中的单元格数据量较大时,将其删除,以避免无法缓存新得到的单元格数据。
[0041]在上述任一技术方案中,优选的,还包括:根据预设时间间隔删除缓存中的单元格数据。
[0042]可以按照预设周期删除缓存区域中的单元格数据,由于缓存中较早存储的单元格数据一般与当前用户所需的分析处理维度和指标相差较大,因此可以每隔一段时间删除一次缓存中的数据,以保证缓存空间充裕。
[0043]图4示出了根据本发明的实施例的报表数据格式化的示意流程图。
[0044]如图4所示,客户端发出请求,对客户端的请求表达式进行联机分析处理,然后由表达式解析器(相当于解析单元)进行解析,主要校验表达式的语法,保证其中成员(包括维度成员和指标)对象的正确性,并把表达式解析成后台分析系统中可识别的查询模型。
[0045]表达式计算器(相当于单元格生成单元)根据查询模型加载行列和切片轴上的成员,行列成员和指标交叉后产生单元格模型,然后表达式计算器会根据查询模型生成数据库查询对象,获得该单元的值。
[0046]然后,缓存系统(相当于缓存单元)会根据产生单元格的维度成员和指标,对单元格的值或者整个单元格数据进行缓存。比如某一个单元格所处位置为{[门店].[USA],[产品].[FOOD],[销售金额]},则维度和指标的交叉信息会作为键值,对单元格的值进行存储。缓存过程可以由支持并发的哈希表实现,以保证线程安全。
[0047]以上结合附图详细说明了本发明的技术方案,考虑到相关技术中,联机分析处理用户请求时,在生成单元格并获取到单元格的值之后,若再次接收到用户请求,需要再次从数据库中查询单元格的值,多次与数据库交互,导致分析处理速度较慢。通过本申请的技术方案,能够对联机分析过程中生成的单元格数据进行缓存,便于在以后的分析过程中直接获取单元格数据,而无需再次与数据库交互来获取单元格的值,提高了联机分析处理的速度。
[0048]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种单元格数据缓存系统,其特征在于,包括: 验证单元,用于验证接收到的请求表达式的预设信息是否正确; 解析单元,在所述验证单元判定所述请求表达式的预设信息正确的情况下,解析所述请求表达式得到查询模型; 单元格生成单元,用于根据所述查询模型的属性信息生成单元格,并根据所述查询模型在数据库中查询所述单元格的值,根据所述单元格模型和所述单元格的值得到单元格数据; 缓存单元,用于根据所述单元格的属性信息缓存所述单元格数据。
2.根据权利要求1所述的单元格数据缓存系统,其特征在于,所述单元格的属性信息包括维度和指标,则所述缓存单元还用于根据所述维度和所述指标的交叉信息作为键值对所述单元格数据进行缓存。
3.根据权利要求1所述的单元格数据缓存系统,其特征在于,还包括: 分区单元,用于根据所述请求表达式的用户信息在缓存中划分相应分区, 其中,所述缓存单元用于将所述单元格数据缓存至所述相应分区中。
4.根据权利要求1至3中任一项所述的单元格数据缓存系统,其特征在于,还包括: 数据检测单元,用于检测缓存中的所述单元格数据的数据量,并在所述数据量大于预设数据量时,删除所述缓存中的所述单元格数据。
5.根据权利要求1至3中任一项所述的单元格数据缓存系统,其特征在于,还包括: 数据删除单元,用于根据预设时间间隔删除缓存中的所述单元格数据。
6.一种单元格数据缓存方法,其特征在于,包括: 步骤202,验证接收到的请求表达式的预设信息是否正确,若正确,则解析所述请求表达式得到查询模型; 步骤204,根据所述查询模型的属性信息生成单元格,并根据所述查询模型在数据库中查询所述单元格的值,根据所述单元格模型和所述单元格的值得到单元格数据; 步骤206,根据所述单元格的属性信息缓存所述单元格数据。
7.根据权利要求6所述的单元格数据缓存方法,其特征在于,所述单元格的属性信息包括维度和指标,则所述步骤206还包括:根据所述维度和所述指标的交叉信息作为键值对所述单元格数据进行缓存。
8.根据权利要求6所述的单元格数据缓存方法,其特征在于,在所述步骤206之前还包括:根据所述请求表达式的用户信息在缓存中划分相应分区,则所述步骤206包括:将所述单元格数据缓存至所述相应分区中。
9.根据权利要求6至8中任一项所述的单元格数据缓存方法,其特征在于,还包括:检测缓存中的所述单元格数据的数据量,并在所述数据量大于预设数据量时,删除所述缓存中的所述单元格数据。
10.根据权利要求6至8中任一项所述的单元格数据缓存方法,其特征在于,还包括:根据预设时间间隔删除缓存中的所述单元格数据。
【文档编号】G06F12/08GK103488688SQ201310392354
【公开日】2014年1月1日 申请日期:2013年9月2日 优先权日:2013年9月2日
【发明者】霍琦 申请人:用友软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1