CN103020301B - 一种多维度数据查询和存储方法及系统 - Google Patents
一种多维度数据查询和存储方法及系统 Download PDFInfo
- Publication number
- CN103020301B CN103020301B CN201210592686.9A CN201210592686A CN103020301B CN 103020301 B CN103020301 B CN 103020301B CN 201210592686 A CN201210592686 A CN 201210592686A CN 103020301 B CN103020301 B CN 103020301B
- Authority
- CN
- China
- Prior art keywords
- data
- mark
- query
- source
- dimensional 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 claims abstract description 30
- 238000013500 data storage Methods 0.000 claims description 5
- 230000001143 conditioned effect Effects 0.000 claims description 3
- 238000004458 analytical method Methods 0.000 abstract description 5
- 238000010835 comparative analysis Methods 0.000 abstract 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 60
- 230000005611 electricity Effects 0.000 description 23
- 238000004939 coking Methods 0.000 description 21
- 230000008859 change Effects 0.000 description 20
- 239000003245 coal Substances 0.000 description 13
- 230000008569 process Effects 0.000 description 13
- 239000011335 coal coke Substances 0.000 description 5
- 239000000571 coke Substances 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000007405 data analysis Methods 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 238000004321 preservation Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- AFYCEAFSNDLKSX-UHFFFAOYSA-N coumarin 460 Chemical compound CC1=CC(=O)OC2=CC(N(CC)CC)=CC=C21 AFYCEAFSNDLKSX-UHFFFAOYSA-N 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种自定义语法建立多维度数据报表的数据查询分析与存储方法。多维度报表是一种可以从多个角度对数据进行对比分析的方法,能否快速的在多个角度进行数据的对比分析更是决定了发现问题和解决问题的效率,直接影响到企业的运营和发展。本发明提出的多维度数据查询及存储方法,其包括:步骤1、配置多维度数据,包括多维度数据源的配置和多维度数据标识的配置;步骤2、多维度数据查询和存储,包括根据所配置的多维度数据源和多维度数据标识进行多维度数据的查询和存储。
Description
技术领域
本发明涉及企业信息化领域,特别是指一种多维度数据查询分析及存储的方法及系统。
背景技术
目前,几乎所有的数据查询工具、模块、组件或服务都能够实现基本的数据查询,最终的效果也仅仅停留在数据汇总与格式化的层面上,只是对一般使用者查看数据提供了一定的方便。而对于需要进行数据分析的职业数据分析人员或企业运营分析人员来说,还要将查询得到数据进行二次的加工处理。这不仅仅增加了其工作量,更是带来更高的工作复杂度,结果便是单次分析工作的周期长,难度大,发现问题不直接,甚至会出现较高的错误率,为企业发展所提供的推动力量不能达到预期。
多维度,通俗的理解就是多个角度。如果能有一种办法,让使用者能够高效而快速地得到自己真实需要从特定角度的数据,那么,对其后续工作的展开是事半功倍的。数据分析人员无需对数据进行再次加工处理,便可得到进行分析的基础数据,避免上述提到的种种困难及问题。那么对于整个行业来讲,将大大的提高效率,加快发展速度。
发明内容
为了解决现有技术中,在数据庞大且种类繁多时,对数据进行二次加工耗时耗能,且数据分析的难度大,数据查询效率低下等问题,本发明提出了一种多维度的数据查询分析及存储方法,目的在于提高对多维度数据的查询分析效率,缩短多维度数据生成时间。
本方法是通过自定义数据配置语法,完成多维度数据报表模板的配置,实现多维度数据报表的生成,用以进行数据对比分析。
通过本发明提出的多维度数据查询和存储方法,可以灵活的配置需要查询或存储的各种数据,尤其是带有维度的数据,使得效率大大提高。同时,本方法也很好的兼容了没有维度的数据的查询及存储。对于配置了计算公式,或者图形展示的数据模板,本发明提出的方法能够很好的支持。
附图说明
图1是本发明中多维度数据查询和存储系统的组成结构图;
图2是本发明中数据配置的流程图;
图3是本发明中数据查询的流程图;
图4是本发明中数据存储的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
1)名词解释:
多维度:“维”是一种度量,原意是指空间坐标中的某一条轴。在本文中定义为视角或角度,那么多维度的含义即是多个角度,对数据来说就是满足多个维度条件的数据。
数据源:与数据库相关的配置信息,包括查询数据源和存储数据源。
查询数据源:为从数据库查询数据进行一系列配置得到的数据源。
存储数据源:为存储数据到数据库进行一系列配置得到的数据源。
数据表:数据源中为查询或存储而设定的表。
查询数据标识:在查询数据源的基础上,为得到表中某项数据而配置的数据标识。
存储数据标识:在存储数据源的基础上,为表明数据要保存到哪个数据表而配置的数据标识。
2)实现方案:
本发明提出的多维度数据查询和存储系统包括配置组件、语法解析组件、业务组件、数据访问组件以及数据持久层(物理存在的数据库)。如图1所示。
本发明提出的多维度数据查询和存储方法包括以下步骤:
步骤1、定义数据配置信息,由配置组件完成相应逻辑,如图1;配置过程,如图2所示,具体包括:
步骤11、配置数据源,包括查询数据源和存储数据源。每一次配置只能针对一个源进行配置,如果需要多个数据源,多次配置即可。由定义组件中的数据源编辑器完成,如图1。
数据源支持Microsoft SqlServer、Oracle以及Access等数据库,配置时可以为数据源命名为一个更好理解的名称,选择数据库类别,编辑数据库连接字符串,以及查询数据源的查询语句或存储数据源的数据表名称,可选配置为备注信息,用以说明数据源的其他信息。
数据源的定义方法遵循XML语法,定义的结构如下:
<数据源配置>
<数据源1>
<名称>数据源名称</名称>
<数据库类别>SqlServer/Oracle/Access</数据库类别>
<链接字符串>Data Source=IP地址/主机名;Initial Catalog=数据库名;uid=登录名;password=登录密码;</链接字符串>
<sql语句>数据库中某个表的名称</sql语句>
<数据源类别>查询/存储</数据源类别>
<备注>
</备注>
<数据源1>
<数据源2>
<名称>数据源名称</名称>
<数据库类别>SqlServer</数据库类别>
<链接字符串>Data Source=IP地址/主机名;Initial Catalog=数据库名;uid=登录名;password=登录密码;</链接字符串>
<sql语句>sql查询语句</sql语句>
<数据源类别>查询</数据源类别>
<备注>
</备注>
<数据源2>
……
<数据源n>
<名称>数据源名称n</名称>
<数据库类别>SqlServer</数据库类别>
<链接字符串>Data Source=192.168.40.169;Initial Catalog=能源统计数据库;uid=sa;password=;</链接字符串>
<sql语句>sql查询语句</sql语句>
<数据源类别>查询</数据源类别>
<备注>
</备注>
<数据源n>
</数据源配置>
以上为数据源的定义语法规则,使用时根据实际使用情况可配置多个数据源,只要按照该规则配置即可。各个节点的标记可以是任何有效符号或符号的组合,但必须要符合XML标记语言的标准。
配置查询数据源时,编写的查询语句不仅可以带有查询条件,而且支持动态的查询条件,所使用的方法是将查询条件的值使用“{}”括起来,如:车间=‘{车间}’,那么在执行过程中,就会提示使用者,对车间进行动态的赋值,完成相应的查询,得到导出数据源的数据结果集。除动态赋值部分,查询语句遵循sql(结构化查询语言)语法。
数据源配置举例:
1)背景:1、选取IP地址为192.168.1.100的SqlServer数据库服务器,用户名和密码均为sa,数据库名称为DataBase;2、将其中数据表名称为SourceTable的表配置为查询数据源,查询数据源名称为Source;3、将其中数据表名称为TargetTable的表配置为存储数据源,存储数据源名称为Target。
2)配置结果:
<数据源配置>
<数据源1>
<名称>Srouce</名称>
<数据库类别>SqlServer</数据库类别>
<链接字符串>Data Source=192.168.40.100;InitialCatalog=DataBase;uid=sa;password=sa;</链接字符串>
<sql语句>select*from SourceTable</sql语句>
<数据源类别>查询</数据源类别>
<备注>
</备注>
</数据源1>
<数据源2>
<名称>Srouce</名称>
<数据库类别>SqlServer</数据库类别>
<链接字符串>Data Source=192.168.40.100;InitialCatalog=DataBase;uid=sa;password=sa;</链接字符串>
<sql语句>TargetTable</sql语句>
<数据源类别>存储</数据源类别>
<备注>
</备注>
</数据源2>
</数据源配置>
以上便是完成后的数据源配置信息。可以看出,查询数据源和存储数据源的存储结构是完全相同的,仅内容有区别:1、查询数据源和存储数据源的“<数据源类别>”标记内是不同的,分别对应着查询和存储;2、查询数据源的sql语句是符合sql语法的查询语句,从数据表中查询数据,存储数据源的sql语句仅是数据表的名称,表示向这个表中存储数据。
步骤12、配置数据标识,包括配置数据查询标识和数据存储标识,其由配置组件中的数据标识编辑器完成,如图1。
对于本发明,多维度体现在数据标识中,在下面关于数据查询标识和数据存储标识中有具体的说明。
完成数据源的配置后,就可以进行数据标识的配置。数据查询标识表征从查询数据源取出满足条件的数据并展示;数据存储标识表示将数据按照何种条件保存到存储数据源对应的数据库表中。
本发明使用自主定义的语法规则,用来实现数据的查询与存储。
标识语法:
■数据查询标识:查询起始符.查询数据源名称.数据项名称.处理方式.条件或维度.标识命名
说明:标识分为6段
第1段查询起始符:表明当前数据标识为查询,即查询数据并展示。
第2段查询数据源名称:配置查询数据源时设定的名称,如有多个时,可选择一个且仅为一个。
第3段数据项名称:查询数据源对应的查询结果集中的某一字段,也就是该数据源中,哪一项数据希望被展示。
第4段处理方式:当查询得到的结果有多个时,对于如何展示,需要选择以下处理方式:
■取头条记录:默认情况,只取第一条记录
■向下填充:从标识所在位置开始向下填充
■向右填充:从标识所在位置开始向右填充
■最大值:多结果中的最大值
■最小值:多结果中的最小值
■平均值:多结果的平均值
■求和:多结果数值的总和
■求个数:多结果的记录条数
第5段条件或维度:
■条件:对多记录按一定条件筛选数据,可设置多个
■维度:按照维度字段筛选数据,可设置多个
第6段标识名称:如果有其他位置想要使用与本标识相同的配置,那么无需再次从头配置,只需要将本标识定义标识名称,然后在其他使用的位置引用即可。引用语法:查询起始符.标识名称
这种导出标识语法具有很强的灵活性,具体如下:
1)前三段标识查询数据,处理方式默认为取头条记录。即查询起始符.查询数据源名称.数据项名称=查询起始符.查询数据源名称.数据项名称.取头条记录。
2)前四段标识查询数据,主要是处理方式不为取头条记录的情况,如果设置为取头条记录,情况同上述1。
3)前五段标识查询数据,主要是针对需要多维度查询数据的情况,可以是自定义编写的查询条件,也可以使用某一单元格的值作为过来条件。
4)六段标识查询数据,上述情况的基础上,其他位置需要引用该标识所在单元格的值的情况,这样可以减少配置标识的工作量,直接取值。
数据查询标识配置及查询结果举例:
1)背景:结合数据源配置举例的内容,从已配置好的查询数据源Source中查询数据,Source对应的表SourceTable的表结构及示例数据如下:
序号 | 车间 | 数据形式 | 工业水 | 电 | 洗精煤 |
1 | 炼焦车间 | 实物量 | 1001 | 1002 | 1003 |
2 | 炼焦车间 | 折标量 | 2001 | 2002 | 2003 |
3 | 化产车间 | 实物量 | 3001 | 3002 | 3003 |
4 | 化产车间 | 折标量 | 4001 | 4002 | 4003 |
说明:表中序号列不是SourceTable表的数据,是为了方便举例说明而增加的;车间列和数据形式列是维度字段;工业水、电和洗精煤是数据字段。
2)查询标识标识各种使用方式及查询结果:
a)前三段标识查询数据:查询标识为“$查询起始符.Source.工业水”,该标识等同于“$查询起始符.Source.工业水.取头条记录”,查询结果将是全部的“工业水”数据,如果数据查询结果顺序如上表所示顺序,那么查询最终结果为“1001”。同理,当以此形式查询“电”或“洗精煤”时,得到的结果分别是“1002”和“1003”。
b)前四段标识查询数据:查询标识为四段,取头条记录情况不再举例说明。当查询标识为“$查询起始符.Source.工业水.向下填充”时,查询结果将是全部的“工业水”数据,即“1001”、“2001”、“3001”、“4001”,并将数据在垂直方向展示,如下所示:
1001 |
2001 |
3001 |
4001 |
当查询标识为“$查询起始符.Source.工业水.向右填充”时,查询结果与上述相同,数据在水平方向展示,如下所示:
1001 | 2001 | 3001 | 4001 |
当查询标识为“$查询起始符.Source.工业水.最大值”时,查询结果与上述相同,并在结果中找到最大值“4001”。
当查询标识为“$查询起始符.Source.工业水.最小值”时,查询结果与上述相同,并在结果中找到最小值“1001”。
当查询标识为“$查询起始符.Source.工业水.平均值”时,查询结果与上述相同,并将结果求平均值“(1001+2001+3001+4001)/4”“,得到的最终结果是“2501”。
当查询标识为“$查询起始符.Source.工业水.求和”时,查询结果与上述相同,并将结果求和“1001+2001+3001+4001”“,得到的最终结果是“10004”。
当查询标识为“$查询起始符.Source.工业水.求个数”时,查询结果与上述相同,并将结果的个数进行展示,得到的最终结果是“4”。
c)前五段标识查询数据:查询标识为五段,在四段的基础上增加了维度或条件,以第四段为“取头条记录”为例说明维度或条件在查询过程中发挥的作用。当查询标识为“$查询起始符.Source.工业水.取头条记录.车间=炼焦车间&数据形式=实物量”,此种情况是仅有维度的,理解为,首先按照前3段得到全部的工业水数据,进而根据维度“车间=炼焦车间&数据形式=实物量””过滤得到最终数据“1001”,即数据表中第1条记录的工业水数据,如果此时仍得到了多个结果,那么按照步骤b)进一步处理。
若只用一个维度来查询数据,如表示为“$查询起始符.Source.工业水.取头条记录.车间=炼焦车间”,将得到炼焦车间的工业水记录2条,但因第4段是取头条记录,因此最终的结果是“1001”,维度仅设置为“数据形式=实物量”时,处理方式相同。
条件和维度组合的情况,查询标识为“$查询起始符.Source.工业水.取头条记录.车间=炼焦车间&数据形式=实物量&工业水<1000”,首先按照前3段得到全部的工业水数据,进而根据维度和条件“车间=炼焦车间&数据形式=实物量&工业水<1000”过滤没有满足要求的数据,因为如果没有“工业水<1000”这个条件,得到的结果是“1001”,有了这个条件后“1001”已经不满足了,所以最终查询的结果是空的,不会展示任何内容。
仅有条件的查询标识,如“$查询起始符.Source.工业水.取头条记录.工业水<2000”,因为没有设置维度,会得到所有的工业水数据,但是条件为“工业水<2000”,发现只有“1001”满足条件;同理,如果条件变为“工业水<3000”,此时满足条件的数据有“1001”和“2001”,因为第4段是“取头条记录”,那么最终结果也只有“1001”。
查询条件是很灵活的,只要满足实际情况或实际要求即可,最差的情况就是条件不合理,最终没有查到数据。
d)六段标识情况:此种情况为其他位置要使用和别处相同的一个标识时,不必完全配置一遍标识,只需引用已存在的那个标识即可。但被引用的标识必须要有一个命名,命名放在标识的第6段,如标识“$查询起始符.Source.工业水.取头条记录.工业水<2000.引用工业水”,那么第6段内容“引用工业水”就是这个标识的命名,其他想使用这个标识查询数据的位置只需将查询标识写成“$查询起始符.引用工业水”,就可得到“$查询起始符.Source.工业水.取头条记录.工业水<2000“这个标识的查询结果。
■数据存储标识:
存储起始符.目标.数据项.维度
说明:标识分为4段
第1段存储标识起始符
第2段目标:存储数据源中的表名称
第3段数据项:存储数据源中数据表的字段名称
第4段维度
■维度:按照维度字段筛选数据,可设置多个存储标识可以有两种表现形式:
1)前三段标识:不带有维度信息的存储标识。
2)全四段标识:带有维度信息的存储标识。
对于查询标识和存储标识,维度都是可选的组成部分。因此,此种定义数据标识的语法,不仅仅支持多维度的数据查询和存储,同时也能很好的兼容不带有维度的数据查询和存储。
数据存储标识举例:
1)背景:结合数据源配置举例的内容,向已配置好的存储数据源Target中存储数据,Target对应的表TargetTable的表结构及示例数据如下:
序号 | 工业水 | 电 | 洗精煤 |
说明:序号为记录顺序,不是表的内容;工业水、电、洗精煤是数据字段;表中目前没有维度字段;表中目前没有数据。
2)存储标识使用举例
a)没有维度情况:标识为“$存储起始符.Target.工业水”,如果该标识所处位置的数值为“1001”,存储标识表明向表中插入一条记录,并且记录中工业水的值是“1001”,执行后的结果如下:
序号 | 工业水 | 电 | 洗精煤 |
1 | 1001 |
因为没有维度来约束数据,因此如果在其他位置有存储标识“$存储起始符.Target.工业水”,该标识所处位置的数值为“1002”,那么执行后,所有的工业水字段的值都被更新,执行后的结果如下:
序号 | 工业水 | 电 | 洗精煤 |
1 | 1002 |
这种情况多用在不需要维度,一般数据只有一条记录的情况下。
b)有维度的情况,表初始状态如下:
序号 | 车间 | 工业水 | 电 | 洗精煤 |
说明:初始状态表中没有数据,车间是维度字段,工业水、电、洗精煤是数据字段。
标识为“$存储起始符.Target.工业水.车间=炼焦车间”,标识所在位置数据为“1001”,此时会插入一条数据,执行后的结果如下
序号 | 车间 | 工业水 | 电 | 洗精煤 |
1 | 炼焦车间 | 1001 |
此时,若存同时存在标识“$存储起始符.Target.电.车间=炼焦车间”,且所在位置数据是“1002”,因为已经存在了炼焦车间的记录,所以只需要更新这条记录电的数值,执行后的结果如下:
序号 | 车间 | 工业水 | 电 | 洗精煤 |
1 | 炼焦车间 | 1001 | 1002 |
如果有“$存储起始符.Target.电.车间=炼焦车间”,且所在位置数据是“1003,同理,执行后的结果:
序号 | 车间 | 工业水 | 电 | 洗精煤 |
1 | 炼焦车间 | 1001 | 1002 | 1003 |
如果此时有标识“$存储起始符.Target.工业水.车间=化产车间”,且值为“2001”,因为不存在“车间=化产车间”的记录,因此需要向表中插入一条“车间=化产车间”的记录,且该条记录的工业睡的值为“2001”;若此时有标识“$存储起始符.Target.电.车间=化产车间”,且值为“2002”,由于记录已经存在,直接更新该记录的“电”字段的值,以此类推。以上两个标识执行后的结果如下:
序号 | 车间 | 工业水 | 电 | 洗精煤 |
1 | 炼焦车间 | 1001 | 1002 | 1003 |
2 | 化产车间 | 2001 | 2002 |
若此时有标识为“$存储起始符.Target.焦炭.车间=化产车间”,且值为“2004”,可以看出当前数据表中存在“车间=化产车间”的记录,但是不存在“焦炭”字段,所以首先会自动创建“焦炭”字段,然后再将数据“2004”保存到“车间=化产车间”的记录的焦炭字段内,执行后的结果如下:
序号 | 车间 | 工业水 | 电 | 洗精煤 | 焦炭 |
1 | 炼焦车间 | 1001 | 1002 | 1003 | |
2 | 化产车间 | 2001 | 2002 | 2004 |
若此时有标识为“$存储起始符.Target.工业水.车间=化产车间&数据形式=实物量”,且值为“3001”,由于表中不包括数据形式这个维度的字段,首先会创建“数据形式”字段,执行结果如下:
序号 | 车间 | 数据形式 | 工业水 | 电 | 洗精煤 | 焦炭 |
1 | 炼焦车间 | 1001 | 1002 | 1003 | ||
2 | 化产车间 | 2001 | 2002 | 2004 |
此时发现没有符合维度“车间=化产车间&数据形式=实物量”的记录,因此会插入一条“车间=化产车间&数据形式=实物量”的记录,并将“3001”保存到该记录的工业水字段,执行结果如下:
序号 | 车间 | 数据形式 | 工业水 | 电 | 洗精煤 | 焦炭 |
1 | 炼焦车间 | 1001 | 1002 | 1003 | ||
2 | 化产车间 | 2001 | 2002 | 2004 | ||
3 | 化产车间 | 实物量 | 3001 |
存储时,不管是维度字段还是数据字段,只要原来的数据表中没有,本方法遍自动的创建这个字段,以保证标识的正确解析及执行数据的存储。
如果表目前的情况是如下:
序号 | 车间 | 数据形式 | 工业水 | 电 | 洗精煤 | 焦炭 |
1 | 炼焦车间 | 实物量 | 1001 | 1002 | 1003 | |
2 | 化产车间 | 折标量 | 2001 | 2002 | 2004 | |
3 | 化产车间 | 实物量 | 3001 |
有标识“$存储起始符.Target.工业水.车间=化产车间”,且值为“4001”,执行过程中会发现“车间=化产车间”的记录有2条,那么这两条记录的工业水字段都会被新的数值“4001”代替,结果如下:
序号 | 车间 | 数据形式 | 工业水 | 电 | 洗精煤 | 焦炭 |
1 | 炼焦车间 | 实物量 | 1001 | 1002 | 1003 | |
2 | 化产车间 | 折标量 | 4001 | 2002 | 2004 | |
3 | 化产车间 | 实物量 | 4001 |
总结,对于存储来讲,自动创建维度字段是本方法支持的,但是在实际使用过程中,如果自动创建了维度字段,原有数据在新的维度字段的值都是空值,将造成原有数据模糊或者无意义,是应避免这样使用的;而自动创建数据字段是不存在这个问题的,是数据的一种扩展。
另外,对于报表中同一个位置,可以既配置导出标识又配置导入标识,在实际运行过程中,会分别按照各自的标识执行而不冲突。通常只有数据来源和数据目标不相同时才会两者同时配置,其作用可以看作是从查询数据源中取得数据,并将数据放到与查询数据源不相同的存储数据源中。
步骤13、保存配置
数据源配置信息以及数据标识配置信息保存在最终模板文件中,如图1中配置组件的数据模版。因此,保存文件的过程就是保存整个配置信息的过程,这个文件就是一个数据查询或数据存储的完整定义。该文件可以保存在Excel中。
以上过程包括了数据源配置、数据标识配置以及最终模板文件的保存。报表定义流程如图2。
步骤2、多维度数据查询步骤,由语法解析组件和业务组件完成,如图1中,包括以下步骤,如图3所示:
步骤21、首先需要数据源解析器对数据源的配置信息进行解析,得到全部已配置的数据源对象,但只保留查询数据源对象。进而根据每个查询数据源中的查询语句得到数据结果集,将结果缓存在内存中。
步骤22、然后由数据标识解析器遍历步骤21中所述的预先配置的数据标识信息,判断每一个标识是否为数据查询标识,是则在数据结果集中查找数据,按照数据查询标识配置的维度及其他过滤条件、处理方式得到最终结果,将其呈现在数据查询结果文件中相应数据项的内容中,如果不是查询标识则跳过.
步骤23、数据标识解析器判断是否还有未解析的数据查询标识,有则移至下一数据标识,并重复步骤22,直到所有的数据查询标识解析处理完成,保存文件。
在本方法中,数据配置信息可以定义为复杂的展示形式,如使用公式、数据图表等,根据查询数据源以及查询标识得到的数据为公式或图表提供数据源,不必直接操作或控制公式或图表。数据文件的生成由数据生成器完成。
生成的数据文件,可以是xls格式的Excel文件,同时还可以是html版本,方便使用者在浏览器中查看,此种情况是只读的。
步骤3、多维度数据存储步骤,由语法解析组件和业务组件完成,如图1中,数据存储是将已有文件中的数据,根据数据配置信息中的存储标识,按其维度条件保存到存储数据源对应数据表的指定字段。
包括以下步骤,如图4所示:
步骤31、数据源解析器对数据源的配置信息进行解析,得到全部已配置的数据源对象,但只保留存储数据源对象,查看存储数据源对象中数据表是否存在,如果不存在则创建数据表。
步骤32、数据标识解析器遍历数据标识信息,读取数据项的标识,判断是否为数据存储标识,如果是则判断是否存在指定的数据表、要存储的字段以及维度条件字段,如存在,则检查当前维度条件下的数据即指定的记录是否存在,如果存在则用文件中的数据更新数据表中该字段的值,不存在则插入一条新纪录。
以上是通常情况下的数据存储,另有几种特殊情况,如数据表不存在、在数据表中要存储的目标字段不存在、维度条件字段不存在,对于以上情况,本方法均会自动的创建数据表、数据字段以及维度字段,然后在将文件中的数据插入到数据表中。
步骤33、继续遍历文件中的标识,判断是否有未解析的标识,如果有则移至下一数据标识并重复步骤32。直到所有的存储标识解析完毕,文件中全部需要存储的数据都会根据实际情况,插入或更新到数据表中,导入完成。数据的存储由数据存储器完成。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种多维度数据查询及存储方法,其包括:
步骤1、配置多维度数据,包括多维度数据源的配置和多维度数据标识的配置;
步骤2、多维度数据查询和存储,包括根据所配置的多维度数据源和多维度数据标识进行多维度数据的查询和存储;
其中,步骤2中进行多维度数据查询的具体步骤包括:
步骤21、解析多维度数据源的配置信息,获得所配置的多维数据源中的查询数据源对象;
步骤22、在所获得的查询数据源对象中,根据查询语句获得查询结果,并进行缓存;
步骤23、遍历所配置的多维度数据标识,判断该多维度数据标识是否为数据查询标识,如果是,则在所缓存的查询结果中按照所述数据查询标识配置的维度进行筛选,以获得相应于所述数据查询标识的最终查询结果;
步骤24、判断是否还有未遍历的多维度数据标识,如果有则重复步骤23,直到所有多维度数据标识遍历完成;
步骤2中进行多维度数据存储的具体步骤包括:
步骤25、解析多维度数据源的配置信息,获得所配置的多维数据源中的存储数据源对象;
步骤26、遍历所获得的多维度数据标识,判断该多维度数据标识是否为数据存储标识,如果是,则判断在所述存储数据源对象中是否存在指定的数据表、要存储的字段以及维度字段;如果存在,则检查当前维度下的数据是否存在,如果存在,则使用所述当前维度下的数据更新所述数据表中相应字段的值;
步骤27、判断是否还有未遍历的多维度数据标识,如果有则重复步骤26,直到所有多维度数据标识遍历完成。
2.如权利要求1所述的方法,其特征在于,所述多维度数据标识包括数据查询标识和数据存储标识,其中数据查询标识定义为:<查询起始符.查询数据源名称.数据项名称.处理方式.条件或维度.标识命名>;所述数据存储标识定义为:<存储起始符.目标.数据项.维度>。
3.如权利要求2所述的方法,其特征在于,所述方法还包括根据查询或存储的结果生成报表,并且所述报表包括标准Excel数据文件和HTML文件两种形式。
4.如权利要求1所述的方法,其特征在于,步骤1中多维度数据标识的配置包括多维度数据查询标识的配置和多维度数据存储标识的配置;步骤2中,进行多维度数据查询时,根据所配置的数据查询标识进行数据查询;进行多维度数据存储时,根据所配置的数据存储标识进行数据存储。
5.如权利要求1所述的方法,其特征在于,步骤26中如果判断出指定的数据表、要存储的字段或维度字段不存在,则自动创建所述指定的数据表、要存储的字段或维度字段;如果当前维度条件下的数据不存在,则插入一条新纪录。
6.如权利要求1所述的方法,其特征在于,所述多维度数据源的配置遵循XML语法规则。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210592686.9A CN103020301B (zh) | 2012-12-31 | 2012-12-31 | 一种多维度数据查询和存储方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210592686.9A CN103020301B (zh) | 2012-12-31 | 2012-12-31 | 一种多维度数据查询和存储方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103020301A CN103020301A (zh) | 2013-04-03 |
CN103020301B true CN103020301B (zh) | 2015-08-19 |
Family
ID=47968904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210592686.9A Expired - Fee Related CN103020301B (zh) | 2012-12-31 | 2012-12-31 | 一种多维度数据查询和存储方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103020301B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104252443A (zh) * | 2013-06-28 | 2014-12-31 | 腾讯科技(深圳)有限公司 | 报表生成方法及装置 |
CN103500188A (zh) * | 2013-09-13 | 2014-01-08 | 北京奇虎科技有限公司 | 一种数据表生成的方法和系统 |
CN104657368A (zh) * | 2013-11-20 | 2015-05-27 | 上海海典软件有限公司 | 一种关系型数据库的多维度报表生成方法 |
CN103853820B (zh) * | 2014-02-20 | 2017-05-03 | 北京用友政务软件有限公司 | 一种数据处理方法及系统 |
CN104166740A (zh) * | 2014-09-10 | 2014-11-26 | 税友软件集团股份有限公司 | 一种数据查询方法及装置 |
CN105868225A (zh) * | 2015-11-18 | 2016-08-17 | 乐视体育文化产业发展(北京)有限公司 | 数据查询的方法、客户端、服务器及系统 |
CN106933906B (zh) * | 2015-12-31 | 2020-05-22 | 北京国双科技有限公司 | 数据多维度的查询方法及装置 |
CN106980630B (zh) * | 2016-01-19 | 2020-03-10 | 菜鸟智能物流控股有限公司 | 一种数据旋转展示方法及装置 |
CN107798041B (zh) * | 2017-06-21 | 2020-02-14 | 平安科技(深圳)有限公司 | 保单数据存储方法、装置及终端设备 |
CN107798086B (zh) * | 2017-10-19 | 2021-07-23 | 福建中金在线信息科技有限公司 | 服务器信息更新方法、装置、系统及电子设备 |
CN107977897A (zh) * | 2017-12-28 | 2018-05-01 | 平安健康保险股份有限公司 | 保险业务数据分析方法、系统及计算机可读存储介质 |
CN108573354B (zh) * | 2018-04-28 | 2022-04-05 | 襄阳田园乐活米业有限公司 | 粮食加工损失数据分析系统及方法 |
CN109189777A (zh) * | 2018-06-28 | 2019-01-11 | 微梦创科网络科技(中国)有限公司 | 一种存储及查询多维信息的方法、装置及设备 |
CN114995931A (zh) * | 2022-05-03 | 2022-09-02 | 远光软件股份有限公司 | 项目看板的显示方法、装置、存储介质及计算机设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101004683A (zh) * | 2007-01-31 | 2007-07-25 | 华为技术有限公司 | 数据库访问方法和装置 |
CN101216849A (zh) * | 2008-01-11 | 2008-07-09 | 清华大学 | 基于集成化企业模型的文档自动生成方法 |
CN101464894A (zh) * | 2008-12-30 | 2009-06-24 | 北京中创信测科技股份有限公司 | 数据查询方法和系统 |
CN101477522A (zh) * | 2007-12-31 | 2009-07-08 | 财团法人工业技术研究院 | 收集与分析商业智能数据的系统 |
-
2012
- 2012-12-31 CN CN201210592686.9A patent/CN103020301B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101004683A (zh) * | 2007-01-31 | 2007-07-25 | 华为技术有限公司 | 数据库访问方法和装置 |
CN101477522A (zh) * | 2007-12-31 | 2009-07-08 | 财团法人工业技术研究院 | 收集与分析商业智能数据的系统 |
CN101216849A (zh) * | 2008-01-11 | 2008-07-09 | 清华大学 | 基于集成化企业模型的文档自动生成方法 |
CN101464894A (zh) * | 2008-12-30 | 2009-06-24 | 北京中创信测科技股份有限公司 | 数据查询方法和系统 |
Non-Patent Citations (1)
Title |
---|
高校财务多维查询分析系统;彭成等;《计算机工程与设计》;20120531;第33卷(第5期);第2057-2062页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103020301A (zh) | 2013-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103020301B (zh) | 一种多维度数据查询和存储方法及系统 | |
US11755575B2 (en) | Processing database queries using format conversion | |
CN104123374B (zh) | 分布式数据库中聚合查询的方法及装置 | |
CN107491561B (zh) | 一种基于本体的城市交通异构数据集成系统及方法 | |
CN103064875B (zh) | 一种服务化空间数据分布式查询方法 | |
CN104899295B (zh) | 一种异构数据源数据关联分析方法 | |
CN102270225B (zh) | 数据变更日志监控方法和数据变更日志监控装置 | |
CN111078702B (zh) | 一种sql语句分类管理及统一查询方法和装置 | |
Jensen et al. | Converting XML DTDs to UML diagrams for conceptual data integration | |
CN102033885B (zh) | 用于XML数据存储库中的XPath执行的方法和系统 | |
CN104915450A (zh) | 一种基于HBase的大数据存储与检索方法及系统 | |
CN102917009B (zh) | 一种基于云计算技术的股票数据采集和存储方法和系统 | |
CN104765731A (zh) | 数据库查询优化方法和设备 | |
CN103970902A (zh) | 一种大量数据情况下的可靠即时检索方法及系统 | |
CN103778133A (zh) | 一种数据库对象的变更方法及装置 | |
CN101840400A (zh) | 一种多级分类检索方法及系统 | |
CN102609402A (zh) | 一种基于实时策略的本体模型生成及管理装置及方法 | |
US7966312B2 (en) | Updatable result set for multiple joined tables | |
CN102024039A (zh) | 基于eoms系统的表单生成方法 | |
CN104573022A (zh) | 一种HBase的数据查询方法及装置 | |
CN106503040B (zh) | 适用sql查询方法的kv数据库及其创建方法 | |
US20060161525A1 (en) | Method and system for supporting structured aggregation operations on semi-structured data | |
CN104731969A (zh) | 分布式环境下海量数据连接聚集查询方法、装置和系统 | |
CN105022791A (zh) | 一种新型的kv分布式数据存储方法 | |
CN104462361A (zh) | 一种匹配数据表中数据的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150819 Termination date: 20211231 |