【问题标题】:How to configure Kafka JDBC Source Connector with stored procedure?如何使用存储过程配置 Kafka JDBC 源连接器?
【发布时间】:2019-12-24 02:05:49
【问题描述】:

我对 Kafka 很陌生,我正在做一个 PoC(我的第一个 Kafka 应用程序)并且很想知道是否有人遇到过或使用过自定义 JDBC 源连接器,该连接器使用存储过程从 Oracle 导出数据进入卡夫卡?

我知道 SO 社区可能会将这视为一个开放式问题,但感谢您的耐心等待,如果您有任何反馈,我将不胜感激。

谢谢!

一些背景:

  • 我已经在 Oracle 中有存储过程,现有 Spring 应用程序使用这些存储过程在新数据库中提取和加载数据(用于现有企业应用程序的新版本)。

  • 新数据库中的表结构与旧数据库不同。

  • Spring 应用程序(使用 Spring JDBC 并与存储过程、行映射器等一起使用)被开发为一个 PoC,用于检查连接、集成和在新数据库中加载数据。

    李>
  • 现在它可以工作了,我们正在尝试引入 Kafka,它会实际存储数据并然后将其加载到新数据库中。稍后会开发 JDBC Sink 连接器。

  • 我正在寻找一个示例(使用 Java、Maven、Spring)来帮助我开始构建自定义连接器。大多数示例/文档都显示了不适合我现有应用的 curl 示例。我可能在这里遗漏了一些东西。

【问题讨论】:

  • 请提供存储过程的简化形式。是否有 OUT 参数或返回游标来获取数据?最重要的是,明确谁应该调用程序?你希望 Kafka 会 poll 过程吗?
  • 理想情况下,我希望现有应用程序执行存储过程并根据 RowMappers 转换结果集。但是,我不知道它的性能与 Kafka 的 poll 功能相比如何。以下是存储过程 OUT 参数示例:declareParameter(new SqlOutParameter("param_ref_cursor", OracleTypes.CURSOR, new CustomRowCallbackHandler(<params>)))
  • @RGB314 你有办法从连接器调用 SP 吗?请回答,以便对社区有所帮助。
  • 我没有继续采用这种方法,因为由于应用程序架构和数据流传输方式的变化,它变得多余。

标签: jdbc apache-kafka apache-kafka-connect


【解决方案1】:

我们可以通过源连接器属性调用 SP - 查询:通过创建临时表和插入数据在此处调用 sp

【讨论】:

  • 你确定吗? Source 连接器是否支持 DML 和/或 DDL 操作?
  • 我在 SP 中创建了#TempTables 并插入了数据。
  • 我的意思是这样有效吗? (在 SP 中创建临时表,被连接器使用)
  • 是的,我遵循这个设计已经 2 年了。生产中没有问题。
  • 抱歉,您使用查询 url 执行操作,然后使用表作为源?
猜你喜欢
  • 2017-10-12
  • 2020-09-02
  • 2019-11-15
  • 2020-01-15
  • 2019-11-17
  • 2023-01-01
  • 2019-12-16
  • 2021-05-07
  • 2018-05-01
相关资源
最近更新 更多