Kafka vs StreamSets

Nik*_*RED 5 ssis informatica apache-kafka streamsets

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

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

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

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

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

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

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

cri*_*007 5

StreamSets是一种图形工具,其中包含允许数据移动的组件,这些组件恰好包括Kafka生产者和使用者,但您无需使用它们。

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

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


Gth*_*ala 4

  1. 在 StreamSets 中,大多数时候我们创建“数据管道”,将管道想象成一个应用程序,它可以包含多个步骤/任务,第一个任务可以从数据库或 kafka 或任意数量的数据源读取数据,第二个步骤可以修改数据,第三步可以运行脚本......等等,最后它可以将转换后的数据保存到可以是数据库或任何其他云存储的目的地。因此 Kafka 和 StreamSets 可以协同工作,StreamSets 可以从 Kafka 读取数据并向 Kafka 写入数据

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

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

  1. SSIS 与 StreamSet 类似,它用于创建由多个任务组成的管道/包,每个任务可以从先前的任务中获取数据/结果,然后用它执行某些操作。StreamSets 和 SSIS 都可以连接到多种数据源和目标。

我个人对 StreamSets 和 SSIS 的不同之处的看法是:

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