• 01 April 2017 (32 messages)
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @bolser #10274 05:47 AM, 01 Apr 2017
    Всем привет! Если вы на CodeFest в Новосибирске приходите к 14:30 на импровизированную встречу.
  • https://t.me/clickhouse_ru
    @bolser #10275 05:48 AM, 01 Apr 2017
    Или ищите нас в кулуарах.
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #10226 #10276 07:37 AM, 01 Apr 2017
    Чет мало. У тебя наверное insert на каждую запись.
    А лучше батчами, т.е. ты в одном insert передаешь множество строк. В таком режиме у меня 232млн записей льются за 2м40с.
  • https://t.me/clickhouse_ru
    @dkepov #10277 11:27 AM, 01 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    внутри сети получился результат около 400 тыс в секунду. по вашим результатам выходит 1.5 млн в секунду. как так? я делаю батчем
  • https://t.me/clickhouse_ru
    может вы csv шлете с компресией ? я шлю как строку с множеством записей
  • https://t.me/clickhouse_ru
    @aspirin_pp #10280 02:02 PM, 01 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10281 02:12 PM, 01 Apr 2017
    @all может кто подскажет какой самый быстрый способ вставки строкой или через csv file
  • @iamigor #10282 02:13 PM, 01 Apr 2017
    вы clickhouse-client c curl'ом попробовали уже?)
  • https://t.me/clickhouse_ru
    в 6 утра лег исправил ошибку в своем импорте выполнил локально результаты были не очень. потом залил на машину которая в сети с машиной клик хаус стоит и результат пачка 50 тыс. записей = 0.21 сек
  • https://t.me/clickhouse_ru
    есть статейка на хабре 10 млн записей импортнули за 4 секунды что равно 2 500 000 записей в секунду это результат очень классный, но не пойму как они добились этого. может через csv надо импорт делать. вначале собирать все в файлик потом файлик кидать в clickhouse с компресией
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10285 02:22 PM, 01 Apr 2017
    *они делали через csv. но разве разница есть отправлять запрос вида INSERT INTO table (value),(value),(value), ... (fields) или в csv
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10286 02:22 PM, 01 Apr 2017
    разве что компресия может дать более быструю пересылку данных
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #10279 #10287 02:34 PM, 01 Apr 2017
    Я упустил тот момент что вы шлете по сети. У меня так вставка идёт локально.
  • https://t.me/clickhouse_ru
    ну у нас отдельный сервер на нем целый движок собирает данные и записывает. локально просто не можем
  • https://t.me/clickhouse_ru
    @rheinx #10289 02:35 PM, 01 Apr 2017
    Да я понимаю
  • https://t.me/clickhouse_ru
    @rheinx #10290 02:35 PM, 01 Apr 2017
    А еще это же сильно зависит от количества столбцов.
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10291 02:36 PM, 01 Apr 2017
    у нас их около 40
  • https://t.me/clickhouse_ru
    большая часть int значения. пару полей string
  • https://t.me/clickhouse_ru
    @rheinx #10293 02:36 PM, 01 Apr 2017
    у меня 16 колонок. Общий вес 232млн строк в CSV примерно 30-40гб
  • https://t.me/clickhouse_ru
    ну у нас столько данных в секунду не бывает. пока около 5-50 записей в секунду. но дальше будет больше. важно сделать замер максимального количесвто вставок в секунду чтобы знать пределы системы
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10295 02:41 PM, 01 Apr 2017
    сейчас попробую перегнать данные в csv записать в файлик и его отправлять. сделаю замер
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10296 02:42 PM, 01 Apr 2017
    еще такой вопрос. примари кей приоритетнее для каких полей выставлять? по которым GROUP и WHERE IN ?
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #10296 #10298 03:03 PM, 01 Apr 2017
    т.к. у вас индексов кроме основного не будет, то все запросы будут иметь план либо fullscan либо он же, но с ограничением по диапазонам индекса, которые можно извлечь из where. например, если у вас данные про какие-то события, у них есть время, и типовой отчет у вас за последний месяц, то чтобы не читать данные за всю историю у вас будет фильтр по дате и индекс по дате. если у вас события характеризуются каким-то источником и отчетность по каждому из них нужна отдельно, то условие на него (всегда) будет в where и его можно добавить в индекс. особенно если таких источников существенно меньше чем количество строк, тогда их данные будут храниться подряд большими кусками и работать быстрее.
  • https://t.me/clickhouse_ru
    у нас есть поля по которым надо постоянно производить подсчет sum в рамках where in с группировкой по дню. индексы уместны?
  • https://t.me/clickhouse_ru
    @ValentinK89 #10300 03:51 PM, 01 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    По тем полям которые внутри where
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10302 11:24 PM, 01 Apr 2017
    Подскажите пожалуйста пытаюсь отправить tsv файл но пишет ошибку
    Cannot parse input: expected \t
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10303 11:24 PM, 01 Apr 2017
    между данными ставит таб и clickhouse ругается на него
  • https://t.me/clickhouse_ru
    @burunduk3 #10304 11:50 PM, 01 Apr 2017
    Казалось бы, «expected \t» означает что, наоборот, clickhouse хочет увидеть таб, но не тут-то было.

    Я бы проверил типы полей — верно ли, что указанные в INSERT'е (или в таблице) в точности совпадают с теми, которые передаютися в tsv.
  • 02 April 2017 (23 messages)
  • @yaw_ym #10305 06:43 AM, 02 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @hagen1778 #10307 07:00 AM, 02 Apr 2017
    добрый)
  • @iamigor #10309 07:03 AM, 02 Apr 2017
    можно, тип указывается после названия столбца
  • @sr_maks1 #10310 07:03 AM, 02 Apr 2017
    😊 не проснулся.
  • @sr_maks1 #10311 07:03 AM, 02 Apr 2017
    Туплю
  • https://t.me/clickhouse_ru
    @rheinx #10312 10:54 AM, 02 Apr 2017
    Ребят, такой вопрос. ClickHouse конечно бешено быстрый, но все же бывают отчеты которые сами по себе редкие, но тяжелые. А показываются на вебе который должен быть быстрым. Логично приходит в голову какой то кеш. Кто что использует и использует ли?
  • https://t.me/clickhouse_ru
    @v2nek #10313 10:57 AM, 02 Apr 2017
    мы написали опрос через веб интерфейс, запроксировали его nginx, и кладем в кэш на нужное время
  • https://t.me/clickhouse_ru
    @rheinx #10314 10:58 AM, 02 Apr 2017
    О! Кстати о нем даже не думал. А в каком виде кладете в кеш? Что является ключем?
  • https://t.me/clickhouse_ru
    @v2nek #10315 10:59 AM, 02 Apr 2017
    всмысле в каком виде? веб респонс (джейсон) складывается в стандартный кэш нжинкса
  • https://t.me/clickhouse_ru
    @rheinx #10316 10:59 AM, 02 Apr 2017
    Кеш стоит прямо в разрыве между clickhouse и клиентом?
  • https://t.me/clickhouse_ru
    @v2nek #10317 10:59 AM, 02 Apr 2017
    просто запросы приводятся к унифицированному виду, чтобы мисс был реже
  • https://t.me/clickhouse_ru
    @rheinx #10318 10:59 AM, 02 Apr 2017
    А разделяете как-то на то что нужно кешировать, а что нет?
  • https://t.me/clickhouse_ru
    @v2nek #10319 11:00 AM, 02 Apr 2017
    нет, но без проблем делается установкой какого-то дополнительного флага
  • https://t.me/clickhouse_ru
    @zaglex #10320 02:00 PM, 02 Apr 2017
    Привет!
    В документации про парсинг CSV написано "Поддерживаются как двойные, так и одинарные кавычки". А нет ли, случайно, опции, отключающей поддержку одинарных кавычек? Т.е. чтобы одинарные кавычки не воспринимались как служебные символы.

    Или единственный способ поместить в CSV строку, начинающуюся с одинарной кавычки, так, чтоб ClickHouse её понял, - обернуть всю строку в двойные кавычки?
  • https://t.me/clickhouse_ru
    @the_real_jkee #10321 03:45 PM, 02 Apr 2017
    Экранирование же
  • https://t.me/clickhouse_ru
    @the_real_jkee #10322 03:46 PM, 02 Apr 2017
    "\""
  • https://t.me/clickhouse_ru
    @zaglex #10323 04:08 PM, 02 Apr 2017
    Слеш я пробовал, но он проходил в ClickHouse as is. А вот экранировать одинарную кавычку точно так же, как по стандарту надо экранировать двойную кавычку - повторением, додумался только сейчас, и это сработало.

    P.S. Возможно, стоит в явном виде написать в документации, что по отношению к одинарным кавычкам поведение CH отличается от RFC, т.к. фраза "Поддерживаются как двойные, так и одинарные кавычки" выглядит безобидно и позитивно) а на самом деле такая поддержка может для кого-то оказаться неожиданной.
    Т.е. по RFC строчка
    1,2,3,'stringStartingWithSingleQuote,5,6
    - валидна, а ClickHouse-у она не нравится, т.к. он, видя одинарную кавычку в начале строки, считает её enclosing-символом
  • @milovidov_an #10324 04:21 PM, 02 Apr 2017
    По хорошему, надо добавить настройки кастомизации CSV.
    Там правда довольно много их получается.
  • @f1yegor #10325 06:11 PM, 02 Apr 2017
    мы заопенсорсили https://github.com/crobox/clickhouse-scala-client
    GitHub - crobox/clickhouse-scala-client: Clickhouse Scala Client with Reactive Streams support

    Clickhouse Scala Client with Reactive Streams support - GitHub - crobox/clickhouse-scala-client: Clickhouse Scala Client with Reactive Streams support

  • https://t.me/clickhouse_ru
    @pavel_odintsov #10326 06:25 PM, 02 Apr 2017
    зачот :)
  • https://t.me/clickhouse_ru
    @pavel_odintsov #10327 06:25 PM, 02 Apr 2017
    плюсанул!
  • https://t.me/clickhouse_ru
    @ExileeD #10328 07:38 PM, 02 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    Точно верные
  • 03 April 2017 (150 messages)
  • https://t.me/clickhouse_ru
    @GreenRope #10330 03:48 AM, 03 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @aotd1 #10331 07:31 AM, 03 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10332 07:37 AM, 03 Apr 2017
    Доброе утро, скажите пожалуйста как посмотреть через запрос размер таблиц ?
  • https://t.me/clickhouse_ru
    @soyayaos #10333 07:40 AM, 03 Apr 2017
    Joined.
  • @iamigor #10334 07:45 AM, 03 Apr 2017
    SELECT * FROM system.parts WHERE active AND table = '...'
    там столбец есть с кол-вом байт
    его можно еще через formatReadableSize(x) прогнать
  • https://t.me/clickhouse_ru
    что-то пустоту выдает
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10336 07:51 AM, 03 Apr 2017
    там есть поле bytes
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10337 07:51 AM, 03 Apr 2017
    его прогнать ?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10338 07:52 AM, 03 Apr 2017
    а все я ошибся с названием в запросе
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10339 07:53 AM, 03 Apr 2017
    капец 1 млн 7 мб )
  • https://t.me/clickhouse_ru
    @evervoid #10340 07:59 AM, 03 Apr 2017
    Кликхаус достаточно сильно жмет данные, у нас 200 гигов почти полностью текстовых данных превращаются в 3, и чем больше данных, тем сильнее жмет)
  • https://t.me/clickhouse_ru
    @patrakovdg #10341 08:02 AM, 03 Apr 2017
    привет всем!
    в лог кликхауса сыпется :
    <Information> zen_stats.history_events_v3_2017_02_01 (StorageReplicatedMergeTree): DB::Exception: No active replica has attached part 20170201_20170201_125_125_0 or covering part yet

    но такой части нет в обоих репликах в каталогах:
    /history_events_v3_2017_02_01$ ls -1
    20170131_20170131_197_199_2
    20170201_20170201_126_16677_8
    20170201_20170201_-21_124_6
    detached

    и в зукипере тоже нет.

    Что это?
  • https://t.me/clickhouse_ru
    это очень круто)
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10343 08:22 AM, 03 Apr 2017
    [ClickHouseDB\DatabaseException]
    Cannot parse input: expected \t before: 12','2016-10-12 16:00:00',5,3,7,5
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10344 08:23 AM, 03 Apr 2017
    ['2016-10-12','2016-10-12 16:00:00',5,3,7,50,0,0,0,500000,0,0,'','','',0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,118,'0',1,4,1,0,0,'','',0,0,'']\n['2016-10-12','2016-10-12 16:00:00',5,3,7,50,0,0,0,500000,0,0,'','','',0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,118,'0',1,4,1,0,0,'','',0,0,''] ['2016-10-12','2016-10-12 16:00:00',7,3,8,204,16,4,0,2040000,1691,351,'','','',95116479,0,87869,0,205,10,1,1,0,0,0,0,3,0,0,181,'0',1,4,1,0,0,'','',0,0,''] ['2016-10-12','2016-10-12 16:00:00',11,3,6,106,11,1,0,1060000,1176,205,'','','',99999999,0,204999,0,205,205,1,1,0,0,0,0,3,0,0,181,'0',1,4,1,0,0,'','',0,0,''] ['2016-10-12','2016-10-12 16:00:00',5,3,7,22,2,0,0,220000,3113,0,'','','',0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,181,'0',1,4,1,0,0,'','',0,0,''] ['2016-10-12','2016-10-12 16:00:00',9,3,5,11,3,0,0,110000,5606,0,'','','',0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,181,'0',1,4,1,0,0,'','',0,0,''] ['2016-10-12','2016-10-12 16:00:00',14,3,9,5,4,1,0,50000,867,199,'','','',13827234,0,199991,0,199,199,1,1,0,0,0,0,3,0,0,2,'0',1,4,1,0,0,'','',0,0,''] ['2016-10-12','2016-10-12 16:00:00',7,3,8,18,18,0,0,180000,1493,0,'','','',0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,2,'0',1,4,1,0,0,'','',0,0,''] ['2016-10-12','2016-10-12 16:00:00',11,3,6,18,18,0,0,180000,1745,0,'','','',0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,2,'0',1,4,1,0,0,'','',0,0,''] ['2016-10-12','2016-10-12 16:00:00',13,3,10,2,2,0,0,20000,399,0,'','','',0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,2,'0',1,4,1,0,0,'','',0,0,''] ['2016-10-12','2016-10-12 16:00:00',9,3,5,2,2,0,0,20000,1954,0,'','','',0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,2,'0',1,4,1,0,0,'','',0,0,'']\n
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10345 08:24 AM, 03 Apr 2017
    формат файла такой. может кто сталкивался ?
  • @iamigor #10346 08:24 AM, 03 Apr 2017
    формат файла похож на массив из строк и чисел
  • https://t.me/clickhouse_ru
    а какой формат верный? я просто использую драйвер php от сми2 . получается их конвертор массива в tsv не верный?
  • @iamigor #10348 08:25 AM, 03 Apr 2017
    если expected \t, то, наверное, указываете FORMAT TabSeparated?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10349 08:28 AM, 03 Apr 2017
    по коду так и есть
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10350 08:28 AM, 03 Apr 2017
    return $this->insertBatchFiles($table_name,$file_names,$columns_array,'TabSeparated');
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10351 08:29 AM, 03 Apr 2017
    $sql = 'INSERT INTO ' . $table_name . ' ( ' . implode(',', $columns_array) . ' ) FORMAT '.$format;
  • @keepflooding #10352 08:34 AM, 03 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @ssemiokhin #10353 10:33 AM, 03 Apr 2017
    Возможна ли поддержка словарей без аттрибутов? Т.е. чтоб содержался только ключ
  • https://t.me/clickhouse_ru
    @patrakovdg #10354 10:33 AM, 03 Apr 2017
    на втором сервере эта ошибка в лог не попадает. Перезапуск кликхауса не помог :)
  • https://t.me/clickhouse_ru
    @patrakovdg #10355 10:33 AM, 03 Apr 2017
    привет всем!
    в лог кликхауса сыпется :
    <Information> zen_stats.history_events_v3_2017_02_01 (StorageReplicatedMergeTree): DB::Exception: No active replica has attached part 20170201_20170201_125_125_0 or covering part yet

    но такой части нет в обоих репликах в каталогах:
    /history_events_v3_2017_02_01$ ls -1
    20170131_20170131_197_199_2
    20170201_20170201_126_16677_8
    20170201_20170201_-21_124_6
    detached

    и в зукипере тоже нет.

    Что это?
  • https://t.me/clickhouse_ru
    @patrakovdg #10356 10:34 AM, 03 Apr 2017
    версия 1.1.54190
  • https://t.me/clickhouse_ru
    @zaglex #10357 10:51 AM, 03 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @lagunovvladimir #10358 11:18 AM, 03 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    500 тыс записей кинул в tsv (написал свой преобразователь из array в csv) и импорт пошел. но 500 тыс за 2.2 сек.. это норм?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10360 11:48 AM, 03 Apr 2017
    Imported 3384 records (0.273 seconds)
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10361 11:48 AM, 03 Apr 2017
    через tsv по http по сети
  • https://t.me/clickhouse_ru
    @andrnag #10362 11:52 AM, 03 Apr 2017
    Joined.
  • @iamigor ↶ Reply to #10359 #10363 11:55 AM, 03 Apr 2017
    норм это или нет - не могу сказать

    а про форматы файлов и прочее вроде подробно в статьях на хабре/документации описано
    https://github.com/smi2/phpClickHouse/blob/master/doc/
    smi2/phpClickHouse

    phpClickHouse - php ClickHouse wrapper

  • https://t.me/clickhouse_ru
    @Dimonyga #10364 11:59 AM, 03 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10365 12:00 PM, 03 Apr 2017
    ### Import is started ###
    Imported 3384 records (0.275 seconds)
    Imported 152096 records (11.539 seconds)
    Killed
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10366 12:01 PM, 03 Apr 2017
    без компрессии все еще хуже. но что такое killed вообще не пойму
  • https://t.me/clickhouse_ru
    @romanyellow #10367 12:01 PM, 03 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @romanyellow #10368 12:02 PM, 03 Apr 2017
    /stat@combot
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10370 12:15 PM, 03 Apr 2017
    /stat@combot
  • @PchelaIlya #10372 12:15 PM, 03 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @apodsoblyaev #10374 12:47 PM, 03 Apr 2017
    Подскажите пожалуйста, есть ли какая-то возможность перегонять данные из одной таблицы в другую, кроме INSERT INTO tbl1 SELECT * FROM tbl2 WHERE ...
  • https://t.me/clickhouse_ru
    @apodsoblyaev #10375 12:49 PM, 03 Apr 2017
    _очень_ медленно и иногда падает по памяти
  • @iamigor #10376 12:50 PM, 03 Apr 2017
    а зачем перегонять?
  • https://t.me/clickhouse_ru
    @apodsoblyaev #10377 12:50 PM, 03 Apr 2017
    Колонку сэмплирования поменяли
  • https://t.me/clickhouse_ru
    @apodsoblyaev #10378 12:52 PM, 03 Apr 2017
    И первичный ключ
  • @iamigor #10379 12:53 PM, 03 Apr 2017
    насчет падания по памяти - можно меньшими кусками выгружать. хоть посуточно там, типа WHERE date = '2017-01-01'
  • https://t.me/clickhouse_ru
    @apodsoblyaev #10380 12:55 PM, 03 Apr 2017
    Посуточно тоже падал, мы блок_сайз потюнили - оно работает, но долго :) Думал есть способ перегнать побыстрее.
  • https://t.me/clickhouse_ru
    @AndreevDm #10381 01:00 PM, 03 Apr 2017
    Быстрее нету
  • https://t.me/clickhouse_ru
    @quati #10382 01:03 PM, 03 Apr 2017
    Joined.
  • @alexeysibirtsev #10383 01:05 PM, 03 Apr 2017
    Joined.
  • @alexeysibirtsev #10384 01:05 PM, 03 Apr 2017
    /stat@combot
  • https://t.me/clickhouse_ru
    @lorio #10386 01:06 PM, 03 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10387 01:07 PM, 03 Apr 2017
    кто нибудь может встречал такую проблему - Killed при вставке бачей click house пишет
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #10387 #10388 01:08 PM, 03 Apr 2017
    память кончилась, OOM Killer пришел и устроил резню
  • https://t.me/clickhouse_ru
    память? 4 гига памяти не хватило чтобы вставить 1 млн записей в виде 2 бачей по 500 000 в tsv?
  • https://t.me/clickhouse_ru
    @244909108 #10390 01:13 PM, 03 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @Civiloid #10391 01:18 PM, 03 Apr 2017
    @maksim_melnichuk ну проверить просто - смотришь что в dmesg - если там Out of memory - то это оно
  • https://t.me/clickhouse_ru
    @Civiloid #10392 01:18 PM, 03 Apr 2017
    а о причинах я уже не знаю, я просто пользователь )
  • @iamigor #10393 01:18 PM, 03 Apr 2017
    или error_reporting(E_ALL) включить, или как там в пхп логгинг на максимум выкрутить
  • https://t.me/clickhouse_ru
    dmesg а где это искать?
  • https://t.me/clickhouse_ru
    @Civiloid #10395 01:20 PM, 03 Apr 2017
    в консольке физического сервреа или VPS
  • https://t.me/clickhouse_ru
    @Civiloid #10396 01:20 PM, 03 Apr 2017
    команда - пишешь, оно даст кусок логов ядра
  • https://t.me/clickhouse_ru
    @alexey_shnaydmiller #10397 01:22 PM, 03 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10399 01:29 PM, 03 Apr 2017
    Imported 152096 records (2.423 seconds)
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10400 01:29 PM, 03 Apr 2017
    а после этого Killed
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10401 01:29 PM, 03 Apr 2017
    когда следующую пачку берет
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10402 01:29 PM, 03 Apr 2017
    на сервере в данный момент 3.3 гб свободно
  • https://t.me/clickhouse_ru
    А запись митапа ведется кем-нибудь?
  • https://t.me/clickhouse_ru
    @bolser #10404 01:58 PM, 03 Apr 2017
    нет в этот раз записи, к сожалению, не будет
  • https://t.me/clickhouse_ru
    @bolser #10405 01:59 PM, 03 Apr 2017
    поэтому приходите на наши следующие митапы :)
  • https://t.me/clickhouse_ru
    @NataMakarova #10406 01:59 PM, 03 Apr 2017
    Но скоро будут выложены записи митапа в Питере, где были похожие доклады.
  • https://t.me/clickhouse_ru
    @244909108 #10407 02:00 PM, 03 Apr 2017
    Да мне просто убежать пришлось со второго доклада. Увы.
  • https://t.me/clickhouse_ru
    Здорово.
  • https://t.me/clickhouse_ru
    @andrey_sapegin #10409 02:16 PM, 03 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @rboyko #10410 02:16 PM, 03 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @marshalov #10411 02:16 PM, 03 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @ismailov_er #10412 02:16 PM, 03 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @Ak1nt #10413 02:17 PM, 03 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @dsvedmedenko #10414 02:17 PM, 03 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @tre_occhi #10415 02:17 PM, 03 Apr 2017
    Joined.
  • @DimitryCh #10416 02:17 PM, 03 Apr 2017
    Joined.
  • @152322538 #10417 02:17 PM, 03 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @indikeev #10418 02:17 PM, 03 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @The2R0k #10419 02:17 PM, 03 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @Dimonyga #10420 02:17 PM, 03 Apr 2017
    А если я узнал о чатике незадолго до начала доклада?
  • https://t.me/clickhouse_ru
    @akeinhell #10421 02:17 PM, 03 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @bwh1te #10422 02:17 PM, 03 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @krivchun #10423 02:18 PM, 03 Apr 2017
    Joined.
  • @kiathai #10424 02:18 PM, 03 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @bilpavel #10425 02:18 PM, 03 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @EgorBayandin #10426 02:18 PM, 03 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @vladpr #10427 02:19 PM, 03 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @bolser ↶ Reply to #10420 #10428 02:19 PM, 03 Apr 2017
    зачтем 5)
  • @363531904 #10429 02:20 PM, 03 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @plukanin #10430 02:20 PM, 03 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @arsen #10431 02:20 PM, 03 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @romanyellow #10432 02:21 PM, 03 Apr 2017
    /stat@combot
  • @alexeysibirtsev #10434 02:22 PM, 03 Apr 2017
    Митап вопрос: Может ли ClickHouse забрать данные из существующей БД или быть для неё слейвом? Например, есть mysql с данными и словарями в отдельных таблицах. Нужно плавно переехать на ClickHouse без остановки существующего сервиса
  • https://t.me/clickhouse_ru
    @bolser ↶ Reply to #10434 #10435 02:24 PM, 03 Apr 2017
    ок зададим
  • @crixal #10436 02:26 PM, 03 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @etkee ↶ Reply to #10432 #10437 02:27 PM, 03 Apr 2017
    ребят, комбот из разу в раз возвращает одну и ту же ссылку, можете просто поиском пользоваться и не уведомлять 500+ людей
  • https://t.me/clickhouse_ru
    @alexanderzaitsev #10438 02:27 PM, 03 Apr 2017
    ClichHouse может забрать словари, а данные переносить придется пока вам. Вариантов, как это сделать, много. От чего-нибудь очень простого, до, например, такого: https://wecode.wepay.com/posts/streaming-databases-in-realtime-with-mysql-debezium-kafka

    Я думаю, скоро появятся решения, которые садятся на binlog mysql, и читают оттуда данные в КХ. Возможно, на основе debezium. Но готового пока вроде нет.
    Streaming databases in realtime with MySQL, Debezium, and Kafka

    Change data capture has been around for a while, but some recent developments in technology have given it new life. Notably, using Kafka as a backbone to str...

  • @lexa_work #10439 02:29 PM, 03 Apr 2017
    в PostgreSQL для подобной стримовой логической репликации то же все готово уже
  • @lexa_work #10440 02:30 PM, 03 Apr 2017
    в 10-ке так вообще в ядро пойдет логическая репликация
  • https://t.me/clickhouse_ru
    @patrakovdg #10441 02:42 PM, 03 Apr 2017
    Клиент КХ (1.1.54196 на ubuntu 12.04.5) при подключении к удалённому серверу КХ выдаёт ошибку и завершает работу
    ClickHouse client version 1.1.54190.
    ...
    Connected to ClickHouse server version 1.1.54189.
    ...
    Poco::Exception: Exception: Cannot load time zone Europe/Moscow
    ...

    и на сервере и на клиенте временные зоны Europe/Moscow

    пробовал в команде указать руками —use_client_time_zone Europe/Moscow - не помогло

    первый раз такую ошибку вижу, как вылечить?
  • https://t.me/clickhouse_ru
    @p_hamper #10442 02:48 PM, 03 Apr 2017
    А вообще какая цель использования nested таблиц? Они чем-то лучше джоинов из нескольких таблиц по полю?
  • https://t.me/clickhouse_ru
    @orantius #10443 02:49 PM, 03 Apr 2017
    Nested - это уже сделанный джойн.
  • https://t.me/clickhouse_ru
    @soyayaos ↶ Reply to #10441 #10444 02:51 PM, 03 Apr 2017
    Видимо обновиться до v1.1.54198 https://github.com/yandex/ClickHouse/issues/495#issuecomment-290463001
    ClickHouse cannot properly detect local timezone · Issue #495 · yandex/ClickHouse

    [root@localhost dbms]# clickhouse-server --config-file=/etc/clickhouse-server/config.xml Include not found: clickhouse_remote_servers Include not found: clickhouse_compression /usr/share/zoneinfo/C...

  • https://t.me/clickhouse_ru
    @p_hamper #10445 02:51 PM, 03 Apr 2017
    В общем плюсов никаких? Кстати если надо поле в nested добавить это надо всю внешнюю таблицу пересоздать?
  • https://t.me/clickhouse_ru
    @RomanSmolyazhenko #10446 02:56 PM, 03 Apr 2017
    вопрос не заданный на митапе: какие уровни разграничения прав доступа есть? Могу я ограничить доступ/видимость колонки для пользователя? А таблицу? :). Ну и, конечно, поддерживается ли мандатное разграничение прав?
  • Напомните вечером - если проблема останется - помогу разобраться с моим драйвером, попробуйте режим verbose()

    Сейчас у нас в СМИ2 полный факап и паника ))))
  • https://t.me/clickhouse_ru
    Обновился - не помогло
  • https://t.me/clickhouse_ru
    игорь у вас tsv не работает
  • https://t.me/clickhouse_ru
    преобразователь
  • @garikanet #10451 02:59 PM, 03 Apr 2017
    А там нет преобразователя
    В чем файл записан то инсертится потоком
  • @ztlpn ↶ Reply to #10441 #10453 03:08 PM, 03 Apr 2017
    А какой версии пакет tzdata на машинах?
  • https://t.me/clickhouse_ru
    @patrakovdg #10454 03:08 PM, 03 Apr 2017
    tzdata 2014i-0ubuntu0.12.04-yandex1 - это на клиенте
  • https://t.me/clickhouse_ru
    @patrakovdg #10455 03:09 PM, 03 Apr 2017
    на серверах tzdata 2016j-2ubuntu0.14.04.yandex2
  • @ztlpn #10456 03:10 PM, 03 Apr 2017
    Надо обновить tzdata на клиенте и должно будет заработать.
  • @ztlpn ↶ Reply to #10444 #10457 03:12 PM, 03 Apr 2017
    Это не связано. Дело в том, что недавно перешли на библиотеку cctz для поддержки таймзон, а ей по какой-то причине не нравится файл zoneinfo для Москвы в старых пакетах tzdata.
  • @ztlpn #10458 03:12 PM, 03 Apr 2017
    Детально не разбирался, но обновиться помогает. Ну и tzdata в любом случае не помешает держать обновлённым ;)
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #10445 #10459 03:26 PM, 03 Apr 2017
    если у вас есть связь 1-n, и объекты со стороны "много" а) известны на момент записи б) являются или value object или их lifetime внутри объекта со стороны 1-, то их можно записывать в nested стуктуры.
    это дает воможность 1) строить отчеты по этим объектам from table array join nested as n group by n.attr 2) фильтровать по nested-атрибутам from table where arrayExists((x,..)-> , nested.attr,..) , относительно дешево.
    это связано с тем, что Nested с точки зрения кликхауса - это синтаксический сахар поверх столбцов-массивов с одинаковым префиксом. (а также есть некоторые ожидания про одинаковую длину этих массивов, но они проверяются только в рантайме при чтении) т.к. "джойн" в плане поиска соответствия объекта слева и объектов справа уже выполнен при записи, то при чтении запросы перечисленные выше можно выполнять потоково.
  • https://t.me/clickhouse_ru
    @orantius #10460 03:37 PM, 03 Apr 2017
    а для добавления поля должен работать обычный add column. но надо подумать что делать с существующими данными и длиной массивов них.
  • https://t.me/clickhouse_ru
    у вас в доке описано что есть преобразователи из массива в tsv csv
  • https://t.me/clickhouse_ru
    csv не проверял. но tsv формирует не валидный для clickhouse файл. разделя значения запятой. а ожидается табами
  • @garikanet #10463 04:09 PM, 03 Apr 2017
    Вы пишете файл моим драйвером ?
  • @garikanet #10464 04:11 PM, 03 Apr 2017
    Вот примеры https://github.com/smi2/phpClickHouse/blob/master/example/*

    Cм. exam12_array.php + exam15_direct_write_result.php
  • https://t.me/clickhouse_ru
    да вашим драйвером. в доке описана функция преобразования массива в tsv вот она не правильно преобразовывает ну либо я не так что-то делаю. посмотри эту функция
  • https://t.me/clickhouse_ru
    FormatLine::TSV
  • https://t.me/clickhouse_ru
    @andrnag #10467 04:56 PM, 03 Apr 2017
    Скажите пожалуйста, можно ли где-то скачать презентации с Новосибирского митапа?
  • https://t.me/clickhouse_ru
    @rheinx #10468 05:00 PM, 03 Apr 2017
    +1 тоже хотелось бы! Особенно гифки^^
  • https://t.me/clickhouse_ru
    @bolser ↶ Reply to #10467 #10469 05:13 PM, 03 Apr 2017
    Мы подумаем над этим :) наверное уже позже отпишемся
  • https://t.me/clickhouse_ru
    @andrnag ↶ Reply to #10469 #10470 05:14 PM, 03 Apr 2017
    ок. заранее спасибо
  • https://t.me/clickhouse_ru
    @tre_occhi #10471 05:51 PM, 03 Apr 2017
    Да, было бы здорово если бы можно было скачать презентации докладов с митапа
  • @f1yegor #10473 06:09 PM, 03 Apr 2017
    404
  • @shinebell #10474 06:09 PM, 03 Apr 2017
    да
  • @milovidov_an #10475 06:10 PM, 03 Apr 2017
    На обе ссылки? Значит выложилось только на один фронтенд :(
  • @milovidov_an #10476 06:11 PM, 03 Apr 2017
    Когда выложится - будет доступно по тем же ссылкам :)
  • https://t.me/clickhouse_ru
    @SLASH_CyberPunk #10477 06:18 PM, 03 Apr 2017
    Вторая работает, спасибо
  • https://t.me/clickhouse_ru
    @andrnag #10478 06:45 PM, 03 Apr 2017
    Огромное спасибо, Алексей!
  • @f1yegor #10480 06:54 PM, 03 Apr 2017
    Скоро выложим реализацию reactive streams
  • smi2/phpClickHouse

    php ClickHouse wrapper. Contribute to smi2/phpClickHouse development by creating an account on GitHub.

  • @vladislavadv #10482 08:33 PM, 03 Apr 2017
    Всем привет.
    Так получилось, что в таблицу не заложили колонку datetime, есть только date(date) и hour(int).
    Подскажите, плиз, как можно из этих двух колонок получить datetime?
    Вариант в лоб:
    toDateTime(concat(toString(eventDate),' ',if(eventHour<10,concat('0',toString(eventHour)),toString(eventHour)),':00:00'))
    Работает очень медлянно
  • https://t.me/clickhouse_ru
    @orantius #10483 08:37 PM, 03 Apr 2017
    а так?
    select toDateTime(d)+h*3600 from (select toDate('2011-01-01') as d, 11 as h)
  • @vladislavadv #10484 08:43 PM, 03 Apr 2017
    Гениально, большое спасибо!
    0.181сек против 1.876сек на моем:))
  • https://t.me/clickhouse_ru
    было бы хорошо указать пример в readme на главной странице драйвера принимающего массива. я послал массив поле - значение. а надо было только значение) но спасибо за пример завтра перепишу! )
  • 04 April 2017 (91 messages)
  • https://t.me/clickhouse_ru
    @302246627 #10486 04:46 AM, 04 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @yatheo #10487 04:57 AM, 04 Apr 2017
    Joined.
  • @ermakovolegs #10488 05:22 AM, 04 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @umaxfun #10489 08:03 AM, 04 Apr 2017
    всем привет! а нормально, что select ename, count(*) from events group by ename трогает все строки? нельзя ли индекс какой-то примастырить, что-то еще?
  • @vludv ↶ Reply to #10489 #10490 08:38 AM, 04 Apr 2017
    А как еще его в общем случае можно вычислить?
  • https://t.me/clickhouse_ru
    @umaxfun #10491 08:39 AM, 04 Apr 2017
    Хороший вопрос :)
  • @garikanet #10492 08:52 AM, 04 Apr 2017
    Подскажите, а какими инструментами пользуются сейчас аналитики для работы с CH, помимо :
    - Redash
    - Apache zeppelin
    - CHGui от сми2
    - Superset airbnb
    - Jetbrains IDE
    - Jupyter / Notebook
    - Grafana-CH
    - Console client
    ?
  • https://t.me/clickhouse_ru
    @umaxfun #10493 08:57 AM, 04 Apr 2017
    Мы пробуем прикрутить Spago BI, пока в процессе
  • https://t.me/clickhouse_ru
    @ibusova #10494 11:46 AM, 04 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @zaglex #10495 11:51 AM, 04 Apr 2017
    Привет!
    Подскажите, пожалуйста, можно ли вернуть реплику из readonly-state без рестарта (проблема похожа на эту: https://groups.google.com/forum/#!topic/clickhouse/puxdy9BAWHE)?
  • @milovidov_an #10496 11:55 AM, 04 Apr 2017
    Проблема, описанная в этой теме Google Groups была актуальна очень давно.

    Можно выполнить DETACH TABLE, затем ATTACH TABLE.

    Чтобы понять, какой должен быть запрос ATTACH TABLE, выполните сначала
    SHOW CREATE TABLE table FORMAT TabSeparatedRaw
    В полученном запросе замените CREATE на ATTACH и это будет нужный запрос.
  • https://t.me/clickhouse_ru
    @zaglex #10497 11:57 AM, 04 Apr 2017
    У нас, вроде, относительно свежая версия - 1.1.54164. В ней уже такой проблемы быть не должно?
  • https://t.me/clickhouse_ru
    @everestmx #10498 11:58 AM, 04 Apr 2017
    Joined.
  • @milovidov_an #10499 12:01 PM, 04 Apr 2017
    Да, такой проблемы быть не должно.
    Реплика должна сама выходить из readonly состояния.

    На всякий случай нужна информация - как долго реплика находится в состоянии readonly, есть ли выполняющиеся сейчас длинные мержи или ALTER-ы, или скачивания кусков другими репликами (можно проверить по использованию сети); что в логе клиента к ZooKeeper-у в /var/log/clickhouse-server/stderr

    Также не помешает вывод команды
    sudo gdb -batch -ex 't apply all bt' -p $(pidof clickhouse-server)
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #10039 #10500 12:15 PM, 04 Apr 2017
    должно работать, если будут проблемы (я мог кое что и поломать) создавайте issue или мне пишите
  • https://t.me/clickhouse_ru
    @umaxfun ↶ Reply to #10493 #10501 12:46 PM, 04 Apr 2017
    Получилось прикрутить с последним драйвером по этой инструкции: http://forge.fiware.org/plugins/mediawiki/wiki/fiware/index.php/Data_Visualization_-_SpagoBI_-_Installation_and_Administration_Guide
  • @milovidov_an #10502 12:51 PM, 04 Apr 2017
    Интересно будет узнать впечатления - насколько хорошо работает, удобно ли пользоваться.
  • https://t.me/clickhouse_ru
    @umaxfun #10503 01:01 PM, 04 Apr 2017
    Первые впечатления — божественно, дэшборды драг энд дропом, то что нужно :)
  • https://t.me/clickhouse_ru
    @umaxfun #10504 01:01 PM, 04 Apr 2017
    Но это только первые, дальше может пост напишу куда-то с практикой
  • https://t.me/clickhouse_ru
    @zaglex ↶ Reply to #10499 #10505 01:12 PM, 04 Apr 2017
    В логе clickhouse непрерывно появляется такое сообщение:
    <Error> void DB::ReplicatedMergeTreeAlterThread::run(): Code: 999, e.displayText() = zkutil::KeeperException: invalid zhandle state, path: /clickhouse/replication/clusterName/shardName/dbName/tableName/columns, e.what() = zkutil::KeeperException, Stack trace:

    Видимо, в нём всё дело? stack trace могу показать, если нужно.

    По остальным вопросам:
    1. По грубой оценке реплика в таком состоянии около двух часов
    2. Альтеров быть не должно (хотя в тексте ошибки виден класс со словом Alter в названии)
    3. Мерджи могут быть, т.к. идёт вливка данных. Но я пробовал остановить вливку и дождаться, пока в system.merges и replication_queue станет пусто - не помогало.
    4. В stderr последние сообщения были 2 часа назад (connection timed out, stale file handle)
    5. Команду сам выполнить не могу. Если всё-таки будет нужна - попрошу админов
  • @milovidov_an #10506 01:26 PM, 04 Apr 2017
    Сначала стоит обновиться до последней версии. В ней исправлена ошибка - невозможно переустановить сессию с ZK при очень большом количестве watch-ей (возникает, если на сервере много таблиц).
  • https://t.me/clickhouse_ru
    @zaglex #10507 01:30 PM, 04 Apr 2017
    Ок, понял. Обновимся
  • @DigDiver #10508 01:44 PM, 04 Apr 2017
    День добрый, а можно ли для полей в Nested указать DEFAULT значения? Пробовал так:

    CREATE TABLE table_test(
    date Date,
    isp Nested
    (
    name String,
    ispHash Int64 Default cityHash64(isp.name)
    )

    ENGINE = MergeTree(date, (date), 8192)

    Выдает syntax error
  • https://t.me/clickhouse_ru
    @zaglex ↶ Reply to #10506 #10509 01:50 PM, 04 Apr 2017
    До последней stable?
  • @milovidov_an #10510 01:51 PM, 04 Apr 2017
    Да.
  • Есть неудобный способ:

    CREATE TABLE table_test
    (
    date Date,
    isp.name Array(String),
    isp.ispHash Array(Int64) DEFAULT arrayMap(x -> cityHash64(x), isp.name)
    ) ENGINE = MergeTree(date, date, 8192)

    (несколько столбцов-массивов с общим префиксом до точки в имени, полностью эквивалентны Nested структуре).
  • @milovidov_an #10512 01:53 PM, 04 Apr 2017
    Вокруг составных имён поставьте обратные кавычки (их съел Telegram).
  • @DigDiver ↶ Reply to #10511 #10513 01:58 PM, 04 Apr 2017
    спасибо, попробую. В принципе Nested в моем случае не особо нужны, просто хотел поиграться с уменьшением времени запроса:

    SELECT ispHash, any(isp), count() as total
    FROM table_test
    GROUP BY ispHash
    ORDER BY total desc limit 20
    Если убрать any(isp), то запрос выполняется в два раза быстрее, вот я и подумал, может Nested поможет
  • @DigDiver #10514 02:01 PM, 04 Apr 2017
    И еще. В Google группе вычитал:
    "Существует возможность предагрегировать данные внутри таблицы с помощью AggregatingMergeTree.
    Эта возможность не часто используется на практике и я её могу порекомендовать только для особых случаев."

    Так использовать или не использовать AggregatingMergeTree вот в чем вопрос!
  • https://t.me/clickhouse_ru
    @alex12385 #10515 02:09 PM, 04 Apr 2017
    Joined.
  • @rasmus93 #10516 02:31 PM, 04 Apr 2017
    Joined.
  • @milovidov_an #10517 03:11 PM, 04 Apr 2017
    Уже довольно много пользователей используют AggregatingMergeTree. Существенных проблем нет.
  • @DigDiver ↶ Reply to #10513 #10518 04:04 PM, 04 Apr 2017
    Вариант с Nested выдает такие же результаты по скорости, как и без. Так что оснановлюсь на первоначальном варианте с any(x) и добавлю парочку виюшек с Aggregating и SummingMergeTree
  • https://t.me/clickhouse_ru
    @mish_gun1 #10519 07:00 PM, 04 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @rheinx #10520 07:17 PM, 04 Apr 2017
    А есть ли возможность сделать rebuild для materialized view?
  • @milovidov_an #10521 07:26 PM, 04 Apr 2017
    Только удалить и создать заново с опцией populate.
    (Замечание: если VIEW с GROUP BY, то при создании может не хватить оперативки - тогда придётся указывать настройки для внешней агрегации.)
  • https://t.me/clickhouse_ru
    @rheinx #10522 07:29 PM, 04 Apr 2017
    Поавильно ли я понял, если у меня есть agregation materialized view, следящее за таблицей, то я могу его пересоздать и пересчитать все данные?
  • @milovidov_an #10523 07:30 PM, 04 Apr 2017
    Да. Но может быть тяжело, если данных много.
  • https://t.me/clickhouse_ru
    @rheinx #10524 07:34 PM, 04 Apr 2017
    Ок, понял. Спасибо!
  • @garikanet #10525 08:31 PM, 04 Apr 2017
    А кто работал с ReDash и Zeppelin в связке с CH, можете поделится опытом - как оно работает ?
    Буду признателен)
  • @f1yegor #10526 08:34 PM, 04 Apr 2017
    я работал Zeppelin + CH
  • https://t.me/clickhouse_ru
    @madm1ke #10527 08:37 PM, 04 Apr 2017
    Привет.
  • https://t.me/clickhouse_ru
    @madm1ke #10528 08:39 PM, 04 Apr 2017
    Вопрос как раз про AggregatingMergeTree: есть ли способ сделать что-то типа вот такого: sum(if(key1 = 2, sumMerge(value1), 0)) ? Я получаю ошибку
    DB::Exception: Aggregate function sumMerge(value1) is found inside another aggregate function in query.

    Есть ли способ это обойти, кроме группировки по key1 и оборачиванию в дополнительный view? Ну и, конечно, без изменения таблицы с прегенерацией этого if'а.
  • @ptchol #10529 08:39 PM, 04 Apr 2017
    у свежего редаша появилась проблема рендеринга больших таблиц независимо от датасорса, если вы попытаетесь сделать запрос который вовзращает скажем 20к строк, то фетч результата повесит браузер вам.
  • А удобно писать запросы в нем по сравнению с CHgui/Tabix (если работали с ним конечно) ?

    Большой датасет и мой tabix кладет, т.к рендер более 10К записей в браузере это оверкилл для JavaScript(dom)
  • @f1yegor #10531 08:43 PM, 04 Apr 2017
    ну там же обычно всегда есть лимит выборки. по дефаулту часто 1000 строк
  • @ptchol ↶ Reply to #10530 #10532 08:47 PM, 04 Apr 2017
    к сожалению с ними не работал, но визуально смотря на CHgui кажется что редаш менее удобен, и может оказаться привлекательным только в случае консолидации данных из разных дата сорсо
  • @f1yegor #10533 08:53 PM, 04 Apr 2017
    народ, попрошу тапками меня не пинать. кто может помочь собрать CH на fedora25 ? для devel целей
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #10528 #10534 09:45 PM, 04 Apr 2017
    sumMergeIf(value1,key1=2) ?
  • https://t.me/clickhouse_ru
    @madm1ke ↶ Reply to #10534 #10535 09:48 PM, 04 Apr 2017
    Хм. Реально работает, и, кажется, даже правильно. Круто, спасибо!
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10536 10:03 PM, 04 Apr 2017
    Ребята провел синтетический тест. вышло 30 тыс всавок в сек. внутри сети по http. у кого-то результаты выше?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10537 10:03 PM, 04 Apr 2017
    или может кто скажет как добиться больших результатов
  • https://t.me/clickhouse_ru
    @p_hamper #10538 10:04 PM, 04 Apr 2017
    Пачками вставлял?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10539 10:05 PM, 04 Apr 2017
    драйвер я как понял формирует INSERT VALUES(), (), () .. запрос и шлет такую строку на кх
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10540 10:06 PM, 04 Apr 2017
    да пачка 30 тыс
  • Если через мой драйвер

    $db->enableHttpCompression(true);
    $db->insertBatchTSVFiles(...)

    Это отправляет файловый stream через curl сразу в CH, с сжатием на лету

    Если так, то скорость маленькая, может сеть/IO, сравните с консольным curl
    Возможно данные "не удобные" для CH
  • https://t.me/clickhouse_ru
    через метод insert отправлял. передаю массив не ассоциатвный. только значения. в другом параметре insert массив полей. у вас этот метод тоже столько вставок в секунду дает ?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10543 10:26 PM, 04 Apr 2017
    все в рамках одной сети одного ДЦ
  • @garikanet #10544 10:37 PM, 04 Apr 2017
    insert медленный, пачками через InsertBatch будет перфоманс
  • https://t.me/clickhouse_ru
    @proller ↶ Reply to #10533 #10545 10:38 PM, 04 Apr 2017
    А что за проблема ?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10547 10:39 PM, 04 Apr 2017
    это через insert. правда на сервере пало памяти смог только 1500 кинуть на вставку. не хватает памяти
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10549 10:39 PM, 04 Apr 2017
    а вот tsv . видимо он не очень быстрый на малом количество записей
  • @garikanet #10550 10:41 PM, 04 Apr 2017
    Память жрет при insert т.к читает и хранит в ней, insertBatch не использует память т.к делает stream
    т.е грубо из файла поток передаётся сразу на http уровень.
  • https://t.me/clickhouse_ru
    правильно я выдвинул утверждение на счет tsv ?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10552 10:44 PM, 04 Apr 2017
    Imported items 3000 | total: 3000 | time: 0.071 seconds
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10553 10:44 PM, 04 Apr 2017
    это tsv
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10554 10:44 PM, 04 Apr 2017
    что-то совсем слабо
  • @garikanet #10555 10:46 PM, 04 Apr 2017
    Батч большой должен быть 50К, что 5 строк вставлять что 5000 - затраты на сеть (http уровень)
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10556 10:48 PM, 04 Apr 2017
    ну у вас такой же результат на вставку ?
  • @garikanet #10557 10:51 PM, 04 Apr 2017
    Не знаю))) Уже как полгода не мерил и не смотрел )
    Мы в среднем получаем 20К/RPS -> php на ура пушит это

    наш c++/java ETL еще больше пропихивают....

    Совет пробовать: curl из консоли...
  • https://t.me/clickhouse_ru
    20к в день в секунду ?
  • @garikanet #10559 10:53 PM, 04 Apr 2017
    rps - req.per.sec
  • https://t.me/clickhouse_ru
    не понял. можно по русски?
  • @garikanet #10561 10:59 PM, 04 Apr 2017
    ну....
    мне даже как-то не ловко говорить в этом чате, что у нас ВСЕГО нагрузка 20 000 запросов в секунду и мы их отправляем в CH.
    чувствую себя "малышариком")
  • https://t.me/clickhouse_ru
    20 000 норм. я видел ваш сайт не думаю что там может быть больше запросов. но 20 000 за какое время вставляются ?
  • @garikanet #10563 11:08 PM, 04 Apr 2017
    Хм... мы не сайт, мы новостная сеть ( урощенно рекламная сеть ) нагрузка=сумме всех основных сми РФ...

    Померьте время через консоль через нативный curl, как написано в документации к CH или еще лучше clickhouse-client, получите референс ...
    предлагаю не отвлекать 543 мембера, на пхп)
  • https://t.me/clickhouse_ru
    @Civiloid #10564 11:20 PM, 04 Apr 2017
    @maksim_melnichuk я в бенчмарках, но правда под метрики (вставка строки, трех чисел и даты с индексом по строке, дате и одному из чисел), добивался батчами 20 инсертов по 120000 строк в каждом в секунду. То есть 2.4 млн строк в секунду. Но это код на го и хттп с rowbinary был.
  • https://t.me/clickhouse_ru
    не пойму как так.. 40+ столбцов два индекса. но результаты совсем плохи. один сервер ?
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #10565 #10566 11:23 PM, 04 Apr 2017
    У меня был 1 сервер, да, но относительно неплохой. 2xE5-2620v2, 128gb ram. Половина цпу правда кушалась генератором нагрузки
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #10565 #10567 11:24 PM, 04 Apr 2017
    Кликхаус любит большие батчи. И возможно пхп драйвер так себе на вставку
  • https://t.me/clickhouse_ru
    @Civiloid #10568 11:24 PM, 04 Apr 2017
    Смотри что происходит на сервере по ресурсам. Потребление цпу, сеть и т.п.
  • https://t.me/clickhouse_ru
    я поставил на не очень мощный по сравнению с вашим. всего 4 гига оперативки. но по htop не вижу нагрузки совсем. может играет еще роль отправляющий сервер он вообще 512 mb ram
  • https://t.me/clickhouse_ru
    @Civiloid #10570 11:24 PM, 04 Apr 2017
    Пхп еще однопоточный
  • https://t.me/clickhouse_ru
    @Civiloid #10571 11:25 PM, 04 Apr 2017
    То есть посмотри не проблема ли в генераторе нагрузки
  • https://t.me/clickhouse_ru
    @Civiloid #10572 11:26 PM, 04 Apr 2017
    Короче собирайте статистику по потреблению ресурсов и на генераторе
  • https://t.me/clickhouse_ru
    @Civiloid #10573 11:27 PM, 04 Apr 2017
    Поэтому тут и советовали взять консольный клиент и готовые tsv файлы. Еще сеть проверь, кстати. Перфом банальным
  • https://t.me/clickhouse_ru
    ну консольный клиент не вариант. т.к. мы будем слать запросы на отдельный сервер по http а не внутри сервера кх. как сеть можно проверить ?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10575 11:33 PM, 04 Apr 2017
    так прикольно)) просто привел данные к типу. time() поменял на date и увеличилась скорость))
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10576 11:33 PM, 04 Apr 2017
    Imported items 165000 | time: 1.013 seconds
  • 05 April 2017 (57 messages)
  • https://t.me/clickhouse_ru
    @vladenisov #10577 07:18 AM, 05 Apr 2017
    Нас устраивает redash. Привлекает в первую очередь возможностью работать в python и pandas напрямую, используя несколько источников данных. Я достойных аналогов (даже платных) не нашел.
  • https://t.me/clickhouse_ru
    @vladenisov #10578 07:18 AM, 05 Apr 2017
    А кто работал с ReDash и Zeppelin в связке с CH, можете поделится опытом - как оно работает ?
    Буду признателен)
  • https://t.me/clickhouse_ru
    @vladenisov #10579 07:22 AM, 05 Apr 2017
    И на момент нашего переезда на кликхаус аналогов вообще не было, а коннектор для редэша я написал за полдня.
  • https://t.me/clickhouse_ru
    @SLASH_CyberPunk #10580 07:55 AM, 05 Apr 2017
    А redash умеет в jdbc?
  • @iamigor #10581 07:56 AM, 05 Apr 2017
    What's Redash? · Redash Help Center

    Learn more about Redash - why we built it, main features, supported data sources, privacy and security.

  • https://t.me/clickhouse_ru
    @SLASH_CyberPunk #10582 07:57 AM, 05 Apr 2017
    О спасибо
  • https://t.me/clickhouse_ru
    @SLASH_CyberPunk #10583 07:57 AM, 05 Apr 2017
    Сейчас как раз выбираю, что лучше
  • https://t.me/clickhouse_ru
    @vladenisov #10584 08:04 AM, 05 Apr 2017
    вроде бы у них облачная и селфхостед версии в плане источников данных не отличаются, наверно доку не обновляли давно. вот здесь есть весь список источников: https://github.com/getredash/redash/tree/master/redash/query_runner
  • https://t.me/clickhouse_ru
    @andreyppp #10585 08:22 AM, 05 Apr 2017
    Всем привет!
    Пытаюсь сделать MATERIALIZED VIEW типа AggregatingMergeTree, в SELECT'e при создание делаю countIfState(event='request') as request_count
    потом делаю SELECT sumMerge(request_count) FROM report и получаю
    DB::Exception: Illegal type AggregateFunction(countIf, UInt8) of argument for aggregate function sumMerge.

    Получается нельзя использовать countIfState и sumMerge ?
  • @Nvarchar495 #10586 08:24 AM, 05 Apr 2017
    С дашбордами разобрались, а с ETL ? ) Есть идеи как из баз тянуть данные в CH?
  • https://t.me/clickhouse_ru
    не с КХ, а с другими базами, могу сказать, если есть возможность, лучше писать свое, ибо теущие инструменты вечно на грабли наступают
  • https://t.me/clickhouse_ru
    @madm1ke ↶ Reply to #10585 #10588 08:42 AM, 05 Apr 2017
    countStateIf. У меня работает запрос с sumStateIf.
  • https://t.me/clickhouse_ru
    @kirilly4 #10589 08:45 AM, 05 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @kirilly4 #10590 09:58 AM, 05 Apr 2017
    Привет! Подскажите пожалуйста, могу ли я изменить значение, возвращаемое аггрегатной функцией (например, countMerge()) при селекте из materialized view без вставки данных в исходную таблицу?

    Использую AggregatingMergeTree

    Судя по доке, "В таблицу, содержащую столбцы типа AggregateFunction невозможно вставить строчку обычным запросом INSERT, так как невозможно явно указать значение типа AggregateFunction. Вместо этого, для вставки данных, следует использовать INSERT SELECT с агрегатными функциями -State."

    Пробовал что-то нашаманить с INSERT SELECT, получил There is no default value for AggregateFunction data type
  • https://t.me/clickhouse_ru
    @rheinx #10591 10:05 AM, 05 Apr 2017
    А вьюха эта смотрит на таблицу?
  • https://t.me/clickhouse_ru
    @n_bar #10592 10:33 AM, 05 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @zloool #10593 10:53 AM, 05 Apr 2017
    Добрый день!
    Есть пара платиновых вопросов, а именно:
    1. Нужна таблица, в которой будет храниться статичный список емейлов + имен, какой движок использовать, mergetree?
    2. В эту же таблицу нужно будет из текстового файла перегнать миллион-другой записей, как правильнее использовать инсерт? Пачками по сколькото штук или раз в секунду?
  • @iamigor #10594 10:54 AM, 05 Apr 2017
    1. TinyLog наверн
    > Типичный способ использования этой таблицы - это write-once: сначала один раз только пишем данные, а потом сколько угодно читаем.
  • https://t.me/clickhouse_ru
    @kirilly4 ↶ Reply to #10591 #10595 10:57 AM, 05 Apr 2017
    Да
  • @ztlpn ↶ Reply to #10593 #10596 10:58 AM, 05 Apr 2017
    А какой будет паттерн использования этой таблицы? Возможно её вообще имеет смысл как словарь подключить.
  • https://t.me/clickhouse_ru
    @zloool ↶ Reply to #10596 #10597 10:59 AM, 05 Apr 2017
    Справочник, даешь емейл — получаешь связанную с ним информацию
  • @iamigor #10598 10:59 AM, 05 Apr 2017
    тогда может правда внешним словарем лучше
  • @ztlpn #10599 11:06 AM, 05 Apr 2017
    Ну да, кладёте файлик, например в формате TabSeparated, конфигурируете внешний словарь с layout complex_key_hashed, ClickHouse на старте или при первом обращении загрузит всю таблицу в оперативку (для пары миллионов записей должно быть ок). Связанную информацию получаете с помощью функций dictGet*. Всё быстро и хорошо работает ;)
  • https://t.me/clickhouse_ru
    @zloool #10600 11:11 AM, 05 Apr 2017
    Чутка ошибся с количеством данных, речь идет о 20+гб данныз, не влезут в оперативку
    т.к. таблица для внутреннего пользования и использовать ее будут редко, нет смысла под нее покупать железо, в оперативку которого это все влезет
  • https://t.me/clickhouse_ru
    @Mike_Er #10601 11:15 AM, 05 Apr 2017
    Всем добрый день, подскажите плиз, куда посмотреть. При вставке данных в replicatedmergetree в логах реплик только одного шарда появляются вот такие вот записи "<Warning> store.store_log_local (StorageReplicatedMergeTree, CleanupThread): Couldn't remove 20170404_20170404_635_635_0 from ZooKeeper: no node" - при этом количество данных в репликах правильное и вообще количество данных правильно и нужное. в логах реплик второго шарда - тишина
  • https://t.me/clickhouse_ru
    @Mike_Er #10602 11:16 AM, 05 Apr 2017
    конфигурация 2х2 (2 шарда по 2 реплики)
  • https://t.me/clickhouse_ru
    @drobus #10603 11:35 AM, 05 Apr 2017
    Joined.
  • @ztlpn ↶ Reply to #10600 #10604 11:41 AM, 05 Apr 2017
    Тогда можно попробовать словарь с лейаутом complex_key_cache (часто используемые записи будут кэшироваться с вытеснением), но данные придётся загрузить в таблицу (MergeTree, так как она с индексом, или вообще в какую-нибудь MongoDB, ведь ClickHouse не так хорош для Key-Value нагрузки).
  • https://t.me/clickhouse_ru
    @NicolasChabanovsky #10605 11:46 AM, 05 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @WladySpb #10606 12:21 PM, 05 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    а про это кто-нибудь расскажет?:)
  • https://t.me/clickhouse_ru
    @ssemiokhin #10608 12:43 PM, 05 Apr 2017
    +1 , тоже очень волнует этот вопрос
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10609 12:45 PM, 05 Apr 2017
    скажите плиз как сгруппировать по дню данные?
  • @vludv ↶ Reply to #10607 #10610 12:46 PM, 05 Apr 2017
    Пока есть только readonly и не readonly пользователи.
  • @vludv ↶ Reply to #10609 #10611 12:47 PM, 05 Apr 2017
    GROUP BY event_date
    ?
  • https://t.me/clickhouse_ru
    они на весь экземпляр работают или огранмчены базой?
  • https://t.me/clickhouse_ru
    @RomanSmolyazhenko #10613 12:48 PM, 05 Apr 2017
    *ограничены
  • https://t.me/clickhouse_ru
    @ssheremeta #10614 12:48 PM, 05 Apr 2017
    Добрый день! Подскажите, кто-то собирал ODBC-драйвер под RHEL/Centos 6 ?
  • https://t.me/clickhouse_ru
    точно
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10616 12:48 PM, 05 Apr 2017
    а что значит DB::Exception: Limit for result rows exceeded: read 2227 rows, maximum: 500
  • https://t.me/clickhouse_ru
    @kudrachova #10617 12:48 PM, 05 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10618 12:48 PM, 05 Apr 2017
    где это ограничение стоит ?
  • @iamigor #10619 12:50 PM, 05 Apr 2017
    в вашем драйвере, судя по всему
  • @iamigor #10620 12:51 PM, 05 Apr 2017
    в querystring http-запроса в кликхаус max_result_rows=500 не передается?
  • @iamigor #10621 12:51 PM, 05 Apr 2017
    если нет, то в конфиге сервера
  • @vludv ↶ Reply to #10612 #10622 12:51 PM, 05 Apr 2017
    У пользователя можно задать <allow_databases>...</allow_databases>
  • https://t.me/clickhouse_ru
    @RomanSmolyazhenko #10623 12:52 PM, 05 Apr 2017
    понял, спасибо большое
  • https://t.me/clickhouse_ru
    возможно. напрямую через клиент все норм) спасибо
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10625 01:09 PM, 05 Apr 2017
    а не подскажите как размер таблицы узнать ?
  • @iamigor #10626 01:10 PM, 05 Apr 2017
    Доброе утро, скажите пожалуйста как посмотреть через запрос размер таблиц ?
  • @iamigor #10627 01:10 PM, 05 Apr 2017
    SELECT * FROM system.parts WHERE active AND table = '...'
    там столбец есть с кол-вом байт
    его можно еще через formatReadableSize(x) прогнать
  • @iamigor #10629 01:11 PM, 05 Apr 2017
    SELECT sum(bytes) FROM system.parts WHERE active AND database = 'db_name' AND table = 'table_name'
  • https://t.me/clickhouse_ru
    спасибо))
  • https://t.me/clickhouse_ru
    @orantius #10632 01:32 PM, 05 Apr 2017
    зависит от типа таблицы, но в целом да.
  • https://t.me/clickhouse_ru
    @nikita_nmk #10633 02:54 PM, 05 Apr 2017
    в тестах/доке не нахожу: а можно как-то mutlipart/form-data передать запрос и файл с внешними данными? беспокоюсь только что запрос может быть слишком длинный и не влезет в query string (установлен ли в CH лимит, кстати?)
  • https://t.me/clickhouse_ru
    @nikita_nmk #10634 02:56 PM, 05 Apr 2017
    про лимит вопрос снимаю, в доке нашел про 16кб
  • @milovidov_an #10635 07:24 PM, 05 Apr 2017
    Насколько я помню, параметры (в том числе запрос) нет возможности передать в mutlipart/form-data. То есть, если передаются внешние таблицы, то запрос придётся указать в параметре URL.
  • 06 April 2017 (159 messages)
  • https://t.me/clickhouse_ru
    @Sunsh1ne #10636 01:07 AM, 06 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @hagen1778 #10637 09:30 AM, 06 Apr 2017
    Помогите разобраться. Необходимо получать сумму значений в зависимости от фильтров. Т.к. фильтры вставляются в запрос на лету, то он выглядит следующим образом
    SELECT sum(column)
    FROM table
    WHERE
    Date = today()
    AND ($val = 1 OR Field = $val)
    AND ($val2 = 1 OR Field2 = $val2)

    Если $val = 1 - значит фильтровать данные не нужно. По идее, условие сразу должно вернуть true и не влиять на производительность запроса. Но это влияние есть и оно весьма заметно.
    Есть у кого-то идеи, как это можно оптимизировать?
  • https://t.me/clickhouse_ru
    @lalfar #10638 10:04 AM, 06 Apr 2017
    Через IF не пробовали?
  • https://t.me/clickhouse_ru
    @hagen1778 #10639 10:08 AM, 06 Apr 2017
    пробовал
  • https://t.me/clickhouse_ru
    @hagen1778 #10640 10:08 AM, 06 Apr 2017
    без разницы
  • https://t.me/clickhouse_ru
    @the_real_jkee #10641 10:12 AM, 06 Apr 2017
    А, вы ожидаете, что Field = $val не будет вычисляться
  • https://t.me/clickhouse_ru
    @the_real_jkee #10642 10:13 AM, 06 Apr 2017
    Сейчас такое не реализовано, оптимизатора запросов по факту почти нет, к сожалению.
  • https://t.me/clickhouse_ru
    @the_real_jkee #10643 10:13 AM, 06 Apr 2017
    Производительность проседает так как выражение все равно будет вычисляться
  • https://t.me/clickhouse_ru
    @the_real_jkee #10644 10:13 AM, 06 Apr 2017
    Просто убирайте весь этот AND
  • https://t.me/clickhouse_ru
    @hagen1778 #10645 10:15 AM, 06 Apr 2017
    Не могу убрать AND, т.к. запрос посылается из графаны и там он может быть только в одном варианте.
  • https://t.me/clickhouse_ru
    @the_real_jkee #10646 10:18 AM, 06 Apr 2017
    А этот $val как задается?
  • https://t.me/clickhouse_ru
    @the_real_jkee #10647 10:19 AM, 06 Apr 2017
    Может, туда тупо писать "Field = value" ?
  • https://t.me/clickhouse_ru
    @hagen1778 #10648 10:19 AM, 06 Apr 2017
    это template значение, которое подставляется в запросы. В нем может лежать идентификатор, например
  • @DeamonMV #10649 10:23 AM, 06 Apr 2017
    Привет всем.
    Подскажите кто нибудь рассматривал\пробовал\использует cehp в качестве сторажда под CH ?
    У нас есть 2х10Gb сеть, на себя от себя.
    Вообще как такой вариант?
    Данных где-то около 10-20ТБ в месяц приходит.
    выборки из данных в рамках недели до двух месяцев.
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #10637 #10650 12:21 PM, 06 Apr 2017
    clickhouse
    вычисляет все аргументы and/or, все аргументы if, итд. т.к. они векторизуются и вычисляются пачками и потом пачками над ними выполняются последующие функции. мы такие вещи оптимизируем перед генерацией запроса: вычисляем выражения, известные статически, выбразываем бесполезные условия, итд. правда в вашем запросе это не помогло бы, т.к. в зависимости от строки таблицы каждое из условий может оказаться значимым, это можно только при выполнении оптимизировать.
  • https://t.me/clickhouse_ru
    @146009579 #10651 12:31 PM, 06 Apr 2017
    Joined.
  • @271754174 #10652 12:33 PM, 06 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @ggttyyhh #10653 01:07 PM, 06 Apr 2017
    Joined.
  • Мы не пробовали.

    Интересно, какой получается throughput последовательного чтения с Ceph? А если со всех серверов сразу читать?
    А какая latency на операции типа создания, удаления, переименовывания файлов?
    И какая latency и throughput по случайным чтениям?
  • https://t.me/clickhouse_ru
    @dvolodin #10655 01:41 PM, 06 Apr 2017
    что-то мне кажется, что это паршивая затея
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10657 01:47 PM, 06 Apr 2017
    ребят может кто подскажет как бэкап сделать всей базы?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10658 01:48 PM, 06 Apr 2017
    в mysql это делалось обычным mysqldump. тут только по одной таблице?
  • @DeamonMV ↶ Reply to #10654 #10659 02:20 PM, 06 Apr 2017
    Если будем пробовать - думаю смогу отписаться что получилось
  • @vludv ↶ Reply to #10657 #10660 02:28 PM, 06 Apr 2017
    По-эффективному через FREEZE PARTITION для каждой партиции, по-простому
    clickhouse-client -q 'SELECT * FROM ... FORMAT Native' > dump.bin
    , еще можно доп. реплику поднять и выключить после наливки
  • https://t.me/clickhouse_ru
    как раз таки репликами мне кажется вариант не очень. мне надо собрать бэкап базы и положить на s3 aws предварительно сжав gzip
  • https://t.me/clickhouse_ru
    @finio #10662 02:34 PM, 06 Apr 2017
    а MySQL ты как бекапил? не с реплики?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10663 02:34 PM, 06 Apr 2017
    у нас отдельный сервер mysql для статистики. написали скрипт бэкапов на s3. делается sql пакуется в gzip заливается в облако. плохо?
  • https://t.me/clickhouse_ru
    по простому хреновая затея)) т.к. select кладет все содержимое в память а потом пишет в файл. при большом количестве записей не хватит памяти. походу
  • @iamigor ↶ Reply to #10664 #10665 02:38 PM, 06 Apr 2017
    ну можно кусками выгружать. по тому же месяцу, чтобы помещалось в память
  • @iamigor #10666 02:38 PM, 06 Apr 2017
    проще правда через freeze partition
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10667 02:38 PM, 06 Apr 2017
    freeze partition неплохо да. я вот не пойму до сих пор через select делается дамп и уже 25 гигов. а партициями там вообще мало места занимает. там все данные?
  • @iamigor ↶ Reply to #10667 #10668 02:39 PM, 06 Apr 2017
    в смысле?
    в одной партиции данные одной таблицы за один месяц
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10669 02:42 PM, 06 Apr 2017
    вот data папка 464 мб. а если выгрузить в tsv то получится 21 гб ))
  • @iamigor #10670 02:43 PM, 06 Apr 2017
    Документация ClickHouse | Документация ClickHouse

    ClickHouse is a fast open-source column-oriented database management system that allows generating analytical data reports in real-time using SQL queries

  • @iamigor #10671 02:43 PM, 06 Apr 2017
    второй пункт
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10672 02:44 PM, 06 Apr 2017
    класс. то есть тогда писать скриптик надо - получаем список таблиц в базе данных. делаем партишены. пакуем в архивы закидываем бэкап куда необходимо?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10673 02:44 PM, 06 Apr 2017
    по другому никак?
  • @milovidov_an #10674 02:46 PM, 06 Apr 2017
    Обычный SELECT без GROUP BY, ORDER BY и т. п. использует небольшое ограниченное количество памяти. Он не формирует результат в памяти, а отдаёт его клиенту потоково.
  • https://t.me/clickhouse_ru
    @serg_borodin #10675 02:47 PM, 06 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @rheinx #10676 02:48 PM, 06 Apr 2017
    Ребят, подскажите по tutorial.
    Там есть такой запрос:

    SELECT
    DestCityName,
    sum(Year = 2014) AS c2014,
    sum(Year = 2015) AS c2015,
    c2015 / c2014 AS diff
    FROM ontime
    WHERE Year IN (2014, 2015)
    GROUP BY DestCityName
    HAVING c2014 > 10000 AND c2015 > 1000 AND diff > 1
    ORDER BY diff DESC

    в нем в функцию sum передается условие как я понял, но не указывается что суммировать. Как он работает? В доках про условия внутри функции sum ни слова(
  • @iamigor #10677 02:48 PM, 06 Apr 2017
    может там sumIf должен быть
  • @iamigor #10678 02:49 PM, 06 Apr 2017
    в доке это описано вот тут
    https://clickhouse.yandex/reference_ru.html#Комбинатор%20-If.%20Условные%20агрегатные%20функции
    Документация ClickHouse | Документация ClickHouse

    ClickHouse is a fast open-source column-oriented database management system that allows generating analytical data reports in real-time using SQL queries

  • https://t.me/clickhouse_ru
    @rheinx #10679 02:49 PM, 06 Apr 2017
    да, это более логично. Видимо до этого шага в tutorial никто не доходил))))
  • @iamigor #10680 02:49 PM, 06 Apr 2017
    дайте ссылку плиз
    хотя не надо, нашел, ща поправлю
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10681 02:52 PM, 06 Apr 2017
    native 13 gb tsv 22 gb. какой самый компатный ? может есть формат который оставляет родную струтуру в 4xx mb ?)
  • @iamigor #10682 02:53 PM, 06 Apr 2017
    ну сожмите результат Native в gzip тот же, например, да и все
  • Так и должно быть. Дело в том, что все логические операции и сравнения возвращают значение типа UInt8, равное 0 или 1. Далее эти значения суммируются.
  • Это, приблизительно, получится, если дамп в формате Native ещё сжать.
    Можете сжать gzip или родным clickhouse-compressor (второе быстрее).
  • @iamigor #10685 02:58 PM, 06 Apr 2017
    аа, извините
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #10683 #10686 02:58 PM, 06 Apr 2017
    Аааа, вот оно как. Красивый вариант.
  • https://t.me/clickhouse_ru
    у меня вообще 230 мб получилось))) еще лучше!
    clickhouse-compressor установил. но он включается для прилетающих данных на сервер как написано в доке. а как его заюзать при выгрузке в файл?
  • @iamigor #10688 03:06 PM, 06 Apr 2017
    > Если вы указали в URL compress=1, то сервер будет сжимать отправляемые вам данные.
  • https://t.me/clickhouse_ru
    а в моем случае я не url шлю а на клиент
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10690 03:07 PM, 06 Apr 2017
    clickhouse-client -q 'SELECT * FROM statistics.banner_history_segments FORMAT Native' > dump2.bin
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10691 03:13 PM, 06 Apr 2017
    понял
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10692 03:15 PM, 06 Apr 2017
    ребят это шок)) компрессор чудо
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10694 03:15 PM, 06 Apr 2017
    7 секунд чтобы собрать все данные и положить в архив в файлик)
  • https://t.me/clickhouse_ru
    спасибо!!
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10696 03:25 PM, 06 Apr 2017
    если кому интересно как я делал бэкап
    curl 'http://localhost:8123/?database=statistics&compress=1' -d 'SELECT * FROM banner_history_segments FORMAT Native' > data.bin
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10697 03:25 PM, 06 Apr 2017
    gzip -c data.bin > dump.gzip
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10698 03:26 PM, 06 Apr 2017
    22 млн записей. 7 секунд создание файл + 7 секунд gzip
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #10683 #10699 03:33 PM, 06 Apr 2017
    Я чет еще немного подумал, а почему не countIf ?
  • https://t.me/clickhouse_ru
    @rheinx #10700 03:53 PM, 06 Apr 2017
    Кто нибудь настраивал словари через ODBC?
  • https://t.me/clickhouse_ru
    @nikita_nmk #10701 03:55 PM, 06 Apr 2017
    Как я делал с постгресным драйвером:
    sudo apt-get install -y unixodbc
    sudo apt-get install -y odbcinst
    sudo apt-get install -y odbc-postgresql

    В /etc/odbc.ini:
    [DEFAULT]
    Driver = myconnection

    [myconnection]
    Description = PostgreSQL connection to norma
    Driver = PostgreSQL Unicode
    Database = norma
    Servername = 10.... (твой хост)
    UserName = uname
    Password = pwd
    Port = 5432
    Protocol = 9.3
    ReadOnly = No
    RowVersioning = No
    ShowSystemTables = No
    ConnSettings =

    <dictionary>
    <name>table_name</name>
    <source>
    <odbc>
    <table>postgresql_table</table>
    <connection_string>DSN=myconnection</connection_string> <!— может потребоваться UID=norma;PWD=norma;, но по идее не должно —->
    </odbc>
    </source>
    <lifetime>
    <min>300</min>
    <max>360</max>
    </lifetime>
    <layout>
    <flat/>
    </layout>
    <structure>
    <id>
    <name>id</name>
    </id>
    <attribute>
    <name>some_column</name>
    <type>Int32</type>
    <null_value>-1</null_value>
    </attribute>
    ...
    </structure>
    </dictionary>
  • Это будет то же самое. Хотя сейчас sum(cond) всё-таки работает оптимальнее, но в дальнейшем сделаем, чтобы вообще не было разницы.
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #10701 #10703 04:03 PM, 06 Apr 2017
    Спасибо
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #10702 #10704 04:03 PM, 06 Apr 2017
    спасибо, ценная инфа.
  • @vludv ↶ Reply to #10696 #10705 04:53 PM, 06 Apr 2017
    Можно еще бинарник из пакета clickhouse-compressor поставить для таких целей
  • https://t.me/clickhouse_ru
    а зачем? в чем плюс?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10707 05:26 PM, 06 Apr 2017
    /var/www/html/build# cat data.bin | POST 'http://localhost:8123/?query=INSERT INTO statistics.test FORMAT Native'
    Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = Exception: Too large string size., e.what() = Exception

    каким еще способом можно импортнуть дамп ?
  • @milovidov_an #10708 05:27 PM, 06 Apr 2017
    А опцию decompress не забыли?
  • https://t.me/clickhouse_ru
    забылся, работае)) жалко прогресс не показывает. прошлый раз показывало
  • https://t.me/clickhouse_ru
    @rheinx #10710 06:00 PM, 06 Apr 2017
    Ребят, а если используется функция работы с датой над полем date, clickhouse перестает использовать индекс и идет фуллсканить?

    например так:

    where
    toYear(clickhouse_date) = 2016 and toMonth(clickhouse_date) in (2,9)
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10711 06:04 PM, 06 Apr 2017
    Может кто скажет как схему выгрузить таблицы?
  • https://t.me/clickhouse_ru
    @v2nek ↶ Reply to #10711 #10712 06:05 PM, 06 Apr 2017
    там файлики есть у кликхауса со схемой
  • https://t.me/clickhouse_ru
    @iGusev ↶ Reply to #10711 #10713 06:05 PM, 06 Apr 2017
    desc table table_name
    show create table table_name
  • https://t.me/clickhouse_ru
    @WladySpb #10714 06:05 PM, 06 Apr 2017
    Документация ClickHouse | Документация ClickHouse

    ClickHouse is a fast open-source column-oriented database management system that allows generating analytical data reports in real-time using SQL queries

  • https://t.me/clickhouse_ru
    SHOW TABLES FROM statistics LIKE 'banner_history_segments' INTO OUTFILE test.txt

    Code: 62, e.displayText() = DB::Exception: Syntax error: failed at position 73 (line 1, col 73): test.txt
    /*TABIX_QUERY_ID_vKOdebem13K6Ub8_()*/, expected opening single quote, e.what() = DB::Exception\n
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10716 06:13 PM, 06 Apr 2017
    как в файл выгрузить схему чтобы потом её заново восстановить ?
  • https://t.me/clickhouse_ru
    @WladySpb #10717 06:14 PM, 06 Apr 2017
    А скопировать из консоли религия не позволяет?)
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10718 06:14 PM, 06 Apr 2017
    show create table table_name вот это самое то
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10719 06:14 PM, 06 Apr 2017
    и тупо скинуть в файлик )
  • https://t.me/clickhouse_ru
    спасибо
  • Индекс всё-равно будет использоваться.
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #10721 #10722 06:28 PM, 06 Apr 2017
    В чем тогда может быть ошика?

    Processed rows разный. И для первого запроса processed = количеству

    :) select count(*) from some_table where toYear(clickhouse_date) = 2016 and toMonth(clickhouse_date) in (10,9)

    ┌──count()─┐
    │ 43349387 │
    └──────────┘
    → Progress: 252.86 million rows, 505.71 MB (1.28 billion rows/s., 2.57 GB/s.)
    1 rows in set. Elapsed: 0.197 sec. Processed 252.86 million rows, 505.71 MB (1.28 billion rows/s., 2.57 GB/s.)

    :) select count(*) from some_table where clickhouse_date between '2016-09-01' and '2016-10-30'

    ┌──count()─┐
    │ 42621496 │
    └──────────┘
    1 rows in set. Elapsed: 0.023 sec. Processed 43.35 million rows, 86.70 MB (1.88 billion rows/s., 3.76 GB/s.)
  • @milovidov_an #10723 06:39 PM, 06 Apr 2017
    Жаль, почему-то в этом случае плохо сработало. Использование индекса, в принципе, поддерживается для такого вида функций. Подробнее сейчас не могу сказать.
  • https://t.me/clickhouse_ru
    @WladySpb #10724 06:45 PM, 06 Apr 2017
    в КХ индексы работают не так, как в мускуле
  • https://t.me/clickhouse_ru
    @WladySpb #10725 06:49 PM, 06 Apr 2017
    они отвечают за сегментирование данных на чанки, чтобы кх при запросе просто откидывал ненужные чанки, ускоряя сканирование. т.е. если у нас MergeTree с индексом date - будут эффективно выполняться запросы на ограниченный набор дат, за счёт того что чанки с датами в другом диапазоне просто не будут читаться. по идее, он должен грамотно учитывать функции, по крайней мере у меня во всех запросах используется фильтр toDate(eventDate) BETWEEN 'someDataStr' AND '.....' и это не вызывает проблем
  • @sr_maks1 ↶ Reply to #10725 #10726 06:53 PM, 06 Apr 2017
    Это ясно и понятно. Неясно почему на первый взгляд при одинаковом запросе возвращается разный результат
  • @sr_maks1 #10727 06:53 PM, 06 Apr 2017
    Либо преобразование даты не отрабатывает. Либо одно из двух (с)
  • https://t.me/clickhouse_ru
    @WladySpb #10728 06:53 PM, 06 Apr 2017
    Он в первом варианте, скорее всего сначала выполнил сканирование по первому условию, а потом отфильтровал по второму.
  • https://t.me/clickhouse_ru
    @WladySpb #10729 06:54 PM, 06 Apr 2017
    Во втором случае, запрос был более однозначным
  • @sr_maks1 #10730 06:54 PM, 06 Apr 2017
    Такое не должно быть.
  • https://t.me/clickhouse_ru
    @andrnag #10731 06:54 PM, 06 Apr 2017
    Vladimir В октябре 31 день, может поэтому?
  • https://t.me/clickhouse_ru
    @WladySpb #10732 06:54 PM, 06 Apr 2017
    Возможно, из за in(9,10)
  • https://t.me/clickhouse_ru
    @WladySpb #10733 06:54 PM, 06 Apr 2017
    Оптимизатор мог решить, что выборку IN не стоит делать в PREWHERE
  • https://t.me/clickhouse_ru
    @WladySpb #10734 06:55 PM, 06 Apr 2017
    Кстати, а если явно указать PREWHERE в первом варианте?
  • @sr_maks1 #10735 06:55 PM, 06 Apr 2017
    А где оно?
  • https://t.me/clickhouse_ru
    @WladySpb #10736 06:55 PM, 06 Apr 2017
    Документация ClickHouse | Документация ClickHouse

    ClickHouse is a fast open-source column-oriented database management system that allows generating analytical data reports in real-time using SQL queries

  • @sr_maks1 #10737 06:56 PM, 06 Apr 2017
    Не думаю что из за этого
  • https://t.me/clickhouse_ru
    @andrnag #10738 06:56 PM, 06 Apr 2017
    Ребят, запросы же разные. Один день выпадает там где between
  • @sr_maks1 ↶ Reply to #10734 #10739 06:56 PM, 06 Apr 2017
    Кстати Андрей попробуй явно указать.
  • @sr_maks1 #10740 06:57 PM, 06 Apr 2017
    Аа точно
  • @sr_maks1 #10741 06:57 PM, 06 Apr 2017
    Все гениальное просто.
  • https://t.me/clickhouse_ru
    @rheinx #10742 06:58 PM, 06 Apr 2017
    Не, ребят , проблема не в одном дне
  • https://t.me/clickhouse_ru
    @andrnag #10743 06:59 PM, 06 Apr 2017
    Ну, почему разное число обработанных строк — непонятно, видимо внутренняя кухня. А результат разный — из-за одного дня.
  • https://t.me/clickhouse_ru
    @WladySpb #10744 06:59 PM, 06 Apr 2017
    а clickhouse-client же показывает, как он оптимизировал запрос?
  • https://t.me/clickhouse_ru
    @WladySpb #10745 07:00 PM, 06 Apr 2017
    Я подозреваю что для select count(*) from some_table where toYear(clickhouse_date) = 2016 будет: Processed 252.86 million rows
  • https://t.me/clickhouse_ru
    @WladySpb #10746 07:03 PM, 06 Apr 2017
    "Если настройка optimize_move_to_prewhere выставлена в 1, то при отсутствии PREWHERE, система будет автоматически переносить части выражений из WHERE в PREWHERE согласно некоторой эвристике."
  • https://t.me/clickhouse_ru
    @rheinx #10747 07:05 PM, 06 Apr 2017
    проблема в IN
  • https://t.me/clickhouse_ru
    @rheinx #10748 07:05 PM, 06 Apr 2017
    :) select count(*) from osa_posdata where (toMonth(clickhouse_date) = 9 or toMonth(clickhouse_date) =10) and toYear(clickhouse_date) = 2016
    ┌──count()─┐
    │ 43349387 │
    └──────────┘
    1 rows in set. Elapsed: 0.045 sec. Processed 43.35 million rows, 86.70 MB (971.86 million rows/s., 1.94 GB/s.)

    :) select count(*) from osa_posdata where toMonth(clickhouse_date) in(10,9) and toYear(clickhouse_date) = 2016
    ┌──count()─┐
    │ 43349387 │
    └──────────┘
    1 rows in set. Elapsed: 0.159 sec. Processed 252.86 million rows, 505.71 MB (1.59 billion rows/s., 3.18 GB/s.)
  • https://t.me/clickhouse_ru
    @WladySpb #10749 07:05 PM, 06 Apr 2017
    И эта "некоторая эвристика" в данном случае могла посчитать, что нужно сначала выполнить запрос по "toYear(clickhouse_date) = 2016" и уже в полученных данных провести фильтрацию по "toMonth(clickhouse_date) in (10,9)"
  • https://t.me/clickhouse_ru
    @WladySpb #10750 07:06 PM, 06 Apr 2017
    Оптимизаторы не любят IN, это да
  • https://t.me/clickhouse_ru
    @WladySpb #10751 07:07 PM, 06 Apr 2017
    Но если не предполагается делать IN(7,11) например, то почему бы не взять BETWEEN ? Оптимизатор его понимает значительно лучше
  • https://t.me/clickhouse_ru
    @rheinx #10752 07:08 PM, 06 Apr 2017
    Не проблема. Чуть больше кода на стороне бекенда. Я просто натолкнулся на странность. Вот и написал.
  • https://t.me/clickhouse_ru
    @rheinx #10753 07:09 PM, 06 Apr 2017
    Кстати вопрос, как оптимальнее сравнивать периоды. Через sum и join или через sumif и group by?
  • https://t.me/clickhouse_ru
    @WladySpb #10754 07:10 PM, 06 Apr 2017
    Я предпочитаю сравнивать уже в коде, поскольку бывают разные условия, соответственно два запроса
  • https://t.me/clickhouse_ru
    @WladySpb #10755 07:11 PM, 06 Apr 2017
    Но это уже на вкус и цвет)
  • @milovidov_an #10756 07:11 PM, 06 Apr 2017
    Мы в Метрике сравниваем вторым способом:
    - в WHERE указывается OR для обеих периодов,
    а затем все агрегатные функции считаются с условиями для одного и для второго периода.
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #10754 #10757 07:15 PM, 06 Apr 2017
    Как это? Если сравнение периодов, то условия то одинаковые должны быть. Только периоды различаются.
  • https://t.me/clickhouse_ru
    @WladySpb #10758 07:18 PM, 06 Apr 2017
    Блин. Я не приведу пример, сам сейчас представить не могу кейс) Думаю, основная причина в том, что я бэкендщик, а не дба, мне проще выдернуть данные и уже в коде с ними работать)
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #10758 #10759 07:19 PM, 06 Apr 2017
    Но ведь это olap, внутри быстрее посчитать ))
  • https://t.me/clickhouse_ru
    @WladySpb #10760 07:20 PM, 06 Apr 2017
    При следующем рефакторинге как раз будет повод проверить)
  • https://t.me/clickhouse_ru
    @rheinx #10761 07:21 PM, 06 Apr 2017
    оно конечно еще сильно зависит от количества данных. Если там 5 строк, то не важно где считать. А у нас просто выхлоп большой(относительно).
  • https://t.me/clickhouse_ru
    @WladySpb #10762 07:24 PM, 06 Apr 2017
    У меня данные на выходе обычно уже сагрегированы, и приходится сравнивать относительно небольшие массивы, так что к производительности кода претензий нет
  • https://t.me/clickhouse_ru
    @rheinx #10763 07:28 PM, 06 Apr 2017
    ну тогда да, тут просто как удобнее.
  • https://t.me/clickhouse_ru
    @rheinx #10764 07:29 PM, 06 Apr 2017
    А я правильно понимаю что вот тут агрегация заняла 8 сек?

    2017.04.06 22:27:01.924306 [ 967 ] <Trace> Aggregator: Merging aggregated data
    2017.04.06 22:27:02.190420 [ 967 ] <Trace> Aggregator: Aggregation method: keys256
    2017.04.06 22:27:10.879413 [ 967 ] <Trace> Aggregator: Aggregated. 36840327 to 921756 rows (from 1018.877 MiB) in 13.021 sec. (2829352.510 rows/sec., 78.250 MiB/sec.)
    2017.04.06 22:27:10.879509 [ 967 ] <Trace> Aggregator: Merging aggregated data
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #10757 #10765 07:35 PM, 06 Apr 2017
    если делать через sumIf + group by то разные условия записать в метрики не проблема. единственная проблема которую я помню, помимо несколько длинных запросов которые получаются в нашем случае, это невозможность сравнить периоды по времени так, чтобы первый день первого периода попадал в строку с первым днем второго периода, ит.д.
  • https://t.me/clickhouse_ru
    @WladySpb #10766 07:38 PM, 06 Apr 2017
    Сначала в PREWHERE выбрать нужные данные в колонки с разными именами, а потом в WHERE доагрегировать их, смерджив периоды
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #10765 #10767 07:38 PM, 06 Apr 2017
    я правильно понимаю что мы говорим о запросах вроде такого?

    select
    some_field,
    sumIf(tot_sum,toMonth(clickhouse_date) = 9) as sum1,
    sumIf(tot_sum,toMonth(clickhouse_date) = 10) as sum2
    from some_table
    where
    toYear(clickhouse_date) = 2016 and (toMonth(clickhouse_date) = 9 or toMonth(clickhouse_date) =10)
    group by
    toMonth(clickhouse_date)
  • https://t.me/clickhouse_ru
    @orantius #10768 07:39 PM, 06 Apr 2017
    а, если toMonth(), то у вас во-первых some_field не в агрегате, а во вторых какая-то матрица шахматная получится,
  • https://t.me/clickhouse_ru
    @WladySpb #10769 07:39 PM, 06 Apr 2017
    ПОдзапросом по идее можно
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #10766 #10770 07:39 PM, 06 Apr 2017
    а вы прям руками проставляете PREWHERE? Я читал что оптимизатор уже достаточно умен для такого
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #10769 #10771 07:40 PM, 06 Apr 2017
    да вот меж двух огней и мечусь) JOIN или sumIf)
  • https://t.me/clickhouse_ru
    @WladySpb #10772 07:40 PM, 06 Apr 2017
    Я сейчас теоретизирую)
  • https://t.me/clickhouse_ru
    @WladySpb #10773 07:41 PM, 06 Apr 2017
    с PREWHERE не экспериментировал пока, а с подзапросом делал подобные выборки
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #10768 #10774 07:41 PM, 06 Apr 2017
    ну, для примера сходного с метрикой. У меня есть сайт, и я хочу сравнить количество посещений в 9 месяце с количеством в 10
  • https://t.me/clickhouse_ru
    @orantius #10775 07:42 PM, 06 Apr 2017
    отчет в метрике делает запрос похожий на ваш, только в нем group by some_field
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #10775 #10776 07:42 PM, 06 Apr 2017
    аааа, все, дошло. Да, агрегация по some_field. Верно.
  • https://t.me/clickhouse_ru
    @rheinx #10777 07:43 PM, 06 Apr 2017
    а вы с PREWHERE делаете что нибудь? или верите в оптимизатор?
  • https://t.me/clickhouse_ru
    @WladySpb #10778 07:43 PM, 06 Apr 2017
    Вначале одним запросом мы получаем что-то типа row1(day=1, sum1=0, sum2=100), row2(day=1, sum1=66, sum2=0), ... и так по каждому дню, а потом группируем по day
  • https://t.me/clickhouse_ru
    @orantius #10779 07:43 PM, 06 Apr 2017
    если some_field это не время, то получится примерно то , что надо. если время, то будут нули в непересекающихся местах.
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #10779 #10780 07:44 PM, 06 Apr 2017
    нене, это именно аналог сайта/старницы сайта в метрике
  • https://t.me/clickhouse_ru
    @rheinx #10781 07:44 PM, 06 Apr 2017
    у нас аналитика чеков. И сравниваем продажи товара по периодам.
    Т.е. получается

    товар | количество в первом периоде | количество во втором
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #10777 #10782 07:45 PM, 06 Apr 2017
    с prewhere скорее нет чем да. я в принципе для нашей схемы подтянул некую оценку кардинальности колонок, которую можно было бы использовать в некоторых случаях, но наши медленные запросы медленные не поэтому.
  • https://t.me/clickhouse_ru
    @rheinx #10783 07:46 PM, 06 Apr 2017
    >подтянул некую оценку кардинальности колонок
    вот сейчас сложно было)
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #10781 #10784 07:47 PM, 06 Apr 2017
    мы планы запросов дизайнили из идеи "один отчет - один запрос", сравнение казалось бы так сделать нельзя, но оказалось что можно. для случая одинаковых периодов но разных фильтров данные читаются один раз, что быстре двух запросов. для соседних периодов разницы быть не должно.
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #10783 #10785 07:50 PM, 06 Apr 2017
    для каждой колонки есть распределение количества ее значений, в дне, в нескольких днях по различным например клиентам. из этого во-первых можно оценивать "среднюю в вакууме" тяжесть запроса - количество ключей в group by, доля данных которая останется после фильтра column=value, итд. такие метаданные, которые оптимизатор бд обычно собирает в индексы или еще куда чтобы использовать при оптимизации.
  • https://t.me/clickhouse_ru
    @orantius #10786 07:51 PM, 06 Apr 2017
    но мы верим в prewhere в частности и в clickhouse в целом.
  • https://t.me/clickhouse_ru
    @WladySpb #10787 07:51 PM, 06 Apr 2017
    Хм. Вот кстати. Как в запросе для каждого запрашиваемого числового значения получить его процентное отношение к прошлому периоду? т.е., на сколько процентов упали\поднялись посещения\клики\продажи за этот день относительно вчерашнего\на прошлой неделе\в прошлом месяце?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #10787 #10788 07:51 PM, 06 Apr 2017
    так это вроде простая арифметика, у нас проценты не считаются. Считаются разницы и вектор разницы. Вот так:

    (Sum_sales_rub1-Sum_sales_rub2) as Growth_abs,
    (Sum_sales_rub1-Sum_sales_rub2)/greatest(Sum_sales_rub2,1) as Growth_rel
  • https://t.me/clickhouse_ru
    @orantius #10789 07:53 PM, 06 Apr 2017
    каждого запрашиваемого - это как? если я правильно понял вопрос, то мы делаем два набора вызовов агрегатных функций.
  • https://t.me/clickhouse_ru
    @WladySpb #10790 07:54 PM, 06 Apr 2017
    Хм, действительно) Сначала запрашиваем два набора, преагрегируем их с разными именами, вычисляем процентное соотношение и доагрегируем по нужному ключу...
  • https://t.me/clickhouse_ru
    @WladySpb #10791 07:55 PM, 06 Apr 2017
    Надо будет попробовать запрос написать на реальных данных, посмотреть как отрабатывает
  • https://t.me/clickhouse_ru
    @PutinVovan #10792 09:54 PM, 06 Apr 2017
    Доброго времени суток! Есть ли разница в порядке указания колонок в индексе? Т.е если создать таблицу с индексом (c1, c2). То при при фильтрации по полю c2 будет ли использоваться индекс? Или он будет использоваться только при фильтрации по c1, по (c1 и с2) ?
  • https://t.me/clickhouse_ru
    @PutinVovan #10793 10:01 PM, 06 Apr 2017
    Сделал таблички типа ReplacingMergeTree с индексами (с1,с2) и (с2,с1) соответственно. залил в них одинаковые данные. Запрос с фильтром по с1 был значительно менее ресурсоемким к первой табличке (где с1 указано в индексе на первой позиции), а запрос по с2 соответственно ко второй таблице. Осознал, что не понимаю как работают индексы в CH, прокомментируйте пожалуйста.
  • https://t.me/clickhouse_ru
    @orantius #10794 10:23 PM, 06 Apr 2017
    а распределение у c1 c2 какое?
  • 07 April 2017 (69 messages)
  • https://t.me/clickhouse_ru
    @ssheremeta #10795 08:11 AM, 07 Apr 2017
    Добрый день! Подскажите, кто-то собирал ODBC-драйвер под RHEL/Centos 6 ?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #10795 #10796 08:18 AM, 07 Apr 2017
    там ж вроде из пакета ставится с полпинка
  • https://t.me/clickhouse_ru
    @ssheremeta #10797 08:21 AM, 07 Apr 2017
    не совсем, как минимум в rhel6 нет gcc5
  • https://t.me/clickhouse_ru
    @rheinx #10798 08:23 AM, 07 Apr 2017
    оу, да, про 6 версию я не подумал. Я собирал. Но не помню)
  • https://t.me/clickhouse_ru
    а POCO-либы ставили из rpm? или сами собирали (если да, то каким gcc?)
  • https://t.me/clickhouse_ru
    @SLASH_CyberPunk #10801 08:35 AM, 07 Apr 2017
    Если никто не против, хотел бы вернуться к вопросу дашбордов, в частности, помимо zeppelin и redash, пользуется кто metabase?
    А второй момент, кто с редашем, как вы его в проде используете, если там куча багов на уровне постгресной базы?
  • https://t.me/clickhouse_ru
    @ssheremeta #10802 08:37 AM, 07 Apr 2017
    Мы пользуемся Airbnb Superset
  • https://t.me/clickhouse_ru
    Спасибо, посмотрю
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #10797 #10804 09:04 AM, 07 Apr 2017
    Я когда думал собирать под центось6, собрал шланг. Это оказалось проще
  • https://t.me/clickhouse_ru
    @Civiloid #10805 09:05 AM, 07 Apr 2017
    Но лучше сразу взять цо7
  • https://t.me/clickhouse_ru
    Собранный с помощью clang odbc-драйвер заработал без проблем? (Да, похоже, что придется переезжать на Centos 7)
  • https://t.me/clickhouse_ru
    @eugeneks #10807 10:56 AM, 07 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #10806 #10808 11:10 AM, 07 Apr 2017
    Я кх не собирал под цо6
  • https://t.me/clickhouse_ru
    @Civiloid #10809 11:10 AM, 07 Apr 2017
    Посмотрел на объем работ и плюнул
  • https://t.me/clickhouse_ru
    @Civiloid #10810 11:11 AM, 07 Apr 2017
    В цо7 собирается отлично если брать системный злиб и гцц из devtoolset-6
  • https://t.me/clickhouse_ru
    @Civiloid #10811 11:12 AM, 07 Apr 2017
    Первое тоже важно, потому что иначе соберется zlib-ng, поставится в /usr/lib и это не очень хорошо
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #10806 #10812 11:13 AM, 07 Apr 2017
    Ну на самом деле нет смысла имхо сидеть на 6ой. Даже 7ая слишком старая
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10813 11:25 AM, 07 Apr 2017
    Скажите а можно ли настроить такую схему- есть основной сервер статистики на кх. есть доп. сервер на котором дублируется статистика из основного сервера. но запросы на вставки идут на основной. а дополнительный просто клонирует данные основного. Зачем? дополнительный дев сервер хотим подключить на дополнительный сервер статистики для отладки. Ну и что будет если миграции будем выполнять? надо бы чтобы они на двух серверах применялись..
  • @varyhin #10814 11:29 AM, 07 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @soyayaos ↶ Reply to #10813 #10815 11:36 AM, 07 Apr 2017
    Для http например так https://github.com/buger/goreplay
    GitHub - buger/goreplay: GoReplay is an open-source tool for capturing and replaying live HTTP traffic into a test environment in order to continuously test your system with real data. It can be used to increase confidence in code deployments, configuration changes and infrastructure changes.

    GoReplay is an open-source tool for capturing and replaying live HTTP traffic into a test environment in order to continuously test your system with real data. It can be used to increase confidence...

  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #10813 #10816 11:48 AM, 07 Apr 2017
    репликация?
  • https://t.me/clickhouse_ru
    возможно. нооо если поменяем структуру таблицы на доп. сервере. что будет в итоге?
  • https://t.me/clickhouse_ru
    например удалим столбец протестируем что все работает и зальем код на прод. нам важно понимать что код с изменной структурой базы работает. а затем применять миграцию на проде и заливать код
  • https://t.me/clickhouse_ru
    @soyayaos ↶ Reply to #10818 #10819 12:21 PM, 07 Apr 2017
    Что вы используете в качестве клиента?
  • https://t.me/clickhouse_ru
    ну у нас php приложение. драйвер пхп выбирает с базы кх. есть еще доп. инструменты для миграций которые реализовали сми2. ну можно и без них просто слать по curl запрос
  • https://t.me/clickhouse_ru
    @soyayaos #10821 12:23 PM, 07 Apr 2017
    Дублировать можно http через goreplay
  • https://t.me/clickhouse_ru
    @soyayaos #10822 12:23 PM, 07 Apr 2017
    Или UDP через netcat например
  • https://t.me/clickhouse_ru
    @soyayaos #10823 12:23 PM, 07 Apr 2017
    Но TCP увы
  • https://t.me/clickhouse_ru
    @soyayaos #10824 12:31 PM, 07 Apr 2017
    Но не проще ли
  • https://t.me/clickhouse_ru
    @soyayaos #10825 12:31 PM, 07 Apr 2017
    Это делать через репликацию?
  • https://t.me/clickhouse_ru
    @soyayaos #10826 12:32 PM, 07 Apr 2017
    Сделали копию, отключили копию, протестировали на копии миграции, удалили с копии данные, доключили копию в кластер для повторного наполнения
  • @agcouper #10827 12:32 PM, 07 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    может все таки проще создать бэкап положить в облако. и на другом сервере его импортить каждый день?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10829 01:20 PM, 07 Apr 2017
    хотелось бы автоматизировать процесс
  • https://t.me/clickhouse_ru
    @umaxfun #10830 01:30 PM, 07 Apr 2017
    Всем привет :) У нас есть поток событий, каждое — с идентификатором пользователя (`dt | eventId | userId`) Требуется: узнать сколько раз он взаимодействовал с системой за неделю (`weeknum | userId | sessionsCount`). На вид — задача изоморфна получению отдельных визитов из хитов.
    Может ли кто-нибудь рассказать алгоритм, как в метрике (или не в метрике?) получаются визиты из хитов, или как в кх сделать такой запрос? Хочется понять сам принцип.
  • @agcouper #10831 01:53 PM, 07 Apr 2017
    Привет! Мы тут хотим переехать на другой ZK кластер и хочется узнать, если возможность перевести CH в readonly режим? Мы, конечно, загасим все наши воркеры, которые пишут в CH, но хочется подстраховаться
  • Внутри ClickHouse такой возможности нет, но всегда можно закрыть порты с помощью iptables.
    9000, 8123 - закрыть на запись и чтение.
    9009 - закрыть репликацию.
  • @agcouper #10833 02:00 PM, 07 Apr 2017
    О, точно, спасибо!
  • В Метрике вычисление сессий - довольно сложный алгоритм и отдельная структура данных, разработанная специально для этого. Это делается снаружи ClickHouse.
  • https://t.me/clickhouse_ru
    удалось побороть "No thread available" на словарях?
  • https://t.me/clickhouse_ru
    @umaxfun ↶ Reply to #10834 #10836 02:07 PM, 07 Apr 2017
    В интернетах нашёл пример запроса, который делает прямо то что нужно (идеалогически) http://sqlmag.com/site-files/sqlmag.com/files/archive/sqlmag.com/content/content/23714/listing_03.txt => site_url| caller_ip | start_session | end_session Но возможностей кх не хватает, чтобы его запустить :(
  • https://t.me/clickhouse_ru
    @Civiloid #10837 02:10 PM, 07 Apr 2017
    Как правильно мигрировать данные при изменении схемы (включая изменение индекса)? Хочу в приложении своем добавить потенциальную возможность такое делать.
    Я правильно понимаю что нужно делать следующее:
    1. Rename старой
    2. Создавать новую таблицу с правильным и исправленной схемой
    3. Делать SELECT INTO в новую таблицу из старой
    4. Удалить старую
    ?
  • https://t.me/clickhouse_ru
    Алексей не могли бы вы посоветовать более правильный способ организации дев прод серверов. на прод ui + прод кх само сабой понятно. а вот дев + доп сервер кх - хотелось бы на доп. сервере чтобы всегда были данные прод сервере кх. но с возможностью применить какую либо миграцию (удалить столбец к примеру) - все отладить и тогда уже на проде кх её выполнить и залить код ui
  • https://t.me/clickhouse_ru
    @openbsod #10839 03:13 PM, 07 Apr 2017
    Joined.
  • @milovidov_an #10840 03:18 PM, 07 Apr 2017
    Мы используем тестовую среду с подмножеством данных. Тестовая среда полностью независима от продакшена. Но программы, которая записывают данные, записывают одновременно все данные на продакшен и часть данных на тестовую среду.
  • https://t.me/clickhouse_ru
    да очень плохо, на масштабах 100 и более гигабайт данных нормально не работает
    юзайте xtrabackup хотябы вместо mysqldump
  • https://t.me/clickhouse_ru
    К сожалению, пока нет. Вот, можно прям в коде поправить https://groups.google.com/forum/#!topic/clickhouse/VNkWeL468mw , но это печальненько
  • https://t.me/clickhouse_ru
    @nikita_nmk #10843 03:35 PM, 07 Apr 2017
    ага, нашел уже. у меня ровно 16 словарей получается. все odbc
  • @milovidov_an #10844 03:38 PM, 07 Apr 2017
    Можно решить задачу, реализовав поддержку опционального параметра в конфиге - odbc_dictionary_source_session_pool_size. Это тривиальное изменение, примерно на 20 минут времени. Пришлёте PR или самим придётся сделать?
  • https://t.me/clickhouse_ru
    ну при изменении структуры таблицы данные писаться ведь не будут? вы наверное имел ввиду репликацию из основного сервера на тестовую среду. важно понять как лучше нам организовать такой процесс чтобы данные всегда были актуальны но при необходимости мы могли поменять какие-то поля переписать код для работы с этими полями оттестировать и затем уже выложиь на прод код + миграцию на прод кх
  • https://t.me/clickhouse_ru
    пока только мысли сделать бэкап положить на S3 написать скриптик который каждый день будет обновлять базу. ну у нас будет сутки чтобы там поиграться пока не вернется структура как на проде)
  • https://t.me/clickhouse_ru
    @orantius #10847 04:30 PM, 07 Apr 2017
    а как вы это сейчас делаете.
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10848 04:32 PM, 07 Apr 2017
    пока никак. но думаю сделать бэкап компрессором потом запаковать закинуть на S3, затем из S3 берем распаковываем декопрессию делаем и импортим в базу раз в сутки (на кроне) пока такая мысль
  • Там конвейер обработки, первая программа пишет "сырые" данные на ТС и на продакшен, а потом всё это обрабатывают и пишут другие программы, которые выкладываются сначала на ТС, а потом на продакшен.
  • https://t.me/clickhouse_ru
    начал смотреть исходники, не совсем понял. по дефолту у SessionPool maxSessions = 32, почему тогда можно только 16 словарей? еще заметил, что сессия никогда не отдается в пул, т.е. всегда висит кол-во соединений равное кол-ву словарей. для постгреса без использования всяких баунсеров это может быть накладно, может как-то этот момент переделать что бы сессия всё таки возвращалась в пул? ведь по сути она нужна только когда надо обновить словарь.
  • https://t.me/clickhouse_ru
    все равно не особо понял принцип работы. видимо пока сделаю дампами по крону. может еще скажите есть ли возможность сделать дамп "всей" базы? или только таблиц по отдельности?
  • @milovidov_an #10852 05:20 PM, 07 Apr 2017
    Я пока тоже не до конца понял. Ведь SessionPool создаётся для каждого словаря (ODBCDictionarySource). То есть, для каждого словаря максимум 32 соединения (по факту, для flat, hashed словарей нужно одно), а при чём тут количество словарей - не ясно. Надо смотреть глубже.
  • Только по отдельности.
  • https://t.me/clickhouse_ru
    а в будущем планируется ?
  • @milovidov_an #10855 05:23 PM, 07 Apr 2017
    Пока нет. Есть отдалённо похожая задача - восстановление реплики целиком (на пустом сервере). Сейчас приходится выполнять ATTACH TABLE для каждой таблицы для восстановления или копировать .sql файлы. Вот после этой задачи подумаем, чтобы сделать возможность полного бэкапа.
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10856 05:24 PM, 07 Apr 2017
    понял. спасибо
  • https://t.me/clickhouse_ru
    может тогда в пн я сделаю issue на гитхабе, с кейсом как воспроизводить, данными что просил Виталий в гугл группе, что бы про это не забыли?
  • @milovidov_an #10858 05:58 PM, 07 Apr 2017
    Давайте. Да, вывод gdb очень поможет.
  • @varyhin #10859 07:00 PM, 07 Apr 2017
    Уф Graphouse allows you to use ClickHouse as a Graphite storage
  • @varyhin #10860 07:14 PM, 07 Apr 2017
    Извиняюсь за офтоп побежал разворачивать
  • @272039377 #10861 08:13 PM, 07 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @playboyko #10862 10:20 PM, 07 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #10859 #10863 10:57 PM, 07 Apr 2017
    GitHub - lomik/carbon-clickhouse: Graphite metrics receiver with ClickHouse as storage

    Graphite metrics receiver with ClickHouse as storage - GitHub - lomik/carbon-clickhouse: Graphite metrics receiver with ClickHouse as storage

  • https://t.me/clickhouse_ru
    @Civiloid #10864 11:04 PM, 07 Apr 2017
    GitHub - lomik/graphite-clickhouse: Graphite cluster backend with ClickHouse support

    Graphite cluster backend with ClickHouse support. Contribute to lomik/graphite-clickhouse development by creating an account on GitHub.

  • 08 April 2017 (32 messages)
  • https://t.me/clickhouse_ru
    @BloodJazMan #10865 06:51 AM, 08 Apr 2017
    А есть ссылки ?
  • https://t.me/clickhouse_ru
    @BloodJazMan #10866 06:52 AM, 08 Apr 2017
    Тьфу есть ссылки на graphouse ?
  • https://t.me/clickhouse_ru
    @BloodJazMan #10867 06:54 AM, 08 Apr 2017
    Нашел спасибо
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #10866 #10869 07:16 AM, 08 Apr 2017
    Интересно чем он лучше или хуже того на что я выше ссылки кинул :)
  • https://t.me/clickhouse_ru
    @vladenisov #10870 08:18 AM, 08 Apr 2017
    А из-за чего может появляться DB::Exception: std::bad_cast? Вставляю из одной распределенной таблицы в другую через INSERT INTO t2 SELECT ... FROM t1 с конвертацией в Nullable-колонки. Как можно посмотреть ошибку подробнее через клиент?
  • https://t.me/clickhouse_ru
    @saydamir #10871 11:34 AM, 08 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @ihard ↶ Reply to #10869 #10872 01:58 PM, 08 Apr 2017
    Оно на java черт возьми
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    И сильно ли оно лучше будет чем influxdb?
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #10874 #10875 02:36 PM, 08 Apr 2017
    Оно по функционалу отличается
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #10872 #10876 02:37 PM, 08 Apr 2017
    Ага, это минус
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #10874 #10877 02:38 PM, 08 Apr 2017
    Графхаус не знаю, но ломиковский вариант в single server варианте на запись примерно в 20 раз быстрее
  • https://t.me/clickhouse_ru
    @Civiloid #10878 02:38 PM, 08 Apr 2017
    Но минус в том что тэги там слегка сбоку
  • https://t.me/clickhouse_ru
    @zloidemon #10879 02:39 PM, 08 Apr 2017
    Спасибо, посмотрю тода.
  • https://t.me/clickhouse_ru
    @Civiloid #10880 02:39 PM, 08 Apr 2017
    Вот как сам графхаус я не знаю, то что он на яве и я его из коробки взять не могу - меня останавливает от того чтоб посмотреть
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10881 03:18 PM, 08 Apr 2017
    как clickhouse настроить в распределенном режиме в рамках одного сервера?
  • https://t.me/clickhouse_ru
    @proller #10883 03:52 PM, 08 Apr 2017
    разные порты + разные datadir
  • https://t.me/clickhouse_ru
    @BloodJazMan #10884 05:16 PM, 08 Apr 2017
    Всем привет
    подскажите пожалуйста
    я правильно понимаю что для хранения UUID наиболее эффективным является тип FixedString(16) ?
    вопрос
    если я преобразовал UUID в FixedString(16) и там есть 0x0A или 0x0D
    как мне их правильно заэкранировать в CSV ?
    заменить однобайтовую последовательность на \r или \n?
  • https://t.me/clickhouse_ru
    @BloodJazMan #10885 05:31 PM, 08 Apr 2017
    а почему при парсинге CSV строки без кавычек то \n считается как два символа а не как один?
  • @milovidov_an #10886 07:43 PM, 08 Apr 2017
    Привет.

    > Всем привет
    подскажите пожалуйста
    я правильно понимаю что для хранения UUID наиболее эффективным является тип FixedString(16) ?

    Да.

    > если я преобразовал UUID в FixedString(16) и там есть 0x0A или 0x0D
    как мне их правильно заэкранировать в CSV ?
    заменить однобайтовую последовательность на \r или \n?

    В CSV правила экранирования совсем не такие, как в TSV.
    В CSV надо помещать это значение в кавычки и внутри заменять каждую кавычку на две кавычки. При этом, 0A, 0D остаются как есть.

    Для сравнения, если писать в TSV, то вам надо было бы писать значение не в кавычках, и внутри, экранировать символы - перевод строки, таб и бэкслеш с помощью последовательностей \n, \t, \\.
  • https://t.me/clickhouse_ru
    несколько clickhouse серверов ? можно чуть подробнее. спасибо
  • @varyhin #10888 09:51 PM, 08 Apr 2017
    Вариант с кликхаусом в docker контейнерах вам не подходит?
  • https://t.me/clickhouse_ru
    @proller ↶ Reply to #10887 #10889 10:09 PM, 08 Apr 2017
    для начала не очень задача понятна, для тестов?
  • https://t.me/clickhouse_ru
    задача настроить в распредленном режиме
  • https://t.me/clickhouse_ru
    @AndreevDm #10891 10:20 PM, 08 Apr 2017
    А зачем это делать в рамках одного сервера?
  • https://t.me/clickhouse_ru
    я так понимаю надо 3 сервера. два с mergetree с одинаковыми данными и репликацией между ними + один принимающий сервер который распределяет ?
  • https://t.me/clickhouse_ru
    @AndreevDm #10893 10:29 PM, 08 Apr 2017
    Так не нужно делать
  • https://t.me/clickhouse_ru
    @AndreevDm #10894 10:30 PM, 08 Apr 2017
    В кх мультимастер система, любой сервер может принимать запросы
  • https://t.me/clickhouse_ru
    то есть он превоначально распределенный?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10896 10:31 PM, 08 Apr 2017
    *первоначально
  • https://t.me/clickhouse_ru
    нам надо сделать в виде кластера. несколько серверов
  • https://t.me/clickhouse_ru
    чтобы распределять нагрузку
  • 09 April 2017 (82 messages)
  • https://t.me/clickhouse_ru
    @pavel_odintsov #10899 07:12 AM, 09 Apr 2017
    А это норм после апгрейда
  • https://t.me/clickhouse_ru
    @pavel_odintsov #10900 07:12 AM, 09 Apr 2017
    sudo service clickhouse-server restart
    Include not found: clickhouse_remote_servers
    Include not found: clickhouse_compression
    Stop clickhouse-server service:
    DONE
    Start clickhouse-server service: Include not found: clickhouse_remote_servers
    Include not found: clickhouse_compression
    Path to data directory in /etc/clickhouse-server/config.xml: /var/lib/clickhouse/
    No directory, logging in with HOME=/
    DONE
  • https://t.me/clickhouse_ru
    @pavel_odintsov #10901 07:12 AM, 09 Apr 2017
    ?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #10902 07:12 AM, 09 Apr 2017
    работает вроде ОК, но ошибки пугают :)
  • https://t.me/clickhouse_ru
    @proller #10903 09:58 AM, 09 Apr 2017
    пару месяцев назад меняли директории с /opt/clickhouse на /var/lib/clickhouse/ , желательно проверить где данные на самом деле и что в конфиге осталось
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #10898 #10904 10:47 AM, 09 Apr 2017
    Да, вы просто строите clickhouse кластер и при расчётах используются ресурсы всех серверов. (При правильном градировании конечно)
  • https://t.me/clickhouse_ru
    А можно узнать зачем?
  • https://t.me/clickhouse_ru
    @SLASH_CyberPunk #10906 10:55 AM, 09 Apr 2017
    Вы var отдельно монтируете?
  • https://t.me/clickhouse_ru
    @nikitosiusis #10907 11:00 AM, 09 Apr 2017
    А почему mysql в варлиб тебя не интересует?)
  • https://t.me/clickhouse_ru
    @SLASH_CyberPunk #10908 11:02 AM, 09 Apr 2017
    Потому что это mysql
  • https://t.me/clickhouse_ru
    а где можно глянуть как настроить такой кластер ?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #10909 #10910 11:11 AM, 09 Apr 2017
    В документации. Либо в tutorial. Искать по слову кластер/zookeeper
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10911 11:12 AM, 09 Apr 2017
    ок в понедельник буду разбираться. спасибо)
  • https://t.me/clickhouse_ru
    @umaxfun #10912 12:12 PM, 09 Apr 2017
    всем привет!
    а есть способ в запросе в колонке вывести накопительный итог?
  • https://t.me/clickhouse_ru
    @umaxfun #10913 12:13 PM, 09 Apr 2017
    Без зависимых подзапросов не понятно, как это сделать =(
  • https://t.me/clickhouse_ru
    Еще статья на хабре есть: https://habrahabr.ru/company/smi2/blog/317682/
  • Есть две секретные функции:

    finalizeAggregation:

    /** Принимает состояние агрегатной функции. Возвращает результат агрегации.
    */

    runningAccumulate:

    /** Весьма необычная функция.
    * Принимает состояние агрегатной функции (например runningAccumulate(uniqState(UserID))),
    * и для каждой строки блока, возвращает результат агрегатной функции по объединению состояний
    * от всех предыдущих строк блока и текущей строки.
    *
    * То есть, функция зависит от разбиения данных на блоки и от порядка строк в блоке.
    */

    Пример использования:

    :) SELECT EventDate, finalizeAggregation(state), runningAccumulate(state) FROM (SELECT EventDate, uniqState(UserID) AS state FROM test.hits GROUP BY EventDate ORDER BY EventDate)

    SELECT
    EventDate,
    finalizeAggregation(state),
    runningAccumulate(state)
    FROM
    (
    SELECT
    EventDate,
    uniqState(UserID) AS state
    FROM test.hits
    GROUP BY EventDate
    ORDER BY EventDate ASC
    )

    ┌──EventDate─┬─finalizeAggregation(state)─┬─runningAccumulate(state)─┐
    │ 2014-03-17 │ 36613 │ 36613 │
    │ 2014-03-18 │ 36531 │ 54710 │
    │ 2014-03-19 │ 36940 │ 69953 │
    │ 2014-03-20 │ 36462 │ 83923 │
    │ 2014-03-21 │ 35447 │ 96823 │
    │ 2014-03-22 │ 31555 │ 108564 │
    │ 2014-03-23 │ 31200 │ 119494 │
    └────────────┴────────────────────────────┴──────────────────────────┘
  • @f1yegor #10916 01:21 PM, 09 Apr 2017
    Добавить а reference? ^
  • https://t.me/clickhouse_ru
    @umaxfun #10917 01:22 PM, 09 Apr 2017
    > функция зависит от разбиения данных на блоки и от порядка строк в блоке.
    а вот это что значит? :) если я сделаю order by date, то всё будет норм?
  • Буду рад :)
  • Если результат состоит из нескольких блоков (большой), то это состояние будет сбрасываться каждый блок. Возможно, мы это исправим, и можно будет расчитывать, что при вызове после ORDER BY всё будет Ok.
  • https://t.me/clickhouse_ru
    @umaxfun #10920 01:26 PM, 09 Apr 2017
    Алексей, большое спасибо за ответ!
  • https://t.me/clickhouse_ru
    @umaxfun #10921 01:26 PM, 09 Apr 2017
    Один вопрос остался — большой это сколько? Как мне узнать, что вот сейчас конкретно он даст неверные результаты? Эмпирически?
  • @milovidov_an #10922 01:31 PM, 09 Apr 2017
    Сейчас это не гарантируется. Обычно размер блока - max_block_size. Но в некоторых запросах блоки после ORDER BY получаются маленькими.
  • https://t.me/clickhouse_ru
    @umaxfun #10923 01:31 PM, 09 Apr 2017
    Понял, еще раз спасибо :)
  • https://t.me/clickhouse_ru
    @proller ↶ Reply to #10905 #10924 01:54 PM, 09 Apr 2017
    есть правила расположения файлов на файловой системе, например man hier и лучше им соответствовать.
  • https://t.me/clickhouse_ru
    В opt давно ставится софт, и явно это надо не в либы ставить...
  • @iamigor ↶ Reply to #10925 #10926 01:57 PM, 09 Apr 2017
    /opt
    This directory should contain add-on packages that contain static files.

    /var/lib
    Variable state information for programs.

    по-моему для хранения бд и мета-инфы вторая больше подходит
  • https://t.me/clickhouse_ru
    @SLASH_CyberPunk #10927 01:57 PM, 09 Apr 2017
    Вроде как речь шла про сам сервер, а не файлы БД
  • https://t.me/clickhouse_ru
    @SLASH_CyberPunk #10928 01:57 PM, 09 Apr 2017
    БД вообще предпочитаю в отдельный маунт
  • @iamigor #10929 01:59 PM, 09 Apr 2017
    так бинарник вообще в /usr/bin ставится ж, не?
  • https://t.me/clickhouse_ru
    @proller #10930 02:01 PM, 09 Apr 2017
    /var/lib/mysql /var/lib/postgresql /var/lib/mongodb - и было бы странно сочинять другое место
  • https://t.me/clickhouse_ru
    @proller #10931 02:01 PM, 09 Apr 2017
    хотя в freebsd напрмиер все как всегда более правильно и
    называется /var/db/
  • @f1yegor #10932 06:27 PM, 09 Apr 2017
    в devzen упомянули КХ в связи с этос статьей. https://www.percona.com/blog/2017/03/17/column-store-database-benchmarks-mariadb-columnstore-vs-clickhouse-vs-apache-spark/. @milovidov_an хотел бы поучаствовать в одном из следующих эпизодов?
    Column Store Database Benchmarks: MariaDB ColumnStore vs. Clickhouse vs. Apache Spark - Percona Database Performance Blog

    Column store database benchmark results, comparing the query performance of MariaDB ColumnStore v. 1.0.7 (based on InfiniDB), Clickhouse and Apache Spark.

  • https://t.me/clickhouse_ru
    @umaxfun #10933 06:48 PM, 09 Apr 2017
    Так хорошо, как может быть в заказной статье :) (|irony|)
  • https://t.me/clickhouse_ru
    @SLASH_CyberPunk #10934 07:16 PM, 09 Apr 2017
    Очень похоже, да 😬
  • https://t.me/clickhouse_ru
    @SLASH_CyberPunk #10935 07:16 PM, 09 Apr 2017
    Я все еще жду сравнение с последними версиями Vertica
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10936 08:15 PM, 09 Apr 2017
    Скажите пожалуйста есть ли другой способ выгрузить данные в кх без cat, заканчивается память т.к. при cat все данные в памяти оперативной хранятся и не получается выгрузить дамп больше 100 млн записей ((
    cat table_data.tsv | clickhouse-client —database=statistics —query="INSERT INTO table FORMAT TabSeparated";
  • @yamlcoder #10937 08:17 PM, 09 Apr 2017
    это точно не изза cat
  • @yamlcoder #10938 08:17 PM, 09 Apr 2017
    clickhouse-client —database=statistics —query="INSERT INTO table FORMAT TabSeparated" < table_data.tsv
  • @yamlcoder #10939 08:18 PM, 09 Apr 2017
    вот так без cat, но эффект будет тот же
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10940 08:27 PM, 09 Apr 2017
    tcmalloc: large alloc 1073750016 bytes == 0x48a72000 @
    tcmalloc: large alloc 2147491840 bytes == 0x88a74000 @
    tcmalloc: large alloc 4294975488 bytes == (nil) @
    std::exception: std::bad_alloc
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10941 08:27 PM, 09 Apr 2017
    а что бы это могло значить?
  • https://t.me/clickhouse_ru
    после это команды
  • https://t.me/clickhouse_ru
    @v2nek #10943 08:41 PM, 09 Apr 2017
    можно сплитом пройтись по файлу, разбить по строкам и загружать уже несколько файлов в кх через кат
  • это значит C++ не может выделить памяти.
  • @milovidov_an #10945 08:54 PM, 09 Apr 2017
    В дампе много длинных строк. Попробуйте уменьшить max_insert_block_size.
    Например, так: clickhouse-client —max_insert_block_size=65536 ...
  • Не знаю, никогда не пробовал подкасты. Надо подумать.
  • @f1yegor #10947 08:55 PM, 09 Apr 2017
    "будет весело" - говорили они
  • Их интересует ClickHouse для задачи сбора данных и аналитики производительности MySQL, MongoDB. Хотя я пол года назад предложил его попробовать, они всё сделали сами, даже помощь по настройке не потребовалась.
  • https://t.me/clickhouse_ru
    не помогла те же msgs
  • https://t.me/clickhouse_ru
    не знал про split ) класная штука спасибо
  • @milovidov_an #10951 09:16 PM, 09 Apr 2017
    А насколько длинные?
    ClickHouse не любит очень длинные строки. Работает, но требуется уменьшать всевозможные размеры пачек для обработки.
  • https://t.me/clickhouse_ru
    я как-то на самом деле удивлен. т.к. вчера я загружил 130 млн строк этой командой. а сегодня поставил пароль для пользователя и попытался еще импортнуть один файлик 30 млн строк по 43 столбца. и ошибка(
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10953 09:18 PM, 09 Apr 2017
    то есть вчера этот файл загружался а сегодня с установленным паролем в sha256 уже не грузится. может пароль тут непричем но ничего больше не менял
  • @milovidov_an #10954 09:18 PM, 09 Apr 2017
    Пароль не при чём.
  • в системе не появилось других процессов жрущих память?
  • https://t.me/clickhouse_ru
    @milovidov_an прошу прощения за свою назойливость. Недавно писал вопрос, но к сожалению ответа не получил. Алексей, вы не могли бы все таки прокомментировать?
  • https://t.me/clickhouse_ru
    Load Average 0.07. два ядра почти по 0%. память загружена 303м из 4gb
  • @milovidov_an #10958 09:21 PM, 09 Apr 2017
    Разница в порядке указания столбцов в первичном ключе есть и она очень важна. Данные в кусках сортируются лексикографически по первичному ключу. То есть, если ключ (a, b) - данные будут отсортированы по столбцу a. А для каждого множества строк с одинаковым значением столбца a - по столбцу b.
  • @milovidov_an #10959 09:23 PM, 09 Apr 2017
    Если вы указали условие (равенство, неравенство, IN, комбинация логических связок от этих условий) на столбец a в WHERE - индекс позволит выбирать диапазоны в данных.

    Если вы не указали условие на a, но указали только условие на b - индекс всё-равно может работать, но хуже и лишь при некоторых условиях - если в данных встречаются длинные диапазоны с одинаковыми значениями a - тогда в таких диапазонах ClickHouse сможет выбрать поддипазоны с нужными значениями b и пропустить остальные.
  • @milovidov_an #10960 09:24 PM, 09 Apr 2017
    ClickHouse Primary Keys

    Recently I dived deep into ClickHouse. ClickHouse is column-store database by Yandex with great performance for analytical queries. For…

  • Посмотрите, какая средняя длина строк в файле. Посчитать можно так:
    wc -lc file
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10963 09:26 PM, 09 Apr 2017
    это нормально?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10964 09:26 PM, 09 Apr 2017
    столько демонов
  • @milovidov_an #10965 09:26 PM, 09 Apr 2017
    Это один процесс, но разные потоки. Это нормально.
  • https://t.me/clickhouse_ru
    Спасибо большое!!!
  • https://t.me/clickhouse_ru
    30000000 3551764198 audience_statistic_segments_1.tsv
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10968 09:28 PM, 09 Apr 2017
    я делал дампы из mysql по 30 млн записей и их грузил вчера
  • @milovidov_an #10969 09:29 PM, 09 Apr 2017
    Судя по этому выводу, всё Ок. В среднем строки примерно 100 байт, что немного.
    Тем не менее, попробуйте ещё уменьшить max_insert_block_size в clickhouse-client.
  • https://t.me/clickhouse_ru
    до какого размера? или может это где-то в конфиге задать можно?
  • @milovidov_an #10971 09:33 PM, 09 Apr 2017
    Экспериментируйте. Возможно, проблема не в этом.
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10972 09:47 PM, 09 Apr 2017
    уменьшение этой опции не помогло. странно(
  • @milovidov_an #10973 09:48 PM, 09 Apr 2017
    Разделите файл на куски и найдите минимальный кусок, для которого ошибка проявляется.
  • https://t.me/clickhouse_ru
    разделю о не понятно почему вчера по 30 млн загружалось а сегодня уже нет( или зависит от количество записей в таблице?
  • https://t.me/clickhouse_ru
    разделил на куски в 10 млн
    Code: 173, e.displayText() = DB::Exception: Allocator: Cannot mmap., errno: 12, strerror: Cannot allocate memory, e.what() = DB::Exception
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10976 10:12 PM, 09 Apr 2017
    по htop вижу что равномерно память растет до 4 гигов и просто падает exception что памяти не хватает. как можно обойти это ограничение? не выгружать весь файл в память а как-то потоков писать из файла?
  • @yamlcoder #10977 10:15 PM, 09 Apr 2017
    если вгрузить на один раз и подождать нестрашно, то может своп создать попробовать
  • @f1yegor ↶ Reply to #10976 #10978 10:18 PM, 09 Apr 2017
    а вы случаем не в докере запускаете с какими-то ограничениями по памяти?
  • https://t.me/clickhouse_ru
    @nikitosiusis #10979 10:27 PM, 09 Apr 2017
    на и386:)
  • А какой выпуск devzen слушать, где про это?
  • 10 April 2017 (133 messages)
  • https://t.me/clickhouse_ru
    нет
  • https://t.me/clickhouse_ru
    загрузил меньшим файлом в меньше чем 1 гб (5 млн строк) - файл загрузился

    из сообщения
    tcmalloc: large alloc 1073750016 bytes == 0x486ec000 @ - следует что большой размер7 т.к. они реально больше 1гб. но где это ограничение задается?
  • https://t.me/clickhouse_ru
    @Manatskov #10983 11:22 AM, 10 Apr 2017
    Добрый день! А есть ли в ClickHouse какие-либо ограничения на размер массивов или строк при INSERT-е в формате JsonEachRow?
  • https://t.me/clickhouse_ru
    @Manatskov #10984 11:25 AM, 10 Apr 2017
    Я просто заливаю json, который гарантированно корректный, но ClickHouse ругается на "Code: 26, e.displayText() = DB::Exception: Cannot parse JSON string: expected opening quote: (at row 1), e.what() = DB::Exception", (row может быть произвольный)
  • https://t.me/clickhouse_ru
    @Manatskov #10985 11:33 AM, 10 Apr 2017
    Возможно, нельзя заливать массивы из одних только пустых строк или вроде того...
  • https://t.me/clickhouse_ru
    @Felixoid #10986 11:35 AM, 10 Apr 2017
    У нас в тестинге достаточно часто вырубаются машины по питанию и появилась мысль перманентно (например, в /etc/default/clickhouse) выставлять флажок flags/force_restore_data, чтобы в случае падения машина без вмешательства эксплуатации удаляла из ZK информацию о потеряных кусках

    Но возникли также разумные опасения, к чему может привезти подобная "оптимизация", @milovidov_an? Разумно ли так делать?
  • @VitalVas #10987 12:37 PM, 10 Apr 2017
    Есть вопросик по zookeeper
    у меня есть 3 сервера в 2-х дц - т.е. 3 шарда на 1 дц
    как он себя поведет, если упадет связь между дц, или упадет какая-то нода?
  • @ztlpn #10988 12:40 PM, 10 Apr 2017
    а ZooKeeper так же расположен - три ноды в 2 ДЦ?
  • @VitalVas #10989 12:40 PM, 10 Apr 2017
    да
  • @VitalVas #10990 12:40 PM, 10 Apr 2017
    по три ноды на дц
  • @ztlpn #10991 12:41 PM, 10 Apr 2017
    То есть всего 6 нод zookeeper-а, объединенных в 1 кластер? Или 2 кластера?
  • @VitalVas #10992 12:46 PM, 10 Apr 2017
    да, один кластер
  • @lexa_work #10993 12:52 PM, 10 Apr 2017
    а как вы это согласуете с "As mentioned in the ZooKeeper Getting Started Guide , a minimum of three servers are required for a fault tolerant clustered setup, and it is strongly recommended that you have an odd number of servers."
  • @ztlpn #10994 12:53 PM, 10 Apr 2017
    Чётное число нод делать смысла мало - например и конфигурация из 5 нод, и конфигурация из 6 переживают падение 2 нод, но не переживают падение 3-х. Соответственно в вашем случае при недоступности одного ДЦ или потери связности оба ДЦ уйдут в readonly. Если вы назначите один из ДЦ "главным" и разместите большинство нод zookeeper-а там, то при выпадении "запасного" ДЦ, основной будет доступен.
  • @ztlpn #10995 12:54 PM, 10 Apr 2017
    Полностью симметричной конфигурации, чтобы при выпадении одного ДЦ, второй продолжал работать, сделать не получится.
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #10996 12:54 PM, 10 Apr 2017
    Скажите пожалуйста можно ли как-то включить компрессию при дампе через clickhouse-client? опции такой нету, а нужно локально выгружить данные в native .. ?
  • @vludv ↶ Reply to #10996 #10997 12:56 PM, 10 Apr 2017
    clickhouse-client -q "..." | clickhouse-compressor > data.compressed
  • @ztlpn ↶ Reply to #10984 #10998 01:00 PM, 10 Apr 2017
    Такого быть не должно. Попробуйте сделать минимальный пример файла, на котором проявляется ошибка, и прислать нам.
  • https://t.me/clickhouse_ru
    Спасибо! Попробую
  • https://t.me/clickhouse_ru
    спасибо)
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11001 01:05 PM, 10 Apr 2017
    Скажите сервера 1 CPU и 2gb RAM это очень плохо для запросов на select sum в таблицы с 100 млн записей каждую минуту и около 1000-2000 вставок в секунду ? прочитал что RAM должно быть столько же сколько ГБ данных (я так понял данные в памяти висят). кто что скажет по этому поводу?
  • https://t.me/clickhouse_ru
    @AndreevDm #11002 01:08 PM, 10 Apr 2017
    Привет. Мы выложили в OpenSource Graphouse - компонент, который позволяет использовать ClickHouse как хранилище метрик для Графита.
    Graphouse содержит:
    1. TCP cервер для приема метрик
    2. HTTP API для поиска метрик и получения данных (с питонячим модулем для graphite-web)
    3. HTTP API для управления деревом метрик.

    Лежит тут - https://github.com/yandex/graphouse
    Доступны deb пакеты.
    Документацию постепенно дополняем. Будем рады любым замечаниям и предложениям.
  • @vludv ↶ Reply to #11001 #11003 01:09 PM, 10 Apr 2017
    Зависит от кардинальности выражения группировки, сама аггрегатная функция суммы требует O(1) памяти
  • https://t.me/clickhouse_ru
    @algebram #11004 01:10 PM, 10 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @sidhugo #11005 01:11 PM, 10 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    а может подскажите как распределить нагрузку. я вот создам наверное еще один instance 1 cpu 2gb ram и будет два сервера между которыми нагрузка будет распределятся. я так понимаю надо всего 3 сервера - принимающий Distributed и два с mergetree с одинаковыми данными и репликацией с первого узла с mergetree на второй узел mergetree ?
  • https://t.me/clickhouse_ru
    @vla_vin #11007 01:12 PM, 10 Apr 2017
    Joined.
  • @e11it #11008 01:49 PM, 10 Apr 2017
    Привет @AndreevDm ! Круто! А не подскажешь, чем вы проверки делаете?
  • https://t.me/clickhouse_ru
    @AndreevDm #11009 01:49 PM, 10 Apr 2017
    Какие именно проверки?
  • @e11it #11010 01:50 PM, 10 Apr 2017
    Alertmanager какой..
  • @e11it #11011 01:50 PM, 10 Apr 2017
    ...Что шлет email когда все плохо)
  • https://t.me/clickhouse_ru
    @AndreevDm #11012 02:34 PM, 10 Apr 2017
    У нас всё своё
  • @e11it #11013 02:36 PM, 10 Apr 2017
    А вы на Graphouse остановитесь или и ее выложите? ))
  • https://t.me/clickhouse_ru
    @AndreevDm #11014 02:52 PM, 10 Apr 2017
    Ничего такого выкладывать не планируем
  • Да, в случае частых выключений это Ок.
    Ещё можно поднять лимиты, на которые он ругается при запуске.
    Они задаются в секции <merge_tree>, варианты см. в MergeTreeSettings.h
  • Если у вас есть возможность выложить минимальный вариант файла, на котором проявляется проблема, то я смогу это изучить.
  • https://t.me/clickhouse_ru
    Ну это же нереально круто!
  • https://t.me/clickhouse_ru
    @niknvv #11018 05:31 PM, 10 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    порезал файлик на чанки по 10 млн и файлик загрузился. может база весит в памяти оперативной? то есть загрузил часть данных сделал пару запросов. а на следующий день уже не могу загрузить такой же объем данных. возможно либо результаты запросов остались в памяти либо сама база как-то в памяти висит?
  • Данные не обязаны помещаться в память.
    (Для примера, на наших серверах обычно 128 GB оперативки и 10..60 TB сжатых данных.)

    Но 2 GB - это очень мало. Для хоть сколько-нибудь широких таблиц и запросов с промежуточными данными большой кардинальности будут OOM-ы.
  • Вы можете использовать однородную схему кластера: все серверы могут принимать запросы и выполнять их распределённо. То есть, делать отдельный "принимающий" сервер не обязательно - можно на всех серверах создать одинаковые Distributed таблицы.
  • Да, так работают аллокаторы. Какая-то часть памяти не отдаётся системе, а используется для последующих аллокаций.
  • Поздравляю!

    Насколько я помню, есть намерение выложить ещё две полезные штуки :)
  • https://t.me/clickhouse_ru
    1 cpu 2 gb ram я так понял не потянут кх верно? раньше был 2 cpu 4 gb было норм, сейчас уменьшил instance и получил жесткую нагрузку во время выгрузки данных из кх для бэкапа. load average подскакивает до 2.5
  • @milovidov_an #11025 05:41 PM, 10 Apr 2017
    А зачем такие слабые машины? Лучше меньше машин, по посерьёзнее.
  • https://t.me/clickhouse_ru
    возможно. решили просто попробовать вытянет ли. и он тянет нормально, но когда начинает выгружать данные из 100 млн таблиц с компрессией то average растте критически. думал сделать ограничение cpu для процесса. На самом делел тут проблема лишь в бэкапе.

    Алексей а скажите пожалуйста при однородной схеме кластера на какой сервер слать запрос? или не важно? он перенаправит на другой сервер запрос и вернет результат на первый?
  • @milovidov_an #11027 05:50 PM, 10 Apr 2017
    > возможно. решили просто попробовать вытянет ли. и он тянет нормально, но когда начинает выгружать данные из 100 млн таблиц с компрессией то average растте критически. думал сделать ограничение cpu для процесса. На самом делел тут проблема лишь в бэкапе.

    Для одного запроса ClickHouse использует по-умолчанию не больше CPU ядер, чем есть на машине.

    LA может быть большим, например, из-за того, что система упирается в диски. ClickHouse хочет прочитать что-то с диска. При этом в системе работают другие программы, которые тоже периодически что-то читают, и им приходится тоже ждать. Так получается больше потоков, которые ждут диска и растёт LA.

    Вы можете легко это проверить, запустив
    iostat -dmx 1
  • @milovidov_an #11028 05:53 PM, 10 Apr 2017
    > Алексей а скажите пожалуйста при однородной схеме кластера на какой сервер слать запрос? или не важно? он перенаправит на другой сервер запрос и вернет результат на первый?

    Можно отправлять запрос на любой сервер, он выполнит его распределённо и вернёт результат (впрочем, в случае наличия одного шарда - выполнит его у себя).

    Выбирать следует любой живой сервер, возможно с приоритетами в зависимости от расположения в сети. Вы можете сделать логику на стороне клиента, которая просто выбирает первый попавшийся живой сервер по кругу, соединяясь с небольшим таймаутом. Или можете использовать HAProxy.
  • https://t.me/clickhouse_ru
    А что значит живой? живой тот кто быстро по таймауту вернул результат? иначе дергаем следующий?
  • @milovidov_an #11030 06:01 PM, 10 Apr 2017
    Достаточно проверять возможность соединения с сервером за небольшой таймаут, если соединение ещё не установлено. Это покрывает почти все кейсы (хотя и не все).

    Таймаут на результат не подходит. Запросы бывают разные, с разным временем выполнения.
  • https://t.me/clickhouse_ru
    я понял огромное спасибо) скажите где можно глянуть пример по построеннию однородной схемы кластера ?
  • @milovidov_an #11032 06:16 PM, 10 Apr 2017
    Есть немного здесь: https://clickhouse.yandex/tutorial.html
    Но без пошаговой инструкции.
    Tutorial | ClickHouse Documentation

    ClickHouse Tutorial What to Expect from This Tutorial? By going through this tutorial, you’ll learn how to set up a simp

  • @f1yegor #11033 06:59 PM, 10 Apr 2017
    @milovidov_an http://devzen.ru/episode-0135/ это одна из тем слушателей. слушать с 01:42:44
  • @milovidov_an #11034 07:02 PM, 10 Apr 2017
    Спасибо! Вчера послушал. Человек говорит странное мнение. Как можно подумать, что ClickHouse подходит "только для int-ов", когда самый популярный кейс - это clickstream, где всякие URL, Referer и тому подобное.
  • https://t.me/clickhouse_ru
    @ivmaks #11035 07:25 PM, 10 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11036 07:26 PM, 10 Apr 2017
    и правда странное :)
  • https://t.me/clickhouse_ru
    @ivmaks #11037 07:41 PM, 10 Apr 2017
    добрый вечер, никто не сталкивался с Read timed out равным 30 секундам на jdbc? хачется его увеличить
  • https://t.me/clickhouse_ru
    Может мой вопрос покажется глупым, но я все же задам. если основываться на таймаут то я так понял тут только репликация нужна между серверами чтобы данные всегда были идентичны? зачем тогда Distributed таблицы ? или они для репликаций и нужны?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11039 07:52 PM, 10 Apr 2017
    есть глупый вопрос, есть буфер таблица traffic_buffer, есть таблица, в которую данные пушатся для сохранения на диск - traffic. Хочется сделать селект данныех только из буфер таблицы, чтобы не было выборки из таблицы, которая уже на диске.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11040 07:53 PM, 10 Apr 2017
    судя по документации, select * from traffic_buffer делает выборку из буфер таблицы и из той, что уже сохранена на диск. А мне вот надо именно внутренности буфера.
  • Distributed таблица нужна при наличии в кластере более одного шарда. Шарды - части кластера, содержащие разные части всех данных. Шардирование нужно, если данные не помещаются на один сервер.
  • Такой возможности нет.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11043 07:55 PM, 10 Apr 2017
    :(
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11044 07:56 PM, 10 Apr 2017
    очень-очень жаль :(
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11045 07:56 PM, 10 Apr 2017
    Спасибо за ответ!
  • https://t.me/clickhouse_ru
    а если шардирование не предусматривается? т.к. mergeTree как я понял сам разбивает данные по месяцам что вполне приемливо для нас. единственная цель которую мы преследуем это распределение нагрузки между серверами. я так понимаю два сервера с одинаковыми данными, но нагрузка распределена между ними и вставки и выборки максимально быстрые. может что нибудь посоветуете?
  • https://t.me/clickhouse_ru
    @ivmaks #11047 07:57 PM, 10 Apr 2017
    Если множество столбцов таблицы Buffer не совпадает с множеством столбцов подчинённой таблицы, то будут вставлено подмножество столбцов, которое присутствует в обеих таблицах.
    а если добавить поле которое будет присутствовать только в буферизированной таблице и по нему делать where ?
  • Эту возможность можно добавить - с помощью виртуальных столбцов. Для примера смотрите использование столбца _part в StorageMergeTree.
  • Тогда запрос кинет исключение, потому что не увидит этого поля в основной таблице.
  • Если шардирование не используется, то и Distributed таблицы создавать не надо.
  • https://t.me/clickhouse_ru
    тогда как распределить нагрузку ? я рассуждаю на уровне mysql. может в кх это по другмоу работает, если да, то как?
  • https://t.me/clickhouse_ru
    Балансировка MySQL

    Это краткая заметка как настроить отказоустойчевый кластер с балансировкой нагрузки из 2 MySQL серверов. Исходные данные 2 свежеустановленных MySQL сервера. Необ...

  • @milovidov_an #11053 08:12 PM, 10 Apr 2017
    На стороне клиента, который ходит на ваш кластер из одного шарда и многих реплик, вы можете воспользоваться одним из трёх вариантов:
    1. Выбирать живую реплику в клиентском коде.
    2. Установить HAProxy и ходить в него.
    3. Установить пустой clickhouse-server и создать на нём Distributed таблицу, которая смотрит на кластер. Ходить в него.
  • @igor_abdrakhimov #11054 08:15 PM, 10 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @ivmaks ↶ Reply to #11037 #11055 08:22 PM, 10 Apr 2017
    "default.socket_timeout": "120000"
    для #zeppelin
  • https://t.me/clickhouse_ru
    мне это надо переварить) я так понимаю смысл балансировки в нахождении более быстрого узла в класстере и обращению к нему?
  • @milovidov_an #11057 08:24 PM, 10 Apr 2017
    Обычно просто для отказоустойчивости и распределения нагрузки.
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11058 08:27 PM, 10 Apr 2017
    но репликация должны быть двухстороняя ?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11059 08:28 PM, 10 Apr 2017
    если говорить о однородной схеме класстера
  • @milovidov_an #11060 08:28 PM, 10 Apr 2017
    В ClickHouse репликация всегда multi-master.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11061 09:14 PM, 10 Apr 2017
    вопрос по плагину Гарфаны для CH. А как добиться, чтобы оно работало, когда у меня CH на 127.0.0.1, а в гарфану я хожу проксируя ее через nginx с http auth?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11062 09:14 PM, 10 Apr 2017
    я выбираю proxy режим, но при попытке теста соединения меня выбивает и требует пароль от узла, на котором у меня доступна графана.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11063 09:16 PM, 10 Apr 2017
    InfluxDB подключен точь-в-точь по такой же схеме, но при этом пашет ОК.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11064 09:20 PM, 10 Apr 2017
    Такое ощущение, то ли он пытается использовать мой http auth пароль для того, чтобы влезть в CH либо что-то еще.
  • @varyhin #11065 09:21 PM, 10 Apr 2017
    Я могу ошибаться но галочка proxy в grafana в таком случае не нужна
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11066 09:23 PM, 10 Apr 2017
    не, у меня что инфлакс что кликхаус - на 127.0.0.1
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11067 09:24 PM, 10 Apr 2017
    Графана выставлена на публичный айпи и закрыта http auth. То есть инфлакс ходит в режиме прокси.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11068 09:24 PM, 10 Apr 2017
    Пытаюсь добиться точь-в-точь такого же поведения с CH
  • @varyhin #11069 09:24 PM, 10 Apr 2017
    http://ip_proxy:порт_clickhouse + Basic Auth c логиным и паролем от CH
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11070 09:26 PM, 10 Apr 2017
    а если пароль на CH дефалтный / без пароля?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11071 09:28 PM, 10 Apr 2017
    меня еще смущает "There is a small feature - ClickHouse treats HTTP Basic Authentication credentials as a database user and will try to run queries using its name."
  • @varyhin #11072 09:28 PM, 10 Apr 2017
    Так не пробовал но по умолчанию у пользователя default в пароля нет
  • @varyhin #11073 09:29 PM, 10 Apr 2017
    Если не вводить пользователя используется пользователь default
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11075 09:30 PM, 10 Apr 2017
    вот так вот оно ведет себя в отладке хрома
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11076 09:31 PM, 10 Apr 2017
    Www-Authenticate:Basic realm="ClickHouse server HTTP API"
  • @varyhin #11077 09:32 PM, 10 Apr 2017
    http://ip:8123/ что выдает в отладке
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11078 09:32 PM, 10 Apr 2017
    угу, судя по всему как-то данные от моего логина в Графану закрытого http auth просачиваются как реквизиты для коннекта к кликхаусу
  • @sr_maks1 #11079 09:32 PM, 10 Apr 2017
    скорее всего надо настраивать.
  • @sr_maks1 #11080 09:32 PM, 10 Apr 2017
    Просто если два basic
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11081 09:32 PM, 10 Apr 2017
    Bad Gateway :)
  • @sr_maks1 #11082 09:32 PM, 10 Apr 2017
    то один затрет второй
  • @sr_maks1 #11083 09:33 PM, 10 Apr 2017
    профит
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11084 09:33 PM, 10 Apr 2017
    ну при выборках с CH мне вообще атворизация не нужна, все с одних реквизитов лезут
  • @varyhin #11085 09:35 PM, 10 Apr 2017
    Это из описания clickhouse datasource c grafana.com "ClickHouse treats HTTP Basic Authentication credentials as a database user and will try to run queries using its name."
  • @varyhin #11086 09:36 PM, 10 Apr 2017
    Видимо так как ты хочешь не получиться сделать
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11087 09:37 PM, 10 Apr 2017
    или создать такого же юзера в базе, лол.
  • @varyhin #11088 09:37 PM, 10 Apr 2017
    Ну это что то больно извращенно и не факт что работать будет
  • https://t.me/clickhouse_ru
    @Civiloid #11089 09:39 PM, 10 Apr 2017
    мне всегда казалось что в графане можно переопределить user/password в проксе.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11090 09:40 PM, 10 Apr 2017
    как-нить вот так http://default:@127.0.0.1:8123 ?
  • https://t.me/clickhouse_ru
    @Civiloid #11091 09:40 PM, 10 Apr 2017
    например так
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11092 09:40 PM, 10 Apr 2017
    неа, нихт.
  • @sr_maks1 #11093 09:40 PM, 10 Apr 2017
    ну либо извратиться с авторизацией.
  • @sr_maks1 #11094 09:40 PM, 10 Apr 2017
    я думаю можно в нгинксе типа так
  • @sr_maks1 #11096 09:41 PM, 10 Apr 2017
    ну либо почитать подобное.
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #11092 #11097 09:41 PM, 10 Apr 2017
    как минимум в графитном datasource'е можно ткнуть галку basic auth
  • @sr_maks1 #11098 09:41 PM, 10 Apr 2017
    я буду такое делать но не сейчас. Просто пару раз наталкивался на подобное
  • https://t.me/clickhouse_ru
    @Civiloid #11099 09:41 PM, 10 Apr 2017
    и переопределить имя-пароль
  • https://t.me/clickhouse_ru
    @Civiloid #11100 09:41 PM, 10 Apr 2017
    или оно тоже не работает?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11101 09:41 PM, 10 Apr 2017
    неа(
  • https://t.me/clickhouse_ru
    @Civiloid #11102 09:42 PM, 10 Apr 2017
    а tcpdump что говорит во всех этих случаях?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11103 09:44 PM, 10 Apr 2017
    тут еще сайд эффект
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11104 09:45 PM, 10 Apr 2017
    что меня вышибает после этого с графаны, куда я зашел по http auth :/
  • @sr_maks1 #11105 09:45 PM, 10 Apr 2017
    Ужас какой
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11106 09:49 PM, 10 Apr 2017
    Ситуация чутка прояснилась ""Code: 192, e.displayText() = DB::Exception: Unknown user admin, e.what() = DB::Exception""
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11107 09:50 PM, 10 Apr 2017
    нашел вот это в отладке хрома, то есть оно и правда пытается лезть в CH с реквизитами, которе я использую для входа в гарфану
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11108 09:51 PM, 10 Apr 2017
    заиметь бы флажок, чтобы отрубить такое поведение :)
  • https://t.me/clickhouse_ru
    В общем, такое дело. Оказалось, что в Nested альтером по ошибке были добавлены колонки не типа Array(String), а типа String. ClickHouse разрешил в Nested добавить колонки не типа Array(T) по какой-то причине... Но тут и человеческий фактор сыграл, конечно.
    В итоге, скорее всего, кликхаус при парсинге JSON ожидал и пытался "считать" строку вида '"string1"', а получал '["string1", "string2", "string3"]' (без кавычки в начале), и выдавал ошибку о том, что не может в (типа) '"string1"' считать открывающую кавычку.
    Тут меня скорее удивило даже не то, что КХ пропустил в Nested не-array, а то, что парсинг JSON не независимый, а завязан на структуру таблицы. Скорее всего, так оно и задумано; скорее всего, для каких-то целей эффективности. Но, если бы было иначе, то, скорее всего, в таких случаях выдавалась бы ошибка о "несовместимости типов String и Array(String) в колонке такой-то". Но, к сожалению, ошибка была не очень очевидная ("Code: 26, e.displayText() = DB::Exception: Cannot parse JSON string: expected opening quote: (at row 1), e.what() = DB::Exception") =(
    К счастью, в итоге разобрался и всё работает чудесно =)
    Вот такие дела. Могу завести багу на гитхабе, в принципе, но даже не знаю о чём тут...
    В принципе, о том, что КХ позволяет заальтерить Nested не-массивными типами, что ли. Ну или, возможно, о более ясных текстах ошибок при парсинге JSON, но это не так просто будет пофиксить, как мне кажется.
  • https://t.me/clickhouse_ru
    @orantius #11110 10:29 PM, 10 Apr 2017
    Nested - это лексическое соглашение, по которому столбцы с точкой в имени и одинаковым префиксом считаются массивами одинаковой длины когда вы делаете array join nestedname, но это допущение не проверяется при записи строк и создании колонок.
  • https://t.me/clickhouse_ru
    @Manatskov #11111 10:37 PM, 10 Apr 2017
    Да, к сожалению, не проверяется
  • @ztlpn #11112 10:40 PM, 10 Apr 2017
    Думаю что всё-таки надо проверять, потому что таблицей после такого альтера пользоваться невозможно. Создавайте issue.
  • https://t.me/clickhouse_ru
    done)
  • 11 April 2017 (139 messages)
  • https://t.me/clickhouse_ru
    Это поведение не графаны, а самого КХ
    описано в https://clickhouse.yandex/reference_ru.html#HTTP интерфейс

    Считаю, что это весьма правильное решение. В противном случае, необходимо было бы указывать логин/пароль отдельно для basic auth и для самого КХ
    Документация ClickHouse | Документация ClickHouse

    ClickHouse is a fast open-source column-oriented database management system that allows generating analytical data reports in real-time using SQL queries

  • https://t.me/clickhouse_ru
    @hagen1778 #11115 05:22 AM, 11 Apr 2017
    В нашем случае для доступа из графаны в КХ всегда должен использоваться пользователь с ограниченными правами и квотами. Поэтому и basic auth и КХ настроены на работу с ним
  • https://t.me/clickhouse_ru
    не совсем понимаю, что Вы имеете в виду
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11117 06:50 AM, 11 Apr 2017
    Возможно, это удобно в каком-то кейсе. Но CH без проблем дает указывать логин и пароль в строке запроса вместо http auth. Вот именно этого и хочется.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11118 06:51 AM, 11 Apr 2017
    Создавать юзеров в CH не шибко удобно. Но если бы он мог читать стандартный файл паролей в формате apache/nginx и создавать юзеров с него - это решило бы проблему.
  • https://t.me/clickhouse_ru
    @Civiloid #11119 07:07 AM, 11 Apr 2017
    Или ldap :)
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11120 07:08 AM, 11 Apr 2017
    боже упаси
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #11120 #11121 07:16 AM, 11 Apr 2017
    Мы уже вляпались
  • https://t.me/clickhouse_ru
    Я заведу issue на этот случай

    На данный момент Вы можете разрешить свою проблему использованием одинаковой пары логин/пароль для КХ и basic auth перед ним
    Более того, советую создать и настроить доступ из мира к КХ через специального пользователя с ограниченными правами
  • https://t.me/clickhouse_ru
    Не совсем лексическое. При запросах работают всякие ARRAY JOIN prefix.
  • https://t.me/clickhouse_ru
    @the_real_jkee #11124 07:24 AM, 11 Apr 2017
    Но отсутствие проверки на одинаковую длину это фейл, надо делать.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11125 07:28 AM, 11 Apr 2017
    Спасибо!) Очень благодарен за внимание к проблеме!)
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11126 07:28 AM, 11 Apr 2017
    Сейчас попробуем закостылить :)
  • @DigDiver #11127 07:37 AM, 11 Apr 2017
    День добрый всем. Как при вставке из формата JSONEachRow заставить работать DEFAULT значения?

    CREATE TABLE test (
    date Date,
    isp String,
    id Int64 DEFAULT 10,
    ispHash Int64 DEFAULT cityHash64(isp)
    )
    ENGINE = MergeTree(date, (date), 8192)

    insert into test FORMAT JSONEachRow
    {"date":"2017-02-02","isp":"Gmail"}

    в моем случае поля id и ispHash - имеют нулевые значения после инсерта. Если делать через Values, то отрабатывает правильно, но нужен формат JSONEachRow.
  • https://t.me/clickhouse_ru
    @WladySpb #11128 08:25 AM, 11 Apr 2017
    А если вместо DEFAULT создать MATERIALIZED поля?
  • @DigDiver ↶ Reply to #11128 #11129 08:31 AM, 11 Apr 2017
    Спасибо, сработало.
  • https://t.me/clickhouse_ru
    @rattrog #11130 08:41 AM, 11 Apr 2017
    Добрый день. А есть возможность настроить кликхаус на работу с директорией отличной от /opt/clickhouse? Или только через симлинк?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11131 08:42 AM, 11 Apr 2017
    создал юзера с CH с тем же паролем, что у меня был на http auth в графане, вышло "Data source is working" :)
  • @iamigor ↶ Reply to #11130 #11132 08:43 AM, 11 Apr 2017
    так вроде недавно как раз с /opt/ на /var/lib поменяли
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11133 08:43 AM, 11 Apr 2017
    ога
  • @iamigor #11134 08:43 AM, 11 Apr 2017
    <!-- Path to data directory, with trailing slash. -->
    <path>/usr/local/var/lib/clickhouse/</path>

    это в config.xml, если что
  • https://t.me/clickhouse_ru
    @rattrog ↶ Reply to #11134 #11135 08:45 AM, 11 Apr 2017
    Спасибо. Сейчас попробую
  • @iamigor #11136 08:45 AM, 11 Apr 2017
    там еще <tmp_path> есть
  • @coolco #11137 08:55 AM, 11 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11138 09:02 AM, 11 Apr 2017
    а есть у кого пример запроса для PieChart созданный вручную через ввод SQL в CH?
  • https://t.me/clickhouse_ru
    @hagen1778 #11139 09:09 AM, 11 Apr 2017
    Вы можете использовать макрос $columns из плагина для графаны
  • https://t.me/clickhouse_ru
    @hagen1778 #11140 09:11 AM, 11 Apr 2017
    в плагине это будет выглядеть примерно так
    $columns(
    Client c,
    sum(Requests) Requests)
    FROM $table
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11141 09:11 AM, 11 Apr 2017
    О, спасибо! Попробую))
  • https://t.me/clickhouse_ru
    @hagen1778 #11142 09:12 AM, 11 Apr 2017
    или без макроса -
    SELECT
    t,
    groupArray((c, Requests)) AS groupArr
    FROM
    (
    SELECT
    (intDiv(toUInt32(DateTime), 3600) * 3600) * 1000 AS t,
    Client AS c,
    sum(Requests) AS Requests
    FROM stats
    GROUP BY
    t,
    c
    ORDER BY
    t ASC
    )
    GROUP BY t
    ORDER BY t ASC
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11143 09:13 AM, 11 Apr 2017
    Круть, спасибо!)
  • @defaultColours #11144 10:15 AM, 11 Apr 2017
    добрый день
  • @defaultColours #11145 10:16 AM, 11 Apr 2017
    господа, подскажите пожалуйста, что-то серьезное менялось в кх за последнее время? он у нас крутится в докере, пытался сегодня обновить, он валится, пришлось откатить
  • @defaultColours #11146 10:16 AM, 11 Apr 2017
    # docker images |grep clickhouse
    yandex/clickhouse-server latest c8068646a915 12 days ago 796 MB
    yandex/clickhouse-server <none> 5ae091f607a9 2 months ago 883 MB
  • https://t.me/clickhouse_ru
    @etkee #11147 10:17 AM, 11 Apr 2017
    приложите, пожалуйста, ошибку,"валится" - слишком широкое сообщение
  • @defaultColours #11148 10:17 AM, 11 Apr 2017
    сейчас, не успеваю :)
  • @defaultColours #11149 10:18 AM, 11 Apr 2017
    clickhouse_1 | 2017.04.11 10:13:32.648312 [ 4 ] <Trace> HTTPHandler-factory: HTTP Request for HTTPHandler-factory. Method: POST, Address: [::ffff:10.0.111.1]:55926, User-Agent: python-requests/2.11.1
    clickhouse_1 | 2017.04.11 10:13:32.648329 [ 4 ] <Trace> HTTPHandler: Request URI: /
    clickhouse_1 | 2017.04.11 10:13:33.131553 [ 4 ] <Debug> executeQuery: (from [::ffff:10.0.11.1]:55926) INSERT INTO h.alive FORMAT TabSeparated
    clickhouse_1 | 2017.04.11 10:13:33.131640 [ 4 ] <Debug> MemoryTracker: Peak memory usage (total): 0.00 B.
    clickhouse_1 | 2017.04.11 10:13:33.141496 [ 4 ] <Error> HTTPHandler: Code: 60, e.displayText() = DB::Exception: Table h.alive doesn't exist., e.what()
    = DB::Exception, Stack trace:
  • @defaultColours #11150 10:18 AM, 11 Apr 2017
    валится вот так и дальше стектрейс
  • @iamigor #11151 10:18 AM, 11 Apr 2017
    /opt/clickhouse -> /var/lib/clickhouse?
  • @defaultColours #11152 10:18 AM, 11 Apr 2017
    ага, путь изменился?
  • @defaultColours #11153 10:18 AM, 11 Apr 2017
    спасибо, сейчас рестартну
  • @defaultColours #11154 10:43 AM, 11 Apr 2017
    спасибо
  • @varyhin #11155 11:07 AM, 11 Apr 2017
    Ребят подскажите ваше мнение чем лучше наполять clickhouse через HTTP интерфейс на ежедневной основе из различных источников (MSSQL/ORACLE/DB2) пока думаем в сторону pentaho data integration
  • @varyhin #11156 11:09 AM, 11 Apr 2017
    Необходимо перекидывать новые данные появившиеся в таблицах с момента прошлой загрузки
  • @varyhin #11157 11:10 AM, 11 Apr 2017
    Есть ограничения на стороне источников есть только учетка в базу данных с возможностью чтения
  • https://t.me/clickhouse_ru
    @saydamir #11158 11:15 AM, 11 Apr 2017
    есть способ переключить инстанс кликхауса на работу с другой нодой зукипера, кроме как сделать эту ноду зукипера недоступной?
  • https://t.me/clickhouse_ru
    @rattrog ↶ Reply to #11155 #11159 11:17 AM, 11 Apr 2017
    Насколько я понимаю, pentaho DI раньше назывался pentaho Kettle. Шупал его года два-три назад. Вещь в себе, притом трудно поддерживаемая. Мэппинги сложно отлаживать, есть архитектурные косяки (не помню точно, какие, но помню, что долго придумывал как их обходить). Визуальная среда проектирования на базе эклипс 🤢, плюс вообще, визуальные языки сложно поддерживать: ты видишь диаграмму верхнего уровня, но задолбаешься протыкивать мышкой каждый шаг, чтоб понять, что он делает.
  • https://t.me/clickhouse_ru
    @rattrog ↶ Reply to #11155 #11160 11:19 AM, 11 Apr 2017
    Я бы посоветовал просто написать ETL код на каком-нибудь языке с поддержкой ФП. Как вариант - на джава 8 со стримами. Если нужна кластеризация (big data) - логично делать ETL на базе map reduce стека какого-нибудь. Hadoop тот же самый
  • https://t.me/clickhouse_ru
    @rattrog #11161 11:21 AM, 11 Apr 2017
    В варианте с ETL, написанном на обычном ЯП с поддержкой функционального программирования, получается гораздо более управляемая система.
  • @varyhin #11162 11:21 AM, 11 Apr 2017
    Андрей спасибо!
  • @lexa_work #11163 11:22 AM, 11 Apr 2017
    если нужна поточность и какая-то near real-time-овость, то можно глянуть в сторону Flink, Storm и еще что-то не давно в Apache свалилось интересное
  • @lexa_work #11164 11:22 AM, 11 Apr 2017
    там та же функциональщина, и бигдата + всякая обвязка для кластеризации
  • @varyhin #11165 11:23 AM, 11 Apr 2017
    Алексей спасибо! Ваш вариант тоже изучим
  • https://t.me/clickhouse_ru
    @Manatskov #11166 11:30 AM, 11 Apr 2017
    Добрый день! Подскажите, пожалуйста, а есть ли всё-таки возможность как-то посчитать min/max в таблицах типа CollapsingMergeTree? Может быть, как-то подзапросами?
  • https://t.me/clickhouse_ru
    Не для КХ, а другой базы, но отказался от пентахо из-за сложности реализации соответсвий типов. Выбрали Talend продукты. Но если есть возможность, лучше пишите свое, ибо подстраиваться под софт очень тяжело...
  • https://t.me/clickhouse_ru
    @SLASH_CyberPunk #11168 11:44 AM, 11 Apr 2017
    И да, все open-source/community инструменты по ETL отвратительные в плане совместной работы
  • @120945468 #11169 11:56 AM, 11 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @andrnag #11170 12:01 PM, 11 Apr 2017
    @milovidov_an Алексей, вы упоминали на митапе, что в Яндексе кто-то поднял кластер КХ на ZFS on Linux. Есть ли в чате кто-то кто может описать впечатления о стабильности ZFS on Linux и пригодности к использованию в продакшене?
  • @varyhin ↶ Reply to #11167 #11171 12:28 PM, 11 Apr 2017
    Есть 20 территориально распределенных БД DB2 в каждой из есть таблица из 10 столбцов (string int32 datetime) куда пишут датчики о своем состоянии. Прирост таблицы около 1000 строк в минуту. Нужно раз в минуту опрашивать 20 баз данных и выгребать новые строки в clickhouse. В операционную систему серверов DB2 доступа нет. В DB2 доступ только на чтение.
  • https://t.me/clickhouse_ru
    с такой задачей я бы написал свой инструмент
  • Остается надеяться, что в этих таблицах у вас есть удобное поле для организации CDC (типа монотонно возрастающий id). Тогда может получиться достаточно просто, надежно и без вероятных дубликатов
  • @lexa_work #11174 12:57 PM, 11 Apr 2017
    хотя, с дубликатами может и CH справиться...
  • @358851797 #11175 12:58 PM, 11 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @vladimirmashkov #11176 01:10 PM, 11 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @zabralsebe #11178 01:27 PM, 11 Apr 2017
    а кто как, кстати, с дубликатами борется? :)
  • https://t.me/clickhouse_ru
    @zabralsebe #11179 01:27 PM, 11 Apr 2017
    если не считать optimize
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11180 01:58 PM, 11 Apr 2017
    опять не выходит камменый цветок с PieChart в графане :(
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11181 01:59 PM, 11 Apr 2017
    пытаюсь отрисовать вот такое SELECT srcAsn AS asn, sum(length) AS total_traffic FROM traffic_buffer GROUP BY asn ORDER BY total_traffic DESC LIMIT 10
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11182 02:02 PM, 11 Apr 2017
    "ORDER BY time supported at this time" и возникает вопрос, а как ограничить число элементов на диаграмме только топ10, а-то у меня браузер виснет от тысяч =(
  • https://t.me/clickhouse_ru
    ну тут больше недоработка макроса, который не позволяет использовать лимиты и ордеры. Проблему можно решить подзапросом. А в плагине я собираюсь это скоро исправить. Сейчас посмотрю пример
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11184 02:20 PM, 11 Apr 2017
    спасибо!)
  • https://t.me/clickhouse_ru
    @hagen1778 #11185 02:20 PM, 11 Apr 2017
    $columns(
    Client c,
    sum(Reqs) Reqs)
    FROM $table
    WHERE Client in (
    SELECT Client
    FROM
    (
    SELECT
    Client,
    sum(Reqs) Reqs
    FROM $table
    GROUP BY Client
    ORDER BY Reqs DESC
    LIMIT 20
    ))
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11186 02:33 PM, 11 Apr 2017
    ммм, я наверное не до конца понимаю логику
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11187 02:33 PM, 11 Apr 2017
    я могу задать table в конструкторе
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11188 02:34 PM, 11 Apr 2017
    но когда я ввожу запрос в поле QUERY, его стирает и переделывает, если я меняю что-либо из параметров
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11189 02:34 PM, 11 Apr 2017
    в то же время если я делаю toggle mode, у меня вообще все опции выключаются и становится не ясно, как указать ту же table
  • https://t.me/clickhouse_ru
    @hagen1778 #11190 02:35 PM, 11 Apr 2017
    я не уверен, что вы используете последнюю версию плагина. В любом случае, вы можете указать вместо $table просто имя таблицы
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #11166 #11191 02:36 PM, 11 Apr 2017
    а какой тип у ваших значений и какую функцию от них вы хотите посчитать?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11192 02:36 PM, 11 Apr 2017
    я стянул его с гарфана нет, лучше с гита тянуть?
  • https://t.me/clickhouse_ru
    @hagen1778 #11193 02:37 PM, 11 Apr 2017
    да, на графана.нет не самая новая версия
  • https://t.me/clickhouse_ru
    @IlyaSinelnikov #11194 03:01 PM, 11 Apr 2017
    Joined.
  • Сейчас спрошу у знающего человека...
  • https://t.me/clickhouse_ru
    @presto53 ↶ Reply to #11170 #11196 03:24 PM, 11 Apr 2017
    Привет. Да, поднимали для целей бэкапов, большой нагрузки на него нет, что касается стабильности, то за ~1 год никаких существенных проблем с ним не возникало.
  • https://t.me/clickhouse_ru
    @presto53 #11197 03:24 PM, 11 Apr 2017
    Если есть какие-то более конкретные вопросы, то можно их задать мне.
  • https://t.me/clickhouse_ru
    @andrnag #11198 03:26 PM, 11 Apr 2017
    @milovidov_an @presto53 Спасибо.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11199 03:29 PM, 11 Apr 2017
    поймал какое-то крааайне странное поведение таблицы буфер
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11200 03:29 PM, 11 Apr 2017
    делаю вот такой запрос на буффер таблицу
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11201 03:29 PM, 11 Apr 2017
    SELECT dstAsn, sum(length) AS length FROM traffic_buffer GROUP BY dstAsn ORDER BY length DESC LIMIT 10
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11202 03:29 PM, 11 Apr 2017
    получаю вот такой бред:
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11203 03:29 PM, 11 Apr 2017
    ┌─dstAsn─┬───────────────length─┐
    │ 1502 │ 18351949192765233766 │
    │ 265 │ 18094662927337839107 │
    │ 1462 │ 17797213894484028375 │
    │ 1213 │ 17666271323459185848 │
    │ 1491 │ 17572761437988275181 │
    │ 1238 │ 17314826234977620221 │
    │ 1389 │ 17228713838271841746 │
    │ 1164 │ 16975815251666726881 │
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11204 03:30 PM, 11 Apr 2017
    а вот тот же запрос, на таблицу на диске
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11205 03:30 PM, 11 Apr 2017
    SELECT dstAsn, sum(length) AS length FROM traffic GROUP BY dstAsn ORDER BY length DESC LIMIT 10
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11206 03:30 PM, 11 Apr 2017
    │ 8473 │ 1948338049 │
    │ 43513 │ 947373740 │
    │ 16276 │ 421553898 │
    │ 24940 │ 267350030 │
    │ 60117 │ 220325712 │
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11207 03:30 PM, 11 Apr 2017
    и это верные данные, судя по порядку величин в буфер таблице есть странные подозрения на переполнение....
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11208 03:32 PM, 11 Apr 2017
    но в тоже время, если сделать выборку из обоих таблиц на предмет суммарного length по всей таблцие - все ок, значения идентичные и корректные.
  • @milovidov_an #11209 03:35 PM, 11 Apr 2017
    Если попробовать поискать проблемные строки с большими или отрицательными значениями?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11210 03:36 PM, 11 Apr 2017
    все визуально ок...
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11211 03:36 PM, 11 Apr 2017
    SELECT min(length)
    FROM traffic_buffer

    ┌─min(length)─┐
    │ 64 │
    └─────────────┘
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11212 03:37 PM, 11 Apr 2017
    SELECT max(length)
    FROM traffic

    ↙️ Progress: 22.36 million rows, 178.90 MB (220.23 million rows/s., 1.76 GB/s.) ┌─max(length)─┐
    │ 1522 │
    └─────────────┘
  • @milovidov_an #11213 03:37 PM, 11 Apr 2017
    max?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11214 03:37 PM, 11 Apr 2017
    тоже самое в обоих таблицах, что в персистент, что в буферной
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11215 03:40 PM, 11 Apr 2017
    столбец типа: length UInt64
  • @milovidov_an #11216 03:40 PM, 11 Apr 2017
    Насколько часто сбрасывается буфер? Исчезает ли проблема, если форсировать сброс буфера (OPTIMIZE TABLE)?
  • @ztlpn #11217 03:40 PM, 11 Apr 2017
    а если SELECT max(length) FROM traffic_buffer?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11218 03:41 PM, 11 Apr 2017
    неа, сделал оптимайз на все таблицы, не помогло
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11219 03:41 PM, 11 Apr 2017
    сброс каждые 10000 записей, примерно раз в 10 секунд
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11220 03:41 PM, 11 Apr 2017
    уже проверил, максимум - 1522.
  • @milovidov_an #11221 03:41 PM, 11 Apr 2017
    То есть, проблема проявляется, даже если буфер пуст?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11222 03:41 PM, 11 Apr 2017
    угу :(
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11223 03:41 PM, 11 Apr 2017
    я могу остановить поток
  • @milovidov_an #11224 03:42 PM, 11 Apr 2017
    Одинаковая ли структура таблицы buffer и таблицы, в которую сбрасывается?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11225 03:42 PM, 11 Apr 2017
    одинаковая
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11226 03:42 PM, 11 Apr 2017
    хыыы, остановил залив данных - баг пропал
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11227 03:42 PM, 11 Apr 2017
    как только запустил - через секунду снова воспроизвелся.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11228 03:42 PM, 11 Apr 2017
    SELECT
    dstAsn,
    max(length) AS length
    FROM traffic_buffer
    GROUP BY dstAsn
    ORDER BY length DESC
    LIMIT 10

    ↙️ Progress: 25.66 million rows, 307.87 MB (251.96 million rows/s., 3.02 GB/s.) ┌─dstAsn─┬─length─┐
    │ 196798 │ 1522 │
    │ 197082 │ 1522 │
    │ 13147 │ 1522 │
    │ 46433 │ 1522 │
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11229 03:43 PM, 11 Apr 2017
    и через секунду (запустил поток)
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11230 03:43 PM, 11 Apr 2017
    SELECT
    dstAsn,
    max(length) AS length
    FROM traffic_buffer
    GROUP BY dstAsn
    ORDER BY length DESC
    LIMIT 10

    → Progress: 16.71 million rows, 200.46 MB (163.71 million rows/s., 1.96 GB/s.) ┌─dstAsn─┬───────────length─┐
    │ 1522 │ 1693771892837325 │
    │ 142 │ 872088814537677 │
    │ 0 │ 871680792791368 │
    │ 162 │ 871672202709965 │
    │ 64 │ 871672202709965 │
  • @milovidov_an #11231 03:46 PM, 11 Apr 2017
    Выполнялся ли ALTER таблиц?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11232 03:47 PM, 11 Apr 2017
    ниразу
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11233 03:47 PM, 11 Apr 2017
    вчера дропал и создавал заново, с небольшими изменениями схемы.
  • @milovidov_an #11234 03:51 PM, 11 Apr 2017
    Проблема проявляется на одном сервере кластера или на всех?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11235 03:52 PM, 11 Apr 2017
    кластера нету, установка на одной машине
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11236 03:53 PM, 11 Apr 2017
    машина с ECC, model name : Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz
  • @ztlpn #11237 03:54 PM, 11 Apr 2017
    А какие были изменения схемы?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11238 03:57 PM, 11 Apr 2017
    добавил поле packetDateTime DateTime
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11239 03:57 PM, 11 Apr 2017
    схема выглядит вот так
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11240 03:57 PM, 11 Apr 2017
    SHOW CREATE TABLE traffic

    ┌─statement────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
    │ CREATE TABLE fastnetmon.traffic ( packetDate Date, packetDateTime DateTime, source Int8, sampleRatio UInt32, srcIp UInt32, dstIp UInt32, srcAsn UInt32, dstAsn UInt32, ipProtocolVersion UInt8, ttl UInt8, sourcePort UInt16, destinationPort UInt16, protocol UInt32, length UInt64, numberOfPackets UInt64, flags UInt8, ipFragmented Int8, ipDontFragment Int8, packetPayloadLength Int32, packetPayloadFullLength UInt32, packetDirection Int8) ENGINE = MergeTree(packetDate, (srcIp, dstIp, packetDate), 8192) │
    └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
    → Progress: 1.00 rows, 16.00 B (284.25 rows/s., 4.55 KB/s.)
    1 rows in set. Elapsed: 0.004 sec.

    :) show create table traffic_buffer;

    SHOW CREATE TABLE traffic_buffer

    ┌─statement─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
    │ CREATE TABLE fastnetmon.traffic_buffer ( packetDate Date, packetDateTime DateTime, source Int8, sampleRatio UInt32, srcIp UInt32, dstIp UInt32, srcAsn UInt32, dstAsn UInt32, ipProtocolVersion UInt8, ttl UInt8, sourcePort UInt16, destinationPort UInt16, protocol UInt32, length UInt64, numberOfPackets UInt64, flags UInt8, ipFragmented Int8, ipDontFragment Int8, packetPayloadLength Int32, packetPayloadFullLength UInt32, packetDirection Int8) ENGINE = Buffer(\'fastnetmon\', \'traffic\', 16, 10, 100, 10000, 1000000, 10000000, 100000000) │
    └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
    ↘️ Progress: 1.00 rows, 16.00 B (1.14 thousand rows/s., 18.20 KB/s.)
    1 rows in set. Elapsed: 0.001 sec.
  • @ztlpn #11241 05:38 PM, 11 Apr 2017
    Получилось повторить. Да, баг при агрегациях из Buffer-таблицы.
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #11170 #11242 05:48 PM, 11 Apr 2017
    Работать работает. Но память жрет нещадно.
  • https://t.me/clickhouse_ru
    @andrnag ↶ Reply to #11242 #11243 05:49 PM, 11 Apr 2017
    Вы имеете в виду под ARC? Или течет?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #11243 #11244 05:50 PM, 11 Apr 2017
    Надеюсь не течёт. Я с zfs в proxmox попал. Он памяти требует оч много. На 8тб у меня порядка 30гб кушало.
  • https://t.me/clickhouse_ru
    @andrnag ↶ Reply to #11244 #11245 05:51 PM, 11 Apr 2017
    Может там дедупликация была включена? Для нее много памяти надо
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #11245 #11246 05:52 PM, 11 Apr 2017
    Не исключено. Я использовал все что шло по дефолту в образе proxmox. В итоге перешёл просто на хардварный рейд 10
  • https://t.me/clickhouse_ru
    @andrnag #11247 05:56 PM, 11 Apr 2017
    Ок. Спасибо, буду иметь в виду. Есть proxmox в зоопарке у меня, правда не на zfs.
  • @ztlpn ↶ Reply to #11199 #11248 07:34 PM, 11 Apr 2017
    Фикс войдёт в следующий релиз.
  • @milovidov_an #11249 07:42 PM, 11 Apr 2017
    https://github.com/yandex/clickhouse-odbc
    - отдельный репозиторий для ODBC драйвера.

    Сейчас в активной разработке. Сделана сборка под Windows.
    В основном, ещё не готово для использования.
    Libreoffice работает, Excel - нет. Tableau Desktop - подключается, показывает список таблиц, но дальше ничего не работает.
    Можете пробовать, если вы - разработчик.
    GitHub - ClickHouse/clickhouse-odbc: ODBC driver for ClickHouse

    ODBC driver for ClickHouse. Contribute to ClickHouse/clickhouse-odbc development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @voenniy #11250 07:53 PM, 11 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11251 07:55 PM, 11 Apr 2017
    Огромное спасибо!;)) вы лучшие!
  • @103164043 #11252 07:57 PM, 11 Apr 2017
    👍
  • @f1yegor #11253 08:19 PM, 11 Apr 2017
  • 12 April 2017 (145 messages)
  • https://t.me/clickhouse_ru
    @girgel #11254 08:32 AM, 12 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @vor_kosigan #11255 09:50 AM, 12 Apr 2017
    sFFFFVT6GTVVFTVFVFFFTVVFVFFTVFTVFVFVFTF55FTV55VF5VTTFV55VF5VFTF55V5FTTFTT5F
  • https://t.me/clickhouse_ru
    @the_real_jkee #11256 09:52 AM, 12 Apr 2017
    Кот. Или ребенок.
  • https://t.me/clickhouse_ru
    @vor_kosigan #11257 10:06 AM, 12 Apr 2017
    Извиняюсь - рюкзак :) Испраление багов за рулем
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @openbsod #11259 10:26 AM, 12 Apr 2017
    Добрый день.

    ClickHouse и Grafana
  • https://t.me/clickhouse_ru
    @openbsod #11260 10:26 AM, 12 Apr 2017
    datasource plugin взял с git, не с grafana-cli
  • https://t.me/clickhouse_ru
    Добрый! А в чем проблема?
  • https://t.me/clickhouse_ru
    @openbsod #11262 10:43 AM, 12 Apr 2017
    Судя по консоли проблема в "DB::Exception: Illegal types of arguments (Date, DateTime) of function greaterOrEquals"
  • @iamigor #11263 10:44 AM, 12 Apr 2017
    toDateTime(packetDate)?
  • https://t.me/clickhouse_ru
    @hagen1778 #11264 10:52 AM, 12 Apr 2017
    Чтобы иметь возможность строить графики распределенные во времени, таблица должна соержать Date и DateTime столбцы
  • https://t.me/clickhouse_ru
    @hagen1778 #11265 10:53 AM, 12 Apr 2017
    Вы так же можете проигнорировать это требование, но тогда макросы могут неверно работать и лучше их не использовать
  • https://t.me/clickhouse_ru
    @openbsod #11266 10:56 AM, 12 Apr 2017
    @hagen1778 @iamigor Благодарю вас.
  • https://t.me/clickhouse_ru
    @emtsptth #11267 11:51 AM, 12 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @emtsptth #11268 11:55 AM, 12 Apr 2017
    Всем привет, подскажите что почитать в помощь по организации real-time импорта в CH? Собираюсь писать в csv /1s и вот не могу найти практики по организации такого импорта, то ли тулинг какой нужен, то ли из коробки есть, то ли все руками такое пишут..
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #11268 #11270 01:01 PM, 12 Apr 2017
    Посмотрите движок таблиц типа Buffer
  • https://t.me/clickhouse_ru
    @emtsptth ↶ Reply to #11270 #11271 01:22 PM, 12 Apr 2017
    Спасибо, посмотрел, у меня несколько о другом вопрос был – у меня есть сервис, который пишет csv для импорта в CH, батчи по 100mb / sec к примеру. Вот я смотрю в поисках тулинга или какого-то right way) у меня пока две идеи – непосредственно писать импорт сразу после создания каждого батча (не очень, т.к аффектит сервис процессинга данных), либо писать еще один велосипед, который смотрит на место где лежат батчи и импортирует их в CH.
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11272 01:53 PM, 12 Apr 2017
    Подскажите пожалуйста как выгрузить создание схемы (таблицы) в clickhouse-client ?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11273 01:53 PM, 12 Apr 2017
    cat "$table"_schema.sql | clickhouse-client —user=$DB_USER —password=$DB_PASSWORD —database=$DB_DATABASE —query="CREATE TABLE $table"
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11274 01:53 PM, 12 Apr 2017
    в файлике корректный для кх запрос
  • @iamigor #11275 01:54 PM, 12 Apr 2017
    а зачем --query передаете-то?
  • @iamigor #11276 01:55 PM, 12 Apr 2017
    это в sql-файлике должно быть скорее

    CREATE TABLE ... (
    ...
    ) ENGINE = ...;
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11277 01:55 PM, 12 Apr 2017
    если не передавать то все ок будет ?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11278 01:55 PM, 12 Apr 2017
    да это в файлике
  • @iamigor #11279 01:55 PM, 12 Apr 2017
    ну. а --query "CREATE TABLE ..." тогда зачем? :)
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11280 01:58 PM, 12 Apr 2017
    хз)
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11281 02:07 PM, 12 Apr 2017
    а подскажите его как выгрузить данные через clickhouse-client с декомпрессией ?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11282 02:10 PM, 12 Apr 2017
    так могу ?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11283 02:10 PM, 12 Apr 2017
    cat "$table"_data.native | clickhouse-client —user=$DB_USER —password=$DB_PASSWORD —database=$DB_DATABASE —decompress=1 —query="INSERT INTO $TABLE FORMAT Native"
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11284 02:18 PM, 12 Apr 2017
    говорит нету такой опции.. тогда как выполнит декомпресию ?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11285 02:29 PM, 12 Apr 2017
    было бы хорошо если бы объеденили компрессор и декомпрессор внутрь клиента. опцию добавляем получаем компрессионный файл или декомпрессионый
  • @iamigor ↶ Reply to #11284 #11286 02:47 PM, 12 Apr 2017
    a clickhouse-compressor через пайп пропустить нельзя?
  • https://t.me/clickhouse_ru
    можно поподробней ?
  • @iamigor #11288 02:48 PM, 12 Apr 2017
    clickhouse-client -q "..." | clickhouse-compressor > data.compressed
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11289 02:48 PM, 12 Apr 2017
    у меня вообще сервак лег от выгрузки компрессионых данных в 130 млн строк
  • @iamigor #11290 02:49 PM, 12 Apr 2017
    только наоборот
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11291 02:49 PM, 12 Apr 2017
    это помоему команда на выгрузку данных. а я пытаюсь загрузить в кх уже копрессионные данные
  • @iamigor #11292 02:49 PM, 12 Apr 2017
    у compressor'a есть флаг для декомпресии?
  • https://t.me/clickhouse_ru
    информации в доке не нашел
  • @ztlpn #11294 02:50 PM, 12 Apr 2017
    Да, -d. Но файл нужно всё равно на stdin подавать
  • @iamigor #11295 02:50 PM, 12 Apr 2017
    --help
  • @iamigor ↶ Reply to #11294 #11296 02:51 PM, 12 Apr 2017
    ну так cat .. | compressor -d | clickhouse-client вроде ж тоже через stdin, не?
  • @ztlpn #11297 02:52 PM, 12 Apr 2017
    Всё верно, я к тому, что clickhouse-compressor -d data.compressed не сработает.
  • @iamigor #11298 02:52 PM, 12 Apr 2017
    а, фух :)
  • https://t.me/clickhouse_ru
    а как сработает?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11300 02:53 PM, 12 Apr 2017
    я что-то запутался))
  • @iamigor #11301 02:53 PM, 12 Apr 2017
    я выше написал.
  • https://t.me/clickhouse_ru
    пишет no data insert
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11303 02:54 PM, 12 Apr 2017
    cat banner_history_segments_data.native | clickhouse-compressor -d | clickhouse-client —user="default" —password="" —database="statistics" —query="INSERT INTO banner_history_segments FORMAT Native"
  • https://t.me/clickhouse_ru
    Алексей поясните пожалуйста почему падает сервер от это выгрузки и что в команде не так? падает если слать через POST на localhost c опцией декомпрессии
  • @ztlpn #11305 02:58 PM, 12 Apr 2017
    Сервер может упасть, если не хватает оперативной памяти.
  • https://t.me/clickhouse_ru
    8 гигов мало для выгрузки 120 млн строк?
  • @iamigor #11307 02:59 PM, 12 Apr 2017
    а если не хватает оперативки, надо слать кусочками поменьше
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11308 02:59 PM, 12 Apr 2017
    может можно как-то потоково без выгрузки сразу в память всего содержимого через cat
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11309 03:00 PM, 12 Apr 2017
    просто импорт тогда мне придется переписывать слать запросы limit offset и выбирать чанками по 10 млн. думал может есть способ(
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11310 03:00 PM, 12 Apr 2017
    ладно память но процессор сходит с ума
  • @ztlpn #11311 03:01 PM, 12 Apr 2017
    Это предположение - подтвердить можно, проверив dmesg.
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11312 03:01 PM, 12 Apr 2017
    2 vCPUs, 2.4 GHz, Intel Xeon Family, 8 GiB memory
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11313 03:01 PM, 12 Apr 2017
    это мало для импорта данных ?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11314 03:02 PM, 12 Apr 2017
    ну ладно с файлом. разобью на чанки. но сам демон сервера грузит проц не хило. пока он выгрузит все данные сервер уже зависнет )
  • @ztlpn #11315 03:06 PM, 12 Apr 2017
    Процессор загружен, потому что ClickHouse использует ресурсы машины на полную :)
  • @ztlpn #11316 03:07 PM, 12 Apr 2017
    Давайте сначала убедимся, что действительно памяти не хватает. Проверьте dmesg.
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11317 03:10 PM, 12 Apr 2017
    памяти хватает. но в притык занято 7 гб из 8 при импорте. но load average дошел до 6 и я уже даже select не смог выполнить он просто подвис. я остановил импорт. может можно как-то ограничить во время импорта процессор. я пользовался утилитой cpulimit и она хорошо справлялась. импорт довел до 0.4 average в спокойном режиме выгружать данные и кладет в облако. а вот с экспортом беда
    1) я так и не понял какой командой можно кинуть файл на декомпрессию - у меня пишет no data insert
    2) при импорте вылазит demon и жрет весь проц пока не завершится процесс что ограничивать не понятно
    .. импорт делать планируется ежедневно на тестовый сервер для отладки на свежих данных
  • @ztlpn #11318 03:14 PM, 12 Apr 2017
    no data insert - а какое в точности сообщение об ошибке?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11319 03:15 PM, 12 Apr 2017
    Code: 108. DB::Exception: No data to insert
  • https://t.me/clickhouse_ru
  • @ztlpn #11321 03:28 PM, 12 Apr 2017
    Проверил, вот так работает:

    $ clickhouse-client --query 'SELECT * FROM test FORMAT Native' | clickhouse-compressor > test.compressed
    $ cat test.compressed | clickhouse-compressor -d | clickhouse-client --query 'INSERT INTO test FORMAT Native'
  • @ztlpn #11322 03:30 PM, 12 Apr 2017
    No data to insert может быть, если действительно в файле нет данных - 0 строк
  • https://t.me/clickhouse_ru
    вы правы не понятно как файл очистился.. я другой проверил работает. оперативку "не жрет" у меня сейчас занято около 800 мб - 1.3 Г
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11324 03:32 PM, 12 Apr 2017
    но сервак пыжится )
  • https://t.me/clickhouse_ru
  • @iamigor #11326 03:33 PM, 12 Apr 2017
    ну вы ж не будете такие объемы ежесекундно грузить?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11327 03:34 PM, 12 Apr 2017
    раз в сутки ночью. дальше еще больше объемы будут
  • @iamigor #11328 03:34 PM, 12 Apr 2017
    ну вот. а ночью часто select запросы нужны бывают?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11329 03:34 PM, 12 Apr 2017
    каждую секунду
  • @iamigor #11330 03:34 PM, 12 Apr 2017
    лан((
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11331 03:34 PM, 12 Apr 2017
    у нас данные запрашиваются и в кеш кладутся
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11332 03:34 PM, 12 Apr 2017
    агрегированные
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11333 03:35 PM, 12 Apr 2017
    кеш для ui - отдельный сервер. но запросы слаться будут при каждом сборе новых данных для кеша
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11334 03:36 PM, 12 Apr 2017
    у меня есть еще одна идея
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11335 03:36 PM, 12 Apr 2017
    сейчас подожду пока сервак отдохнет и добавлю ему cpulimit
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11336 03:36 PM, 12 Apr 2017
    выставлю на выполнение команды 10% cpu может будет норм если раз в сутки
  • @ztlpn #11337 03:38 PM, 12 Apr 2017
    Сейчас действительно тонкое разделение ресурсов между запросами проблематично. Будем исправлять.
  • https://t.me/clickhouse_ru
    круто если бы вы сделали аналог mysqldump утилиты для выгрузки всей базы или отдельной таблиц
  • https://t.me/clickhouse_ru
    и чтобы она выполнялась с каким-то своим приоритетом выставляемый опцией
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11340 03:41 PM, 12 Apr 2017
    или например реализовать выполнение в docker котейнере
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11341 03:41 PM, 12 Apr 2017
    получается изолированный контейнер с четко выделенными для него ресурсами
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11342 03:42 PM, 12 Apr 2017
    может я ошибаюсь в чем-то. так мысли. но было бы круто)
  • https://t.me/clickhouse_ru
    @alexanderzaitsev #11343 03:45 PM, 12 Apr 2017
    Сейчас в запросах с несколькими фильтрами ClickHouse автоматически переносит некоторые фильтры в prewhere. Иногда он это делает неправильно, что приводит к увеличению времени выполнения запроса. (мы наблюдали, когда ошибочный перенос в prewhere увеличивал время выполнения с полутора до трех минут).

    Вопрос: какие эвристики используются для определения, когда имеет смысл переносить условие в prewhere, а когда нет?

    Предложение: было бы полезно добавить хинты, чтобы подсказывать КликХаусу, что можно переносить в prewhere, а что лучше не надо.
  • https://t.me/clickhouse_ru
    сильно не помогло. клиент то особо не грузит проц. удалось не превышать load average больше 2.4 а для двух ядерного cpu эти 0.4 это уже очередь операций то есть подвисания. Тут больше cllickhouse —daemon кушает проц. его не знаю как ограничить только для операции импорта
  • https://t.me/clickhouse_ru
    Можно ведь делать ALTER TABLE %s.%s FREEZE PARTITION '2'. Тогда зафризятся все партишены нашего тысячелетия
  • https://t.me/clickhouse_ru
    и тогда будет сотни файликов?)
  • https://t.me/clickhouse_ru
    я ошибся. уже load average больше 3 стал(( видимо единственное решение это разбить файл на чанки и грузить маленькими частями с командой sleep чтобы не дать подвиснуть
  • https://t.me/clickhouse_ru
    нет, тогда в /<clickhouse_data_folder>/shadow/<version>/data/<db>/table лежать ваша таблица
  • https://t.me/clickhouse_ru
    @hagen1778 #11349 04:14 PM, 12 Apr 2017
    партиции можно легко аттачить и детачить
  • https://t.me/clickhouse_ru
    надо попробовать
  • https://t.me/clickhouse_ru
    не сказал бы что легко))
    ALTER TABLE statistics.audience_statistic_segments FREEZE PARTITION '2'
    ALTER TABLE statistics.audience_statistic_segments ATTACH PARTITION - тут name месяца указывается? а нельзя все кусочки влить в базу ?
  • @iamigor #11352 04:54 PM, 12 Apr 2017
    ATTACH PARTITION '2'...
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11353 04:55 PM, 12 Apr 2017
    ALTER TABLE statistics.audience_statistic_segments
    ATTACH PARTITION '2'

    Received exception from server:
    Code: 248. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Invalid partition format: 2. Partition should consist of 6 digits: YYYYMM.
  • @iamigor #11354 04:57 PM, 12 Apr 2017
    значит нельзя(
  • https://t.me/clickhouse_ru
    при выполнении команды почему-то все выводит в консоль всю простыню
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11356 05:26 PM, 12 Apr 2017
    что-то с первого раза вышло. а сейчас даже не остановить этот процесс
  • @milovidov_an #11357 05:27 PM, 12 Apr 2017
    Максим, если не секрет, над каким проектом вы работаете? Какая компания, для чего будете использовать ClickHouse?
  • https://t.me/clickhouse_ru
    у нас довольно большой проект и команда 8 человек. но пока не могу разглашать. проект уже год в разработке
  • https://t.me/clickhouse_ru
    а что я уже всем надоел?))
  • @milovidov_an #11360 05:29 PM, 12 Apr 2017
    Просто интересно.
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11361 05:30 PM, 12 Apr 2017
    у нас довольно большие объёмы данных статистики. кратко реклама
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11362 05:30 PM, 12 Apr 2017
    показы клики и т.д.
  • После вставки данных, в фоне выполняются слияния. Слияния могут использовать достаточно большое количество потоков, каждый из которых, как правило, упирается в CPU или в диск. Максимальное количество потоков для слияния определяется настройкой background_pool_size, которую можно изменить в users.xml в профиле default. По-умолчанию - 16. Впрочем, столь большое количество потоков используется редко.

    Сильно уменьшать этот параметр нельзя, так как тогда не смогут работать одновременно мелкие и крупные слияния, и вставка будет замедляться. Разумный минимум, в который можно выставить эту настройку - 4.

    Планировщик ОС устроен так, что если даже количество потоков, ожидающих CPU, в несколько раз превышает количество ядер, система не будет "залипать" на существенное время (секунды) при операциях типа работы по ssh. Залипания на существенное время могут возникать из-за ожидания диска.

    Виртуалка с двумя ядрами не является достаточно серьёзной для продакшена. Также стоит заметить, что часто у виртуалок очень слабая дисковая подсистема, и к тому же, диски могут быть перегружены соседями (мы наблюдали такое часто для виртуалок в OpenStack). Можно надеяться, что вы будете использовать более серьёзные машины для продакшен нагрузки.

    Чтобы проверить, почему тормозит ваша виртуалка, выведите куда-нибудь графики утилизации CPU, диска, сети...
  • https://t.me/clickhouse_ru
    Алексей спасибо за развернутый ответ. реальную нагрузку на продакшене пока не проверяли. я делаю последние штрихи по бэкапированию данных в облако amazon s3 и выгрузку самого актуального дампа на staging машину для тестов. Потом займусь переписыванием кеша который собирает из базы агрегированные данные для отображения статистических данных на графиках и другие данные финансовые
  • https://t.me/clickhouse_ru
    самая большая проблема это импорт данных на данный момент. которая будет выполнятся раз в сутки ночью. главное чтобы не подвис, т.к. во время импорта скриптик делает запросы на выборку каждую секунду для дополнения данных в кеше
  • https://t.me/clickhouse_ru
    то есть получается одновременная вставка огромного дампа и выборка. если сервер не потянет мы переедем на более мощный естественно, главное чтобы в холостую не работал
  • @milovidov_an #11367 05:59 PM, 12 Apr 2017
    В таком случае вы можете искусственно уменьшить скорость вставки. Вставили блок данных, подождали, вставили ещё, таким образом, размазав нагрузку по времени.
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11368 05:59 PM, 12 Apr 2017
    кстати с экспортом все решилось просто. я выставил cpulimit на clickhouse-client и на операции архивирования. нагрузка 0.5 average
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11369 06:00 PM, 12 Apr 2017
    экспорт не мешает никак. с импортом были мысли делать sleep между чанками
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11370 06:00 PM, 12 Apr 2017
    наверное это единственные вариант на данный момент
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11371 06:02 PM, 12 Apr 2017
    проблема при экспорте в том что clickhouse-server ограничить через cpulimit не возможно, т.к. не понятно какой именно процесс подхватил данные а их там несколько выплывает - несколько потоков. и получается клиент ограничен в cpu а сервер жрет на полную )) ну я вас понял пока ограничимся чанками. потом когда переедем полностью докупим чуть более мощную машину. хотябы 4 cpu
  • https://t.me/clickhouse_ru
    Вы можете физически скопировать кусочки в нужную папку с именем таблицы и выполнить ATTACH таблицы. Это позволит добавить все партиции
  • https://t.me/clickhouse_ru
    @hagen1778 #11373 06:47 PM, 12 Apr 2017
    и тогда вам не нужно будет архивировать и розархивировать данные
  • https://t.me/clickhouse_ru
    этот вариант я уже пробовал дамп все ок. шикарно. загрузка каким образом? там надо указать дату кусочка. это получится нужно выбирать два значения минимальное и максимальное из таблицы и записывать в какой нибудь доп. файл чтобы потом по нему пробежаться. а архивировать в любом случае нужно - т.к. задача перекинуть данные из продакшена на тестовые сервер
  • https://t.me/clickhouse_ru
    @hagen1778 #11375 06:53 PM, 12 Apr 2017
    когда вы делаете freeze partition '2' у вас получается дамп всей таблицы. Вы можете спокойно перемещать/копировать/архивировать эти данные из папки shadow. Когда же нужно восстановить бекап: создаете папку с именем таблицы в папке data, копируете туда бекап, выполняете ATTACH TABLE %table_name% (...)
  • https://t.me/clickhouse_ru
    так)) интересненько
    а что за запрос такой ? (...) ?
  • https://t.me/clickhouse_ru
    @hagen1778 #11377 06:57 PM, 12 Apr 2017
    неудобством может быть только необходимость хранить схему таблицы. Мы автоматизировали эти процессы с помощью небольшой утилиты на го. Она позволяет просматривать существующие ревизии, сравнивать их обьемы, детачить и аттачить таблицы
  • https://t.me/clickhouse_ru
    вместо ... нужно указать столбцы таблицы создаваемой таблицы
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11379 06:59 PM, 12 Apr 2017
    go это хорошо) но можно ли пример запроса полный? ну или выдуманный. я сейчас выгружаю схему через SHOW CREATE TABLE %table_name% и это кидаю в файлик потом делаю DROP TABLE и заново CREATE TABLE из файлика и выгрузка данных
  • https://t.me/clickhouse_ru
    @hagen1778 #11380 06:59 PM, 12 Apr 2017
    обратите внимание на https://clickhouse.yandex/reference_ru.html#ATTACH
    Документация ClickHouse | Документация ClickHouse

    ClickHouse is a fast open-source column-oriented database management system that allows generating analytical data reports in real-time using SQL queries

  • https://t.me/clickhouse_ru
    @hagen1778 #11381 07:01 PM, 12 Apr 2017
    схемы таблиц так же лежат в data папке КХ, их можно копировать оттуда
  • https://t.me/clickhouse_ru
    может можно как-то схему натравить на ATTACH TABLE %table_name% (...) из файла?
  • https://t.me/clickhouse_ru
    @hagen1778 #11383 07:05 PM, 12 Apr 2017
    может и можно) вы можете реализовать это на каком-нибудь из ваших любимых языков или написать скрипт на bash
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11384 07:05 PM, 12 Apr 2017
    получится
    выгружаю partials в shadows архивирую папочку кидаю в обалко. на другом сервере архив забираю распаковываю в папку data (предварительно очистив старую). выполняю ATTACH TABLE %table_name% .. не понял момент на счет схемы она должна быть заново создана ?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11385 07:06 PM, 12 Apr 2017
    я пишу на bash решил что это будет самый быстрый вариант
  • https://t.me/clickhouse_ru
    @hagen1778 #11386 07:07 PM, 12 Apr 2017
    freeze сам поместит данные в shadow. Попробуйте восстановить таблицу из этих файлов
  • https://t.me/clickhouse_ru
    FREEZE PARTITION на счет этого я понял. поместит в shadow. затем как это натравить на data ? объясните плиз как дураку)
  • @konstantin_mitjurin #11388 08:20 PM, 12 Apr 2017
    Добрый вечер!
  • @konstantin_mitjurin #11389 08:21 PM, 12 Apr 2017
    Пришлось создать Buffer таблицу, чтобы в реалтайме туда писать данные
  • @konstantin_mitjurin #11390 08:21 PM, 12 Apr 2017
    задали настройки движка, как в мануале
  • @konstantin_mitjurin #11391 08:22 PM, 12 Apr 2017
    только поменяли max_rows -> 100 000
  • @konstantin_mitjurin #11392 08:22 PM, 12 Apr 2017
    вместо 1 млн
  • @konstantin_mitjurin #11393 08:22 PM, 12 Apr 2017
    данные не сливаются
  • @konstantin_mitjurin #11394 08:22 PM, 12 Apr 2017
    в основную таблицу
  • @konstantin_mitjurin #11395 08:23 PM, 12 Apr 2017
    а их там уже 197494
  • @konstantin_mitjurin #11396 08:26 PM, 12 Apr 2017
    я понял...
  • @konstantin_mitjurin #11397 08:26 PM, 12 Apr 2017
    это изза materialized полей...
  • @konstantin_mitjurin #11398 08:38 PM, 12 Apr 2017
    создал другую буффер таблицу, без материалайзед полей
  • @konstantin_mitjurin #11399 08:39 PM, 12 Apr 2017
    `Received exception from server:
    Code: 10. DB::Exception: Received from 127.0.0.1:9000. DB::Exception: Expected column advert_id: (when looking at destination table default.vast_requests)`
  • 13 April 2017 (129 messages)
  • https://t.me/clickhouse_ru
    @rheinx #11400 07:25 AM, 13 Apr 2017
    Всем привет. А с сегодняшнего митапа будет трансляция ?
  • @milovidov_an #11401 08:09 AM, 13 Apr 2017
    Не будет.
  • https://t.me/clickhouse_ru
    @nekufa #11402 08:12 AM, 13 Apr 2017
    😔 а запись?
  • @milovidov_an #11403 08:19 AM, 13 Apr 2017
    Будет.
  • https://t.me/clickhouse_ru
    @nekufa #11404 08:24 AM, 13 Apr 2017
    Спасибо
  • @DenysLamanov #11405 08:33 AM, 13 Apr 2017
    Ребята, а что с сайтом? Ссылка на документацию не работает :(
  • https://t.me/clickhouse_ru
    @rheinx #11406 08:38 AM, 13 Apr 2017
    у меня все ок
  • https://t.me/clickhouse_ru
    @rheinx #11407 08:38 AM, 13 Apr 2017
    Документация ClickHouse | Документация ClickHouse

    ClickHouse is a fast open-source column-oriented database management system that allows generating analytical data reports in real-time using SQL queries

  • @DenysLamanov #11408 08:49 AM, 13 Apr 2017
    Най сайте ссылка ведет сюда https://clickhouse.yandex/ru/reference_en.html
    ClickHouse DBMS

    ClickHouse is an open source column-oriented database management system that allows generating analytical data reports in real time using SQL queries.

  • @f1yegor #11409 10:32 AM, 13 Apr 2017
    у кого-нибудь есть пример запросов со словарем с сложным ключом?
  • @f1yegor #11411 10:37 AM, 13 Apr 2017
    т.е. вместо колонки я буду писать dictGetString('dict_name', 'attr_name', tuple('field1', 123))
  • @sr_maks1 #11412 10:41 AM, 13 Apr 2017
    dictGetFloat32('weights', 'weight', tuple(toString(template), toString(element), toString(value)))
  • https://t.me/clickhouse_ru
    @rheinx #11415 12:29 PM, 13 Apr 2017
    Ребят, в какую сторону копать?

    2017.04.13 15:22:27.834697 [ 178247 ] <Error> executeQuery: Code: 9, e.displayText() = DB::Exception: Size of filter doesn't match size of column., e.what() = DB::Exception (from [::1]:37346) (in query: select * from my_table where id >=441098428 order by id limit 10)
    , Stack trace:

    0. clickhouse-server(StackTrace::StackTrace()+0x16) [0x1e293b6]
    1. clickhouse-server(DB::Exception::Exception(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)+0x1f) [0x106bcdf]
    2. clickhouse-server(DB::ColumnVector<unsigned char>::filter(DB::PODArray<unsigned char, 4096ul, Allocator<false>, 15ul> const&, long) const+0x3be) [0x1e6959e]
    3. clickhouse-server(DB::ColumnNullable::filter(DB::PODArray<unsigned char, 4096ul, Allocator<false>, 15ul> const&, long) const+0x4e) [0x1e5dede]
    4. clickhouse-server(DB::FilterBlockInputStream::readImpl()+0xc6c) [0x2b2980c]
    5. clickhouse-server(DB::IProfilingBlockInputStream::read()+0x31a) [0x1807eaa]
    6. clickhouse-server(DB::ExpressionBlockInputStream::readImpl()+0x2d) [0x2b7cced]
    7. clickhouse-server(DB::IProfilingBlockInputStream::read()+0x31a) [0x1807eaa]
    8. clickhouse-server(DB::PartialSortingBlockInputStream::readImpl()+0x2d) [0x2c8f74d]
    9. clickhouse-server(DB::IProfilingBlockInputStream::read()+0x31a) [0x1807eaa]
    10. clickhouse-server(DB::ParallelInputsProcessor<DB::UnionBlockInputStream<(DB::StreamUnionMode)0>::Handler, (DB::StreamUnionMode)0>::loop(unsigned long)+0x152) [0x1f3d782]
    11. clickhouse-server(DB::ParallelInputsProcessor<DB::UnionBlockInputStream<(DB::StreamUnionMode)0>::Handler, (DB::StreamUnionMode)0>::thread(MemoryTracker*, unsigned long)+0x77) [0x1f3de57]
    12. clickhouse-server() [0x35bc8ef]
    13. /lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba) [0x7f7e90a8f6ba]
    14. /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7f7e900b082d]
  • https://t.me/clickhouse_ru
    @rheinx #11416 12:29 PM, 13 Apr 2017
    id имеет тип UInt64
  • https://t.me/clickhouse_ru
    @vladenisov #11417 12:36 PM, 13 Apr 2017
    у меня такое было при наличии в таблице nullable-столбцов
  • @DigDiver #11418 12:37 PM, 13 Apr 2017
    Добрый день всем! Есть непонятки с функцией cityHash64.

    CREATE TABLE test
    (
    date Date,
    isp String,
    ispHash Int64 MATERIALIZED cityHash64(isp)
    )

    ENGINE = MergeTree(date, (date,isp), 8192)

    insert into test (date,isp) values ('2017-01-01', 'Yahoo')
    insert into test (date,isp) values ('2017-01-01', 'Hotmail')

    select isp, ispHash from test

    Yahoo 3964330053880547655
    Hotmail -1054703215700480117

    select cityHash64('Yahoo') ->3964330053880547655
    select cityHash64('Hotmail') -> 17392040858009071499

    Как видите для Hotmail - различные значения, соответственно не работает поиск:
    select * from test where ispHash =cityHash64('Hotmail')
  • https://t.me/clickhouse_ru
    @orantius #11419 12:40 PM, 13 Apr 2017
    судя по количеству цифр, у вас cityHash - UInt64
  • https://t.me/clickhouse_ru
    @orantius #11420 12:41 PM, 13 Apr 2017
    а столбец объявлен как Int64
  • https://t.me/clickhouse_ru
    @orantius #11421 12:42 PM, 13 Apr 2017
    хотя это не отменяет того факта, что -1 = 18446744073709551615 могло и сработать.
  • @DigDiver #11422 12:45 PM, 13 Apr 2017
    Да, мой фаулт, должно быть UInt64. В документации не указан возвращаемый тип
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #11417 #11423 12:49 PM, 13 Apr 2017
    у меня тоже есть пара Nullable столбцов. Но они не участвуют в фильтрации.
  • https://t.me/clickhouse_ru
    @hagen1778 #11425 02:04 PM, 13 Apr 2017
    👍
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11426 02:12 PM, 13 Apr 2017
    а можно ли в кх как-то орагнизовать такую схему - делаем запрос select в merge tree вида sum sum group field - получается некоторое количество записей около 500-100. и их держать в оперативной памяти - таблица memory, но со сроком действия - подобно кешу - записали агрегированные данные читаем с ним. как только не читаем долго время - данные пропадают (именно пачку данных которая была в рамках select запроса - ну может просто какое нибудь поле дополнительное ввести user_id) ?
  • @f1yegor #11427 02:13 PM, 13 Apr 2017
    извиняйте, автор сказал что пока не надо
  • https://t.me/clickhouse_ru
    @v2nek ↶ Reply to #11426 #11428 02:25 PM, 13 Apr 2017
    можно наружный кэш сделать
  • https://t.me/clickhouse_ru
    @v2nek #11429 02:25 PM, 13 Apr 2017
    у нас все через nginx балансится, и там же складывается в кэш
  • https://t.me/clickhouse_ru
    @ibelyy #11430 02:32 PM, 13 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    Тоже ловили эту ошибку с Nullable столбцами. В фильтрации они тоже не участвовали.
  • https://t.me/clickhouse_ru
    @inv2004 #11432 02:55 PM, 13 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @Maria_Ryzhova #11433 03:12 PM, 13 Apr 2017
    Joined.
  • @RomanRadionov #11434 03:22 PM, 13 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @WladySpb #11435 03:24 PM, 13 Apr 2017
    Кто-либо работает с кликхаусом в докере?
  • https://t.me/clickhouse_ru
    @bolser #11436 04:02 PM, 13 Apr 2017
    Clickhouse для аналитиков. Начинаем
  • @272182707 #11437 04:05 PM, 13 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @ag0n1k #11438 04:05 PM, 13 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @Originall #11439 04:05 PM, 13 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @Sablast #11440 04:06 PM, 13 Apr 2017
    так нечестно, как быть тем кто уже здесь?)))
  • https://t.me/clickhouse_ru
    @Vyacheslavshashkov #11441 04:06 PM, 13 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @borisch #11442 04:06 PM, 13 Apr 2017
    Joined.
  • @NikishovD #11443 04:06 PM, 13 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @Originall #11444 04:06 PM, 13 Apr 2017
    ;)
  • https://t.me/clickhouse_ru
    @ninatretyakova #11445 04:06 PM, 13 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @AlexBaydin #11446 04:06 PM, 13 Apr 2017
    Joined.
  • @anton_d_zhukov #11447 04:06 PM, 13 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @177077954 #11448 04:07 PM, 13 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @ksukjjiohoh8789 #11449 04:08 PM, 13 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @iMissile #11450 04:08 PM, 13 Apr 2017
    Joined.
  • @sergeisergeyevich #11451 04:08 PM, 13 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @Pepe_Silvia13 #11452 04:12 PM, 13 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @Pepe_Silvia13 #11453 04:13 PM, 13 Apr 2017
    🙃
  • https://t.me/clickhouse_ru
    @WladySpb #11454 04:14 PM, 13 Apr 2017
    Все с митапа?)
  • https://t.me/clickhouse_ru
    @Pepe_Silvia13 #11455 04:14 PM, 13 Apr 2017
    Я да :)
  • https://t.me/clickhouse_ru
    Для аналитиков кликстрим 😬
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11457 04:21 PM, 13 Apr 2017
    кликстрим?
  • https://t.me/clickhouse_ru
    @SLASH_CyberPunk #11458 04:23 PM, 13 Apr 2017
    Скорее да, чем нет
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11459 04:24 PM, 13 Apr 2017
    что это? )))
  • https://t.me/clickhouse_ru
    @SLASH_CyberPunk #11460 04:25 PM, 13 Apr 2017
    Гугл ответит
  • https://t.me/clickhouse_ru
    @SLASH_CyberPunk #11461 04:25 PM, 13 Apr 2017
    Ну или яндекс 😬
  • https://t.me/clickhouse_ru
    @DBarchenkov #11462 04:26 PM, 13 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11463 04:26 PM, 13 Apr 2017
    поняяяяяятно http://www.clickstreamr.com/pricing
    Pricing for Clickstreamr: Choose Your Plan

    Send Google Analytics clickstream data to your server with Clickstreamr monthly recurring service subscription. View pricing and choose your plan.

  • https://t.me/clickhouse_ru
    @SLASH_CyberPunk #11464 04:27 PM, 13 Apr 2017
    У вас буква лишняя
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11466 04:27 PM, 13 Apr 2017
    во
  • Joined.
  • https://t.me/clickhouse_ru
    @mpopugin #11468 04:30 PM, 13 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @SLASH_CyberPunk #11469 04:30 PM, 13 Apr 2017
    Через яндекс ищите?
  • https://t.me/clickhouse_ru
    @andrey_konyaev #11471 04:40 PM, 13 Apr 2017
    Добрый вечер!
    Replication of column ColumnArray(ColumnNullable(ColumnVector<Int32>)) is not implemented.
    Ловлю ошибку при array join для nested вложения, при использовании внутри nested nullable-типов.

    Вопрос, будет ли добавлен функционал для таких типов в будущем? (Сейчас используем версию 1.1.54165)
  • https://t.me/clickhouse_ru
    @cls_msk #11472 04:47 PM, 13 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @windoozatnick #11473 04:49 PM, 13 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @ma1abar #11474 04:56 PM, 13 Apr 2017
    Joined.
  • @24862760 #11475 04:58 PM, 13 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @klovshot #11476 04:58 PM, 13 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @cls_msk #11477 05:01 PM, 13 Apr 2017
    /stat@combot
  • https://t.me/clickhouse_ru
    @AlexBaydin #11480 05:02 PM, 13 Apr 2017
    Joined.
  • @AIRust #11481 05:02 PM, 13 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @Vinisman #11482 05:02 PM, 13 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @sadikarno #11483 05:02 PM, 13 Apr 2017
    Joined.
  • @DmitryZakurakin #11484 05:03 PM, 13 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11485 05:03 PM, 13 Apr 2017
    да они на свет лезут!
  • https://t.me/clickhouse_ru
    @azhabrev #11486 05:04 PM, 13 Apr 2017
    Joined.
  • скажите пожалуйста, а есть ли у Clickhouse какие-нибудь фишки как у графовых баз данных?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11488 05:06 PM, 13 Apr 2017
    а какие фишки есть у графовых субд?
  • ну к примеру позволяют строить данные с более сложной структурой. если вы, к примеру, хотите построить грав социальных сетей и запустить на нем кластерный аналищ
  • при этом к примеру если память ограничена при больших объемах данных, то в графовых базах можно грузить данные в обработку по частям и памяти хватит
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11491 05:11 PM, 13 Apr 2017
    ух. хитро, я не в курсе, умеет такое или нет, очень специфичный кейс, но подождите ответа тех кто больше в теме
  • ну тут почти 600 человек, думаю, хоть один-то найдется?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11493 05:12 PM, 13 Apr 2017
    явно :)
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11495 05:12 PM, 13 Apr 2017
    а это бага или фича, что в клиенте шапка с именами таблиц едет?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11496 05:12 PM, 13 Apr 2017
    select packetDirection, count() from traffic_buffer group by packetDirection;

    SELECT
    packetDirection,
    count()
    FROM traffic_buffer
    GROUP BY packetDirection

    ↑ Progress: 50.20 million rows, 50.20 MB (489.39 million rows/s., 489.39 MB/s.) ┌─packetDirection─┬──count()─┐
    │ 3 │ 73399183 │
    └─────────────────┴──────────┘
  • во-во)))
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11499 05:13 PM, 13 Apr 2017
    вот так вот оно выглядит
  • @iamigor #11500 05:14 PM, 13 Apr 2017
    а какая версия клиента?
  • https://t.me/clickhouse_ru
    @etkee ↶ Reply to #11487 #11501 05:14 PM, 13 Apr 2017
    Модель хранения и сам продукт заточены под совсем иные нужды
  • это понятно. но Яндекс-то рабоьает с всемирной паутиной. ПАУТИНОЙ. чуете, чем пахнет? отсюда вопрос: жобавлять такой функционал будут или нет?
  • просто тогда CH юыл бы вообще огонь, если бы еще и графовые структуры умел
  • https://t.me/clickhouse_ru
    @dvolodin #11504 05:19 PM, 13 Apr 2017
    графовые структуры статичны
  • https://t.me/clickhouse_ru
    @dvolodin #11505 05:19 PM, 13 Apr 2017
    а ch шардирует данные по дате
  • https://t.me/clickhouse_ru
    Полно же решений
  • подскажите пожалуйста?
  • https://t.me/clickhouse_ru
    Форк титана( janusgraph) например,
  • о, класс, спасибо
  • буду ковыряться
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @Unkledolan #11512 05:24 PM, 13 Apr 2017
    И еще куча около hpc, вида flashx, и gunrock
  • https://t.me/clickhouse_ru
    @etkee ↶ Reply to #11502 #11513 05:25 PM, 13 Apr 2017
    Тем, что КХ другими вещами занимается, для графового есть графовое
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @bolser #11515 05:26 PM, 13 Apr 2017
    Игорь из СМИ рассказывает про tabix.io
  • ну к примеру Postgres тоже вроде как sql, однако я знаю людей, которые его используют как nosql из-за поддержки json-b
  • https://t.me/clickhouse_ru
    @etkee ↶ Reply to #11516 #11517 05:29 PM, 13 Apr 2017
    Блин, nosql - это не хранение неструктурированных данных. В кликхаусе first class citizen - это колонка, в графовых бд - узел и связь, это не та штука, которую можно просто взять и на лету внедрить
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @inv2004 #11519 05:34 PM, 13 Apr 2017
    В интернете только один бенчмарк нашелся по kdb/clickhouse
  • https://t.me/clickhouse_ru
    @inv2004 #11520 05:34 PM, 13 Apr 2017
    Summary of the 1.1 Billion Taxi Rides Benchmarks

    Benchmarks & Tips for Big Data, Hadoop, AWS, Google Cloud, PostgreSQL, Spark, Python & More...

  • https://t.me/clickhouse_ru
    @WladySpb #11521 05:35 PM, 13 Apr 2017
    tabix.io хорош для графов поверх кх
  • @garikanet #11522 05:52 PM, 13 Apr 2017
    Моя презентация о tabix

    https://www.dropbox.com/s/fjnwq519b3qjv9z/CH_Meetup_13APR_final.pptx?dl=0

    ( лучше смотреть в powerPoint для просмотра видео )
    CH_Meetup_13APR_final.pptx

    Shared with Dropbox

  • https://t.me/clickhouse_ru
    @victor3 #11523 05:57 PM, 13 Apr 2017
    всем привет. скажите, правильно ли я понимаю что jdbc драйвер(для кх) общается с кх по http?
  • @iamigor #11524 05:58 PM, 13 Apr 2017
    да
  • https://t.me/clickhouse_ru
    @victor3 #11525 05:58 PM, 13 Apr 2017
    благодарю
  • @vlad_Ilnitsky #11526 06:16 PM, 13 Apr 2017
    Joined.
  • @vlad_Ilnitsky #11527 06:17 PM, 13 Apr 2017
    @garikanet спасибо большое.
  • @sergeisergeyevich #11528 06:18 PM, 13 Apr 2017
    .
  • @azavarin #11529 06:27 PM, 13 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    👍
  • https://t.me/clickhouse_ru
    @rheinx #11531 06:44 PM, 13 Apr 2017
    Ребята, а поделитесь остальными презентациями)
  • @RomanRadionov #11532 06:55 PM, 13 Apr 2017
    Joined.
  • @milovidov_an #11533 08:25 PM, 13 Apr 2017
    Моя презентация здесь:
    https://github.com/yandex/clickhouse-presentations/tree/master/meetup5

    Можно скачать:
    https://github.com/yandex/clickhouse-presentations/archive/master.zip
    Распаковать и открыть meetup5/index.html в браузере.

    На сайт ещё не выложилось.
    clickhouse-presentations/meetup5 at master · ClickHouse/clickhouse-presentations

    Presentations, meetups and talks about ClickHouse. Contribute to ClickHouse/clickhouse-presentations development by creating an account on GitHub.

  • @e11it #11534 09:50 PM, 13 Apr 2017
    Докер с tabix.ui (Build 17.04.3), если кому надо: https://hub.docker.com/r/e11it/tabix.ui/
  • спасибо, заберу в репу ... а то issue висит поправить докер)
  • 14 April 2017 (210 messages)
  • https://t.me/clickhouse_ru
    @ekislitsyn #11537 04:48 AM, 14 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #11533 #11538 06:29 AM, 14 Apr 2017
    Спасибо!
  • @Nvarchar495 #11539 07:07 AM, 14 Apr 2017
    Доброе утро! На докладе что -то прозвучало про union all
  • @Nvarchar495 #11540 07:07 AM, 14 Apr 2017
    union как то хитро работает в кликхаусе?
  • https://t.me/clickhouse_ru
    @klovshot ↶ Reply to #11540 #11541 07:18 AM, 14 Apr 2017
    Прозвучало если делать два запроса по части данных, то объединять их нужно в клиенте. Union all вылетит из-за нехватки памяти, т.к. запроса будет не два, а один.
  • https://t.me/clickhouse_ru
    @andrey_konyaev #11543 07:25 AM, 14 Apr 2017
    Добрый день!
    Использую ReplacingMergeTree и встретил очень интересное поведение. Дубликатов по ключу я не нашёл.
    Но заметил большую странность. Как так получается что колличество уникальных ключей, больше чем общее колличество записей?
    Ожидал увидеть обратную ситуацию при неразрешённых коллизиях, а тут совсем уже чёрная магия
  • https://t.me/clickhouse_ru
  • @iamigor #11545 07:26 AM, 14 Apr 2017
    uniq считает приближенное значение. для точного есть uniqExact
  • https://t.me/clickhouse_ru
    @hagen1778 #11546 07:29 AM, 14 Apr 2017
    судя по кол-ву вопросов с ф-цией uniq наверное нужо создать какую-нибудь uniqApprox и поменять их местами 😊
  • @iamigor #11547 07:29 AM, 14 Apr 2017
    > Алгоритм является очень точным для множеств небольшой кардинальности (до 65 536) и очень эффективным по CPU (при расчёте не слишком большого количества таких функций, использование uniq почти так же быстро, как использование других агрегатных функций).
    > Не стоит бояться приближённых расчётов. Поэтому, используйте лучше функцию uniq.
  • спасибо
  • https://t.me/clickhouse_ru
    Спасибо большое, цифры сошлись. ReplacingMergeTree за неделю при 4kRPS не оставил дубликатов.
    Огненный движок!
  • https://t.me/clickhouse_ru
    @rheinx #11551 08:57 AM, 14 Apr 2017
    Ребят, чет туплю.
    field_name DateTime DEFAULT now() - нормальное описание поля с типом DateTime у котого дефолтное значение дожно проставляться DateTime от даты и времени вставки?
  • https://t.me/clickhouse_ru
    @WladySpb #11552 09:02 AM, 14 Apr 2017
    Есть нюанс - это хорошо работает, только если вставка происходит атомарно. У меня например, данные сначала копятся в очереди, а потом пачкой отправляются в КХ, поэтому даты желательно проставлять вручную, чтобы не было сдвигов на границе дня
  • https://t.me/clickhouse_ru
    @rheinx #11553 09:03 AM, 14 Apr 2017
    Ага, спасибо, важный коммент.
  • https://t.me/clickhouse_ru
    @WladySpb #11554 09:04 AM, 14 Apr 2017
    А так да - now() - DateTime, today() - Date
  • https://t.me/clickhouse_ru
    @cls_msk #11555 09:16 AM, 14 Apr 2017
    Вчера на митапе докладчики демонстрировали великолепные графики. С помощью каких инструментов их строят? Есть какая-то общедоступная литература по этому вопросу?
  • https://t.me/clickhouse_ru
    @WladySpb #11556 09:17 AM, 14 Apr 2017
    tabix.io ?
  • https://t.me/clickhouse_ru
    @cls_msk #11557 09:17 AM, 14 Apr 2017
    Да, и там тоже. Еще и на слайдах
  • https://t.me/clickhouse_ru
    @miptgirl #11558 09:17 AM, 14 Apr 2017
    Маша показывала картинки на plot.ly
  • https://t.me/clickhouse_ru
    @Maria_Ryzhova #11559 09:18 AM, 14 Apr 2017
    и seaborn еще)
  • https://t.me/clickhouse_ru
    @miptgirl #11560 09:18 AM, 14 Apr 2017
    Вот тут есть статья про все это: https://habrahabr.ru/company/ods/blog/323210/
    Открытый курс машинного обучения. Тема 2: Визуализация данных c Python

    Второе занятие посвящено визуализации данных в Python. Сначала мы посмотрим на основные методы библиотек Seaborn и Plotly, затем поанализируем знакомый нам по п...

  • https://t.me/clickhouse_ru
    @cls_msk #11561 09:19 AM, 14 Apr 2017
    Спасибо!
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11562 09:28 AM, 14 Apr 2017
    кстати, а как оптимально хранить IPv4 сетку в формате CIDR в CH?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11563 09:32 AM, 14 Apr 2017
    Добрый день. скажите пожалуйста
    Column campaign_id is not under aggregate function and not in GROUP BY
    чтобы это значило? указал поле в select для вывода
  • https://t.me/clickhouse_ru
    @diehertz #11564 09:32 AM, 14 Apr 2017
    А полный запрос можно увидеть?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #11563 #11565 09:33 AM, 14 Apr 2017
    в select указал, а в group by?)
  • https://t.me/clickhouse_ru
    так я не хочу группировать по этому полю просто вывести
  • @iamigor ↶ Reply to #11563 #11567 09:34 AM, 14 Apr 2017
    ну так агрегация по ней не считается -> там может быть много разных значений
  • https://t.me/clickhouse_ru
    @diehertz #11568 09:34 AM, 14 Apr 2017
    Ну вы же понимаете, что там могут быть разные значения для разных строк?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #11566 #11569 09:34 AM, 14 Apr 2017
    покажи запрос. так проще будет)
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11570 09:34 AM, 14 Apr 2017
    SELECT
    eventDate,
    campaign_id,
    ads_id,
    group_id,
    ads_start_id,
    sum(spent) as spent,
    sum(shows) as shows,
    sum(clicks) as clicks

    FROM banner_history_segments
    WHERE ads_start_id IN(100)

    GROUP BY ads_start_id, eventDate
  • @iamigor #11571 09:34 AM, 14 Apr 2017
    можно через any(campaign_id) (тогда выведется случайное, но одно), можно через, кажется, groupArray(campaign_id) - тогда выведется массив всех имеющихся значений
  • https://t.me/clickhouse_ru
    @diehertz #11572 09:34 AM, 14 Apr 2017
    если очень хочется - any(campaign_id)
  • https://t.me/clickhouse_ru
    @diehertz #11573 09:34 AM, 14 Apr 2017
    Больше не отвечаю на вопросы, у кого-то очень хороший интернет)
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11574 09:35 AM, 14 Apr 2017
    я что-то не понял. что значит случайное? а реально как?
  • https://t.me/clickhouse_ru
    @diehertz #11575 09:37 AM, 14 Apr 2017
    выведется первое значение campaign_id, попавшееся для ads_start_id = 100 и данного eventDate
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11576 09:37 AM, 14 Apr 2017
    а ну это подходит. мне без разницы в рамках одного старта всегда одна кампания
  • https://t.me/clickhouse_ru
    @WladySpb #11577 09:38 AM, 14 Apr 2017
    Если всегда одна - почему не добавить её в groupBy ?
  • https://t.me/clickhouse_ru
    @WladySpb #11578 09:38 AM, 14 Apr 2017
    Запрос просто будет выглядеть логичнее и понятнее
  • @iamigor #11579 09:39 AM, 14 Apr 2017
    плюсую предложение добавить campaign_id в group by )
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11580 09:40 AM, 14 Apr 2017
    тогда уже и ad и group_id тоже в group by
  • @iamigor #11581 09:41 AM, 14 Apr 2017
    ну да, раз вы их перечисляете в столбцах)
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11582 09:41 AM, 14 Apr 2017
    они тоже в рамках одного старта одинаковые. но что быстрее будет выполнятся any(field) или еще пару группировок ?
  • @iamigor #11583 09:41 AM, 14 Apr 2017
    хз, посчитайте сами)
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11584 09:43 AM, 14 Apr 2017
    почти одинаково - по разному
  • @artemsult #11585 09:48 AM, 14 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #11562 #11586 09:50 AM, 14 Apr 2017
    можно хранить как битовую маску подсети, смотря что вы с ней делать собираетесь.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11587 09:50 AM, 14 Apr 2017
    хочется ее потом удобно обрабатывать прямо в запросах, без магии и обработки
  • https://t.me/clickhouse_ru
    @orantius #11588 09:51 AM, 14 Apr 2017
    bitAnd(addr ,mask)=prefix
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11589 09:51 AM, 14 Apr 2017
    я тут в тикет откомментил, как хочу это видеть https://github.com/yandex/ClickHouse/issues/247 последний коммент
    New IP address functions/types (CIDR mask) · Issue #247 · yandex/ClickHouse

    It would be great to have some kind of these IPv4-related (IPv6 too?) functions: IPv4NumToStringClassC(num) isn't enough for proper subnet handling. :) SELECT IPv4CIDRtoIPv4Range('1...

  • https://t.me/clickhouse_ru
    @pavel_odintsov #11590 09:52 AM, 14 Apr 2017
    тут вопрос во-первых, чтобы сохранить в одном поле, а, во-вторых, чтобы декодировать удобно из компактного пердставления в удобоваримое для людей
  • https://t.me/clickhouse_ru
    @BorisKrinitsyn #11591 10:19 AM, 14 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @vladenisov #11592 10:33 AM, 14 Apr 2017
    Получил ошибку Code: 89. DB::Exception: QuickLZ compression method is disabled: while receiving packet при запросе из представления
  • https://t.me/clickhouse_ru
    @vladenisov #11593 10:33 AM, 14 Apr 2017
    версия 1.1.54198
  • @Nvarchar495 #11594 10:56 AM, 14 Apr 2017
    Люди, а после добавления пользователей надо рестартануть?
  • https://t.me/clickhouse_ru
    @Felixoid ↶ Reply to #11594 #11595 10:57 AM, 14 Apr 2017
    нет, подцепляется автоматом, если всё правильно
  • спасибо, значит у меня не правильно)
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11597 11:43 AM, 14 Apr 2017
    скажите еще плиз
    SELECT sum(clicks) as clicks,
    WHERE ... AND
    (clicks <> 0 or shows <> 0)

    дает ошибку Aggregate function sum(clicks) is found in WHERE or PREWHERE in query
    как исключить из результатов записи у которых клики и показы по 0 ?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11598 11:45 AM, 14 Apr 2017
    я понял в чем ошибка. алиас который указывается после sum() .. воспринимается как само поле
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11599 11:46 AM, 14 Apr 2017
    то есть получается нельзя использовать алиасы с таким же названием
  • @DenysLamanov #11600 11:49 AM, 14 Apr 2017
    having?
  • https://t.me/clickhouse_ru
    what?
  • https://t.me/clickhouse_ru
    я понял)) работает. спасибо
  • @ztlpn ↶ Reply to #11592 #11603 12:00 PM, 14 Apr 2017
    Была похожая проблема, правда давно: https://github.com/yandex/ClickHouse/issues/7
    Error fetching data from materialized view · Issue #7 · yandex/ClickHouse

    I loaded example ontime dataset and created a materialized view with the following definition: CREATE MATERIALIZED VIEW basic ENGINE = AggregatingMergeTree(FlightDate, Carrier, 8192) AS SELECT ...

  • https://t.me/clickhouse_ru
    @vladenisov #11604 12:01 PM, 14 Apr 2017
    да, я нагуглил её
  • https://t.me/clickhouse_ru
    @vladenisov #11605 12:02 PM, 14 Apr 2017
    что-то надо сообщить дополнительно? могу в ту же тему в гугл-группах
  • @ztlpn #11606 12:02 PM, 14 Apr 2017
    Как объявляете materialized view и какой запрос делаете.
  • https://t.me/clickhouse_ru
    @vladenisov #11607 12:05 PM, 14 Apr 2017
    это обычный view:
    CREATE VIEW analytics.apps_events ( app_name String, app_version String, os_name String, device_id String, event_time DateTime, event_date Date, event_name String, event_value String, screen_name String) AS SELECT app_name, app_version, os_name, device_id, event_time, event_date, event_name, event_value, screen_name FROM analytics.apps_clickstream WHERE isNotNull(event_name) OR isNotNull(event_value)
  • https://t.me/clickhouse_ru
    @vladenisov #11608 12:07 PM, 14 Apr 2017
    запрос:
    SELECT splitByChar('/', screen_name)[1] as sn, event_date, count(*) FROM analytics.apps_events where (...) group by sn, event_date
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11609 12:13 PM, 14 Apr 2017
    ребят скажите плиз есть не заполненные поля string пустые. как проверить на не пустые поля?
  • @iamigor #11610 12:13 PM, 14 Apr 2017
    != '' не подходит?
  • https://t.me/clickhouse_ru
    @hagen1778 #11611 12:14 PM, 14 Apr 2017
    Документация ClickHouse | Документация ClickHouse

    ClickHouse is a fast open-source column-oriented database management system that allows generating analytical data reports in real-time using SQL queries

  • https://t.me/clickhouse_ru
    неа
  • @iamigor #11614 12:17 PM, 14 Apr 2017
    может там пробелы? о_О length(city) че покажет?
  • https://t.me/clickhouse_ru
    и вправду.. как так вышло не понятно. при вставке tabseparated файлов писал ,'','',''
    пишет по 70 символов во всех строках. может это потому что схема FixedString(70) ?
  • @iamigor #11616 12:19 PM, 14 Apr 2017
    а, так сразу бы и сказали
  • @iamigor #11617 12:19 PM, 14 Apr 2017
    а то выше про String говорилось
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11618 12:20 PM, 14 Apr 2017
    я еще пока не привык)) это стандартное поведение fixedString ?
  • @iamigor #11619 12:20 PM, 14 Apr 2017
    да
    см. toString / toStringCutToZero
  • https://t.me/clickhouse_ru
    благодарю))
  • @ztlpn ↶ Reply to #11607 #11621 12:42 PM, 14 Apr 2017
    Удалось повторить так:

    :) create table t1 (s1 Nullable(String)) engine=TinyLog
    :) create view t1_v1 (s1 String) AS select s1 from t1
    :) insert into t1 values ('aaa')
    :) select splitByChar('/', s1) from t1_v1

    То есть у вас наверно столбец screen_name Nullable(String) в таблице, но String во view
  • https://t.me/clickhouse_ru
    @vladenisov #11622 12:43 PM, 14 Apr 2017
    да, именно так
  • https://t.me/clickhouse_ru
    @vladenisov #11623 12:44 PM, 14 Apr 2017
    спасибо, поправлю вьюху
  • https://t.me/clickhouse_ru
    @vladenisov #11624 12:46 PM, 14 Apr 2017
    а разве это не ок, когда я проверяю на null, и если не null пишу в колонку не-nullable типа?
  • @ztlpn #11625 12:48 PM, 14 Apr 2017
    По крайней мере такое мистическое сообщение об ошибке точно не ок :)
  • https://t.me/clickhouse_ru
    @vladenisov #11626 12:49 PM, 14 Apr 2017
    еще клиент иногда крашится при таких запросах )
  • https://t.me/clickhouse_ru
    @irina_achkasova #11627 12:57 PM, 14 Apr 2017
    Подскажите, пожалуйста, как агрегировать данные по временному интервалу? Например, надо считать среднее по данным за каждые 5 секунд и записывать в новую таблицу? Можно ли написать агрегирующую функцию?
  • https://t.me/clickhouse_ru
    @AndreevDm #11628 01:01 PM, 14 Apr 2017
    Есть специальный движок таблиц GraphiteMergeTree
  • https://t.me/clickhouse_ru
    @hagen1778 #11629 01:01 PM, 14 Apr 2017
    попробуйте так
    SELECT
    (intDiv(toUInt32(EventTime), 5) * 5) * 1000 AS t,
    count(*)
    FROM requests
    GROUP BY t
    ORDER BY t ASC
  • https://t.me/clickhouse_ru
    @AndreevDm #11630 01:02 PM, 14 Apr 2017
    В документации его пока нет, но можно посмотреть вот тут https://github.com/yandex/graphouse/blob/master/doc/install.md#clickhouse
    graphouse/install.md at master · ClickHouse/graphouse

    Graphouse allows you to use ClickHouse as a Graphite storage. - graphouse/install.md at master · ClickHouse/graphouse

  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #11627 #11631 01:03 PM, 14 Apr 2017
    может вам просто надо
    insert into t2 (key, value) select toUInt64(time)/5*5 as key, avg(data) as value from t1 group by key
    возможно вам нужен aggregating merge tree + avgState
  • https://t.me/clickhouse_ru
    @rheinx #11632 01:33 PM, 14 Apr 2017
    А в чем отличие движка GraphiteMergeTree от materialized view на движке agregatingmergetree?
  • https://t.me/clickhouse_ru
    @rheinx #11633 01:34 PM, 14 Apr 2017
    Или это задел на будущее когда будут delete?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11634 02:11 PM, 14 Apr 2017
    заменил InfluxDB на CH, нагрузка упала с 196% до 5% CPU
  • https://t.me/clickhouse_ru
    @hagen1778 #11635 02:12 PM, 14 Apr 2017
    Можете теперь рядом сервер Lineage поднять 😊
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11636 02:12 PM, 14 Apr 2017
    не, я уже биткойны майню
  • https://t.me/clickhouse_ru
    @openbsod #11637 02:13 PM, 14 Apr 2017
    @pavel_odintsov 👍
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11638 02:15 PM, 14 Apr 2017
    @openbsod я как раз вам письмо написал :)
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11639 02:16 PM, 14 Apr 2017
    Скажите пожалуйста как сгруппировать по часу поле timestamp ?
  • @iamigor #11640 02:17 PM, 14 Apr 2017
    toStartOfHour(timestamp)?
    https://clickhouse.yandex/reference_ru.html#toStartOfHour
    Документация ClickHouse | Документация ClickHouse

    ClickHouse is a fast open-source column-oriented database management system that allows generating analytical data reports in real-time using SQL queries

  • https://t.me/clickhouse_ru
    прямо в группировке можно использовать?
  • https://t.me/clickhouse_ru
    @orantius #11642 02:25 PM, 14 Apr 2017
    а какие варианты
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11643 02:36 PM, 14 Apr 2017
    что-то не выходит совсем..
    SELECT
    toDateTime(eventTime) as hour,
    ...
    FROM ...
    GROUP BY ads_start_id

    Column eventTime is not under aggregate function and not in GROUP BY
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11644 02:37 PM, 14 Apr 2017
    ожидается что поле будет в groupby ?
  • @iamigor #11645 02:38 PM, 14 Apr 2017
    почему todatetime
  • @f1yegor #11646 02:43 PM, 14 Apr 2017
    <Error> ExternalDictionaries: Cannot create external dictionary 'products' from config path /etc/clickhouse-server/products_dictionary.xml: Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = Not found: dictionary.structure.attribute.null_value, e.what() = Not found
  • @f1yegor #11647 02:43 PM, 14 Apr 2017
    <structure>
    <!-- Описание столбца, являющегося идентификатором (ключом) словаря. -->
    <key>
    <attribute>
    <name>container_id</name>
    <type>String</type>
    </attribute>
    <attribute>
    <name>region_id</name>
    <type>UInt16</type>
    </attribute>
    <attribute>
    <name>item_id</name>
    <type>String</type>
    </attribute>
    </key>
    <attribute>
    <name>price</name>
    <type>Float32</type>
    <null_value>0.0</null_value>
    </attribute>
    <attribute>
    <name>rating</name>
    <type>Float32</type>
    <null_value>0.0</null_value>
    </attribute>
    </structure>
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11648 02:46 PM, 14 Apr 2017
    ребят что может значит эта ошибка? может кто сталкивался
    Code: 173, e.displayText() = DB::Exception: Allocator: Cannot mmap., errno: 12, strerror: Cannot allocate memory, e.what() = DB::Exception
    делаю запрос около 15 группировок в таблицу 22 млн записей. неужели памяти оперативной не хватате ?
  • https://t.me/clickhouse_ru
    @Shegloff #11649 02:50 PM, 14 Apr 2017
    именно
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11650 02:51 PM, 14 Apr 2017
    нихрена се.. прожорвилвый кх
  • https://t.me/clickhouse_ru
    @Shegloff #11651 02:52 PM, 14 Apr 2017
    Уважаемые разработчики, есть инфа по поводу старого и грустного бага? https://github.com/yandex/ClickHouse/issues/127
    Problem with INSERT if having a VIEW with subqueries & AS keyword #127

    That&#39;s a really strange one! When you create a view (let&#39;s call it test_stats) that has a subquery with multiple tables (test1 and test2) combined using UNION ALL clause, and the first tabl...

  • https://t.me/clickhouse_ru
    @Shegloff #11652 02:52 PM, 14 Apr 2017
    очень хочется MATERIALIZED VIEW с подзапросами и join'ами
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11653 02:54 PM, 14 Apr 2017
    сдох после запроса сервер) капец
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11654 03:02 PM, 14 Apr 2017
    наверное из-за опции у сервера на кол. выделяемой оперативной памяти - там значение превышает количество установленной на сервере памяти и поэтому жрет все а потом unix начинает килять процессы и падает сервер
  • https://t.me/clickhouse_ru
    А если попробовать <null_value>0</null_value> ?
  • @f1yegor #11656 03:10 PM, 14 Apr 2017
    ага, в атрибуты ключа тоже указывал
  • https://t.me/clickhouse_ru
    @alexanderzaitsev #11657 03:11 PM, 14 Apr 2017
    В ключ не надо, там null не может быть
  • @f1yegor #11658 03:13 PM, 14 Apr 2017
    заработало. my bad
  • @f1yegor #11659 03:13 PM, 14 Apr 2017
    почему в ключе не может быть null?
  • https://t.me/clickhouse_ru
    @alexanderzaitsev #11660 03:16 PM, 14 Apr 2017
    Ну, это идеологически не правильно ) И насколько я понял Алексея, не поддерживается сейчас
  • https://t.me/clickhouse_ru
    @bminaiev #11661 03:54 PM, 14 Apr 2017
    Joined.
  • @smiren #11662 04:02 PM, 14 Apr 2017
    Joined.
  • @smiren #11663 04:03 PM, 14 Apr 2017
    У меня тоже CH постоянно умирает:
    clickhouse-server(47269,0x700008df2000) malloc: *** error for object 0x140775000: pointer being realloc'd was not allocated
    *** set a breakpoint in malloc_error_break to debug
    2017.04.14 19:03:09.694920 [ 5 ] <Error> BaseDaemon: ########################################
    2017.04.14 19:03:09.694945 [ 5 ] <Error> BaseDaemon: (from thread 4) Received signal Abort trap: 6 (6).
    2017.04.14 19:03:09.755499 [ 5 ] <Error> BaseDaemon: 1. 1 libsystem_kernel.dylib 0x00007fffc3952dda __pthread_kill + 10
    2017.04.14 19:03:09.755526 [ 5 ] <Error> BaseDaemon: 2. 2 clickhouse-server 0x000000010f44cf20 _ZN4Poco10ThreadImpl13runnableEntryEPv + 96
    2017.04.14 19:03:09.755533 [ 5 ] <Error> BaseDaemon: 3. 3 libsystem_pthread.dylib 0x00007fffc3a3aabb _pthread_body + 180
    2017.04.14 19:03:09.755540 [ 5 ] <Error> BaseDaemon: 4. 4 libsystem_pthread.dylib 0x00007fffc3a3aa07 _pthread_body + 0
    2017.04.14 19:03:09.755546 [ 5 ] <Error> BaseDaemon: 5. 5 libsystem_pthread.dylib 0x00007fffc3a3a231 thread_start + 13
  • https://t.me/clickhouse_ru
    @bminaiev #11664 04:15 PM, 14 Apr 2017
    Подскажите про формат RowBinary (а то в доке про него написано мало, а хочется поиспользовать). Как должен выглядить POST-запрос, который вставляет данные в таком формате? Например, обычный запрос можно сгенерить строкой echo "('b', 1, 2)" | POST '127.0.0.1:8123/?query=INSERT INTO t VALUES' (и он будет выглядеть так https://pastebin.com/zNJjgggy), а я хочу послать запрос "INSERT INTO t VALUES FORMAT RowBinary", но не понимаю, как передавать значения. Или может где-нибудь уже написано про это более подробно?
    POST /?query=INSERT%20INTO%20t%20VALUES HTTP/1.1TE: deflate,gzip;q=0.3Connec - Pastebin.com

    Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.

  • @iamigor ↶ Reply to #11664 #11665 04:16 PM, 14 Apr 2017
    https://github.com/artpaul/clickhouse-cpp
    https://github.com/hatarist/clickhouse-cli/blob/binary/clickhouse_cli/clickhouse/binary.py
    GitHub - artpaul/clickhouse-cpp: ClickHouse C++ client library

    ClickHouse C++ client library. Contribute to artpaul/clickhouse-cpp development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @rheinx #11666 04:43 PM, 14 Apr 2017
    Ребят, у кого по памяти помирает. Поставьте ограничение чуть меньше доступной памяти на сервере. Не насилуйте делезо/виртуалки. Если будет все равно мало, поставьте группировку во внешней памяти.
  • @vasserft #11667 04:43 PM, 14 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @rheinx #11668 04:43 PM, 14 Apr 2017
    Не CH виноват что у вас так много данных. ну или мало оперативы)))
  • https://t.me/clickhouse_ru
    @windoozatnick #11669 04:45 PM, 14 Apr 2017
    Об этом же вчера было
  • https://t.me/clickhouse_ru
    @windoozatnick #11670 04:45 PM, 14 Apr 2017
    https://github.com/yandex/clickhouse-presentations/tree/master/meetup5 и вот презентация, вроде
    clickhouse-presentations/meetup5 at master · ClickHouse/clickhouse-presentations

    Presentations, meetups and talks about ClickHouse. Contribute to ClickHouse/clickhouse-presentations development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @dvolodin #11671 06:19 PM, 14 Apr 2017
    Небольшая идейка
  • https://t.me/clickhouse_ru
    @dvolodin #11672 06:19 PM, 14 Apr 2017
    в CH есть функции IPv4NumToString(num), IPv4StringToNum(s)
  • https://t.me/clickhouse_ru
    @dvolodin #11673 06:19 PM, 14 Apr 2017
    для преобразования IPv4 в UInt32
  • https://t.me/clickhouse_ru
    @dvolodin #11674 06:19 PM, 14 Apr 2017
    Также полезными будут функции для преобразования MAC'ов
  • https://t.me/clickhouse_ru
    @dvolodin #11675 06:20 PM, 14 Apr 2017
    MACNumToString и MACStringToNum
  • https://t.me/clickhouse_ru
    @dvolodin #11676 06:20 PM, 14 Apr 2017
    MAC в UInt64
  • https://t.me/clickhouse_ru
    @dvolodin #11677 06:22 PM, 14 Apr 2017
    насколько сложно их реализовать?
  • @iamigor #11678 06:22 PM, 14 Apr 2017
    не сложно
    можно исходники ipv4/uuid посмотреть
  • https://t.me/clickhouse_ru
    @dvolodin #11679 06:26 PM, 14 Apr 2017
    да верю, что не очень сложно :)
  • https://t.me/clickhouse_ru
    @dvolodin #11680 06:28 PM, 14 Apr 2017
    плюсы последний раз серьезно теребил лет 15 назад :)
  • @smiren #11681 06:43 PM, 14 Apr 2017
    @dudy_dud , ограничение не помогает (лимит установлен меньше в 2 раза от доступной памяти). Сейчас ситуация такая, что сервер упал и при попытке его запустить падает через несколько секунд
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #11681 #11682 06:44 PM, 14 Apr 2017
    С какой ошибкой падает? Сколько памяти на сервере? Что то ещё на сервере работает?
    Покажите вывод free -m
  • @smiren #11683 06:52 PM, 14 Apr 2017
    На машие: 16 GB
    PhysMem: 3800M used (1249M wired), 12G unused. VM: 599G vsize, 612M framework vsize, 0(0) swapins, 0(0) swapouts.
  • @smiren #11684 06:52 PM, 14 Apr 2017
    Никаких других БД не запущено
  • @smiren #11685 06:53 PM, 14 Apr 2017
    Ограничение поставил в 4GB
  • Мы серьёзно не работали с ClickHouse под Mac.
    Могут быть проблемы из-за линковки с аллокатором. Должен линковаться tcmalloc, но судя по выводу, используется системный.
  • @smiren #11687 07:10 PM, 14 Apr 2017
    При сборке наблюдаю еще вот такое:
    In file included from /Users/user/develop/dni/ClickHouse/libs/libcommon/src/apple_rt.cpp:12:
    /usr/include/time.h:171:3: error: typedef redefinition with different types ('enum clockid_t' vs 'int')
    } clockid_t;
    ^
    /Users/user/develop/dni/ClickHouse/libs/libcommon/include/common/apple_rt.h:26:13: note: previous definition is here
    typedef int clockid_t;
    ^
    In file included from /Users/user/develop/dni/ClickHouse/libs/libcommon/src/apple_rt.cpp:12:
    /usr/include/time.h:177:5: error: declaration of 'clock_gettime' has a different language linkage
    int clock_gettime(clockid_t __clock_id, struct timespec *__tp);
    ^
    /Users/user/develop/dni/ClickHouse/libs/libcommon/include/common/apple_rt.h:27:5: note: previous declaration is here
    int clock_gettime(int clk_id, struct timespec* t);
    ^
  • @smiren #11688 07:11 PM, 14 Apr 2017
    После обновления Xcode
  • @smiren #11689 07:12 PM, 14 Apr 2017
    MacOS Sierra (10.12)
  • @smiren #11690 07:14 PM, 14 Apr 2017
    Xcode (8.3.1)
  • @Nvarchar495 #11691 07:19 PM, 14 Apr 2017
    Люди, а можете сказать чем пользуетесь UInt или Int и почему )))
  • @milovidov_an #11692 07:26 PM, 14 Apr 2017
    Все презентации со вчерашнего митапа в одном архиве:
    https://yadi.sk/d/DVBMpnrT3GvnXp
    ClickHouse для аналитиков 13.04.2017

    View and download from Yandex.Disk

  • @andrewkovalyov #11693 07:39 PM, 14 Apr 2017
    Joined.
  • Мы используем и то, и другое, где надо.
  • @Nvarchar495 #11695 07:42 PM, 14 Apr 2017
    Если я правильно понял, int занимает меньше места? где может пригодиться uint?
  • На разных версиях Mac OS, системные заголовочные файлы иногда содержат, а иногда не содержат нужные типы. Поэтому, в репозитории есть файл apple_rt.h с недостающими. Но ifdef-ы могут учитывать не все версии, и их надо поправить.
  • https://t.me/clickhouse_ru
    @xomaa #11697 07:44 PM, 14 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #11695 #11698 07:58 PM, 14 Apr 2017
    Там где знак не нужен )
  • Разницы в занимаемом месте нет.
  • @Nvarchar495 #11700 08:01 PM, 14 Apr 2017
    Спасибо, тогда везде буду uint
  • @Nvarchar495 #11701 08:10 PM, 14 Apr 2017
    Может нам собраться , посидеть где нить? )
  • @Nvarchar495 #11702 08:10 PM, 14 Apr 2017
    пиво, девочки)
  • @milovidov_an #11703 08:13 PM, 14 Apr 2017
    Может быть можно будет сделать митап + afterparty. Не знаю, входит ли это в программу наших мероприятий.
  • @Nvarchar495 #11704 08:14 PM, 14 Apr 2017
    Кстати, может сделать хакатончик?
  • @milovidov_an #11705 08:20 PM, 14 Apr 2017
    Тоже вариант. Какие темы?
  • @Nvarchar495 #11706 08:23 PM, 14 Apr 2017
    что нибудь прогрессивное ) чтобы на хабре потом написать ))
  • https://t.me/clickhouse_ru
    @nikitosiusis #11707 08:24 PM, 14 Apr 2017
    перенос кх в аркадию отличная тема для хакатона
  • https://t.me/clickhouse_ru
    @miptgirl #11708 08:26 PM, 14 Apr 2017
    Есть минимум 2 пути: 1. запилить какую-нибудь крутую feature для CH 2. сделать классный сервис over CH (например, что-нибудь аналитическое на базе данных Метрики или AppMetrica)
  • @Nvarchar495 #11709 08:32 PM, 14 Apr 2017
    не... надо что поинтереснее )
  • https://t.me/clickhouse_ru
    @Civiloid #11710 08:33 PM, 14 Apr 2017
    Кстати, а GraphiteMergeTree может быть ReplicatedGraphiteMergeTree?
  • @Nvarchar495 #11711 08:33 PM, 14 Apr 2017
    что нибудь, где надо поломать голову, где нужно использовать скрытые фичи кх
  • Что такое аркадия?
  • @shinebell #11713 08:39 PM, 14 Apr 2017
    исходники поискового движка
  • @shinebell #11714 08:39 PM, 14 Apr 2017
    яндекса )
  • Да.
  • https://t.me/clickhouse_ru
    @Civiloid #11716 08:48 PM, 14 Apr 2017
    А как пользоваться секцией macros?
  • @DenysLamanov #11717 08:52 PM, 14 Apr 2017
    Ребята, а когда будет митап в Украине?)
  • <macros>
    <layer>stat</layer>
    <shard>01</shard>
    <replica>example01-1.yandex.ru</replica>
    </macros>

    ...

    CREATE TABLE ... ENGINE = ReplicatedMergeTree('/clickhouse/tables/{layer}-{shard}/visits', '{replica}', ...
  • Скорее всего, в начале лета.
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #11718 #11720 08:56 PM, 14 Apr 2017
    я скорее не понимаю в каком месте его пихать?
  • @milovidov_an #11721 08:57 PM, 14 Apr 2017
    У нас используются для аргументов Replicated таблиц - чтобы выбрать путь в ZK.
  • https://t.me/clickhouse_ru
    @Civiloid #11722 08:57 PM, 14 Apr 2017
    <remote_servers>
    <something>
    <shard>
    <macros>
    ?
  • @milovidov_an #11723 08:58 PM, 14 Apr 2017
    В конфиге написано:

    <macros incl="macros" optional="true" />

    Значит либо в /etc/metrika.xml в элемент macros на верхнем уровне,
    либо прямо в config.xml на это место.
  • @milovidov_an #11724 08:59 PM, 14 Apr 2017
    Для каждого сервера свой /etc/metrika.xml и там свои значения macros.
  • https://t.me/clickhouse_ru
    @Civiloid #11725 08:59 PM, 14 Apr 2017
    ок... и нумерация шардов будет сделана автоматом в порядке как они в конфиге?
  • @milovidov_an #11726 09:02 PM, 14 Apr 2017
    Что значит нумерация шардов?
  • @andrewkovalyov #11727 09:21 PM, 14 Apr 2017
    OPTIMIZE

    OPTIMIZE TABLE [db.]name [PARTITION partition] [FINAL]

    Просит движок таблицы сделать что-нибудь, что может привести к более оптимальной работе
  • @andrewkovalyov #11728 09:21 PM, 14 Apr 2017
    Это шикарная дока.
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #11726 #11729 09:22 PM, 14 Apr 2017
    да мне объяснили что макрос нужен на каждом сервере свой
  • @milovidov_an #11730 11:17 PM, 14 Apr 2017
    Алексей добрый день. Хотел у вас поинтерисоваться если это не секрет. Как в UI так быстро в режиме реал тайм отображаете данные? Например у нас до кх вся статистка лежала в mysql. Мы сделали консольную команду которую повесили на cron она делает ряд запросов на агрегированние подсчет данных из статистики и кладет в оперативную память. а мы на ui видим сразу, но памяти жрет много. Тут вариантов пару либо отказаться от кеша и делать запросы на прямую к кх. либо в кеш писать только по запросу - пользователь авторизовался получил свою пачку данных (срок жизни кеша ограничен - при неактивности больше n часов кеш очищается). В идеале хотелось бы реал тайм. Может какие нибудь рекомендации дадите?
  • @milovidov_an #11731 11:17 PM, 14 Apr 2017
    Отвечу в основном чате.
  • @milovidov_an #11732 11:17 PM, 14 Apr 2017
    В Метрике кэш для отчётов не используется, запросы идут считать всё заново из неагрегированных данных.
  • @milovidov_an #11733 11:18 PM, 14 Apr 2017
    Работает хорошо почти во всех случаях. Но для крупных счётчиков приходится включать сэмплирование по-умолчанию. Пользователь может изменить сэмплирование (например, выключить) - тогда отчёт грузится дольше.
  • @milovidov_an #11734 11:19 PM, 14 Apr 2017
    Есть другие проекты, где кэш используется.
  • https://t.me/clickhouse_ru
    то есть в метрике результат получается на запрос к кх напрямую? у нас ситуация следующая - на главной странице есть около 5 графиков - для получение данных для них посылается 5 разных запросов в одну таблицу (например нужно узнать сколько кликов суммарно осуществилось для определенной сущности - например в рамках страны или городов). Если брать небольшой диапазаон в рамках одного пользователя и недельные данные то эти 5 запросов вложаться (я думаю) в секунду. если пользователь выберет весь период - например за год результат может быть получен и за секунд 5-10. соответственно это уже задержка. или это норма?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11736 11:29 PM, 14 Apr 2017
    поэтому мы и прикрутили кеш в памяти. и получаем результаты данных моментально. но он конечно затратные на его заполнение и жрет памяти
  • @milovidov_an #11737 11:30 PM, 14 Apr 2017
    Надо решать в зависимости от того, является ли отчёт одинаковым для большого количества пользователей или каждый раз уникальный.

    В Метрике каждый пользователь смотрит свои отчёты, зачастую сильно кастомизируемые. Почти всегда с аутентификацией. Поэтому кэширование не имеет смысла - не поможет.

    Если же у вас есть посещаемый сайт, где нужно показывать большой аудитории одни и те же графики, то без сомнения, их нужно кэшировать.
  • @milovidov_an #11738 11:30 PM, 14 Apr 2017
    И скорее всего, не только кэшировать, но и обновлять асинхронно.
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11739 11:30 PM, 14 Apr 2017
    нет. графики только в рамках аудентификации. в рамках юзера
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11740 11:32 PM, 14 Apr 2017
    ну тогда можно попробовать прикрутить праймери кей на user_id и по нему выбирать точечно по запросу
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11741 11:33 PM, 14 Apr 2017
    потому как сейчас мы не по user_id выбираем а по всем запускам показов
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11742 11:33 PM, 14 Apr 2017
    и получаем данные всех пользователей
  • @milovidov_an #11743 11:33 PM, 14 Apr 2017
    Да. Подумайте, поэкспериментируйте.
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11744 11:33 PM, 14 Apr 2017
    мне понравилась таблица memory. жалко нельзя установить срок жизни данных
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11745 11:34 PM, 14 Apr 2017
    можно было бы как-то переливать туда данные и брать с неё
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11746 11:35 PM, 14 Apr 2017
    такой своего рода кеш) у меня есть еще один вопрос сегодня выполнил тяжеловестный запросик и получил падение сервера запустить не удалось только через полную остановку сервиса и полный запуск. не хватило 8 гигов памяти чтобы выполнить запросик. вопрос не в запросе даже, а в том почему сервер рассыпается - выдал бы ошибку и работал дальше. могу предположить что это из-за опции в конфигах максимальный объем памяти он установлен по стандарту в 10 гигов что больше 8)) поэтому жрет все не давай системе жить
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11747 11:36 PM, 14 Apr 2017
    и я так понял вылазит киллер и начинает килять что попало вот и расыпается
  • @milovidov_an #11748 11:37 PM, 14 Apr 2017
    Всё верно. По-умолчанию лимит оперативки - 10 GB на каждый запрос.
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11749 11:37 PM, 14 Apr 2017
    понял спасибо алексей вы как всегда выручаете )
  • 15 April 2017 (67 messages)
  • @smiren #11750 12:10 AM, 15 Apr 2017
    Я тоже ронял запросами CH, хотелось бы чтобы умирал не сервер, а запрос
  • https://t.me/clickhouse_ru
    @nodermann #11751 07:03 AM, 15 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    Я бы предложил что-нибудь не смежное с кликстрим. Я не теряю надежду использовать КХ в других вариантах 😋
  • @lexa_work #11753 09:44 AM, 15 Apr 2017
    в admin tips-ах есть такая фраза "Use Linux software RAID (mdadm). Better to not use LVM."
    Кто-то знает, почему LVM не люб и на сколько это критично?
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #11753 #11754 09:46 AM, 15 Apr 2017
    Я предполагаю, что это чтобы не было соблазна использовать Snapshot'ы которые в LVM сделаны отвратительно и очень сильно просаживают скорость работы
  • https://t.me/clickhouse_ru
    @Civiloid #11755 09:47 AM, 15 Apr 2017
    А без snapshot'ов смысл в LVM околонулевой
  • @lexa_work #11756 09:47 AM, 15 Apr 2017
    ну... спорное утверждение
  • @lexa_work #11757 09:48 AM, 15 Apr 2017
    я вот давно и успешно его использую начиная еще с Unix-ов (HP-UX, Solaris) и пока не довелось пользоваться снапшетами
  • @lexa_work #11758 09:48 AM, 15 Apr 2017
    и пользу в нем вижу
  • @lexa_work #11759 09:48 AM, 15 Apr 2017
    но сейчас вопрос не о том немного
  • @lexa_work #11760 09:49 AM, 15 Apr 2017
    если использовать LVM для создания RAID-10 без всяких снапшетов, это все еще "лучше не надо" для CH?
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #11757 #11761 09:49 AM, 15 Apr 2017
    Snapshot'ы там просаживают скорость записи и чтения до печальных значений чуть чаще чем всегда
  • @lexa_work #11762 09:50 AM, 15 Apr 2017
    не планирую я испоьзовать эту фичу
  • https://t.me/clickhouse_ru
    @Civiloid #11763 09:50 AM, 15 Apr 2017
    raid на базе LVM в Linux'ах реализован странно и как бы при наличии в ядре mdadm в нем нет никакого смысла
  • @lexa_work #11764 09:50 AM, 15 Apr 2017
    просто для гибкой организации и управления пространстовм
  • https://t.me/clickhouse_ru
    @Civiloid #11765 09:50 AM, 15 Apr 2017
    да, все это про Linux, на Солярке может все отлично
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #11764 #11766 09:50 AM, 15 Apr 2017
    обычно 1 сервер под 1 задачу, там в таком смысла мало )
  • @lexa_work #11767 09:50 AM, 15 Apr 2017
    обычно да
  • https://t.me/clickhouse_ru
    @Civiloid #11768 09:51 AM, 15 Apr 2017
    но в общем тебе виднее, в принципе если не использовать ничего кроме управления пространством и красивого именования разделов то не должно прям быть очень плохо
  • @lexa_work #11769 09:51 AM, 15 Apr 2017
    но даже одна задача (продукт) может состоять не нескольких потребителей
  • https://t.me/clickhouse_ru
    @Civiloid #11770 09:51 AM, 15 Apr 2017
    Разносить их по разным разделам?
  • https://t.me/clickhouse_ru
    @Civiloid #11771 09:51 AM, 15 Apr 2017
    Точно в этом есть смысл?
  • https://t.me/clickhouse_ru
    @Civiloid #11772 09:51 AM, 15 Apr 2017
    когда БД поддерживает разные базы и права доступа к ним
  • https://t.me/clickhouse_ru
    @Civiloid #11773 09:51 AM, 15 Apr 2017
    Опять же проще по серверам делить, если все так критично
  • @lexa_work #11774 09:52 AM, 15 Apr 2017
    иметь возможность гибко выделять дисковое пространство по мере роста, иметь возможность разедилить (перераспределить) в дальнейшем по шпинделям и т.п.
  • @lexa_work #11775 09:52 AM, 15 Apr 2017
    да меня не надо убеждать, что лучше выделенные сервера иметь
  • @lexa_work #11776 09:52 AM, 15 Apr 2017
    я все сам понимаю
  • @lexa_work #11777 09:53 AM, 15 Apr 2017
    но есть теория и проекты в которых есть возможность это сделать, а есть другие варианты
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #11774 #11778 09:53 AM, 15 Apr 2017
    КХ на сложные запросы в том числе может и ЦПУ и Оперативку подъесть немного, поэтому обычно мало смысла ставить больше 6-и дисков (можно конечно, особенно если диски небольшие, но под нагрузкой может уже захотеться больше цпу), а КХ умеет права доступа сам, поэтому под него в этом смысл примерно нулевой
  • @lexa_work #11779 09:53 AM, 15 Apr 2017
    ладно, в общем спасибо за ваше мнение
  • https://t.me/clickhouse_ru
    @Civiloid #11780 09:54 AM, 15 Apr 2017
    @lexa_work если что, мое мнение составлено по моим наблюдениям, а не официальное ) может товарищи яндексоиды что-то еще скажут
  • @lexa_work #11781 09:54 AM, 15 Apr 2017
    если появится кто-то, кто знает точно зачем и почему фраза эта появилась в типасх, то буду рад услашать пояснения
  • https://t.me/clickhouse_ru
    @Civiloid #11782 09:54 AM, 15 Apr 2017
    но как по мне просто чтоб не повадно было снэпшотить, проще сказать что не используйте LVM чем отвечать на вопросы "почему у меня все тормозит?"
  • @lexa_work #11783 09:55 AM, 15 Apr 2017
    ну тогда нужно было еще добавлять подобные фразы про NFS-ы и т.д и т.п.
  • @191113348 #11784 09:59 AM, 15 Apr 2017
    Оффтоп. Сейчас на митапе Заббикса Владышев сказал, что общался с командой CH на конфе Перконы ~1 год назад. И сказал, что отказался от интереса в эту сторону после озвученных концептуальных проблем. Возможно сейчас всё изменилось (с)
  • @robinzonishe #11785 10:00 AM, 15 Apr 2017
    А что за проблемы там?
  • https://t.me/clickhouse_ru
    @SLASH_CyberPunk #11786 10:00 AM, 15 Apr 2017
    Менеджерский аргумент
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #11783 #11787 10:01 AM, 15 Apr 2017
    swraid я думаю это предполагает ;)
  • не понял мысль
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #11788 #11789 10:02 AM, 15 Apr 2017
    отсутствие NFS'ов всяких )
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #11788 #11790 10:05 AM, 15 Apr 2017
    mdadm и вообще swaid немного проблематично сделать без блочного устройства
  • https://t.me/clickhouse_ru
    @Civiloid #11791 10:05 AM, 15 Apr 2017
    то есть "мы рекомендуем swraid" означает по сути локальные диски или iscsi
  • @lexa_work #11792 10:06 AM, 15 Apr 2017
    ну я это понял как: "не обязательно использовать дорогие аппаратные RAID контроллеры"
  • @lexa_work #11793 10:06 AM, 15 Apr 2017
    ну и эта фраза как бы подтверждает "Prefer more servers with inplace storage to less servers with huge disk shelves."
  • @lexa_work #11794 10:07 AM, 15 Apr 2017
    это подход типичный для BigData решений
  • @lexa_work #11795 10:07 AM, 15 Apr 2017
    JBOD и/или софтовый RAID + репкликация прикладного уровня
  • https://t.me/clickhouse_ru
    @Civiloid #11796 10:10 AM, 15 Apr 2017
    да, именно так
  • https://t.me/clickhouse_ru
    @alexio666 #11797 10:53 AM, 15 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @finio ↶ Reply to #11784 #11798 11:44 AM, 15 Apr 2017
    Ну если будет летом обещанный рест, то можно начать складывать холодные данные в CH
  • https://t.me/clickhouse_ru
    @maxlapshin #11799 12:00 PM, 15 Apr 2017
    Аппаратные рейды это же медленно :)
  • https://t.me/clickhouse_ru
    @maxlapshin #11800 12:00 PM, 15 Apr 2017
    6 гбит на чтение при отсутствии записи
  • @andrewkovalyov #11801 12:34 PM, 15 Apr 2017
    а куда слать багрепорт по поводу битой разметки в документации?
  • @iamigor #11802 12:34 PM, 15 Apr 2017
    github issues
  • @iamigor #11803 12:35 PM, 15 Apr 2017
    или github pull requests :)
  • @andrewkovalyov #11804 12:39 PM, 15 Apr 2017
    она просто судя по всему где-то отдельно собирается, в репе только огромный хтмл файл
  • @iamigor #11805 12:39 PM, 15 Apr 2017
    там вообще где-то новая документация для readthedocs лежала ещё
  • @andrewkovalyov #11806 12:41 PM, 15 Apr 2017
    ClickHouse Guide

    ClickHouse — open-source distributed column-oriented DBMS

  • https://t.me/clickhouse_ru
    @maxlapshin #11807 01:02 PM, 15 Apr 2017
    О, а readthedocs - хорошо?
  • https://t.me/clickhouse_ru
    @rheinx #11808 01:59 PM, 15 Apr 2017
    Ребят, я вот уже почти доделал доки в readthedocs для англ версии
  • https://t.me/clickhouse_ru
    @rheinx #11809 02:00 PM, 15 Apr 2017
    Чуть менее актуальная русская есть тут. http://clickhouse-docs.readthedocs.io

    Но как только доделаю англ, то все сольём и должно быть ок)
  • Спасибо, очень ждём!
  • Не припоминаю, чтобы были какие-то концептуальные проблемы. Насколько я помню, речь шла о том, что мы можем это сделать.
  • @milovidov_an #11812 08:47 PM, 15 Apr 2017
    Про LVM - мы его раньше использовали, чтобы делать несколько разделов. Были подозрения, что LVM даёт какой-то существенный оверхед, но их не удалось ни подтвердить, ни опровергнуть. Сейчас у нас используются серверы без LVM, но сравнить по-нормальному не удалось.

    Также есть следующие соображения:
    - снапшоты действительно приводят к тормозам - мы это наблюдали раньше, но не на серверах с ClickHouse (на них снапшоты никогда не использовали);
    - не полностью понятно, как работает RAID-10 с помощью LVM - я так и не изучил до конца этот вопрос - даёт ли он такой же layout данных, как RAID-10 с помощью md (там ещё варианты - far, near), чтобы была хорошая скорость последовательного чтения. Мы никогда не использовали RAID с помощью LVM.
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #11812 #11813 09:15 PM, 15 Apr 2017
    Рейд средствами LVM делать вообще странно, у него есть некоторые особенности в виде необходимости отдельного хранилища метаданных, насколько я помню
  • https://t.me/clickhouse_ru
    @Civiloid #11814 09:15 PM, 15 Apr 2017
    И вопрос наверное скорее как mdadm vs mdadm поверх которого LVM
  • https://t.me/clickhouse_ru
    @Civiloid #11815 09:16 PM, 15 Apr 2017
    в таком виде, пока не пользоваться snapshot'ами и если не сильно играть с "создам я кучу разделов, а потом увеличу 3-ий, 5-ый и 8-ой", то оверхед будет ну пара процентов
  • @dmd3v #11816 10:20 PM, 15 Apr 2017
    Joined.
  • 16 April 2017 (48 messages)
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11817 02:42 AM, 16 Apr 2017
    Спасибо за фидбэк, очень интересно!
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11818 02:42 AM, 16 Apr 2017
    Вот еще интересен чей-либо опыт с ZFS на линуксе
  • @87319246 #11819 06:19 AM, 16 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @AndVag #11820 10:22 AM, 16 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #11821 10:26 AM, 16 Apr 2017
    Дарова
  • https://t.me/clickhouse_ru
    @BloodJazMan #11822 10:26 AM, 16 Apr 2017
    никто тут случайно на golang не пишет???
    никак не могу на нем FixedString(16) сгенерировать из UUID и в CSV записать
  • https://t.me/clickhouse_ru
    @BloodJazMan #11823 10:26 AM, 16 Apr 2017
    для clickhouse импорта надо =)
  • @iamigor #11824 10:26 AM, 16 Apr 2017
    так вроде ж два драйвера есть
  • @iamigor #11825 10:27 AM, 16 Apr 2017
    https://github.com/kshvakov/clickhouse/
    и еще какой-то был
    GitHub - ClickHouse/clickhouse-go: Golang driver for ClickHouse

    Golang driver for ClickHouse. Contribute to ClickHouse/clickhouse-go development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @BloodJazMan #11826 10:35 AM, 16 Apr 2017
    дело не в драйверах
  • https://t.me/clickhouse_ru
    @BloodJazMan #11827 10:39 AM, 16 Apr 2017
    хотя.... может быть и надо было заюзать этот драйвер он вон FixedString поддерживает
  • https://t.me/clickhouse_ru
    @BloodJazMan #11828 10:40 AM, 16 Apr 2017
    просто когда начинал писать был только драйвер от roistat
    который через HTTP работал
  • https://t.me/clickhouse_ru
    @IlyaSinelnikov #11829 10:59 AM, 16 Apr 2017
    Кстати, а какой гошный драйвер сейчас считается тру? Или пока не определились?
  • @e11it #11830 11:00 AM, 16 Apr 2017
    А в чем проблема с FixedString? Мы пользуем драйвер riostat и проблем нет...
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #11829 #11831 11:04 AM, 16 Apr 2017
    Тот что кинули использует native interface, довольно адекватный с виду. Правда есть подозрение что если нужно вставлять много данных, то любой драйвер будет хуже чем код специально под проект
  • https://t.me/clickhouse_ru
    @IlyaSinelnikov #11832 11:12 AM, 16 Apr 2017
    Спасибо!
  • https://t.me/clickhouse_ru
    у меня в этот FixedString пытается записаться UUID
    в каком формате вы вставляете батчи?
  • https://t.me/clickhouse_ru
    @BloodJazMan #11834 11:19 AM, 16 Apr 2017
    ну то есть у меня много UUID
    и я хочу получить буст по производительности для FixedString(16)
    на группировочных запросах
  • @vasserft #11835 01:16 PM, 16 Apr 2017
    Привет всем. Скажите, пока что нет никаких штук для гуи менеджмента из продуктов jetbrains?
  • @f1yegor #11836 01:17 PM, 16 Apr 2017
    вроде нет
  • @vasserft #11837 01:19 PM, 16 Apr 2017
    спасибо
  • @iamigor #11838 01:19 PM, 16 Apr 2017
    а jdbc драйвера разве нет?
  • https://t.me/clickhouse_ru
    @andreyfomin82 #11839 01:23 PM, 16 Apr 2017
    Joined.
  • @f1yegor #11840 01:26 PM, 16 Apr 2017
    попробуйте jdbc драйвер подключить, может заработает
  • @vasserft #11841 01:44 PM, 16 Apr 2017
    Дада, я уже догуглился до этого, спасибо ребята. С праздником православных и католиков!
  • @f1yegor #11842 01:56 PM, 16 Apr 2017
    просто я был не уверен что метадата которая нужна idea будет правильного формата, т.к. алиасы
    вроде не работают
  • https://t.me/clickhouse_ru
    @dmalashkin #11843 02:10 PM, 16 Apr 2017
    Joined.
  • @TransactionTimeout #11844 02:48 PM, 16 Apr 2017
    Joined.
  • @TransactionTimeout #11845 02:48 PM, 16 Apr 2017
    Всем привет!
  • @TransactionTimeout #11846 02:48 PM, 16 Apr 2017
    Такой вопрос: в репозитории
    http://repo.yandex.ru/clickhouse/xenial/dists/stable/Contents-i386
    тут только graphouse
    http://repo.yandex.ru/clickhouse/xenial/dists/stable/Contents-amd64
    а тут и графхаус и все остальные пакеты

    Так и задумывалось?
  • @ztlpn #11847 03:05 PM, 16 Apr 2017
    ClickHouse работает только на архитектуре x86_64 (она же amd64).
  • Ясно, спасибо!
  • https://t.me/clickhouse_ru
    А это кстати архитектурное ограничение или просто не хотелось тратить время на старую архитектуру?
  • @ztlpn #11853 03:44 PM, 16 Apr 2017
    Думаю, что второе. А что, есть потребность запускать на 32-битных серверах? Разве что на каком-нибудь raspberry pi, но там мало оперативки, не развернёшься :) Кстати, Алексей пробовал запускать на 64-битном ARM-е (была надежда, что большее количество ядер поможет).
  • https://t.me/clickhouse_ru
    @alexey_laptev #11854 03:48 PM, 16 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @saydamir #11855 04:16 PM, 16 Apr 2017
    а как то можно ограничить количество памяти используемой при мердже?
  • https://t.me/clickhouse_ru
    @proller ↶ Reply to #11847 #11856 04:27 PM, 16 Apr 2017
    На самом деле на arm64 тоже вполне работает и собирается, но на данный момент нужно более 2g оперативки для сборки, а на всех доступных платах за 40 баксов - как раз ровно два, но это не большая проблема, надо распилить FunctionsArithmetic.cpp
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #11852 #11857 05:18 PM, 16 Apr 2017
    Насколько я слышал, в кх есть места с ассемблерными вставками, их никто под что то кроме амд64 и арм64 не делал
  • @f1yegor #11858 06:40 PM, 16 Apr 2017
    что-то нигде я не видел тут ассемблера. может и правда
  • https://t.me/clickhouse_ru
    @sakalr #11859 06:41 PM, 16 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @sandyotic #11860 07:44 PM, 16 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @diehertz #11861 07:54 PM, 16 Apr 2017
    есть SSE интринсики, как с SSE на ARM? Вероятно, никак
  • https://t.me/clickhouse_ru
    @diehertz #11862 07:55 PM, 16 Apr 2017
    Врядли они налету конвертируются в ARM Neon
  • https://t.me/clickhouse_ru
    @proller #11863 09:11 PM, 16 Apr 2017
    все sse места обложены корректными #if sse*, все ассемблерные места - #if x86_64 - потому оно под арм64 и собирается
  • https://t.me/clickhouse_ru
    @diehertz #11864 09:14 PM, 16 Apr 2017
    Ясно, когда я занимался разработкой ClickHouse, я таких conditional-compilation путей не добавлял :)
  • https://t.me/clickhouse_ru
    @diehertz #11865 09:14 PM, 16 Apr 2017
    Видимо это случилось после
  • https://t.me/clickhouse_ru
    @proller #11866 09:16 PM, 16 Apr 2017
    под 32 бит скорее всего соберется с не очень большим количеством проблем, особенно если все внешние либы использовать
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #11863 #11867 10:14 PM, 16 Apr 2017
    Вроде в момент когда выложили в опенсорс не у всех мест был else
  • 17 April 2017 (104 messages)
  • @kochetovnicolai #11868 09:47 AM, 17 Apr 2017
    Joined.
  • @dr_gavrikov #11869 10:03 AM, 17 Apr 2017
    Всем привет. у меня вопрос для лайфтайм для внешних словарей

    в доке написано

    "Для cache-словарей может быть задано время устаревания (lifetime) данных в кэше. Если от загрузки данных в ячейке прошло больше времени, чем lifetime, то значение не используется, и будет запрошено заново при следующей необходимости его использовать."

    <lifetime>
    <min>300</min>
    <max>360</max>
    </lifetime>

    а лайфтам в каких единицах указывается? в минутах или в секундах?
  • @iamigor #11870 10:04 AM, 17 Apr 2017
    в секундах
  • @dr_gavrikov #11871 10:05 AM, 17 Apr 2017
    спасибо
  • https://t.me/clickhouse_ru
    @tosha_medvedev #11872 10:40 AM, 17 Apr 2017
    Всем привет.
    Кто-нибудь использует функции для работы со словарями (в т.ч. словарями Яндекс.Метрики) в WHERE или PREWHERE секции? Например, WHERE regionToCity(RegionID)=55. Интересует, так же ли это эффективно, как WHERE CityID=55, если держать CityID в собственном столбце (не в ПК).
  • https://t.me/clickhouse_ru
    @vladenisov #11873 10:40 AM, 17 Apr 2017
    можете подсказать, как избежать ошибки DB::Exception: ARRAY JOIN requires array argument. в случае, когда тип колонки Nullable(Array(...))?
  • @iamigor #11874 10:43 AM, 17 Apr 2017
    может CASTом конвертнуть в AS Array(...)? мне с enum'ами и подобной ошибкой помогает
    хз, правда, что из этого выйдет %)
  • https://t.me/clickhouse_ru
    @vladenisov #11875 10:45 AM, 17 Apr 2017
    Cannot convert data from a nullable type to a non-nullable type.
  • https://t.me/clickhouse_ru
    А зачем массив делать nullable? Пустым нельзя обойтись?
  • https://t.me/clickhouse_ru
    @vladenisov #11877 10:47 AM, 17 Apr 2017
    мне показалось, что так будет удобнее при запросах
  • https://t.me/clickhouse_ru
    @AndreevDm #11878 10:47 AM, 17 Apr 2017
    Не будет
  • https://t.me/clickhouse_ru
    @AndreevDm #11879 10:47 AM, 17 Apr 2017
    Лучше стараться не использовать null
  • https://t.me/clickhouse_ru
    @AndreevDm #11880 10:47 AM, 17 Apr 2017
    Их поддержка сейчас не самая лучшая
  • https://t.me/clickhouse_ru
    @vladenisov #11881 10:48 AM, 17 Apr 2017
    ну и к тому же это свойство страницы, массива может либо не существовать, либо он может быть пустым
  • https://t.me/clickhouse_ru
    @AndreevDm #11882 10:51 AM, 17 Apr 2017
    Ну только если это действительно важно для запросов. Хотя можно отдельный атрибут записать, по сути тоже признак null
  • https://t.me/clickhouse_ru
    @Akulbasov #11883 10:52 AM, 17 Apr 2017
    А если у нас nested и массивы должны быть одинакового размера, в этом случае нормально использовать null, правильно понимаю?
  • https://t.me/clickhouse_ru
    @vladenisov #11884 10:54 AM, 17 Apr 2017
    так и было раньше. я посмотрел на нуллы после первого их появления в CH – тогда было много багов, поэтому решил подождать с изменением таблиц. сейчас на первый взгляд всё показалось ок, но вот arrayJoin я как-то упустил.
  • https://t.me/clickhouse_ru
    @vladenisov #11885 10:54 AM, 17 Apr 2017
    Ну только если это действительно важно для запросов. Хотя можно отдельный атрибут записать, по сути тоже признак null
  • https://t.me/clickhouse_ru
    @vladenisov #11886 10:56 AM, 17 Apr 2017
    я думаю, что нормально было бы при наличии {column} IS NOT NULL конверить такую колонку из Nullable-типа в обычный (это чисто пользовательский взгяд)
  • https://t.me/clickhouse_ru
    @ewgeniyk #11887 11:06 AM, 17 Apr 2017
    День добрый. Вопрос. При создании materialized views в структуре таблиц создаются некие внутренние структуры типа .inner.<view_name>. Произошла странная ситуация, было переполнение места на сервере - в итоге самих вьюх нет, а вот эта ".inner"-структура осталась, дропами не удаляется и новые вьюхи не создаются. Что делать?
  • https://t.me/clickhouse_ru
    Смотрите, поддержка null появилась в КХ достаточно недавно и по прежнему есть ограничения в работе
  • https://t.me/clickhouse_ru
    @AndreevDm #11889 11:07 AM, 17 Apr 2017
    Поэтому их ещё и в документации нет.
  • https://t.me/clickhouse_ru
    @Akulbasov #11890 11:07 AM, 17 Apr 2017
    Я это понял
  • https://t.me/clickhouse_ru
    @AndreevDm #11891 11:07 AM, 17 Apr 2017
    Если есть возможность их не использовать - не используйте.
  • https://t.me/clickhouse_ru
    @Akulbasov #11892 11:09 AM, 17 Apr 2017
    Если их не задействовать, то как тогда обходить ошибку не соотвесвтия размеров массивов при вставке в нестед колонки, ибо если ты их оставляешь пустым - то у тебя получается ошибка. Я пока оставил null тип.
  • https://t.me/clickhouse_ru
    @AndreevDm #11893 11:11 AM, 17 Apr 2017
    Что за ошибка?
  • https://t.me/clickhouse_ru
    @Akulbasov #11894 11:12 AM, 17 Apr 2017
    момент
  • https://t.me/clickhouse_ru
    @Akulbasov #11895 11:14 AM, 17 Apr 2017
    Exception("Sizes of nested arrays do not match")
  • https://t.me/clickhouse_ru
    @Akulbasov #11896 11:14 AM, 17 Apr 2017
    это эксепшн точнее
  • https://t.me/clickhouse_ru
    @ewgeniyk ↶ Reply to #11887 #11897 11:20 AM, 17 Apr 2017
    решено.
    drop table `.inner.<view_name>`;
  • https://t.me/clickhouse_ru
    @andrey_konyaev #11898 12:38 PM, 17 Apr 2017
    Всем привет!
    Есть проблема.
    На запрос SELECT * from db.events LIMIT 1 FORMAT JSONCompact
    выпадает
    Code: 246. DB::Exception: Received from localhost:9001, ::1. DB::Exception: Received from ch-1:9001, 192.168.58.36. DB::Exception: bad size of marks file `/mnt/hadoop/data/clickhouse/data/db/events_local/20170313_20170331_3_1017308_5392/items%2Ename.null.mrk':5312, must be: 2096.

    db.events - Это distributed над db.events_local (ReplacingMeergeTree)
    OPTIMIZE TABLE groot3.events_local PARTITION 201703 FINAL - совсем не помог

    Хоть какие-нибудь идеи ??
  • https://t.me/clickhouse_ru
    @proller #11900 02:14 PM, 17 Apr 2017
    версия кликхауса какая?
  • https://t.me/clickhouse_ru
    @andrey_konyaev #11901 02:40 PM, 17 Apr 2017
    1.1.54165
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @proller #11903 02:44 PM, 17 Apr 2017
    OPTIMIZE FINAL was fixed in version 1.1.54188
  • https://t.me/clickhouse_ru
    @andrey_konyaev #11904 02:45 PM, 17 Apr 2017
    Спасибо, буду апдейтиться
  • https://t.me/clickhouse_ru
    @andrey_konyaev #11905 03:02 PM, 17 Apr 2017
    Обновился до 1.1.54198 - результата не добился.
    Всё равно в трейс вылетает эта ошибка.
  • @e11it #11906 03:03 PM, 17 Apr 2017
    Побились данные, есть программа на С которая может "отрезать" побитую часть: https://github.com/ludv1x/ClickHouse/tree/broken-part-cutter/utils/broken-part-cutter
    ludv1x/ClickHouse

    ClickHouse is a free analytic DBMS for big data.

  • https://t.me/clickhouse_ru
    @andrey_konyaev #11907 03:05 PM, 17 Apr 2017
    Как я понимаю, в таком случае данные побиты и на реплике?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11908 03:47 PM, 17 Apr 2017
    Добрый день. подскажите делаю
    select toDateTime(eventTime)
    group by toHour(eventTime)

    Column eventTime is not under aggregate function and not in GROUP BY
    ожидается - в select вывести дату, а сгруппировать по часу
  • @iamigor #11909 03:49 PM, 17 Apr 2017
    группируйте по дате и по часу
  • @iamigor #11910 03:49 PM, 17 Apr 2017
    а вообще, я ж вроде говорил уже про https://clickhouse.yandex/reference_ru.html#toStartOfHour
    Документация ClickHouse | Документация ClickHouse

    ClickHouse is a fast open-source column-oriented database management system that allows generating analytical data reports in real-time using SQL queries

  • @iamigor #11911 03:49 PM, 17 Apr 2017
    он не будет правильнее в этом случае?
  • https://t.me/clickhouse_ru
    я просто не пойму почему нельзя просто вывести поле а сгруппировать по части данных этого поля. зачем группировать по секундно и потом еще по часу ?
  • @iamigor #11913 03:51 PM, 17 Apr 2017
    так вы и не группируете посекундно
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11914 03:51 PM, 17 Apr 2017
    так мне и не надо
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11915 03:51 PM, 17 Apr 2017
    только по часу
  • https://t.me/clickhouse_ru
    GROUP BY
    eventTime,
    toHour(eventTime),
    ? не уж то так надо писать?
  • @iamigor #11917 03:52 PM, 17 Apr 2017
    нет. говорю, что не надо.
  • https://t.me/clickhouse_ru
    ну тогда как вывести нормальную дату в виде timestamp а сгруппировать только по часу?
  • @iamigor #11919 03:53 PM, 17 Apr 2017
    вы хотите по часу для каждой даты или по часу в целом (за месяц например), чтоб в итоге 24 строки получилось?
  • @iamigor ↶ Reply to #11640 #11920 03:53 PM, 17 Apr 2017
    toStartOfHour, в третий раз пишу
  • https://t.me/clickhouse_ru
    это не уберает ошибку
  • https://t.me/clickhouse_ru
    @arseniyb #11922 03:54 PM, 17 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    хочу по часу сгруппировать то есть да 24 строки
  • @iamigor #11924 03:55 PM, 17 Apr 2017
    тогда добавьте дату в group by, если она нужна, и в where, если не нужна.
  • https://t.me/clickhouse_ru
    не понял
  • @iamigor #11926 03:57 PM, 17 Apr 2017
    ок. у вас отчет по одной дате или по диапазону?
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #11912 #11927 03:58 PM, 17 Apr 2017
    потому что так работает sql в любой базе отличной от mysql.
  • https://t.me/clickhouse_ru
    @orantius #11928 03:58 PM, 17 Apr 2017
    а работает он так потому, что в общем случае вы не можете вывести из отношения функциональную зависимость, в результате которой ответ становится однозначным.
  • https://t.me/clickhouse_ru
    поясните пожалуйста в рамках моего примера
  • https://t.me/clickhouse_ru
    @orantius #11930 04:01 PM, 17 Apr 2017
    вы делаете запрос
    select toDateTime(eventTime)
    ...
    group by toHour(eventTime)что вы ожидаете получить
  • @iamigor #11931 04:02 PM, 17 Apr 2017
    +1, непонятно
  • @iamigor #11932 04:02 PM, 17 Apr 2017
    toDateTime(eventTime) никакого эффекта не даст, eventTime и так DateTime, полагаю
  • https://t.me/clickhouse_ru
    @orantius #11933 04:02 PM, 17 Apr 2017
    например у вас данные 00:00:00 , 00:00:01
  • https://t.me/clickhouse_ru
    мне нужно сгруппировать по часу посчитав для этого часа сумму записей. поэтому хочу к часу привести но вывести полную дату
  • https://t.me/clickhouse_ru
    @orantius #11935 04:05 PM, 17 Apr 2017
    что такое полная дата
  • https://t.me/clickhouse_ru
    @orantius #11936 04:05 PM, 17 Apr 2017
    17/04/2017 - полная дата?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11937 04:06 PM, 17 Apr 2017
    это Y-m-d h:i:s
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11938 04:06 PM, 17 Apr 2017
    просто вывести datetime поле
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11939 04:06 PM, 17 Apr 2017
    но группировку осуществить по часу
  • https://t.me/clickhouse_ru
    @orantius #11940 04:07 PM, 17 Apr 2017
    очень хорошо. у вас есть две строки
    eventTime
    2000-01-01 00:00:00
    2000-01-01 00:01:00что должен выдать ваш запрос
  • @iamigor #11941 04:07 PM, 17 Apr 2017
    :) SELECT toStartOfHour(timestamp) AS hr, count() FROM click WHERE timestamp BETWEEN '2017-04-13 20:00:00' AND '2017-04-14 03:00:00' GROUP BY hr ORDER BY hr

    ┌──────────────────hr─┬─count()─┐
    │ 2017-04-13 20:00:00 │ **** │
    │ 2017-04-13 21:00:00 │ **** │
    │ 2017-04-13 22:00:00 │ **** │
    │ 2017-04-13 23:00:00 │ **** │
    │ 2017-04-14 00:00:00 │ **** │
    │ 2017-04-14 01:00:00 │ **** │
    │ 2017-04-14 02:00:00 │ **** │
    └─────────────────────┴─────────┘
  • https://t.me/clickhouse_ru
    хм. вроде то что надо. я понял смысл
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11943 04:09 PM, 17 Apr 2017
    Спасибо
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11944 04:52 PM, 17 Apr 2017
    toStringCutToZero скажите эта функции сильно грузит сервак (серер уходит в аут). В чем может быть дело?
  • @iamigor #11945 04:52 PM, 17 Apr 2017
    уверены, что дело в этой функции?
  • @iamigor #11946 04:52 PM, 17 Apr 2017
    над каким столбцом делаете, че там за данные?

    может проще в String хранить?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11947 04:53 PM, 17 Apr 2017
    может и проще. просто когда результат возвращается от кх то там где строки куча байт символов
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11948 04:53 PM, 17 Apr 2017
    поэтому хочется вырезать их чтобы получить нормальную строку
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11949 04:53 PM, 17 Apr 2017
    вот даже сравнил вешаю на одно поле toStringCutToZero и получаю в 2 раза дольше выполнение запроса
  • @iamigor #11950 04:55 PM, 17 Apr 2017
    ¯\_(ツ)_/¯
    если хочется нормальную строку - лучше хранить данные в нормальных строках
    а toString так же медленно работает?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11951 04:55 PM, 17 Apr 2017
    хотя на счет в 2 раза дольше. это как-то случайно так вышло
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11952 04:56 PM, 17 Apr 2017
    помоему они одинаковы по производительности
  • @iamigor #11953 04:57 PM, 17 Apr 2017
    ну если одинаково, но медленно/крашится - возможно, имеет смысл перезалить данные, заменив fixedstring в string
  • @iamigor #11954 04:57 PM, 17 Apr 2017
    если fixedstring вам по факту не нужен
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11955 05:02 PM, 17 Apr 2017
    ладно будем думать)) но тут есть какой-то баг крашится сервак из-за применения этих функций например два поля fixedString и два поля пытаешься обработать функцией в итоге сыпется сервак. решение - просто сделал toString на одно из полей
  • https://t.me/clickhouse_ru
    @orantius #11956 05:03 PM, 17 Apr 2017
    пример схемы, пример запроса?
  • https://t.me/clickhouse_ru
    toString(applicationName) as applicationName,
    toStringCutToZero(os) as os,
  • @iamigor #11958 05:03 PM, 17 Apr 2017
    и лог выполнения запроса не помешает наверн
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11959 05:04 PM, 17 Apr 2017
    applicationName String, os FixedString(70)
  • @iamigor #11960 05:04 PM, 17 Apr 2017
    toString(string) это хорошо
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11961 05:04 PM, 17 Apr 2017
    ну тут вроде все правильно
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11962 05:04 PM, 17 Apr 2017
    сча найду это поле
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11963 05:05 PM, 17 Apr 2017
    а вот я понял я на поле типа String вешал toStringCutToZero
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11964 05:05 PM, 17 Apr 2017
    и это вызывает краш сервера
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11965 05:06 PM, 17 Apr 2017
    никакого эксепшена ничего. просто висит и пытается выполнить запрос как в это время сервер уже сдох)
  • https://t.me/clickhouse_ru
    @orantius #11966 05:06 PM, 17 Apr 2017
    SELECT
    toStringCutToZero(applicationName)?
  • https://t.me/clickhouse_ru
    да это вызвало падение сервера
    applicationName - String
  • @iamigor #11968 05:11 PM, 17 Apr 2017
    ну, видимо оперативки не хватает и запрос по меньшему периоду нужен?
    (хотя ваще странно)
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #11967 #11969 05:11 PM, 17 Apr 2017
    что-то с первого раза не воспроизводится. а в логах что?
  • @milovidov_an #11970 05:12 PM, 17 Apr 2017
    Я уже посмотрел и воспроизвёл - это баг.
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #11971 05:14 PM, 17 Apr 2017
    😲
  • @milovidov_an #11972 08:45 PM, 17 Apr 2017
    Мы уже знаем, что следующий митап будет в Екб где-то в середине мая.
    Сейчас выбираем темы для докладов.
  • 18 April 2017 (204 messages)
  • https://t.me/clickhouse_ru
    @Tyralion #11973 04:24 AM, 18 Apr 2017
    Joined.
  • @Nvarchar495 #11974 05:46 AM, 18 Apr 2017
    Доброе утро! Подскажите пожалуйста, а куда надо положить csv файлик чтобы загрузить его в КХ? Спасибо
  • @iamigor #11975 05:47 AM, 18 Apr 2017
    в смысле - куда?
    вы хотите загрузить clickhouse-clientом или по HTTP?
  • @Nvarchar495 #11976 05:48 AM, 18 Apr 2017
    Вот в доке написано cat <<_EOF | clickhouse-client --database=test --query="INSERT INTO test FORMAT CSV";
  • @Nvarchar495 #11977 05:49 AM, 18 Apr 2017
    у меня файлик называется dump.csv
  • @iamigor #11978 05:50 AM, 18 Apr 2017
    можно cat dump.csv | clickhouse-client ...
  • @iamigor #11979 05:50 AM, 18 Apr 2017
    ~ ❯ clickhouse-client -q 'CREATE TABLE test (s String, x Int64) ENGINE = TinyLog;';
    ~ ❯ cat test.csv
    "hello",123
    "world",456
    ~ ❯ cat test.csv | clickhouse-client -q 'INSERT INTO test FORMAT CSV';
    ~ ❯ clickhouse-client -q 'SELECT * FROM test FORMAT PrettyCompactNoEscapes';
    ┌─s─────┬───x─┐
    │ hello │ 123 │
    │ world │ 456 │
    └───────┴─────┘
  • cat: test.csv: No such file or directory
  • @iamigor #11982 06:04 AM, 18 Apr 2017
    ну у меня test.csv, у вас - dump.csv =)
  • @iamigor #11983 06:04 AM, 18 Apr 2017
    если он в той же папке, должно быть достаточно
  • @iamigor #11984 06:04 AM, 18 Apr 2017
    если не в той же, то можно относительный/полный путь до файла указать, соответственно
  • Вот мой и вопрос был )) в той же папке, это какой ))
  • @iamigor #11986 06:06 AM, 18 Apr 2017
    в той же, в которой сейчас открыт терминал
  • @iamigor #11987 06:06 AM, 18 Apr 2017
    если набрать команду pwd, отобразится текущая папка
  • @iamigor #11988 06:07 AM, 18 Apr 2017
    How To Use cd, pwd, and ls to Explore the File System on a Linux Server | DigitalOcean

    Taking your first steps on the command line can be rather daunting. In this article, we seek to make your introduction easy and straight forward. We are going to start small by showing you how to move around on the command line, find out where you are

  • Спасибо взлетело. А команда "cat" нормально прожует файл в 150 гб? или есть более оптимизированные?
  • @iamigor #11990 06:14 AM, 18 Apr 2017
    команда cat может и нормально прожует, а вот сервер уже не факт. лучше разбить на файлики поменьше. по 100к строчек, например. или по миллиону.
    вдруг еще ошибки при парсинге CSV будут
  • @iamigor #11991 06:14 AM, 18 Apr 2017
    и лучше clickhouse-compressorом прогнать, наверное
  • @Nvarchar495 #11992 06:15 AM, 18 Apr 2017
    Благодарю 👍
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #11829 #11993 06:15 AM, 18 Apr 2017
    тут нет тру или не тру, если вы, например, хотите использовать встроенные функции CH для вставки данных то используйте github.com/roistat/go-clickhouse т.к. он работает поверх http и просто пересылает запрос на сервер, напротив https://github.com/kshvakov/clickhouse использует "нативный" формат который требует преобразования данных на клиенте, т.е. если поле FixedString(16) то он и ждет 16 байт, а не UUIDStringToNum('uuid-uuid'), но он позволяет вставлять данные в 2-3 раза быстрее чем через http интерфейс если его использовать в обход гошного интерфейса https://github.com/kshvakov/clickhouse/blob/master/examples/direct.go
    GitHub - roistat/go-clickhouse: Golang ClickHouse connector

    Golang ClickHouse connector. Contribute to roistat/go-clickhouse development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #11829 #11994 06:35 AM, 18 Apr 2017
    и еще, https://github.com/kshvakov/clickhouse поддерживает стандартный гошный интерфейс для работы с базами данных, конечно если вам это важно
    GitHub - ClickHouse/clickhouse-go: Golang driver for ClickHouse

    Golang driver for ClickHouse. Contribute to ClickHouse/clickhouse-go development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @andrey_konyaev #11995 06:45 AM, 18 Apr 2017
    Доброе утро, есть ли возможность проставить DEFAULT для столбца в Nested?

    create table test2 (
    id Int8 ,
    date Date,
    items Nested
    (
    name String DEFAULT 'None',
    type String DEFAULT 'None')
    ) ENGINE = ReplacingMergeTree(date, (id), 8192)

    Syntax error: failed at position 77 (line 6, col 17)
  • @iamigor #11996 06:47 AM, 18 Apr 2017
    Есть неудобный способ:

    CREATE TABLE table_test
    (
    date Date,
    isp.name Array(String),
    isp.ispHash Array(Int64) DEFAULT arrayMap(x -> cityHash64(x), isp.name)
    ) ENGINE = MergeTree(date, date, 8192)

    (несколько столбцов-массивов с общим префиксом до точки в имени, полностью эквивалентны Nested структуре).
  • @iamigor #11997 06:47 AM, 18 Apr 2017
    Вокруг составных имён поставьте обратные кавычки (их съел Telegram).
  • https://t.me/clickhouse_ru
    @andrey_konyaev #11998 07:23 AM, 18 Apr 2017
    Спасибо большое, заработало!
    Есть ещё один (глупый) вопрос, но я с ним не могу разобраться.
    Есть таблица:
    CREATE TABLE test.test ( ts String DEFAULT \'None\', ts2 String DEFAULT \'None\', ti2 Int32 DEFAULT CAST(0 AS Int32), date Date) ENGINE = ReplacingMergeTree(date, ti2, 8192)

    Как правильно инсёртить пустые строки? В документации не нашёл примера.
    :) insert into test values ( 'kjh',,,'1990-08-14')

    INSERT INTO test VALUES

    Exception on client:
    Code: 62. DB::Exception: Cannot parse expression of type String here: ,,'1990-08-14')

    Connecting to database test at localhost:9000.
    Connected to ClickHouse server version 1.1.54198.

    Заранее спасибо!
  • @iamigor #11999 07:28 AM, 18 Apr 2017
    '', не?)
  • @iamigor #12000 07:29 AM, 18 Apr 2017
    INSERT INTO test VALUES ('kjh', '', 0, today()); на вашем примере
  • https://t.me/clickhouse_ru
    @andrey_konyaev #12001 07:30 AM, 18 Apr 2017
    :) insert into test values ( 'kjh','',,'1990-08-14')

    INSERT INTO test VALUES

    Ok.

    1 rows in set. Elapsed: 0.034 sec.

    :) select * from test

    SELECT *
    FROM test

    ┌─ts──┬─ts2─┬─ti2─┬───────date─┐
    │ kjh │ │ 0 │ 1990-08-14 │
    └─────┴─────┴─────┴────────────┘

    1 rows in set. Elapsed: 0.007 sec.

    :)
  • https://t.me/clickhouse_ru
    @andrey_konyaev #12002 07:31 AM, 18 Apr 2017
    Получается что он не значение поумолчанию вписал, а то которое я передал, т.е. ''
  • @iamigor #12003 07:31 AM, 18 Apr 2017
    да. если хотите значение по умолчанию, то укажите столбцы, которые собираетесь вставлять. не указывая при этом те, которые хотите, чтобы были по умолчанию )
  • @iamigor #12004 07:31 AM, 18 Apr 2017
    INSERT INTO test (ts, date) VALUES ('asd', today());
  • @iamigor #12005 07:32 AM, 18 Apr 2017
    в документации начинается со слов "В запросе может быть опционально указан список столбцов для вставки."
  • https://t.me/clickhouse_ru
    @andrey_konyaev #12006 07:34 AM, 18 Apr 2017
    Ок, понял Вас. Спасибо.
    Это можно считать багом и написать git-issue, или это ожидаемое и стандартное поведение для String?
  • @kimp1er #12007 07:38 AM, 18 Apr 2017
    Joined.
  • @Nikqwag #12008 07:44 AM, 18 Apr 2017
    Joined.
  • @291662242 #12009 07:46 AM, 18 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @andrey_konyaev #12010 08:07 AM, 18 Apr 2017
    Есть ещё один вопросик.
    При инсёрте ловлю эксепшен из Functions/FunctionsArray.cpp

    throw Exception{"Function array requires at least one argument.", ErrorCodes::NUMBER_OF_ARGUMENTS_DOESNT_MATCH};

    Можете помочь разобраться что прокидывается в NUMBER_OF_ARGUMENTS_DOESNT_MATCH и при каком кейсе должно вылететь это исключение?
  • @iamigor #12011 08:13 AM, 18 Apr 2017
    функция array(), которая массив создает, принимает 1 и более аргументов
    вы передаете ноль, судя по эксепшену

    > Должен быть передан хотя бы один аргумент, так как иначе непонятно, какого типа создавать массив.
  • @f1yegor #12012 09:07 AM, 18 Apr 2017
    GitHub - crobox/clickhouse-scala-client: Clickhouse Scala Client with Reactive Streams support

    Clickhouse Scala Client with Reactive Streams support - GitHub - crobox/clickhouse-scala-client: Clickhouse Scala Client with Reactive Streams support

  • @Nvarchar495 #12013 09:37 AM, 18 Apr 2017
    Привет! Поправте меня пожалуйста: есть цена 650.00р я умножаю ее на 1000000, чтобы вставить в Uint64 ругается на ошибку 65000000.00
  • @iamigor #12014 09:37 AM, 18 Apr 2017
    toUInt64()
  • @Nvarchar495 #12015 09:38 AM, 18 Apr 2017
    а зачем и умножать и еще и конвертить?
  • https://t.me/clickhouse_ru
    @iGusev ↶ Reply to #12015 #12016 09:40 AM, 18 Apr 2017
    потому что 650.01 * 100 = 65001.00
  • @Nvarchar495 #12017 09:40 AM, 18 Apr 2017
    я вообще пытаюсь распарсить csv (insert into T format csv)
  • @iamigor ↶ Reply to #12015 #12018 09:40 AM, 18 Apr 2017
    потому что float * int = float
  • Спасибо. только написано что не на 100 а на 1000000
  • @iamigor #12020 09:42 AM, 18 Apr 2017
    да какая разница
  • https://t.me/clickhouse_ru
    @iGusev ↶ Reply to #12019 #12021 09:42 AM, 18 Apr 2017
    ))))
  • @Nvarchar495 #12022 09:43 AM, 18 Apr 2017
    (insert into T format csv) и где сюда еще и toUInt64()
    воткнуть?
  • @iamigor #12023 09:44 AM, 18 Apr 2017
    здесь нигде. а где вы умножаете цену 650.00 на 1сколькотамуваснулей?
  • @iamigor #12024 09:44 AM, 18 Apr 2017
    вот там же можно и от дробной части избавляться
  • @Nvarchar495 #12025 09:46 AM, 18 Apr 2017
    Все. Усек))
  • @Nvarchar495 #12026 09:46 AM, 18 Apr 2017
    Спасибо за помошь))
  • @konstantin_mitjurin #12027 10:12 AM, 18 Apr 2017
    Добрый день!
  • @konstantin_mitjurin #12028 10:12 AM, 18 Apr 2017
    Сложилась такая ситуация:
  • @konstantin_mitjurin #12029 10:13 AM, 18 Apr 2017
    изза человеческого фактора, были задублированы данные за некторое время
  • @konstantin_mitjurin #12030 10:13 AM, 18 Apr 2017
    есть уникальный идентификатор каждого события
  • @konstantin_mitjurin #12031 10:13 AM, 18 Apr 2017
    теоретически можно данные за сегодня перенести в другую таблицу
  • @konstantin_mitjurin #12032 10:13 AM, 18 Apr 2017
    вопрос заключается, можно ли как-то друпнуть данные за сегодня?
  • @konstantin_mitjurin #12033 10:13 AM, 18 Apr 2017
    дропать все таблицу не катит
  • @konstantin_mitjurin #12034 10:14 AM, 18 Apr 2017
    там больше 1 млрд событий
  • @iamigor #12035 10:14 AM, 18 Apr 2017
    можно дропнуть месяц (partition)
  • @konstantin_mitjurin #12036 10:14 AM, 18 Apr 2017
    вроде как КХ хранит данные порционно
  • @iamigor #12037 10:15 AM, 18 Apr 2017
    да, я и говорю
    https://clickhouse.yandex/reference_ru.html#Манипуляции%20с%20партициями%20и%20кусками
    Документация ClickHouse | Документация ClickHouse

    ClickHouse is a fast open-source column-oriented database management system that allows generating analytical data reports in real-time using SQL queries

  • @iamigor #12038 10:16 AM, 18 Apr 2017
    можете перенести данные за месяц (недублированные) в отдельную таблицу

    грохнуть месяц в старой таблице

    и INSERTнуть в старую таблицу недублированные данные из новой
  • @konstantin_mitjurin #12040 10:26 AM, 18 Apr 2017
    я посмотрел, что у меня партиции по дням, а не месяцам
  • @konstantin_mitjurin #12041 10:27 AM, 18 Apr 2017
    я так полагаю, что можно дропнуть партицию за сегодняшний день
  • @iamigor #12042 10:28 AM, 18 Apr 2017
    это не партиции
  • @iamigor #12043 10:28 AM, 18 Apr 2017
    это куски (или как там они правильно называются)
  • @konstantin_mitjurin #12044 10:32 AM, 18 Apr 2017
    что будет если физически удалить куски данных из партиции?
  • @konstantin_mitjurin #12045 10:34 AM, 18 Apr 2017
    теоретически - можно задетачить месяц
  • @konstantin_mitjurin #12046 10:35 AM, 18 Apr 2017
    поправить куски - вставив уникальные данные и потом заново заатачить данные
  • @iamigor #12047 10:36 AM, 18 Apr 2017
    тут люди с битыми данными мучаются, а вы их самостоятельно побить хотите )

    CREATE TABLE table_april AS table;
    INSERT INTO table_april SELECT * FROM table WHERE date >= '2017-04-01' AND ...; -- или как там от дублей избавитесь
    ALTER TABLE table DETACH PARTITION '201704';
    INSERT INTO table SELECT * FROM table_april;

    что-то типа того должно пройти безболезненно
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #12030 #12048 11:05 AM, 18 Apr 2017
    учитесь жить с такими дубликатами, limit by вам в помощь https://clickhouse.yandex/reference_en.html#LIMIT N BY modifier
    ClickHouse Documentation | ClickHouse Documentation

    ClickHouse is a fast open-source column-oriented database management system that allows generating analytical data reports in real-time using SQL queries

  • @konstantin_mitjurin #12049 11:06 AM, 18 Apr 2017
    немного не понимаю, как связаны задвоенные данные с LIMIT
  • @konstantin_mitjurin #12050 11:07 AM, 18 Apr 2017
    и я бы посмотрел на вас, если бы вам пришлось заплатить в 15 раз больше, чем вы заработали 😕
  • @konstantin_mitjurin #12051 11:07 AM, 18 Apr 2017
    при условии, если "жить с дубликатами"
  • https://t.me/clickhouse_ru
    @kshvakov #12052 11:09 AM, 18 Apr 2017
    limit by это не limit, если у вас есть уникальное значение то по нему можно отсекать только первое появившееся, а остальные откидывать, посмотрите в документации
  • https://t.me/clickhouse_ru
    @kshvakov #12053 11:11 AM, 18 Apr 2017
    это как если бы вы оконной функцией посчитали ранк с овер бай и вычитали записи только с ранком = 1
  • https://t.me/clickhouse_ru
    @kshvakov #12054 11:15 AM, 18 Apr 2017
    пример

    CREATE TABLE diff_test
    (
    session_id String,
    price Float64,
    action_at DateTime
    ) ENGINE = Memory;

    insert into diff_test values ('session1', 0.42, '2017-02-14 10:16:00'),
    ('sessiondup1', 0.84, '2017-02-14 10:18:00'),
    ('sessiondup1', 0.42, '2017-02-14 10:16:00'),
    ('session2', 0.42, '2017-02-14 10:19:00'),
    ('sessiondup2', 0.42, '2017-02-14 10:19:00'),
    ('sessiondup2', 0.42, '2017-02-14 10:19:00'),
    ('session2', 0.42, '2017-02-14 10:19:00'),
    ('session3', 0.42, '2017-02-14 10:19:00');

    и

    select * from diff_test order by action_at limit 1 by session_id;

    SELECT *
    FROM diff_test
    ORDER BY action_at ASC
    LIMIT 1 BY session_id

    ┌─session_id──┬───────────────price─┬───────────action_at─┐
    │ session1 │ 0.42000000000000004 │ 2017-02-14 10:16:00 │
    │ sessiondup1 │ 0.42000000000000004 │ 2017-02-14 10:16:00 │
    │ session2 │ 0.42000000000000004 │ 2017-02-14 10:19:00 │
    │ sessiondup2 │ 0.42000000000000004 │ 2017-02-14 10:19:00 │
    │ session3 │ 0.42000000000000004 │ 2017-02-14 10:19:00 │
    └─────────────┴─────────────────────┴─────────────────────┘

    5 rows in set. Elapsed: 0.016 sec.
  • @konstantin_mitjurin #12055 11:21 AM, 18 Apr 2017
    я понял, не знал
  • @konstantin_mitjurin #12056 11:21 AM, 18 Apr 2017
    спасибо!
  • https://t.me/clickhouse_ru
    @niknvv #12057 11:35 AM, 18 Apr 2017
    если в каждом запросе использовать limit by - это сильно скажется на скорости выполнения запроса?
    Мы ведь используем доп группировку
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #12057 #12058 11:39 AM, 18 Apr 2017
    мы вынуждены использовать limit by, раньше было другое, костыльное, решение и оно работало медленнее
  • https://t.me/clickhouse_ru
    @kshvakov #12059 11:41 AM, 18 Apr 2017
    например: если мобильные прокси дублируют вам клики/показы, но на них есть уникальный код, то без этого тут никак :)
  • @exvion #12060 11:55 AM, 18 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @hagen1778 #12061 12:28 PM, 18 Apr 2017
    Добрый день! Кто-нибудь сталкивался с задачей сравнения данных по периодам? Например, показатели за эту неделю по сравнению с показателями прошлой недели. Эту задачу можно решить одним запросом, но он выглядит довольно громоздко. Быть может, у кого-то был опыт решения аналогичной задачи?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #12062 12:28 PM, 18 Apr 2017
    Приветствую!
  • https://t.me/clickhouse_ru
    @pavel_odintsov #12063 12:28 PM, 18 Apr 2017
    А почему бы не заюзать графану для этого?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #12064 12:29 PM, 18 Apr 2017
    тупо сделать два графика и врубить "cursor following"
  • https://t.me/clickhouse_ru
    @pavel_odintsov #12065 12:29 PM, 18 Apr 2017
    тогда ведя курсор по одному графику он будет двигаться и по другому, синхронно
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #12061 #12066 12:29 PM, 18 Apr 2017
    да, он выглядит довольно громоздко.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #12067 12:29 PM, 18 Apr 2017
    если потребитель этих данных - хомо сапиенс, тогда сработает я думаю ))
  • https://t.me/clickhouse_ru
    @hagen1778 #12068 12:34 PM, 18 Apr 2017
    я и заюзал) данные нужны в табличной форме и у меня получилось это сделать, но запрос на сравнение выглядит примерно так
    SELECT
    (ReqsNow / ReqsPrev - 1) Reqs
    FROM
    (
    SELECT
    minus($to, $from) range,
    toDateTime(minus($from, range)) prevFrom,
    sumIf(Reqs, (DateTime BETWEEN prevFrom AND $from)) ReqsPrev,
    sumIf(Reqs, (DateTime BETWEEN $from AND $to)) ReqsNow
    FROM $table
    WHERE DateTime BETWEEN prevFrom AND $to
    )
  • https://t.me/clickhouse_ru
    @hagen1778 #12069 12:34 PM, 18 Apr 2017
    и меня не покидает мысль, что это можно решить более оптимальным способом
  • @291662242 #12070 12:35 PM, 18 Apr 2017
    @hagen1778 не проще просто сгруппировать данные по нужным дименшинам (простой group by) для этой неделе и прошлую, а визуализировать результат уже в приложении? пивот таблицей (добавить измерение "неделя") или чартом
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @orantius #12072 12:37 PM, 18 Apr 2017
    у нас и на экран запросы бывают.
  • https://t.me/clickhouse_ru
    @vladenisov #12073 12:57 PM, 18 Apr 2017
    можете подсказать, как вставить пустой массив не изнутри clickhouse-client? при [] получаю ошибку DB::Exception: Function array requires at least one argument..
  • https://t.me/clickhouse_ru
    @vladenisov #12074 12:57 PM, 18 Apr 2017
    в clickhouse-client работает select emptyArrayUInt32()
  • https://t.me/clickhouse_ru
    Да, спасибо! Вы мне помогли
  • https://t.me/clickhouse_ru
    @orantius #12076 12:59 PM, 18 Apr 2017
    в clickhouse-client и insert into x values([]) работает.
  • https://t.me/clickhouse_ru
    @evgentus88 #12077 01:12 PM, 18 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @vladenisov #12078 01:25 PM, 18 Apr 2017
    а без values можно как-нибудь? нужно заимпортить TSV
  • https://t.me/clickhouse_ru
    @vladenisov #12079 01:25 PM, 18 Apr 2017
    в clickhouse-client и insert into x values([]) работает.
  • https://t.me/clickhouse_ru
    @playboyko #12080 01:52 PM, 18 Apr 2017
    Добрый день!
  • https://t.me/clickhouse_ru
    @playboyko #12081 01:54 PM, 18 Apr 2017
    Столкнулся с проблемой дубликатов. В таблице есть данные, которые нужно переодически обновлять. Пытаюсь сделать это через инсерт. Подскажите, пожалуйста, какие есть пути решения данной задачи в clickhouse. Спасибо.
  • https://t.me/clickhouse_ru
    @playboyko #12082 01:56 PM, 18 Apr 2017
    Пробовал ReplacingMergeTree, но он дубликаты схлопывает только при слиянии. Нужно выбирать только самые свежие.
  • https://t.me/clickhouse_ru
    @orantius #12083 01:57 PM, 18 Apr 2017
    argMax(column, datetime), final ?
  • https://t.me/clickhouse_ru
    @playboyko #12084 01:58 PM, 18 Apr 2017
    попробую, спасибо.
  • @Nvarchar495 #12085 01:59 PM, 18 Apr 2017
    Чуть выше предложили использовать Limit BY
  • https://t.me/clickhouse_ru
    @playboyko #12086 01:59 PM, 18 Apr 2017
    LIMIT BY вернет первое значение, насколько я понимаю. нужно последнее.
  • https://t.me/clickhouse_ru
    @kshvakov #12087 02:02 PM, 18 Apr 2017
    сделайте ему order by по дате и все
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #12088 02:11 PM, 18 Apr 2017
    Добрый день. через curl шлю запрос. прилетает жирный ответ (куча строк) за счет чего время отправки и получение достигает около 2 минут. как тут быть?
  • @iamigor #12089 02:12 PM, 18 Apr 2017
    выводить не на экран, а в файлик, например
  • @iamigor #12090 02:13 PM, 18 Apr 2017
    это никак не относится к КХ, как мне кажется
  • @iamigor #12091 02:13 PM, 18 Apr 2017
    есть чатики по никсам
  • @Nvarchar495 #12092 02:13 PM, 18 Apr 2017
    Они не такие классные как наш ))
  • https://t.me/clickhouse_ru
    в каком смысле в файлик выводить? на сервер кх сразу в файлик писать?
  • @iamigor #12094 02:15 PM, 18 Apr 2017
    а в каком смысле "через curl шлю запрос"? какой, SELECT, INSERT?
  • https://t.me/clickhouse_ru
    select
  • @iamigor #12096 02:16 PM, 18 Apr 2017
    ну. отображаются результаты запроса у вас в терминале? отображаются.
    занимает время это все напечатать? занимает.
    вместо того, чтобы отображать на экране, можно записывать в файл. нет, не на сервере. локально. вы ж не с сервера запрос отправляете.
  • https://t.me/clickhouse_ru
    получаю результат в виде 30 тыс строк (там группировка по часу и по другим полям sum)
  • https://t.me/clickhouse_ru
    вы имеете ввиду сразу в файл писать. но это просто агрегация на фоне статистических данных
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #12099 02:17 PM, 18 Apr 2017
    подробная для администратора
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #12100 02:17 PM, 18 Apr 2017
    30 тыс строк это всего период за неделю
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #12101 02:17 PM, 18 Apr 2017
    пачками шлем. получаем результат пишем в файл
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #12102 02:17 PM, 18 Apr 2017
    файловый кеш
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #12103 02:18 PM, 18 Apr 2017
    но результат от кх приходит через минуту две. вот это проблема(
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #12104 02:18 PM, 18 Apr 2017
    т.к. много данных
  • @iamigor #12105 02:18 PM, 18 Apr 2017
    а, он только _начинает_ приходить через минуту?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #12106 02:18 PM, 18 Apr 2017
    ага
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #12107 02:19 PM, 18 Apr 2017
    бывает через 3)
  • @iamigor #12108 02:19 PM, 18 Apr 2017
    сорри
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #12109 02:19 PM, 18 Apr 2017
    да запрос жирноват. 5 sum и 7 группировок
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #12110 02:20 PM, 18 Apr 2017
    но тут проблема скорее в другом. много результатов
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #12111 02:20 PM, 18 Apr 2017
    я пишу эти же результаты в файл. и файлик выходит около 50-100 мб
  • https://t.me/clickhouse_ru
    @hagen1778 #12112 02:20 PM, 18 Apr 2017
    а сколько времени выполняется сам запрос?
  • @iamigor #12113 02:21 PM, 18 Apr 2017
    можно http компрессию включить как вариант
    вот примеры как раз с curlом есть
    https://github.com/yandex/ClickHouse/blob/6eb9bac6eb8c6697c1b9b3ed24351d32dbc5e81e/dbms/tests/queries/0_stateless/00302_http_compression.sh
    yandex/ClickHouse

    ClickHouse is a free analytic DBMS for big data.

  • https://t.me/clickhouse_ru
    как проверить ? напрямую в клиенте кх ? без курла ?
  • https://t.me/clickhouse_ru
    @hagen1778 #12115 02:21 PM, 18 Apr 2017
    да
  • @iamigor #12116 02:21 PM, 18 Apr 2017
    можно time curl ...
  • @iamigor #12117 02:21 PM, 18 Apr 2017
    можно клиентом, да
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #12118 02:24 PM, 18 Apr 2017
    вот прикол в том что если например обернуть это дело в select count(*) FROM (тут мой другой select жирный) то через клиент напрямую 3 сек
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #12119 02:24 PM, 18 Apr 2017
    Showed first 10000.

    1786493 rows in set. Elapsed: 9.159 sec. Processed 1.79 million rows, 960.02 MB (195.88 thousand rows/s., 104.82 MB/s.)
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #12120 02:25 PM, 18 Apr 2017
    я так понимаю это 10 000
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #12121 02:25 PM, 18 Apr 2017
    или статистика за весь select ?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #12122 02:26 PM, 18 Apr 2017
    Showed это что? отобразил только 10 000 а запрос обработал за 9 сек ?
  • https://t.me/clickhouse_ru
    @iGusev ↶ Reply to #12122 #12123 02:41 PM, 18 Apr 2017
    все так
  • https://t.me/clickhouse_ru
    @iGusev ↶ Reply to #12118 #12124 02:42 PM, 18 Apr 2017
    https://clickhouse.yandex/reference_ru.html#count()
    Запрос вида SELECT count() FROM table не оптимизируется, так как количество записей в таблице нигде не хранится отдельно - из таблицы будет выбран какой-нибудь достаточно маленький столбец, и будет посчитано количество значений в нём.

    думаю поэтому
    Документация ClickHouse | Документация ClickHouse

    ClickHouse is a fast open-source column-oriented database management system that allows generating analytical data reports in real-time using SQL queries

  • https://t.me/clickhouse_ru
    тогда видимо все остальное время он выкачивает данные в ответ на запрос))
  • https://t.me/clickhouse_ru
    @iGusev #12126 02:47 PM, 18 Apr 2017
    фильтрует другие колонки
  • https://t.me/clickhouse_ru
    @iGusev #12127 02:47 PM, 18 Apr 2017
    чем меньше колонок в селекте, тем быстрее
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #12128 02:50 PM, 18 Apr 2017
    ладно что нибудь придумаю спасибо )
  • https://t.me/clickhouse_ru
    @iGusev #12129 02:50 PM, 18 Apr 2017
    если пагинация допустима в запросе (limit+offset)
  • https://t.me/clickhouse_ru
    @iGusev #12130 02:50 PM, 18 Apr 2017
    то можно в 2 запроса делать
  • https://t.me/clickhouse_ru
    @iGusev #12131 02:51 PM, 18 Apr 2017
    первым ограничить поиск (по дате, например), а вторым уже запрашивать нужную страницу результата с более узким условием поиска
  • https://t.me/clickhouse_ru
    @iGusev #12132 02:51 PM, 18 Apr 2017
    мы так делаем
  • https://t.me/clickhouse_ru
    @iGusev #12133 02:52 PM, 18 Apr 2017
    не where date >= 2016-01-01 and date <= 2017-01-01, а смотрим сколько записей по датам, отсчитываем нужный offset а потом where date >= 2016-02-23 and date <= 2016-02-25 уже с селеком нужных данных
  • https://t.me/clickhouse_ru
    @iGusev #12134 02:53 PM, 18 Apr 2017
    костыль, но помогает быстро работать запросам
  • https://t.me/clickhouse_ru
    @iGusev #12135 02:55 PM, 18 Apr 2017
    или еще "лайфках" - union all нескольких одинаковых запросов, например помесячно
  • https://t.me/clickhouse_ru
    @iGusev #12136 02:55 PM, 18 Apr 2017
    или по какому-нибудь еще признаку
  • https://t.me/clickhouse_ru
    @iGusev #12137 02:55 PM, 18 Apr 2017
    тоже быстрее работает
  • https://t.me/clickhouse_ru
    как вариант. но у нас группировка по часу представь сколько результатов
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #12139 03:08 PM, 18 Apr 2017
    скорее будем слать напрямую запросы
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #12140 03:08 PM, 18 Apr 2017
    с пагинацией да
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #12141 03:08 PM, 18 Apr 2017
    а от кеша откажемся
  • https://t.me/clickhouse_ru
    @iGusev ↶ Reply to #12138 #12142 03:09 PM, 18 Apr 2017
    не, я имею ввиду:
    where date >= 2016-01-01 and date <= 2016-03-01 -> where date >= 2016-01-01 and date < 2016-02-01 union all where date >= 2016-02-01 and date <= 2016-03-01
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #12143 03:09 PM, 18 Apr 2017
    разве это не одно и тоже если бы вы написали битвин из двух дат?
  • https://t.me/clickhouse_ru
    @iGusev #12144 03:10 PM, 18 Apr 2017
    параллельно идут, а поверх них еще запрос, который догруппировывает, сортирует и тд
  • https://t.me/clickhouse_ru
    надо попробовать спасибо)
  • https://t.me/clickhouse_ru
    @mystx #12146 03:15 PM, 18 Apr 2017
    Joined.
  • @f0x1clone #12147 03:46 PM, 18 Apr 2017
    Joined.
  • @f0x1clone #12148 03:47 PM, 18 Apr 2017
    Всем привет!
    Такой вопрос: а где нибудь есть описание system.metrics и подобных таблиц?
  • @andrewkovalyov #12149 03:48 PM, 18 Apr 2017
    кстати, видео в шапке https://www.youtube.com/watch?v=AXSQbV8Zhvg чет недоступно больше
  • https://t.me/clickhouse_ru
    @proller ↶ Reply to #12148 #12150 03:50 PM, 18 Apr 2017
    самое полное - описание кодом ;)
  • https://t.me/clickhouse_ru
    @belomore #12151 03:52 PM, 18 Apr 2017
    Подскажите, уровень логгирования "trace" это какой? и какая вообще иерархия уровней логгирования?
  • https://t.me/clickhouse_ru
    @belomore #12152 03:53 PM, 18 Apr 2017
    стандартная небось?
  • https://t.me/clickhouse_ru
    @belomore #12153 03:55 PM, 18 Apr 2017
    <Error> Application: Invalid argument: Not a valid log level: info
  • https://t.me/clickhouse_ru
    @belomore #12154 03:55 PM, 18 Apr 2017
    видимо нет
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @proller #12156 04:03 PM, 18 Apr 2017
    information
  • https://t.me/clickhouse_ru
    @belomore #12157 04:18 PM, 18 Apr 2017
    Кул! Спасибо.
  • @sapozdeev #12158 05:09 PM, 18 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #12159 05:54 PM, 18 Apr 2017
    кто нибудь знает предел кх - одновременных запросов select ?
  • https://t.me/clickhouse_ru
    @nikitosiusis #12160 05:55 PM, 18 Apr 2017
    сколько можно спросить или сколько он может ответить?)
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #12161 05:57 PM, 18 Apr 2017
    сколько асинхронных запросов могу отправить одновременно?
  • https://t.me/clickhouse_ru
    Там есть переменная в конфиге, по-умолчанию — 100. Сколько потянет — не знаю
  • https://t.me/clickhouse_ru
    @saydamir ↶ Reply to #12161 #12163 05:59 PM, 18 Apr 2017
    https://clickhouse.yandex/reference_ru.html#Пропускная способность при обработке большого количества коротких запросов.
    Документация ClickHouse | Документация ClickHouse

    ClickHouse is a fast open-source column-oriented database management system that allows generating analytical data reports in real-time using SQL queries

  • https://t.me/clickhouse_ru
    @maksim_melnichuk #12164 06:01 PM, 18 Apr 2017
    понял
  • @191542538 #12165 06:09 PM, 18 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @rheinx #12166 06:33 PM, 18 Apr 2017
    Ребят, а есть где то дока по расчету гранулярности индекса? Последний параметр при создании mergetree.
  • @f1yegor #12167 07:34 PM, 18 Apr 2017
    Лучше не менять
  • @f1yegor #12168 07:36 PM, 18 Apr 2017
    Или если вы уже прочитали мою статью на медиуме
  • @f1yegor #12169 07:36 PM, 18 Apr 2017
  • https://t.me/clickhouse_ru
    404
  • @f1yegor #12171 07:56 PM, 18 Apr 2017
    сорри, по памяти писал https://medium.com/@f1yegor/clickhouse-primary-keys-2cf2a45d7324
    ClickHouse Primary Keys

    Recently I dived deep into ClickHouse. ClickHouse is column-store database by Yandex with great performance for analytical queries. For…

  • https://t.me/clickhouse_ru
    @the_real_jkee #12172 08:52 PM, 18 Apr 2017
    Всем привет!
    Обсуждаем ClickHouse, задаём любые вопросы, стараемся не флудить!
    Информация: https://clickhouse.yandex
    Страничка на вики - https://ru.wikipedia.org/wiki/ClickHouse
    Доклад про ClickHouse с Highload++: https://www.youtube.com/watch?v=TAiCXHgZn50
    Google группа - https://groups.google.com/forum/#!forum/clickhouse
    Чат на английском: https://t.me/clickhouse_en
    ClickHouse DBMS

    ClickHouse is a fast open-source column-oriented database management system that allows generating analytical data reports in real-time using SQL queries

  • https://t.me/clickhouse_ru
    None
  • @f1yegor #12174 09:05 PM, 18 Apr 2017
    👍
  • https://t.me/clickhouse_ru
    @diehertz #12175 10:41 PM, 18 Apr 2017
    Советую grammarly
  • https://t.me/clickhouse_ru
    @pavel_odintsov #12176 10:43 PM, 18 Apr 2017
    +1
  • https://t.me/clickhouse_ru
    @pavel_odintsov #12177 10:43 PM, 18 Apr 2017
    полезная штука очень
  • 19 April 2017 (90 messages)
  • https://t.me/clickhouse_ru
    @belomore #12178 04:49 AM, 19 Apr 2017
    Доброе утро! а как бороться с этим?
    Code: 252, e.displayText() = DB::Exception: Too much parts. Merges are processing significantly slower than inserts., e.what() = DB::Exception
  • https://t.me/clickhouse_ru
    @belomore #12179 05:12 AM, 19 Apr 2017
    увеличил значение этой опции parts_to_throw_insert
  • https://t.me/clickhouse_ru
    @belomore #12180 05:12 AM, 19 Apr 2017
    чем это может быть чревато?
  • https://t.me/clickhouse_ru
    @belomore #12181 05:14 AM, 19 Apr 2017
    <zanudaMode>Должно быть "Too many...", а не "Too much..." :-Ъ</zanudaMode>
  • https://t.me/clickhouse_ru
    @belomore #12182 05:20 AM, 19 Apr 2017
    okay видимо чревато вот этим 2017.04.19 08:18:22.482873 [ 12 ] <Error> HTTPHandler: Cannot send exception to client: Code: 24, e.displayText() = DB::Exception: Cannot write to ostream
  • https://t.me/clickhouse_ru
    @belomore #12183 05:43 AM, 19 Apr 2017
    количество партиций, тем временем, растет.
  • @milovidov_an #12184 05:43 AM, 19 Apr 2017
    Какая версия сервера?
  • https://t.me/clickhouse_ru
    @belomore #12185 05:44 AM, 19 Apr 2017
    1.1.54213
  • https://t.me/clickhouse_ru
    @belomore #12186 05:45 AM, 19 Apr 2017
    Этому предшествовало переполнение раздела диска, на котороый льются логи.
  • @milovidov_an #12187 05:45 AM, 19 Apr 2017
    Поставьте 1.1.54198
    http://repo.yandex.ru/clickhouse/trusty/pool/main/c/clickhouse/
    Сейчас это последняя stable.
  • https://t.me/clickhouse_ru
    @belomore #12188 05:45 AM, 19 Apr 2017
    из-за вот этого 2017.04.19 07:32:08.894218 [ 17 ] <Information> HTTPHandler: Done processing query
  • https://t.me/clickhouse_ru
    @belomore #12189 05:45 AM, 19 Apr 2017
    хорошо, спасибо щас попробую
  • https://t.me/clickhouse_ru
    @igor_tonky #12190 08:43 AM, 19 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @igor_tonky #12191 08:47 AM, 19 Apr 2017
    доброе утро коллеги. а есть возможность в CH сделать аналог инфлюксовского last() ... group by time(), т.е. разбить на произвольное количество интервалов и взять последнее значение из каждого? мануал несколько раз перерыл, но пока особо идей не появилось.
  • @iamigor #12192 08:48 AM, 19 Apr 2017
    последнее в каком смысле?
    max() например не подойдет?
  • https://t.me/clickhouse_ru
    @rheinx #12193 08:51 AM, 19 Apr 2017
    Вроде и max с group by подойдёт
  • https://t.me/clickhouse_ru
    @iGusev ↶ Reply to #12191 #12194 08:56 AM, 19 Apr 2017
    argMax(arg, val)
  • https://t.me/clickhouse_ru
    @igor_tonky #12195 09:03 AM, 19 Apr 2017
    max(time) вполне подойдет
  • https://t.me/clickhouse_ru
    @igor_tonky #12196 09:06 AM, 19 Apr 2017
    вопрос, видимо, в том как разбить timeseries по группам в интервалы, чтобы у каждой группы взять max()?
  • @iamigor #12197 09:06 AM, 19 Apr 2017
    toStartOfHour и иже с ними
  • @iamigor ↶ Reply to #11941 #12198 09:07 AM, 19 Apr 2017
    ^
  • https://t.me/clickhouse_ru
    @igor_tonky #12199 09:10 AM, 19 Apr 2017
    а если у меня наносекундная точность для time?
  • https://t.me/clickhouse_ru
    @igor_tonky #12200 09:10 AM, 19 Apr 2017
    и интервалы с наносекундной точностью тоже
  • https://t.me/clickhouse_ru
    @igor_tonky #12201 09:13 AM, 19 Apr 2017
    то есть мне нужно разбить time UInt64, value String промежуток на равные части(100, например), и взять последнее значение value из каждого
  • https://t.me/clickhouse_ru
    @igor_tonky #12202 09:14 AM, 19 Apr 2017
    time UInt64 для каждого интервала могу из кода передать
  • @iamigor #12203 09:18 AM, 19 Apr 2017
    делать group by по (time / 100) % 100, например?
  • @iamigor #12204 09:18 AM, 19 Apr 2017
    select (number / 100) % 100 as number_group, min(number), max(number) from (select number from system.numbers limit 1000) group by number_group;
  • https://t.me/clickhouse_ru
    @igor_tonky #12205 09:21 AM, 19 Apr 2017
    хмм, интересная мысль, спасибо!
  • https://t.me/clickhouse_ru
    @igor_tonky #12206 10:29 AM, 19 Apr 2017
    Игорь, знаете, не получилось пока. интервалы есть, а как их теперь связать с основной таблицей? то есть что-то подобное? только рабочее :)

    select arrayJoin([0,40,70]) as start, arrayJoin([40,70,100]) as end, max(time) from points where time between start and end group by time
  • @smiren #12207 11:19 AM, 19 Apr 2017
    Коллеги, а что насчет поддержки HTTPS подключения к CH? Планируется/не планируется?
  • @iamigor ↶ Reply to #12207 #12208 11:22 AM, 19 Apr 2017
    вроде есть уже, был где-то то ли в конфиге, то ли в репозитории пример
  • @shinebell #12209 11:22 AM, 19 Apr 2017
    тоже видел
  • @shinebell #12210 11:22 AM, 19 Apr 2017
    должна быть
  • @smiren #12211 11:22 AM, 19 Apr 2017
    Понял, погрепаю код
  • @iamigor #12212 11:22 AM, 19 Apr 2017
    yandex/ClickHouse

    ClickHouse is a free analytic DBMS for big data.

  • @iamigor #12213 11:23 AM, 19 Apr 2017
    вон там в комментах :)
  • @smiren #12214 11:24 AM, 19 Apr 2017
    Во, спасибо! Кто-нибудь уже пробовал использовать?
  • https://t.me/clickhouse_ru
    @igor_tonky #12215 12:23 PM, 19 Apr 2017
    может кто еще подскажет решение моего вопроса по time series, а-ля инфлюксовский last() ... group by time()? я тут даже оформил его в гист :) https://gist.github.com/tonky/bede878db55913f7d2edb9368d3774bf
    clickhouse time series

    clickhouse time series. GitHub Gist: instantly share code, notes, and snippets.

  • https://t.me/clickhouse_ru
    @windoozatnick #12218 12:29 PM, 19 Apr 2017
    ))
  • https://t.me/clickhouse_ru
    @nnugumanov #12219 12:29 PM, 19 Apr 2017
    о блин, спасибо
  • https://t.me/clickhouse_ru
    @Civiloid #12220 12:29 PM, 19 Apr 2017
    Пожалуйста )
  • https://t.me/clickhouse_ru
    @pavel_odintsov #12221 12:29 PM, 19 Apr 2017
    А вот этот PR зарелижен https://github.com/yandex/ClickHouse/pull/680 в деб репо?
  • @ztlpn #12222 12:53 PM, 19 Apr 2017
    ещё нет
  • https://t.me/clickhouse_ru
    @pavel_odintsov #12223 12:54 PM, 19 Apr 2017
    оки, ждем)
  • https://t.me/clickhouse_ru
    @irina_achkasova #12224 01:23 PM, 19 Apr 2017
    Подскажите, пожалуйста, как записать пачку данных в CH при помощи питона (2.7)? использую библиотеку infi.clickhouse_orm.. Пробовала стандартной функцией insert, но там требуется схема, исполнение завершается ошибкой.. Знать бы как должна выглядеть эта схема, я бы подготовила данные в таком формате
  • @f1yegor #12225 01:56 PM, 19 Apr 2017
    у меня такой небольшой вопрос: могу я как-то узнать http порт серверов в кластере? select * from system.clusters выдает только inter-server port
  • @f1yegor #12226 01:59 PM, 19 Apr 2017
    есть идея доработать https://github.com/f1yegor/clickhouse_exporter чтобы иметь по одному экспортеру на кластер
    GitHub - f1yegor/clickhouse_exporter: This is a simple server that periodically scrapes ClickHouse stats and exports them via HTTP for Prometheus(https://prometheus.io/) consumption.

    This is a simple server that periodically scrapes ClickHouse stats and exports them via HTTP for Prometheus(https://prometheus.io/) consumption. - GitHub - f1yegor/clickhouse_exporter: This is a si...

  • https://t.me/clickhouse_ru
    @Akulbasov #12228 04:03 PM, 19 Apr 2017
    Коллеги , хочу задать глупый вопрос - по какому принципу лучше всего сегменитровать данные на шарды, нормально ли разделять их не отталкиваясь от самих данных и предметной области, а поровну инсертить по 3 шарда по 2 репликам, а потом делать селекты через distributed таблицу?
  • https://t.me/clickhouse_ru
    @emakarov ↶ Reply to #12224 #12229 04:18 PM, 19 Apr 2017
    Вам нужно создать модель данных
  • https://t.me/clickhouse_ru
    @emakarov #12230 04:19 PM, 19 Apr 2017
    И воспользоваться функциями записи которые даёт эта orm
  • https://t.me/clickhouse_ru
    @emakarov #12231 04:20 PM, 19 Apr 2017
    Если выложите traceback или кусок кода, можно что то ещё сказать ...
  • https://t.me/clickhouse_ru
    @emakarov #12232 04:22 PM, 19 Apr 2017
    В принципе там в readme проекта есть пример с простенькой моделью
  • @iamigor #12233 04:25 PM, 19 Apr 2017
    и в clickhouse-cli можно подсмотреть
  • https://t.me/clickhouse_ru
    @p_hamper #12234 04:26 PM, 19 Apr 2017
    А это в новых версиях кх стал слушать только локалхост вместо 0.0.0.0 по умолчанию?
  • @iamigor #12235 04:26 PM, 19 Apr 2017
    там requests используется
  • @iamigor ↶ Reply to #12234 #12236 04:26 PM, 19 Apr 2017
    да
  • https://t.me/clickhouse_ru
    @p_hamper #12237 04:26 PM, 19 Apr 2017
    А, ладно... А то смотрю что обновил и все сломалось. )
  • https://t.me/clickhouse_ru
    @ihard #12238 04:30 PM, 19 Apr 2017
    Настроил кластер Clickhouse из 2х нод на zetcd вместо zookeeper-a. На первый взгляд успешно работает ;) данные вставляются и видны на обоих нодах.
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #12238 #12239 04:33 PM, 19 Apr 2017
    Интересно сравнить производительность zetcd с zookeeper и вообще характеристики оного
  • https://t.me/clickhouse_ru
    да, пофиксили не очень давно
  • https://t.me/clickhouse_ru
    @ihard ↶ Reply to #12239 #12241 04:35 PM, 19 Apr 2017
    Пока не гонял тесты, на неделе будем смотреть. С учётом того что под капотом etcd а там заявлено до 1000 запросов на запись в секунду должно быть норм
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #12241 #12242 04:35 PM, 19 Apr 2017
    Ну вот интересно )
  • https://t.me/clickhouse_ru
    @dishsh #12243 05:39 PM, 19 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @vasiliyozerov #12244 05:51 PM, 19 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @vasiliyozerov #12245 05:55 PM, 19 Apr 2017
    Всем привет! Вопрос касательно зукипера в разных дц. Как правильнее делать - один общий кластер или один дц делать мастером, а остальные как observers? Если общий кластер, то не будет ли запись сильно страдать? Благодарю!
  • @aprudaev #12246 06:02 PM, 19 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @AndreevDm #12247 06:25 PM, 19 Apr 2017
    У нас везде один общий крос-дц кластер
  • https://t.me/clickhouse_ru
    @rlomonosov #12248 06:25 PM, 19 Apr 2017
    Докер-образ yandex/clickhouse-server не стартует с дефолтным конфигом командой, которая написана на странице https://hub.docker.com/r/yandex/clickhouse-server/

    Выпадает с ошибкой <Error> Application: Net Exception: Cannot assign requested address: [::1]:8123
    Покрайней мере в macos
  • https://t.me/clickhouse_ru
    @nikitosiusis #12249 06:26 PM, 19 Apr 2017
    докер по дефолту без ипв6 вроде
  • Распределять данные по шардам случайным образом нормально, если только нет цели оптимизировать какой-то один важный случай распределённых IN или JOIN. Для примера - если вы часто делаете JOIN по UserID, то и распределять данные по кластеру лучше по UserID - тогда можно будет делать локальные JOIN-ы, так как соответствующие данные будут на одном сервере.
  • https://t.me/clickhouse_ru
    --ipv6 —fixed-cidr-v6=2001:db8:1::/64

    если докер так запустить, то заработает. а кто может поправить в докере не знаю
  • https://t.me/clickhouse_ru
    да я уже справился. это багрепорт )
  • https://t.me/clickhouse_ru
    @proller ↶ Reply to #12251 #12253 06:33 PM, 19 Apr 2017
    Даже ты! это же опенсорс!
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @nikitosiusis #12255 06:34 PM, 19 Apr 2017
    я нашел крайнего:)
  • https://t.me/clickhouse_ru
    @nikitosiusis #12256 06:35 PM, 19 Apr 2017
    кажется для докера это не нужно, в него все равно никто лишний не попадет, даже если слушать *
  • https://t.me/clickhouse_ru
    @proller #12257 06:39 PM, 19 Apr 2017
    а если не указывать —fixed-cidr-v6= - запустится с чем-нибудь link-local ?
  • https://t.me/clickhouse_ru
    @nikitosiusis #12258 06:40 PM, 19 Apr 2017
    у меня не запсутилось вообще
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @nikitosiusis #12260 06:42 PM, 19 Apr 2017
    сам читай в общем :)
  • Ответил внутри gist.
  • https://t.me/clickhouse_ru
    @igor_tonky #12262 06:48 PM, 19 Apr 2017
    @milovidov_an круто, спасибо большое!
  • https://t.me/clickhouse_ru
    @vasiliyozerov #12263 06:58 PM, 19 Apr 2017
    @AndreevDm спасибо! Попробуем так и сделать :)
  • https://t.me/clickhouse_ru
    @Fiery_Fenix #12264 07:09 PM, 19 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    @ninatretyakova #12265 07:22 PM, 19 Apr 2017
    Добрый вечер! А есть ли функциональность полнотекстового поиска?
    Или считается что для целей быстрой аналитики он слишком громоздкий?
  • @aprudaev #12266 07:28 PM, 19 Apr 2017
    like '%needle%'
  • @aprudaev #12267 07:29 PM, 19 Apr 2017
    where col like '%needle%' . Но это линейный поиск.
  • @milovidov_an #12268 07:34 PM, 19 Apr 2017
    Поиска по словоформам нет.
  • https://t.me/clickhouse_ru
    @ninatretyakova #12269 07:35 PM, 19 Apr 2017
    Спасибо!
  • https://t.me/clickhouse_ru
    @d_zaporozhets #12270 08:37 PM, 19 Apr 2017
    Joined.
  • 20 April 2017 (275 messages)
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #12271 07:16 AM, 20 Apr 2017
    добрый день. ребята подскажите плиз как по неделям сгруппировать ?
  • https://t.me/clickhouse_ru
    @excitoon #12272 07:18 AM, 20 Apr 2017
    toRelativeWeekNum() должно подойти
  • https://t.me/clickhouse_ru
    можно пример ?
  • @iamigor #12274 07:20 AM, 20 Apr 2017
    так же, как с toStartOfHour
  • https://t.me/clickhouse_ru
    @excitoon #12275 07:21 AM, 20 Apr 2017
    :) select toRelativeWeekNum(a), count() from (select [toDate('2017-01-01'), toDate('2017-01-02'), toDate('2017-01-03')] as a) array join a group by toRelativeWeekNum(a)

    SELECT
    toRelativeWeekNum(a),
    count()
    FROM
    (
    SELECT [toDate('2017-01-01'), toDate('2017-01-02'), toDate('2017-01-03')] AS a
    )
    ARRAY JOIN a
    GROUP BY toRelativeWeekNum(a)

    ┌─toRelativeWeekNum(a)─┬─count()─┐
    │ 2452 │ 2 │
    │ 2451 │ 1 │
    └──────────────────────┴─────────┘

    2 rows in set. Elapsed: 0.002 sec.
  • @AS12389 #12276 07:24 AM, 20 Apr 2017
    Joined.
  • https://t.me/clickhouse_ru
    а можно ли как-то в human виде диапазаон увидеть? а то выводит 2464 2449 2445
  • @AS12389 #12278 07:25 AM, 20 Apr 2017
    Немного не по теме, но всё же спрошу
    Какую схему хранения посоветуют уважаемые доны, если нужно хранить номера VLAN для каждого устройства
  • https://t.me/clickhouse_ru
    @vladenisov #12279 07:25 AM, 20 Apr 2017
    toMonday()
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #12280 07:25 AM, 20 Apr 2017
    что значат эти числа))
  • @iamigor #12281 07:25 AM, 20 Apr 2017
    в human виде - это как?
  • @AS12389 #12282 07:25 AM, 20 Apr 2017
    Строкой как-то не радует
  • https://t.me/clickhouse_ru
    @excitoon #12283 07:25 AM, 20 Apr 2017
    Это номер недели начиная с некоторой даты.
  • @iamigor ↶ Reply to #12280 #12284 07:26 AM, 20 Apr 2017
    ну в документации же написано, что номер недели, начиная с некоторой даты
  • @AS12389 #12285 07:26 AM, 20 Apr 2017
    отдельный столбец под 4094 тоже
  • А что мешает хранить номер влна в int16?
  • @iamigor #12287 07:26 AM, 20 Apr 2017
    кстати, юникс эпохи, наверное?
  • @AS12389 ↶ Reply to #12286 #12288 07:26 AM, 20 Apr 2017
    их 100 на железку
  • https://t.me/clickhouse_ru
    @excitoon ↶ Reply to #12287 #12289 07:26 AM, 20 Apr 2017
    Да, это так.
  • @iamigor #12290 07:27 AM, 20 Apr 2017
    может, указать это в документации, а то "начиная с некоторого фиксированного момента в прошлом" слишком размыто и запутанно?
  • https://t.me/clickhouse_ru
    не совсем понял. начиная с какой даты он берет?
    2464
    2449
    2445
    2454
    2465
    2443
    2455
    2444
  • @iamigor #12292 07:27 AM, 20 Apr 2017
    или может поменяться?
  • так вам таки номер, или список активных вланов?
  • @iamigor ↶ Reply to #12291 #12294 07:27 AM, 20 Apr 2017
    кол-во недель, прошедших с 1 января 1970
  • https://t.me/clickhouse_ru
    @excitoon #12295 07:27 AM, 20 Apr 2017
    1970-01-01. Но можно вычесть количество недель, прошедших с любой другой даты.
  • @AS12389 ↶ Reply to #12293 #12296 07:27 AM, 20 Apr 2017
    номер, с поиском позже
  • https://t.me/clickhouse_ru
    @vladenisov #12297 07:28 AM, 20 Apr 2017
    кстати, да. я, прочитав описание, рассчитывал на второй аргумент, относительно которого можно считать число недель )
  • https://t.me/clickhouse_ru
    @vladenisov #12298 07:28 AM, 20 Apr 2017
    может, указать это в документации, а то "начиная с некоторого фиксированного момента в прошлом" слишком размыто и запутанно?
  • https://t.me/clickhouse_ru
    @excitoon ↶ Reply to #12297 #12299 07:30 AM, 20 Apr 2017
    Я тоже.
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #12300 07:33 AM, 20 Apr 2017
    а в каком-то формате вывести нельзя? например 2017-01-01 - 2017-01-07 ?
  • @iamigor #12301 07:34 AM, 20 Apr 2017
    :) SELECT now() AS dt, toRelativeWeekNum(dt) AS week_num, week_num * 7 AS day_num, toDate(day_num) AS date FORMAT Vertical

    Row 1:
    ──────
    dt: 2017-04-20 07:34:35
    week_num: 2467
    day_num: 17269
    date: 2017-04-13
  • @iamigor #12302 07:35 AM, 20 Apr 2017
    че-т типа того, очень грубо говоря
  • @iamigor #12303 07:36 AM, 20 Apr 2017
    мне кажется, проще сделать юзер-френдли отображение на стороне штуки, которая будет потом эти данные отображать кому-то; не силами КХ
  • https://t.me/clickhouse_ru
    👍🏻похоже на правду)) приду попробую
  • https://t.me/clickhouse_ru
    @vladenisov #12305 07:37 AM, 20 Apr 2017
    toMonday() же, нет?
  • https://t.me/clickhouse_ru
    @vladenisov #12306 07:37 AM, 20 Apr 2017
    а в каком-то формате вывести нельзя? например 2017-01-01 - 2017-01-07 ?