И рост потоков данных

Поскольку данные поступают и обновляются из все большего числа источников, компании стремятся быстро преобразовать эти данные в информацию для принятия ключевых решений, как правило, автоматически.

Потоки данных в реальном времени стали более популярными благодаря Интернету вещей (IoT), датчикам в повседневных устройствах и, конечно же, развитию социальных сетей. Эти платформы обеспечивают постоянно меняющиеся состояния. Их анализ даже днем ​​позже может дать вводящую в заблуждение или в настоящее время ложную информацию.

Почему стриминг?

Потоковая передача обеспечивает согласованный прием данных. В прошлом было несколько недостатков, которые мешали повсеместному распространению потоковой передачи в реальном времени.

Одна из основных проблем заключалась в потере данных, если произошла ошибка, т.е. поток не работал, поэтому сбор данных не производился.

Другой заключался в том, что инструменты реального времени не успевали за скоростью - количество данных, которые некоторые социальные сети производят каждую минуту, ошеломляет.

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

В качестве бонуса, поскольку данные поступают по мере их производства, если вы можете найти способ их обработки одновременно, вы получите более быстрое понимание.

Апач Кафка

Apache Kafka - это платформа обработки потоковых данных с открытым исходным кодом, разработанная LinkedIn для решения проблем, описанных выше.

Kafka - это система сообщений "публикация-подписка". Он обеспечивает изоляцию между производителями и потребителями данных. Это также позволяет промежуточное хранение и буферизацию данных, чтобы помочь с большими скоростями.

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

При выборе платформы для стриминга необходимо учитывать три основных момента:

  • Надежность
  • Пропускная способность
  • Гибкость

Kafka может предоставить каждый из них по-своему.

Для обеспечения надежности Kafka использует репликацию. Одна реплика - назначенный лидер. Остальные следуют за лидером и получают данные от него. Это означает, что у каждого раздела есть лидер для выборки. Если какой-либо раздел выйдет из строя, другой раздел будет доступен для извлечения.

Кафка тоже быстр. В этой статье объясняется, как протестировать Kafka. Они обнаружили, что на дешевом оборудовании он может выполнять 2 миллиона операций записи в секунду. Одна из основных причин - это прямые вызовы ядра ОС для перемещения данных. Он также позволяет избежать произвольного доступа к диску за счет записи последовательных неизменяемых данных (называемых журналом фиксации). Наконец, он может масштабироваться вбок, что означает, что он может писать в тысячи разделов, распределенных на многих машинах.

Его гибкость достигается за счет разделения производителей и потребителей. Потребители следят за тем, что они потребили, а не производители диктуют поток. Поскольку производители сохраняют данные сразу на диске, вы можете приостановить потребителей - после перезапуска они продолжают потреблять с того места, где они остановились. Эта развязка также позволяет осуществлять потоковую передачу из источника один раз и многократно использовать ее для многих приложений.

Резюме

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