Этот вариант использования хранилища данных предполагает масштабирование. Пользователем является компания China Unicom, один из крупнейших в мире поставщиков телекоммуникационных услуг. Развернул несколько кластеров размером в петабайты на десятках компьютеров с использованием Apache Doris для поддержки 15 миллиардов журналов, добавляемых ежедневно более чем 30 направлениями бизнеса. Такая большая система анализа журналов является частью управления сетевой безопасностью. Из-за необходимости мониторинга в реальном времени, отслеживания угроз и оповещения пользователям нужна система анализа журналов, которая может автоматически собирать, хранить, анализировать и визуализировать журналы и записи событий.
С точки зрения архитектуры система должна иметь возможность выполнять анализ журналов в различных форматах в режиме реального времени и, конечно же, быть масштабируемой для поддержки больших и постоянно растущих масштабов данных. В этой статье рассказывается о том, как выглядит архитектура обработки журналов пользователя и как добиться стабильного приема данных, недорогого хранения и быстрого выполнения запросов.
Архитектура системы
Это конвейер данных пользователя. Журналы собираются в хранилище данных и обрабатываются на нескольких уровнях.
Теперь давайте посмотрим на практику пользователей по приему, хранению и запросу данных с использованием Архитектуры 2.0.
Упражнения на реальных кейсах
Стабильная обработка 15 миллиардов журналов каждый день.
Бизнес пользователя генерирует 15 миллиардов журналов каждый день. Быстро и стабильно обрабатывать такой большой объем данных — настоящая проблема. Для Apache Doris рекомендуемый подход — использовать Flink-Doris-Connector. Он разработан сообществом Apache Doris для крупномасштабной записи данных. Этот компонент требует простой настройки. Реализация потоковой загрузки позволяет достичь скорости записи 200 000–300 000 журналов в секунду без прерывания рабочей нагрузки по анализу данных.
Полученный опыт показывает, что при использовании Flink для высокочастотной записи вам необходимо найти подходящую конфигурацию параметров в соответствии с вашей собственной ситуацией, чтобы избежать накопления версий данных. В ответ на эту ситуацию пользователь произвел следующие оптимизации:
В совокупности эти меры обеспечивают стабильность ежедневного приема данных. В ходе процесса пользователи стали свидетелями стабильной производительности и низкого показателя сжатия серверной части Doris. Кроме того, предварительная обработка данных в Flink сочетается с моделью уникального ключа в Doris, что обеспечивает более быстрое обновление данных.
Стратегия хранения снижает затраты на 50 %
Размер и скорость создания журналов также оказывают давление на хранилище. Лишь часть массивных данных журнала имеет высокую информационную ценность, поэтому ее следует хранить дифференцированно. Пользователи применяют три стратегии хранения для снижения затрат.
Благодаря этим трем стратегиям затраты пользователей на хранение данных сокращаются на 50%.
Дифференцированные стратегии запросов в зависимости от размера данных
Некоторые журналы необходимо отслеживать и обнаруживать немедленно, например журналы аномальных событий или сбоев. Чтобы обеспечить ответ на эти запросы в режиме реального времени, пользователи используют разные стратегии запросов для разных размеров данных:
Эти стратегии сокращают время ответа на запросы. Например, запросы к конкретным элементам данных, которые раньше занимали минуты, теперь могут быть выполнены за миллисекунды. Для больших таблиц с десятками миллиардов данных запросы в разных измерениях могут быть выполнены за несколько секунд.
Текущие планы
Пользователь тестирует новый инвертированный индекс в Apache Doris. Предназначен для ускорения полнотекстового поиска строк, а также запросов на равенство и диапазон чисел и даты и времени. Пользователи также предоставили ценные отзывы о логике автоматического распределения сегментов в Doris: в настоящее время Doris определяет количество сегментов для раздела на основе размера данных предыдущего раздела. Проблема в том, что пользователи вводят большую часть новых данных днем и очень мало — ночью. В результате Дорис создает слишком много сегментов для ночных данных и слишком мало для дневных, что прямо противоположно тому, чего хотят пользователи. Пользователь хочет добавить новую логику автоматического распределения по сегментам, чтобы определять количество сегментов на основе размера и распределения данных предыдущего дня. Мы работаем над этой оптимизацией.
Автор оригинала: Апач Дорис