本公开涉及计算机,尤其涉及一种数据存取方法、装置、设备及计算机可读存储介质。
背景技术:
1、联机分析处理(on-line analytical processing,olap)是一种数据库处理方式,用于支持复杂的分析和决策支持系统。olap系统主要用于从大规模数据集中提取、分析和报告数据,以获取商业洞察和支持战略决策。
2、postgres数据库在olap场景下存在很多问题,比如每次扫描数据时需要扫描多行,每行又有多个属性值,这使得每次扫描数据需要连带处理很多无用的数据,并且需要付出昂贵的行列转换代价。
3、因此,亟需一种针对postgres数据库在olap场景下的数据存取解决方案,以实现数据的高效批量读取。
技术实现思路
1、为了解决上述技术问题,本公开提供了一种数据存取方法、装置、设备及计算机可读存储介质,以实现数据的高效存取。
2、第一方面,本公开实施例提供一种数据存取方法,所述方法应用于基于kpu架构的dpu芯片中,所述方法包括:
3、将执行器内部的数据结构由行存结构改造为列存结构;
4、基于所述列存结构进行批量数据存取。
5、在一些实施例中,所述基于所述列存结构进行批量数据存取,包括:
6、基于所述列存结构进行批量数据写入;
7、基于所述列存结构进行批量数据读取。
8、在一些实施例中,所述基于所述列存结构进行批量数据写入,包括:
9、获取待写入数据,所述待写入数据包括多条元组,每条元组中包括多个元素,单条元组中的每个元素分别对应不同的列;
10、将所述待写入数据中对应于同一列的元素存储至相邻的存储空间中。
11、在一些实施例中,所述基于所述列存结构进行批量数据读取,包括:
12、从所述相邻的存储空间中读取对应于同一列的元素,得到列式表达形式的目标数据。
13、在一些实施例中,所述方法还包括:
14、根据目标数据执行数据计算任务,得到列式表达形式的数据计算结果;
15、根据所述数据计算任务对应的任务需求,对所述数据计算结果进行表达形式转换。
16、第二方面,本公开实施例提供一种数据存取装置,包括:
17、改造模块,用于将执行器内部的数据结构由行存结构改造为列存结构;
18、存取模块,用于基于所述列存结构进行批量数据存取。
19、在一些实施例中,所述存取模块包括:
20、写入单元,用于基于所述列存结构进行批量数据写入;
21、读取单元,用于基于所述列存结构进行批量数据读取。
22、在一些实施例中,所述装置还包括:
23、计算模块,用于根据目标数据执行数据计算任务,得到列式表达形式的数据计算结果;
24、转换模块,用于根据所述数据计算任务对应的任务需求,对所述数据计算结果进行表达形式转换。
25、第三方面,本公开实施例提供一种电子设备,包括:
26、存储器;
27、处理器;以及
28、计算机程序;
29、其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如第一方面所述的方法。
30、第四方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现第一方面所述的方法。
31、第五方面,本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序或指令,该计算机程序或指令被处理器执行时实现如上所述的数据存取方法。
32、本公开实施例提供的数据存取方法、装置、设备及计算机可读存储介质,通过从源头上改造执行器内部处理的数据结构,彻底将执行器内部流行的语言改为批量计算友好的列式表达形式,使得从存储层读取的数据就是计算友好的数据格式,消除昂贵的行列转换代价,提高数据存取的效率。
1.一种数据存取方法,其特征在于,所述方法应用于基于kpu架构的dpu芯片中,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述基于所述列存结构进行批量数据存取,包括:
3.根据权利要求2所述的方法,其特征在于,所述基于所述列存结构进行批量数据写入,包括:
4.根据权利要求3所述的方法,其特征在于,所述基于所述列存结构进行批量数据读取,包括:
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
6.一种数据存取装置,其特征在于,所述装置包括:
7.根据权利要求6所述的装置,其特征在于,所述存取模块包括:
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-5中任一项所述的方法。