
DataX工具的使用
MySQL Reader:
发布日期:2021-05-18 09:16:24
浏览次数:23
分类:精选文章
本文共 3807 字,大约阅读时间需要 12 分钟。
DataX框架技术说明
DataX3.0设计框架
DataX是一个高效的数据集成框架,主要用于实现数据源与目标端的高效同步。其核心架构分为Reader、Writer和Framework三个模块,分别承担数据采集、数据写入和数据传输的功能。
- Reader(数据采集模块):负责从多种数据源(如MySQL、ODPS等)读取数据,并将数据发送给Framework。
- Writer(数据写入模块):接收来自Framework的数据,按照指定规则将数据写入目标端数据库或数据仓库。
- Framework(数据传输核心):作为Reader和Writer的桥梁,负责数据的缓冲、流控、并发处理以及数据转换等核心功能。
DataX3.0核心架构
DataX3.0的核心架构通过Job、Task和TaskGroup三大模块,实现了数据同步的高效执行。Job作为作业管理模块,负责整体协调和监控;Task则是数据同步的最小执行单元,负责具体数据的读取和写入;TaskGroup模块用于管理并发执行的多个Task。
- Job模块:负责接收并管理单个作业,处理数据清理、子任务切分以及TaskGroup的创建。
- Task切分:根据配置策略,将单个Job拆分为多个Task,充分利用计算资源。
- TaskGroup管理:通过Scheduler模块实现Task的并发执行,默认每个TaskGroup支持5个并发Task。
- Task执行机制:每个Task启动后,固定启动Reader→Channel→Writer的线程完成数据同步任务。Job模块负责监控所有TaskGroup的执行状态,确保作业成功完成。
DataX脚本初试
DataX的用户界面简洁易用,支持通过配置文件实现复杂的数据集成任务。以下是常见Reader和Writer配置示例:
Reader配置示例
"reader": { "name": "mysqlreader", "parameter": { "username": "Username", "password": "Password", "column": ["id", "name"], "splitPk": "id", "connection": [{ "table": ["tableName"], "jdbcUrl": ["jdbc:mysql://172.16.4.37:3306/db1"] }] }}
- ODPS Reader:
- MySQL Writer:
- ODPS Writer:
"reader": { "name": "odpsreader", "parameter": { "accessId": "accessId", "accessKey": "accessKey", "project": "targetProjectName", "table": "tableName", "partition": ["all_query_conditions"], "column": ["customer_id", "nickname"], "packageAuthorizedProject": "yourCurrentProjectName", "splitMode": "record", "odpsServer": "http://xxx/api" }}
Writer配置示例
"writer": { "name": "mysqlwriter", "parameter": { "writeMode": "insert", "username": "Username", "password": "Password", "column": ["id", "k", "c", "pad"], "session": ["set session innodb_lock_wait_timeout=1000"], "preSql": ["delete from tableName"], "connection": [{ "jdbcUrl": "jdbc:mysql://172.16.4.37:3306/db2", "table": ["tableName"] }] }}
"writer": { "name": "odpswriter", "parameter": { "accessId": "accessId", "accessKey": "accessKey", "accountType": "aliyun", "column": ["id", "k", "c", "pad"], "odpsServer": "http://service.cn-hangzhou.maxcompute.aliyun-inc.com/api", "partition": "all_insert_conditions", "project": "ProjectName", "table": "tableName", "truncate": true }}
脚本自动化调度
通过脚本实现每日自动化调度,可根据需求定制查询条件和写入分区条件。以下是常见脚本模板:
vim imp_data.sh
#vim imp_data.sh#根据$1识别不同的数据集成任务名,根据$2识别分区,若有多个分区可继续使用$3、$4。#为不同的数据集成脚本任务编写demo模版#拷贝脚本demo为具体的具体的执行脚本cp /home/admin/scripts/datax-${interface_name}-demo.json /home/admin/config/datax-${interface_name_pt}-dev.json#查询条件、写入表分区条件判断in_conditions=''if [ ${interface_name} == 'mysqlqury2odps1' ]; then #根据数据集成任务名$1判断reader条件 check_time=$2' '$3$4 check_unixtime=`date -d "${check_time}" +%s` in_conditions='pt='$2' and _timestamp='${check_unixtime}'elif [ ${interface_name} == 'mysqlqury2odps2' ]; then in_conditions='pt='$2' and hh='$3fiecho $in_conditionsout_conditions='ds='$2',hh='$3',mm='$4if [ ! -n "$4" ]; then out_conditions='ds='$2',hh='$3',mm=00'fiecho $out_conditions#参数替换-查询条件sed -i "s/all_query_conditions/$in_conditions/g" /home/admin/config/datax-${interface_name_pt}-dev.json#参数替换-分区条件sed -i "s/all_insert_conditions/$out_conditions/g" /home/admin/config/datax-${interface_name_pt}-dev.json#命令执行/opt/datax/bin/datax.py /home/admin/config/datax-${interface_name_pt}-dev.json#删除临时文件rm /home/admin/gaode_data/config/datax-${interface_name_pthh}-dev.json
任务执行命令
bash imp_data.sh ${interface_name} ${pt} ${hh} ${ss}
通过上述脚本模板,可实现对不同数据集成任务的灵活配置和定时调度。若需实现每日定时调度,可将任务执行命令写入Shell脚本中,并根据需求配置参数。
以上内容结合了DataX框架的核心设计理念和实际应用示例,旨在为数据同步和集成任务提供清晰的技术参考。
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年05月03日 12时50分45秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
2025版最新关于HW护网行动的一些知识,零基础入门到精通,收藏这篇就够了
2025-03-30
(建议收藏)2024最新 URL Scheme大全APP跳转界面地址更新中 ios快捷指令快捷方式链接跳转微信小程序必备autojs可用免root (可定制开发和提取URL Scheme 参数提取)
2025-03-30
2025版最新大模型学习路线,零基础入门到精通,收藏这篇就够了
2025-03-30
2025版最新大模型开发流程(非常详细)零基础入门到精通,收藏这一篇就够了
2025-03-30
(干货)数据分析案例--以上海二手房为例
2025-03-30
(大部分安卓手机通用)一加OnePlus Ace3扬声器优化教程 外放直接媲美苹果
2025-03-30
2025版最新大模型微调方法(非常详细)零基础入门到精通,收藏这篇就够了
2025-03-30
2025版最新大模型算法岗位薪资指南,零基础入门到精通,收藏这一篇就够了
2025-03-30
2025版最新大语言模型的指令微调,零基础入门到精通,收藏这篇就够了
2025-03-30
2025版最新小白学习大模型:什么是大模型?零基础入门到精通,收藏这篇就够了
2025-03-30
2025版最新常用黑客工具之【Nmap 教程基础】零基础入门到精通,收藏这篇就够了
2025-03-30
2025版最新开发一款大模型需要经过哪些步骤?开发一款大模型的完整流程,收藏这篇就够了
2025-03-30
$.inArray函数判断数组中的是否包含字符串
2025-03-30
2025版最新渗透测试和黑客工具列表,零基础入门到精通,收藏这一篇就够了
2025-03-30
2025版最新网络安全入门书籍整理大全,零基础入门到精通,收藏这篇就够了
2025-03-30
2025版最新网络安全知识入门及学习流程(非常详细)零基础入门到精通,收藏这篇就够了
2025-03-30
2025版最新网络安全等级保护测评指南,零基础入门到精通,收藏这篇就够了
2025-03-30
2025版最新运维怎么转行网络安全?零基础入门到精通,收藏这篇就够了
2025-03-30
2025版最新黑客学习网站(非常详细),零基础入门到精通,看这一篇就够了
2025-03-30