@clickhouse_ru

Страница 143 из 723
Vladimir
13.05.2017
06:02:18
https://github.com/kshvakov/clickhouse/

g00glle
13.05.2017
06:05:11
Можно класть по любому количеству строк. Для го есть нативная библиотека неплохая
количество в 1000 на один POST где-то в документации встретил... поищу. И всё равно - получившееся число передавалось ощутимо долго, вся процедура ETL (простите, не DBA - могу не к месту использовать этот термин) выбивается из лимита в 60 секунд

Google
g00glle
13.05.2017
06:07:16
Рекомендации не менее 1000
оуч, попробую! Спасибо за уточнение

Vladimir
13.05.2017
06:08:25
оуч, попробую! Спасибо за уточнение
Там рекомендация делать не очень много, но больших инсертов

g00glle
13.05.2017
06:08:50
https://github.com/kshvakov/clickhouse/
Спасибо, я почему-то из офиса только одну разглядел - https://github.com/roistat/go-clickhouse, она мне не понравилась =)

Vladimir
13.05.2017
06:08:50
То есть лучше 10 раз в секунду по 100000 строк, чем 100 раз по 10000

g00glle
13.05.2017
06:09:31
Vladimir
13.05.2017
06:10:04
в параллели можно insert делать?
М... Никто не запрещает как бы :)

g00glle
13.05.2017
06:10:38
М... Никто не запрещает как бы :)
я сейчас сразу проверить не смогу.. =) приходится нудить

@Civiloid спасибо за разъяснения

А можно я тогда вообще разойдусь и задам вопрос посложнее? ? В задаче, что я описал выше, на стороне источника формируется избыточное количество строк для 60ти секунд - задан промежуток 58с > t > 122c. Eсть ли какие-то уже наработанные в community подходы для дедупликации строк? Прикидываю попробовать как-то реализовать механизм через temporary table, но вдруг уже кто-то изобрёл велосипед...

Задачи, которые я хочу решить - удовлетворить свой перфекционизм, минимизировать мусор. В перспективе прикидываю сложить в CH значительное количество данных от разных систем (пока, например, исторических данных мониторинга от трёх систем) - начинать с захламления имхо не лучшая идея.

Vladimir
13.05.2017
07:48:21
ребят, доброе утро. только начал экспериментировать с ch, прошу терпеливо направить: Нужно настроить перекладку записей из имеющейся продуктивной MS SQL базы в таблицу CH. На данный момент хочу делать это раз в минуту (за 60 секунд в источнике генерируется ~19к строк). После некоторого тюнинга запроса на MSSQL инстансе он выполняется за 15-30 секунд (приходится джойнить две толстые таблицы), в зависимости от загрузки сервера. 1 секунда уходит на складывание PIVOT-ом пары строк в одну вида [date],[timestamp_utc],[metric.1],[metric.2] всё это генерируется на стороне MSSQL сервера - windows server. Какие есть годные варианты, чтобы максимально быстро сложить результирующий CSV в таблицу CH? Пока успел попробовать только передавать через web-морду по 1000 строк curl-ом - ооочень медленно. Поглядел на Go либу - она вроде только через web работает.. Может, я невнимательно читал документацию и задачу записи через web-interface я мог бы распараллелить? Engine = MergeTree
Условно костыльное решение: скидывать готовые csv в папку с именем вида unixtime.csv и заливать их по расписанию через clickhouse-client или веб-морду. Возможно менее костыльное- настроить сходное по логике через syslog-ng

Nikolay
13.05.2017
07:53:10
https://github.com/nikepan/clickhouse-bulk еще может помочь. но он тоже через веб

Maksim
13.05.2017
13:56:30
То есть лучше 10 раз в секунду по 100000 строк, чем 100 раз по 10000
Вроде как лучше один раз в секунду по миллиону. Именно это написано в мануале

Google
Maksim
13.05.2017
13:56:53
Но миллион в секунду - это нереальные же цифры

Pavel
13.05.2017
14:11:43
FusionIO и реальные;)

А еще можно в рам!)

Kirill
13.05.2017
19:03:55
в параллели можно insert делать?
можно, но если в одну таблицу то будет медленно, вставка пачками (большими) обусловленна тем что CH потом эти куски данных сливает вместе с имеющимися, а это дорогая операция

g00glle
13.05.2017
20:46:25
можно, но если в одну таблицу то будет медленно, вставка пачками (большими) обусловленна тем что CH потом эти куски данных сливает вместе с имеющимися, а это дорогая операция
Спасибо. Прихожу к выводу, что оптимальнее загрузкой данных в CH было бы заниматься на стороне самого CH - вовне останется только подключение к mssql инстансу за данными. Распарсить и скормить в таблицу легче/быстрее на сервере CH через clickhouse-client, например..

Alexander
13.05.2017
21:50:43
Спасибо. Прихожу к выводу, что оптимальнее загрузкой данных в CH было бы заниматься на стороне самого CH - вовне останется только подключение к mssql инстансу за данными. Распарсить и скормить в таблицу легче/быстрее на сервере CH через clickhouse-client, например..
Аналогичная проблема. И пока не проверил, но надеюсь что buffer engine тут поможет. Так как не очень хочется внешние обвязки для буфера делать: + дополнительная часть + задержка данных

g00glle
13.05.2017
22:22:48
Evgeny, @inv2004: Кхм, не уверен, что касательно моей задачи вопрос в маленьких пачках данных. У меня сейчас жалкие 19к строк через web интерфейс передаётся 14+ минут, а это всего лишь данные источника за минуту. csv с этими данными - меньше 3Мб. Важное замечание, возможно - вместо curl приходится использовать cmdlet Powershell-а 'Invoke-RestMethod' - может, косяк производительности в нём? P.S.: @maxlapshin, lol... 1.000.000 строк в секунду да при моей текущей производительности...

Alexander
13.05.2017
22:37:31
А что странного в миллионе строк в секунду? И тут надо еще понимать: 1) размер строки, сколько там колонок. Строка из 10 интов, и 100 стрингов -- это две большие разницы. 2) производительность дисковой подсистемы. В рамках одного сервера упирается обычно в диск 3) сколько серверов в кластере. Вставка при правильном дизайне масштабируется линейно Можно грубо прикинуть размер строки в байтах, поделить его примерно на 5 (компрессия), а еще лучше померить точнее, как жмет ваши данные КликХаус, и соотнести с write speed дисковой подсистемы. Это будет верхний предел, но КликХаус от него не сильно должен отступать при достаточно больших блоках

Alexander
14.05.2017
02:18:16
У меня около 5000 строк в секунду. Но данных не очень много, строка, которую надо в cityhash и десяток чисел.

Vladimir
14.05.2017
06:05:22
Я имел ввиду скорее на один сервер
Так зависит от данных. Если это что то в духе графитной потока то норм

f1yegor
14.05.2017
11:27:34
компиляцию запросов стоит включать?

/** Whether query compilation is enabled. */ \ M(SettingBool, compile, false) \

superset image https://hub.docker.com/r/crobox/superset

Страница 143 из 723