Битка за големи данни: Партидна обработка срещу поточна обработка

Опитвате ли се да разберете Big Data и Data Analytics, но сте объркани с пакетната обработка на данни и поточната обработка на данни? Ако е така, този блог е за вас!

Днес разработчиците анализират Terabytes и Petabytes на данни в Hadoop Ecosystem. Много проекти разчитат да ускорят тази иновация. Всички тези проекти разчитат на два аспекта. Те са :

  • Партидна обработка
  • Обработка на потоци

Какво е пакетна обработка?

Пакетна обработка е мястото, където обработката се случва на блокове данни, които вече са били съхранявани за определен период от време. Например, обработка на цялата транзакция, извършена от голямо финансово дружество за седмица. Тези данни съдържат милиони записи за ден, които могат да се съхраняват като файл или запис и т.н. Този конкретен файл ще бъде обработен в края на деня за различни анализи, които фирмата иска да направи. Очевидно ще бъде необходимо много време, за да бъде обработен този файл. Това е това, което е пакетната обработка :)

Hadoop MapReduce е най-добрата рамка за обработка на данни на партиди. Следващата фигура ви дава подробно обяснение как Hadoop обработва данни, използвайки MapReduce.

Обработка на данни с помощта на MapReduce

Пакетната обработка работи добре в ситуации, в които не се нуждаете от резултати от анализи в реално време и когато е по-важно да обработвате големи обеми от данни, за да получите по-подробна информация, отколкото да получавате бързи резултати от анализа.

Какво е поточна обработка?

Обработката на потока е златен ключ, ако искате аналитични резултати в реално време. Поточната обработка ни позволява да обработваме данни в реално време, тъй като те пристигат и бързо откриваме условията в рамките на малък период от момента на получаване на данните. Поточната обработка ви позволява да подавате данни в инструменти за анализ веднага щом те се генерират и да получите незабавни резултати от анализа. Има множество платформи за обработка на потоци с отворен код като Apache Kafka, Apache Flink, Apache Storm, Apache Samza и др. Бих препоръчал WSO2 Stream Processor (WSO2 SP), платформата за обработка на потоци с отворен код, която съм помогнал да изградя. WSO2 SP може да поема данни от Kafka, HTTP заявки, брокери на съобщения. Можете да заявите поток от данни, използвайки език „Streaming SQL“. Само с два стокови сървъра той може да осигури висока наличност и може да се справи с 100K + TPS пропускателна способност. Той може да мащабира до милиони TPS отгоре на Kafka. Освен това, Мениджърът за бизнес правила на WSO2 SP ви позволява да дефинирате шаблони и да генерирате бизнес правила от тях за различни сценарии с общи изисквания.

Обработката на потока е полезна за задачи като откриване на измами. Ако поточно обработвате данни за транзакции, можете да откриете аномалии, които сигнализират за измама в реално време, след което да спрете измамни транзакции, преди да бъдат завършени.

Следващата фигура ви дава подробно обяснение как Spark обработва данните в реално време.

Причината за обработката на поточно предаване е толкова бърза, защото анализира данните, преди да удари диска.

За допълнителна информация WSO2 въведе решение за откриване на измами с WSO2. Той е изграден с помощта на WSO2 платформата за анализ на данни, която се състои както от пакетна анализа, така и в реално време анализи (поточна обработка).

Разлика между пакетна обработка и поточна обработка

Сега имате някои основни разбирания какво е Batch обработка и Stream обработка. Нека се потопим в дебата около партида срещу поток

При Batch Processing той обработва всички или повечето данни, но In Stream Processing обработва данни върху подвижен прозорец или най-скорошен запис. Така Batch Processing обработва голяма партида от данни, докато Stream обработката обработва индивидуални записи или микро партиди от няколко записа.

В точката на изпълнение забавянето на пакетната обработка ще бъде за минути до часове, докато латентността на поточната обработка ще бъде за секунди или милисекунди.

В края на деня солиден разработчик ще иска да разбере и двата работни потока. Всичко ще се свежда до случая на използване и как всеки работен поток ще помогне за постигане на бизнес целта.