Введение в поток данных

задняя часть Программа перевода самородков
Введение в поток данных

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

Существует много вариантов потока данных

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

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

Поток данных разделяет производителей и потребителей

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

Dataflow как механизм обмена данными

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

Крупные компании, такие как LinkedIn, широко используют внутренние потоки данных. Dataflow также используется внутри Uber. Многие компании корпоративного уровня внедряют или уже внедрили поток данных внутри компании. То же самое верно для многих стартапов.

постоянный поток данных

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

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

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

Пример использования потока данных

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

Поток данных для архитектуры, управляемой событиями

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

Поток данных для умных городов и Интернета вещей

Для установки вУмный городдатчик,умная фабрикадатчик или др.Интернет вещейустройств потоки данных могут использоваться для передачи данных с этих устройств. Такие значения, как температура, уровень загрязнения и т. д., можно периодически снимать с устройства и записывать в поток данных. Потребители данных могут считывать выборки из потока данных, когда это необходимо.

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

Датчики и устройства IoT в «умных» городах — это всего лишь два примера источников данных, которые можно периодически отбирать и извлекать из потоков данных. Но есть много других типов данных, которые можно периодически собирать и передавать в потоковом режиме. Например, обменные курсы валют или курсы акций также могут быть выбраны и переданы в потоковом режиме. Подсчет голосов также может быть выбран и периодически передан в потоковом режиме.

поток данных для точек данных

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

записи, сообщения, события, образцы и т. д.

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

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

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


Программа перевода самородковэто сообщество, которое переводит высококачественные технические статьи из Интернета сНаггетсДелитесь статьями на английском языке на . Охват контентаAndroid,iOS,внешний интерфейс,задняя часть,блокчейн,продукт,дизайн,искусственный интеллектЕсли вы хотите видеть более качественные переводы, пожалуйста, продолжайте обращать вниманиеПрограмма перевода самородков,официальный Вейбо,Знай колонку.