Единая система на базе DST Platform, для выполнения всех рабочих нагрузок по анализу данных высоко нагруженного маркетплейса

Этот пост посвящен созданию единой системы на базе DST Platform, для выполнения всех рабочих нагрузок по анализу данных, связанных с клиентами, поставщиками, аналитиками и руководством для высоко нагруженного маркетплейса.

Рассмотрим пример - Маркетплейс клиента пытается создать хранилище данных, которое сможет выполнять все рабочие нагрузки по анализу больших данных, связанные с клиентами, поставщиками, аналитиками и руководством. К основным задачам относятся:

- Запрос по импорту и экспорту номенклатуры: множество поставщиков маркетплейса хотят проверить множество деталей своих позиций. Они также должны поддерживать такие фильтры, как атрибуты, типы доставки, геолокацию и вложенность категорий.

- Многомерный анализ. Аналитики и в автоматическом режиме сама система DST Platform, составляют свои отчеты на основе различных измерений данных по мере необходимости, чтобы они могли извлекать информацию для облегчения инноваций в продуктах.

- Информационная панель DST Platform: предназначена для создания визуального обзора тенденций продаж и горизонтального и вертикального сравнения различных показателей.

Архитектура данных с большим количеством компонентов

Маркетплейс клиента начал с архитектуры Lambda, разделив свой конвейер данных на канал пакетной обработки и канал потоковой обработки. Для потоковой передачи данных в реальном времени они применяют Flink CDC; для пакетного импорта они используют Sqoop, Python и DataX для создания собственного инструмента интеграции данных под названием Hisen.

Затем данные реального времени и офлайн-данные встречаются на уровне хранилища данных, который состоит из пяти компонентов.

ClickHouse

Хранилище данных имеет плоскую табличную структуру, и ClickHouse превосходно справляется с чтением плоских таблиц. Но по мере развития бизнеса ситуация становится сложной по двум причинам:

Для поддержки межтабличных соединений и точечных запросов пользователю требуется звездообразная схема, но ее сложно реализовать в ClickHouse.

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

MySQL

После расчета метрики данных сохраняются в MySQL, но по мере роста размера данных MySQL начинает испытывать проблемы, связанные с такими проблемами, как длительное время выполнения и возникновение ошибок.

Apache Hive + Presto

Hive является основным исполнителем в канале пакетной обработки. Он может преобразовывать, агрегировать и запрашивать офлайн-данные. Presto — это дополнение к Hive для интерактивного анализа.

Apache HBase

HBase выполняет запросы по первичному ключу. Он считывает статус клиента из MySQL и Hive, включая кредиты клиента, период покрытия и страховую сумму. Однако, поскольку HBase не поддерживает вторичные индексы, его возможности чтения столбцов, не являющихся первичными ключами, ограничены. Кроме того, как база данных NoSQL, HBase не поддерживает операторы SQL.

Компоненты должны работать вместе, чтобы удовлетворить все потребности, в результате чего хранилище данных становится слишком большим, чтобы о нем можно было заботиться. Начать работу непросто, поскольку инженеры должны пройти обучение работе со всеми этими компонентами. Кроме того, сложность архитектуры увеличивает риски задержек.

Итак, маркетплейс клиента совместно с разработчиками компании DST Global попытались найти инструмент, который отвечает их требованиям. Первое, что им нужно, — это возможности работы в реальном времени, включая запись в реальном времени, обновление в реальном времени и ответ в реальном времени на запросы данных. Во-вторых, им нужна большая гибкость в анализе данных для поддержки запросов самообслуживания, ориентированных на клиентов, таких как многомерный анализ, запросы на объединение больших таблиц, индексы первичных ключей, свертывание и детализация. Затем, для пакетной обработки, им также нужна высокая пропускная способность при записи данных.

В конце концов клиент остановил свой выбор на Apache Doris.

Замена четырех компонентов на Apache Doris

Apache Doris способен выполнять анализ данных как в режиме реального времени, так и в автономном режиме, а также поддерживает как высокопроизводительный интерактивный анализ, так и точечные запросы с высоким уровнем параллелизма. Вот почему он может заменить ClickHouse, MySQL, Presto и Apache HBase и работать как единый шлюз запросов для всей системы данных.

Улучшенный конвейер данных представляет собой гораздо более чистую архитектуру Lambda.

