Триафлай - Технологии среды разработки
Скорость и стабильность системы обеспечиваются специальными компонентами Python.
Python - высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода. Это активно развивающийся кроссплатформенный язык программирования, с полностью открытым исходным кодом.
PyPy - интерпретатор языка программирования Python. Он также призван обеспечить совместимость, гибкость и быстроту реализации языка программирования Python и позволяет реализовывать новые возможности без необходимости программирования на языке низкого уровня. Позволяет организовать работу In-memory в базе данных.
Pandas - программная библиотека на языке Python для обработки и анализа данных. Предоставляет специальные структуры данных и операции для манипулирования числовыми таблицами и временными рядами. Обеспечивает поддержку высокопроизводительных вычислений.
NumPy - библиотека с открытым исходным кодом для языка программирования Python. Обеспечивает поддержку многомерных массивов и высокоуровневых математических функций, предназначенных для работы с многомерными массивами.
Celery - это технология организации асинхронной очереди задач с открытым исходным кодом или очередь заданий, основанная на распределенной передаче сообщений. Реализована в работе рассылки почты, построения отчетов, загрузки данных и прочих системных процессов.
PostgreSQL - свободная объектно-реляционная система управления базами данных (СУБД), имеющая традиционные возможности коммерческих СУБД с расширениями, которые есть в СУБД нового поколения. PostgreSQL – это свободное и полностью открытое программное обеспечение.
D3.js - это библиотека JavaScript для создания динамических интерактивных визуализаций данных в веб-браузерах. Она отвечает за визуализацию графических представлений в системе.
Docker - программное обеспечение для автоматизации развёртывания и управления приложениями в средах с поддержкой контейнеризации. Отвечает за виртуализацию и изоляцию модулей системы.
RabbitMQ - программный брокер сообщений на основе стандарта AMQP - тиражируемое связующее программное обеспечение, ориентированное на обработку сообщений. Поддерживает горизонтальное масштабирование для построения кластерных решений.
Возможности интеграции с другими системами
Из коробки поддерживается подключение к различным внешним источникам как через готовые коннекторы к 1С, SQL, REST, SOAP, XLS и пр., так и по ODBC с возможностью гибкой кастомизации данных на входе. В рамках проекта могут быть реализованы интеграции с mpp-системами и платформами управления большими данными.
Подготовка данных: для загрузки данных используются коннекторы. При загрузке данных возможны произвольные трансформации, задаваемые на Python в изолированной "песочнице".
Хранение и загрузка данных: система позволяет подключаться к внешним данным двумя способами: импорт данных в хранилище позволяющее производить обработку данных и подключение онлайн (для ODBC-источников) без возможности трансформации данных, исключительно для построения отчетов и визуализаций. Для вычислений и построения отчетов используется технология in-memory базы данных собственной разработки MemDB.
Структура данных
- Веб-сервер. Apache или Nginx
- Воркеры, обрабатывающие запросы сервера. Python, Django и uWSGI
- Supervisord, контролирует работу сервисов, демонизирует их
- Celery — Компонент, обрабатывающий очередь сообщений
- Кэш метаданных на уровне каждого воркера
- Кэш посчитанных отчетов
- MemDB — In-Memory база данных. Хранит в оптимизированном виде часть базы с данными, запущена под PyPy
- RabbitMQ — Очередь сообщений
- Обработчики сообщений очереди. Celery и Pyton использует Pandas для вычислений отчетов
- NetDB — База данных постоянного хранения на PostgreSQL
- Загрузчики данных
- Вспомогательная база данных для ETL на PostgreSQL
- Набор источников данных — файлы, системы и сервисы





