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

时间:2024.01

目录
1、安装启动 oracle19c 容器
2、rpm包安装clickhouse
3、datax安装

4、datax同步

目标库根据要同步的表,按照clickhouse建表规范建表

编写json文件

编写增量同步shell脚本,加入 crond 定时任务

1、安装启动 oracle19c 容器

二、拉取镜像

docker pull registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle

三. 创建Oracle 19c镜像的容器

3.1创建目录

[root@docker ~]# mkdir /opt/oradata

[root@docker ~]# chmod -R 777 /opt/oradata/

[root@docker ~]# mkdir /opt/to_oracle

3.2 创建实例

docker run -d -it --name oracle19c -p 11521:1521 -p 5500:5500 \

-v /opt/oradata:/opt/oracle/oradata \

-v /opt/to_oracle:/home/oracle/to_oracle \

registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:latest

3.3 查看日志

docker logs -f oracle19c

四、 修改密码

系统默认的system密码修改成oracle

docker exec oracle19c ./setPassword.sh oracle

5.1 进入容器

docker exec -it oracle19c /bin/bash

5.2 登录数据库

sqlplus sys/oracle@localhost:1521/ORCLCDB as sysdba

show pdbs;

alter session set container=ORCLPDB1;

5.4 查看数据文件位置

select file_name from dba_data_files;

5.6 创建数据表空间

create tablespace bigdata datafile '/opt/oracle/oradata/ORCLCDB/ORCLPDB1/bigdata.dbf' size 10G autoextend on;

5.7 创建用户,指定默认表空间

create user bigdata identified by bigdata default tablespace bigdata;

5.8 用户授权

grant connect,resource,dba to bigdata;

5.3 连接可拔插数据库

sqlplus /nolog

conn bigdata/bigdata@ORCLPDB1

建表、插入数据

把 create.sql insert.sql 放在 /opt/to_oracle/

SQL> @/home/oracle/to_oracle/create.sql

文件内容

create table TDBA_TEST01
(
  TID          number primary key,
  TSN          varchar2(40),
  TNO          number,
  TAMT         number(15,2),
  CREATE_DATE  date not null,
  UPDATE_DATE  date,
  UPDATE_TIME  date
);

SQL> @/home/oracle/to_oracle/insert.sql

文件内容

INSERT INTO TDBA_TEST01 VALUES(1,'SN001',1,1.01,TO_DATE('2020-02-01','YYYY-MM-DD'),TO_DATE('2020-02-01','YYYY-MM-DD'),TO_DATE('2020-02-01 01:01:01','YYYY-MM-DD HH24:MI:SS'));
INSERT INTO TDBA_TEST01 VALUES(2,'SN002',2,2.12,TO_DATE('2020-02-02','YYYY-MM-DD'),TO_DATE('2020-02-02','YYYY-MM-DD'),TO_DATE('2020-02-02 01:01:01','YYYY-MM-DD HH24:MI:SS'));
INSERT INTO TDBA_TEST01 VALUES(3,'SN003',3,3.23,TO_DATE('2020-02-03','YYYY-MM-DD'),TO_DATE('2020-02-03','YYYY-MM-DD'),TO_DATE('2020-02-03 01:01:01','YYYY-MM-DD HH24:MI:SS'));
INSERT INTO TDBA_TEST01 VALUES(4,'SN004',4,4.34,TO_DATE('2020-02-04','YYYY-MM-DD'),TO_DATE('2020-02-04','YYYY-MM-DD'),TO_DATE('2020-02-04 01:01:01','YYYY-MM-DD HH24:MI:SS'));
INSERT INTO TDBA_TEST01 VALUES(5,'SN005',5,5.45,TO_DATE('2020-02-05','YYYY-MM-DD'),TO_DATE('2020-02-05','YYYY-MM-DD'),TO_DATE('2020-02-05 01:01:01','YYYY-MM-DD HH24:MI:SS'));
INSERT INTO TDBA_TEST01 VALUES(6,'SN006',6,6,TO_DATE('2020-02-06','YYYY-MM-DD'),TO_DATE('2020-02-06','YYYY-MM-DD'),TO_DATE('2020-02-06 01:01:01','YYYY-MM-DD HH24:MI:SS'));
INSERT INTO TDBA_TEST01 VALUES(7,'SN007',7,7.67,TO_DATE('2020-02-07','YYYY-MM-DD'),TO_DATE('2020-02-07','YYYY-MM-DD'),TO_DATE('2020-02-07 01:01:01','YYYY-MM-DD HH24:MI:SS'));
INSERT INTO TDBA_TEST01 VALUES(8,'SN008',8,8.78,TO_DATE('2020-02-08','YYYY-MM-DD'),TO_DATE('2020-02-08','YYYY-MM-DD'),TO_DATE('2020-02-08 01:01:01','YYYY-MM-DD HH24:MI:SS'));
INSERT INTO TDBA_TEST01 VALUES(9,'SN009',9,9,TO_DATE('2020-02-09','YYYY-MM-DD'),TO_DATE('2024-01-09','YYYY-MM-DD'),TO_DATE('2020-02-09 01:01:01','YYYY-MM-DD HH24:MI:SS'));
INSERT INTO TDBA_TEST01 VALUES(9,'SN009',9,9,TO_DATE('2020-02-09','YYYY-MM-DD'),TO_DATE('2024-01-09','YYYY-MM-DD'),TO_DATE('2020-02-09 01:01:01','YYYY-MM-DD HH24:MI:SS'));