Apache Doris предоставляет широкий спектр методов приема данных. Запись данных выполняется быстро. Кроме того, он также реализует слияние при записи для повышения производительности при одновременных точечных запросах.

Сниженная стоимость

Новая архитектура снизила затраты пользователя на человеческие усилия. Во-первых, гораздо более простая архитектура данных значительно упрощает обслуживание; с другой стороны, разработчикам больше не нужно объединять данные реального времени и офлайн-данные в API обслуживания данных.

Маркетплейс теперь также может сэкономить деньги с помощью Doris, поскольку он поддерживает многоуровневое хранилище. Это позволяет пользователю помещать огромное количество редко используемых исторических данных в объектное хранилище, что намного дешевле хранить данные.

Более высокая эффективность

Apache Doris может достигать количества запросов в секунду, равного 10 000, и отвечать на миллиарды точечных запросов в течение миллисекунд, поэтому ему легко обрабатывать запросы, обращенные к клиентам. Многоуровневое хранилище, которое отделяет «горячие» данные от «холодных», также повышает эффективность их запросов.

Доступность услуги

Являясь унифицированным хранилищем данных для хранения, вычислений и сервисов обработки данных, Apache Doris обеспечивает простое аварийное восстановление. Благодаря меньшему количеству компонентов им не придется беспокоиться о потере или дублировании данных.

Важной гарантией доступности сервиса для пользователя является возможность межкластерной репликации (CCR) Apache Doris. Он может синхронизировать данные от кластера к кластеру в течение нескольких минут или даже секунд и реализует два механизма для обеспечения надежности данных:

- Binlog : этот механизм может автоматически регистрировать изменения данных и генерировать LogID для каждой операции изменения данных. Дополнительные идентификаторы LogID гарантируют, что изменения данных будут отслеживаемыми и упорядоченными.

- Сохранение данных : в случае сбоя системы или возникновения чрезвычайной ситуации данные будут помещены на диски.

Более глубокий взгляд на Apache Doris

Apache Doris может заменить ClickHouse, MySQL, Presto и HBase, поскольку он обладает обширным набором возможностей на протяжении всего конвейера обработки данных. При приеме данных он обеспечивает запись в реальном времени с малой задержкой благодаря поддержке Flink CDC и Merge-on-Write. Он гарантирует однократную запись с помощью механизма меток и транзакционной загрузки. В запросах данных он поддерживает как звездообразную схему, так и агрегацию плоских таблиц, что позволяет обеспечить высокую производительность как при объединении нескольких таблиц, так и при больших запросах к одной таблице. Он также предоставляет различные способы ускорения различных запросов, такие как инвертированный индекс для полнотекстового поиска и запросов по диапазону, сокращенный план и подготовленные операторы для точечных запросов. 

Единая система на базе DST Platform, для выполнения всех рабочих нагрузок по анализу данных высоко нагруженного маркетплейса
Получить консультацию у специалистов DST
Напишите нам прямо сейчас, наши специалисты расскажут об услугах и ответят на все ваши вопросы.
Комментарии
RSS
Еще в 2015 году делали крупный портал и затем второй сайт — маркетплейс для нашего популярного проекта «Славянская Культура», на который заходило более 150К уников в день. Делали на CMS системе DST Platform.

Система работала без сбоев и нареканий, хотя ежедневный трафик был большим и пользователи не просто пришли, купили и ушли а именно сидели на платформе, так что DST Platform не просто лучшая CMS, это скорее даже не сравнимо с другими система, просто другой уровень.
11:53 (отредактировано)
+1
Основными минусами для меня ClickHouse считаются следующими:

— отсутствие транзакций – Кликхаус является OLAP, а не OLTP-системой, и не поддерживает транзакционность записей, т.к. ориентирован, в первую очередь, на считывание данных. Поэтому попытки использовать ClickHouse в транзакционных OLTP-сценариях нецелесообразны.

— отсутствие точечных операций обновления и удаления данных (UPDATE и DELETE) по отдельным записям. В 2018 году появилась стали доступны пакетные операции ALTER UPDATE и ALTER DELETE, которые выполняются асинхронно, не блокируют вставки, запросы и друг друга. Возможно массовое удаление и изменение данных для очистки более не нужного или в соответствии с требованиями GDPR

— Ограниченная поддержка операций JOIN, в частности, в запросах, которые требуют перемещения большого количества данныхмежду узлами кластера, например, join между двумя большими таблицами

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

