2.2 离线数仓—全量表同步实现

本文介绍了如何使用DataX从MySQL全量同步数据到HDFS,包括数据同步通道、配置文件编写、自动化脚本生成及执行,以及全量同步的总结和优化过程。
摘要由CSDN通过智能技术生成

前言

       在确定了全量表使用DataX进行同步,增量表使用Maxwell进行同步,且学习了DataX相关使用方法之后,开始着手进行全量表数据同步的实现。

一、全量表数据同步

1.数据同步通道

       全量表的数据由DataX从MySQL业务数据库直接同步到HDFS,具体数据流向如下图所示:
在这里插入图片描述
       上传到的HDFS路径是/origin_data/gmall/db/activity_info_full/xxxx-xx-xx,其中在HDFS中与MySQL表对应的表名加上了后缀_full,且HDFS中每个表下以一天作为一个文件夹(方便后面Hive建表以及分区表的规划)

2.DataX配置文件编写

先回顾一下,全量表有下图这些:
在这里插入图片描述
这里以其中一张表activity_info为例,编写对应的配置文件:

{
   
    "job": {
   
        "setting": {
   
            "speed": {
   
                 "channel": 1
            }
        },
        "content": [
            {
   
                "reader": {
   
                    "name": "mysqlreader",
                    "parameter": {
   
                        "username": "root",
                        "password": "123456",
                        "column": [
                            "id",
                            "activity_name",
                            "activity_type",
                            "activity_desc",
                            "start_time",
                            "end_time",
                            "create_time"
                        ],
                        "splitPk": "",
                        "connection": [
                            {
   
                                "table": [
                                    "activity_info"
                                ],
                                "jdbcUrl": [
                                    "jdbc:mysql://hadoop102:3306/gamll"
                                ]
                            }
                        ]
                    }
                },
               "writer": {
   
                    "name": "hdfswriter",
                    "parameter": {
   
                        "defaultFS": "hdfs://hadoop102:8020",
                        "fileType": "text",
                        "path": "${targetDir}",
                        "fileName": "activity_info",
                        "column": [
                            {
   
                                "name": "id",
                                "type": "bigint"
                            },
                            {
   
                                "name": "activity_name",
                                "type": "string"
                            },
                            {
   
                                "name": "activity_type",
                                "type": "string"
                            },
                            {
   
                                "name": "activity_desc",
                                "type": "string"
                            },
                            {
   
                                "name": "start_time",
                                "type": "string"
                            },
                            {
   
                                "name": "end_time",
                                "type": "string"
                            },
                            {
   
                                "name": "create_time",
                                "type": "string"
                            }
                        ],
                        "writeMode": "append",
                        "fieldDelimiter": "
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值