当前位置: 首页 > 专利查询>复旦大学专利>正文

一种基于星际文件系统的分布式协同查询处理系统技术方案

技术编号:35350038 阅读:36 留言:0更新日期:2022-10-26 12:16
本发明专利技术属于分布式数据处理技术领域,具体为一种基于星际文件系统的分布式协同查询处理系统。本发明专利技术系统包括版本与格式管理器、分布式查询引擎和后端存储IPFS;利用分布式查询引擎的灵活性和IPFS分散文件系统的可伸缩性特点;系统在每个用户端运行一个本地节点,多个节点形成一个对等网络;在本地存储中具有特定数据集的用户是该数据集的提供者,可以接受网络中其他用户对该数据集的查询;系统支持运用结构化查询语言,对数据分布式的读操作和写操作。本发明专利技术把数据集的服务、检索、更新和分发以分布式进行,存储成本低;拥有相同数据集的用户通过协作共享计算资源进行加速处理;内容寻址支持对数据集中用户感兴趣的特定分区进行细粒度访问。行细粒度访问。行细粒度访问。

【技术实现步骤摘要】
一种基于星际文件系统的分布式协同查询处理系统


[0001]本专利技术属于分布式数据处理
,具体涉及一种基于星际文件系统的分布式协同查询处理系统。

技术介绍

[0002]大数据驱动的各种智能化应用已经显示出强大的能力:从个性化搜索和推荐,到精准广告投放、金融风险管控,利用各类算法从大数据中挖掘出的信息可以为决策提供有效和精准的依据。然而,能够利用繁多而复杂的数据挖掘算法的前提是首先要有足够的数据。但是,并非所有使用大数据的组织都在数量和种类上拥有足够多的数据,许多数据分散在各个政府、企业、组织中,未能充分发掘和利用。
[0003]区块链技术因为其去中心化、安全保障和公开透明的特点,近来受到重视和广泛研究和应用。目前区块链技术已经被应用于解决大数据共享问题。例如将区块链技术应用在物联网供应链的信息跟踪和溯源中,实现在多方之间共享物联网设备采集的信息;在医疗诊疗数据的共享中引入区块链技术,在保护隐私的前提下,实现在病患、医院和研究机构之间共享医疗数据。出于区块链的安全性考虑,块的大小不能无限制地增长,这导致基于区块链的系统无法直接存储和处理大量的数据,限制了区块链技术在大数据等领域的应用。
[0004]星际文件系统(InterPlanetary Filesystem,简称IPFS)是一个P2P、去中心化的文件系统,因为其去中心化的特点以及在安全性、隐私和可靠性方面的优点,许多区块链系统应用将其作为数据存储的解决方案。IPFS将数据存储在互相连结的数据对象中,每个数据对象都由自身的密码散列值唯一确定,称为对象的“内容标识符(ContentIdentifier,CID)”。数据对象间的联系形式丰富多样,可以形成文件、目录、超链接图等多种数据结构,以满足不同应用领域数据形式的多样性需求。然而现有的系统和产品仅限于数据存储与传输,缺乏在广域互联网上通过IPFS进行数据的协作查询与分析等高级的功能。
[0005]综上所述,数据共享与交易平台缺少对数据的协作查询与分析。现有解决方案虽然提供了多元化的数据利用方式,但都依赖特定中心服务提供者,存在对特定平台深度依赖的风险,缺少数据提供者之间的去中心化协作。

技术实现思路

