Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3 4 5 6 7 8 9 10   вперед  Ctrl      все
 QuestDB - новая СУБД для хранения time series данных  [new]
bluestreak
Member

Откуда:
Сообщений: 108
Доброе время суток!

Я пишу СУБД для очень быстрой обработки данных, как реляционных так и time series. Система доступна через SQL и так же напрямую из java. SQL работает одновременно по PostgreSQL протоколу, HTTP и также через Influx line protocol.

Остальное описание и документация находится на GitHub (на английском)

https://github.com/questdb/questdb

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


Спасибо!
28 ноя 19, 18:16    [22028057]     Ответить | Цитировать Сообщить модератору
 Re: QuestDB - новая СУБД для хранения time series данных  [new]
Бумбараш
Member

Откуда: никем не победимая, самая любимая
Сообщений: 2913
какие преимущества перед InfluxDB и другими распространенными TS DB?
28 ноя 19, 19:20    [22028127]     Ответить | Цитировать Сообщить модератору
 Re: QuestDB - новая СУБД для хранения time series данных  [new]
bluestreak
Member

Откуда:
Сообщений: 108
На много быстрее чем influx и timescale.
по сравнению с influx человеческий SQL, нормально ошибки репортятся, транзакционность данных, отказоустойчивость, поддержка реляционной модели, те неограниченные joins. Можно залить по influx протоколу а вытащить по postgres

По сравнению с timescale, просто быстрее, нагружает сервер меньше, например запрос в questdb выполняется быстрее на одном потоке чем timescale на шести

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

Залив данных из файлов упрощён - questdb заливает гораздо быстрее и автоматом создаёт таблицу и определяет типы полей. Также размер транзакции не ограничен при этом транзакция остаётся атомичной


Мы скоро накрутим incremental запросы, по производительности уничтожим все базы. Раз в 10-100 быстрее будет в зависимости от запроса
28 ноя 19, 19:35    [22028139]     Ответить | Цитировать Сообщить модератору
 Re: QuestDB - новая СУБД для хранения time series данных  [new]
Бумбараш
Member

Откуда: никем не победимая, самая любимая
Сообщений: 2913
bluestreak

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

как вы её быстрыми темпами обгоните, если у вас один контрибьютор, судя по github

bluestreak

Мы скоро накрутим incremental запросы, по производительности уничтожим все базы. Раз в 10-100 быстрее будет в зависимости от запроса

Что такое incremental запросы?
28 ноя 19, 19:42    [22028142]     Ответить | Цитировать Сообщить модератору
 Re: QuestDB - новая СУБД для хранения time series данных  [new]
bluestreak
Member

Откуда:
Сообщений: 108
Инвестиции почти готовы, получаем деньги в январе и погнали. Я и есть этот контрибутор :)

Инкрементальные запросы вытекают из предположения что данные на изменяются. За исходный результат берётся не 0 а результат предидущего запроса.

Например ‘select location, avg(temp) where timestamp = ‘2019-12’

Считает среднюю температуру в каждом месте за декабрь. Первый раз обходит весь декабрь. Запускаем еще раз. Запрос берет готовый hashmap из предидущего запуска и дорабатывает дельтой данных между сейчас и предидущим временем
28 ноя 19, 19:59    [22028151]     Ответить | Цитировать Сообщить модератору
 Re: QuestDB - новая СУБД для хранения time series данных  [new]
Бумбараш
Member

Откуда: никем не победимая, самая любимая
Сообщений: 2913
Сейчас кэширование в том или ином виде есть в любой DB. Некоторые DB, в том числе timeseries, полностью хранят в inmemory последние периоды time series, которыми в основном и пользуютя пользователи. Поэтому там в 10-100 раз особо некуда уже обгонять.
28 ноя 19, 20:59    [22028178]     Ответить | Цитировать Сообщить модератору
 Re: QuestDB - новая СУБД для хранения time series данных  [new]
bluestreak
Member

Откуда:
Сообщений: 108
Ну это наверное в теории. Если вы запустите запрос в influx чтобы просуммировать одно поле по ключу значений другого, то 10м записей он обработает за 100мс, запустите его ещё раз то будет опять 100мс и вы так же увидите подпрыгивание всех ядер процессора. Запрос который возвращает закешированные 20 записей возвращает данные за 3мс а не 100.

По этому если они кэшируют то далеко не столько как говорят.
28 ноя 19, 21:09    [22028186]     Ответить | Цитировать Сообщить модератору
 Re: QuestDB - новая СУБД для хранения time series данных  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 53394

bluestreak
Запрос который возвращает закешированные 20 записей возвращает данные за 3мс а не 100.

