![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据仓库 分布式计算 数据库内核 PGSQL
文章平均质量分 69
iteye_6033
这个作者很懒,什么都没留下…
展开
-
ppg_fdw:如何使用pgsql构建mpp数据仓库
在前面的博文介绍了PG的hook和数据仓库的join算法之后,现在终于要推出干货了:ppg_fdw。(大家可以从githup:https://github.com/scarbrofair/ppg_fdw上下载代码和相关的简要说明文档)。 总的说来,ppg_fdw基于pgsql的hook和foreign data wrapper机制,力图使用透明的方式,使用PG构建一个mpp的数据...原创 2014-11-10 17:05:20 · 510 阅读 · 0 评论 -
ppg_fdw:如何使用pgsql构建mpp数据仓库(二)
(前面由于个人事情较多,所以暂停了博客,现在继续)。 由于PG本身就是个庞大的基础软件,ppg_fdw调用了大量的PG内部的接口,因此很难一行行代码来介绍(上周一个QA同事让我给他讲解代码,被善意的拒绝了。主要是觉得这个完全不可行,因为本身代码比较凌乱,使用了PG的hook机制,目前关于这方面资料比较少,如果没有这方面的基础,很难理解)。因此,在这里,将简单的介绍整体的架构,并且通...原创 2014-12-03 16:23:22 · 535 阅读 · 0 评论 -
ppg_fdw:如何使用pgsql构建mpp数据仓库(三)
在简单描述了ppg_fdw的架构和工作流程之后,下面将会结合TPCH的实例来描述设计思想。 前面已经提到TPCH是一个工业界认可的标准测试集合(包括数据和SQL的模板),主要用来测试OLAP系统的性能。用户可以用TPCH来生成测试的数据和SQL实例。TPCH的DW模型是一个典型的星座模型,其中lineitem和orders表示fact表,其余的6张表:customer nation ...原创 2014-12-03 16:25:54 · 234 阅读 · 0 评论 -
ppg_fdw:如何使用pgsql构建mpp数据仓库(四)
[size=large]Join的处理[/size] Join的处理在数据库中占有相当重要的地位。一般来说,在查询优化阶段,PGSQL会首先调用reduce_outer_joins函数来尽量消灭外连接:例如将全外连接转成左、右外连接(或者反左右连接)甚至是内连接,将左右外连接转化成内连接;接着PG会使用动态规划算法来选择一条cost最小的path来确定执行join的先后顺序。 ...原创 2014-12-03 16:28:07 · 174 阅读 · 0 评论 -
ppg_fdw:如何使用pgsql构建mpp数据仓库(五)
[size=large]子查询的处理[/size] 说实话,本人在没看PG之前,一直看mysql的文档里面讲子查询,什么From、drived子查询啥的,一直晕乎乎的。但是在看了PG代码之后,终于感觉略微明白了点。 具体说来,SQL里面,出现在rtable里面的子查询才可以称为是subquery,而出现在过滤条件(例如expression)中的被称为sublink。...原创 2014-12-03 16:38:04 · 181 阅读 · 0 评论 -
ppg_fdw:如何使用pgsql构建mpp数据仓库(六)
[size=large]对order by 和limit的处理[/size] 对于某些SQL来说,最后需要处理的operator就是order by以及limit。例如下面这个SQL: [code="SQL"] select l_returnflag, l_linestatus, sum(l_quantity) as sum_...原创 2014-12-03 16:39:43 · 247 阅读 · 0 评论