异构数据同步 datax (3) xxl-job 分布式任务调度

news/2024/9/19 13:33:46/ 标签: 分布式

datax 需要手动执行 python 脚本来满足需求,可通过XXL-JOB 进行任务调度实现,满足自动化数据同步需求。

1、nacos 配置

# 配置
xxxx:job:runScript: /home/midware/datax/script/mysql_ps_test.shpythonScriptPath: /home/midware/datax/bin/datax.py jobFilePath: /home/midware/datax/job/mysql_postgres_job_update.json

2、编写shell脚本

mysql_ps_test.sh 

#!/bin/bash# 检查参数数量
if [ "$#" -ne 2 ]; thenecho "Usage: $0 <script_path> <config_file_path>"exit 1
fi# 获取传入的参数
script_path="$1"
config_file_path="$2"# 运行 Python 脚本
python "$script_path" "$config_file_path"# 如果您希望在执行后检查状态码并采取进一步行动,可以添加如下代码:
#if [ $? -ne 0 ]; then
#    echo "Error occurred while running the script."
#    # 可以在这里添加错误处理逻辑
#fi

使用说明:

  1. 将上述脚本保存到一个文件中,例如 mysql_ps_test.sh
  2. 给这个文件添加可执行权限:chmod +x mysql_ps_test.sh.
  3. 运行脚本并传递参数:./run_datax.sh /home/midware/datax/job/mysql_postgres_job_update.py /home/midware/datax/job/mysql_postgres_job_update.json

3、job编写

mysql_postgres_job_update.json

