При выборе аналитической базы данных, конечно, нужно тестировать на своих данных и запросах, которые будут задавать ваши пользователи. Но для создания шорт-листа СУБД для тестирования всем хочется посмотреть реальные данные чужих тестов. Ребята из Управления хранилищ данных банка «Тинькофф» поделились на Хабре своими результатами тестирования in-memory (и не только) баз данных и наблюдениями. Сегодня приведем краткую выжимку их тестов производительности Exasol, Greenplum, ClickHouse, SAP HANA, MemSQL и Cloudera Impala.

Требования к СУБД и кейс использования

Текущее хранилище на основе БД Greenplum не очень устраивало по скорости выполнения запросов. Тестирование СУБД проводили для выбора front-end базы данных хранилища для выборочного набора данных (до 4 Тб, с возможным увеличением). Целевая БД должна была обладать следующей функциональностью:

  • поколоночное хранение данных,
  • горизонтальная масштабируемость,
  • возможность выполнять локальные join-ы и использовать «правильный» ключ распределения в таблицах (ad-hoc запросы пользователей в 90% случаев – это Select c join-ами (от 1 до 10) по условиям равенства и, иногда, условиям вхождения дат в интервал),
  • эффективная работа с кэшем и большим объёмом доступной памяти,
  • Хорошая интеграция с BI-системой SAP Business Objects (она будет обращаться к БД, помимо ad-hoc запросов пользователей)
  • Надежный, желательно, инкрементальный, импорт данных из Greenplum (это текущее основное хранилище данных Тинькофф и загрузка данных в БД будет из него)
  • Оконные функции,
  • Резервирование (способность хранить несколько копий данных на разных нодах),
  • Простота дальнейшего расширения кластера,
  • Параллельная загрузка данных.

Инфраструктура для тестирования

На каждую тестируемую базу данных было выделено два физических сервера:

  • 16 физических ядер (32 с HT)
  • 128 Гб оперативной памяти
  • 3.9 Тб дискового пространтства (RAID 5 из 8 дисков)
  • Сервера связаны 10 Гбит-ой сетью.
  • Операционная система для каждой базы данных выбиралась исходя из рекомендаций по установке БД. То же касается настроек ОС, ядра и т.д.

Результаты тестирования производительности

Объем тестовых данных – 200 Гб в несжатом виде и чуть больше 522 млн. строк. Самые ресурсоемкие запросы – D1 и D2, декартово произведение одной и нескльких колонок соответственно. Подробное описание самих данных и тестовых запросов можно скачать по ссылке — Описание и текст тестовых запросов Exasol SAP HANA Impala Greenplum MemSQL ClickHouse в Тинькофф

Результаты сравнительного тестирования баз данных Exasol, Greenplum, ClickHouse, MemSQL, SAP Hana, Cloudera Impala – в таблице ниже. Время указано в секундах выполнения запроса.

Запрос Greenplum  Exasol  ClickHouse MemSQL SAP Hana Impala
N1 14 < 1 108 6 78
N2 131 11  — 127 Error
N3 67 85  — 122 733
T1 14 1.8 64 70 20 100
T2 17 4.2 86 105 20 127
D1 1393 284 45 1500
D2  > 7200 1200  > 7200 Error

Комментарий Дмитрия Павлова, руководитель администрирования хранилищ данных банка Тинькофф: «Про число запусков тестовых запросов: везде бралось первое выполнение запроса. При этом экспериментально выяснили, что первое и второе выполнения по времени значительно отличаются только у Exasol — второй раз он отрабатывает значительно быстрее за счёт построенных при первом запуске индексов (впрочем даже время первого выполнения в Exasol всегда значительно меньше, чем второго всех остальных баз). Пример:

Запрос Exasol, 1-ый запуск запроса Exasol, 2-ой запуск запроса
Т1 1,8 0,1
Т2 4,2 0,1

Правильнее, конечно, было выполнить каждый запрос 5-10 раз, отбросить лучшее и худшее и взять среднее от оставшегося, однако тогда тестирование бы затянулось. Кроме того, так как мы рассчитываем на этой базе выполнять в том числе и ad-hoc запросы пользователей, время первого выполнения нам интересней».

Сравнение СУБД по ключевым для Тинькофф критериям

Также опубликую таблицу сравнения баз данных по критериям, которые выбрала команда банка. Это данные 2016 года, версия продукта указана, большинство критериев применимы и сейчас.

Greenplum  Exasol Clickhouse Memsql SAP Hana  Impala
Вендор EMC Exasol Yandex Memsql SAP Apache / Cloudera
Используемая версия 4.3.8.1 5.0.15 1.1.53988 05.01.2000 1.00.121.00.1466466057 02.06.2000
Мастер-ноды Мастер-сегмент. Резервируется. Точка входа — любая нода. Есть license-нода, резервируется. Точка входа — любая нода Точка входа — любая нода Есть мастер-нода.  Резервируется. Точка входа — любая нода. Однако, нужен Hive metastore server.
Используемая ОС RHEL 6.7 EXA OS (проприетарная) Ubuntu 14.04.4 RHEL 6.7 RHEL 6.7 RHEL 6.7
Возможное железо Любое Любое с поддержкой PXE Boot Любое Любое Только из списка SAP Любое
Импорт из Greenplum External http tablesPipes External http tablesJDBC import External http tables CSV с локального сервераSPARK  CSV с локального сервера External GPHDFS tables
Интеграция с SAP BO (источник для юниверсов) Да, ODBC Да, ODBC Нет данных Нет данных Да Да, ODBCSIMBA
Интеграция с SAS Да, SAS ACCESS Да, ODBC Нет данных Нет данных Нет данных Да, SAS ACCESS
Оконные функции Есть Есть Нет Есть Есть Есть
Дистрибуция по нодам По полю/полям По полю/полям По полю/полям По полю/полям По полю/полям. Шарды раскидываются по нодам вручную Рандомно
Колоночное хранение Есть Есть Есть Есть на диске. Нет в памяти Есть Есть (Parquet)
При нехватке памяти при выполнении запроса Данные спилятся на диск  Данные спилятся на диск Запрос падает  Запрос падает  Запрос падает  Данные спилятся на диск
Отказоустойчивость Есть, механизм зеркал Есть, механизм зеркал Есть, на уровне таблиц  Есть  Есть Есть, силами HDFS
Способ распространения Open source, APACHE-2 Закрытый код, платная Open source, APACHE-2 Закрытый код, бесплатная Закрытый код, платная Open source, APACHE-2

Если Вам нужна тестовая лицензия Exasol с параметрами, превышающими 200 Гб сырых данных (как в Exasol Community Edtion), обратитесь к нам, в Консультационную Группу АТК, официальному партнеру Exasol в России – мы оформим тестовую лицензию и поможем с пилотным проектом.

Обращайтесь: consult@atkcg.ru или +7 (495) 937 16 50

Источник: Сравнение аналитических in-memory баз данных