计算;推算;计数设备的制造及其应用技术一种基于swift协议实现数据湖与ceph rgw互联的方法技术领域1.本发明涉及云存储技术领域,具体涉及一种基于swift协议实现数据湖与ceph rgw互联的方法。背景技术:2.当前的数据同步因需要从数据湖中获取结构更新数据,导致服务器需要调用配置文件或数据更新表,从数据湖中获取所述结构更新数据,并将其同步至客户端,这种方式容易导致数据同步操作效率低下;而且通常情况下,当在ceph rgw中存储了大量数据想要使用delta lake对这些数据进行分析并挖掘出有用的信息时,传统的做法是先将ceph rgw集群中的数据导出到中间服务器,再将这些数据导入到delta lake中才能实现数据的入湖及后续的mapreduce作业,如果数据量非常大,那么将会增加导入数据过程的时长,并且需要额外使用更多的存储空间,不仅耽误工作效率,而且提高了硬件成本,使用方法不佳。3.为了解决现有技术存在的不足,人们进行了长期的探索,提出了各式各样的解决方案。例如,中国专利文献公开了一种基于云存储的数据同步方法、装置、设备及存储介质[cn202210369249.4],它包括将数据湖中出现更新的数据设为更新数据,识别更新数据的更新类型;根据更新类型对更新数据进行数据分析处理得到分析数据,整合分析数据和更新类型得到结构更新数据;对结构更新数据进行数据预处理得到待更新数据,将待更新数据保存至缓存库中;向同步客户端发送更新公告,接收同步客户端发送的更新请求,根据更新请求对同步客户端进行认证处理得到认证权限信息;将缓存库中相应于认证权限信息的待更新数据作为目标更新数据。[0004]上述方案在一定程度上解决了现有技术中数据同步操作方式效率低下的问题,但是该方案依然存在着诸多不足,例如:对ceph rgw端存储的大量数据进行分析挖掘时,不仅数据导入时间长,耽误工作效率,而且需要额外使用更多的存储空间,增加了硬件成本,使用方法不佳。技术实现要素:[0005]本发明的目的是针对上述问题,提供一种基于swift协议实现数据湖与ceph rgw互联的方法。[0006]为达到上述目的,本发明采用了下列技术方案:一种基于swift协议实现数据湖与ceph rgw互联的方法,本方法包括以下步骤:[0007]s1、创建hadoop-ceph rgw文件系统模块;[0008]s2、构建传输接口并进行适配;[0009]s3、创建类继承并实现fi lesystem抽象类;[0010]s4、利用适配的接口连接ceph rgw和delta lake;[0011]s5、通过fi lesystem抽象类对存储在ceph rgw存储仓库中的数据进行访问和系统化操作。[0012]本方法通过主动构建hadoop-ceph rgw文件系统模块接收来自delta lake的请求命令,并构建适配ceph rgw的传输接口,使ceph rgw和delta lake建立数据连接,使用时,利用预先创建的fi lesystem抽象类对存储在在ceph rgw存储仓库中的数据进行访问和系统化操作,去除了数据在第三方平台上的转存步骤,提高了工作效率,而且不需要使用额外的存储空间,节约了硬件成本。[0013]在上述的一种基于swift协议实现数据湖与ceph rgw互联的方法中,在步骤s1中,hadoop-ceph rgw文件系统模块接收来自delta lake的请求命令。[0014]在上述的一种基于swift协议实现数据湖与ceph rgw互联的方法中,hadoop-ceph rgw文件系统模块中设置有cephobj ectsystem子类模块,将cephobj ectsystem子类模块作为接收delta lake请求命令的总入口和适配层。cephobj ectsystem子类模块是实现本方法的中转模块,一边用于接收请求命令,另一边向ceph rgw存储仓库寻找请求文件并向delta lake进行数据响应。[0015]在上述的一种基于swift协议实现数据湖与ceph rgw互联的方法中,在步骤s2中,传输接口为restful风格的对象存储接口,其通过swift协议的java客户端api进行接口适配,且swift协议父接口为上述fi lesystem抽象类,其文件输入流为fsdatainputstream类,且文件输出流为fsdataoutputstream类。[0016]ceph rgw的对象存储接口兼容s3和openstack swift两种类型,本方法采用openstack swift协议对hadoop存储层与ceph rgw进行整合,使delta lake能够直接访问ceph rgw存储仓库,提高访问效率。[0017]在上述的一种基于swift协议实现数据湖与ceph rgw互联的方法中,在步骤s3中,fi lesystem抽象类为hadoop存储层中的一个通用文件系统的抽象基类,抽象出的项目内容包括对数据系统中的数据、文件及目录的交互操作,且交互操作项目具体包括创建、拷贝、移动、重命名、删除文件和目录、读写文件、读写文件元数据以及其它能够对数据文件及数据内容可执行的系统化通用操作步骤。[0018]在上述的一种基于swift协议实现数据湖与ceph rgw互联的方法中,在步骤s5中,对存储在ceph rgw存储仓库中的数据进行访问和系统化操作之前通过运行mapreduce作业分析存储在ceph rgw中的数据。预先进行的mapreduce作业分析可以对请求的数据任务进行分析和调度,提高命令响应速度。[0019]在上述的一种基于swift协议实现数据湖与ceph rgw互联的方法中,对存储在ceph rgw存储仓库中的数据进行访问和系统化操作的步骤为:[0020]s51、delta lake向hadoop-ceph rgw文件系统模块发出请求命令;[0021]s52、hadoop-ceph rgw文件系统模块进行命令处理,根据请求的不同匹配对应的子模块功能;[0022]s53、使用hadoop-ceph rgw文件系统内部继承fi lesystem的抽象类cephobj ectsystem对传入的delta lake请求进行数据的响应,按照swift协议标准向ceph rgw存储仓库发出请求命令,并对返回的数据进行裁切、合并、缓存等系统化操作;[0023]s54、hadoop-ceph rgw文件系统模块根据与ceph rgw存储仓库之间的swift协议标准,将系统化操作完成后的数据的发送至ceph rgw存储仓库。[0024]操作流程去除ceph rgw存储仓库与delta lake之间的中转落地仓库,避免了数据和命令请求的二次传输,提高了工作效率。[0025]在上述的一种基于swift协议实现数据湖与ceph rgw互联的方法中,当hadoop-ceph rgw文件系统模块接收到delta lake的请求命令时根据命令的不同寻找对应的数据处理功能模块。[0026]在上述的一种基于swift协议实现数据湖与ceph rgw互联的方法中,ceph rgw storage ceph的对象存储仓库用于保存真实数据的本体以及为swift协议的请求命令提供对象数据。[0027]在上述的一种基于swift协议实现数据湖与ceph rgw互联的方法中,在hadoop存储层中,输入流类均需要继承并实现fsinputstream抽象类,用于实现read方法和seek方法;输出流类需要是outputstream抽象类的子类,用于write方法和flush方法。[0028]与现有的技术相比,本发明的优点在于:通过swift协议将将delta lake和ceph rgw进行整合,并在hadoop中建立具有cephobj ectsystem子类模块的hadoop-ceph rgw文件系统模块,利用cephobj ectsystem子类模块接收来自delta lake的请求命令并通过适配的传输接口获取ceph rgw存储仓库的数据发送回delta lake,实现了delta lake与ceph rgw的直接连接访问,提高了工作效率,节约了硬件成本。附图说明[0029]图1是本发明的方法流程图;[0030]图2是本发明的数据获取的层次流程图[0031]图3是传统方式中的中转落地仓库数据获取层次流程图;[0032]图4是本发明中对于ceph rgw存储仓库进行访问时的身份验证流程图;[0033]图5是本发明中delta lake对ceph rgw存储仓库中的数据直接写出、写入的速度测试图;[0034]图6是本发明中delta lake对中转落地仓库中的数据进行写出、写入的速度测试图;[0035]图7是本发明中的delta lake对于ceph rgw存储仓库与中转落地仓库写入写出的速度对比图;具体实施方式[0036]下面结合附图和具体实施方式对本发明做进一步详细的说明。[0037]如图1所示,一种基于swift协议实现数据湖与ceph rgw互联的方法,本方法包括以下步骤:[0038]s1、创建hadoop-ceph rgw文件系统模块;[0039]s2、构建传输接口并进行适配;[0040]s3、创建类继承并实现fi lesystem抽象类;[0041]s4、利用适配的接口连接ceph rgw和delta lake;[0042]s5、通过fi lesystem抽象类对存储在ceph rgw存储仓库中的数据进行访问和系统化操作。[0043]其中,在步骤s1中,hadoop-ceph rgw文件系统模块接收来自delta lake的请求命令。[0044]本方法通过在hadoop存储层创建hadoop-ceph rgw文件系统模块接收delta lake的请求命令,并构建传输接口使delta lake与ceph rgw存储仓库直接进行数据连接,并利用fi lesystem抽象类实现对ceph rgw存储仓库中存储的数据进行直接操作。[0045]进一步地,hadoop-ceph rgw文件系统模块中设置有cephobj ectsystem子类模块,将cephobj ectsystem子类模块作为接收delta lake请求命令的总入口和适配层。[0046]在步骤s2中,传输接口为restful类型的对象存储接口,其通过swift协议的java客户端api进行接口适配,且swift协议父接口为上述fi lesystem抽象类,其文件输入流为fsdatainputstream类,且文件输出流为fsdataoutputstream类。[0047]swift的java客户端的api名叫java-cloudfi les,其中的fi lescl ient类提供了对swift协议中对象存储的各种操作,包括:登录swift、创建和删除account、容器、对象,获得account、容器、对象的元数据以及读写对象的方法。[0048]将继承了hadoop-fi lesystem抽象类的swiftfilesystem作为一个适配器,进行接口适配,即将一个类的接口转换成用户程序需要使用的另一个接口。[0049]在步骤s3中,fi lesystem抽象类为hadoop存储层中的一个通用文件系统的抽象基类,抽象出的项目内容包括对数据系统中的数据、文件及目录的交互操作,且交互操作项目具体包括创建、拷贝、移动、重命名、删除文件和目录、读写文件、读写文件元数据以及其它能够对数据文件及数据内容可执行的系统化通用操作步骤。[0050]在步骤s5中,对存储在ceph rgw存储仓库中的数据进行访问和系统化操作之前通过运行mapreduce作业分析存储在ceph rgw中的数据。[0051]用户可以在hadoop存储层的配置文件core-s ite.xml中为fs.default.name属性指定amazon s3存储系统的uri,就可以使hadoop存储层得以访问amazon s3,并在其上运行mapreduce作业。[0052]如图2所示,对存储在ceph rgw存储仓库中的数据进行访问和系统化操作的步骤为:[0053]s51、delta lake向hadoop-ceph rgw文件系统模块发出请求命令;[0054]s52、hadoop-ceph rgw文件系统进行命令处理,根据请求的不同匹配对应的子模块功能;[0055]s53、使用hadoop-ceph rgw文件系统模块内部继承fi lesystem的抽象类cephobj ectsystem对传入的delta lake请求进行数据的响应,按照swift协议标准向ceph rgw存储仓库发出请求命令,并对返回的数据进行裁切、合并、缓存等系统化操作;[0056]s54、hadoop-ceph rgw文件系统模块根据与ceph rgw存储仓库之间的swift协议标准,将系统化操作完成后的数据的发送至ceph rgw存储仓库。[0057]在对ceph rgw存储仓库进行转存访问时,文件中转存储很大程度上取决于平台的优异,并且在某些情况下,平台的不同可能产生路径匹配上的错误,其操作流程图如图3所示;[0058]在对ceph rgw存储仓库进行访问时,需要进行身份验证和密钥验证,其验证流程如图4所示;[0059]delta lake对于ceph rgw存储仓库中的数据进行直接写入,仅作为相同环境下的测试比较,非实际生产性能,写出的速度测试的测试如图5所示;[0060]delta lake对于中转落地仓库(以windows 11本地文件系统为例)中的数据进行写入、写出的速度测试如图6所示。[0061]根据图7所示,delta lake对于ceph rgw存储仓库中的数据进行直接写出的速度以及相同时间单位内所读取的数据量大于delta lake对于中转落地仓库中数据写出速度,由此可见,当ceph rgw集群中的数据导出到中转落地仓库,再将这些数据导入到delta lake进行数据的入湖及后续的mapreduce作业的时长明显大于delta lake对于ceph rgw存储仓库中的数据进行直接读写所需要的时长。[0062]详细地,当hadoop-ceph rgw文件系统模块接收到delta lake的请求命令时根据命令的不同寻找对应的数据处理功能模块。[0063]对象存储仓库与delta lake之间的数据类型是一对多的关系,所以将其中delta lake不支持的数据类型统一作为文件的形式进行传输,例如text、parquet文件。[0064]具体地,ceph rgw storage ceph的对象存储仓库用于保存真实数据的本体以及为swift协议的请求命令提供对象数据。[0065]在hadoop存储层中,输入流类均需要继承并实现fsinputstream抽象类,用于实现read方法和seek方法;输出流类需要是outputstream抽象类的子类,用于wr ite方法和flush方法。[0066]综上所述,本实施例的原理在于:delta lake主要采用hadoop存储层中的存储服务为其提供落地到其他对象存储平台的能力,因此,本方法采用为hadoop存储层增加对ceph rgw的支持来给delta lak与ceph rgw的直接相连实现数据系统化操作的,即在hadoop存储层中创建具有cephobj ectsystem子类模块的hadoop-ceph rgw文件系统模块,利用cephobj ectsystem子类模块接收来自delta lake的请求命令并通过适配的传输接口获取ceph rgw存储仓库的数据发送回delta lake,实现了delta lake与ceph rgw的直接连接访问。[0067]本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!
内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!
一种基于swift协议实现数据湖与CephRGW互联的方法与流程 专利技术说明
作者:admin
2023-07-05 12:08:32
656
关键词:
计算;推算;计数设备的制造及其应用技术
专利技术