{"job":{"content":[{"reader":{"name":"mysqlreader","parameter":{"username": "root","password": "xxxxxx","connection": [{"jdbcUrl": ["jdbc:mysql://192.168.5.180:3306/xxxx?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2B8"],"querySql": ["  SELECT * FROM sys_test_copy2 WHERE create_time BETWEEN NOW() - INTERVAL 5 MINUTE AND NOW() "]}}},"writer":{"name":"postgresqlwriter","parameter":{"writeMode": "update!@#(user_id)!@#(email)","column":["id","name"],"connection":[{"jdbcUrl":"jdbc:postgresql://127.0.0.1:5432/postgres","table":["sys_test_copy2"]}],"password":"xxxx","username":"postgres"}}}],"setting":{"speed":{"channel":6}}}
}

4、编写一个xxl-job 任务

@Component
public class SampleXxlJob {private static final Logger logger = LoggerFactory.getLogger(SampleXxlJob.class);@Resourceprivate ScriptProperties scriptProperties;/*** 3、命令行任务*/@XxlJob("commandJobHandler")public void commandJobHandler() {executeCommandForScript(Arrays.asList("sh", scriptProperties.getRunScript(),scriptProperties.getPythonScriptPath(),scriptProperties.getJobFilePath()));}private void executeCommandForScript(List<String> command) {// 使用ProcessBuilder执行命令try {logger.info("---------->>>>command:{}", StringUtils.join(command, " "));ProcessBuilder pb = new ProcessBuilder(command);Process process = pb.start();           // 等待命令执行完成int exitCode = process.waitFor();if (exitCode == 0) {XxlJobHelper.log("Command completed successfully.");} else {XxlJobHelper.handleFail("Command exit value(" + exitCode + ") is failed");}            } catch (IOException | InterruptedException e) {XxlJobHelper.handleFail("Command is failed " + e.getMessage());}}
}

定时任务可设置每5分钟跑一次,这样就可以近实时同步数据了

0 */5 * * * ?

5、小结:

至此,从datax 到 job 编写,到postgres plug 源码调整,到xxl-job 定时执行。完成了一个定时数据同步功能。


http://www.ppmy.cn/news/1511886.html

相关文章

MiniCPM-V: A GPT-4V Level MLLM on Your Phone论文阅读

大模型的趋势&#xff1a;模型性能越来越好&#xff0c;模型参数变小&#xff0c;端边设备计算能力变强。 MiniCPM-V优点 结果好、OCR能力突出、多分辨率、多语言、易于部署 模型结构 图片encoder适用vit。输入整体以及切片。切片使用自适应算法&#xff0c;通过计算分数&am…

linux shell 脚本 let 数学计算

linux shell 脚本 let 数学计算 http://www.codebaoku.com/it-shell/ let命令中的算术表达式必须用双引号括起来&#xff0c;以避免解释器对特殊字符进行处理。 在变量的计算中&#xff0c;不需要使用$符号来表示变量&#xff0c; #!/bin/shweek_daydate %u echo $week_day…

MCU复位RAM会保持吗,如何实现复位时变量数据保持

在使用MCU时&#xff0c;通常大家默认MCU复位时RAM会被复位清零&#xff0c;那实际MCU复位时RAM是什么状态&#xff1f;如何让mcu复位时RAM保持不变呢&#xff1f; MCU复位有电源复位、Standby复位、内核复位、看门狗复位、引脚复位等。 其中内部会有掉电动作的复位有电源复位…

笔试练习day5

目录 游游的you题目解析解法方法一贪心方法二 腐烂的苹果题目解析例子1例子2解法多源BFS最短路径代码代码解析 JZ62 孩子们的游戏(圆圈中最后剩下的数)题目解析解法方法一模拟环形链表模拟数组模拟 方法二递推/递归/动态规划状态表示状态转移方程代码 感谢各位大佬对我的支持,如…

全新分支版本!微软推出Windows 11 Canary Build 27686版

已经很久没有看到 Windows 11 全新的分支版本了&#xff0c;今天微软发布 Windows 11 Canary 新版本&#xff0c;此次版本号已经转移到 Build 27xxx&#xff0c;首发版本为 Build 27686 版。 此次更新带来了多项改进&#xff0c;包括 Windows Sandbox 沙盒功能切换到 Microsof…

Compose(5)组件

讲一下compose的组件 在 Jetpack Compose 中&#xff0c;有许多不同类型的组件可用于构建用户界面。 一、基础组件 1.Text&#xff1a;用于显示文本内容。可以设置字体大小、颜色、样式等属性。 例如&#xff1a; Composablefun TextExample() {Text(text "Hello, Co…

【CAN-IDPS】汽车网关信息安全要求以及实验方法

《汽车网关信息安全技术要求及试验方法》是中国的一项国家标准,编号为GB/T 40857-2021,于2021年10月11日发布,并从2022年5月1日起开始实施 。这项标准由全国汽车标准化技术委员会(TC114)归口,智能网联汽车分会(TC114SC34)执行,主管部门为工业和信息化部。 该标准主要…

歌曲爬虫下载

本次编写一个程序要爬取歌曲音乐榜https://www.onenzb.com/ 里面歌曲。有帮到铁子的可以收藏和关注起来&#xff01;&#xff01;&#xff01;废话不多说直接上代码。 1 必要的包 import requests from lxml import html,etree from bs4 import BeautifulSoup import re impo…

【人工智能】使用NLP进行语音到文本的转换和主题的提取项目实践及案例分析一

一、项目概述 本项目旨在构建一个完整的语音到文本转换系统&#xff0c;并进一步从转换后的文本中提取主题。这涉及到自然语言处理&#xff08;NLP&#xff09;的多个关键技术&#xff0c;包括语音识别&#xff08;ASR, Automatic Speech Recognition&#xff09;、文本处理、…

【算法】马踏棋盘(骑士周游)问题回溯算法实现以及使用贪心算法优化

目录 1.游戏规则 2.算法分析 3.解决步骤和思路 4.马踏棋盘算法的代码实现 4.1计算马儿还能走哪些位置 4.2马踏棋盘的核心代码 4.3马踏棋盘算法完整代码 4.4使用贪心算法进行优化 4.4.1思路 4.4.2代码实现 1.游戏规则 将马儿随机放在国际象棋的 8*8 棋盘的某个方格中…

Java OkHttp使用(二)

文章目录 引言使用 OkHttp 发送回调其他 引言 记录一下 OkHttp 的使用&#xff1b;OkHttp 异步发送回调请求&#xff0c;增加回调失败重试。 使用 OkHttp 发送回调 /*** 回调重试类*/ Data public class CallBackRetryData {/*** 回调信息JSON*/private JSONObject bodyRequ…

设计模式反模式及UML图示常见误用案例分析

设计模式反模式及UML图示常见误用案例分析是一个深入探讨软件设计过程中常见问题及其解决方案的重要话题。在软件设计中&#xff0c;设计模式是用来解决常见问题的最佳实践&#xff0c;然而&#xff0c;当设计模式被错误地应用或误解时&#xff0c;就可能导致反模式的出现&…

edge浏览器可以,chrome浏览器看不到接口数据

chrome 谷歌浏览器&#xff0c;可以看到页面&#xff0c;F12的开发者工具看不到返回数据 无法加载响应数据: No data found for resource with given identifier Chrome 将显示 ERR_INTERNET_DISCONNECTED 错误 edge浏览器是正常的。 哈哈哈哈哈哈&#xff0c;这里误点了&a…

【通信基础】欧拉公式

复数至极坐标的变换 任何复数皆可记为 模 相位

掌握Objective-C文本对齐:NSTextTab与NSTextTable的高级应用

标题&#xff1a;掌握Objective-C文本对齐&#xff1a;NSTextTab与NSTextTable的高级应用 在Objective-C中&#xff0c;NSTextTab和NSTextTable提供了强大的文本制表和表格布局功能&#xff0c;它们是文本排版中不可或缺的工具。本文将深入探讨这两个API如何在实际开发中处理文…

STM32 PWR电源控制 与 低功耗模式 详解

目录 STM32 PWR电源控制 与 低功耗模式 详解 1. PWR 电源控制 简介 2. PWR 电源控制 框图 3. 上电复位和掉电复位 与 可编程电压检测器&#xff08;PVD&#xff09; 3.1 内嵌复位与电源控制模块特性图 3.2 上电复位和掉电复位 3.3 可编程电压检测器&#xff08;PVD&…

[星瞳科技]OpenMV是否属于单片机?

文件系统 MicroPyhon的文件系统是FatFS。 根目录 路径都是以根目录为起点。 当插入sd卡后&#xff0c;根目录就是SD卡&#xff1b;不插入sd卡&#xff0c;根目录就是内置的Flash。 如果需要&#xff0c;你可以在SD卡上&#xff0c;新建一个空文件&#xff1a;/flash/SKIPS…

ES6随笔

ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript的一个重大更新&#xff0c;它引入了许多新特性和语法糖&#xff0c;使得JavaScript的开发更加高效和灵活。下面是一些ES6中新增的主要特性及其代码示例&#xff1a; 1. 模板字符串&#xff08;Template Strings&#…

stable-fast-3d的部署,在服务器Ubuntu22.04系统下——点动科技

在服务器Ubuntu22.04系统下&#xff0c;stable-fast-3d的部署 一、ubuntu22.04基本环境配置1.1 更换清华Ubuntu镜像源1.2 更新包列表&#xff1a;2. 安装英伟达显卡驱动2.1 使用wget在命令行下载驱动包2.2 更新软件列表和安装必要软件、依赖2.2 卸载原有驱动2.3 安装驱动2.4 安…

【Java学习】实现图书管理系统

所属专栏&#xff1a;Java学习 &#x1f341;1. 功能演示 用户分为普通用户和管理员&#xff0c;登录进系统之后可以对图书进行一系列操作&#xff0c;此时我们要明白&#xff0c;对图书的操作是通过书架来执行的&#xff0c;我们平常在图书馆上借书就是在书架上 &#x1f…