CN107291954B - 一种基于MapReduce的OCL并行查询方法 - Google Patents
一种基于MapReduce的OCL并行查询方法 Download PDFInfo
- Publication number
- CN107291954B CN107291954B CN201710630057.3A CN201710630057A CN107291954B CN 107291954 B CN107291954 B CN 107291954B CN 201710630057 A CN201710630057 A CN 201710630057A CN 107291954 B CN107291954 B CN 107291954B
- Authority
- CN
- China
- Prior art keywords
- object attribute
- query
- processing
- mapreduce
- parallel
- 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.)
- Active
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/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于MapReduce的OCL并行查询方法,包含对象属性集提取和并行查询结果构造两个步骤,所述对象属性提取是基于Hadoop的InputFormat,根据实际查询要求选取OCL规则库中特定的OCL对象属性片段构建OCL对象属性集合;所述并行查询结果构造是对对象属性进行筛选并获取结果,需要依据实际的查询情况建立对应的Mapreduce任务,最后将符合查询条件的对象属性传递给结果构造器,构造器构造最终的结果。本发明提出的基于MapReduce的OCL并行查询方法OPQM,克服了传统的基于单节点的OCL查询方法已经无法高效地完成大规模的查询任务的问题,提高OCL查询的速度。
Description
技术领域
本发明属于OCL查询领域,尤其涉及一种基于MapReduce的OCL并行查询方法OPQM。
背景技术
近年来,大规模计算机应用发展迅速,社交网络、电子商务、数字城市等许多应用领域中产生了规模巨大的数据,这些应用数据不光存储量大,而且增长速度也非常迅猛,呈海量形式发展。
为了解决上述问题,Google公司在2006年提出了“云计算”的概念。美国国家标准与技术研究院(NIST)对云计算进行了定义,将云计算定义为一种借助互联网实现按需、随地、便捷地访问共享资源池的计算模式。云计算重要的表现形式就是计算机资源服务化,它可以为用户屏蔽许多问题,比如数据中心管理、大规模数据处理、应用程序部署等。通过云计算,用户可以依据自己的业务负载即时申请或者释放资源,并通过按需支付的方式对所使用的资源付费,既能够提高服务质量又可以降低运维成本。云计算是信息产业的一大创新模式,一经提出就获得了各个领域的广泛关注。
MapReduce是一种在大规模计算机集群上处理海量数据的并行计算模型,目前在谷歌以及其他一些网络公司的许多项目中得到了广泛应用。Mapreduce计算模式是云计算核心计算模式,解决大规模数据的处理问题。它是数据密集型的并行计算模型,即特别适合于处理大规模海量数据。它作为大规模数据处理问题的解决方案,在设计开始的时候将局部性原理列入考虑的范围,通过运用局部性原理实现问题的分而治之。Mapreduce集群构建在普通PC机器群上。Mapreduce既是一个并行计算模型,也是一种并行计算框架。
对象约束语言(OCL,Object Constraint Language)是在UML中特别用来对约束和规则进行说明的语言。OCL语言尽管是一种形式化语言,但是它持有易读、易写等特点,主要有两个作用:一是对模型进行语义约束,二是对模型的查询。OCL用于查询时,主要是用于根据对象属性查询满足约束条件的对象,并且在查询时可以对图中的任何元素写表达式。其中,对象属性是指与模型中对象有关的特征。由上述内容可得知,对于OCL的约束查询也就相当于对约束中所包含的OCL对象属性集合的查询。
随着越来越多的模型使用OCL语言进行约束定义,OCL约束变得越来越复杂,OCL规则库也相应地变得越来越大,基于单节点的OCL查询方法已经没有办法高效地处理大量的查询任务。所以,目前亟需一种可以高效处理大量OCL规则库的方法。OCL规则库可以转换为XML描述,那么如何对OCL规则库进行查询优化,就可以参考有关XML文档查询的优化。
云计算的出现给OCL的查询带来了新的机遇,使用MapReduce等并行编程框架能够简化海量数据的处理模型。同时,云计算能够快速部署的虚拟服务器,以此实现基础设施的按需分配。
发明内容
本发明所要解决的技术问题在应对海量数据带来的挑战的背景下如何提高OCL查询的速度,为此提出一种基于MapReduce的OCL并行查询方法OPQM(OCL Parallel QueryMethod)。
本发明为解决上述技术问题采用的技术方案为一种基于MapReduce的OCL并行查询方法,其包含对象属性集提取和并行查询结果构造两个步骤,所述对象属性提取是基于Hadoop的InputFormat,根据实际查询要求选取OCL规则库中特定的OCL对象属性片段构建OCL对象属性集合;所述并行查询结果构造是对对象属性进行筛选并获取结果,需要依据实际的查询情况建立对应的Mapreduce任务,最后将符合查询条件的对象属性传递给结果构造器,构造器构造最终的结果。
进一步,上述对象属性集提取具体包含以下步骤:
步骤1:定位block,首先定位到原始的OCL规则库对应的所有block上;
步骤2:处理block,对步骤1定位到的并且存储于本节点上的block进行处理;
步骤3:处理对象属性,对当前处理的block上所有对象属性进行处理;
步骤4:验证对象属性,验证当前的对象属性是否属于指定的OCL对象属性;
步骤5:如果当前的对象属性属于指定的OCL对象属性,将该对象属性插入对象属性集合,否则,将此对象属性遗弃。
进一步,上述并行查询结果构造具体包含以下步骤:
步骤1:依据实际的查询情况建立对应的MapReduce任务,所有的对象属性将以流的形式传递给Mapper进行处理,进行筛选;
步骤2:最后将符合查询条件的对象属性传递给结果构造器,构造最终的结果。
Mapper进行处理之后在进行最终结果的构建之前还可以进行洗牌。
每个Mapreduce任务可以处理一个或若干个查询条件,以此来筛选对象属性。
本发明采用以上技术方案与现有技术相比,具有以下技术效果:
1,本发明通过提取OCL对象属性集合,实现从OCL规则库查询到OCL对象属性查询的转化,并利用MapReduce实现了对象属性并行验证。
2,本发明提出的基于MapReduce的OCL并行查询方法OPQM,克服了传统的基于单节点的OCL查询方法已经无法高效地完成大规模的查询任务的问题,提高OCL查询的速度。
3,本发明提出的OPQM方法有助于应对OCL海量规则库查询带来的挑战。
附图说明
图1是本发明的OCL查询对象的转换。
图2是Mapreduce体系流程图。
图3是本发明的并行查询过程。
具体实施方式
下面结合说明书附图及具体实施例对本发明的技术方案做进一步的详细说明。具体实施方式描述如下:
整个OCL并行查询包括对象属性提取和并行查询处理这个两个部分。
并行处理模型面对的处理对象必须可以拆分,也就是说这些处理对象能够被分成若干个子对象,这样才能同时被不同的机器处理。云计算中的Mapreduce模型也是如此,它的原理是将一个大文件分割成多个独立的Spilits。
为了让OCL规则库可以有效地在云计算的环境下进行并行查询,就需要对OCL规则库进行预处理,即对OCL规则库提取对象属性,并由此组成OCL对象属性集合,用集合来替代原来的OCL规则库作为云计算并行模型中的输入数据。
在Mapreduce并行模型中,这些对象属性集合就会被分割成多个独立的Spilits,然后若干个Spilits将被分配到不同的Map处理器上进行处理,每个Spilits经过Map函数处理之后,还会有一个洗牌(shuffle)过程,之后才进行相应的Reduce任务。
1.对象属性集提取过程
步骤1:定位block,首先定位到原始的OCL规则库对应的所有block上。
步骤2:处理block,对步骤1定位到的并且存储于本节点上的block进行处理。
步骤3:处理对象属性,对当前处理的block上所有对象属性进行处理。
步骤4:验证对象属性,当前的对象属性是否属于我们指定OCL的对象属性。
步骤5:如果当前的对象属性属于我们指定OCL的对象属性,将该对象属性插入对象属性集合,否则,将此对象属性遗弃。
OCL查询对象的转换过程的具体情形如图1所示。
本发明使用的对象属性集提取是基于Hadoop的InputFormat,根据实际查询要求,选取OCL规则库中特定的OCL对象属性片段构成OCL对象属性集合。
通过预处理对OCL规则库提取对象属性,利用fileName,nodeName进行提取。其中fileName是OCL原始规则库名(该规则库是预先存储在HDFS中的),nodeName是提取节点名,也就是OCL对象属性名。
OCL规则库存储于HDFS(Hadoop Distribute File System),我们需要对规则库所在的所有快块进行并行遍历,得到满足条件的所有对象属性,用其构成对象属性集合。2.并行查询处理过程
步骤6:依据实际的查询情况建立对应的Mapreduce任务,所有的对象属性将以流(streamlike)的形式传递给Mapper进行处理,进行筛选
步骤7:最后将符合查询条件的对象属性传递给结果构造器,构造器构造最终的结果。
OCL并行查询输入的数据实际上是OCL对象属性集合。根据上述可知,预处理阶段根据标签对从OCL规则库中获得符合条件的OCL片段,并组合成了OCL对象属性集合。在完成预处理后,OCL并行查询剩下的工作就是对对象属性进行筛选并获取结果,需要依据实际的查询情况建立对应的Mapreduce任务。
Mapreduce计算模式是云计算核心计算模式,解决大规模数据的处理问题。它作为大规模数据处理问题的解决方案,在设计开始的时将局部性原理列入考虑的范围,通过运用局部性原理实现问题的分而治之。Mapreduce集群构建在普通PC机器群上。在处理之前,进行数据的分割,且将数据集分布至各个节点。处理时,每个节点就近读取本地存储的数据处理(Map),将处理后的数据进行整理排序后,接着使用对整理排序的结果进行合并再分发Reduce进行处理如图2所示。
在Mapreduce任务中,所有的对象属性将以流(streamlike)的形式传递给Mapper或Reducer处理器进行处理,经过Map函数处理之后,还会有一个洗牌(shuffle)过程,,之后才进行相应的Reduce任务进行最终结果的构建。
OCL查询会被查询处理器转换成一组Mapreduce任务,其中的每个Mapreduce任务可以处理一个或若干个查询条件,以此来筛选对象属性。最后将符合查询条件的对象属性传递给结果构造器,构造器构造最终的结果。
以查询年龄不小于25的Owner为例,该查询可以理解为这样一个简单Mapreduce任务:Mapper处理器将传入进来的Owner进行进行筛选,如果当前处理的Owner对象年龄年龄小于25就将其忽略掉,如果Owner年龄大于25就会被传递给Reducer处理器进行结果构造。具体情形如图3所示。在上述的查询过程中,Mapper1-Mapper3所处理的Owner1-Owner6这6个对象,其中只有Owner1、Owner4、Owner5满足查询条件,所以只有这3个OCL片段被传送到Reduce端进行结果构造并输出。
实际工作中涉及的OCL查询要比上图所示内容复杂得多,查询处理器将需要把OCL查询转换成许多个Mapreduce任务的组合,完成对规则库的筛选,并对所有符合查询条件的OCL片段进行最终的构造。
Claims (1)
1.一种基于MapReduce的OCL并行查询方法,其特征在于包含对象属性集提取和并行查询结果构造两个步骤,所述对象属性提取是基于Hadoop的InputFormat,根据实际查询要求选取OCL规则库中特定的OCL对象属性片段构建OCL对象属性集合;所述并行查询结果构造是对对象属性进行筛选并获取结果,需要依据实际的查询情况建立对应的Mapreduce任务,最后将符合查询条件的对象属性传递给结果构造器,构造器构造最终的结果;
对象属性集提取具体包含以下步骤:
步骤1:定位block,首先定位到原始的OCL规则库对应的所有block上;
步骤2:处理block,对步骤1定位到的并且存储于本节点上的block进行处理;
步骤3:处理对象属性,对当前处理的block上所有对象属性进行处理;
步骤4:验证对象属性,验证当前的对象属性是否属于指定的OCL对象属性;
步骤5:如果当前的对象属性属于指定的OCL对象属性,将该对象属性插入对象属性集合,否则,将此对象属性遗弃;
并行查询结果构造具体包含以下步骤:
步骤1:依据实际的查询情况建立对应的MapReduce任务,所有的对象属性将以流的形式传递给Mapper进行处理,进行筛选;
步骤2:最后将符合查询条件的对象属性传递给结果构造器,构造最终的结果;
Mapper进行处理之后在进行最终结果的构建之前还能够进行洗牌;
每个Mapreduce任务能够处理一个或若干个查询条件,以此来筛选对象属性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710630057.3A CN107291954B (zh) | 2017-07-28 | 2017-07-28 | 一种基于MapReduce的OCL并行查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710630057.3A CN107291954B (zh) | 2017-07-28 | 2017-07-28 | 一种基于MapReduce的OCL并行查询方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107291954A CN107291954A (zh) | 2017-10-24 |
CN107291954B true CN107291954B (zh) | 2020-07-31 |
Family
ID=60102488
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710630057.3A Active CN107291954B (zh) | 2017-07-28 | 2017-07-28 | 一种基于MapReduce的OCL并行查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107291954B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102033748A (zh) * | 2010-12-03 | 2011-04-27 | 中国科学院软件研究所 | 一种数据处理流程代码的生成方法 |
CN102622446A (zh) * | 2012-03-19 | 2012-08-01 | 南京大学 | 一种基于Hadoop的并行k近邻分类方法 |
CN102750367A (zh) * | 2011-12-29 | 2012-10-24 | 中华电信股份有限公司 | 在云端平台的大数据检核系统及其方法 |
CN102779025A (zh) * | 2012-03-19 | 2012-11-14 | 南京大学 | 一种基于Hadoop的并行化PLSA方法 |
CN102915229A (zh) * | 2011-08-02 | 2013-02-06 | 腾讯科技(深圳)有限公司 | 一种分布式计算方法及系统 |
CN103412897A (zh) * | 2013-07-25 | 2013-11-27 | 中国科学院软件研究所 | 一种基于分布式结构的并行数据处理方法 |
CN104915430A (zh) * | 2015-06-15 | 2015-09-16 | 南京邮电大学 | 一种基于MapReduce的约束关系粗糙集规则获取方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9268815B2 (en) * | 2009-08-20 | 2016-02-23 | Hewlett Packard Enterprise Development Lp | Map-reduce and parallel processing in databases |
-
2017
- 2017-07-28 CN CN201710630057.3A patent/CN107291954B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102033748A (zh) * | 2010-12-03 | 2011-04-27 | 中国科学院软件研究所 | 一种数据处理流程代码的生成方法 |
CN102915229A (zh) * | 2011-08-02 | 2013-02-06 | 腾讯科技(深圳)有限公司 | 一种分布式计算方法及系统 |
CN102750367A (zh) * | 2011-12-29 | 2012-10-24 | 中华电信股份有限公司 | 在云端平台的大数据检核系统及其方法 |
CN102622446A (zh) * | 2012-03-19 | 2012-08-01 | 南京大学 | 一种基于Hadoop的并行k近邻分类方法 |
CN102779025A (zh) * | 2012-03-19 | 2012-11-14 | 南京大学 | 一种基于Hadoop的并行化PLSA方法 |
CN103412897A (zh) * | 2013-07-25 | 2013-11-27 | 中国科学院软件研究所 | 一种基于分布式结构的并行数据处理方法 |
CN104915430A (zh) * | 2015-06-15 | 2015-09-16 | 南京邮电大学 | 一种基于MapReduce的约束关系粗糙集规则获取方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107291954A (zh) | 2017-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11899681B2 (en) | Knowledge graph building method, electronic apparatus and non-transitory computer readable storage medium | |
CN109344223B (zh) | 一种基于云计算技术的建筑信息模型管理系统及方法 | |
CN108932588B (zh) | 一种前后端分离的水电站群优化调度系统及方法 | |
CN103927314B (zh) | 一种数据批量处理的方法和装置 | |
CN103309904A (zh) | 一种生成数据仓库etl 代码的方法及装置 | |
CN104572895A (zh) | MPP数据库与Hadoop集群数据互通方法、工具及实现方法 | |
CN103761337B (zh) | 非结构化数据处理方法及系统 | |
CN105871998A (zh) | 一种数据展示方法及装置 | |
Li et al. | The overview of big data storage and management | |
CN111126852A (zh) | 一种基于大数据建模的bi应用系统 | |
Mishra et al. | Cracking the monolith: Challenges in data transitioning to cloud native architectures | |
CN114036183A (zh) | 一种数据etl处理方法、装置、设备及介质 | |
CN118503350A (zh) | 一种提升大模型rag准确性的流程优化设计方法和系统 | |
CN114596046A (zh) | 一种基于业务中台及数据中台的统一数字模型的集成平台 | |
CN117009038B (zh) | 一种基于云原生技术的图计算平台 | |
Kaur et al. | Image processing on multinode hadoop cluster | |
CN107291954B (zh) | 一种基于MapReduce的OCL并行查询方法 | |
CN116450827A (zh) | 一种基于大规模语言模型的事件模板归纳方法和系统 | |
CN107505852B (zh) | 一种包含仿真信息的云制造服务描述文件的构建方法 | |
CN112580355B (zh) | 一种新闻资讯话题检测及实时聚合方法 | |
CN115168609A (zh) | 一种文本匹配方法、装置、计算机设备和存储介质 | |
Li et al. | A fast big data collection system using MapReduce framework | |
Jiang | Research and practice of big data analysis process based on hadoop framework | |
Tang et al. | Design of a data processing method for the farmland environmental monitoring based on improved Spark components | |
CN113421131A (zh) | 基于大数据内容智能营销系统 |
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 |