Greenplum 并行下载转储到本地集群

Posted

技术标签:

【中文标题】Greenplum 并行下载转储到本地集群【英文标题】:Greenplum download dump to local cluster in parallel 【发布时间】:2016-12-21 14:00:36 【问题描述】:

有没有比通过多个 JDBC 连接到主节点更有效的方法来获取整个 Greenplum 的转储?

我需要通过 JDBC 下载 Greenplum 的整个转储。为了更快地完成这项工作,我将使用 Spark 并行性(通过多个 JDBC 连接并行获取数据)。据我了解,我将有多个 JDBC 连接到 Greenplum 的单个主节点。我将以 parquet 格式将数据存储在 HDFS 中。

【问题讨论】:

【参考方案1】:

对于并行导出,您可以尝试 gphdfs 可写外部表。 Gpdb 段可以并行写入/读取外部源。

http://gpdb.docs.pivotal.io/4340/admin_guide/load/topics/g-gphdfs.html

【讨论】:

感谢您的回答!但是可写外部表只支持 CSV 格式,对吗?有没有办法改变格式?我不想编写单独的 CSV 解析器。此外,这是一个更快的问题 - 1)通过 JDBC 下载或 2)获取 CSV 并将其保存在您的集群上,然后解析它 gphdfs 支持 parquet 文件。 gpdb.docs.pivotal.io/43110/admin_guide/load/topics/…如果你想用spark读取csv,dataframe或者dataset都可以直接读取csv。【参考方案2】:

现在,您可以使用 Greenplum-Spark 连接器来并行处理 Greenplum 段和 Spark 执行器之间的数据传输。

此 greenplum-spark 连接器利用 Greenplum 段和 Spark 工作器中的并行处理来加速数据传输。当然,它比使用 JDBC 连接器通过 Greenplum 主节点传输数据要快。

参考: http://greenplum-spark.docs.pivotal.io/100/index.html

【讨论】:

以上是关于Greenplum 并行下载转储到本地集群的主要内容,如果未能解决你的问题,请参考以下文章

Greenplum非并行数据迁移--pg_dump

Greenplum非并行数据迁移--pg_dump

Greenplum数据库中的索引和集群

Greenplum数据库中的索引和集群

greenplum 集群安装配置(生产环境)

将文件/URI并行加载到greenplum中的外部表