Что такое потоковая передача данных? Как работает потоковая передача данных?
Потоковая передача данных генерируется непрерывно тысячами ресурсов данных, которые обычно отправляют соответствующие записи данных в небольших размерах (порядка килобайт). Потоковые данные включают в себя такие данные, как файлы журналов, созданные клиентами, использующими ваши мобильные или веб-приложения, покупки электронной коммерции, информацию из социальных сетей, финансовых торговых площадок или геопространственных услуг, действия игроков в игре и телеметрию со связанных устройств. или контрольно-измерительные приборы в центрах обработки данных.
Вы должны обрабатывать эти данные последовательно и постепенно, по каждой записи или в течение скользящих временных окон, и использовать их для качественного анализа, включая фильтрацию, корреляцию, агрегирование и выборку. Информация, полученная в результате такого анализа, дает компаниям представление об их бизнесе и активности клиентов, таких как использование услуг (для измерения/выставления счетов), клики на веб-сайтах, активность серверов и географическое местоположение устройств, людей и физических товаров, что позволяет им оперативно реагировать на возникающие ситуации. . Например, компании могут узнавать об изменениях в общественном мнении о своих брендах и продуктах, анализируя потоки социальных сетей и быстро реагируя при возникновении необходимости.
Как работает потоковая передача данных?
Компании могут иметь тысячи источников знаний, которые передаются по разным адресам. Он часто обрабатывает данные с использованием методов потоковой обработки и обычно состоит из крошечных фрагментов.
Потоковая передача данных позволяет обрабатывать фрагменты этих данных в реальном или близком к реальному времени. Два наиболее распространенных варианта использования потоковой передачи данных:
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
- Потоковое мультимедиа, особенно видео
- Аналитика в реальном времени
Потоковая передача данных должна быть зарезервирована для конкретных предприятий, таких как потоковая передача мультимедиа и финансовые показатели фондового рынка. Сегодня его внедряют в каждой компании. Потоки данных позволяют корпорациям обрабатывать данные в режиме реального времени, давая компаниям возможность наблюдать за всеми аспектами своего бизнеса.
Характер мониторинга в режиме реального времени позволяет руководству реагировать и реагировать на кризисные события гораздо быстрее, чем при использовании другого метода обработки. Потоки данных предлагают бесконечные каналы между всеми движущимися частями корпорации и, следовательно, людьми, которые могут принимать решения.
Потоковое мультимедиа
Потоковое мультимедиа является одним из примеров. Это позволяет человеку начать просмотр видео, не загружая предварительно все видео.
Это позволяет пользователям раньше начать просмотр информации (видео) и, в случае потоковой передачи мультимедиа, не позволяет устройству пользователя напрямую сохранять большие файлы. Данные могут приходить и уходить из системы, поскольку они обрабатываются и отслеживаются.
Аналитика в реальном времени
Потоки данных позволяют компаниям использовать аналитику в реальном времени для наблюдения за своей деятельностью. Сгенерированные данные часто обрабатываются с помощью методов анализа данных временных рядов, чтобы сообщить о том, что происходит.
Интернет вещей (IoT) увеличил разнообразие и объем передаваемых знаний. Повышение скорости сети способствует увеличению скорости передачи информации.
Таким образом, вы получаете наиболее распространенные три V в области анализа знаний и потоков данных:
- Разнообразие
- Объем
- Скорость
В сочетании с Интернетом вещей организация может получать потоки данных от множества различных датчиков и мониторов, что расширяет ее возможности микроуправления многими нежесткими переменными в режиме реального времени.
С точки зрения хаос-инженерии аналитика в реальном времени хороша, потому что она увеличивает способность компании следить за своей деятельностью. Таким образом, если их оборудование выйдет из строя или показания передадут информацию, требующую быстрых действий, компания знает, как действовать.
Характеристики потоков данных
Потоковые данные из веб-браузеров, датчиков и других систем мониторинга имеют характеристики, которые отличают их от традиционных исторических данных. Ниже приведены несколько важнейших атрибутов потоковых данных:
Чувствителен ко времени
Каждый элемент потока данных имеет отметку времени. Потоки данных чувствительны ко времени и теряют значимость по прошествии определенного времени. Например, информация из системы домашней безопасности, указывающая на подозрительное движение, должна быть проанализирована и обработана в течение короткого периода времени, чтобы оставаться актуальной.
Непрерывный
Потоки данных, как правило, непрерывны и происходят в режиме реального времени, но они не всегда обрабатываются мгновенно, в зависимости от системных требований.
гетерогенный
Данные потока часто поступают из тысяч различных источников, которые будут географически удалены. Из-за различий в источниках данные потока могут представлять собой смесь нескольких форматов.
Несовершенный
Из-за изменчивости источников и разных механизмов передачи данных поток знаний может содержать отсутствующие или поврежденные элементы данных. Кроме того, информационные элементы во время потока могут приходить не по порядку.
Архитектура данных для потоковой передачи данных
Архитектура потоковой передачи данных состоит из встроенных программных компонентов и предназначена для приема и обработки потоковых данных из различных источников. Streaming Data Architecture обрабатывает информацию сразу после ее сбора. Обработка состоит из размещения их в назначенном хранилище и будет включать в себя запуск, дальнейшие этапы обработки, такие как аналитика, дальнейшее манипулирование данными или некоторую, более позднюю обработку в реальном времени.
Существует несколько подходов к обработке данных. Во-первых, «старомодный» — это исполнение, то есть непосредственная обработка огромного объема знаний. Однако здесь вы будете специализироваться на разнице между потоковой обработкой и операциями в реальном времени. Самое простое разъяснение заключается в том, что операции в реальном времени — это реакции на информацию, тогда как потоковая обработка — это действие, выполняемое с информацией.
Решение в режиме реального времени гарантирует выполнение данных в течение короткого периода после сбора. Реакция на информацию практически мгновенная – обработка может занять минуты, секунды, а может быть и миллисекунды, в зависимости от бизнес-требований и прикладных решений. Примером использования операций в реальном времени могут быть операции продажи и покупки на фондовом рынке, когда примечание необходимо предоставить сразу после размещения заказа.
Какими могут быть компоненты и, следовательно, планирование архитектуры потоковой передачи данных?
Независимо от используемой платформы, архитектура потоковой передачи данных должна включать последующие важные группы компонентов.
1. Брокер сообщений
Группа компонентов, которая использует данные из источника, преобразует их в типичный формат сообщений и передает их в постоянную заметку, чтобы сделать их доступными для использования, предполагая, что другие инструменты могут прослушивать и использовать сообщения, передаваемые брокерами. Популярными инструментами потоковой обработки являются программное обеспечение с открытым исходным кодом, такое как Apache Kafka, или компоненты PaaS (платформа как услуга), такие как Azure IoT Hub, GCP Cloud Pub/Sub или Azure Event Hub, GCP Confluent Cloud, которые могут быть облачными событиями. потоковая платформа, используемая Apache Kafka. Microsoft Azure также работает с Kafka как с кластером HDInsight, поэтому его часто используют в качестве PaaS.
За исключением примеров, упомянутых выше, существуют различные инструменты, такие как Solace PubSub+ или Mulesoft Anypoint, построенные на основе компонентов с открытым исходным кодом. Они предоставляют полную мультиоблачную интеграционную среду, поддерживая различные потоковые данные и позволяя избавиться от накладных расходов, связанных с настройкой и обслуживанием платформы.
2. Инструменты обработки
Потоки выходных данных от вышеописанного брокера сообщений или процессора необходимо преобразовать и структурировать для дальнейшего анализа с использованием инструментов аналитики. Результатами такого анализа часто являются какие-то действия, оповещения, динамические информационные панели или, возможно, новые потоки данных.
Когда речь идет о платформах с открытым исходным кодом, которые специализируются на обработке потоковых данных, наиболее популярными и широко известными являются Apache Storm, Apache Spark Streaming и Apache Flink. Microsoft Azure поддерживает развертывание Apache Spark и Apache Storm как своего рода кластера HDInsight. Кроме того, Azure использует свое собственное решение под названием Stream Analytics, которое может быть PaaS-компонентом Azure, действующим как аналитический инструмент в реальном времени и сложный механизм обработки событий, предназначенный для исследования и обработки больших объемов быстрых потоковых данных из несколько источников одновременно. Таким образом, это немного подпадает под анализ данных, а также операции в реальном времени.
В случае GCP известными платформами для потоковой обработки являются Dataproc, включающий в себя Spark и Flink, а также отдельное проприетарное решение — Dataflow.
3. Инструменты анализа данных
После того как потоковые данные подготовлены для использования потоковым процессором и инструментом обработки, их необходимо проанализировать, чтобы получить ценность. Существуют различные подходы к потоковому анализу данных, но вы будете специализироваться на наиболее известных из них.
Apache Cassandra — это распределенная база данных NoSQL с открытым исходным кодом, обеспечивающая передачу потоковых событий приложениям с низкой задержкой. Потоки Kafka часто обрабатываются и сохраняются в кластере Cassandra. Это также применимо для реализации другого экземпляра Kafka, который получает поток изменений от Кассандры и передает их другим приложениям для принятия решений в режиме реального времени.
Другим примером является Elasticsearch, который может напрямую получать потоковые данные из тем Kafka. Благодаря формату Avro и реестру схем сопоставления Elasticsearch создаются автоматически, а внутри Elasticsearch часто выполняется быстрый текстовый поиск или аналитика.
Azure также использует CosmosDB с API Cassandra, поэтому возможности Apache Cassandra защищены в этом облаке. GCP поддерживает мир с помощью базы данных Firebase Realtime, Firestore и BigTable.
4. Потоковое хранение данных
Стоимость хранения обычно относительно невелика; поэтому организации хранят свои потоковые данные. Озеро данных — это наиболее гибкий и дешевый вариант хранения данных о событиях, но его очень сложно настроить и поддерживать должным образом. Это может включать в себя соответствующее секционирование данных, обработку данных и обратное заполнение историческими данными, поэтому в конечном итоге риск создания оперативного озера данных может стать серьезной проблемой.
Все поставщики облачных технологий предоставляют взаимосвязанные компоненты, служащие озерами данных. Azure использует Azure Data Lake Store (ADLS), а GCP — облачное хранилище Google.
Другой вариант — часто хранить информацию в хранилище данных или в постоянном хранилище выбранных инструментов, таких как Kafka, Databricks/Spark, BigQuedowntime.
Преимущества потоковой передачи и обработки данных
Потоковая обработка данных полезна в большинстве сценариев, когда новые динамические данные генерируются постоянно. Это подразумевает большинство отраслевых сегментов и вариантов использования больших данных. Компании обычно начинают с простых приложений, таких как сбор системных журналов, и элементарной обработки, такой как чередование минимальных и максимальных вычислений. В свою очередь, эти приложения развиваются в направлении более сложной обработки данных в режиме, близком к реальному времени. Первоначально приложения могут обрабатывать потоки данных для предоставления простых отчетов и выполнения простых ответных действий, таких как подача сигналов тревоги, когда ключевые показатели превышают определенные пороговые значения. В конце концов, со временем эти приложения выполняют более сложные формы анализа данных, такие как применение алгоритмов машинного обучения и извлечение более глубокой информации из данных. Со временем применяются сложные потоки и алгоритмы обработки событий, такие как затухающие временные окна для поиска самых последних популярных фильмов, что еще больше обогащает понимание.
Проблемы потоковой передачи данных
Потоки данных предлагают непрерывные потоки знаний, к которым будет запрашиваться информация. Поскольку данные могут поступать из разных ссылок или, возможно, из эквивалентного источника, но они перемещаются через распределенную систему, это означает, что поток сталкивается с проблемой упорядочивания данных и доставки их потребителю.
Таким образом, потоки данных при построении напрямую сталкиваются с проблемой теоремы CAP. При выборе базы данных или конкретного варианта потоковой передачи архитектор данных должен определить значение между:
- Наличие согласованных данных, где все полученные чтения являются самыми последними записями, а в противном случае возвращают ошибку.
- Наличие высокодоступных данных, когда все операции чтения содержат данные, но они могут быть не самыми последними.
Среди всех проблем две:
1. Потоковая передача данных очень сложна
Особенно сложно обрабатывать потоковые данные, поскольку они постоянно генерируются множеством источников и устройств и доставляются в различных форматах. Относительно меньше разработчиков обладают талантами и знаниями, необходимыми для работы с потоковыми данными, что делает практически невозможным для компаний предоставление доступа в режиме реального времени тем сотрудникам, которые так хотят заполучить их.
Один из ярких примеров того, насколько сложной потоковой передачей данных часто является Интернет вещей (IoT). На устройствах Интернета вещей информация обычно включена; нет ни начала, ни остановки; оно просто продолжает течь. Типичный подход к выполнению не работает с данными Интернета вещей из-за непрерывного потока и, следовательно, типа типов данных, которые он охватывает.
2. Бизнесу нужны данные, но он не может продолжать работу
Трудности, связанные с интеграцией и доступом к потоковым данным, возвращают многие компании к столь оклеветанному разрыву в бизнесе и ИТ. ИТ-команды изо всех сил пытаются масштабировать то, что они будут делать для предоставления данных бизнес-команде. Бизнес-команде нужна информация, чтобы решать бизнес-вопросы, получать мгновенную аналитику и находить случайные возможности для бизнеса.
Проблема возникает, когда бизнес-команда, отчаянно пытаясь заполучить потоковые данные, обходит ИТ-отдел и использует любое специальное решение или подход, который доставит их к данным. Инструменты и процессы, с которыми работают бизнесмены для реализации доступа к данным, выходят за рамки традиционного ИТ-протокола, что приводит к образованию нежелательных новых хранилищ данных и представляет огромный риск управления данными.
Разница между пакетной обработкой и потоковой обработкой:
Пакетная обработка против потоковой обработки
- Пакетная обработка — это пакетная обработка большого объема данных в течение определенного периода времени. Потоковая обработка означает обработку непрерывного потока данных сразу же после его создания.
- Пакетная обработка обрабатывает большой объем данных одновременно. Потоковая обработка анализирует потоковые данные в режиме реального времени.
- При пакетной обработке размер данных известен и конечен. При потоковой обработке размер данных заранее неизвестен и бесконечен.
- При пакетной обработке данные обрабатываются за несколько проходов. Обычно при потоковой обработке данные обрабатываются за несколько проходов.
- Пакетным процессорам требуется больше времени для обработки данных. Потоковому процессору требуется несколько секунд или миллисекунд для обработки данных.
- При пакетной обработке входной граф является статическим. При потоковой обработке входной граф является динамическим.
- При этой обработке данные анализируются на снимке. При этой обработке данные анализируются непрерывно.
- При пакетной обработке ответ предоставляется после завершения задания. При потоковой обработке ответ предоставляется немедленно.
- Примерами пакетной обработки являются платформы распределенного программирования, такие как MapReduce, Spark, GraphX и т. д. Примерами потоковой обработки являются платформы программирования, такие как Spark Streaming и S4 (Simple Scalable Streaming System) и т. д.
- Пакетная обработка используется в системах расчета заработной платы и выставления счетов, системах пищевой промышленности и т. д. Потоковая обработка используется на фондовой бирже, в транзакциях электронной коммерции, в социальных сетях и т. д.
Амазон Кинезис
С помощью Amazon Kinesis организации могут создавать приложения потоковой передачи, используя редактор SQL и библиотеки Java с открытым исходным кодом. Kinesis часто берет на себя всю тяжелую нагрузку по запуску приложения и масштабированию в соответствии с требованиями, когда это необходимо. Это устраняет необходимость управления серверами и другие сложности интеграции, создания и управления приложениями для аналитики в реальном времени.
Нежесткость Kinesis помогает компаниям изначально начать с базовых отчетов и анализа данных, но по мере роста требований они часто используются для развертывания алгоритмов машинного обучения для углубленного анализа данных.
Облачный поток данных Google
Google недавно удалил Python 2 и оснастил свой Cloud DataFlow Python 3 и Python SDK для поддержки потоковой передачи данных. Внедряя потоковую аналитику, компании могут фильтровать неэффективные данные и замедлять аналитику. Используя Apache Beam с Python, вы определите конвейеры данных для извлечения, преобразования и анализа данных из различных устройств Интернета вещей и других источников данных.
Azure Stream Analytics
Azure Stream Analytics предназначен для предоставления критически важной комплексной аналитики за короткий период с использованием SQL, JavaScript и C#. Он имеет встроенные возможности машинного обучения, которые помогут вам интуитивно обрабатывать данные. Такая функция позволит обнаруживать выбросы, пики и провалы, а также замедлять отрицательные и положительные тенденции потоковых данных, чтобы помочь потребителям интерпретировать выходные визуализации.
IBM потоковая аналитика
Он предлагает интегрированную среду разработки на основе Eclipse, а также поддерживает языки программирования Java, Scala и Python для разработки приложений. Это также позволяет вам разрабатывать блокноты для пользователей Python, чтобы они могли легко отслеживать, управлять и принимать обоснованные решения. Службы потоковой передачи часто используются в IBM BlueMix для обработки информации в потоках данных.
Апач Шторм
Платформа с открытым исходным кодом Apache Storm, созданная Twitter, возможно, является незаменимым инструментом для оценки данных в реальном времени. В отличие от Hadoop, который выполняет выполнение, Apache Storm специально создан для преобразования потоков знаний. Однако его часто также используют для онлайн-машинного обучения, ETL и других. Способность обрабатывать данные быстрее, чем у конкурентов, отличает Apache Storm при выполнении процессов на узлах. Его также можно интегрировать с Hadoop, чтобы еще больше расширить возможности обеспечения более высокой пропускной способности.
Транслировать
Striim — это платформа корпоративного уровня, которая работает в различных средах, таких как облако и локальная среда. Он позволяет потребителям маскировать, агрегировать, преобразовывать, фильтровать и использовать встроенный мониторинг конвейера для обеспечения эксплуатационной устойчивости и одновременного формирования данных для получения аналитической информации. С помощью Striim компании могут эффективно интегрироваться с различными платформами обмена сообщениями и другими подобными платформами, чтобы использовать данные для визуализации в реальном времени.
СтримSQL
SQL был преобразован для создания StreamSQL, так что даже человек, не являющийся разработчиком, может создавать приложения для управления потоками знаний и мониторинга сетей, наблюдения и соблюдения требований в режиме реального времени. Поскольку он построен на основе SQL, он является быстрым, простым в использовании, гибким и готовым к аналитике, что устраняет необходимость для специалистов по обработке данных проверять потоковую информацию.
Перспективы
Преимущества аналитики в реальном времени включают, среди прочего, визуализацию ключевых показателей эффективности в реальном времени, определение спроса. Потоковая передача данных позволяет организациям максимально эффективно использовать данные и повысить операционную эффективность. Компании должны внедрить эти инструменты в свои бизнес-процессы и использовать имеющиеся знания всеми возможными способами.
Приложения и примеры потоковой передачи данных
- Датчики в автомобилях, промышленном оборудовании и сельскохозяйственной технике отправляют данные в потоковое приложение. Приложение контролирует эффективность и заранее обнаруживает любые потенциальные дефекты, а также автоматически размещает заказ на запасные части, предотвращая простои оборудования.
- Финансовое учреждение (банки) отслеживает изменения на фондовом рынке в режиме реального времени, рассчитывает там стоимость риска и автоматически балансирует портфели на основе движения цен на акции.
- Веб-сайт недвижимости отслеживает часть информации с мобильных устройств потребителей и в режиме реального времени дает рекомендации по объектам недвижимости, к которым можно обратиться, чтобы подтвердить их географическое местоположение.
- Компания, занимающаяся солнечной энергетикой, должна поддерживать пропускную способность своих клиентов или платить штрафы. Он применяет приложение потоковой передачи данных, которое отслеживает все панели на поле и планирует обслуживание в режиме реального времени, тем самым сокращая периоды низкой пропускной способности каждой панели и связанные с этим штрафные выплаты.
- Издатель СМИ передает потоки миллиардов записей о потоках кликов со своих онлайн-ресурсов, объединяет и дополняет информацию демографическими данными о пользователях, а также оптимизирует размещение контента на своем сайте, обеспечивая релевантность и лучший опыт для своей аудитории.
- Компания, занимающаяся интернет-играми, хранит потоковые данные о взаимодействии игрока с игрой и передает эти данные в свою игровую базу. Затем он проверяет данные в режиме реального времени, предлагает стимулы и гибкие возможности для взаимодействия со своими игроками.
Заключение
Узнав о потоковой передаче данных и пакетной обработке, которые можно использовать для обработки, хранения, анализа и обработки потоков данных в режиме реального времени, вы, возможно, задумаетесь о том, что лучше всего подходит для вашего проекта. На Simplilearn доступны различные курсы, и вы можете выбрать один в зависимости от проекта, который планируете реализовать. Если вы хотите пройти курсы или обучение, мы здесь, чтобы вам помочь. У нас есть широкий спектр учебных программ и курсов, которые помогут вам построить и расширить свою карьеру в области потоковой передачи данных и пакетной обработки.
У вас есть вопросы к нам? Оставьте их в комментариях к этой статье, и наши специалисты свяжутся с вами как можно скорее!
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)