DataX基本使用

DataX基本使用

1.打印输入流在控制台

获取模板

datax.py -r 输入数据源名字 -w 输出数据源名字(可以到官网上找到准确的名字)

DataX基本使用

如:datax.py -r mysqlreader -w hbase11xwriter

编写stream2stream.json文件

streamreader --> streamwriter
{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "streamreader",
                    "parameter": {
                        "column": [
                        {"type":"string","value":"张三"},
                        {"type":"string","value":"李四"},
                        ],
                        "sliceRecordCount": "2"
                    }
                },
                "writer": {
                    "name": "streamwriter",
                    "parameter": {
                        "encoding": "utf-8",
                        "print": true
                    }
                }
            }
        ],
        "setting": {
            "speed": {
                "channel": "2"
            }
        }
    }
}

执行:datax.py stream2stream.json

DataX基本使用

2.MySQL 到 MySQL 同步

先建库建表

编写mysql2mysql.json文件

mysqlreader-->mysqlwriter

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "mysqlreader",
                    "parameter": {
                        "column": [
                            "id",
                            "name",
                            "age",
                            "gender",
                            "clazz",
                            "last_mod"
                        ],
                        "connection": [
                            {
                                "jdbcUrl": ["jdbc:mysql://master01:3306/students"],
                                "table": ["student"]
                            }
                        ],
                        "password": "123456",
                        "username": "root"
                    }
                },
                "writer": {
                    "name": "mysqlwriter",
                    "parameter": {
                        "column": [
                             "id",
                            "name",
                            "age",
                            "gender",
                            "clazz",
                            "last_mod"
                        ],
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:mysql://master01:3306/students2?useUnicode=true&characterEncoding=utf8",
                                "table": ["datatostudent"]
                            }
                        ],
                        "password": "123456",
                        "username": "root",
                        "writeMode": "insert"
                    }
                }
            }
        ],
        "setting": {
            "speed": {
                "channel": "1"
            }
        }
    }
}
执行:datax.py mysql2mysql.json

DataX基本使用

3.mysql到hdfs同步

先在hdfs上建好文件写入路径hadoop fs -mkdir …

编写mysql2hdfs.json文件

mysqlreader-->hdfswriter

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "mysqlreader",
                    "parameter": {
                        "column": [
                            "id",
                            "name",
                            "age",
                            "gender",
                            "clazz",
                            "last_mod"
                        ],
                        "connection": [
                            {
                                "jdbcUrl": ["jdbc:mysql://master01:3306/students?useUnicode=true&characterEncoding=utf8"],
                                "table": ["student"]
                            }
                        ],
                        "password": "123456",
                        "username": "root"
                    }
                },
                "writer": {
                    "name": "hdfswriter",
                    "parameter": {
                        "column": [
                             {"name":"id","type":"int"},
                             {"name":"name","type":"string"},
                             {"name":"age","type":"int"},
                             {"name":"gender","type":"string"},
                             {"name":"clazz","type":"string"},
                             {"name":"last_mod","type":"date"}
                        ],
                        "defaultFS": "hdfs://master01:9000",
                        "fieldDelimiter": ",",
                        "fileName": "datastudent",
                        "fileType": "text",
                        "path": "/shujia/bigdata19/dataxoutput",
                        "writeMode": "append"
                    }
                }
            }
        ],
        "setting": {
            "speed": {
                "channel": "1"
            }
        }
    }
}

执行:datax.py mysql2hdfs.json

DataX基本使用

4.mysql到hive同步

创建表

CREATE EXTERNAL TABLE IF NOT EXISTS dataxstudent(
    id BIGINT,
    name STRING,
    age INT,
    gender STRING,
    clazz STRING,
    last_mod STRING
)
comment '学生表'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE

编写mysql2hive.json文件

mysqlreader--hive(hdfswriter)

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "mysqlreader",
                    "parameter": {
                        "column": [
                            "id",
                            "name",
                            "age",
                            "gender",
                            "clazz",
                            "last_mod"
                        ],
                        "connection": [
                            {
                                "jdbcUrl": ["jdbc:mysql://master01:3306/students?useUnicode=true&characterEncoding=utf8"],
                                "table": ["student"]
                            }
                        ],
                        "password": "123456",
                        "username": "root"
                    }
                },
                "writer": {
                    "name": "hdfswriter",
                    "parameter": {
                        "column": [
                            {   "name":"id",
                                "type":"bigint"
                            },
                            {
                                "name":"name",
                                "type":"string"
                            },
                            {
                                "name":"age",
                                "type":"int"
                            },
                            {
                                "name":"gender",
                                "type":"string"
                            },
                            {
                                "name":"clazz",
                                "type":"string"
                            },
                            {
                                "name":"last_mod",
                                "type":"string"
                            }

                        ],
                        "defaultFS": "hdfs://master01:9000",
                        "fieldDelimiter": ",",
                        "fileName": "student",
                        "fileType": "text",
                        "path": "/user/hive/warehouse/dataxstudent",
                        "writeMode": "append"
                    }
                }
            }
        ],
        "setting": {
            "speed": {
                "channel": "3"
            }
        }
    }
}

