开源GIS实验田

OpenSource GIS Space

  • 内容导航

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

    • zhaiduo: 期待GO的web应用...
    • zdnet: 您好!去年8月您参加过我们ZDNET的优秀...
    • oschina: hi,此文已转贴到开源中国社区,网...
    • YUCHENG HU: MarkLogic 已经开始为各大出版机构进行...
    • Gao Ang: DITA的学习成本的确偏高,仅下载翻阅...
  • 热门主题

  • 随机阅读

    • September 2010
      M T W T F S S
      « Aug    
       12345
      6789101112
      13141516171819
      20212223242526
      27282930  
    • Gao Ang

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

      站点搜索

      • 8 Users Online
    • 只言片语

      “I would have made a good Pope.”-Richard M. Nixon (1913-1994)
    • 对于人类,要尽人道与仁善的义务。 ——孟德斯鸠

    DQP分布式查询执行过程

    1st January 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>