Корпоративное хранилище данных для нефтегазовой отрасли

Backend разработка
Цель проекта – создание централизованной системы сбора, хранения и обработки данных из различных источников. Хранилище выступает единым точкой консолидации информации, предоставляя витрины данных для аналитиков, инженерных команд и других пользователей.

Система разработана с учетом масштабируемости и предназначена для работы с большими объемами данных, включая геопространственные и временные ряды, а также для интеграции с внешними сервисами.
Задачи на проекте
Повышение производительности
Оптимизация сложных ETL-процессов и внедрение параллельной обработки данных
Разработка универсальных Airflow DAG-ов
Для загрузки данных из различных источников и их трансформации
Формирование аналитических витрин
Сбор и агрегирование данных из нескольких источников для формирования аналитических витрин
Автоматизация
Автоматизация обработки JSON-ответов внешних API и их конвертация в форматы IRAP и Parquet
Работа с большими объемами данных
Настройка интеграции с Trino и оптимизация SQL-запросов для работы с большими объемами данных
Разработка логики инкрементальной загрузки данных

Дмитрий
Backend-разработчик
Я разработал и реализовал шаблон инкрементального DAGа, состоящий из набора миксинов для обработки данных. Шаблон позволяет создавать новые DAGи без написания сложной логики: достаточно указать список полей и их типы.
Это решение снизило время разработки новых DAGов на 50% и упростило поддержку системы.
Достижения на проекте
Ускорение процессов анализа данных
Реализовал универсальный механизм для обработки и хранения геофизических данных в формате IRAP, обеспечив стандартизацию и ускорение процессов анализа данных.
Снижение вероятности ошибок
Предложил и реализовал единый подход к формированию SQL-шаблонов для параметризованных запросов, что снизило вероятность ошибок при выполнении merge-операций
Проработка архитектурных решений
Проработал архитектурные решения для работы с геометрическими данными (LineString и Polygon) и обеспечил корректное хранение этих данных в хранилище Trino.
Снижение нагрузки на инфраструктуру
Обеспечил поддержку параллельной обработки данных в Airflow, что позволило ускорить выполнение тяжёлых DAGов и снизить нагрузку на инфраструктуру.
Технологии проекта
  • Python
    Для обработки, анализа и интеграции данных из различных источников. Он также позволяет быстро прототипировать и разрабатывать функционал.
  • FastAPI
    Обеспечивает высокую производительность и простоту в использовании, а также автоматическую генерацию документации для API
  • PostgreSQL
    Предлагает надежность, производительность и поддержку сложных запросов, что делает его подходящим выбором для хранения больших объемов данных из различных источников
  • Apache Airflow
    Для автоматизации ETL-процессов. Airflow позволяет планировать и управлять задачами, обеспечивая надежное выполнение процессов загрузки данных из различных источников в хранилище.
  • Hive
    Позволяет выполнять SQL-подобные запросы к данным, хранящимся в формате HDFS, что упрощает анализ больших наборов данных и интеграцию с другими компонентами системы
  • Iceberg
    Для обеспечения надежной и эффективной работы с данными в хранилище. Поддерживает версионность данных и позволяет выполнять операции ACID, что критично для работы с большими объемами данных в нефтегазовой отрасли.
  • Trino
    Распределенный SQL-движок для аналитики, использовался для выполнения запросов к данным в различных источниках
  • Minio
    Объектное хранилище, совместимое с S3, которое использовалось для хранения неструктурированных данных и файлов
  • Polars
    Обеспечивает высокую производительность при анализе и манипуляции данными благодаря использованию многопоточности и эффективной обработки памяти
Советуем посмотреть и другие работы:
Давайте сделаем следующий проект вместе!
Если у вас есть вопросы или предложения, пишите: hello@a2seven.com
Made on
Tilda