一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据导出方法、装置、设备及计算机可读存储介质与流程

2022-07-13 17:14:46 来源:中国专利 TAG:


1.本技术属于多维联机分析处理技术领域,尤其涉及一种数据导出方法、装置、设备及计算机可读存储介质。


背景技术:

2.多维数据库是多维联机分析处理技术(molap)的载体,按照数据的存储方式划分,通常可以划分为传统多维数据库和内存多维数据库。
3.其中,传统多维数据库是基于磁盘文件方式存储数据的,当海量数据计算时会产生频繁的磁盘读写,而传统多维数据库中磁盘读写的性能远低于内存中数据读写的性能,因此,传统多维数据库的计算效率会被磁盘读写大幅降低。内存多维数据库是基于内存计算的多维数据库,全部的数据常驻内存,其中,内存计算对服务器的内存资源配置要求较高,而当前内存的价格又比较昂贵。基于此,如何从多维数据库中导出数据,以节省内存资源,成为本领域技术人员较为关注的问题。
4.相关技术中,多维数据库提供的数据导出方法主要包括以下两种:(1)将多维数据库中的数据导出到磁盘文件。(2)通过开放数据库连接(open database connectivity,odbc)方式,将多维数据库中的数据导出到第三方关系数据库中预先构建的单个事实表中。
5.然而,采用上述方式(1)时,由于需要操作磁盘文件,导致导出效率较低;并且,磁盘文件上的数据是冷数据,在没有加载到数据库的条件下完全丧失了分析价值。采用上述方式(2)时,虽然可以保留导出数据的分析价值,但是该方法在多维数据库导出操作前,需要通过人工在关系数据库中提前创建关系库表,容易出现人工操作出错的风险;其次,该方法使用odbc通用接口,导致数据处理性能不高。
6.因此,如何提高多维数据库的数据导出效率,以及降低数据导出过程中人工操作出错风险是本领域技术人员亟需解决的技术问题。


技术实现要素:

