数据迁移工具之datax的安装

1、datax的介绍

        DataX是阿里巴巴开源的一个异构数据源离线同步工具,可以实现包括关系型数据库(如MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。它致力于解决数据孤岛问题,帮助企业更好地管理和利用数据资产。

2、datax和sqoop的区别

        DataX和Sqoop都是数据迁移工具,但是它们在处理机制、使用场景以及支持的数据源方面存在显著的区别。Sqoop是Apache开源的一个用于在Hadoop和关系型数据库之间进行大量数据传输的工具,它采用的是MapReduce计算框架,可以在多个节点上同时进行数据的导入导出操作,提供了良好的并发性和容错性。而DataX是阿里巴巴开源的一个异构数据源离线同步工具,它可以在运行DataX的单机上完成数据的抽取和加载,速度相较于Sqoop会慢一些。

        DataX有强大的灵活性,它可以实现关系型数据库与hadoop组件、关系型数据库之间以及hadoop组件之间的数据迁移。

        DataX无法实现分布式部署,但它可以在传输过程中进行数据过滤,并可以统计传输数据的信息。

        DataX中的数据导入导出,是并行执行的,并且是基于内存的,所以比较快!

3、datax的安装

下载链接:https://pan.baidu.com/s/1fDweCVmGHwNtaAdanl52GA?pwd=xa33 

1、上传  /opt/software
2、解压   tar -zxvf /opt/software/datax.tar.gz  -C /opt/
3、修改/etc/profile
   配置环境变量:
   export DATAX_HOME=/opt/datax
   export PATH=$PATH:$DATAX_HOME/bin
   
  4、刷新环境变量

 source /etc/profile

4、测试datax

4.1、官方自带demo

在datax/job/job.json

1、修改如下的地方

第一个地方代表数据生成的数量

第二个地方代表是否在控制台进行打印

2、运行

datax.py /opt/datax/job/job.json

4.2、读取mysql的数据,将数据展示在控制台上。

ps:连接mysql需要在datax的lib中添加mysql的连接器        

在job 文件夹 创建一个文件 mysql2stream.json ,代码如下,运行方式同上

{
  "job": {
    "setting": {
      "speed": {
        "channel":1
      }
    },
    "content": [
      {
        "reader": {
          "name": "mysqlreader",
          "parameter": {
            "username": "root",
            "password": "123456",
            "connection": [
              {
                "querySql": [
                  "要查询的sql语句;"
                ],
                "jdbcUrl": [
                  "jdbc:mysql://主机名:3306/sqoop"
                ]
              }
            ]
          }
        },
        "writer": {
          "name": "streamwriter",
          "parameter": {
            "print": true,
            "encoding": "UTF-8"
          }
        }
      }
    ]
  }
}

4.3、读取hdfs的数据

同样在job下创建readhdfs.json

{
    "job": {
        "setting": {
            "speed": {
                "channel": 3
            }
        },
        "content": [
            {
                "reader": {
                    "name": "hdfsreader",
                    "parameter": {
                        "path": "/home/a.txt",
                        "defaultFS": "hdfs://bigdata01:9820",
                        "column": [ "*" ],
                        "fileType": "text"
                    }
                },
                "writer": {
                    "name": "streamwriter",
                    "parameter": {
                        "print": true
                    }
                }
            }
        ]
    }
}

4.4、将数据导入到hdfs上

ps:hdfs上的路径必须提前创建好

{
    "job": {
        "setting": {
            "speed": {
                "channel": 3
            }
        },
        "content": [
            {
                "reader": {
                    "name": "streamreader",
                    "parameter": {
                        "column": [
                            {"value": "9870", "type": "long" },
                            {"value": "SHAWN", "type": "string"},
                            {"value": "BOSS", "type": "string"},
                            {"value": "1999-01-01", "type": "string"},
                            {"value": "99999", "type": "long"}
                        ],
                        "sliceRecordCount": 10
                    }
                },
                "writer": {
                    "name": "hdfswriter",
                    "parameter": {
                        "defaultFS": "hdfs://bigdata01:9820",
                        "path": "/datax/emp",
                        "fileName": "emp",
                        "column": [
                            {"name": "empno", "type": "string"},
                            {"name": "ename", "type": "string"},
                            {"name": "job", "type": "string"},
                            {"name": "hiredate", "type": "string"},
                            {"name": "sal", "type": "double"}
                        ],
                        "fileType": "text",
                        "writeMode": "append",
                          "fieldDelimiter": "\t"
                    }
                }
            }
        ]
    }
}

4.5、将mysql的数据导入到hive中

需要在hive中创建与mysql对于的表(注意字段)

{
    "job": {
        "setting": {
            "speed": {
                 "channel": 3
            },
            "errorLimit": {
                "record": 0,
                "percentage": 0.02
            }
        },
        "content": [
            {
                "reader": {
                    "name": "mysqlreader",
                    "parameter": {
                        "writeMode": "insert",
                        "username": "root",
                        "password": "123456",
                        "column": [
                            "id",
                            "area_code",
                            "province_name",
                            "iso"
                        ],
                        "splitPk": "id",
                        "connection": [
                            {
                                "table": [
                                    "base_area"
                                ],
                                "jdbcUrl": [
     "jdbc:mysql://bigdata01:3306/sqoop"
                                ]
                            }
                        ]
                    }
                },
               "writer": {
                    "name": "hdfswriter",
                    "parameter": {
                        "defaultFS": "hdfs://bigdata01:9820",
                        "fileType": "text",
                        "path": "/data/nshop/ods/ods_01_base_area/",
                        "fileName": "base_area_txt",
                        "column": [
                            {
                                "name": "id",
                                "type": "int"
                            },
                            {
                                "name": "area_code",
                                "type": "string"
                            },
                            {
                                "name": "province_name",
                                "type": "string"
                            },
                            {
                                "name": "iso",
                                "type": "string"
                            }
                        ],
                        "writeMode": "append",
                        "fieldDelimiter": ","
                    }
                }
            }
        ]
    }
}

  • 16
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于将数据从MySQL迁移到Oracle,可以使用DataX工具来实现。DataX是一个开源的数据同步框架,可以用于不同数据库之间的数据迁移。下面是具体的步骤: 1. 了解DataX:首先,你需要了解DataX的基本概念和使用方式。DataX是一个基于插件化的架构,可以支持不同的数据源和目标数据库,包括MySQL和Oracle。 2. 下载和安装DataX:在进行数据迁移之前,你需要下载并安装DataX工具。你可以从DataX的官方网站或GitHub上获取最新的安装包。 3. 配置DataX作业:接下来,你需要创建一个DataX的作业配置文件,用于指定源数据库和目标数据库的连接信息、表名、字段映射等。在配置文件中,你需要指定源数据库为MySQL,目标数据库为Oracle,并提供相应的连接信息。 4. 执行DataX作业:配置完成后,你可以使用DataX命令行工具来执行该作业。DataX会根据配置文件中的信息,将数据从MySQL读取并写入到Oracle中。 需要注意的是,在执行DataX作业之前,你需要确保源数据库和目标数据库的连接正常,并且具有相应的权限。此外,如果源数据库和目标数据库的表结构不一致,你可能需要进行字段映射和转换,以确保数据能够正确地导入到目标数据库中。 这是一个简单的示例,用于说明如何使用DataX数据从MySQL迁移到Oracle。具体的步骤和配置可能会因实际情况而有所不同,请根据你的具体需求和环境进行相应的调整和配置。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [DATAX 数据迁移 oracle-oracle](https://blog.csdn.net/weixin_42418589/article/details/126019261)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [使用datax数据从mysql迁移到oracle](https://blog.csdn.net/qq_38390669/article/details/109524637)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值