Как Ridgeline объединила Iceberg и ClickHouse в единый аналитический уровень для управления инвестициями

Источник: ClickHouse•

Как Ridgeline объединила Iceberg и ClickHouse в единый аналитический уровень для управления инвестициями

Компания Ridgeline перестроила свою систему аналитики производительности на базе ClickHouse Cloud, выполняя запросы к данным Iceberg за десятилетия наряду с актуальными данными. Это позволило обслуживать инвестиционных менеджеров с объемом активов в 10 раз больше прежнего и увеличить число…

Большинство управляющих активами используют торговые системы, бухгалтерский учет, отчетность, CRM и аналитику как разрозненные системы, которые задним числом объединяются и сверяются. Ridgeline объединяет их все на единой платформе с унифицированной моделью данных и встроенным ИИ. «Мы стремимся быть всеобъемлющим универсальным решением», — говорит Хайден Хадгинс (Hayden Hudgins), менеджер по измерению эффективности и аналитике.

Внутри компании команда Хайден находится на стыке торговых операций и бухучета, превращая «сырые» данные транзакций в показатели инвестиционной эффективности и аналитику. Заработал ли портфель деньги или понес убытки? Почему это произошло? Каково влияние на портфель и его весовые коэффициенты?

Чтобы все это работало, необходимы два условия. «Для всей Ridgeline важнейшее значение имеют скорость и точность», — говорит технический менеджер продукта Эрин Коррадо (Erin Corrado). — Мы должны работать очень быстро, и это наше рыночное преимущество, а также точно, потому что в случае неверных данных в отчетности или устаревшей информации об этом сразу заявят наши клиенты. ClickHouse дает нам возможность выполнять такие аналитические запросы очень быстро и точно».

Мы пообщались с Хайденом и Эрин, чтобы узнать, как они перестроили систему аналитики эффективности в Ridgeline: от тупика, в который зашел Postgres, до решения развернуть ClickHouse Cloud на AWS и 10-кратного архитектурного сдвига, который помог им более чем вдвое увеличить клиентскую базу.

Ridgeline — это «в первую очередь экосистема Postgres», — говорит Эрин. — Postgres отлично справляется с транзакциями; если вам нужен учет или сделки, он великолепен. Но когда возникают масштабные сложные агрегации, требующие объединения и анализа огромных объемов данных, ClickHouse становится очевидным победителем».

Два года назад компания Ridgeline начала подключать категорию клиентов примерно в 10 раз крупнее всего, с чем ей доводилось сталкиваться ранее. Сама по себе эта рабочая нагрузка крайне требовательна. Ridgeline рассчитывает данные о ежедневных прибылях и убытках для каждого портфеля в системе, а результирующие таблицы получаются очень широкими: для каждого портфеля ежедневно записывается от 40 до 80 столбцов. Аналитика, работающая поверх этих данных, больше похожа не на запросы, а на математические вычисления. «Многие из этих отчетов требуют от нас сбора данных с последующим выполнением операций, которые в SQL фактически эквивалентны интегралам», — говорит Хайден.

При старой клиентской нагрузке Postgres справлялся. Но по мере выхода Ridgeline в более высокий рыночный сегмент требования росли. Как вспоминает Хайден: «Дошло до того, что нам потребовалось рассчитывать отчеты за весь период с момента создания портфеля с ежедневной детализацией для десятков тысяч портфелей, уходящих вглубь на десятилетия».

При таком масштабе могло произойти одно из двух. Поскольку Ridgeline использует общий инфраструктурный уровень, где экземпляр Postgres является общим для нескольких команд, команда аналитики фактически задействовала бы весь кластер для расчета всего одного отчета. Либо задача упиралась бы в непреодолимый предел. «Мы исчерпали бы всю емкость памяти, постоянно вертикально масштабируя наш сервер Postgres», — говорит Хайден. Выполнение этих высокоуровневых отчетов на исходной системе заняло бы часы или, возможно, вообще не завершилось бы.

Клиенты, которых Ridgeline хотела привлечь на платформу в том году, означали увеличение объема в 10–40 раз. Никакая версия существующей архитектуры не могла это выдержать. «Это было обязательным условием для подключения таких клиентов, — говорит Хайден. — У нас были клиенты, которых мы хотели подписать и подключить, чтобы продвинуть наш бизнес вверх по цепочке создания ценности, и мы понимали, что обязаны предоставить такие возможности».