DataX基本使用

DataX基本使用

5.Mysql到hbase

在hbase中创建一个表

DataX基本使用

编写mysql2hbase.json文件

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "mysqlreader",
                    "parameter": {
                        "column": [
                            "id",
                            "name",
                            "age",
                            "gender",
                            "clazz",
                            "last_mod"
                        ],
                        "connection": [
                            {
                                "jdbcUrl": [
                                    "jdbc:mysql://master01:3306/students?useUnicode=true&characterEncoding=utf8"
                                ],
                                "table": ["student"]
                            }
                        ],
                        "password": "123456",
                        "username": "root",
                    }
                },
                "writer": {
                    "name": "hbase11xwriter",
                    "parameter": {
                        "column": [
                            {"index":1,"name":"cf1:name","type":"string"},
                            {"index":2,"name":"cf1:age","type":"string"},
                            {"index":3,"name":"cf1:gender","type":"string"},
                          {"index":5,"name":"cf1:last_mod","type":"string"}
                        ],
                        "encoding": "UTF-8",
                        "hbaseConfig": {
                            "hbase.zookeeper.quorum": "master01:2181,node1:2181,node2:2181"
                        },
                        "mode": "normal",
                        "rowkeyColumn": [
                            {"index":0,"type":"string"},
                            {"index":-1,"type":"string","value":"_"},
                            {"index":4,"type":"string"}
                        ],
                        "table": "dataxstudent"
                    }
                }
            }
        ],
        "setting": {
            "speed": {
                "channel": "1"
            }
        }
    }
}

DataX基本使用

DataX基本使用

DataX基本使用

6.hbase到mysql

先清空hbase中原来以id和clazz作为rowkey的表,修改上面配置文件,重新以id为rowkey从MySQL同步到hbase

获取模板

datax.py -r hbase11xreader -w mysqlwriter

新建一个student2表

编写hbase2mysql.json文件

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "hbase11xreader",
                    "parameter": {
                        "column": [
                            {
                                "name":"rowkey",
                                "type":"string"
                            },
                            {
                                "name":"cf1:name",
                                "type":"string"
                            },
                            {
                                "name":"cf1:age",
                                "type":"string"
                            },
                            {
                                "name":"cf1:gender",
                                "type":"string"
                            },
                            {
                                "name":"cf1:clazz",
                                "type":"string"
                            },
                            {
                                "name":"cf1:last_mod",
                                "type":"string"
                            }
                        ],
                        "encoding": "UTF-8",
                        "hbaseConfig": {
                            "hbase.zookeeper.quorum": "master01:2181,node1:2181,node2:2181"
                        },
                        "mode": "normal",
                        "table": "dataxstudent"
                    }
                },
                "writer": {
                    "name": "mysqlwriter",
                    "parameter": {
                        "column": [
                            "id",
                            "name",
                            "age",
                            "gender",
                            "clazz",
                            "last_mod"
                        ],
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:mysql://master01:3306/students?useUnicode=true&characterEncoding=utf8",
                                "table": ["student2"]
                            }
                        ],
                        "password": "123456",
                        "preSql": ["truncate student2"],
                        "username": "root",
                        "writeMode": "insert"
                    }
                }
            }
        ],
        "setting": {
            "speed": {
                "channel": "3"
            }
        }
    }
}

DataX基本使用

7.mysql增量同步到hive

需要注意的部分就是: where(条件筛选)

编写mysqlzheng2hive.json文件

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "mysqlreader",
                    "parameter": {
                        "column": [
                            "id",
                            "name",
                            "age",
                            "gender",
                            "clazz",
                            "last_mod"
                        ],
                        "connection": [
                            {
                                "jdbcUrl": [
                                    "jdbc:mysql://master01:3306/students"
                                ],
                                "table": ["student"]
                            }
                        ],
                        "password": "123456",
                        "username": "root",
                        "where": "id>3"
                    }
                },
                "writer": {
                    "name": "hdfswriter",
                    "parameter": {
                        "column": [
                            {
                                "name": "id",
                                "type": "bigint"
                            },
                            {
                                "name": "name",
                                "type": "string"
                            },
                            {
                                "name": "age",
                                "type": "INT"
                            },
                            {
                                "name": "gender",
                                "type": "string"
                            },
                            {
                                "name": "clazz",
                                "type": "string"
                            },
                            {
                                "name": "last_mod",
                                "type": "string"
                            }
                        ],
                        "defaultFS": "hdfs://master01:9000",
                        "fieldDelimiter": ",",
                        "fileName": "student",
                        "fileType": "text",
                        "path": "/user/hive/warehouse/dataxstudent",
                        "writeMode": "append"
                    }
                }
            }
        ],
        "setting": {
            "speed": {
                "channel": "3"
            }
        }
    }
}

增加一条数据

DataX基本使用

DataX基本使用

