style =” display:inline-block; width:250px; height:250px”
data-ad-client =” ca-pub-8926855489175386″
data-ad-slot =” 8311494894″>
本帖最后由hyj于2019-6-25 20:10编辑
问题指南
1.jdbc连接器插件的作用是什么?
2.如何配置kafka?
3.如何在oracle中插入数据并与kafka同步?
1.登录到Oracle:
[Bash shell] 查看纯文本 复制代码
[oracle @ localhost] $ lsnrctl状态
[oracle @ localhost] $ lsnrctl start
[oracle @ localhost] $ sqlplus/nolog
SQL \ conn/as sysdba
SQL \启动
这个神谕开始了。为了使Kafka服务器上的oracle服务器的IP可以访问,您需要在oracel安装目录(/data/oracle/product/11.2.0/db_1/network/admin)中将IP侦听器添加到listener.ora:
20190403224750863.png (15.32 KB,下载时间:6)
下载附件
保存到相册
2019-6-25 20:01上传
然后创建一个新会话并登录到您的帐户:
[Bash shell] 查看纯文本 复制代码
[oracle @ localhost] $ sqlplus/nolog
SQL \ conn wyh/wyhpwd;
创建我们要使用的数据库:
[SQL] 以纯文本格式查看 复制代码
SQL \ gt;创建表test_user(ID号(19)不为空的主键,用户名varchar2(100),密码varchar2(100),修改的时间戳记(0)默认SYSTIMESTAMP不为null);
创建一个自动递增序列以自动递增主键:
[SQL] 以纯文本格式查看 复制代码
SQL \ gt;创建序列test_user_seq,以1递增1;
创建触发器:
[SQL] 以纯文本格式查看 复制代码
SQL \创建或替换触发器test_user_seq_tr
2,然后在每行的test_user上插入或更新
3开始
4,如果插入则
5选择test_user_seq.NEXTVAL到:从双重的new.id;
6结束如果;
7 END;
8/
为时间列创建索引:
[SQL] 以纯文本格式查看 复制代码
SQL \ gt;在test_user上创建索引test_modified_index(已修改);
插入数据:
[SQL] 以纯文本格式查看 复制代码
SQL \ gt;将值(``tom''," 111")插入test_user(用户名,密码);
已创建1行。
SQL \插入test_user(用户名,密码)值(``bob''," 222");
已创建1行。
SQL \将值(``jhon''," 333")插入test_user(用户名,密码);
已创建1行。
SQL \将值(``rose''," 444")插入test_user(用户名,密码);
已创建1行。
SQL \将值(``amy''," 555")插入test_user(用户名,密码);
已创建1行。
SQL \承诺;
这里我们要注意插入后的提交,否则该记录将不能在主题中读取。
2.启动kafka。
3.从融合的官方网站上下载oracle的jdbc连接器插件:
https://www.confluent.io/connector/kafka-connect-jdbc/#download
还要下载一个oracle jdbc驱动程序jar并将其放在kafka安装包下的lib目录中。
创建一个plugin.path目录:/usr/local/wyh/kafka/kafka_2.12-2.1.0/share/java,然后将刚下载到该目录中的插件压缩包解压缩后,将jar包放在Lib下。请注意,ojdbc.jar的版本应与jdk和oracle的版本相对应。我在这里使用jdk1.8 + oracle11g。
20190403205348559.png (54.93 KB,下载时间:5)
下载附件
保存到相册
2019-6-25 20:04上传
4.在kafka安装软件包下的配置中,在connect-standalone.properties文件中修改plugin.path:
20190409204139602.png (122 KB,下载时间:7)
下载附件
保存到相册
2019-6-25 20:05上传
5.在config下创建连接器配置文件:
[Bash shell] 查看纯文本 复制代码 [root @ localhost config]#vi wyh-oracle-connector.properties
添加以下内容:
[Bash shell] 查看纯文本 复制代码
名称= test-oracle-connector
connector.class = io.confluent.connect.jdbc.JdbcSourceConnector
task.max = 1
connection.password = wyhpwd
connection.url = jdbc:oracle:瘦:@ 192.168.184.129:1522:orcl
connection.user = wyh
table.whitelist = TEST_USER
模式=递增
递增。列。名称= ID
topic.prefix = test-oracle-
在这里,我们必须注意,Oracle中的内部表名和列名要大写,因此在配置中,table.whitelist和crementing.column.name应该大写,否则会报告错误。这里的名称是连接器名称,该名称是唯一的,不能重复。 connector.class是连接器的类名称。连接到oracel时,最好将用户名和密码与url分开写,因为分开写会隐藏密码,否则,如果直接写在url中,密码将以纯文本显示。 table.whitelist是一个允许复制的表。 mode指示增量查询的模式,即根据跟踪数据更新的模式。 crementing.column.name是用于在模式下进行跟踪的特定列名称。 topic.prefix是在有多个表的情况下,每个表根据主题的前缀可以有不同的主题。在这里,我们只有一张桌子。输出数据的主题是topic.prefix加上表名。该主题将自动创建。必须指定topic.prefix。
6.启动连接器:
[Bash shell] 查看纯文本 复制代码
[root @ localhost kafka_2.12-2.1.0]#bin/connect-standalone.sh config/connect-standalone.properties config/wyh-oracle-connector.properties
7.启动使用者:
[Bash shell] 查看纯文本 复制代码
[root @ localhost kafka_2.12-2.1.0]#bin/kafka-console-consumer.sh--bootstrap-server 192.168.184.128:9092--from-beginning--topic test-oracle-TEST_USER
消息如下:
20190409201709466.png (198.39 KB,下载时间:9)
下载附件
保存到相册
2019-6-25 20:07上传
图中有效负载中的数据是数据库中的每条数据。
这是一个临时性的问题:为什么Oracle中的id是1,2,3,4,5,但是在主题中读取的消息的id是字母(例如:AQ ==)。
对于模式递增的连接器,它仅适用于插入类型的数据更改。通过检测新添加的ID大于先前读取的最大ID,确定是否是要更新的数据。在此模式下无法更新更新和删除数据。
在这里,我们插入另一条数据:
[SQL] 以纯文本格式查看 复制代码
SQL \ gt;插入test_user(用户名,密码)值(``bill''," 666");
看一下主题:
1.png (20.39 KB,下载时间:3)
下载附件
保存到相册
2019-6-25 20:08上传
这样,插入时oracle中的数据与kafka同步。
最新的经典文章,欢迎关注公众号
---------------------
作者:QYHuiiQ
原文:https://blog.csdn.net/QYHuiiQ/article/details/89002795