当前位置:   article > 正文

DataX和SQLServer的导入导出案例_datax sqlserver

datax sqlserver

DataX和SQLServer的导入导出案例



写在前面

  • Linux版本:CentOS7.5
  • SQLServer版本:mssql-server-2017
  • DataX版本:DataX3.0(开源版)

SQLServer数据库的简单使用

SQLServer数据库一些常用的Shell脚本命令

  • 启动SQLServer数据库服务的命令
systemctl start mssql-server
  • 1
  • 重启SQLServer数据库服务的命令
systemctl restart mssql-server
  • 1
  • 停止SQLServer数据库服务的命令
systemctl stop mssql-server
  • 1
  • 查看SQLServer数据库服务的状态
systemctl status mssql-server
  • 1
  • SQLServer数据库服务的具体配置路径在以下目录中可以查看和编辑
/opt/mssql/bin/mssql-conf        
  • 1

创建数据库

SQLServer数据库和MySQL数据库的基本SQL命令是一样的,如下所示:

(1)创建数据库的SQL命令

> create database datax     
> go       
  • 1
  • 2

注意:SQLServer数据库(Linux环境下)在执行sql语句后,需要执行 go 命令以帮助真正实现前面执行的SQL命令,切记,切记,切记!!!

(2) 查看当前数据库列表有哪些

查询 SysDatabases 表即可得到相应的结果

> select * from SysDatabases    
> go 
  • 1
  • 2

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ChjBBE91-1676007756545)(1.png)]

(3) 查看当前数据表

此操作需要查看的是 sysobjects 表并制定过滤条件 xtype='u'来得到清晰的结果

>	use 数据库名
>	select * from sysobjects where xtype='u'
>	go
  • 1
  • 2
  • 3

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vln1DpPh-1676007756547)(2.png)]

(4)查看表的数据

> select * from 对应数据库的表名称;
> go
  • 1
  • 2

DataX 导入导出案例

创建表并插入数据

> create table student(id int,name varchar(25)) 
> go           
  • 1
  • 2
  • 往student表插入一条新的数据
> insert into student values(1,'zhangsan') go 
  • 1

读取 SQLServer 的数据导入到 HDFS

  • 编写所需的配置文件
[whybigdata@node01 datax]$ vim job/sqlserver2hdfs.json       
  • 1

json文件内容应该为如下:

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "sqlserverreader",
                    "parameter": {
						"column": [
							"id",
							"name"
						],
                        "connection": [
                            {
                                "jdbcUrl": [
									"jdbc:sqlserver://node02:1433;DatabaseName=datax"
								],
                                "table": [
									"student"
								]
                            }
                        ],
                        "password": "asdfghj000.",
                        "username": "SA"
                    }
                },
                "writer": {
                    "name": "hdfswriter",
                    "parameter": {
                        "column": [
							{
								"name": "id",
								"type": "int"
							},
							{
								"name": "name",
								"type": "string"
							}
						],
                        "defaultFS": "hdfs://node01:8020",
                        "fieldDelimiter": "=",
                        "fileName": "sqlserver.txt", 
						"fileType": "text",
						"path": "/datax-out", 
                        "writeMode": "append"
                    }
                }
            }
        ],
        "setting": {
            "speed": {
                "channel": "1"
            }
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 查看hdfs上的执行结果,如下图所示;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hhqq7kTF-1676007756548)(3.png)]

读取 SQLServer 的数据导入 MySQL

  • 新建一个json文件
[whybigdata@node01 datax]$ vim job/sqlserver2mysql.json
  • 1

json文件内容如下所示:

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "sqlserverreader",
                    "parameter": {
                        "column": [
                            "id",
                            "name"
                        ],
                        "connection": [
                            {
                                "jdbcUrl": [
                                    "jdbc:sqlserver://node02:1433;DatabaseName=datax"
                                ],
                                "table": [
                                    "student"
                                ]
                            }
                        ],
                        "username": "root",
                        "password": "123456"
                    }
                },
                "writer": {
                    "name": "mysqlwriter",
                    "parameter": {
                        "column": [
                            "*"
                        ],
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:mysql://node01:3306/datax",
                                "table": [
                                    "student"
                                ]
                            }
                        ],
                        "password": "asdfghj000.",
                        "username": "SA",
                        "writeMode": "insert"
                    }
                }
            }
        ],
        "setting": {
            "speed": {
                "channel": "1"
            }
        }
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 执行结果查验:

SQLServer数据导入MySQL之前MySQL中表的数据如下所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kUt1GgrG-1676007756548)(4.png)]

SQLServer数据导入MySQL之后MySQL中表的数据如下所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iqyAycm5-1676007756549)(5.png)]

可以观察到,SQLServer数据成功导入到MySQL中。

总结

DataX和SQLServer的数据导入导出其实并不难,同样的还是编写正确的json文件,之后的操作就i是家常便饭。

DataX和SQLServer之间的数据导入导出案例,全文结束!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/155961
推荐阅读
相关标签
  

闽ICP备14008679号