# Apache-flink: вариант использования для управления данными

Я пытаюсь создать решение для управления данными (DM), включающее прием большого объема данных, прохождение некоторых правил домена данных, замену (обогащение), пометку ошибочных данных перед их отправкой в ​​систему ниже по потоку. Проверка правил и замена значений могут быть чем-то простым, например, допустимыми пороговыми числовыми значениями, которым должны удовлетворять элементы данных, или чем-то более сложным, например поиском с помощью основных данных для пула значений домена.

Как вы думаете, Apache Flink может быть хорошим кандидатом для такой обработки? Могут ли быть определены операторы flink для поиска (с основными данными) для каждого кортежа, проходящего через него? Я думаю, что есть некоторые недостатки использования Apache Flink для последнего вопроса: 1) поиск может быть блокирующей операцией, которая замедлит пропускную способность, 2) контрольная точка и сохранение состояния оператора не могут быть выполнены, если операционные функции должны получать основные данные откуда-нибудь.

Какие мысли? Есть ли какой-нибудь другой инструмент, который лучше всего подходит для указанного выше варианта использования?

Спасибо


person Cal Ranjan    schedule 02.08.2016    source источник


Ответы (1)


Краткий ответ - да'. Вы можете использовать Flink для всего, что вы упомянули, включая поиск и обогащение данных, с оговоркой, что у вас не будет гарантий на побочные эффекты, вызванные вашими операторами (например, обновление внешнего состояния), не более одного или только один раз. Вы можете обойти дополнительную задержку внешнего поиска с более высоким параллелизмом для этого конкретного оператора.

Невозможно дать точный ответ без дополнительной информации, например, что именно представляет собой «данные большого объема» в вашем случае, каковы ваши требования к задержке каждого события, какие у вас есть другие ограничения и т. Д. Однако в общем смысле до вы обязуетесь использовать Flink, вам следует взглянуть на Spark Streaming и Apache Storm и сравнить. И Spark, и Storm имеют большие сообщества и больше документации, так что это может избавить вас от боли в длинном роме. Теги на StackOverflow на момент написания: spark-streaming x 1746, apache-storm x 1720, apache-flink x 421

Что еще более важно, Spark Streaming имеет семантику, аналогичную Flink, но, вероятно, даст вам лучшую пропускную способность для массовых данных. В качестве альтернативы Storm концептуально похож на Flink (носики / болты против операторов) и на самом деле имеет более низкую производительность / пропускную способность в большинстве случаев, но это просто более устоявшаяся структура.

person David Ostrovsky    schedule 03.08.2016