Kafka实现ORACLE实时数据处理

时间:2024-03-17 08:40:54

NO.1 ORCLA注意事项
数据库必须处于archivelog模式,并且必须启用补充日志记录。

在数据库服务器上:
Kafka实现ORACLE实时数据处理
注:alter database add supplemental log data (all) columns 是指启用补充日志记录。

为了成功执行连接器,必须以特权Oracle用户启动连接器。如果给定用户具有DBA角色,则可以跳过此步骤,否则将执行以下脚本来创建特权用户。

1.用有dba权限的用户登录:sys用户

2.创建一个新用户:create user abc identified by 123456;

3.授予DBA权限: grant connect,resource,dba to abc;

ok,创建好了,就可以用abc这个用户登录了,abc用户拥有dba权限。

select * from dba_users; 查看数据库里面所有用户,前提是你是有dba权限的帐号,如sys,system
select * from all_users; 查看你能管理的所有用户!
select * from user_users; 查看当前用户信息 !

NO.2简单的创建一个Oracle表

SQL> create table test_kafka(id VARCHAR(50) NOT NULL,username varchar2(100));
Kafka实现ORACLE实时数据处理

NO.3 添加相关组件
1)从https://github.com/erdemcer/kafka-connect-oracle下载整个项目,把整个项目mvn clean package成kafa-connect-oracle-1.0.jar。
2)下载一个oracle的jdbc驱动jar—ojdbc7.jar
3)将kafa-connect-oracle-1.0.jar and ojdbc7.jar放在kafka的安装包下的lib目录下,
4)将github项目里面的config/OracleSourceConnector.properties文件拷贝到kafak/config

No.4 修改配置文件

[[email protected] config]# vim connect-standalone.properties
Kafka实现ORACLE实时数据处理

[[email protected] config]# vim OracleSourceConnector.properties
Kafka实现ORACLE实时数据处理

NO.5 启动kafka

[[email protected] bin]# ./kafka-server-start.sh …/config/server.properties

1.创建Topic

kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test-Oracle

2.启动connector

[[email protected] bin]# ./connect-standalone.sh …/config/connect-standalone.properties …/config/OracleSourceConnector.properties

-----启动成功会有以下信息:
Kafka实现ORACLE实时数据处理
3.启动consumer

[[email protected] bin]# ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic huang-Oracle

启动成功会等待topic数据,然后消费到控制台

NO.6在数据库中插入一条数据

SQL> INSERT INTO test_kafka values(‘1’,‘huang’);
Kafka实现ORACLE实时数据处理
一定注意commit提交,否则kafka不会收到数据

可以看到在消费的控制台上出现:
Kafka实现ORACLE实时数据处理
插入的值以key:value的形式打印到控制台上。

同样删除和修改也会将信息打印到控制台上,会在key为data以及before上体现不同。

这样也就实现了oracle中的数据在Insert时与kafka同步。