Кафка против StreamSets

Я читал статьи, связанные с Kafka и StreamSets, и мое понимание было

  1. Kafka выступает в роли посредника между системой Producer и подписчиком. Производитель передает данные в кластер Kafka, подписчик извлекает данные из Kafka.

  2. StreamsSets — это технология перемещения данных из одного источника в другой по конвейеру.

Теперь ниже мои вопросы, пожалуйста, помогите уточнить

  1. В чем принципиальная разница между Kafka и StreamSets? Разве Kafka не перемещает данные, а StreamSets перемещает данные?

  2. Если Kafka не перемещает данные, для чего используется Kafka? Если он перемещает данные, как решения ETL, чем он отличается от SSIS, Informatica и т. д.?

  3. Чем StreamSets отличается от SSIS, Informatica и т. д.?

Не стесняйтесь принимать ответ, используя галочку рядом с сообщением

OneCricketeer 09.01.2020 10:26
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
10
1
3 293
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

StreamSets — это графический инструмент, содержащий компоненты, позволяющие перемещать данные, в том числе производители и потребители Kafka, но вы не обязаны их использовать.

Они дополняют друг друга, и с помощью Kafka вы можете допустить обратное давление в системах потоковой передачи или заставить производителей/потребителей, не относящихся к StreamSet, взаимодействовать с другими темами Kafka. Нет, Kafka не перемещает данные (кроме внутренней репликации), это делают клиенты, взаимодействующие с брокерами.

Я не использовал Informatica или SSIS, но я уверен, что если бы вы связались с кем-то из StreamSets, они могли бы ответить, как они сравнивают

Ответ принят как подходящий

1) В StreamSets большую часть времени мы создаем «конвейеры данных», думаем о конвейере как о приложении, которое может состоять из нескольких шагов/задач, первая задача может считывать данные из базы данных или kafka или любого количества источников данных, вторая на шаге можно изменить данные, на третьем шаге можно запустить скрипт... и т. д. и, наконец, он может сохранить преобразованные данные в месте назначения, которое может быть базой данных, AWS... и т. д. Таким образом, Fafka и StreamSets могут работать вместе, где StreamSets может читать данные и писать в Kafka

2) Я думаю о Kafka как о месте, где собираются данные из нескольких источников и доступны для потребителей в течение определенного времени. Например, Kafka может периодически читать из таблицы базы данных и сохранять изменения в «теме», периодически читать из веб-службы, а затем сохранять эти данные в другой теме. Эти темы теперь доступны для потребителей, разработчик теперь может создать приложение, которое считывает данные из первой темы и что-то делать с данными, Kafka может отслеживать то, что читал потребитель, используя смещения, и предлагает репликацию и другие параметры. Это устраняет необходимость писать собственный код, объединяющий несколько источников и мест назначения, вместо этого вы можете настроить эту часть.

StreamSets может читать и писать в Kafka. StreamSets не хранит данные в своей собственной системе, в то время как Kafka хранит данные в течение настраиваемого периода времени.

3) SSIS похож на StreamSets тем, что он используется для создания конвейеров/пакетов, состоящих из нескольких задач, каждая задача может брать данные/результат от предыдущих задач, а затем что-то с ними делать. Как StreamSets, так и SSIS могут подключаться ко многим типам источников данных и мест назначения.

Мое личное мнение о том, чем отличаются StreamSets и SSIS:

  • StreamSets основан на веб-интерфейсе, в то время как для SSIS требуется Visual Studio, графический интерфейс StreamSets проще в использовании и не требует установки специального программного обеспечения для каждого разработчика.
  • Развертывание конвейеров StreamSets в рабочей среде с системой контроля версий было проще, чем пакетов SSIS.
  • SSIS — это продукт Microsoft, поэтому он очень хорошо интегрируется с другими продуктами Microsoft. StreamSets можно установить на любой платформе, что делает его идеальным для облака AWS.
  • Если вы хотите писать задачи сценариев SSIS, вы должны использовать C#/DotNet. Задачи скриптов StreamSets можно писать на Jython и JavaScript.
  • SSIS старше и имеет массу документации в Интернете.

Спасибо всем, я думаю, что должен поделиться некоторыми идеями о том, как мы можем смотреть на спецификацию между kafka и набором потоков, если мы используем оба в одном кластере, то как мы можем их различать.

«Поскольку мы используем надежность Kafka и простоту Streamset»

  1. Streamset устраняет накладные расходы на кодирование для производителя и потребителя.
  2. Streamset Использовать для 1 источника 1 адресата
  3. Kafka переносит данные из нескольких источников в несколько пунктов назначения (методология pub-sub)
  4. Streamset устраняет проблему дрейфа данных

Другие вопросы по теме