问题描述
需要建议配置 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。