CN111352961A - 分布式rdf流数据处理方法、系统、装置及介质 - Google Patents
分布式rdf流数据处理方法、系统、装置及介质 Download PDFInfo
- Publication number
- CN111352961A CN111352961A CN202010179934.1A CN202010179934A CN111352961A CN 111352961 A CN111352961 A CN 111352961A CN 202010179934 A CN202010179934 A CN 202010179934A CN 111352961 A CN111352961 A CN 111352961A
- Authority
- CN
- China
- Prior art keywords
- query
- logic
- distributed
- plan
- processing
- 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.)
- Granted
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/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- 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/248—Presentation of query results
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了分布式RDF流数据处理方法、系统、装置及介质,方法包括:配置逻辑操作符,并部署大数据流处理分布式平台;获取用户查询请求;将所述用户查询请求解析为代数形式的查询语句;采用贪心多路连接算法和所述配置的逻辑操作符对所述代数形式的查询语句进行处理,生成逻辑查询计划;将所述逻辑查询计划转换为物理计划,所述物理计划能被所述大数据流处理分布式平台执行并部署;基于所述逻辑操作符,通过所述大数据流处理分布式平台对所述物理计划进行分布式执行,得到处理结果流。本发明实现了对RDF流数据的并行分布式查询处理,提高了执行效率,且能降低资源占用率,可广泛应用于计算机技术领域。
Description
技术领域
本发明涉及计算机技术领域,尤其是分布式RDF流数据处理方法、系统、装置及介质。
背景技术
正随着信息技术高速发展,人们使用电脑、移动设备等电子产品越来越多,能连接网络的设备也来越多,信息化的程度变得越来越高。比如病房监护系统不断产生病人身体指标的信息流。同时,在Web互联网中,例如Youtube、Facebook等中也在不断产生各种主题的实时数据流。这些异构的流数据之间的集成和使用,成为一项困难并且耗时耗力的工作。
其中,资源描述框架RDF(resource description framework)是由WWW提出的对万维网(World Wide Web)上信息进行描述的一个框架,它为Web上的各种应用提供信息描述规范。RDF用主语s(subject)、谓词p(predicate)、宾语o(object)的三元组形式来描述Web上的资源。其中,主语一般用统一资源标识符URI(uniform resource identifiers)表示Web上的信息实体(或者概念),谓词描述实体所具有的相关属性,宾语为对应的属性值。这样的表述方式使得RDF可以用来表示Web上的任何被标识的信息,并且使得它可以在应用程序之间交换而不丧失语义信息。SPARQL(SPARQL Protocol and RDF Query Language)是为RDF开发的一种查询语言和数据获取协议。
RDF流作为一种新型的数据集,可以在广泛的应用中为实时和连续的信息建模,例如,环境监测,智能城市等。但是数据流是时变数据元素的无界序列,难以存储,且处理需求高。RDF流数据不仅在异构数据流源之间,且在数据流源和静态数据源之间,都可将数据无缝地集成。
目前,为了处理这些RDF流数据,RDF流处理(RDF Stream Process,RSP)系统也随之出现。Streaming SPARQL,C-SPARQL,EP-SPARQL,SPARQLstream和CQELS是现有技术中较为成熟的RSP系统。这些系统都是通过对SPARQL的扩展表示连续查询。由于这些集中式的RSP系统的逻辑查询计划中的每个操作符在物理上都执行在同一线程,无法实现并行处理,资源占用率高,执行效率低。
发明内容
有鉴于此,本发明实施例提供一种资源占用率低且执行效率高的分布式RDF流数据处理方法、系统、装置及介质。
本发明的第一方面提供了一种分布式RDF流数据处理方法,包括:
配置逻辑操作符,并部署大数据流处理分布式平台;
获取用户查询请求;
将所述用户查询请求解析为代数形式的查询语句;
采用贪心多路连接算法对所述代数形式的查询语句进行处理,生成逻辑查询计划;
将所述逻辑查询计划转换为物理计划,所述物理计划能被所述大数据流处理分布式平台执行并部署;
基于所述逻辑操作符,通过所述大数据流处理分布式平台对所述物理计划进行分布式执行,得到处理结果流。
进一步,所述配置逻辑操作符,包括:
配置第一逻辑操作符,所述第一逻辑操作符用于接收RDF流数据;
配置第二逻辑操作符,所述第二逻辑操作符用于对查询代数树中的三元组模式进行数据匹配;
配置第三逻辑操作符,以及配置多路分区连接算法对所述查询语句进行处理,所述第三逻辑操作符用于对查询代数树中的多个三元组模式进行多路分区连接;
配置第四逻辑操作符,所述第四逻辑操作符用于将查询代数树中的变量进行投影,以输出查询结果。
进一步,所述大数据流处理分布式平台为Apache Flink平台。
进一步,所述将所述用户查询请求解析为代数形式的查询语句,包括:
通过Jena ARQ解析用户查询得到代数形式的查询语句;
通过Visitor模型获取查询代数树的字段内容。
进一步,还包括通过所述第二逻辑操作符进行三元组模式匹配的步骤,具体包括:
确定三元组模式的个数;
根据所述三元组模式的个数确定第二逻辑操作符的个数;
根据确定的第二逻辑操作符,从查询代数树中查询triple字段的三元组。
进一步,还包括通过所述第三逻辑操作符对多个三元组数据进行多路分区连接的步骤,包括:
确定分区连接窗口的长度和步长;
确定一个包含多个三元组模式临时数据集;
将所述多个三元组模式对应的值作为窗口分区的键;
将所述临时数据集中具有相同键的记录分配给同一分区;
对于每一个分区,按照三元组模式的序号把数据分成相应的组;
将所述各个键对应的数据进行交叉连接,得到该分区的结果。
进一步,所述采用贪心多路连接算法对所述代数形式的查询语句进行处理,生成逻辑查询计划,包括:
获取查询代数树的字段内容;
通过贪心策略选择要连接的键;
确定包含键的三元组模式并放在同一分组,并确定所有分组;
生成第一逻辑操作符;
将分组内所有三元组模式创建第二逻辑操作符;
并创建一个第三操作两两接连接所有第二逻辑操作符;
创建第四逻辑操作符,得到完整的逻辑查询计划。
根据本发明的第二方面,还提供了分布式RDF流数据处理系统,包括:
配置模块,用于配置逻辑操作符,并部署大数据流处理分布式平台;
获取模块,用于获取用户查询请求;
解析模块,用于将所述用户查询请求解析为代数形式的查询语句;
逻辑计划生成模块,用于采用贪心多路连接算法对所述代数形式的查询语句进行处理,生成逻辑查询计划;
物理转换模块,用于将所述逻辑查询计划转换为物理计划,所述物理计划能被所述大数据流处理分布式平台执行并部署;
分布式执行模块,用于基于所述逻辑操作符,通过所述大数据流处理分布式平台对所述物理计划进行分布式执行,得到处理结果流。
根据本发明的第三方面,还提供了一种装置,包括处理器以及存储器;
所述存储器用于存储程序;
所述处理器用于根据所述程序执行如本发明第一方面所述的方法。
根据本发明的第四方面,还提供了一种存储介质,其中存储有处理器可执行的指令,所述计算机可读存储介质存储有程序,所述程序被处理器执行完成如本发明第一方面所述的方法。
上述本发明实施例中的一个或多个技术方案具有如下优点:本发明的实施例实现了对RDF流数据的并行分布式查询处理,提高了执行效率,且能降低资源占用率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的步骤流程图;
图2为本发明实施例的连续查询语句的示例图;
图3为本发明实施例的第三逻辑操作符的多路分区连接过程示意图。
具体实施方式
下面结合说明书附图和具体实施例对本发明作进一步解释和说明。对于本发明实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
现有技术为了处理RDF流数据,一般通过RSP系统来对SPARQL的扩展进行连续查询。由于这些集中式的RSP系统的逻辑查询计划中的每个操作符在物理上都执行在同一线程,无法实现并行处理。而且这些RSP的逻辑查询计划都是基于二路连接,连接次数多代价大。所以在面对大量待处理的RDF流数据时,无法满足低延时、高吞吐的需求。虽然CQELS-Cloud系统原型能实现分布式RDF流数据的查询处理,但其设计用于多查询的并行处理,而不能高效地处理大量传入RDF流数据。分布式RDF流处理Strider的查询逻辑计划也仍为多个二路连接。
为此,参见图1,本发明实施例提供了一种分布式RDF流数据处理方法,包括以下步骤:
S1,配置逻辑操作符,并部署大数据流处理分布式平台;
S2,获取用户查询请求;
S3,将所述用户查询请求解析为代数形式的查询语句;
S4,采用贪心多路连接算法对所述代数形式的查询语句进行处理,生成逻辑查询计划;
S5,将所述逻辑查询计划转换为物理计划,所述物理计划能被所述大数据流处理分布式平台执行并部署;
S6,基于所述逻辑操作符,通过所述大数据流处理分布式平台对所述物理计划进行分布式执行,得到处理结果流。
具体地,为了提高大量传入RDF流数据的查询效率,本发明实施例主要采取了三个技术手段:(1)对集中式RSP查询处理过程的研究,本发明设计了4个逻辑操作符(数据源、滤器、多路分区连接和投影)表示RSP查询过程的步骤;(2)为减少查询过程中连接操作的次数和实现逻辑计划的并行处理,本发明使用贪心多路连接算法(Greedy Multi-way Join,GMJ)和4个逻辑操作符生成适用于大数据流处理平台的逻辑查询计划;(3)基于大数据流处理平台Apache Flink的实现,每一个逻辑操作符将可以独立运行在一个或者多个线程上,实现分布式并行处理,提升了RDF流的查询效率。
其中,RDF流数据的表现形式是带有时间戳的RDF图,表示为(G,t),其中G是RDF图,t是一个时间实例。RDF流S被定义为一个无边界的带时间戳的RDF图序列,具备非严格单调递增时间的形式。
S=(G1,t1),(G2,t2),(G3,t3),(G4,t4),...
RDF流数据的查询语言由SPARQL查询语言扩展而来,称作连续查询语句,如图2所示,图2是一个连续查询语句的示例,其中,FROM STREAM是用于识别流数据源。字段RANGE和STEP声明了窗口大小。除了指定数据来源与窗口类型与大小之外,其余的查询语句部分是一个标准的SPARQL查询语句。SPARQL查询语句包含一组称为BGP的三元组模式(TriplePattern,TP)。三元组模式类似于RDF三元组,其主语、谓语和宾语中的每一个都可以是变量。
在本发明实施例中,对连续查询语句的解析是首要步骤。本发明实施例从FROMstream字段获取了窗口参数和流源,剩余的标准SPARQL语句使用Jena ARQ解析获取查询代数树。其中,对于图2所示的示例,其查询代数树如下:
其中,字段project和bgp等为SPARQL的操作符。
可选地,本发明实施例在triple操作符中使用前缀缩写来代替完整的URI。在生成逻辑计划之前,本发明实施例根据SPARQL解析后的代数树和FROM stream字段的信息设计了4个用于GMJ算法的逻辑操作符。
本发明实施例中4个逻辑操作符如下:
(1)Source操作符(即本发明的第一逻辑操作符):用于声明要处理的流和接入数据流,由连续查询语句的FROM STREAM字段的信息提供数据来源。Source操作符将会接收到来自数据源发出的RDF流(G1,1)...(Gn,n),作为处理的输入。
(2)Filter操作符(即本发明的第二逻辑操作符):用于三元组模式匹配,匹配查询代数树中triple字段的三元组。Filter操作符的个数与三元组模式的个数相同,即每一个Filter操作符过滤出满足某一个三元组模式的数据,所以查询图2实例需要5个Filter操作符。以图2所示的TP1为例,考虑Filter(TP1)操作符的输入和输出如下:
输入:
((<ARPC2>,<rdf:type>,<weather:RainfallObservation>),
(<ARPC2>,<om-owl:procedure>,<sens-obs:SARPC2>),
(<ARPC2>,<om-owl:result>,<MR_ARPC2>),
(<MR_ARPC2>,<om-owl:floatValue>,"0.0"^^xsd:float),
(<MR_ARPC2>,<om-owl:uom>,<weather:centimeters>),1564539059000)
...
输出:
(?observation-><ARPC2>,
?sensor-><sens-obs:SARPC2>)
...
在上面的例子中,三元组(<ARPC2>,<om-owl:pr-ocedure>,<sens-obs:SARPC2>)满足TP1模式,所以其过滤结果是(?observation-><ARPC2>,?sensor-><sens-obs:SARPC2>)。
(3)Muti-way Partition Join操作符(即本发明的第三逻辑操作符):用于对查询代数树中bgp中多个三元组进行多路连接;RANGE和SETP声明了Muti-way Partition Join(以下简称MPJoin)分区连接窗口的长度和步长。MPJoin操作符的优点首先是可以同时连接多个三元组模式。除此之外,在MPJoin中,本发明以按窗口分区的方式来实现多路连接。
首先,以连接TP1和TP2和TP3为例,本发明实施例将分别满足TP1和TP2和TP3的数据联合起来,得到一个包含三个三元组模式临时数据集Q:
Q=σ(TP1)∪σ(TP2)∪(TP3)
由于RDF流数据的连续性,需要将一段时间内的数据缓存在窗口。典型的窗口主要可以分类成:翻滚窗口和滑动窗口。翻滚窗口大小固定的并且数据不重叠。滑动窗口由窗口长度和步长组成,其数据可能重叠。
然后,本发明实施例把TP1、TP2和TP3共同变量对应的值作为窗口分区的键,即按照变量?observation的值作为分区的键。
接着,本发明实施例将数据集Q具有相同就键的所有记录都分配给同一分区,逻辑上这些分区是不相交。如图3所示,在翻滚窗口window[1,2]同一个分区包含了来自TP1、TP2和TP3相同键的数据。窗口触发计算时,对于每一个分区,按照三元组模式的序号把数据分成相应的组,如key1(σ(TP1))表示来自TP1按key1进行分区的数据。
最后,本发明实施例把key1(σ(TP1))、key1(σ(TP2))和key1(σ(TP3))的数据进行交叉连接,得到该分区的结果。所有分区的结果即为MPJoin操作符的结果。
如图3所示,本发明实施例的MPJoin操作符按键分区来自多个三元组模式的数据,每个分区数据的数量减少,降低连接时的性能消耗。
(4)Projrct操作符(即本发明实施例的第四逻辑操作符):用于投影查询代数树project字段中要查询的变量,以输出本实施例的查询结果。
需要说明的是,本发明实施例的连续查询语句都包含一组称为基本图形模式的三元组模式,且主语、谓语和宾语中的每一个都可以是变量,所以三元组之间的连接关系由它们所共有的变量决定。然而三元组模式连接时可能会出现两个三元组模式之间没有共同变量,因此本发明实施例的算法设计的时候避免无相同变量的三元组模式进行连接和尽可能多路连接。本文使用Visitor模型对Jena ARQ解析获取查询代数树的bgp字段的内容和设计的4个逻辑操作符,然后实现贪心多路连接算法(Greedy Multi-way Join,GMJ),其中,本发明实施例生成逻辑查询计划的关键算法描述如下所示:
算法:贪心多路连接
输入:The triple pattern list of Basic Graph Pattern,TB
输出:The logical query plan,P
另外,本发明实施例使用大数据流处理平台提供的API实现4个用于GMJ的逻辑操作符,以将逻辑查询计划转换成流处理平台描述的物理计划。由于Apace Flink是一个保证事件只会被精确一次的流处理系统,因此本发明在Apache Flink实现的4个操作符如表1所示。
表1
综上所述,由于传统的成熟流处理系统的集中式设计的缺陷,本发明基于大数据流处理分布式平台进行RDF流数据的处理。首先,本发明根据查询处理过程,设计了4种逻辑操作符,然后使用贪心多路连接算法(GMJ)生成适用于大数据流处理平台的逻辑查询计划。该算法旨在并行过滤数据,且减少连接过程的次数与减少连接时的花销,从而解决传统集中式设计的缺陷和减少传统逻辑计划二路连接的花销。最后基于大数据流处理平台ApacheFlink实现逻辑操作符和分布式并行运行。实验分别用真实数据集和模拟数据集的连续查询语句测试了GMJ的延时和吞吐量性能。在延时方面达到毫秒级和提升了处理吞吐量,实现了对大量传入RDF流数据查询的高吞吐和低延迟的高效处理。
本发明实施例还提供了分布式RDF流数据处理系统,包括:
配置模块,用于配置逻辑操作符,并部署大数据流处理分布式平台;
获取模块,用于获取用户查询请求;
解析模块,用于将所述用户查询请求解析为代数形式的查询语句;
逻辑计划生成模块,用于采用贪心多路连接算法对所述代数形式的查询语句进行处理,生成逻辑查询计划;
物理转换模块,用于将所述逻辑查询计划转换为物理计划,所述物理计划能被所述大数据流处理分布式平台执行并部署;
分布式执行模块,用于基于所述逻辑操作符,通过所述大数据流处理分布式平台对所述物理计划进行分布式执行,得到处理结果流。
本发明实施例还提供了一种装置,包括处理器以及存储器;
所述存储器用于存储程序;
所述处理器用于根据所述程序执行如本发明所述的方法。
述方法实施例中的内容均适用于本装置实施例中,本装置实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
本发明实施例还提供了一种存储介质,其中存储有处理器可执行的指令,所述计算机可读存储介质存储有程序,所述程序被处理器执行完成如本发明所述的方法。
此外,本发明实施例还提供了一种存储介质,其中存储有处理器可执行的指令,所述处理器可执行的指令在由处理器执行时用于执行所述的数据处理方法。
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,所述的功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (10)
1.分布式RDF流数据处理方法,其特征在于,包括:
配置逻辑操作符,并部署大数据流处理分布式平台;
获取用户查询请求;
将所述用户查询请求解析为代数形式的查询语句;
采用贪心多路连接算法对所述代数形式的查询语句进行处理,生成逻辑查询计划;
将所述逻辑查询计划转换为物理计划,所述物理计划能被所述大数据流处理分布式平台执行并部署;
基于所述逻辑操作符,通过所述大数据流处理分布式平台对所述物理计划进行分布式执行,得到处理结果流。
2.根据权利要求1所述的分布式RDF流数据处理方法,其特征在于,所述配置逻辑操作符,包括:
配置第一逻辑操作符,所述第一逻辑操作符用于接收RDF流数据;
配置第二逻辑操作符,所述第二逻辑操作符用于对查询代数树中的三元组模式进行数据匹配;
配置第三逻辑操作符,以及配置多路分区连接算法对所述查询语句进行处理,所述第三逻辑操作符用于对查询代数树中的多个三元组模式进行多路分区连接;
配置第四逻辑操作符,所述第四逻辑操作符用于将查询代数树中的变量进行投影,以输出查询结果。
3.根据权利要求1所述的分布式RDF流数据处理方法,其特征在于,所述大数据流处理分布式平台为Apache Flink平台。
4.根据权利要求2所述的分布式RDF流数据处理方法,其特征在于,所述将所述用户查询请求解析为代数形式的查询语句,包括:
通过Jena ARQ解析用户查询得到代数形式的查询语句;
通过Visitor模型获取查询代数树的字段内容。
5.根据权利要求2所述的分布式RDF流数据处理方法,其特征在于,还包括通过所述第二逻辑操作符进行三元组模式匹配的步骤,具体包括:
确定三元组模式的个数;
根据所述三元组模式的个数确定第二逻辑操作符的个数;
根据确定的第二逻辑操作符,从查询代数树中查询triple字段的三元组。
6.根据权利要求2所述的分布式RDF流数据处理方法,其特征在于,还包括通过所述第三逻辑操作符对多个三元组数据进行多路分区连接的步骤,包括:
确定分区连接窗口的长度和步长;
确定一个包含多个三元组模式的临时数据集;
将所述多个三元组模式对应的值作为窗口分区的键;
将所述临时数据集中具有相同键的记录分配给同一分区;
对于每一个分区,按照三元组模式的序号把数据分成相应的组;
将所述各个键对应的数据进行交叉连接,得到该分区的结果。
7.根据权利要求2所述的分布式RDF流数据处理方法,其特征在于,所述采用贪心多路连接算法对所述代数形式的查询语句进行处理,生成逻辑查询计划,包括:
获取查询代数树的字段内容;
通过贪心策略选择要连接的键;
确定包含键的三元组模式并放在同一分组,并确定所有分组;
生成第一逻辑操作符;
将分组内所有三元组模式创建第二逻辑操作符;
并创建一个第三操作两两接连接所有第二逻辑操作符;
创建第四逻辑操作符,得到完整的逻辑查询计划。
8.分布式RDF流数据处理系统,其特征在于,包括:
配置模块,用于配置逻辑操作符,并部署大数据流处理分布式平台;
获取模块,用于获取用户查询请求;
解析模块,用于将所述用户查询请求解析为代数形式的查询语句;
逻辑计划生成模块,用于采用贪心多路连接算法对所述代数形式的查询语句进行处理,生成逻辑查询计划;
物理转换模块,用于将所述逻辑查询计划转换为物理计划,所述物理计划能被所述大数据流处理分布式平台执行并部署;
分布式执行模块,用于基于所述逻辑操作符,通过所述大数据流处理分布式平台对所述物理计划进行分布式执行,得到处理结果流。
9.一种装置,其特征在于,包括处理器以及存储器;
所述存储器用于存储程序;
所述处理器用于根据所述程序执行如权利要求1-7中任一项所述的方法。
10.一种存储介质,其中存储有处理器可执行的指令,其特征在于,所述计算机可读存储介质存储有程序,所述程序被处理器执行完成如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010179934.1A CN111352961B (zh) | 2020-03-16 | 2020-03-16 | 分布式rdf流数据处理方法、系统、装置及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010179934.1A CN111352961B (zh) | 2020-03-16 | 2020-03-16 | 分布式rdf流数据处理方法、系统、装置及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111352961A true CN111352961A (zh) | 2020-06-30 |
CN111352961B CN111352961B (zh) | 2023-03-28 |
Family
ID=71197559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010179934.1A Active CN111352961B (zh) | 2020-03-16 | 2020-03-16 | 分布式rdf流数据处理方法、系统、装置及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111352961B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113656369A (zh) * | 2021-08-13 | 2021-11-16 | 辽宁华盾安全技术有限责任公司 | 一种大数据场景下的日志分布式流式采集及计算方法 |
CN116501805A (zh) * | 2023-06-29 | 2023-07-28 | 长江三峡集团实业发展(北京)有限公司 | 一种流数据系统、计算机设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103116625A (zh) * | 2013-01-31 | 2013-05-22 | 重庆大学 | 一种基于Hadoop的海量RDF数据分布式查询处理方法 |
CN105279286A (zh) * | 2015-11-27 | 2016-01-27 | 陕西艾特信息化工程咨询有限责任公司 | 一种交互式大数据分析查询处理方法 |
CN105447156A (zh) * | 2015-11-30 | 2016-03-30 | 北京航空航天大学 | 资源描述框架分布式引擎及增量式更新方法 |
CN109241155A (zh) * | 2018-07-27 | 2019-01-18 | 天津大学 | 一种rdf流数据和关系数据的联邦查询处理系统及方法 |
-
2020
- 2020-03-16 CN CN202010179934.1A patent/CN111352961B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103116625A (zh) * | 2013-01-31 | 2013-05-22 | 重庆大学 | 一种基于Hadoop的海量RDF数据分布式查询处理方法 |
CN105279286A (zh) * | 2015-11-27 | 2016-01-27 | 陕西艾特信息化工程咨询有限责任公司 | 一种交互式大数据分析查询处理方法 |
CN105447156A (zh) * | 2015-11-30 | 2016-03-30 | 北京航空航天大学 | 资源描述框架分布式引擎及增量式更新方法 |
CN109241155A (zh) * | 2018-07-27 | 2019-01-18 | 天津大学 | 一种rdf流数据和关系数据的联邦查询处理系统及方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113656369A (zh) * | 2021-08-13 | 2021-11-16 | 辽宁华盾安全技术有限责任公司 | 一种大数据场景下的日志分布式流式采集及计算方法 |
CN116501805A (zh) * | 2023-06-29 | 2023-07-28 | 长江三峡集团实业发展(北京)有限公司 | 一种流数据系统、计算机设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111352961B (zh) | 2023-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10216793B2 (en) | Optimization of continuous queries in hybrid database and stream processing systems | |
CN101021874B (zh) | 一种对查询sql请求进行优化的方法及装置 | |
US10339141B2 (en) | Detecting at least one predetermined pattern in stream of symbols | |
US20170242934A1 (en) | Methods for integrating semantic search, query, and analysis and devices thereof | |
CN107291807B (zh) | 一种基于图遍历的sparql查询优化方法 | |
Khurana et al. | Storing and analyzing historical graph data at scale | |
Kang et al. | Hadi: Fast diameter estimation and mining in massive graphs with hadoop | |
CN111352961B (zh) | 分布式rdf流数据处理方法、系统、装置及介质 | |
Zhang et al. | Multi-query optimization for complex event processing in SAP ESP | |
Bala et al. | P-ETL: Parallel-ETL based on the MapReduce paradigm | |
US20150039648A1 (en) | System and a method for reasoning and running continuous queries over data streams | |
US8489631B2 (en) | Distributing a query | |
Pääkkönen | Feasibility analysis of AsterixDB and Spark streaming with Cassandra for stream-based processing | |
Dao-Tran et al. | Towards Enriching CQELS with Complex Event Processing and Path Navigation. | |
Shi et al. | Partitioning dynamic graph asynchronously with distributed FENNEL | |
Santipantakis et al. | RDF-Gen: generating RDF triples from big data sources | |
Brusco et al. | Deterministic blockmodelling of signed and two‐mode networks: A tutorial with software and psychological examples | |
Namiot et al. | On data stream processing in IoT applications | |
Moraru et al. | A system for publishing sensor data on the Semantic Web | |
Ernste | The networked gatekeeping process for news in the 21 st century | |
Przyjaciel-Zablocki et al. | Map-side merge joins for scalable SPARQL BGP processing | |
CN110069508A (zh) | 基于大数据的数据分析方法、装置及终端设备 | |
Nebot et al. | Towards Analytical MD Stars from Linked Data. | |
Gillani et al. | DIONYSUS: Towards Query-aware Distributed Processing of RDF Graph Streams. | |
Yahav et al. | eLinda: Explorer for Linked Data. |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |