栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

DataX将HDFS数据迁移到Mysql中NULL值的处理

DataX将HDFS数据迁移到Mysql中NULL值的处理

出现该问题的原因,再hive中,null的存储时为"N",Mysql的null值就是null,所以再进行数据迁移的时候需要考虑该问题

方法一:

方法一采用修改源码:

具体实现代码块:

// it's all ok if nullFormat is null
// 解决datax抽hdfs数据到mysql之null值变成 N 或者 转换错误 的问题
if (columnValue.equals(nullFormat) || columnValue.equals("\N") ) {
	//LOG.info("********** string的 原始值 为 "+columnValue+" ******");
	columnValue = null;
}

此方法比较麻烦,且不一定能成功,建议采用方法二。

方法二:

方法二采用的是修改json配置文件

"nullFormat": "\N",

具体格式:

{
	"job": {
		"content": [
			{
				"reader": {
					"name": "hdfsreader",
					"parameter": {
						"column": [
							"*"
						],
						"nullFormat": "\N",
						"defaultFS": "hdfs://mycluster",
						"encoding": "UTF-8",
						"fieldDelimiter": "t",
						"fileType": "text",
						"path": "/spbdw/ads/xxx/*",
						"hadoopConfig": {
							...
						}
					}
				},
				"writer": {
					"name": "mysqlwriter",
					"parameter": {
						"column": [
							"dt",
							"company_name",
							"channel_name",
							"credit_amt",
							"update_time"
						],
						"connection": [
							{
								"jdbcUrl": "jdbc:mysql://xxxx:3306/test?useUnicode=true&characterEncoding=utf-8",
								"table": [
									"spb_company_credit_info"
								]
							}
						],
						"password": "123456",
						"username": "root",
						"writeMode": "replace"
					}
				}
			}
		],
		"setting": {
			"speed": {
				"channel": "1"
			}
		}
	}
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/673411.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号