CN109753507A - 基于NoSQL类数据库的OLAP实现系统构建方法、实现系统及实现方法 - Google Patents

基于NoSQL类数据库的OLAP实现系统构建方法、实现系统及实现方法 Download PDF

Info

Publication number
CN109753507A
CN109753507A CN201811640903.0A CN201811640903A CN109753507A CN 109753507 A CN109753507 A CN 109753507A CN 201811640903 A CN201811640903 A CN 201811640903A CN 109753507 A CN109753507 A CN 109753507A
Authority
CN
China
Prior art keywords
nosql
data
cube
olap
cube module
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.)
Pending
Application number
CN201811640903.0A
Other languages
English (en)
Inventor
李栋
刘文政
李扬
韩卿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Kui Chi Information Technology Co Ltd
Original Assignee
Shanghai Kui Chi Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Kui Chi Information Technology Co Ltd filed Critical Shanghai Kui Chi Information Technology Co Ltd
Priority to CN201811640903.0A priority Critical patent/CN109753507A/zh
Publication of CN109753507A publication Critical patent/CN109753507A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种基于NoSQL类数据库的OLAP实现系统构建方法、实现系统及实现方法,实现方法包括应Cube模块数据分析需求,按照设置要求将NoSQL数据源按照关系型数据库的方式呈现出来以供Cube模块提取;基于定义的Cube模块实现基于NoSQL类数据库的OLAP。与现有技术相比,本发明方案进行数据分析时,分析的数据一致性更高,架构更合理,系统更稳定。

Description