2、rpm包安装clickhouse

[root@conda ~]# mkdir clickhouse22.3

[root@conda ~]# cd clickhouse22.3

下载clickhouse的rpm包

https://packages.clickhouse.com/rpm/stable/clickhouse-client-22.3.2.2-2.noarch.rpm

https://packages.clickhouse.com/rpm/stable/clickhouse-common-static-22.3.2.2-2.x86_64.rpm

https://packages.clickhouse.com/rpm/stable/clickhouse-common-static-dbg-22.3.2.2-2.x86_64.rpm

https://packages.clickhouse.com/rpm/stable/clickhouse-server-22.3.2.2-2.noarch.rpm

[root@conda clickhouse22.3]# ll

total 929924

-rw-r--r--. 1 root root 46748 Sep 22 2022 clickhouse-client-22.3.2.2-2.noarch.rpm

-rw-r--r--. 1 root root 178362876 Sep 22 2022 clickhouse-common-static-22.3.2.2-2.x86_64.rpm

-rw-r--r--. 1 root root 773751886 Sep 22 2022 clickhouse-common-static-dbg-22.3.2.2-2.x86_64.rpm

-rw-r--r--. 1 root root 72089 Sep 22 2022 clickhouse-server-22.3.2.2-2.noarch.rpm

[root@conda clickhouse22.3]# rpm -ivh *.rpm

自定义设置密码

bigdata

[root@conda clickhouse22.3]# clickhouse start

[root@conda clickhouse22.3]# clickhouse status

/var/run/clickhouse-server/clickhouse-server.pid file exists and contains pid = 10792.

The process with pid = 10792 is running.

[root@conda clickhouse22.3]# clickhouse-client --password bigdata -m

ClickHouse client version 22.3.2.1.

Connecting to localhost:9000 as user default.

Connected to ClickHouse server version 22.3.2 revision 54455.

conda :)

create table TEST01
(
  TID          UInt32,
  TSN          String,
  TNO          UInt16,
  TAMT         Decimal(15,2),
  CREATE_DATE  Date,
  UPDATE_DATE  Date,
  UPDATE_TIME  DateTime
) ENGINE = MergeTree(CREATE_DATE, (TID), 8192)

3、datax安装

System Requirements

JDK(1.8以上,推荐1.8)

Python(推荐Python2.6.X) 我使用的CentOS7自带的 Python 2.7.5

直接下载DataX工具包:

DataX下载地址(http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz)

datax_ck.tar.gz
datax_ck.tar.gz下载https://www.123pan.com/s/VTMXjv-pfA6v.html

提取码:xxxx

下载后解压至本地某个目录,进入bin目录,即可运行同步作业:

tar -zxvf datax_ck.tar.gz

相关推荐
qq_5298353514 分钟前
对计算机中缓存的理解和使用Redis作为缓存
数据库·redis·缓存
月光水岸New3 小时前
Ubuntu 中建的mysql数据库使用Navicat for MySQL连接不上
数据库·mysql·ubuntu
狄加山6753 小时前
数据库基础1
数据库
我爱松子鱼3 小时前
mysql之规则优化器RBO
数据库·mysql
chengooooooo3 小时前
苍穹外卖day8 地址上传 用户下单 订单支付
java·服务器·数据库
Rverdoser4 小时前
【SQL】多表查询案例
数据库·sql
Galeoto4 小时前
how to export a table in sqlite, and import into another
数据库·sqlite
人间打气筒(Ada)5 小时前
MySQL主从架构
服务器·数据库·mysql
leegong231115 小时前
学习PostgreSQL专家认证
数据库·学习·postgresql
喝醉酒的小白5 小时前
PostgreSQL:更新字段慢
数据库·postgresql