【发布时间】:2016-01-23 07:15:52
【问题描述】:
我想知道 SQL 连接在像 Greenplum 这样的 MPP 数据库中是如何工作的,如果我想连接分布在多个段节点上的两个大表,那么数据是如何处理的?
主节点是否从所有节点获取所有相关数据,然后加入并返回结果集?如果您要执行许多这些类型的表连接,这会不会成为一个很大的瓶颈?
我从here找到以下内容:
MPP 数据库尝试将数据分段到多个服务器,以便每个服务器节点可以独立于其他节点工作。例如,要在大表和小表之间执行 JOIN,MPP 数据库将在每个节点上存储大表中的行子集,以及整个小表的副本。然后每个节点可以独立于其他节点执行 JOIN,从而消除共享资源造成的瓶颈。这实现了大规模并行处理,其中一个大型查询可以分解为一组较小的查询,每个查询在单独的服务器上独立运行。
这专门讨论了连接一个小表,但没有提到连接两个大表..
【问题讨论】:
-
这个博客应该有助于理解:stackoverflow.com/questions/34960734/…
标签: database join greenplum bigdata