oracle同步kafka,[oracle数据库 同步]如何从oracle同步数据到kafka

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:

23dfdd8bf6e57b7ed9732e0139a89f37.png

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。

c9ff63b9bf6eb367f12f142e5484bf0e.png

20190403205348559.png (54.93 KB,下载时间:5)

下载附件

保存到相册

2019-6-25 20:04上传

4.在kafka安装软件包下的配置中,在connect-standalone.properties文件中修改plugin.path:

13a92d11d885b71a3957235aef8fba65.png

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

消息如下:

553f313d3ab15d453d1728b2222a2bf9.png

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");

看一下主题:

7513e5ce0fa5468c4dd75a3da31ac815.png

1.png (20.39 KB,下载时间:3)

下载附件

保存到相册

2019-6-25 20:08上传

这样,插入时oracle中的数据与kafka同步。

最新的经典文章,欢迎关注公众号

---------------------

作者:QYHuiiQ

原文:https://blog.csdn.net/QYHuiiQ/article/details/89002795

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值