2016-06-10 6 views
3

Я работаю над созданием приложения с нижеследующими требованиями, и я только начинаю с flink.Использование Apache Flink для потоковой передачи данных

  • глотают данные в Кафки с скажем, 50 разделов (Incoming скорость - 100000 сообщ/сек)
  • Считывает данные из Кафки и процесса каждый данных (Do некоторые вычисления, сравнить со старыми данными и т.д.) в реальном масштабе времени
  • Сохраните выход на Cassandra

Я искал платформу реального времени и нашел, что Flink отлично подходит как для реального времени, так и для партии.

  • Считаете ли вы, что флинк лучше всего подходит для моего использования или я должен использовать Storm, Spark streaming или любые другие потоковые платформы?
  • Нужно ли писать конвейер данных в потоке данных Google для выполнения моей последовательности шагов на флинке или есть ли другой способ выполнить последовательность шагов для потоковой передачи в реальном времени?
  • Скажите, если мои вычисления рассчитаны на 20 миллисекунд, как я могу лучше спроектировать его с помощью flink и получить лучшую пропускную способность.
  • Могу ли я использовать Redis или Cassandra для получения данных в пределах flink для каждого вычисления?
  • Смогу ли я использовать кеш-память JVM внутри флинка?
  • Также я могу агрегировать данные на основе ключа для некоторого временного окна (пример 5 секунд). Например, допустим, что в систему поступает 100 сообщений, и 10 сообщений имеют один и тот же ключ, я могу объединить все сообщения с одним и тем же ключом и обработать его.
  • Есть ли учебники по лучшим практикам с использованием флинка?

Спасибо и оцените всю вашу помощь.

ответ

1

Учитывая ваше описание задачи, Apache Flink выглядит как подходящий для вашего случая использования.

В общем, Flink предоставляет low latency and high throughput и имеет параметр для их настройки. Вы можете читать и записывать данные из Redis или Cassandra. Однако вы можете также store state internally in Flink. Флинк также имеет sophisticated support for windows. Вы можете прочитать blog on the Flink website, зайдите в documentation для получения дополнительной информации или следуйте по этому адресу Flink training, чтобы узнать API.

+0

Спасибо за ответ. Я хотел бы уточнить еще одну вещь. Должен ли я использовать sdk для потока данных Google для создания конвейера и запускать его на flink или у него есть собственный sdk, в котором я могу создать конвейер. Я посмотрел на поток данных api, но не смог понять, имеет ли он все функциональные возможности, подобные потоку данных. Спасибо за вашу помощь. – Neoster

+0

Бегун Apache Beam (ранее API DataFlow API) реализован поверх API DataStream от Flink. Таким образом, DataStream API (по крайней мере) является выразительным, как API Beam. –

Смежные вопросы