datax数据抽取csv到mysql

datax数据抽取

执行python datax.py -r streamreader -w streamwriter命令得到job的json模板 ![在这里插入图片描述](https://img-blog.csdnimg.cn/893860a55d5f40778a5010c76bc8c81f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAV19fX1dfX1c=,size_20,color_FFFFFF,t_70,g_se,x_16)
{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "mysqlreader",
                    "parameter": {
                        "querySql": "", #自定义sql,支持多表关联,当用户配置querySql时,直接忽略table、column、where条件的配置。
                        "fetchSize": "", #默认1024,该配置项定义了插件和数据库服务器端每次批量数据获取条数,该值决定了DataX和服务器端的网络交互次数,能够较大的提升数据抽取性能,注意,该值过大(>2048)可能造成DataX进程OOM
                        "splitPk": "db_id", #仅支持整形型数据切分;如果指定splitPk,表示用户希望使用splitPk代表的字段进行数据分片,如果该值为空,代表不切分,使用单通道进行抽取
                        "column": [], #"*"默认所有列,支持列裁剪,列换序
                        "connection": [
                            {
                                "jdbcUrl": ["jdbc:mysql://IP:3306/database?useUnicode=true&characterEncoding=utf8"], 
                                "table": [] #支持多张表同时抽取
                            }
                        ],
                        "password": "",
                        "username": "",
                        "where": "" #指定的column、table、where条件拼接SQL,可以指定limit 10,也可以增量数据同步,如果该值为空,代表同步全表所有的信息
                    }
                },
                "writer": {
                    "name": "mysqlwriter",
                    "parameter": {
                        "column": [], #必须指定字段名,字段类型,{"name":"","tpye":""}
                        "compress": "", #hdfs文件压缩类型,默认不填写意味着没有压缩。其中:text类型文件支持压缩类型有gzip、bzip2;orc类型文件支持的压缩类型有NONE、SNAPPY(需要用户安装SnappyCodec)。 
                        "defaultFS": "", #Hadoop hdfs文件系统namenode节点地址。
                        "fieldDelimiter": "", #需要用户保证与创建的Hive表的字段分隔符一致
                        "fileName": "", #HdfsWriter写入时的文件名,需要指定表中所有字段名和字段类型,其中:name指定字段名,type指定字段类型。 
                        "fileType": "", #目前只支持用户配置为”text”或”orc”
                        "path": "", #存储到Hadoop hdfs文件系统的路径信息,hive表在hdfs上的存储路径
                        "hadoopConfig": {} #hadoopConfig里可以配置与Hadoop相关的一些高级参数,比如HA的配置。 
                        "writeMode": "" #append,写入前不做任何处理,文件名不冲突;nonConflict,如果目录下有fileName前缀的文件,直接报错。 
                    }
                }
            }
        ],
        "setting": {
            "speed": { #流量控制
                "byte": 1048576, #控制传输速度,单位为byte/s,DataX运行会尽可能达到该速度但是不超过它
                "channel": ""  #控制同步时的并发数
                    }
            "errorLimit": { #脏数据控制
                "record": 0 #对脏数据最大记录数阈值(record值)或者脏数据占比阈值(percentage值,当数量或百分比,DataX Job报错退出
            }
        }
    }
}

如果出现报错出现中文乱码提示:CHCP 65001执行这个命令然后再重新执行上次的命令。
用excel创建一个csv,保存的时候选择csv格式就可以。
在这里插入图片描述
然后再创建一个json文件。

{
	"job": {
		"setting": {
			"speed": {
				"channel": 1
			}
		},
		"content": [{
			"reader": {
				"name": "txtfilereader",
				"parameter": {
					"path": ["E:/data.csv"],
					"encoding": "gbk",
					"column": [{
							"index": 0,
							"type": "string"
						},
						{
							"index": 1,
							"type": "string"
						},
						{
							"index": 2,
							"type": "string"
						},
						{
							"index": 3,
							"type": "string"
						}
					],
					"fieldDelimiter": ",",
					"skipHeader": "true"
				}
			},

			"writer": {

				"name": "mysqlwriter",
				"parameter": {
					"writeMode": "insert",
					"username": "root",
					"password": "123456",
					"column": [
						"kind",
						"time",
						"processingDepartment",
						"content"
					],

					"session": [],
					"connection": [{
						"jdbcUrl":"jdbc:mysql://localhost:3306/test2?serverTimezone=Asia/Shanghai&useLegacyDatetimeCode=false&useSSL=false&nullNamePatternMatchesAll=true&useUnicode=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=true",
						"table": ["csv1"]
					}]
				}
			}
		}]
	}
}

最后执行再bin目录下执行datax.py …/job/csv_mysql.json命令。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将 CSV 文件导入 MySQL 数据库,可以使用 DataX 中的 `TxtFileReader` 和 `RdbmsWriter` 插件。具体步骤如下: 1. 安装和配置 DataX 首先需要安装和配置 DataX,可以从官方 GitHub 仓库中下载最新版本的 DataX,并按照官方文档进行安装。安装完成后,需要在 DataX 的配置文件中配置 MySQL 数据库的连接信息。 2. 编写数据交换任务的配置文件 可以使用 DataX 的配置文件格式,编写数据交换任务的配置文件。假设 CSV 文件名为 `data.csv`,MySQL 数据库名为 `test`,表名为 `data_table`,字段名分别为 `id` 和 `name`,则配置文件内容如下: ```json { "job": { "setting": { "speed": { "channel": 1 } }, "content": [ { "reader": { "name": "txtfilereader", "parameter": { "path": "data.csv", "encoding": "UTF-8", "fieldDelimiter": "," } }, "writer": { "name": "rdbmswriter", "parameter": { "writeMode": "insert", "username": "root", "password": "123456", "column": [ "id", "name" ], "connection": [ { "jdbcUrl": "jdbc:mysql://localhost:3306/test", "table": [ "data_table" ] } ] } } } ] } } ``` 在这个配置文件中,我们指定使用 `TxtFileReader` 插件读取 CSV 文件,并使用 `RdbmsWriter` 插件将数据写入 MySQL 数据库。具体参数的含义可以参考 DataX 的官方文档。 3. 执行数据交换任务 使用 DataX 的命令行工具执行数据交换任务。执行命令的格式为: ``` python datax.py job/job.json ``` 其中,`job.json` 为数据交换任务的配置文件。执行命令后,DataX 会自动读取 CSV 文件,并将数据写入 MySQL 数据库中。执行过程中可以查看 DataX 提供的日志和报告,以便及时发现和处理问题。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值