При оценке потенциальных решений критерии Ridgeline начинались с вопроса «прошел/не прошел»: смогут ли они вообще обслуживать эти отчеты? Все, что выживало после этого фильтра, оценивалось по «скользящей шкале между производительностью и стоимостью», — говорит Хайден. — Какое самое быстрое решение мы можем получить при оптимальной стоимости?»

Команда рассматривала Redshift, Trino поверх Iceberg, SingleStore, а также плагины, позволяющие Postgres вести себя скорее как колоночное хранилище. Они заново проанализировали, в чем проблема: в самом Postgres или в том, как они его используют. Они даже подумывали о создании собственного вычислительного движка с нуля — в оперативной памяти и с собственной типизацией данных.

В итоге ClickHouse победил по производительности, а также оказался дешевле других аналитических хранилищ, цены на которые запросила Ridgeline.

Следующим решением стал выбор способа запуска. Они начали с самостоятельного развертывания ClickHouse и получили рабочую версию в среде стейджинга. Затем они подсчитали, во сколько обойдется перевод в продакшн. «После долгих обсуждений с нашими главными инженерами и топ-менеджерами мы решили, что не хотим инвестировать ресурсы в поиск способов запуска и операционной поддержки этого решения», — говорит Хайден.

Оставались ClickHouse Cloud и Bring Your Own Cloud (BYOC). Решающим фактором стала безопасность. Ridgeline — финансовая компания, работающая по стандарту SOC 2, а BYOC в то время означал предоставление сторонней организации доступа внутри собственного VPC компании Ridgeline. (Сейчас BYOC доступна в общем доступе на AWS и Google Cloud, причем плоскость данных работает внутри собственного аккаунта клиента, а действие стандарта SOC 2 Type II распространяется на развертывания BYOC). Управляемый сервис ClickHouse был более чистым вариантом. Ridgeline зафиксировала ClickHouse в своих соглашениях об обмене данными и регулировала отношения с помощью простых правил входящего и исходящего трафика.

Требования к изоляции были настолько специфическими, что инженеры Ridgeline и ClickHouse проектировали структуру совместно. Ridgeline требовалась изоляция данных в состоянии покоя между средами, которым запрещено взаимодействовать друг с другом, поэтому она запускает отдельные организации ClickHouse для стейджинга и продакшна, распределяя между ними кредиты, а под ними создает индивидуальные сервисы ClickHouse для каждого клиента. По ходу дела Ridgeline запросила API-эндпоинты для программного развертывания этой инфраструктуры (возможности, которые теперь лежат в основе провайдера Terraform, доступного каждому клиенту ClickHouse Cloud). «Мне хочется верить, что это было взаимополезное партнерство с обеих сторон», — говорит Хайден.

ClickHouse Cloud также взял на себя работу, которую в противном случае выполняла бы сама команда. Ridgeline использует основной и резервный регионы с возможностью переключения между ними для обеспечения непрерывности бизнеса, и они работали со службой поддержки ClickHouse над созданием необходимых возможностей восстановления. «Если бы мы просто взяли open-source ClickHouse и попытались управлять всем самостоятельно, это было бы гораздо более тяжелым бременем», — говорит Эрин.

Сегодня данные бухгалтерского учета, сгенерированные внутри Ridgeline, записываются напрямую в ClickHouse. Данные от поставщиков (например, ленты от кастодианов, данные о ценах) поступают транзакционным путем в Postgres, где им и место, и реплицируются в ClickHouse через ClickPipes CDC. А исторические данные, которые поступают от прежних провайдеров клиентов в огромных объемах, идут третьим путем.

Этот третий путь сам по себе был десятикратной проблемой. Ridgeline могла обрабатывать сотни миллионов строк истории без особых сложностей, но по мере того, как бизнес выходил на более высокий уровень, появлялись клиенты с одним миллиардом строк, затем с двумя миллиардами. Поэтому команда создала конвейер Spark, который принимает эти массовые загрузки и сохраняет их в Iceberg, где хранение десятилетий истории обходится экономичнее. Адаптеры, созданные командой Эрин, затем по запросу подтягивают эти данные из Iceberg в ClickHouse.

«Нам нужно полное представление о том, что происходило с момента создания портфеля до текущего состояния в системе Ridgeline. Именно это нам дают таблицы Iceberg в сочетании с ClickHouse». — Хейден Хаджинс, менеджер по измерению эффективности и аналитике, Ridgeline

«Нам нужно полное представление о том, что происходило с момента создания портфеля до текущего состояния в системе Ridgeline. Именно это нам дают таблицы Iceberg в сочетании с ClickHouse».