基于NoSQL类数据库的OLAP实现系统构建方法、实现系统及实 现方法
技术领域
本发明涉及大数据分析领域,特别涉及一种基于NoSQL类数据库的OLAP实现系统构建方法、实现系统及实现方法。
背景技术
随着互联网和移动技术的发展,NoSQL技术的应用愈加广泛。很多超大规模和高并发的社交网站、智能终端App无时无刻不在产生大量数据,而这些数据就保存在后台的NoSQL类数据库当中,如MongoDB、HBase等。
OLAP(联机分析处理)作为一种软件技术,它能使分析人员迅速、一致、交互式地从数据中获取信息。当NoSQL中的数据规模和数据复杂度增长到很高的规模(例如上百TB或PB规模),如何对NoSQL中的海量数据进行高效OLAP分析便成为一个问题。
针对NoSQL中的大数据进行OLAP分析有几大难点:首先,NoSQL类数据库库一般不支持SQL接口,尤其是复杂的分析型SQL,而数据分析师最习惯使用的BI工具一般都是通过SQL接口与数据源交互,这会导致数据分析师无法简单、高效地使用BI工具分析NoSQL中的大数据;其次,NoSQL一般会用作于数据收集或OLTP系统,这会给NoSQL带来大量写操作,而OLAP分析一般是读操作居多,这会导致NoSQL中存在大量的读写资源竞争,而且运维人员无法针对特定的读或写任务进行有效的系统优化。
一些现有技术希望解决这些问题。例如,通过ETL定时把NoSQL中的数据抽取到分析型数据仓库中,然后基于分析型数据仓库进行OLAP分析。这一方案的好处是实现了读、写操作的分离,避免资源竞争,也易于运维人员进行系统优化,同时分析型数据仓库往往支持SQL,和BI工具也有很好的对接体验。但这样的方案也存在诸多弊端:首先,数据需要通过拷贝的方式从NoSQL导入到分析型数据仓库中,这一方面带来较大的开发、维护代价,以及数据不一致的风险,另一方面需要占用额外一倍的数据存储空间,造成不必要的资源浪费。其次,分析型数据仓库在数据量达到更大规模(如上百TB或PB规模)时可能会有性能瓶颈,这时还需要进一步通过其他技术(如索引、预计算等)进行查询加速,造成整体解决方案的高度复杂。因此,这样的方案在超大规模数据上无法很好的满足实际需求。
发明内容
本发明提供了一种基于NoSQL类数据库的OLAP实现系统构建方法、实现系统及实现方法,具有进行数据分析时,分析的数据一致性更高的特点。
根据本发明提供的一种基于NoSQL类数据库的OLAP实现系统构建方法,定义Cube模块,定义Cube模块分析所用到数据的提取方式;所述提取方式为,将NoSQL数据源按照关系型数据库的方式呈现出来以供Cube模块提取;
基于定义的Cube模块实现基于NoSQL类数据库的OLAP;
所述NoSQL类数据库包括但不限于NoSQL、Mongo DB、HBase、Azure Cosmos DB、Couchbase和LevelDB。
将NoSQL数据源按照关系型数据库的方式呈现出来的具体方法包括,
创建外表,以访问NoSQL数据源中的数据;在需要呈现时,同步外表呈现出来的表结构。
基于定义的Cube模块实现基于NoSQL类数据库的OLAP的具体方法包括,
根据Cube定义进行数据提取,包括,将呈现为关系型数据库的NoSQL中多张表进行连接,并根据设置选择需要的维度和指标列,把数据从NoSQL中提取出来,保存为数据文件;
以所述数据文件为基础,逐层进行指标聚合,以生成不同维度组合的聚合结果;
将所述聚合结果转换为列式存储格式,便于查询时快速读取相关结果。
所述方法还包括,以所述数据文件为基础,获取每一个维度列的不重复值的集合,基于每个维度列的不重复值的集合,为每个列构建编码器,用于存储时的压缩。
根据本发明提供的一种基于NoSQL类数据库的OLAP实现系统,基于上述构建方法实现,包括,
Cube模块,基于定义的Cube模块实现基于NoSQL类数据库的OLAP;
关系型数据库呈现模块,应Cube模块数据分析需求,按照设置要求将NoSQL数据源按照关系型数据库的方式呈现出来以供Cube模块提取。
所述Cube模块包括,
数据提取引擎,应Cube模块数据分析需求,连接呈现的关系型数据库,并根据设置选择需要的维度和指标列,把数据从NoSQL中提取出来,保存为数据文件;
聚合结果生成单元,以所述数据文件为基础,逐层进行指标聚合,以生成不同维度组合的聚合结果;
列式存储格式转换单元,将所述聚合结果转换为列式存储格式,便于查询时快速读取相关结果。
所述Cube模块还包括编码器构建单元,以所述数据文件为基础,获取每一个维度列的不重复值的集合,基于每个维度列的不重复值的集合,为每个列构建编码器,用于存储时的压缩。
根据本发明提供的一种基于NoSQL类数据库的OLAP实现方法,基于上述实现系统实现,具体方法包括,
应Cube模块数据分析需求,按照设置要求将NoSQL数据源按照关系型数据库的方式呈现出来以供Cube模块提取;
Cube模块连接呈现的关系型数据库,实现基于NoSQL类数据库的OLAP。
根据本发明提供的一种基于Hadoop平台的OLAP实现方法,包括,
在Hive中创建外表,以访问NoSQL中的数据;
在Apache Kylin中同步表结构,把通过Hive外表暴露出的表结构同步到ApacheKylin中;
在Apache Kylin中创建数据模型和Cube模型,定义需要进行预计算的范围在Apache Kylin中创建数据模型和Cube模型,定义需要进行预计算的范围;
触发Cube的构建,利用Hadoop平台的分布式计算资源产生Cube与计算结果,并保存在HDFS上;
利用Apache Kylin的SQL查询接口,暴露SQL查询能力,帮助分析师用户直接进行数据分析。
根据本发明提供的一种计算机可读存储介质,存储有能够被处理器加载并执行上述任一种方法的计算机程序。
与现有技术相比,本发明方案进行数据分析时,分析的数据一致性更高,架构更合理,系统更稳定。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本说明书(包括摘要)中公开的任一特征,除非特别叙述,均可被其他等效或者具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
根据本发明提供的一种基于NoSQL类数据库的OLAP实现系统构建方法,定义Cube模块,定义Cube模块分析所用到数据的提取方式;所述提取方式为,将NoSQL数据源按照关系型数据库(RDBMS)的方式呈现出来以供Cube模块提取;
基于定义的Cube模块实现基于NoSQL类数据库的OLAP;
所述NoSQL类数据库包括但不限于NoSQL、Mongo DB、HBase、Azure Cosmos DB、Couchbase和LevelDB。
Cube是OLAP中的经典概念。Cube定义分析用到的所有维度、指标,其中指标包含聚合运算的聚合算子。在本发明方案中,基于按照关系型数据库呈现出来的表定义和表结构,完成Cube模型的定义。
考虑到表结构易变性较强,因此要使用特别灵活的暴露方式,不可拷贝原始数据。由于Cube模式分析所用到的NoSQL类数据库是从NoSQL数据源中按照关系型数据的方式呈现出来以供Cube模块提取,而非存储成其他数据以供Cube模块提取,因此,克服了现有技术中复制提出存储所带来的数据的不一致性的缺陷,并且不需要占用额外存储空间。
由于Cube模块本身支持SQL查询接口,因此,与BI工具也有很好的对接体验。数据分析师最熟悉的查询方式是SQL,因此暴露SQL查询接口,即可满足常见的数据分析需求。把SQL语句解析成对Cube预计算结果的访问。即当查询SQL到达时,Cube预计算结果可以直接响应查询,从而避免逐行扫描NoSQL中的原始数据,从而快速返回查询结果,实现亚秒级的查询性能
作为本发明的一种实施方式,将NoSQL数据源按照关系型数据库的方式呈现出来的具体方法包括,
创建外表,以访问NoSQL数据源中的数据;在需要呈现时,同步外表呈现出来的表结构。
作为本发明中的一种实施方式,本发明基于开源的Apache Kylin技术,在Hadoop大数据平台上实现了一套NoSQL大数据分析架构,实现了对HBase、MongoDB、AzureCosmosDB等NoSQL类数据库的OLAP分析。在Hive中创建外表,以访问NoSQL中的数据(如HBase、MongoDB、Azure CosmosDB等)。在Apache Kylin中同步表结构,把通过Hive外表暴露出的表结构同步到Apache Kylin中。
作为本发明的一种实施方式,基于定义的Cube模块实现基于NoSQL类数据库的OLAP的具体方法包括,
根据Cube定义进行数据提取,包括,将呈现为关系型数据库的NoSQL中多张表进行连接,并根据设置选择需要的维度和指标列,把数据从NoSQL中提取出来,保存为数据文件;
以所述数据文件为基础,逐层进行指标聚合,以生成不同维度组合的聚合结果;
将所述聚合结果转换为列式存储格式,便于查询时快速读取相关结果。
作为一种实施方案,在Apache Kylin中创建数据模型和Cube模型,定义需要进行预计算的范围。触发Cube的构建,利用Hadoop平台的分布式计算资源产生Cube与计算结果,并保存在HDFS上。利用Apache Kylin的SQL查询接口,暴露SQL查询能力,帮助分析师用户直接进行数据分析。
作为本发明的一种实施方式,所述方法还包括,以所述数据文件为基础,获取每一个维度列的不重复值的集合,基于每个维度列的不重复值的集合,为每个列构建编码器,用于存储时的压缩。
根据本发明提供的一种基于NoSQL类数据库的OLAP实现系统,基于上述构建方法实现,包括,
Cube模块,基于定义的Cube模块实现基于NoSQL类数据库的OLAP;
关系型数据库呈现模块,应Cube模块数据分析需求,按照设置要求将NoSQL数据源按照关系型数据库的方式呈现出来以供Cube模块提取。
Cube模块基于关系型数据库呈现模块暴露出来的表定义和表结构,人为或通过计算机程序定义数据模型(如星形模型、雪花模型等),并在该模型基础上选择需要的列作为维度,基于另一些需要的列的聚合运算定义为指标,以及和运维、优化相关的配置,这样就完成了Cube模型的定义。本方案能够在较低IT成本投入情况下,实现OLTP(写)和OLAP(读)任务分离,提高架构合理性,保证系统稳定性。
作为本发明的一种实施方式,所述Cube模块包括,
数据提取引擎,应Cube模块数据分析需求,连接呈现的关系型数据库,并根据设置选择需要的维度和指标列,把数据从NoSQL中提取出来,保存为数据文件;
聚合结果生成单元,以所述数据文件为基础,逐层进行指标聚合,以生成不同维度组合的聚合结果;
列式存储格式转换单元,将所述聚合结果转换为列式存储格式,便于查询时快速读取相关结果。
所述Cube模块还包括编码器构建单元,以所述数据文件为基础,获取每一个维度列的不重复值的集合,基于每个维度列的不重复值的集合,为每个列构建编码器,用于存储时的压缩。
根据本发明提供的一种基于NoSQL类数据库的OLAP实现方法,基于上述实现系统实现,具体方法包括,
应Cube模块数据分析需求,按照设置要求将NoSQL数据源按照关系型数据库的方式呈现出来以供Cube模块提取;
Cube模块连接呈现的关系型数据库,实现基于NoSQL类数据库的OLAP。
作为一种实施例,假设某NoSQL类数据库以JSON格式保存数据及其结构,在该数据库中存在两张表:Order表和Buyer表。
其中Order表有如下两条记录:
第一条记录:
{"ID":1,"Buyer_ID":1,"Price":1.0,"Discount":0.98}
第二条记录:
{"ID":2,"Buyer_ID":2,"Price":0.5,"Cancelled":"True"}
其中,第一条的Discount字段在第二条记录不存在,第二条的Cancelled字段在第一条记录不存在,但这两个字段都是分析常用的字段。
根据数据分析师的分析需求,需要在系统中对Order表定义出固定的数据结构,如:
Order表:ID,Buyer_ID,Price,Discount,Cancelled
类似的,假设Buyer表定义如下结构:
Buyer表:ID,Name,Country
以上定义就是通过技术手段将NoSQL表按照RDBMS方式暴露表结构和表定义的过程。
数据分析师在进行分析工作时,往往需要对多张表进行关联,并基于这些表中的列定义出维度和度量,举例如下:
定义“销售订单”模型,包含Order表和Buyer表,通过Order表的Buyer_ID和Buyer表的ID列进行关联。
然后定义以下列为维度:Order.ID,Buyer.Name,Buyer.Country,Order.Cancelled
然后基于某些列及其聚合运算为度量:例如销售额=SUM(Order.Price),折扣总额=SUM(Order.Discount)
以上的定义就完成了Cube的定义。
本方案实现了亚秒级高性能的查询响应,以及互联网级高并发,以实现NoSQL大数据的查询加速。能够支持SQL查询接口,实现BI工具的高效对接,大大提高数据分析效率,帮助分析师实现自助式分析。
根据本发明提供的一种计算机可读存储介质,存储有能够被处理器加载并执行上述任一种方法的计算机程序。

