• 01 November 2018 (261 messages)
  • @lapkofear #72993 07:15 AM, 01 Nov 2018
    Всем привет. Подскажите пожалуйста, есть ли смысл делать больше одной шарды на каждую машину ?
  • @lapkofear #72994 07:15 AM, 01 Nov 2018
    я имею ввиду, кроме как для репликации
  • @lexa_work #72995 07:26 AM, 01 Nov 2018
    где-то попадались тесты производительности (не уверен, что по CH, но принципы должны быть общие).
    там удалось достичь большей производителоьсти запуская 2 экземпляра на машину (машина NUMA с двумя CPU)
  • https://t.me/clickhouse_ru
    Нет
  • Cпасибо, так и думал. Т.к. запросы на локальную таблицу, по моим наблюдение , отлично паралелятся и загружают систему.
  • https://t.me/clickhouse_ru
    @stufently #72998 07:30 AM, 01 Nov 2018
    Если у вас их не один то нет проблем с утилизацией
  • https://t.me/clickhouse_ru
    Любой порядок ? А почему не порядок Primary Key ?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #72999 #73000 08:15 AM, 01 Nov 2018
    Потому что несколько потоков обрабатывают запрос
  • https://t.me/clickhouse_ru
    @kshvakov #73001 08:15 AM, 01 Nov 2018
    Это если кратко
  • https://t.me/clickhouse_ru
    @yourock88 #73002 10:04 AM, 01 Nov 2018
    Разве КХ учитывает numa?
  • @lapkofear #73003 10:06 AM, 01 Nov 2018
    если ты имеешь ввиду использовать специфискеские операторы numa - то думаю нет, но это не точно
  • https://t.me/clickhouse_ru
    @stufently #73004 10:07 AM, 01 Nov 2018
    ну в целом я вижу что он отлично утилизирует все ядра без исключения если есть чем
  • https://t.me/clickhouse_ru
    @vladenisov #73005 10:09 AM, 01 Nov 2018
    привет.

    выполнил delete where, чтобы перелить кусок данных. все прошло успешно, переливаю данные – ошибок нет, но в таблицах они не появляются.

    кто-нибудь сталкивался? версия последняя, лью в ReplicatedMergeTree через Distributed.
  • https://t.me/clickhouse_ru
    @stufently #73006 10:13 AM, 01 Nov 2018
    как вы переливаете данные через delete ?
  • https://t.me/clickhouse_ru
    @Shegloff #73007 10:13 AM, 01 Nov 2018
    репл.табла запоминает последние 100 залитых блоков, и обрасывает их повторно при заливке как дубли
  • https://t.me/clickhouse_ru
    @Shegloff #73008 10:14 AM, 01 Nov 2018
    похоже на это
  • https://t.me/clickhouse_ru
    @Shegloff #73009 10:16 AM, 01 Nov 2018
    попробуйте сделать что-то типа: for i in {1..100); do clickhouse-client -q "inset into table (date, x) values ('1980-01-01', $i)"; done, то есть налить 100 фейковых блоков, а потом снова вашие данные, чтобы проверить эту теорию
  • https://t.me/clickhouse_ru
    переливаю = удаляю, потом заливаю новые
  • @362966306 #73011 10:17 AM, 01 Nov 2018
    Всем привет.
    кто-нибудь сталкивался с кейсом перегона партиций между одинаковыми таблицами, но с разным индексом?

    через freeze/attach получаю ошибку
    [2018-11-01 12:56:35] Code: 4, e.displayText() = DB::Exception: Index file /var/lib/clickhouse/data/default/test_table_shard5/detached/20180914_20180930_31_31_0/primary.idx is unexpectedly long, e.what() = DB::Exceptio
    можно это как-то провернуть без insert select?
  • https://t.me/clickhouse_ru
    @stufently #73012 10:18 AM, 01 Nov 2018
    Ну если теже самые то вам ответили уже а если новые то надо смотреть
  • https://t.me/clickhouse_ru
    Увы не получится
  • https://t.me/clickhouse_ru
    спасибо, похоже на это. почему-то я думал о 100 строках, а не блоках.
  • https://t.me/clickhouse_ru
    @Shegloff #73015 10:19 AM, 01 Nov 2018
    насколько я понимаю, при вставке кх ваще ничо не думает про строки, тока про блоки :)
  • очень жаль=(
    придется прикидывать сколько будут перегоняться партиции по несколько Tb и как сервера будут утилиться.

    спасибо за ответ. Сами сталкивались с таким?
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #73017 10:40 AM, 01 Nov 2018
    Коллеги, добрый день. Вопрос небольшой - как КХ с гипертредингом работает? Или лучше его отключить, если железо выделено только для него?
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #73018 10:40 AM, 01 Nov 2018
    По опыту работы с другими ресурсами - гипертрединг зло
  • @lapkofear #73019 10:41 AM, 01 Nov 2018
    все ок с ним
  • @lapkofear #73020 10:42 AM, 01 Nov 2018
    даже боюсь спросить, какой опыт ?)
  • https://t.me/clickhouse_ru
    @yourock88 #73021 10:44 AM, 01 Nov 2018
    HyperThreading дает прирост, если тип нагрузки разный в разных тредах, или если очень много случайных хождений в память
  • https://t.me/clickhouse_ru
    @voldaycev #73022 10:44 AM, 01 Nov 2018
    не подскажете. постоянно пишутся такие записи в логи
    2018.11.01 10:43:54.883644 [ 23 ] <Warning> default.table (StorageReplicatedMergeTree): Part 20181018_20181018_255528_255528_0 is covered by 20181018_20181018_255006_255528_103 but should be merged into 20181018_20181018_255528_255533_1. This shouldn't happen often.
    2018.11.01 10:43:55.078847 [ 23 ] <Error> default.table (StorageReplicatedMergeTree): DB::StorageReplicatedMergeTree::queueTask()::<lambda(DB::StorageReplicatedMergeTree::LogEntryPtr&)>: Code: 49, e.displayText() = DB::Exception: Part 20181018_20181018_255528_258283_109 intersects previous part 20181018_20181018_255006_255528_103 (state Committed). It is a bug., e.what() = DB::Exception, Stack trace:
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #73023 10:44 AM, 01 Nov 2018
    nginx к пример
  • https://t.me/clickhouse_ru
    @voldaycev #73024 10:44 AM, 01 Nov 2018
    что может быть не так?
  • https://t.me/clickhouse_ru
    @yourock88 #73025 10:44 AM, 01 Nov 2018
    на том же PHP включение HT увеличивало qps, который выдерживает сервер, примерно на 50%
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #73026 10:45 AM, 01 Nov 2018
    у меня на nginx отключение его давало прирост до 30% в rps
  • https://t.me/clickhouse_ru
    Не совсем так. Во-первых, таким способом можно утилизировать все сервера при запросах в Distributed таблицы, даже если в запросе не используется сэмплирование. Потом, с более мелкими шардами проще будет переносить часть данных на другие сервера. Про NUMA внятного ответа тоже как-то не услышал.
  • https://t.me/clickhouse_ru
    а если просто выставить воркеров по числу физических ядер и прибить гвоздями через taskset, то тоже с HT хуже?
  • https://t.me/clickhouse_ru
    @yourock88 #73029 10:48 AM, 01 Nov 2018
    по идее, в этом случае не должно быть разницы с действительно отключенным HT
  • https://t.me/clickhouse_ru
    Разае есть такие операторы?
  • https://t.me/clickhouse_ru
    @yourock88 #73031 10:50 AM, 01 Nov 2018
    С NUMA прикол например в том, что если один тред хочет выделить памяти больше, чем есть на его NUMA-узле, то его ждет сюрприз
  • https://t.me/clickhouse_ru
    сто лет не имел проблем с гипер тредингом , тем более с нгинксом, и в кх включен никаких проблем
  • https://t.me/clickhouse_ru
    @yourock88 #73033 10:51 AM, 01 Nov 2018
    плюс в целом обращение через шареную память к другим NUMA-узлам примерно на 30% медленней, чем к своей памяти (числа зависят от реализации)
  • https://t.me/clickhouse_ru
    @yourock88 #73034 10:52 AM, 01 Nov 2018
    но КХ вроде по умолчанию умный и использует при выполнении запроса не больше половины доступных ядер :)
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #73035 10:52 AM, 01 Nov 2018
    NUMA - это отдельный разговор да, просто вопрос больше в бенчмарке наверное
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #73036 10:53 AM, 01 Nov 2018
    мы синтетикой гоняли nginx и пришли к выводу (да и не только мы) что трединг лучше выключить
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #73037 10:53 AM, 01 Nov 2018
    я подумал, возможно и тут без него потенциально можно выжать больше чем с тредингом
  • @ztlpn #73038 10:53 AM, 01 Nov 2018
    Кликхаус по умолчанию распараллеливает запрос на количество потоков равное количеству физических ядер (без гипертрединга)
  • https://t.me/clickhouse_ru
    Да, я это и имел в виду, когда говорил про половину ядер :)
  • https://t.me/clickhouse_ru
    @yourock88 #73040 10:55 AM, 01 Nov 2018
    вообще, NUMA должна прямо очень больно ощущаться на 4-процессорной машине, и в намного меньшей степени — на двухпроцессорной
  • https://t.me/clickhouse_ru
    @yourock88 #73041 10:56 AM, 01 Nov 2018
    но про какой-либо учет топологии памяти в планировщике КХ я не слышал
  • https://t.me/clickhouse_ru
    @madm1ke #73042 10:58 AM, 01 Nov 2018
    Привет.
    Вопрос идеологический: при работе с materialized view CH предполагается транзакционным - то есть, вставка в исходную таблицу откатится, если не сработает вставка во вьюшку, или нет?
  • https://t.me/clickhouse_ru
    не транзакционная вставка. MV - "pre-insert" триггер
  • https://t.me/clickhouse_ru
    @madm1ke ↶ Reply to #73043 #73044 11:00 AM, 01 Nov 2018
    Именно pre, не post? если он не сработает - что будет с исходным запросом?
  • @ztlpn #73045 11:00 AM, 01 Nov 2018
    Ага, только сравнительно давно поменяли на "post-insert"
  • https://t.me/clickhouse_ru
    @madm1ke ↶ Reply to #73045 #73046 11:01 AM, 01 Nov 2018
    при ошибке вставки во вьюшку исходный запрос не откатится?
  • @ztlpn #73047 11:01 AM, 01 Nov 2018
    Не откатится, транзакционности действительно нет
  • https://t.me/clickhouse_ru
    нет :)
  • https://t.me/clickhouse_ru
    @yourock88 #73049 11:01 AM, 01 Nov 2018
    у нас так данные дублировались при ошибке вставки в мат вью
  • https://t.me/clickhouse_ru
    @yourock88 #73050 11:02 AM, 01 Nov 2018
    вернее даже при исполнении селекта в мат вью
  • https://t.me/clickhouse_ru
    это шедевр! Спасибо большое за информацию
  • https://t.me/clickhouse_ru
    @madm1ke ↶ Reply to #73047 #73052 11:02 AM, 01 Nov 2018
    печально. Я тут выше когда-то жаловался на разницу во вьюшках, все с репликацией. появляются потери данных во вьюшках при ошибках работы с ZK. Часть таких мест исправляли летом, но, видимо, не все исправили.
  • https://t.me/clickhouse_ru
    @yourock88 #73053 11:03 AM, 01 Nov 2018
    Лучше крон
  • https://t.me/clickhouse_ru
    @yourock88 #73054 11:03 AM, 01 Nov 2018
    чем мат вью
  • https://t.me/clickhouse_ru
    @yourock88 #73055 11:04 AM, 01 Nov 2018
    хотя и тут гарантий не будет
  • https://t.me/clickhouse_ru
    @yourock88 #73056 11:04 AM, 01 Nov 2018
    но более контролируемо
  • https://t.me/clickhouse_ru
    @madm1ke ↶ Reply to #73047 #73057 11:07 AM, 01 Nov 2018
    Есть смысл кому-то сообщать детали по работе с ZK, по ошибкам? Кажется, вот тут дочинили не все:

    > Исправлена возможность потери данных при вставке в Replicated таблицы в случае получения ошибки Session expired (потеря данных может быть обнаружена по метрике ReplicatedDataLoss). Ошибка возникла в версии 1.1.54378. #2939 #2949 #2964
  • @ztlpn #73058 11:10 AM, 01 Nov 2018
    Да, конечно есть, создавайте issue. Правда без детальных логов и графиков бывает трудно разобраться в проблеме.
  • https://t.me/clickhouse_ru
    @madm1ke #73059 11:13 AM, 01 Nov 2018
    ок. Хотя я тут перепроверил - возможно, не везде был правильный апдейт. Проверю еще раз и вернуюсь.
  • https://t.me/clickhouse_ru
    @madm1ke #73060 11:13 AM, 01 Nov 2018
    апдейт на нужную версию, имею в виду.
  • @vladimir_xcx #73061 11:15 AM, 01 Nov 2018
    подключаю таблицы из Potgres как внешние словари
    мне нужно каждое поле из таблицы описать в <Structure> или CH сам разберется что по чем?
  • https://t.me/clickhouse_ru
    как вариант, не перегоняйте, переименуйте старую таблицу, накройте обе таблицы merge таблицей.
  • @70532431 #73063 12:25 PM, 01 Nov 2018
    В SHOW PROCESSLIST memory_usage─┬─peak_memory_usage не учитывают, сколько памяти для обработки запроса было использовано в системном кэше?
  • @milovidov_an #73064 12:33 PM, 01 Nov 2018
    ClickHouse Meetup в Амстердаме, 15 ноября: https://events.yandex.com/events/meetings/15-11-2018/
    Link

    Join the ClickHouse Meetup in Amsterdam on 15th of November. Come and learn about ClickHouse, our open source high-performance column-oriented database management system at a meetup on November 15, 2018 at the Andaz Hotel, at Prinsengracht 587 in Amsterdam.

  • None
  • Не сделали? тоже нужен)
  • https://t.me/clickhouse_ru
    @gabolaev ↶ Reply to #73064 #73067 12:35 PM, 01 Nov 2018
    а в России вообще бывают митапы по CH?
  • https://t.me/clickhouse_ru
    @Sablast ↶ Reply to #73066 #73068 12:36 PM, 01 Nov 2018
    не, мне не хватает времени и знаний
  • Да, предыдущий был в Санкт-Петербурге в августе, а следующий, скорее всего, будет в Москве.
  • https://t.me/clickhouse_ru
    @gabolaev ↶ Reply to #73069 #73070 12:39 PM, 01 Nov 2018
    класс, а мск когда примерно?
  • @milovidov_an #73071 12:39 PM, 01 Nov 2018
    Декабрь или февраль.
  • https://t.me/clickhouse_ru
    @gabolaev ↶ Reply to #73071 #73072 12:39 PM, 01 Nov 2018
    спасибо
  • Нет, не учитывают. Это технически сложно. ОС старается, чтобы использование page cache было максимальное прозрачным.
  • @vladimir_xcx #73074 12:46 PM, 01 Nov 2018
    нужно из ext dict загружать значения типа bool
    вот что говриться в документации по поводу этого типа
    https://clickhouse.yandex/docs/en/data_types/boolean/
    как сделать ограничение {0,1}?
  • @alekseevgena #73075 12:47 PM, 01 Nov 2018
    Здравствуйте. А реально с помощью мутации UPDATE убавить три часа во всей колонке типа DateTime?
  • Можно использовать expression:
    https://clickhouse.yandex/docs/ru/query_language/dicts/external_dicts_dict_structure/#dicts-external_dicts_dict_structure

    для того, чтобы сделать ограничение на стороне источника.
  • Можно. Но только если это поле не входит в ключ таблицы.

    SET t = t - INTERVAL 3 HOUR
  • спасибо! Сейчас гляну, вроде не входит
  • https://t.me/clickhouse_ru
    в целом да если она не входит в ключ партицирования и в индекс
  • @milovidov_an #73081 12:55 PM, 01 Nov 2018
    Если входит, то сервер просто не разрешит.
  • https://t.me/clickhouse_ru
    @Shegloff #73082 12:57 PM, 01 Nov 2018
    никто не напомнит, как ограничить полосу пропускания для репликации?
  • В ClickHouse нет такой возможности. Тем не менее, можно использовать tc для этого.
  • https://t.me/clickhouse_ru
    @madm1ke #73084 12:58 PM, 01 Nov 2018
    столкнулся после очередного апгрейда CH с проблемой загрузки https-словарей:
    2018.11.01 15:54:06.896909 [ 150 ] {} <Error> ExternalDictionaries: Failed reloading 'hub_city' external dictionary: Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = SSL Exception: error:14007086:SSL routines:CONNECT_CR_CERT:certificate verify failed, e.what() = SSL Exception

    Конфиг оставался старым, без указания секции openssl. Добавил openssl->client с дефолтовыми настройками из умолчательного конфига - пока ничего не изменилось. Может есть какое-то стандартное направление, куда копать?
  • да, в ходит в индекс к сожалению. Ну ладно, будем функцией убавлять во время запросов.
  • https://t.me/clickhouse_ru
    @Vincent_57 #73087 01:20 PM, 01 Nov 2018
    Всем привет.
    Может кто сталкивался сервер не видит партицию(не переносит в detached при соотв запросе), но и при запросе не читает данные из партиции. Как можно вылечить? или что необходимо смотреть?
  • https://t.me/clickhouse_ru
    а сертификат валидный ?
  • https://t.me/clickhouse_ru
    посмотреьт логи кх
  • https://t.me/clickhouse_ru
    @madm1ke ↶ Reply to #73088 #73090 01:26 PM, 01 Nov 2018
    конечно. Ситуация пока исправилась только отключением проверки в openssl->client->verificationMode.
  • https://t.me/clickhouse_ru
    в логах по этому поводу ничего не увидел, поэтому тут и спросил
  • https://t.me/clickhouse_ru
    @stufently #73092 01:40 PM, 01 Nov 2018
    в обоих ?
  • https://t.me/clickhouse_ru
    @Vincent_57 #73093 01:41 PM, 01 Nov 2018
    да
  • https://t.me/clickhouse_ru
    @stufently #73094 01:42 PM, 01 Nov 2018
    странно конечно а вообще парт в системной таблице партов он видит ?
  • https://t.me/clickhouse_ru
    @stufently #73095 01:43 PM, 01 Nov 2018
    а что вы до этого с ним сделали?
  • https://t.me/clickhouse_ru
    @Vincent_57 #73096 01:43 PM, 01 Nov 2018
    в ерор логах то lock файл заблочен дргим инстансом, но как писал Алексей это не критично, когда будет возможность рестартануть сервер разберусь
  • https://t.me/clickhouse_ru
    как глянуть
  • https://t.me/clickhouse_ru
    @stufently #73098 01:43 PM, 01 Nov 2018
    ну селект систем партс
  • https://t.me/clickhouse_ru
    ничего, но есть подозрение что это произошло когда принудительно инстанс убивал, когда проблемы были
  • https://t.me/clickhouse_ru
    @stufently #73100 01:44 PM, 01 Nov 2018
    а какие проблемы то ?
  • https://t.me/clickhouse_ru
    @Vincent_57 #73101 01:48 PM, 01 Nov 2018
    в систем партс нету =(
  • https://t.me/clickhouse_ru
    @Hushpar #73102 01:48 PM, 01 Nov 2018
    А в Kafka engine таблицах можно как-то парсить вложенные json? Есть поле, в котором массив объектов. Хотелось бы это как-то в Nested запихать
  • https://t.me/clickhouse_ru
    @Vincent_57 #73103 01:48 PM, 01 Nov 2018
    проблема была в том что инстанс сожрал все ресурсы машины
  • https://t.me/clickhouse_ru
    @nicname #73104 01:56 PM, 01 Nov 2018
    а вот смотрите, я пытаюсь сделать UNION ALL на две таблицы, одна из которых отличается на три колонки, я пытаюсь добавить их так
    (SELECT *, toInt64(0) as resdur, toString('') as reslog, toUInt64( 0) as VisibleID FROM ...

    типы колонок подсмотрел во второй таблице так
    SELECT toTypeName( resdur) , toTypeName(reslog) , toTypeName(VisibleID) FROM

    и вот он мне выдает такую ошибку
    There is no supertype for types UInt64, String because some of them are String/FixedString and some of them are not

    что я делаю не так?
  • @milovidov_an #73105 01:57 PM, 01 Nov 2018
    UNION ALL работает по позициям столбцов в запросах, не по именам.
  • https://t.me/clickhouse_ru
    @nicname #73106 01:58 PM, 01 Nov 2018
    уфф, это все усложняет, спасибо
  • https://t.me/clickhouse_ru
    @StarovoytovSergey #73107 02:03 PM, 01 Nov 2018
    Всем привет!
    Подскажите, пожалуйста, столкнулся с проблемой, что удаление партиции занимает много времени. В таблице порядка 140М записей. Сильно ли влияет на скорость удаления то, что в этот момент идут запросы на чтение. И можно ли ускорить этот процесс если сначала отсоединять партицию?
  • Удаление партиции просто ждёт запросы на чтение.
  • https://t.me/clickhouse_ru
    @StarovoytovSergey #73110 02:24 PM, 01 Nov 2018
    хм... понятно. Спасибо!
  • @70532431 #73111 02:30 PM, 01 Nov 2018
    Чтобы поменять структуру индекса таблицы, лучше всего insert from select?
  • https://t.me/clickhouse_ru
    Это единственный способ
  • https://t.me/clickhouse_ru
    @SergeyBizikin #73113 02:42 PM, 01 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @pavelveret #73114 02:44 PM, 01 Nov 2018
    Joined.
  • @war1or #73115 02:48 PM, 01 Nov 2018
    Joined.
  • @yvkhro #73116 02:48 PM, 01 Nov 2018
    Joined.
  • @odainic #73117 02:51 PM, 01 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @slvfmts #73118 02:53 PM, 01 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @lina777r #73119 02:56 PM, 01 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @DlMA_V #73120 03:35 PM, 01 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @ZicZok #73122 04:00 PM, 01 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @kostiantynv #73123 04:01 PM, 01 Nov 2018
    Если я добавил новую колонку, насколько болезненный апдейт этой колонки по первичному ключу? В теории хотелось бы батчем дописать значения новых колонок, без изменения существующих данных для других колонок.
  • https://t.me/clickhouse_ru
    @NickBlade #73124 04:02 PM, 01 Nov 2018
    где тут картинка была?!?
  • https://t.me/clickhouse_ru
    @stufently #73125 04:02 PM, 01 Nov 2018
    а в ключ нельзя добавить колонок новых же
  • https://t.me/clickhouse_ru
    @kostiantynv #73126 04:02 PM, 01 Nov 2018
    Так, мне в ключ не нужно
  • https://t.me/clickhouse_ru
    @stufently #73127 04:02 PM, 01 Nov 2018
    успокойтесь зайдите в яндекс картинки там есть на любой вкус
  • https://t.me/clickhouse_ru
    @stufently #73128 04:03 PM, 01 Nov 2018
    а вам апдейтнуть а не добавить новую
  • https://t.me/clickhouse_ru
    @stufently #73129 04:03 PM, 01 Nov 2018
    так у вас данные других колонок и не будет менять
  • https://t.me/clickhouse_ru
    @kostiantynv #73130 04:05 PM, 01 Nov 2018
    В SQL это будет UPDATE table SET column = value Where PK = something
  • https://t.me/clickhouse_ru
    @yourock88 #73131 04:06 PM, 01 Nov 2018
    ALTER … UPDATE ...
  • https://t.me/clickhouse_ru
    @yourock88 #73132 04:07 PM, 01 Nov 2018
    а не просто UPDATE
  • https://t.me/clickhouse_ru
    @yourock88 #73133 04:07 PM, 01 Nov 2018
    Это подчёркивает, что операция UPDATE в КХ очень дорогая
  • https://t.me/clickhouse_ru
    @kostiantynv #73134 04:08 PM, 01 Nov 2018
    Ок
  • https://t.me/clickhouse_ru
    @kostiantynv #73135 04:09 PM, 01 Nov 2018
    Но это update для строчек где нет значений у этой колонки в принципе
  • @faerics ↶ Reply to #73135 #73136 04:11 PM, 01 Nov 2018
    Тут нет строчек
  • https://t.me/clickhouse_ru
    @rheinx #73137 04:11 PM, 01 Nov 2018
    Ребят, а join_use_nulls прописывается в профиль юзера или в config.xml ?
    Чет прописал в config.xml: <join_use_nulls>1</join_use_nulls>
    и никакого эффекта
  • https://t.me/clickhouse_ru
    Там всё то же самое, можно и WHERE и что хотите 🙂
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #73137 #73139 04:13 PM, 01 Nov 2018
    Нашел. Все же пишется в профиль
  • https://t.me/clickhouse_ru
    https://github.com/yandex/ClickHouse/issues/3472
    переписан будет весь файл (парт)
  • @sordes_pilosus #73141 04:21 PM, 01 Nov 2018
    Всем привет!
    В доке, в разделе Движки таблиц -> Интеграции, сказано, что есть движок MySQL и он "... позволяет выполнять SELECT запросы над данными, хранящимися на удалённом MySQL сервере."
    А есть ли что-то подобное для PostgreSQL?
    https://clickhouse.yandex/docs/ru/operations/table_engines/mysql/
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #73141 #73142 04:22 PM, 01 Nov 2018
    odbc
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
  • спасибо!
  • @634321479 #73149 04:51 PM, 01 Nov 2018
    Совсем новый, но проверенный капперский дневник с высокой проходимостью ставок!

    Всем очень советуем!
    ShelbyBet

    ▪️Авторский канал каппера со стажем. ▪️Поднимаемся на ставках. ▪️Даю только то, на что ставлю сам. ▪️Всем добра, мои дорогие бандиты! Связь со мной: @shelby_alex

  • https://t.me/clickhouse_ru
    Партишн с обновляемой колонкой, только он будет задет, так ведь ?
  • https://t.me/clickhouse_ru
    @kostiantynv #73151 04:56 PM, 01 Nov 2018
    Есть ли возможность выполнить пачку alter update в батче. По сути я хочу записать данные в колонку, где для данного диапазона ключей никаких значений нет
  • https://t.me/clickhouse_ru
    вся ОДНА колонка, за октябрь, может лежать у вас в файле размером 200ГБ, то что вы обновляте поле одной строку ПУСТОЕ (что это вообще?), ничего не значит, будут перезаписаны 200ГБ.
  • https://t.me/clickhouse_ru
    одним alter обновляйте.
  • @sr_maks1 #73154 04:58 PM, 01 Nov 2018
    Привет всем. Подскажите если у меня в таблице timestamp а я партицирую по часам timestamp/3600000 и если необходимо брать минуты timestamp/60000 то будет ли скорость намного ниже? И как вы решаете вопросы если нужны отчёты по минутам часам и и дням в этом случае
  • https://t.me/clickhouse_ru
    если будет партиций больше 200, все встанет, все партиционируют помесячно.
  • @sr_maks1 ↶ Reply to #73155 #73156 04:59 PM, 01 Nov 2018
    В плане встанет?)
  • https://t.me/clickhouse_ru
    Что именно всё ? Если все запросы обращаются к 10 партициям максимум ?
  • @sr_maks1 ↶ Reply to #73155 #73158 05:00 PM, 01 Nov 2018
    То есть если больше 200 директорий в data то каюк?)
  • https://t.me/clickhouse_ru
    работать не будет. ЦПУ будет жрать, а работать не будет.
  • @sr_maks1 ↶ Reply to #73159 #73160 05:00 PM, 01 Nov 2018
    Странно.
  • @sr_maks1 #73161 05:01 PM, 01 Nov 2018
    Тогда зачем партицирование кастомное
  • https://t.me/clickhouse_ru
    все стараются чтобы запрос ходил в минимальное число партиций.
  • https://t.me/clickhouse_ru
    Товарищ эксперт, по какой технической причине "встанет всё"?
  • https://t.me/clickhouse_ru
    например у вас есть кастомер, а запросы одного кастомера затрагивают только его партиции, когда кастомер уходит, очень удобно дропнуть все его партиции.
  • @sr_maks1 ↶ Reply to #73162 #73165 05:02 PM, 01 Nov 2018
    Странно. То есть партиции только для бекапа?) окей. Тогда вопрос зачем тогда партицирование ещё нужно?
  • https://t.me/clickhouse_ru
    надо домерживать, и сортировать результат из сотен партиций
  • https://t.me/clickhouse_ru
    Если один запрос обращаться к сотне
  • https://t.me/clickhouse_ru
    берете и делаете тест и убеждаетесь что две партиции в select хуже чем одна, далее делаете выводы.
  • https://t.me/clickhouse_ru
    @Shegloff #73169 05:05 PM, 01 Nov 2018
    Партиции по дням, в одной партиции 100-200 млн строк, селекты за два года работают вполне норм
  • @faerics ↶ Reply to #73166 #73170 05:05 PM, 01 Nov 2018
    Вообще говоря, непонятно, зачем.
  • @sr_maks1 #73171 05:06 PM, 01 Nov 2018
    Если честно тогда я не понимаю. Хорошо. Допустим у меня одна партиция. Одна большая огромная партиция. Один сервер без шардов и прочее. Поиск будет идти по group by который идёт при создании таблицы?
  • https://t.me/clickhouse_ru
    Есть два апдейта с разными условиями, какой будет синтаксис:
  • @faerics ↶ Reply to #73168 #73173 05:07 PM, 01 Nov 2018
    Ну есть у меня миллион партиций, а в запросах я буду затрагивать по одной. Почему все должно вставать?
  • https://t.me/clickhouse_ru
    Делаете тест с одной партицией размера 10х и одной партицией размера х. И ? В чём проблема если сегментов 1000 ?
  • @sr_maks1 #73175 05:07 PM, 01 Nov 2018
    Если честно то я думал что партиции играют роль при поиске.
  • @faerics ↶ Reply to #73174 #73176 05:08 PM, 01 Nov 2018
    В доагрегации, например.
  • https://t.me/clickhouse_ru
    Спасибо за комментарий, тоесть данных за два года или один запрос затрагивает 700 разделов?
  • https://t.me/clickhouse_ru
    @Shegloff #73178 05:09 PM, 01 Nov 2018
    Да, 700 партиций :)
  • https://t.me/clickhouse_ru
    @Shegloff #73179 05:10 PM, 01 Nov 2018
    По конкретноым id идут постоянные селекты за все время (2 года), id в индексе, все ок
  • @faerics ↶ Reply to #73178 #73180 05:10 PM, 01 Nov 2018
    Должно быть таки дольше, чем если бы было 100 партиций...
  • https://t.me/clickhouse_ru
    в этом случае не должно. Т.е. запрос будет читать данные у вас за час?
  • https://t.me/clickhouse_ru
    @Shegloff #73182 05:11 PM, 01 Nov 2018
    Конечно медленнее, но не кртичино, замеры показали чтото типа 12 сек и 8 , за 2 года. На периодах месяц и меньше разницы нет, таких запросов 95%
  • https://t.me/clickhouse_ru
    @Shegloff #73183 05:12 PM, 01 Nov 2018
    8 сек месячные, 12 сек суточные
  • https://t.me/clickhouse_ru
    партицированием может быть не только по времени
  • https://t.me/clickhouse_ru
    будет работать, но возможно запрос охватывающий все партиции за два года работает 4 мин. вместо 1.
  • @sr_maks1 ↶ Reply to #73182 #73186 05:12 PM, 01 Nov 2018
    А если не секрет на этом периоде какая агрегация в запросах? По дням или часам?
  • https://t.me/clickhouse_ru
    @Shegloff #73187 05:13 PM, 01 Nov 2018
    По дням
  • https://t.me/clickhouse_ru
    @Shegloff #73188 05:13 PM, 01 Nov 2018
    По конкретной id
  • @sr_maks1 #73189 05:13 PM, 01 Nov 2018
    И ещё никто не использует timestamp?
  • @faerics #73190 05:13 PM, 01 Nov 2018
    Тут предлагается по минутам, значит в данном сценарии да, только в рамках минуты.

    Это я к тому, что само по себе большое количество партиций - не причина для того, чтобы все встало.
  • @ztlpn ↶ Reply to #73172 #73191 05:13 PM, 01 Nov 2018
    ALTER TABLE t UPDATE col1 = expr1 WHERE predicate1, UPDATE col2 = expr2 WHERE predicate2, ...

    Только не увлекайтесь, сильно много таких апдейтов тоже делать не надо (до 100 где-то будет нормально работать). Если есть какая-то таблица, из которой берутся новые значения, лучше не городить 100500 апдейтов, а например словарь сделать и из него обновлять.
  • @faerics ↶ Reply to #73181 #73192 05:13 PM, 01 Nov 2018
    См выше
  • @faerics ↶ Reply to #73188 #73193 05:15 PM, 01 Nov 2018
    Если бы не по полю сортировки выбирали, все бы встало, нужно было бы доагрегировать.
  • https://t.me/clickhouse_ru
    Я правильно понимаю что запрос по айди и так или иначе достает малый объем данных ? Мне кажется что запросы агрегации на партицированных таблицах (при условии что запрос к одной партиции) должны летать
  • https://t.me/clickhouse_ru
    Есть задача, сделать энричмент данных. Я так понимаю наиболее ClickHouse way это словари ?
  • https://t.me/clickhouse_ru
    @Shegloff #73196 05:18 PM, 01 Nov 2018
    Да, все так, объем малый, на суточных партициях быстрее даже работает, чем на месячных, большинство запросов выбирает последние 3-4 дня
  • https://t.me/clickhouse_ru
    @kostiantynv #73197 05:20 PM, 01 Nov 2018
    делать энричмент перед выставкой в нашей архитектуре значит ещё раз писать в кафку тоесть ещё больше брокеров...
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #73193 #73198 05:23 PM, 01 Nov 2018
    Завтра вам пару селектов кину :)
  • @faerics ↶ Reply to #73198 #73199 05:24 PM, 01 Nov 2018
    Будет интересно.
  • https://t.me/clickhouse_ru
    Тут должна быть кнопка подписаться на сообщения этого парня. Большое спасибо.
  • @ztlpn ↶ Reply to #73197 #73201 05:27 PM, 01 Nov 2018
    ClickHouse-way это всё-таки делать энричмент батчей перед вставкой. UPDATE + словарь это такой хак, призванный заменить функциональность UPDATE FROM. Он неудобный, хотя бы потому что словарь неудобно каждый раз пересоздавать. Но однократно его применть можно.
  • https://t.me/clickhouse_ru
    Если есть словарь - то можно джойнить с ним, апдейт не нужен. Я видел есть энжены для внешних баз, я так понимаю словарь может быть в редисе и с ним джойнить ?
  • https://t.me/clickhouse_ru
    @nicname #73203 05:30 PM, 01 Nov 2018
    если памяти хватит
  • @ztlpn #73204 05:37 PM, 01 Nov 2018
    Да, словарь может слишком большой получиться и тогда захочется результаты лукапов "материализовать" в таблицу. Есть движки для внешних баз: MySQL, ODBC и соответствующие словари. Redis пока напрямую не поддерживается, но можно например сделать HTTP-обёртку + HTTP-словарь.
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #73199 #73205 05:39 PM, 01 Nov 2018
    Вчитался, у нас нет селектов не по полю сортировки😁я доступы отбираю за такое. Только если доп.условие
  • @mironovich #73206 05:45 PM, 01 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Shegloff #73207 05:47 PM, 01 Nov 2018
    Но ради интереса попробую
  • @faerics ↶ Reply to #73205 #73208 05:49 PM, 01 Nov 2018
    И неудивительно, у вас бы и правда все встало. Попробуйте, отппишитесь)
  • @sr_maks1 ↶ Reply to #73208 #73209 05:58 PM, 01 Nov 2018
    Тоже интересно. По идее не должно встать.
  • @sr_maks1 #73211 06:02 PM, 01 Nov 2018
    Спам
  • https://t.me/clickhouse_ru
    @tonko22 #73212 06:06 PM, 01 Nov 2018
    Всем привет!
    Столкнулся со следующей проблемой: при попытке создать таблицу с двухсторонней связью(https://docs.sqlalchemy.org/en/latest/orm/basic_relationships.html One-to-many + backpopulates) из SQLAlchemy ORM. Вот код схемы: https://gist.github.com/tonko22/40fe8823810d6cd681223a004cbfab01, а ошибка картинков ниже.
    Hello guys

    Hello guys. GitHub Gist: instantly share code, notes, and snippets.

  • https://t.me/clickhouse_ru
  • @Leshchinin #73214 06:16 PM, 01 Nov 2018
    Всем привет, подскажите как использовать яндекс кх в облаке с табиксом? я про сертификат, как его подрубить к табиксу?
  • @Leshchinin #73215 06:16 PM, 01 Nov 2018
    яндекс клауд который
  • https://t.me/clickhouse_ru
    @paveltyavin #73216 06:29 PM, 01 Nov 2018
    А у яблока есть поддержка в телеграм-чатиках?
  • @70532431 ↶ Reply to #73112 #73217 06:49 PM, 01 Nov 2018
    А Clickhouse-copier?
  • @70532431 #73218 06:58 PM, 01 Nov 2018
    Что сообщество может сказать про приоритеты запросов? Не документировано, и есть сомнения, хорошо ли работает.

    M(SettingUInt64, priority, 0, "Priority of the query. 1 - the highest, higher value - lower priority; 0 - do not use priorities.")
  • @70532431 #73219 06:58 PM, 01 Nov 2018
    На первую пробу работает, но глубоко не гонял.
  • Мы используем в продакшене для ограничения запросов аналитиков на кластере с одновременной нагрузкой от интерактивных запросов.
  • @70532431 ↶ Reply to #73220 #73221 07:07 PM, 01 Nov 2018
    Понятно, будем более-менее спокойны) А как приоритеты работают относительно destributed таблиц над replicatedmt?
  • @70532431 #73222 07:09 PM, 01 Nov 2018
    Будет ли наследоваться приоритет на подзапросы на всех серверах, то есть.
  • @milovidov_an #73223 07:09 PM, 01 Nov 2018
    Настройки запроса пробрасываются на все удалённые серверы, участвующие в обработке запроса.
  • @70532431 #73224 07:11 PM, 01 Nov 2018
  • https://t.me/clickhouse_ru
    @kostiantynv #73225 07:17 PM, 01 Nov 2018
    Я правильно понимаю что первичный ключ заставляет КХ сортировать данные при слиянии сегментов mergeTree или использовать сортированные множества ? Насколько это влияет на производительность записи ? Предварительная сортировка сильно помогает скорости записи ?
  • @70532431 ↶ Reply to #73225 #73226 07:23 PM, 01 Nov 2018
    Кликхаус сортирует строки перед вставкой, если будете вставлять уже отсортированные - должно быть быстрее.
    Но на мой взгляд это странная замена шила на мыло. Тк в любом случае сортировку будет делать или кликхаус, или какой-то ваш софт.
  • https://t.me/clickhouse_ru
    @kostiantynv #73227 07:24 PM, 01 Nov 2018
    Нагрузка на проц на другой машине
  • https://t.me/clickhouse_ru
    @kostiantynv #73228 07:27 PM, 01 Nov 2018
    LMS деревья изначально были созданы для работы с HDD, для того чтобы избежать random disk IO при записи, я так понимаю кликхаус тоже. Не выглядит ли логичным для работы на SSD использовать какой-то движок без постоянных слияний и write amplification ?
  • @Komzpa ↶ Reply to #73228 #73229 07:30 PM, 01 Nov 2018
    iops тоже не бесконечный, упирались в него внезапно на амазоне без lsm
  • https://t.me/clickhouse_ru
    @tonko22 ↶ Reply to #73212 #73230 07:32 PM, 01 Nov 2018
    bump
  • @70532431 ↶ Reply to #73229 #73231 07:33 PM, 01 Nov 2018
    А на Амазоне ssd часто разогревать надо, это как повезёт. Кстати.
  • @Komzpa #73232 07:34 PM, 01 Nov 2018
    "разогревать"? там наоборот на gp2 есть лимит сверху
  • https://t.me/clickhouse_ru
    @den_crane #73233 07:35 PM, 01 Nov 2018
    что такое ssd в Амазоне? EBS или NVME в сервере?
  • @70532431 ↶ Reply to #73233 #73234 07:41 PM, 01 Nov 2018
    ebs ssd, там опция при создании, на чём делать ebs
  • https://t.me/clickhouse_ru
    ок. Просто я подумал про ssd в сервере.
  • @70532431 #73237 07:42 PM, 01 Nov 2018
    хотя вот глянул, пишут, что уже ebs разогравать не нужно. амазон такой динамичный. но если восстанавливать тома старые из снапшотов, будут всё ещё требовать разогрева.
  • https://t.me/clickhouse_ru
    @kostiantynv #73238 07:48 PM, 01 Nov 2018
    Кого можно поспрашивать по архитектуре ?
  • @70532431 ↶ Reply to #73238 #73239 08:04 PM, 01 Nov 2018
    Архитектуре чего? Исходники же открыты. В Яндексе делали СУБД под HDD, вот и выбрали LSM.
  • https://t.me/clickhouse_ru
    @kostiantynv #73240 08:04 PM, 01 Nov 2018
    Я вот читаю )
  • https://t.me/clickhouse_ru
    Кстати да, такой же вопрос! А работают ли в кликхаусе двусторонние связи?
  • https://t.me/clickhouse_ru
    Мне кажется что если написать движок для таблиц, на основе LMDB (one LMDB file per column). Можно будет подменить реализацию таким образом чтобы писать всегда в один файл, и не делать мержей.
  • https://t.me/clickhouse_ru
    @kostiantynv #73243 08:17 PM, 01 Nov 2018
    И LMDB будет лучше для SSD
  • https://t.me/clickhouse_ru
    @kostiantynv #73244 08:18 PM, 01 Nov 2018
    Я пока не понял какой именно интерфейс нужно реализовать
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #73244 #73247 08:42 PM, 01 Nov 2018
    yandex/ClickHouse

    ClickHouse is a free analytic DBMS for big data. Contribute to yandex/ClickHouse development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #73242 #73248 08:58 PM, 01 Nov 2018
    А насколько "много" данных можно будет туда записать в единицу времени?
  • https://t.me/clickhouse_ru
    @kostiantynv #73249 08:59 PM, 01 Nov 2018
    С этим у LMDB не очень ))
  • https://t.me/clickhouse_ru
    @tonko22 #73250 09:00 PM, 01 Nov 2018
    Какой раздел документации мне подскажет что делать вместо foreign key? (чтобы реализовать связь parent-child)
  • https://t.me/clickhouse_ru
    @kostiantynv #73251 09:00 PM, 01 Nov 2018
    Но разделение данных по колонкам должно сильно помочь
  • https://t.me/clickhouse_ru
    @kshvakov #73252 09:00 PM, 01 Nov 2018
    От сюда вопрос о применимости такого движка в КХ
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #73251 #73253 09:01 PM, 01 Nov 2018
    Они и сечас разделены или мы о разном?
  • https://t.me/clickhouse_ru
    Да, но наверно слияния не тут реализовано.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #73250 #73255 09:01 PM, 01 Nov 2018
    Не делать так
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #73254 #73256 09:02 PM, 01 Nov 2018
    ClickHouse/ClickHouse

    ClickHouse is a free analytic DBMS for big data. Contribute to ClickHouse/ClickHouse development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @tonko22 ↶ Reply to #73255 #73257 09:03 PM, 01 Nov 2018
    Как же связь реализовать ?
  • https://t.me/clickhouse_ru
    Да раздельно, но LMDB однопоточная запись, поэтому распараллеливание по колонкам даст ему серьёзный буст
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #73257 #73259 09:04 PM, 01 Nov 2018
    Никак, денормализуете и пишите все в одну таблицу или используете словари
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #73258 #73260 09:10 PM, 01 Nov 2018
    Ну запишите, а доставать потом как, нужно иметь какой-то механизм доступа (индексы и все такое), а если не одну колонку, а две и более вытаскивать, а чтение распараллелить? Получается просто избавиться от мержей в MergeTree не получится и придется писать свой движок. насколько он будет лучше на чтение/запись?
  • https://t.me/clickhouse_ru
    LMDB - copy on write persistent B-tree
  • https://t.me/clickhouse_ru
    @kostiantynv #73262 09:12 PM, 01 Nov 2018
    Очень интересные бенчмарки, я сам немного игрался - но очень плохой драйвер для Java был на тот момент.
  • https://t.me/clickhouse_ru
    @artemvertegel #73263 10:01 PM, 01 Nov 2018
    Joined.
  • @vladislavadv #73264 11:56 PM, 01 Nov 2018
    Всем привет.

    А это норм поведение?

    SELECT DISTINCT utm_campaign
    FROM Stats
    WHERE date >= (today() - 10)
    GROUP BY utm_campaign
    ORDER BY count() DESC
    LIMIT 5

    ┌─utm_campaign─┐
    │ 4510 │
    │ 4825 │
    │ 3237 │
    │ 3549 │
    │ 3261 │
    └──────────────┘

    5 rows in set. Elapsed: 4.706 sec. Processed 3.20 billion rows, 47.74 GB (680.72 million rows/s., 10.15 GB/s.)

    SELECT topK(5)(utm_campaign)
    FROM Stats
    WHERE date >= (today() - 10)

    ┌─topK(5)(utm_campaign)──────────────┐
    │ ['4510','2876','517','286','3008'] │
    └────────────────────────────────────┘

    1 rows in set. Elapsed: 6.638 sec. Processed 3.20 billion rows, 47.74 GB (482.56 million rows/s., 7.19 GB/s.)

    В чем тогда смысл topK? если он медленее distrinct order by
  • 02 November 2018 (143 messages)
  • https://t.me/clickhouse_ru
    как минимум рядом можно каких-нибудь ещё агрегатов заодно посчитать
  • @tantschik #73266 04:00 AM, 02 Nov 2018
    Joined.
  • @744956044 #73269 04:22 AM, 02 Nov 2018
    Joined.
  • @798447793 #73270 04:22 AM, 02 Nov 2018
    Joined.
  • @659249135 #73273 04:22 AM, 02 Nov 2018
    Joined.
  • @706448114 #73274 04:23 AM, 02 Nov 2018
    Joined.
  • @538783476 #73276 04:23 AM, 02 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @bionkin #73277 04:46 AM, 02 Nov 2018
    Joined.
  • @Mr_Grump #73278 05:08 AM, 02 Nov 2018
    Joined.
  • @ruslan_k_v #73279 05:29 AM, 02 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #73208 #73281 06:28 AM, 02 Nov 2018
    :) select uniq(ip) from DB.Table

    SELECT uniq(ip)
    FROM DB.Table

    ┌─uniq(ip)─┐
    │ 26451956 │
    └──────────┘

    1 rows in set. Elapsed: 145.463 sec. Processed 31.05 billion rows, 248.39 GB (213.44 million rows/s., 1.71 GB/s.)
    Ну такое. Не быстро, но и не встало :)
  • https://t.me/clickhouse_ru
    @Pavel_4242 #73282 06:31 AM, 02 Nov 2018
    Joined.
  • @faerics ↶ Reply to #73281 #73283 06:47 AM, 02 Nov 2018
    А если uniqExact?
    Тут распределение данных играет большую роль, ну и ~3мин все-таки, а если количество уникальных ip за месяц?

    От юзкейса же зависит.
  • @faerics #73284 06:48 AM, 02 Nov 2018
    Не должно быть сильно дольше, если я правильно понимаю, просто исследовательский интерес
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #73284 #73285 06:49 AM, 02 Nov 2018
    :) select uniqExact(ip) from DB.Table where date between '2018-09-01' and '2018-09-30'

    SELECT uniqExact(ip)
    FROM DB.Table
    WHERE (date >= '2018-09-01') AND (date <= '2018-09-30')

    ┌─uniqExact(ip)─┐
    │ 18916283 │
    └───────────────┘

    1 rows in set. Elapsed: 19.083 sec. Processed 4.14 billion rows, 41.39 GB (216.90 million rows/s., 2.17 GB/s.)
  • https://t.me/clickhouse_ru
    @Shegloff #73286 06:49 AM, 02 Nov 2018
    суточные партиции если что
  • https://t.me/clickhouse_ru
    @Shegloff #73287 06:49 AM, 02 Nov 2018
    ip не в индексе
  • @faerics #73288 06:50 AM, 02 Nov 2018
    Не, я про group by помесячный)
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #73288 #73289 06:52 AM, 02 Nov 2018
    а что вы имели ввиду под "все встало"?)
  • https://t.me/clickhouse_ru
    @Shegloff #73290 06:52 AM, 02 Nov 2018
    не встает что-то)
  • @faerics #73291 06:55 AM, 02 Nov 2018
    Ну тут была формулировка "проц будет загружен, а работать ничего не будет"
    По мне так просто будет долго работать, или нужны большие сложные доагрегации. Может @den_crane нам подскажет насчет этого
  • https://t.me/clickhouse_ru
    @Shegloff #73292 06:55 AM, 02 Nov 2018
    ну оно как бы так и есть, просто долго и все
  • https://t.me/clickhouse_ru
    @Shegloff #73293 06:55 AM, 02 Nov 2018
    11 rows in set. Elapsed: 50.854 sec. Processed 23.26 billion rows, 232.59 GB (457.38 million rows/s., 4.57 GB/s.)
  • @faerics ↶ Reply to #73159 #73294 06:56 AM, 02 Nov 2018
    Вот что говорят
  • https://t.me/clickhouse_ru
    @Shegloff #73295 06:59 AM, 02 Nov 2018
    надо все тестить, у меня сейчас две копии этой таблицы, одна с месячными партициями, другая, из которой эти селекты, суточные. Посуточный вариант работает намного лучше в нашем случае. Как я и говорил, большинство селектов за последние 3-4 дня, но и по id за все время тоже все быстро работает
  • @faerics ↶ Reply to #73294 #73296 07:00 AM, 02 Nov 2018
    Мне теперь интересно довести до вот такого состояния.
  • https://t.me/clickhouse_ru
    @Shegloff #73297 07:00 AM, 02 Nov 2018
    а аналитик, если что, подождет 60-100 сек, если напишет такие запросы
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #73296 #73298 07:01 AM, 02 Nov 2018
    как-то не очень хочется ронять кластер-то 😉
  • @faerics ↶ Reply to #73298 #73299 07:07 AM, 02 Nov 2018
    Хочется понять, почему он может упасть )
  • https://t.me/clickhouse_ru
    @Shegloff #73300 07:10 AM, 02 Nov 2018
    ну например если задрать max_memory_usage и попробовать ОЧЕНЬ жирно поселектить, то вполне можно убить по памяти, по процу не замечал, чтоб реплика умирала, или кластер
  • @faerics #73301 07:11 AM, 02 Nov 2018
    Но мы приходим либо к тому что большое число партиций -- это не так уж и плохо, либо к тому, что вы с ними делаете что-то, из-за чего не наблюдаются обычные симптомы.
  • @faerics ↶ Reply to #73300 #73302 07:12 AM, 02 Nov 2018
    Так можно и одну партицию убить.
  • https://t.me/clickhouse_ru
    @Shegloff #73303 07:13 AM, 02 Nov 2018
    ну тут кажется надо исходить от селектов
  • https://t.me/clickhouse_ru
    @Shegloff #73304 07:17 AM, 02 Nov 2018
    Рецепт-то простой - нормально делай, нормально будет
  • @faerics ↶ Reply to #73303 #73305 07:19 AM, 02 Nov 2018
    Это понятно. Вы под свой ворклоад сделали такую структуру, что все работает.
    Просто я был уверен, что много партиций плохо, потому что вот так и вот так загрузится проц
    А у вас все нормально. Вот и просыпается исследовательское любопытство
  • https://t.me/clickhouse_ru
    @VifleY #73306 07:21 AM, 02 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Shegloff #73307 07:24 AM, 02 Nov 2018
    У нас была еще одна необходимость - оперативно перезалить данные, с месячными партициями быстро не сделаешь.
  • https://t.me/clickhouse_ru
    А поле ip это String или, скажем, FixedString(16)?
  • https://t.me/clickhouse_ru
    @Shegloff #73309 07:30 AM, 02 Nov 2018
    Int
  • @faerics #73310 07:32 AM, 02 Nov 2018
    А если сделать string, тогда встанет?)
    По идее,uniqExact тяжело будет, наверное)
  • https://t.me/clickhouse_ru
    @Shegloff #73311 07:33 AM, 02 Nov 2018
    Не, не встает 😂
  • https://t.me/clickhouse_ru
    @Shegloff #73312 07:34 AM, 02 Nov 2018
    Не по полю сортировки, и стринг, и за все время... хватит ))
  • @faerics ↶ Reply to #73312 #73313 07:37 AM, 02 Nov 2018
    Ахах
    Спасибо большое за потраченное время
    Не только кластера, но и ваше:)
  • https://t.me/clickhouse_ru
    @Shegloff #73314 07:37 AM, 02 Nov 2018
    😁
  • https://t.me/clickhouse_ru
    @Shegloff #73315 07:41 AM, 02 Nov 2018
    От объемов данных же много зависит, тут 200 млн в день. У нас была табла, где 2 млрд за сутки, там я не рискну делать суточные, там часто за большой период селектят
  • @faerics ↶ Reply to #73315 #73316 07:42 AM, 02 Nov 2018
    За два года таки прилично, мне кажется
  • https://t.me/clickhouse_ru
    @Shegloff #73317 07:43 AM, 02 Nov 2018
    Никто за 2 года так не селектит, это все синтетика
  • https://t.me/clickhouse_ru
    @Shegloff #73318 07:44 AM, 02 Nov 2018
    Скрипты и интерфейсы по дням, аналитики по месяцам
  • @unknown_contact_777 #73319 07:44 AM, 02 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Shegloff #73321 07:44 AM, 02 Nov 2018
    Кто за год селектит, подождет чутка
  • https://t.me/clickhouse_ru
    @kshvakov #73322 08:12 AM, 02 Nov 2018
    И тот кто сервер ребутнет тоже может подождать ;)
  • @faerics ↶ Reply to #73317 #73323 08:14 AM, 02 Nov 2018
    А, вот этого я не понял

    Очень полезный у вас юзкейс
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #73322 #73324 08:16 AM, 02 Nov 2018
    Ну как бы не обломится подождать 40 сек вместо 20, с учетом того, что его годовые селекты ручные и редкие
  • https://t.me/clickhouse_ru
    @Shegloff #73325 08:17 AM, 02 Nov 2018
    Зато api и все остальное летает на последних днях :)
  • @sr_maks1 ↶ Reply to #73315 #73326 08:34 AM, 02 Nov 2018
    Спасибо. И все таки хочется услышать от ребят для чего же нужны партиции). Играет ли роль как партицировать - месяц или день на скорость выборки. Или же партицирование - это просто на какие куски делить данные . Тогда вопрос - а как же тогда составной ключ партицирования? Понятно что если партицировать слишком мелко - тогда мержи будут подвешивать систему.
  • https://t.me/clickhouse_ru
    @stufently #73327 08:35 AM, 02 Nov 2018
    Чтобы удобно хранить и делать супер быстрые выборки с ограничением по ключу партицирования
  • @sr_maks1 ↶ Reply to #73327 #73328 08:41 AM, 02 Nov 2018
    ENGINE = ReplicatedCollapsingMergeTree('/clickhouse/tables/name', 'replica1', Sign)
    PARTITION BY (toMonday(StartDate), EventType)
    ORDER BY (CounterID, StartDate, intHash32(UserID))
    SAMPLE BY intHash32(UserID)
    из оф доки - то есть партицирование идет по дате и типу событий, а ключик содержит 3 столбца. Как в этом случае будет SELECT eсли в нем будет присутствовать toMonday(StartDate), EventType и например CounterID. Сначала выберется нужная партиция а потом будет произведен анализ данных по ключу?
  • https://t.me/clickhouse_ru
    @stufently #73329 08:42 AM, 02 Nov 2018
    Да
  • @sr_maks1 ↶ Reply to #73329 #73330 08:43 AM, 02 Nov 2018
    😊 спасибо. Похоже на правду, иначе смысла в партицировании не было бы
  • https://t.me/clickhouse_ru
    @stufently #73331 08:46 AM, 02 Nov 2018
    Чаще всего это просто дата, а в первичном ключе дата с часами и запросы с временными ограничениями выбирают очень маленькое количество данных
  • https://t.me/clickhouse_ru
    @stufently #73332 08:48 AM, 02 Nov 2018
    В первое время все запросы были настолько быстрыми, что мне казалось это не правда, но расхождение с дороги запросами меньше чем на пару процентов говорили что оно и в правду такое быстрое
  • https://t.me/clickhouse_ru
    @Mike_Er #73333 09:16 AM, 02 Nov 2018
    Коллеги, подскажите плиз, как проще всего путь к файлу (/dir1/dir2/dir3/file.ext) обрезать до 2го уровня вложенности? нужно получить /dir1/dir2 ?
  • https://t.me/clickhouse_ru
    @Vincent_57 #73334 09:17 AM, 02 Nov 2018
    не знаю как проще, ноя бы регуляркой резал
  • https://t.me/clickhouse_ru
    @Mike_Er ↶ Reply to #73334 #73335 09:20 AM, 02 Nov 2018
    спасибо, я что-то спросил и зря,
    URLPathHierarchy(concat('http://a.ru', file)) получил, что нужно
  • https://t.me/clickhouse_ru
    @ilya_flakin #73337 09:23 AM, 02 Nov 2018
    ну вооот
  • https://t.me/clickhouse_ru
    @ZakirovDamir #73338 09:23 AM, 02 Nov 2018
    Даже в телеграм со своим спамом полезли. В святая святых.
  • https://t.me/clickhouse_ru
    @Mike_Er #73339 09:27 AM, 02 Nov 2018
    какой спам?
  • https://t.me/clickhouse_ru
    @ilya_flakin #73340 09:31 AM, 02 Nov 2018
    а это модератор почистил или тут что то стоит для автоматизации?
  • @thodin #73341 09:34 AM, 02 Nov 2018
    Подскажите, при апгрейде 18.12.14 -> 18.14.10 перестала
    работать вот такая конструкция с JOIN'ами:

    SELECT c.iccid , s.START_DATE
    FROM
    billing.account a
    LEFT JOIN billing.subscription s ON
    a.id = s.ACCOUNT_ID
    LEFT JOIN billing.service e ON
    s.id = e.SUBSCRIPTION_ID
    LEFT JOIN customers.data c ON
    c.imsi = e.IMSI
    WHERE c.partid ='TEST'

    Как так?
  • https://t.me/clickhouse_ru
    Что пишет? Телепаты в отпуске
  • @thodin #73343 09:36 AM, 02 Nov 2018
    SQL Error [48]: ClickHouse exception, code: 48, host: clickhouse-1.mt.co, port: 8123; Code: 48, e.displayText() = DB::Exception: Support for more than one JOIN in query is not implemented, e.what() = DB::Exception
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #73344 09:37 AM, 02 Nov 2018
    КХ не поддерживал больше одного JOIN в рамках одного SELECT. И сейчас не поддерживает. Может у вас подзапросы потерялись?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #73326 #73345 09:38 AM, 02 Nov 2018
    На время выборки влияет -КХ сначала смотрит по мин/макс ключа партиционирования в какие партиции идти. Мержи идут только в рамках партиции. Если у вас партиция по месяцу и в первичном ключе первой идет дата, то, для уменьшения латенси, проще уменьшить гранулярность индекса, но, разници особой с партициями по дням не сильно много будет. Партиция - еденица хранения в таблице, для них есть ряд операций обслуживания: удалить, переместить, присоеденить ... если этим удобнее пользоваться с каким-то отличным от месяца ключем - велкам в кастомные. Множество партиция достаточно плохо могут влиять на производительность селекта и вообще сервера так как сильно больще нужно делать дисковых операций, сильно больше файлов индексов, "засечек" и прочего что при старте нужно в память поднять, а потом при селектах там смотреть. + сильно больше нужно будет регистрировать в ZK
  • https://t.me/clickhouse_ru
    @madm1ke ↶ Reply to #73058 #73346 09:53 AM, 02 Nov 2018
    Проверил на актуальной версии - потери есть, тикет https://github.com/yandex/ClickHouse/issues/3529
    Data loss in materialized views with ZooKeeper errors · Issue #3529 · yandex/ClickHouse

    Looks like fixes "ZK Session expired" in #2939 #2949 #2964 are not enough. Found discrepancy between original table and view. Error logs on both replicas for this view for affecte...

  • https://t.me/clickhouse_ru
    @not_logan #73348 10:18 AM, 02 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @not_logan #73349 10:19 AM, 02 Nov 2018
    коллеги, доброго дня! Вопрос - с чем может быть связана ошибка: ServerErrorHandler: Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = Not found: http_port

    на сервере включен HTTPS
  • https://t.me/clickhouse_ru
    @not_logan #73350 10:19 AM, 02 Nov 2018
    если я правильно понял документацию - прописывание в конфиге HTTP порта отключит HTTPS
  • https://t.me/clickhouse_ru
    @not_logan #73351 10:29 AM, 02 Nov 2018
    сам спросил - сам ответил. Ошибка возникает, если попытаться подключится по HTTP на native-порт
  • @550330736 #73352 10:51 AM, 02 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @cyberpunk2050 #73353 10:59 AM, 02 Nov 2018
    Joined.
  • @pookieShmukie #73354 11:26 AM, 02 Nov 2018
    Всем привет. Кто подскажет как добавить колонку альтером, в самое начало таблицы? Т.е. перед первой колонкой
  • https://t.me/clickhouse_ru
    @studnev ↶ Reply to #73354 #73355 11:31 AM, 02 Nov 2018
    вроде запрещено? Note that there is no way to add a column to the beginning of a table
  • Вот да, я думал может кто нашел способ извратиться :)
  • https://t.me/clickhouse_ru
    @studnev ↶ Reply to #73356 #73357 11:31 AM, 02 Nov 2018
    CREATE TABLE AS SELECT ...
  • @lapkofear #73358 11:42 AM, 02 Nov 2018
    данные так быстро переливаются, что можно не парится и пересоздать таблицу
  • https://t.me/clickhouse_ru
    @AterCattus #73359 11:43 AM, 02 Nov 2018
    От объема данных зависит
  • https://t.me/clickhouse_ru
    @AterCattus #73360 11:45 AM, 02 Nov 2018
    Проще и быстрее в коде поддержать желаемый порядок колонок
  • @vladimir_xcx #73361 11:46 AM, 02 Nov 2018
    подключаю внешний словарь из Postgres
    когда создаю только 2 колонки, запрос отрабатывает 10s и создает, когда хочу создать 4 – отваливается на 7s по таймауту
    <Error> ExternalDictionaries: Failed reloading 'MY_DICT' external dictionary: Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = No message received, e.what() = No message received
  • @ushliy87 #73364 01:41 PM, 02 Nov 2018
    Всем привет. Народ, подскажите, есть ли возможность изменить индекс в существующей таблице?
    P.S. С пятницей )
  • https://t.me/clickhouse_ru
    @rkazakov #73365 01:42 PM, 02 Nov 2018
    всем привет! а есть какая-то библиотка на python, которая может красиво выводить код? По типу как далает табикс или datagrip когда хочешь посмотреть DDL
  • https://t.me/clickhouse_ru
    @nicname #73366 01:44 PM, 02 Nov 2018
    @ushliy87
  • https://t.me/clickhouse_ru
    @nicname #73367 01:44 PM, 02 Nov 2018
    Чтобы поменять структуру индекса таблицы, лучше всего insert from select?
  • https://t.me/clickhouse_ru
    @nicname #73368 01:44 PM, 02 Nov 2018
    Это единственный способ
  • @ushliy87 #73369 01:44 PM, 02 Nov 2018
    Ок. Спасибо.
  • https://t.me/clickhouse_ru
    Нет
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #73364 #73371 01:57 PM, 02 Nov 2018
    Реплицируемая?
  • @ushliy87 #73372 01:58 PM, 02 Nov 2018
    Нет, без реплик
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #73372 #73373 01:59 PM, 02 Nov 2018
    Если не в конец добавить колонок то можно, если совсем поменять то нужно переливать
  • https://t.me/clickhouse_ru
    @kshvakov #73374 02:01 PM, 02 Nov 2018
    yandex/ClickHouse

    ClickHouse is a free analytic DBMS for big data. Contribute to yandex/ClickHouse development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @count0ru #73375 02:06 PM, 02 Nov 2018
    при запросе ALTER TABLE testdb.table FREEZE PARTITION "(201810, 185)" WITH NAME 'test'; валится ошибка DB::Exception: Wrong number of fields in the partition expression: 1, must be: 2.. Я так понимаю что это просто некорректное название партиции?
  • @ztlpn #73376 02:12 PM, 02 Nov 2018
    пишите прям (201810, 185), без кавычек
  • https://t.me/clickhouse_ru
    @nicname ↶ Reply to #73374 #73377 02:18 PM, 02 Nov 2018
    то есть все-таки через ALTER TABLE.. ADD COLUMN.. MODIFY PRIMARY KEY можно частично менять структуру индекса?
  • https://t.me/clickhouse_ru
    @count0ru ↶ Reply to #73376 #73378 02:18 PM, 02 Nov 2018
    спасибо
  • https://t.me/clickhouse_ru
    @nicname #73379 02:18 PM, 02 Nov 2018
    или даже просто ALTER TABLE ... MODIFY PRIMARY KEY
  • https://t.me/clickhouse_ru
    @count0ru #73380 02:19 PM, 02 Nov 2018
    мне кажется надо какие то ограничения на названия партиций все таки
  • @ztlpn #73381 02:19 PM, 02 Nov 2018
    это к другому вопросу :)
  • @ztlpn #73382 02:20 PM, 02 Nov 2018
    MODIFY PRIMARY KEY предназначен для ситуации, когда у вас например SummingMergeTree и вам нужно добавить новый dimension
  • @ztlpn #73383 02:21 PM, 02 Nov 2018
    То есть таблица никак не пересортировывается (и за этим должны вы следить, что текущая сортировка соответствует новому первичному ключу).
  • @ushliy87 ↶ Reply to #73379 #73384 02:25 PM, 02 Nov 2018
    воу. в доках не нашел, потому и попросил помощи. Спасибо. На будущеее учту, Сейчас insert from select делается, довольно шустро
  • @ztlpn #73385 02:26 PM, 02 Nov 2018
    Кстати, порекламирую функциональность, которая сейчас в разработке - возможность задавать отдельный "ключ сортировки", который может отличаться от первичного ключа (первичный ключ должен быть его префиксом). Идея такая: в ключе сортировки должны присутствовать все dimensions (и строки с разным ключом сортировки не схлопываются), а первичный ключ это небольшой префикс ключа сортировки, который помогает не читать всю таблицу. При добавлении нового дименшена он одновременно добавляется в ключ сортировки (но не первичный ключ) - это дешёвая операция, так как затрагивает только метаданные.
  • @ztlpn #73386 02:26 PM, 02 Nov 2018
    Альтер ключа сортировки будет работать и для реплицированных таблиц.
  • https://t.me/clickhouse_ru
    @kshvakov #73387 02:29 PM, 02 Nov 2018
    @ztlpn Когда? )
  • https://t.me/clickhouse_ru
    @kshvakov #73388 02:29 PM, 02 Nov 2018
    Кстати, ты будешь на хайлоаде в этом году ?
  • @ztlpn #73389 02:30 PM, 02 Nov 2018
    Я знал, что ты заинтересуешься :) Почти доделал на самом деле, надеюсь PR сделать на следующей неделе.
  • @ztlpn #73390 02:31 PM, 02 Nov 2018
    На хайлоад не попадаю к сожалению.
  • @githubreleases_bot #73391 b o t 02:37 PM, 02 Nov 2018
    yandex/ClickHouse was tagged: v18.14.12-stable
    Link: https://github.com/yandex/ClickHouse/releases/tag/v18.14.12-stable
    Release notes:
    v18.14.12-stable
    yandex/ClickHouse

    ClickHouse is a free analytic DBMS for big data. Contribute to yandex/ClickHouse development by creating an account on GitHub.

  • @faerics ↶ Reply to #73385 #73392 02:37 PM, 02 Nov 2018
    Не очень понятно, чем особенно отличается первичный ключ.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #73389 #73393 02:43 PM, 02 Nov 2018
    Это будет очень круто, жаль, что не попадаешь. Вообще у нас тут погода еще пока "ничего", можно митап придумать )
  • @ztlpn ↶ Reply to #73392 #73394 02:51 PM, 02 Nov 2018
    Вот пример из одной из презентаций: https://yandex.github.io/clickhouse-presentations/highload2017/#36 - SummingMergeTree, в первичном ключе огромная колбаса из колонок, которую ещё и постоянно надо расширять. При этом для того, чтобы ограничить диапазон строк, нужный для построения отчёта, эти колонки не помогают. А можно было бы в первичном ключе оставить какой-нибудь (OrderID, EventDate, CampaignID) - бОльшая гранулированность не нужна. А при добавлении новой колонки-дименшена добавлять её в "ключ сортировки", тогда записи с разными её значениями не будут суммироваться, и можно будет по ней делать отчёты.
  • @faerics ↶ Reply to #73394 #73396 03:19 PM, 02 Nov 2018
    Просто это еще один термин. У вас ведь нет "первичного ключа", вот я его называл "ключ сортировки", а теперь это будет что-то другое.

    Лучше, Имхо, тогда подошли бы "ключ сортировки" и "ключ индексирования"
  • @faerics ↶ Reply to #73394 #73397 03:19 PM, 02 Nov 2018
    Пример понятен, спасибо:)
  • @ztlpn ↶ Reply to #73396 #73398 03:57 PM, 02 Nov 2018
    С точки зрения терминологии эта фича, конечно, полная катастрофа :)
  • @mminaev #73399 04:32 PM, 02 Nov 2018
    Кто может подсказать, есть таблица events_local engine=MergeTree(), есть таблица events engine=Distributed из events_local, как правильно сделать alter add column? сначала к events_local а потом к events? или можно сразу сделать к events?
  • https://t.me/clickhouse_ru
    @Shegloff #73400 04:39 PM, 02 Nov 2018
    одновременно через точку с запятой 😁
  • https://t.me/clickhouse_ru
    @Shegloff #73401 04:39 PM, 02 Nov 2018
    без разницы в принципе, как вам удобней будет
  • @lapkofear #73402 04:40 PM, 02 Nov 2018
    Если начнут падать ошибки - значит нельзя 😂
  • @faerics ↶ Reply to #73398 #73403 04:53 PM, 02 Nov 2018
    С этим надо что-то делать, уже и сейчас путаница
  • https://t.me/clickhouse_ru
    сперва к локал , а потом удалить дистрибьютед и создать заново , так как к дистрибьтед нельзя добавлять колонки
  • @mminaev ↶ Reply to #73404 #73405 04:57 PM, 02 Nov 2018
    Я попробовал и получилось
  • https://t.me/clickhouse_ru
    @Shegloff #73406 04:57 PM, 02 Nov 2018
    В смысле нельзя
  • https://t.me/clickhouse_ru
    @stufently #73407 04:57 PM, 02 Nov 2018
    ну раньше не работало
  • https://t.me/clickhouse_ru
    @stufently #73408 04:57 PM, 02 Nov 2018
    по крайней мере в ддл
  • https://t.me/clickhouse_ru
    @Shegloff #73409 04:57 PM, 02 Nov 2018
    Всю жизнь тау альтерю
  • https://t.me/clickhouse_ru
    @stufently #73410 04:57 PM, 02 Nov 2018
    дистрибьютед таблицы ?
  • https://t.me/clickhouse_ru
    @Shegloff #73411 04:57 PM, 02 Nov 2018
    Да
  • https://t.me/clickhouse_ru
    @stufently #73412 04:58 PM, 02 Nov 2018
    хз , завтра на тестовом стенде попробую , помню точно что не работало поэтому в сценарии пересоздание ее используем
  • https://t.me/clickhouse_ru
    @Shegloff #73413 04:58 PM, 02 Nov 2018
    Ну on cluster нет, но на каждой ноде почему бы и не проальтерить
  • https://t.me/clickhouse_ru
    @stufently #73414 04:59 PM, 02 Nov 2018
    ну лишний ручной головняк
  • @mminaev #73415 04:59 PM, 02 Nov 2018
    Я сделал он кластер и ошибок не было
  • https://t.me/clickhouse_ru
    @Shegloff #73416 04:59 PM, 02 Nov 2018
    На дистрибутед?
  • @faerics ↶ Reply to #73415 #73417 05:02 PM, 02 Nov 2018
    Там в ченжлоге что-то было про это .
    По- моему, делали
  • @739848677 #73419 06:07 PM, 02 Nov 2018
    Joined.
  • @allfath #73423 08:07 PM, 02 Nov 2018
    Joined.
  • 03 November 2018 (74 messages)
  • @695047648 #73424 03:10 AM, 03 Nov 2018
    Joined.
  • @767872300 #73425 03:10 AM, 03 Nov 2018
    Joined.
  • @796560411 #73426 03:10 AM, 03 Nov 2018
    Joined.
  • @692049034 #73428 03:10 AM, 03 Nov 2018
    Joined.
  • @713530836 #73432 03:11 AM, 03 Nov 2018
    Joined.
  • @787171793 #73433 03:11 AM, 03 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @kozhay #73437 11:01 AM, 03 Nov 2018
    Joined.
  • На highload будут два разработчика из моей команды.
  • https://t.me/clickhouse_ru
    @alek_si #73439 01:46 PM, 03 Nov 2018
    А блиц-митап будет без тебя?
  • https://t.me/clickhouse_ru
    @alek_si #73440 01:48 PM, 03 Nov 2018
    Кроме того, Алексей Миловидов указан как докладчик в двух слотах 🙂
  • Со мной, как раз я его заявил. И ещё постараюсь на митапе Кирилла тоже участвовать.
  • https://t.me/clickhouse_ru
    @alex_aa #73442 04:49 PM, 03 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @396626229 #73443 06:38 PM, 03 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @396626229 #73444 07:10 PM, 03 Nov 2018
    Привет всем!
    Мы пытаемся внедрить Clickhouse на нашей фирме и пока в полном восторге от performance. Но есть одна проблема с важным типом запросов для нас. Нам нужно агрегировать строки и потом фильтровать результат, отбрасывая группы с малыми суммами (что мы делаем с помощью HAVING). Проблема возникает, когда промежуточный результат (до фильтрации) не влезает в память на одной машине. Clickhouse отказывается выполнять запрос, хотя финальный результат после фильтрации должен влезать в память. Можно ли как-то эти грабли обойти? Запрос выглядит примерно так: SELECT a,b,c,d,SUM(Count) cnt
    FROM mytable
    GROUP BY a,b,c,d
    HAVING cnt > 100
    Заранее спасибо!
  • https://t.me/clickhouse_ru
    @gabolaev ↶ Reply to #73444 #73445 07:14 PM, 03 Nov 2018
    у вас в принципе столько памяти на тачке нет или ограничение CH паникует?
  • https://t.me/clickhouse_ru
    @gabolaev #73446 07:15 PM, 03 Nov 2018
    просто второе можно подкрутить, насколько я знаю, если надо больше
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #73444 #73448 07:26 PM, 03 Nov 2018
    bytes_before_external_group_by
  • https://t.me/clickhouse_ru
    @valyala #73450 07:27 PM, 03 Nov 2018
    блин, телеграм глючит
  • https://t.me/clickhouse_ru
    Ошибка такая: Code: 241, e.displayText() = DB::Exception: Received from clickhouse-06.service.tmo.dns.teralytics.net:9000, 10.92.115.16. DB::Exception: Memory limit (for query) exceeded: would use 2.33 GiB (attempt to allocate chunk of 491520 bytes), maximum: 2.33 GiB., e.what() = DB::Exception
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #73451 #73452 07:37 PM, 03 Nov 2018
    А скок данных у вас?
  • https://t.me/clickhouse_ru
    @396626229 #73453 07:38 PM, 03 Nov 2018
    Всего 700 миллионов строк
  • https://t.me/clickhouse_ru
    @396626229 #73454 07:38 PM, 03 Nov 2018
    Но будет расти
  • https://t.me/clickhouse_ru
    @rheinx #73455 07:39 PM, 03 Nov 2018
    Ну так 2.3 гига маловато будет для performance
  • Так сделайте мат вьюху и не нужно будет ничего считать и после фильтровать.
  • https://t.me/clickhouse_ru
    @396626229 #73457 07:41 PM, 03 Nov 2018
    Ну это мы наверно сможем подкрутить, но когда данные будут расти опять будем нарываться на те же грабли.
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #73457 #73458 07:42 PM, 03 Nov 2018
    С Вьюхой не надо будет столько ресурсов постоянно.
  • https://t.me/clickhouse_ru
    @396626229 #73459 07:43 PM, 03 Nov 2018
    Там дело в том что комбинации колонок a,b,c,d пользователь может свободно выбирать. Слишком много mat view придется создать
  • https://t.me/clickhouse_ru
    @rheinx #73460 07:43 PM, 03 Nov 2018
    С мат Вьюхой конечно же
  • https://t.me/clickhouse_ru
    @396626229 #73461 07:44 PM, 03 Nov 2018
    Я думал, может запрос как-то можно переписать
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #73459 #73462 07:44 PM, 03 Nov 2018
    Тогда пробуйте крутить max_bytes_before_external_group_by, ну и ресурсов хоть чуть чуть добавьте, ch крутой, но все же не магический.)
  • А если на каждый столбец сделать sum? А далее в выборке уже суммировать sums, по выбранным a,b,c
  • @EugenePaniot #73464 07:48 PM, 03 Nov 2018
    Те в вьюхе иметь столбцы a,b,c suma, sumb, sumc. Когда нужно показать a,b sum, то считать a,b suma+sumb
  • А не, там чего то в sum count.. Так что соорри за оффтоп
  • @z001ev ↶ Reply to #73444 #73466 07:51 PM, 03 Nov 2018
    а такая штука не спасет?
    SELECT any(a),any(b),any(c),any(d),cityHash64(concat(a,'/',b,'/',c,'/',d)) hash, SUM(Count) cnt FROM mytable GROUP BY hash HAVING cnt > 100

    или даже

    SELECT any(a),any(b),any(c),any(d),cityHash64(concat(a,'/',b,'/',c,'/',d)) hash, SUM(Count) cnt FROM mytable
    WHERE hash IN ( SELECT hash FROM ( SELECT cityHash64(concat(a,'/',b,'/',c,'/',d)) hash, SUM(Count) cnt FROM mytable GROUP BY hash HAVING cnt > 100 ))
    GROUP BY hash
  • https://t.me/clickhouse_ru
    @396626229 #73467 07:52 PM, 03 Nov 2018
    Типа запаковать несколько колонок в хеш,
  • https://t.me/clickhouse_ru
    @396626229 #73468 07:52 PM, 03 Nov 2018
    Но из него же потом не достать значения
  • @z001ev #73469 07:53 PM, 03 Nov 2018
    колонки a,b,c,d тоже остались, они прочитаются уже после группировок
  • https://t.me/clickhouse_ru
    @396626229 #73470 07:53 PM, 03 Nov 2018
    Тут проблема, как я понимаю, в том что фильтрация с HAVING слишком поздно происходит
  • https://t.me/clickhouse_ru
    @396626229 #73471 07:55 PM, 03 Nov 2018
    А понимаю
  • https://t.me/clickhouse_ru
    @396626229 #73472 07:55 PM, 03 Nov 2018
    Это конечно заказ, но надо попробовать
  • https://t.me/clickhouse_ru
    @396626229 #73473 07:56 PM, 03 Nov 2018
    И результат будет неточный из-за коллизий
  • https://t.me/clickhouse_ru
    @396626229 #73474 07:56 PM, 03 Nov 2018
    Тьфу, не заказ а хак хотел написать
  • @z001ev #73475 07:58 PM, 03 Nov 2018
    ну есть еще и sipHash128 =) ее может хвтатить наверняка
  • https://t.me/clickhouse_ru
    @396626229 #73476 07:59 PM, 03 Nov 2018
    Ага
  • @kraskova #73477 07:59 PM, 03 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @396626229 #73478 08:01 PM, 03 Nov 2018
    Я еще думал, может ли это быть связано с тем, какие колонки в индекс добавлены.
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #73478 #73479 08:02 PM, 03 Nov 2018
    Это влияет на сортировку
  • https://t.me/clickhouse_ru
    @396626229 #73480 08:02 PM, 03 Nov 2018
    А на фильтрацию?
  • https://t.me/clickhouse_ru
    @396626229 #73481 08:04 PM, 03 Nov 2018
    Если бы все колонки были в индексе, мог бы clickhouse раньше применить HAVING фильтрацию?
  • https://t.me/clickhouse_ru
    @396626229 #73482 08:05 PM, 03 Nov 2018
    Чтобы не надо было так много держать в памяти?
  • https://t.me/clickhouse_ru
    Как ты применишь хэвинг фильтрацию, когда ещё не все данные посчитались подумай
  • https://t.me/clickhouse_ru
    @396626229 #73484 08:29 PM, 03 Nov 2018
    Да наверное никак
  • https://t.me/clickhouse_ru
    @396626229 #73485 08:30 PM, 03 Nov 2018
    Но индекс мог бы теоретически помочь понять, будет ли ещё что-то добавляться в какие-то группы
  • https://t.me/clickhouse_ru
    @396626229 #73486 08:30 PM, 03 Nov 2018
    И если нет, то сразу выбросить их
  • https://t.me/clickhouse_ru
    @Shegloff #73487 08:31 PM, 03 Nov 2018
    2 гига для современного смартфона уже маловато как бы :-)
  • https://t.me/clickhouse_ru
    @Shegloff #73488 08:34 PM, 03 Nov 2018
    Сделайте фильтрацию на стороне кода, если без хэвинг запрос отрабатывает
  • https://t.me/clickhouse_ru
    @95289798 #73489 08:34 PM, 03 Nov 2018
    Привет.
    А можно склонировать таблицу (схему) без явного указания движка новой таблицы ?
    CREATE ... AS SELECT ... хочет явного указания ENGINE
  • https://t.me/clickhouse_ru
    Нет без HAVING он конечно тоже не сработает. Я бы сильно удивился, по крайней мере
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #73489 #73491 08:37 PM, 03 Nov 2018
    Зачем
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #73490 #73492 08:38 PM, 03 Nov 2018
    Что-то мне кажется, что вариантов никаких, если у вас данные еще и расти будут
  • https://t.me/clickhouse_ru
    @95289798 #73493 08:39 PM, 03 Nov 2018
    У нас апликуха создает таблички в рантайме и хотелось бы чтобы она брала схему не из себя (кода, как сейчас делает) а из шаблон-таблицы
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #73490 #73494 08:41 PM, 03 Nov 2018
    Если вам кроме sum ничего больше не надо, можно попробовать разбить селект на несколько, а потом соединить результаты
  • https://t.me/clickhouse_ru
    Надо
  • https://t.me/clickhouse_ru
    @Shegloff #73496 08:42 PM, 03 Nov 2018
    Ну тогда 2 гига видимо это мало для ваших запросов
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #73493 #73497 08:44 PM, 03 Nov 2018
    Так у вас as select, откуда кх узнать какой движок выбрать?
  • https://t.me/clickhouse_ru
    @Shegloff #73498 08:44 PM, 03 Nov 2018
    Он за вас не знает, что вам надо, мемори или мержтри
  • https://t.me/clickhouse_ru
    @95289798 ↶ Reply to #73497 #73499 08:48 PM, 03 Nov 2018
    Я понимаю. Мне интересно было если можно как-то еще через QL создать клон таблицы. В документации ничего другого не нашел.
  • https://t.me/clickhouse_ru
    @Shegloff #73500 08:55 PM, 03 Nov 2018
    create table as table_template
    Insert into table select ...
  • https://t.me/clickhouse_ru
    @Shegloff #73501 08:55 PM, 03 Nov 2018
    Не канает?
  • @tychko #73502 09:02 PM, 03 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @IlyaSkriblovsky #73503 09:03 PM, 03 Nov 2018
    Глупый вопрос: а SELECT с лимитом гарантировано вернёт столько строк, сколько запрошено если в базе они есть? Не может вернуть меньше?
  • https://t.me/clickhouse_ru
    @95289798 ↶ Reply to #73501 #73504 09:09 PM, 03 Nov 2018
    Хм. Канает. Спасибо.
  • @garikanet #73505 10:15 PM, 03 Nov 2018
    Подскажите, у ноды кластера можно сменить IP? Через смену в config - все ок будет?
  • @70532431 ↶ Reply to #53211 #73506 10:50 PM, 03 Nov 2018
    Подскажите, а реплицируемым таблицам таким образом можно PK менять? нужно поменять местами столбцы в РК, ничего не добавлять/удалять.
    Если реплика одна пока. То есть таблица ReplicatedMergeTree, но по факту у неё копий нет.

    Есть надежда, что "не поддерживается" по причине того, что имеющиеся реплики могут рассинхронизироваться. Но если реплик нет и таблица ReplicatedMergeTree в одном экземпляре - то, может, всё же можно?
  • 04 November 2018 (17 messages)
  • https://t.me/clickhouse_ru
    @stufently #73507 05:27 AM, 04 Nov 2018
    Не, создайте новую и перелейте селект инсерт
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #73506 #73508 05:52 AM, 04 Nov 2018
    Местами в любом случае не поменять сейчас, так как это изменит порядок сортировки на который "все" завязано. Ограничение реплик в том, что они метаданные в ЗК хранят, а тот альтер вообще никак это не учитывает.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #73441 #73509 05:53 AM, 04 Nov 2018
    Это было бы хорошо:)
  • @robinzonishe #73510 06:37 AM, 04 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @ZakirovDamir #73512 10:14 AM, 04 Nov 2018
    можно ли вставлять комментарии в текст запроса?
  • https://t.me/clickhouse_ru
    @stufently #73513 10:15 AM, 04 Nov 2018
    насколько помню да, некоторые это в системах мониторинга используют, чтобы разделать запросы
  • Можно. Я диву дался, когда запрос отработал :) Единственное - не помню как это сделал
  • @sergey_v_zmin #73515 02:29 PM, 04 Nov 2018
    Joined.
  • @garikanet #73516 03:14 PM, 04 Nov 2018
    -- line text

    /* text */
  • @70532431 #73518 07:19 PM, 04 Nov 2018
    Есть ли какие-то известные проблемы с перименованием таблиц с движком ReplicatedMergeTree ?
  • @milovidov_an #73519 07:24 PM, 04 Nov 2018
    С переименованием проблем нет, но нужно иметь ввиду, что путь в ZooKeeper останется старым, и изменить его никак нельзя.
  • @70532431 ↶ Reply to #73519 #73520 07:26 PM, 04 Nov 2018
    Это значит, что если в будущем будут добавляться реплики, нужно создавать их явно указывая путь в зукипере, соответствующий имени таблицы на старых репликах до переименования?
  • @70532431 #73521 07:27 PM, 04 Nov 2018
    Или как старый путь может попортить ещё жизнь...
  • @milovidov_an #73522 07:36 PM, 04 Nov 2018
    Путь в ZooKeeper определяете вы сами при создании первой реплики. Остальные реплики создаются с тем же путём. Типично, что путь содержит имя таблицы. Тогда после переименования таблицы, в пути в ZooKeeper останется старое имя, и с этим ничего нельзя сделать. При добавлении новой реплики, указывается это же старое имя.
  • @70532431 #73523 07:38 PM, 04 Nov 2018
    Да, я как раз про это. У нас просто скрипты создают таблицы с зашитыми шаблонами путя, часть которого составляет имя таблицы. Спасибо!
  • @70532431 #73526 07:43 PM, 04 Nov 2018
    Предлагаю в чат добавить бота @Cyberdyne_Systems_bot для защиты от спама. Помогает на этапе добавления проверять, не бот ли добавившися.
    Имею позитивный опыт с этим ботом уже пару месяцев.
  • @264313911 #73527 08:20 PM, 04 Nov 2018
    Joined.
  • 05 November 2018 (158 messages)
  • https://t.me/clickhouse_ru
    Подтверждаю, в соседнем чате присутствует (Pro Telecom), ботов заворачивает при входе
  • https://t.me/clickhouse_ru
    @wawaka #73530 09:17 AM, 05 Nov 2018
    а зачем нужен kafka_row_delimiter если сообщения в кафке и так имеют границы?
  • https://t.me/clickhouse_ru
    @ifoton #73531 11:42 AM, 05 Nov 2018
    Подскажите а есть ли возможность создать таблицу так что бы во время вставки значения автоматически конвертировались с помощью функции. Например я вставляю UUID (fixedString32) а оно на лету с помощью UUIDStringToNum() превращалось в FixedString16?
  • @lapkofear #73532 11:45 AM, 05 Nov 2018
    Ну есть Materialized field, есть материальные вьюшки.
  • @lapkofear #73533 11:45 AM, 05 Nov 2018
    Ну и в самом insert вы тоже можете конвертить
  • @lapkofear #73534 11:46 AM, 05 Nov 2018
    если таких штук в таблице много, возможно есть смысл сделать мат. вью, иначе - лучше в инсерте
  • https://t.me/clickhouse_ru
    @ifoton #73535 11:50 AM, 05 Nov 2018
    Для Materialized field как я понимаю нужно что бы рядом было оригинальное поле. Мат вью тоже как то перебор, зачем мне еще одна таблица. Инсерт я делаю с помощью infi.clickhouse-orm, и не могу засунуть функцию туда.
  • @lapkofear #73536 11:51 AM, 05 Nov 2018
    советую вам отказыватся от всякого рода оберток при работе с КХ
  • @lapkofear #73537 11:51 AM, 05 Nov 2018
    больше боли чем профита будет
  • @lapkofear #73538 11:52 AM, 05 Nov 2018
  • https://t.me/clickhouse_ru
    @emakarov ↶ Reply to #73536 #73539 11:52 AM, 05 Nov 2018
    если понимать, что умеет tool, и для чего он, то почему бы и не воспользоваться удобными вещами? или все нужно самим писать всегда
  • @lapkofear #73540 11:55 AM, 05 Nov 2018
    Потому что так вам нужно знать только одну штуку - кликхаус, а так вам надо будет разбиратся кроме этого как к ниму еще прикрутить. Темболее у КХ есть очень много кастомных штук, которые прийдется каким-то образом дружить, чем собственно @ifoton уже и занимается
  • @dm_haiduchonak #73541 11:56 AM, 05 Nov 2018
    Joined.
  • @lapkofear #73542 11:57 AM, 05 Nov 2018
    Даже в исп. jdbc драйвера, который стандратней некуда уже, возникает такая куча непонятных проблем, что я даже от него отказался
  • https://t.me/clickhouse_ru
    @Shegloff #73543 12:06 PM, 05 Nov 2018
    При использовании функций в инсерте используется медленный sql-парсер, имейте ввиду
  • @lapkofear #73544 12:08 PM, 05 Nov 2018
    На моих данных разница была на порядок.
  • https://t.me/clickhouse_ru
    @Shegloff #73545 12:19 PM, 05 Nov 2018
    Без функций используется быстрый потоковый парсер
  • @vstakhov #73546 12:24 PM, 05 Nov 2018
    а можно клиенту кликхауса как-то открутить проверку сертификатов сервера? (я ведь вам уже говорил, что у нас совершенно долбанутая securrrity team...)
  • @vstakhov #73547 12:27 PM, 05 Nov 2018
    а еще, конечно, было бы неплохо отделять котлеты от мух и stdout от stderr, потому что потом приходится чистить csv от всякого мусора
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #73546 #73548 12:31 PM, 05 Nov 2018
    https://pocoproject.org/docs/Poco.Net.SSLManager.html
    verificationMode - none не работает?
  • @vstakhov #73549 12:32 PM, 05 Nov 2018
    это надо конфиг клиента сделать?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #73549 #73550 12:34 PM, 05 Nov 2018
    Да, что-то вроде

    <client>
    <verificationMode>none</verificationMode>
    <invalidCertificateHandler>
    <name>AcceptCertificateHandler</name>
    </invalidCertificateHandler>
    </client>
  • @vstakhov #73551 12:35 PM, 05 Nov 2018
    сейчас попробую, спасибо
  • https://t.me/clickhouse_ru
    А зачем? Если у вас самоподписанный сертификат то установите его в систему как доверенный и кликхаус будет адекватно его проверять и пропускать.
  • @vstakhov #73553 12:36 PM, 05 Nov 2018
    не помогло, user и password из конфига берет
  • @vstakhov ↶ Reply to #73552 #73554 12:36 PM, 05 Nov 2018
    у нас система управляется бандой рукожопых безумцев, так что это не вариант
  • @vstakhov #73555 12:37 PM, 05 Nov 2018
    и это не самоподписанный сертификат, что делает ситуацию еще более печальной
  • @vuliad #73556 12:37 PM, 05 Nov 2018
    Коллеги, всем привет.
    Какая-то странная ошибка, stats - distributed Table по MergeTree
    Запрос:
    select event_id,platform from stats where event_id='payment_real' and platform='ok' limit 1

    > DB::Exception: Block structure mismatch in UNION stream: different names of columns:
    event_id String String(size = 0), platform String String(size = 0)
    platform String String(size = 0), event_id String String(size = 0).
  • @vstakhov ↶ Reply to #73550 #73557 12:38 PM, 05 Nov 2018
    наверное, нужно так:

    <client>
    <openSSL>
    <client>
    <verificationMode>none</verificationMode>
    <invalidCertificateHandler>
    <name>AcceptCertificateHandler</name>
    </invalidCertificateHandler>
    </client>
    </openSSL>
    </client>
  • @vstakhov #73558 12:38 PM, 05 Nov 2018
    вот так работает
  • проверь что все колонки в таблицах, на которые смотрит distributed, содержат одинаковые колонки и в одинаковом порядке
  • https://t.me/clickhouse_ru
    18.14.11, 2018-10-29

    Исправлена ошибка Block structure mismatch in UNION stream: different number of columns в запросах с LIMIT. #2156
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #73557 #73561 12:45 PM, 05 Nov 2018
    А, точно, хорошо что работает )
  • @vuliad ↶ Reply to #73560 #73563 01:01 PM, 05 Nov 2018
    Ага, спасибо. Действительно совпало с моим обновлением схемы, думал я накосячил.... Обновил ноды в кластере - все ок
  • @vuliad ↶ Reply to #73560 #73564 01:01 PM, 05 Nov 2018
    Очень смущало, что select * from ... limit 1 работало
  • @VitalVas #73565 01:27 PM, 05 Nov 2018
    кто знает альтернативу "tableau", только бесплатную?
  • https://t.me/clickhouse_ru
    @Malikit1984 #73566 01:31 PM, 05 Nov 2018
    Кто нибудь сталкивался с проблемой расчета сум?
    Суть есть поле amount *.xxxx (4 знака после запятой) тип Float64 сумма этих чисел получается с какимто нереальным хвостом что приводит к большим расхождениям=( (round(Y, 4) не подходит=( )
  • https://t.me/clickhouse_ru
    @valyala ↶ Reply to #73566 #73567 01:34 PM, 05 Nov 2018
    Храните в базе целые числа, умноженные на 10000. После суммирования делите на 10000 - не будет потерь точности
  • https://t.me/clickhouse_ru
    @Malikit1984 #73568 01:34 PM, 05 Nov 2018
    Интересует причана потяри точности
  • https://t.me/clickhouse_ru
    @Malikit1984 #73569 01:35 PM, 05 Nov 2018
    Дело сложнее это выявилось на том примере который написал
  • https://t.me/clickhouse_ru
    >(round(Y, 4) не подходит=( )
    почему?

    Есть тип Decimal
  • https://t.me/clickhouse_ru
    @Malikit1984 #73571 01:35 PM, 05 Nov 2018
    Так хвост может быть больше
  • https://t.me/clickhouse_ru
    @valyala #73572 01:35 PM, 05 Nov 2018
    Причина в float64
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #73568 #73573 01:35 PM, 05 Nov 2018
    серьезно? )
  • https://t.me/clickhouse_ru
    Что может вылечить?
  • https://t.me/clickhouse_ru
    Абсолютно
  • @konstantin_mitjurin #73576 01:36 PM, 05 Nov 2018
    всем привет
  • https://t.me/clickhouse_ru
    @valyala ↶ Reply to #73574 #73577 01:36 PM, 05 Nov 2018
    Использовать int64 или decimal вместо float64
  • @konstantin_mitjurin #73578 01:36 PM, 05 Nov 2018
    как понять, что происходит с одной из нод кластера?
  • @konstantin_mitjurin #73579 01:36 PM, 05 Nov 2018
    вырубилась нода
  • @konstantin_mitjurin #73580 01:36 PM, 05 Nov 2018
    вернули в строй
  • @konstantin_mitjurin #73581 01:37 PM, 05 Nov 2018
    2018.11.05 16:34:01.365959 [ 15 ] <Error> metrics.server_metrics (Data): Found part /mnt/dbdisk/clickhouse//data/metrics/server_metrics/20181105_20181105_681025556_681025556_0
    2018.11.05 16:34:01.365966 [ 15 ] <Error> metrics.server_metrics (Data): Found part /mnt/dbdisk/clickhouse//data/metrics/server_metrics/20181105_20181105_681021788_681021788_0
    2018.11.05 16:34:01.365973 [ 15 ] <Error> metrics.server_metrics (Data): Found part /mnt/dbdisk/clickhouse//data/metrics/server_metrics/20181105_20181105_681023038_681023038_0
  • @konstantin_mitjurin #73582 01:37 PM, 05 Nov 2018
    в лог тоннами льется такая инфа
  • @konstantin_mitjurin #73583 01:37 PM, 05 Nov 2018
    ClickHouse client version 1.1.54164.
    Connecting to 127.0.0.1:9000.
    Code: 210. DB::NetException: Connection refused: (127.0.0.1:9000)
  • https://t.me/clickhouse_ru
    @valyala ↶ Reply to #73578 #73584 01:37 PM, 05 Nov 2018
    Посмотреть показания мониторинга и проверить логи :)
  • @konstantin_mitjurin #73585 01:37 PM, 05 Nov 2018
    я уже написал, что в логах
  • @konstantin_mitjurin #73586 01:37 PM, 05 Nov 2018
    я не понимаю, что происходит
  • @konstantin_mitjurin #73587 01:38 PM, 05 Nov 2018
    и почему нода не отвечает
  • Так написано же, что не может законектится.
  • @konstantin_mitjurin #73589 01:39 PM, 05 Nov 2018
    я не прошу перевести, что написано, спасибо с анлийским у меня нет проблем
  • @konstantin_mitjurin #73590 01:39 PM, 05 Nov 2018
    я прошу разработчик объяснить, что происходит с нодой
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #73587 #73591 01:40 PM, 05 Nov 2018
    Стратует, с партициями по дням для этого требуется какое-то время
  • https://t.me/clickhouse_ru
    Вы не написали примера.
    Потеря теоритически может быть если очень быть если складывать очень, ну очень большие числа, с маленькими.
  • https://t.me/clickhouse_ru
    Все числа не имеют огромных значений
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @Malikit1984 #73596 01:43 PM, 05 Nov 2018
    Хотя фактическое значение суммы 12.7776
  • https://t.me/clickhouse_ru
    @Malikit1984 #73597 01:44 PM, 05 Nov 2018
    максимальное значение
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @orantius #73599 01:45 PM, 05 Nov 2018
    если вы хотите что-то складывать и хотите не терять точность, то не надо использовать float32/64
  • https://t.me/clickhouse_ru
    Это я уже понял
  • Что нужно знать про арифметику с плавающей запятой

    В далекие времена, для IT-индустрии это 70-е годы прошлого века, ученые-математики (так раньше назывались программисты) сражались как Дон-Кихоты в неравном бою...

  • https://t.me/clickhouse_ru
    @Malikit1984 #73602 01:47 PM, 05 Nov 2018
    Видимо только Decimal спасет=(
  • https://t.me/clickhouse_ru
    храните все как целые числа умножайте на нужное количество знаков после запятой
  • https://t.me/clickhouse_ru
    @Malikit1984 #73604 01:48 PM, 05 Nov 2018
    знаков может быть больше
  • @lapkofear #73605 01:48 PM, 05 Nov 2018
    ну так умножте на заведомо большее число. Мы например деньги храним умноженные на 1кк
  • https://t.me/clickhouse_ru
    @valyala ↶ Reply to #73590 #73606 01:49 PM, 05 Nov 2018
    Кликхаус считывает данные после рестарта. См. https://github.com/yandex/ClickHouse/blob/98c2ed582cd974882e2eec5573fb2dffa1ecb44b/dbms/src/Storages/StorageMergeTree.cpp . Нужно немного подождать, пока он дочитает все данные. Если у вас много таких строк в логах, то, скорее всего, вы шлете слишком много отдельных инсерт-запросов. кликхаус это не любит. Попробуйте объединить инсерт запросы в более крупные
    yandex/ClickHouse

    ClickHouse is a free analytic DBMS for big data. Contribute to yandex/ClickHouse development by creating an account on GitHub.

  • yandex/ClickHouse

    ClickHouse is a free analytic DBMS for big data. Contribute to yandex/ClickHouse development by creating an account on GitHub.

  • @lapkofear #73608 01:55 PM, 05 Nov 2018
    т.к. уровень лога не тот
  • @lapkofear #73609 01:56 PM, 05 Nov 2018
    Похоже на то, что такое сыпется при восстановлении поломаного part
  • https://t.me/clickhouse_ru
    Видимо так и придется делать=( Но это прямо костыль
  • https://t.me/clickhouse_ru
    Лет 15 назад в сбербанковской базе рубли хранились умноженные на 10000. Хватало.
  • @lapkofear #73612 01:58 PM, 05 Nov 2018
    ну не сильно элегантно, согласен.
  • https://t.me/clickhouse_ru
    это основной рабочий вариант там где нет типа деньги
  • https://t.me/clickhouse_ru
    ???
    select toDecimal128('0.25',38)+toDecimal128('0.25',38)
    ┌─plus(toDecimal128('0.25', 38), toDecimal128('0.25', 38))─┐
    │ 0.50000000000000000000000000000000000000 │
    └──────────────────────────────────────────────────────────┘
  • https://t.me/clickhouse_ru
    @valyala #73615 02:03 PM, 05 Nov 2018
    Слышал, что decimal в кх подглючивает, поэтому я бы лучше использовал int*
  • https://t.me/clickhouse_ru
    -1.53764733841876984180947473102331183104
  • https://t.me/clickhouse_ru
    @Malikit1984 #73617 02:04 PM, 05 Nov 2018
    Стало еще интреснее
  • https://t.me/clickhouse_ru
    @Malikit1984 #73618 02:04 PM, 05 Nov 2018
    =))))
  • https://t.me/clickhouse_ru
    @Malikit1984 #73619 02:05 PM, 05 Nov 2018
    Хотя 12.7776=)))
  • https://t.me/clickhouse_ru
    @Malikit1984 #73620 02:05 PM, 05 Nov 2018
    Я понял что поменять правда данные придется перезаливать но это не страшно=)))
  • https://t.me/clickhouse_ru
    Завтра буду эксперементировать=)
  • https://t.me/clickhouse_ru
    это наверняка у вас в клиенте
    что с
    select toString(toDecimal128('0.25',38)+toDecimal128('0.25',38))
  • https://t.me/clickhouse_ru
    @Malikit1984 #73623 02:07 PM, 05 Nov 2018
    =)
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @Malikit1984 #73625 02:07 PM, 05 Nov 2018
    Если бы=(
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    ну и все правильно, попробуйте понять что такое float и что 1/4 например бесконечная периодическая дробь в binary
  • https://t.me/clickhouse_ru
    @den_crane #73628 02:10 PM, 05 Nov 2018
    чем вам round у флоат не угодил?
    decimal и float это две стороны одной медали и там и тут жопа
  • https://t.me/clickhouse_ru
    @ifoton ↶ Reply to #73565 #73629 02:12 PM, 05 Nov 2018
    Можно Power BI попробывать, бесплатно для персонального использования.
  • https://t.me/clickhouse_ru
    @anomianne #73630 02:29 PM, 05 Nov 2018
    А в какой версии clickhouse появилась оптимизация с фильтрацией подзапроса с условием where из надзапроcа?
  • https://t.me/clickhouse_ru
    @kostiantynv #73631 02:33 PM, 05 Nov 2018
    Добрый день, что у Кликхаус с консистентностью Materialized View при вставке в таблицу-донор?
  • @70532431 ↶ Reply to #73630 #73632 02:34 PM, 05 Nov 2018
    Вы про prewhere?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #73631 #73634 02:37 PM, 05 Nov 2018
    Ничего
  • https://t.me/clickhouse_ru
    @kostiantynv #73635 02:38 PM, 05 Nov 2018
    И второй вопрос: есть набор колонок по которым нужен быстрый поиск, при этом кажется естественно их все в "ключ сортировки" положить - но порядок по одному набору колонок никак не коррелирует с другой. Не лучше ли тут завести materialized view в котором был бы другой набор колонок в "ключе сортировки"
  • Да. Именно для этого они и созданы
  • https://t.me/clickhouse_ru
    в общем-то ни в какой, не доделано. И выключили 18.14.10, 2018-10-23
    enable_optimize_predicate_expression выключена по умолчанию.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #73630 #73638 02:39 PM, 05 Nov 2018
    Для view https://github.com/yandex/ClickHouse/blob/master/CHANGELOG_RU.md#clickhouse-release-181213-2018-09-10, но оно поломано было, в мастере поправили
  • https://t.me/clickhouse_ru
    Нет, про автоматическую оптимизацию select * from (select * from tbl) where a = 1;
  • @lapkofear #73640 02:40 PM, 05 Nov 2018
    Можно сделать "универсальный" индекс, например по времени
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #73639 #73641 02:40 PM, 05 Nov 2018
    Нет такой
  • https://t.me/clickhouse_ru
    @kshvakov #73642 02:40 PM, 05 Nov 2018
    Сорян
  • https://t.me/clickhouse_ru
    @anomianne #73643 02:41 PM, 05 Nov 2018
    Ок
  • https://t.me/clickhouse_ru
    Допустим, но могу ли я быть уверен в том что данные попавшие в таблицу попадут в MV ? Это всё работает в стиле eventual consistency ? Или всё же есть шанс "потерять" часть данных ? Так что в таблице доноре они есть - а в вьюхе нет?
  • Не можете, т.к. они вставляются post-insert. В моем ,например, случае, когда идут милионы событий в час, не критично если при сбое, пропадет несколько тысяч
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #73644 #73646 02:42 PM, 05 Nov 2018
    Нет, данные могут разьехаться
  • https://t.me/clickhouse_ru
    да есть оно
    set enable_optimize_predicate_expression = 1;
    select count() from (select * from part_test prewhere V>1000) where A=700;
    1 rows in set. Elapsed: 0.053 sec. Processed 10.15 million rows, 162.40 MB (189.79 million rows/s., 3.04 GB/s.)

    set enable_optimize_predicate_expression = 0;
    select count() from (select * from part_test prewhere V>1000) where A=700;
    ^C
    23%Cancelling query.
    Ok.
    Query was cancelled.

    0 rows in set. Elapsed: 68.444 sec. Processed 2.33 billion rows, 37.22 GB (33.99 million rows/s., 543.82 MB/s.)
  • https://t.me/clickhouse_ru
    enable_optimize_predicate_expression не про view, оно "переписывает" запрос, view частный случай
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #73648 #73649 02:52 PM, 05 Nov 2018
    Ага, нашел, спасибо
  • https://t.me/clickhouse_ru
    @ikostukovski #73650 02:55 PM, 05 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    Подскажите как поддерживать консистентность вручную ?
  • https://t.me/clickhouse_ru
    сама таблица тоже не гарантирует консистентность и атомарность инсерт, какая разница-то?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #73651 #73653 03:05 PM, 05 Nov 2018
    Никак, мы пишем в копии таблиц, проверяем что все сходиться и потом перемещаем партиции (раз в сутки), для реалтайма просто вьюхи, не сильно критично что что-то поедет
  • https://t.me/clickhouse_ru
    @kshvakov #73654 03:06 PM, 05 Nov 2018
    Вообще некий аналог транзакций рассматривался, там есть сложности и не понятно кто и когда возьмется делать
  • https://t.me/clickhouse_ru
    @molo4ko007 #73655 03:16 PM, 05 Nov 2018
    Вроде помню, что можно было делать PARTITION BY (), сейчас попробовал - не получается
  • https://t.me/clickhouse_ru
    @molo4ko007 #73656 03:16 PM, 05 Nov 2018
    киньте плз пример
  • https://t.me/clickhouse_ru
    @kshvakov #73657 03:16 PM, 05 Nov 2018
    PARTITION BY toYYYYMM(Date)
  • https://t.me/clickhouse_ru
    @molo4ko007 #73658 03:17 PM, 05 Nov 2018
    нет, я имею в виду именно пустой синтаксис
  • https://t.me/clickhouse_ru
    @den_crane #73659 03:17 PM, 05 Nov 2018
    by tuple()
  • https://t.me/clickhouse_ru
    @den_crane #73660 03:17 PM, 05 Nov 2018
    но можно опустить весь partition by, будет то же самое
  • https://t.me/clickhouse_ru
    @molo4ko007 #73661 03:17 PM, 05 Nov 2018
    да!
  • https://t.me/clickhouse_ru
    ага
  • https://t.me/clickhouse_ru
    @molo4ko007 #73663 03:18 PM, 05 Nov 2018
    кстати, на последней версии вот эта простыня, которая вылазит, если неправильно таблицу создаешь, все еще дает указания в старом формате
  • https://t.me/clickhouse_ru
    @molo4ko007 #73664 03:19 PM, 05 Nov 2018
    вот эта
    https://github.com/yandex/ClickHouse/blob/master/dbms/src/Storages/MergeTree/registerStorageMergeTree.cpp#L229
    yandex/ClickHouse

    ClickHouse is a free analytic DBMS for big data. Contribute to yandex/ClickHouse development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #73664 #73665 03:20 PM, 05 Nov 2018
    PR сделайте ;)
  • https://t.me/clickhouse_ru
    @molo4ko007 #73666 03:20 PM, 05 Nov 2018
    угу
  • https://t.me/clickhouse_ru
    @den_crane #73667 03:48 PM, 05 Nov 2018
    хаха, понадобилось заснуть на 60 сек.
    select sleep(3) from numbers(20) settings max_block_size = 1
  • @vstakhov #73669 04:38 PM, 05 Nov 2018
    а есть ли какой-то умный способ сделать нечто типа корреляционного анализа: у нас есть набор массивов [x1, x2... xn] , [y1, y2, ... yn] и нужно понять, сколько таких массивов, где есть символ X, но нет символа Y, где есть символ Y, но нет символа X, и где есть оба символа
  • @vstakhov #73670 04:39 PM, 05 Nov 2018
    ну, то есть arrayExists и arrayAll эту задачу как-то порешают, но не уверен, что это лучший способ
  • @mmmhh93 #73672 05:14 PM, 05 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @govori_da #73673 06:03 PM, 05 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    Вам обратный индекс нужен
  • @Shazo_Rus #73677 08:10 PM, 05 Nov 2018
    Может кто подсказать, в зукипере для КХ стали появляться постоянные сообщения:

    2018-11-05 20:06:25,261 - INFO [ProcessThread(sid:1 cport:-1)::PrepRequestProcessor@598] - Got user-level KeeperException when processing sessionid:0x166e52f8b090001 type:multi cxid:0x1d2b01 zxid:0x1b00160522 txntype:-1 reqpath:n/a aborting remaining multi ops. Error Path

    Перезапуск не помогает, может кто уже сталкивался?
  • https://t.me/clickhouse_ru
    @molo4ko007 #73678 08:24 PM, 05 Nov 2018
    @den_crane может, помните, мы обсуждали как-то, что кросс-репликация не очень хорошо вписывается в модель использования кх и вы сказали, что много кто держит параллельно-реплицируемые кластеры. А как в таком случае обрабатывается выход машины из строя?
  • https://t.me/clickhouse_ru
    @Svetlana_Neotech #73680 08:59 PM, 05 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @galichev #73681 09:05 PM, 05 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    я не это сказал (никто особо не экономит и не парится что запрос выполняется на половине(трети) нод, когда запросов одновременно 2, это уже не проблема), но это не важно, в чем вопрос?

    предположим есть 3 железки с 6(3*2) виртуалками.
    node1 : shard1_0, shard3_1
    node2: shard2_0, shard1_1
    node3: shard3_0, shard2_1

    селекты идут к трем железкам, т.е. да придется сделать дистрибьютид таблицу чтобы ходила в только в shard0 (для максимальной производительности), и еще одну резервную дистрибьютид чтобы ходила во все, например в другой базе данных, т.е. называться эта дистрибьютид таблица будет также например.

    умерла node2: shard2_0, shard1_1, есть shard2_1 и shard1_0, делаем фолбек на другое соединение, а там прописана другая бд, и там другая дистрибьютид которая ходит в 6 КХ (в 4 потому что 2 померло).
  • https://t.me/clickhouse_ru
    @molo4ko007 #73683 09:27 PM, 05 Nov 2018
    >придется сделать дистрибьютид таблицу чтобы ходила в только в shard0
    а как это сделать? кластер сконфигурировать второй?
  • https://t.me/clickhouse_ru
    да, конечно.
  • https://t.me/clickhouse_ru
    @molo4ko007 #73685 09:31 PM, 05 Nov 2018
    ага, понял
  • https://t.me/clickhouse_ru
    @den_crane #73686 09:32 PM, 05 Nov 2018
    кластеров же много может быть, у меня каждая нода КХ -- член 5 кластеров (есть например таблицы дублированные на все ноды кластера, без шардов)
  • https://t.me/clickhouse_ru
    это я вспомнил просто этот разговор, к тому, что вы еще раньше говорили
    >просто у всех нормальные реплики, знаю товарищей у которых цать шардов * 3 реплики.
  • https://t.me/clickhouse_ru
    @molo4ko007 #73688 09:33 PM, 05 Nov 2018
    прочитал как “никто не кросс-реплицирует”
  • https://t.me/clickhouse_ru
    ну ок, путаница какая-то. Я вам рассказывал что никто не делает кросс-реплицию, у всех все просто, запрос выполняется половиной железок. В этом случае все просто
    4 железки 2*2, дистрибьютид накрывает все 4, в случае выхода из строя любой ноды, дистрибьютид таблица все сделает сама, просто будет ходить(писать) в живой шард.
  • https://t.me/clickhouse_ru
    @alexanderzaitsev #73690 09:37 PM, 05 Nov 2018
    1) Кросс-репликация двойную нагрузку на запись и мерж создает. Поэтому если система много пишет, то лучше ее избегать.
    2) В кросс-репликации не работает распределенный DDL
  • https://t.me/clickhouse_ru
    @molo4ko007 #73691 09:42 PM, 05 Nov 2018
    А если держать два набора (например, 6 машин, по 3 в кластере с параллельной репликацией и еще один изо всех 6 машин)?
    Назовем эти кластеры А, Б и АБ. Тогда я пишу только в А (с фейловером на Б, затем на АБ, или сразу на АБ - неважно), читаю из А и Б, при этом могу в Б позволять какие угодно запросы, даже рискуя вылететь по ООМ и т.д.?
  • https://t.me/clickhouse_ru
    @molo4ko007 #73692 09:43 PM, 05 Nov 2018
    Хотя мне @den_crane открыл глаза, что независимо от того, что где лежит, я всегда смогу наделать подходящих кластеров
  • https://t.me/clickhouse_ru
    так все и делают. Пишем в одном месте, стараемся читать из другого, и у меня например автоматически это получается, потому что есть параметр nearest_hostname и я хосты называю аккуратно.

    пишем
    host0-1 --- shard0
    host0-2 --- shard1
    host0-3 --- shard2

    (читаем)
    host1-1 --- shard0
    host1-2 --- shard1
    host1-3 --- shard2
  • 06 November 2018 (187 messages)
  • https://t.me/clickhouse_ru
    @wawaka #73695 04:58 AM, 06 Nov 2018
    подскажите, как сделать mat view из kafka, чтобы при выходе из строя одной машины загрузка продолжалась на другой? пока у меня получилось только с одной машины загружать
  • @797993070 #73697 05:29 AM, 06 Nov 2018
    Joined.
  • @795970972 #73698 05:29 AM, 06 Nov 2018
    Joined.
  • @690210905 #73702 06:26 AM, 06 Nov 2018
    Joined.
  • @726370678 #73703 06:26 AM, 06 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @leonid_enov #73706 07:49 AM, 06 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Sablast #73707 08:56 AM, 06 Nov 2018
    коллеги, есть ли в КХ возможность выбрать названия столбцов по условию?
  • https://t.me/clickhouse_ru
    @Imaskar #73708 08:58 AM, 06 Nov 2018
    есть таблица system.columns, там есть названия столбцов. но запрос на стороне приложения всё равно лепить надо
  • https://t.me/clickhouse_ru
    @Sablast #73709 08:58 AM, 06 Nov 2018
    про system.columns в курсе, думал может есть возможность какой то внутренней обвязки
  • https://t.me/clickhouse_ru
    @Sablast #73710 09:05 AM, 06 Nov 2018
    хотелось чего то вида:
    WITH (SELECT name FROM system.columns WHERE...) as columns SELECT columns FROM table
  • @odainic #73711 10:16 AM, 06 Nov 2018
    #вопрос
    А есть ли в CH какой нить аналог DATEDIFF("units", StartDateTime, EndDateTime)?
  • https://t.me/clickhouse_ru
    Есть
    SELECT dateDiff('year', toDate('2017-12-31'), toDate('2016-01-01'))

    https://github.com/yandex/ClickHouse/search?l=SQL&q=DATE
    yandex/ClickHouse

    ClickHouse is a free analytic DBMS for big data. Contribute to yandex/ClickHouse development by creating an account on GitHub.

  • @odainic #73713 10:20 AM, 06 Nov 2018
    О. Спасибо)
  • @dmitry_shepelev #73714 10:38 AM, 06 Nov 2018
    Добрый день, коллеги. А clickhouse поддерживает синтаксис соотнесенных подзапросов, где можно делать подзапросы, полагаясь на внешнюю таблицу?
    http://www.quizful.net/post/sql-subqueries - как пример в обычном sql
    SQL Подзапросы

    Подзапросы, внутренние или вложенные запросы – есть не что иное, как запрос внутри запроса. Обычно, подзапрос (subquery) используется в конструкции WHERE. В статье рассказывается об использовании подзапросов, приводятся примеры на SQL, а также рассказывается о некоторых нюансах использования подзапросов.

  • https://t.me/clickhouse_ru
    В КХ нельзя сделать "Соотнесенный подзапрос"
  • https://t.me/clickhouse_ru
    @beeblebrox #73716 10:49 AM, 06 Nov 2018
    Привет. А в версии 18.14.12-stable есть какие-то известные грабли?
    Читая этот канал, заметил что иногда в новом релизе что-нибудь отваливается и не все стабильные релизы созданы равными...
  • @Shazo_Rus #73717 10:50 AM, 06 Nov 2018
    Может сегодня кто подскажет по ошибке?, вылезает постоянно ошибка в зукипере:

    2018-11-06 09:58:28,266 - INFO [ProcessThread(sid:1 cport:-1)::PrepRequestProcessor@598] - Got user-level KeeperException when processing sessionid:0x166e52f8b090006 type:multi cxid:0x9408a zxid:0x1b0133103f txntype:-1 reqpath:n/a aborting remaining multi ops. Error Path:/clickhouse/tables/sh02/nginx_01/replicas/replica_2/parts/20181106_192217_192507_59 Error:KeeperErrorCode = NodeExists for /clickhouse/tables/sh02/nginx_01/replicas/replica_2/parts/20181106_192217_192507_59
  • интересно, а планируется ли поддержка этого в roadmap?
  • @mmmhh93 #73719 11:04 AM, 06 Nov 2018
    А что в соединение нельзя перенести?
  • @mmmhh93 #73720 11:04 AM, 06 Nov 2018
    условие
  • @dmitry_shepelev #73721 11:05 AM, 06 Nov 2018
    можете пояснить, про что вы говорите
  • @mmmhh93 #73722 11:08 AM, 06 Nov 2018
    Если я правильно понял, то есть запрос в духе
    SELECT p.product_name FROM product p
    WHERE p.product_id = (SELECT o.product_id FROM order_items o
    WHERE o.product_id = p.product_id);
  • https://t.me/clickhouse_ru
    WHERE p.product_id IN ( SELECT ...
  • https://t.me/clickhouse_ru
    Если я правильно понял, конечно...
  • @mmmhh93 #73725 11:13 AM, 06 Nov 2018
    что равносильно
    SELECT p.product_name FROM product p Inner JOIN order_items
    WHERE order_items.product_id = p.product_id
  • @mmmhh93 #73726 11:13 AM, 06 Nov 2018
    как-то так
  • @mmmhh93 #73727 11:13 AM, 06 Nov 2018
    я давно sql не писал ) Только присматриваюсь к клик хаусу
  • https://t.me/clickhouse_ru
    Сходил-таки по ссылке. Лично у меня графана получает список для графиков top5 ровно так, как указано в примере для студентов.
  • https://t.me/clickhouse_ru
    А вот соотнесённых - разве что действительно через join...
  • я понял вашу мысль
  • @mmmhh93 #73731 11:17 AM, 06 Nov 2018
    Я вообще всегда считал, что вложенный запрос разворачивается во внутренний запрос под капотом
  • @mmmhh93 #73732 11:18 AM, 06 Nov 2018
    Хотя может и не всегда и не для всех СУБД
  • @703833656 #73733 11:26 AM, 06 Nov 2018
    Joined.
  • @707172471 #73735 11:26 AM, 06 Nov 2018
    Joined.
  • @704472780 #73737 11:27 AM, 06 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    индексов нет, коррелированный подзапрос будет работать жутко медленно, а словари делают это жутко быстро.
  • @vstakhov ↶ Reply to #73675 #73740 12:05 PM, 06 Nov 2018
    эм, а что-то подобное реализуемо в сабже?
  • @vstakhov #73741 12:07 PM, 06 Nov 2018
    ну и не очень понятно, как он поможет
  • https://t.me/clickhouse_ru
    @crzmshrm #73742 01:02 PM, 06 Nov 2018
    Привет. Вопрос про ключ шардирования. Есть таблица с индексом по (date, user_id). Нагрузка от каждого юзера приходит очень разная, при этом их не сильно много, распределение по юзеру будет неравномерным. Как сделать шардирование, чтобы оно ускорило выполнение запросов для конкретного юзера: то есть данные одного юзера были размазаны по шардам. Что делать: шардировать по дате или подмешивать какой-то случайный элемент в ключ шардирования? Как это сделать правильно?
  • https://t.me/clickhouse_ru
    Что такое шардирование? В КХ под этим понимают размазывание по разным нодам и наоборот надо стараться что бы данные одного юзера лежали как можно ближе желательно на одной ноде.

    И сколько юзеров? Десять или миллиард? Ничего подмешивать не надо, это наоборот ухудшит.
  • https://t.me/clickhouse_ru
    @crzmshrm #73744 01:15 PM, 06 Nov 2018
    Юзеров несколько тысяч, активных - сотня, но основную нагрузку создают единицы
  • https://t.me/clickhouse_ru
    @crzmshrm #73745 01:16 PM, 06 Nov 2018
    То есть с помощью шардирования ускорить выполнение запросов для отдельного юзера можно даже не пытаться?
  • https://t.me/clickhouse_ru
    Сколько у вас нод КХ? Что такое шардирование в вашем понимании?
  • https://t.me/clickhouse_ru
    @crzmshrm #73747 01:17 PM, 06 Nov 2018
    3 ноды
  • https://t.me/clickhouse_ru
    а как данные заливаются / шардируются?
  • https://t.me/clickhouse_ru
    @crzmshrm #73749 01:19 PM, 06 Nov 2018
    Пока они заливаются в одну ноду, сейчас переезжаем на кластер
  • @medov_alexey #73750 01:20 PM, 06 Nov 2018
    Добрый день, скажите пожалуйста в последних версиях ClickHouse уже появился нормальный update и delete ?
  • https://t.me/clickhouse_ru
    нормального никогда не будет ,а так да уже есть давненько
  • и delete и update ?
  • https://t.me/clickhouse_ru
    @stufently #73753 01:21 PM, 06 Nov 2018
    да
  • Спасибо !
  • https://t.me/clickhouse_ru
  • Благодарю !
  • https://t.me/clickhouse_ru
    Запросы всегда охватывает данные одного пользователя? Я бы попробовал order by user_id, date. А шардировал бы или рандомом или по пользователю.
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #73758 01:24 PM, 06 Nov 2018
    Добрый день. Есть типичный вопрос новичка. Делаем небольшую базу для аналитики. На 1 ноде нормально все поднялось в связке fluentd, zoo, kafka, CH. Хотим поднять на второй ноде сделать реплику. правильно ли я понимаю что на 2й ноде надо поднять zoo+CH, а на 1й указать в настройках адрес zoo со второй ноды?
  • https://t.me/clickhouse_ru
    @crzmshrm ↶ Reply to #73757 #73759 01:24 PM, 06 Nov 2018
    Фильтр по дате присутствует всегда, по юзеру в большинстве случаев
  • https://t.me/clickhouse_ru
    тогда я бы точно попробовал order by user_id, date
  • https://t.me/clickhouse_ru
    А у вас "главный"zoo где должен быть? На какой ноде? Вы же понимаете, что в общем случае нужно нечетное кол-во zoo-инстансов?
  • https://t.me/clickhouse_ru
    нет , если балуетесь используйте один зукипер
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #73763 01:28 PM, 06 Nov 2018
    то есть достаточно подключить 2ю ноду к тому же zoo, который на 1й ноде? и реплики должны работать? Про отказоустойчивость сейчас не говорим
  • https://t.me/clickhouse_ru
    @crzmshrm ↶ Reply to #73760 #73764 01:29 PM, 06 Nov 2018
    понял, спасибо!
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #73763 #73765 01:30 PM, 06 Nov 2018
    Да
  • https://t.me/clickhouse_ru
    репликация работает на уровне таблиц, каждая таблица реплицирует саму себя как написано в ddl, обмениваясь информацией через зукипер с такой же таблицей. Сам КХ про репликацию ничего не знает и делать ничего не будет.
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #73767 01:31 PM, 06 Nov 2018
    всем спасибо, будем пробовать
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #73767 #73768 01:32 PM, 06 Nov 2018
    Можете и на одном сервере попробовать, в КХ можно сделать реплику на тойже машине )
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #73769 01:33 PM, 06 Nov 2018
    не, для внутренних задач хочу 1 ноду, куда будт приходить данные. На второй реплика. И тяжелые запросы будут делать на реплике
  • https://t.me/clickhouse_ru
    Да, всё так. Только для репликации нужно чтобы ноды КХ видели друг друга по 9005-му порту (репликация работает по отдельному http-порту)
  • https://t.me/clickhouse_ru
    это хорошее уточнение, спасибо
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #73770 #73772 01:38 PM, 06 Nov 2018
    9009
  • https://t.me/clickhouse_ru
    +1. Извиняюсь, это у меня такой порт для репликации. По умолчанию - 9009. Спасибо
  • https://t.me/clickhouse_ru
    @salttan ↶ Reply to #73717 #73776 02:29 PM, 06 Nov 2018
    а в логах КХ что?
  • Довольно много сообщений, корреляцию между событиями пока не удалось выявить. Данные сообщения в зукипере появляются для совершенно разных таблиц с репликацией.
  • https://t.me/clickhouse_ru
    @salttan ↶ Reply to #73777 #73778 02:32 PM, 06 Nov 2018
    поищите в логах КХ 20181106_192217_192507_59
  • @769146442 #73782 02:36 PM, 06 Nov 2018
    Joined.
  • по аналогичному номеру, но более свежой ошибке в зукипере:

    2018.11.06 14:32:59.538339 [ 81 ] {} <Information> replica_1..inner.nginx_v01 (StorageReplicatedMergeTree): The part /clickhouse/tables/sh03/nginx_v01/replicas/replica_2/parts/20181106_283974_284971_259 on a replica suddenly appeared, will recheck checksums
  • https://t.me/clickhouse_ru
    @salttan #73784 02:36 PM, 06 Nov 2018
    а потом?
  • https://t.me/clickhouse_ru
    @baltazorbest #73785 02:37 PM, 06 Nov 2018
    Приветствую. Подскажите пожалуйста, можно ли как то для словаря сделать более сложный запрос? А именно с join
  • Сейчас лог в режиме info, видимо необходим trace. это единственная строчка с этим номером ("0181106_283974_284971_259").
  • https://t.me/clickhouse_ru
    @baltazorbest #73787 02:42 PM, 06 Nov 2018
    или придется использовать 2 словаря для этого?
  • https://t.me/clickhouse_ru
    @baltazorbest #73788 02:43 PM, 06 Nov 2018
    что то типа: dictgetstring(name, attr, dictgetint64(name, attr, column)) ?
  • https://t.me/clickhouse_ru
    @chertus ↶ Reply to #73785 #73789 02:45 PM, 06 Nov 2018
    есть движок, который представляет словать как обычную таблицу https://clickhouse.yandex/docs/ru/operations/table_engines/dictionary/
  • https://t.me/clickhouse_ru
    @baltazorbest #73790 02:46 PM, 06 Nov 2018
    и потом получается делать join внутри запроса в КХ?
  • https://t.me/clickhouse_ru
    @chertus #73791 02:46 PM, 06 Nov 2018
    по идее должно :)
  • https://t.me/clickhouse_ru
    @baltazorbest #73792 02:47 PM, 06 Nov 2018
    хм, может плохо выразился
  • https://t.me/clickhouse_ru
    @baltazorbest #73793 02:48 PM, 06 Nov 2018
    мне нужно что бы словарь обращался к mysql не по select column from table where id=X а например select a.column from table b join table2 a on a.id = b.table2_id where b.id=X
  • https://t.me/clickhouse_ru
    @salttan #73794 02:50 PM, 06 Nov 2018
    сделайте view в MySQL
  • Включил trace, по аналогичной ошибке нашел сообщения на двух узлах: https://pastebin.com/QryXkJ9v
  • https://t.me/clickhouse_ru
    так похоже у вас словарь с ключом tuple , используйте complex словари
    будет getdict ( dict, attr, (55555,'ooo'))
  • Настроена кросс репликация если что. Один шард на двух узлах c default базой replica_1 и replica_2. Ошибки стали появляться лишь в птяницу, до этого без ошибок. В пятницу перезапускали пару узлов, при этом зукипер останавливался, данные переносились в другую папку и зукипер запускался вновь.
  • https://t.me/clickhouse_ru
    @salttan ↶ Reply to #73795 #73799 03:00 PM, 06 Nov 2018
    Тут написано, что две реплики выполняли мерж, и когда первая закончила, она неожиданно обнаружила уже готовый парт.
    Видимо, скачала со второй. Про это тоже в логе сообщения должны быть
  • @Shazo_Rus #73800 03:01 PM, 06 Nov 2018
    Это весь греп. Я так понимаю, это вполне возможная и нормальная ситуцация. Почему тогда не нравится зукиперу?
  • @362966306 #73801 03:06 PM, 06 Nov 2018
    добрый вечер, коллеги.
    кто сталкивался с кейсом даунгрейда кх?
    есть ли бестпрактис и гарантия, что все заведется обратно?
    мне нужно обновиться с 1.1.54343 до 18.14.12 и хочется быть уверенным, что в случае проблем можно будет откатиться
  • https://t.me/clickhouse_ru
    нет, поле в КХ одно
  • https://t.me/clickhouse_ru
    view в mysql зло 🙂 особенно на 10млн+ строк в мускуле , как минимум в 5.5 было так, в 5.7 не тестировал вьюхи
  • https://t.me/clickhouse_ru
    ClickHouse release 18.4.0, 2018-07-28
    Настройка use_minimalistic_checksums_in_zookeeper таблиц семейства ReplicatedMergeTree включена по-умолчанию. Эта настройка была добавлена в версии 1.1.54378, 2018-04-16. Установка версий, более старых, чем 1.1.54378, становится невозможной.
  • https://t.me/clickhouse_ru
    какой бред
  • https://t.me/clickhouse_ru
    @Unkledolan #73806 03:15 PM, 06 Nov 2018
    Привет, какой самый быстрый способ изменить ключ сортировки? create table select from? дамп и обратная заливка?
  • https://t.me/clickhouse_ru
    @mary_fischer #73807 03:17 PM, 06 Nov 2018
    Привет! Сделали запрос drop table на distributed таблицу, и он перешел в background. Можно ли его форсированно выполнить или отменить?
  • https://t.me/clickhouse_ru
    >create table select from
    insert ... select
  • https://t.me/clickhouse_ru
    он выполнится когда закончатся длинные select к distributed
  • https://t.me/clickhouse_ru
    А если таких select нет?
  • https://t.me/clickhouse_ru
    одна из черепашек врет.
  • https://t.me/clickhouse_ru
    Нашли, правда есть
  • https://t.me/clickhouse_ru
    Действительно, кильнули select, и дроп прошёл. Спасибо!
  • https://t.me/clickhouse_ru
    @frenkyoptic #73814 03:32 PM, 06 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @frenkyoptic #73815 03:34 PM, 06 Nov 2018
    Ребята, подскажите плиз, а есть ли разница в работе по скорости между
    WHERE eventType IN 1
    и
    WHERE eventType = 1
  • https://t.me/clickhouse_ru
    нет, это будет одно и тоже, CH перепишет это в where equals(eventType,1)
  • https://t.me/clickhouse_ru
    Спасибо
  • https://t.me/clickhouse_ru
    Спасибо! Правда опять уткнулся в 900K строк в секунду
  • https://t.me/clickhouse_ru
    вообще-то это неплохо и даже очень хороший результат.
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #73819 #73820 03:53 PM, 06 Nov 2018
    ага, тоже подметил
  • https://t.me/clickhouse_ru
    @Shegloff #73821 03:54 PM, 06 Nov 2018
    у нас на HDD при таком переливе и общей нагрузке 200-250к выходит
  • https://t.me/clickhouse_ru
    @Shegloff #73822 03:54 PM, 06 Nov 2018
    400 или 500 максимум видел
  • https://t.me/clickhouse_ru
    @Unkledolan #73824 03:59 PM, 06 Nov 2018
    Меня несколько смутило, что чтение с дисков, не более 50MB/s(iowait по нулям), со сброшенными кэшами
  • https://t.me/clickhouse_ru
    @nietzschebrod #73825 04:00 PM, 06 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    ну покрутите,
    max_block_size = 1000000
    max_threads = 1(,16,32,64),
    <parts_to_delay_insert>300</parts_to_delay_insert>
    <parts_to_throw_insert>600</parts_to_throw_insert>
  • https://t.me/clickhouse_ru
    @Sablast #73827 04:11 PM, 06 Nov 2018
    давное не работал со словарями типа ip_trie, раньше вот такой запрос ошибкой не заканчивался:
    SELECT dictGetString('ip', 'geoname', tuple(IPv4StringToNum('127.0.0.1')))

    Received exception from server (version 18.12.14):
    Code: 53. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Key type at position 0 does not match, expected String, found UInt32.
    что я сломал?)
  • https://t.me/clickhouse_ru
    @Shegloff #73828 04:21 PM, 06 Nov 2018
    а у вас geoname описано как стринг?
  • https://t.me/clickhouse_ru
    @Sablast ↶ Reply to #73828 #73829 04:21 PM, 06 Nov 2018
    <attribute>
    <name>geoname_id</name>
    <type>String</type>
    <null_value></null_value>
    </attribute>
  • https://t.me/clickhouse_ru
    @Sablast #73830 04:22 PM, 06 Nov 2018
    выше в запросе опечатка geoname вместо geoname_id, но это не влияет на ошибку(
  • https://t.me/clickhouse_ru
    @Shegloff #73831 04:28 PM, 06 Nov 2018
    ну он ждет в ключе стринг, а вы ему не стринг передаете
  • https://t.me/clickhouse_ru
    @Sablast ↶ Reply to #73831 #73832 04:30 PM, 06 Nov 2018
    это конечно хорошо, но как быть с документацией?
  • https://t.me/clickhouse_ru
    @Shegloff #73833 04:31 PM, 06 Nov 2018
    хз тогда :)
  • @721139250 #73834 04:43 PM, 06 Nov 2018
    Joined.
  • @780225973 #73835 04:43 PM, 06 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Sablast #73839 04:51 PM, 06 Nov 2018
    не знаю, что было - но пересоздал файл словаря - теперь работает)
  • @761498036 #73840 05:24 PM, 06 Nov 2018
    Joined.
  • @757272522 #73841 05:24 PM, 06 Nov 2018
    Joined.
  • @743406076 #73842 05:24 PM, 06 Nov 2018
    Joined.
  • @638794179 #73843 05:24 PM, 06 Nov 2018
    Joined.
  • @sr_maks1 #73845 06:23 PM, 06 Nov 2018
    Подскажите как можно запрос переделать чтобы по всем p пробежаться. Смысл такой - нужно найти все значения который максимально близко к началу часа для каждого p.
    SELECT
    timestamp,
    toUInt32(timestamp/3600000) as time,
    p
    FROM book
    WHERE p = 'BBB' AND timestamp >= 1540641600000 AND timestamp <= 1540663200000
    AND timestamp IN (
    select max(timestamp)
    from book
    where p = 'BBB' AND timestamp >= 1540641600000 AND timestamp <= 1540663200000
    group by toUInt32(timestamp/3600000)
    )
  • @706653374 #73846 06:25 PM, 06 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    Уточните, что такое максимально близкое? И причем тут начало часа для p?
    Что такое 1540641600000 и 1540663200000 в запросе?
    Будет проще, если приведёте численый пример
  • https://t.me/clickhouse_ru
    Видимо
  • https://t.me/clickhouse_ru
    имелся ввиду toStartOfHour
  • https://t.me/clickhouse_ru
    Но вообще, действительно, задачу хотелось бы всё ж уточнить
  • @sr_maks1 ↶ Reply to #73847 #73852 06:49 PM, 06 Nov 2018
    есть поле timestamp = unix time. Не важно. Пусть будет поле DateTime, Есть столбец p например. Нужно для каждого его значения найти строку с временем максимально близким к началу часа или если про unix time это делить на 3600*1000 значения.
  • @sr_maks1 ↶ Reply to #73847 #73853 06:50 PM, 06 Nov 2018
    это просто промежуток времени.
  • https://t.me/clickhouse_ru
    @LunaxodRS #73854 06:52 PM, 06 Nov 2018
    Joined.
  • @sr_maks1 ↶ Reply to #73847 #73855 06:53 PM, 06 Nov 2018
    Например A 10 20:50; A 11 20:51; A 22 4:05; A 23 4:01; B 1 10:05; B 4 10:06. B 5 10:59. Результат должен выдать A 10 20:50; A 23 4:01; B 1 10:05
  • @faerics ↶ Reply to #73852 #73856 06:53 PM, 06 Nov 2018
    Ну вычтите из него начало часа и сделайте максимум и group by p.
  • @faerics ↶ Reply to #73855 #73857 06:54 PM, 06 Nov 2018
    B 1 10:05, полагаю
  • @sr_maks1 #73858 06:55 PM, 06 Nov 2018
    да
  • @sr_maks1 ↶ Reply to #73856 #73859 06:55 PM, 06 Nov 2018
    блин не так написал.
  • @faerics #73860 06:56 PM, 06 Nov 2018
    Почему у вас два значения для А и одно для В?
  • @sr_maks1 ↶ Reply to #73860 #73861 06:56 PM, 06 Nov 2018
    Так как для каждого P и для каждого значения часа. Поэтому там и IN в начале
  • @faerics #73862 06:57 PM, 06 Nov 2018
    Ну тогда group by по двум полям
  • @faerics #73863 06:57 PM, 06 Nov 2018
    По началу часа и p
  • @sklepych #73864 07:00 PM, 06 Nov 2018
    ну уж если быть совсем формалистом то следует делать разницу двух величин. между ткущим часом ровным и текущему+1. Очевидно что 10-55 будет ближе к 11 то есть к "текущему +1" ЗЫ сказал конечно криво, но, надеюсь, понятно
  • @faerics #73865 07:01 PM, 06 Nov 2018
    Интересует, как я смог понять, просто кол-во минут с начала часа. )
  • @sr_maks1 #73866 07:02 PM, 06 Nov 2018
    я делал так, но что то не срослось
    select anyLast(timestamp),anyLast(p),any(bp),any(bv), anyLast(position) from book where timestamp>=1540814400000 and timestamp<=1540900802000 and modulo(timestamp, 3600000) <=2000 group by p,intDiv(timestamp,3600000) order by intDiv(timestamp,3600000);
  • @sr_maks1 #73867 07:03 PM, 06 Nov 2018
    так как p и timestamp - входят в аггрегацию, а вот остальные поля - нет.
  • @faerics #73868 07:04 PM, 06 Nov 2018
    Разобраться бы
  • @sr_maks1 #73869 07:06 PM, 06 Nov 2018
    ок. Набросаю пример.
  • @654556559 #73872 07:06 PM, 06 Nov 2018
    Joined.
  • @faerics #73873 07:06 PM, 06 Nov 2018
    Зачем вы timestamp и p в any засовываете?
  • @sr_maks1 ↶ Reply to #73873 #73874 07:10 PM, 06 Nov 2018
    p - наверное не нужно. timestamp - скорее надо max
  • @faerics #73875 07:13 PM, 06 Nov 2018
    Вы можете просто взять минимальный timestamp внутри часа.
  • @faerics #73876 07:15 PM, 06 Nov 2018
    Про поля BP и bv вы не говорили, но, видимо, понимаете, что any() вам подходит
  • @faerics ↶ Reply to #73849 #73877 07:16 PM, 06 Nov 2018
    Здесь коллега упомянул полезную функцию)
  • https://t.me/clickhouse_ru
    @perehodov #73878 08:05 PM, 06 Nov 2018
    Joined.
  • @IlyaVrum #73879 08:51 PM, 06 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @demenkov_ivan #73880 08:54 PM, 06 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #73874 #73881 09:37 PM, 06 Nov 2018
    SELECT *
    FROM test173

    ┌─p─┬───────────────────t─┐
    │ A │ 2018-11-07 00:35:23 │
    │ A │ 2018-11-07 00:14:23 │
    │ B │ 2018-11-07 00:18:23 │
    │ B │ 2018-11-07 00:04:23 │
    └───┴─────────────────────┘

    SELECT
    p,
    min(t) AS min_time
    FROM test173
    GROUP BY
    toStartOfHour(t),
    p

    ┌─p─┬────────────min_time─┐
    │ A │ 2018-11-07 00:14:23 │
    │ B │ 2018-11-07 00:04:23 │
    └───┴─────────────────────┘
  • @faerics ↶ Reply to #73881 #73882 09:42 PM, 06 Nov 2018
    Я всё-таки старался обходить прямое составление запроса :)
    А зачем подзапрос нужен?
  • @faerics #73883 09:42 PM, 06 Nov 2018
    Так нечестно!
  • https://t.me/clickhouse_ru
    @Shegloff #73884 09:42 PM, 06 Nov 2018
    я его убрал раньше чем вы спросили))))
  • @faerics ↶ Reply to #73884 #73885 09:44 PM, 06 Nov 2018
    Надеюсь, это было полезное упражнение, раз уж вы за него взялись)
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #73885 #73886 09:45 PM, 06 Nov 2018
    😂
  • https://t.me/clickhouse_ru
    @den_crane #73887 09:46 PM, 06 Nov 2018
    а не проще

    select * from (
    select 'A' p, toDateTime('2018-11-07 00:35:23') t union all
    select 'A' p, toDateTime('2018-11-07 00:14:23') t union all
    select 'B' p, toDateTime('2018-11-07 00:18:23') t union all
    select 'B' p, toDateTime('2018-11-07 00:04:23') t)
    order by p, t-toStartOfHour(t)
    limit 1 by p

    A 2018-11-07 00:14:23
    B 2018-11-07 00:04:23
  • https://t.me/clickhouse_ru
    @den_crane #73888 09:52 PM, 06 Nov 2018
    ну и если для каждого часа то
    select p, t, toStartOfHour(t) h from (
    select 'A' p, toDateTime('2018-11-07 00:35:23') t union all
    select 'A' p, toDateTime('2018-11-07 00:14:23') t union all
    select 'A' p, toDateTime('2018-11-07 12:14:23') t union all
    select 'A' p, toDateTime('2018-11-07 12:35:23') t union all
    select 'B' p, toDateTime('2018-11-07 00:18:23') t union all
    select 'B' p, toDateTime('2018-11-07 00:04:23') t)
    order by p, h, t-toStartOfHour(t)
    limit 1 by p,h

    A 2018-11-07 00:14:23 2018-11-07 00:00:00
    A 2018-11-07 12:14:23 2018-11-07 12:00:00
    B 2018-11-07 00:04:23 2018-11-07 00:00:00
  • @faerics ↶ Reply to #73888 #73889 09:53 PM, 06 Nov 2018
    А чем проще? Имхо, это гораздо менее читаемо. Быстрее будет работать?
  • https://t.me/clickhouse_ru
    если с отредактированным вариантом если сравнить то да -- менее читаемо.
    но в общем limit by позволяет выбрать все поля из таблицы для искомой записи, т.е. если полей будет например больше чем p и t.
  • @faerics ↶ Reply to #73890 #73891 10:00 PM, 06 Nov 2018
    Никогда так и не встречал нормального юзкейса для limit by
    А order by зачем?
  • https://t.me/clickhouse_ru
    @den_crane #73892 10:01 PM, 06 Nov 2018
    limit без order by выберет что угодно, а не ближайший к началу часа.
  • @faerics #73893 10:03 PM, 06 Nov 2018
    а, то есть он ограничивает именно строки в выдаче (не то же самое, что group by. Ну так тогда с limit by вроде подольше должно быть (если дат много)
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #73891 #73894 10:03 PM, 06 Nov 2018
    если есть коррелированный подзапрос с лимитом, то его иногда можно переписать через джойн и limit by
  • @faerics ↶ Reply to #73894 #73895 10:04 PM, 06 Nov 2018
    возможно, спасибо)
  • https://t.me/clickhouse_ru
    ну вот попробуйте выбрать за один заход в таблицу (ВСЕ ПОЛЯ), нужны строки с мин. t для каждого p

    select * from (
    select 1 p, 1 t, 'zzz' x, 4 y union all
    select 1 p, 2 t, 'xxx' x, 5 y union all
    select 2 p, 2 t, 'yyy' x, 6 )
    order by p, t
    limit 1 by p

    1 1 zzz 4
    2 2 yyy 6
  • https://t.me/clickhouse_ru
    @den_crane #73897 10:11 PM, 06 Nov 2018
    и особенно если нужно первых 5, в каждой группе (p)
  • @faerics #73900 10:16 PM, 06 Nov 2018
    ну с мин t для каждого p надо тестить, я бы написал как выше, у меня был бы просто argMin и всё, скорее всего, прошло бы отлично.
    А вот если нужно первых пять строк, то тогда подзапрос с limit, что, возможно, было бы и неоптимально.
  • https://t.me/clickhouse_ru
    @den_crane #73901 10:18 PM, 06 Nov 2018
    да, но argMin придется для каждого поля написать и посчитать.
  • @faerics #73902 10:19 PM, 06 Nov 2018
    один можно написать, он же вроде умеет в качестве поля кортех принимать? не уверен.
  • @faerics #73903 10:19 PM, 06 Nov 2018
    Если нельзя один, то да, это гадость
  • https://t.me/clickhouse_ru
    @den_crane #73904 10:22 PM, 06 Nov 2018
    ну вот так будет

    select p, V.1, V.2, V.3 from (
    select p, argMin((t,x,y),t) V from (
    select 1 p, 1 t, 'zzz' x, 4 y union all select 1 p, 2 t, 'xxx' x, 5 y union all select 2 p, 2 t, 'yyy' x, 6 )
    group by p)

    1 1 zzz 4
    2 2 yyy 6
  • https://t.me/clickhouse_ru
    @den_crane #73905 11:30 PM, 06 Nov 2018
    argMin в разы быстрее чем order by + limit by
    https://gist.github.com/den-crane/fcc95468f37e40f9ff2a22cf3e250c0f
  • https://t.me/clickhouse_ru
    @duckhawk #73906 11:33 PM, 06 Nov 2018
    Joined.
  • 07 November 2018 (120 messages)
  • @744486171 #73910 02:20 AM, 07 Nov 2018
    Joined.
  • @faerics ↶ Reply to #73905 #73914 07:27 AM, 07 Nov 2018
    Что и понятно, тк надо все упорядочить сначала во втором варианте
  • @weduser #73915 07:35 AM, 07 Nov 2018
    Joined.
  • @silentcloudcy #73916 07:36 AM, 07 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Mike_Er #73917 09:03 AM, 07 Nov 2018
    Коллеги, подскажите плиз, при обновлении на 18.14.12 получаю " <Error> Application: DB::Exception: Cannot create table from metadata file /var/lib/clickhouse/metadata/dnl//hosts.sql, error: DB::Exception: ODBCBridgeHelper: clickhouse-odbc-bridge is not responding, stack trace" - это какая-то ошибки сборки под центось ? 18.14.11 - нормально завелась
  • https://t.me/clickhouse_ru
    @tarmazakov #73918 09:15 AM, 07 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Alesapin ↶ Reply to #73917 #73919 09:17 AM, 07 Nov 2018
    А можно trace увидеть?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @Alesapin #73921 09:19 AM, 07 Nov 2018
    Стабильно воспроизводится на 18.14.12, но не воспроизводится на 18.14.11?
  • https://t.me/clickhouse_ru
    @Mike_Er ↶ Reply to #73921 #73923 09:24 AM, 07 Nov 2018
    На тестовом стенде на 18.14.12 не вылезло, в продакшн - вылезло. Разницы нет никакой, конфиги идентичны. Если найду закономерность- напишу. Но это сборка по центос - может быть что-то с init.d скриптами
  • https://t.me/clickhouse_ru
    @Alesapin #73924 09:27 AM, 07 Nov 2018
    Кто-то уже жаловался на это именно на CentOS, но там была какая-то не самая свежая версия 18.14.хх. Единственное изменение, которое было в этом месте в 18.14.12 это увеличение таймаута для получения ответа от odbc-bridge, влиять не должно никак.
  • https://t.me/clickhouse_ru
    Нашел, что уже мой вопрос обсуждался, подскажите, вам удалось решить задачу с вставкой nested json?
  • @mminaev #73927 09:30 AM, 07 Nov 2018
    мы решили проблему так - написали свой консьюмер и из него льем данные в клик, либо можно сделать через nested но значением должен быть массив, {"d2":"ok", "d1":1, "b": [{"v": 1}]}
  • https://t.me/clickhouse_ru
    спасибо. а случайно не знаешь, можно ли положить всё сообщение из топика кафки в отдельный столбец КХ?
  • @mminaev ↶ Reply to #73928 #73929 09:36 AM, 07 Nov 2018
    неа
  • А можно чуть больше подробностей - какой именно CentOS (сборки для 6-го и 7-го различаются), как именно удается воспроизвести?
  • @sunsingerus #73931 09:45 AM, 07 Nov 2018
    Посмотрю, что именно происходит, и было бы совсем хорошо, если бы удалось воспроизвести локально
  • https://t.me/clickhouse_ru
    @ytsemashko #73932 09:49 AM, 07 Nov 2018
    Здравствуйте. Подскажите пожалуйта есть ли функция, которая может вернуть предыдущю строку относительно текущей? Я нашел только runningDifference, которая возвращает дельты между текущей и предыдущей записью для каждой записи, но мне необходима другая операция, а не вычитание.
  • @faerics ↶ Reply to #73932 #73933 09:51 AM, 07 Nov 2018
    Приходилось собирать в массивы (groupArray), применять операцию (arrayMap), разворачивать обратно (ARRAY JOIN)
  • https://t.me/clickhouse_ru
    @ytsemashko #73934 09:52 AM, 07 Nov 2018
    ого. Хардкорненько. Учитывая, что у меня еще есть и nested attributes, которые тоже являются массивами, то прийдется знатно помудохаться.
  • https://t.me/clickhouse_ru
    @ytsemashko #73935 09:53 AM, 07 Nov 2018
    проще сделать на уровне своей программы, наверное.
  • @AurimasJ #73936 09:57 AM, 07 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @stovm #73937 10:37 AM, 07 Nov 2018
    Добрый день. А кто как переименовывает название столбца в таблице? Есть идеи?
  • https://t.me/clickhouse_ru
    @leidruid #73938 10:40 AM, 07 Nov 2018
    @milovidov_an, Алексей, не в курсе, будет ли кто-то завтра-послезавтра из команды Облака на полях HighLoad ?
  • @ztlpn #73939 10:45 AM, 07 Nov 2018
    Владимир Бородин на HighLoad++ 2018

    В инфраструктуре Яндекса довольно давно существует платформа вычислительных ресурсов, на которой работает большинство stateless-сервисов компании. Давно есть и единый Map Reduce, и хорошее объектное хранилище, но относительно недавно не было инфраструктуры для хранения того, что обычно кладут в базы данных. В докладе речь пойдёт о том, как мы сначала построили инфраструктуру Database as a Service для собственных сервисов, а теперь масштабируем для внешних пользователей.

  • @ztlpn #73940 10:46 AM, 07 Nov 2018
    Правда почему-то нет тега ClickHouse :)
  • https://t.me/clickhouse_ru
    явно будут, у них ±3 доклада
  • https://t.me/clickhouse_ru
    @vsgrab #73942 10:46 AM, 07 Nov 2018
    От облака будет еще стенд
  • https://t.me/clickhouse_ru
    @leidruid #73943 10:47 AM, 07 Nov 2018
    Jnkbxytymrj? cgfcb,j
  • https://t.me/clickhouse_ru
    @leidruid #73944 10:47 AM, 07 Nov 2018
    Отличненько, спасибо
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @frenkyoptic #73947 12:38 PM, 07 Nov 2018
    Подскажите плиз, может есть какието очевидные вещи в запросе которые можно оптимизировать?
    SELECT
    adId AS adId,
    sellerId AS sellerId,
    if(isFinite(sumIf(cpc, eventType = 1) / sum(eventType IN 1)), sumIf(cpc, eventType = 1) / sum(eventType IN 1), 0) AS AvgCPC,
    sum(eventType IN 1) AS Clicks,
    if(isFinite(sum(eventType IN (3, 4)) / sum(eventType IN 1)), sum(eventType IN (3, 4)) / sum(eventType IN 1), 0) AS EngagementCTR,
    sum(eventType IN (3, 4)) AS Engagements,
    sum(eventType IN 2) AS Impressions,
    quantile(0.9)(rankScore) AS RankScore90pct,
    ifNull(countDistinct(if(eventType IN 2, sessionId, NULL)), 0) AS SessionsWithImpressions,
    ifNull(countDistinct(if(eventType IN 3, sessionId, NULL)), 0) AS SessionsWithWebsiteClicks,
    sumIf(cpc, eventType = 1) AS Spent,
    if(isFinite(sum(eventType IN 1) / sum(eventType IN 2)), sum(eventType IN 1) / sum(eventType IN 2), 0) AS ViewCTR
    FROM
    (
    SELECT
    adId,
    cpc,
    eventType,
    rankScore,
    sellerId,
    sessionId,
    timestamp
    FROM d_events
    WHERE (tenant = 3) AND (date >= (toDate('2018-11-06') - 1)) AND ((toDate('2018-11-06') + 1) >= date)
    )
    WHERE (toDate(timestamp, 'Europe/Amsterdam') >= '2018-11-06') AND ('2018-11-06' >= toDate(timestamp, 'Europe/Amsterdam'))
    GROUP BY
    adId,
    sellerId
    LIMIT 0, 20
  • https://t.me/clickhouse_ru
    @frenkyoptic #73948 12:39 PM, 07 Nov 2018
    Возможно ли както закешировать значения sum(eventType IN 1) в пределах запроса?
  • https://t.me/clickhouse_ru
    @orantius #73949 12:40 PM, 07 Nov 2018
    limit без order by?
  • https://t.me/clickhouse_ru
    что вы имеете ввиду? не понял вас
  • https://t.me/clickhouse_ru
    @orantius #73951 12:41 PM, 07 Nov 2018
    одинаковые выражения считаются один раз.
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #73950 #73952 12:42 PM, 07 Nov 2018
    что если вы берете limit и не пишете order by, то в общем случае у вас два одинаковых запроса по одинаковым данным выдают разные ответы. иногда это не то что хотелось бы получить.
  • https://t.me/clickhouse_ru
    @frenkyoptic #73953 12:43 PM, 07 Nov 2018
    Вы имеете ввиду Group By ?
  • @alipin #73954 01:29 PM, 07 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    limit выдает рандомную строку без order by.
    group by не упорядочивает строки
    КХ обрабатыватывает запрос многопоточно, limit выдаст просто первую строку которую вернет один из потоков

    select n from (select number n from numbers(100000) order by rand())
    group by n
    limit 1
    ----
    88975

    select n from (select number n from numbers(100000) order by rand())
    group by n
    order by n
    limit 1
    ----
    0
  • @roman_kolchin #73956 01:48 PM, 07 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    🙂 select n from (select number n from numbers(100000) order by rand()) group by n limit 3

    SELECT n
    FROM
    (
    SELECT number AS n
    FROM numbers(100000)
    ORDER BY rand() ASC
    )
    GROUP BY n
    LIMIT 3

    ┌─────n─┐
    │ 0 │
    │ 89828 │
    │ 46085 │
    └───────┘

    3 rows in set. Elapsed: 0.022 sec. Processed 131.07 thousand rows, 1.05 MB (6.00 million rows/s., 48.00 MB/s.)

    🙂 select n from (select number n from numbers(100000) order by rand()) group by n limit 3

    SELECT n
    FROM
    (
    SELECT number AS n
    FROM numbers(100000)
    ORDER BY rand() ASC
    )
    GROUP BY n
    LIMIT 3

    ┌─────n─┐
    │ 0 │
    │ 89828 │
    │ 46085 │
    └───────┘

    3 rows in set. Elapsed: 0.021 sec. Processed 131.07 thousand rows, 1.05 MB (6.26 million rows/s., 50.10 MB/s.)
    все время одинаковые результаты получаю
  • https://t.me/clickhouse_ru
    вы неудачник
  • https://t.me/clickhouse_ru
    @den_crane #73959 01:55 PM, 07 Nov 2018
    это просто демонстрация и в общем-то понятно почему одинаковые результаты, но это явно не то что хотелось.
  • https://t.me/clickhouse_ru
    @frenkyoptic #73960 01:58 PM, 07 Nov 2018
    Секция LIMIT
    LIMIT m позволяет выбрать из результата первые m строк. LIMIT n, m позволяет выбрать из результата первые m строк после пропуска первых n строк.

    n и m должны быть неотрицательными целыми числами.

    При отсутствии секции ORDER BY, однозначно сортирующей результат, результат может быть произвольным и может являться недетерминированным.
  • https://t.me/clickhouse_ru
    я все равно не понял как это относиться к моему вопросу, но спасибо вам за ответы =)
  • https://t.me/clickhouse_ru
    @frenkyoptic #73962 02:03 PM, 07 Nov 2018
    в моем вопросе limit просто для примера
  • https://t.me/clickhouse_ru
    когда я вижу

    GROUP BY
    adId,
    sellerId
    LIMIT 0, 20

    я сразу исправляю на

    GROUP BY
    adId,
    sellerId
    ORDER BY
    adId,
    sellerId

    LIMIT 0, 20
  • https://t.me/clickhouse_ru
    @frenkyoptic #73964 02:04 PM, 07 Nov 2018
    Понял, спасибо, я в курсе =)
  • https://t.me/clickhouse_ru
    @den_crane #73965 02:07 PM, 07 Nov 2018
    про sum(eventType IN 1)
    вам папакарл ответил что можно но не нужно

    но вообще вот
    select (sum(1) as X) * 1000, X+1
  • @snadtochy #73966 02:11 PM, 07 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    а вот за это спасибо!
  • https://t.me/clickhouse_ru
    @farmean #73970 02:39 PM, 07 Nov 2018
    всем привет
  • https://t.me/clickhouse_ru
    @farmean #73971 02:39 PM, 07 Nov 2018
    такая проблема появилась, селект по distributed таблице падает с ошибкой Block structure mismatch in MergingSorted stream: different names of columns
  • https://t.me/clickhouse_ru
    @farmean #73972 02:40 PM, 07 Nov 2018
    по локальной таблице отрабатывает без ошибок
  • @medov_alexey #73974 02:53 PM, 07 Nov 2018
    @kshvakov оказался в непонятной ситуации.

    В соединение клик хаусу указал алтернативные хосты, но не указал стратегию, думая что по умолчанию используется рандом.
    Но соединение не устанавливалось, пока конкретно in_order не указал как стратегию.
  • @medov_alexey #73975 02:53 PM, 07 Nov 2018
    Версия кликхауса 18.14.10
  • @medov_alexey #73976 02:54 PM, 07 Nov 2018
    а раньше когда была версия кликхауса более старая, я не указывал стратегию, и у меня подключалось рандомно
  • @medov_alexey #73977 02:54 PM, 07 Nov 2018
    получается сейчас стратегию балансировки обязательно конкретно нужно указывать, верно ?
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #73971 #73978 02:57 PM, 07 Nov 2018
    ClickHouse release 18.14.11, 2018-10-29
    Исправления ошибок:
    Исправлена ошибка Block structure mismatch in UNION stream: different number of columns в запросах с LIMIT.
  • https://t.me/clickhouse_ru
    @Shegloff #73979 02:57 PM, 07 Nov 2018
    была бага
  • https://t.me/clickhouse_ru
    @farmean #73980 02:59 PM, 07 Nov 2018
    Да, я видел, когда гуглил, но у меня проблема с разными наименованиями столбцов. Проверил все таблицы на всех нодах, и локальные, и распределенные, везде все одинаково.
  • https://t.me/clickhouse_ru
    @Shegloff #73981 03:00 PM, 07 Nov 2018
    в этом и бага - везде все правильно, а выдает ошибку
  • https://t.me/clickhouse_ru
    @live_man_oleg #73982 03:07 PM, 07 Nov 2018
    подскажите пример чарта, как поднять кластер КХ в kubernetes
  • https://t.me/clickhouse_ru
    @farmean ↶ Reply to #73981 #73983 03:19 PM, 07 Nov 2018
    Посмотрю какая версия сейчас стоит
  • https://t.me/clickhouse_ru
    @esmarina #73984 04:06 PM, 07 Nov 2018
    Joined.
  • @sr_maks1 ↶ Reply to #73904 #73985 04:12 PM, 07 Nov 2018
    ```
    select * from book where timestamp>=1540814400000 and timestamp<=1540900802000 and (p,timestamp) IN ( select p, argMin(timestamp,timestamp) from book where timestamp>=1540814400000 and timestamp<=1540900802000 group by p,intDiv(timestamp,3600000));
    ```
    вопрос такого плана - можно ли как то добиться партицированием или ключами повышение скорости поиска. Сейчас скорость поиска 46 с за день - за два 94 - линейная зависимость
  • @sr_maks1 ↶ Reply to #73985 #73986 04:15 PM, 07 Nov 2018
    или для каждого случая аггрегации нужно свою таблицу мутить?
  • https://t.me/clickhouse_ru
    вы понимаете зачем у меня тупл?
  • @faerics ↶ Reply to #73985 #73988 04:16 PM, 07 Nov 2018
    Вам же писали более аккуратный вариант. Попробуйте сначала его.
    Для хотя бы попытки ответа на вопрос надо знать, что у вас за запросы, какой ордер бай
  • https://t.me/clickhouse_ru
    @den_crane #73989 04:16 PM, 07 Nov 2018
    попробуйте осознать argMin((t,x,y),t)
  • @faerics #73990 04:16 PM, 07 Nov 2018
    Argmin(timestamp, timestamp) -- странная штука)
  • @sr_maks1 ↶ Reply to #73987 #73991 04:16 PM, 07 Nov 2018
    нет... конечно же не понимаю...)) Ну е-мое....
  • https://t.me/clickhouse_ru
    надо себя заставить написать ()
  • @sr_maks1 ↶ Reply to #73990 #73993 04:17 PM, 07 Nov 2018
    Секунду. наверное да)
  • @faerics ↶ Reply to #73881 #73994 04:18 PM, 07 Nov 2018
    Вот вариант скидывали.
  • @sr_maks1 ↶ Reply to #73994 #73995 04:19 PM, 07 Nov 2018
    да. Это вариант на подзапрос. Он есть. Все правильно
  • @faerics ↶ Reply to #73995 #73996 04:19 PM, 07 Nov 2018
    Таки я его у вас не вижу.
  • @sr_maks1 ↶ Reply to #73996 #73997 04:20 PM, 07 Nov 2018
    таки вот оно - select p, min(timestamp,timestamp) from book where timestamp>=1540814400000 and timestamp<=1540900802000 group by p,intDiv(timestamp,3600000)
  • @faerics #73998 04:20 PM, 07 Nov 2018
    Не оно.
  • @sr_maks1 ↶ Reply to #73998 #73999 04:21 PM, 07 Nov 2018
    оно. В моем случае оно
  • @faerics #74000 04:23 PM, 07 Nov 2018
    Будет min(timestamp) -- будет оно. Если предположить, что toStartOfHour работает также, как intDiv
    По Timestamp у вас данные упорядочены?
  • @sr_maks1 ↶ Reply to #74000 #74001 04:24 PM, 07 Nov 2018
    Да. Партицирование по timestamp/3600000 . PARTITION BY toUInt32((timestamp / 1000) / 3600) ORDER BY timestamp SETTINGS index_granularity = 8192
  • @faerics #74003 04:26 PM, 07 Nov 2018
    То есть по часам? Ну так оно и будет долго. Много партиций жеж затрагиваете
    А зачем в вашем запросе надзапрос? По-моему, его можно убрать.
  • @Kpoxa111 #74004 04:27 PM, 07 Nov 2018
    Joined.
  • @sr_maks1 ↶ Reply to #74003 #74005 04:32 PM, 07 Nov 2018
    так как есть множество записей с одинаковым значение ключе p и timestamp. Соответственно мне надо их всех и выбрать. если я поставлю tuple в argMin - то вернется одна, если я поставлю any - то вернется одна any, если поставлю anyLast - то вернется одна последняя. А вот all я не знаю есть вообще такая штука. То есть по идее это что то вроде join только я не знаю сколько он съест
  • @faerics #74006 04:34 PM, 07 Nov 2018
    Ну для начала я бы по p упорядочил тоже.
  • @sr_maks1 ↶ Reply to #74006 #74007 04:35 PM, 07 Nov 2018
    ок. А как лучше сначала по времени а потом по P или наоборот.?
  • @faerics #74008 04:36 PM, 07 Nov 2018
    Ну у вас бывает выборка по timestamp без p, поэтому его надо вперед.
  • Да, будет директор Облака, а также руководитель разработки dbaas и, наверное, ещё люди.
  • @sr_maks1 ↶ Reply to #74008 #74010 04:37 PM, 07 Nov 2018
    попробую перелить таблицу с другим order. Посмотрю что получится.
  • @faerics ↶ Reply to #74005 #74011 04:38 PM, 07 Nov 2018
    @milovidov_an, можно ли собрать все строки с заданным значением нескольких полей как-то еще, кроме надзапроса?
  • Агрегатная функция groupArray.
  • @Kpoxa111 #74013 04:40 PM, 07 Nov 2018
    А как можно партиции, которые были подвержены "FREEZE PARTITION" сделать доступными для мержа? chmod?
  • @faerics ↶ Reply to #74010 #74014 04:41 PM, 07 Nov 2018
    Ну да, можно еще group array и array join.
  • @faerics ↶ Reply to #74012 #74015 04:41 PM, 07 Nov 2018
    Спасибо!
  • @sr_maks1 ↶ Reply to #74014 #74016 04:42 PM, 07 Nov 2018
    Сейчас гляну, заранее спасибо
  • @sr_maks1 ↶ Reply to #74014 #74017 04:47 PM, 07 Nov 2018
    но судя по всему groupArray собирает в памяти намного больше чем с подзапросами. Ну тут наверное либо скорость либо память
  • @faerics ↶ Reply to #74017 #74018 04:51 PM, 07 Nov 2018
    Неочевидно насчет памяти. То, что он соберет -- и есть результат вашего запроса, если я правильно понимаю задачу
  • @sr_maks1 ↶ Reply to #74018 #74019 04:58 PM, 07 Nov 2018
    Неочевидно - но предыдущий запрос укладывается в лимиты, этот не укладывается по памяти я имею ввиду
  • @sr_maks1 #74020 05:01 PM, 07 Nov 2018
    Еще один вопрос - кто больше занимает место в UInt32 - 0 или NULL. ?
  • @faerics ↶ Reply to #74019 #74021 05:02 PM, 07 Nov 2018
    Будем знать, что так
  • https://t.me/clickhouse_ru
    @farmean ↶ Reply to #73981 #74024 07:07 PM, 07 Nov 2018
    Это всё-таки другая бага была, исправлена буквально на днях: https://github.com/yandex/ClickHouse/issues/3162
    Она уже в мастере, как скоро фикс оказывается обычно в релизе? на 18.14.12 ещё повторяется
    Block structure mismatch in MergingSorted stream #3162

    Clickhouse server version 18.12.17 Query to distributed table sometimes fails with error: 2018.09.18 13:39:41.251273 [ 1108366 ] {efbabc85-def6-4747-9443-c302558e8793} executeQuery: Code: 171, e.displayText() = DB::Exception: Blo...

  • https://t.me/clickhouse_ru
    @Alesapin #74025 07:09 PM, 07 Nov 2018
    Этот фикс уже 18.14.13, правда релиз ещё не в stable, но уже скоро.
  • https://t.me/clickhouse_ru
    @farmean #74026 07:17 PM, 07 Nov 2018
    👍
  • https://t.me/clickhouse_ru
    @bambaleeyo #74028 08:02 PM, 07 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @bambaleeyo #74029 08:06 PM, 07 Nov 2018
    Коллеги, приветствую! Подскажите, есть ли возможность отфильтровать данные по дате с учетом таймзоны? есть поле и Date и Datetime, сейчас на бэкэнде идет формирование запроса к Datetime со сдвигом, например с 21:00 одного дня до 21:00 другого дня, но это адски неудобное решение .. может что посоветуете?
  • https://t.me/clickhouse_ru
    @den_crane #74030 08:19 PM, 07 Nov 2018
    а в чем вопрос-то?

    select * from (
    select 'UTC' tz, toDateTime('2018-01-01 00:00:00', 'UTC') dt union all
    select 'Europe/Moscow',toDateTime('2018-01-01 00:00:00', 'Europe/Moscow'))
    where dt >= toDateTime('2018-01-01 00:00:00', 'UTC')

    UTC 2018-01-01 00:00:00
  • @70532431 ↶ Reply to #65789 #74031 09:05 PM, 07 Nov 2018
    но словарь, который создаётся для столбца с типом LowCardinality, входит в базу? вопрос связан с тем, есть ли какая-то особеность в резервном копировании (freeze) таблицы, в которой используется этот тип данных
  • @70532431 #74032 09:06 PM, 07 Nov 2018
    Может, кто-то в проде использует LowCardinality, как оно, есть ли проблемы?
  • Да, словарь там же, где и данные. При копировании директории, он тоже скопируется.
  • Эта возможность сейчас всё ещё имеет экспериментальный статус.
  • @70532431 #74035 09:16 PM, 07 Nov 2018
    Поэтому и спрашиваю) Не совсем понятно, какие преимущества от данного типа будут, например, на столбце, который может занимать 10 значений.
    И он ведь только для string?
  • https://t.me/clickhouse_ru
    https://events.yandex.ru/lib/talks/6166/ вот тут объяснено, вроде меньше данных не будет, groupby будет быстрее
    Link

    Приглашаем технических специалистов на ClickHouse Meetup. ClickHouse была разработана в Яндексе для нужд Метрики, но почти сразу стала использоваться для решения самых разных задач. Эта система работает быстрее всех известных нам СУБД и легко обрабатывает петабайты данных. Разработчики системы расскажут о новых функциях и планах, а пользователи — о собственном опыте. Вы сможете также пообщаться с представителями индустрии, которые уже используют нашу СУБД в своих проектах.

  • https://t.me/clickhouse_ru
    @dlazarchuk #74037 09:27 PM, 07 Nov 2018
    Доброго всем вечера! Ребят прошу совета. Есть кластер из 8 шардов, хотим сократить количество нод до 4, какой верный алгоритм без потери данных разрулить это?
  • https://t.me/clickhouse_ru
    detach, копируем на другой шард, там attach
  • https://t.me/clickhouse_ru
    Спасибо! А копировать каким образом? При помощи clickhouse-copier?
  • https://t.me/clickhouse_ru
    @den_crane #74040 10:12 PM, 07 Nov 2018
    scp / ftp
  • @734177192 #74041 11:28 PM, 07 Nov 2018
    Joined.
  • @554015436 #74042 11:28 PM, 07 Nov 2018
    Joined.
  • 08 November 2018 (142 messages)
  • @705443385 #74046 01:23 AM, 08 Nov 2018
    Joined.
  • @566104372 #74048 03:10 AM, 08 Nov 2018
    Joined.
  • @744023217 #74049 03:10 AM, 08 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @ilya_flakin #74052 04:45 AM, 08 Nov 2018
    воу воу
  • https://t.me/clickhouse_ru
    @Shegloff #74053 05:59 AM, 08 Nov 2018
    Заходишь в тот чат, а там вертика 😂
  • https://t.me/clickhouse_ru
    @SLASH_CyberPunk #74054 06:05 AM, 08 Nov 2018
    Это где?
  • https://t.me/clickhouse_ru
    @studnev ↶ Reply to #74053 #74056 06:41 AM, 08 Nov 2018
    И первый терабайт бесплатно
  • https://t.me/clickhouse_ru
    @dm_zaytsev #74057 06:46 AM, 08 Nov 2018
    Вроде нету у них чатика. Только у платного саппорта есть в телеге
  • Вы пропустили спам-картинку :)
  • https://t.me/clickhouse_ru
    @dm_zaytsev #74059 06:52 AM, 08 Nov 2018
    Теперь непонятно) без картинки
  • https://t.me/clickhouse_ru
    @SLASH_CyberPunk #74060 07:17 AM, 08 Nov 2018
    Ну вот да
  • https://t.me/clickhouse_ru
    Это не саппорт, это дилеры у нас в стране, да и то, нет там поддержки, только маркетинг
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #74062 07:33 AM, 08 Nov 2018
    Я в своё время зарегался, чтобы скачать community edition, так мне в течении получаса позвонили. И стали расспрашивать, кто я, зачем мне вертика, куплю ли я
  • https://t.me/clickhouse_ru
    @SLASH_CyberPunk #74063 07:35 AM, 08 Nov 2018
    это да, могут, хотя скачать можно и без реги 😬
  • https://t.me/clickhouse_ru
    @esmarina #74064 07:39 AM, 08 Nov 2018
    Всем привет! Надеюсь, не нарушу правила чатика.
    В международное маркетинговое агентство ищу удаленного разработчика, перед которым будут стоять интересные задачи, связанные с highload.
    Подробности здесь: https://docs.google.com/document/d/14f9ctV716BgCZvWIT-l1OVxKVHFLKQRajYCgkDMQFyA/edit
    Благодарю за внимание. Буду признательна за рекомендации.
    FS-developer_S

    Мы – международное маркетинговое агентство. Специализируемся на лидогенерации, привлечении целевых пользователей и покупателей. Отлично умеем работать с целевой аудиторией, что обеспечивается в том числе in-house инструментами для аналитики и сегментации трафика. Ищем в команду удаленного фуллст...

  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #74065 07:39 AM, 08 Nov 2018
    Два года назад нельзя было
  • @Dr5ty #74066 07:42 AM, 08 Nov 2018
    Joined.
  • @bashlykevich #74067 07:42 AM, 08 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @egor_gorshkov #74068 07:42 AM, 08 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @vitalyleonov #74069 07:42 AM, 08 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @ozon1234 #74070 07:42 AM, 08 Nov 2018
    Joined.
  • @MadSchemas #74071 07:42 AM, 08 Nov 2018
    Joined.
  • @imezentsev #74072 07:43 AM, 08 Nov 2018
    Joined.
  • @igorloban92 #74073 07:43 AM, 08 Nov 2018
    Joined.
  • @Zubrsan #74074 07:49 AM, 08 Nov 2018
    Joined.
  • @204911890 #74075 07:49 AM, 08 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @nvoevodin #74076 07:49 AM, 08 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @microcropoc #74077 08:01 AM, 08 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @ru_andy #74078 08:36 AM, 08 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Bartimeus33nt10 #74079 08:36 AM, 08 Nov 2018
    Joined.
  • @r_abd #74080 08:36 AM, 08 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @psarabeev #74081 08:37 AM, 08 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @michaelpak #74082 08:37 AM, 08 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @paxmsk #74083 08:38 AM, 08 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Imaskar #74084 08:39 AM, 08 Nov 2018
    астрологи объявили неделю хайлоад++. количество людей в группе увеличилось.
  • https://t.me/clickhouse_ru
    @Coderxlsn #74085 08:39 AM, 08 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @vsoshnikov #74086 08:40 AM, 08 Nov 2018
    герои 3 ?)
  • https://t.me/clickhouse_ru
    @toeugene #74087 08:40 AM, 08 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @voldemarkorenev #74088 08:41 AM, 08 Nov 2018
    ClickHeroes 😎
  • https://t.me/clickhouse_ru
    @stufently #74089 08:41 AM, 08 Nov 2018
    астрологи обьявили неделю спамеров, количество спамеров увеличилось в два раза
  • https://t.me/clickhouse_ru
    @m_mashechka #74090 08:45 AM, 08 Nov 2018
    Joined.
  • @TonyGogin #74091 08:55 AM, 08 Nov 2018
    Joined.
  • @freezlite #74094 10:32 AM, 08 Nov 2018
    в кх есть массив тип данных?
  • @freezlite #74095 10:32 AM, 08 Nov 2018
    по нему можно группировать ?
  • https://t.me/clickhouse_ru
    @508795071 #74096 10:33 AM, 08 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Imaskar #74097 10:34 AM, 08 Nov 2018
    есть array
    а группировать по массиву - это как? по равенству? учитывая порядок или нет?
  • @password007 #74098 10:37 AM, 08 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @frenkyoptic #74099 10:38 AM, 08 Nov 2018
    Парни а как посчитать uniq(some) но чтоб туда попадали только поля которые больше 0 (some > 0) например?
  • @freezlite #74100 10:38 AM, 08 Nov 2018
    Есть 2 таблицы. Первая ids array(1, 2, 3) и вторая id = 1, нужно заджоинить 2 таблицы id in ids
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #74099 #74101 10:43 AM, 08 Nov 2018
    uniqIf
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #74100 #74102 10:44 AM, 08 Nov 2018
    Массивы через Array join, но я бы 2 раза подумал, а надо ли) храните все в одной таблице пока это возможно.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #74095 #74103 10:45 AM, 08 Nov 2018
    Да, можно
  • https://t.me/clickhouse_ru
    @nicname #74104 10:45 AM, 08 Nov 2018
    version 18.12.13
    наткнулся на странноватое поведение, stream_flush_interval_ms отрабатывало все как надо по дефолту, после пересоздания матвью и консумера из кафки, и последующего рестарта кх – все вроде работает, но сбрасывает буфера через секунд 20-30. как можно починить?
  • https://t.me/clickhouse_ru
    Спасибо!
  • https://t.me/clickhouse_ru
    @nicname ↶ Reply to #74104 #74106 10:50 AM, 08 Nov 2018
    судя по поведению эта переменная вообще не отрабатывает, ориентируется только на размер блока
  • Можно.
  • uniqIf(some, some > 0)
  • См. функцию has.
  • https://t.me/clickhouse_ru
    @nicname #74110 10:53 AM, 08 Nov 2018
    что по осути означает такая запись в логах?

    Started streaming to 1 attached views
    Stopped streaming to views

    это не stream_flush ?
  • https://t.me/clickhouse_ru
    @nicname ↶ Reply to #74104 #74111 11:05 AM, 08 Nov 2018
    обновил на последнюю версию – те же симптомы. по минуте может отрабатывать. как лечить?
  • https://t.me/clickhouse_ru
    @ivanvolkov #74112 11:12 AM, 08 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @ivanvolkov #74113 11:12 AM, 08 Nov 2018
    подскажите как таблица развернуть горизонтально

    исходная таблица
    user;status;count
    user1;100;1
    user1;200;3
    user1;300;2
    user2;100;1
    user2;200;3
    user2;300;2

    ожидаемый результат
    user;status100;status200;status300
    user1;1;3;2
    user2;1;3;2
  • @vladimir_xcx #74114 11:17 AM, 08 Nov 2018
    можно ли хранить внешние словари не в оперативной памяти?
    https://clickhouse.yandex/docs/en/query_language/dicts/external_dicts_dict_layout/#dicts-external_dicts_dict_layout-hashed
    из документации понятно только что flat, hashed and complex_key_hashed хранятся полностью в RAM
  • https://t.me/clickhouse_ru
    можно например select user, groupArray(number) from table group by user
  • https://t.me/clickhouse_ru
    @ivanvolkov #74116 11:23 AM, 08 Nov 2018
    там порядок может быть любой, мне такое не подойдет
  • https://t.me/clickhouse_ru
    не понял какой другой порядок?
    user2;300;2
    user1;100;1
    user1;300;2
    user2;100;1
    user2;200;3
    user1;200;3
    ? такой например
  • https://t.me/clickhouse_ru
    @ivanvolkov #74118 11:26 AM, 08 Nov 2018
    я просто не допонял, меня вот такая констукция устроит, спасибо за ответ
    select user, groupArray(status), groupArray(count) from table group by user
  • @githubreleases_bot #74120 b o t 12:07 PM, 08 Nov 2018
    yandex/ClickHouse was tagged: v18.14.13-stable
    Link: https://github.com/yandex/ClickHouse/releases/tag/v18.14.13-stable
    Release notes:
    v18.14.13-stable
    yandex/ClickHouse

    ClickHouse is a free analytic DBMS for big data. Contribute to yandex/ClickHouse development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @nicname ↶ Reply to #74104 #74121 12:16 PM, 08 Nov 2018
    я в c++ вообще не очень, но чет даже в коде репозитория не вижу использования этой переменной в том качестве, в котором оно предполагается.
    оно вообще работает? :)
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #74121 #74122 12:20 PM, 08 Nov 2018
    В последних релизах настройки Кафки в settings перенесли, можно посмотреть как оно теперь работает.
  • https://t.me/clickhouse_ru
    @kshvakov #74123 12:22 PM, 08 Nov 2018
    yandex/ClickHouse

    ClickHouse is a free analytic DBMS for big data. Contribute to yandex/ClickHouse development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @nicname #74124 12:22 PM, 08 Nov 2018
    ну вот я в коде основной ветки не вижу использования в движке (но тут может я не соображаю достаточно) и по поведению – ощущение что оно только по размеру буфера отрабатывает
  • https://t.me/clickhouse_ru
    @kshvakov #74125 12:26 PM, 08 Nov 2018
    yandex/ClickHouse

    ClickHouse is a free analytic DBMS for big data. Contribute to yandex/ClickHouse development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @kshvakov #74126 12:26 PM, 08 Nov 2018
    max_block_size
  • https://t.me/clickhouse_ru
    @nicname #74127 12:29 PM, 08 Nov 2018
    вот block_size есть, а stream_flush_interval_ms только тут
    https://github.com/yandex/ClickHouse/blob/6aec41a2bddeeb2fcaf528e7059e3d3f94ee0f6e/dbms/src/Storages/Kafka/StorageKafka.cpp#L524

    и limits.max_execution_time дальше вроде как используется только для ограничения по длительности запроса
    yandex/ClickHouse

    ClickHouse is a free analytic DBMS for big data. Contribute to yandex/ClickHouse development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    Кликхаус дешевле!
  • https://t.me/clickhouse_ru
    @olin32e #74131 02:34 PM, 08 Nov 2018
    а *баться можно дольше)
  • https://t.me/clickhouse_ru
    @chumric #74132 02:34 PM, 08 Nov 2018
    ощущения незабываемые
  • https://t.me/clickhouse_ru
    факт
  • @firej #74134 02:35 PM, 08 Nov 2018
    и нагрузки выдерживает больше
  • @alex13dgh #74135 02:35 PM, 08 Nov 2018
    и каждый раз новые ощущения, это главное )
  • И "приготовить" можно как хочешь.
  • @heyroman #74137 02:36 PM, 08 Nov 2018
    ну началось, стоило Алексею на хайлоад уехать
  • @firej #74138 02:36 PM, 08 Nov 2018
    хз, я уже зарепортил
  • https://t.me/clickhouse_ru
    @VasilyTarasevich #74139 02:37 PM, 08 Nov 2018
    И ... Можно весь рабочий день и ночь
  • @medov_alexey #74140 02:43 PM, 08 Nov 2018
    При использовании JDBC драйвера для ClickHouse периодически получаем ошибку message: Unexpected packet Hello received from client
  • @medov_alexey #74141 02:44 PM, 08 Nov 2018
    на трех версиях кликхауса попробовали
  • @medov_alexey #74142 02:44 PM, 08 Nov 2018
    не понимаем в чем дело
  • @medov_alexey #74143 02:44 PM, 08 Nov 2018
    иногда работает иногда нет
  • https://t.me/clickhouse_ru
    @chertus #74144 02:54 PM, 08 Nov 2018
    поищите сообщения о дисконнектах в логах. кажется, что-то похожее было с go-шным клиентом, который неправильно обрабатывал разрывы сессий
  • https://t.me/clickhouse_ru
    @chertus #74145 02:55 PM, 08 Nov 2018
    hello - это часть хэндшейка, кто-то решил что у него уже нет этой сессии - либо клиент либо сервер
  • @medov_alexey #74146 02:56 PM, 08 Nov 2018
    Joined.
  • @medov_alexey #74147 03:20 PM, 08 Nov 2018
    @kshvakov @Krashuevina две проблемы. По одной на каждого из вас.

    При использовании встроенного балансировщика с такими параметрами
    click_house_conn = "tcp://10.10.60.23:9000?username=agent&password=megAPassword&database=data&alt_hosts=10.10.60.24:9000&connection_open_strategy=in_order"

    Мы периодически отлавливаем ошибку: message: Unexpected packet Hello received from client.
    Как только удаляем все после названия базы в строке подключения, подключаясь только на одну ноду, ошибки нет вообще.

    =========

    Периодически дергая селект в кликхаусе с помощью jdbc из postgresql , мы получаем ошибку:
    jdbc-bridge is not running. Please, start it manually (еще скриншот для вас Александр)
  • @medov_alexey #74149 03:23 PM, 08 Nov 2018
    Прошу посмотрите пожалуйста, я уверен вы сможете что-нибудь сказать умное по этому поводу
  • https://t.me/clickhouse_ru
    @olin32e #74150 03:24 PM, 08 Nov 2018
    Привет!
    Такой вопрос про запись в из файла.
    Есть файлик, в котором разделитель "," и null как пустая строка
    И В строковый тип данных записывается пустота как null, а вот в числовой - нет
    и падает с такой ошибкой
    ",,,,,,,,,," is not like Float32
    можно ли как-то указать формат null отличный от \N? Или мб есть какой-то другой способ записывать пустоту как null?
    Не хотелось бы во всем файле пустые значения заменять на \N
  • https://t.me/clickhouse_ru
    @chertus ↶ Reply to #74150 #74151 03:31 PM, 08 Nov 2018
    пока нет. есть пул-реквест на возможность указывать default значения в источниках данных (допускающих пустые значения), но он слишком много всего меняет, пока не добавили. Ожидается, что для этих колонок можно будет задать default-ы и они применятся
  • https://t.me/clickhouse_ru
    @olin32e #74152 03:40 PM, 08 Nov 2018
    Вроде получилось записать, если у полей выставить Nullable(Float32).
    Такой тип может как-то сказаться на производительности?
  • https://t.me/clickhouse_ru
    @chertus #74153 03:42 PM, 08 Nov 2018
    https://clickhouse.yandex/docs/ru/data_types/nullable/ "Почти всегда использование Nullable снижает производительность, учитывайте это при проектировании своих баз."
  • https://t.me/clickhouse_ru
    @inv2004 #74154 03:49 PM, 08 Nov 2018
    Всем привет. А кто-то с timescale сравнивал производительность?
  • https://t.me/clickhouse_ru
    не встречал, но это не сложно сделать самому с помощью https://github.com/timescale/tsbs
    GitHub - timescale/tsbs: Time Series Benchmark Suite, a tool for comparing and evaluating databases for time series data

    Time Series Benchmark Suite, a tool for comparing and evaluating databases for time series data - GitHub - timescale/tsbs: Time Series Benchmark Suite, a tool for comparing and evaluating databases...

  • @ligich #74156 04:21 PM, 08 Nov 2018
    всем привет. наливаю реплику с 0. вот такое в логах: (ReplicatedMergeTreeQueue): Not executing log entry for part 20181101_20181107_0_2781_174 because another log entry for the same part is being processed. This shouldn't happen often.
    как я понимаю мерджи остановились и данные не приезжают. подскажите что-нить пожалуйста!
  • @ligich #74157 04:31 PM, 08 Nov 2018
    SELECT database, table, merges_in_queue FROM system.replicas WHERE merges_in_queue>0;

    показывает что учереди не уменьшаются. кто-то сталкивался ?
  • @ligich #74158 04:51 PM, 08 Nov 2018
    разобрался. на пересетапленной ноде более новая версия встала. поставил как на остальных и все заработало
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #74147 #74159 05:15 PM, 08 Nov 2018
    Привет, продублируй в личку чтоб я не забыл, у меня сейчас нет компьютера под рукой чтоб посмотреть
  • Недавно было сравнение от @alexanderzaitsev с использованием официальных бенчмарков Timescale (у них висит pull request с добавлением поддержки ClickHouse в бенчмарке).

    Попрошу его скинуть ссылку.
  • https://t.me/clickhouse_ru
    @inv2004 #74161 05:34 PM, 08 Nov 2018
    Спасибо.
  • https://t.me/clickhouse_ru
    Сравнивали как раз при помощи tsbs. На следующей неделе опубликуем
  • Хорошо, спасибо 🙂
  • https://t.me/clickhouse_ru
    @inv2004 #74164 05:36 PM, 08 Nov 2018
    Я думаю результат ~понятен. Но интересует степень отставания. Смотрю на timescale , так как оно не требовательно по помяти на очень бюджетных хостингах.
  • https://t.me/clickhouse_ru
    для сравнения можно еще ознакомиться со статьей https://medium.com/@valyala/when-size-matters-benchmarking-victoriametrics-vs-timescale-and-influxdb-6035811952d4
    When size matters — benchmarking VictoriaMetrics vs Timescale and InfluxDB

    Recently Timescale published Time Series Benchmark Suite (TSBS) — a framework for TSDB benchmarking. Let’s give it a try.

  • https://t.me/clickhouse_ru
    Здорово!
  • https://t.me/clickhouse_ru
    было бы интересно посмотреть сравнение ch и timescaledb на нодах 4-8-16гб рамы, да
  • https://t.me/clickhouse_ru
    @inv2004 ↶ Reply to #74165 #74170 06:55 PM, 08 Nov 2018
    Как принято говорить "печально"
  • https://t.me/clickhouse_ru
    @mr_kostomarov #74171 06:57 PM, 08 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @negasus #74172 07:02 PM, 08 Nov 2018
    @milovidov_an с премией HighLoad 🍻
  • https://t.me/clickhouse_ru
    @markvandal #74173 07:03 PM, 08 Nov 2018
    Joined.
  • Спасибо!
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #74174 #74175 07:12 PM, 08 Nov 2018
    🥇🏆🍻🥂
  • 👍👍👍
  • @sklepych #74178 08:09 PM, 08 Nov 2018
    уважаемые, вопрос не совсем в тему, есть здесь кассандра эксперты? черканите в личку, надо бы посоветоваться, сорри за офтоп. спасибо.
  • https://t.me/clickhouse_ru
    @iusik #74179 08:12 PM, 08 Nov 2018
    Были ли у кого-то следующая ошибка Table structure in ZooKeeper is too different from local table structure. ?
    Возникла после удаления таблиц и создания новой.
  • Это значит, что в ZooKeeper осталась запись о таблице, потому что были удалены не все её реплики.
  • @milovidov_an #74181 08:14 PM, 08 Nov 2018
    Посмотрите в ноде путь_к_таблице/replicas.
  • @milovidov_an #74182 08:14 PM, 08 Nov 2018
    Если какой-то сервер исчез и не будет восстановлен, то запись о реплике потребуется удалить из ZK самостоятельно.
  • https://t.me/clickhouse_ru
    @iusik #74183 08:15 PM, 08 Nov 2018
    Спасибо, буду изучать.
  • https://t.me/clickhouse_ru
    @iusik #74184 08:16 PM, 08 Nov 2018
    Но дело в том что таблице все были удалены корректно
  • https://t.me/clickhouse_ru
    @MaximNM ↶ Reply to #74170 #74185 09:23 PM, 08 Nov 2018
    is ch faster than tc?
  • @rusdacent #74186 09:28 PM, 08 Nov 2018
    Мало ли кто не в курсе =)
    https://t.me/HighLoadTalks/18122
    Kirill Shvakov in Чат конференции HighLoad++

    Очень много вопросов о ClickHouse, завтра будет митап где мы попробуем рассказать как легче войти в "технологию", расскажем о плюсах/минусах и как эти особенности использовать во благо себе, митап крайний и, надеюсь, границ по времени жестких нет. И вот теперь вопрос пользователям, слушателям или тем кто только собирается заиспользовать КХ: кидайте сюда или в личку свои вопросы/проблемы, а завтра мы попробуем их наглядно порешать, либо предложить пути решения проблем. В том числе попробуем, если интересно, развернуть кластер с репликами и шардами в LXC, но это по времени затратно и можно это сделать в обед, пинганите меня если интересно и я сделаю howto и найдем место и поиграемся в кластера )

  • @rusdacent #74187 09:28 PM, 08 Nov 2018
    Очень много вопросов о ClickHouse, завтра будет митап где мы попробуем рассказать как легче войти в "технологию", расскажем о плюсах/минусах и как эти особенности использовать во благо себе, митап крайний и, надеюсь, границ по времени жестких нет.
    И вот теперь вопрос пользователям, слушателям или тем кто только собирается заиспользовать КХ: кидайте сюда или в личку свои вопросы/проблемы, а завтра мы попробуем их наглядно порешать, либо предложить пути решения проблем. В том числе попробуем, если интересно, развернуть кластер с репликами и шардами в LXC, но это по времени затратно и можно это сделать в обед, пинганите меня если интересно и я сделаю howto и найдем место и поиграемся в кластера )
  • @faerics ↶ Reply to #74187 #74188 09:30 PM, 08 Nov 2018
    запись будет?
  • Я линк дал на чат. Спроси там.
  • @faerics ↶ Reply to #74189 #74190 09:31 PM, 08 Nov 2018
    лол, я не заметил, что это в другой чат. Думал, на сообщение в этом же.. сорри за оффтоп
  • Без проблем =)
  • https://t.me/clickhouse_ru
    @kshvakov #74192 09:32 PM, 08 Nov 2018
    С митапа не будет, поэтому по макимуму попробуем использовать день, если интересно кому )
  • @rusdacent #74193 09:32 PM, 08 Nov 2018
    А Кирилл тут же есть... Наверное, можно и тут дёрнуть =)
  • @rusdacent #74194 09:32 PM, 08 Nov 2018
    О... =))
  • @ovovka #74195 10:18 PM, 08 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @inv2004 ↶ Reply to #74185 #74196 10:32 PM, 08 Nov 2018
    Я не знаю точно, но в статье + нашел аналогичное на сайте tc, упоминается что нет компрессии, что для big data (не говоря просто о скорости чтения) - довольно важно.
  • https://t.me/clickhouse_ru
    @vnikita #74197 11:04 PM, 08 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @MaximNM ↶ Reply to #74196 #74198 11:24 PM, 08 Nov 2018
    Спасибо за уточнение. У меня задачка с биржи льется поток orders & trades нужно сохранять, вот думаю какую базу лучше использовать
    TimescaleDB or ClickHouse какие pros & cons получу от каждой
    Если кто то сталкивался, подскажите куда копать
  • https://t.me/clickhouse_ru
    @inv2004 ↶ Reply to #74198 #74199 11:27 PM, 08 Nov 2018
    У меня и на работе и дома для pet-проекта аналогичная задача. Но так как на работе нет ограничений по железу - там много решений, однако для дома, и траффик не такой большой, и 2-4gb памяти и диск хотел бы ужать, из-за этих ограничений не уверен что туда ch подойдёт (из-за помяти). А tc по диску вот не подходит оказывается.
  • 09 November 2018 (164 messages)
  • https://t.me/clickhouse_ru
    @heckfi #74200 01:49 AM, 09 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    Вкратце — на легких миллисекундных запросах с высокой локальностью данных (выборка по конкретному чему-то) tc будет несколько быстрее, на более тяжелых агрегациях (статистика для много чего-то) — ch будет сильно быстрее.
  • https://t.me/clickhouse_ru
    @inv2004 ↶ Reply to #74201 #74202 03:59 AM, 09 Nov 2018
    Посмотреть бы на запросы. Сильно тяжёлые уже не так важно сколько. Интересно от простых до одной группировки например.
  • https://t.me/clickhouse_ru
    @alexanderzaitsev #74203 04:01 AM, 09 Nov 2018
    Вот список запросов: https://github.com/timescale/tsbs#appendix-i-query-types
    GitHub - timescale/tsbs: Time Series Benchmark Suite, a tool for comparing and evaluating databases for time series data

    Time Series Benchmark Suite, a tool for comparing and evaluating databases for time series data - GitHub - timescale/tsbs: Time Series Benchmark Suite, a tool for comparing and evaluating databases...

  • https://t.me/clickhouse_ru
    @alexanderzaitsev #74204 04:04 AM, 09 Nov 2018
    TC быстрее на single groupby — там серднее время выполнения единицы или десятки миллисекунд. Так что оно не так важно
    CH быстрее на double groupby и high cpu — там среднее выполнение запросов измеряется секундами или десятками секунд, поэтому сильно заметно
  • https://t.me/clickhouse_ru
    @alexanderzaitsev #74206 04:04 AM, 09 Nov 2018
    TC сильно быстрее на lastpoint и group by order by limit — CH не умеет эффективно это выполнять.
  • https://t.me/clickhouse_ru
    @inv2004 ↶ Reply to #74204 #74207 04:05 AM, 09 Nov 2018
    Получается tc довольно быстрый.
  • https://t.me/clickhouse_ru
    @alexanderzaitsev #74208 04:07 AM, 09 Nov 2018
    В сравнении с InfluxDB — да, быстрый. В сравнении с CH — ну вот смотря для чего. Мне кажется, что если запрос выполняется 30 или 40 миллисекунд — это не так важно. А 10 или 50 секунд (не милли) — это уже существенно.
  • https://t.me/clickhouse_ru
    @inv2004 ↶ Reply to #74206 #74209 04:07 AM, 09 Nov 2018
    Довольно ключевая вещь для timeseries(финансовых), имхо
  • https://t.me/clickhouse_ru
    Да. Тут однозначно TC выигрывает (разница в порядки). Во всех остальных — CH по совокупности лучше
  • https://t.me/clickhouse_ru
    @inv2004 ↶ Reply to #74208 #74211 04:09 AM, 09 Nov 2018
    Ну вот 5 или 15 на простых тоже существенно. Так что без полной картины я не особо могу обсуждать.
  • https://t.me/clickhouse_ru
    @alexanderzaitsev #74212 04:10 AM, 09 Nov 2018
    Light queries, time in ms
    Test Name ClickHouse TimescaleDB InfluxDB
    single-groupby-1-1-1 13,67 4,39 2,6
    single-groupby-1-1-12 14,97 38,35 13,84
    single-groupby-5-1-1 22,46 4,72 6,72
    single-groupby-5-1-12 24,24 41,49 55,84
    cpu-max-all-1 37,51 45,02 59,12
    high-cpu-1 18,69 36,14 20,07
    single-groupby-1-8-1 37,51 23,98 8,24
    single-groupby-5-8-1 72,73 24,65 31,07

    Heavy queries, time in s
    Test Name ClickHouse TimescaleDB InfluxDB
    groupby-orderby-limit 2,2014 0,08289 67,9422
    double-groupby-1 2,40525 31,48191 8,02475
    lastpoint 4,62182 0,60388 2,24293
    double-groupby-5 6,59089 41,52558 37,9129
    double-groupby-all 12,57339 52,95058 76,19916
    high-cpu-all 11,04427 17,33342 80,75683
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @alexanderzaitsev #74216 04:13 AM, 09 Nov 2018
    Как-то так это выглядит
  • https://t.me/clickhouse_ru
    @alexanderzaitsev #74217 04:16 AM, 09 Nov 2018
    В PR можно посмотреть запросы: https://github.com/timescale/tsbs/pull/26
    Add a feature ClickHouse database support by sunsingerus · Pull Request #26 · timescale/tsbs

    ClickHouse can be tested along with all other DBses. ClickHouse implementation is based on TimescaleDB.

  • https://t.me/clickhouse_ru
    @inv2004 #74218 04:18 AM, 09 Nov 2018
    Ага, спасибо, посмотрю обязательно.
  • @710847089 #74219 05:27 AM, 09 Nov 2018
    Joined.
  • @718200719 #74221 05:27 AM, 09 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    Спрашивай, если еще актуально.
  • https://t.me/clickhouse_ru
    @duckhawk #74224 06:42 AM, 09 Nov 2018
    утро доброе. подскажите, пожалуйста, а clickhouse не умеет динамически альтерить таблицу при инсерте, как эластикс? типа добавилась колонка, он alter сделал?
    (подозреваю, что нет, но все-таки)
  • @realfair #74225 06:42 AM, 09 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Vasyaabr ↶ Reply to #74224 #74226 06:47 AM, 09 Nov 2018
    Нет
  • https://t.me/clickhouse_ru
    @duckhawk ↶ Reply to #74226 #74227 06:47 AM, 09 Nov 2018
    спасибо
  • https://t.me/clickhouse_ru
    @studnev ↶ Reply to #74227 #74228 07:14 AM, 09 Nov 2018
    И слава богу!
  • https://t.me/clickhouse_ru
    @pixeljetter #74233 08:11 AM, 09 Nov 2018
    кто-нибудь пользуется кликхаусом для сбора nginx/apache/email логов? хочется elk заменить очень, не очень понятно какой лог шиппер взять
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74234 08:13 AM, 09 Nov 2018
    +
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74235 08:13 AM, 09 Nov 2018
    Fluentd+kafka
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74236 08:14 AM, 09 Nov 2018
    16000 строк в секунду обрабатывает
  • https://t.me/clickhouse_ru
    У меня пока в проекте - смотрю в сторону clicktail
  • https://t.me/clickhouse_ru
    @pixeljetter #74238 08:16 AM, 09 Nov 2018
    я хотел fluentbit и без кафки попробовать, напрямую в ch, было бы супер минималистично - но по форматам данных не сходится
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74239 08:16 AM, 09 Nov 2018
    Ставя кафку, ставится zoo
  • https://t.me/clickhouse_ru
    @pixeljetter #74240 08:16 AM, 09 Nov 2018
    не хочется джаву заводить для мелких деплойментов
  • https://t.me/clickhouse_ru
    @Krashuevina #74241 08:17 AM, 09 Nov 2018
    Клик с репликацией тоже будет требовать zoo
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74242 09:05 AM, 09 Nov 2018
    Правильно ли я понимаю, что версия zoo /zookeeper-3.4.13.jar от 15 июля не подойдет для репликации?
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74243 09:05 AM, 09 Nov 2018
    и нужен именно 3.4.5+ ?
  • https://t.me/clickhouse_ru
    13>5
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74245 09:06 AM, 09 Nov 2018
    хотя... я похоже не проснулся -_-
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74246 09:06 AM, 09 Nov 2018
    пятница
  • https://t.me/clickhouse_ru
    @generalovav #74247 09:07 AM, 09 Nov 2018
    Joined.
  • @798454842 #74248 09:08 AM, 09 Nov 2018
    Joined.
  • @731019057 #74249 09:09 AM, 09 Nov 2018
    Joined.
  • @648788669 #74250 09:09 AM, 09 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    а размеры данных на диске ch vs timescaledb какие получились?
  • https://t.me/clickhouse_ru
    CH - 3G
    Timescale - 26G
    Influx - 458M. Видимо, использует всякий delta или double delta encoding
  • https://t.me/clickhouse_ru
    @alexanderzaitsev #74256 10:56 AM, 09 Nov 2018
    В CH обещают добавить дельты очень скоро
  • https://t.me/clickhouse_ru
    @pixeljetter #74257 10:57 AM, 09 Nov 2018
    👍
  • @odainic #74258 11:32 AM, 09 Nov 2018
    #вопрос
    А есть какая нить функция как toStartOfYear только для недель? Округлить дату до понедельника?
  • @odainic #74259 11:33 AM, 09 Nov 2018
    Отбой) Нашел)
  • https://t.me/clickhouse_ru
    @Sablast ↶ Reply to #74258 #74260 11:33 AM, 09 Nov 2018
    toMonday
  • @faerics ↶ Reply to #74258 #74261 11:33 AM, 09 Nov 2018
    а каков хештег)
  • @dartyun #74262 11:46 AM, 09 Nov 2018
    Joined.
  • @grinias #74263 11:46 AM, 09 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @prokaktus #74264 11:46 AM, 09 Nov 2018
    Joined.
  • @513786500 #74265 11:51 AM, 09 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Burtsev #74266 11:55 AM, 09 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Viaprog #74267 11:55 AM, 09 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @a0efx #74268 11:58 AM, 09 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @551387688 #74269 12:11 PM, 09 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @citronix #74270 12:16 PM, 09 Nov 2018
    A range_hashed справочники только Date поддерживают?
  • https://t.me/clickhouse_ru
    @citronix #74271 12:16 PM, 09 Nov 2018
    без DateTime?
  • https://t.me/clickhouse_ru
    @valyala ↶ Reply to #74256 #74272 12:20 PM, 09 Nov 2018
    Вот фичереквест https://github.com/yandex/ClickHouse/issues/838
    Feature request: add ability to apply delta or delta-of-delta encoding to numeric columns before compression · Issue #838 · yandex/ClickHouse

    Clickhouse fits well for time-series DB from the performance point of view. But the compression ratio for the data stored in such databases may be further improved. Tables in time-series DBs usuall...

  • https://t.me/clickhouse_ru
    Date и целочисленные типы.
  • https://t.me/clickhouse_ru
    @valyala #74274 12:25 PM, 09 Nov 2018
    Пока ждали добавления дельтакодинга, создали собственную tsdb, используя "фишки" кликхауса - https://medium.com/devopslinks/victoriametrics-creating-the-best-remote-storage-for-prometheus-5d92d66787ac :) В кх кроме дельта кодинга не хватает индексов по произвольным лейблам для временных рядов, как в прометеусе
    VictoriaMetrics — creating the best remote storage for Prometheus

    The first public announcement of VictoriaMetrics — the best remote storage for Prometheus

  • https://t.me/clickhouse_ru
    @alexanderzaitsev #74275 12:28 PM, 09 Nov 2018
    Круто! Хотя еще круче и полезнее было бы допилить КХ, а не создавать новую tsdb )
  • @sichkarev #74276 12:30 PM, 09 Nov 2018
  • https://t.me/clickhouse_ru
    @valyala #74277 12:30 PM, 09 Nov 2018
    КХ - инструмент для широких нужд, а мы делаем спкциализированное решение только для tsdb
  • https://t.me/clickhouse_ru
    @alexanderzaitsev #74278 12:31 PM, 09 Nov 2018
    Как любит говорить Майкл Стоунбрейкер — One size does not fit all.
  • https://t.me/clickhouse_ru
    @Trigger1985 #74279 12:34 PM, 09 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Trigger1985 #74280 12:35 PM, 09 Nov 2018
    Всем привет!
    Кто нибудь использует update в продакшен?
  • @password007 #74281 12:36 PM, 09 Nov 2018
    Привкт! Подскажите, если имеешь много данных, столбцы которых встречаются в ивентах не всегда везде - следует создавать изначально много таблиц под каждый типа данных, либо одну таблицу, но с nullable столбцами
  • https://t.me/clickhouse_ru
    @nicname ↶ Reply to #74281 #74282 12:37 PM, 09 Nov 2018
    второй вариант более кх-вей
  • https://t.me/clickhouse_ru
    @nicname #74283 12:39 PM, 09 Nov 2018
    ну только лучше пустые колонки, чем nullable
  • @password007 #74285 12:41 PM, 09 Nov 2018
    Спасибо! а столбец со временем у нас с точностью до милисекунд - использовать как DateTime не выйдет. Придется использовать его как строку. Грозит ли это чем то плохим?
  • https://t.me/clickhouse_ru
    а что если иметь столбец DateTime, плюс UInt16 с миллисекундами?
  • @password007 #74287 12:44 PM, 09 Nov 2018
    О, спасибо!
  • https://t.me/clickhouse_ru
    @valyala ↶ Reply to #74285 #74288 12:46 PM, 09 Nov 2018
    Лучше одной колонкой UInt64 с таймстемпом в миллисекундах
  • https://t.me/clickhouse_ru
    А как partitioning key сформулировать?
  • https://t.me/clickhouse_ru
    @rasstr0en #74290 12:53 PM, 09 Nov 2018
    Оффтопик по хайлоаду - митап в 17 будет же? А где?
  • @796304724 #74292 12:54 PM, 09 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @alexanderzaitsev #74294 12:59 PM, 09 Nov 2018
    Владивосток
  • @ovovka #74295 01:00 PM, 09 Nov 2018
    кликхаус хорош, но вот в качестве буфера/worker-а все делают свой велосипед, нет ли какого-то готового решения для накопления инсертов и последующей вставки пачки инсертов раз в n-секунд?
  • https://t.me/clickhouse_ru
    @Imaskar #74296 01:00 PM, 09 Nov 2018
    engine = buffer ?)
    многие говорят, что он не катит, но не совсем понятно почему
  • https://t.me/clickhouse_ru
    @Imaskar #74297 01:01 PM, 09 Nov 2018
    а если есть проблемы, то может его допилить, а не велосипедить?
  • https://t.me/clickhouse_ru
    Он не катит, начиная с какого-то количества инсертов в единицу времени. Но, впрочем, у меня до этого не доходит пока что.
  • https://t.me/clickhouse_ru
    partition by A/1000/3600/24/7/4
  • https://t.me/clickhouse_ru
    @nicname ↶ Reply to #74295 #74300 01:04 PM, 09 Nov 2018
    кафка как вариант, хотя тоже не без претензий
  • https://t.me/clickhouse_ru
    @ysagan ↶ Reply to #74300 #74301 01:09 PM, 09 Nov 2018
    это да, и самая раздражающая - неработающий stream_flush_interval_ms
  • https://t.me/clickhouse_ru
    @nicname ↶ Reply to #74301 #74302 01:09 PM, 09 Nov 2018
    вы тоже на него наткнулись? я вчера прям удивился
  • https://t.me/clickhouse_ru
    @ysagan #74303 01:12 PM, 09 Nov 2018
    да, пока сделали «ход конём» - на уровне сервера ставим max_block_size в мелкое значение (100 по-моему)
    так запись идёт быстрее более-менее

    но чтение при этом тоже страдает
    поэтому в читателях при коннекте сессионно возвращаем в дефолт
    а-ля

    if _, err := connect.Exec("SET max_block_size=65536"); err != nil {
    return nil, err
    }

    думаю, как допилим основную функциональность, вернёмся к этому и может созреем до PR-а и фикса этого всего
  • https://t.me/clickhouse_ru
    @ysagan #74304 01:13 PM, 09 Nov 2018
    хотя в ченьжлоге видел, что блок сайз теперь можно делать и потаблично
    но это тоже такое, полумера, кмк
  • https://t.me/clickhouse_ru
    @nicname #74305 01:14 PM, 09 Nov 2018
    работающий stream_flush_interval_ms нужен, конечно
  • @NickNesterenko #74306 01:17 PM, 09 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @vadbes46 #74307 01:23 PM, 09 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    насколько я понял (читая переписку в тикетах) проблема в том что невозможно со стороны читающего сфлашить недочитаннный блок(max_block_size), и там неясно что вообще делать.
  • https://t.me/clickhouse_ru
    теперь уже можно для кафка таблицы, не?
  • https://t.me/clickhouse_ru
    @ysagan ↶ Reply to #74309 #74310 01:32 PM, 09 Nov 2018
    да, я тут про это как раз

    > хотя в ченьжлоге видел, что блок сайз теперь можно делать и потаблично
    > но это тоже такое, полумера, кмк
  • https://t.me/clickhouse_ru
    @nicname ↶ Reply to #74308 #74311 01:33 PM, 09 Nov 2018
    я чет даже issue по этому поводу не нашел, в код полез
  • @odainic #74312 01:34 PM, 09 Nov 2018
    А есть в CH какая нить функция типа transpose или pivot? как просто развернуть таблицу?
  • https://t.me/clickhouse_ru
    @ysagan ↶ Reply to #74311 #74313 01:35 PM, 09 Nov 2018
    https://github.com/yandex/ClickHouse/issues/2169
    https://github.com/yandex/ClickHouse/issues/2508
    https://github.com/yandex/ClickHouse/issues/2382
    ClickHouse Kafka Performance Issue · Issue #2169 · yandex/ClickHouse

    Following the example from the documentation: https://clickhouse.yandex/docs/en/table_engines/kafka/ I created a table with Kafka Engine and a materialized view that pushes data to a MergeTree tabl...

  • https://t.me/clickhouse_ru
    @nicname ↶ Reply to #74313 #74314 01:36 PM, 09 Nov 2018
    спасибо, видимо под вечер уже глюки начались
  • @ilstreltsov #74315 01:49 PM, 09 Nov 2018
    Подскажите, какой тип указывать для поля, если я там JSON хранить будут? тупо string?
  • @avsevolodov #74316 01:51 PM, 09 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    string
  • 👍
  • @790962849 #74320 02:00 PM, 09 Nov 2018
    Joined.
  • @789768416 #74321 02:00 PM, 09 Nov 2018
    Joined.
  • @antonio_antuan #74322 03:10 PM, 09 Nov 2018
    привет всем. есть табличка документов с колонками source string, topics array(string). есть два вопроса :)
    1. будет ли этот запрос менее прожорлив по памяти, чем аналогичный запрос с подзапросом и arrayJoin'ом
    select domain, groupUniqArrayArray(topics)
    from documents
    group by domain
    2. нужно написать запрос выше так, чтобы в итоговом массиве порядок элементов соответствовал частоте появления элементов. т.е., если короче, отсортировать топики по популярности. возможно ли это?
  • @antonio_antuan #74323 03:14 PM, 09 Nov 2018
    ну или мб можно рядом с массивом топиков положить ещё одну колонку, в которой каждый элемент будет обозначать частоту появления топика
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #74324 03:16 PM, 09 Nov 2018
    1. Зависит от того. насколько "длинные" у вас массивы
    2. Есть функция arraySort
  • 1. запрос с arrayJoin сваливается по памяти. какова вероятность, что свалится и запрос с groupUniqArrayArray?
    2. спасибо :)
  • @medov_alexey #74327 03:36 PM, 09 Nov 2018
    При вызове определенного метода расчета много раз подряд, память забивается с 3 гигабайт до 28 гигабайт в течении секунд 30. Потом, после обработки всех вызовов, в течении 5 минут освобождает память до 6 гигабайт. То есть забивается очень быстро, а освобождает не так быстро.
  • https://t.me/clickhouse_ru
    @stufently #74328 03:38 PM, 09 Nov 2018
    Это нормально
  • @medov_alexey #74329 03:39 PM, 09 Nov 2018
    После того как занятым остается 6 гигабайт, минут 10 проходит до 4 гигабайт
  • @medov_alexey #74330 03:39 PM, 09 Nov 2018
    так долго освобождать
  • @medov_alexey #74331 03:39 PM, 09 Nov 2018
    почему нельзя быстрее ?)
  • https://t.me/clickhouse_ru
    @stufently #74332 03:42 PM, 09 Nov 2018
    А куда торопиться
  • https://t.me/clickhouse_ru
    @Shegloff #74333 03:42 PM, 09 Nov 2018
    это быстро :) раньше намного медленнее освобождало
  • @medov_alexey #74334 03:43 PM, 09 Nov 2018
    Мы нагрузочное проверяли, 30 вызовов в секунду. 24 гигабайта сьело за 10 секунд
  • https://t.me/clickhouse_ru
    @Sablast #74336 04:04 PM, 09 Nov 2018
    подскажите, как сделать splitByChar(',', arrayStringConcat(quantiles(), ',')) ? не знаю как превратить результат quantiles() в строки =(
  • https://t.me/clickhouse_ru
    Это даже не нагрузочное 30рпс на мелких запросах
  • https://t.me/clickhouse_ru
    @Malikit1984 #74338 04:12 PM, 09 Nov 2018
    КликХаус не тормозит - пока что он падает
  • https://t.me/clickhouse_ru
    @chertus ↶ Reply to #74338 #74339 04:18 PM, 09 Nov 2018
    где падает? не срабатывают лимиты по памяти?
  • @medov_alexey #74340 04:19 PM, 09 Nov 2018
    На сервере 48 Гб памяти, настройки на пользователя по памяти дефолтные
  • @medov_alexey #74341 04:19 PM, 09 Nov 2018
    Все запросы выполняються из под одного пользователя
  • https://t.me/clickhouse_ru
    @chertus #74342 04:20 PM, 09 Nov 2018
    падают запросы или сам сервер?
  • @medov_alexey #74343 04:20 PM, 09 Nov 2018
    Сервер
  • @medov_alexey #74344 04:20 PM, 09 Nov 2018
    Память растет пока не закончится
  • @medov_alexey #74345 04:20 PM, 09 Nov 2018
    Потом сервер падает
  • https://t.me/clickhouse_ru
    @chertus #74346 04:21 PM, 09 Nov 2018
    давайте issue на github-е с деталями
  • https://t.me/clickhouse_ru
    @nicname ↶ Reply to #74336 #74347 04:21 PM, 09 Nov 2018
    через arrayMap можно попробовать
    SELECT arrayMap(x -> toString(x), [1, 2, 3]);
  • @antonio_antuan #74348 04:21 PM, 09 Nov 2018
    как можно превратить [1,2,3], [4,5,6] в три строки:
    1|4
    2|5
    3|6
  • @antonio_antuan #74349 04:21 PM, 09 Nov 2018
    ?
  • @antonio_antuan #74350 04:22 PM, 09 Nov 2018
    т.е. имеем одну строку, получаем три
  • https://t.me/clickhouse_ru
    @Sablast ↶ Reply to #74347 #74351 04:26 PM, 09 Nov 2018
    да так работает, спасибо =)
  • https://t.me/clickhouse_ru
    @ad0x01 #74352 04:29 PM, 09 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #74348 #74353 04:35 PM, 09 Nov 2018
    select xx,yy from (select [1,2,3] as x, [4,5,6] as y) array join x as xx,y as yy
  • @antonio_antuan #74354 04:36 PM, 09 Nov 2018
    спасибо
  • @269550333 #74355 04:37 PM, 09 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #74353 #74356 04:49 PM, 09 Nov 2018
    SELECT
    replaceRegexpOne(q, '(.*),(.*)', '\\1') AS q1,
    replaceRegexpOne(q, '(.*),(.*)', '\\2') AS q2
    FROM
    (
    SELECT arrayJoin(arrayMap(x -> concat(toString(arr1[indexOf(arr2, x)]), ',', toString(x)), arr2)) AS q
    FROM
    (
    SELECT
    [1, 2, 3] AS arr1,
    [4, 5, 6] AS arr2
    )
    )

    ┌─q1─┬─q2─┐
    │ 1 │ 4 │
    │ 2 │ 5 │
    │ 3 │ 6 │
    └────┴────┘
    😂😂😂
  • @antonio_antuan #74357 04:53 PM, 09 Nov 2018
    а если обратная ситуация, собрать эти три строки в два массива, но с сохранением порядка? т.е. нужно гарантировать, что получится именно [1,2,3], [4,5,6], а не [1,3,2], [6,5,4]
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #74356 #74358 04:53 PM, 09 Nov 2018
    но ведь можно arrayMap сразу на два массива натравить
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #74357 #74359 04:53 PM, 09 Nov 2018
    groupArray так и работает.
  • @antonio_antuan #74360 04:53 PM, 09 Nov 2018
    о, правда? мне казалось, что наоборот указано, что порядок может быть любым...
  • @antonio_antuan #74361 04:54 PM, 09 Nov 2018
    Составляет массив из значений аргумента. Значения в массив могут быть добавлены в любом (недетерминированном) порядке.
    видимо, речь про то, что порядок может быть любым, но зависимость между элеементами двух массивов сохранится?
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #74358 #74362 04:55 PM, 09 Nov 2018
    Сорян...
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #74361 #74363 04:56 PM, 09 Nov 2018
    да, должно работать.
  • @antonio_antuan #74364 04:58 PM, 09 Nov 2018
    угу, работает. большое спасибо :)
  • @269550333 #74365 06:19 PM, 09 Nov 2018
    Подскажите где про детали работы engine типа Log можно почитать .
  • @ovovka #74366 06:33 PM, 09 Nov 2018
    /stat@combot
  • https://t.me/clickhouse_ru
  • @dmytro_aleksandrov #74370 07:15 PM, 09 Nov 2018
    Joined.
  • @milovidov_an #74372 07:27 PM, 09 Nov 2018
    Выложена презентация с HighLoad++:
    https://yadi.sk/d/ZXT2sd59-GqKHw

    Также есть на GitHub:
    https://github.com/yandex/clickhouse-presentations/tree/master/highload2018

    Видео: https://youtu.be/hkcOmILykas?t=10961
    (сам ещё не смотрел)
  • @762365597 #74373 07:36 PM, 09 Nov 2018
    Joined.
  • @712167748 #74374 07:36 PM, 09 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #74372 #74377 07:39 PM, 09 Nov 2018
    Спасибо, я как раз по какой-то непонятной причине его пропустил
  • https://t.me/clickhouse_ru
    @ivor06 #74378 08:47 PM, 09 Nov 2018
    Спасибо за доклад!
  • @alexeysetevoi #74379 09:43 PM, 09 Nov 2018
    2048 мемберов группы, между прочим
  • https://t.me/clickhouse_ru
    @vladimirmyuge #74380 09:45 PM, 09 Nov 2018
    R language and Statistical data analysis
    Язык программирования R, статистика и машинное обучение/data mining
    За спам и флуд -- бан
    Публикация вакансий по согласованию с админами
    https://t.me/rlang_ru
    R (язык программирования)

    Язык программирования R, статистика и машинное обучение / data mining !!! README: https://github.com/r-lang-group-ru/group-rules/blob/master/README.md#how-to-ask-a-good-question

  • https://t.me/clickhouse_ru
    @leidruid #74381 09:45 PM, 09 Nov 2018
    Отличная круглая цифра!
  • @T90jasd98 #74382 10:19 PM, 09 Nov 2018
    Число же
  • https://t.me/clickhouse_ru
    @valyala #74383 10:55 PM, 09 Nov 2018
    Цифра в 2049-ричной системе счисления
  • https://t.me/clickhouse_ru
    @Coderxlsn #74384 10:58 PM, 09 Nov 2018
    привет всем. а кто ловил ошибку
    Column count in parameter table (5) doesn't match column count in schema (28)
  • 10 November 2018 (45 messages)
  • https://t.me/clickhouse_ru
    @Cir0p #74385 01:26 AM, 10 Nov 2018
    Привет, как бекапить базу?
  • https://t.me/clickhouse_ru
    @Cir0p #74386 01:29 AM, 10 Nov 2018
    Желательно инкрементально
  • https://t.me/clickhouse_ru
    @stufently #74387 03:21 AM, 10 Nov 2018
    Бекапьте по дням
  • @Roman_Zhylak #74389 06:30 AM, 10 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @windoozatnick #74392 10:25 AM, 10 Nov 2018
    А что высматривать в консоли, если не коннектит табикс?
  • https://t.me/clickhouse_ru
    @windoozatnick #74393 10:25 AM, 10 Nov 2018
    База смотрит в интернет, и даже отдает 200 ок из браузера
  • @sr_maks1 #74394 10:34 AM, 10 Nov 2018
    Ребята всем хороших выходных и вопрос) Подскажите кто как делает инициализацию схем в кх для контейнера? Наподобие /docker-entrypoint-initdb.d/ в POSTGRESS
  • https://t.me/clickhouse_ru
    @stufently #74395 10:35 AM, 10 Nov 2018
    схемы в sql файл и потом в кх через клиента с мультиквери
  • @sr_maks1 #74396 10:39 AM, 10 Nov 2018
    ок. Спасиб!
  • https://t.me/clickhouse_ru
    https сделать для начала и на табиксе и на кх. Современные браузеры шибко умные и сильно не любят смеси http и https.
  • https://t.me/clickhouse_ru
    @stufently #74398 10:42 AM, 10 Nov 2018
    ну там if not exist на всякий случай
  • https://t.me/clickhouse_ru
    на табиксе висит сертификат, но он вроде протух. я пытался в апаче вообще отключить https, но он все равно редиректит на https, почему-то
  • https://t.me/clickhouse_ru
    Вобщем, либо везде работающий https, либо везде http.
  • https://t.me/clickhouse_ru
    Как вариант - включить в кх опцию для табикса на /
  • https://t.me/clickhouse_ru
    Сделал везде http, поехало, спасибо
  • @ligich #74404 12:02 PM, 10 Nov 2018
    всем привет. кто-то сталкивался с postpone_reason: Not executing log entry for part 20240610_20240610_1548_1706_6 because its size (8.03 MiB) is greater than current maximum (4.23 MiB). ? с ходу не найду что подкрутить.
  • https://t.me/clickhouse_ru
    @windoozatnick #74405 12:09 PM, 10 Nov 2018
    Не могу переключить бранч на stable, собирая CH на macOS.

    Сделал:
    git clone --recursive --depth=10 https://github.com/yandex/ClickHouse.git
    cd ClickHouse/
    git checkout stable
    ClickHouse/ClickHouse

    ClickHouse is a free analytics DBMS for big data. Contribute to ClickHouse/ClickHouse development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @windoozatnick #74406 12:10 PM, 10 Nov 2018
    на git checkout stable получаю pathspec 'stable' did not match any file(s) known to git.

    git branch показывает только master
    git tag молчит
  • https://t.me/clickhouse_ru
    @windoozatnick #74407 12:10 PM, 10 Nov 2018
    что я делаю не так?
  • https://t.me/clickhouse_ru
    @Dok2d ↶ Reply to #74372 #74408 12:19 PM, 10 Nov 2018
    Благодарю, шикарнейший доклад!
  • --depth <depth>
    Create a shallow clone with a history truncated to the specified number of commits. Implies --single-branch

    А откуда взяли depth?
  • https://t.me/clickhouse_ru
  • @milovidov_an #74411 12:38 PM, 10 Nov 2018
    Убрал из документации.
  • @sr_maks1 ↶ Reply to #74395 #74418 02:00 PM, 10 Nov 2018
    пытаюсь так и в таблицах пусто
    docker exec -ti -u 0 ch /usr/bin/clickhouse --client --multiline --multiquery "CREATE TABLE a1 ( timestamp UInt64, datetime DateTime) PARTITION BY YYYYMM(datetime) ORDER BY (datetime) SETTINGS index_granularity = 8192"
  • Спасибо. Читала, но есть непонятные места. Например.этот mark файл хранит пары (rows,offset). Это понятно. Ты.е когда CH пишет пачку строк, то он берет количество строк, которое уже было записано. Прибавляет к нему количество строк в пачке и вычисляет где они закончатся и тем самым получает пару ( rows, offset). Если бы был одни файл данных, то все было бы понятно. Но у нас их может быть много ( под каждую колонку) .
  • @269550333 #74420 02:08 PM, 10 Nov 2018
    Например у меня 2 колонки. В одной тип int, а в другой строка. Каждая строка по 1024 байт ровно. Какое будет смещение после 2х вставок по 100 строк
  • mrk файл в таблице типа Log хранит смещения сразу для всех файлов с данными.
  • @269550333 #74422 02:43 PM, 10 Nov 2018
    Это не совсем понятно. Там в каждой строчке есть имя файла или там у всех файлов с данными одно смещение. Например в mrk файле я вижу строку (1000,20000) и у меня 10 колонок. Значит ли это что в каждом из файлов с данными мне нужно спать 1000 строку по смещению 20000
  • https://t.me/clickhouse_ru
    @vsoloviev #74423 02:47 PM, 10 Nov 2018
    @milovidov_an спасибо за доклад на HL
  • Файлы с данными можно перечислить в определённом порядке. В mrk файл для каждой засечки записываются смещения в байтах в каждом из файлов с данными в этом порядке (они разные).
  • @milovidov_an #74425 02:49 PM, 10 Nov 2018
    Вам нужно знать структуру засечек для лучшего понимания (просто так) или чтобы восстановить повреждённую Log таблицу?
  • @269550333 #74426 03:25 PM, 10 Nov 2018
    Для понимая. Теперь понятно. Если у меня 5 колонок,то для каждого конкретного rows будет 5 записей с разными offset? . В документации говорится, что это позволяет читать данные в несколько потоков. Значит ли это, что при любой возможности CH будет запускать несколько потоков операционной системы?
  • > для каждого конкретного rows будет 5 записей с разными offset

    Да.

    > Значит ли это, что при любой возможности CH будет запускать несколько потоков операционной системы?

    Определяется настройкой max_threads.
  • @milovidov_an #74428 03:52 PM, 10 Nov 2018
    Замечу, что MergeTree таблицы лучше (более равномерно) распараллеливают обработку запроса. А также лучше сжимают данные (за счёт сортировки по первичному ключу). И более оптимально формируют сжатые блоки.
  • @269550333 #74429 04:42 PM, 10 Nov 2018
    Спасибо за ответ.а локи на каком уровне ? Один лок на всю таблицу? .т.е когда и пишу в таблицу, то берется lock на все время записи и другие сессии будут ждать?
  • Да, для таблицы типа Log используется один RWLock.
  • @rm_y7o #74431 05:17 PM, 10 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @nicname #74434 05:43 PM, 10 Nov 2018
    а вот подскажите по такому моменту.

    у меня кафка одним инстансом работает, из кх матвью подключен, при небольших объемах данных – все норм.

    с флушем по таймеру понятно – оно не работает пока.
    но вот тут еще какая ситуация – я делаю микро-нагрузочное тестирование и отсылаю данные рейтом 200 rps на протяжении 5 минут.
    в этот момент вижу по логам кх, что он просто перестает обновлять матвью, нету запросов к кафке.
    2018.11.10 17:30:12.549668 [ 21 ] {} <Debug> StorageKafka (myKafka): Started streaming to 1 attached views
    спустя пять минут
    2018.11.10 17:35:14.552367 [ 34 ] {} <Debug> StorageKafka (myKafka): Started streaming to 1 attached views

    это сама кафка ему не дает подключаться в момент нагрузки или что происходит вообще?
  • https://t.me/clickhouse_ru
    @nicname #74435 05:53 PM, 10 Nov 2018
    ну и в кафке видно, что консумер замер
  • https://t.me/clickhouse_ru
    @nicname #74436 06:10 PM, 10 Nov 2018
    смотрю по другому топику, там и час может пройти между выгрузками 🙀
    а может и еще больше – там нагрузку снимал просто.
    это баг, фича или я что-то делаю не так?
  • @znbiz #74437 06:14 PM, 10 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @NNozhenko #74439 07:13 PM, 10 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74441 08:47 PM, 10 Nov 2018
    У меня одна таблица для доступа из кафки, другая Матвью в базу. Провисов не видел, 16к запросов в сек делается...
  • https://t.me/clickhouse_ru
    @nicname #74442 08:51 PM, 10 Nov 2018
    без пауз, прям потоком льется?
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74443 11:19 PM, 10 Nov 2018
    Да
  • 11 November 2018 (140 messages)
  • @enabokov #74444 03:56 AM, 11 Nov 2018
    Joined.
  • @enabokov #74446 05:34 AM, 11 Nov 2018
    Я думал, это канал про аниме.
  • https://t.me/clickhouse_ru
    @kshvakov #74447 05:40 AM, 11 Nov 2018
    У меня есть маленький вопрос про LowCardinality. Мы сейчас булем пробовать метрики перенести на КХ и очень хочется попробовать его, так как угикальных String названий метрик не особо много, вопрос собственно больше в том как его аккуратно прокинуть в createWithNumericBasedType чтоб можно было использовать с sumMap (на сколько я помню он ,LowCardinality, должен был хэшть строку) и, соответственно в Nested (xxxMap) структурах для SummingMergeTree ?
  • https://t.me/clickhouse_ru
    Ну, у девушки, наверное, большие глаза.
  • https://t.me/clickhouse_ru
    @MonaxGT #74449 06:55 AM, 11 Nov 2018
    Joined.
  • @70532431 #74453 09:24 AM, 11 Nov 2018
    @kshvakov, хотелось бы уточнить по работе агента мониторинга для Telegraf. обнаружил, что запрос с User Agent Golang SQL Driver во время запуска проверки, которая совпала с командой удаления таблицы, вроде как заблокировалась сама и заблокировала процесс удаления.
    Такое вообще возможно, может, известный баг?

    Запросы такие висели, после их убийства Kill query дроп смог пройти.

    │ 1 │ default │ 852900a5-469d-490c-9c62-e4dc4b46fbb9 │ 127.0.0.1 │ 47528 │ default │ 852900a5-469d-490c-9c62-e4dc4b46fbb9 │ 127.0.0.1 │ 47528 │ 1 │ btc-all-41│ btc-all-41 │ Golang SQLDriver │ 1 │ 1 │ 54213 │ 0 │ │ │ 259.285041557 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 122944 │ 127040 │
    SELECT
    database,
    table,
    SUM(bytes) AS bytes,
    COUNT(*) AS parts,
    SUM(rows) AS rows
    FROM system.parts
    WHERE active = 1
    GROUP BY
    database, table
    ORDER BY
    database, table │

    У нас в клиентах под запросы Go нет, все на питоне, - только агент для telegraf на go.
  • @vladislavadv #74454 09:39 AM, 11 Nov 2018
    Всем привет.
    А что значит ошибка?
    2018.11.11 12:38:05.541864 [ 20 ] {} <Warning> stats (ReplicatedMergeTreeRestartingThread): ZooKeeper session has expired. Switching to a new session.
    2018.11.11 12:38:05.541950 [ 20 ] {} <Error> zkutil::EphemeralNodeHolder::~EphemeralNodeHolder(): Code: 999, e.displayText() = Coordination::Exception: Session expired (Session expired), e.what() = Coordination::Exception, Stack trace:
  • https://t.me/clickhouse_ru
    @nicname ↶ Reply to #74443 #74455 10:27 AM, 11 Nov 2018
    а у вас какая версия кх?
  • @vladislavadv #74456 10:48 AM, 11 Nov 2018
    18.14.9
  • @vladislavadv #74457 10:49 AM, 11 Nov 2018
    Посреди ночи упал кластер. В начале были ошибки too many parts
  • @vladislavadv #74458 10:49 AM, 11 Nov 2018
    теперь эта валиться со всех баз
  • @vladislavadv #74459 10:49 AM, 11 Nov 2018
    и ничего не работает
  • @70532431 ↶ Reply to #74457 #74460 10:49 AM, 11 Nov 2018
    однозначно была проблема на зукипере
  • @vladislavadv #74461 10:50 AM, 11 Nov 2018
    на зукипере нагрузка была высокая
  • @70532431 #74462 10:51 AM, 11 Nov 2018
    даже нагрузки и высокого летенси достаточно, чтобы кликхаус начал тормозитьи заблокировал таблицы, это снежный ком, решается снятием нагрузки с зукиперов... и ждать, пока рассосётся. можно рестартануть сервисы кликхауса ещё. тоже помочь должно, но это только после решения проблем с зК.
  • https://t.me/clickhouse_ru
    @Shegloff #74463 10:54 AM, 11 Nov 2018
    Можно разово поднять значение для parts, там установлено по умолчанию максимум 300 parts, я поднимал до 1000, но таким образом можно выстрелить в ногу, надо осторожней
  • @70532431 ↶ Reply to #74457 #74464 10:54 AM, 11 Nov 2018
    parts_to_throw_insert
    parts_to_delay_insert

    и если хотите чтобы инсерты пошли, можете повысить эти значения
  • https://t.me/clickhouse_ru
    @Shegloff #74465 10:54 AM, 11 Nov 2018
    Во точно, оно
  • @70532431 #74466 10:55 AM, 11 Nov 2018
    но это решается после решения проблем с зукипером! смотрите, может там система свапится уже, выключайте свап
  • https://t.me/clickhouse_ru
    @nicname #74467 10:55 AM, 11 Nov 2018
    а что дает высокую нагрузку на зукипер?
  • https://t.me/clickhouse_ru
    @Shegloff #74468 10:55 AM, 11 Nov 2018
    Нужен будет рестарт кх, вносить их в конфиг.xml, в раздел mergetree
  • соседи…
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #74467 #74470 10:56 AM, 11 Nov 2018
    Когда серверр начинает упираться в железо, диск проц сеть
  • @vladislavadv #74471 10:57 AM, 11 Nov 2018
    Сейчас уже ошибок с too many parts нет
  • @vladislavadv #74472 10:57 AM, 11 Nov 2018
    2018.11.11 12:38:05.541864 [ 20 ] {} <Warning> stats (ReplicatedMergeTreeRestartingThread): ZooKeeper session has expired. Switching to a new session.
    2018.11.11 12:38:05.541950 [ 20 ] {} <Error> zkutil::EphemeralNodeHolder::~EphemeralNodeHolder(): Code: 999, e.displayText() = Coordination::Exception: Session expired (Session expired), e.what() = Coordination::Exception, Stack trace:
  • @70532431 ↶ Reply to #74469 #74473 10:57 AM, 11 Nov 2018
    у вас на openvz зукипер что-ли?
  • @vladislavadv #74474 10:57 AM, 11 Nov 2018
    Тлько эти рекурсивно по всем базам
  • lxc
  • https://t.me/clickhouse_ru
    @Shegloff #74476 10:57 AM, 11 Nov 2018
    У нас высокая нагрузка на кх, постоянно были такие ошибки, когда зк вместе жили
  • @70532431 ↶ Reply to #74475 #74477 10:57 AM, 11 Nov 2018
    выкидывайте его оттуда, только виртуализация с provisioned ресурсами!
  • https://t.me/clickhouse_ru
    @Shegloff #74478 10:58 AM, 11 Nov 2018
    Зк отселили на виртуалки, ошибок больше нет
  • https://t.me/clickhouse_ru
    @Shegloff #74479 10:58 AM, 11 Nov 2018
    Я про session expired
  • @647313081 #74480 11:15 AM, 11 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @nicname ↶ Reply to #74434 #74481 11:15 AM, 11 Nov 2018
    как думаете, это как-то можно поковырять глубже? хочу понять в ком проблема – в кх или в кафке.

    консольный кафка клиент отдает норм, кх ходить не хочет, просто не делает Started streaming to 1 attached views в период "высокой" нагрузки. ну она реально не высокая, ресурсы на машинах свободны.
  • https://t.me/clickhouse_ru
    Я смогу скинуть свои конфиги, но уже завтра. Сейчас нет доступа
  • https://t.me/clickhouse_ru
    @nicname ↶ Reply to #74482 #74483 11:21 AM, 11 Nov 2018
    да, спасибо, я стукну, если не разберусь к тому моменту
  • https://t.me/clickhouse_ru
    @nicname #74484 11:22 AM, 11 Nov 2018
    но я пока логически хочу понять где может быть проблема и куда смотреть
  • https://t.me/clickhouse_ru
    @nicname #74485 11:23 AM, 11 Nov 2018
    то есть там еще такая ситуация, два топика в который примерно одинаково пишется, но в один пишется накопленное, раз в 10 секунд, а во второй – постоянно. первый в кх нормально отрабатывает, второй – нет.
    попробую пока пересоздать таблицы еще.
  • https://t.me/clickhouse_ru
    @nicname #74486 11:40 AM, 11 Nov 2018
    https://clickhouse.yandex/docs/en/operations/table_engines/kafka/

    тут неполная дока в этом моменте?
    DETACH TABLE consumer;
    ATTACH MATERIALIZED VIEW consumer;
  • https://t.me/clickhouse_ru
    @nicname ↶ Reply to #74434 #74487 11:51 AM, 11 Nov 2018
    в общем, решилось все только после пересоздания консумера из кафки и матвью.
    остальные все действия – ребуты кх, зукипера и кафки, аттачи/детачи, не принесли результата.
  • https://t.me/clickhouse_ru
    @nicname ↶ Reply to #74487 #74488 12:13 PM, 11 Nov 2018
    не, не решилось, минут 10 отработало нормально и опять то же поведение 🤦‍♂️
  • @vladislavadv #74491 12:27 PM, 11 Nov 2018
    Разгрузили сервер, пробуем рестартовать, но кх не поднимается.

    У зукипера в логе:
    2018-11-11 15:09:34,068 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:ZooKeeperServer@942] - Client attempting to establish new session at /10.75.0.83:37776 2018-11-11 15:09:34,287 - INFO [CommitProcessor:12:ZooKeeperServer@687] - Established session 0xc6702a6362c0048 with negotiated timeout 40000 for client /10.75.0.83:37776
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #74453 #74492 12:31 PM, 11 Nov 2018
    Привет, нет, такого не должно быть. Я позже посмотрю и отпишусь.
  • @70532431 ↶ Reply to #74492 #74493 12:32 PM, 11 Nov 2018
    Ок!
  • @vladislavadv #74494 12:44 PM, 11 Nov 2018
    Вопрос, насколько безопасно удалять данные в зукипере?
  • @vladislavadv #74495 12:45 PM, 11 Nov 2018
    КХ восстановит их?
  • @70532431 #74496 12:46 PM, 11 Nov 2018
    Вы напишите, какую задачу хотите решить)
  • @vladislavadv #74497 12:46 PM, 11 Nov 2018
    2018.11.11 15:43:55.387072 [ 25 ] {} <Error> table(ReplicatedMergeTreeRestartingThread): Couldn't start replication: DB::Exception, DB::Exception: Replica /clickhouse/tables/db/1/Statistics/replicas/ch10.local appears to be already active. If you're sure it's not, try again in a minute or remove znode /clickhouse/tables/db/1/Statistics/replicas/ch10.local/is_active manually, stack trace:
  • @vladislavadv #74498 12:46 PM, 11 Nov 2018
    Упал утром кластер, лежит до сих пор
  • @vladislavadv #74499 12:46 PM, 11 Nov 2018
    Летят ошибки session expired
  • @vladislavadv #74500 12:47 PM, 11 Nov 2018
    Разгрузили до нуля сервера с зукипером, проблема не уходит
  • @vladislavadv #74501 12:47 PM, 11 Nov 2018
    Теперь вот такик ошибки
  • @vladislavadv #74502 12:47 PM, 11 Nov 2018
    2018-11-11 15:45:29,056 - INFO [ProcessThread(sid:12 cport:-1)::PrepRequestProcessor@595] - Got user-level KeeperException when processing sessionid:0xa6702b14d380000 type:multi cxid:0xcae zxid:0xb70000fa42 txntype:-1 reqpath:n/a aborting remaining multi ops. Error Path:/clickhouse/tables/db/1/table/replicas/ch10.local/is_active Error:KeeperErrorCode = NodeExists for /clickhouse/tables/db/1/db/replicas/ch10.local/is_active в логах zk
  • @70532431 #74503 12:47 PM, 11 Nov 2018
    данные в зк не хранятся, подключитесь через zkcli и удалите что он просит
  • @70532431 #74504 12:48 PM, 11 Nov 2018
    но не файлами
  • @vladislavadv #74505 12:48 PM, 11 Nov 2018
    А можно вообще все снести?
  • https://t.me/clickhouse_ru
    @stufently #74507 12:50 PM, 11 Nov 2018
    нельзя
  • @vladislavadv #74508 12:52 PM, 11 Nov 2018
    ch10 :) optimize table db.Stats; OPTIMIZE TABLE db.Stats Received exception from server (version 18.14.9): Code: 254. DB::Exception: Received from localhost:9000, ::1. DB::Exception: No active replicas. 0 rows in set. Elapsed: 0.001 sec.
  • @vladislavadv #74509 12:54 PM, 11 Nov 2018
    До снятия нагрузки было так:
    ch12 :) optimize table db.Stats; OPTIMIZE TABLE db.Stats Received exception from server (version 18.14.9): Code: 999. DB::Exception: Received from localhost:9000, ::1. Coordination::Exception. Coordination::Exception: Session expired (Session expired). 0 rows in set. Elapsed: 0.053 sec.
  • @All4DK #74510 12:57 PM, 11 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @AndyIn #74511 01:06 PM, 11 Nov 2018
    Joined.
  • @vladislavadv #74512 01:52 PM, 11 Nov 2018
    Перенесли зк на другие серверы. Не помогло
    2018.11.11 16:42:53.535827 [ 29 ] {} <Error> zkutil::EphemeralNodeHolder::~EphemeralNodeHolder(): Code: 999, e.displayText() = Coordination::Exception: Session expired (Session expired), e.what() = Coordination::Exception, Stack trace:
  • @70532431 ↶ Reply to #74512 #74514 02:01 PM, 11 Nov 2018
    Как перенесли, опишите процесс
  • @vladislavadv #74515 02:02 PM, 11 Nov 2018
    Lxc контейнеры перенесли на пустые серверы
  • @vladislavadv #74516 02:02 PM, 11 Nov 2018
    OPTIMIZE TABLE db.Stats Received exception from server (version 18.14.9): Code: 999. DB::Exception: Received from localhost:9000, ::1. Coordination::Exception. Coordination::Exception: Session expired (Session expired). 0 rows in set. Elapsed: 0.051 sec.
  • @vladislavadv #74517 02:03 PM, 11 Nov 2018
    Нагрузки нет, все серверы ничего не делают.
    Только ошибку с session expired кидают раз в пару минут
  • https://t.me/clickhouse_ru
    @stufently #74518 02:03 PM, 11 Nov 2018
    ну у вас лажа в зукипере просто видимо )
  • @70532431 #74519 02:04 PM, 11 Nov 2018
    У вас мониторинг есть какой-то? Кворум есть в зк ?
  • @vladislavadv #74520 02:04 PM, 11 Nov 2018
    Лидер есть
  • @70532431 #74521 02:04 PM, 11 Nov 2018
    Айпишки менялись у зк?
  • @vladislavadv #74522 02:05 PM, 11 Nov 2018
    Нет
  • @vladislavadv #74523 02:05 PM, 11 Nov 2018
    В логах зк ошибки
    2018-11-11 17:04:20,010 - INFO [ProcessThread(sid:12 cport:-1)::PrepRequestProcessor@486] - Processed session termination for sessionid: 0xa67030ca7b1002a 2018-11-11 17:04:40,001 - INFO [SessionTracker:ZooKeeperServer@358] - Expiring session 0xa67030ca7b1002b, timeout of 40000ms exceeded
  • @70532431 #74524 02:05 PM, 11 Nov 2018
    А кликхаус?
  • @70532431 #74525 02:05 PM, 11 Nov 2018
    Лог
  • Как это проверить/исправить?
  • https://t.me/clickhouse_ru
    @stufently #74527 02:06 PM, 11 Nov 2018
    смотрите логи зукипера
  • @vladislavadv #74528 02:06 PM, 11 Nov 2018
    2018.11.11 16:42:53.535827 [ 29 ] {} <Error> zkutil::EphemeralNodeHolder::~EphemeralNodeHolder(): Code: 999, e.displayText() = Coordination::Exception: Session expired (Session expired), e.what() = Coordination::Exception, Stack trace:
  • Кроме ошибки с timeout ничего нет
  • @70532431 #74530 02:07 PM, 11 Nov 2018
    Как вы выяснили, что лидер есть?
  • @dn1dev #74531 02:07 PM, 11 Nov 2018
    echo stat | nc localhost 2181
  • @vladislavadv #74532 02:07 PM, 11 Nov 2018
    2018-11-11 17:04:20,010 - INFO [ProcessThread(sid:12 cport:-1)::PrepRequestProcessor@486] - Processed session termination for sessionid: 0xa67030ca7b1002a 2018-11-11 17:04:40,001 - INFO [SessionTracker:ZooKeeperServer@358] - Expiring session 0xa67030ca7b1002b, timeout of 40000ms exceeded 2018-11-11 17:04:40,001 - INFO [SessionTracker:ZooKeeperServer@358] - Expiring session 0xa67030ca7b1002c, timeout of 40000ms exceeded 2018-11-11 17:04:40,002 - INFO [ProcessThread(sid:12 cport:-1)::PrepRequestProcessor@486] - Processed session termination for sessionid: 0xa67030ca7b1002b 2018-11-11 17:04:40,002 - INFO [ProcessThread(sid:12 cport:-1)::PrepRequestProcessor@486] - Processed session termination for sessionid: 0xa67030ca7b1002c 2018-11-11 17:05:00,000 - INFO [SessionTracker:ZooKeeperServer@358] - Expiring session 0xa67030ca7b1002e, timeout of 40000ms exceeded 2018-11-11 17:05:00,001 - INFO [SessionTracker:ZooKeeperServer@358] - Expiring session 0xa67030ca7b1002d, timeout of 40000ms exceeded 2018-11-11 17:05:00,002 - INFO [ProcessThread(sid:12 cport:-1)::PrepRequestProcessor@486] - Processed session termination for sessionid: 0xa67030ca7b1002e 2018-11-11 17:05:00,002 - INFO [ProcessThread(sid:12 cport:-1)::PrepRequestProcessor@486] - Processed session termination for sessionid: 0xa67030ca7b1002d 2018-11-11 17:05:20,000 - INFO [SessionTracker:ZooKeeperServer@358] - Expiring session 0xa67030ca7b1002f, timeout of 40000ms exceeded 2018-11-11 17:05:20,001 - INFO [ProcessThread(sid:12 cport:-1)::PrepRequestProcessor@486] - Processed session termination for sessionid: 0xa67030ca7b1002f 2018-11-11 17:05:40,000 - INFO [SessionTracker:ZooKeeperServer@358] - Expiring session 0xa67030ca7b10030, timeout of 40000ms exceeded 2018-11-11 17:05:40,000 - INFO [SessionTracker:ZooKeeperServer@358] - Expiring session 0xa67030ca7b10031, timeout of 40000ms exceeded 2018-11-11 17:05:40,001 - INFO [ProcessThread(sid:12 cport:-1)::PrepRequestProcessor@486] - Processed session termination for sessionid: 0xa67030ca7b10030 2018-11-11 17:05:40,002 - INFO [ProcessThread(sid:12 cport:-1)::PrepRequestProcessor@486] - Processed session termination for sessionid: 0xa67030ca7b10031 2018-11-11 17:06:00,000 - INFO [SessionTracker:ZooKeeperServer@358] - Expiring session 0xa67030ca7b10033, timeout of 40000ms exceeded 2018-11-11 17:06:00,008 - INFO [SessionTracker:ZooKeeperServer@358] - Expiring session 0xa67030ca7b10032, timeout of 40000ms exceeded 2018-11-11 17:06:00,009 - INFO [ProcessThread(sid:12 cport:-1)::PrepRequestProcessor@486] - Processed session termination for sessionid: 0xa67030ca7b10033 2018-11-11 17:06:00,009 - INFO [ProcessThread(sid:12 cport:-1)::PrepRequestProcessor@486] - Processed session termination for sessionid: 0xa67030ca7b10032 2018-11-11 17:06:20,001 - INFO [SessionTracker:ZooKeeperServer@358] - Expiring session 0xa67030ca7b10035, timeout of 40000ms exceeded 2018-11-11 17:06:20,001 - INFO [SessionTracker:ZooKeeperServer@358] - Expiring session 0xa67030ca7b10034, timeout of 40000ms exceeded 2018-11-11 17:06:20,002 - INFO [ProcessThread(sid:12 cport:-1)::PrepRequestProcessor@486] - Processed session termination for sessionid: 0xa67030ca7b10035 2018-11-11 17:06:20,002 - INFO [ProcessThread(sid:12 cport:-1)::PrepRequestProcessor@486] - Processed session termination for sessionid: 0xa67030ca7b10034 2018-11-11 17:06:40,000 - INFO [SessionTracker:ZooKeeperServer@358] - Expiring session 0xa67030ca7b10036, timeout of 40000ms exceeded 2018-11-11 17:06:40,001 - INFO [SessionTracker:ZooKeeperServer@358] - Expiring session 0xa67030ca7b10037, timeout of 40000ms exceeded 2018-11-11 17:06:40,001 - INFO [ProcessThread(sid:12 cport:-1)::PrepRequestProcessor@486] - Processed session termination for sessionid: 0xa67030ca7b10036 2018-11-11 17:06:40,002 - INFO [ProcessThread(sid:12 cport:-1)::PrepRequestProcessor@486] - Processed session termination for sessionid: 0xa67030ca7b10037
  • @dn1dev #74533 02:07 PM, 11 Nov 2018
    так выяснили
  • @dn1dev #74534 02:07 PM, 11 Nov 2018
    один лидер, два фоловера
  • @vladislavadv #74535 02:11 PM, 11 Nov 2018
    Обновление кх с 18.14.9 до 18.14.13 ничего не изменило
  • @vladislavadv #74536 02:12 PM, 11 Nov 2018
    Как можно восстановить зукипер? Может грохнуть его и пересоздать все таблицы?
  • @vladislavadv #74537 02:12 PM, 11 Nov 2018
    Бекап. Дроп. Attach
  • @vladislavadv #74538 02:16 PM, 11 Nov 2018
    Может где-то что-то забилось и из-за таймаута онтне успевает разгрести?
  • @vladislavadv #74539 02:17 PM, 11 Nov 2018
    Так же
    maxSessionTimeout=600000000
    Но в логе
    но! 2018-11-11 17:11:40,000 - INFO [SessionTracker:ZooKeeperServer@358] - Expiring session 0xa67030ca7b10054, timeout of 40000ms exceeded
  • https://t.me/clickhouse_ru
    Такой странный вопрос: а пробовали отдельно сбоку поставить кластер кх + пустой зукипер и там попробовать пересоздать таблицы как надо? ATTACH в существующие таблицы точно работает.
  • https://t.me/clickhouse_ru
    И, кстати, подобное наблюдал при переполнении диска у зукипера (восстанавливал его потом из бекапа).
  • @dn1dev #74542 02:23 PM, 11 Nov 2018
    Если просто дропнуть данный зукиперов и перезапустить их - данные в clickhouse не "сломаются"?
  • https://t.me/clickhouse_ru
    Нет, но придётся поизвращаться с содержимым /var/lib/clickhouse
  • @vladislavadv #74544 02:25 PM, 11 Nov 2018
    И придется делать аттач?
  • https://t.me/clickhouse_ru
    Т.е. лучше заранее сделать DETACH, SHOW CREATE TABLE и куда-нибудь всё в сторонку оттащить.
  • https://t.me/clickhouse_ru
    Потом, когда кх таки заработает с зукипером - пересоздать таблицы и сделать ATTACH
  • https://t.me/clickhouse_ru
    В моём случае (реплика 3x) достаточно было сделать это на одном сервере - на остальные среплицировалось.
  • @521250779 #74548 04:37 PM, 11 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @iusik #74552 07:09 PM, 11 Nov 2018
    А встречались вот такие ошибки: “Existing table metadata in ZooKeeper differs in primary key” ?
  • https://t.me/clickhouse_ru
    @iusik #74553 07:11 PM, 11 Nov 2018
    Сделал след.
    Обновил метаданные таблице, чтобы создать новый индекс поле.
    После выполнения ATTACH TABLE вылетает след. ошибка “Existing table metadata in ZooKeeper differs in primary key”
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #74554 07:13 PM, 11 Nov 2018
    В КХ нельзя изменить колонки первичного ключа
  • https://t.me/clickhouse_ru
    @iusik #74555 07:14 PM, 11 Nov 2018
    [Question] Add column to SummingMergeTree table #3054

    Hello. As I know I can add a column to an existing SummingMergeTree table using Alter table statement. But is it possible to add this new column to the primary key or to the aggregated columns ? For example I have a table: CREATE TABLE T...

  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #74555 #74556 07:16 PM, 11 Nov 2018
    Это для нереплицируемых так можно, для реплицируемых метаданные еще и в ZK хранятся
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #74532 #74557 07:17 PM, 11 Nov 2018
    А в саом ZK в логах что?
  • @vladislavadv #74558 07:17 PM, 11 Nov 2018
    это
    /var/log/zookeeper/zookeeper.log
  • https://t.me/clickhouse_ru
    @iusik #74559 07:17 PM, 11 Nov 2018
    Я догадался, а реально ли в самом ZK эти данные поправить ?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #74453 #74560 07:19 PM, 11 Nov 2018
    Нужны все запросы которые висели, кто-то кого-то ждал, но взаимной блокировки быть недолжно
  • https://t.me/clickhouse_ru
    @iusik #74561 07:19 PM, 11 Nov 2018
    цель надо обновить структуру данных.
    Первым делом надо добавить колонку в таблицу и тем самым изменить аггрегацию данных для ReplicatedSummingMergeTree
  • https://t.me/clickhouse_ru
    @iusik #74562 07:20 PM, 11 Nov 2018
    Как решают такие задачи ?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #74559 #74563 07:20 PM, 11 Nov 2018
    Реально. Но вы можете только добавить поле в ключ в конце и он не должен поменять физическую сортировку (поле по нему должно быть с дефолтовыми значениями)
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #74562 #74564 07:21 PM, 11 Nov 2018
    Пока только перелить данные, но скоро можно будеть через ALTER это делать
  • https://t.me/clickhouse_ru
    @iusik ↶ Reply to #74563 #74565 07:21 PM, 11 Nov 2018
    Да, все так и делаю.
  • https://t.me/clickhouse_ru
    @iusik #74566 07:22 PM, 11 Nov 2018
    @kshvakov Не подскажите как обновить данные в ZK или есть какая-то инструкция, для моей задачи.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #74566 #74567 07:22 PM, 11 Nov 2018
    Нет инструкции
  • https://t.me/clickhouse_ru
    @iusik #74568 07:23 PM, 11 Nov 2018
    Куда, хотя-бы “капать”, чтобы мне понять что изменить в ZK нужно.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #74568 #74569 07:27 PM, 11 Nov 2018
    Я бы посоветовал создать нереплицируемую таблицу такойже структуры рядом, перекинуть туда партиции, поменять ключ там, дропнуть везде реплицируемые и накатить с новой структурой и перенести партиции снова
  • https://t.me/clickhouse_ru
    @kshvakov #74570 07:27 PM, 11 Nov 2018
    Или просто INSERRT INTO NEW TABLE SELECT * FROM OLD TABLE
  • https://t.me/clickhouse_ru
    @iusik #74571 07:28 PM, 11 Nov 2018
    ого, ну ладно. Видать это самое простое решение.
  • мы в итоге грохнули zookeeper, и пересоздали все таблицы
  • @vladislavadv #74573 07:29 PM, 11 Nov 2018
    беда чет
  • https://t.me/clickhouse_ru
    @iusik #74574 07:40 PM, 11 Nov 2018
    Kirill
    А подскажите, у меня в одной из таблиц вот такой индекс.
    (campaign_id, company_id, creative_id, zone_id, event_datetime)

    Если в основном я делаю запросы сперва по event_datetime, а потом уже фильтрую по другим колонкам.
    Может же это быть причиной медленных выполнения моих запросов ?
    Данных у меня не много примерно 5 лярдов.

    полей у меня не много.

    ┌─name───────────┬─type─────┬─default_type─┬─default_expression─────┐
    │ event_date │ Date │ DEFAULT │ toDate(event_datetime) │
    │ event_datetime │ DateTime │ │ │
    │ company_id │ Int32 │ │ │
    │ zone_id │ Int32 │ │ │
    │ campaign_id │ Int32 │ │ │
    │ creative_id │ Int32 │ │ │
    │ domain │ String │ │ │
    │ device │ String │ │ │
    │ os_type │ String │ │ │
    │ browser │ String │ │ │
    │ lang │ String │ │ │
    │ country_code │ String │ │ │
    │ impression_cnt │ Int32 │ DEFAULT │ CAST(0 AS Int32) │
    │ click_cnt │ Int32 │ DEFAULT │ CAST(0 AS Int32) │
    └────────────────┴──────────┴──────────────┴────────────────────────┘
  • https://t.me/clickhouse_ru
    * это зависит от кардинальности в campaign_id, company_id, creative_id, zone_id
    * от того как вы пишете where event_datetime
    * от того какой период вы пытаетесь охватить запросом
    * от кол-ва партиций который оббегает запрос
    * от того что вы понимаете под медленно
    * от значения настройки optimize_move_to_prewhere
  • https://t.me/clickhouse_ru
    @iusik #74577 07:52 PM, 11 Nov 2018
    >от того как вы пишете where event_datetime
    в основном с даты по даду
    * от того какой период вы пытаетесь охватить запросом
    в основном за прошлый месяц данные
    >* от того что вы понимаете под медленно
    Иногда запросы по 40 сек идут.
  • https://t.me/clickhouse_ru
    а как партиционирована таблица? по event_date ? надо его тоже всегда писать вам в where тогда
    40 быстро, у меня медленно если 15 мин.
    в общем как бы информации не хватает, SET send_logs_level='debug' и смотрите что там пишется
  • https://t.me/clickhouse_ru
    @iusik ↶ Reply to #74578 #74579 07:59 PM, 11 Nov 2018
    CREATE TABLE xxxx.statistic_by_minutes_4 (
    event_date Date DEFAULT toDate(event_datetime),
    event_datetime DateTime,
    company_id Int32,
    zone_id Int32,
    campaign_id Int32,
    creative_id Int32,
    domain String,
    device String,
    os_type String,
    browser String,
    lang String,
    country_code String,
    impression_cnt Int32 DEFAULT CAST(0 AS Int32),
    click_cnt Int32 DEFAULT CAST(0 AS Int32)
    ) ENGINE = ReplicatedMergeTree(
    \'/clickhouse/tables/1/xxxx/statistic_by_minutes_4\',
    \'ch01-weu.xxx\',
    event_date,
    (campaign_id, company_id, creative_id, zone_id, event_datetime),
    8192
    )
    event_date - вообще не использую.
  • @70532431 ↶ Reply to #74560 #74580 08:01 PM, 11 Nov 2018
    ок, опять, похоже, словил, на другом сервере. и на этот раз kill query ушёл в pending... что-то неладное
  • https://t.me/clickhouse_ru
    @den_crane #74581 08:01 PM, 11 Nov 2018
    не используете? у вас партиционировано по нему, допишите его в where посмотрите будет ли разница.
  • @70532431 ↶ Reply to #74560 #74582 08:02 PM, 11 Nov 2018
    параллельно идёт запрос относительно реплицируемой таблицы
    rename table loglog.log_2018_05_new to loglog.log_2018_05
  • @70532431 #74583 08:04 PM, 11 Nov 2018
    KILL QUERY WHERE query_id = '5804ab9b-e385-4de2-9c5b-4481a44b7bec' ASYNC

    ┌─kill_status─┬─query_id─────────────────────────────┬─user────┬─query─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
    │ pending │ 5804ab9b-e385-4de2-9c5b-4481a44b7bec │ default │
    SELECT
    database,
    table,
    SUM(bytes) AS bytes,
    COUNT(*) AS parts,
    SUM(rows) AS rows
    FROM system.parts
    WHERE active = 1
    GROUP BY
    database, table
    ORDER BY
    database, table │
    └─────────────┴──────────────────────────────────────┴─────────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #74580 #74584 08:51 PM, 11 Nov 2018
    Все норм, они ждут когда завершится rename
  • @70532431 #74585 08:52 PM, 11 Nov 2018
    А rename вообще может быть долгой операцией? Где-то выше Алексей писал, что она очень простая. Плюс в зукипере ничего не меняется.
    У нас с десяток серверов в кластере, на 10 rename пройдёт за пару секунд, на каком-то залипает на пару минут. Думал, это проблема.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #74585 #74586 08:53 PM, 11 Nov 2018
    Он дожидается седектов которые идут (это как минимум)
  • https://t.me/clickhouse_ru
    @den_crane #74587 08:54 PM, 11 Nov 2018
    и возможно rename ждет конца идущих мержей
  • @70532431 ↶ Reply to #74587 #74588 08:55 PM, 11 Nov 2018
    Вот это вероятнее. Просто селектов не было, кроме того, который мониторинг делал
  • https://t.me/clickhouse_ru
    @Coderxlsn #74589 09:34 PM, 11 Nov 2018
    добрый вечер. а это нормально что не приходит мерж
    http://joxi.ru/l2ZLnopTwXYgZr
  • @whetherharder #74590 09:43 PM, 11 Nov 2018
    /stat@combot
  • https://t.me/clickhouse_ru
    @Coderxlsn #74594 10:07 PM, 11 Nov 2018
    это починил. но в логах какая-то страная ошибка
    <Error> ServerErrorHandler: Code: 210, e.displayText() = DB::NetException: Connection reset by peer: while reading from socket (10.0.0.4:50958), e.what() = DB::NetException, Stack trace:
    при этом инсерты отрабатывает нормально. и данные появляются
  • @vladislavadv #74595 10:20 PM, 11 Nov 2018
    А что может значит ошибка?
    2018.11.11 23:54:11.107117 [ 8 ] {} <Error> void DB::BackgroundProcessingPool::threadFunction(): Code: 214, e.displayText() = DB::Exception: Could not calculate available disk space (statvfs), errno: 2, strerror: No such file or directory, e.what() = DB::Exception, Stack trace:
  • https://t.me/clickhouse_ru
    @Coderxlsn #74596 10:24 PM, 11 Nov 2018
    Could not calculate available disk spacе
    может места нет или не может определить сколько свободно?
  • @vladislavadv #74597 10:25 PM, 11 Nov 2018
    Место есть. Но нагрузка на io большая
  • @sergey_v_zmin #74598 10:42 PM, 11 Nov 2018
    /stat@combot
  • 12 November 2018 (247 messages)
  • @63766513 #74602 06:06 AM, 12 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @alexeyd76 #74606 06:52 AM, 12 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @aIkitan #74607 07:51 AM, 12 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @antosha666 #74608 08:00 AM, 12 Nov 2018
    Joined.
  • @269550333 #74609 08:02 AM, 12 Nov 2018
    Подскажите почему, когда я выбираю все записи select * from table, то получаю ошибку - too many open files. Если я набираю ulimit -n, то вижу сотни тысяч.
  • @269550333 #74610 08:02 AM, 12 Nov 2018
    Если делаю запрос с limit 20, то все нормально
  • https://t.me/clickhouse_ru
    @katyayu #74611 08:02 AM, 12 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    увеличьте лимит в sysctl.conf и /etc/security/limits.conf
  • @269550333 #74613 08:06 AM, 12 Nov 2018
    Мой select * сколько дополнительных дескрипторов потребляет ? Мне непонятно сколько мне не хватает
  • https://t.me/clickhouse_ru
    @stufently #74614 08:07 AM, 12 Nov 2018
    ну увеличьте на 20 процентов
  • @269550333 #74615 08:08 AM, 12 Nov 2018
    А чтобы для понимания? Сколько дескрипторов на один запрос без условия where требуется ?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #74615 #74616 08:10 AM, 12 Nov 2018
    Смотря сколько партиций/колонок он затрагивает
  • @269550333 #74617 08:11 AM, 12 Nov 2018
    Если для простоты у меня 100 колонок и 10 партиций
  • @faerics ↶ Reply to #74616 #74618 08:12 AM, 12 Nov 2018
    Каждая колонка внутри партиции = файл?
  • @269550333 #74619 08:12 AM, 12 Nov 2018
    Он откроет 100 *10?
  • @269550333 #74620 08:13 AM, 12 Nov 2018
    Зачем ему все сразу открывать ?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #74618 #74621 08:13 AM, 12 Nov 2018
    Каждая колонка это файл, но нужно понимать что в партиции может быть много партов если по какой-то причине они еще не смержились
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #74619 #74622 08:14 AM, 12 Nov 2018
    + еще файлы засечек на колонку
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #74620 #74623 08:14 AM, 12 Nov 2018
    А читать их как?
  • @faerics ↶ Reply to #74619 #74624 08:14 AM, 12 Nov 2018
    Это, я так понимаю, если все смержено
  • Сначала прочесть одну партицию. Закрыть . Потом другую.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #74625 #74626 08:15 AM, 12 Nov 2018
    Он параллельно читает, может из разных партиций
  • https://t.me/clickhouse_ru
    @nicname #74627 08:17 AM, 12 Nov 2018
    зачем экономить на дескрипторах?
  • https://t.me/clickhouse_ru
    а движок у таблицы какой?
  • @269550333 #74629 08:19 AM, 12 Nov 2018
    ReplicatedCollapsingMergeTree
  • Ошибок чтобы не было. Я сомневаюсь, что сразу все дескрипторы на все партиции открываются .смысла в этом нету
  • https://t.me/clickhouse_ru
    @stufently #74631 08:25 AM, 12 Nov 2018
    ну тогда он будет работать в сто раз медленее , и не будет смысла его использовать
  • Количество потоков ограниченно. Я про max_threads .если их всего 15, то дескрипторов,которые используется в данный момент будет только 15. Так?
  • https://t.me/clickhouse_ru
    @stufently #74633 08:33 AM, 12 Nov 2018
    к тому же в каждой партиции обычно несколько партов это еще надо умножить на и х количество
  • https://t.me/clickhouse_ru
    наврятли
  • https://t.me/clickhouse_ru
    @stufently #74635 08:35 AM, 12 Nov 2018
    возьмите lsof и посмотрите количество открытых файлов , ну а если хотите теоретические обоснование открытым файлам то почитайте матчасть
  • https://t.me/clickhouse_ru
    а ulimit проверяли для рута? А os какая?
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74637 08:43 AM, 12 Nov 2018
    Добрый день. Есть ли у кого какие статьи под рукой или какая другая информация по zoo. А именно какие параметры в нем мониторить, что бы понимать что ему хорошо
  • https://t.me/clickhouse_ru
    @nicname #74638 08:44 AM, 12 Nov 2018
    а не LimitNOFILE в /etc/systemd/system/clickhouse-server.service надо смотреть?
  • https://t.me/clickhouse_ru
    @Kapustin_Anton #74639 09:15 AM, 12 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    Его и надо, по-моему.
  • https://t.me/clickhouse_ru
    @e_kotelnikov #74641 09:15 AM, 12 Nov 2018
    Joined.
  • @tenbel #74642 09:21 AM, 12 Nov 2018
    Здравствуйте. Здесь многие рекомендуют metabase. Может быть кто-нибудь подскажет, как его подружить с CH?
  • https://t.me/clickhouse_ru
    @pixeljetter #74643 09:27 AM, 12 Nov 2018
    активный issue висит вроде
  • https://t.me/clickhouse_ru
    @pixeljetter #74644 09:27 AM, 12 Nov 2018
    Yandex ClickHouse Driver · Issue #3332 · metabase/metabase

    Metabase is great tool for Visualization and http://clickhouse.yandex is great database for analytics Could anybody add support for https://github.com/yandex/clickhouse-jdbc in Metabase ? ⬇️ Please...

  • @tenbel ↶ Reply to #74644 #74645 09:38 AM, 12 Nov 2018
    да, я в курсе. но думал есть способ, раз здесь его советуют
  • https://t.me/clickhouse_ru
    @pixeljetter #74646 09:38 AM, 12 Nov 2018
    а где советуют? что-то я видимо упустил
  • @tenbel ↶ Reply to #56831 #74647 09:42 AM, 12 Nov 2018
    здесь к примеру
  • @tenbel #74648 09:42 AM, 12 Nov 2018
    но скорее всего драйвер еще не готов, как я понял
  • @saintnox #74650 10:09 AM, 12 Nov 2018
    Joined.
  • @medov_alexey #74651 10:33 AM, 12 Nov 2018
    Есть вопрос по zookeeper'у. У нас внезапно закончилось место на нодах зукипера и clickhouse-server перестал работать. После освобождения места на диске zookeeper и clickhouse заработал. Но остался вопрос. Зукипер создает снэпшоты и логи, которые со временем начинают занимать все свободное место на диске. Есть ли встроенный функицонал ротации и чистки логов ? если нет, можно ли самому удалять файлы типа log.39600000032 и snapshot.210002fb66 ?
  • @medov_alexey #74652 10:33 AM, 12 Nov 2018
    Я просто прочитал на сайте зукипера следующее
  • @medov_alexey #74653 10:34 AM, 12 Nov 2018
    Сервер ZooKeeper создает файлы моментальных снимков и журналов, но не удаляет их. Политика хранения файлов данных и журналов выполняется за пределами сервера ZooKeeper. Сам сервер нуждается только в последнем полном нечетком снимке и файлах журнала с самого начала этого моментального снимка. Дополнительную информацию об установке политики хранения и обслуживании хранилища ZooKeeper см. В разделе обслуживания этого документа.
  • @medov_alexey #74654 10:34 AM, 12 Nov 2018
    ... Сам сервер нуждается только в последнем полном нечетком снимке и файлах журнала с самого начала этого моментального снимка.....
  • @medov_alexey #74655 10:34 AM, 12 Nov 2018
    то есть по сути нужны только последний снэпшот и последний лог ?
  • @medov_alexey #74656 10:34 AM, 12 Nov 2018
    верно ?
  • https://t.me/clickhouse_ru
    В примере конфига зукипера из доки есть ротация сих логов с оставлением N последних
  • https://t.me/clickhouse_ru
    по сути желательны последний и предпоследний.
  • https://t.me/clickhouse_ru
    По-крайней мере, накатить последний лог в случае дизастера может и не получиться.
  • Спасибо большое =) ща посмотрю
  • https://t.me/clickhouse_ru
    @smorodnikova #74662 10:55 AM, 12 Nov 2018
    Joined.
  • Это в файле "log4j.properties" настраивается, верно ?
  • https://t.me/clickhouse_ru
    @nicname #74664 10:55 AM, 12 Nov 2018
    Automatic purging of the snapshots and corresponding transaction logs was introduced in version 3.4.0 and can be enabled via the following configuration parameters autopurge.snapRetainCount and autopurge.purgeInterval.

    а это не подойдет?
  • https://t.me/clickhouse_ru
    zoo.cfg
  • https://t.me/clickhouse_ru
    @smorodnikova #74666 10:56 AM, 12 Nov 2018
    Привет! А подскажите, а есть какой-нибудь пригодный инструмент для визуализации данных из clickhouse? Табикс это жесть, нет никакой возможности централизованно для команды настроить визуализации, каждый сам свои сырые запросы, это не подходит. То есть я хочу, чтобы у меня команда могла смотреть на графики из кликхаус, как это сделать, кто что использует?
  • Там же нет такого
  • https://t.me/clickhouse_ru
    У нас сделано:
    autopurge.snapRetainCount=6
    autopurge.purgeInterval=1
    snapCount=1000000
  • https://t.me/clickhouse_ru
    Там по-умолчанию нет, а вообще опции есть.
  • https://t.me/clickhouse_ru
    у нас пока хватает графаны
  • https://t.me/clickhouse_ru
    @nicname #74672 10:57 AM, 12 Nov 2018
    was introduced in version 3.4.0
  • https://t.me/clickhouse_ru
  • Я понял, спасибо)
  • https://t.me/clickhouse_ru
    Ну и рекомендуемая версия для зукипера всё ж поновей
  • Благодарю ! =)
  • @medov_alexey #74677 10:58 AM, 12 Nov 2018
    У нас стоит zookeeper-3.4.13.jar
  • @medov_alexey #74678 10:59 AM, 12 Nov 2018
    так что подойти должно) всем спасибо еще раз ! 👍
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @smorodnikova #74680 11:01 AM, 12 Nov 2018
    А разве Grafana не про time series data? или там любые можно графики-выборки-запросы делать?
  • https://t.me/clickhouse_ru
    @easya ↶ Reply to #74679 #74681 11:01 AM, 12 Nov 2018
    Без query cache и при выполнении тяжелых запросов для графиков может стать грустно :(
  • https://t.me/clickhouse_ru
    Это да, часть дашбордов грузится секунд по 20. Но я же сказал _пока_ хватает :-)
  • https://t.me/clickhouse_ru
    @smorodnikova #74683 11:03 AM, 12 Nov 2018
    грусть тоска прям. Мне бы что то вроде Metabase.
  • https://t.me/clickhouse_ru
    Про оно самое с некоторыми исключениями, но пока именно это и требуется.
  • https://t.me/clickhouse_ru
    Посмотрите Redash
  • @medov_alexey #74686 11:10 AM, 12 Nov 2018
    Вот оно что)
  • @medov_alexey #74687 11:37 AM, 12 Nov 2018
    Не пойму за что отвечает данный параметр

    Clients can submit requests faster than ZooKeeper can process them, especially if there are a lot of clients. To prevent ZooKeeper from running out of memory due to queued requests, ZooKeeper will throttle clients so that there is no more than globalOutstandingLimit outstanding requests in the system. The default limit is 1,000.ZooKeeper logs transactions to a transaction log. After snapCount transactions are written to a log file a snapshot is started and a new transaction log file is started. The default snapCount is 10,000.

    snapCount=3000000
  • @medov_alexey #74688 11:38 AM, 12 Nov 2018
    На простом языке может кто-нибудь обьяснить ?
  • @medov_alexey #74689 11:38 AM, 12 Nov 2018
    в чем измеряются эти значения ?
  • @ligich #74690 11:38 AM, 12 Nov 2018
    изменеия вштуках
  • https://t.me/clickhouse_ru
    @zborovskii_andrei #74691 11:40 AM, 12 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @umaxfun ↶ Reply to #74666 #74692 11:42 AM, 12 Nov 2018
    Мы юзаем Redash, делает все что вы хотите
  • https://t.me/clickhouse_ru
    @smorodnikova #74693 11:46 AM, 12 Nov 2018
    Спасибо, попробуем его селф хостед вариант
  • Спасибо =)
  • @medov_alexey #74695 11:54 AM, 12 Nov 2018
    Про логи зукипера

    Параметр в zoo.cfg "autopurge.snapRetainCount"

    New in 3.4.0: When enabled, ZooKeeper auto purge feature retains the autopurge.snapRetainCount most recent snapshots and the corresponding transaction logs in the dataDir and dataLogDir respectively and deletes the rest. Defaults to 3. Minimum value is 3.

    Когда включено, функция автоматической очистки ZooKeeper сохраняет последние снимки autopurge.snapRetainCount и соответствующие журналы транзакций в dataDir и dataLogDir соответственно и удаляет остальные. По умолчанию 3. Минимальное значение равно 3.
  • @medov_alexey #74696 11:54 AM, 12 Nov 2018
    Это то что нужно)
  • @medov_alexey #74697 11:55 AM, 12 Nov 2018
    логи и снапшоты сами почистились лишние)
  • @medov_alexey #74698 12:01 PM, 12 Nov 2018
    Если вдруг кто то столкнется с проблемой что из-за падения Zookeeper'a все таблицы становятся read only, решение простое. Просто перезапустите сервера ClickHouse 😃
  • https://t.me/clickhouse_ru
    так себе решение, хочется сказать
  • https://t.me/clickhouse_ru
    @yourock88 #74700 12:02 PM, 12 Nov 2018
    можете ещё сервер предлагать ребутать
  • https://t.me/clickhouse_ru
    @edyya #74701 12:02 PM, 12 Nov 2018
    Коллеги, а подскажите, пожалуйста, есть ли какая-то известная бага/фича/магия связанная с limit ?

    Например, такой запрос работает нормально:
    select *
    from groot3.events
    where rocket_date = today()
    and message_category = 'client'
    and name in ('page_impression', 'section_impression')

    Но если добавить в конец limit 10, то всё ломается:
    select *
    from groot3.events
    where rocket_date = today()
    and message_category = 'client'
    and name in ('page_impression', 'section_impression')
    limit 10
    и падает с такой ошибкой:
    Code: 171, e.displayText() = DB::Exception: Block structure mismatch in UNION stream: different names of columns:
    event_hash String String(size = 0) и так далее 2 списка колонок, где есть небольшая разница в последовательности

    Это лечится? Как? Версия=18.12.14
  • https://t.me/clickhouse_ru
    @yourock88 #74702 12:02 PM, 12 Nov 2018
    вроде не требуется перезапуск ClickHouse, когда ZooKeeper отпустило
  • Не в нашем случае
  • https://t.me/clickhouse_ru
    Говорят, в 18.14.13 действительно починено
  • https://t.me/clickhouse_ru
    @yourock88 #74705 12:03 PM, 12 Nov 2018
    хотя для 18.14.11 такое же сообщение было 🙂
  • https://t.me/clickhouse_ru
    @yourock88 #74706 12:03 PM, 12 Nov 2018
    > Исправлена ошибка Block structure mismatch in UNION stream: different number of columns в запросах с LIMIT. #2156
  • @medov_alexey #74707 12:03 PM, 12 Nov 2018
    Мы несколько раз перезапускали Zookeeper ноды, но пока не рестартанули ClickHouse проблема не решилась
  • https://t.me/clickhouse_ru
    @yourock88 #74708 12:03 PM, 12 Nov 2018
    А вот для 18.14.13

    > Исправлена ошибка Block structure mismatch in MergingSorted stream. #3162
  • https://t.me/clickhouse_ru
    а версия КХ какая?
  • @medov_alexey #74710 12:04 PM, 12 Nov 2018
    18.14.12 revision 54409
  • https://t.me/clickhouse_ru
    @edyya ↶ Reply to #74706 #74711 12:05 PM, 12 Nov 2018
    Спасибо! Будем обновлятся)
  • @251058757 #74712 12:11 PM, 12 Nov 2018
    Привет! Я видель в каком-то докладе, что есть утилита для генерации тестовых данных на основе настоящих. Можете, пожалуйста, скинуть ссылку на эту утилиту? Или это только в планах?
  • @tim_kadyrov #74713 12:15 PM, 12 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @bolotnikov #74714 12:24 PM, 12 Nov 2018
    Joined.
  • @tim_kadyrov #74715 12:28 PM, 12 Nov 2018
    Привет,
    В КХ сыпется много запросов, после
    отправляется в скрипт затем результат вставляется обратно в КХ.
    Забирается в среднем по 100 строк, обратно вставляется в среднем 1000. Ежесекундно может прилетать по 10 таких запросов с разных мест. Запросы не тяжелые, в htop видно, что оперативка забивается на 20-30%. На сервер 128гб оперативки. В конфигах стоят ограничения на
    max_memory_usage
    max_memory_usage_for_all_queries <= 64gib

    В какой-то момент CH server стал постоянно падать и выдавать на все запросы следующие ошибки:
    https://pastebin.com/3U06RR5h
  • https://t.me/clickhouse_ru
    @ikostukovski #74716 12:30 PM, 12 Nov 2018
    https://pastebin.com
    офигительная штука для таких вопросов
  • https://t.me/clickhouse_ru
    @crzmshrm #74717 12:44 PM, 12 Nov 2018
    Добрый день, пытаюсь запросить около 20 млн записей с кх сервера через golang, используя драйвер github.com/kshvakov/clickhouse. Где-то 1 млн записей выкачивается с нормальной скоростью (4 MБ/c). Потом скорость падает до 100 КБ/c и остается такой до конца. Вот лог драйвера:
    [clickhouse][connect=1][rows] <- data: packet=1, columns=43, rows=8192, elapsed=1.106877511s
    [clickhouse][connect=1][rows] <- progress: rows=8192, bytes=6762571, total rows=0
    [clickhouse][connect=1][rows] <- data: packet=1, columns=43, rows=8192, elapsed=1.170799767s
    [clickhouse][connect=1][rows] <- progress: rows=8192, bytes=6092824, total rows=0
    [clickhouse][connect=1][rows] <- data: packet=1, columns=43, rows=8192, elapsed=959.585951ms
    [clickhouse][connect=1][rows] <- progress: rows=8192, bytes=7328057, total rows=0
    [clickhouse][connect=1][rows] <- data: packet=1, columns=43, rows=8192, elapsed=38.558764707s
    [clickhouse][connect=1][rows] <- progress: rows=8192, bytes=6649779, total rows=0
    [clickhouse][connect=1][rows] <- data: packet=1, columns=43, rows=8192, elapsed=1m22.861005012s
    [clickhouse][connect=1][rows] <- progress: rows=8192, bytes=6605601, total rows=0
    [clickhouse][connect=1][rows] <- data: packet=1, columns=43, rows=8192, elapsed=1m23.435027637s
    [clickhouse][connect=1][rows] <- progress: rows=8192, bytes=6651228, total rows=0
    Тот же самый запрос выполняется нормально через clickhouse-client, без просадок по скорости загрузки. Может быть кто-то сталкивался с такой проблемой?
  • https://t.me/clickhouse_ru
    @ruslan_a ↶ Reply to #74712 #74718 12:49 PM, 12 Nov 2018
    clickhouse-obfuscator
    ClickHouse release 1.1.54388, 2018-06-28
  • @251058757 #74719 12:53 PM, 12 Nov 2018
    спасибо!
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #74717 #74720 01:00 PM, 12 Nov 2018
    Он сильно медленный на выкачиваение данных, но деградации быть не должно, по идее.
  • https://t.me/clickhouse_ru
    @crzmshrm ↶ Reply to #74720 #74722 01:03 PM, 12 Nov 2018
    Выставил block_size в 100 млн, перестало тормозить после одного милиона
  • @medov_alexey #74723 01:21 PM, 12 Nov 2018
    Подскажите пожалуйста в строке

    tcp://host1:9000?username=user&password=qwerty&database=clicks&read_timeout=10&write_timeout=20&alt_hosts=host2:9000,host3:9000

    read_timeout=10&write_timeout=20 какие значение по умолчанию имеют ?
  • @medov_alexey #74724 01:22 PM, 12 Nov 2018
    Вообщем есть ли смысл их вручную проставлять ?
  • https://t.me/clickhouse_ru
    SELECT column1,column2,column3, column4
    FROM table1
    LIMIT 168370600, 100

    запрос и бесмыссленный (без order by), и не жизнесопсобный, КХ не может эффективно скипнуть 168370600. Это не работает.
  • https://t.me/clickhouse_ru
    @ilezhankin #74726 01:51 PM, 12 Nov 2018
    Joined.
  • Спасибо, про order by - точно, забыл вписать. На счет того, что КХ не может скипнуть - не знал.
    Значит все malloc error'ы из-за такой не жизнеспособной конструкции, правильно понимаю?
  • https://t.me/clickhouse_ru
    @Imaskar #74728 01:54 PM, 12 Nov 2018
    а если надо очень много данных вычитать, всю таблицу, допустим, то что, не разбивать на запросы лимитом, а сразу всю тянуть?
  • https://t.me/clickhouse_ru
    скорее всего.
    Скорее всего в КХ вообще это не сделать. Пока КХ не умеет для order by использовать sortkey (индекс).
  • https://t.me/clickhouse_ru
    если за раз не удается, надо найти что-то, например по дням where date between '... ' and '... '
  • https://t.me/clickhouse_ru
    @Imaskar #74731 01:59 PM, 12 Nov 2018
    казалось бы, логичнее читать без всякой сортировки, как лежит на диске
  • https://t.me/clickhouse_ru
    @Imaskar #74732 02:00 PM, 12 Nov 2018
    а, ну разбить-то можно по краям партиций
  • @medov_alexey #74733 02:00 PM, 12 Nov 2018
    Ребят
  • https://t.me/clickhouse_ru
    ну а у него в памяти например 15% лежит, и читает он в 48 потоков.
  • почему красным показано использование 47 гигабайт данных ?
  • https://t.me/clickhouse_ru
    Желательно так
  • https://t.me/clickhouse_ru
    Это виртуальная память
  • @medov_alexey #74739 02:01 PM, 12 Nov 2018
    я понимаю что виртуальная
  • https://t.me/clickhouse_ru
    @yourock88 #74740 02:01 PM, 12 Nov 2018
    Вам нужен столбец RSS
  • @medov_alexey #74741 02:01 PM, 12 Nov 2018
    но столько же не используется типа
  • RES может быть ?
  • https://t.me/clickhouse_ru
    @yourock88 #74743 02:01 PM, 12 Nov 2018
    Ну в top он называется RSS
  • https://t.me/clickhouse_ru
    @yourock88 #74744 02:01 PM, 12 Nov 2018
    Видимо в htop это RES
  • https://t.me/clickhouse_ru
    @yourock88 #74745 02:01 PM, 12 Nov 2018
    Resident Set Size
  • https://t.me/clickhouse_ru
    @Imaskar #74746 02:02 PM, 12 Nov 2018
    RES и RSS это одно и то же
  • @medov_alexey #74747 02:02 PM, 12 Nov 2018
    в топе он тоже называется RES
  • @medov_alexey #74748 02:02 PM, 12 Nov 2018
    спасибо)
  • https://t.me/clickhouse_ru
    @yourock88 #74749 02:02 PM, 12 Nov 2018
    вообще, лучше всего потребление памяти показывает PSS (Proportional Set Size), но обычные тулзы его не показывают
  • https://t.me/clickhouse_ru
    https://serverfault.com/questions/740210/htop-res-virt-colors

    The red color indicates that the amount of VIRT or RES memory is in the area of gigabytes. The light blue color corresponds to megabytes, and therefore white color means kilobytes.

    This is, that the users has instantly a visual information, if he searches for processes, which consume a lot of memory. Notice that, the nice values (NI) are also red, when they differ from 0 for the same reason as above.
  • https://t.me/clickhouse_ru
    @Imaskar #74751 02:02 PM, 12 Nov 2018
    virt это любая адресуемая память в любых дескрипторах, в т.ч. диск и другие устройства
  • https://t.me/clickhouse_ru
    @nietzschebrod #74752 02:03 PM, 12 Nov 2018
    Привет.
    КХ очень не нравятся кастомные файлы таймзон, настолько что он отказывается стартовать если localtime в системе взят из другой базы - "custom time zone file used".
    А почему для него это так критично?
  • https://t.me/clickhouse_ru
    Можно бить на диапазоны по партициям и по первичному ключу (если знаете, какие значения он может принимать) или просто SAMPLE 1/10 OFFSET N/10 , если таблица поддерживает сэмплирование
  • https://t.me/clickhouse_ru
    @yourock88 #74754 02:04 PM, 12 Nov 2018
    остальные способы будут заставлять кликхаус читать больше данных (иногда намного больше), чем вы хотите скачать
  • @ztlpn ↶ Reply to #74752 #74755 02:09 PM, 12 Nov 2018
    Нужно сообщить клиенту таймзону сервера. Это делается путём пересылки идентификатора таймзоны из базы tzdata. Такой способ с кастомными файлами таймзон не работает.
  • https://t.me/clickhouse_ru
    @Shikhragimov #74756 02:10 PM, 12 Nov 2018
    Добрый день.

    Существует движок по MergeTree. В документации подробно описано то, что он позволяет
    Но есть движок-интеграция Kafka. Как я поняЛ, при его использовании ClickHouse автоматически подключается к Kafka и слушает сообщения. Отсюда вопросы:
    - что делать,если я хочу индексацию как в MergeTree?
    - Там релизовано записывание данных батчами?

    Или я все не так понял?
  • https://t.me/clickhouse_ru
    @den_crane #74757 02:16 PM, 12 Nov 2018
    не так.

    в документации написано:

    Чтение сообщения с помощью SELECT не слишком полезно (разве что для отладки), поскольку каждое сообщения может быть прочитано только один раз. Практичнее создавать потоки реального времени с помощью материализованных преставлений. Для этого:

    Создайте потребителя Kafka с помощью движка и рассматривайте его как поток данных.
    Создайте таблицу с необходимой структурой.
    Создайте материализованное представление, которое преобразует данные от движка и помещает их в ранее созданную таблицу.
    https://clickhouse.yandex/docs/ru/operations/table_engines/kafka/
  • https://t.me/clickhouse_ru
    @Shikhragimov #74758 02:18 PM, 12 Nov 2018
    все, необходимо было сформулировать вопрос, получить в ответ точную цитату из инструкции. Все стало понятно. (не сарказм, так бывает, спасибо)
  • https://t.me/clickhouse_ru
    @crzmshrm #74759 02:26 PM, 12 Nov 2018
    При удалении базы получил такую ошибку:
    Table redtrack_v2..inner.impressions_view doesn't exist.. Теперь любой запрос к этой базе выдает такую же ошибку. Подскажите как удалить остатки базы?
  • https://t.me/clickhouse_ru
    Взять имя таблицы в кавычки или в backticks:

    DROP TABLE `.inner.omg`
  • https://t.me/clickhouse_ru
    @krokodile #74761 02:35 PM, 12 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    Старые версии КХ бывало дропали inner таблицу до MV, и потом доходили до дропа MV и получалась такая проблема. Пофиксить можно по разному:
    остановить КХ, удалить каталог базы в каталогах meta и data,
    сделать detach MV, создать таблицу .inner.impressions_view, attach, drop MV
  • @medov_alexey #74764 02:48 PM, 12 Nov 2018
    Ребят таблица заглючила, нужно вычистить из zookeeper'a
  • @medov_alexey #74765 02:49 PM, 12 Nov 2018
    rmr /clickhouse/01/replicas/table_name

    эта команда подойдет ?
  • @medov_alexey #74766 02:49 PM, 12 Nov 2018
    @stufently
  • @medov_alexey #74767 02:50 PM, 12 Nov 2018
    Или rmr все удалит ?
  • https://t.me/clickhouse_ru
    @stufently #74768 02:50 PM, 12 Nov 2018
    а почепму просто drop table не сделать ?
  • @medov_alexey #74769 02:50 PM, 12 Nov 2018
    потому что в кликхаусе ее нет
  • @medov_alexey #74770 02:50 PM, 12 Nov 2018
    Replica /clickhouse/tables/01/client_data.upload_customers/replicas/s1-click already exists
  • https://t.me/clickhouse_ru
    @stufently #74771 02:51 PM, 12 Nov 2018
    ну тогда да руками
  • @medov_alexey #74772 02:51 PM, 12 Nov 2018
    получаем такую ошибку
  • @medov_alexey #74773 02:51 PM, 12 Nov 2018
    ее на диске тоже нет
  • https://t.me/clickhouse_ru
    @stufently #74774 02:51 PM, 12 Nov 2018
    в зукипере
  • @medov_alexey #74775 02:51 PM, 12 Nov 2018
    в зукипере есть
  • @medov_alexey #74776 02:51 PM, 12 Nov 2018
    вот вопрос
  • @medov_alexey #74777 02:51 PM, 12 Nov 2018
    какой командой удалить ?
  • https://t.me/clickhouse_ru
    @stufently #74778 02:51 PM, 12 Nov 2018
    я не помню точно какая команда ну там либо rm либо rmr я очень давно делал когда только начинал с кх и всякие тесты по крешу проводил
  • https://t.me/clickhouse_ru
    @stufently #74779 02:52 PM, 12 Nov 2018
    там помню хелп можно было в зккли написать
  • https://t.me/clickhouse_ru
    @stufently #74780 02:52 PM, 12 Nov 2018
    и там был список команд
  • @medov_alexey #74781 02:52 PM, 12 Nov 2018
    да команды есть
  • @medov_alexey #74782 02:52 PM, 12 Nov 2018
    delete не может удалить
  • @medov_alexey #74783 02:52 PM, 12 Nov 2018
    говорит диекртория не пуста
  • @medov_alexey #74784 02:52 PM, 12 Nov 2018
    видимо rmr
  • https://t.me/clickhouse_ru
    @stufently #74785 02:53 PM, 12 Nov 2018
    ну да рмр видимо рекурсивное удаление
  • @medov_alexey #74786 02:53 PM, 12 Nov 2018
    он удалит надеюсь только одну таблицу ? не весь /clickhouse ?
  • https://t.me/clickhouse_ru
    @stufently #74787 02:53 PM, 12 Nov 2018
    я помню когда удалил тоже была проблема что директория не пуста , и потом использовал какую то рекурсивную команду удаления
  • https://t.me/clickhouse_ru
    @stufently #74788 02:54 PM, 12 Nov 2018
    ну там же просто файловая система по сути
  • https://t.me/clickhouse_ru
    @stufently #74789 02:54 PM, 12 Nov 2018
    ну сделайте бекап зукипера на всякий случай
  • https://t.me/clickhouse_ru
    @stufently #74790 02:54 PM, 12 Nov 2018
    удалит путь который пропишешь в команде не все данные кх
  • @medov_alexey #74791 02:54 PM, 12 Nov 2018
    Ладно попробую rmr спасибо
  • спасибо)
  • https://t.me/clickhouse_ru
    @aliabdullaev1993 #74793 02:54 PM, 12 Nov 2018
    Всем привет!
    А есть ли какие-то рекомендации по вставке в clickhouse? Если у меня пока только 1 тачка, то какой клиент лучше использовать, чтобы убедиться в том вставились данные или нет?
    Вопросы возникли когда начали пропадать данные при вставке, явно что-то не так делаю. Собственно, вставляю в 50 потоков и в каждом потоке батчами до 100к записей
  • https://t.me/clickhouse_ru
    @bezrukovp #74794 02:54 PM, 12 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Imaskar #74795 02:55 PM, 12 Nov 2018
    может стоит логи глянуть?
  • https://t.me/clickhouse_ru
    @Imaskar #74796 02:55 PM, 12 Nov 2018
    ну и самый надёжный клиент - это clickhouse-cli встроенный
  • https://t.me/clickhouse_ru
    @stufently #74797 02:55 PM, 12 Nov 2018
    ну это плохо так вставлять , в го клиент говорит если были проблемы со вставкой , все таки 50 потоков это много для кх на одной тачке если они часто вставляют одновременно
  • https://t.me/clickhouse_ru
    @aliabdullaev1993 #74798 02:56 PM, 12 Nov 2018
    в логах ошибки с чтением и записью блоков, правда непонятно связано ли это с таумаутом дисковых операций
  • https://t.me/clickhouse_ru
    @stufently #74799 02:57 PM, 12 Nov 2018
    ну не должно быть ошибок
  • https://t.me/clickhouse_ru
    @stufently #74800 02:57 PM, 12 Nov 2018
    ну посмотрите топ в пиковые нагрузки если нет мониторинга
  • помогло) спасибо)
  • https://t.me/clickhouse_ru
    а что значит батчами по 100к ?
    100к insert-ов или 100к записей в одном insert?
  • https://t.me/clickhouse_ru
    100k записей в одном insert
  • https://t.me/clickhouse_ru
    а ошибки вообще контроллируются? Все инсерты успешны были?
  • https://t.me/clickhouse_ru
    @bezrukovp #74805 03:14 PM, 12 Nov 2018
    Коллеги, всем привет.
    Нам нужно гарантировать запись в clickhouse, но вставка отвечая 200 не сбрасывает на диск.
    На HL Алексей Миловидов посоветовал использовать репликацию, так как в процессе идёт запись на диск(я так понял). Вот читаю доки можно настроить insert_quorum.
    Правильно я понимаю что при получении 200 на insert уже точно будет fsync на диск?
  • https://t.me/clickhouse_ru
    Как понять, что insert прошел успешно? Мб подскажете, в питонячьем неофф клиенте insert ничего не возвращает
  • https://t.me/clickhouse_ru
    200 вернулось.
  • https://t.me/clickhouse_ru
    @aliabdullaev1993 #74808 03:15 PM, 12 Nov 2018
    Значит надо на другой клиент переходить
  • https://t.me/clickhouse_ru
    скорее всего вы неправильно поняли, insert_quorum используется чтобы получить ответ что инсерт прошел на нескольких репликах, в этом случае вероятность потери данных после полученного 200 меньше.
  • https://t.me/clickhouse_ru
    А что подразумевается под insert на реплику?
  • https://t.me/clickhouse_ru
    @stufently #74811 03:21 PM, 12 Nov 2018
    Значит двести вернули n реплик указанных в инсерткворуме
  • https://t.me/clickhouse_ru
    что блок записался больше чем на 1й ноде в replicated* таблицу.
    https://clickhouse.yandex/docs/ru/operations/settings/settings/#insert_quorum

    это кстати про блок, а не про insert. Сам инсерт неконсинтент и не атомарен.
  • https://t.me/clickhouse_ru
    @bezrukovp #74813 03:24 PM, 12 Nov 2018
    А эта таблица лежит где? она будет потеряна в случае перезагрузки сервера?
  • https://t.me/clickhouse_ru
    это та самая таблица куда вставка идет. Каждый блок инсерта - это парт - файл, при перезагрузке, незасинканые файлы ( парты ( последние блоки)) потеряются
  • https://t.me/clickhouse_ru
    @bezrukovp #74815 03:32 PM, 12 Nov 2018
    А в какой момент принимается решение сбросить на диск? С какой задержкой, от чего зависит?
  • https://t.me/clickhouse_ru
    ну как обычно, это os определяет - если ос ядро линукса то vm.dirty_expire_centisecs vm.dirty_ratio ?
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74818 04:13 PM, 12 Nov 2018
    Коллеги, а правильно понимаю, что движок MergeTree используется по умолчанию? В доке везде пишут, что при создании МатВью надо обязательно указать движок. При этом у меня в МатВьюхах нет указаны движки и.... работает )
  • https://t.me/clickhouse_ru
    @Twicebyte #74819 04:14 PM, 12 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @bezrukovp #74820 04:14 PM, 12 Nov 2018
    Коллеги, ещё 1н вопрос, будьте любезны.
    Есть встроенный движок kafka, он даёт какие-то гарантии консистентного импорта?:)
  • https://t.me/clickhouse_ru
    @dAN0n #74821 04:16 PM, 12 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    ну устарела документация, некоторое время назад появилась возможность "TO" -- указать таблицу в которую будет писать MV, поэтому движок у MV теперь обязателен, только если MV сам неявно создает inner таблицу.
  • https://t.me/clickhouse_ru
    Ага, спасибо, примерно так и думал... я использую конструкцию как раз с TO.
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74824 04:33 PM, 12 Nov 2018
    а можно как то посмотреть какой размер у MV?
  • https://t.me/clickhouse_ru
    сам MV, это лишь sql файл, а таблица - это обычная таблица

    select round(sum(bytes)/1024/1024/1024) size, count(), database,table
    from system.parts
    where active = 1 and table like '%%'
    group by database,table
    order by size desc
  • https://t.me/clickhouse_ru
    @nicname #74826 04:35 PM, 12 Nov 2018
    SELECT
    table,
    formatReadableSize(size) AS size,
    rows,
    days,
    formatReadableSize(avgDaySize) AS avgDaySize
    FROM
    (
    SELECT
    table,
    sum(bytes) AS size,
    sum(rows) AS rows,
    min(min_date) AS min_date,
    max(max_date) AS max_date,
    max_date - min_date AS days,
    size / (max_date - min_date) AS avgDaySize
    FROM system.parts
    WHERE active
    GROUP BY table
    ORDER BY rows DESC
    )
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74827 04:43 PM, 12 Nov 2018
    тогда я не совсем понимаю логику... у нас сделано так: есть таблица Kafka. Она подписывается на топик. Т.к. селектить напрямую от туда нельзя, т.к. данные читаются 1 раз - сделал MV_logs, которое из Kafka -> Logs. То есть таблица Logs - это тамблица с сырыми данными. После этого начинаю делать другие MV. Они получаются типа Create MV 'name' to 'table_name' FROM MV_logs. И оно работает. Даже если просто делать select * from MV_LOGS, которое по идее просто должно трансферить данные из кафки - отображаются очень старные данные, которых там не должно быть
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74828 04:44 PM, 12 Nov 2018
    show create mv_logs

    CREATE MATERIALIZED VIEW CDN_LOGS.mv_logs TO CDN_LOGS.Cache_logs ( ) AS SELECT ) AS type FROM CDN_LOGS.Kafka
  • https://t.me/clickhouse_ru
    @nicname #74829 04:45 PM, 12 Nov 2018
    странно что работает, но в общем в доке описан механизм сразу из кафко-таблицы в мв скидывать
    https://clickhouse.yandex/docs/en/operations/table_engines/kafka/
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74830 04:46 PM, 12 Nov 2018
    Пример запроса на любое другое MV CREATE MATERIALIZED VIEW CDN_LOGS.mv_codes TO CDN_LOGS.codes FROM CDN_LOGS.mv_logs
  • https://t.me/clickhouse_ru
    потому что не важно откуда делать селект из inner ( MV ) таблицы или из MV, это не имеет отношения к кафке вообще.
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74832 04:48 PM, 12 Nov 2018
    то есть запрос select * from mv_logs делается из inner таблицы MV ?
  • https://t.me/clickhouse_ru
    запросы select from mv_codes и select from codes всегда вернут одно и тоже.
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74834 04:51 PM, 12 Nov 2018
    я понимаю, что вернут одно и тоже... я хочу понять откуда данные забираются
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74835 04:51 PM, 12 Nov 2018
    т.к. судя по логике - источником данных должна быть таблица Kafka.
  • https://t.me/clickhouse_ru
    @den_crane #74836 04:53 PM, 12 Nov 2018
    данные забирает из кафки таблица engine=kafka ( CDN_LOGS.Kafka ) и пихает в MV, который пихает в CDN_LOGS.codes
  • https://t.me/clickhouse_ru
    @blinkovivan #74838 04:55 PM, 12 Nov 2018
    ClickHouse Community Meetup in Beijing on October 28, 2018

    Interest in ClickHouse among Chinese experts is growing rapidly. It was second ClickHouse Meetup in Beijing this year an

  • https://t.me/clickhouse_ru
    @den_crane #74839 04:55 PM, 12 Nov 2018
    CREATE MATERIALIZED VIEW mmmm TO store FROM чего_угодно
    когда вы делаете запрос к mmmm , фактически делается запрос к store.
  • https://t.me/clickhouse_ru
    а насколько консистентно он это делает?
  • https://t.me/clickhouse_ru
    примерно нинасколько, у менч по крайней мере.
  • https://t.me/clickhouse_ru
    @nicname #74842 04:57 PM, 12 Nov 2018
    угу, есть нюансы
  • https://t.me/clickhouse_ru
    @bezrukovp #74843 04:57 PM, 12 Nov 2018
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74844 04:59 PM, 12 Nov 2018
    то есть, получается если есть MV CREATE MATERIALIZED VIEW mv_logs TO Cache_logs FROM Kafka, И я делаю запрос, другой MV - CREATE MATERIALIZED VIEW mv_avgreqtime_ts TO avgreqtime_ts FROM mv_logs, то данные будут читаться с Cache_logs, а не с Kafka?
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74845 05:02 PM, 12 Nov 2018
    так то все очень неплохо работает. и быстро и вроде без видимых дропов данных. Просто мат часть понять
  • https://t.me/clickhouse_ru
    в целом, да так и получается... спасибо
  • https://t.me/clickhouse_ru
    @Tangoon #74848 06:29 PM, 12 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @stovm #74849 06:51 PM, 12 Nov 2018
    Добрый вечер. Такой вопрос к пользователям Redash.
    У меня 10 серверов, реплика 2, 5 шардов. Соответственно локальные таблицы и поверх distributed.
    В настройках redash не нашёл способа сделать так, чтобы запросы шли на разные сервера, чтобы не нагружать один «master», который указан в настройках соединения к ClickHouse.
    Как вы решаете/обходите эту проблему?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #74849 #74850 06:56 PM, 12 Nov 2018
    nginx/chproxy/haproxy
  • https://t.me/clickhouse_ru
    @stovm ↶ Reply to #74850 #74851 06:57 PM, 12 Nov 2018
    Мммм… Спасибо
  • https://t.me/clickhouse_ru
    @undiabler #74852 06:58 PM, 12 Nov 2018
    так если таблица уже distributed и распределяет запросы
    тогда какая разница кого нагружать?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #74852 #74853 07:00 PM, 12 Nov 2018
    Данные все равно через один хост пойдут, нагрузка конечно не такая как если бы он выполнял сам, но если есть простые способы от нее избавиться, то почему нет?
  • https://t.me/clickhouse_ru
    @askur_andrio #74854 07:00 PM, 12 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @undiabler #74855 07:01 PM, 12 Nov 2018
    ммм, потому что наверное это преждевременные оптимизации?) сам редаш умный и спокойно кеширует результат ответа, сколько бы юзеров не лазило.
    У нас это организовано несколькими дашбордами которые апдейтяться раз в час
  • https://t.me/clickhouse_ru
    @stovm #74856 07:04 PM, 12 Nov 2018
    Ладно, спасибо. Посидим так, - посмотрим, сколько желающих запрашивать графики, если что, будем проксировать
  • https://t.me/clickhouse_ru
    тоже думал, как лучше организовать и собирался уже добавить возможность указывать несколько серверов, но в итоге решил использовать  chproxy+haproxy
  • @SeregaSLM #74858 07:28 PM, 12 Nov 2018
    Joined.
  • 13 November 2018 (202 messages)
  • https://t.me/clickhouse_ru
    @nengchak ↶ Reply to #74866 #74867 07:49 AM, 13 Nov 2018
    как тебя удялят, сделает мой день!
  • @bar_ser #74868 07:50 AM, 13 Nov 2018
    Joined.
  • А что было? Если решения нет может и вопрос удалить? :)
  • https://t.me/clickhouse_ru
    @metikovvadim #74870 08:00 AM, 13 Nov 2018
    Неправильно были названы секции.
  • https://t.me/clickhouse_ru
    Всем привет. Подскажите пожалуйста, есть ли возможность просчитывать площади полигонов средствами КХ?
  • https://t.me/clickhouse_ru
    @ig_tk #74872 08:22 AM, 13 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @149051052 #74873 08:43 AM, 13 Nov 2018
    Вопрос про засечки, есть ли разница в оптимальности между двумя вариантами ключа (вымышленный пример)?
    1) Порядок столбцов: id, gender, age
    2) Порядок столбцов: id, age, gender
    При условии, что age и gender имеет одинаковый тип, но gender бывает только 0 или 1
  • https://t.me/clickhouse_ru
    @Imaskar #74874 08:44 AM, 13 Nov 2018
    а как же gender is a spectrum? какая неполиткорректность(
  • https://t.me/clickhouse_ru
    @AterCattus #74875 08:48 AM, 13 Nov 2018
    Всем привет.

    А как-то можно получить от самого КХ список detached партиций? Или "смотри листинг папок на диск, Люк"?
  • @medov_alexey #74877 09:01 AM, 13 Nov 2018
    Добрый день
  • @medov_alexey #74878 09:02 AM, 13 Nov 2018
    мы столкнулись с ошибкой
  • @medov_alexey #74879 09:02 AM, 13 Nov 2018
    Too many simultaneous queries. Maximum: 100
  • @medov_alexey #74880 09:02 AM, 13 Nov 2018
    Это ограничение как то можно снять ?
  • @673769466 #74881 09:03 AM, 13 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @AterCattus #74884 09:04 AM, 13 Nov 2018
    <max_concurrent_queries>100</max_concurrent_queries>
    в конфиге?
  • https://t.me/clickhouse_ru
    @studnev ↶ Reply to #74885 #74887 09:27 AM, 13 Nov 2018
    У нас в конфигурации хосты повторяются, не видим в этом проблемы
  • https://t.me/clickhouse_ru
    @studnev #74888 09:28 AM, 13 Nov 2018
    Например мы используем такой кластер all где перечислены вообще все хосты кликхауза. Потом можно делать ON CLUSTER all
  • https://t.me/clickhouse_ru
    @anastasiiaff #74889 09:32 AM, 13 Nov 2018
    Joined.
  • Увидел спасибо =)
  • @medov_alexey #74892 09:55 AM, 13 Nov 2018
    <max_concurrent_queries>100</max_concurrent_queries>

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

    До какого значение лучше увеличить ? есть какие то принципиальные логические ограничения ?
  • @medov_alexey #74893 09:58 AM, 13 Nov 2018
    Имеется ввиду например, рекомендация не ставить больше 1000
  • @medov_alexey #74894 10:00 AM, 13 Nov 2018
    Ладно поставлю 500
  • https://t.me/clickhouse_ru
    @leidruid ↶ Reply to #74666 #74895 10:05 AM, 13 Nov 2018
    grafana ?
  • https://t.me/clickhouse_ru
    там нет возможности строить нормально аналитические графики
  • https://t.me/clickhouse_ru
    Какие аналитические графики вам необходимо строить? почему вы считаете что в Графане для этого нет возможностей?
  • https://t.me/clickhouse_ru
    потому что графана для тайм сериес дата и как только я захочу там иметь график из серии "воронка", он будет грузиться неизвестное количество времени.
  • https://t.me/clickhouse_ru
    так это проблема не в графане - а в количестве запрашиваемых вами данных, и количестве имеемых вычислительных ресурсов
  • https://t.me/clickhouse_ru
    да как угодно, факт в том, что с помощью этого инструмента аналитические графики строить невозможно при разумных потраченных ресурсах.
  • @mminaev #74902 10:43 AM, 13 Nov 2018
    Всем привет, в клике хранятся показы и клики, и есть задача выгружить эти данные за кастномный период, при этом высчитать их в лоб довольно долго(данные за 2 недели считаются порядка 5-7 с). Можно ли как то средсвами клика хранить уже препосчитанные данный за каждый день отдельно и при необходимости их забирать?
  • @kanterov ↶ Reply to #74666 #74903 10:44 AM, 13 Nov 2018
    superset
  • https://t.me/clickhouse_ru
    Мы из датасорса ClickHouse, в Графане, показываем графики по входящим логам от продуктовых nginx, поток которых равен ~12Млн строк/мин. У нас все ок, графики есть - за последние сутки отрисовывает ~10сек
  • https://t.me/clickhouse_ru
    Вообще-то это как раз пример time series
  • https://t.me/clickhouse_ru
    @smorodnikova #74906 10:47 AM, 13 Nov 2018
    так это потому что тайм сериес дата. Отобразите там график медианы количества операций определенного типа в разрезе когорт юзеров и посмотрите, что произойдет.
  • https://t.me/clickhouse_ru
    И, кстати, графана-то как раз нормально большие объёмы переваривает. Вот броузеры...
  • https://t.me/clickhouse_ru
    Так это не проблема - подобный запрос построить можно, Графана предоставляет возможность прокивыдвать "Типы операций" и "типы когорт юзеров" в тело запроса. КХ получит этот запрос - обработает его и вернет результат - долго ли он будет его обрабатывать зависит от количества общитываемых данных и ваших мощностей.
    Если вам нужны подобные выборки БЫСТРО- то строить их из сырых данных идиотия! Используйте аггрегаторы, и TSDB.
  • https://t.me/clickhouse_ru
    @vlkolobaev #74912 10:53 AM, 13 Nov 2018
    Графана здесь совершенно непричем!
  • https://t.me/clickhouse_ru
    это как микроскопом гвозди забивать. На графане это неудобно. Если уж говорить для обычных SQL, то метабейз в сто раз круче графаны для графиков не про потоки времени. Вся проблемпа только в том, что с кликхаусом у них интеграции нет. "Построить запрос можно" и "это удобное и адекватное решение" - разные вещи.
  • https://t.me/clickhouse_ru
    А какой софт для прокидывания в клик таких объемов если не секрет? Кафка и zoo?
  • https://t.me/clickhouse_ru
    Мы на go написали свой маленький лог-коллектор - с парсингом и применением кастомных функций. Возможно заопенсорсим
  • https://t.me/clickhouse_ru
    @Imaskar ↶ Reply to #74913 #74916 11:06 AM, 13 Nov 2018
    А чем метабейз поможет лучше запрос построить? Вы путаете интерфейс и бэкенд.
  • @antonio_antuan #74917 11:10 AM, 13 Nov 2018
    Подскажите, пожалуйста, по поводу "неизвестного момент времени", в который запускается слияние для *MergeTree. Хотя бы порядок цифр интересует, речь о секундах, минутах, часах или возможно больше?
  • https://t.me/clickhouse_ru
    @nicname #74918 11:16 AM, 13 Nov 2018
    судя по логам – 2-3 секунды
  • https://t.me/clickhouse_ru
    @nicname #74919 11:17 AM, 13 Nov 2018
    но наверное оно от многих параметров зависит, раз недетерминировано
  • @mAX3773 #74920 11:28 AM, 13 Nov 2018
    Товарищи, извиняюсь за оффтоп!
    Подскажите доступно ли rest api яндекса по http без ssl?
    хочется на слабом iot девайсе к яндекс диску обратиться..нет ресурсов шифровать..
    у меня при обращении http на 80 порту таймауты..
  • https://t.me/clickhouse_ru
    Сделай прокси, проще будет
  • @mAX3773 #74922 11:32 AM, 13 Nov 2018
    да вот и не хотелось ничего городить..сразу с девайса и на диск данные писать
    приложением смотреть или через браузер уже сразу с яндекс-диска
  • https://t.me/clickhouse_ru
    прокси - nginx c https-бекендом, а не специально написанное приложение.
  • @mAX3773 #74924 11:34 AM, 13 Nov 2018
    я понимаю, но его нужно где-то держать на своем сервере, я хочу этого избежать по возможности.. это камеры видеонаблюдения, там поток приличный его лучше сразу в хранилище писать
  • https://t.me/clickhouse_ru
    если id уникален и не бывает одинаковых id с разным age то достаточно просто id (если это не summing...)

    если хочется ускорить запросы без id в where то id первым все портит.

    в общем надо делать тесты, надо знать что такое id, но судя по названиям индекс должен быть gender,age,id
    Скорее всего ткаой sortkey позволит быстро выполнять любые комбинеции
    Where age=
    where gender=
    Where id=
    Where gender= and id=
    Where age> and gender=
  • https://t.me/clickhouse_ru
    @Tangoon #74927 12:23 PM, 13 Nov 2018
    Здравствуйте, пытался сделать загрузку в виде kafka -> MergeTree -> SummingMergeTree через 2 MV, в SummingMergeTree данные не попадают, это так и должно быть? Если делать в виде kafka (group1) -> MergeTree + kafka(group2) -> SummingMergeTree, то все ок, но вопрос к оптимальности такого решения
  • https://t.me/clickhouse_ru
    каскадироват mv нельзя.
    я бы попробовал повесить оба mv на одну кафка таблицу.
    Что такое group2?
  • https://t.me/clickhouse_ru
    @Tangoon ↶ Reply to #74928 #74929 12:29 PM, 13 Nov 2018
    group2 - это kafka consumer group id
  • https://t.me/clickhouse_ru
    @Tangoon #74930 12:29 PM, 13 Nov 2018
    > я бы попробовал повесить оба mv на одну кафка таблицу.

    спасибо, попробую
  • https://t.me/clickhouse_ru
    @Tangoon ↶ Reply to #74930 #74931 12:34 PM, 13 Nov 2018
    работает!
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74932 12:48 PM, 13 Nov 2018
    Как думаете из-за чего может быть такие спайки на ноде при репликации в часы наибольшей нагрузки
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74933 12:48 PM, 13 Nov 2018
    трафика там 5 мбит где то
  • @ppcosnt #74934 12:49 PM, 13 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74935 12:49 PM, 13 Nov 2018
    пропускная способность zoo?
  • https://t.me/clickhouse_ru
    @Krashuevina #74936 12:49 PM, 13 Nov 2018
    иногда нода может решить скачать смерженный кусок с другой ноды, вместо того чтобы мержить локальные
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74937 12:50 PM, 13 Nov 2018
    схема пока 1 активная база, 1 реплика...
  • https://t.me/clickhouse_ru
    @Krashuevina #74938 12:50 PM, 13 Nov 2018
    зеленое - это входящий траффик на тот хост, куда вы пишете?
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74939 12:51 PM, 13 Nov 2018
    да входящий на реплику
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74940 12:51 PM, 13 Nov 2018
    исходящий откуда качается собственно такой же
  • https://t.me/clickhouse_ru
    @Krashuevina #74941 12:51 PM, 13 Nov 2018
    но на "другой" не идут клиентские INSERT?
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74943 12:52 PM, 13 Nov 2018
    на основной как раз идут инзерты все. На реплику потом все переливается
  • BackgroundPoolTask не упирается в этот момент?
  • https://t.me/clickhouse_ru
    а это где посмотреть можно?
  • @Shazo_Rus #74946 12:54 PM, 13 Nov 2018
    в таблице system.asynchronous_metrics.
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74947 12:57 PM, 13 Nov 2018
    select * from system.asynchronous_metrics

    SELECT *
    FROM system.asynchronous_metrics

    ┌─metric──────────────────────────────────┬──────value─┐
    │ jemalloc.background_thread.run_interval │ 0 │
    │ jemalloc.background_thread.num_runs │ 0 │
    │ jemalloc.background_thread.num_threads │ 0 │
    │ jemalloc.retained │ 1344557056 │
    │ jemalloc.mapped │ 4880314368 │
    │ jemalloc.resident │ 4736299008 │
    │ jemalloc.metadata_thp │ 0 │
    │ jemalloc.metadata │ 20982104 │
    │ ReplicasMaxQueueSize │ 0 │
    │ UncompressedCacheCells │ 0 │
    │ MarkCacheFiles │ 222 │
    │ Uptime │ 334619 │
    │ UncompressedCacheBytes │ 0 │
    │ MarkCacheBytes │ 9328 │
    │ jemalloc.allocated │ 890980888 │
    │ ReplicasMaxInsertsInQueue │ 0 │
    │ ReplicasMaxMergesInQueue │ 0 │
    │ ReplicasMaxRelativeDelay │ 0 │
    │ jemalloc.active │ 907632640 │
    │ ReplicasSumQueueSize │ 0 │
    │ ReplicasSumInsertsInQueue │ 0 │
    │ ReplicasMaxAbsoluteDelay │ 0 │
    │ ReplicasSumMergesInQueue │ 0 │
    │ MaxPartCountForPartition │ 19 │
    └─────────────────────────────────────────┴────────────┘
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74948 12:57 PM, 13 Nov 2018
    это в данный момент (сейчас нету такой гребенки)
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74949 12:58 PM, 13 Nov 2018
    нашел
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74950 12:58 PM, 13 Nov 2018
    BackgroundSchedulePoolTask │ 2 │ Number of active tasks in BackgroundSchedulePool. This pool is used for periodic tasks of ReplicatedMergeTree like cleaning old data parts, altering data parts, replica re-initialization, etc.
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74951 12:58 PM, 13 Nov 2018
    не в асинхронных метриках, а в просто метриках
  • @medov_alexey #74952 12:59 PM, 13 Nov 2018
    Наше нагрузочное тестирование (кластер из двух нод):

    70 rps - кликхаус падает раз в 5-10 секунд
    60 rps - вероятность падения 1 одной ноды в течении 2-ух минут
    50 rps - вероятность паделния любой из нод около 20% в течении получаса
    45 rpc - очень маленькая вероятность падения ClickHouse в течении часа

    каждая нода 10 ядер + 48 Гб RAM

    Вдруг кому то интересно (это не селекты, а произведение расчетов)
  • Да, ошибся в metrics:

    │ BackgroundPoolTask │ 1 │ Number of active tasks in BackgroundProcessingPool (merges, mutations, fetches or replication queue bookkeeping)

    У нас был момент при мелких вставках, упирались в этот пул. Он по умолчанию 16 вроде. Увеличили.
  • https://t.me/clickhouse_ru
    @Imaskar #74954 01:01 PM, 13 Nov 2018
    слишком зависит от схемы данных...
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74955 01:02 PM, 13 Nov 2018
    а где его увеличить можно? в конфиге клика?
  • @Shazo_Rus #74956 01:04 PM, 13 Nov 2018
    в userx.xml в профайле для пользователя, что делает эти операции - по умолчанию default

    <background_pool_size>512</background_pool_size>
  • @Shazo_Rus #74957 01:05 PM, 13 Nov 2018
    Прежде чем менять лучше все же отмониторить ситуацию на момент проблемы.
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74958 01:05 PM, 13 Nov 2018
    да, это безусловно
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74959 01:05 PM, 13 Nov 2018
    спасибо, посмотрим
  • https://t.me/clickhouse_ru
    @studnev #74960 01:24 PM, 13 Nov 2018
    Интересно кто на митап в Амстердам собирается? Яндексу пора собирать фанатов 🍺 для поездок по миру. Майка у меня есть
  • https://t.me/clickhouse_ru
    @IDMatveev #74961 01:26 PM, 13 Nov 2018
    /stat@combot
  • https://t.me/clickhouse_ru
    а select-ы где выполняются? они к distributed таблице?
  • https://t.me/clickhouse_ru
    distributed таблиц нет. Селекты только к 1 активной базе, с которой сливается реплика
  • https://t.me/clickhouse_ru
    ну я бы почитал логи КХ на обоих серверах, что в этот момент происходит.
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74966 02:12 PM, 13 Nov 2018
    ошибок и варнингов нету, только дебажные логи
  • https://t.me/clickhouse_ru
    @mainnika ↶ Reply to #74960 #74967 02:12 PM, 13 Nov 2018
    Блин я думал это суббота, там кстати до сих пор to be announced для первого доклада
  • https://t.me/clickhouse_ru
    Вопрос касался разницы порядка age и gender
    Так как gender меняется реже (а такое бывает ровно 1 раз) правильнее ли его ставить раньше
    С другой строны gender меняется чаще и фильтр по нему будет продуктивнее (будет фильтроваться меньшее число строк)
    Верно ли это рассуждение?
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74969 02:16 PM, 13 Nov 2018
    нашел вот такое
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74970 02:16 PM, 13 Nov 2018
    stderr.log
    %3|1542103714.940|FAIL|ClickHouse 18.14.8#consumer-2| [thrd:localhost:9092/bootstrap]: localhost:9092/bootstrap: Receive failed: Disconnected
    %3|1542103714.940|ERROR|ClickHouse 18.14.8#consumer-2| [thrd:localhost:9092/bootstrap]: localhost:9092/bootstrap: Receive failed: Disconnected
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74971 02:16 PM, 13 Nov 2018
    кафка похоже
  • https://t.me/clickhouse_ru
    не видя запросов и не зная что такое id ответить нельзя.
    есть запросы вида id= and gender= and age > ?

    я бы начал с gender, age

    но вообще -- id первым все портит (я предполагаю что есть запросы без where id=)
  • https://t.me/clickhouse_ru
    @frenkyoptic #74973 02:23 PM, 13 Nov 2018
    Ребята, подскажите пожалуйста, может есть директива которая говорит кликхаусу не использовать кеш? для оценки быстроты выполнения запроса
  • https://t.me/clickhouse_ru
    кеш чего? линукса? [ echo 1 > /proc/sys/vm/drop_caches ]
    кеш марков? кеш uncompressed? создайте и дропните любую mergetree табли
  • https://t.me/clickhouse_ru
    @frenkyoptic #74975 02:26 PM, 13 Nov 2018
    Кеш результата запроса
  • https://t.me/clickhouse_ru
    нету такого
  • https://t.me/clickhouse_ru
    @frenkyoptic #74977 02:27 PM, 13 Nov 2018
    понял, спасибо =)
  • https://t.me/clickhouse_ru
    Все же вопрос касался конкретно засечек и способа их хранения. Это вопрос к разработчикам.
    Например, если подряд идет много одинаковых данных, влияет ли это каким то образом на засечки или нет.
  • https://t.me/clickhouse_ru
    ааа, тогда прошу прощения, я не хотел мешать.
  • https://t.me/clickhouse_ru
    @nicname #74980 02:33 PM, 13 Nov 2018
    как проще всего сделать копию всей DATABASE со всеми таблицами внутри одного сервера?
  • Останови сервер, скопируй папку с базой, переименуй папку, запусти сервер
  • https://t.me/clickhouse_ru
    @stufently #74982 02:42 PM, 13 Nov 2018
    Ну там ещё мету надо и если реплики то тоже не просто все
  • https://t.me/clickhouse_ru
    @nicname #74983 02:43 PM, 13 Nov 2018
    нет, реплик нет, спасибо
  • https://t.me/clickhouse_ru
    @nicname #74984 02:43 PM, 13 Nov 2018
    а мету какую?
  • https://t.me/clickhouse_ru
    @dlazarchuk #74985 02:43 PM, 13 Nov 2018
    Ребят, помогите советом. Хочу вывести из нагрузки реплику из шарда, хотел уточнить план действий, для себя составил таким образом:
    1) убираю в конфигах с шарда на всех нодах реплику которую нужно потушить; Убираю её же с конфигов зукипера
    2) рестартую Кликхаус
    3) Тушу сервер
    Подскажите если что не так! Спасибо!
  • https://t.me/clickhouse_ru
    @nicname #74986 02:43 PM, 13 Nov 2018
    а, вижу
  • А обноленные конфиги кликхаус сервера поднянутся без рестартования clickhouse серверов ?
  • https://t.me/clickhouse_ru
    Третьим пунктом идет рестарт
  • @medov_alexey #74989 02:45 PM, 13 Nov 2018
    то есть изменения в config.xml подтягиваюся на лету ?
  • https://t.me/clickhouse_ru
    а зукипер будете вручную чистить? надо дропнуть все replicated таблицы на ней, иначе zk взорвется из-за того что ее реплика будет писать в zk информацию для нее, а забирать некому.
  • https://t.me/clickhouse_ru
    @molo4ko007 #74991 02:49 PM, 13 Nov 2018
    нашел в конфиге такую секцию
    <resharding>
    <task_queue_path>/clickhouse/task_queue</task_queue_path>
    </resharding>
    непонятного происхождения, и в исходниках кх не грепается - это что-то из старой функциональности?
  • https://t.me/clickhouse_ru
    Надо дропнуть таблицы чтобы почистились пути в зукипере, что значит убираю ее из конфигов зукипера?
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #74994 03:01 PM, 13 Nov 2018
    А кто прикручивал алертинг к графане? я так понял из коробки там не работает их алертинг и все обещают сделать...
  • https://t.me/clickhouse_ru
    @nicname #74995 03:01 PM, 13 Nov 2018
    а вот смотрите, у меня есть таблица с партициями, ключами и т.д., если я делаю VIEW AS (SELECT * FROM этой таблицы ), то он перестает это все учитывать?

    делаю отчет который на голой таблице считается условно 5 секунд, а когда через такой вот вью – то 10.
  • https://t.me/clickhouse_ru
    t.me/clickhouse_ru/73647
    Denny Crane in ClickHouse не тормозит

    да есть оно set enable_optimize_predicate_expression = 1; select count() from (select * from part_test prewhere V>1000) where A=700; 1 rows in set. Elapsed: 0.053 sec. Processed 10.15 million rows, 162.40 MB (189.79 million rows/s., 3.04 GB/s.) set enable_optimize_predicate_expression = 0; select count() from (select * from part_test prewhere V>1000) where A=700; ^C 23%Cancelling query. Ok. Query was cancelled. 0 rows in set. Elapsed: 68.444 sec. Processed 2.33 billion rows, 37.22 GB (33.99 million rows/s., 543.82 MB/s.)

  • https://t.me/clickhouse_ru
    @nicname ↶ Reply to #74996 #74997 03:07 PM, 13 Nov 2018
    а оно в пределах пользовательской сессии работает?
  • https://t.me/clickhouse_ru
    @den_crane #74998 03:07 PM, 13 Nov 2018
    enable_optimize_predicate_expression выключено по умолчанию, потому что нашлись баги, и пользоваться ей не рекомендуется.
    Просто не пользуйтейсь view вообще.
  • https://t.me/clickhouse_ru
    @nicname #74999 03:08 PM, 13 Nov 2018
    :)
  • https://t.me/clickhouse_ru
  • @793923700 #75001 03:10 PM, 13 Nov 2018
    Joined.
  • @790543254 #75002 03:10 PM, 13 Nov 2018
    Joined.
  • @737083134 #75003 03:10 PM, 13 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @nicname #75005 03:17 PM, 13 Nov 2018
    а чем пользоваться вместо view?
  • https://t.me/clickhouse_ru
    или писать запросы вручную или генерить?
  • https://t.me/clickhouse_ru
    @nicname #75007 03:20 PM, 13 Nov 2018
    да вот вью у меня и генерятся
  • https://t.me/clickhouse_ru
    @nicname #75008 03:21 PM, 13 Nov 2018
    там же ведь вроде еще была деградация производительности, когда много вложенных селектов были, даже без вью
  • https://t.me/clickhouse_ru
    @nicname #75009 03:22 PM, 13 Nov 2018
    или у этих проблем общий корень?
  • https://t.me/clickhouse_ru
    тут телепат нужен, но предикаты из внешнего запроса вглубь не проталкиваются, это точно.
  • https://t.me/clickhouse_ru
    @nicname #75011 03:33 PM, 13 Nov 2018
    ясно, спасибо, буду крутить
  • https://t.me/clickhouse_ru
    @stovm #75012 03:39 PM, 13 Nov 2018
    Кто-нибудь сталкивался с
    Code: 62. DB::Exception: Syntax error (data type): failed at position 1: . Unrecognized token: while receiving packet
    ?

    Происходит при определённых условиях.
    1. Выбираю * из таблицы
    2. В таблице есть NESTED структуры..
    3. Происходит иногда, - можно указать, например, limit 1 и будет ошибка, а на limit 100 не будет ошибки

    Таблица на самом деле широкая - внутри NESTED структуры есть LowCardinality(String) и много всего другого
  • https://t.me/clickhouse_ru
    Конфиг зукипера я имел ввиду то что прописано в zookeeper-servers в секции nodes, у нас несколько реплик прописаны там ( А дропать реплицируемые таблицы в какой момент, в этой схеме? После того как убрать из конфигов шарда и рестарта кликхаус серверов?
  • https://t.me/clickhouse_ru
    Там нигде реплики не прописываются
  • https://t.me/clickhouse_ru
    @stufently #75015 03:46 PM, 13 Nov 2018
    Дропать можно в самом начале
  • https://t.me/clickhouse_ru
    @Burtsev #75016 03:47 PM, 13 Nov 2018
    Было бы прикольно проиндексировать этот чат, выделить вопросы и ответы. И сделать типа stackoverflow, кроме того бот автоматом предложит ответ если таковой имеется в базе. Ведь здесь собралась огромная, бесценная база знаний по теме. И таких групп много где нужен такой бот.
  • https://t.me/clickhouse_ru
    @stufently #75017 03:49 PM, 13 Nov 2018
    Ну тогда сложно будет продавать суппорт по 350 долларов в час
  • https://t.me/clickhouse_ru
    @Burtsev #75018 03:50 PM, 13 Nov 2018
    польза для общества важнее
  • https://t.me/clickhouse_ru
    Спасибо!
  • https://t.me/clickhouse_ru
    а не проще всем просто перейти на SO, а этот чат удалить?
  • https://t.me/clickhouse_ru
    @Burtsev #75021 03:56 PM, 13 Nov 2018
    ну телеграм дал второе дыхание чатам, можно ведь найти точку соприкосновения
  • https://t.me/clickhouse_ru
    @Burtsev #75022 03:56 PM, 13 Nov 2018
    одно другому не мешает
  • https://t.me/clickhouse_ru
    @den_crane #75023 03:56 PM, 13 Nov 2018
    я слышал можно микроскопом гвозди забивать.
  • https://t.me/clickhouse_ru
    @den_crane #75024 03:58 PM, 13 Nov 2018
    в этом чате 99% интересных вопросов остаются неотвеченными, потому что их никто не увидел из-за потока мусора.
  • @faerics ↶ Reply to #75020 #75025 04:00 PM, 13 Nov 2018
    На SO куча мусорных ответов, которые здесь как раз фильтруются
  • https://t.me/clickhouse_ru
    @Burtsev #75026 04:01 PM, 13 Nov 2018
    смею предположить что большая доля вопросов в таких группах повторяется в том или ином виде, либо же более правильный ответ на этот вопросы был дан ранее, но никто не помнит когда и лень искать (бот помнит)
  • @faerics ↶ Reply to #75026 #75027 04:02 PM, 13 Nov 2018
    Повторяется, но ответ на них меняется с версией, о чем бот не знает. В этом и преимущество чата -- гарантия актуальности.
  • https://t.me/clickhouse_ru
    @Burtsev #75028 04:03 PM, 13 Nov 2018
    буду рад, если я подтолкну кого-то на создание такого бота и он будет опенсурсным 😉
  • https://t.me/clickhouse_ru
    @Burtsev ↶ Reply to #75027 #75029 04:03 PM, 13 Nov 2018
    согласен, но ведь ничего не мешает "обновить" ответ
  • https://t.me/clickhouse_ru
    этот бот пахнет как стронг ИИ.
  • https://t.me/clickhouse_ru
    @Burtsev #75031 04:03 PM, 13 Nov 2018
    актуализировать
  • https://t.me/clickhouse_ru
    @Burtsev ↶ Reply to #75030 #75032 04:03 PM, 13 Nov 2018
    именно
  • @faerics ↶ Reply to #75029 #75033 04:04 PM, 13 Nov 2018
    Это гораздо более дорогая операция, чем дать новый ответ. Так сказать ALTER UPDATE
  • https://t.me/clickhouse_ru
    вы шутите, я надеюсь.
  • @guram_vashakidze #75036 04:37 PM, 13 Nov 2018
    Вечер добрый. А кто может подсказать, что за движок "VersionedCollapsingMergeTree"?
  • https://t.me/clickhouse_ru
    @orantius #75037 04:48 PM, 13 Nov 2018
    это такой чуть более хороший collapsing
  • а в чем это проявляется?)
  • @guram_vashakidze #75039 04:51 PM, 13 Nov 2018
    И есть ли описание - какие входные параметры при создании таблицы с этим движком? (или те же что и у Collapsing?)
  • @faerics ↶ Reply to #75038 #75040 04:53 PM, 13 Nov 2018
    Судя по названию, есть некоторое поле version, и коллапсится только с одинаковыми его значениями.
  • Да просто гадать особо не хочется, а потестить хочется)
  • https://t.me/clickhouse_ru
    @orantius #75042 04:57 PM, 13 Nov 2018
    обычный collapsing при мерже строк относящихся к одному ключу считает что более поздние записи более правильные, в случае когда в одном куске оказывается несколько (больше двух) записей с минусом и плюсом, то этот кусок лога кажется интерпретируется как самая первая запись с минусом и самая последняя с плюсом, и по-моему при схлопывании ключа в ничто, т.е. удалении, тоже есть какой-то спецэффект. в версионированном движке эти вещи сделаны более аккуратно.
  • @guram_vashakidze #75043 04:59 PM, 13 Nov 2018
    Интересно, спасибо за развернутый ответ. А по созданию - как создавать таблицы (ENGINE) с таким движоком?
  • https://t.me/clickhouse_ru
    @orantius #75044 05:02 PM, 13 Nov 2018
    ReplicatedVersionedCollapsingMergeTree('path, '{replica}', partition, sample, orderby, 8192, sign, version)
  • @guram_vashakidze #75045 05:06 PM, 13 Nov 2018
    Спасибо!
  • @rus72ru #75046 05:09 PM, 13 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #75047 05:16 PM, 13 Nov 2018
    Вложеннные селекты в MV не будут работать да?
  • https://t.me/clickhouse_ru
    MV выполняет запрос на (over) вставляемом блоке.

    зыж: я бы почитал ответ иван иваныча на этот вопрос.
  • https://t.me/clickhouse_ru
    @mary_fischer #75051 06:24 PM, 13 Nov 2018
    Привет! Есть ли информация, насколько MV замедляет вставку в таблицу-источник, и что будет, если будет много MV над одной таблицей?
  • https://t.me/clickhouse_ru
    @iusik #75052 06:31 PM, 13 Nov 2018
    Собираюсь вот такую таблицу (ReplicatedMergeTree) создать:
    event_date Date DEFAULT toDate(event_datetime)
    event_datetime DateTime
    zone_id UInt32
    campaign_id UInt32
    creative_id UInt32
    link_id UInt32
    creative_type UInt32
    impression_cnt Int64
    click_cnt Int64

    Запросы в основном буду делать по event_datetime, потому как нужна поддержка различных тайм-зонов для клиентов.
    Ну и дополнительно буду фильтровать по creative_type, меньше всего будут фильтры по zone_id,campaign_id, а тем более по creative_id и link_id

    Подскажите какой лучше всего сделать индекс?
    Сегментировать лучше всего наверно по event_date или сократить до YYYYMM ?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #75051 #75053 06:32 PM, 13 Nov 2018
    Будет много таблиц и много вставок, в новых версиях вставку можно распараллелить.
  • https://t.me/clickhouse_ru
    зачем вам event_date ? и сколько дней будете хранить?
    если на пример во многих запросах будет скажем where campaign_id и campaign_id имеет мало возможных значений то

    partition by YYYYMM(event_datetime)
    order by creative_type, campaign_id, event_datetime

    но сказать точно можно только заполнив таблицу похожими данными (с похожим распределением) и прогнав тесты.
  • https://t.me/clickhouse_ru
    @iusik #75055 06:45 PM, 13 Nov 2018
    @den_crane “event_date” убрал =)
    “и сколько дней будете хранить” - как это понять? вечно хранить буду.
  • https://t.me/clickhouse_ru
    это вопрос про партиционирование, партиционировать по дням или по месяцам.
    При вечном хранении у вас будет либо 365 либо 12 партиций в год. Я голосую за YYYYMM.
    Для вечного хранения я бы не рискнул делать 365 партиций, вот если бы хранили данные месяц (у меня например никаких жестких дисков не хватит хранить год), можно было бы использовать дневные партиции.
  • https://t.me/clickhouse_ru
    @iusik ↶ Reply to #75056 #75057 06:54 PM, 13 Nov 2018
    Спасибо!
  • https://t.me/clickhouse_ru
    @Coderxlsn #75058 06:58 PM, 13 Nov 2018
    а кто-нибуть знает это нормально распределение партиций?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @Coderxlsn #75060 06:58 PM, 13 Nov 2018
    я думал будет одна запись за месяц
  • https://t.me/clickhouse_ru
    @den_crane #75061 06:58 PM, 13 Nov 2018
    это парты, а не партиции
  • https://t.me/clickhouse_ru
    @Coderxlsn #75062 06:59 PM, 13 Nov 2018
    сорри, неправильно вырозился. это так и будет? или они должны оптимизироватся и схлопыватся?
  • https://t.me/clickhouse_ru
    должны, схлпонутся через бесконечность лет, когда-нибудь.
    вы зачем на диск смотрите? есть таблица system.parts
  • https://t.me/clickhouse_ru
    @den_crane #75064 07:03 PM, 13 Nov 2018
    проще же

    select round(sum(bytes)/1024/1024/1024) size,count() parts_count, database,table,partition
    from system.parts
    where table like '%моя таблица%' and active
    group by database,table,partition
    order by size desc
  • https://t.me/clickhouse_ru
    @iusik ↶ Reply to #75057 #75065 07:04 PM, 13 Nov 2018
    А вот в итоге без event_date не создать таблицу =(
    DB::Exception: Date column name must be an unquoted string
    По другому же никак ?
  • @mmmhh93 #75066 07:06 PM, 13 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    вы о чем? запрос покажите
  • https://t.me/clickhouse_ru
    @iusik ↶ Reply to #75067 #75068 07:07 PM, 13 Nov 2018
    CREATE TABLE IF NOT EXISTS xxxxx.link_stat_9 ( event_datetime DateTime, zone_id UInt32, campaign_id UInt32, creative_id UInt32, creative_type UInt8, impression_cnt Int64, click_cnt Int64) ENGINE = ReplicatedMergeTree('\''/clickhouse/tables/2/xxxxx/link_stat_9'\'' ,'\''ch02-weu.xxxxx'\'',toYYYYMM(event_datetime), (creative_type, zone_id, campaign_id, event_datetime), 8192)
  • https://t.me/clickhouse_ru
    я же писал

    partition by YYYYMM(event_datetime)
    order by creative_type, campaign_id, event_datetime
  • https://t.me/clickhouse_ru
    @den_crane #75070 07:11 PM, 13 Nov 2018
    вот так

    CREATE TABLE IF NOT EXISTS link_stat_9 ( event_datetime DateTime, zone_id UInt32, campaign_id UInt32, creative_id UInt32,
    creative_type UInt8, impression_cnt Int64, click_cnt Int64)
    ENGINE = MergeTree
    partition by toYYYYMM(event_datetime)
    order by (creative_type, zone_id, campaign_id, event_datetime)
  • https://t.me/clickhouse_ru
    @den_crane #75071 07:15 PM, 13 Nov 2018
    и вы зря не используете макросы

    вот это /clickhouse/tables/2/xxxxx/link_stat_9'\'' ,'\''ch02-weu.xxxxx'\'
    вырождается в '/clickhouse/tables/{shard}/link_stat_9','{replica}'
    и можно выполнять на любой ноде, ddl везде будет одинаковый
  • https://t.me/clickhouse_ru
    @den_crane #75073 07:16 PM, 13 Nov 2018
    /clickhouse/tables/ тоже можно выразить через макрос или убрать через zk chroot
  • https://t.me/clickhouse_ru
    @iusik #75074 07:16 PM, 13 Nov 2018
    Поизучаю, спасибо.
  • @DTolpekin #75076 09:17 PM, 13 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @freecoder_xx #75077 10:01 PM, 13 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @freecoder_xx #75078 10:03 PM, 13 Nov 2018
    Приветствую.
    Подскажите, как можно взаимодействовать с ClickHouse из Rust? Или из программ на Cи.
  • https://t.me/clickhouse_ru
    @inv2004 ↶ Reply to #75078 #75079 10:12 PM, 13 Nov 2018
    Я видел пару крейтов, но насколько они живы не щупал.
  • https://t.me/clickhouse_ru
    @inv2004 #75080 10:12 PM, 13 Nov 2018
    Вероятно тоже скоро понадобится, но кажется протокол не очень сложный. Ну или биндинги.
  • https://t.me/clickhouse_ru
    @inv2004 #75081 10:13 PM, 13 Nov 2018
    Это если про raw, а другие варианты думаю проще ещё.
  • @70532431 #75082 10:22 PM, 13 Nov 2018
    А можно как-то делать селект из cli, чтобы данные печатались в tsv формате, и заворачивать их через конвеер минуя диск сразу в какой tar архив?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #75082 #75083 10:25 PM, 13 Nov 2018
    в конце запроса FORMAT TabSeparated

    https://clickhouse.yandex/docs/en/interfaces/formats/#tabseparated
  • @70532431 ↶ Reply to #75083 #75084 10:54 PM, 13 Nov 2018
    Точно работает, спасибо... Почему-то думал, что оно только для INTO OUTFILE применяется.
  • @797486163 #75085 11:05 PM, 13 Nov 2018
    Joined.
  • @608673278 #75086 11:05 PM, 13 Nov 2018
    Joined.
  • @767408616 #75088 11:05 PM, 13 Nov 2018
    Joined.
  • @795707287 #75089 11:05 PM, 13 Nov 2018
    Joined.
  • 14 November 2018 (165 messages)
  • А что значит "падает"? По какой причине?

    Если по сигналу (segfault, abort), то будет сообщение в логе (ищите по фрагменту ###). Наличие таких случаев - это баг первого приоритета, надо быстро разбираться.

    Если по OOM, то будет сообщение в dmesg.
  • Эта утилита называется clickhouse-obfuscator. Она входит идёт вместе с clickhouse-client, отдельно устанавливать нет нужно. Документация прямо по --help.
  • спасибо! очень полезная вещь
  • https://t.me/clickhouse_ru
    @dropport #75093 05:39 AM, 14 Nov 2018
    Joined.
  • Упирается в память и падает. Сейчас снова провести там же нагрузочное не могу, так как это уже продакшн. Но логи посмотрю, может там есть то о чем вы написали)
  • https://t.me/clickhouse_ru
    @eduard_kotoyants #75095 07:04 AM, 14 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @eduard_kotoyants #75096 07:04 AM, 14 Nov 2018
    добрый, подскажите, можно ли менять clickhouse_compression на лету?
  • https://t.me/clickhouse_ru
    А какие есть ещё варианты? А если про raw, то куда смотреть? Сишного драйвера я не нашёл.
  • @mike_tur #75098 07:22 AM, 14 Nov 2018
    Joined.
  • Нет, требуется перезапуск.
  • @medov_alexey #75100 08:22 AM, 14 Nov 2018
    Для Clickhouse без репликации какие изменения нужны? минус Zookeeper? engine менять с ReplicatedMergeTree на MergeTree не обязательно?
  • @medov_alexey #75101 08:23 AM, 14 Nov 2018
    Или нереплицируемый кликхаус может спокойно работать с replicated merge tree ?
  • https://t.me/clickhouse_ru
    @stufently #75105 08:29 AM, 14 Nov 2018
    надо менять на мердж три , минус зукипер конечно
  • @bashlykevich #75106 08:33 AM, 14 Nov 2018
    Если реплика одна, но шардов много, то разве можно без зукипера?
  • https://t.me/clickhouse_ru
    @stufently #75107 08:36 AM, 14 Nov 2018
    а зачем там зукипер ?
  • https://t.me/clickhouse_ru
    @stufently #75108 08:36 AM, 14 Nov 2018
    ничего не репоизируется
  • @70532431 ↶ Reply to #75106 #75109 08:37 AM, 14 Nov 2018
    Можно, но когда захочешь добавить реплики, придётся сношаться с ковнертацией всех таблиц.
  • https://t.me/clickhouse_ru
    @stufently #75110 08:37 AM, 14 Nov 2018
    просто поверх обычного mergetree дистрибьютед таблица
  • @molchanovdp #75111 08:40 AM, 14 Nov 2018
    Коллеги, добрый день!
    Подскажите, как кликхаус относится к параллельным запросам (6-8 одновременно), которые отдают много данных (Около 2Гб)?
    У нас в такие моменты кликхаус просто перестает отвечать на запросы, нагрузки на процессор нет, диск тоже, сеть гигабитная, тоже вполне свободна.
  • @alexandrmazur96 #75112 08:45 AM, 14 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @dreamquestofunknowndavid #75113 09:29 AM, 14 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @nicname #75114 09:52 AM, 14 Nov 2018
    а как вы бенчмарки делаете по запросам?
  • @molchanovdp #75115 09:56 AM, 14 Nov 2018
    в такие моменты я просто через clickhouse-client делаю запрос и прогресс бар не двигается, бывает, что отпускает и через минут 10 запрос начинает отрабатывать
  • https://t.me/clickhouse_ru
    @crazyproger #75116 09:59 AM, 14 Nov 2018
    Joined.
  • А что в SHOW PROCESSLIST?
  • @molchanovdp #75118 10:48 AM, 14 Nov 2018
    там запросы есть, но значение в колонке read_rows не меняется, и в остальных колонках кроме elapsed тоже не меняется
  • https://t.me/clickhouse_ru
    @nmaxim #75119 11:14 AM, 14 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @nmaxim #75120 11:14 AM, 14 Nov 2018
    Всем привет. как в клик хаусе узнать разницу между datatime?
  • что имеете ввиду ?
  • https://t.me/clickhouse_ru
    @nmaxim #75122 11:15 AM, 14 Nov 2018
    Дата начала - дата окончание. разница
  • @713308160 #75124 11:17 AM, 14 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @nmaxim ↶ Reply to #75122 #75126 11:23 AM, 14 Nov 2018
    ?
  • @faerics ↶ Reply to #75120 #75127 11:24 AM, 14 Nov 2018
    Вычесть их друг из друга
  • https://t.me/clickhouse_ru
    @dzarlax ↶ Reply to #75122 #75128 11:31 AM, 14 Nov 2018
    SELECT datediff('day', toDate('2018-01-01'), toDate('2018-09-01'))
  • https://t.me/clickhouse_ru
    @nmaxim ↶ Reply to #75128 #75129 11:33 AM, 14 Nov 2018
    Спаасибо.
  • https://t.me/clickhouse_ru
    @crazyproger #75130 11:43 AM, 14 Nov 2018
    Товарищи, есть ли знающие люди по движку Kafka? Бьюсь с проблемой уже который час( В общем есть Кафка, в нее попадает JSON. Сделал табличку:
    CREATE TABLE default.kafka_queue
    (
    event_time DateTime,
    event_type String,
    app_name String,
    advertising_id String
    ) ENGINE = Kafka SETTINGS
    kafka_broker_list = 'kafka-stack-docker-compose_kafka1_1:9092',
    kafka_topic_list = 'topic1',
    kafka_group_name = 'group1',
    kafka_format = 'JSONEachRow'

    Проблема: Пишу в kafka - из таблицы ничего не вычитывается.

    В кафке данные точно есть - консольным клиентом вычитывается все отлично по топику.

    В конфиг КХ добавил:
    <kafka>
    <debug>all</debug>
    <auto_offset_reset>smallest</auto_offset_reset>
    <security_protocol>plaintext</security_protocol>
    </kafka>
    </yandex>

    Делаю select из таблицы - в логах КХ никаких ошибок нет, только:
    <Debug> StorageKafka (kafka_queue): Starting reading 1 streams, 65536 block size
    2018.11.14 11:31:21.687047 [ 43 ] {e2c0c4ff-53c1-46ed-bc41-ebaf92dedc2a} <Trace> InterpreterSelectQuery: FetchColumns -> Complete
    2018.11.14 11:31:21.688144 [ 43 ] {e2c0c4ff-53c1-46ed-bc41-ebaf92dedc2a} <Debug> executeQuery: Query pipeline:
    Expression
    Expression
    Kafka

    2018.11.14 11:31:21.688750 [ 43 ] {e2c0c4ff-53c1-46ed-bc41-ebaf92dedc2a} <Trace> StorageKafka (kafka_appsflyer_kos): Creating formatted reader
    2018.11.14 11:31:24.186764 [ 43 ] {e2c0c4ff-53c1-46ed-bc41-ebaf92dedc2a} <Trace> StorageKafka (kafka_appsflyer_kos): Committing 0 messages
    Т.е. оно как бы вычитало 0 сообщений? Но в логах кафки вообще нет никаких логов когда КХ что-то там пытается.
    Когда же из консоли вычитываю - кафка пишет лог что кто-то подключился.

    Создается ощущение что КХ до кафки не доходит, но в логах ошибок никаких нет.
    Куда посмотреть еще можно?
  • https://t.me/clickhouse_ru
    @crazyproger #75131 11:44 AM, 14 Nov 2018
    Из хоста КХ порт кафки доступен
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #75132 11:47 AM, 14 Nov 2018
    если делать обычный селект из таблицы кафки в кх - данные есть?
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #75133 11:47 AM, 14 Nov 2018
    данные из таблицы кафки читаются только 1 раз
  • https://t.me/clickhouse_ru
    @crazyproger #75134 11:48 AM, 14 Nov 2018
    нет, вообще данных нет, про 1 раз знаю, проблема в том что вообще ни разу не вычитываются
  • https://t.me/clickhouse_ru
    @wawaka #75135 11:57 AM, 14 Nov 2018
    @crazyproger хост брокера странный, может попробовать там ip указать?
  • https://t.me/clickhouse_ru
    @crazyproger #75136 12:05 PM, 14 Nov 2018
    пробовал IP - то же самое, хост из контейнера нормально пингуется/telnet'ится по этому имени
  • https://t.me/clickhouse_ru
    @nicname #75137 12:09 PM, 14 Nov 2018
    я бы попробовал создать таблицу с одним строковым полем и всеми теми же настройками
  • https://t.me/clickhouse_ru
    @nicname #75138 12:10 PM, 14 Nov 2018
    чтобы исключить проблемы в некоректных данных в таких местах
    event_time DateTime – точно уже не помню, но при разнице в форматах, оно у меня не проходило ничего
  • https://t.me/clickhouse_ru
    @nicname #75139 12:11 PM, 14 Nov 2018
    ну и еще можно в метриках кафки глянуть – считываются ли данные или остаются висеть
  • https://t.me/clickhouse_ru
    @crazyproger #75140 12:11 PM, 14 Nov 2018
    Я только что создал таблицу направленную "вникуда" - несуществующий хост и порт, заселектил - в логах КХ все идентично ни одной ошибки.
  • https://t.me/clickhouse_ru
    @crazyproger #75141 12:11 PM, 14 Nov 2018
    В логах кафки косумер даже не создается от КХ, только от консольных клиентов
  • https://t.me/clickhouse_ru
    Спасибо, это крайне полезная инфа, сейчас попробую
  • https://t.me/clickhouse_ru
    @iamxd #75143 12:28 PM, 14 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @zborovskii_andrei #75144 12:34 PM, 14 Nov 2018
    здравствуйте, как лучше распарсить строку вида:'ActionType=return_gift|GloryLevel=86|M3PlayedAll=11328|SessionId=3357|TimeSpentInGame=61846|TotalExp=4026758' , т.е. аргументы эта строка и ActionType, а получить надо return_gift
  • https://t.me/clickhouse_ru
    @zborovskii_andrei #75145 12:34 PM, 14 Nov 2018
    т.е. по типу json
  • @IvanZhiltsov #75146 12:35 PM, 14 Nov 2018
    можно попробовать заменить | на & и скормить функции extractURLParameter()
  • https://t.me/clickhouse_ru
    @zborovskii_andrei #75147 12:36 PM, 14 Nov 2018
    ok, спасибо
  • https://t.me/clickhouse_ru
    @olin32e #75149 01:11 PM, 14 Nov 2018
    Привет!
    Использую тип Nullable(Float32) и Nullable(Int32).
    И при insert из csv null'ы заменяются нулями. Это немного портит данные. Можно ли как-то null'ы оставлять как null'ы?
  • https://t.me/clickhouse_ru
    @olin32e #75150 01:11 PM, 14 Nov 2018
    В самом файлике они как пустые значения. Собственно, поэтому и использую тип Nullable.
  • https://t.me/clickhouse_ru
    @zborovskii_andrei #75151 01:27 PM, 14 Nov 2018
    Привет, как посмотреть , сколько оперативной памяти жрет внешний словарь?
  • https://t.me/clickhouse_ru
    :) select name, bytes_allocated from system.dictionaries;
  • https://t.me/clickhouse_ru
    @zborovskii_andrei #75153 01:39 PM, 14 Nov 2018
    ok, спасибо
  • https://t.me/clickhouse_ru
    @frolenokav #75154 01:42 PM, 14 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    через \N
  • https://t.me/clickhouse_ru
    @olin32e ↶ Reply to #75155 #75156 01:43 PM, 14 Nov 2018
    Заменять все значения в файле на \N? Oo
  • @odainic #75157 01:45 PM, 14 Nov 2018
    Всем привет. А кто-нить работает с ClickHouse из Tableau? У меня проблема в следующем. Из Desktop версии табло с моей машины все работает, когда настроил все как писали в статье https://www.altinity.com/blog/2018/7/19/tableau-with-clickhouse
    Но далее воркбук гружу на Tableau Server, где те же процедуры из статьи также были выполнены, но никак не хочет подключаться к CH например при Refresh Extract или Live Data Source. Как подружить Tableau Server и ClickHouse?
    Tableau with ClickHouse

    ClickHouse users often require data to be accessed in a user-friendly way. There is a number of tools that can display big data using visualization effects, charts, filters, etc. Tableau is one of the popular ones. In this article, we will explain how Tableau can be used with ClickHouse data source.

  • @odainic #75158 01:45 PM, 14 Nov 2018
    все драйвера самые новые
  • @odainic #75159 01:46 PM, 14 Nov 2018
    и на моей машине и на сервере
  • https://t.me/clickhouse_ru
    в любой непонятной ситуации я подозреваю selinux, если у вас редхат или центос я бы проверил системный лог. Ну и tcpdump покажет пытается-ли КХ забрать из кафки.
  • https://t.me/clickhouse_ru
    @crazyproger #75161 02:02 PM, 14 Nov 2018
    @den_crane Все в докерах, хост - macos. TCPdump показывает что КХ соединяется с кафкой, соединение живет пока живет таблица. Но вот заглянув в дамп я не увидел там топика передающегося в кафку. По дампу видно что КХ с кафкой общаются 1 раз в секунду примерно мелкими пакетами, на уровне приложения.
  • https://t.me/clickhouse_ru
    вы пробовали в топик много положить? КХ забирает пачками по 65 тыс.
  • https://t.me/clickhouse_ru
    @crazyproger #75163 02:05 PM, 14 Nov 2018
    этого не пробовал, но там же вроде КХ либо пачку большого размера либо какая есть но по таймауту, разве нет? Попробую ваш вариат.
  • https://t.me/clickhouse_ru
    @crazyproger #75164 02:08 PM, 14 Nov 2018
    @den_crane Кажется я разобрался, дебаг логи librdkafka сыпятся не в файл а в консоль, а я ее не смотрел.
    В логах вот что https://gist.githubusercontent.com/crazyproger/9049201fd9c39fe6e50863927d727441/raw/f2029bd501a8858311a1e7dc3c81c827439618d2/gistfile1.txt

    Насколько я понял - clickhouse бутстрапится из кафки и та ему отдает адрес брокера localhost...
  • https://t.me/clickhouse_ru
    @crazyproger #75165 02:10 PM, 14 Nov 2018
    Печально что КХ по-умолчанию ничего не сообщает касательно доступности брокеров и т.д. Только врубать kafka.debug=true.
  • https://t.me/clickhouse_ru
    @yourock88 #75166 02:23 PM, 14 Nov 2018
    Скажите пожалуйста, надо ли тюнить настройку max_read_buffer_size в ClickHouse? Если у нас рейд из 6 дисков, то надо выставить размер буфера как минимум в 6 Мб, правильно? Особой документации или даже упоминаний в интернете этой настройки я не нашел 🙂
  • https://t.me/clickhouse_ru
    @yourock88 #75167 02:24 PM, 14 Nov 2018
    Я сделал такой вывод на основе недавнего выступления Алексея Миловидова на хайлоаде: https://youtu.be/hkcOmILykas?t=11929 . Поправьте меня, если я не прав.
    HighLoad++ 2018. Трансляция, 9 ноября

    HighLoad++ 2018 http://www.highload.ru/moscow/2018 -------- Нашли ошибку в видео? Пишите нам на support@ontico.ru

  • https://t.me/clickhouse_ru
    это была фраза для программистов, которые пишут приложения. Т.е. когда вы будете писать свою программу и захотите утилизировать диск полностью -- имейте ввиду буфер и многопоточность.
    Рейд у вас какой? 0 , 5 , 6, 10 ? хардварный/софтверный?
  • https://t.me/clickhouse_ru
    @yourock88 #75169 02:42 PM, 14 Nov 2018
    mdraid, 6 дисков
  • https://t.me/clickhouse_ru
    раид какой 0 или 10 ?
  • https://t.me/clickhouse_ru
    @den_crane #75171 02:43 PM, 14 Nov 2018
    или 5 ?
  • https://t.me/clickhouse_ru
    @den_crane #75172 02:45 PM, 14 Nov 2018
    короче Алексей там сказал про layout = far и в доке было упоминание про размер страйпа 1МБ.
  • https://t.me/clickhouse_ru
    @yourock88 #75173 02:45 PM, 14 Nov 2018
    не уверен, но вроде либо 5 либо 10
  • https://t.me/clickhouse_ru
    цирк.
  • Есть большая разница. Сделайте cat /proc/mdstat
  • https://t.me/clickhouse_ru
    @yourock88 #75176 02:45 PM, 14 Nov 2018
    я не админ :), и настраивал не я
  • https://t.me/clickhouse_ru
    @yourock88 #75177 02:45 PM, 14 Nov 2018
    поэтому на память не помню и посмотреть тоже не могу
  • https://t.me/clickhouse_ru
    для layout = far и страйпа в 1МБ надо пересобирать.
  • Тогда просто не парьтесь
  • https://t.me/clickhouse_ru
    +1 забейте
  • Это настройки самого mdraid, а не кх
  • https://t.me/clickhouse_ru
    @yourock88 #75182 02:46 PM, 14 Nov 2018
    просто far мы итак выставили
  • https://t.me/clickhouse_ru
    @yourock88 #75183 02:46 PM, 14 Nov 2018
    да, я спрашивал про настройки КХ
  • https://t.me/clickhouse_ru
    @yourock88 #75184 02:46 PM, 14 Nov 2018
    а не рейда
  • @alexeysetevoi #75186 02:50 PM, 14 Nov 2018
    Если вас в работе CH все устраивает - не трогайте настройки типа max_read_buffer_size, они там не для того, чтобы их 100% крутить. Если не устраивает - рассказывайте поведение, ожидаемый результат и как вы это делаете - вам возможно подскажут. Просто крутить ради кручения ручек - не надо
  • https://t.me/clickhouse_ru
    @Mind_blovving #75188 04:09 PM, 14 Nov 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Mind_blovving #75189 04:15 PM, 14 Nov 2018
    Всем привет! Встал вопрос о том чтобы использовать КХ вместо ms sql. В связи с этим встал вопрос, есть ли смысл в переезде при том условии, что в обозримом будущем будет лишь одна нода в «кластере»?
  • https://t.me/clickhouse_ru
    @Mind_blovving #75190 04:16 PM, 14 Nov 2018
    Как альтернатива еще рассматривается oracle
  • https://t.me/clickhouse_ru
    @nicname #75191 04:17 PM, 14 Nov 2018
    зависит от того, как вы использовать собираетесь, а не от количества нод
  • https://t.me/clickhouse_ru
    @Mind_blovving #75192 04:18 PM, 14 Nov 2018
    Аналитические запросы по таблицам +- 2 млрд строк
  • https://t.me/clickhouse_ru
    @nicname #75193 04:18 PM, 14 Nov 2018
    аналитические запросы – самое то для кх
  • https://t.me/clickhouse_ru
    @stovm ↶ Reply to #75192 #75194 04:19 PM, 14 Nov 2018
    слишком мало строк для ClickHouse
  • https://t.me/clickhouse_ru
    @Mind_blovving #75195 04:27 PM, 14 Nov 2018
    Ну 2 ярда это в условиях ограниченности нынешней системы, гипотетически может возникнуть необходимость ворочать 10+ млрд
  • https://t.me/clickhouse_ru
    Да, на одной ноде 2 млрд строк это нормально
  • https://t.me/clickhouse_ru
    @Mind_blovving #75197 04:27 PM, 14 Nov 2018
    Ну там уже понятно будет расширение