Original: https://www.cnblogs.com/bfy0221/p/16732803.html
Author: 伍点
Title: DataX基本使用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/683757/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 请问当用户反馈网站访问慢,如何处理?

    有哪些方面的因素会导致网站网站访问慢? 1、服务器出口带宽不够用 本身服务器购买的出口带宽比较小。一旦并发量大的话,就会造成分给每个用户的出口带宽就小,访问速度自然就会慢。跨运营商…

    技术杂谈 2023年5月31日
    087
  • Wireshark抓包实例诊断TCP连接问题

    转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese 介绍 前文论述了TCP基础知识,从本节开始,通过TCP抓包实例…

    技术杂谈 2023年5月31日
    089
  • RTL8812AU双频无线网卡在ubuntu19和20上的驱动安装

    旧爱已去 疫情在家,突然邻居敲门说,我这网上不了,帮下忙呗兄弟;兄弟都叫了,哥就冒回险,口罩扎起,一顿xxxx,原来是路由器没插到wlan口,看他拉网线可怜,就把我台式机上无线网卡…

    技术杂谈 2023年7月24日
    062
  • 阿里云 EMAS Serverless 重磅发布

    EMAS Serverless 是阿里云提供的基于Serverless技术的一站式后端开发平台,为开发者提供高可用、弹性伸缩的云开发服务,包含云函数、云数据库、云存储、静态网站托管…

    技术杂谈 2023年7月11日
    076
  • 神经网络那些事儿(二)

    在上一篇中,我们看到了神经网络是怎样使用梯度下降算法来学习它们的权值和偏置。然而,我们还有一些没有解释:我们没有讨论怎样计算损失函数的梯度。本篇中将解释著名的BP算法,它是一个快速…

    技术杂谈 2023年5月31日
    0108
  • 实现Kubernetes可观测性的3个最佳工具

    一个管理和实施得当的可观测性系统为DevOps提供了细化的洞察力,可用于调试和治愈复杂系统。可观察性将监控、警报和日志与指标可视化及其分析相结合。它允许开发团队详细了解Kubern…

    技术杂谈 2023年6月1日
    099
  • X-Y问题

    什么是X-Y问题 X-Y问题就是有人想解决问题X,他觉得Y可能是解决X的方法但不知道Y怎么做;在我们的工作中,需求方给出的来的是Y,而软件工程师不知道需要解决的X是什么。 我理解的…

    技术杂谈 2023年7月25日
    061
  • 项目流程管理工具:OmniPlan Pro 4 for Mac 中文

    Original: https://www.cnblogs.com/aurora-123/p/16865514.htmlAuthor: 佛系女孩Title: 项目流程管理工具:Om…

    技术杂谈 2023年7月11日
    075
  • 太极拳透劲的原理推测

    在太极拳世界里,我观察到几个现象: 央视解密陈氏太极拳节目中,张志俊(陈氏十一代传人),用测力仪测试,他的力量是几个测试者中最弱的。但是当和比他身强力壮的人面对面互击胸口一拳时,难…

    技术杂谈 2023年5月31日
    0100
  • 【微信公众号】对接公众号别忘了配置域名权限

    在开发我的唯一客服系统的时候,增加了对接公众号的功能 需要在下面设置里,增加上域名权限 设置与开发===> 公众号设置 ===> 功能设置 ===>各种域名添加,…

    技术杂谈 2023年6月1日
    0114
  • 【翻译】Thymeleaf–SpringSecurity集成模块

    来源:thymeleaf/thymeleaf-extras-springsecurity自述文件 这是一个Thymeleaf附加模块,不是Thymeleaf核心的一部分(因此它有自…

    技术杂谈 2023年7月24日
    071
  • Unix基础

    Unix 万物介文件 cd: change directory ls 列出当前路径下的所有文件名或目录名 ll 是”ls -l”的别名 显示当前目录下文件详…

    技术杂谈 2023年6月21日
    0103
  • Java开发之JavaWeb速成 —- 第二部分

    JavaWeb速成 前言 以最少时间,快速学完各知识点。知识点围绕概念,作用,使用方法来写,适合有javaweb基础的人复习 旨在快速入手/复习,放实例显得冗余,所以实例代码会以截…

    技术杂谈 2023年7月24日
    065
  • Vuex 简单使用

    官网:https://vuex.vuejs.org/zh/ 参考文章:https://www.cnblogs.com/chinabin1993/p/9848720.html Vue…

    技术杂谈 2023年7月25日
    068
  • 复杂度分析

    复杂度 复杂度分析是数据结构与算法的核心精髓,指在不依赖硬件、宿主环境、数据集的情况下,粗略推导,考究出算法的效率和资源消耗情况, 包括时间复杂度和空间复杂度 时间复杂度 首先从C…

    技术杂谈 2023年7月23日
    066
  • python的基本运用

    python基础 Python语言是一种解释型、面向对象、动态数据类型的高级程序设计语言 开发者:Guido van Rossum(人称龟叔) 基本概念 1.变量 变量名必须是大小…

    技术杂谈 2023年7月11日
    083
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球