Массивы или 2 тысячм колонок

140 views
Skip to first unread message

Хрячок Хрячков

unread,
Dec 12, 2016, 6:23:46 AM12/12/16
to ClickHouse
Здравствуйте. Есть таблица ReplicatedMergeTree, условно лог показов. В сутки 100-150 млн строк. Есть задача, добавить колонку с массивом на несколько сотен UInt-значений, чтобы потом делать выборки по элементам массивов:

select count() from Log where day >= '2016-12-01' and day <= '2016-11-23' and has(segments, 135)

Есть большие сомнения по поводу того, что это будет быстро. Есть вариант разложить сегмент на отдельные колонки (будет порядка 2 тысяч колонок).

Посоветуйте, с чего начать пробовать - массив или 2 тысячи колонок? Очевидно, что.с отдельными колонками будет быстрее, но для репликации и самого кликхауса это не будет перебором?

man...@gmail.com

unread,
Dec 15, 2016, 10:58:25 AM12/15/16
to ClickHouse
Здравствуйте. Две тысячи одинаковых столбцов уже могут быть перебором.

Рекомендую так:
- если структура массива фиксированная: в нём элементы обозначают конкретные, фиксированные вещи; и если вам не придётся делать ALTER каждый день, то стоит попробовать использовать отдельные столбцы;
- иначе используйте массив.

Для списка идентификаторов сегментов, я думаю, лучше оставить массив.
Во-первых, новые сегменты, наверное, будут часто появляться и удаляться.
Во-вторых, в каждой строчке, наверное, будет не так много сегментов.
Reply all
Reply to author
Forward
0 new messages