datax同步oracle数据到pg

{
	"job": {
		"setting": {
			"speed": {
				"channel": 1
			},
			"errorLimit": {
				"record": 0,
				"percentage": 0.02
			}
		},
		"content": [{
			"reader": {
				"name": "oraclereader",
				"parameter": {
					"username": "xxxxx",
					"password": "xxxxx",
					"column": [
                            "REPLACE(REPLACE(REPLACE(xxxx1,chr(9),''),chr(10),''),chr(13),'')"
                          , "REPLACE(REPLACE(REPLACE(xxxx2,chr(9),''),chr(10),''),chr(13),'')"
                          , "REPLACE(REPLACE(REPLACE(xxxx3,chr(9),''),chr(10),''),chr(13),'')"
                          , "to_char(日期1,'yyyy-MM-dd HH24:mi:ss')"
                          , "to_char(日期2,'yyyy-MM-dd HH24:mi:ss')"

					],
					"splitPk": "xxxx1",
					"connection": [{
						"table": [
							"table1"
						],
						"jdbcUrl": [
							"jdbc:oracle:thin:@192.168.x.xx:1522/test"
						]
					}]
				}
			},
			"writer": {
				"name": "postgresqlwriter",
				"parameter": {
					"username": "xxxxx",
					"password": "xxxxxxx",
					"column": [
						 "xxxx1"
                        ,"xxxx2"
                        ,"xxxx3"
                        ,"time1"
                        ,"time2"
                              ],
					"preSql": ["truncate table ods.xxxxxxxx"],
					"connection": [{
						"jdbcUrl": "jdbc:postgresql://172.xx.xx.xx:999/test",
						"table": ["ods.xxxxxxxx"]
					}]
				}
			}
		}]
	}
}

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
DataX抽取Oracle数据时,如果字段中存在分隔符,可以采取以下解决方案。首先,可以修改建分隔符,使用alter table语句将建分隔符修改为与导入时的分隔符一致。例如,可以使用以下语句修改建分隔符: ``` alter table table_name set serdeproperties('field.delim'='\t'); ``` 另外,也可以在建时直接指定好分隔符,使用create table语句创建时,通过row format delimited fields terminated by语句指定字段的分隔符。例如: ``` create table table_name( column1 datatype, column2 datatype ) row format delimited fields terminated by '\t'; ``` 此外,还需要注意分区和无分区的区别。对于分区,需要在建语句中添加partitioned by语句指定分区字段。 另外,如果目标的存储格式为textfile,默认的列分隔符为\001,默认的行分隔符为\n。如果在Oracle数据中存在\n作为行分隔符,会导致字段错位和数据量增加。为了解决这个问题,可以将源数据中的\n替换为其他字符,或者在导入时指定行分隔符为其他字符。 最后,如果需要在DataX中指定筛选条件,可以使用MysqlReader,并根据指定的column、table和where条件拼接SQL进行数据抽取。在实际业务场景中,通常会选择同步当天的数据,可以将where条件指定为gmt_create > $bizdate。需要注意的是,不可以将where条件指定为limit 10,因为limit不是SQL的合法where子句。 综上所述,可以通过修改建分隔符、指定分隔符、替换行分隔符以及指定筛选条件等方式解决DataX抽取Oracle数据字段中存在分隔符的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据私房菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值