Ошибка преобразования Memsql Spark-Kafka

У нас есть кластер Spark, работающий под Memsql, у нас работают разные конвейеры, настройка ETL приведена ниже.

  1. Извлечение: - Spark читает сообщения из кластера Kafka (с использованием Memsql Kafka-Zookeeper)
  2. Преобразование: - Для этого шага у нас развернут пользовательский jar.
  3. Загрузить: - данные из этапа преобразования загружаются в Columnstore

У меня есть сомнения ниже:

Что происходит с сообщением, полученным от Kafka, если задание не выполняется на этапе преобразования - позаботится ли Memsql о повторной загрузке этого сообщения - или данные потеряны

Если данные теряются, как я могу решить эту проблему, есть ли какие-либо изменения конфигурации, которые необходимо сделать для этого?


person Ravi Prakash    schedule 31.01.2016    source источник


Ответы (2)


В настоящее время, по крайней мере, один раз семантика недоступна в MemSQL Ops. Он находится в дорожной карте и будет присутствовать в одном из будущих выпусков Ops.

person eklhad    schedule 02.02.2016

Если вы еще этого не сделали, вам следует попробовать MemSQL 5.5 Pipelines. http://blog.memsql.com/pipelines/

Этот не основан на искре (и преобразования выполняются немного по-другому, поэтому вам, возможно, придется переписать код), но теперь у нас есть собственные потоки kafka.

Способ, которым мы получаем ровно один раз с нативной версией, прост; хранить смещения в базе данных той же атомарной транзакции, что и фактические данные. Если что-то не удается и транзакция не фиксируется, смещения не будут зафиксированы, поэтому мы, естественно, автоматически повторим попытку этого раздела-смещения-диапазона.

person Joseph Victor    schedule 29.09.2016