当前位置: 首页 > 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;

相关文章:

  • 反向传播算法——矩阵形式递推公式——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
  • 宜昌谱写新叙事:长江大保护与高质量发展如何相互成就
  • 京东CEO许冉:外卖日单量接近2000万单,看到外卖对平台拉动和转化效应
  • 因操纵乙烯价格再遭诉讼,科莱恩等四家企业被陶氏索赔60亿
  • 上海北外滩,未来五年将如何“长个子”“壮筋骨”?
  • 新剧|《藏海传》定档,《折腰》《人生若如初见》今日开播
  • 广西壮族自治区党委政法委副书记李文博接受审查调查