datax 模板_DataX从Mysql到Mysql

2023-05-16

在某一个阳光明媚的上午,万里无云,天空一片蔚蓝。我的老大迈着矫健的步伐来到我的工位,来,过来,帮我个忙。我意识到这可能是一个不简单的“交易”。

老大说:我给你一个Navicat15的安装包,你之前接触过nb3格式的文件吗,我给你个S3的地址,你去上面把这几个文件下载下来,导到数据库中。我一听导数据呀,so easy,也没啥难度,我就拍着胸脯说,没问题。(这里不得不安利下Navicat15,可以换背景颜色了,可以换成我喜欢的黑色了,哈哈哈哈。还增加了图表功能,也能够连MongDB了,其他我还没研究,我先鼓捣鼓捣)

下面就开干了,百度了下怎么把nb3文件导入到msyql数据库中,有兴趣的可以看下这个链接:

Navicat mysql 数据库备份和使用,备份以后是nb3文件​blog.csdn.net

导入到数据库中,我一看表结构乱七八糟,内容也乱七八糟。

我才意识到这次导数可能不是那么的简单,原来这是爬虫供应商给发过来,爬取的19年的历史数据,并且我们现有的数据库中已经有一个表存着每天爬取的数据了,但是两个表的表结构还不一样。(现在就成了从mysql的A表导入B表)由于历史数据大概是30多个G左右,常规的写sql语句导入已经不能够满足了。

我在网上查找了这中mysql的大量数据的导入导出,发现一个mysql自带一个导入导出功能,貌似还挺快,但是需要在mysql服务器上写命令,我就去问了下我们老大,是否能登录mysql服务器,可惜不能。(我们的mysql服务器托管在AWS,我们无法登录。)现附上mysql自带的导入导出功能的链接:

MySQL 亿级数据导入导出/数据迁移笔记​blog.csdn.net

我们老大说你可以用DataX,之前xxx搞过(xxx也是一个大佬)你可以去问下他服务器的配置什么的。

由于之前服务器已经把DataX需要的环境已经安装好,咱们这里就不在描述如何安装环境了。(等我在自个买的服务器上鼓捣鼓捣)现在只是介绍下如何从mysql的A表ETL到B表。

下面重点来了:

DataX时阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括Mysql、SQL Server、Oracle、PostgreSQL、HDFS、Hive、HBase、OTS、ODFS等各种异构数据源之间高效的数据同步功能。

下面是DataX官方的设计原理以及如何安装使用的资料链接:

alibaba/DataX​github.com

按照以下json模板编辑json文件,放到datax目录下的job目录下,修改json文件的可执行权限。

在datax目录下的bin目录中运行sudo python datax.py {your_job.json}

json文件模板

{
  "job": {
    "content": [
      {
        "reader": {
          "name": "mysqlreader",
          "parameter": {
            "username": 你要读取的数据库用户名,
            "password": 你要读取的数据库密码,
            "connection": [
              {
                "querySql": ["select col1,col2,col3 from table_name"],
                "jdbcUrl": ["jdbc:mysql://你的服务器IP:3306/你的库名?useUnicode=true&characterEncoding=utf8"]
              },
 
            ]
          }
        },
        "writer": {
          "name": "mysqlwriter",
          "parameter": {
            "column": ["col1","col2","col3"],
            "connection": [
                  {
                    "jdbcUrl": "jdbc:mysql://你的服务器IP:3306/你的库名?useUnicode=true&characterEncoding=utf8",
                    "table": ["table_name"]
                  }
            ],
            "username": 你要读取的数据库用户名,
            "password": 你要读取的数据库密码,
            "writeMode": "update"
          }
        }
      }
    ],
    "setting": {
      "speed": {
        "channel": "50"
       }
    }
  }
}

其中json串中每个关键字的含义,可以参考一下链接。

Datax的配置及使用_舍得斋-CSDN博客​blog.csdn.net

人生没有梦想和咸鱼有什么区别,即使是咸鱼也要做最咸的那一条

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

datax 模板_DataX从Mysql到Mysql 的相关文章

随机推荐