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

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

Попытка изучить Python-реализации платформ Apache, таких как Airflow, Storm и Kafka Streams, может быть сложной задачей, а также привести к несвязной многоязычной архитектуре. Эти библиотеки помогут вам восполнить пробел, предоставляя реализации (или дополнения) на основе Python для вашей организации.

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

Луиджи

Luigi, разработанный Spotify, представляет собой специфичную для Python реализацию децентрализованного ациклического графа (DAG) для конвейерной обработки данных. Он позволяет выполнять длительные пакетные процессы, обеспечивая при этом отказоустойчивость.

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

Он также поставляется с удобным графическим веб-интерфейсом для отслеживания ваших процессов по мере их выполнения, а также интеграцией с AWS.

Нижняя линия

Luigi - отличная альтернатива использованию Airflow, и, поскольку он полностью написан на Python, вы можете использовать все свои любимые пакеты.

Фауст

Фауст - гениальная переработка Потоков Кафки. Он использует ключевые слова asyncio и async / await в Python 3.6+ для запуска нескольких потоковых процессоров в одном процессе, а также веб-серверов и других сетевых служб. Это означает, что теперь вы можете встроить топологию потоковой обработки в существующие приложения Twisted / Tornado.

Faust работает вместе с развертыванием Kafka и предоставляет высокодоступные, распределенные, быстрые и гибкие потоковые процессоры.

Он также использует RocksDB (сверхбыструю базу данных хранилища значений ключей, написанную с использованием расширений API Java и C ++) для обеспечения обработки сообщений.

Самое приятное то, что его можно использовать со всеми вашими любимыми библиотеками Python, такими как Flask, Django, SQlAlchemy, NTLK, Nmpy, Scipy, TensorFlow и т. Д.

Нижняя линия

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

Streamparse

Streamparse - это библиотека, которая позволяет создавать болты и носики Apache Storm на Python без необходимости писать ни одной строчки на Java. В нем также есть полезные утилиты CLI для управления кластерами и проектами Storm.

Streamparse разработан Parse.ly, поставщиком аналитики контента, который кое-что знает об обработке данных в массовом масштабе.

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

Нижняя линия

Streamparse невероятно полезен для маршрутизации и обработки огромных потоков данных при сохранении вашей кодовой базы полностью на Python.

Конец

Как всегда, спасибо за чтение, и обязательно ознакомьтесь с другими моими статьями и руководствами, если хотите узнать больше об использовании Python, Flask и React в продакшене!