System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请属于数据处理,具体地讲,涉及一种基于内存的数据处理方法及装置。
技术介绍
1、clickhouse为一个用于olap(online analytical processing,联机分析处理)的列式数据库管理系统,随着数据量的大幅增长,其作为计算密集型和存储密集型并重的数据分析引擎,并以其轻量和易使用的特性而被越来越广泛地应用在大数据领域中。
2、在使用clickhouse数据库管理系统进行数据处理时,一方面,replacingmergetree引擎提供了自动去重的功能,然而,replacingmergetree的数据去重过程是在合并操作时完成的,数据去重存在延迟,不能保证实时更新,因此在合并操作之前,数据表中会出现重复的数据,查询会返回重复数据,导致查询结果不准确;另一方面,在大数据量下,由于需要对重复数据进行去重,合并操作的计算开销较高,用户体验较差。
技术实现思路
1、为解决上述技术问题中的至少一个,本申请提供一种基于内存的数据处理方法及装置,能够实现高时效数据实时去重,同时降低合并操作的计算开销,减少了磁盘i/o压力。
2、根据本申请的第一个方面,提供了一种基于内存的数据处理方法,该方法包括:
3、按照预设周期,实时检测系统内存的使用情况,确定内存使用率;
4、响应于确定所述内存使用率小于第一预设使用率阈值,在内存缓冲区执行内存加速操作,其中,所述内存加速操作包括:
5、存储第一新增数据,并对所述第一新增数据进
6、响应于确定所述预处理数据块存在预设去重字段,基于所述预设去重字段,对所述预处理数据块进行数据去重,生成合并数据块,并将所述合并数据块加载至所述clickhouse磁盘中;
7、响应于确定所述内存使用率小于第二预设使用率阈值,增加所述内存缓冲区的存储空间,其中,所述第一预设使用率阈值大于所述第二预设使用率阈值;
8、响应于确定所述内存使用率大于等于所述第二预设使用率阈值,减小所述内存缓冲区的存储空间。
9、在本实施例的一些可选方式中,所述预处理数据块包括第一预处理数据块和第二预处理数据块,所述响应于确定所述预处理数据块存在预设去重字段,基于所述预设去重字段,对所述预处理数据块进行数据去重,生成合并数据块,包括:
10、响应于所述第一预处理数据块和所述第二预处理数据块均存在所述预设去重字段,基于所述预设去重字段,对所述第一预处理数据块和所述第二预处理数据块进行数据去重,生成合并数据块;
11、将所述第一预处理数据块和所述第二预处理数据块标记为无效数据块,并从所述内存缓冲区中删除所述无效数据块。
12、在本实施例的一些可选方式中,所述将所述合并数据块加载至所述clickhouse磁盘中,包括:
13、将所述合并数据块采用批量异步的方式同步至所述clickhouse磁盘中进行存储,直至确定所述clickhouse磁盘中的合并数据块与所述内存缓冲区的合并数据块一致。
14、在本实施例的一些可选方式中,所述确定所述clickhouse磁盘中的合并数据块与所述内存缓冲区的合并数据块一致的步骤,包括:
15、确定所述内存缓冲区的合并数据块的第一行数和第一字段数总量;
16、确定所述clickhouse磁盘中的合并数据块的第二行数和第二字段数总量;
17、响应于确定所述第一行数与所述第二行数相同且所述第一字段数总量和所述第二字段数总量相同,确定所述clickhouse磁盘中的合并数据块与所述内存缓冲区的合并数据块一致。
18、在本实施例的一些可选方式中,该方法还包括:
19、响应于所述内存使用率大于等于所述第一预设使用率阈值,暂停所述内存加速操作;
20、确定执行所述内存加速操作后的当前待处理数据,并将所述当前待处理数据加载至所述clickhouse磁盘中。
21、在本实施例的一些可选方式中,该方法还包括:
22、响应于所述内存使用率大于等于所述第一预设使用率阈值,存储第二新增数据至所述clickhouse磁盘中;
23、在所述clickhouse磁盘中,对所述第二新增数据和所述当前待处理数据进行数据合并。
24、在本实施例的一些可选方式中,该方法还包括:
25、响应于确定所述内存使用率小于第二预设使用率阈值,增加所述内存缓冲区的存储空间,其中,所述第一预设使用率阈值大于所述第二预设使用率阈值;
26、响应于确定所述内存使用率大于等于所述第二预设使用率阈值,减小所述内存缓冲区的存储空间。
27、在本实施例的一些可选方式中,所述方法还包括:
28、按照所述预设周期,实时检测系统cpu的使用情况,确定cpu使用率;
29、其中,所述响应于确定所述内存使用率小于第一预设使用率阈值,在内存缓冲区执行内存加速操作,包括:
30、响应于确定所述cpu使用率大于等于第三预设使用率阈值且确定所述内存使用率小于第一预设使用率阈值,在内存缓冲区执行所述内存加速操作。
31、根据本申请的第二个方面,还提供了一种基于内存的数据处理装置,包括:
32、内存检测模块,被配置为按照预设周期,实时检测系统内存的使用情况,确定内存使用率;
33、内存加速模块,被配置为响应于确定所述内存使用率小于第一预设使用率阈值,在内存缓冲区执行内存加速操作,其中,所述内存加速操作包括:
34、存储第一新增数据,并对所述第一新增数据进行预处理,生成多个预处理数据块,其中,所述预处理包括预排序和预聚合;
35、响应于确定所述预处理数据块存在预设去重字段,基于所述预设去重字段,对所述预处理数据块进行数据去重,生成合并数据块,并将所述合并数据块加载至所述clickhouse磁盘中;
36、响应于确定所述内存使用率小于第二预设使用率阈值,增加所述内存缓冲区的存储空间,其中,所述第一预设使用率阈值大于所述第二预设使用率阈值;
37、响应于确定所述内存使用率大于等于所述第二预设使用率阈值,减小所述内存缓冲区的存储空间。
38、在本实施例的一些可选方式中,所述预处理数据块包括第一预处理数据块和第二预处理数据块,内存加速模块进一步被配置为:
39、响应于所述第一预处理数据块和所述第二预处理数据块均存在所述预设去重字段,基于所述预设去重字段,对所述第一预处理数据块和所述第二预处理数据块进行数据去重,生成合并数据块;
40、将所述第一预处理数据块和所述第二预处理数据块标记为无效数据块,并从所述内存缓冲区中删除所述无效数据块。
41、在本实施例的一些可选方式中,内存加速模块进一步被配置为:
42、将所述合并数据块本文档来自技高网...
【技术保护点】
1.一种基于内存的数据处理方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述预处理数据块包括第一预处理数据块和第二预处理数据块,所述响应于确定所述预处理数据块存在预设去重字段,基于所述预设去重字段,对所述预处理数据块进行数据去重,生成合并数据块,包括:
3.根据权利要求1所述的方法,其特征在于,所述将所述合并数据块加载至ClickHouse磁盘中,包括:
4.根据权利要求3所述的方法,其特征在于,所述确定所述ClickHouse磁盘中的合并数据块与所述内存缓冲区的合并数据块一致的步骤,包括:
5.根据权利要求1所述的方法,其特征在于,还包括:
6.根据权利要求5所述的方法,其特征在于,还包括:
7.根据权利要求1所述的方法,其特征在于,还包括:
8.一种基于内存的数据处理装置,其特征在于,包括:
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7任一项所述的一种基于内存的数据处
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7任一项所述一种基于内存的数据处理方法的步骤。
...【技术特征摘要】
1.一种基于内存的数据处理方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述预处理数据块包括第一预处理数据块和第二预处理数据块,所述响应于确定所述预处理数据块存在预设去重字段,基于所述预设去重字段,对所述预处理数据块进行数据去重,生成合并数据块,包括:
3.根据权利要求1所述的方法,其特征在于,所述将所述合并数据块加载至clickhouse磁盘中,包括:
4.根据权利要求3所述的方法,其特征在于,所述确定所述clickhouse磁盘中的合并数据块与所述内存缓冲区的合并数据块一致的步骤,包括:
5.根据权利要求1所...
【专利技术属性】
技术研发人员:王泽洋,黄镜澄,邵飞飞,李芳,
申请(专利权)人:中国工商银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。