DataX读取Oracle写入Hive之orc存储格式

1、脚本

{
	"core": {
		"transport": {
			"channel": {
				"speed": {
					"byte": 10485760,
					"record": 100000
				}
			}
		}
	},
	"job": {
		"content": [{
			"reader": {
				"name": "oraclereader",
				"parameter": {
					"column": [
						"BJBH",
						"SXBM",
						"SXMC",
						"BJLX",
						"SQR",
						"SQZJLX",
						"SQZJHM",
						"LXR",
						"LXRZJLX",
						"LXRZJHM",
						"LXDH",
						"LXYZBM",
						"LXTXDZ",
						"FDDBR",
						"SQLY",
						"SQSJ",
						"XMBH",
						"BJZT",
						"ID",
						"OID",
						"QHDM",
						"JGDM",
						"CJSJ",
						"GXSJ",
						"FLAG",
						"EXCHANGE",
						"DATA_UP_UUID",
						"DATA_UP_TIME",
						"DATA_UP_STATUS",
						"PBSNUM",
						"SCKQZSJ"
					],
					"connection": [{
						"jdbcUrl": ["jdbc:oracle:thin:@//ip:1521/orcl"],
						"table": ["BUSINESS_INDEX"]
					}],
					"splitPk": "",
					"password": "root",
					"username": "123456"
				}
			},
			"writer": {
				"name": "hdfswriter",
				"parameter": {
					"column": [{
							"name": "bjbh",
							"type": "STRING"
						},
						{
							"name": "sxbm",
							"type": "STRING"
						},
						{
							"name": "sxmc",
							"type": "STRING"
						},
						{
							"name": "bjlx",
							"type": "STRING"
						},
						{
							"name": "sqr",
							"type": "STRING"
						},
						{
							"name": "sqzjlx",
							"type": "STRING"
						},
						{
							"name": "sqzjhm",
							"type": "STRING"
						},
						{
							"name": "lxr",
							"type": "STRING"
						},
						{
							"name": "lxrzjlx",
							"type": "STRING"
						},
						{
							"name": "lxrzjhm",
							"type": "STRING"
						},
						{
							"name": "lxdh",
							"type": "STRING"
						},
						{
							"name": "lxyzbm",
							"type": "STRING"
						},
						{
							"name": "lxtxdz",
							"type": "STRING"
						},
						{
							"name": "fddbr",
							"type": "STRING"
						},
						{
							"name": "sqly",
							"type": "STRING"
						},
						{
							"name": "sqsj",
							"type": "DATE"
						},
						{
							"name": "xmbh",
							"type": "STRING"
						},
						{
							"name": "bjzt",
							"type": "Double"
						},
						{
							"name": "id",
							"type": "STRING"
						},
						{
							"name": "oid",
							"type": "STRING"
						},
						{
							"name": "qhdm",
							"type": "STRING"
						},
						{
							"name": "jgdm",
							"type": "STRING"
						},
						{
							"name": "cjsj",
							"type": "DATE"
						},
						{
							"name": "gxsj",
							"type": "DATE"
						},
						{
							"name": "flag",
							"type": "STRING"
						},
						{
							"name": "exchange",
							"type": "STRING"
						},
						{
							"name": "data_up_uuid",
							"type": "STRING"
						},
						{
							"name": "data_up_time",
							"type": "DATE"
						},
						{
							"name": "data_up_status",
							"type": "STRING"
						},
						{
							"name": "pbsnum",
							"type": "STRING"
						},
						{
							"name": "sckqzsj",
							"type": "DATE"
						}
					],
					"hadoopConfig": {
						"fs.hdfs.impl.disable.cache": "true"
					},
					"compress": "NONE",
					"defaultFS": "hdfs://node01:8020",
					"fieldDelimiter": "|",
					"fileName": "business_index",
					"fileType": "orc",
					"path": "/user/hive/warehouse/mask_data.db/business_index",
					"writeMode": "append"
				}
			}
		}],
		"setting": {
			"errorLimit": {
				"record": 0,
				"percentage": 0
			},
			"speed": {
				"byte": 20971520,
				"channel": 3,
				"record": 200000
			}
		}
	}
}

DataX(阿里开源)是一个离线数据同步工具,它可以高效、稳定地从各种数据源(如Oracle、MySQL、HDFS等)将数据迁移或同步到其他目的地(例如Hive、MaxCompute等)。对于OracleDataX支持读取Oracle数据库中的表数据,并将其写入到其他支持的目标系统中。 具体使用DataX连接Oracle的过程通常包括以下步骤: 1. **配置连接参数**:在DataX的配置文件(通常是`datax.yaml`)中,你需要设置`job.type`为`reader`和`writer`,然后指定`reader.jdbc.url`为Oracle数据库的URL,`reader.jdbc.username`和`reader.jdbc.password`为相应的用户名和密码。 ```yaml job: type: transfer # Oracle reader configuration readers: - name: orc_reader sql: SELECT * FROM your_table jdbc: url: "jdbc:oracle:thin:@your_host:port/service_name" username: your_username password: your_password # Oracle writer configuration (for example, writing to HDFS or Hive) writers: - name: hdfs_writer type: hive ... ``` 2. **定义SQL查询**:`sql`字段中定义了从Oracle读取数据的SQL语句。 3. **指定目标系统**:根据你的需求,选择合适的writer类型(如HDFS、Hive、MaxCompute等),并配置对应的属性。 4. **执行任务**:运行DataX命令行工具(`bin/datax.sh`或`bin/datax.bat`)启动数据同步任务。 5. **错误处理和监控**:确保配置正确后,DataX会在运行过程中输出日志,遇到问题时检查日志可以帮助定位问题。 关于DataX连接Oracle的更多细节,可能涉及到JDBC驱动的选择(ojdbc7或ojdbc8)、批量加载设置、事务管理等问题。如果你有特定的问题,比如配置上的疑问或是遇到了某个错误,请详细描述一下,我会提供更具体的帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值