Claims (10)

1.一种基于NoSQL类数据库的OLAP实现系统构建方法,包括,
定义Cube模块,定义Cube模块分析所用到数据的提取方式;所述提取方式为,将NoSQL数据源按照关系型数据库的方式呈现出来以供Cube模块提取;
基于定义的Cube模块实现基于NoSQL类数据库的OLAP;
所述NoSQL类数据库包括但不限于NoSQL、Mongo DB、HBase、Azure Cosmos DB、Couchbase和LevelDB。
2.根据权利要求1所述的实现系统构建方法,将NoSQL数据源按照关系型数据库的方式呈现出来的具体方法包括,
创建外表,以访问NoSQL数据源中的数据;在需要呈现时,同步外表呈现出来的表结构。
3.根据权利要求1或2所述的实现系统构建方法,基于定义的Cube模块实现基于NoSQL类数据库的OLAP的具体方法包括,
根据Cube定义进行数据提取,包括,将呈现为关系型数据库的NoSQL中多张表进行连接,并根据设置选择需要的维度和指标列,把数据从NoSQL中提取出来,保存为数据文件;
以所述数据文件为基础,逐层进行指标聚合,以生成不同维度组合的聚合结果;
将所述聚合结果转换为列式存储格式,便于查询时快速读取相关结果。
4.根据权利要求3所述的实现系统构建方法,所述方法还包括,以所述数据文件为基础,获取每一个维度列的不重复值的集合,基于每个维度列的不重复值的集合,为每个列构建编码器,用于存储时的压缩。
5.一种基于NoSQL类数据库的OLAP实现系统,基于上述构建方法实现,其特征在于,包括,
Cube模块,基于定义的Cube模块实现基于NoSQL类数据库的OLAP;
关系型数据库呈现模块,应Cube模块数据分析需求,按照设置要求将NoSQL数据源按照关系型数据库的方式呈现出来以供Cube模块提取。
6.根据权利要求5所述的实现系统,其特征在于,所述Cube模块包括,数据提取引擎,应Cube模块数据分析需求,连接呈现的关系型数据库,并根据设置选择需要的维度和指标列,把数据从NoSQL中提取出来,保存为数据文件;
聚合结果生成单元,以所述数据文件为基础,逐层进行指标聚合,以生成不同维度组合的聚合结果;
列式存储格式转换单元,将所述聚合结果转换为列式存储格式,便于查询时快速读取相关结果。
7.根据权利要求6所述的实现系统,其特征在于,所述Cube模块还包括编码器构建单元,以所述数据文件为基础,获取每一个维度列的不重复值的集合,基于每个维度列的不重复值的集合,为每个列构建编码器,用于存储时的压缩。
8.一种基于NoSQL类数据库的OLAP实现方法,基于权利要求5到7之一所述的实现系统实现,具体方法包括,
应Cube模块数据分析需求,按照设置要求将NoSQL数据源按照关系型数据库的方式呈现出来以供Cube模块提取;
Cube模块连接呈现的关系型数据库,实现基于NoSQL类数据库的OLAP。
9.一种基于Hadoop平台的OLAP实现方法,包括,
在Hive中创建外表,以访问NoSQL中的数据;
在Apache Kylin中同步表结构,把通过Hive外表暴露出的表结构同步到Apache Kylin中;
在Apache Kylin中创建数据模型和Cube模型,定义需要进行预计算的范围在ApacheKylin中创建数据模型和Cube模型,定义需要进行预计算的范围;
触发Cube的构建,利用Hadoop平台的分布式计算资源产生Cube与计算结果,并保存在HDFS上;
利用Apache Kylin的SQL查询接口,暴露SQL查询能力,帮助分析师用户直接进行数据分析。
10.一种计算机可读存储介质,其特征在于,存储有能够被处理器加载并执行权利要求1到4和7到8中任一种方法的计算机程序。
CN201811640903.0A 2018-12-29 2018-12-29 基于NoSQL类数据库的OLAP实现系统构建方法、实现系统及实现方法 Pending CN109753507A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811640903.0A CN109753507A (zh) 2018-12-29 2018-12-29 基于NoSQL类数据库的OLAP实现系统构建方法、实现系统及实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811640903.0A CN109753507A (zh) 2018-12-29 2018-12-29 基于NoSQL类数据库的OLAP实现系统构建方法、实现系统及实现方法

