Kafka vs StreamSets

时间:2019-06-02 14:37:31

标签: ssis apache-kafka informatica streamsets

我正在阅读与Kafka和StreamSets相关的文章,我的理解是

  1. Kafka充当生产者系统和订户之间的代理。生产者将数据推送到Kafka集群,订阅者从Kafka提取数据

  2. StreamsSets是一项通过管道将数据从一个源移动到另一个源的技术

现在,以下是我的问题,请帮助澄清

  1. Kafka和StreamSet之间的根本区别是什么?是Kafka不会移动数据,而是StreamSets会移动数据吗?

  2. 如果Kafka不移动数据,Kafka的用途是什么?如果它像ETL解决方案那样移动数据,它与SSIS,Informatica等有何不同?

  3. StreamSet与SSIS,Informatica等有何不同?

3 个答案:

答案 0 :(得分:4)

StreamSets是一种图形工具,其中包含允许进行数据移动的组件,这些组件碰巧包括Kafka生产者和消费者,但您不需要使用它们。

它们是互补的,通过使用Kafka,您可以允许流系统中出现背压,或者让非StreamSet的生产者/消费者与其他Kafka主题进行交互。不,Kafka不会移动数据(内部复制除外),与代理进行交互的客户端会移动数据。

我没有使用过Informatica或SSIS,但是我确定如果您与StreamSets的某人联系,他们可以回答他们的比较方式

答案 1 :(得分:0)

1)大多数时候,在StreamSet中,我们创建“数据管道”,将管道想像为可以包含多个步骤/任务的应用程序,第一个任务可以从数据库或kafka中读取数据或任何数量的数据源,第二步可以修改数据,第三步可以运行脚本...等等,最后它可以将转换后的数据保存在目标位置,该目标可以是数据库,AWS ...等。因此,Fafka和StreamSets可以工作StreamSet可以在其​​中一起读取和写入Kafka的数据

2)我认为Kafka是一个从多个来源收集数据并在一定时间内可供消费者使用的地方。例如,Kafka可以定期从数据库表读取并将更改存储在“主题”中,定期从Web服务读取,然后将该数据存储到另一个主题中。这些主题现在可供消费者使用,开发人员现在可以创建一个应用程序,该应用程序从第一个主题读取数据并对该数据进行处理,Kafka可以通过使用偏移量来跟踪消费者已阅读的内容,并提供复制和其他选项。无需编写集成多个源和目标的自定义代码,而可以配置此部分。

StreamSet可以读取和写入Kafka。 StreamSets不会在自己的系统中存储数据,而Kafka会在可配置的时间内存储数据。

3)SSIS与StreamSets相似,它用于创建包含多个任务的管道/程序包,每个任务都可以从先前任务中获取数据/结果,然后对其执行某些操作。 StreamSet和SSIS都可以连接到多种数据源和目标。

我对StreamSet和SSIS有何不同的个人看法是:

  • StreamSets是基于Web的,而SSIS需要Visual Studio,StreamSets GUI易于使用,并且不需要为每个开发人员安装特殊的软件。
  • 通过源代码控制将StreamSets管道部署到生产中比使用SSIS包更容易。
  • SSIS是Microsoft产品,因此可以与其他Microsoft产品很好地集成。 StreamSet可以安装在任何平台上,使其非常适合AWS云。
  • 如果要编写SSIS脚本任务,则必须使用C#/ DotNet。 StreamSets脚本任务可以用Jython和JavaScript编写
  • SSIS较旧,在线上有大量文档。

答案 2 :(得分:0)

感谢大家,我认为必须分享一些关于如何看待 kafka 和流集之间的规范的想法,如果我们在同一个集群中使用两者,那么我们如何区分。

“因为我们正在使用 Kafka 的可靠性和 Streamset 的简单性”

  1. Streamset 消除了生产者和消费者的编码开销
  2. Streamset 用于 1 个源 1 个目的地
  3. Kafka 将数据从多个来源传送到多个目的地(发布-订阅方法)
  4. Streamset 消除了数据漂移问题