作者:Wx丶华少 | 来源:互联网 | 2023-01-19 09:38
在我目前的用例中,我使用Spark核心从MS SQL Server读取数据并对数据进行一些处理并每隔1分钟将其发送到Kafka,我使用Spark和Phoenix来维护HBase表中的CDC信息.
但是这种设计存在一些问题,例如,如果MS SQL记录激增,Spark处理比批处理间隔花费更多时间,并且spark最终会向Kafka发送重复记录.
作为替代方案,我正在考虑使用Kafka Connect从MS SQL读取消息并将记录发送到Kafka主题并在Kafka中维护MS SQL CDC.Spark Streaming将从Kafka主题中读取记录,并将记录和存储处理到HBase并发送到其他Kafka主题.
我有几个问题要实现这个架构:
我可以使用开源Kafka连接器和Apache Kafka 0.9版本来实现这种架构.
如果是的话,请你推荐一个GitHub项目,它可以为我提供这样的连接器,我可以使用SQL查询CDC MS SQL表SELECT * FROM SOMETHING WHERE COLUMN > ${lastExtractUnixTime})
,并将记录存储到Kafka主题中.
Kafka connect是否支持Kerberos Kafka设置.
Robin Moffat..
9
我可以使用开源Kafka连接器和Apache Kafka 0.9版本来实现这种架构.
是的,Kafka Connect在Apache Kafka的0.9版本中发布.但是,直到更高版本才会添加单个消息转换等功能.如果可能,您应该使用最新版本的Apache Kafka(0.11)
如果是的话,请你推荐一个GitHub项目,它可以为我提供这样的连接器,我可以使用SQL查询CDC MS SQL表,例如SELECT*FROM SOMETHING WHERE COLUMN> $ {lastExtractUnixTime})并将记录存储到Kafka主题中.
您可以使用作为Confluent Platform(或单独)的一部分提供的JDBC Source,也可能想要调查kafka-connect-cdc-mssql
Kafka connect是否支持Kerberos Kafka设置.
是的 - 看到这里和这里
关于这一点:
Spark Streaming将从Kafka主题中读取记录,并将记录和存储处理到HBase并发送到其他Kafka主题.
您实际上也可以在这里使用Kafka Connect - HBase可以使用Sinks - 请参阅此处的连接器完整列表.为了进一步处理Kafka中的数据,有Kafka Streams API和KSQL.
1> Robin Moffat..:
我可以使用开源Kafka连接器和Apache Kafka 0.9版本来实现这种架构.
是的,Kafka Connect在Apache Kafka的0.9版本中发布.但是,直到更高版本才会添加单个消息转换等功能.如果可能,您应该使用最新版本的Apache Kafka(0.11)
如果是的话,请你推荐一个GitHub项目,它可以为我提供这样的连接器,我可以使用SQL查询CDC MS SQL表,例如SELECT*FROM SOMETHING WHERE COLUMN> $ {lastExtractUnixTime})并将记录存储到Kafka主题中.
您可以使用作为Confluent Platform(或单独)的一部分提供的JDBC Source,也可能想要调查kafka-connect-cdc-mssql
Kafka connect是否支持Kerberos Kafka设置.
是的 - 看到这里和这里
关于这一点:
Spark Streaming将从Kafka主题中读取记录,并将记录和存储处理到HBase并发送到其他Kafka主题.
您实际上也可以在这里使用Kafka Connect - HBase可以使用Sinks - 请参阅此处的连接器完整列表.为了进一步处理Kafka中的数据,有Kafka Streams API和KSQL.