当前位置: 首页 > news >正文

DataX从Mysql导数据到Hive分区表案例

0、下载DataX并解压到对应目录
DataX安装包,开箱即用,无需配置。
https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202308/datax.tar.gz
相关参考文档
https://github.com/alibaba/DataX/blob/master/hdfswriter/doc/hdfswriter.md

1、Hive分区表DDL样例
注意分隔符号要和后续的DataX配置保持一致,同时在此将贴源层数据类型统一为String。

CREATE TABLE datax.fin_transaction_flow (transaction_id     STRING COMMENT '交易唯一ID(主键)',account_no         STRING COMMENT '账户号(外键 -> account_info.account_no)',transaction_code   STRING COMMENT '交易类型编码(外键 -> transaction_reference.transaction_code)',amount             STRING COMMENT '交易金额(格式:整数部分18位,小数2位)',currency           STRING COMMENT '币种(如CNY/USD)',counterparty_account STRING COMMENT '对手账户(外键 -> account_info.account_no)',transaction_time   STRING COMMENT '交易时间(格式:yyyy-MM-dd HH:mm:ss)',status             STRING COMMENT '交易状态(成功/失败)',channel            STRING COMMENT '交易渠道(ATM/网银)'
)
PARTITIONED BY (dt STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\b'
STORED AS ORC ;

2、DataX Json配置样例
创建以下Json文件(mysql-hive.json)并放置到DataX节点合适目录下。

{"job": {"setting": {"speed": {"channel": 4}},"content": [{"reader": {"name": "mysqlreader","parameter": {"username": "root","password": "pwd","connection": [{"querySql": ["select  transaction_id,account_no,transaction_code,amount,currency,counterparty_account,transaction_time,status,channel from fin_transaction_flow where dt='20250416';"],"jdbcUrl": ["jdbc:mysql://chdp01:3306/bg2025"]}]}},"writer": {"name": "hdfswriter","parameter": {"defaultFS": "hdfs://chdp01:9000","fileType": "orc","path": "/user/hive/warehouse/datax.db/fin_transaction_flow/dt=20250416","fileName": "xxxx","column": [{"name": "transaction_id","type": "STRING"},{"name": "account_no","type": "STRING"},{"name": "transaction_code","type": "STRING"},{"name": "amount","type": "STRING"},{"name": "currency","type": "STRING"},{"name": "counterparty_account","type": "STRING"},{"name": "transaction_time","type": "STRING"},{"name": "status","type": "STRING"},{"name": "channel","type": "STRING"}],"writeMode": "append","fieldDelimiter": "\b","compress": "NONE"}}}]}
}

3、手动创建对应分区目录

hadoop fs -mkdir /user/hive/warehouse/datax.db/fin_transaction_flow/dt=20250416

4、执行DataX

./bin/datax.py ../mysql-hive.json

看最终状态显示成功
在这里插入图片描述
hdfs目标目录里也有了对应文件
在这里插入图片描述

5、添加分区信息
经过上述操作还不能直接从hive表里查询出数据,因为元数据信息尚未构建起来。

ALTER TABLE datax.fin_transaction_flow ADD IF NOT EXISTS PARTITION (dt='20250416');

6、验证数据
在这里插入图片描述

7、问题:发现count数据为0

select count(*) from datax.fin_transaction_flow;

这个是因为hive未及时构建表分析信息导致,手动执行如下表分析sql即可

analyze table datax.fin_transaction_flow compute statistics;
http://www.dtcms.com/a/190298.html

相关文章:

  • 反向传播算法——矩阵形式递推公式——ReLU传递函数
  • HVV蓝队实战面试题
  • Flink实时统计任务CPU异常排查与解决方案
  • 技术选型不当,如何避免影响项目进展
  • 1. Go 语言环境安装
  • 计算机图形学编程(使用OpenGL和C++)(第2版)学习笔记 10.增强表面细节(一)过程式凹凸贴图
  • 初探 Skynet:轻量级分布式游戏服务器框架实战
  • gitlab提交测试分支的命令和流程
  • 【ESP32-S3】Guru Meditation Error 崩溃分析实战:使用 addr2line 工具 + bat 脚本自动解析 Backtrace
  • Kali Linux 桌面环境安装与配置指南
  • Python操作MySQL 连接加入缓存层完整方案
  • R语言学习--Day02--实战经验反馈
  • 数据库故障排查指南:从理论到实践的深度解析
  • 透明代理IP、匿名代理IP与高匿代理IP的技术辨析与实战指南
  • AWS CloudTrail日志跟踪启用
  • 《隐私计算:数据安全与隐私保护的新希望》
  • 【RabbitMq】无法打开 RabbitMq 管理插件的问题
  • 全球首个投影机息屏显示专利授权:九天画芯重新定义设备交互与节能显示新范式
  • 运维日志管理全解析:从存储优化到合规审计
  • 国产大模型 “五强争霸”,决战 AGI
  • Python环境管理工具深度指南:pip、Poetry、uv、Conda
  • 数据结构:ArrayList简单实现与常见操作实例详解
  • 酒店旅游类数据采集API接口之携程数据获取地方美食品列表 获取地方美餐馆列表 景点评论
  • 【Python 内置函数】
  • 微服务如何实现服务的高可用
  • C++GO语言微服务之Dockerfile docker-compose②
  • 若依框架页面
  • TCP/IP-——C++编程详解
  • SAP修改多元化政策
  • C语言:51单片机实现数码管依次循环显示【1~F】课堂练习