Greenplum 中的并行数据加载
Posted
技术标签:
【中文标题】Greenplum 中的并行数据加载【英文标题】:Parallel Data Loading in Greenplum 【发布时间】:2012-11-21 04:56:21 【问题描述】:Greenplum 说它具有并行数据加载功能。我对它的工作原理有疑问。请务必向我解释。我知道记录是并行读取的,但我不明白并行写入是如何完成的。并行写入是在同一个数据库上完成还是在不同的数据库(段)上完成?请解释一下。谢谢
【问题讨论】:
-1:这在管理指南第 12 章“加载和卸载数据”中进行了解释 【参考方案1】:并行写入在不同的段上完成,数据由 ETL 服务器上运行的 1 个或多个 gpfdist 实例提供。我怀疑魔法的重要部分是distributed by
扩展,它用于将数据库的行分散到段服务器中。
【讨论】:
【参考方案2】:在 gpfdist 或 gphdfs 的帮助下,可以在段级别完成并发读/写。
例如,如果您想将数据卸载到磁盘上的文件,您可以使用连接到多个 gpfdist 位置的可写外部表,并且每个数据段会将数据并行写入这些目标。
【讨论】:
【参考方案3】:约翰是对的。
默认情况下,每个 gpfdist 实例将处理 4 个并发连接。 加载时,每个有连接的段将读取它们的“块”数据并根据表的分布散列进行处理。
见:https://blog.2ndquadrant.com/parallel_etl_with_greenplum/
【讨论】:
以上是关于Greenplum 中的并行数据加载的主要内容,如果未能解决你的问题,请参考以下文章
GreenPlum数据的装载与卸载之外部表以及gpfdist工具的使用
使用 MapReduce 或 Sqoop 将数据加载到 Greenplum DB
Datastage 作业使用 ODBC Greenplum Wire Protocol 驱动程序使 netezza 无法加载到 greenplum 数据