Автор рад поделиться своими мыслями и опытом в области инженерии данных, полученным благодаря работе с технологиями на базе Python, такими как Flask, Apache Airflow и DuckDB. Инженерия данных – это важнейшая дисциплина, которая фокусируется на создании и поддержке архитектуры, конвейеров и систем, необходимых для сбора, хранения и обработки больших объемов данных. Инженер данных отвечает за то, чтобы данные собирались, очищались, структурировались и предоставлялись своевременно, что требует глубокого понимания баз данных, распределенных систем, скриптинга и инструментов оркестровки рабочих процессов. ETL (извлечение, преобразование, загрузка) и ELT (извлечение, загрузка, преобразование) конвейеры являются центральными задачами в инженерии данных, причем ELT набирает популярность с ростом облачных хранилищ данных. Озера данных, такие как IBM Cloud Object Storage, являются централизованными репозиториями, которые хранят все структурированные, полуструктурированные и неструктурированные данные в большом масштабе, поддерживая схему-при-чтении и обеспечивая большую гибкость для исследования и моделирования. Автор подчеркивает важность таких инструментов, как Pandas, SQL, Parquet, DuckDB и PyArrow в инженерии данных, которые образуют мощный набор для локальной и масштабируемой обработки данных. DuckDB лучше подходит, чем Modin или Vaex для крупномасштабной обработки данных, особенно в формате Parquet, благодаря своей эффективности при обработке запросов непосредственно на диске без загрузки всего набора данных в память. Автор приводит примеры использования DuckDB для расчета продолжительности поездки, средней стоимости проезда на дистанцию и доходов по поставщикам из набора данных о поездках на желтом такси в Нью-Йорке (NYC Yellow Taxi Trip Data). Apache Airflow используется для оркестровки конвейеров, позволяя инженерам определять рабочие процессы в виде ориентированных ациклических графов (DAG) с использованием Python, поддерживая зависимости задач, планирование, повторные попытки, ведение журнала и оповещения из коробки. Инженерия данных является основой и мультипликатором силы для современных аналитических систем и систем искусственного интеллекта, требующим сочетания навыков разработки программного обеспечения, моделирования данных и проектирования систем.
dev.to
A Lightweight Big Data Stack for Python Engineers
Create attached notes ...
