TimescaleDB оптимизирует аналитику и отчётность Cloudflare

Обновлено: 25 августа, 2025

В компании Cloudflare традиционно используются базы данных PostgreSQL и ClickHouse для обработки транзакционных и аналитических задач. Однако для нужд аналитики и отчетности в продукте Digital Experience Monitoring (DEX) было решено использовать TimescaleDB, расширение PostgreSQL.

Приоритеты роста и простота реализации

При планировании архитектуры DEX фокус был сделан на простоте: минимальное количество компонентов, быстрое время запуска и ясные границы продукта. Исходная структура DEX включала в себя три основных компонента: HTTP API для конфигурации тестов, PostgreSQL для хранения данных конфигурации и пользовательский интерфейс на React, встроенный в облачную панель Cloudflare.

Выбор базы данных для аналитики

Изначально рассматривался ClickHouse благодаря высокой пропускной способности. Однако сложность ingest-пайплайнов (использование Cap’n Proto/Protobuf, сокетов, Kafka и пакетных вставок) и возникновение write-амплификации сделали этот выбор непрактичным для нашего екея, который включал миллионы устройств с частыми маленькими событиями.

Было принято решение начать с PostgreSQL как более простого и привычного решения. Для этого в таблицах PostgreSQL использовались многоколоночные B-tree индексы. Важным уроком стало размещение колонки с временной меткой последней в индексах и оптимизация порядка других колонок по их уникальности, что позволило значительно улучшить запросы.

Для повышения производительности запросов были внедрены предварительно вычисленные агрегаты (downsampling) посредством cron-задач для агрегации. Это дало масштабные улучшения, но потребовало значительных инженерных затрат для управления cron-задачами и изменениями схем данных.

Преимущества TimescaleDB

В дальнейшем TimescaleDB был оценен как простое и эффективное решение благодаря интеграции с экосистемой Postgres и автоматическому управлению партициями (гипертэблицы), непрерывные агрегаты для автоматической агрегации и downsampling, а также встроенное сжатие данных, которое позволяет значительно уменьшить объём хранения. В результате тестов на собственном облачном TimescaleDB показатели производительности улучшились в 5-35 раз в зависимости от настроек временных окон. Компрессия данных достигла отношения 33x.

Благодаря внедрению TimescaleDB, команда по аналитике и отчетности Zero Trust использовала платформу в качестве слоя агрегации поверх ClickHouse и PostgreSQL кластеров, что позволило достичь более высокой пропускной способности и уменьшить сложность операций.

В заключение можно сказать, что выбрав простоту и откладывая преждевременные оптимизации, Cloudflare смогла быстро выпустить DEX и позже обнаружила, что TimescaleDB обеспечил идеальный баланс между знакомством с PostgreSQL и производительностью OLAP.

Опубликовано: 25 августа, 2025

ЕЩЕ СТАТЬИ ПО ДАННОЙ ТЕМЕ

Postgres и Kubernetes: будущее корпоративных приложений

Переход на Postgres и Kubernetes ускоряет модернизацию приложений и применение AI. Компании ищут решения для улучшения производительности и внедрения искусственного интеллекта, отказываясь от устаревших монолитных систем.

Читать далее »

Поддержка Postgre SQL

Поддержка — это когда у вас возникает техническая
проблема с существующей системой,
и вам необходимо некоторое руководство