【踩坑实录】-No enum constant com.alibaba.datax.plugin.writer.hdfswriter.SupportHiveDataType.LONG

目录

一、背景

二、定位问题

三、模板示例


一、背景

执行datax从pg库同步到hive库时发生报错

 ERROR WriterRunner - Writer Runner Received Exceptions:
    java.lang.IllegalArgumentException: No enum constant com.alibaba.datax.plugin.writer.hdfswriter.SupportHiveDataType.LONG

二、定位问题

从报错内容可知是因为枚举值出现了问题,关键词long,可知是数值类型有问题。仔细排查发现是json配置类型有问题,将bigint类型配置成了long。

三、模板示例

--从pg库同步到hive库

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "postgresqlreader",
                    "parameter": {
                        "connection": [
                            {
                                "jdbcUrl": ["jdbc:postgresql://ip:host/db_name"],
                                "querySql": ["SELECT col1,col2,col3 FROM public.table_name"],
                            }
                        ],
                        "username": "usr",
                        "password": "pwd"
                    }
                },
               "writer": {
                                "name": "hdfswriter",
                                "parameter": {
                                        "defaultFS": "hdfs://ip:host",
                                        "fileType": "orc",
                                        "path": "/warehouse/tablespace/external/hive/db_name.db/table_name",
                                        "fileName": "table_name",
                                         "column": [
                                            {"name":"col1","type":"bigint"},
                                            {"name":"col2","type":"string"},
                                            {"name":"col3","type":"double"}
                                                    ],
                                        "writeMode": "append/truncate",
                                        "fieldDelimiter": "\t",
                                        "encoding": "utf-8"
                                }
                        }
                }],
                "setting": {
                        "speed": {
                                "channel": "3"
                        },
                        "errorLimit": {
                                "record": 0,
                                "percentage": 0.02
                        }
}

--hive同步到pg

{
	"job": {
		"setting": {
			"speed": {
				"channel": 1
			},
        "errorLimit": {
            "record": 0,
            "percentage": 0.02
            }
		},
		"content": [{
			"reader": {
                    "name": "hdfsreader",
                    "parameter": {
                        "path": "/warehouse/tablespace/external/hive/db_name.db/table_name",
                        "defaultFS": "hdfs://ip:host",
                        "fileType": "orc",
                        "column": [
                               {"index": 0,"type": "string"},
                               {"index": 1,"type": "string"},
                               {"index": 2,"type": "string"}
                        ],
                        "fileType": "orc",
                        "encoding": "UTF-8",
                        "fieldDelimiter": "\t"
                    }

                },
			"writer": {
                    "name": "postgresqlwriter",
                    "parameter": {
                        "print": true,
                        "encoding": "UTF-8",
                        "username": "usr",
                        "password": "pwd",
                        "column": [       
                        "col1",           
                        "col2",              
                        "col3"
                    ],
                    "connection": [
                        {
                            "jdbcUrl": "jdbc:postgresql://ip:host/db_name",
                            "table": ["public.table_name"]
                        }
                    ],
                    "writeMode": "update (col1)"
					}
                }
            }
        ]
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值