CN114328576A - 一种基于星际文件系统的分布式协同查询处理系统 - Google Patents
一种基于星际文件系统的分布式协同查询处理系统 Download PDFInfo
- Publication number
- CN114328576A CN114328576A CN202111538821.7A CN202111538821A CN114328576A CN 114328576 A CN114328576 A CN 114328576A CN 202111538821 A CN202111538821 A CN 202111538821A CN 114328576 A CN114328576 A CN 114328576A
- Authority
- CN
- China
- Prior art keywords
- data
- ipfs
- query
- data set
- drill
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于分布式数据处理技术领域,具体为一种基于星际文件系统的分布式协同查询处理系统。本发明系统为一个Minerva,由三个协作组件组成:数据管理工具Qri、分布式查询引擎Drill和存储后端IPFS;Minerva的每个用户运行一个本地节点,诸多Minerva节点形成一个对等网络;在本地存储中具有特定数据集的用户是该数据集的提供者,接受网络中其他用户对该数据集的查询;Minerva支持对数据分布式的读操作和写操作;Drill支持自定义SQL函数;本发明系统优点:数据集的服务、检索、更新和分发以分布式进行,存储成本低;拥有相同数据集的用户通过协作共享计算资源来加速处理;内容寻址支持对数据集中用户感兴趣的特定分区进行细粒度访问。
Description
技术领域
本发明属于分布式数据处理技术领域,具体涉及一种基于星际文件系统的分布式协同查询处理系统。
背景技术
过去十年见证了一个越来越集中的互联网生态系统,内容通常由大量的用户生成,却存储在少量的数据中心中,由这些数据中心再传输至其他位置。据Cisco报告,到2021年,只有0.96%的互联网总流量不是来自数据中心,或流入数据中心[3]。尽管集中管理数据有其优点,但这么做越来越引起人们的担忧,即数据可能被滥用,内容所有者的权益可能受到侵犯。
星际文件系统(InterPlanetary Filesystem,下称IPFS)[2]是一个P2P、去中心化的文件系统,因为其去中心化的特点以及在安全性、隐私和可靠性方面的优点,许多区块链系统应用将其作为数据存储的解决方案。IPFS将数据存储在互相连结的数据对象中,每个数据对象都由自身的密码散列值唯一确定,称为对象的“内容标识符(ContentIdentifier,CID)”。数据对象间的联系形式丰富多样,可以形成文件、目录、超链接图等多种数据结构,以满足不同应用领域数据形式的多样性需求。通过IPFS存储和获取数据的过程类似于BitTorrent,许多运行着IPFS的节点构成IPFS网络,任何一个需要获取数据的用户,根据所需数据的标识符,向网络中存储了这块数据的节点发起请求,从而获取数据。这样的特性实现了去中心化的数据存取,使得基于区块链等技术的去中心化应用可以将数据存取的任务通过IPFS实现,从而解决了区块链本身不能直接存放大量数据的问题。IPFS在物联网[3]、云计算[4]、文献和资料共享[5][6]等领域都提供了分布式数据存储的解决方案。
尽管IPFS应用前景广泛,但除了存储和共享之外,它还缺乏足够的应用,其中分布式查询服务已成为当务之急。
发明内容
本发明的目的在于提供一种存储成本低、处理速度快的基于星际文件系统的分布式协同查询处理系统。
本发明提供的基于IPFS的分布式数据处理系统,具体为一个数据查询引擎Minerva,系统架构如图1所示,Minerva由三个协作组件组成:数据管理工具Qri[5]、分布式查询引擎Drill[4]和存储后端IPFS[1]。Minerva利用Drill查询引擎的灵活性和IPFS分散文件系统的可伸缩性。Minerva的每个用户运行一个本地节点,许多Minerva节点形成一个对等网络。在本地存储中具有特定数据集的用户是该数据集的提供者,可以接受网络中其他用户对该数据集的查询。
Minerva支持对数据分布式的读操作和写操作;
此外,Drill支持自定义SQL函数,这些函数在运行时从.jar文件加载;用户可以以数据集自定义函数的形式实现其转换规则和分析算法,并将其与数据集一起分发。其他使用到相同转换规则和分析算法的用户可以通过从IPFS加载自定义函数,如同使用指定存储在IPFS上的数据集一样,而不需要自己重新实现一遍相同的逻辑。
Apache基金会的Drill是一个并行查询引擎,接受标准SQL查询语句,支持CSV,JSON等结构化和非结构化的多种数据文件格式,无需定义数据库结构,可以查询非结构化数据。
本发明拓展了Drill的存储接口,使其可以运行在IPFS上,以IPFS上的文件为数据来源执行查询。查询流程如下:
用户通过Drill的查询界面与整个系统交互,Drill从SQL语句中解析得到IPFS文件的CID后,查询引擎的规划器与IPFS通信,得到待查询的文件在IPFS网络中存放的位置,从而建立查询计划,即如何从SQL转换为实际的查询操作。
查询计划将通过IPFS的P2P网络发送至数据提供者节点处,读写器完成实际的数据读写操作后得到查询结果,最终发送回发起查询的用户。
对于提供数据的提供者节点而言,他们监听IPFS网络上的请求包,然后从本地存储中读取数据,执行请求中的查询计划,并向请求者返回查询的结果。
图2说明了如何将数据集存储在IPFS上,以便与Minerva一起使用。存储流程如下:
通过使用Qri,数据集首先被分割成若干块,每个块成为IPFS上的一个对象。这些数据片段构造了一个具有层次的树状结构,其中所有叶节点都包含数据,中间节点记录较低层的节点的哈希值,如同文件树结构中的文件和目录的关系。每个中间节点和根节点都有自己的内容标识符(CID),即内容的散列,并且CID分别充当IPFS上数据集的某个部分或整个数据集的路径。用户可以将标准SQL语句输入到Drill中,将要查询的部分数据的IPFS路径指定为表名。查询字符串的形式如下所示:
SELECT ˋidˋ、ˋnameˋ
FROM ipfs.ˋ/ipfs/QmRhDW…3SVi/employees.jsonˋLIMIT 100。
其中“ipfs.ˋ/ipfs/”的部分指定从IPFS中取得数据,“QmRhDW…3Svi”是目标数据集在IPFS中存储对象的根节点,“employees.json”是其中一个数据表相对于根节点的路径。
解析SQL后,Drill构建一个分布式执行计划,该计划将根据IPFS的DHT解析的结果,发送到Minerva的其他节点,并在网络中为同一数据集提供服务的节点上执行。Drill在构建执行计划时会考虑到数据的局部性(datalocality),并通过将计算作业委托给在本地存储特定数据段的节点来尽量降低网络成本。
本发明的基于IPFS的分布式数据处理系统,具有以下优点:
(1)数据集的服务、检索、更新和分发以分布式地进行,没有单点故障,存储成本低;
(2)拥有相同数据集的用户可以通过协作共享计算资源来加速处理;
(3)内容寻址支持对数据集中用户感兴趣的特定分区进行细粒度访问。
附图说明
图1为Minerva结构图示。
图2为数据集存储过程图示。
图3为不同的并行宽度下的查询完成时间。
图4为不同的块大小下的查询完成时间。
具体实施方式
下面通过实施例进一步介绍本发明。
实施例:
设实施例的参数:
系统环境:java;
网络拓扑:6个节点,每个节点运行一个Minerva实例;
区块大小:1MB;
数据集1:67MB;
数据集2:190MB。
我们在6节点集群中对原型系统进行了初步性能评估,每个节点运行一个Minerva实例,IPFS在专用网络模式下工作。所有统计数据均为10次运行的平均值。图3显示了并行化宽度如何影响查询性能。块大小固定为1MB。对于这两个数据集,当在更多节点上并行执行查询时,计划时间略有增加,而执行时间先减少后增加。规划者需要更多的时间来收集足够的有关更多能够处理查询的提供程序的信息是有道理的。执行时间的情况可以解释为两个因素的混合效应:当查询分布较少时,总体执行时间主要取决于最慢的节点;当它们在更多节点上执行时,开销(例如,增加网络通信成本,从而增加系统负载)变得显著。
我们比较了不同块大小对性能的影响,如图4所示。在本实验中,最大并行宽度设为3。块大小在很大程度上对计划时间有重大影响,计划时间是查找哪个节点最适合执行查询的特定片段所花费的时间。这是因为块越小,它们就越多,数据集就必须被划分,因此调度器必须考虑更多的数据单元。
参考文献
[1] Juan Benet. 2014. IPFS - Content Addressed, Versioned, P2P FileSystem. CoRR (2014).Arxiv:1407.3561.
[2] Anant Bhardwaj, Amol Deshpande, Aaron J. Elmore, David Karger,Sam Madden, AdityaParameswaran, Harihar Subramanyam, Eugene Wu, and RebeccaZhang. 2015. Collaborative Data Analytics with DataHub. Proc. VLDB Endow. 8,12(Aug.2015), 1916-1919.
[3] Cisco. 2019. Cisco Global Cloud Index: Forecast and Methodology,2016-2021 White Paper. https://www.cisco.com/c/en/us/solutions/collateral/service-provider/global-cloud-index-gci/ white-paper-c11-738085.html. (2019).[Online; accessed 20-May-2019].
[4] Michael Hausenblas and Jacques Nadeau. 2013. Apache Drill:Interactive Ad-Hoc Analysis at Scale. Big Data 1, 2(2013), 100-104. PMID:27442064.
[5] qri.io. 2019. qri. https://github.com/qri-io/qri. (2019).[Online; accessed 20-May-2019].
[6] Kazunori Sato. 2012. An Inside Look at Google BigQuery. https://cloud.google.com/files/
BigQueryTechnicalWP.pdf. (2012). [Online; accessed 20-May-2019]。
Claims (2)
1. 一种基于星际文件系统的分布式协同查询处理系统,其特征在于,为一个数据查询引擎Minerva,由三个协作组件组成:数据管理工具Qri、分布式查询引擎Drill和存储后端IPFS; Minerva的每个用户运行一个本地节点,许多Minerva节点形成一个对等网络;在本地存储中具有特定数据集的用户是该数据集的提供者,可以接受网络中其他用户对该数据集的查询;
Minerva支持对数据分布式的读操作和写操作;
Drill支持自定义SQL函数,这些函数在运行时从.jar文件加载;用户可以以数据集自定义函数的形式实现其转换规则和分析算法,并将其与数据集一起分发;其他使用到相同转换规则和分析算法的用户可以通过从IPFS加载自定义函数,如同使用指定存储在IPFS上的数据集一样,而不需要自己重新实现一遍相同的逻辑;
Drill是一个并行查询引擎,接受标准SQL查询语句,支持CSV,JSON等结构化和非结构化的多种数据文件格式,无需定义数据库结构,可以查询非结构化数据;
对Drill的存储接口进行拓展,使其可以运行在IPFS上,以IPFS上的文件为数据来源执行查询;查询流程如下:
用户通过Drill的查询界面与整个系统交互,Drill从SQL语句中解析得到IPFS文件的CID后,查询引擎的规划器与IPFS通信,得到待查询的文件在IPFS网络中存放的位置,从而建立查询计划,即如何从SQL转换为实际的查询操作;
查询计划通过IPFS的P2P网络发送至数据提供者节点处,读写器完成实际的数据读写操作后得到查询结果,最终发送回发起查询的用户;
对于提供数据的提供者节点而言,他们监听IPFS网络上的请求包,然后从本地存储中读取数据,执行请求中的查询计划,并向请求者返回查询的结果。
2.根据权利要求1所述的基于星际文件系统的分布式协同查询处理系统,其特征在于,系统的数据集存储在IPFS上,以便与Minerva一起使用;存储的流程如下:
通过使用Qri,数据集首先被分割成若干块,每个块成为IPFS上的一个对象;这些数据片段构造了一个具有层次的树状结构,其中所有叶节点都包含数据,中间节点记录较低层的节点的哈希值,如同文件树结构中的文件和目录的关系;每个中间节点和根节点都有自己的内容标识符(CID),即内容的散列,并且CID分别充当IPFS上数据集的某个部分或整个数据集的路径;用户将标准SQL语句输入到Drill中,将要查询的部分数据的IPFS路径指定为表名;查询字符串如下所示:
SELECT ˋidˋ、ˋnameˋ;
FROM ipfs.ˋ/ipfs/QmRhDW…3SVi/employees.jsonˋLIMIT 100;
其中“ipfs.ˋ/ipfs/”部分指定从IPFS中取得数据,“QmRhDW…3Svi”是目标数据集在IPFS中存储对象的根节点,“employees.json”是其中一个数据表相对于根节点的路径;
解析SQL后,Drill构建一个分布式执行计划,该计划将根据IPFS的DHT解析的结果,发送到Minerva的其他节点,并在网络中为同一数据集提供服务的节点上执行;Drill在构建执行计划时考虑到数据的局部性,并通过将计算作业委托给在本地存储特定数据段的节点来尽量降低网络成本。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111538821.7A CN114328576A (zh) | 2021-12-15 | 2021-12-15 | 一种基于星际文件系统的分布式协同查询处理系统 |
CN202210822851.9A CN115237937A (zh) | 2021-12-15 | 2022-07-13 | 一种基于星际文件系统的分布式协同查询处理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111538821.7A CN114328576A (zh) | 2021-12-15 | 2021-12-15 | 一种基于星际文件系统的分布式协同查询处理系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114328576A true CN114328576A (zh) | 2022-04-12 |
Family
ID=81052510
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111538821.7A Pending CN114328576A (zh) | 2021-12-15 | 2021-12-15 | 一种基于星际文件系统的分布式协同查询处理系统 |
CN202210822851.9A Pending CN115237937A (zh) | 2021-12-15 | 2022-07-13 | 一种基于星际文件系统的分布式协同查询处理系统 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210822851.9A Pending CN115237937A (zh) | 2021-12-15 | 2022-07-13 | 一种基于星际文件系统的分布式协同查询处理系统 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN114328576A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115878586B (zh) * | 2023-03-08 | 2023-05-30 | 深圳市迈科龙电子有限公司 | Ipfs存储封装方法、装置、电子设备及可读存储介质 |
CN116136838B (zh) * | 2023-04-19 | 2023-07-25 | 之江实验室 | 一种深度学习训练数据集快速载入临时缓存方法和装置 |
-
2021
- 2021-12-15 CN CN202111538821.7A patent/CN114328576A/zh active Pending
-
2022
- 2022-07-13 CN CN202210822851.9A patent/CN115237937A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN115237937A (zh) | 2022-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ge et al. | MDDE: multitasking distributed differential evolution for privacy-preserving database fragmentation | |
ES2609445T3 (es) | Método, controlador, programa y sistema de almacenamiento de datos para realizar procesado de reconciliación | |
Shi et al. | SemRec: a personalized semantic recommendation method based on weighted heterogeneous information networks | |
Lee et al. | Efficient data partitioning model for heterogeneous graphs in the cloud | |
Banane et al. | Storing RDF data into big data NoSQL databases | |
CN114328576A (zh) | 一种基于星际文件系统的分布式协同查询处理系统 | |
Xia et al. | A MapReduce‐Based Parallel Frequent Pattern Growth Algorithm for Spatiotemporal Association Analysis of Mobile Trajectory Big Data | |
Hofman et al. | A technical framework for data sharing | |
Makris et al. | Efficient and adaptive discovery techniques of web services handling large data sets | |
Kanchi et al. | Challenges and Solutions in Big Data Management--An Overview | |
Davoudian et al. | A workload-adaptive streaming partitioner for distributed graph stores | |
Yuan et al. | Subgraph matching over graph federation | |
Zeng et al. | Semantic IoT data description and discovery in the IoT-edge-fog-cloud infrastructure | |
Alaoui | A categorization of RDF triplestores | |
Xie et al. | An evolvable and transparent data as a service framework for multisource data integration and fusion | |
Shakhovska et al. | Big Data Model" Entity and Features" | |
Du et al. | An efficient indexing and query mechanism for ubiquitous IoT services | |
Ravichandran | Big Data processing with Hadoop: a review | |
Hema et al. | Quality aware service oriented ontology based data integration | |
Jin et al. | GStar: an efficient framework for answering top-k star queries on billion-node knowledge graphs | |
Kumar et al. | A review on recent trends in query processing and optimization in big data | |
Ma et al. | Graph simulation on large scale temporal graphs | |
Song et al. | Optimizing subgraph matching over distributed knowledge graphs using partial evaluation | |
Yan et al. | Handling conditional queries and data storage on Hyperledger Fabric efficiently | |
Mehmood et al. | Efficient distributed path computation on RDF knowledge graphs using partial evaluation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20220412 |