Kettle-Docker部署+Sqlserver数据同步Mysql+Start定时任务

warning: 这篇文章距离上次修改已过192天,其中的内容可能已经有所变动。

要在Docker中部署Kettle(又称Pentaho Data Integration, PDI)并与Sqlserver数据同步到MySQL,你需要执行以下步骤:

  1. 创建Dockerfile来构建包含Kettle的Docker镜像。
  2. 设置Kettle作业(job)来执行数据同步。
  3. 使用Docker命令构建镜像并运行容器。
  4. 设置定时任务(Cron Job)来定期执行该Docker容器。

以下是一个简化的Dockerfile示例,它安装了Kettle和数据库驱动:




FROM centos:7
 
# 安装Java
RUN yum install -y java-1.8.0-openjdk
 
# 安装Kettle
RUN wget https://sourceforge.net/projects/pentaho/files/Data Integration/7.1/pdi-ce-7.1.0.0-12.zip/download -O kettle.zip
RUN unzip kettle.zip -d /usr/lib/kettle
 
# 安装MySQL JDBC驱动
RUN wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.23.tar.gz
RUN tar zxvf mysql-connector-java-8.0.23.tar.gz
RUN cp mysql-connector-java-8.0.23/mysql-connector-java-8.0.23.jar /usr/lib/kettle/lib/
 
# 安装Sqlserver JDBC驱动
RUN yum install -y mssql-jdbc
 
# 创建Kettle作业脚本
COPY sync_sqlserver_to_mysql.kjb /usr/lib/kettle/jobs/
 
# 设置Cron定时任务
RUN crontab -e <<EOF
0 * * * * /usr/lib/kettle/kitchen.sh /usr/lib/kettle/jobs/sync_sqlserver_to_mysql.kjb
EOF
 
# 设置工作目录
WORKDIR /usr/lib/kettle
 
# 设置环境变量
ENV JAVA_HOME /usr/lib/jvm/jre-openjdk
 
# 对外暴露端口(如果需要通过Web方式访问Kettle)
EXPOSE 8080
 
# 启动Kettle服务器
CMD ["/usr/lib/kettle/carte.sh", "-port=8080", "-master=localhost"]

在这个Dockerfile中,我们安装了Java环境、Kettle,并且设置了MySQL和Sqlserver的JDBC驱动。我们复制了同步作业脚本到Kettle的作业目录,并通过crontab设置了每小时执行同步作业的定时任务。

同步作业脚本sync_sqlserver_to_mysql.kjb需要你自己创建,并在Docker构建过程中复制到指定目录。

构建和运行Docker镜像的命令如下:




docker build -t kettle-sqlserver-mysql .
docker run -d kettle-sqlserver-mysql

这样,你就设置了一个定时执行的数据同步任务,该任务在Docker容器内部运行,并且使用了Kettle作业来处理数据。

最后修改于:2024年08月13日 22:35

评论已关闭

推荐阅读

DDPG 模型解析,附Pytorch完整代码
2024年11月24日
DQN 模型解析,附Pytorch完整代码
2024年11月24日
AIGC实战——Transformer模型
2024年12月01日
Socket TCP 和 UDP 编程基础(Python)
2024年11月30日
python , tcp , udp
如何使用 ChatGPT 进行学术润色?你需要这些指令
2024年12月01日
AI
最新 Python 调用 OpenAi 详细教程实现问答、图像合成、图像理解、语音合成、语音识别(详细教程)
2024年11月24日
ChatGPT 和 DALL·E 2 配合生成故事绘本
2024年12月01日
omegaconf,一个超强的 Python 库!
2024年11月24日
【视觉AIGC识别】误差特征、人脸伪造检测、其他类型假图检测
2024年12月01日
[超级详细]如何在深度学习训练模型过程中使用 GPU 加速
2024年11月29日
Python 物理引擎pymunk最完整教程
2024年11月27日
MediaPipe 人体姿态与手指关键点检测教程
2024年11月27日
深入了解 Taipy:Python 打造 Web 应用的全面教程
2024年11月26日
基于Transformer的时间序列预测模型
2024年11月25日
Python在金融大数据分析中的AI应用(股价分析、量化交易)实战
2024年11月25日
AIGC Gradio系列学习教程之Components
2024年12月01日
Python3 `asyncio` — 异步 I/O,事件循环和并发工具
2024年11月30日
llama-factory SFT系列教程:大模型在自定义数据集 LoRA 训练与部署
2024年12月01日
Python 多线程和多进程用法
2024年11月24日
Python socket详解,全网最全教程
2024年11月27日