使用PXF将数据从MySQL迁移到GreenPum

问题描述

需要建议配置 pxf 线程和JVM内存。 我正在尝试将MysqL数据库中的300 GB表加载到 Greenplum (开放源代码)服务器中,该服务器的所有段均位于单个主机上,总可用内存为62 GB。由于其性质,无法采用数据分割策略(我的意思是需要一次加载300 GB数据)。

如何在 pxf 线程上应用自动提交或建议其他策略?

系统配置如下:

8个GP段,具有62 GB的物理RAM和8 GB的交换空间

解决方法

什么是Greenplum版本? 用于Greenplum 6的mysql_fdw(https://github.com/adam8157/mysql_fdw_greenplum)的修改版可以从master连接到mysql。它不需要JVM。 但是,您需要自己构建扩展。

,

很抱歉收到延迟回复,但是花了一些时间调查此问题。

我认为问题的根本原因在于PXF使用连接池来访问外部数据库系统上的数据。默认情况下,maximum number of actual connections to the database backend为5。这意味着,在您的情况下,在30个段中,有8个段中的3个将最多等待30秒(default timeout)从池中获取连接。查询将失败的秒数。我相信这就是导致您的错误的原因。

我的建议是将jdbc.pool.property.maximumPoolSize的值增加到10。如果有并发请求,则需要将该数字乘以并发请求数。另外,您可以通过将jdbc.pool.enabled属性设置为false来禁用用例的连接池。

请查看文档以获取PXF中的更多信息about JDBC connection pooling

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...