Publications (1)

Publication Number Publication Date
CN109753507A true CN109753507A (zh) 2019-05-14

Family

ID=66404443

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811640903.0A Pending CN109753507A (zh) 2018-12-29 2018-12-29 基于NoSQL类数据库的OLAP实现系统构建方法、实现系统及实现方法

Country Status (1)

Country Link
CN (1) CN109753507A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107169070A (zh) * 2017-05-08 2017-09-15 山大地纬软件股份有限公司 一种基于大数据的社保指标仓库的构建系统及其方法
CN107301206A (zh) * 2017-06-01 2017-10-27 华南理工大学 一种基于预运算的分布式olap分析方法及系统
US20180150531A1 (en) * 2015-06-29 2018-05-31 Planisware SAS Enhanced mechanisms for managing multidimensional data
CN108334554A (zh) * 2017-12-29 2018-07-27 上海跬智信息技术有限公司 一种新型的olap预计算模型及构建方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180150531A1 (en) * 2015-06-29 2018-05-31 Planisware SAS Enhanced mechanisms for managing multidimensional data
CN107169070A (zh) * 2017-05-08 2017-09-15 山大地纬软件股份有限公司 一种基于大数据的社保指标仓库的构建系统及其方法
CN107301206A (zh) * 2017-06-01 2017-10-27 华南理工大学 一种基于预运算的分布式olap分析方法及系统
CN108334554A (zh) * 2017-12-29 2018-07-27 上海跬智信息技术有限公司 一种新型的olap预计算模型及构建方法

