基于ClickHouse实现OLAP分析的方法、装置制造方法及图纸

技术编号:26924011 阅读:6 留言:0更新日期:2021-01-01 22:48
本发明专利技术提供一种基于ClickHouse实现OLAP分析的方法、装置,所述方法包括:通过ClickHouse的kafka引擎表实时接收kafak数据;对kafak数据进行数据分区;对分区进行TTL管理;进行数据分片;主键索引;生成动态代码。本发明专利技术通过ClickHouse的kafka引擎表实时接收kafak数据,以数据库的方式进行大数据处理,更加简单易用,且维护简单、查询速度快,通过对数据分区TTL管理,解决了数据存储资源的浪具,通过数据分片,增加集群的大规模并行计算能力,快速返回查询结果,并且可以横向线性拓展,构建大规模分布式集群,从而具备处理海量数据的能力。

【技术实现步骤摘要】
基于ClickHouse实现OLAP分析的方法、装置
本专利技术涉及数据管理
,具体涉及一种基于ClickHouse(开源列式数据库)实现OLAP(OnlineAnalyticalProcessing,联机分析处理)分析的方法、一种计算机设备和一种非临时性计算机可读存储介质。
技术介绍
在大数据分析领域中,传统的大数据分析需要不同框架和技术组合才能达到最终的效果,在人力成本,技术能力和硬件成本上以及维护成本让大数据分析变得成为昂贵的事情,让很多中小型企业非常苦恼,不得不被迫租赁第三方大型公司的数据分析服务。不同于事务处理的场景,比如电商场景中加购物车、下单、支付等需要在原地进行大量insert(添加)、update(更新)、delete(删除)操作,数据分析(OLAP)场景通常是将数据批量导入后,进行任意维度的灵活探索、BI工具洞察、报表制作等。数据一次性写入后,分析师需要尝试从各个角度对数据做挖掘、分析,直到发现其中的商业价值、业务变化趋势等信息。这是一个需要反复试错、不断调整、持续优化的过程,其中数据的读取次数远多于写入次数。相关技术中,一般采用hadoop(分布式系统基础架构)体系进行数据分析,然而该架构存在以下缺点:(1)无法高效的对大量小文件进行存储,存储大量小文件的话,它会占用NameNode(名字节点)大量的内存来存储文件目录和块信息。这样是不可取的,因为NameNode的内存总是有限的;小文件存储的寻址时间会超过读取时间,它违反了HDFS的设计目标。(2)hadoop是一种离线系统,一般很难支持即席查询。
技术实现思路
本专利技术为解决上述技术问题,提供了一种基于ClickHouse实现OLAP分析的方法,通过ClickHouse的kafka引擎表实时接收kafak数据,以数据库的方式进行大数据处理,更加简单易用,且维护简单、查询速度快,通过对数据分区TTL管理,解决了数据存储资源的浪具,通过数据分片,增加集群的大规模并行计算能力,快速返回查询结果,并且可以横向线性拓展,构建大规模分布式集群,从而具备处理海量数据的能力。本专利技术还提出一种基于ClickHouse实现OLAP分析的装置。本专利技术还提出一种计算机设备。本专利技术还提出一种非临时性计算机可读存储介质。本专利技术采用的技术方案如下:本专利技术第一方面实施例提出了一种基于ClickHouse实现OLAP分析的方法,包括以下步骤:通过ClickHouse的kafka(开源流处理平台)引擎表实时接收kafak数据;对所述kafak数据进行数据分区;对分区进行TTL(TimeToLive,生存时间值)管理;进行数据分片;主键索引;生成动态代码。根据本专利技术的一个实施例,通过ClickHouse的kafka引擎表实时接收kafak数据,包括:创建所述ClickHouse的kafak引擎表连接kafka中无界的流数据;创建实体表;创建分布式表指定所述实体表;创建视图把指定kafka引擎表并写入所述分布式表。根据本专利技术的一个实施例,所述数据分区,包括:将数据按月进行分区、将数据按照周几进行分区、对Enum(枚举)类型的列直接每种取值作为一个分区。根据本专利技术的一个实施例,所述TTL管理,包括:列级别TTL、行级别TTL、分区级别TTL。根据本专利技术的一个实施例,所述数据分片,包括:random随机分片、constant固定分片、columnvalue列值分片、自定义表达式分片。根据本专利技术的一个实施例,所述生成动态代码,包括:所述ClickHouse动态地根据当前SQL(StructuredQueryLanguage,结构化查询语言)直接生成代码。本专利技术第二方面实施例提出了一种基于ClickHouse实现OLAP分析的装置,包括:数据接收模块,所述数据接收模块通过ClickHouse的kafka引擎表实时接收kafak数据;分区模块,所述分区模块用于对所述kafak数据进行数据分区;管理模块,所述管理模块用于对分区进行TTL管理;分片模块,所述分片模块用于进行数据分片;索引模块,所述索引模块用于进行主键索引;生成模块,所述生成模块用于生成动态代码。根据本专利技术的一个实施例,所述数据接收模块具体用于:创建所述ClickHouse的kafak引擎表连接kafka中无界的流数据;创建实体表;创建分布式表指定所述实体表;创建视图把指定kafka引擎表并写入所述分布式表。根据本专利技术的一个实施例,所述分区模块具体用于:将数据按月进行分区、将数据按照周几进行分区、对Enum类型的列直接每种取值作为一个分区。根据本专利技术的一个实施例,所述TTL管理,包括:列级别TTL、行级别TTL、分区级别TTL。根据本专利技术的一个实施例,所述数据分片,包括:随机分片、固定分片、列值分片、自定义表达式分片。根据本专利技术的一个实施例,所述成模块具体用于:动态地根据当前SQL直接生成代码。本专利技术的第三方面实施例提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现根本专利技术第一方面实施例所述的基于ClickHouse实现OLAP分析的方法。本专利技术第四方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本专利技术第一方面实施例所述的基于ClickHouse实现OLAP分析的方法。本专利技术的有益效果:本专利技术通过ClickHouse的kafka(引擎表实时接收kafak数据,创建其他类型数据的引擎表,以数据库的方式来做大数据处理更加简单易用,维护简单、查询速度快,且包含了存储和计算能力,无需额外依赖其他存储组件,完全自主实现了高可用,而且支持完整的SQL语法,学习成本低且灵活度高,为极速的分析性能奠定了基础。通过对数据分区TTL管理,解决了数据存储资源的浪具,通过数据分片,增加集群的大规模并行计算能力,快速返回查询结果,并且可以横向线性拓展,构建大规模分布式集群,从而具备处理海量数据的能力。附图说明图1是根据本专利技术一个实施例的基于ClickHouse实现OLAP分析的方法的流程图;图2是ClickHouse查询流程与相关技术中OLAP查询流程的对比图;图3是根据本专利技术一个实施例的基于ClickHouse实现OLAP分析的装置的方框示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图1是根据本专利技术一个实施例的基于ClickHouse实现OLAP分析的方法的流程图,如图1所示,该方法包括以下步骤:S1,通过ClickHouse的kafka引擎表实时接收kafak数据本文档来自技高网
...

【技术保护点】
1.一种基于ClickHouse实现OLAP分析的方法,其特征在于,包括以下步骤:/n通过ClickHouse的kafka引擎表实时接收kafak数据;/n对所述kafak数据进行数据分区;/n对分区进行TTL管理;/n进行数据分片;/n主键索引;/n生成动态代码。/n

【技术特征摘要】
1.一种基于ClickHouse实现OLAP分析的方法,其特征在于,包括以下步骤:
通过ClickHouse的kafka引擎表实时接收kafak数据;
对所述kafak数据进行数据分区;
对分区进行TTL管理;
进行数据分片;
主键索引;
生成动态代码。


2.根据权利要求1所述的基于ClickHouse实现OLAP分析的方法,其特征在于,通过ClickHouse的kafka引擎表实时接收kafak数据,包括:
创建所述ClickHouse的kafak引擎表连接kafka中无界的流数据;
创建实体表;
创建分布式表指定所述实体表;
创建视图把指定kafka引擎表并写入所述分布式表。


3.根据权利要求1所述的基于ClickHouse实现OLAP分析的方法,其特征在于,所述数据分区,包括:
将数据按月进行分区、将数据按照周几进行分区、对Enum类型的列直接每种取值作为一个分区。


4.根据权利要求1所述的基于ClickHouse实现OLAP分析的方法,其特征在于,所述TTL管理,包括:列级别TTL、行级别TTL、分区级别TTL。


5.根据权利要求1所述的基于ClickHouse实现OLAP分析的方法,其特征在于,所述数据分片,包括:
随机分片、固定分片、列值分片、自定义表达式分片。


6.根据权利要求1所述的基于ClickHouse实现O...

【专利技术属性】
技术研发人员:高响韩锦李强高明明
申请(专利权)人:常州微亿智造科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1