Осталось только найти странное приложение, которое раз за разом одним и тем же запросом
запрашивает одни и те же данные. Это разве что к пых-пыховцам и прочим уэб-кодерам.

Posted via ActualForum NNTP Server 1.5

28 ноя 19, 22:28    [22028229]     Ответить | Цитировать Сообщить модератору
 Re: QuestDB - новая СУБД для хранения time series данных  [new]
bluestreak
Member

Откуда:
Сообщений: 108
Таких приложений может быть не очевидное количество но их полно. В моём примере может быть текущий месяц, который не меняется от понедельника до пятницы. В зависимости от скорости поступления данных результат запроса меняется. Это применимо к отчетности, в реальном времени, консолям всяким которые не обязательно запрашивают данные в инкрементах и собирают картину на клиенте.

Пых-пыховцам тоже инструменты нужны.
28 ноя 19, 23:04    [22028257]     Ответить | Цитировать Сообщить модератору
 Re: QuestDB - новая СУБД для хранения time series данных  [new]
bluestreak
Member

Откуда:
Сообщений: 108
кстати, я так же могу ответить на конструктивные вопросы. Не зря же 5 лет эту СУБД пишу.

Например, как сделать .....? Я думаю что существующие СУБД не идеальны :)

Сообщение было отредактировано: 28 ноя 19, 23:13
28 ноя 19, 23:07    [22028258]     Ответить | Цитировать Сообщить модератору
 Re: QuestDB - новая СУБД для хранения time series данных  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 53394

bluestreak
я так же могу ответить на конструктивные вопросы. Не зря же 5 лет эту СУБД пишу.

Хочешь потягаться с теми, кто делает это 20?..

Posted via ActualForum NNTP Server 1.5

28 ноя 19, 23:17    [22028268]     Ответить | Цитировать Сообщить модератору
 Re: QuestDB - новая СУБД для хранения time series данных  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 3810
bluestreak,

название хорошее, что означает?
работа с с данной СУБД - это перманентный Quest?
28 ноя 19, 23:37    [22028276]     Ответить | Цитировать Сообщить модератору
 Re: QuestDB - новая СУБД для хранения time series данных  [new]
bluestreak
Member

Откуда:
Сообщений: 108
Dimitry Sibiryakov

bluestreak
я так же могу ответить на конструктивные вопросы. Не зря же 5 лет эту СУБД пишу.

Хочешь потягаться с теми, кто делает это 20?..


Дело не в том чтобы тягаться (я пишу софт с 1994г). QuestDB это apache 2.0 проект. Есть возможность сделать вещи, которые в существующих СУБД делаются через задницу, прямо в СУБД и по человечески, как всем было бы удобно, быстро, и не дорого в смысле вычислительных ресурсов в облаках.
29 ноя 19, 00:15    [22028288]     Ответить | Цитировать Сообщить модератору
 Re: QuestDB - новая СУБД для хранения time series данных  [new]
bluestreak
Member

Откуда:
Сообщений: 108
Дмитрий Мух
bluestreak,

название хорошее, что означает?
работа с с данной СУБД - это перманентный Quest?


Спасибо!

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

Ну и другие подобные вещи
29 ноя 19, 00:19    [22028290]     Ответить | Цитировать Сообщить модератору
 Re: QuestDB - новая СУБД для хранения time series данных  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 2337
bluestreak,

Я пишу СУБД для очень быстрой обработки данных

java


Делаю столярный цех. Все работы будут выполняться топором и бензопилой.
29 ноя 19, 05:35    [22028320]     Ответить | Цитировать Сообщить модератору
 Re: QuestDB - новая СУБД для хранения time series данных  [new]
bluestreak
Member

Откуда:
Сообщений: 108
crutchmaster
bluestreak,

Я пишу СУБД для очень быстрой обработки данных

java


Делаю столярный цех. Все работы будут выполняться топором и бензопилой.


Молоток

Изучил предмет дасканално
И ответил очень аригинално

Постгрес С, залив 500мб цсв - 47с
Questdb java, залив того же файла 4с GC = 0

Скачайте, попробуйте
29 ноя 19, 06:18    [22028325]     Ответить | Цитировать Сообщить модератору
 Re: QuestDB - новая СУБД для хранения time series данных  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 2337
bluestreak,

Давай остальные метрики, время выборок, скорость join'ов и прочее. На базе в пару TB и работающих 100 подключениях.
29 ноя 19, 06:37    [22028327]     Ответить | Цитировать Сообщить модератору
 Re: QuestDB - новая СУБД для хранения time series данных  [new]
bluestreak
Member

Откуда:
Сообщений: 108