Similar Documents

Publication Publication Date Title
US9672272B2 (en) Method, apparatus, and computer-readable medium for efficiently performing operations on distinct data values
Dourish No SQL: The shifting materialities of database technology
CN105808437B (zh) 基于测试用例数据表的自动化测试方法及系统
CN110096434A (zh) 一种接口测试方法及装置
US9886477B2 (en) Generating imperative-language query code from declarative-language query code
US10162860B2 (en) Selectivity estimation for query execution planning in a database
US11321356B2 (en) Linking discrete dimensions to enhance dimensional analysis
CN102822819A (zh) 管理数据查询
US20140122455A1 (en) Systems and Methods for Intelligent Parallel Searching
US20180081921A1 (en) In-memory multi-dimensional dataset with interrogation mechanism for salesforce platform
CN111126019B (zh) 基于模式定制的报表生成方法、装置和电子设备
JP6964706B2 (ja) ユーザ画像の処理方法、ユーザ画像の処理装置、サーバ及び記憶媒体
CN107273519A (zh) 数据分析方法、装置、终端及存储介质
Silva et al. Integrating big data into the computing curricula
US20180357278A1 (en) Processing aggregate queries in a graph database
Gyorödi et al. A comparative study between the capabilities of mysql vs. mongodb as a back-end for an online platform
CN108241620B (zh) 查询脚本的生成方法及装置
US20070282804A1 (en) Apparatus and method for extracting database information from a report
CN108334521B (zh) 一种数据库容量预测方法及装置
WO2023197865A1 (zh) 一种信息存储方法及装置
CN111898351A (zh) 基于Aviator的Excel数据自动导入方法、装置、终端设备及存储介质
WO2023219734A1 (en) Evaluating row-store expressions on a column-store database
CN109753507A (zh) 基于NoSQL类数据库的OLAP实现系统构建方法、实现系统及实现方法
CN116737753A (zh) 业务数据处理方法、装置、计算机设备和存储介质
Zhou A review of Javascript object notation in data analysis

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190514