datax离线同步oracle表到clickhouse实践2

2024-02-14 17:52

本文主要是介绍datax离线同步oracle表到clickhouse实践2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

时间:2024.01

目录
1、安装启动 oracle19c 容器
2、rpm包安装clickhouse
3、datax安装
4、datax同步
目标库根据要同步的表,按照clickhouse建表规范建表
编写json文件
编写增量同步shell脚本,加入 crond 定时任务

接上一篇
tar -zxvf datax_ck.tar.gz -C /root/


1、把历史数据 20240201 之前的数据一次性同步到 clickhouse
cd /root/datax/bin
mkdir -p tables/test01
cd tables/test01

vim test.json
{"job": {"content": [{"reader": {                    "name": "oraclereader",                    "parameter": {                        "connection": [ {                                "jdbcUrl": ["jdbc:oracle:thin:@192.168.15.6:11521:ORCLPDB1"],          "querySql": ["select * from TDBA_TEST01 WHERE to_char(create_date,'yyyymmdd')<='20240201'"]}],                       "username": "bigdata","password": "bigdata"                        }                },"writer": {"name": "clickhousewriter","parameter": {"username": "default","password": "bigdata","column":["*"],"connection": [{"jdbcUrl": "jdbc:clickhouse://192.168.15.7:8123/default","table":["TEST01"]}]}}}],"setting": {"speed": {"channel":1 }}}
}

手动执行同步
cd /root/datax/bin
./datax.py tables/test01/test.json


2、同步增量数据

cd /root/datax/bin/tables/test01/

vim test01.json
{"job": {"content": [{"reader": {                    "name": "oraclereader",                    "parameter": {                        "connection": [ {                                "jdbcUrl": ["jdbc:oracle:thin:@192.168.15.6:11521:ORCLPDB1"],          "querySql": ["select * from TDBA_TEST01 WHERE to_char(create_date,'yyyymmdd')='20240202'"]}],                       "username": "bigdata","password": "bigdata"                        }                },"writer": {"name": "clickhousewriter","parameter": {"username": "default","password": "bigdata","column":["*"],"connection": [{"jdbcUrl": "jdbc:clickhouse://192.168.15.7:8123/default","table":["TEST01"]}]}}}],"setting": {"speed": {"channel":1 }}}
}

注:json文件只是修改了sql的条件,其他没有变化。


编写shell脚本

test01.sh
#!/bin/bash
echo $PATH
PATH=/etl/jdk1.8.0_201/bin:$PATH
echo $PATH
etl_date=$(date -d "`date +%Y%m%d` -3 day" +%Y%m%d)
sed "s/20240202/$etl_date/" /root/datax/bin/tables/test01.json >/root/datax/bin/tables/test01_final.json
/root/datax/bin/datax.py /root/datax/bin/tables/test01_final.json >>/root/datax/bin/test01_final.log


加入到定时任务(分时天月周),每天6点执行
[root@docker bin]# crontab -e
0 6 * * * /root/datax/bin/tables/test01/test01.sh > ~/crontab.log

注:$PATH 环境变量信息,重定向到 crontab.log,方便调试
 

这篇关于datax离线同步oracle表到clickhouse实践2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/709199

相关文章

Oracle登录时忘记用户名或密码该如何解决

《Oracle登录时忘记用户名或密码该如何解决》:本文主要介绍如何在Oracle12c中忘记用户名和密码时找回或重置用户账户信息,文中通过代码介绍的非常详细,对同样遇到这个问题的同学具有一定的参... 目录一、忘记账户:二、忘记密码:三、详细情况情况 1:1.1. 登录到数据库1.2. 查看当前用户信息1.

Spring Retry 实现乐观锁重试实践记录

《SpringRetry实现乐观锁重试实践记录》本文介绍了在秒杀商品SKU表中使用乐观锁和MybatisPlus配置乐观锁的方法,并分析了测试环境和生产环境的隔离级别对乐观锁的影响,通过简单验证,... 目录一、场景分析 二、简单验证 2.1、可重复读 2.2、读已提交 三、最佳实践 3.1、配置重试模板

mac安装nvm(node.js)多版本管理实践步骤

《mac安装nvm(node.js)多版本管理实践步骤》:本文主要介绍mac安装nvm(node.js)多版本管理的相关资料,NVM是一个用于管理多个Node.js版本的命令行工具,它允许开发者在... 目录NVM功能简介MAC安装实践一、下载nvm二、安装nvm三、安装node.js总结NVM功能简介N

Spring Boot 3 整合 Spring Cloud Gateway实践过程

《SpringBoot3整合SpringCloudGateway实践过程》本文介绍了如何使用SpringCloudAlibaba2023.0.0.0版本构建一个微服务网关,包括统一路由、限... 目录引子为什么需要微服务网关实践1.统一路由2.限流防刷3.登录鉴权小结引子当前微服务架构已成为中大型系统的标

Java中将异步调用转为同步的五种实现方法

《Java中将异步调用转为同步的五种实现方法》本文介绍了将异步调用转为同步阻塞模式的五种方法:wait/notify、ReentrantLock+Condition、Future、CountDownL... 目录异步与同步的核心区别方法一:使用wait/notify + synchronized代码示例关键

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行

golang内存对齐的项目实践

《golang内存对齐的项目实践》本文主要介绍了golang内存对齐的项目实践,内存对齐不仅有助于提高内存访问效率,还确保了与硬件接口的兼容性,是Go语言编程中不可忽视的重要优化手段,下面就来介绍一下... 目录一、结构体中的字段顺序与内存对齐二、内存对齐的原理与规则三、调整结构体字段顺序优化内存对齐四、内

PLsql Oracle 下载安装图文过程详解

《PLsqlOracle下载安装图文过程详解》PL/SQLDeveloper是一款用于开发Oracle数据库的集成开发环境,可以通过官网下载安装配置,并通过配置tnsnames.ora文件及环境变... 目录一、PL/SQL Developer 简介二、PL/SQL Developer 安装及配置详解1.下

C++实现封装的顺序表的操作与实践

《C++实现封装的顺序表的操作与实践》在程序设计中,顺序表是一种常见的线性数据结构,通常用于存储具有固定顺序的元素,与链表不同,顺序表中的元素是连续存储的,因此访问速度较快,但插入和删除操作的效率可能... 目录一、顺序表的基本概念二、顺序表类的设计1. 顺序表类的成员变量2. 构造函数和析构函数三、顺序表