— Хейден Хаджинс, менеджер по измерению эффективности и аналитике, Ridgeline

Актуальные данные хранятся в ClickHouse, по сотням гигабайт на каждого арендатора, обычно охватывая период от двух до четырех лет. Более старые данные остаются в Iceberg и считываются через коннектор Iceberg для ClickHouse. «Задержка в 40 миллисекунд при использовании этого коннектора вполне приемлема», — говорит Хейден. — «Если вы запрашиваете данные за 40 лет, люди ожидают, что это будет немного медленнее».

Хейден отмечает, что материализованные представления стали «основой» того, что предоставляет его команда. Теперь они используют ряд материализованных представлений, которые преобразуют данные на стороне записи в оптимизированные представления на стороне чтения, при этом движок таблиц ReplacingMergeTree выполняет согласование в фоновом режиме. «Мы определяем SQL и говорим: хорошо, мы доверяем тому, что логика MergeTree внутри ClickHouse приведет всё в нужное состояние», — говорит он. Он добавляет, что, хотя прирост производительности значителен, простота разработки важна не меньше. «Мы можем написать такое представление за день и быть уверенными, что оно материализуется именно так, как нам нужно».

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

«Ключевым фактором стало подключение клиентов, которых мы раньше не могли обслуживать. Если бы мы не внедрили эти десятикратные архитектурные изменения, мы не смогли бы подписать контракты, которые в итоге заключили». — Хейден Хаджинс, менеджер по измерению эффективности и аналитике, Ridgeline

«Ключевым фактором стало подключение клиентов, которых мы раньше не могли обслуживать. Если бы мы не внедрили эти десятикратные архитектурные изменения, мы не смогли бы подписать контракты, которые в итоге заключили».

— Хейден Хаджинс, менеджер по измерению эффективности и аналитике, Ridgeline

В повседневной работе разница проявляется в отчетах о производительности, на которые полагаются клиенты Ridgeline. Это многостраничные PDF-файлы, создаваемые огромными пакетами, по одному на каждый портфель под управлением. С ClickHouse пакеты, которые раньше обрабатывались часами, теперь выполняются за минуты. И, что важно, эти отчеты проверяются и перезапускаются перед отправкой.

В старой системе этот цикл измерялся перерывами на кофе или ожиданием до утра. Как вспоминает Хейден: «Это выглядело так: ладно, я запущу этот процесс, пойду пообедаю или выпью кофе, а потом вернусь и проверю». Теперь изменения, внесенные в одну часть системы, проходят через конвейер и материализованные представления примерно за минуту, отчет перезапускается в ClickHouse, и клиент может убедиться, что цифры изменились ожидаемым образом.

Как отмечает Эрин, конечные пользователи никогда не видят этого процесса. «Им на самом деле все равно, ClickHouse это или что-то другое», — говорит она. — «Они просто видят отчет о производительности».

Имея ClickHouse Cloud в качестве фундамента, Ridgeline уже задумывается о следующем пороге. Внутри команды говорят о клиентах «китового масштаба», управляющих портфелями, которые на порядок больше, чем у текущих клиентов Ridgeline. «Мы увеличились в 10 раз год или два назад, — говорит Хейден, — и мы пытаемся сделать это снова».

Это включает в себя более глубокую функциональность для данных, которые платформа только сейчас получила возможность хранить. Как объясняет Хейден: «Благодаря Iceberg и ClickHouse клиенты могут загружать в Ridgeline большие объемы исторических данных о производительности и делать эту историю доступной наряду с результатами, рассчитанными самой Ridgeline, сохраняя отчетность о производительности с момента создания портфеля на протяжении всего перехода на Ridgeline».

Это также включает в себя освоение новых направлений внутри компании. Команда по сверке данных Ridgeline оценивает ClickHouse для создания аналитической панели в режиме, близком к реальному времени, о которой просил потенциальный клиент. «Похоже, что единственный способ действительно реализовать это в режиме, близком к реальному времени, — это ClickHouse», — говорит Эрин. — «С нашими другими текущими инструментами это просто невозможно».

Модель, начавшаяся с анализа производительности, распространяется. «Мы находим все больше вариантов использования, где наш подход с Postgres просто не справится», — добавляет она. С ClickHouse Cloud у команды появилось место для этих рабочих нагрузок. «В дорожной карте Ridgeline для ClickHouse определенно есть еще много пунктов», — говорит Хейден.

О чём эта статья

Ещё в разделе «Данные и аналитика»

Все →

Ещё от ClickHouse