开源GIS实验田

OpenSource GIS Space

  • 内容导航

    Creative Commons
    本站文章全部原创
    转载请遵循创作共用协议
  • 最新评论

    • Gao Ang: 《OSGeo开源地理信息项目最新进展》...
    • Zhu Xiaoyang: 你好!我参加了您的讲座,想向您索...
    • Gao Ang: zhangtujin,OSGeo中国组织的所有讲座活...
    • zhangtujin: 请问个问题,今天报名参加了讲座,...
    • zhaoyang: 谢谢你,很实用。请问有没有Endnote文...
  • 热门主题

  • 随机阅读

    • 三月 2010
      « Feb    
      1234567
      891011121314
      15161718192021
      22232425262728
      293031  
    • GaoAng Profile

      GaoMiao's Portrait
      有了理想
      就不要寻找放弃的理由

      站点搜索

    • 只言片语

      “Facts are the enemy of truth.”-Don Quixote “Man of La Mancha”
    • 当你年轻的时候,初次踏上社会,容易掉眼泪,当你年老的时候,快要离开人间,也容易掉眼泪。 ——威尔基·柯林斯

    DQP分布式查询执行过程

    1st 一月 2010

    作者: Gao Ang 可以转载,请以超链接标明原始出处和作者信息及版权声明
    网址: http://www.gaoang.com/archives/149

    数据访问集成中间件OGSA-DAI,在最新3.2.x版本中,已整合了分布式查询中间件DQP。DQP的作用是将分布式异构的关系型数据库通过数据服务进行集成,使客户端在SQL查询中访问多个数据源,如同操作单一数据源中多个不同的数据表。

    在DQP分布式查询执行前,首先要获取已配置数据资源的schema表结构,并在获取的每个schema表名前加入相应的数据源前缀,以便在将分布式数据源整合后的虚拟数据库中进行标识。

    DQP查询并不支持所有SQL查询的函数和操作符,其查询语法支持SQL 92标准的 子集。在分布式查询过程中,DQP中间件并不存储任何本地数据,而是根据提交的查询请求串,将解析后的子查询提交给相应的后端数据库资源的DAI服务来获取数据。

    当DQP接收到查询请求串时,根据DQP支持的SQL语法进行解析,并通过查询解析生成抽象语法树(Abstract Syntax Tree)。SQL执行所依据的查询计划也根据抽象语法树获得,并在初始查询计划的基础上进行效率优化。优化后的查询计划被DQP中间件分发给数据源对应的数据服务,并调用服务后端的OGSA-DAI工作流来并行执行子查询过程。

    对于DAI单数据源查询,中间件会将整串SQL语句推送给后端数据库解析执行,而DQP分布式查询,需要将查询解析后分发,所以如果在DQP查询中嵌入自定义标量(Scalar)或聚合(Aggregate)函数,需在DQP中间件中进行功能拓展实现。另外,DQP提供使用 Graphviz生成查询计划的方法,只需在部署后的DQP配置文件DQPCompilerConfig.xml中添加VisualiseOptimiser类,并指定DOT和PNG输出路径,即可生成可视的SQL执行查询计划图。

    Leave a Reply

    XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>