通过PXF从PostgreSQL迁移至Greenplum:UUID与INET类型不支持问题
Greenplum PXF连接PostgreSQL时UUID/INET类型报错的解决方法
你当前使用的
pxfwritable_import格式化器是用于向Greenplum写入数据的场景(比如从外部存储导入数据到Greenplum),完全不适合读取PostgreSQL外部表的场景,这就是类型不支持报错的核心原因。解决问题必须更换格式化器,改用PXF专门用于JDBC读取的
pxfjdbc_import,同时配合PostgreSQL的JDBC配置:示例创建语句如下:
CREATE EXTERNAL TABLE gp_external_table ( field_name uuid, ip_addr inet ) LOCATION ('pxf://你的PostgreSQL主机:5432/数据库名/模式名/表名?PROFILE=postgres&USER=用户名&PASSWORD=密码') FORMAT 'CUSTOM' (FORMATTER='pxfjdbc_import');补充说明:
pxfjdbc_import会自动处理PostgreSQL与Greenplum之间的类型映射,包括UUID、INET这类特殊类型,前提是PXF服务已正确配置PostgreSQL的JDBC驱动(若未配置,需将postgresql.jar放到PXF节点的$PXF_BASE/lib目录下,然后重启PXF服务)。
内容的提问来源于stack exchange,提问作者Vlad Vlad
相关产品推荐
相关产品推荐