7.本技术实施例提供一种数据导出方法、装置、设备及计算机可读存储介质,能够提高多维数据库的数据导出效率,以及避免数据导出过程中人工操作出错。
8.第一方面,本技术实施例提供一种数据导出方法,方法包括:
9.配置与多维数据库的数据导出操作相关的参数,参数包括目标关系数据库的类型;
10.根据目标关系数据库的类型确定与类型匹配的专有客户端开发库,并通过专有客户端开发库建立多维数据库和目标关系数据库的连接关系;
11.根据多维数据库的多维数据立方体的维度结构创建目标关系数据库的事实数据表,以及根据构成多维数据立方体的维度的成员属性结构创建目标关系数据库的维度表;
12.基于连接关系,执行预设的数据导出操作,将多维数据立方体的各个维度成员的属性数据导出至目标关系库中的维度表;
13.基于连接关系,执行预设的数据导出操作,将多维数据立方体的业务数据导出至目标关系库中的事实数据表。
14.可选的,与多维数据库的数据导出操作相关的参数,包括:多维数据库的多维数据立方体的名称,目标关系数据库的ip地址,目标关系数据库的监听端口,目标关系数据库的用户名,目标关系数据库的密码,多维数据库的数据量阈值参数和数据导出操作的默认批量值,数据量阈值参数适用于单个维度成员属性的数据量和多维立方体的业务数据量。
15.可选的,根据多维数据库的多维数据立方体的维度结构创建目标关系数据库的事实数据表,以及根据构成多维数据立方体的维度的成员属性结构创建目标关系数据库的维度表,包括:
16.自动分析多维数据库的多维数据立方体的维度结构,以得到分析结果;
17.基于预设的数据量阈值参数,判断多维数据立方体的数据量是否为大数据量,或者单个维度的成员属性数据量是否是大数据量;
18.若是,则根据分析结果自动创建测试最佳批量大小的临时关系数据库表,临时关系库表有多张表,其中,测试单个维度的成员属性数据导出的最佳批量大小的临时关系数据库表的结构与维度表的结构相同;测试业务数据导出的最佳批量大小的临时关系数据库表的结构与事实数据表的结构相同;
19.根据分析结果自动创建目标关系数据库的事实数据表;
20.判断多维数据立方体的所有维度是否分析完毕;
21.若否,则分析多维数据立方体的单个维度的成员属性结构;
22.根据成员属性结构的分析结果,自动创建目标关系数据库的单个维度的维度表。
23.可选的,基于连接关系,执行预设的数据导出操作,将多维数据立方体的各个维度成员的属性数据和业务数据分别导出至维度表和事实数据表,包括:
24.根据多维数据立方体的单元格值的数量或者单个维度的成员个数,和预先配置的数据量阈值参数做对比,判断待导出的多维立方体总业务数据量或者单个维度的属性数据量是否超过预设阈值;
25.若是,则针对部分数据执行不同批量大小的多批次数据导出操作,将部分数据导入预先创建的临时关系数据库表,比较不同批量大小的导出时间,以得到最佳的批量大小,并将最佳的批量大小作为数据导出操作的第一批量大小;
26.若否,则根据预先配置的默认批量值设置第二批量大小;即第一批量大小是大数据量时的最佳导出性能的批量大小,而第二批量大小是小数据量导出时默认配置的批量大小;
27.基于连接关系,根据第一批量大小或第二批量大小执行数据导出操作,将维度成员的属性数据和多维数据立方体的业务数据分别导出至维度表和事实数据表。
28.可选的,方法还包括:删除预先创建的临时关系数据库表。
29.可选的,比较不同批量大小的导出时间,以得到最佳的批量大小,包括:
30.确定初始批量大小和最大批量值;
31.判断当前测试的第一测试批量值是否小于等于最大批量值;
32.若是,则根据预设的测试数据量和第一测试批量值计算本次测试的批次数,并执行导出,得到导出结果;
33.根据导出结果,确定在第一测试批量值下导出预设的测试数据量所耗费的总时间;
34.按照初始批量大小递增,得到第二测试批量值,并判断第二测试批量值是否小于等于最大批量值,直至测试完所有有效批量值;
35.记录各有效批量值对应的导出时间,并进行比较以得出最短导出时间;
36.根据最短导出时间,确定第一批量大小的值。
37.可选的,方法还包括:
38.判断维度成员的属性数据或多维数据立方体的业务数据是否全部导出;
39.若否,则根据第一批量大小或第二批量大小继续执行数据导出操作,直至业务数据和成员属性数据全部导出。
40.第二方面,本技术实施例提供了一种数据导出装置,包括:
41.配置模块,用于配置与多维数据库的数据导出操作相关的参数,参数包括目标关系数据库的类型;
42.连接模块,用于根据目标关系数据库的类型确定与类型匹配的专有客户端开发库,并通过专有客户端开发库建立多维数据库和目标关系数据库的连接关系;
43.创建模块,用于根据多维数据库的多维数据立方体的维度结构创建目标关系数据库的事实数据表,以及根据构成多维数据立方体的维度的成员属性结构创建目标关系数据库的维度表;
44.导出模块,用于基于连接关系,执行预设的数据导出操作,将多维数据立方体的各个维度成员的属性数据导出至目标关系库中的维度表;基于连接关系,执行预设的数据导出操作,将多维数据立方体的业务数据导出至目标关系库中的事实数据表。
45.可选的,与多维数据库的数据导出操作相关的参数,包括:多维数据库的多维数据立方体的名称,目标关系数据库的ip地址,目标关系数据库的监听端口,目标关系数据库的用户名,目标关系数据库的密码,多维数据库的数据量阈值参数和数据导出操作的默认批量值,数据量阈值参数适用于单个维度成员属性的数据量和多维立方体的业务数据量。
46.可选的,创建模块,用于:
47.自动分析多维数据库的多维数据立方体的维度结构,以得到分析结果;
48.基于预设的数据量阈值参数,判断多维数据立方体的数据量是否为大数据量,或者单个维度的成员属性数据量是否是大数据量;
49.若是,则根据分析结果自动创建测试最佳批量大小的临时关系数据库表,临时关系库表有多张表,其中,测试单个维度的成员属性数据导出的最佳批量大小的临时关系数据库表的结构与维度表的结构相同;测试业务数据导出的最佳批量大小的临时关系数据库表的结构与事实数据表的结构相同;
50.根据分析结果自动创建目标关系数据库的事实数据表;
51.判断多维数据立方体的所有维度是否分析完毕;
52.若否,则分析多维数据立方体的单个维度的成员属性结构;
53.根据成员属性结构的分析结果,自动创建目标关系数据库的单个维度的维度表。
54.可选的,导出模块,用于:
55.根据多维数据立方体的单元格值的数量或者单个维度的成员个数,和预先配置的
数据量阈值参数做对比,判断待导出的多维立方体总业务数据量或者单个维度的属性数据量是否超过预设阈值;
56.若是,则针对部分数据执行不同批量大小的多批次数据导出操作,将部分数据导入预先创建的临时关系数据库表,比较不同批量大小的导出时间,以得到最佳的批量大小,并将最佳的批量大小作为数据导出操作的第一批量大小;
57.若否,则根据预先配置的默认批量值设置第二批量大小;即第一批量大小是大数据量时的最佳导出性能的批量大小,而第二批量大小是小数据量导出时默认配置的批量大小;
58.基于连接关系,根据第一批量大小或第二批量大小执行数据导出操作,将维度成员的属性数据和多维数据立方体的业务数据分别导出至维度表和事实数据表。
59.可选的,装置还包括:删除模块,用于删除预先创建的临时关系数据库表。
60.可选的,导出模块,还用于:
61.确定初始批量大小和最大批量值;
62.判断当前测试的第一测试批量值是否小于等于最大批量值;
63.若是,则根据预设的测试数据量和第一测试批量值计算本次测试的批次数,并执行导出,得到导出结果;
64.根据导出结果,确定在第一测试批量值下导出预设的测试数据量所耗费的总时间;
65.按照初始批量大小递增,得到第二测试批量值,并判断第二测试批量值是否小于等于最大批量值,直至测试完所有有效批量值;
66.记录各有效批量值对应的导出时间,并进行比较以得出最短导出时间;
67.根据最短导出时间,确定第一批量大小的值。
68.可选的,导出模块,还用于:
69.判断维度成员的属性数据或多维数据立方体的业务数据是否全部导出;
70.若否,则根据第一批量大小或第二批量大小继续执行数据导出操作,直至业务数据和成员属性数据全部导出。
71.第三方面,本技术实施例提供了一种数据导出设备,数据导出设备包括:处理器以及存储有计算机程序指令的存储器;
72.处理器执行计算机程序指令时实现如第一方面所示的数据导出方法。
73.第四方面,本技术实施例提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现如第一方面所示的数据导出方法。
74.本技术实施例的数据导出方法、装置、设备及计算机可读存储介质,一方面,可以根据目标关系数据库的类型确定与类型匹配的专有客户端开发库,并通过专有客户端开发库建立多维数据库和目标关系数据库的连接关系,然后基于该连接关系执行预设的数据导出操作,将多维数据立方体的各个维度成员的属性数据导出至目标关系库中的维度表,并将多维数据立方体的业务数据导出至目标关系库中的事实数据表。这样,相对于相关技术中通过odbc驱动访问方式导出数据的方法而言,可以提高多维数据库的数据导出效率。
75.另一方面,本技术实施例,可以根据多维数据库的多维数据立方体的维度结构自
动创建目标关系数据库的事实数据表,以及根据构成多维数据立方体的维度的成员属性结构自动创建目标关系数据库的维度表,不再需要通过关系数据库管理员分析源多维数据立方体结构、及成员属性结构,以及不再需要通过人工创建关系数据库表,从而可以避免数据导出过程中人工操作出错。
附图说明
76.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
77.图1是本技术一个实施例提供的数据导出方法的流程示意图;
78.图2是本技术一个实施例提供的与多维数据库的数据导出操作相关的参数配置界面的示意图;
79.图3是本技术一个实施例提供的多维数据库建立和目标关系数据库的连接的流程示意图;
80.图4是本技术一个实施例提供的创建事实数据表和维度表的流程示意图;
81.图5是本技术一个实施例提供的一种示例性的多维数据库源cube的维度结构的示意图;
82.图6是本技术一个实施例提供的一种示例性的创建事实数据表的示意图;
83.图7是本技术一个实施例提供的一种示例性的多维数据库的model维度的成员属性结构的示意图;
84.图8是本技术一个实施例提供的一种创建目标关系数据库的model维度表的流程示意图;
85.图9是本技术一个实施例提供的一种将多维数据立方体的业务数据和成员属性数据导出至事实数据表和维度表的流程示意图;
86.图10是本技术一个实施例提供的一种得到最佳的批量大小的流程示意图;
87.图11是本技术一个实施例提供的数据导出装置的结构示意图;
88.图12是本技术一个实施例提供的数据导出设备的结构示意图。
具体实施方式
89.下面将详细描述本技术的各个方面的特征和示例性实施例,为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本技术进行进一步详细描述。应理解,此处所描述的具体实施例仅意在解释本技术,而不是限定本技术。对于本领域技术人员来说,本技术可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本技术的示例来提供对本技术更好的理解。
90.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要
素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
91.为了解决采用相关数据导出方式时,容易出现人工操作出错风险,以及数据处理性能不高,本技术实施例提供了一种数据导出方法、装置、设备及计算机可读存储介质。下面首先对本技术实施例所提供的数据导出方法进行介绍。
92.图1示出了本技术一个实施例提供的数据导出方法的流程示意图。如图1所示,该数据导出方法包括如下步骤s001~s005:
93.s001、配置与多维数据库的数据导出操作相关的参数,参数包括目标关系数据库的类型。
94.在一种实施方式中,与多维数据库的数据导出操作相关的参数,包括:多维数据库的多维数据立方体的名称,目标关系数据库的ip地址,目标关系数据库的监听端口,目标关系数据库的用户名,目标关系数据库的密码,多维数据库的数据量阈值参数和数据导出操作的默认批量值,数据量阈值参数适用于单个维度成员属性的数据量和多维立方体的业务数据量。
95.例如,如图2所示,为本技术实施例提供的与多维数据库的数据导出操作相关的参数配置界面的示意图。该参数配置界面的参数用于指示将多维数据库的多维数据立方体cube数据导出到对应的关系数据库,其中,该参数配置界面的参数可以分成3个配置项组,从上至下分别是多维数据库数据源,目标关系数据库和批量配置。
96.其中,多维数据库数据源的配置项组中可以包括多维数据库的多维数据立方体cube的名称,本技术实施例中,cube名称例如可以配置为sales。
97.目标关系数据库的配置项组中可以包括目标关系数据库的类型(图2中数据库类型)、目标关系数据库的ip地址(图2中数据库地址),目标关系数据库的监听端口(图2中数据库端口),目标关系数据库的用户名(图2中用户名),目标关系数据库的密码(图2中密码)。如图2所示,在一个申请实施例中,目标关系数据库的类型可以被配置为oracle、目标关系数据库的ip地址可以被配置为192.168.12.233;目标关系数据库的监听端口例如可以被配置为1521,目标关系数据库的用户名可以被配置为exp-user等。
98.批量配置的配置项组中可以包括多维数据立方体数据量大小或者单个维度的成员属性数据量大小的阈值参数(图2中数据量阈值),和数据导出操作的默认批量值等参数信息。
99.其中,阈值参数可以用于判断数据导出操作过程中源cube的数据量或者是单个维度的成员属性数据量的大小,单位是cube单元格值的个数,或者单个维度成员的个数。
100.默认批量值,是指小数据量导出时的默认批量大小;其中,批量是指分批导出时一个批量的大小,批量的单位是单元格值的个数。例如,将一个cube的数据分成多个批次导出,每一批次的数据均一次性导出,此时,批量即每一批次导出的单元格值的个数。
101.在一个实施例中,如图2所示,数据量阈值比如可以配置为1000000,默认批量大小比如可以配置为1000。
102.需要说明的是,上述例举的各配置项组的参数信息仅是本技术实施例的一种示例性说明,并不对本技术实施例造成任何限定。
103.s002、根据目标关系数据库的类型确定与类型匹配的专有客户端开发库,并通过专有客户端开发库建立多维数据库和目标关系数据库的连接关系。
104.专有客户端开发库,也可称为关系数据库特定客户端开发库,通常每种类型的关系数据库都可以发布自己专有的客户端开发库用于开发应用,例如,oracle数据库发布了专有客户端开发库,clickhouse数据库也发布了专有的客户端开发库。该客户端开发库与通用的odbc驱动有所不同,该专有的客户端开发库可以使用与该客户端开发库类型匹配的关系数据库特有的原生访问接口api,相对于通用的odbc驱动而言,能够提供更高的性能。
105.实际应用中,如图3所示,在建立连接关系时,可以加载数据导出操作的配置信息,然后根据导出的参数配置信息确定目标关系数据库的类型,并根据目标关系数据库的类型加载与该类型匹配的专有客户端开发库,最后通过专有客户端开发库建立多维数据库和目标关系数据库的连接关系。
106.其中,本技术实施例在加载专有客户端开发库时,可以基于预设的目标关系数据库的特定客户端选择机制,根据目标关系数据库的类型从存储各专有客户端开发库的存储空间中加载出与类型匹配的专有客户端开发库。可选的,该存储空间用于存储各种类型的关系数据库的特定的专有api专有客户端开发库。例如,如图3所示,该存储空间中可以包括oracle、clickhouse和greenplum等关系数据库对应的专有客户端开发库。
107.s003、根据多维数据库的多维数据立方体的维度结构创建目标关系数据库的事实数据表,以及根据构成多维数据立方体的维度的成员属性结构创建目标关系数据库的维度表。
108.本技术实施例中,采用s003提供的方式,一方面,可以免除关系数据库管理员分析源cube结构、及维度成员属性结构的过程,以及免除人工创建关系数据库表的过程,从而可以提升数据导出操作的集成度,简化了数据导出操作的流程,以及降低人工操作导致的错误概率。另一方面,在创建过程可以同时创建事实表和维度表,从而保证导出操作的源数据的完整性,提升导出数据在关系数据库中的分析价值。
109.如图4所示,本技术实施例中可以通过如下步骤s401~s407创建事实数据表和维度表:
110.s401、自动分析多维数据库的多维数据立方体的维度结构,以得到分析结果。
111.如图5所示,为本技术实施例提供的一种示例性的多维数据库源cube的维度结构的示意图。如图5所示,以多维数据库cube为carsales(汽车销售)为例,该多维数据库cube包括4个维度,分别是model(型号)、month(月份)、region(地区)和account(会计科目)。需要说明的是,图5所示的多维数据库源cube的维度结构仅是本技术实施例的一种示例性说明,并不对本技术实施例造成任何限定。
112.s402、基于预设的数据量阈值参数,判断多维数据立方体的数据量是否为大数据量,或者单个维度的成员属性数据量是否是大数据量。
113.本技术实施例中,若多维数据立方体的数据量大于等于预设的数据量阈值参数,则认为多维数据立方体的数据量为大数据量;反之,则认为多维数据立方体的数据量为小数据量。
114.s403、若是,则根据分析结果自动创建测试最佳批量大小的临时关系数据库表,临时关系库表有多张表,其中,测试单个维度的成员属性数据导出的最佳批量大小的临时关
系数据库表的结构与维度表的结构相同;测试业务数据导出的最佳批量大小的临时关系数据库表的结构与事实数据表的结构相同。
115.s404、根据分析结果自动创建目标关系数据库的事实数据表。
116.事实数据表,可以用于记录从源cube导出的所有明细业务数据。
117.本技术实施例中,可以通过将cube模型中的各个维度映射到目标关系数据库的二维表结构上,然后在cube模型的维度的基础上,增加度量值字段来存储实际业务数据,从而实现事实数据表的创建。
118.例如,如图6所示,可以通过将示例的cube模型中的各个维度映射到关系数据库的二维表结构上,然后在cube模型的4个维度(model、month、region和account)的基础上,增加度量值字段来存储实际业务数据,从而实现事实数据表的创建。
119.沿用上例,假设cube模型的维度包括model、month、region和account四个维度,多维数据库cube为carsales(汽车销售),目标关系数据库的事实数据表为tbl_car_sale为例,则在实际应用中,可以通过以下步骤参照cube的维度模型,增加维度字段:
120.(1)向目标关系数据库的事实数据表tbl_car_sale中添加多维数据库cube carsales的model维度对应的字段model_id。
121.(2)向目标关系数据库的事实数据表tbl_car_sale中添加多维数据库cube carsales的month维度对应的字段month_id。
122.(3)向目标关系数据库的事实数据表tbl_car_sale中添加多维数据库cube carsales的region维度对应的字段region_id。
123.(4)向目标关系数据库的事实数据表tbl_car_sale中添加多维数据库cube carsales的account维度对应的字段account_id。
124.(5)向目标关系数据库的事实数据表tbl_car_sale中添加度量值字段value。至该步骤为止,即可实现目标关系数据库中的事实数据表的自动创建。
125.需要说明的是,上述步骤(1)~(4)添加的4个字段model_id、month_id、region_id、account_id都是外键,分别关联星型数据模型中的4个维度表的主键字段。
126.s405、判断多维数据立方体的所有维度是否分析完毕。
127.本技术实施例中,若分析完毕,则结束流程;反之,若未分析完毕,则继续执行s406。
128.s406、若否,则分析多维数据立方体的单个维度的成员属性结构。
129.图4的流程结束后,示例多维数据库多维立方体carsales会在关系数据库中创建4个维度表:tbl_model_dim,tbl_month_dim,tbl_region_dim,tbl_account_dim。分别对应多维立方体carsales的4个维度:model,month,region,account。
130.如图7所示,为本技术实施例提供的一种示例性的多维数据库的model维度的成员属性结构的示意图。如图7所示,示例的多维数据库的model维度包括3个属性,分别是modelname(型号名称)、enginesize(发动机排量)、type(车型)。
131.s407、根据成员属性结构的分析结果,自动创建目标关系数据库的单个维度的维度表。
132.维度表,用于记录组成源cube的model维度的所有属性值。
133.本技术实施例中,可以通过将model维度的属性模型中的各个维度属性映射到关
系数据库的二维表结构上,从而实现维度表的创建。
134.如图8所示,为本技术实施例提供的一种创建目标关系数据库的model维度表的流程示意图,该图是以构成示例多维数据库cube的多个维度中的model维度为例进行说明。cube的其他维度的建模方法同model维度,这里不再描述。其中,目标关系数据库中model的维度表tbl_model_dim由4个字段构成。
135.具体地,如图8所示,以维度表为tbl_model_dim为例,则可以向目标关系数据库的维度表tbl_model_dim添加多维数据库的model维度成员列表对应的字段model_id,即101,102,......,107所在列。其中,该字段model_id是目标关系数据库星型数据模型的维度表tbl_model_dim的主键,对应星型数据模型的事实表tbl_car_sales中的同名字段model_id,该字段是事实表tbl_car_sales的外键。
136.同样,可以向目标关系数据库的维度表tbl_model_dim添加多维数据库的model维度的modelname属性对应的字段month_name;向目标关系数据库的维度表tbl_model_dim添加多维数据库的model维度的enginesize属性对应的字段engine_size;向目标关系数据库的维度表tbl_model_dim添加多维数据库的model维度的type属性对应的字段car_type。
137.s004、基于连接关系,执行预设的数据导出操作,将多维数据立方体的各个维度成员的属性数据导出至目标关系库中的维度表。
138.s005、基于连接关系,执行预设的数据导出操作,将多维数据立方体的业务数据导出至目标关系库中的事实数据表。
139.如图9所示,本技术实施例中,可以根据如下步骤将多维数据立方体的业务数据和成员属性数据分别导出至事实数据表和维度表。
140.s901、根据多维数据立方体的单元格值的数量或者单个维度的成员个数,和预先配置的数据量阈值参数做对比,判断待导出的多维立方体总业务数据量或者单个维度的属性数据量是否超过预设阈值。
141.s902、若是,则针对部分数据执行不同批量大小的多批次数据导出操作,将部分数据导入预先创建的临时关系数据库表,比较不同批量大小的导出时间,以得到最佳的批量大小,并将最佳的批量大小作为数据导出操作的第一批量大小。
142.需要说明的是,随着关系数据库的类型/种类不同,多维数据库服务器、关系数据库服务器、网络配置的不同,最佳批量大小也会不同。
143.s903、若否,则根据预先配置的默认批量值设置第二批量大小;即第一批量大小是大数据量时的最佳导出性能的批量大小,而第二批量大小是小数据量导出时默认配置的批量大小。
144.本技术实施例中,考虑到确定最佳批量大小的测试过程的时间开销可能超出小数据量导出本身的开销的问题,因此,若待导出数据的总数据量未超过预设数据量阈值参数,则认为该数据量为小数据量,则将第二批量大小设置为预先配置的默认批量大小值。
145.如图10所示,s902中比较不同批量大小的导出时间,以得到最佳的批量大小,具体包括如下实施步骤:
146.s1001、确定初始批量大小和最大批量值;
147.s1002、判断当前测试的第一测试批量值是否小于等于最大批量值;
148.s1003、若是,则根据预设的测试数据量和第一测试批量值计算本次测试的批次
数,并执行导出,得到导出结果;
149.s1004、根据导出结果,确定在第一测试批量值下导出预设的测试数据量所耗费的总时间;
150.s1005、按照初始批量大小递增,得到第二测试批量值,并判断第二测试批量值是否小于等于最大批量值,直至测试完所有有效批量值;
151.s1006、记录各有效批量值对应的导出时间,并进行比较以得出最短导出时间;
152.s1007、根据最短导出时间,确定第一批量大小的值。
153.例如,假设以初始批量大小为500条、最大批量值为2000,测试数据量为60000条数据为例,其中,初始批量大小为500条也即每批次导出500条,分120个批次全部导出。
154.然后,根据最大批量值2000,判断当前测试的批量值是否达到了最大批量值,其中测试的批量值有效范围是【500条/批,2000条/批】。如果当前测试的批量值未达到最大批量值,则认为该测试的批量是有效的批量值,并根据测试数据量和批量值计算本次测试的批次数,并执行导出。之后,记录本次测试批量值下导出60000条数据的总时间。
155.后续,按500条步幅递增,得到下一个测试的批量值,并执行上述判断步骤,确定下一个测试的批量值是否达到了最大批量值。该过程中,测试的批量值有效值是【500条/批,1000条/批,1500条/批,2000条/批】,共进行4次测试。
156.在测试完所有有效批量值后,则对记录的4次测试的导出时间进行比较,根据最短导出时间,得到对应的最佳批量值,作为第一批量大小的值。
157.采用本技术实施例提供的确定最佳批量值的方法,可以保证在大数据量或者小数据量的条件下,都能智能化地确定出最佳批量大小,多批次导出数据,从而保证数据导出能达到该目标数据库类型在该硬件配置条件下的最佳的性能。
158.s904、基于连接关系,根据第一批量大小或第二批量大小执行数据导出操作,将维度成员的属性数据和多维数据立方体的业务数据分别导出至维度表和事实数据表。
159.可选的,本技术实施例中,执行完s904之后,还可以删除/清理预先创建的临时关系数据库表。
160.在一种实施例中,还可以判断维度成员的属性数据或多维数据立方体的业务数据是否全部导出;若否,则根据第一批量大小或第二批量大小继续执行数据导出操作,直至业务数据和成员属性数据全部导出。
161.采用本技术实施例的数据导出方法,一方面,可以根据目标关系数据库的类型确定与类型匹配的专有客户端开发库,并通过专有客户端开发库建立多维数据库和目标关系数据库的连接关系,然后基于该连接关系执行预设的数据导出操作,将多维数据立方体的各个维度成员的属性数据导出至目标关系库中的维度表,并将多维数据立方体的业务数据导出至目标关系库中的事实数据表。这样,相对于相关技术中通过odbc驱动访问方式导出数据的方法而言,可以提高多维数据库的数据导出效率。
162.具体地,本技术提出的目标关系数据库特定专有客户端开发库选择机制,放弃了通用的odbc驱动访问方式,使用了各个关系数据库类型特定的专有api专有客户端开发库。在相同测试环境下,以oracle数据库为例,经过实际对别测试,验证得出使用数据库类型特定的专有api专有客户端开发库时的数据导出性能比odbc连接方式快50倍。
163.另一方面,本技术实施例,可以根据多维数据库的多维数据立方体的维度结构自
动创建目标关系数据库的事实数据表,以及根据构成多维数据立方体的维度的成员属性结构自动创建目标关系数据库的维度表,不再需要通过关系数据库管理员分析源多维数据立方体结构、及成员属性结构,以及不再需要通过人工创建关系数据库表,从而可以避免数据导出过程中人工操作出错。
164.此外,本技术提出的多批次、批量数据导出方法,可以扩展成多线程并发模式,进一步提高数据导出的性能。
165.图11示出了本技术实施例提供的数据导出装置的结构示意图。如图11所示,该数据导出装置包括:
166.配置模块1101,用于配置与多维数据库的数据导出操作相关的参数,参数包括目标关系数据库的类型;
167.连接模块1102,用于根据目标关系数据库的类型确定与类型匹配的专有客户端开发库,并通过专有客户端开发库建立多维数据库和目标关系数据库的连接关系;
168.创建模块1103,用于根据多维数据库的多维数据立方体的维度结构创建目标关系数据库的事实数据表,以及根据构成多维数据立方体的维度的成员属性结构创建目标关系数据库的维度表;
169.导出模块1104,用于基于连接关系,执行预设的数据导出操作,将多维数据立方体的各个维度成员的属性数据导出至目标关系库中的维度表;基于连接关系,执行预设的数据导出操作,将多维数据立方体的业务数据导出至目标关系库中的事实数据表。
170.可选的,与多维数据库的数据导出操作相关的参数,包括:多维数据库的多维数据立方体的名称,目标关系数据库的ip地址,目标关系数据库的监听端口,目标关系数据库的用户名,目标关系数据库的密码,多维数据库的数据量阈值参数和数据导出操作的默认批量值,数据量阈值参数适用于单个维度成员属性的数据量和多维立方体的业务数据量。
171.可选的,创建模块1103,用于:
172.自动分析多维数据库的多维数据立方体的维度结构,以得到分析结果;
173.基于预设的数据量阈值参数,判断多维数据立方体的数据量是否为大数据量,或者单个维度的成员属性数据量是否是大数据量;
174.若是,则根据分析结果自动创建测试最佳批量大小的临时关系数据库表,临时关系库表有多张表,其中,测试单个维度的成员属性数据导出的最佳批量大小的临时关系数据库表的结构与维度表的结构相同;测试业务数据导出的最佳批量大小的临时关系数据库表的结构与事实数据表的结构相同;
175.根据分析结果自动创建目标关系数据库的事实数据表;
176.判断多维数据立方体的所有维度是否分析完毕;
177.若否,则分析多维数据立方体的单个维度的成员属性结构;
178.根据成员属性结构的分析结果,自动创建目标关系数据库的单个维度的维度表。
179.可选的,导出模块1104,用于:
180.根据多维数据立方体的单元格值的数量或者单个维度的成员个数,和预先配置的数据量阈值参数做对比,判断待导出的多维立方体总业务数据量或者单个维度的属性数据量是否超过预设阈值;
181.若是,则针对部分数据执行不同批量大小的多批次数据导出操作,将部分数据导
入预先创建的临时关系数据库表,比较不同批量大小的导出时间,以得到最佳的批量大小,并将最佳的批量大小作为数据导出操作的第一批量大小;
182.若否,则根据预先配置的默认批量值设置第二批量大小;即第一批量大小是大数据量时的最佳导出性能的批量大小,而第二批量大小是小数据量导出时默认配置的批量大小;
183.基于连接关系,根据第一批量大小或第二批量大小执行数据导出操作,将维度成员的属性数据和多维数据立方体的业务数据分别导出至维度表和事实数据表。
184.可选的,装置还包括:删除模块,用于删除预先创建的临时关系数据库表。
185.可选的,导出模块1104,还用于:
186.确定初始批量大小和最大批量值;
187.判断当前测试的第一测试批量值是否小于等于最大批量值;
188.若是,则根据预设的测试数据量和第一测试批量值计算本次测试的批次数,并执行导出,得到导出结果;
189.根据导出结果,确定在第一测试批量值下导出预设的测试数据量所耗费的总时间;
190.按照初始批量大小递增,得到第二测试批量值,并判断第二测试批量值是否小于等于最大批量值,直至测试完所有有效批量值;
191.记录各有效批量值对应的导出时间,并进行比较以得出最短导出时间;
192.根据最短导出时间,确定第一批量大小的值。
193.可选的,导出模块1104,还用于:
194.判断维度成员的属性数据或多维数据立方体的业务数据是否全部导出;
195.若否,则根据第一批量大小或第二批量大小继续执行数据导出操作,直至业务数据和成员属性数据全部导出。
196.图11所示装置中的各个模块/单元具有实现图1中各个步骤的功能,并能达到其相应的技术效果,为简洁描述,在此不再赘述。
197.图12示出了本技术实施例提供的数据导出设备的结构示意图。
198.数据导出设备可以包括处理器1201以及存储有计算机程序指令的存储器1202。
199.具体地,上述处理器1201可以包括中央处理器(cpu),或者特定集成电路(application specific integrated circuit,asic),或者可以被配置成实施本技术实施例的一个或多个集成电路。
200.存储器1202可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器1202可包括硬盘驱动器(hard disk drive,hdd)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(universal serial bus,usb)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器1202可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器1202可在数据导出设备的内部或外部。在特定实施例中,存储器1202可以是非易失性固态存储器。
201.在一个实施例中,存储器1202可以是只读存储器(read only memory,rom)。在一个实施例中,该rom可以是掩模编程的rom、可编程rom(prom)、可擦除prom(eprom)、电可擦除prom(eeprom)、电可改写rom(earom)或闪存或者两个或更多个以上这些的组合。
202.处理器1201通过读取并执行存储器1202中存储的计算机程序指令,以实现上述实施例中的任意一种数据导出方法。
203.在一个示例中,数据导出设备还可包括通信接口1203和总线1210。其中,如图12所示,处理器1201、存储器1202、通信接口1203通过总线1210连接并完成相互间的通信。
204.通信接口1203,主要用于实现本技术实施例中各模块、装置、单元和/或设备之间的通信。
205.总线1210包括硬件、软件或两者,将数据导出设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(agp)或其他图形总线、增强工业标准架构(eisa)总线、前端总线(fsb)、超传输(ht)互连、工业标准架构(isa)总线、无限带宽互连、低引脚数(lpc)总线、存储器总线、微信道架构(mca)总线、外围组件互连(pci)总线、pci-express(pci-x)总线、串行高级技术附件(sata)总线、视频电子标准协会局部(vlb)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线1210可包括一个或多个总线。尽管本技术实施例描述和示出了特定的总线,但本技术考虑任何合适的总线或互连。
206.另外,结合上述实施例中的数据导出方法,本技术实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种数据导出方法。
207.需要明确的是,本技术并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本技术的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本技术的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
208.以上所述的结构框图中所示的功能模块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(asic)、适当的固件、插件、功能卡等等。当以软件方式实现时,本技术的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、rom、闪存、可擦除rom(erom)、软盘、cd-rom、光盘、硬盘、光纤介质、射频(rf)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
209.还需要说明的是,本技术中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本技术不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
210.上面参考根据本技术的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本技术的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专
用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。
211.以上所述,仅为本技术的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献