databus搭建文档记录

最近公司因需要同步oracle数据到mysql ,调研了Datax 对于大数据量的同步代价有些大。开源的databus 需要对源码做二次开发,才可以使用,前期我们搭建后,用自带的person表做了测试。确认可行后研发更改了源码。

准备工作:
1.配制gradle 和 java
2.ojdbc6-11.2.0.2.0.jar放到如下目录:
databus-master/sandbox-repo/com/oracle/ojdbc6/11.2.0.2.0/
更改defaultEnvironment.gradle文替换链接中https为http.
编译databus : gradle -Dopen_source=true clean | assemble

开始搭建:
一. --更改配置信息:

1. 更改 databus-master/databus2-example/database/person/ 下配制 增加相关建表、视图语句和tableapce名称 每个表包括.tab 和 .view两个文件。
建表时需要在最后一行 txn number 字段. 建视图时候需要 把id 列加上别名 key.
2. databus-master/databus2-example/databus2-example-relay-pkg/conf/sources-person.json 连接oracle时候加上ip 及修改相关同步表的信息。
3. 默认路径在 /root/databus-master

二. --更改client的配置 后续打包后生成build_pkg时使用:

cd databus2-example/databus2-example-client/src/main/sources
vim db.properties 更改连接库信息
vim client.properties 更改成Relay的端口 配置同步的表信息

–增加以下文本 以同步两张表为例
databus.client.runtime.relay(1).sources=com.linkedin.events.example.person.PrrangeCourse,com.linkedin.events.example.person.plusManager

三. --更改源码的配制信息

vim databus2-example/databus2-example-client/src/main/java/com/linkedin/databus/client/example/PersonClientMain.java #更改db的配制文件目录
vim databus2-example/databus2-example-client/src/main/java/com/linkedin/databus/client/example/xml/XmlParser.java #更改configure文件目录

四. --更改并创建数据库相关信息

vim db/oracle/bin/createUser.sh 更改system密码及创建用户信息。注意:如果表中已存在表 执行多次时候时候 要注释掉删除用户语句。

vim /root/databus-master/db/oracle/bin/createSchema.sh 创建db的包 过程 触发器 函数等。

五. --编译并生成数据库文件 序列化文件

编译databus : gradle -Dopen_source=true [assemble | clean]

sh db/oracle/bin/createUser.sh user pass instance_name tablespace /datadir #创建用户

cd db/oracle/fwk
sh /root/databus-master/db/oracle/bin/createSchema.sh user/pass@orcl /root/databus-master/databus2-example/database/person/

mkdir -p /root/databus-master/myperson-avro/avroOut --保存表的字段描述信息
mkdir -p /root/databus-master/myperson-avro/javaOut --保存源码文件

mkdir -p /root/databus-master/myperson-avro/avroOut --保存表的字段描述信息
mkdir -p /root/databus-master/myperson-avro/javaOut --保存源码文件

sh dbus2-avro-schema-gen.sh -namespace com.linkedin.events.example.person -recordName TplusManager -viewName “sy$t_plus_manager” -avroOutDir /root/databus-master/myperson-avro/avroOut -avroOutVersion 1 -javaOutDir /root/databus-master/myperson-avro/javaOut -userName user -password password -database jdbc:oracle:thin:@10.6.6.1:1521:ORCL
#生成序列化文件 注意 配制同步多个表 需要执行多次

六.–更改序列化和生成的源码文件

表中第一行  "meta" : "dbFieldName=sy$t_plus_manager;pk=KEY;",  用pk=KEY替换最后一个段
java文件也是  public static final org.apache.avro.Schema SCHEMA$最后一行同样

#将源码和序列化文件cp到指定目录
cd databus2-example/databus2-example-person/src/main/java/com/linkedin/events/example/person
cp /root/databus-maste

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值