— строгая типизация с необходимостью явного приведения. Хотя это ограничение и доставляет некоторые неудобства в процессе разработки, оно предохраняет от многих ошибок на этапе выполнения программы.

— зависимость от оперативной памяти — для некоторых операций промежуточные данные должны помещаться в оперативную память. В частности, при агрегации необходимо, чтобы результат выполнения запроса помещался в RAM на одном сервере. При этом сам объём исходных данных для запроса может быть любым, в т.ч. очень большим. Также стоит упомянуть, что соединения таблиц ограничены оперативной памятью сервера.

— отсутствие оконных функций и зависимых подзапросов – ClickHouse поддерживает декларативный язык структурированных запросов, который во многом совпадает со стандартом ANSI SQL, но не во всем. Это стоит учитывать при написании запросов к базе данных.

— отсутствие полноценного оптимизатора запросов. Частично эта проблема решается с помощью материализованных представлений, о которых мы рассказывали здесь. Например, при большом объеме сырых данных в СУБД скорость выполнения агрегированных запросов по ним может снижаться. Движок AggregatingMergeTreeагрегирует данные материализованного представления по ключу сортировки. Благодаря этому можно группировать данные по определенным полям, делая возможным выполнять сложные запросы по большому промежутку времени. В других случаях можно проанализировать, в чем именно проблема снижения скорости выполнения запросов: процессор, память, жесткий диск или сеть. К примеру, по умолчанию ClickHouse использует только физические процессорные ядра, без учёта одновременной многопоточности (hyper-threading). Некоторые запросы могут существенно ускориться, если увеличить количество потоков. Также возможны проблемы с дисками RAID 5 или RAID 6, которые отлично масштабируются по последовательным (и даже случайным) чтениям, но плохо – по записям. Наличие универсального оптимизатора запросов в ClickHouse сэкономило бы время разработчика или аналитика Big Data, позволяя не погружаться в такие тонкости. Но пока этого инструмента в СУБД нет.

— низкая скорость точечного чтения одиночных строк по своим ключам из-за разреженного индекса делает

— низкая производительность небольших вставок, т.к. из-за столбцового принципа хранения данных в ClickHouse. Каждый столбец – это минимум один файл, поэтому, например, для вставки 1 строки с 100 столбцами потребуется открыть и записать не менее 100 файлов.

— подверженность атакам на HTTP-интерфейс, включая SQL-инъекции. В частности, табличная функция url для обращения к удалённым узлам по HTTP и HTTPS позволяет провести атаку SSRF через SQL-инъекцию. Также HTTP-интерфейс ClickHouse делает возможным атаку Reflected File Download, если пароль не установлен, сохранен в браузере пользователя или известен злоумышленнику. Аналогичным образом из-за HTTP-интерфейса ClickHouse может подвергнуться атакам подделки запросов на стороне сервера (SSRF, Server-Side Request Forgery) и между сайтами (CSRF, Cross-Site Request Forgery)
Вам может быть интересно
Kubernetes стал незаменимым для разработки современных приложений. Узнайте, как он развивается для поддержки рабочих нагрузок искусственного интеллекта и машинного обучения и меняет среду разработки.K...
В этой статье разработчики компании DST Global рассказывают, как современный сте...
В этой статье разработчики компании DST Global зна...
В этой статье разработчики компании DST Global рас...
Откройте для себя эффективные стратегии плавного п...
Ориентируйтесь в развивающейся среде облачных вычи...

Новые комментарии

Очень быстро и качественно, на данном ПО, без всяких сложностей реорганизовали свой сайт клиники
У нас как раз идёт внедрение внедрения DevSecOps. Спасибо, очень полезная статья
Как не странно но фишинг до сих пор успешно применяется и многие на него попадаются, мы очень серьезно обучаем своих сотрудников по работе с ПО и почт...
У нас в компании внедрили много облачных технологий, в том числе и CRM систему, возник вопрос как сделать все это максимально безопасным. Спасибо авто...

Заявка на услуги DST

Наш специалист свяжется с вами, обсудит оптимальную стратегию сотрудничества,
поможет сформировать бизнес требования и рассчитает стоимость услуг.

Адрес

Россия, Ижевск, ул.Салютовская,
д.1, офис 17

8 495 1985800
Заказать звонок

Режим работы: Пн-Пт 10:00-19:00

info@dstglobal.ru

Задать вопрос по почте

Укажите ваше имя
Укажите ваше email
Укажите ваше телефон