COPY Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8
TimescaleDB 44.776 0.275 0.187 0.55 0.733 0.285 0.195 0.448 0.079 all queries except ingestion are executed in parallel on 6 cores. Date format is rigid
QuestDB 4.2 0.005 0.182 0.22 0.41 0.27 0.22 0.327 0.07



Q1 select count(qty) from trades
Q2 select sum(qty) from trades
Q3 select instrument, sum(qty) from trades group by instrument
Q4 select instrument, side, sum(qty) from trades group by instrument, side
Q5 select sum(price), sum(qty) from trades where side='B' (makes no sense to sum(price) but we wanted to show how aggregate expressions scale)
Q6 select sum(price), sum(qty) from trades where side='B' and instrument='AC' (makes no sense to sum(price) but we wanted to show how aggregate expressions scale)
Q7 select instrument, sum(price), sum(qty), from trades where side='S' group by instrument
Q8 select sum(price), sum(qty) from trades in range (2019-10-17, 2019-10-29) where side='S' group by 1h


Здесь timescale/postgres выполняют каждый запрос в 6 потоков. Questdb в один поток.

Сообщение было отредактировано: 29 ноя 19, 07:01
29 ноя 19, 06:55    [22028331]     Ответить | Цитировать Сообщить модератору
 Re: QuestDB - новая СУБД для хранения time series данных  [new]
bluestreak
Member

Откуда:
Сообщений: 108
Залей свой датасет попробуй

Joins работают быстро, количество не ограничено. Размер базы ограничен системными ресурсами, диском и физической памятью. Для работы с данными используются memory mapped files.

Количество подключений не ограниченно, сервера не блокирующие с поддержкой flow control.
29 ноя 19, 06:59    [22028332]     Ответить | Цитировать Сообщить модератору
 Re: QuestDB - новая СУБД для хранения time series данных  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 2337
bluestreak,

Ну что это за бенч? Где тестовые данные? Где версии софта? Где железо? Где IO? Что там по надёжности? Она у тебя inmemory? Как это всё сбрасывается на диск?
29 ноя 19, 07:07    [22028336]     Ответить | Цитировать Сообщить модератору
 Re: QuestDB - новая СУБД для хранения time series данных  [new]
bluestreak
Member

Откуда:
Сообщений: 108
Бенч синтетический датасет, 500мб 10м записей

Данные - ...

Версии недельной давности

Dell 9570 laptop i9 6 core , 32gb. 1tb nvme ssd

Надежность данных - транзакционность (acid) по одной таблице пока. Автоматическое восстановление при потере электропитания


Данные как я сказал пишутся и читаются через memory mapped files. ОС занимается управлением памятью. В прямую память попадают только промежуточные данные при выполнении запросов. При этом делается все возможное чтобы данные не копировать в память. Например результат ‘from a join b on(x)’ хранится в памяти как хэш ключа x и rowid (64bit) таблицы b


Данные на диск записываются ОС асинхронно. Будет возможность делать msync с коммитом в зависимости от задачи
29 ноя 19, 07:25    [22028341]     Ответить | Цитировать Сообщить модератору
 Re: QuestDB - новая СУБД для хранения time series данных  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 3810
bluestreak
Дмитрий Мух
bluestreak,

название хорошее, что означает?
работа с с данной СУБД - это перманентный Quest?


Спасибо!

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

Ну и другие подобные вещи

Ну нам такого не надо, у нас другие задачи.

А 100Гб файл - это что? Киношка какая что-ли? Так с этим вроде сейчас через браузер проблем нет.
29 ноя 19, 09:42    [22028426]     Ответить | Цитировать Сообщить модератору
 Re: QuestDB - новая СУБД для хранения time series данных  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 3810
bluestreak
Для работы с данными используются memory mapped files.

А с MongoDB MMAPv1 сравнивали? А с WiredTiger?
29 ноя 19, 09:46    [22028430]     Ответить | Цитировать Сообщить модератору
 Re: QuestDB - новая СУБД для хранения time series данных  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 2337
bluestreak,

Как-то без огонька. Надо устроить спецолимпиаду, написать генератор входных данных, придумать задачи, наделать скриптов, чтобы кому надо могли у себя это запустить и потыкать.
29 ноя 19, 09:49    [22028435]     Ответить | Цитировать Сообщить модератору
 Re: QuestDB - новая СУБД для хранения time series данных  [new]
PsyMisha
Member

Откуда: другая столица
Сообщений: 828
Очередной полоумный гаражный убиватель сиквела и оракла.
Пойду за попкорном сгоняю...
29 ноя 19, 09:54    [22028440]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3 4 5 6 7 8 9 10   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить