Upload
ontico
View
138
Download
4
Embed Size (px)
Citation preview
Выбираем СУБД для хранения временных рядовПавел Филонов
Мы слишком часто склонны доверять своему оптимизму (или эксплуатировать оптимистические надежды своих спонсоров). Мы слишком часто не хотим прислушиваться к голосу рассудка и обращаем много внимания на продавцов панацей, поющих голосами сирен.
Фредерик Брукс «Мифический человеко-месяц»
digitalsubstation.ru
http://taneco.tatneft.ru/
Как мы видим данные
Модель данных и характеристики
• Схема{
“id”: 42, “ts”: 1023213221, “value”: 3.14}
• Число сенсоров ~ 104
• Частота опроса сенсоров ~ 1 раз в секунду
Проблема выбора!
www.wordclouds.com
Неинженерный подходя в другом проекте все хранил в X. Значит, нужно использовать X;
я в другом проекте все хранил в X. Значит, нужно использовать всё что угодно, кроме X;
а давайте возьмем X, а там уже разберемся;мне на конференции рассказали, что X - это очень «круто»;
я раньше никогда не работал с X. Давайте отправим его в «продакшн».
Инженерный подход
1. Ознакомиться с литературой2. Выбрать критерии сравнения3. Выбрать конкурсантов4. Выбрать методику тестирования5. Провести тестирование6. Провести анализ результатов7. Оформить отчет8. Предложить рекомендации
Трудозатраты
Критический обзор
• Если тест проводит компания-разработчик СУБД Bingo-BongoDB, то в нем побеждает
• Bingo-BongoDB
• Для грамотного сравнения пропускной способности нужно для разных СУБД
• использовать разные данные
Критерии
• Пропускная способность на запись• В зависимости от размеров «батча»• В зависимости от числа потоков• Под продолжительной нагрузкой
• Время выполнения запросов
• В зависимости от длины запрашиваемого интервала
• Степень сжатия
Конкурсанты
Тестовый стенд и версииHardware
Core i7-479032 Gb RAM256 Gb SSD (OS)1 Tb HDD (data)
SoftwareUbuntu 16.04.1 amd64Docker 1.11.2OpenTSDB 2.2.0InfluxDB 13.0MongoDB 3.2.10PostgreSQL 9.6.0Client
Rust 1.12.1postgres 0.11mongo-driver 0.3.0hyper 0.9
Пропускная способность на запись
m — размер батча
k — число потоков
MongoDB
Пропускная способность на запись
m — размер батча
k — число потоков
MongoDB
Пропускная способность на запись
m — размер батча
k — число потоков
MongoDB
Пропускная способность и размер батча
Пропускная способность и размер батча
Линейная регрессия
𝛼𝛽
Нормированные результаты
Пропускная способность и число клиентов
Пропускная способность и число клиентов
Пропускная способность и число клиентов
Нормированные результаты
Пропускная способность под нагрузкой
Пропускная способность под нагрузкой
Пропускная способность под нагрузкой
Нормированные результаты
Время выполнения запросов
Время выполнения запросов
Нормированные результаты
Нормированные результаты
Многокритериальное сравнение Важностькритериев
Скалярнаяоценка
×
InfluxDB
OpenTSDB
MongoDB
PostgreSQL
Вне конкурса
Многокритериальное сравнение Важностькритериев
Скалярнаяоценка
×
InfluxDB
OpenTSDB
MongoDB
PostgreSQL
Вне конкурса
Многокритериальное сравнение Важностькритериев
Скалярнаяоценка
×
InfluxDB
OpenTSDB
MongoDB
PostgreSQL
Вне конкурса
Image from: http://analitika-forex.ru
Последний конкурсант
Image from: habrahabr.ru
Нормированные результаты
×ClickHouse
InfluxDB
×ClickHouse
InfluxDB
Заключение
• Доверяй, но проверяй
• Use math, Luke
• Субъективную оценку тоже можно измерить
Источники1. Y. Bassil. A Comparative Study on the Performance of the Top DBMS Systems
– paper2. C. Pungila, O. Aritoni, TF. Fortis. Benchmarking Database Systems for the
Requirements of Sensor Readings – paper3. B. Cooper, , A. Silberstein, E.Tam, R. Ramakrishnan, and R. Sears.
Benchmarking Cloud Serving Systems with YCSB – paper4. T. Goldschmidt, H. Koziolek, A. Jansen. Scalability and Robustness of Time-
Series Databases for Cloud-Native Monitoring of Industrial Processes – paper5. T. Person. InfluxDB Markedly Outperforms Elasticsearch in Time-Series Data
& Metrics Benchmark – blogpost6. Д. Калугин-Балашов. Как выбрать In-memory NoSQL базу данных с
умом? - slides
Источники7. B. Schwartz. Time-Series Databases and InfluxDB – blogpost8. K. Eamonn and K. Shruti. On the Need for Time Series Data Mining
Benchmarks: A Survey and Empirical Demonstration – paper9. R. Sonnenschein. Why industrial manufactoring data need special
considerations – slides10. S.Acreman. Top10 Time Series Databases – blogpost11. J. Guerrero. InfluxDB Tops Cassandra in Time-Series Data & Metrics
Benchmark – blogpost12. J.Guerrero. InfluxDB is 27x Faster vs MongoDB for Time-Series Workloads –
blogpost13. Яндекс открывает ClickHouse - blogpost
Спасибо за внимание!
email: [email protected]: github.com/sdukshistwitter: @filonovpv