Согласно замыслу, платформа rapeed призвана устранить прежние ограничения OLAP-систем, связанные с доступными для анализа объемами и скоростью данных, и предоставить пользователям удобную визуальную среду для работы с единым многомерным пространством данных. Для реализации этого замысла команда создателей разработала собственный распределенный тензорный аналитический механизм и собственное распределенное хранилище данных. Об истории и деталях проекта рассказывает Роман Раевский, автор идеи и основатель компании «Рапид. Исследовательские системы», номинант на премию Data Award.
- С чего началась ваша разработка и какую эволюцию она прошла?
Создание аналитических технологий стало моим хобби и главной профессией больше 20 лет назад. В 2004 году первая реализация созданной технологии была выпущена в виде отдельного продукта С.М.А.Р.Т., относящегося к классу Data Mining и изначально предназначенного для анализа розничных продаж в супермаркетах. У этого продукта было много клиентов — не только розничные сети, но также транспортные и нефтяные компании, даже госструктуры были в числе наших заказчиков.
Проблема, с которой мы столкнулись, заключалась в том, что продукт представлял собой обычное Windows-приложение, поэтому не мог обработать более 150 млн записей — при большем объеме данных оперативная память заканчивалась, и система «падала». Впервые эта неприятность случилась в сети магазинов «Связной», а после второго подобного сбоя я осознал, что нечто подобное может произойти у любого крупного клиента. Чтобы снять ограничение, было решено реализовать систему на основе других технологий: операционной системы Linux с применением прямой работы с памятью, с использованием новых алгоритмов, принципов хранения и обработки — в общем, все в этой системе было новое. Сменилась и команда разработки.
Создание системы началось в 2011 году. Так родилась система «Полиматика», на разработку которой потребовались пять лет усилий группы из пяти разработчиков, трудившихся под моим руководством. Результаты первых четырех или пяти версий продукта меня не устраивали, но затем что-то получилось. Появились пилотные проекты, причем первый — сразу в ФНС: ведомство никак не могло найти систему, способную работать с таблицей данных по организациям из 15 млн строк, раскрывающихся с детализацией вплоть до отдельных документов — а их сотни миллионов, с десятками столбцов, которые раскрывались вплоть до данных об отдельных инспекциях. Эту огромную таблицу нужно было не просто показывать, а уметь быстро сортировать, фильтровать, да еще и создавать свои расчетные факты, по которым также производить сортировку, фильтрацию, раскрытие. Это было в 2016 году.
После этого внедрения в ФНС у нас было множество проектов, появилось и много новых клиентов, в том числе западных, мы открыли офисы в Лондоне, Цюрихе, Берлине… Но достаточно быстро выяснились два неприятных момента. Во-первых, несмотря на постоянную оптимизацию алгоритмов, мы столкнулись с ростом времени расчетов. Те 150 млн записей, на которых «умирал» С.М.А.Р.Т., обрабатывались достаточно быстро — примерно за 10 секунд можно получить на экране нужную табличку. Если записей порядка 300 млн, то ждать результатов приходилось уже 40–60 секунд. На обработку 1 млрд записей требовалось уже несколько минут, а иногда — десятков минут. На тот момент это были неплохие показатели — у конкурентов они были гораздо хуже. Тем не менее, время расчетов росло быстрее, чем объемы данных — со скоростью где-то между N*ln(N) и N2. Немного повысить скорость расчетов — на 10–15% — нам удалось, подключив для сортировки данных видеокарты.
Был и второй момент, в который я долго не мог поверить: мы опять уперлись в потолок количества записей — правда, он достигал уже не 150 млн, а 2 млрд строк, причем на практике он был еще меньше. Эта величина была связана с объемом памяти, доступной процессору. Теоретический потолок тоже был — порядка 4 млрд строк, его величина связана с хранением целочисленных индексов.
Итак, мы пришли к тому, что, во-первых, считаем долго и, во-вторых, снова упираемся в потолок. И это при том, что у нас уже были клиенты и проекты масштаба страны, команда насчитывала уже прядка 100 человек, мы были известны на рынке, участвовали в конференциях, а внутренним языком компании был английский…
В сентябре 2019 года я покинул компанию, которую создал, чтобы разработать новую технологию, свободную от изъянов и ограничений прежней, и сделать то, что сейчас носит название rapeed.
- На устранение каких проблем или на выполнение каких задач ориентирована ваша технология?
На устранение лимитов и ограничений, существующих при работе с данными: пользователи должны мгновенно работать с любыми объемами и источниками данных, соединять их, не обращая внимания на их грануляцию, использовать любые поля любого источника в любом качестве — и все это визуально без единой строчки кода.
- Почему вы считаете это весьма значимым?
Многомерные средства анализа данных, в том числе классические OLAP-продукты типа Microsoft SQL Server Analysis Services, Oracle Essbase и SAP BW for HANA, работают внутри оперативной памяти одного сервера, при этом они предварительно агрегируют данные — это ограничивает пользователей и в объемах данных, и в гибкости работы.
Современные колоночные СУБД тоже начали именоваться OLAP-решениями, что является, как минимум, преувеличением: SQL-запросы не могут сравниться в гибкости с многомерным анализом. Чтобы убедиться в этом, достаточно просто сравнить обычную таблицу Excel, которая, по сути, является аналогом СУБД, со сводной таблицей Excel — самым популярным примером OLAP-средства анализа.
Инструмента, который решил бы проблему обработки огромных объемов данных с одновременным сохранением многомерности анализа, на российском рынке нет. Как показал проведенный нами анализ глобального рынка, в мире подобные решения тоже отсутствуют.
- Каковы ключевые возможности вашей платформы?
Прежде всего, это распределенная многомерная обработка неограниченных объемов данных, возможность для пользователя связывать источники «на лету» и неограниченное исследование данных (Data Discovery) на основе расчета связей между объектами (область связей).
- На основе каких технологий и платформ реализована платформа?
Ключевые технологии, которые составили фундамент rapeed, — это наши авторские разработки. В их числе — технология распределенной OLAP-обработки в оперативной памяти (Distributed OLAP In-Memory, DOLAP), технология связанных полей и область связей (кстати, это наше изобретение).
Файловая система, хранилище, ядро и интерфейсы API разработаны на языке С++, бизнес-слой реализован на Python, пользовательский интерфейс — на базе библиотеки React JS. Продукты работают на различных дистрибутивах и сборках Linux, также могут разворачиваться в контейнерных средах Docker и Kubernetes. Кроме того, они могут быть установлены на Windows.
- Какие данные могут обрабатываться вашей платформой?
В настоящий момент rapeed работает со структурированными данными популярных СУБД (Microsoft SQL Server, Oracle, PostgreSQL, ClickHouse), а также других ODBC-совместимых систем. Кроме того, могут обрабатываться данные из файлов Excel, CSV, Parquet и хранилищ S3.
- Какой математический аппарат используете?
Для сверхбыстрой обработки многомерных данных мы применяем наш собственный динамический распределенный тензорный механизм, он встроен в ядро нашей платформы.
- Какие функциональные возможности вашей технологии вы считаете реализованными наиболее удачно?
Получение результата функции Count (Distinct) за 50 миллисекунд, примененной к базе из миллиарда строк, при расчете на трех десктопах «на лету» — само по себе дорогого стоит!
Всю сложность расчета мы скрыли «под капотом». Пользователю же предоставили «воздушный», легкий интерфейс, в котором ему доступны все источники, все поля и где есть возможность составлять формулы из визуальных кирпичиков или набирать нужные формулы на клавиатуре.
- Каким вы видите типичного заказчика решения?
Продукт разрабатывался в расчете на требования крупных и очень крупных клиентов (уровня Enterprise и Ultra-Enterprise). Заказчики нашего решения — это в первую очередь крупнейшие банки, розничные сети, телеком-операторы и государственные структуры.
- Каких результатов смогут достичь клиенты, применяя ваше решение?
Наша платформа предлагает заказчикам совершенно другой уровень работы с данными: вместо вечного ожидания готовности сотен SQL-запросов — мгновенное получение нужной информации. Благодаря нашему продукту клиенты могут «почувствовать» данные буквально кончиками пальцев и насладиться аналитикой, мгновенно получая нужные результаты.
- Каковы успехи решения на рынке?
Широкий выход продукта на рынок мы еще не анонсировали.
- В чем значение вашего продукта для рынка?
Это единственная в своем роде технология обработки данных и первая по-настоящему новая технология в своем классе из тех, что появились на рынке с 2018 года. Ни в одном другом продукте в мире подобные технологии еще не реализованы.
- В каком направлении планируете развивать решение?
Мы видим rapeed как аналитическую платформу, которая будет доставлять пользователям удовольствие от аналитики данных любого объема и сложности. В обозримом будущем планируем и дальше встраивать в продукт функции и возможности, ранее казавшиеся невероятными и нереализуемыми.