[0006]本专利技术的目的在于提供一种存储成本低、处理速度快的基于星际文件系统的分布式协同查询处理系统,适用于IPFS存储系统和包括Hive、Impala、Spark SQL、Drill、Presto等分布式查询引擎之间的接口设计,支持标准SQL查询语句,支持结构化和非结构化的异构数据文件格式。
[0007]本专利技术提供的基于星际网络文件系统的分布式协同查询处理系统,记为Minerva,其架构如图1所示,Minerva由三个协作组件组成:版本与格式管理器(即数据管理工具)、分布式查询引擎(包括但不限于Hive、Impala、Spark SQL、Drill、Presto)和存储后端平台IPFS;利用分布式查询引擎的灵活性和IPFS分散文件系统的可伸缩性特点;系统的每个用
户运行一个本地节点,多个节点形成一个对等网络。在本地存储中具有特定数据集的用户是该数据集的提供者,可以接受网络中其他用户对该数据集的查询。其中:所述存储后端平台IPFS:是位于最底层的组件。IPFS提供去中心化的存储,在每个节点上具有本地的数据块存储,供上层的查询引擎读写数据;IPFS还提供连接IPFSP2P网络的接口,供查询引擎查询网络上的节点信息,以及连接到这些节点。
[0008]所述分布式查询引擎:包括但不限于Hive、Impala、Spark SQL、Drill、Presto;以ApacheDrill为例,Drill是一个分布式并行查询引擎,可以在多个节点间协调执行SQL数据查询。Drill的读写器、规划器等组件在处理SQL输入时与底层的IPFS交互,获得执行查询所必要的信息。
[0009]所述版本与格式管理器:管理存储在IPFS中的各个数据集的版本,使其指向最新版本,或者指向某个特定的历史版本;转换不同格式的原始数据为查询引擎可以读写的格式。
[0010]进一步地,本专利技术还设计了数据布局。为了使数据能够被查询引擎正确读取和处理,本系统基于IPFS中MerkleTree的数据结构提出了查询引擎数据存储结构,如图2所示。当数据所有者添加数据集时,数据文件首先经过分片,然后被组织进一个树状结构中,最后每一个数据块分布在IPFS网络的若干节点中。每个存储了数据块的IPFS节点成为这个数据块的提供者,可以被其他节点查找到,为其他节点提供该数据块。
[0011]进一步地,本专利技术还设计了分布式查询引擎的存储接口,使其可以运行在IPFS上,以IPFS上的文件为数据来源执行查询。从查询发起节点的角度,本系统的工作流程为:(a)用户通过用户界面向分布式查询引擎提交SQL的查询请求;(b)分布式查询引擎从SQL语句中解析得到IPFS文件的CID;(c)查询引擎的规划器与IPFS通信,得到待查询的文件在IPFS网络中存放的位置,从而建立查询计划,即如何从SQL转换为实际的查询操作;(d)查询计划被通过IPFS的P2P网络发送至数据提供者节点处;(e)提供数据的提供者节点监听IPFS网络上的请求包,然后从本地存储中读取数据,执行请求中的查询计划,并向查询发起者返回查询的结果;(f)读写器完成实际的数据读写操作后得到查询结果,最终发送回发起查询的用户。
[0012]进一步地,本专利技术还设计了读请求流程。读请求即仅包含SELECT语句(及各种子句)的SQL查询请求。图3展示了用户发起一次读请求时的系统工作流程,具体为:(a)用户通过用户界面向查询引擎输入SQL查询语句,包含要查询的数据集的CID,以及相应的数据过滤、排序或聚合操作;(b) 引擎解析SQL,得到IPFSCID,并查询IPFS得知数据集由多个块构成,得到每个块的CID。对于每个数据块,根据其CID查询IPFS的分布哈希表(DHT),得到IPFS网络中可以提供该数据分片的节点(提供者),以此建立查询计划;(c) 查询计划被发送至提供者节点处,经过验证数据操作没有安全和隐私等风险后,各个节点按照查询计划从本地的IPFS存储中读取数据,得到该节点处的部分结果;如果查询计划应用了谓词下推(predicatepushdown)等优化手段,则在这个阶段即会应用这些优化;
(d) 各个节点处部分结果集被发送回请求者的节点,并应用剩余的过滤、排序或聚合操作,形成最终的结果集,通过用户界面返回给用户。
[0013]进一步地,本专利技术还设计了写请求流程。写请求在分布式查询引擎的语境下包含数据定义语言(DataDefinitionLanguage,DDL)中的部分SQL语句,主要是CTAS(CreateTableAsSelect)语句和CTTAS(CreateTemporaryTableAsSelect)语句两种。这两种语句嵌套了一个SELECT查询,从这个查询的结果集创建新的表。因此,分布式查询引擎中的写请求总是包含一个读请求。图4展示了用户发起一次写请求时的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于星际网络文件系统的分布式协同查询处理系统,其特征在于,由三个协作组件组成:版本与格式管理器、分布式查询引擎和存储后端平台IPFS;利用分布式查询引擎的灵活性和IPFS分散文件系统的可伸缩性特点;每个用户运行一个本地节点,多个节点形成一个对等网络;在本地存储中具有特定数据集的用户是该数据集的提供者,可以接受网络中其他用户对该数据集的查询;其中:所述存储后端平台IPFS,位于最底层,提供去中心化的存储;在每个节点上具有本地的数据块存储,供上层的查询引擎读写数据;IPFS还提供连接IPFSP2P网络的接口,供查询引擎查询网络上的节点信息,以及连接到这些节点;所述分布式查询引擎,选自Hive、Impala、Spark SQL、Drill或Presto;其中,Drill是一个分布式并行查询引擎,可以在多个节点间协调执行SQL数据查询;Drill的读写器、规划器组件在处理SQL输入时与底层的IPFS交互,获得执行查询所必要的信息;所述版本与格式管理器,管理存储在IPFS中的各个数据集的版本,使其指向最新版本,或者指向某个特定的历史版本;转换不同格式的原始数据为查询引擎可以读写的格式。2.根据权利要求1所述的基于星际网络文件系统的分布式协同查询处理系统,其特征在于,为了使数据能够被查询引擎正确读取和处理,基于IPFS中MerkleTree的数据结构设计查询引擎数据存储结构;当数据所有者添加数据集时,数据文件首先对数据块通过分割进行分片,然后将各分片组织进一个树状结构中;最后,每一个数据块分布在IPFS网络的若干节点中;每个存储了数据块的IPFS节点成为这个数据块的提供者,可以被其他节点查找到,为其他节点提供该数据块。3.根据权利要求2所述的基于星际网络文件系统的分布式协同查询处理系统,其特征在于,通过设计分布式查询引擎的存储接口,使其可以运行在IPFS上,以IPFS上的文件为数据来源执行查询;从查询发起节点的角度,系统的工作流程为:(a)用户通过用户界面向分布式查询引擎提交SQL的查询请求;(b)分布式查询引擎从SQL语句中解析得到IPFS文件的CID;(c)查询引擎的规划器与IPFS通信,得到待查询的文件在IPFS网络中存放的位置,从而建立查询计划,即如何从SQL转换为实际的查询操作;(d)查询计划被通过IPFS的P2P网络发送至数据提供者节点处;(e)提供数据的提供者...

【专利技术属性】
技术研发人员:徐跃东丁博文白倩兰
申请(专利权)人:复旦大学
类型:发明
国别省市:

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

1