Apache spark Spark&x2B;卡夫卡:如何将卡夫卡流与RDBMS连接起来

Apache spark Spark&x2B;卡夫卡:如何将卡夫卡流与RDBMS连接起来,apache-spark,apache-kafka,spark-streaming,Apache Spark,Apache Kafka,Spark Streaming,要求:我有不同的微服务为卡夫卡生成数据。我想收集信息,进行聚合,并为报告构建表 构建用于报告的新表需要我从Kafka读取数据,将其与现有事实表进行比较,并在数据库中创建/更新新ROE 我当时的想法是使用Spark Streaming来阅读卡夫卡主题,并与RDBMS数据库连接 正在寻求帮助以了解连接的最佳方式。

要求:我有不同的微服务为卡夫卡生成数据。我想收集信息,进行聚合,并为报告构建表

构建用于报告的新表需要我从Kafka读取数据,将其与现有事实表进行比较,并在数据库中创建/更新新ROE

我当时的想法是使用Spark Streaming来阅读卡夫卡主题,并与RDBMS数据库连接


正在寻求帮助以了解连接的最佳方式。

  • 创建CDC或JDBC Kafka源连接器,将RDBMS表(用户)中的所有数据加载到Kafka中
  • 从两个卡夫卡主题创建2个卡夫卡流
  • 使用Kafka流连接和聚合进行连接
  • a。使用自定义Java JDBC更新回数据库

    b。尝试将更新的数据发布到新的主题,并使用JDBC接收器连接器更新回RDBMS DB表


  • 我建议尝试结构化流,并将这些数据帧与从jdbc连接中提取的数据帧连接起来。问题是DB可能有数百万条记录,但Kafka可能只有少数条目的记录。从DB加载整个表似乎是一个问题步骤1加载整个数据在我的情况下数百万条记录听起来不可伸缩Kafka适用于大规模数据…并且可以根据需要轻松伸缩…我最终编写了一个spark流作业和一个计划作业。Spark Streaming job负责读取Kafka主题并更新事实表,Spark schedule job负责读取数据仓库并更新报告表。我不确定这是最好的方法,但它解决了我的问题