CN103106261B - 基于窄带云数据服务的分布式查询方法 - Google Patents
基于窄带云数据服务的分布式查询方法 Download PDFInfo
- Publication number
- CN103106261B CN103106261B CN201310032993.6A CN201310032993A CN103106261B CN 103106261 B CN103106261 B CN 103106261B CN 201310032993 A CN201310032993 A CN 201310032993A CN 103106261 B CN103106261 B CN 103106261B
- Authority
- CN
- China
- Prior art keywords
- query
- service
- subquery
- data
- services
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于窄带云数据服务的分布式查询方法,所述方法包括如下步骤:首先对用户输入的查询进行分解,通过查询服务注册表中的服务名和服务地址实现对全局查询的分解;查询调度机制将云数据服务中的数据重组,使其具有连续读取特性,采用LFF算法对子查询进行调度;在子查询合并机制中设置检测计数器,根据子查询标识对同一全局查询的子查询进行合并。在网络传输中对查询语句和返回结果进行编码以节省带宽,采用霍夫曼编码对数据进行无损压缩。本发明适用于复杂巨系统的信息集成技术领域,主要应用于各类以窄带为中心的信息系统分布式信息关联查询。
Description
技术领域
本发明涉及信息集成技术领域,特别是涉及一种基于窄带云数据服务的分布式查询方法。
背景技术
随着以云计算为代表的分布式集成技术的发展,信息系统的一体化程度逐步提高,由多节点组成的复杂大系统(systemofsystems)综合集成模式逐步推广应用。复杂大系统的分布式查询已被广泛地用于数据密集型的应用程序,用户关心的数据存放于多个位置,而且是异构的、分散的和自治的,因此,需要提供一种集成数据资源的方法。
云计算通过互联网来提供动态易扩展且经常是虚拟化的资源。云计算中服务云软件即服务(SAAS)通过Internet提供软件的模式,将应用软件统一部署。软件厂商在向客户提供互联网应用的同时,也提供软件的离线操作和本地数据存储,让用户随时随地都可以使用其定购的软件和服务。
云计算技术在通信带宽受限的情况下,以及大系统分布式查询需求的牵引下,云计算资源的异构特性及其网络环境动态变化的特点给分布式查询处理技术带来了新的挑战,使得目前常用的服务云软件架构失去效率和性能,传统的技术已经不能满足云计算环境的需要。基于宽带服务云的分布式查询已有所研究,而在基于窄带服务云的分布式查询技术目前仍然是空白。
中国专利文献CN1573756于2005年02月02日公开了一种分布式查询引擎流水线方法和系统,该专利的内容是分布式查询引擎流水线体系结构,包括级联的分析引擎,这些分析引擎接收输入查询并且每个识别能够传递到执行引擎的输入查询部分。每个阶段重写该输入查询以去除已识别的部分并用占位符置换它。该专利是通过级联的分析引擎完成查询。
中国专利文献CN102521406A于2012年06月27日公开了一种海量结构化数据复杂查询任务的分布式查询方法和系统,该专利的内容是接收用户发出的查询任务并将查询任务分解为多个查询子任务;以及根据该多个查询子任务中的每个查询子任务,对分布式存储的数据并发执行分批次查询,并分布式返回查询到的结果集。该发明是根据查询条件,诸如数据分组操作、数据排序操作以及聚合函数对查询进行分解,并未提到对返回的子查询结果进行合并。
发明内容
发明目的:本发明提供一种基于窄带云数据服务的分布式查询方法,能够有效解决云计算技术通信带宽受限,适应云计算资源的异构特性及其网络环境的动态变化。
技术方案:一种基于窄带云数据服务的分布式查询方法,包括如下步骤:
步骤一、查询分解,根据云数据服务中的数据服务模块将全局查询细化为多个局部查询;
1)查询优化,采用启发式优化策略,对在同一个时间片内的查询做启发式优化,将不同时间片放在队列中,按先进先出的顺序执行;
2)分解查询语句,将查询语句变换为析取式,即多个与项组合的并集,每个与项对应一个数据服务模块;
3)查询注册表,查询分析器对查询语句分解后查询服务注册表,服务注册表中存储服务名和服务地址,用户的查询语句中包含服务名,查询分析器检测到服务名后在注册表中搜索具有相同服务名的记录,根据服务名得到服务地址,将子查询发送到该服务地址执行查询;
4)更新服务注册表,服务注册表包括服务名称、服务地址、服务类型、服务的创建时间、服务的执行状态;服务的执行状态有两种,正常或故障,分别用1、0表示,执行状态为1的服务要写入查询分析器的服务注册表中;注册机构中的控制器定时给数据服务模块发送心跳,若有响应信息返回,则该服务模块正常执行,否则服务关闭或停止服务;控制器根据数据服务模块心跳响应信息修改服务信息表,且定时给查询分析器发送更新信息,通知其更新服务注册表。
步骤二、查询调度执行,将云数据服务中的数据重组,使其具有连续读取特性,采用LFF算法对子查询进行调度,将子查询交给查询执行器,查询执行器在本地数据库查询,并将结果返回到霍夫曼编码器进行编码,接着将编码后的查询结果输入到查询分析器进行合并;
步骤三、查询结果合并,在子查询合并机制中设置检测计数器,根据子查询标识对同一全局查询的子查询进行合并。
实现基于窄带云数据服务的分布式查询方法的系统,包括客户端、查询分析模块、注册机构模块和云数据服务模块;
客户端提交查询请求,对所述查询请求进行查询分解,再输入到查询分析模块;查询分析模块将客户端的查询请求分解为多个子查询;子查询对云数据服务模块进行查询并返回查询结果;查询结果在查询分析模块中组合并交付给客户端。
本发明采用上述技术方案,具有以下有益效果:
在以服务为中心的体系结构中,数据源都被包装为服务,查询引擎需要访问元数据,以获得查询优化时所需要的信息。
服务云环境中数据源的统计信息是不准确的,而且环境不可预测及易变,只根据编译时得到的信息很难产生有效的查询计划,采用基于服务名的动态查询机制,可在真正查询时动态查询信息。
将传统服务的调用(SOAP)、路由和返回过程数据表示,采用二进制通用编码方式进行编码化,节省带宽。
附图说明
图1为本发明实施例的查询结构示意图;
图2为本发明实施例的查询分解机制示意图;
图3为本发明实施例的查询调度与执行机制示意图;
图4为本发明实施例的云数据服务数据重组示意图;
图5为本发明实施例的查询调度机制示意图;
图6为本发明实施例的查询结果合并机制示意图。
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
图1为本发明实施例的查询结构示意图,作为实施例,基于窄带云数据服务的分布式查询方法,包括如下步骤:
步骤一、查询分解,是根据云数据服务中的数据服务模块将全局查询细化为多个局部查询,图2为本发明实施例的查询分解机制示意图,具体步骤包括:
1)查询优化;查询优化采用启发式优化策略。尽早执行选择运算,降低后面关系处理的复杂度;尽早执行投影运算,减少关系处理和数据传输量。启发式优化策略的缺点是,既不是选择运算也不是投影运算的查询可能永远不会被执行,为了避免这种情况的发生,这里采用以时间片为单位进行查询优化。对在同一个时间片内的查询做启发式优化,将不同时间片放在队列中,按先进先出的顺序执行;
2)分解查询语句;全局查询语句有可能在单个数据服务模块中不能被完全理解,要想得到正确的结果,必须对全局查询进行分解。将查询语句变换为析取式,即多个与项组合的并集,每个与项对应一个数据服务模块。尽可能将查询条件分解到单数据服务查询中,减少数据传输和数据集成的开销。另外,将查询语句表示为多个与项的并集,合并时只需要将各个子查询返回结果做“或”运算即可。每个子查询需做标记,标明其所属的全局查询的子查询总数以及是第多少个子查询,方便合并时使用;
3)查询注册表;查询分析器对查询语句分解后查询服务注册表,服务注册表中存储服务名和服务地址。用户的查询语句中需包含服务名,查询分析器检测到服务名后在注册表中搜索具有相同服务名的记录,根据服务名得到服务地址,将子查询发送到该服务地址执行查询;
4)更新注册表;注册表最初是由人为存入的,该表中包含服务名和服务地址,由于数据服务模块是动态变化的,所以需要对服务注册表定时进行更新,另外云数据服务发生较大变化时也需要对服务注册表进行更新。
在注册机构中存有数据服务信息表,表中存放服务名称、服务地址、服务类型、服务的创建时间、服务的执行状态等。服务的执行状态有两种,正常或故障,分别用1、0表示,执行状态为1的服务要写入查询分析器的服务注册表中。注册机构中的控制器定时给数据服务模块发送心跳,若有响应信息返回,则该服务模块正常执行,否则服务关闭或停止服务;控制器根据数据服务模块心跳响应信息修改服务信息表,且定时给查询分析器发送更新信息,通知其更新服务注册表。考虑到网络通信原因也可能导致无心跳信息返回,控制器连续发送5次心跳均无响应信息返回则认为该数据服务模块出现故障。
步骤二、查询调度执行,采用多线程技术并行执行,三个线程分别完成重组排序、查询的调度和执行。图3为本发明实施例的查询调度与执行机制示意图,首先对云数据服务中的数据进行重组排序,使其具有C-Rproperty连续读取特性并依次存储在存储器中,查询调度机制从存储器中读取具有C-Rproperty的子查询交给查询执行器,查询执行器在本地数据库查询,并将结果返回到霍夫曼编码器进行编码,接着将编码后的查询结果输入到查询分析器进行合并;
其中,云数据服务中数据的重组是将数据相关的记录存放在存储器的连续区域中,减少查询时对数据的读取时间。图4为本发明实施例的云数据服务数据重组示意图;由图4可以看出,重组前查询Q1、Q2、Q3在page1和page2上的I/O操作各一次,平均I/O操作两次,重组后Q1在page1的I/O操作一次,Q2在page2上的I/O操作一次,Q3在page1和page2上的操作各一次,平均I/O操作1.33次;
查询调度采用LFF(Largest-Fit-First)算法对子查询进行调度,图5为本发明实施例的查询调度示意图,查询调度器将待执行的子查询按所需节点数排序,优先处理使用较多节点数的查询,减少云数据服务器中的资源浪费。
步骤三、查询结果合并,在子查询合并机制中设置检测计数器,根据子查询标识对同一全局查询的子查询进行合并。图6为本发明实施例的查询结果合并机制示意图,查询分析器从云数据服务模块接收编码后的子查询结果,对子查询结果解码后合并且返回给用户。合并流程为:解码器收到子查询结果并对其进行解码,检测计数器对解码后的子查询结果检测并计数;由于每个子查询执行时间的差异和网络通信延迟,统一全局查询的子查询结果返回时间不同,所以需要将子查询的总数和当前属于同一全局查询子查询的个数存入检测计数表中;当子查询的总数与当前个数相等时,该全局查询的所有子查询结果均已得到,此时可以进行查询结果的合并,查询分析器合并结果遵循A∪B规则(根据查询分解可知)。将合并后的结果返回给用户,完成查询。
实现基于窄带云数据服务的分布式查询方法的系统,包括客户端、查询分析模块、注册机构模块和云数据服务模块;
客户端提交查询请求,对所述查询请求进行查询分解,再输入到查询分析模块;查询分析模块将客户端的查询请求分解为多个子查询;子查询对云数据服务模块进行查询并返回查询结果;查询结果在查询分析模块中组合并交付给客户端。
Claims (2)
1.一种基于窄带云数据服务的分布式查询方法,其特征在于,包括如下步骤:
步骤一、查询分解,根据云数据服务中的数据服务模块将全局查询细化为多个局部查询;具体是:
1)查询优化,采用启发式优化策略,对在同一个时间片内的查询做启发式优化,将不同时间片放在队列中,按先进先出的顺序执行;
2)分解查询语句,将查询语句变换为析取式,即多个与项组合的并集,每个与项对应一个数据服务模块;
3)查询注册表,查询分析器对查询语句分解后查询服务注册表,服务注册表中存储服务名和服务地址,用户的查询语句中包含服务名,查询分析器检测到服务名后在注册表中搜索具有相同服务名的记录,根据服务名得到服务地址,将子查询发送到该服务地址执行查询;
4)更新服务注册表,服务注册表包括服务名称、服务地址、服务类型、服务的创建时间、服务的执行状态;注册机构中的控制器定时给数据服务模块发送心跳,若有响应信息返回,则该服务模块正常执行,否则服务关闭或停止服务;控制器根据数据服务模块心跳响应信息修改服务信息表,且定时给查询分析器发送更新信息,通知其更新服务注册表;
步骤二、查询调度执行,将云数据服务中的数据重组,使其具有连续读取特性,采用LFF算法对子查询进行调度,将子查询交给查询执行器,查询执行器在本地数据库查询,并将结果返回到霍夫曼编码器进行编码,接着将编码后的查询结果输入到查询分析器进行合并;
步骤三、查询结果合并,在子查询合并机制中设置检测计数器,根据子查询标识对同一全局查询的子查询进行合并;
所述步骤一中的4)更新服务注册表,服务的执行状态有两种,正常或故障,分别用1、0表示,执行状态为1的服务要写入查询分析器的服务注册表中。
2.实现如权利要求1所述的基于窄带云数据服务的分布式查询方法的系统,其特征在于:包括客户端、查询分析模块、注册机构模块和云数据服务模块;
客户端提交查询请求,对所述查询请求进行查询分解,再输入到查询分析模块;查询分析模块将客户端的查询请求分解为多个子查询;子查询对云数据服务模块进行查询并返回查询结果;查询结果在查询分析模块中组合并交付给客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310032993.6A CN103106261B (zh) | 2013-01-28 | 2013-01-28 | 基于窄带云数据服务的分布式查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310032993.6A CN103106261B (zh) | 2013-01-28 | 2013-01-28 | 基于窄带云数据服务的分布式查询方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103106261A CN103106261A (zh) | 2013-05-15 |
CN103106261B true CN103106261B (zh) | 2016-02-10 |
Family
ID=48314116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310032993.6A Active CN103106261B (zh) | 2013-01-28 | 2013-01-28 | 基于窄带云数据服务的分布式查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103106261B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103676742B (zh) * | 2013-12-16 | 2017-01-11 | 中国电子科技集团公司第四十一研究所 | 一种基于fpga的数据重组方法 |
CN104112008A (zh) * | 2014-07-16 | 2014-10-22 | 深圳市国泰安信息技术有限公司 | 一种多表数据关联查询优化方法和装置 |
CN107786527B (zh) * | 2016-08-31 | 2021-11-05 | 阿里巴巴集团控股有限公司 | 实现服务发现的方法及设备 |
CN108172299B (zh) * | 2017-12-25 | 2021-04-27 | 华中科技大学同济医学院附属协和医院 | 一种医疗数据远端计算系统及方法 |
CN110764698B (zh) * | 2019-09-29 | 2021-01-29 | 北京航空航天大学 | 信息收发方法及设备 |
CN110958180B (zh) * | 2019-11-14 | 2024-05-21 | 微民保险代理有限公司 | 网关路由方法、智能网关、电子设备及计算机存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521406A (zh) * | 2011-12-26 | 2012-06-27 | 中国科学院计算技术研究所 | 海量结构化数据复杂查询任务的分布式查询方法和系统 |
CN102857470A (zh) * | 2011-06-27 | 2013-01-02 | 腾讯科技(深圳)有限公司 | 一种网络传输系统、服务器和客户端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7472112B2 (en) * | 2003-06-23 | 2008-12-30 | Microsoft Corporation | Distributed query engine pipeline method and system |
-
2013
- 2013-01-28 CN CN201310032993.6A patent/CN103106261B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102857470A (zh) * | 2011-06-27 | 2013-01-02 | 腾讯科技(深圳)有限公司 | 一种网络传输系统、服务器和客户端 |
CN102521406A (zh) * | 2011-12-26 | 2012-06-27 | 中国科学院计算技术研究所 | 海量结构化数据复杂查询任务的分布式查询方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103106261A (zh) | 2013-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103106261B (zh) | 基于窄带云数据服务的分布式查询方法 | |
Isah et al. | A survey of distributed data stream processing frameworks | |
US10831562B2 (en) | Method and system for operating a data center by reducing an amount of data to be processed | |
Acun et al. | Parallel programming with migratable objects: Charm++ in practice | |
US9697262B2 (en) | Analytical data processing engine | |
CN103930875B (zh) | 用于加速业务数据处理的软件虚拟机 | |
Grover et al. | Data Ingestion in AsterixDB. | |
CN110908641B (zh) | 基于可视化的流计算平台、方法、设备和存储介质 | |
Hummer et al. | Elastic stream processing in the cloud | |
Yang et al. | Huge: An efficient and scalable subgraph enumeration system | |
Plale et al. | dQCOB: managing large data flows using dynamic embedded queries | |
CN104965689A (zh) | 一种cpu/gpu的混合并行计算方法及装置 | |
CN111209352A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
US9990403B2 (en) | System and a method for reasoning and running continuous queries over data streams | |
CN102137125A (zh) | 在分布式网络系统中处理跨任务数据的方法 | |
WO2013153027A1 (en) | Method and system for streaming processing in a map and reduce distributed computing platform | |
CN110096521A (zh) | 日志信息处理方法及装置 | |
Al-Sinayyid et al. | Job scheduler for streaming applications in heterogeneous distributed processing systems | |
Idris et al. | Context‐aware scheduling in MapReduce: a compact review | |
Sakr | Big data processing stacks | |
Kazemitabar et al. | Geostreaming in cloud | |
CN102193831A (zh) | 一种建立层次化的映射/归约并行编程模型的方法 | |
WO2013153029A1 (en) | Method and system for managing and processing data in a distributed computing platform | |
Cao et al. | Programming platforms for Big Data analysis | |
Ren et al. | Efficient shuffle management for DAG computing frameworks based on the FRQ model |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |