应该使用哪种框架来汇总和加入Kafka主题数据并将其存储到MySQL

时间:2019-05-17 05:38:41

标签: apache-spark apache-kafka bigdata spark-streaming apache-kafka-connect

我使用debezium-connector-mysql-plugin从mysql的两个kafka主题中获取数据。 现在我想每天汇总这些数据并存储到另一个mysql表中。

请提出建议。

谢谢。

1 个答案:

答案 0 :(得分:0)

除了评论您不想使用Confluent Platform之外,您还没有真正列出自己的要求(但没有说为什么)。


通常,对于Kafka中的数据(无论来自何处),您都有不同的处理方式:

  • 定制使用者(考虑到流处理框架的可用性,这可能是一个坏主意)
  • KSQL(use SQL to do your joins etc)-Confluent平台的一部分
  • Kafka Streams-用于执行流处理的Java库。 Apache Kafka的一部分。
  • Flink,Spark Streaming,Samza,Heron等等等

由您决定使用哪种类型,这取决于

  1. 正在使用的现有技术(如果不需要,则无需部署Spark集群;相反,如果您已经使用Spark并接受过许多开发人员的培训,那么使用它可能很有意义)
  2. 开发人员的语言熟悉程度-是否必须是Java API,还是更易于访问SQL
  3. 框架/工具的功能-您需要紧密的安全性集成,一次处理,CEP等吗?其中一些会排除或限制您使用的工具。

一旦您加入并汇总了数据,一个很好的模式是将其写回到Kafka(这样就可以更松散地将您的设计去耦,并实现组件的职责分离),然后使用Kafka Connect和JDBC Sink。 Kafka Connect是Apache Kafka的一部分。


最后一个考虑因素:如果您要从MySQL中获取数据,请先对其进行处理,然后再将其写回到MySQL中……您甚至需要Kafka吗?是否有适当的理由使用它,而不仅仅是在mySQL本身中进行此处理?

免责声明:我为Confluent工作。