• 01 September 2018 (7 messages)
  • @684214957 #64354 08:20 AM, 01 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @incadawr #64355 06:19 PM, 01 Sep 2018
    Joined.
  • @Arr_vrr #64356 08:29 PM, 01 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @notmaxx #64357 09:55 PM, 01 Sep 2018
    А скажите можно искать последовательность в массиве целых?
  • https://t.me/clickhouse_ru
    @notmaxx #64358 09:55 PM, 01 Sep 2018
    Подмассив в массиве
  • https://t.me/clickhouse_ru
    @vstepankov #64359 09:59 PM, 01 Sep 2018
    кстати, такой вопрос.
    Ранее в чате писали, что массивы это сахар,
  • https://t.me/clickhouse_ru
    @molo4ko007 #64360 11:26 PM, 01 Sep 2018
    А какие настройки отвечают за коммуникацию с зк? Интересуют реконнекты и т.д. Заметил, что время от времени session has expired и таблица переходит в readonly, но на протяжении нескольких минут нет реконнектов, хотя другие ноды кластера в порядке.
    1.1.54385
  • 02 September 2018 (19 messages)
  • https://t.me/clickhouse_ru
    исправили что-то такое в 1.1.54388
  • https://t.me/clickhouse_ru
    @molo4ko007 #64362 02:13 AM, 02 Sep 2018
    супер, спасибо
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #64360 #64363 06:04 AM, 02 Sep 2018
    Такая же тема была, когда зк вместе с кх жили, периодически отваливалось с такой же ошибкой. Как отселили - тишь да гладь
  • https://t.me/clickhouse_ru
    @molo4ko007 #64364 06:04 AM, 02 Sep 2018
    у нас отдельно
  • https://t.me/clickhouse_ru
    @Shegloff #64365 06:05 AM, 02 Sep 2018
    😳
  • https://t.me/clickhouse_ru
    @JackRussell77 #64366 08:01 AM, 02 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @JackRussell77 #64367 08:04 AM, 02 Sep 2018
    Скажите если хочу excel в качестве клиента , то путь один-odbc ? Или есть еще что-то ?
  • https://t.me/clickhouse_ru
    @shtyliuk #64368 10:46 AM, 02 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @proller #64369 10:47 AM, 02 Sep 2018
    может быть можно каким нибудь встроеным басиком ходить в кликхаус по http и парсить ответы, но если настроить нужно за пять минут - то odbc
  • https://t.me/clickhouse_ru
    Да. Я вот хочу такой клиент забабахать . Пингую сообщество может кто уже сделал?😁
  • https://t.me/clickhouse_ru
    @ram00X #64371 11:49 AM, 02 Sep 2018
    Всем привет! Может кто сталкивался: заливаю через клиент данные из csv накопленные за несколько дней, кх никаких ошибок не кидает, все ок, смотрю результат - количество строк в ряде дней отличается от кол-ва строк за эти дни в csv! Пробую загрузить только за косячный день, все загружает, результат совпадает. Такое ощущение, что когда грузишь пачкой из цсв, ряд строк выкидывается. Движок обычный мердж три
  • https://t.me/clickhouse_ru
    @quarrant ↶ Reply to #64371 #64372 12:04 PM, 02 Sep 2018
    У меня у знакомого было, при импорте из цсв типы не совпали и тупо дефолты переписались без ошибок
  • https://t.me/clickhouse_ru
    @ram00X ↶ Reply to #64372 #64373 12:06 PM, 02 Sep 2018
    Ну тут не та ситуация, тк отдельным файлом день загружается как надо
  • https://t.me/clickhouse_ru
    @QuietFelix #64374 12:52 PM, 02 Sep 2018
    А включен ли deduplication?
  • https://t.me/clickhouse_ru
    @QuietFelix #64375 12:53 PM, 02 Sep 2018
    У нас было похожее, правда, через драйвер. И не уверен, что проблема точно была в DD, но пропала после того, как отключили.
  • https://t.me/clickhouse_ru
    @proller ↶ Reply to #64370 #64376 01:03 PM, 02 Sep 2018
    Но зачем ? Чем одбц плох ?
  • https://t.me/clickhouse_ru
    1) его нужно ставить под админом - а в корпоративном г. проще иногда отказать от софта чему убедить кучу бюрократов что это не вирус
    2) odbc - максимум что позволяет - это накрутить сводные таблицы - а у меня задача в разы шире чем простой пивот
  • https://t.me/clickhouse_ru
    @pixeljetter #64378 06:09 PM, 02 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @geebv #64379 10:00 PM, 02 Sep 2018
    Коллеги, как хранить большие целые числа в CH? больше 20 знаков, ETH (WEI). Надо будет фин. операции выполнять sum, min, max и тп. Любые идеи пожалуйста
  • 03 September 2018 (174 messages)
  • Если int64 недостаточно (макс значение для знакового 9223372036854775807), а float использовать нельзя (тут деньги), то вариантов немного - 1) подождать релиза Decimal, вроде как уже в мастере - попробуйте в тестовой версии, он там на 128 битных интах работает. 2) поразрядно хранить и обрабатывать - просто хранение - без проблем, но арифметика будет утомительна из-за ручного обслуживания переполнений.
  • https://t.me/clickhouse_ru
    @geebv #64381 05:19 AM, 03 Sep 2018
    За decimal спасибо, проверим
    Да арифметика нужна
  • https://t.me/clickhouse_ru
    @eduard_kotoyants #64382 06:33 AM, 03 Sep 2018
    нужно ли увеличивать max_memory_usage, для серверов с 64G?
  • https://t.me/clickhouse_ru
    Все зависит от запросов
  • https://t.me/clickhouse_ru
    @EvgenyVinogradov #64384 06:35 AM, 03 Sep 2018
    Чем больше дать памяти, тем лучше)
  • https://t.me/clickhouse_ru
    @eduard_kotoyants #64385 06:38 AM, 03 Sep 2018
    вроде как это лимит на один запрос, думал может есть какая-то формула от общего размера базы
  • https://t.me/clickhouse_ru
    лимит на один запрос - вот и зависит от таких запросов. Если нет join/order by по большой выборке, то можно довольствоваться малым объемом памяти
  • https://t.me/clickhouse_ru
    @Svyatoslav #64387 06:55 AM, 03 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @nengchak #64388 07:30 AM, 03 Sep 2018
    Приветы. Что может быть не так? В логах пишет

    2018.09.03 07:29:13.064327 [ 25 ] <Trace> StorageKafka (queue): EOF reached for partition 0 offset 205836
    это означает что он не получил все данные? или что?
  • https://t.me/clickhouse_ru
    Выглядит просто как отладочное логирование
  • @Andriiqq #64390 07:33 AM, 03 Sep 2018
    Доброго дня. Подскажите как быть, КХ генерит ~10 гб данных в день, за пару месяцев забивает диск сервака под завязку. Может кто автоматизировал процесс деатача старых данных и их отправку в долгосрочное хранилище? Либо есть какие-то практики как поступать в подобных случаях?
  • https://t.me/clickhouse_ru
    @bogdi_gulyaet #64391 07:33 AM, 03 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @nengchak ↶ Reply to #64389 #64392 07:35 AM, 03 Sep 2018
    Раньше все работало, но решил поменять схему (т.е. формат логов), на нгинсе сделал новый формат, перезапустил, в кафке удалил все старые очереди, в кликхаусе все грохнул, запустил заново, создал базу, таблицы и...пусто. Кажетсядаже до энжайна кафки в КХ не доходят данные, в саму кафку данные падают, вижу в тспдампе. А как посмотреть в самом кликхаусе не знаю, кроме тупо селект с лимитом. А там пустота
  • https://t.me/clickhouse_ru
    @nengchak ↶ Reply to #64389 #64393 07:37 AM, 03 Sep 2018
    Хмм..в сторону КХ тоже идут данные,
  • https://t.me/clickhouse_ru
    @nengchak #64394 07:41 AM, 03 Sep 2018
    Но где заковырка?
  • https://t.me/clickhouse_ru
    @bogdi_gulyaet #64395 07:47 AM, 03 Sep 2018
    коллеги, подскажите пожалуйста, есть ли способ заполнять нулями отсутствующие данные при группировке по времени? в инфлюксе например есть функция fill(0) при группировке по времени, в кликхаусе подобной функции нет, но есть костыль в виде union all (https://stackoverflow.com/questions/50238568/how-to-group-by-time-bucket-in-clickhouse-and-fill-missing-data-with-nulls-0s)
    этот вариант хорош, но только тогда когда группировка происходит только по времени и всё, но что делать если там ещё по трём string полям дополнительно группировка происходит?
    How to group by time bucket in ClickHouse and fill missing data with nulls/0s

    Suppose I have a given time range. For explanation, let's consider something simple, like whole year 2018. I want to query data from ClickHouse as a sum aggregation for each quarter so the result s...

  • @idaemoon #64396 08:20 AM, 03 Sep 2018
    Как получить версию CH через запрос? ввожу version(), show version() но все выдает ошибку.
  • @snlazuka #64397 08:22 AM, 03 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @341163869 #64398 08:22 AM, 03 Sep 2018
    А у меня снова вопрос по компрессии. LZ4 по дефолту включалась всегда, или только начиная с какой-то версии? Возможен ли вариант, что база была создана ещё до введения сжатия, и сейчас существует в несжатом виде? Как таковой information_schema, похоже, не существует, и какую-то информацию о базах и столбцах черпать неоткуда. Или я ошибаюсь?
  • @ztlpn ↶ Reply to #64396 #64399 08:22 AM, 03 Sep 2018
    SELECT version()
  • https://t.me/clickhouse_ru
    Так ведь когда конектишься к базе пишется версия
  • https://t.me/clickhouse_ru
    сжатие было вроде всего, был выбор чем именно жать , легко посмотреть на диске открыв файл в просмотрщике
  • @idaemoon ↶ Reply to #64399 #64402 08:23 AM, 03 Sep 2018
    спасибо
  • https://t.me/clickhouse_ru
    Благодарю!
  • https://t.me/clickhouse_ru
    @sentzei #64404 08:29 AM, 03 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @azubarev ↶ Reply to #64401 #64405 08:36 AM, 03 Sep 2018
    Этим запросом можно посмотреть что и на сколько сжато:

    SELECT table, name, formatReadableSize(sum(data_compressed_bytes)) AS compressed, formatReadableSize(sum(data_uncompressed_bytes)) AS uncompressed, sum(data_uncompressed_bytes) / sum(data_compressed_bytes) AS ratio FROM system.columns WHERE database != 'system' GROUP BY table, name ORDER BY table, ratio DESC;
  • https://t.me/clickhouse_ru
    @sergey_svistunov #64406 08:47 AM, 03 Sep 2018
    Привет. Есть ли в CH способ вынуть время прошедшее с предыдущего события? Т.е. есть таблица вида
    date | devId | eventDateTime
    2018-08-01 | 100 | 2018-08-01 12:00:00
    2018-08-01 | 100 | 2018-08-01 12:10:00
    2018-08-01 | 100 | 2018-08-01 12:15:00

    Нужен запрос, который вернёт
    devId | eventDateTime | fromPrev
    100 | 2018-08-01 12:00:00 |
    100 | 2018-08-01 12:10:00 | 600
    100 | 2018-08-01 12:15:00 | 300
  • https://t.me/clickhouse_ru
    @Vasyaabr ↶ Reply to #64406 #64407 08:48 AM, 03 Sep 2018
    runningDifferenceStartingWithFirstValue,runningAccumulate,runningDifference ?
  • https://t.me/clickhouse_ru
    Что-то я в документации не могу найти. Есть где об этом почитать или примеры?
  • https://t.me/clickhouse_ru
    @Vasyaabr #64409 08:55 AM, 03 Sep 2018
    Можно поискать здесь в чате (есть примеры), или в исходниках на гитхабе, в тестах всегда есть примеры каждой функции.
  • https://t.me/clickhouse_ru
    Ok, спасибо
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @bogdi_gulyaet #64412 08:59 AM, 03 Sep 2018
    Коллеги, можно ли в кликхаусе сделать join таблиц без using? то есть просто берём две любые таблицы и надо смёржить всё со всем
  • https://t.me/clickhouse_ru
    @studnev ↶ Reply to #64412 #64413 09:00 AM, 03 Sep 2018
    можно все столбцы в using перечислить
  • https://t.me/clickhouse_ru
    декартово произведение?
  • https://t.me/clickhouse_ru
    ага
  • https://t.me/clickhouse_ru
    сейчас попробую
  • https://t.me/clickhouse_ru
    @studnev ↶ Reply to #64416 #64417 09:02 AM, 03 Sep 2018
    это будет только не декартово
  • https://t.me/clickhouse_ru
    Можно добавить в каждой таблице по столбцу, содержащему константу и по нему джойнить
  • https://t.me/clickhouse_ru
    не представляю пока как это сделать даже в моём случае
  • https://t.me/clickhouse_ru
    @bogdi_gulyaet #64420 09:03 AM, 03 Sep 2018
    то есть по сути будет две таблицы
    первая с временными точками сгенерёнными через numbers и нулями
  • https://t.me/clickhouse_ru
    @bogdi_gulyaet #64421 09:04 AM, 03 Sep 2018
    вторая будет с нужными группировками string столбцов
  • https://t.me/clickhouse_ru
    @bogdi_gulyaet #64422 09:04 AM, 03 Sep 2018
    надо смёржить эти две таблицы так чтобы все группы string имели по всем временным точкам
  • https://t.me/clickhouse_ru
    @bogdi_gulyaet #64423 09:04 AM, 03 Sep 2018
    как-то так
  • https://t.me/clickhouse_ru
    @bogdi_gulyaet #64424 09:05 AM, 03 Sep 2018
    это всё костыли к тому как бы вместо провалов пихать нули в качестве значений ибо я не представляю как сделать иначе
  • https://t.me/clickhouse_ru
    @vladimirmyuge #64425 09:05 AM, 03 Sep 2018
    select * from (select *, 1 as c from t1) all inner join (select *, 1 as c from t2) using c
  • https://t.me/clickhouse_ru
    хм, ну кстати может это и прокатит, сейчас попробую
  • https://t.me/clickhouse_ru
    работает) спасибо большое
  • https://t.me/clickhouse_ru
    @bogdi_gulyaet #64428 09:10 AM, 03 Sep 2018
    выглядит как костыль конечно, но элегантный))
  • https://t.me/clickhouse_ru
    @Mokhnachevsky #64429 09:10 AM, 03 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @orantius #64430 09:12 AM, 03 Sep 2018
    а cross join не работает разве?
  • https://t.me/clickhouse_ru
    @bogdi_gulyaet #64431 09:13 AM, 03 Sep 2018
    я его даже в доке не увидел, UPD: cross join тоже работает кстати, но по нему доки нету
  • https://t.me/clickhouse_ru
    @bogdi_gulyaet #64432 09:13 AM, 03 Sep 2018
    CROSS JOIN not documented · Issue #2857 · yandex/ClickHouse

    Full cartesian product is quite usefull simetimes. It's supported in ClickHouse, but not documented.

  • https://t.me/clickhouse_ru
    Согласно спецификации, первые четыре байта LZ4 - 0x184D2204. Прошёлся по .bin-файлам хексдампом, не нашёл. Походу Кликхаусом пишется raw stream.
  • https://t.me/clickhouse_ru
    @341163869 #64434 09:14 AM, 03 Sep 2018
    Исходники Кликхауса для меня слишком масштабные, чтобы сейчас в них искать точный ответ на этот вопрос
  • https://t.me/clickhouse_ru
    Сработало. Благодарю.
  • https://t.me/clickhouse_ru
    @341163869 #64436 09:16 AM, 03 Sep 2018
    Ещё вопрос: если задать zstd вместо lz4, данные пережмутся в фоновом режиме, или это требуется вызывать принудительно? Хотя побаиваюсь вообще что-то делать с датасетом на полтора тб.
  • https://t.me/clickhouse_ru
    откройте в текстовом редакторе и увидите
  • https://t.me/clickhouse_ru
    @stufently #64438 09:18 AM, 03 Sep 2018
    сжатые там данные или не сжатые ,а у ж чем пожаты это второй вопрос
  • https://t.me/clickhouse_ru
    Я так понимаю эти функции нельзя использовать при изменяющихся devId. Если в таблице несколько devId:
    date | devId | eventDateTime
    2018-08-01 | 100 | 2018-08-01 12:00:00
    2018-08-01 | 100 | 2018-08-01 12:10:00
    2018-08-01 | 100 | 2018-08-01 12:15:00
    2018-08-01 | 200 | 2018-08-01 12:00:00
    2018-08-01 | 200 | 2018-08-01 12:05:00
    то надо вернуть
    devId | eventDateTime | fromPrev
    100 | 2018-08-01 12:00:00 |
    100 | 2018-08-01 12:10:00 | 600
    100 | 2018-08-01 12:15:00 | 300
    200 | 2018-08-01 12:00:00 |
    200 | 2018-08-01 12:05:00 | 300
  • https://t.me/clickhouse_ru
    @forestbiiird #64440 09:24 AM, 03 Sep 2018
    Привет.
    А можно как-нибудь изменить формат логов Кликхауса? Убрать\добавить колонки, изменить формат таймстемпа, всё в таком духе
  • Если можете C++ то всё возможно ;)
  • Есть два варианта заполнения пустых дат / временных диапазонов. В обоих случаях требуется для начала создать полный диапазон полностью с помощью запроса типа SELECT today() + number FROM numbers(100). Ну и дальше первый вариант который приходит в голову - это сделать JOIN с настоящими данными. Но в кликхаус JOIN - не всегда наилучшая идея, поэтому я в таких случаях предпочитаю UNION ALL с дальнейшей группировкой результата по времени/дате.
  • https://t.me/clickhouse_ru
    @Vasyaabr ↶ Reply to #64439 #64443 09:31 AM, 03 Sep 2018
    Да, тут наверное придется что-то напридумывать, в постобработке результатов, например. Неверной ведь получается только первая строчка после изменения devId, которая должна стать = 0.
  • @mfilimonov #64444 09:32 AM, 03 Sep 2018
    Ну т.е. что-то типа
    SELECT date, sum(column1), sum(column2) FROM (
    SELECT date, column1, column2 FROM realtable
    UNION ALL
    SELECT today() + number, 0,0 FROM numbers(100)
    ) GROUP BY date
  • https://t.me/clickhouse_ru
    Я кажется придумал костыль вида if(runningDifference(devId)==0, runningDifference(eventDateTime), 0).
  • https://t.me/clickhouse_ru
    я тоже заюзал union all, но проблема в том что у меня ещё 3 поля типа string по которым происходит группировка из-за чего просто union all недостаточно
    мне пришлось сначала найти все эти поля и сделать cross join с numbers и потом сунуть в union all
  • https://t.me/clickhouse_ru
    @bogdi_gulyaet #64447 09:34 AM, 03 Sep 2018
    то есть этот вариант работает только если group by date и никаких других группировок нет
  • @mfilimonov #64448 09:48 AM, 03 Sep 2018
    Даже тогда JOIN не обязателен, вместо numbers можно использовать range + arrayJoin.
    SELECT ... FROM
    (
    SELECT id1, id2, date, ... FROM table
    UNION ALL
    select id1, id2, arrayJoin( arrayMap( x -> today() + x, range(10) ) ) as date2
    from table
    WHERE date=today()
    GROUP BY id1, id2
    )
    GROUP BY id1, id2, date
  • Насколько мне известно: указание конфигурации сжатия влияет на новосоздаваемые куски данных. При этом используемый алгоритм сжатия зашит в файлах данных, т.е. расжатие данных всегда происходит тем чем было сжато и конгфигурация на это никак не влияет.

    Новые куски данных пишутся при инсертах, или при фоновых слияниях. Т.е. если изменить LZ4 на ZSTD, то фоновые слияния будут пережимать данные в таком темпе который сочтут нужным, но скорее всего если данных много то ВСЕ данные будут пережаты примерно никогда. Можно использовать OPTIMIZE ... FINAL чтобы заставить пережать старые/большие части.
  • В случае необходимости считать разность в стролбце внутри групп можно использовать массивы и функции высшего порядка. См. тут https://stackoverflow.com/questions/51856397/clickhouse-running-diff-with-grouping/51873915#51873915
    Clickhouse running diff with grouping

    General Task A table consists of three columns (time, key, value). The task is to calculate a running difference for each key. So, from input --------------- | time | key | value | --------------...

  • https://t.me/clickhouse_ru
    Спасибо
  • @idaemoon #64452 10:06 AM, 03 Sep 2018
    Подскажите как вставлять (insert) записи пачками?
    Словил ошибку "Too many parts (300). Merges are processing significantly slower than inserts".
    Только через файлы csv, tsv ?
  • https://t.me/clickhouse_ru
    не пачку инсертов, а инсерт пачки нужен
  • https://t.me/clickhouse_ru
    что-то типа INSERT .... VALUES (....), (...), (...) ...
  • https://t.me/clickhouse_ru
    Грубо говоря, один инсерт - одна новая часть на диске.
  • INSERT INTO table VALUES (1, 'первая строка данных'), (2, 'вторая строка данных'), ..., (100, 'строка данных номер сто');
  • @idaemoon #64457 10:09 AM, 03 Sep 2018
    они никак не склеиваются? записей же миллионы
  • https://t.me/clickhouse_ru
    Можно в таблицу типа Buffer, тогда немного полегче
  • https://t.me/clickhouse_ru
    Но тоже не панацея
  • @idaemoon #64460 10:09 AM, 03 Sep 2018
    у нас так свалился сервер, создало 20 миллионов файлов
  • @mfilimonov #64461 10:09 AM, 03 Sep 2018
    или например
    INSERT INTO table FORMAT JsonEachRow
    {"id":1,"str":"первая строка данных"}
    {"id":2,"str":"вторая строка данных"}

    {"id":100,"str":"строка данных номер 100"}
  • Одна из особенностей кликхаус - данные нужно вставлять пачками. Нельзя по одной строке. Т.е. или вы напишете один инсерт и потом в нем перечислите 100 тысяч строк для вставки - то это хорошо, а если сделаете 100 тысяч инсертов по одной строке - то это очень плохо.
  • @mfilimonov #64463 10:13 AM, 03 Sep 2018
    Есть масса разных способов для преодоления этой проблемы. Один из них - это встроенный движок Buffer который лояльно относится к инсертам по одной строке и перебрасывает данные в финальную таблицу по мере накопления. Но он имеет свои ограничения, поэтому его обычно не рекомендуют широко использовать.
  • @mfilimonov #64464 10:14 AM, 03 Sep 2018
    Ещё один - использование кафки.
  • @mfilimonov #64465 10:15 AM, 03 Sep 2018
    Ну или любого внешнего софта, который позволит где-то накопить побольше данных перед тем как запихнуть их в кликхаус.
  • @nukker7 ↶ Reply to #64464 #64466 10:17 AM, 03 Sep 2018
    А как обрабатывать плохие данные в кафке? Я пытался так сделать и не нашел. Если кликхаусовский движок kafka не может распарсить данные, он просто бесконечно выдает ошибку.
  • Знаю что ответ произвучит "так себе", но правильнее всего не пихать плохие данные в кафку.
  • @mfilimonov #64468 10:21 AM, 03 Sep 2018
    Если необходима какая-то фильтрация перед КХ - то наверное можно попробовать читать из "плохого" стрима и писать в "хороший" чем-нибудь для потоковой обработки. А кликхаус настроить чтоб читал "хороший".
  • https://t.me/clickhouse_ru
    +1. Мы используем раббит, но принцип тот же (для раббита нет коннектора, всё пишем нодом)
  • @mfilimonov #64470 10:26 AM, 03 Sep 2018
    Насколько я помню, сжимаются блоки с данными Native формата, а всё остальное (всякие номера пакетов и т. п.) передаётся без сжатия.

    Сжатые данные устроены так. Они представляют собой набор сжатых фреймов. Каждый фрейм имеет следующий вид: чексумма (16 байт), идентификатор алгоритма сжатия (1 байт), размер сжатых данных (4 байта, little endian, размер не включает в себя чексумму, но включает в себя остальные 9 байт заголовка), размер несжатых данных (4 байта, little endian), затем сжатые данные. Идентификатор алгоритма: 0x82 - lz4, 0x90 - zstd. Чексумма - CityHash128 из CityHash версии 1.0.2, вычисленный от сжатых данных с учётом 9 байт заголовка.

    См. CompressedReadBufferBase, CompressedWriteBuffer,
    utils/compressor, TCPHandler.
  • про заголовки сжатия в КХ ^
  • https://t.me/clickhouse_ru
    Низкий поклон за столь подробный разбор
  • Ваши кудосы отправляются в копилку Алексею @milovidov_an :)
  • https://t.me/clickhouse_ru
    @baltazorbest #64475 11:49 AM, 03 Sep 2018
    Приветствую. Подскажите пожалуйста, есть кластер из 4 нод (2 шарда по 2 реплики) хочу на всех 4 нодах открепить партицию в таблице за 1 запрос , нашел ноду с признаком в system.replicas is_leader=1 , есть 2 таблица:
    tablename = Distributed
    tablename_sharded = ReplicatedMergeTree

    делаю так:
    alter table database.tablename detach partition ’201807’ и получаю:
    DB::Exception: Method dropPartition is not supported by storage Distributed.
  • https://t.me/clickhouse_ru
    @baltazorbest #64476 11:49 AM, 03 Sep 2018
    или же alter table detach не реплицируется?
  • https://t.me/clickhouse_ru
    @baltazorbest #64477 11:49 AM, 03 Sep 2018
    ClickHouse client version 1.1.54383.
  • https://t.me/clickhouse_ru
    @baltazorbest #64478 11:51 AM, 03 Sep 2018
    и правильно ли я понимаю что если я хочу открепить партицию на каждой ноде отдельно то нужно делать:
    alter table database.tablename_sharded detach partition ‘201807’ на каждой ноде?
  • https://t.me/clickhouse_ru
    @Mike_Er #64479 11:53 AM, 03 Sep 2018
    alter table database.MergeTree-table on cluster xxx должно сработать
  • https://t.me/clickhouse_ru
    @baltazorbest #64480 11:55 AM, 03 Sep 2018
    понял, спасибо большое
  • https://t.me/clickhouse_ru
    @pgorobey #64481 12:09 PM, 03 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @artinnok #64482 12:21 PM, 03 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @artinnok #64483 12:22 PM, 03 Sep 2018
    привет!
    пожалуйста, дайте совет - как сделать так, чтобы аггрегатная функция count возвращала 0, если записей нет?
  • https://t.me/clickhouse_ru
    @studnev ↶ Reply to #64483 #64484 12:24 PM, 03 Sep 2018
    UNION ALL если не думать 🙂
  • https://t.me/clickhouse_ru
    @eduard_kotoyants #64485 12:26 PM, 03 Sep 2018
    можно ли использовать haproxy для балансировки между 2-мя репликами?
  • https://t.me/clickhouse_ru
    @Mike_Er ↶ Reply to #64485 #64486 12:29 PM, 03 Sep 2018
    мы используем достаточно давно, проблем не было
  • https://t.me/clickhouse_ru
    @eduard_kotoyants #64487 12:33 PM, 03 Sep 2018
    @Mike_Er не подкините пример с боевого сервера?
  • https://t.me/clickhouse_ru
    @Mike_Er #64488 12:33 PM, 03 Sep 2018
    Конфига хапрокси?
  • https://t.me/clickhouse_ru
    @eduard_kotoyants #64489 12:34 PM, 03 Sep 2018
    да
  • https://t.me/clickhouse_ru
    Это вроде уже давно исправлено
  • https://t.me/clickhouse_ru
    @yourock88 #64491 12:55 PM, 03 Sep 2018
    То есть вам нужно просто обновить кликхаус 🙂
  • https://t.me/clickhouse_ru
    @artinnok ↶ Reply to #64491 #64492 12:56 PM, 03 Sep 2018
    т.е. сейчас он по-дефолту 0 выдает?
  • https://t.me/clickhouse_ru
    @yourock88 #64493 12:58 PM, 03 Sep 2018
    на версии 1.1.54385 уже выдает
  • https://t.me/clickhouse_ru
    @yourock88 #64494 12:58 PM, 03 Sep 2018
    на 1.1.54342 ещё нет
  • https://t.me/clickhouse_ru
    @artinnok #64495 12:58 PM, 03 Sep 2018
    1.1.54343 у меня эта стоит
  • https://t.me/clickhouse_ru
    @yourock88 #64496 12:58 PM, 03 Sep 2018
    сильно больше версий у меня в продакшене нет 🙂
  • https://t.me/clickhouse_ru
    @artinnok #64497 12:59 PM, 03 Sep 2018
    нашел в ченджлоге :)
  • https://t.me/clickhouse_ru
    Обновите (осторожно, с бекапами или хотя бы FREEZE PARTITION) хотя бы до 1.1.54385 и станет выдавать 🙂
  • https://t.me/clickhouse_ru
    @artinnok #64499 12:59 PM, 03 Sep 2018
    огонь, спасибо
  • https://t.me/clickhouse_ru
    @levonet #64500 01:00 PM, 03 Sep 2018
    Я правильно понимаю, что таймзона в toDateTime только для того, чтоб привести время в нужном поясе в качестве стринг,
    но она не используется при попытке время привести к секундам?
    select
    toDateTime(1535979088, 'Europe/Helsinki'),
    toDateTime(1535979088),
    toInt32(toDateTime(1535979088, 'Europe/Helsinki')),
    toInt32(toDateTime(1535979088)),
    timezone()
  • Время всегда хранится как unix timestamp. Таймзона определяет как переводить человекочитаемое время в этот самый таймстамп и обратно. При вызове toDateTime(.. 'Europe/Helsinki') создается таймстам и в ТИПЕ данных (не в самих данных) записывается что показывать этот таймстамп нужно переводя его в тз Хельсинки.
  • https://t.me/clickhouse_ru
    @levonet ↶ Reply to #64501 #64502 01:16 PM, 03 Sep 2018
    А есть простой способо перевести timestamp в timestamp с учетом часовой зоны?
  • https://t.me/clickhouse_ru
    @studnev ↶ Reply to #64502 #64503 01:24 PM, 03 Sep 2018
    Time stamp же не зависит от часовой зоны, только его представление, разве нет?
  • https://t.me/clickhouse_ru
    select count(*) from system.one where 0 settings empty_result_for_aggregation_by_empty_set=0;

    SELECT count(*)
    FROM system.one
    WHERE 0
    SETTINGS empty_result_for_aggregation_by_empty_set = 0

    ┌─count()─┐
    │ 0 │
    └─────────┘
  • SELECT
    toDateTime(1535979088, 'Europe/Helsinki') AS ts_hl,
    toDateTime(1535979088) AS ts,
    toTypeName(ts_hl),
    toTypeName(ts),
    toInt32(ts_hl),
    toInt32(ts)

    Row 1:
    ──────
    ts_hl: 2018-09-03 15:51:28
    ts: 2018-09-03 14:51:28
    toTypeName(toDateTime(1535979088, 'Europe/Helsinki')): DateTime('Europe/Helsinki')
    toTypeName(toDateTime(1535979088)): DateTime
    toInt32(toDateTime(1535979088, 'Europe/Helsinki')): 1535979088
    toInt32(toDateTime(1535979088)): 1535979088
  • По умолчанию КХ форматирует время с помощью системной таймзоны, при этом есть настройка которая позволяет передавать таймзону "по умолчанию" с клиента. Можно явно указать что определенное поле должно форматироваться с учетом другой таймзоны просто указав её в типе данных.
  • @mfilimonov #64507 01:30 PM, 03 Sep 2018
    Можно для всей колонки таблицы CREATE TABLE tz_test (ts DateTime('UTC')) ...
  • @mfilimonov #64508 01:30 PM, 03 Sep 2018
    Ну или в селектах добавлять
  • https://t.me/clickhouse_ru
    @ipnix #64509 01:53 PM, 03 Sep 2018
    Кто нибудь знает что означает в log файле clickhouse-server значения в квадратных скобках в каждой строке после колонкивремени( например [3], [21] и так далее...)?
  • https://t.me/clickhouse_ru
    @geebv ↶ Reply to #64380 #64510 02:00 PM, 03 Sep 2018
    А есть примерное понимание когда будет зарелизена поддержка decimal?
  • https://t.me/clickhouse_ru
    @VadimPlh ↶ Reply to #64510 #64511 02:05 PM, 03 Sep 2018
    Тестовая версия будет в сентябре, примерно
  • https://t.me/clickhouse_ru
    @geebv ↶ Reply to #64511 #64512 02:10 PM, 03 Sep 2018
    Спасибо за информацию
  • thread_number ( Номер потока )
  • @mfilimonov #64514 02:12 PM, 03 Sep 2018
    а в фигурных скобках {} - query_id.
  • @mfilimonov #64515 02:15 PM, 03 Sep 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
    @ipnix ↶ Reply to #64513 #64516 02:37 PM, 03 Sep 2018
    Спасибо
  • @70532431 #64517 02:40 PM, 03 Sep 2018
    Столкнулся с интересной проблемой: выгружен файл из кликхауса на другом сервере как tsv, смотрел спецсимволы через vi - действительно tsv.
    Вгружается с помощью Clickhouse-Client в кх в таблицу типа Memory - и вот начинаются странности: строки String становятся числами, причём какой-то рандом.
    Может, кто-то может объяснить или выразить предположение, отчего так?

    И я так понимаю DateTime столбец для Memory движка не нужен же?
  • https://t.me/clickhouse_ru
    @OlegKuksa #64518 02:55 PM, 03 Sep 2018
    Joined.
  • Ни для какого движка DateTime столбец не является обязательным. Date раньше был нужен для MergeTree но уже примерно год как не нужен.
  • А последовательность столбцов в данных и в запросе INSERT совпадают?
  • ClickHouse не использует LZ4 framing format (способ укладывания сжатых блоков в файл), потому что сжатие с помощью LZ4 в ClickHouse появилось раньше, чем framing format самого LZ4.
  • @milovidov_an #64522 03:25 PM, 03 Sep 2018
    То есть, вы смотрели не то.

    По поводу сжатия - данные всегда сжимаются,
    только если в конфиге специально не был прописан метод сжатия none. Про такую возможность мало кто знает и она по большей части бесполезна.
  • https://t.me/clickhouse_ru
    @ivor06 #64523 03:32 PM, 03 Sep 2018
    Добрый день. Кластер из трёх нод, каждая из которых является репликой для своего шарда и для одного из соседних (перекрёстная репликация). При отвале ноды и её переподключении с восстановлением структуры таблиц ошибка "путь в зукипере уже существует". Можно было бы удалять скриптом, но там значение - массив, который нельзя удалять целиком:
    replicas:[1,2]
    Подскажите, как побороть?
  • https://t.me/clickhouse_ru
    @volodymyrhurman #64524 03:40 PM, 03 Sep 2018
    Joined.
  • Если реплика целиком исчезла, то путь в ZooKeeper нужно удалить вручную перед созданием такой же реплики на её месте.
  • https://t.me/clickhouse_ru
    @CyrusTheOther #64528 03:54 PM, 03 Sep 2018
    Привет, а запрос с sample должен ведь работать быстрее, чем без примерно весгда? У меня есть ReplicatedMergeTree в котороым при сэмплинге выше 0.1 скорость ниже чем без сэмплинга, и я вот слегка затрудняюсь понять что происходит
  • https://t.me/clickhouse_ru
    @VadimPlh ↶ Reply to #64528 #64529 03:58 PM, 03 Sep 2018
    Есть несколько причин, почему это может быть:

    1) Медленно вычисляется хэш-функция.
    2) ключ сэмплирования находится после мелко-гранулированная часть PK
    3) Ключ сэмплирования не равномерно распределенный в своем типе данных.
  • https://t.me/clickhouse_ru
    sipHash64 я использую, это не intHash32 конечно, но он же вроде бы вставку только должен тормозить, нет? sipHash64 от текстового представления uid который id пользователя. Кажется, что оно должно быть достаточно равномрено в логе событий
    по поводу 2) не очень понял
  • https://t.me/clickhouse_ru
    @ivor06 #64531 04:03 PM, 03 Sep 2018
    @milovidov_an, @mfilimonov, спасибо
  • https://t.me/clickhouse_ru
    @VadimPlh ↶ Reply to #64530 #64532 04:06 PM, 03 Sep 2018
    Хороший ключ сэмплирования должен быть легким для чтения и быстро вычислим.
    Про второй пункт вот пример:
    Плохо: ORDER BY (Timestamp, sample_key);
    Хорошо: ORDER BY (CounterID, Date, sample_key).

    Об этом можно почитать вот тут (https://github.com/yandex/clickhouse-presentations/tree/master/rit2018)
    yandex/clickhouse-presentations

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

  • Спасибо! 👍
  • Более правильная ссылка:
    https://yandex.github.io/clickhouse-presentations/rit2018/
  • Ключ сэмплирования не хранится для каждой строки и будет вычисляться налету.
  • https://t.me/clickhouse_ru
    Спасибо, а я уже локально читать начал после git clone, кекеке.
  • @heyroman #64537 04:51 PM, 03 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    уже есть лучшие практики как правильно проектировать витрину под СН ?
    типа - джойнов как можно меньше - все кладите в витрину и т.д. и т.п
  • @bondarden #64539 05:01 PM, 03 Sep 2018
    Joined.
  • Не особо систематизировали. На похожую тему есть доклад с Highload 2017 "эффективное использование ClickHouse".
  • https://t.me/clickhouse_ru
    Перенёс
  • @70532431 ↶ Reply to #64520 #64542 07:23 PM, 03 Sep 2018
    Спасибо, нет... В этом и была ошибка - заработался)
  • @podshumok #64543 08:11 PM, 03 Sep 2018
    Кажется, я заставил ClickHouse тормозить
  • https://t.me/clickhouse_ru
    наверно, пожалел 2 байта?
  • https://t.me/clickhouse_ru
    @nikitosiusis #64545 08:11 PM, 03 Sep 2018
    Это оффтопик!
  • @podshumok #64546 08:13 PM, 03 Sep 2018
    У меня есть несколько процессов, которые вставляют данные через POST - TSV, перед вставкой они делают SELECT 1.
    Что-то пошло не так и SELECT 1 стал отрабатывать дольше, чем ClickHouse отвечает, они отваливались по таймауту и через чуть-чуть пробовали ещё раз
  • @podshumok #64547 08:14 PM, 03 Sep 2018
    в результате, видимо, этих SELECT 1 накопилось так много, что оно еле ворочается, даже трейсбеки (о том, что не могут записать результат в HTTP response) записываются в лог с тормозами
  • @podshumok #64548 08:16 PM, 03 Sep 2018
    SHOW PROCESSLIST отрабатывал минут 10 и показал 82 запроса, из них - вставки (самому старому - 4000 секунд), остальные - те самые SELECT 1
  • @podshumok #64549 08:17 PM, 03 Sep 2018
    В чём юмор про два байта?
  • https://t.me/clickhouse_ru
    известная цитата из доклада Алексея, что два байта... пауза... не жалко.
    Был разговор о том как разные данные эффективнее хранить и много прикол про другие отделы яндекса, которые называть не будем
  • @podshumok #64551 08:19 PM, 03 Sep 2018
    а, помню что-то такое, хоть и без конкретики
  • https://t.me/clickhouse_ru
    @vstepankov #64552 08:21 PM, 03 Sep 2018
    https://youtu.be/Ac2C2G2g8Cg
    очень крутой доклад
    Эффективное использование ClickHouse / Алексей Миловидов (Яндекс)

    Приглашаем на Saint HighLoad ++ 2021 20 и 21 сентября 2021, Санкт-Петербург, DESIGN DISTRICT DAA in SPB Программа, билеты и подробности - https://clck.ru/VmKaW -------- HighLoad++ 2017 Тезисы: http://www.highload.ru/2017/abstracts/2992 ClickHouse чуть более года доступен в open-source. За это время накоплен опыт его использования в российских и зарубежных компаниях. В некоторых из них объёмы данных и нагрузки превышают те, с которыми мы имеем дело в Яндексе. Так как ClickHouse является специализированной системой, при его использовании важно учитывать особенности его архитектуры. В своём докладе я расскажу о примерах типичных ошибок при использовании ClickHouse, которые могут привести к неэффективной работе. На примерах из практики будет показано, как выбор той или иной схемы обработки данных может изменить производительность на порядки. Нашли ошибку в видео? Пишите нам на support@ontico.ru

  • https://t.me/clickhouse_ru
    @vstepankov #64553 08:22 PM, 03 Sep 2018
    Эффективное использование ClickHouse / Алексей Миловидов (Яндекс)

    HighLoad++ 2017 Зал «Конгресс-Холл», 8 ноября, 15:00 Тезисы: http://www.highload.ru/2017/abstracts/2992 ClickHouse чуть более года доступен в open-source. За...

  • https://t.me/clickhouse_ru
    @proller ↶ Reply to #64351 #64554 08:34 PM, 03 Sep 2018
    что-то сломалось, будем починить.
  • 04 September 2018 (79 messages)
  • https://t.me/clickhouse_ru
    @zubat_mail #64555 06:15 AM, 04 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @docdvz #64556 07:36 AM, 04 Sep 2018
    Добрый день, возник вопрос: использую официальный JDBC драйвер КХ, пишу разными потоками в разные таблицы через спринговый JdbcTemplate которому подсунут ClickhouseDatasource, стабильно вываливается ошибка
    Code: 373, e.displayText() = DB::Exception: Session is locked by a concurrent client.
    Подскажите куда копать?
  • https://t.me/clickhouse_ru
    Для каждого потока укажите отлельную сессию. КХ не разрешает писать паралельно в рамках одной сессии.
    Параметр session_id
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #64390 #64558 07:48 AM, 04 Sep 2018
    Да, воткните в сервера больше дисков, КХ нормальное долгосрочное хранилище
  • https://t.me/clickhouse_ru
    @docdvz ↶ Reply to #64557 #64559 07:49 AM, 04 Sep 2018
    т.е. получается нужно по отдельному датасорсу для каждого потока?
  • https://t.me/clickhouse_ru
    Попробуйте отключить сессии в драйвере, указав session_id как пустую строку
  • https://t.me/clickhouse_ru
    Хороший доклад
  • @Andriiqq ↶ Reply to #64558 #64562 07:58 AM, 04 Sep 2018
    мы малюсинький стартапчик в котором количество данных планирует увеличиватся(мы надеемся) и если оно увеличится хотя бы в 10 раз мы будем генерировать 100 гб сырых данных в день, в долгосрочной перспективе мы исчерпаем возможности по увелечению диска. а так сырые данные я преображаю и записываю в инфлюкс(получается очень компактно где-то 5 MB инфлюксовских данных равняются выборке из 100 GB сырых). Но руководство и маркетинг хотят по какой-то причине хранить сырые данные
  • https://t.me/clickhouse_ru
    ну там же все жмется, посмотрите какие данные вам не нужны, какие данные лучше разбить на отдельные колонки чтобы лучше жалось
  • https://t.me/clickhouse_ru
    @Imaskar ↶ Reply to #64562 #64564 08:05 AM, 04 Sep 2018
    а зачем инфлюкс, а не просто в другую таблицу в кх?
  • https://t.me/clickhouse_ru
    Инфлюкс умеет continuous query
  • https://t.me/clickhouse_ru
    В смысле - сам агрегирует сырые данные в архив
  • @70532431 #64567 08:12 AM, 04 Sep 2018
    Доброго дня, подскажите Python библиотеку для работы с КХ, в которой можно открыть коннект и посылать запросы в рамках одного коннекта, а не открывать новый для каждого нового запроса.
  • https://t.me/clickhouse_ru
    @Imaskar #64568 08:12 AM, 04 Sep 2018
    мат вью поверх таблицы с аггрегирующими функциями...
  • https://t.me/clickhouse_ru
    @Imaskar #64569 08:12 AM, 04 Sep 2018
    а если надо исходные данные пожать, так кх их и так жмёт. блоки строк-то lz4 жмутся.
  • https://t.me/clickhouse_ru
    Уточните, почему именно в рамках одного коннекта?
  • https://t.me/clickhouse_ru
    @docdvz ↶ Reply to #64560 #64571 08:15 AM, 04 Sep 2018
    Спасибо, помогло
  • @70532431 ↶ Reply to #64570 #64572 08:15 AM, 04 Sep 2018
    Убрать задержки подключения-отключения от базы. Надо обработать большой файл, заглядывая в КХ
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #64573 08:30 AM, 04 Sep 2018
    У вас в среднем запрос сколько выполняется? А сколько тратиться на подключение-отключение?
    Нагрузка КХ подразумевает что запросов выполняется сравнительно небольшое кол-во. Больше 100 - уже будут проблемы, в независимости что считаете. Так что пока непонятно зачем вам постоянное подключение
  • https://t.me/clickhouse_ru
    @sentzei #64574 08:53 AM, 04 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @ivor06 #64575 09:22 AM, 04 Sep 2018
    Добрый день. Кластер из трёх нод, на каждом ноде две таблицы. Первая - реплика своего шарда; вторая - реплика для одного из соседних (перекрёстная репликация). При записи данные реплицируются в одноимённые таблицы (myTableShard), а не в myTableShardReplica, которые созданы в качестве реплик. Подскажите, пожалуйста, что делаю не так?
    CREATE TABLE IF NOT EXISTS myTableShard (
    date Date,
    unix_ts UInt64
    ) ENGINE = ReplicatedReplacingMergeTree('/clickhouse/tables/01/myTableShard', 'node1.a', date) PARTITION BY date ORDER BY unix_ts;
    CREATE TABLE IF NOT EXISTS myTableShardReplica (
    date Date,
    unix_ts UInt64
    ) ENGINE = ReplicatedReplacingMergeTree('/clickhouse/tables/03/myTableShard', 'node1.a', date) PARTITION BY date ORDER BY unix_ts;
    CREATE TABLE IF NOT EXISTS myTable AS myTableShard ENGINE = Distributed(clusterName, test, myTableShard, `unix_ts`);
  • https://t.me/clickhouse_ru
    @ivor06 #64576 09:29 AM, 04 Sep 2018
    Конфиг кластера
  • https://t.me/clickhouse_ru
    @Alexander_Anisimov #64577 10:42 AM, 04 Sep 2018
    Опубликованы видеозаписи докладов ClickHouse Meetup в Петербурге, который состоялся 16 августа.
    Насладиться ими можно на странице мероприятия: https://events.yandex.ru/events/ClickHouse/16-aug-2018/
    ClickHouse Meetup, 16 августа 2018, Санкт-Петербург — События Яндекса

    Приглашаем технических специалистов на ClickHouse Meetup.

  • @Evanushechkin #64578 11:01 AM, 04 Sep 2018
    ZooKeeper: There are 550000 active watches. There must be a leak somewhere - добрый день, ткните пальцем в какую сторону смотреть?
  • https://t.me/clickhouse_ru
    @Krashuevina #64579 11:02 AM, 04 Sep 2018
    слишком много Replicated таблиц?
  • @Evanushechkin #64580 11:03 AM, 04 Sep 2018
    9 таблиц
  • @Evanushechkin #64581 11:06 AM, 04 Sep 2018
    началось после переезда кластера в другой дц, сначала три сервера добавили из нового дц и потом три вывели из работы в старом дц
  • @Evanushechkin #64582 11:06 AM, 04 Sep 2018
    может происходить из-за мертвых реплик?
  • https://t.me/clickhouse_ru
    @bosyakova #64583 11:06 AM, 04 Sep 2018
    Joined.
  • @qhang #64584 11:17 AM, 04 Sep 2018
    подскажите, можно ли ch как-то попросить "увидеть" внутри подзапроса выражения объявленные в блоке with перед внешним запросом?
    Что-то типа такого:
    WITH 1 + 1 AS two
    SELECT *
    FROM
    (
    SELECT two + 1
    )
  • https://t.me/clickhouse_ru
    @bosyakova #64585 11:24 AM, 04 Sep 2018
    Всем привет

    Есть таблицы
    - Потребитель Kafka.
    - Целевая таблица с необходимой структурой.
    - И материализованное представление.

    Материализованное представление перекладывает данные из очереди (потребитель Kafka) в целевую таблицу.
    Данные поступают непрерывно, и в целевой таблице появляются пачками, в моих тестах через 15 минут.
    Для моих целей это очень долго, и я хочу управлять этим временем, сделать этот период поменьше.
    Судя по тому что вижу, матерализованное представление пишет данные пачками по 256 МБ, вроде бы.
    Сбственно вопрос какими настройками конфигурируется состояние, при котором произойдет запись в целевую таблицу?

    Уменьшила min_insert_block_size_bytes в 1024 раза до 262144
    На всякий случай уменьшила min_insert_block_size_rows до 1024

    Но ничего не изменилось
  • https://t.me/clickhouse_ru
    @quarrant #64586 11:28 AM, 04 Sep 2018
    а возможно после insert в replacingmergetree и select final посмотреть предыдущие данные, которые были замены ?
  • https://t.me/clickhouse_ru
    stream_flush_interval_ms
    ?
  • https://t.me/clickhouse_ru
    7.5 секунд по умолчанию, явно не мой случай
  • https://t.me/clickhouse_ru
    @Mokhnachevsky #64589 11:41 AM, 04 Sep 2018
    Тогда уменьшение max_block_size?
  • https://t.me/clickhouse_ru
    Спасибо за участие ) Оказывается изменила min_insert_block_size_bytes в другой сессии, всё ок
  • https://t.me/clickhouse_ru
    А в каких случаях query_id пишется в лог? clickhouse-client шлёт query_id, но он записывается только в debug логах и уже в самом сообщении, а не в фигурных скобках
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #64592 12:04 PM, 04 Sep 2018
    Кто-нибудь дружил КХ и MySQL, если оба в контейнере? КХ не видит MySQL, пишет
    Poco::Exception. Code: 1000, e.code() = 2002, e.displayText() = mysqlxx::ConnectionFailed: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) ((nullptr):0), e.what() = mysqlxx::ConnectionFailed
  • https://t.me/clickhouse_ru
    https://github.com/yandex/ClickHouse/issues/2169#issuecomment-378851403
    https://github.com/yandex/ClickHouse/issues/2508
  • https://t.me/clickhouse_ru
    Табличной функцией или odbc?
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #64595 12:26 PM, 04 Sep 2018
    Табличной функцией
  • https://t.me/clickhouse_ru
    @EvgenyVinogradov #64596 12:27 PM, 04 Sep 2018
    Как выглядит вызов функции?
  • https://t.me/clickhouse_ru
    CREATE TABLE sites (...) ENGINE = MySQL('localhost:3306', 'admin_stat', 'sites', 'root', 'mypass')
  • https://t.me/clickhouse_ru
    @EvgenyVinogradov #64598 12:35 PM, 04 Sep 2018
    есть только догадка, что порт не прослушивается или не видится из контейнера
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #64599 12:43 PM, 04 Sep 2018
    Через консольный клиент подлючается
    mysql -uroot —port 3306 —protocol=TCP —password
  • https://t.me/clickhouse_ru
    А мускул и кх в одном контейнере? Если нет то кх локалхост воспринимает как свой контейнер
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #64601 12:48 PM, 04 Sep 2018
    В разных. Я пробовал вместо localhost указывать 127.0.0.1
    Возможно в случае разных контейнеров в подключении нужно указывать ip-к контейнера с mysql?
  • https://t.me/clickhouse_ru
    Так если в разных то надо в КЗ указывать сервер мускула
  • https://t.me/clickhouse_ru
    @MaksymHryhoriev #64603 12:50 PM, 04 Sep 2018
    Я делал через докер-композ и в настройках кх указывал алиас который в конфигурации докер композа прописал
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #64604 12:51 PM, 04 Sep 2018
    Можете пример скинуть? Я примерно понял про что вы
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #64605 12:52 PM, 04 Sep 2018
    Т.е. нужно указывать ip-к или имя mysql, которое выдает контейнер?
  • https://t.me/clickhouse_ru
    Да, буду за компьютером через час полтора и скину
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #64607 12:55 PM, 04 Sep 2018
    Спасибо, жду. Пока пошёл читать про docker-compose
  • https://t.me/clickhouse_ru
    @AlexTheDolphin #64608 01:19 PM, 04 Sep 2018
    Joined.
  • None
  • @IvanVVX #64610 01:38 PM, 04 Sep 2018
    Joined.
  • @milovidov_an #64611 01:50 PM, 04 Sep 2018
    Пример docker compose с ClickHouse и MySQL есть прямо в интеграционных тестах ClickHouse:

    1. https://github.com/yandex/ClickHouse/blob/master/dbms/tests/integration/helpers/docker_compose_mysql.yml

    2. https://github.com/yandex/ClickHouse/blob/master/dbms/tests/integration/helpers/cluster.py#L257
    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
    Спасибо, буду изучать
  • @675755024 #64613 01:59 PM, 04 Sep 2018
    Joined.
  • @a_ustinov #64614 02:25 PM, 04 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @malev #64615 02:33 PM, 04 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @malev #64616 02:33 PM, 04 Sep 2018
    Привет чат
  • https://t.me/clickhouse_ru
    @malev #64617 02:34 PM, 04 Sep 2018
    Кто-нибудь удалял дубликаты из КХ недавно?
  • https://t.me/clickhouse_ru
    @stufently #64618 02:36 PM, 04 Sep 2018
    мы не вставляем
  • https://t.me/clickhouse_ru
    @AlexTheDolphin #64619 02:39 PM, 04 Sep 2018
    Товарищи, подскажите, как оценить оверхед CH? Т.е. если у меня есть некоторый датасет объемом N GB, сколько мне понадобится дисков для хранения этого датасета в CH?
  • https://t.me/clickhouse_ru
    Если данные пожаты чем-то - берите столько же. Как правило, КХ жмёт лучше, так что будет запас (для фоновых мерджей и т.п.)
  • https://t.me/clickhouse_ru
    Понял, спасибо!
  • https://t.me/clickhouse_ru
    ну будет сильно меньше в несколько раз
  • https://t.me/clickhouse_ru
    Мы обычно берем примерно 1/5 - 1/10 от объема сырых данных. Но всё зависит от самих данных, некоторые жмутся очень плохо, а некоторые наоборот очень хорошо
  • https://t.me/clickhouse_ru
    @yurytrostin #64624 02:45 PM, 04 Sep 2018
    всем привет!
    когда я гружу данные из КХ в Tableau, то часто (чаще всего) строковые данные приходят в усеченном виде. Например, если в КХ лежит строка 'control_group', то в Tableau приедет 'control_g'. Кто-нибудь сталкивался с такой проблемой?
  • https://t.me/clickhouse_ru
    попробуй более свежие версии odbc драйвера, это уже чинили
  • https://t.me/clickhouse_ru
    спасибо за совет, попробую
  • https://t.me/clickhouse_ru
    @malev ↶ Reply to #64618 #64627 02:48 PM, 04 Sep 2018
    💪
  • @446595201 #64628 03:41 PM, 04 Sep 2018
    Joined.
  • @446595201 #64629 03:42 PM, 04 Sep 2018
    Hi guys. not sure if anyone speak English. I saw roadmap on 2018 Q4 there is an item for distributed join. Does it mean CH will build an exchange operator for data shuffling among nodes?
  • https://t.me/clickhouse_ru
    спасибо, это сработало
    может подскажешь заодно, что делать с русскими символами? при загрузке в табло из КХ они превращаются в нечто нечитаемое
  • https://t.me/clickhouse_ru
    @Imaskar ↶ Reply to #64630 #64631 06:00 PM, 04 Sep 2018
    По хттп берёте? Кх пишет по умолчанию энкодинг ютф8, но загружали вы возможно совсем другое.
  • https://t.me/clickhouse_ru
    Да, по хттп
  • https://t.me/clickhouse_ru
    @geebv #64634 10:56 PM, 04 Sep 2018
    Коллеги, есть задача SQL запросы для аналитики написать. Если кому интересно пишите в личку.
  • 05 September 2018 (49 messages)
  • https://t.me/clickhouse_ru
    А чё сам то ? Sql-ex.ru сделает из любого менеджера человека 😂
  • https://t.me/clickhouse_ru
    @geebv ↶ Reply to #64635 #64636 03:53 AM, 05 Sep 2018
    Познайте силу делегирования 😂
    Да и в любом случае у знающего человека с опытом быстрей и качественней будет результат. Вы так не считаете?
  • https://t.me/clickhouse_ru
    Познайте силу презрения халявщиков
  • https://t.me/clickhouse_ru
    @leidruid ↶ Reply to #64637 #64638 04:26 AM, 05 Sep 2018
    Почему же халявщиков? Я из сообщения понял, что человек готов заплатить.
  • https://t.me/clickhouse_ru
    @geebv #64639 04:29 AM, 05 Sep 2018
    > что человек готов заплатить.
    Совершенно верно
  • https://t.me/clickhouse_ru
    @JackRussell77 #64640 05:08 AM, 05 Sep 2018
    Псс поцоны работка есть. Никто не хочет срубить по быстрому баблишко 😂😂
  • https://t.me/clickhouse_ru
    @quarrant ↶ Reply to #64640 #64641 06:36 AM, 05 Sep 2018
    В России все кто мог, уже срубили баблишко =)
  • @lnpj12 ↶ Reply to #64640 #64642 06:39 AM, 05 Sep 2018
    Сергей пантелеевич, это вы?
  • @213797174 #64643 06:54 AM, 05 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @is_a_bella #64644 07:15 AM, 05 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @maxim_chepukov #64646 08:34 AM, 05 Sep 2018
    Joined.
  • @denserdotru #64647 09:57 AM, 05 Sep 2018
    Ребят, здравствуйте) покажите пример использования движка Mysql? в документации не пойму где оно
  • https://t.me/clickhouse_ru
    @eduard_kotoyants #64648 10:03 AM, 05 Sep 2018
    Сервак КХ на RAID10 (12 дисков):
    EXT4-fs error (device md1): ext4_validate_inode_bitmap:99: comm clickhouse-serv: Corrupt inode bitmap - block_group = 20065, inode_bitmap = 657457169
    Aborting journal on device md1-8.
    EXT4-fs (md1): Remounting filesystem read-only
    EXT4-fs error (device md1): ext4_journal_check_start:61: Detected aborted journal
    EXT4-fs error (device md1): ext4_journal_check_start:61: Detected aborted journal
    Кто-то сталкивался?
  • https://t.me/clickhouse_ru
  • там нет пример использования :) гуглением и логикой там уже читал
  • https://t.me/clickhouse_ru
    прямо пример думаю есть только в тесте https://github.com/yandex/ClickHouse/blob/master/dbms/tests/integration/test_storage_mysql/test.py#L42
    yandex/ClickHouse

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

  • @denserdotru #64652 10:09 AM, 05 Sep 2018
    аа, оно умеет табличку вставлять, я думал моожно джоин сделать из мускула, жаль) придется костылить
  • @denserdotru #64653 10:10 AM, 05 Sep 2018
    с другой стороны никто не мешает делать таблицу и затирать её?
  • https://t.me/clickhouse_ru
    Я сталкивался. Возможно из-за глюков раид контроллера, и в ext4 тоже есть баги.
  • https://t.me/clickhouse_ru
    @eduard_kotoyants #64655 10:40 AM, 05 Sep 2018
    Вопрос куда копать? Диски, контроллер или ОС? Может при каких-то определенных условиях проявляется, mount options или интенсивность записи/чтения итд?
  • @maxim_vorsobine #64656 10:41 AM, 05 Sep 2018
    Привет! Подскажите, почему при использовании OPTIMIZE TABLE ... PARTITION ... FINAL на совсем небольших таблицах (сотни Мб) с репликацией (3 машинки) очень большие задержки (до 10 мин), в то время как на тестовом стенде без репликации всё летает (1 сек).
  • https://t.me/clickhouse_ru
    ну вероятность проявления коррелирует с интенсивностью i/o. У меня megaraid. Я находил похожие исправленные баги в ext4 (у меня древнее ядро дебиан9). Можно попробовать xfs. Надо у админов яндекса спрашивать, бывает у них такое на ext4 или нет.
  • @sr_maks1 #64658 11:25 AM, 05 Sep 2018
    Ребят а как Null значения в csv писать для последующего импорта? \N?
  • https://t.me/clickhouse_ru
    @ruslan_a #64659 11:26 AM, 05 Sep 2018
    Да
  • @222002260 #64660 01:09 PM, 05 Sep 2018
    Joined.
  • @222002260 #64661 01:11 PM, 05 Sep 2018
    привет. есть вопрос по появившемуся TRUNCATE. если делать TRUNCATE реплицируемой таблицы, TRUNCATE так же будет сделан на всех серверах, на которых эта реплицируемая таблица заведена?
  • @70532431 #64662 01:12 PM, 05 Sep 2018
    да ладно, давно в CH есть TRUNCATE? не было же вроде
  • @222002260 #64663 01:12 PM, 05 Sep 2018
    добавили в одном из последних релизов
  • @70532431 #64664 01:12 PM, 05 Sep 2018
    вот это круто
  • https://t.me/clickhouse_ru
    Э... А чем я обрезал таблицы весной?
  • @70532431 #64666 01:13 PM, 05 Sep 2018
    Кстати, отныне CH можно юзать в облаке, которое сегодня открыл Яндекс)

    https://cloud.yandex.ru/
    Надежное облако для вашего бизнеса — Yandex.Cloud

    Вычислительные мощности, сервисы для обработки данных и уникальные технологии Яндекса для вашего бизнеса.

  • https://t.me/clickhouse_ru
    Там цена заградительная.
  • https://t.me/clickhouse_ru
    Надеюсь, что сделали такую, чтоб страждущие не сожрали сразу всё приготовленное к моменту открытия
  • https://t.me/clickhouse_ru
    @kthx000 #64669 02:38 PM, 05 Sep 2018
    select из примера ведь не работает? https://clickhouse.yandex/docs/en/interfaces/formats/#capnproto или что надо сделать чтобы capnproto стал output форматом?

    name: CapnProto
    is_input: 1
    is_output: 0
    version(): 18.6.0
  • проверил: TRUNCATE происходит на всех реплицируемых таблицах.
  • Пример не работает. Чтобы заработало нужно написать некоторое количество кода в C++. :\
  • https://t.me/clickhouse_ru
    @lyapen #64672 05:57 PM, 05 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Imaskar ↶ Reply to #64669 #64673 06:03 PM, 05 Sep 2018
    Там же написано, что надо файлы схемы в папку определённую положить.
  • https://t.me/clickhouse_ru
    @kthx000 #64674 06:04 PM, 05 Sep 2018
    Это понятно, но это не работает
  • https://t.me/clickhouse_ru
    @olegvlzv #64675 06:07 PM, 05 Sep 2018
    Joined.
  • @ilmetovv #64676 06:08 PM, 05 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @molo4ko007 #64677 07:24 PM, 05 Sep 2018
    А можно как-то динамически конфигурировать набор словарей?
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #64677 #64678 07:31 PM, 05 Sep 2018
    Например
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #64677 #64679 07:32 PM, 05 Sep 2018
    Какой бы мог быть запрос на создание словаря
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #64677 #64680 07:35 PM, 05 Sep 2018
    Вы когда словарь добавляете и раскатываете на всех репликах, кх не надо рестартить, он его сразу подхватывает, разве это не динамически?
  • https://t.me/clickhouse_ru
    @molo4ko007 #64681 07:43 PM, 05 Sep 2018
    Кстати да, должно сработать
  • https://t.me/clickhouse_ru
    @molo4ko007 #64682 07:45 PM, 05 Sep 2018
    А, ещё кстати. кх в докере, а конфиги замаунчены и изменения файла, который снаружи, не прокидываются в конфиг, который в докере. Кто-то с таким сталкивался?
  • https://t.me/clickhouse_ru
    @crazyproger #64683 07:45 PM, 05 Sep 2018
    Конфиги пользователей у меня перечитываются на лету
  • https://t.me/clickhouse_ru
    @ka_ktus ↶ Reply to #64682 #64684 08:43 PM, 05 Sep 2018
    Надо прокидывать папку. С файлами - это особенность докера.
  • 06 September 2018 (111 messages)
  • https://t.me/clickhouse_ru
    @notmaxx #64685 03:39 AM, 06 Sep 2018
    Доброе утро, все пытаюсь заполнить свое AggregateMT, делал по инструкции https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!msg/clickhouse/SJ9arSTPsKk/3c_jh3NLCwAJ, устанавливал set max_block_size=100000 и set max_insert_block_size=100000 и память выделял 50 ГБ на запрос все равно вылетает с ошибкой нехватки памяти типа
    Progress: 181.85 million rows, 29.67 GB (25.12 million rows/s., 4.10 GB/s.) █████████████████████████████████▋ 53Received exception from server (version 18.10.3):
    Code: 241. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Memory limit (for query) exceeded: would use 46.57 GiB (attempt to allocate chunk of 131072 bytes), maximum: 46.57 GiB.

    0 rows in set. Elapsed: 7.316 sec. Processed 181.85 million rows, 29.67 GB (24.86 million rows/s., 4.06 GB/s.)

    вот кусок конфига users.xml
    <?xml version="1.0"?>
    <yandex>
    <!-- Profiles of settings. -->
    <profiles>
    <!-- Default settings. -->
    <default>
    <!-- Maximum memory usage for processing single query, in bytes. -->
    <!-- <max_memory_usage>10000000000</max_memory_usage> -->
    <max_memory_usage>50000000000</max_memory_usage>
    <max_bytes_before_external_group_by>20000000000</max_bytes_before_external_group_by>

    <!-- Use cache of uncompressed blocks of data. Meaningful only for processing many of very short queries. -->
    <use_uncompressed_cache>0</use_uncompressed_cache>

    <!-- How to choose between replicas during distributed query processing.
    random - choose random replica from set of replicas with minimum number of errors
    nearest_hostname - from set of replicas with minimum number of errors, choose replica
    with minumum number of different symbols between replica's hostname and local hostname
    (Hamming distance).
    in_order - first live replica is choosen in specified order.
    -->
    <load_balancing>random</load_balancing>
    </default>

    <!-- Profile that allows only read queries. -->
    <readonly>
    <readonly>1</readonly>
    </readonly>
    </profiles>
    ...
  • https://t.me/clickhouse_ru
    @notmaxx #64686 03:40 AM, 06 Sep 2018
    после того как поменял конфиг рестартанул сервер
  • https://t.me/clickhouse_ru
    @notmaxx #64687 03:41 AM, 06 Sep 2018
    правда все таблицы создал до установки настроек и до SET ...=...
  • https://t.me/clickhouse_ru
    @notmaxx #64688 03:50 AM, 06 Sep 2018
    попробовал пересоздать таблицы после настроек - тот же результат
  • https://t.me/clickhouse_ru
    @studnev #64689 06:17 AM, 06 Sep 2018
    Clickhouse в облаке Яндекса - https://cloud.yandex.ru/docs/mdb/quickstart это круто! Я уже правда купил выделенных серверов, а так вариант для старта проекта очень удобный
  • https://t.me/clickhouse_ru
    @stufently #64690 06:21 AM, 06 Sep 2018
    ну блин на старте у всех много данных в целом , а ценники там огого, вчера посмотрел
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #64685 #64691 06:24 AM, 06 Sep 2018
    Что за структура MV? Уменьшите размер max_block_size до 8к, например и max_threads в единицу
  • https://t.me/clickhouse_ru
    Может пригодится. Обновления ядра с 4.16 на 4.17 на Debian из backports решило вопрос, пофиксили в 4.16.4 (https://cdn.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.16.4)
  • https://t.me/clickhouse_ru
    @igor_dia #64693 06:36 AM, 06 Sep 2018
    Ребят, а как кх работает с пределами? 1.0/-Inf будет нулём или NaN?
  • https://t.me/clickhouse_ru
    @notmaxx ↶ Reply to #64691 #64694 06:50 AM, 06 Sep 2018
    Kirill, спасибо, вот структура
    CREATE MATERIALIZED VIEW status_mv12 TO status_amt12
    AS SELECT
    created_at_d as created_at_d,
    group_id as group_id,
    user_id as user_id,
    master_object_id as master_object_id,
    argMaxState(object_id, event_ms_ts) AS last_object_id,
    argMaxState(object_complete, event_ms_ts) AS object_complete,
    argMaxState(object_complete_success, event_ms_ts) AS object_complete_success,
    argMaxState(completed_at_dt, event_ms_ts) AS last_complete_dt,
    argMaxState(error, event_ms_ts) AS last_error,
    argMaxState(report, event_ms_ts) AS last_report
    FROM status_amt12_null
    GROUP BY created_at_d, group_id, user_id, master_object_id
    у меня почему то возникает ощущение что настройки не применяются, например, я вижу что процентики бегут примерно с одинаковой скоростью независимо от настроек (визуальное ощущение, но я могу ошибаться)
  • https://t.me/clickhouse_ru
    @notmaxx #64695 06:52 AM, 06 Sep 2018
    попробую уменьшить
  • https://t.me/clickhouse_ru
    @JackRussell77 #64696 06:55 AM, 06 Sep 2018
    кто то уже юзал облако ?
  • https://t.me/clickhouse_ru
    @JackRussell77 #64697 06:56 AM, 06 Sep 2018
    Кстати, отныне CH можно юзать в облаке, которое сегодня открыл Яндекс)

    https://cloud.yandex.ru/
    Надежное облако для вашего бизнеса — Yandex.Cloud

    Вычислительные мощности, сервисы для обработки данных и уникальные технологии Яндекса для вашего бизнеса.

  • https://t.me/clickhouse_ru
    @notmaxx ↶ Reply to #64691 #64698 06:58 AM, 06 Sep 2018
    перезапустил с новыми настройками (max_block_size=1000, max_insert_block_size=1000, max_threads=1) - новая ошибка
    ↑ Progress: 441.17 million rows, 40.93 GB (6.91 million rows/s., 640.83 MB/s.) ████████████████████████████████████████▎ 64Received exception from server (version 18.10.3):
    Code: 241. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Memory limit (for query) exceeded: would use 46.58 GiB (attempt to allocate chunk of 67108864 bytes), maximum: 46.57 GiB: (while reading column error): (while reading from part /var/lib/clickhouse/data/default/object_events_mt12/20180508_20180512_4650_4662_1/ from mark 240 with max_rows_to_read = 1000).

    0 rows in set. Elapsed: 64.081 sec. Processed 441.17 million rows, 40.93 GB (6.88 million rows/s., 638.74 MB/s.)
  • @lnpj12 ↶ Reply to #64697 #64699 06:58 AM, 06 Sep 2018
    Дороха выходит пока
  • https://t.me/clickhouse_ru
    Хм.. предзаказ тока пока
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #64698 #64701 07:10 AM, 06 Sep 2018
    max_bytes_before_external_group_by выставите, например, в 30GB, вы же там группируете и max_block_size в 8192 и попробуйте не все разом писать, движок еще в фоне все помержит
  • Я так понимаю падает на POPULATE? Можно попробовать сделать populate "ручками". Проверьте кстати применились ли настройки (
    select * from syatem.settings where changed=1
    ) для того пользователя которым создаёте mv, особенно max bytes before external group by.
  • https://t.me/clickhouse_ru
    @notmaxx ↶ Reply to #64702 #64703 07:15 AM, 06 Sep 2018
    да, я делаю его ручками по схеме описанной https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!msg/clickhouse/SJ9arSTPsKk/3c_jh3NLCwAJ
  • https://t.me/clickhouse_ru
    @notmaxx #64704 07:15 AM, 06 Sep 2018
    настройки проверю
  • https://t.me/clickhouse_ru
    @notmaxx ↶ Reply to #64701 #64705 07:15 AM, 06 Sep 2018
    max_bytes_before_external_group_by стоит в 20 ГБ сейчас
  • https://t.me/clickhouse_ru
    @notmaxx ↶ Reply to #64702 #64706 07:17 AM, 06 Sep 2018
    применились все что я ставил
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #64705 #64707 07:18 AM, 06 Sep 2018
    ОК, тогда пишите в несколько запросов, например по дням, и посмотрите хватит ли памяти и сколько он будет есть ее при мержах
  • https://t.me/clickhouse_ru
    @notmaxx ↶ Reply to #64707 #64708 07:19 AM, 06 Sep 2018
    да, придется так скорее всего
  • @ilikas #64709 08:04 AM, 06 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @basutachka #64710 08:16 AM, 06 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @vladimirmyuge #64711 08:25 AM, 06 Sep 2018
    Привет! Подскажите, а можно как-то запросом посмотреть все имеющиеся словари?
  • https://t.me/clickhouse_ru
    @ifoton ↶ Reply to #64711 #64712 08:26 AM, 06 Sep 2018
    select * from system.dictionaries
  • https://t.me/clickhouse_ru
    Спасибо
  • @sabonar #64714 08:50 AM, 06 Sep 2018
    Добрый день, ссылка из документации:
    https://github.yandex-team.ru/raw/Metrika/ClickHouse_private/master/doc/create_embedded_geobase_dictionaries.txt
    из документации по ссылке:
    https://clickhouse.yandex/docs/ru/query_language/dicts/internal_dicts/#internal_dicts
    Не рабочая
  • https://t.me/clickhouse_ru
    @konstantin_ptr #64715 09:37 AM, 06 Sep 2018
    подскажите почему может не пускать?
  • https://t.me/clickhouse_ru
    netstat -lntp что говорит про порт 8123 ?
  • https://t.me/clickhouse_ru
    И, кстати, clickhouse точно на localhost?
  • https://t.me/clickhouse_ru
    @konstantin_ptr #64718 09:39 AM, 06 Sep 2018
    vps да
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    на localhost там, где запускается броузер с tabix, да? ;-)
  • https://t.me/clickhouse_ru
    Табикс пытается подключиться к местному localhost и обламывается. А надо подключаться к адресу впс
  • https://t.me/clickhouse_ru
    @lyapen #64722 09:45 AM, 06 Sep 2018
    Подскажите плиз работает ли сейчас вставка данных в кликхаус со значениями NULL через питоновский jdbc драйвер?
  • https://t.me/clickhouse_ru
    спасибо, стучался да к себе, и фаерволом порт был закрыт из вне
  • https://t.me/clickhouse_ru
    Если заморачиваться за безопасность - можно пробрасывать порт через ssh, для тестов этого достаточно.
  • https://t.me/clickhouse_ru
    @sergey_nk #64725 09:49 AM, 06 Sep 2018
    Joined.
  • @6383062 #64726 10:44 AM, 06 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @JackRussell77 #64727 10:59 AM, 06 Sep 2018
    Какие есть ограничения на количество столбцов?
    Несколько тысяч можно ?
  • https://t.me/clickhouse_ru
    @Imaskar #64728 11:01 AM, 06 Sep 2018
    а есть какие-нибудь ограничение на кол-во колонок в таблице для Distributed движка?
  • https://t.me/clickhouse_ru
    @Imaskar #64729 11:01 AM, 06 Sep 2018
    получилась у нас тут таблица на 719 колонок
  • https://t.me/clickhouse_ru
    @Imaskar #64730 11:01 AM, 06 Sep 2018
    у нас 500+, не падает.
  • https://t.me/clickhouse_ru
    @Imaskar #64731 11:01 AM, 06 Sep 2018
    Такое количество столбцов - полностью нормально для ClickHouse.

    В логах на 192.168.157.3 есть что-нибудь полезное? Например, фрагмент "###" - говорит, что сервер получил сигнал. Ниже будет указан стек трейс. Если нет - смотрите в dmesg.
  • https://t.me/clickhouse_ru
    А в insert никакого вычисления нет?
    А insert проходит в null таблицу если не создавать MV?
    report и error насколько большими по размеру могут быть?
  • https://t.me/clickhouse_ru
    @konstantin_ptr #64733 12:13 PM, 06 Sep 2018
    Если данные есть в таблице, можно ли потом создать новую колонку в ней же?
  • https://t.me/clickhouse_ru
    @den_crane #64734 12:13 PM, 06 Sep 2018
    да, PK менять нельзя, просто колонки добавлять и удалять можно
  • https://t.me/clickhouse_ru
    @konstantin_ptr #64735 12:14 PM, 06 Sep 2018
    Спасибо
  • @sr_maks1 #64736 12:20 PM, 06 Sep 2018
    Ребят вопрос - а cli client поддерживает автодополнение?
  • @70532431 #64737 12:25 PM, 06 Sep 2018
    nope
  • @70532431 #64738 12:26 PM, 06 Sep 2018
    если какие-то команды подсказать, пишите начало, типа truncate, жмёте энтер, в ошибке будут возможные варианты, как правильно продолжить
  • @chesnokov_i #64739 01:00 PM, 06 Sep 2018
    Joined.
  • @IPrvz #64740 01:11 PM, 06 Sep 2018
    Joined.
  • В следующей версии должно появиться.
  • https://t.me/clickhouse_ru
    @chubukov #64742 01:35 PM, 06 Sep 2018
    Привет! Возможно название файла, который грузится в таблицу, добавить отдельным столбцом?
  • https://t.me/clickhouse_ru
    @Imaskar #64743 01:36 PM, 06 Sep 2018
    это же просто текст, почему бы нет?
  • https://t.me/clickhouse_ru
    @chubukov #64744 01:37 PM, 06 Sep 2018
    А как? =)
  • @sr_maks1 ↶ Reply to #64741 #64745 01:37 PM, 06 Sep 2018
    Круто было б!
  • https://t.me/clickhouse_ru
    @Imaskar #64746 01:38 PM, 06 Sep 2018
    а, который грузится через clickhouse-client? если формат tsv, то можно cat-sed магию накрутить
  • https://t.me/clickhouse_ru
    @chubukov #64747 01:39 PM, 06 Sep 2018
    Примерно вот так гружу for i in $(find " + dir + " -type f); do gzip -cd $i | clickhouse-client -q 'insert into id_links format CSV' ;
  • уже в мастере ( https://github.com/yandex/ClickHouse/pull/2447 ) Если есть желание - можно пробовать свежие тестовые билды.
    Feature/suggestions by Tezd · Pull Request #2447 · yandex/ClickHouse

    I hereby agree to the terms of the CLA available at: https://yandex.ru/legal/cla/?lang=en This PR adds autocomplete to client for base queries, types, engines, formats, and functions except combina...

  • https://t.me/clickhouse_ru
    @chubukov ↶ Reply to #64746 #64749 01:44 PM, 06 Sep 2018
    о, кажется понял. Спасибо!
  • https://t.me/clickhouse_ru
    @akisin #64750 01:57 PM, 06 Sep 2018
    Подскажите кто сталкивался, пытаюсь добавить файл с макросами macros.xml в основном конфинге прописал <macros incl="macros">macros.xml</macros>
    Сам файл лежит в /etc/clickhouse-server/conf.d права на месте, внутри
    <?xml version="1.0"?>
    <yandex>
    <macros replace="replace">
    <shard>01</shard>
    <replica>01</replica>
    </macros>
    </yandex>
    При создании реплицируемой таблицы ошибка

    Code: 62, e.displayText() = DB::Exception: No macro shard in config, e.what() = DB::Exception

    CH рестартовал, эффекта ноль.
  • https://t.me/clickhouse_ru
    @alexunderside #64751 02:05 PM, 06 Sep 2018
    Доброго дня, если я делаю условие сравнения datetime и date, то
    1 кейс работает >=
    select * from table where event_time >=toDate('2018-01-01')
    2 запрос не отраатывает <=
    select * from table where event_time <=toDate('2018-01-01')
    ни одной строки не возвращается
    кто мне ответит почему?
  • https://t.me/clickhouse_ru
    @alexunderside #64752 02:05 PM, 06 Sep 2018
    просто странное поведение
  • @rasmus93 #64753 02:06 PM, 06 Sep 2018
    всем привет, а avgArray c NULL значенями внутри не работает? или может версия старая и уже работает?
  • @rasmus93 #64754 02:06 PM, 06 Sep 2018
    пример:
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #64750 #64755 02:06 PM, 06 Sep 2018
    <macros>conf.d/macros.xml</macros> + reboot сервера
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #64751 #64756 02:07 PM, 06 Sep 2018
    Там была бага со сравнением, возможно недопочинили, сделайте issue на github
  • https://t.me/clickhouse_ru
    @Imaskar ↶ Reply to #64754 #64757 02:08 PM, 06 Sep 2018
    в v1.1.54390 кажется исправили
  • https://t.me/clickhouse_ru
    @alexunderside #64758 02:09 PM, 06 Sep 2018
    спасиб, думалось я что-то не то делаю
  • https://t.me/clickhouse_ru
    @alexunderside #64759 02:09 PM, 06 Sep 2018
    Там была бага со сравнением, возможно недопочинили, сделайте issue на github
  • https://t.me/clickhouse_ru
    @Imaskar ↶ Reply to #64758 #64760 02:10 PM, 06 Sep 2018
    так может версию обновить надо просто?
  • https://t.me/clickhouse_ru
    @akisin ↶ Reply to #64755 #64761 02:17 PM, 06 Sep 2018
    Спасибо, попробую!
  • @rasmus93 ↶ Reply to #64757 #64762 02:20 PM, 06 Sep 2018
    протестил на версии 18.10.3 - тоже самое:
  • https://t.me/clickhouse_ru
    @Imaskar #64763 02:20 PM, 06 Sep 2018
    значит пропустили эту функцию. надо новый issue завести
  • https://t.me/clickhouse_ru
    @molo4ko007 #64764 02:27 PM, 06 Sep 2018
    Планирую переехать с zookeeper 3.4 на 3.5, стоит ожидать подводных камней?
  • https://t.me/clickhouse_ru
    @stufently #64765 02:38 PM, 06 Sep 2018
    Сказать честно нет особого смысла переезжать
  • https://t.me/clickhouse_ru
    @apple_veronika #64766 02:39 PM, 06 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @philisilly #64767 02:51 PM, 06 Sep 2018
    Joined.
  • @Kentwilliams #64768 02:51 PM, 06 Sep 2018
    Joined.
  • @milovidov_an #64769 03:00 PM, 06 Sep 2018
    FYI У нас появились testing пакеты версии 18.12.6
    https://repo.yandex.ru/clickhouse/deb/testing/main/
    Пока продолжаем проверку на тестовой среде перед выкладкой в stable.
  • https://t.me/clickhouse_ru
    @vse_chetk0 #64770 03:05 PM, 06 Sep 2018
    Есть способ приведение к типу DateTime строки у которой формат не соответсвует "YYYY-MM-DD hh:mm:ss" ?
  • Функция parseDateTimeBestEffort
  • https://t.me/clickhouse_ru
    супер, спасибо)
  • @vbabaev #64773 03:31 PM, 06 Sep 2018
    Joined.
  • @DrDareka #64774 03:35 PM, 06 Sep 2018
    Намекните, пожалуйста, если нужно из таблицы все пары строк по условию выбрать, как быть? С имеющимся джойном что-то не лепится.
  • https://t.me/clickhouse_ru
    @notmaxx ↶ Reply to #64732 #64775 03:41 PM, 06 Sep 2018
    в INSERT вычисления нет, report и error строки, могут быть в пределах килобайта, но вы правы - инсерт в нулл таблицу не проходит по причине нехватки памяти, это может быть из-за ORDER BY? Просто у events_mt12 уже в PK created_at_d, думал, бесплатно сортировка будет
    INSERT INTO status_amt12_null SELECT
    event_ms_ts,
    created_at_d,
    completed_at_dt,
    group_id,
    user_id,
    master_object_id,
    object_id,
    object_complete,
    object_complete_success,
    error,
    report
    FROM events_mt12
    ORDER BY created_at_d ASC
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #64775 #64776 03:45 PM, 06 Sep 2018
    Сортировка не бесплатна, но ее тоже можно вытеснить на диск max_bytes_before_external_sort
  • https://t.me/clickhouse_ru
    @notmaxx ↶ Reply to #64776 #64777 03:47 PM, 06 Sep 2018
    вставка без сортировки в NULL таблицу прошла, запустил вставку без сортировки в MV, все стало очень медленно, посмотрим как пройдет, потом буду пробовать этот ключик. Спасибо
  • Так и знал что вы от нас что-то скрываете :) В том запросе который раньше показывали не было ORDER BY, и вообще ничего в нем не указывало что он может отвалиться по памяти при включенной группировке на диске. :)
    Про медленно - да, INSERT ... SELECT не быстр. Тут как раз настройки размеров блоков могут помогать.
  • @mfilimonov #64779 03:53 PM, 06 Sep 2018
    (или мешать)
  • https://t.me/clickhouse_ru
    @notmaxx ↶ Reply to #64778 #64780 03:58 PM, 06 Sep 2018
    сорри, я не скопировал INSERT в чатик, надо было сразу это сделать. Вопрос в догонку (наверное, очевидный, но все-таки) - настройки, которые я делаю с помощью SET, только на эту сессию? Все остальные сессии будут использовать конфиг? Например, у меня будет сессия которая будет вставлять данные бОльшими кусками маленькие объемы (типа 1000 записей в секунду) и параллельно я запущу миграцию меньшими кусками и с бОльшими настройками памяти на сессию. Правильно я понимаю, что все должно работать и медленный инсерт не должен тормозить маленькие частые инсерты?
  • да, настройки в SET влияют только на сессию. Инсерты не дешевы (в плане диска и процессора) поэтому во время больших инсертов всё может немного замедляться.
  • https://t.me/clickhouse_ru
    @vse_chetk0 #64782 04:23 PM, 06 Sep 2018
    возможно ли сделать следующее,
    имея одну строку, например
    | 100 | 2018-08-01 | 2018-08-31 |
    размножить эту строку сделав группировку по дням, т.е
    | 100 | 2018-08-01 |
    | 100 | 2018-08-02 |
    ...
    | 100 | 2018-08-30 |
    | 100 | 2018-08-31 |
  • https://t.me/clickhouse_ru
    @orantius #64783 04:24 PM, 06 Sep 2018
    можно
  • https://t.me/clickhouse_ru
    @orantius #64784 04:25 PM, 06 Sep 2018
    вычесть даты, получить длину для range, сочинить массив дат, потом array join
  • https://t.me/clickhouse_ru
    идея отличная, спасибо
  • https://t.me/clickhouse_ru
    @proller ↶ Reply to #64351 #64788 05:00 PM, 06 Sep 2018
    Возможно дело в http сервере и в том что он не понимает Transfer-Encoding: chunked
  • https://t.me/clickhouse_ru
    @notmaxx ↶ Reply to #64781 #64789 05:20 PM, 06 Sep 2018
    все получилось, причина была сортировка в инсерте. Спасибо за помощь
  • https://t.me/clickhouse_ru
    @notmaxx #64790 05:27 PM, 06 Sep 2018
    а как узнать, прошли бакграунд мержи в AggregatedMT или нет?
  • @sabonar ↶ Reply to #64788 #64791 05:35 PM, 06 Sep 2018
    Спасибо, проверю
  • https://t.me/clickhouse_ru
    А зачем это знать? В таблице system.parts смотреть сколько партов. Но до конца оно может никогда не смержится, не обязан.
  • https://t.me/clickhouse_ru
    @notmaxx ↶ Reply to #64792 #64793 05:47 PM, 06 Sep 2018
    У меня select запрос по AggregateMV работает медленнее чем по оригинальному MT, думал, может это с мержами связано
  • https://t.me/clickhouse_ru
    @den_crane #64794 05:48 PM, 06 Sep 2018
    Может в MV строк столько же сколько в оригинальной таблице?
  • https://t.me/clickhouse_ru
    @notmaxx ↶ Reply to #64794 #64795 06:13 PM, 06 Sep 2018
    в MV процентов на 15-20% меньше (500 mln vs 600 mln, а если брать доп условие WHERE то 12 mln vs 16 mln)
  • https://t.me/clickhouse_ru
    @den_crane #64796 06:18 PM, 06 Sep 2018
    Тогда вам этот MV не нужен. Вот если строк будет раз в 1000 меньше.
  • https://t.me/clickhouse_ru
    @notmaxx ↶ Reply to #64796 #64797 06:19 PM, 06 Sep 2018
    понятно, спасибо
  • 07 September 2018 (129 messages)
  • https://t.me/clickhouse_ru
    @notmaxx #64798 04:56 AM, 07 Sep 2018
    Доброе утро, как максимально быстро вытянуть, например, 10 000 000 записей каждая по 1кб из кликхауса? я посмотрел - capnproto на чтение не поддерживается, а go клиент kshvakov/clickhouse вроде как не поддерживает сжатие. В принципе, наверное, достаточно их читать в режиме стрима отсортированными, так что только TTFB будет критично. То есть получается нужен клиент, который умеет отдавать записи стримом, желательно на go
  • @160254922 #64799 05:04 AM, 07 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #64798 #64800 06:19 AM, 07 Sep 2018
    Go клиент (через database/sql) очень медленный на чтение, все нет времени переписать чтоб можно было напрямую использовать без стандартной библиотеки. На данный момент самое быстрое это читать через clickhouse-client или взять https://github.com/kshvakov/clickhouse/tree/master/lib и написать свое решение для чтения
  • https://t.me/clickhouse_ru
    @metikovvadim #64801 06:22 AM, 07 Sep 2018
    Кто-то сталкивался с тем что на одинковой нагрузке и почти одинаковых железках в реплике, чтение с одной утилизирует 10-20% вычислительных мощностей а со второй - 150-200%
  • https://t.me/clickhouse_ru
    @metikovvadim #64802 06:23 AM, 07 Sep 2018
    даже вставку оставил только на 1й, вторая только реплику получает
  • https://t.me/clickhouse_ru
    GitHub - valyala/chclient: Fast http client for SELECT queries in clickhouse

    Fast http client for SELECT queries in clickhouse. Contribute to valyala/chclient development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @nvartolomei #64804 06:28 AM, 07 Sep 2018
    Сам не пользовался, но коллеги говорят что самый быстрый.
  • https://t.me/clickhouse_ru
    @notmaxx #64805 06:44 AM, 07 Sep 2018
    Спасибо, буду смотреть
  • https://t.me/clickhouse_ru
    @Mokhnachevsky #64806 07:01 AM, 07 Sep 2018
    ребята, а у MATERIALIZED VIEW могут быть свои индивидуальные настройки по блокам?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #64806 #64807 07:06 AM, 07 Sep 2018
    Да
  • https://t.me/clickhouse_ru
    @NickBlade #64808 07:07 AM, 07 Sep 2018
    Добрый день. Скажите, для MATERIALIZED VIEW потребовалось изменить схему и группировку, alter table естественно не сработает. Какие есть способы для решения этой задачи, если view уже крутится в проде ?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #64808 #64809 07:13 AM, 07 Sep 2018
    DETACH/ATTACH MATERIALIZED VIEW your_mv AS SELECT или лучше сразу создавать МШУЦ на существующую таблицу как CREATE MV TO чтоб можно было спокойно дропать и создавать
  • Думаю, вполне можно использовать такую MV, если в ней будет крутиться достаточно тяжёлая логика вроде разбора длинных строк по регулярным выражениям.
  • @interlace #64811 07:15 AM, 07 Sep 2018
    А может будет проще просто добавить новые MATERIALIZED столбцы в исходную таблицу
  • https://t.me/clickhouse_ru
    С этого места поподробнее?
  • https://t.me/clickhouse_ru
    @NickBlade #64813 07:18 AM, 07 Sep 2018
    там же не только новые столбцы, но и группировка меняется
  • Ок, тогда вариант с исходной таблицей отбрасываем
  • https://t.me/clickhouse_ru
    @NickBlade #64815 07:33 AM, 07 Sep 2018
    Понимаете в чем проблема. У нас данные из базовой таблицы будут удаляться. Т.е. будем оставлять данные там за несколько месяцев. И при таком раскладе (с новой вьюхой и удалением старой), мы потеряем старые данные
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #64815 #64816 07:37 AM, 07 Sep 2018
    Под въюхой лежит обычная таблица, создайте таблицу с нужной вам структурой и сделайте на нее CREATE MATERIALIZED VIEW MV TO new_table и можно будет обновлять новое въю без удаления таблицы и прочих танцев с бубном, а данные просто перелейте
  • https://t.me/clickhouse_ru
    @leidruid #64817 08:26 AM, 07 Sep 2018
    Товарищи, а такое вообще законно?
    2018.08.27 15:41:11.969067 [ 11 ] <Error> void DB::BackgroundProcessingPool::threadFunction(): Code: 84, e.displayText() = DB::Exception: Directory /.1/clickhouse/data/db/archive/tmp_merge_20180827_20180827_1850553031_1850553061_6/ already exists, e.what() = DB::Exception, Stack trace:
  • https://t.me/clickhouse_ru
    @leidruid #64818 08:26 AM, 07 Sep 2018
    В такие моменты пропадает часть данных
  • https://t.me/clickhouse_ru
    @konstantin_ptr #64819 09:06 AM, 07 Sep 2018
    query="INSERT INTO tbl_name FORMAT Values ('2018.09.07 11:58:30','')"
    client.execute(query)
  • https://t.me/clickhouse_ru
    @konstantin_ptr #64820 09:06 AM, 07 Sep 2018
    подскажите почему выполняется без ответа?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #64817 #64821 09:09 AM, 07 Sep 2018
    А версия у вас какая? Есть пример для воспроизведения (конфиг сервера/структура)? Вообще странно выглядит.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #64819 #64822 09:11 AM, 07 Sep 2018
    Может так query="INSERT INTO tbl_name Values ('2018.09.07 11:58:30')" ? Запрос не выглядит валидным.
  • https://t.me/clickhouse_ru
    @konstantin_ptr #64823 09:11 AM, 07 Sep 2018
    на счет валидности, если напрямую отпраивть через tabix то проходит
  • https://t.me/clickhouse_ru
    @leidruid ↶ Reply to #64821 #64824 09:12 AM, 07 Sep 2018
    1.1.54388
  • https://t.me/clickhouse_ru
    @leidruid #64825 09:12 AM, 07 Sep 2018
    Такое проявляется, когда io в полочку
  • https://t.me/clickhouse_ru
    @konstantin_ptr #64826 09:13 AM, 07 Sep 2018
    print(str(client.execute("SHOW TABLES")) работает
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #64825 #64827 09:13 AM, 07 Sep 2018
    На GitHub issue заведите
  • @alex5533 #64828 10:06 AM, 07 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @NightPandy #64829 12:25 PM, 07 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @NightPandy #64830 12:32 PM, 07 Sep 2018
    Всем привет, помогите разобраться с проблемой:
    есть таблица
    CREATE TABLE ws_statistic_test.internal_analytics (
    server_id UInt32,
    event_date Date DEFAULT toDate('1970-01-01'),
    event_time DateTime,
    account_id UInt32,
    hero_id UInt32,
    hero_level UInt32,
    hero_class UInt32,
    event_id UInt32,
    param_1 UInt32,
    param_2 UInt32,
    param_3 UInt32
    ) ENGINE = ReplicatedMergeTree(
    '/clickhouse/tables/internal_analytics_test',
    '2',
    event_date,
    (server_id, event_date),
    8192
    )

    при отправке запроса
    insert into ws_statistic_test.internal_analytics (server_id, event_date, event_time) values (5, toDate('2018-01-01'), toDateTime('2018-01-01 00:00:00'))

    в базу записываются данные

    если повторить точно такой же запрос, то возвращается ответ 200, но данные в базу не пишутся

    с чем связано такое поведение?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #64830 #64831 12:35 PM, 07 Sep 2018
    Дедупликация
  • https://t.me/clickhouse_ru
    @NightPandy #64832 12:37 PM, 07 Sep 2018
    Спасибо
  • @solresl #64833 12:48 PM, 07 Sep 2018
    Может кто подсказать как правильно натсроить CH, если есть 3 хоста, на каждом из них должен быть шард и реплика одного из других шардов?
  • https://t.me/clickhouse_ru
    Circular Replication Cluster Topology in ClickHouse

    In some cases, there is a need to configure a distributed cluster with replication but there are not enough servers in order to place every replica on a separate node. It is better to have multiple replicas at the same nodes configured in a special way, that allows to continue executing queries even in the case of a node failure. Such replication configuration can be found in different distributed systems, it is often referred to as ‘circular’ or ‘ring’ replication. In this article, we will discuss how to set up circular replication in ClickHouse.

  • @solresl #64835 12:49 PM, 07 Sep 2018
    Мм уверены что работает?

    Там критичен момент, что в конфиге указывается для shard: <default_database>testcluster_shard_1</default_database>

    Но Ch ругается, что не понимает параметра.
  • https://t.me/clickhouse_ru
    @ivor06 #64836 12:51 PM, 07 Sep 2018
    Делали без default_database; на репликацию не влияет
  • @solresl ↶ Reply to #64836 #64837 12:54 PM, 07 Sep 2018
    также создавали разные базы под шарды?
  • https://t.me/clickhouse_ru
    @ivor06 #64838 12:56 PM, 07 Sep 2018
    Нет, база одна, по две таблицы на шард. В первой - данные этого шарда; во второй - данные соседнего

    В итоге от этой схемы отказались
  • @solresl ↶ Reply to #64838 #64839 01:00 PM, 07 Sep 2018
    А как тогда реплицируете? Или же есть резервные ноды?
  • https://t.me/clickhouse_ru
    @ivor06 #64840 01:04 PM, 07 Sep 2018
    Во второй таблице каждого шарда указывали путь в Зукипере к первой таблицы соседнего шарда
  • @solresl #64841 01:08 PM, 07 Sep 2018
    не понял, чем это отличается от схемы в статье: две таблицы на шард, путь указывается в zookeeper.
  • https://t.me/clickhouse_ru
    @vse_chetk0 #64842 01:12 PM, 07 Sep 2018
    Есть ли возможность, при группировке вместо аггрегации, создать массив в который положить значения ?
  • https://t.me/clickhouse_ru
    groupArray
  • https://t.me/clickhouse_ru
    спасибо
  • https://t.me/clickhouse_ru
    @frystile #64845 02:15 PM, 07 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @MaksymHryhoriev #64846 02:39 PM, 07 Sep 2018
    Всем привет, можно ли такое сделать посредством только КХ или надо выгружать данные и городить мап-редьюс. Есть общая таблица в ней есть имя события, ид, время. Данные к примеру такие:
    #1, 12345, время1
    #2, 12345, время2
    #2, 12345, время3
    #1, 12345, время 4
    #1, 12345, время 5
    #2, 12345, время 6

    И хочется посчитать средне время между событием 1 и событием 2
  • https://t.me/clickhouse_ru
    @MaksymHryhoriev #64847 02:40 PM, 07 Sep 2018
    Те надо посчитать время1-время2, время1-время3 и время4-время6
  • https://t.me/clickhouse_ru
    @wawaka #64848 02:40 PM, 07 Sep 2018
    есть какая-то функция, которая по времени дельту считает между строк
  • https://t.me/clickhouse_ru
    Попробуйте runningDifference
  • https://t.me/clickhouse_ru
    @MaksymHryhoriev #64850 02:42 PM, 07 Sep 2018
    Проблема как понять что подавать на вход для подсчёта времени. Те время6 надо считать для времени 4 а не для 1 или 5
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #64851 02:43 PM, 07 Sep 2018
    Так отсортируйте по дате и этому номеру
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #64852 02:43 PM, 07 Sep 2018
    В подзапросе. а в самом запросе примените runningDifference
  • https://t.me/clickhouse_ru
    @Imaskar ↶ Reply to #64847 #64853 02:43 PM, 07 Sep 2018
    Почему 4-6, а не 5-6?
    И почему от меньшего большее отнимаете?
  • https://t.me/clickhouse_ru
    Криво написал, а так да надо от большего меньшее отнимать
  • https://t.me/clickhouse_ru
    @Imaskar #64855 02:44 PM, 07 Sep 2018
    Если бы сделали функцию lag, то на её основе решалось бы.
  • https://t.me/clickhouse_ru
    @MaksymHryhoriev #64856 02:45 PM, 07 Sep 2018
    4 а не 5 ТК было событие которое никто не увидел, потом пришло 5 и только потом увидели уже сразу два события. В таком случае считать надо от самого старого времени
  • https://t.me/clickhouse_ru
    @leidruid #64857 02:45 PM, 07 Sep 2018
    Товарищи, в логах есть вот такой еррор
    executeQuery: Code: 164, e.displayText() = DB::Exception: Cannot execute query in readonly mode, e.what() = DB::Exception
  • https://t.me/clickhouse_ru
    @leidruid #64858 02:45 PM, 07 Sep 2018
    при этом таблицы такой (как указана дальше) и в помине нет
  • https://t.me/clickhouse_ru
    @leidruid #64859 02:45 PM, 07 Sep 2018
    Это нормально ?
  • https://t.me/clickhouse_ru
    @leidruid #64861 02:45 PM, 07 Sep 2018
    или что-то недочищено ?
  • https://t.me/clickhouse_ru
    Так номеров куча. Есть миллионы событий как #1 так и #2 и надо получить среднее время реагирования на событие тип 1. Реакция это событие тип 2
  • https://t.me/clickhouse_ru
    На основании ваших данных приведите какой результат ожидаете
  • https://t.me/clickhouse_ru
    @MaksymHryhoriev #64864 02:54 PM, 07 Sep 2018
    Берём данные у который совпадают ид ,в моем случае это 12345. И надо взять по очереди событие 1 найти все события 2 пока не встретится опять событие 1. И посчитать время реакции. И так для всех данных за день. Потом вернуть среднее время реакции
  • https://t.me/clickhouse_ru
    @MaksymHryhoriev #64865 02:56 PM, 07 Sep 2018
    Для моего примера это в2-в1, в3-в1 и в6-в4.
  • https://t.me/clickhouse_ru
    @MaksymHryhoriev #64866 02:56 PM, 07 Sep 2018
    Событие 2 идёт от разных пользователей поэтому их может быть много и время считаем для каждого
  • https://t.me/clickhouse_ru
    @Imaskar ↶ Reply to #64856 #64867 02:59 PM, 07 Sep 2018
    А 5 выкидывать?
  • https://t.me/clickhouse_ru
    ТК его увидят вместе с 4, но можно и оставить. Этот вопрос пока ещё обсуждается.
  • https://t.me/clickhouse_ru
    @Imaskar ↶ Reply to #64864 #64869 03:05 PM, 07 Sep 2018
    Вам намного лучше будет привязывать реакцию к источнику в данных. Иначе как только увеличится запаздывания станет абсолютно непонятно, где на что отреагировали.
  • https://t.me/clickhouse_ru
    @MaksymHryhoriev #64870 03:06 PM, 07 Sep 2018
    Так есть ид, которое связывает события.
  • https://t.me/clickhouse_ru
    @MaksymHryhoriev #64871 03:07 PM, 07 Sep 2018
    Ну и то что будет много данных тип 1 а потом одно событие 2 то такая работа приложения.
  • https://t.me/clickhouse_ru
    @MaksymHryhoriev #64872 03:08 PM, 07 Sep 2018
    С этим ничего не поделать.
  • @IPrvz #64873 03:50 PM, 07 Sep 2018
    Подскажите, пожалуйста. У меня есть список событий с датой их создания. Некоторые события имеют общий айди. Мне необходимо получить самые "свежие" события по данному айди. Каким образом это можно сделать?
  • https://t.me/clickhouse_ru
    @orantius #64874 03:54 PM, 07 Sep 2018
    group by id argmax(x, date)
  • @IPrvz ↶ Reply to #64874 #64875 04:05 PM, 07 Sep 2018
    Благодарю
  • https://t.me/clickhouse_ru
    @konstantin_ptr #64876 04:25 PM, 07 Sep 2018
    Кто нибудь использовал пакет clickhouse-driver?
    При вставке в поле типа Datetime пакет ругается что у объекта str нет tzinfo.
    Timestamp тоже не глотает
  • @220872458 #64877 05:10 PM, 07 Sep 2018
    Подскажите, пожалуйста, ещё ничего не знаю про CH, только в процессе развертывания системы под ubuntu, раньше пользовался GA в связке с Analytics Edge. Вопрос такой: как известно, в GA выборка по срезу нескольких измерений (пол, возраст, устройство) может уменьшаться по мере наличия значений в этих изменениях (проще говоря, при срезе 2 или больше измерений, отсутствие данных в измерении приведет к исключению визита из выборки), как обстоят с этим дела в метрике и CH? Можно ли в принципе с помощью CH получить такую выборку по нескольким срезам (их может быть гораздо больше двух), при этом не сокращая ее при отсутствии данных (просто подставляя значение none)?
  • https://t.me/clickhouse_ru
    Всё очень сильно зависит от ваших данных, запросов и от того, какую схему вы сделаете
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #64879 05:12 PM, 07 Sep 2018
    Так что только заливать как есть, пробовать, экспериментироватт
  • @220872458 #64880 05:14 PM, 07 Sep 2018
    Ух, это создаёт ещё кучу вопросов) какая зависимость от данных и запросов? Если есть куда направить почитать - такой вариант только приветствуется. Схема, на которой GA вместе с Edge провалились, пол-возраст-устройство-город
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #64881 05:34 PM, 07 Sep 2018
    На сайте КХ, в документации, есть примеры с бенчмарками. Посмотрите как там заливаются данные, сделайте по аналогии. Потом попробуйте повторить ваши запросы на диалекте КХ
  • Спасибо
  • https://t.me/clickhouse_ru
    питонячий дейттайм он хочет
  • https://t.me/clickhouse_ru
    @IlyaQwer #64884 07:14 PM, 07 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @undiabler #64885 07:20 PM, 07 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @MaksymHryhoriev #64886 07:42 PM, 07 Sep 2018
    Не в курсе есть ли пример high order function на несколько действий. А то не понятно можно ли сложную логику туда запихнуть на несколько строчек?
  • https://t.me/clickhouse_ru
    Несколько действий это как?
  • https://t.me/clickhouse_ru
    Это к примеру в arrayMap(x -> {var y = indexOf(anotherarr, x); var z = x > 10? 5: 9; return x*z-y}, arr)
  • https://t.me/clickhouse_ru
    @MaksymHryhoriev #64889 08:07 PM, 07 Sep 2018
    Типа так
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #64890 08:08 PM, 07 Sep 2018
    Они не так работают
    https://github.com/yandex/ClickHouse/search?l=SQL&q=array
    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
    @MaksymHryhoriev #64891 08:08 PM, 07 Sep 2018
    Те хочется какой то код писать. А то пока работает только одна операция arrayMap(x -> x+10, arr)
  • https://t.me/clickhouse_ru
    Ну да там только одна операция везде
  • https://t.me/clickhouse_ru
    @Shegloff #64893 08:10 PM, 07 Sep 2018
    Можно хоть десять
  • https://t.me/clickhouse_ru
    @Shegloff #64894 08:11 PM, 07 Sep 2018
    Внутри
  • https://t.me/clickhouse_ru
    А как
  • https://t.me/clickhouse_ru
    @Shegloff #64896 08:12 PM, 07 Sep 2018
    has(arrayMap(x -> toUInt16(replaceRegexpAll(x, '1#', '')), arrayFilter(x -> (x = '1#5'), arr_segments)), 5) as segment5
  • https://t.me/clickhouse_ru
    @Shegloff #64897 08:12 PM, 07 Sep 2018
    ну типа такого
  • https://t.me/clickhouse_ru
    @MaksymHryhoriev #64898 08:13 PM, 07 Sep 2018
    Ага, те разделитель запятая
  • https://t.me/clickhouse_ru
    @Shegloff #64899 08:14 PM, 07 Sep 2018
    arrayMap(x -> x+10, arr) - вот тут вместо arr может вообще любое выражение, главное чтоб массив возвращало
  • https://t.me/clickhouse_ru
    Мне надо чтобы внутри где х+10 было много выпажений
  • https://t.me/clickhouse_ru
    Это не совсем то. Тк тело функции одна операция
  • https://t.me/clickhouse_ru
    @MaksymHryhoriev #64902 08:15 PM, 07 Sep 2018
    Просто цепочка вызовов куда передается массив и операция и опять массив и операция
  • https://t.me/clickhouse_ru
    @MaksymHryhoriev #64903 08:15 PM, 07 Sep 2018
    Я же хожу операцию как сложную функцию
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #64900 #64904 08:18 PM, 07 Sep 2018
    select arrayMap(x -> indexOf([5,4,3,2,1],x) + 10, [1,2,3,4,5,6,7]) а так
  • https://t.me/clickhouse_ru
    @MaksymHryhoriev #64905 08:20 PM, 07 Sep 2018
    Надо это чтобы как то получить из двух массивов один.
    Есть [10, 20, 30] и [9,11,12,24,44] хочу их преобразовать чтобы получить пары массив1 + все числа массива 2 больше чем какой то Элемент массив 1 но меньше чем след элемент массив 2. Те результат примера [10,11 ] (10,12) (20,24) (30,44)
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #64888 #64906 08:21 PM, 07 Sep 2018
    select arrayMap(x -> x * (if(x > 10, 5,9) - indexOf([5,4,3,2,1],x)), [1,2,3,4,5,6,7])
  • https://t.me/clickhouse_ru
    Оно все равно получается что одна операция. Те мне чтобы переменные внутри использовать и сохранять некий результат
  • https://t.me/clickhouse_ru
    @MaksymHryhoriev #64908 08:22 PM, 07 Sep 2018
    Все ваши примеры это грубо говоря одна длинная операция. А можно ли как то чтобы переменные ещё использовать
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #64908 #64909 08:25 PM, 07 Sep 2018
    а где так можно делать?
  • https://t.me/clickhouse_ru
    @Shegloff #64910 08:25 PM, 07 Sep 2018
    в какой бд
  • https://t.me/clickhouse_ru
    @MaksymHryhoriev #64911 08:29 PM, 07 Sep 2018
    Я не говорю что где то можно. Но если есть high order function я уточнял можно ли
  • https://t.me/clickhouse_ru
    @MaksymHryhoriev #64912 08:29 PM, 07 Sep 2018
    В тарантул на Луа можно что то писать :)
  • https://t.me/clickhouse_ru
    @Shegloff #64913 08:29 PM, 07 Sep 2018
    здесь просто SQL
  • https://t.me/clickhouse_ru
    @Shegloff #64914 08:30 PM, 07 Sep 2018
    99% есть в доке
  • https://t.me/clickhouse_ru
    Да, но насчёт этого вопроса какая то неопределенность. Те можно сделать цепочку вызовов и все ок, а если разбить на куски с сохранением в переменную то уже получается нельзя.
  • https://t.me/clickhouse_ru
    @MaksymHryhoriev #64916 08:31 PM, 07 Sep 2018
    Поэтому и пришел уточнить можно или нет
  • https://t.me/clickhouse_ru
    @orantius #64917 08:34 PM, 07 Sep 2018
    если вам хочется привычный императивный синтаксис, то его нет, если вам нужно выполнить какое-то выражение с временными результатами, то возможно их можно просто заинлайнить в места использования.
  • https://t.me/clickhouse_ru
    Мне день тянуть данные на клиент и там делать мап-редьюс. Хотел все переложить на КХ :)
  • https://t.me/clickhouse_ru
    @MaksymHryhoriev #64919 08:35 PM, 07 Sep 2018
    День - лень
  • https://t.me/clickhouse_ru
    @QuietFelix #64920 08:38 PM, 07 Sep 2018
    Да и "день" норм был.
  • https://t.me/clickhouse_ru
    Это будет мое удивление на следующем шаге :)
  • https://t.me/clickhouse_ru
    @MaksymHryhoriev #64922 08:54 PM, 07 Sep 2018
    А такой вопрос.есть число 15
    И массив 5, 6,10,20,30 можно ли получить число 10. Те надо найти наибольший элемент который меньше искомого числа
  • https://t.me/clickhouse_ru
    Можно - делаем arrayFilter и берём последний элемент
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #64922 #64924 09:00 PM, 07 Sep 2018
    :) select max(arrayJoin(arrayFilter(x -> x < 15, [5, 6,10,20,30]))) as res

    SELECT max(arrayJoin(arrayFilter(x -> (x < 15), [5, 6, 10, 20, 30]))) AS res

    ┌─res─┐
    │ 10 │
    └─────┘
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #64923 #64925 09:02 PM, 07 Sep 2018
    в таком массиве [10, 6, 1, 20, 30] не прокатит
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #64923 #64926 09:04 PM, 07 Sep 2018
    с сортировкой прокатит
    :) select arraySort((arrayFilter(x -> x < 15, [5, 6,10,20,30])))[-1] as res

    SELECT arraySort(arrayFilter(x -> (x < 15), [5, 6, 10, 20, 30]))[-1] AS res

    ┌─res─┐
    │ 10 │
    └─────┘
  • https://t.me/clickhouse_ru
    Да у меня массив уже отсортированый
  • 08 September 2018 (30 messages)
  • @faerics ↶ Reply to #64900 #64928 06:59 AM, 08 Sep 2018
    Вместо x+10 можно написать f(x)
    И цепочку вызовов подставить.
  • https://t.me/clickhouse_ru
    А как кастомную функцию писать?
  • @faerics #64930 07:39 AM, 08 Sep 2018
    Кастомная функция -- это не кусок кода, а именно цепочка вызовов встроенных ф-й
  • @molchanovdp #64931 08:28 AM, 08 Sep 2018
    Коллеги, доброе утро!
    Подскажите, как решить такую проблему?
    <Error> Application: DB::Exception: Cannot create table from metadata file /var/lib/clickhouse/metadata/asoup//SPL3314_REP.sql, error: ZooKeeperImpl::Exception: Can't get data for node /clickhouse/tables/01/SPL3314_REP/metadata: node doesn't exist (No node)
    Кликхаус не стартует
  • https://t.me/clickhouse_ru
    Aaaa :)
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #64931 #64933 09:11 AM, 08 Sep 2018
    Перенести метаданные и данные в другое место, стартануть КХ, перенести данные в detached новой таблицы и сделать attach для всех партиций.
  • @molchanovdp #64934 09:12 AM, 08 Sep 2018
    Кажется у меня в зукипере все данные потерялись, это очень плохо?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #64934 #64935 09:13 AM, 08 Sep 2018
    Нет, данные из-за этого не потеряются, но нужно будет аккуратно их переместить из /var/lib/clickhouse/data, создать таблицы заново, и приатачить партиции
  • https://t.me/clickhouse_ru
    @kshvakov #64936 09:15 AM, 08 Sep 2018
    Документация ClickHouse | Документация ClickHouse

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

  • @molchanovdp #64937 09:15 AM, 08 Sep 2018
    Спасибо, Кирилл, буду пробовать
  • @pavel_maksimow #64938 01:33 PM, 08 Sep 2018
    Подскажите, что означает ошибка

    cannot write to ostream at offset ?
  • https://t.me/clickhouse_ru
    @azubarev ↶ Reply to #64938 #64939 02:18 PM, 08 Sep 2018
    Раз никто не отвечает, попробую я :)
    У вас слуйчано место на диске (df) и inode (df -i) не закончились?
  • @183090369 #64940 04:07 PM, 08 Sep 2018
    Здравствуйте. Подскажи, кто-нибудь имеет опыт миграции с одного кластера ZooKeeper на другой и как это можно сделать, чтобы не потерять данные? Рассматриваю вариант с вводом новых участников кластера и вывода старых после синхронизации.
  • загуглил что это такое, вот результат, место есть
  • У меня 2 шарда по 2 реплики. Начал с первой ноды кликхауса, переместил данные и метаданные в другой каталог. Создал replicated таблицу, скипировал данные в папку detached этой таблицы. Пытаюсь выполнить ALTER TABLE {table_name} ATTACH PARTITION . Ругается на неверный синтаксис.

    Если пишу запрос вида ALTER TABLE {table_name} ATTACH PARTITION 201801 то, выполняется, но данные в таблицу не приходят

    Подскажите, куда посмотреть?
  • https://t.me/clickhouse_ru
    @stufently #64943 04:43 PM, 08 Sep 2018
    первый синтаксис не верный
  • https://t.me/clickhouse_ru
    @stufently #64944 04:43 PM, 08 Sep 2018
    данные надо было бы через детач отсоединить
  • https://t.me/clickhouse_ru
    @stufently #64945 04:43 PM, 08 Sep 2018
    ну и тупо посмотреть переместились ли данные из папки детач
  • @molchanovdp #64946 04:47 PM, 08 Sep 2018
    у меня данные в зукипере потерялись, пришлось заново создавать таблицу, не было возможности сделать detach, кликхаус не запускался
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #64942 #64947 04:59 PM, 08 Sep 2018
    А как папки называются? Может нет партиции 201801?
  • @molchanovdp #64949 05:01 PM, 08 Sep 2018
    20180129 пробовал
  • https://t.me/clickhouse_ru
    @stufently #64950 05:07 PM, 08 Sep 2018
    ну видно что аттач не прошел
  • @molchanovdp #64951 05:07 PM, 08 Sep 2018
    да, а как можно понять причину? в лог ничего не пишется в момент выполнения аттача
  • @molchanovdp #64952 05:15 PM, 08 Sep 2018
    о, вот в таком формате получилось приаттачить данные
    ALTER TABLE {table_name} ATTACH PART '20180129_0_53_5'
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #64948 #64953 05:48 PM, 08 Sep 2018
    У вас партиционирование по дате, значит названия партиции должно было быть '2018-01-29'
  • @molchanovdp #64954 05:49 PM, 08 Sep 2018
    у меня вот так PARTITION BY toMonday(toDateTime(ts))
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #64954 #64955 05:51 PM, 08 Sep 2018
    Я и говорю, у вас кастомный ключ партиционирования по дате, если сейчас посмотрите в system.parts то увидите как строятся в этом случае имена партиций
  • @molchanovdp #64956 05:54 PM, 08 Sep 2018
    ага, понял, спасибо
  • https://t.me/clickhouse_ru
    @nikolaenko_nikita #64957 11:51 PM, 08 Sep 2018
    Joined.
  • 09 September 2018 (1 messages)
  • @zaharinea #64958 03:12 PM, 09 Sep 2018
    Joined.
  • 10 September 2018 (122 messages)
  • @mfilimonov #64959 07:25 AM, 10 Sep 2018
    Может быть кто-то знает как заставить КХ "забыть" о словаре без растарта? Удаление файла с конфигурацией не помогает...
  • @mfilimonov #64960 07:26 AM, 10 Sep 2018
    SYSTEM RELOAD DICTIONARIES - тоже.
  • @lnpj12 ↶ Reply to #64959 #64961 07:27 AM, 10 Sep 2018
    Drop table?
  • @mfilimonov #64962 07:31 AM, 10 Sep 2018
    Вот с DROP TABLE все и началось... :) Был нужен временный словарь, быстренько запилил таблицу с данными (внутри КХ) и конфиг словаря. Потом словарь перестал быть нужен, таблицу и конфиг словаря удалил, а КХ теперь каждые пару сек пишет в error_log сообщение мол " Failed reloading '<удаленный словарь>' external dictionary: Code: 47, ". Рестартовать "по пустякам" не хочется т.к. КХ минут 5 стартует.
  • @pavlov_m #64963 07:41 AM, 10 Sep 2018
    Доброе утро. Как можно отменить мутацию на удаление? На обычной MergeTree. Допустил ошибку в запросе, она не проходит и не позволяет уже нормальному запросу работать
  • https://t.me/clickhouse_ru
    Мне приходилось руками удалять из Zoo и ребутать (возможно и без ребута сработает, но мне так было спокойней )
  • @pavlov_m ↶ Reply to #64964 #64965 07:45 AM, 10 Sep 2018
    Зукипера там нет. Так и планировал. Удалить файл с мутацией и ребутнуть
  • @pavlov_m #64966 07:45 AM, 10 Sep 2018
    Спасибо
  • @ztlpn #64967 07:45 AM, 10 Sep 2018
    Сделайте DETACH TABLE <table>, найдите в data-директории таблицы ( /var/lib/clickhouse/data/<database>/<table>/ ) файл с мутацией ( mutation_*.txt ), удалите его и приаттачте таблицу обратно ATTACH TABLE <table>
  • @pavlov_m ↶ Reply to #64967 #64968 07:45 AM, 10 Sep 2018
    Спасибо!
  • https://t.me/clickhouse_ru
    У нас ещё версия, которая умеет мутации только для replicated)
  • @ztlpn #64970 07:46 AM, 10 Sep 2018
    Надо будет сделать запрос KILL MUTATION для таких случаев :)
  • ALTER MUTATION :D
  • Задавал этот вопрос на последней конференции, говорили, что надо бы сделать такой механизм :)
  • @ztlpn #64973 07:54 AM, 10 Sep 2018
    Ага, это я и говорил
  • Я помню :)
  • https://t.me/clickhouse_ru
    Я в таком случае создаю словарь, который фиксит ошибку, типа смотрит на пустой файл или select where 1=0. Чтобы хотя бы ошибок не было в логах и системах мониторинга.
  • https://t.me/clickhouse_ru
    @swiss_knife #64976 11:39 AM, 10 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @swiss_knife #64977 11:39 AM, 10 Sep 2018
    Clickhouse одну merge_tree таблицу распределил на 548827 файлов.
    Количество столбцов - 11, строк - 10 000, вес таблицы - 1.26 мб.
    Merge_tree таблица создавалась с параметрами по умолчанию, описанными в официальной документации.
    Файловая система дирректории Clickhouse - 'ext4'(LINUX)

    Насколько нормально такое поведение Clickhouse?
    Возможно ли ограничить или сократить количество создаваемыех файлов на одну таблицу; если да, то чего это нам будет стоить?
  • https://t.me/clickhouse_ru
    @Imaskar #64978 11:40 AM, 10 Sep 2018
    у вас с выбором индекса партиционирования что-то не то. гранулярность большая получилась
  • Может быть вы каждую строку вставляли отдельным инсертом?
  • Это не нормально, скорее всего вы что-то сделали неверно. Если сделать всё верно то все ваши данные должны лежать примерно в 30 файлах.
  • @medov_alexey #64981 11:53 AM, 10 Sep 2018
    Joined.
  • @medov_alexey #64982 11:54 AM, 10 Sep 2018
    Кто-нибудь сталкивался с подобной ошибкой ? не могу понять в чем дело, в консоли запрос работает
  • https://t.me/clickhouse_ru
    Возможно, данные грузятся через ETL инструмет, коннектится он к CH через JDBC драйвер.
    Количество строк в блоке инсерта, честно говоря, мне неизвестно, нужно будет покопаться, найти.
    Благодарю за интересное предположение. Возможно ETL и инсертит каждую строку отдельно.
  • Ну и второй вопрос какое используется партиционирование данных? Если каждая строка попала в одтельную партицию - то тоже будет очень много файлов.
  • https://t.me/clickhouse_ru
    Пробовали играться с параметрами таблицы(гранулярность, партиции, order by, sample)- не помогло, количество файлов все равно в районе полумиллиона. Та же самая таблица на движке Log занимает 24 файла.
  • https://t.me/clickhouse_ru
    @Imaskar #64986 11:58 AM, 10 Sep 2018
    даже если инсёрты отдельные (а что, КХ уже умеет вставку одной строки? раньше вроде нельзя было, только батчи), то мерджи потом объединят их. тут же, видимо, данные распределились и остались. заметьте, что там файлов больше, чем строк*колонок. даже хз, откуда такая амплификация. либо что-то недоговаривают о ситуации
  • https://t.me/clickhouse_ru
    @Imaskar #64987 11:59 AM, 10 Sep 2018
    напишите структуру таблицы, запрос создания какой?
  • https://t.me/clickhouse_ru
    А какой ETL если не секрет? Используем Pentaho, проблема очень просто решается
  • https://t.me/clickhouse_ru
    @swiss_knife #64989 12:06 PM, 10 Sep 2018
    Pentaho
  • https://t.me/clickhouse_ru
    Могли бы поделиться решением?
  • https://t.me/clickhouse_ru
    Лучше в личку ибо не имеет отношения к клику
  • https://t.me/clickhouse_ru
    @nikolaykrylov #64992 12:21 PM, 10 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Sablast #64993 12:22 PM, 10 Sep 2018
    @blinkovivan а можно вот такое реализовать в ODBC? https://github.com/Microsoft/DataConnectors/blob/master/docs/odbc.md
  • https://t.me/clickhouse_ru
    @Sablast #64994 12:23 PM, 10 Sep 2018
    и еще почемуто шлюз Power BI не видит коннектор
  • https://t.me/clickhouse_ru
    @Sablast #64995 12:23 PM, 10 Sep 2018
    Сообщение о базовой ошибке: ODBC: ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
    DM_ErrorDetailNameCode_UnderlyingHResult: -2147467259
    Microsoft.Data.Mashup.ValueError.DataSourceKind: Odbc
    Microsoft.Data.Mashup.ValueError.DataSourcePath: dsn=clickhouse_ansi
    Microsoft.Data.Mashup.ValueError.Reason: DataSource.Error
  • https://t.me/clickhouse_ru
    @baltazorbest #64996 12:24 PM, 10 Sep 2018
    Подскажите пожалуйста alter table для shard таблиц нужно делать для каждой ноды отдельно а потом сделать alter table on cluster для distibuted таблиц?
  • @ztlpn #64997 12:34 PM, 10 Sep 2018
    Если речь про добавить/удалить столбец, то нужно выполнить его для каждой таблицы с данными (или для одной реплики каждого шарда, если используется репликация), а потом выполнить тот же ALTER для каждой Distributed таблицы. Оба шага можно делать либо вручную, либо с помощью ON CLUSTER.
  • https://t.me/clickhouse_ru
    насколько я помню кто-то писал, что у него получалось из Power BI подключиться

    точно всё корректно сконфигурировано и используются самые свежие драйвера и clickhouse-server?
  • https://t.me/clickhouse_ru
    @Sablast ↶ Reply to #64998 #64999 12:36 PM, 10 Sep 2018
    само дектоп приложение нормально работает (особенно с последней версией драйвера), проблема в настройке обновлений через шлюз
  • https://t.me/clickhouse_ru
    то есть получается если у меня например 2 шарда с 2мя репликами, то нужно на каждой ноде выполнить alter table для таблицы _sharded после этого сделать alter table tablename on cluster…. для distibuted
  • @ztlpn #65001 12:37 PM, 10 Sep 2018
    Первый шаг тоже можно делать ON CLUSTER. У вас Replicated* таблички?
  • https://t.me/clickhouse_ru
    @baltazorbest #65002 12:39 PM, 10 Sep 2018
    да
  • https://t.me/clickhouse_ru
    @baltazorbest #65003 12:41 PM, 10 Sep 2018
    пробовал сделать вот так:
    alter table db.tablename_sharded on cluster cluster1 add column count UInt16 default 1 after column_name;
    получил в ответ:
    An error occured before execution: Code: 371, e.displayText() = DB::Exception: Table tablename_sharded is replicated, but shard #1 isn't replicated according to its cluster definition. Possibly <internal_replication>true</internal_replication> is forgotten in the cluster config., e.what() = DB::Exception
  • https://t.me/clickhouse_ru
    @baltazorbest #65004 12:41 PM, 10 Sep 2018
    у меня стоит: <internal_replication>false</internal_replication>
  • https://t.me/clickhouse_ru
    @baltazorbest #65005 12:42 PM, 10 Sep 2018
    это мой первый кластер по этому мог ошибится в конфигах 🙂
  • @ztlpn #65006 12:42 PM, 10 Sep 2018
    А почему? Если Replicated таблички, как раз должно быть true
  • https://t.me/clickhouse_ru
    @baltazorbest #65007 12:43 PM, 10 Sep 2018
    значит скоро будет true 🙂
  • https://t.me/clickhouse_ru
    @baltazorbest #65008 12:43 PM, 10 Sep 2018
    спасибо
  • https://t.me/clickhouse_ru
    @ifoton ↶ Reply to #64999 #65009 12:43 PM, 10 Sep 2018
    А шлюз в каком режиме запущен? Когда я это дело пробывал, было требование запускать его в персанал мод.
  • https://t.me/clickhouse_ru
    @Sablast ↶ Reply to #65009 #65010 12:46 PM, 10 Sep 2018
    enterprise, с другими источниками вроде нет проблем
  • https://t.me/clickhouse_ru
    @ifoton #65011 12:54 PM, 10 Sep 2018
    Посмотрел, да в июле добавили поддержку enterprise. А на десктопе что прям получилось врубить DirectQuery для клика?
  • На свежих ODBC такая ошибка возникает, когда в результате в полях есть NULL. ifnull-те значения в селекте, либо откатитесь на драйвер, зарелизиненный до августа
  • https://t.me/clickhouse_ru
    @kirichyk #65013 01:03 PM, 10 Sep 2018
    Joined.
  • Спасибо. Я только что обновил ClickHouse сервер до 18.10.3 и поставил вот этот драйвер
  • @medov_alexey #65016 01:04 PM, 10 Sep 2018
    Буду еще раз пытаться
  • @medov_alexey #65017 01:04 PM, 10 Sep 2018
    думабю поможет
  • @AntonVershinin #65018 01:04 PM, 10 Sep 2018
    Проблема появилась с августовских релизов
  • https://t.me/clickhouse_ru
    теперь появилась другая проблема, после того как сделал alter table db.tablename_sharded on cluster cluster1 add column…; все прошло хорошо, теперь пробую для distributed сделать:
    alter table db.tablename on cluster cluster1 add column…;
    и получаю:
    An error occured before execution: Code: 371, e.displayText() = DB::Exception: Table tablename isn't replicated, but shard #2 is replicated according to its cluster definition, e.what() = DB::Exception
  • https://t.me/clickhouse_ru
    @baltazorbest #65020 01:17 PM, 10 Sep 2018
    в чем может быть проблема?
  • @IPrvz #65021 01:25 PM, 10 Sep 2018
    Подскажите, кто как хранит время с таймзоной?
  • https://t.me/clickhouse_ru
    @orantius #65022 01:26 PM, 10 Sep 2018
    unix timestamp
  • @IPrvz ↶ Reply to #65022 #65023 01:27 PM, 10 Sep 2018
    Я так понимаю, это единственный приемлемый на текущий момент вариант? Строка однозначно хуже?
  • Если вам не нужна большая производительность на этом столбце - можно и в строке. Но обычно столбец активно используется.
  • @mfilimonov #65025 01:39 PM, 10 Sep 2018
    Мы просто храним 2 таймстампа. Один в "честной" UTC, другой - тоже в UTC, но там время со смещением клиента записано.
  • @mfilimonov #65026 01:40 PM, 10 Sep 2018
    Если одну из второй вычесть можно выяснить какое в тот момент времени было смещение таймзоны от UTC.
  • @mfilimonov #65027 01:41 PM, 10 Sep 2018
    При этом в "локальном" времени клиента время может идти неравномерно - например перескакивать при переводе часов на зимнее/летнее.
  • @mfilimonov #65028 01:42 PM, 10 Sep 2018
    При этом всякие функции работы со временем корректно работают на обоих полях
  • @mfilimonov #65029 01:45 PM, 10 Sep 2018
    Если вам не нужно хранить много разных таймзон - то вообще проблем нет никаких. Если много разных - то кроме того варианта который выше можно хранить в каждой строке смещение от UTC, и добавлять поправку "на лету". Можно не хранить, а держать эту поправку в словаре для каждого клиента.
  • @IPrvz #65030 01:45 PM, 10 Sep 2018
    Мне как раз и не нравится концепция двух таймстемпов и вычисления диффа. Поэтому и задаю вопрос)
  • @IPrvz ↶ Reply to #65029 #65031 01:46 PM, 10 Sep 2018
    У меня таймзон 10-15 по городам из словаря. Наверное проще для всех использовать нормализванное время (по зоне сервера) а смещение брать по городу
  • Если не нужно одновременно данные для разных таймзон обрабатывать - то можно просто в селект добавлять нужную таймзону.
  • @IPrvz ↶ Reply to #65032 #65033 01:47 PM, 10 Sep 2018
    Так к сожалениию не выдет. Выброка идет именно по срезу с большим кол-вом городов
  • @mfilimonov #65034 01:48 PM, 10 Sep 2018
    Тогда или два таймстампа или таймстами+смещение.
  • @mfilimonov #65035 01:48 PM, 10 Sep 2018
    Смещение можно в словаре
  • @IPrvz #65036 01:49 PM, 10 Sep 2018
    Я так понимаю, напрямую никак нельзя сериализовать/десериализовать java-объект в базу? Т.е. прогонять придется через собственный маппер?
  • @IPrvz #65037 01:50 PM, 10 Sep 2018
    @mfilimonov спасибо за ответ)
  • https://t.me/clickhouse_ru
    @den_crane #65038 01:51 PM, 10 Sep 2018
    А зачем нужно хранить время не в UTC? Я 20 лет занимаюсь только БД и никогда не мог понять зачем это надо?
  • https://t.me/clickhouse_ru
    @den_crane #65039 01:52 PM, 10 Sep 2018
    Это как если хранить температуру в 3 полях, в кельвинах, цельсиях и фаренгейтах, вот нафига?
  • У базы 100 клиентов из разных городов. Напишите запрос - в какое время (локальное) они охотнее всего делают инсерты :)
  • @mfilimonov #65041 01:53 PM, 10 Sep 2018
    Т.е. например в 17 часов 26 минут :)
  • @mfilimonov #65042 01:54 PM, 10 Sep 2018
    При этом эти "локальные" 17:26 могут случиться в 18:26 19:26 или даже 23:56 :)
  • @mfilimonov #65043 01:57 PM, 10 Sep 2018
    ну короче суточная активность с учетом локальных таймзон. Например на локальных суточных графиках оч. хорошо видно как "просыпаются" люди в одтельных тайзонах. Если же всё посчитать в UTC (когда разные таймзоны наложены друг на друга) - получается такая непонятная кардиограмма и не понятно кто и во сколько "проснулся" :)
  • https://t.me/clickhouse_ru
    @den_crane #65044 01:59 PM, 10 Sep 2018
    Т.е. из таймзоны вычисляется местоположение? Т.е. странно это, в чехии просыпаются в 5 утра, в тойже таймзоне в Росси в 7.
  • @IPrvz #65045 01:59 PM, 10 Sep 2018
    Т.е. по таймзоне можно получить релевантные данные относительно местоположения
  • @mfilimonov #65046 02:01 PM, 10 Sep 2018
    иногда это бывают даже совсем идиотские истории про "конец дня" который случается в разных городах в разное время.
  • @mfilimonov #65047 02:01 PM, 10 Sep 2018
    Ну вычислять местоположение по таймстампах - это немного другая история.
  • Обновил сервер ClickHouse и установил новый ODBC драйвер версии 2018-09-03 и все.
    Проблема ODBC: ERROR (Cannot interpret NULL as int64: invalid stoll argument" РЕШЕНА.
  • https://t.me/clickhouse_ru
    @den_crane #65049 02:02 PM, 10 Sep 2018
    Я вчера улицу перелшел, оказался в другой провинции и время сдвинулось на час, а в булочной на другой стороне не сдвинулось 🙁
  • @IPrvz ↶ Reply to #65044 #65050 02:03 PM, 10 Sep 2018
    Речь как раз и шла о том, чтобы хранить время в таймзоне сервера, но при выборке опираться на таймзону города и относительно ее вычислять смещение
  • Не сдвинулось. Но булочная была закрыта. Рановато :P
  • @mfilimonov #65052 02:03 PM, 10 Sep 2018
    Потому что она в другой таймзоне
  • @mfilimonov #65053 02:03 PM, 10 Sep 2018
    :)
  • @mfilimonov #65054 02:06 PM, 10 Sep 2018
    А теперь задача: напишите запрос сколько денег потеряла булочная сравнивая среднесуточную активность пользователей в булочных с суточной активностью пользователей в этой конкретной булочной. :) И как изменились бы её доходы если бы она открывалась на час раньше. Всё это с учетом информации о том что через дорогу живет в два раза больше людей в другом часовом поясе.
  • https://t.me/clickhouse_ru
    @den_crane #65055 02:46 PM, 10 Sep 2018
    т.е. у каждой булочной она своя система таймзон, я не понимаю как TZ и локальное время одной булочной применить к другой, т.е. мы поймем что для Чехии надо открываться в 5 и начинать печь булки в 3, проблема в том что для Росии это неверно,
    я согласен, для анализа это проще чем использовать UTC + (местоположение булочной и покупателя).
  • https://t.me/clickhouse_ru
    @Sablast #65056 03:30 PM, 10 Sep 2018
    подскажите, как корректно дропунть партиции на всех нодах для дистриб таблицы?
  • https://t.me/clickhouse_ru
    @Mike_Er #65057 03:33 PM, 10 Sep 2018
    alter table db.table_local on cluster clustername drop partition='partname' ?
  • https://t.me/clickhouse_ru
    @Sablast ↶ Reply to #65057 #65058 03:42 PM, 10 Sep 2018
    спасибо,
    Table table_rep is replicated, but shard #2 isn't replicated according to its cluster definition. Possibly <internal_replication>true</internal_replication> is forgotten in the cluster config.
    необходимо прописать internal_replication или на живом кластере это уже не прокатит?
  • https://t.me/clickhouse_ru
    @Mike_Er #65059 03:42 PM, 10 Sep 2018
    алтерить нужно mergetree таблицу, а не дистрибутед
  • https://t.me/clickhouse_ru
    @Mike_Er #65060 03:43 PM, 10 Sep 2018
    или у меня лыжи уже под конец вечера не едут
  • https://t.me/clickhouse_ru
    @Sablast ↶ Reply to #65059 #65061 03:43 PM, 10 Sep 2018
    а это и есть МТ таблица =(
  • https://t.me/clickhouse_ru
    @Sablast #65062 03:44 PM, 10 Sep 2018
    точнее ReplicatedMergeTree
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #65058 #65063 03:44 PM, 10 Sep 2018
    Можно прописать, а можно просто ручками на каждом шарде запустить
  • https://t.me/clickhouse_ru
    @Sablast ↶ Reply to #65063 #65064 03:44 PM, 10 Sep 2018
    вариант ручакми знаю, хотелось более ленивого)
  • https://t.me/clickhouse_ru
    @Mike_Er #65065 03:45 PM, 10 Sep 2018
    мы в тяжелых случаях ансиблом по всем хостам запрос прогоняем
  • https://t.me/clickhouse_ru
    @Sablast #65066 03:46 PM, 10 Sep 2018
    а возможности писать PARTITION like '....' не появилось еще? если за год дропать то 12 партицией на каждой ноде?)
  • https://t.me/clickhouse_ru
    @Mike_Er #65067 03:50 PM, 10 Sep 2018
    проще использовать delete по условию
  • https://t.me/clickhouse_ru
    Почитал по диагонали: звучит скорее как разработка плагина к Power BI на C#, от ODBC там только тот факт, что он в конечном счете будет использоваться для передачи данных...
  • https://t.me/clickhouse_ru
    @Sablast ↶ Reply to #65068 #65069 04:11 PM, 10 Sep 2018
    ага (глянул внимательнее)\, изначально сложилось впечатление что это спецификация драйвера должна быть какая то особая.
  • https://t.me/clickhouse_ru
    @Sablast #65070 04:12 PM, 10 Sep 2018
    осталось научиться и написать коннектор, штука была бы очень нужная)
  • https://t.me/clickhouse_ru
    @valyala ↶ Reply to #64485 #65071 05:14 PM, 10 Sep 2018
    Лучше использовать chproxy - https://github.com/Vertamedia/chproxy . Он лучше осведомлен о специфике запросов к clickhouse
  • @IPrvz #65072 05:25 PM, 10 Sep 2018
    А может кто-нибудь скинуть пример конфига словаря и внешний файл с источником данных?
  • https://t.me/clickhouse_ru
    @Sablast #65073 06:45 PM, 10 Sep 2018
    коллеги, если найдутся сочувствующие помогите запилить DirectQuery коннектор КХ для Power BI на основе: https://github.com/Microsoft/DataConnectors/tree/master/samples/ODBC/SqlODBC =)
  • https://t.me/clickhouse_ru
    @lipkinin #65074 06:57 PM, 10 Sep 2018
    Joined.
  • @molchanovdp #65075 07:22 PM, 10 Sep 2018
    Коллеги, добрый вечер!
    Одна нода кликхауса не стартует с ошибкой:

    <Error> Application: DB::Exception: Shard address 'detached' does not match to 'user[:password]@host:port#default_database' pattern

    Подскажите, куда смотреть?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #65075 #65076 07:50 PM, 10 Sep 2018
    Удалите detached из директории disributed таблицы, забавная ошибка
  • @molchanovdp #65077 07:53 PM, 10 Sep 2018
    Кирилл, спасибо. Снова выручили)
    Это последствия ручного восстановления данных)
  • Это на 18.10.3 или старее?
  • @mfilimonov #65079 08:24 PM, 10 Sep 2018
    Старее, не помню сейчас номер версии - с начала лета.
  • Я сейчас готовлю changelog, там как раз есть пункт по этому поводу.
  • 11 September 2018 (184 messages)
  • https://t.me/clickhouse_ru
    @voldemarkorenev #65081 07:19 AM, 11 Sep 2018
    Какие кто использует способы для изменения формата даты при выгрузке, например, в тот же csv. Например, если надо вывести дату в файл в формате DD.MM.YYYY HH24:MI:SS
  • https://t.me/clickhouse_ru
    @visavi #65082 07:35 AM, 11 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @visavi #65083 07:38 AM, 11 Sep 2018
    Здравствуйте, подскажите пожалуйста, выполняю команду
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv E0C56BD4 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv E0C56BD4

    выводит ошибку
    Executing: /tmp/apt-key-gpghome.Xrk7HSuSwb/gpg.1.sh —keyserver keyserver.ubuntu.com —recv E0C56BD4
    gpg: keyserver receive failed: Server indicated a failure

    ошибка выводится в образе вагранта, на локальной машине все ставится нормально
  • https://t.me/clickhouse_ru
    Joined.
  • https://t.me/clickhouse_ru
    Всем доброго утра. У меня возник вопрос. В bigquery у меня есть переменная в формате DATETIME. Мне нужно добавить к ней 7 дней, для построения неравенства. Но функции DATE_ADD(), DATE_SUB() не хотят работать.
  • https://t.me/clickhouse_ru
    @shtyliuk #65086 07:45 AM, 11 Sep 2018
    Добрый день. Подскажите с такой задачей: Есть столбцы уникальный id клиента, дата и время посещения, нужно присвоить каждому уникальному id свой номерной порядок от первого до последнего посещения.
  • https://t.me/clickhouse_ru
    Делаю примерно так: INS_DATE between REQDATE and DATE_SUB(DATE(REQDATE), INTERVAL 7 DAY)
  • https://t.me/clickhouse_ru
    INS_DATE between REQDATE and (REQDATE - INTERVAL 7 DAY)
  • https://t.me/clickhouse_ru
  • Конечно, политически верный вариант (5NF и т.п.) - хранить один таймстамп (нормальный, в UTC) + таймзону/локацию пользователя в виде какого-нибудь timezone_id. Ну и чтобы база умела прозрачно для пользователя "переводить стрелки часов" если возникает такая потребность. Но мы тут про большие данные, где всякие там нормализации скорее мешают чем помогают, да и у Кликхауса нет "встроенной" возможности использовать одновременно много таймзон, если они хранятся вместе с данными. Поэтому проще и удобнее просто тупо 2 таймстампа, или таймстамп + смещение.
  • https://t.me/clickhouse_ru
    может редактор просто не знает?
  • спасибо. 👍
  • https://t.me/clickhouse_ru
    @mozgoo #65093 08:09 AM, 11 Sep 2018
    Всем привет. Обьясните или ткните нормальной ссылкой на информацию по vertical и horizontal merge. Интересно понять, как они работают, а гугл одну экономику скидывает
  • @mfilimonov #65094 08:12 AM, 11 Sep 2018
    Ordinary (horizontal) merge proceeds like follows: take several sorted parts and create a read cursor for each of them, then create a resulting part by repeatedly appending to it the smallest row among those pointed by the current cursors.

    By contrast, vertical merge proceeds as follows: first perform a horizontal merge on primary key columns, remembering for each row the part number from which it was taken (this is the rows_sources file). Then for each non-key column perform a "gather" step: gather the values of the resulting column from the source columns according to the rows_sources.

    For wide tables vertical merge performs much better.
  • https://t.me/clickhouse_ru
    @mozgoo #65095 08:20 AM, 11 Sep 2018
    @mfilimonov И на том спасибо👍
  • @YaroslavMakarov #65096 08:21 AM, 11 Sep 2018
    Всем привет, какой способ загрузки данных в ClickHouse самый быстрый? Какой формат использовать при вставке? Может быть использовать какой-нибудь clickhouse-driver?
  • https://t.me/clickhouse_ru
    @visavi ↶ Reply to #65083 #65097 08:23 AM, 11 Sep 2018
    в общем проблема решилась так
    sudo apt-key adv —keyserver hkp://keyserver.ubuntu.com:80 —recv-keys E0C56BD4
  • https://t.me/clickhouse_ru
    Всем доброго утра. У меня возник вопрос. В bigquery у меня есть переменная в формате DATETIME. Мне нужно добавить к ней 7 дней, для построения неравенства. Но функции DATE_ADD(), DATE_SUB() не хотят работать.
  • https://t.me/clickhouse_ru
    Делаю примерно так: INS_DATE between REQDATE and DATE_SUB(DATE(REQDATE), INTERVAL 7 DAY)
  • Все вполне быстрые. ИМХО оптимальный вариант - это TSV + clickhouse-client. clickhouse-client парсит, переводит формат в Native и сжимает данные перед передачей на сервер. Вряд ли вы сможете написать это быстрее.
  • @faerics #65101 08:28 AM, 11 Sep 2018
    Дата ж вроде числом хранится, можно число вычитать
  • А вы попробовали то что предложил @blinkovivan
  • @mfilimonov #65103 08:28 AM, 11 Sep 2018
    ?
  • https://t.me/clickhouse_ru
    Так что именно не работает с вычетанием?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Я же говорил, сам bigquery не воспринимает нормально...
  • @mfilimonov #65107 08:29 AM, 11 Sep 2018
    Вы тут про bigquery спрашиваете или про кликхаус? :)
  • https://t.me/clickhouse_ru
    bigquery
  • https://t.me/clickhouse_ru
    Тогда стоит найти для этого вопроса более релевантный чатик
  • спасибо, буду тестировать)
  • Например так:
    with
    groupArray( tuple(timestamp, col1,col2) ) as per_user_rows,
    arraySort( row -> row.1, per_user_rows) as per_user_rows_sorted_by_ts,
    arrayEnumerate(per_user_rows_sorted_by_ts) as indexes,
    arrayMap( (row, index) -> tuple( index, row.1, row.2, row.3 ), per_user_rows_sorted_by_ts, indexes) as per_user_rows_sorted_by_ts_with_indexes,
    arrayJoin( per_user_rows_sorted_by_ts_with_indexes ) as final_row,
    final_row.1 as row_index_final,
    final_row.2 as timestamp_final,
    final_row.3 as col1_final,
    final_row.4 as col2_final
    select userid, row_index_final, timestamp_final, col1_final, col2_final
    from table_1123
    group by userid
    или так (простая "сквозная" нумерация)
    select *, rowNumberInAllBlocks() from ( select * from table_1123 order by userid, timestamp);
  • @IPrvz ↶ Reply to #65072 #65112 09:02 AM, 11 Sep 2018
    Все ещё актуально, если вдруг у кого пример есть. Не оч понятно, как хранить сам словарь в том же файле (csv например)
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #65112 #65113 09:28 AM, 11 Sep 2018
    Документация ClickHouse | Документация ClickHouse

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

  • @IPrvz ↶ Reply to #65113 #65114 09:30 AM, 11 Sep 2018
    Есть именно примеры конфигурации. Мне не оч понятно, как хранить словарь в файле (csv например)
  • https://t.me/clickhouse_ru
    @Sablast ↶ Reply to #65114 #65115 09:36 AM, 11 Sep 2018
    вот пример настройки:
    https://clickhouse.yandex/docs/ru/single/#dicts-external_dicts_dict_sources-local_file
    а если по структуре файла, то мне не понятно, что вам не понятно)
    указываете например <format>CSVWithNames</> следовательно файл должен иметь вид типа:
    Колонка1,Колонка2, ... ,КолонкаN
    Данные1,Данные2, ... ,ДанныеN
  • @IPrvz #65116 09:37 AM, 11 Sep 2018
    Т.е. строки между собой разделяются \n?
  • https://t.me/clickhouse_ru
  • @IPrvz ↶ Reply to #65117 #65118 09:41 AM, 11 Sep 2018
    Понял, т.е. \n. Спасибо!
  • @molchanovdp #65119 09:46 AM, 11 Sep 2018
    Добрый день!
    Коллеги, при отправке запроса через jdbc периодически вылетает ошибка "Read timed out". Подскажите, какой настройкой регулируется этот таймаут?
  • https://t.me/clickhouse_ru
    @EvgenyVinogradov #65120 09:50 AM, 11 Sep 2018
    connection_timeout, socket_timeout
  • @molchanovdp #65121 09:55 AM, 11 Sep 2018
    Спасибо
    Есть http_connection_timeout со значением 1. Она устанавливается в минутах?
    А настройки socket_timeout вообще нет в результате запроса к system.settings
  • https://t.me/clickhouse_ru
    Так не годится:
    select substring(toString(dt, 'UTC'), 9, 2)
    || '.' || substring(toString(dt, 'UTC'), 6, 2)
    || '.' || substring(toString(dt, 'UTC'), 1, 4)
    || substring(toString(dt, 'UTC'), 11, 9) as dt_str
    from t
    limit 10
    ;
    ?
  • https://t.me/clickhouse_ru
    Ну, вполне. Думал, может есть какие-то более очевидные способы подобного форматирования🙂
  • https://t.me/clickhouse_ru
    @Mike_Er #65124 10:02 AM, 11 Sep 2018
    Коллеги, а не подскажите, нет ли возможности встроенными функциями КХ из unix timestamp в hex получить datetime ? танцы с unhex что-то не принесли успеха
  • https://t.me/clickhouse_ru
    @Sablast ↶ Reply to #65123 #65125 10:04 AM, 11 Sep 2018
    ну можно использовать concat и toDayOfMonth, toMonth, toYear, toHour, toMinute, toSecond)
  • @ztlpn ↶ Reply to #65124 #65126 10:05 AM, 11 Sep 2018
    А можно пример исходных данных?
  • https://t.me/clickhouse_ru
    @Mike_Er ↶ Reply to #65126 #65127 10:06 AM, 11 Sep 2018
    5B9589D3 к примеру (September 10, 2018 12:00:03 AM GMT+03:00)
  • https://t.me/clickhouse_ru
    В случае, например, с 8 часами утра в tohour мы получим 8 вместо желаемых 08. Возможный, но не самый удобный вариант
  • @ztlpn ↶ Reply to #65127 #65129 10:09 AM, 11 Sep 2018
    SELECT toDateTime(reinterpretAsUInt32(reverse(unhex('5B9589D3'))))

    ┌─toDateTime(reinterpretAsUInt32(reverse(unhex('5B9589D3'))))─┐
    │ 2018-09-10 00:00:03 │
    └─────────────────────────────────────────────────────────────┘
  • @ztlpn #65130 10:09 AM, 11 Sep 2018
    reverse нужен из-за little endian
  • https://t.me/clickhouse_ru
    @Mike_Er ↶ Reply to #65130 #65131 10:09 AM, 11 Sep 2018
    Спасибо! Вот это я пропустил :)
  • https://t.me/clickhouse_ru
    @akisin #65132 10:13 AM, 11 Sep 2018
    А поделитесь опытом, имеется postgresql и кластер на CH, как лучше организовать процесс передачи изменений в CH?(речь только про данные) Вариант переносить все с помощью csv не очень радует...
  • https://t.me/clickhouse_ru
    @xammett ↶ Reply to #65132 #65133 10:20 AM, 11 Sep 2018
    зависит от схемы изменения данных, например, если данные по юзерам изменяются инкрментно, то можно сделать ReplacingMergeTree и туда лить данные
  • https://t.me/clickhouse_ru
    @xammett #65134 10:21 AM, 11 Sep 2018
    clickhouse удалит все строки, кроме последней по ключу
  • https://t.me/clickhouse_ru
    @xammett #65135 10:21 AM, 11 Sep 2018
    это такой конкретный кейс, под конкретную задачу, может быть у вас по-другому
  • https://t.me/clickhouse_ru
    @Sablast ↶ Reply to #65128 #65136 10:21 AM, 11 Sep 2018
    SELECT
    now(),
    replaceRegexpAll(toString(now()), '([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2})', '\\3.\\2.\\1 \\4:\\5\\:\\6') AS res

    ┌───────────────now()─┬─res─────────────────┐
    │ 2018-09-11 10:21:27 │ 11.09.2018 10:21:27 │
    └─────────────────────┴─────────────────────┘
  • https://t.me/clickhouse_ru
    @ytsemashko #65137 10:24 AM, 11 Sep 2018
    еще можно toHour перевести в строку, потом скормить его в appendTrailingCharIfAbsent(x, '0'), а потом сделать reverse
  • https://t.me/clickhouse_ru
    @akisin ↶ Reply to #65133 #65138 10:24 AM, 11 Sep 2018
    Ок,а какими средствами лить? COPY TO?
  • https://t.me/clickhouse_ru
    @ytsemashko #65139 10:24 AM, 11 Sep 2018
    будет 8 превращет в "08"!
  • https://t.me/clickhouse_ru
    @xammett ↶ Reply to #65138 #65140 10:25 AM, 11 Sep 2018
    я лью питоном батчами
  • https://t.me/clickhouse_ru
    Да, тоже вариант. Но вариант идти через replaceRegexpAll не отрабатывает у нас через консольный clickhouse-client - все равно выводится время в изначальном формате базы
  • https://t.me/clickhouse_ru
    @Sablast ↶ Reply to #65138 #65142 10:26 AM, 11 Sep 2018
    SELECT *
    FROM odbc() =)
  • https://t.me/clickhouse_ru
    @Sablast ↶ Reply to #65141 #65143 10:27 AM, 11 Sep 2018
    ubuntu@clickhouse-1:~$ clickhouse-client --query=" SELECT now(), replaceRegexpAll(toString(now()), '([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2})', '\\\3\.\\\2\.\\\1 \\\4:\\\5:\\\6') AS res"
    2018-09-11 10:27:03 11.09.2018 10:27:03
    чуть больше экранирования и все заработает =)
  • @572708835 #65144 10:28 AM, 11 Sep 2018
    Подскажите пожалуйста, появляются ли какие-нибудь подводные камни при более частом использовании вертикального мерджа (при уменьшении значения vertical_merge_algorithm_min_rows_to_activate)? Директива помогла избавиться от падений от оом киллера при небольшом кол-ве памяти (32гб), хотелось бы знать чем это аукнется.
  • https://t.me/clickhouse_ru
    Ага, попробуем с дополнительной порцией экранирования. Благодарю
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #65146 10:45 AM, 11 Sep 2018
    Есть новости, когда ближайший релиз?
  • https://t.me/clickhouse_ru
    @stufently #65147 10:46 AM, 11 Sep 2018
    да релизы буквально один за другим идут , к чему вопрос то ?
  • @antonio_antuan #65148 10:57 AM, 11 Sep 2018
    Кстати последний ченжлог - огонь
  • https://t.me/clickhouse_ru
    К тому, что когда релиз-то?
  • https://t.me/clickhouse_ru
    @Krashuevina #65150 11:04 AM, 11 Sep 2018
    Вчера был
  • @theveryartur #65151 11:04 AM, 11 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    Спасибо, пропустил. Ченжлог и вправду огонь!
  • https://t.me/clickhouse_ru
    @jekasko #65153 11:37 AM, 11 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    Его в репе нет😢
  • https://t.me/clickhouse_ru
    @easya ↶ Reply to #65154 #65155 11:52 AM, 11 Sep 2018
    в testing он
  • @faerics #65156 11:53 AM, 11 Sep 2018
    А где ченжлог можно глянуть?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #65147 #65158 11:57 AM, 11 Sep 2018
    Ну это же пока -testing
  • https://t.me/clickhouse_ru
    @Civiloid #65159 11:57 AM, 11 Sep 2018
    Я в генте бампаю пакеты только на -stable, например
  • https://t.me/clickhouse_ru
    @stufently #65160 11:57 AM, 11 Sep 2018
    ну разница к сожалению не велика
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #65160 #65161 11:58 AM, 11 Sep 2018
    Ну для меня большая :) тестинг чаще, если я буду каждый раз делать бамп, это будет full time job для меня
  • https://t.me/clickhouse_ru
    @stufently #65162 11:58 AM, 11 Sep 2018
    ну давно пора автоматизировать
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #65162 #65163 12:00 PM, 11 Sep 2018
    Фигово автоматизируется :)
  • https://t.me/clickhouse_ru
    @calculating_infinity #65164 12:21 PM, 11 Sep 2018
    подскажите пожалуйста, а зачем в примере в документации про MergeTree (https://clickhouse.yandex/docs/ru/operations/table_engines/mergetree/#_4) при создании таблицы с партиционированием по месяцам в индекс добавляется поле с датой? только чтобы отсоритровать по дням? партиционирование же будет эффективно работать при запросах с условиями по дате и без включения полей с датой в индекс?
  • https://t.me/clickhouse_ru
    @negasus #65165 12:23 PM, 11 Sep 2018
    Парни, помогите пожалуйста) Если в zookeeper для некой таблицы была удалена нода (если правильно выражаюсь) log - что можно сделать, чтобы кликхаус запустился создав эту ноду? О потерянных данных речь не идет тут
  • @ztlpn ↶ Reply to #65164 #65166 12:24 PM, 11 Sep 2018
    При партиционировании по месяцу могут образовываться куски, в которых данные за целый месяц. Чтобы эффективно выбрать из такого куска данные за несколько дней (меньше месяца), в индекс добавляется дата.
  • https://t.me/clickhouse_ru
    так и подумал, спасибо
  • @ztlpn ↶ Reply to #65165 #65168 12:26 PM, 11 Sep 2018
    https://clickhouse.yandex/docs/ru/operations/table_engines/replication/#zookeeper (раздел "Восстановление в случае потери или повреждения метаданных на ZooKeeper кластере")
  • https://t.me/clickhouse_ru
    @negasus #65169 12:27 PM, 11 Sep 2018
    У меня сервер не запускается, говорит No node, path: /clickhouse/tables/1-1/balance/log
  • https://t.me/clickhouse_ru
    @stufently #65170 12:27 PM, 11 Sep 2018
    ну надо создать этот путь руками в зукипере
  • https://t.me/clickhouse_ru
    @negasus #65171 12:27 PM, 11 Sep 2018
    но я сейчас еще раз изучу доку
  • https://t.me/clickhouse_ru
    @negasus #65172 12:28 PM, 11 Sep 2018
    просто create /path/? вроде бы у меня не получилось
  • https://t.me/clickhouse_ru
    @negasus #65173 12:28 PM, 11 Sep 2018
    я с зукипером прям на Вы(
  • @ztlpn ↶ Reply to #65170 #65174 12:29 PM, 11 Sep 2018
    Так не будет работать
  • https://t.me/clickhouse_ru
    @xammett #65175 12:30 PM, 11 Sep 2018
    добрый день, скажите, пожалуйста, когда появится в репе версия 18.12.13?
  • @ztlpn #65176 12:30 PM, 11 Sep 2018
    В вашем случае надо будет сохранить куски с данными, пересоздать таблицу и добавить сохранённые куски с помощью ATTACH PARTITION.
  • @ztlpn ↶ Reply to #65175 #65177 12:32 PM, 11 Sep 2018
    Когда дотестируем (сегодня-завтра, или обнаружатся проблемы и будет ещё один релиз)
  • https://t.me/clickhouse_ru
    @xammett ↶ Reply to #65177 #65178 12:40 PM, 11 Sep 2018
    спасибо, Алексей
  • https://t.me/clickhouse_ru
    @negasus ↶ Reply to #65176 #65179 01:01 PM, 11 Sep 2018
    да, кажется я разобрался. Спасибо. Я правильно понимаю, что inactive_20180901_20180911_0_413185_63240 в detached - значит, что я эти parts уже приаттачил?
  • https://t.me/clickhouse_ru
    @negasus #65180 01:01 PM, 11 Sep 2018
    я про inactive
  • @ztlpn #65181 01:05 PM, 11 Sep 2018
    Да, если кусок inactive - значит был ATTACH PARTITION, и этот кусок был покрыт другим куском, который тоже был в detached. В этом случае покрывающий кусок аттачится к таблице, а покрытый кусок переименовывается в inactive_, чтобы при повторных ATTACH не было дублирования данных.
  • https://t.me/clickhouse_ru
    @EvgenyVinogradov #65182 01:18 PM, 11 Sep 2018
    Поставил КХ 18.12.13. Отвалились odbc: [unixODBC][Driver Manager]Can't open lib '' file not found
  • https://t.me/clickhouse_ru
    @EvgenyVinogradov #65183 01:19 PM, 11 Sep 2018
    либа точно есть
  • https://t.me/clickhouse_ru
    @EvgenyVinogradov #65184 01:19 PM, 11 Sep 2018
    откатываю на 18.5.1
  • https://t.me/clickhouse_ru
    Есть таблица формата:
    ИД ДЕЙСТВИЕ
    1 А
    1 Б
    1 А
    2 А
    ... ...
    Так вот, мне надо отобрать только те ИД, которые выполнили действие А, но ни разу не выполняли действие Б. Если можно на standart SQL. Заранее спасибо.
  • https://t.me/clickhouse_ru
    @orantius #65186 01:42 PM, 11 Sep 2018
    а как вы делали что у вас не получилось?
  • https://t.me/clickhouse_ru
    Пробовал через GROUP BY, не знаю ка правильно оформить запрос.
  • https://t.me/clickhouse_ru
    @maxatwork #65188 01:46 PM, 11 Sep 2018
    Select id, sum(a), sum(b) from (Select id, if(action=A, 1, 0) as a, if(action=B, 1, 0) b) group by id having sum(a) > 0 and sum(b) < 1;
  • https://t.me/clickhouse_ru
    @maxatwork #65189 01:46 PM, 11 Sep 2018
    Типа такого
  • https://t.me/clickhouse_ru
    @maxatwork #65190 01:47 PM, 11 Sep 2018
    Не уверен, правда, что самый эффективный способ.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #65186 #65191 01:55 PM, 11 Sep 2018
    👍😂
  • https://t.me/clickhouse_ru
    select id
    from (
    select distinct id
    from (
    select 1 as id, 'А' as action
    union all select 1 as id, 'Б' as action
    union all select 1 as id, 'А' as action
    union all select 1 as id, 'А' as action
    union all select 2 as id, 'А' as action
    ) as t
    where action = 'А'
    ) any left join (
    select distinct id, id as is_find
    from (
    select 1 as id, 'А' as action
    union all select 1 as id, 'Б' as action
    union all select 1 as id, 'А' as action
    union all select 1 as id, 'А' as action
    union all select 2 as id, 'А' as action
    ) as t
    where action = 'Б'
    ) using (id)
    where is_find = 0
    ;
    — предложу такой вариант
  • https://t.me/clickhouse_ru
    @konstantin_ptr #65193 02:09 PM, 11 Sep 2018
    данные настройки нужно вписывать в config.xml?
  • https://t.me/clickhouse_ru
    @proller ↶ Reply to #65193 #65194 02:11 PM, 11 Sep 2018
    нет, в отдельный конфиг словаря
  • https://t.me/clickhouse_ru
    @proller #65195 02:12 PM, 11 Sep 2018
    который должен ледать в директории которая прописана в config.xml как <dictionaries_config>
  • @githubreleases_bot #65196 b o t 02:19 PM, 11 Sep 2018
    yandex/ClickHouse was tagged: v18.12.13-stable
    Link: https://github.com/yandex/ClickHouse/releases/tag/v18.12.13-stable
    Release notes:
    v18.12.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
    @dmitry_berezhnov #65197 02:58 PM, 11 Sep 2018
    При включении опции
    enable_optimize_predicate_expression
    при подключении через clickhouse-client
    пишет такое
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #65198 02:59 PM, 11 Sep 2018
    Запросы вроде работают
  • @DrDareka ↶ Reply to #64774 #65199 03:27 PM, 11 Sep 2018
    Нашел недокументированный cross join - то, что нужно.
  • https://t.me/clickhouse_ru
    @salttan ↶ Reply to #64940 #65200 03:33 PM, 11 Sep 2018
    Хороший вариант, работает.
    Можно еще через снапшот, но очень аккуратно, чтобы КХ ничего не успел дописать после создания снапшота
  • https://t.me/clickhouse_ru
    @hiimmax #65201 03:52 PM, 11 Sep 2018
    Привет! У меня вопрос по формату выходных данных. В документации сказано, что в формате TabSeparated значения NULL передаются как \N. Но я заметил, что если возвращаются Tuple'ы, в которых есть Nullable значения, то в них все равно пишется NULL, за место \N. Так и должно быть?
    Например после выполнения запросов:
    > CREATE TABLE t (a Nullable(UInt8), b Tuple(Nullable(UInt8), UInt8)) ENGINE = Memory
    > INSERT INTO t VALUES (NULL, (NULL, 1))
    > SELECT * FROM tВернется строка \\N\t(NULL,1)\n
  • Спасибо, буду пробовать
  • https://t.me/clickhouse_ru
    @hiimmax ↶ Reply to #65201 #65203 04:05 PM, 11 Sep 2018
    А, разобрался, нашел в открытых issues.
  • @560467395 #65204 04:10 PM, 11 Sep 2018
    Joined.
  • Вы можете сделать select ... format TSV
  • @pookieShmukie #65206 04:30 PM, 11 Sep 2018
    И там увидите как эта штука пишется
  • https://t.me/clickhouse_ru
    @hiimmax ↶ Reply to #65206 #65207 04:49 PM, 11 Sep 2018
    Да, именно так и делал, в примере забыл указать
  • https://t.me/clickhouse_ru
    @ITishkin #65208 04:52 PM, 11 Sep 2018
    подскажите, пожалйуста, в каком файле нужно прописать max_bytes_before_external_sort, max_memory_usage, max_bytes_before_external_group_by ? я так понимаю задать нужно для пользователя? просто в наших конфигах есть только параметр max_memory_usage, хотя ClickHouse этого года
  • https://t.me/clickhouse_ru
    @ITishkin #65209 04:52 PM, 11 Sep 2018
    и нужно ли сервак рестартить?
  • https://t.me/clickhouse_ru
    @Shegloff #65210 04:58 PM, 11 Sep 2018
    в профайл в users.xml
  • https://t.me/clickhouse_ru
    @Shegloff #65211 04:58 PM, 11 Sep 2018
    рестартить не надо
  • https://t.me/clickhouse_ru
    @Krashuevina #65212 05:15 PM, 11 Sep 2018
    Вопрос к уважаемой команде разработки. Сам новый релиз не пробовал, но имею вопрос. Использование group by wirh rollup реализовано хардкорно, или перформанс будет схож с Array join массивов с комбинациями колонок?
  • https://t.me/clickhouse_ru
    @konstantin_ptr #65213 05:16 PM, 11 Sep 2018
    Имеет ли смысл под значения с id использовать int если стринги все равно хешируются, и уникальных значений этих Id планируется пару десятков. В общем,у меня вопрос цены удобства 1345 или "Вася"?
  • https://t.me/clickhouse_ru
    @ITishkin ↶ Reply to #65211 #65214 05:29 PM, 11 Sep 2018
    Спасибо. Разобрались, у клика не было прав читать созданные препрцессед файлы
  • https://t.me/clickhouse_ru
    Звучит как сценарий для LowCardinality(String)
  • @CurtizJ #65216 05:36 PM, 11 Sep 2018
    Joined.
  • @CurtizJ ↶ Reply to #65212 #65217 05:52 PM, 11 Sep 2018
    rollup реализован так: столбцы по-очереди заполняются дефолтными значениями и блок доагрегируется по оставшимся колонкам.
  • Будет работать лучше, чем arrayJoin - и быстрее и меньше памяти расходуется.
  • @milovidov_an #65219 05:59 PM, 11 Sep 2018
    Наши аналитики тоже сейчас делают через arrayJoin, но это получается неудобно - надо писать несколько arrayJoin-ов и куча времени тратится на размножение строк. GROUP BY WITH ROLLUP позволяет этого избежать.
  • https://t.me/clickhouse_ru
    У нас запросы пишут роботы для роботов) Но ввиду сказанного, будем резко переделывать на rollup
  • https://t.me/clickhouse_ru
    @marshalov #65221 06:20 PM, 11 Sep 2018
    Подскажите, пожалуйста - в доке написано, что SELECT ... FROM table FINAL работает только для CollapsingMergeTree. Это правда? Проверить в данный момент нет возможности, а информация нужна. У меня есть ощущение, что всё работало и для ReplacingMergeTree, но я не уверен.
  • SELECT arrayJoin([RegionID, 0]) AS k1, arrayJoin([SearchEngineID, 0]) AS k2, count() FROM test.hits GROUP BY k1, k2 ORDER BY count() DESC LIMIT 10

    242 мс.

    SELECT RegionID AS k1, SearchEngineID AS k2, count() FROM test.hits GROUP BY k1, k2 WITH ROLLUP ORDER BY count() DESC LIMIT 10

    43 мс.

    Правда первое - это всё-таки аналог WITH CUBE, которого ещё нет.
  • Неправда. Работает для всех таблиц, для которых слияние делает какие-то вычисления.
  • https://t.me/clickhouse_ru
    Значит, косяк в документации
  • https://t.me/clickhouse_ru
    @marshalov #65225 06:25 PM, 11 Sep 2018
    спасибо
  • https://t.me/clickhouse_ru
    Да, я скорее cube имел в виду
  • https://t.me/clickhouse_ru
    Создал issue
    https://github.com/yandex/ClickHouse/issues/3105
    Unknown identifier: concat(func.name, comb.name) #3105

    I updated to 18.12.13 and set option enable_optimize_predicate_expression in config. After reload I get this message Cannot load data for command line suggestions: Code: 47, e.displayText() = DB::Exception: Received from localhost:9000, ...

  • https://t.me/clickhouse_ru
    @nicname #65228 08:01 PM, 11 Sep 2018
    >Возможность использования дублирующихся столбцов в секции USING для JOIN #3006

    а как эту возможность отключить? :) джойны поломались с апдейтом
  • А что именно поломалось?

    По крайней мере, возможность задумана именно как возможность.
  • https://t.me/clickhouse_ru
    @nicname #65230 08:05 PM, 11 Sep 2018
    такой вот запрос
    `SELECT
    *
    FROM
    (
    SELECT
    MainID,
    COUNT() AS cnt
    FROM table1
    GROUP BY MainID
    )
    ANY LEFT JOIN
    (
    SELECT
    MainID,
    AddField1,
    AddField2
    FROM table2
    ) USING (MainID)`
    выдает таблицу со структурой
    MainID, cnt, MainID, AddField1, AddField2
    раньше (на 18.04) было
    MainID, cnt, AddField1, AddField2
  • Ставьте asterisk_left_columns_only = 1.
  • https://t.me/clickhouse_ru
    @nicname #65232 08:09 PM, 11 Sep 2018
    а это в каком конфиге? не вижу в доках пока
  • @milovidov_an #65233 08:10 PM, 11 Sep 2018
    Настройка уровня пользователя.
    Сначала проверьте запрос в клиенте командной строки с помощью SET.
  • @milovidov_an #65234 08:11 PM, 11 Sep 2018
    В старой версии такой запрос должен был выдавать
    MainID, cnt
  • https://t.me/clickhouse_ru
    @nicname #65235 08:12 PM, 11 Sep 2018
    да, сработало, спасибо
  • @pookieShmukie #65236 08:12 PM, 11 Sep 2018
    @milovidov_an у нас была беда с сервером и в папке distributed таблицы лежат папочки типа default@10%2E20%2E116%2E11:9000,default@10%2E20%2E117%2E9:9000 - как их дописать в таблицу?
  • https://t.me/clickhouse_ru
    @nicname #65237 08:12 PM, 11 Sep 2018
    а как сделать селект без этой настройки, но чтобы было в одном экземпляре? перечислить явно без *?
  • Без этой настройки всё работает так же, как раньше (как в предыдущей версии 18.10.3 и раньше). Да, перечислять явно.
  • https://t.me/clickhouse_ru
    @nicname #65239 08:14 PM, 11 Sep 2018
    ну да, я просто с 18.4 обновился
  • В этих директориях находятся файлы с данными для отправки на удалённые серверы. Файлы .bin. Distributed таблица берёт файлы из этой очереди и пытается отправить. Если их не получается отправить, об этом будут сообщения в логе сервера. Надо посмотреть, в чём там проблема.

    Типичные проблемы:
    - изменился IP адрес сервера - надо исправить его в имени директории и перезапустить clickhouse-server;
    - файл побился на файловой системе - можно отложить его в сторону, чтобы остальные файлы отправились.
  • @pookieShmukie #65241 08:18 PM, 11 Sep 2018
    Нам пришлось пересоздавать таблицы и эти файлы я поместил руками туда. У нас сломался зукипер и нам пришлос аттачить куски вручную в таблицы
  • @pookieShmukie #65242 08:18 PM, 11 Sep 2018
    И distributed тоже на всякий случай пересоздали, предварительно "сбекапив" эти временные куски
  • @milovidov_an #65243 08:20 PM, 11 Sep 2018
    В этих временных кусках находятся данные, которые всё ещё должны быть отправлены. Посмотрите, почему не отправляются. Насколько я помню, список файлов обновляется без перезагрузки. Сервер об этом напишет. Могут быть ещё проблемы с правами.
  • @pookieShmukie #65244 08:26 PM, 11 Sep 2018
    Проверил права - все принадлежит clickhouse пользователю.
    Алгоритм был такой:
    Скопировали /var/lib/clickhouse/data/DB/TABLE/* в отдельную папку
    Удалили папку с таблицей, удалили все мета-данные, при этом зукипер был абсолютно пустой
    Создали таблицу
    Положили файлики туда где они и были, т.е. в /var/lib/clickhouse/data/DB/TABLE/*

    В логах сейчас пусто, т.е. КХ будто бы не видит эти папки вообще.
  • Просто подложить файлы с кусками данных в директорию таблицы - не работает. Надо положить их в директорию detached, затем выполнить запросы ALTER TABLE ... ATTACH PARTITION для каждой партиции.
  • @pookieShmukie #65246 08:28 PM, 11 Sep 2018
    Да, мы так и сделали, но есть директории типа default@IP:PORT...
  • @pookieShmukie #65247 08:29 PM, 11 Sep 2018
    аттач мы делали для merge tree таблицы, там все ок и все взлетело, а вот distributed - беда
  • Проблема в том, что Distributed таблица не видит данные, которые вы для неё подложили? Возможно, что она всё-таки не обновляет список файлов без перезагрузки. Чтобы не перзагружать сервер, можно сделать DETACH TABLE и ATTACH TABLE для этой таблицы.

    Также стоит проверить, что имена директорий соответствуют конфигурации кластера.
  • @pookieShmukie #65249 08:32 PM, 11 Sep 2018
    Проблема в том, что Distributed таблица не видит данные, которые вы для неё подложили? - да. Файлы, которые должны разлететься по шардам.

    Detach и attach таблицы не помог ( В логах пусто (
  • Сделайте вставку в эту Distributed таблицу, посмотрите где создастся файл, как он отправится. Возможно, что что-то перепутано в путях.
  • Все, прошло! Видимо он "подвис" ) Данные проглотились после детача и атача! Спасибо!
  • @pookieShmukie #65252 08:38 PM, 11 Sep 2018
    Просто он почему-то не сразу их вписал
  • @milovidov_an #65253 08:39 PM, 11 Sep 2018
    Там есть exponential backoff при ошибках - время повтора увеличивается до 30 сек.
  • @pookieShmukie #65254 08:40 PM, 11 Sep 2018
    Ну вобщем оно прошло, но после детача и не моментално, а спустя какое-то время
  • @VitalVas #65255 08:58 PM, 11 Sep 2018
    Hello here
    на сколько хорошо работает JSONEachRow при вставке большого обема данных?
  • @VitalVas #65256 08:58 PM, 11 Sep 2018
    к примеру 50-100 тыс строк за вставку
  • @milovidov_an #65257 09:06 PM, 11 Sep 2018
    Количество данных, вставляемых за один раз - это не проблема. В целом по throughput формат менее эффективен чем CSV, TSV - за счёт парсинга имён полей.
    При достаточно большом размере пачки throughput (количество строк в секунду) не зависит от объёма данных, отправляемых за один раз.
  • @VitalVas #65258 09:19 PM, 11 Sep 2018
    а на сколько он менее эффективен?
  • @milovidov_an #65259 09:26 PM, 11 Sep 2018
    Приблизительно пропорционально объёму данных в текстовом виде. Например, файл в JSONEachRow весит в два раза больше, чем CSV - будет примерно в два раза медленнее. Но возможны вариации в зависимости от конкретных типов данных. Обычно разница менее чем пропорциональная.
  • @VitalVas #65260 09:29 PM, 11 Sep 2018
    если буду писать по 500 тыс строк раз в 5-10 секунд то деградации производительности не сильно будет заметно?
  • Размер пачки - Ок.

    Вставка в JSONEachRow менее эффективна, чем в CSV или TSV. Впрочем, если у вас уже есть данные в JSONEachRow, то вставка их сразу в этом формате, будет более эффективной, чем предварительная конвертация.
  • @milovidov_an #65262 09:32 PM, 11 Sep 2018
    Также иногда форматирование в JSONEachRow на стороне своих программ оказывается более эффективным, чем в CSV или TSV.
  • @VitalVas #65263 09:43 PM, 11 Sep 2018
    в общем сделаю эксперемент, а потом уже буду принимать решения…..
  • https://t.me/clickhouse_ru
    @serboox #65264 11:08 PM, 11 Sep 2018
    Joined.
  • 12 September 2018 (221 messages)
  • https://t.me/clickhouse_ru
    @geebv #65265 04:24 AM, 12 Sep 2018
    Добрый утро, коллеги
    Требуются консалтинговые услуги по CH
    Кому интересно пишите в личку
    Спасибо
  • https://t.me/clickhouse_ru
    @stufently #65266 04:25 AM, 12 Sep 2018
    если деньги есть то вам к альтинити
  • https://t.me/clickhouse_ru
    @stufently #65267 04:26 AM, 12 Sep 2018
    если нет то проще тут поспрашивать
  • https://t.me/clickhouse_ru
    @geebv #65268 04:28 AM, 12 Sep 2018
    Поначалу пока проект только стартует достаточно будет иметь человека имеющего опыта для решения оперативных вопросов
  • https://t.me/clickhouse_ru
    @geebv #65269 04:28 AM, 12 Sep 2018
    Альтинити не гуглится, можно ссылку?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @geebv #65271 04:33 AM, 12 Sep 2018
    Спасибо
  • https://t.me/clickhouse_ru
    @geebv #65272 04:34 AM, 12 Sep 2018
    Но мы приоритет отдаем сейчас отдельным кадрам с опытом
  • @molchanovdp #65273 06:02 AM, 12 Sep 2018
    Доброе утро! Подскажите, пожалуйста, что за ошибка? Как пофиксить?
    default.{table} (StorageReplicatedMergeTree): DB::StorageReplicatedMergeTree::queueTask()::<lambda(DB::StorageReplicatedMergeTree::LogEntryPtr&)>: Code: 235, e.displayText() = DB::Exception: Part 20180409_2_4_1 (state Committed) already exists, e.what() = DB::Exception
  • https://t.me/clickhouse_ru
    @ealebed #65274 07:36 AM, 12 Sep 2018
    Всем привет!
    Наблюдается проблема с обновлением внешних словарей (из постгреса), проверял в версиях 18.12.5 - 18.12.13

    Словари создаются/обновляются при старте кликхауса (это можно увидеть в колонке creation_time в таблице `system.dictionaries`). При следующих попытках обновления (через 5 минут, согласно настройкам) падает исключение (колонка last_exception той же таблицы):
    Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = Host not found, e.what() = Host not found
    В логах:```
    2018.09.12 05:28:11.448817 [ 52 ] <Error> ExternalDictionaries: Cannot update external dictionary 'bundle_ids', leaving old version: Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = Host not found, e.what() = Host not found
    `
    Доступ к БД постгреса есть - проверял из консоли клиентами psql и isql (последний с явным указанием настроек ODBC как для кликхауса).
    Выполнение запроса SYSTEM RELOAD DICTIONARIES; нормально обновляет словари (!), но спустя 5 минут проблема возвращается...

    Что я делаю не так?
  • https://t.me/clickhouse_ru
    @andrey_konyaev #65275 07:47 AM, 12 Sep 2018
    Всем привет.
    Есть ли возможность из jdbc следить за статусом (процентом исполнения) запроса? Есть идеи?
  • https://t.me/clickhouse_ru
    @gecube #65276 08:22 AM, 12 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @gecube #65277 08:22 AM, 12 Sep 2018
    Всем привет
  • https://t.me/clickhouse_ru
    @gecube #65278 08:23 AM, 12 Sep 2018
    Подскажите, пожалуйста, по репликации и шардингу. Правильно ли я понял, что репликация запросы SELECT не ускоряет от слова "совсем"?
  • https://t.me/clickhouse_ru
    @taroff #65279 08:25 AM, 12 Sep 2018
    реплика дает копию данных на другой машине. Если одна машина может к примеру 100 запросов в секунду, то 2 смогут 200. Вывод = SELECT условно ускоряет репликация
  • Реплика позволяет больше запросов обработать
  • @pookieShmukie #65281 08:26 AM, 12 Sep 2018
    Ускоряет запросы шардинг
  • У вас запрос быстрее работать не станет. Их просто больше в единице времени можно будет обработать
  • https://t.me/clickhouse_ru
    @gecube #65283 08:26 AM, 12 Sep 2018
    Т.е. в случае реплики - запрос не бьется на части, каждая из которых обрабатывается на отдельной реплике, а потом результат "склеивается"?
  • Это делается в случае шардинга
  • https://t.me/clickhouse_ru
    @gecube #65285 08:27 AM, 12 Sep 2018
    но номинально можно дубасить в каждую реплику по 100 условных запросов и получить 200
  • https://t.me/clickhouse_ru
    @gecube #65286 08:27 AM, 12 Sep 2018
    окей. А если я хочу на двух серверах иметь полную копию данных - что делать?
  • https://t.me/clickhouse_ru
    @gecube #65287 08:27 AM, 12 Sep 2018
    подымать локально два инстанса кликхауса?
  • @pookieShmukie #65288 08:28 AM, 12 Sep 2018
    Ну смотрите. У вас запрос выполняется 5 секунд. Вы за минуту можете обработать допустим 12 таких запросов. В какой-то момент вам требуется обрабатывать 24 запроса в минуту. Вы поднимаете вторую реплику и запросы у вас так и будут выполняться по 5 секунд, просто каждая из реплик может обработать по 12 запросов.
  • @pookieShmukie #65289 08:29 AM, 12 Sep 2018
    Вот полная копия данных - это реплика. У нас 8 машин. 4 шарда по 2 реплики.
  • https://t.me/clickhouse_ru
    @gecube #65290 08:29 AM, 12 Sep 2018
    нету 8 машин. Есть две машины - на которых хочется собраться и отказоустойчивость и увеличить скорость
  • https://t.me/clickhouse_ru
    @gecube #65291 08:30 AM, 12 Sep 2018
    единстыенный выход, который я вижу - ставить в параллель два инстанса кликхауса на одной машине.
  • @pookieShmukie #65292 08:30 AM, 12 Sep 2018
    А если вас не устраивает время запроса в 5 секунд и вы хотите его уменьшить, скажем до 2.5, то вы шард добавляете и у вас запрос работает 2.5 секунды вместо 5.
  • https://t.me/clickhouse_ru
    @gecube ↶ Reply to #65292 #65293 08:30 AM, 12 Sep 2018
    да, это я понял
  • Можно и одним обойтись. У альтинити вроде была статья на тему кросс-репликации
  • https://t.me/clickhouse_ru
    @gecube ↶ Reply to #65294 #65295 08:30 AM, 12 Sep 2018
    ссылочку не найдете?
  • @pookieShmukie #65296 08:30 AM, 12 Sep 2018
    Сейчас постараюсь
  • https://t.me/clickhouse_ru
    @gecube #65297 08:31 AM, 12 Sep 2018
    и еще - правильно я понимаю, что в случае единичного запроса Кликхаус его не параллелит на ядра?
  • https://t.me/clickhouse_ru
    @gecube #65298 08:31 AM, 12 Sep 2018
    условно имеется сервер с 72 ядрами и кучей ОЗУ. разницы по времени запроса с сервером с 2 ядрами и 64ГБ ОЗУ я не заметил
  • https://t.me/clickhouse_ru
    @Krashuevina #65299 08:31 AM, 12 Sep 2018
    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
    Зависит от движка таблицы, который вы используете, а так же от числа партиций в таблице (если это MergeTree)
  • https://t.me/clickhouse_ru
    @gecube ↶ Reply to #65299 #65302 08:32 AM, 12 Sep 2018
    mreci
  • https://t.me/clickhouse_ru
    @gecube ↶ Reply to #65301 #65303 08:32 AM, 12 Sep 2018
    одна партиция
  • Это даже лучше :) статью пока не удается найти
  • https://t.me/clickhouse_ru
    @gecube ↶ Reply to #65304 #65305 08:33 AM, 12 Sep 2018
    👍👍👍
  • Если в ней будет несколько кусков, то будет параллелить
  • @pookieShmukie #65307 08:34 AM, 12 Sep 2018
    Агрегация вроде бы тоже параллелится
  • https://t.me/clickhouse_ru
    @gecube #65308 08:35 AM, 12 Sep 2018
    окей. Есть какой-либо тулз, который подсказывает как оптимизировать запросы?
  • https://t.me/clickhouse_ru
    @gecube #65309 08:35 AM, 12 Sep 2018
    или кликхаус достаточно умен сам по себе?
  • https://t.me/clickhouse_ru
    мозг )
  • + )
  • Он достаточно быстро работает )
  • @pookieShmukie #65313 08:37 AM, 12 Sep 2018
    Тулзы нет, но есть логи в которых кажет конвейер выполнения запроса
  • https://t.me/clickhouse_ru
    @gecube ↶ Reply to #65313 #65314 08:37 AM, 12 Sep 2018
    по умолчанию включены?
  • @pookieShmukie #65315 08:37 AM, 12 Sep 2018
    А вообще если глянуть видяшки про устройство mergetree, то там все понятно будет
  • Да вроде, log level должен быть trace если не ошибаюсь
  • https://t.me/clickhouse_ru
    @kmarenov #65317 08:37 AM, 12 Sep 2018
    Есть подзапрос, который необходимо использовать в нескольких запросах, но с разными параметрами. Подскажите, пожалуйста, есть ли в clikhouse возможность создать view с параметрами или может обернуть запрос в функцию таким образом, чтобы не писать в каждом запросе один и тот же подзапрос?
  • https://t.me/clickhouse_ru
    @kmarenov #65318 08:39 AM, 12 Sep 2018
    Параметры берутся из приложения и подставляются в текст запроса.
  • cte пока не работает (
  • @pookieShmukie #65320 08:39 AM, 12 Sep 2018
    Точнее его пока нет
  • @pookieShmukie #65321 08:40 AM, 12 Sep 2018
    А в with вроде бы работает, но я не тестил
  • https://t.me/clickhouse_ru
    в данной задаче, кмк, CTE не подойдёт
  • https://t.me/clickhouse_ru
    @ITishkin #65323 08:40 AM, 12 Sep 2018
    Подскажите, пожалуйста, синтаксис для создания таблицы с движком merge, по доке не соображу никак :(
  • create table ... (...) engine = MergeTree partition by ... order by ...
  • https://t.me/clickhouse_ru
    @ITishkin ↶ Reply to #65324 #65325 08:41 AM, 12 Sep 2018
    Там нужно перечислить все поля соединяемых таблиц?
  • Сорян
  • @pookieShmukie #65327 08:42 AM, 12 Sep 2018
    Я прочитал merge tree
  • https://t.me/clickhouse_ru
    @Krashuevina #65328 08:43 AM, 12 Sep 2018

    create table table_name as одна_из_таблиц_для_Merge ENGINE = Merge(database, 'pattern');
  • https://t.me/clickhouse_ru
    @ITishkin ↶ Reply to #65328 #65329 08:43 AM, 12 Sep 2018
    Спасибо
  • @293512067 #65330 08:52 AM, 12 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @konstantin_ptr #65331 08:54 AM, 12 Sep 2018
    вопрос открыт
  • https://t.me/clickhouse_ru
    @konstantin_ptr #65332 08:54 AM, 12 Sep 2018
    Имеет ли смысл под значения с id использовать int если стринги все равно хешируются, и уникальных значений этих Id планируется пару десятков. В общем,у меня вопрос цены удобства 1345 или "Вася"?
  • https://t.me/clickhouse_ru
    yandex/clickhouse-presentations

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

  • https://t.me/clickhouse_ru
    @konstantin_ptr #65334 09:08 AM, 12 Sep 2018
    👍
  • https://t.me/clickhouse_ru
    @ITishkin #65335 09:08 AM, 12 Sep 2018
    Подскажите, если я делаю партиционирование таблицы по полю, нужно ли его включать в order by?
  • https://t.me/clickhouse_ru
    Если вам явно это поле не нужно в ORDER BY - тога не нужно.
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #65337 09:10 AM, 12 Sep 2018
    И ещё баг
    https://github.com/yandex/ClickHouse/issues/3111
    Error with VIEW and enable_optimize_predicate_expression #3111

    If option enable_optimize_predicate_expression = 1 and tables like this DROP TABLE IF EXISTS test1 DROP TABLE IF EXISTS test2 CREATE TABLE test1 (_id String) ENGINE=Memory CREATE TABLE test2 (_id String, userId String) ENGINE=Memory CREA...

  • https://t.me/clickhouse_ru
    @ITishkin ↶ Reply to #65336 #65338 09:11 AM, 12 Sep 2018
    По нему будет поиск. Т.е. нужно ли добавлять, если данные вроде как итак на куски побиты на диске будут
  • https://t.me/clickhouse_ru
    @crazyproger #65339 09:13 AM, 12 Sep 2018
    @konstantin_ptr по low cardinality string, подскажите, это уже вошло в какой либо релиз(и в какой возможно войдет)? https://github.com/yandex/ClickHouse/blob/master/CHANGELOG.md
    Здесь последний 18.6.0 и про эту фичу ни слова пока.
    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
    @dmitry_berezhnov #65340 09:13 AM, 12 Sep 2018
    Если у вас партиции по одному полю, а в первичном ключе (ORDER BY) другие поля. И в запросе есть условие на партиции и первичный ключ, тогда КХ сначала выберет нужные партиции, а дальше будет искать с использованием первичног ключа уже конкретных партиций
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    его не успели перевести на английский, см. https://github.com/yandex/ClickHouse/blob/master/CHANGELOG_RU.md
    18.12.13 зарелижен 19 часов назад
  • https://t.me/clickhouse_ru
    @ITishkin ↶ Reply to #65340 #65343 09:16 AM, 12 Sep 2018
    Спасибо, получается, что тогда в order by добавлять не нужно. Попробуем ещё залить тестовые данные и погонять.
  • https://t.me/clickhouse_ru
    @crazyproger #65344 09:16 AM, 12 Sep 2018
    Отличная новость! Спасибо!
  • https://t.me/clickhouse_ru
    @konstantin_ptr #65345 09:18 AM, 12 Sep 2018
    странно, только вчера развернул кликхаус)
  • https://t.me/clickhouse_ru
    Почитайте тут
    https://clickhouse.yandex/docs/ru/operations/table_engines/mergetree/
    "Выбор первичного ключа"
    Возможно я для ваших данных и запросов что-то не учёл
  • @678162732 #65347 09:25 AM, 12 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @akisin #65348 09:31 AM, 12 Sep 2018
    Подскажите пожалуйста, есть 3 шарда(по 2 реплики каждый), на каждый смотрит распределенная таблица со своим ключом. При попытке вставить данные на первом шарде в распределенную таблицу данные улетают на второй, соответственно данные на первом и третьем шарде не появляются. Возможна ли запись на три шарда одновременно через распределенные таблицы?
    Запрос
    cat /tmp/customer.csv | clickhouse-client --host=ch-shard01 --database=dfoodmart --query="INSERT INTO customer FORMAT CSV";
  • https://t.me/clickhouse_ru
    @ITishkin #65350 09:56 AM, 12 Sep 2018
    прошу прощения за глупый вопрос, а как вместо toYYYYMM(event_date) задать хранение партицы по неделям? и норм ли будет 48 партиц?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @ITishkin ↶ Reply to #65351 #65352 10:14 AM, 12 Sep 2018
    не, у меня вопрос глупее.. что написать вместо toYYYYMM(event_date) ?
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #65353 10:16 AM, 12 Sep 2018
    Вам нужно чтобы даты округлялись до начала недели?
    Так 2018-09-12 -> 2018-09-10 ?
  • @ztlpn #65354 10:17 AM, 12 Sep 2018
    можно toMonday(event_date)
  • @ztlpn #65355 10:18 AM, 12 Sep 2018
    48 партиций нормально
  • https://t.me/clickhouse_ru
    @ITishkin ↶ Reply to #65354 #65356 10:26 AM, 12 Sep 2018
    чёрт, спасибо :)
  • https://t.me/clickhouse_ru
    @negasus #65357 10:27 AM, 12 Sep 2018
    парни, если у меня новая реплика ругается Can not clone replica, because the 172.16.100.158 updated to new ClickHouse version При этом на обоих репликах select version() выдает 18.12.13 - куда мне покопать?
  • https://t.me/clickhouse_ru
    @ITishkin #65358 10:29 AM, 12 Sep 2018
    крайний вопрос... планирую создать в таблице поле Nested (хранить ключ-значение). Вопрос в том, насколько хорошо будут сжиматься данные? они будут сжиматься по каждой строчке в Nested, либо по полю целиком? В ORDER BY насколько я понимаю можно добавить ведь только название Nested столбца?
  • https://t.me/clickhouse_ru
    Подскажите, а в чем опасность бОльшего кол-ва партиций? Для повседневного бекапа очень удобно партиции по дням делать, что породит 365 партиций в год - могут быть какие-то проблемы?
  • @ztlpn #65360 10:32 AM, 12 Sep 2018
    Запросы, затрагивающие большое число партиций, будут работать неэффективно - будет много непоследовательных чтений с диска.
  • https://t.me/clickhouse_ru
    @ITishkin #65361 10:55 AM, 12 Sep 2018
    в общем указал в order by nested.value, бум надеяться, что ClickHouse будет сжимать данные по нему :)
  • https://t.me/clickhouse_ru
    @aschurov #65362 11:04 AM, 12 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
  • @avdot #65364 11:24 AM, 12 Sep 2018
    Добрый день. В какой момент ClickHouse для MergeTree перестаёт сливать куски одной партиции? Почему в конечном счёте партиция не состоит из одного куска. Есть какое-то ограничение по размеру куска, или по количеству записей, блоков?
  • https://t.me/clickhouse_ru
    @den_crane #65365 11:36 AM, 12 Sep 2018
    Задается в конфиге, 200 гб по умолчанию. max_bytes_to_merge_at_max_space_in_pool, можно задать/ поменять для каждой таблицы, но через редактирование {table_name}.sql (с detach/attach). Он не перестает мержить. Просто вы еще не подождали 1000 лет. Т.е. последние мержи трудоемки и зачастую бессмысленны, поэтому кх их отодвигает на попозже.
  • @avdot ↶ Reply to #65365 #65366 11:41 AM, 12 Sep 2018
    👍 спасибо!
  • https://t.me/clickhouse_ru
    @negasus #65367 11:43 AM, 12 Sep 2018
    парни, если в зукипере для разных реплик в ../replica_name/parts разные данные (не полные в одной реплике) - это значит еще не доехала репликация? Надо ждать? Как понять, что все идет штатно?
  • https://t.me/clickhouse_ru
    @den_crane #65368 11:44 AM, 12 Sep 2018
    В таблицах replication_queue смотрите
  • @avdot #65369 11:49 AM, 12 Sep 2018
    а такой вопрос в догонку, на сколько эффективнее запрос к партиции из одного куска, чем запрос к партиции из нескольких кусков, с использованием полей PK. Если кусков несколько, то CH придётся пробегать по всем кускам, и позиционироваться по разреженному индексу
  • @maxim_vorsobine #65370 11:49 AM, 12 Sep 2018
    А если в таблице replication_queue пусто?
  • https://t.me/clickhouse_ru
    значит все ОК, можно в system.parts посмотреть, там имена партов и размеры видны, можно сравнить по репликам.
  • https://t.me/clickhouse_ru
    один кусок лучше, но партиции это очень мощный инструмент для фильтрации, поэтому лучше ухудшить 99% запросов на 0.0001% , но 1% запросов улучшить на 400%
  • @maxim_vorsobine #65373 11:54 AM, 12 Sep 2018
    ок, но через 1000 лет мы действительно дождёмся слияния всех партиций за один и тот же год?
  • @maxim_vorsobine #65374 11:55 AM, 12 Sep 2018
    там есть близкие по размеру, и хотелось бы получить из них одну большую партицию
  • https://t.me/clickhouse_ru
    OPTIMIZE
  • https://t.me/clickhouse_ru
    Всегда можно не ждать и сделать OPTIMIZE руками
  • https://t.me/clickhouse_ru
    Опередил :)
  • @maxim_vorsobine #65378 11:56 AM, 12 Sep 2018
    Спасибо, попробуем!
  • https://t.me/clickhouse_ru
    @negasus ↶ Reply to #65368 #65379 11:56 AM, 12 Sep 2018
    если там пусто, но select partition, sum(rows) from system.parts where table = 'dsp_raw' group by partition дает разное кол-во строк. Надо чинить репликацию для этой таблицы?
  • https://t.me/clickhouse_ru
    @den_crane #65380 11:56 AM, 12 Sep 2018
    в 99.999% случаев из двух партиций по 100 вы получите одну по 200, и 0% прироста производительности, при этом 3 часа будет идти межр и три часа тормозить параллельные селекты.
  • https://t.me/clickhouse_ru
    @negasus #65381 11:57 AM, 12 Sep 2018
    хм. "правильная" реплика сейчас говорит в лог DB::Exception: Cannot write to ostream at offset 1030230037
  • https://t.me/clickhouse_ru
    При запросе к system.parts добавляйте условие на AND active
  • https://t.me/clickhouse_ru
    @negasus ↶ Reply to #65382 #65383 11:58 AM, 12 Sep 2018
    ничего не изменилось
  • @avdot #65384 11:59 AM, 12 Sep 2018
    Когда я ищу по ключевому полю и CH берёт разреженный индекс, минимальное значение для ключевого поля он знает сразу, по первой записи в файле разреженного индекса, и если искомое значение меньше его то может сразу пропустить этот куско, а знает ли он максимальные значение ключевых полей из индекса, или начинает читать его целиком? и как выполняет поиск, последовательно или бинарным поиском?
  • https://t.me/clickhouse_ru
    @den_crane #65385 12:01 PM, 12 Sep 2018
    не задумывался, индексы маленькие, лежат в ОЗУ (в специальном кеше).
  • https://t.me/clickhouse_ru
    @natka_kontur #65386 12:04 PM, 12 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @wawaka #65388 12:13 PM, 12 Sep 2018
    create table test_cardinality (x String) engine = MergeTree order by tuple();
    insert into test_cardinality (x) select concat('v', toString(number)) from numbers(10);
    alter table test_cardinality add column y LowCardinality(String);
    select * from test_cardinality;
    выдает ошибку
    Received exception from server (version 18.12.13):
    Code: 49. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Got empty stream in DataTypeWithDictionary::deserializeBinaryBulkStatePrefix: (while reading column y): (while reading from part /var/lib/clickhouse/data/vlk_test/test_cardinality/all_1_1_0/ from mark 0 with max_rows_to_read = 8192).
  • https://t.me/clickhouse_ru
    а dmesg и syslog что?
    у вас точно старый КХ остановился? проверьте ps
  • https://t.me/clickhouse_ru
    @negasus ↶ Reply to #65389 #65390 12:23 PM, 12 Sep 2018
    В общем, я прибил партиции в таблице сырых данных), так как у меня были нужны агрегированные данные. По итогу, в логе кликлахуса (не err) записи были, что "что-то идет" - но по факту кол-во строк не изменялось,. В общем, повторюсь, решил кардинально. Сейчас вроде все ок
  • https://t.me/clickhouse_ru
    @renatkalimullin #65391 12:29 PM, 12 Sep 2018
    Joined.
  • @medov_alexey #65393 01:22 PM, 12 Sep 2018
    Добрый день !

    Скажите пожалуйста, если выполнить SHOW TABLES FROM database

    Вьюхи тоже отобразятся ? или нужно выполнить SHOW VIEWS FROM database ?
  • @medov_alexey #65394 01:24 PM, 12 Sep 2018
    я верно понимаю что такого понятия как SHOW VIEWS в ClickHouse нет ?
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #65394 #65395 01:26 PM, 12 Sep 2018
    select * from system.tables where engine = 'MaterializedView'
  • @medov_alexey #65396 01:27 PM, 12 Sep 2018
    Окей спасибо !!!
  • Мне кажется это не совсем то
  • @medov_alexey #65398 01:40 PM, 12 Sep 2018
    Вот у меня есть база
  • @medov_alexey #65399 01:40 PM, 12 Sep 2018
    в которой есть обычные merge tree таблицы
  • @medov_alexey #65400 01:40 PM, 12 Sep 2018
    и есть несколько вьюх
  • @medov_alexey #65401 01:40 PM, 12 Sep 2018
    когда я выполняю запрос show tables from database
  • @medov_alexey #65402 01:40 PM, 12 Sep 2018
    я увижу только таблицы ? или таблицы + вьюхи ?
  • https://t.me/clickhouse_ru
    @Shegloff #65403 01:42 PM, 12 Sep 2018
    вьюхи тоже увидите
  • Спасибо большое =)
  • https://t.me/clickhouse_ru
    @ITishkin #65405 01:45 PM, 12 Sep 2018
    а разница между вьюхой и Merge только в том, что во втором случае запрос ваять не надо?
  • https://t.me/clickhouse_ru
    @Shegloff #65406 01:47 PM, 12 Sep 2018
    грубо говоря, мат.вьюха - это тоже обычная таблица, только с триггером
  • https://t.me/clickhouse_ru
    @ITishkin #65407 01:47 PM, 12 Sep 2018
    я про обычные, материализованные понятно
  • https://t.me/clickhouse_ru
    @Shegloff #65408 01:47 PM, 12 Sep 2018
    обычная вьюха это просто селект
  • https://t.me/clickhouse_ru
    @ITishkin #65409 01:48 PM, 12 Sep 2018
    вот я и пытаюсь понять, в чём профит Merge
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #65283 #65410 01:49 PM, 12 Sep 2018
    Если есть ключ семплирования то можно и по репликам запрос побить
  • https://t.me/clickhouse_ru
    @ITishkin #65411 01:49 PM, 12 Sep 2018
    может вместо Merge селект с юнион замутить?
  • @medov_alexey #65412 01:50 PM, 12 Sep 2018
    Меня просто попросили, составить список таблиц в базах. Я составил список, показал. А мне сказали чтобы я пересчитал еще раз. Сказали что нет некоторых вьюх.

    И тогда я подумал, что когда я составлял список таблиц выполнением команды "show tables from database" я получал только список таблиц, а вьюхи не получал.
  • @medov_alexey #65413 01:51 PM, 12 Sep 2018
    Сейчас проверил, действительно, команда show tables from database отображает в том числе вьюхи
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #65411 #65415 01:54 PM, 12 Sep 2018
    вот у меня есть две таблицы ReportsToday - она перезаливается раз в 10 минут, в ней сегодняшние данные, и есть ReportsDaily, в нее данные заливаются ночью за прошлые сутки. Чтобы не мутить юнион, я сделал таблу Reports с движком Merge, и просто селектирую из нее.
  • https://t.me/clickhouse_ru
    @ITishkin ↶ Reply to #65415 #65416 01:55 PM, 12 Sep 2018
    а не сравнивали разницу в скорости работы?
  • https://t.me/clickhouse_ru
    @Shegloff #65417 01:55 PM, 12 Sep 2018
    нет, таблицы небольшие
  • https://t.me/clickhouse_ru
    @Shegloff #65418 01:56 PM, 12 Sep 2018
    У Merge чтение автоматически распараллеливается, про унионы не в курсе
  • https://t.me/clickhouse_ru
    @Shegloff #65419 01:56 PM, 12 Sep 2018
    если нет, тогда Merge быстрее
  • https://t.me/clickhouse_ru
    @ITishkin #65420 01:57 PM, 12 Sep 2018
    уже что-то, спасибо. жаль в доке пояснений нет
  • https://t.me/clickhouse_ru
    @Shegloff #65421 01:57 PM, 12 Sep 2018
    это я из доки взял
  • @medov_alexey #65422 02:04 PM, 12 Sep 2018
    Скажите пожалуйста, а вьюхи имеют свойство реплицироватся ?
  • @medov_alexey #65423 02:04 PM, 12 Sep 2018
    то есть скажем если я создал одну вьюху, а потом отредактировал ее, то поменяется ли она на всех нодах ?
  • @medov_alexey #65424 02:06 PM, 12 Sep 2018
    Создаёт представление. Представления бывают двух видов - обычные и материализованные (MATERIALIZED).

    При создании материализованного представления, нужно обязательно указать ENGINE - движок таблицы для хранения данных.

    Материализованное представление работает следующим образом: при вставлении данных в таблицу, указанную в SELECT, часть вставленных данных конвертируется запросом, а результат вставляется в представление.

    Обычные представления не хранят никаких данных, а всего лишь производят чтение из другой таблицы. То есть, обычное представление - не более чем сохранённый запрос. При чтении из представления, этот сохранённый запрос, используется в качестве подзапроса в секции FROM.
  • @medov_alexey #65425 02:06 PM, 12 Sep 2018
    То есть чтобы создать реплицируюую вьюху нужно создать матеарилизованую вьюху ?
  • https://t.me/clickhouse_ru
    @dzarlax #65426 02:24 PM, 12 Sep 2018
    Joined.
  • @medov_alexey #65427 02:40 PM, 12 Sep 2018
    Вот я создал вьюху на всех четырех нодах.
    Потом сделал Альтер вьюхи на одной ноде.
    Можно ли сделать вьюху реплицируемой чтобы вручную на всех нодах не редактировать ?
  • https://t.me/clickhouse_ru
    @Shegloff #65428 02:46 PM, 12 Sep 2018
    можно
  • https://t.me/clickhouse_ru
    @Shegloff #65429 02:46 PM, 12 Sep 2018
    мат.вьюха это по сути обычная таблица
  • https://t.me/clickhouse_ru
    @Shegloff #65430 02:47 PM, 12 Sep 2018
    репликация будет работать также, как и для обычных таблиц
  • @medov_alexey #65431 02:47 PM, 12 Sep 2018
    У нас создано много вьюх, но обычных, без указания engine. Их можно перевезти в реплицируемые Merge Tree ? или нужно будет пересоздать ?
  • https://t.me/clickhouse_ru
    Пересоздавать руками
  • @medov_alexey #65433 02:50 PM, 12 Sep 2018
    @Shegloff @Krashuevina Спасибо большое за оперативные ответы !
  • https://t.me/clickhouse_ru
    @salttan ↶ Reply to #65357 #65434 02:51 PM, 12 Sep 2018
    У меня случилось что-то похожее.
    Было создано несколько новых таблиц on cluster, на ноде с версией 18.1.0. Нода с версией 18.12.13 создала таблицу, но не смогла данные скачать, писала Can not clone replica, because the 'Хост-инициатор' updated to new ClickHouse version (что неправда, там как раз старее версия стояла).
    Причем некоторые таблицы успешно создались. А некоторые из тех, которые ругались, были пустые.
    Мне помог апгрейд ноды, на которой создание таблиц запущено было. После ее рестарта все само починилось
  • https://t.me/clickhouse_ru
    @negasus ↶ Reply to #65434 #65435 02:52 PM, 12 Sep 2018
    Мне в итоге помогло удаление из зукипера узлов со старыми нерабочими репликами. Типа /clickhouse/tables/1-1/balance/replica_name/replicas/10.10.10.10 - где последний IP - этой реплики уже не было
  • https://t.me/clickhouse_ru
    @salttan ↶ Reply to #65427 #65436 02:54 PM, 12 Sep 2018
    Реплицируются данные, а не определение вьюх/таблиц/чего угодно.
    DDL или вручную на всех нодах запускать надо, или ON CLUSTER
  • @medov_alexey #65437 02:58 PM, 12 Sep 2018
    А, то есть если таблица поменяет структуру
  • @medov_alexey #65438 02:59 PM, 12 Sep 2018
    Придется вручную менять
  • @medov_alexey #65439 02:59 PM, 12 Sep 2018
    На всех нодах
  • @medov_alexey #65440 02:59 PM, 12 Sep 2018
    Так ?
  • @medov_alexey #65441 02:59 PM, 12 Sep 2018
    Например я добавил ещё один столбец
  • https://t.me/clickhouse_ru
    @Shegloff #65442 03:03 PM, 12 Sep 2018
    Запрос ALTER на изменение столбцов реплицируется.
  • https://t.me/clickhouse_ru
    @salttan #65443 03:03 PM, 12 Sep 2018
    ALTER для Replicated* таблиц реплицируется 🙂
  • https://t.me/clickhouse_ru
    @salttan #65444 03:08 PM, 12 Sep 2018
    но его надо запустить на каждом шарде отдельно
  • https://t.me/clickhouse_ru
    @yourock88 #65445 03:08 PM, 12 Sep 2018
    Да, это странный момент, потому что в итоге ALTER TABLE … ON CLUSTER не работает, как ожидается
  • https://t.me/clickhouse_ru
    @yourock88 #65446 03:08 PM, 12 Sep 2018
    Или это уже починили?
  • @medov_alexey #65447 03:11 PM, 12 Sep 2018
    Спасибо всем за ответы
  • https://t.me/clickhouse_ru
    он работает как ожидается, просто разработчики ожидали то как работает, а вы ожидаете что-то свое. Причем там много факторов включая настройку internal_replication.
  • https://t.me/clickhouse_ru
    @den_crane #65449 03:26 PM, 12 Sep 2018
    но вообще из-за асинхронности On Cluster работает асинхронно, поэтому на проде использовать -- как повезет
  • https://t.me/clickhouse_ru
    Плюсую. Только под пристальным присмотром и вручную выполнять :)
  • https://t.me/clickhouse_ru
    Вроде если все ноды живы, то все-таки запрос проходит синхронно. Пока что ни разу не сталкивался с обратным 🙂
  • https://t.me/clickhouse_ru
    @molo4ko007 #65452 03:29 PM, 12 Sep 2018
    привет. никто не в курсе, что с этим делать?
    2018.09.12 15:28:20.475279 [ 45 ] DB::StorageReplicatedMergeTree::queueTask()::<lambda(DB::StorageReplicatedMergeTree::LogEntryPtr&)>: Code: 49, e.displayText() = DB::Exception: Part 20180907_20180912_53493_100624_10153 intersects next part 20180912_20180912_100614_100629_3 (state Committed). It is a bug., e.what() = DB::Exception, Stack trace:
  • https://t.me/clickhouse_ru
    @molo4ko007 #65453 03:32 PM, 12 Sep 2018
    версия 18.5.1, может, в новых пофикшено?
  • https://t.me/clickhouse_ru
    @molo4ko007 #65454 03:34 PM, 12 Sep 2018
    и насколько это критично для дальнейшего функционирования
  • https://t.me/clickhouse_ru
    @proller #65455 03:36 PM, 12 Sep 2018
    если часто повторяется - может грузить сеть-cpu
  • https://t.me/clickhouse_ru
    @molo4ko007 #65456 03:40 PM, 12 Sep 2018
    последний час идет
    и на этой машине график replicated_part_failed_fetches_total в районе 20-25 держится
  • https://t.me/clickhouse_ru
    @zion_o_zaur #65457 03:42 PM, 12 Sep 2018
    прочитал чейнджлоги, нихрена из них не понял актуальный статус типа данных UUID
    им уже можно пользоваться, или лучше таки не рисковать и пользовать что то из
    FixedString(16) или два поля ( UInt64 + UInt64 )?

    Что вообще лучше? (планируется использование для group by и в качестве аргумента для uniq[Exact])
  • https://t.me/clickhouse_ru
    @molo4ko007 #65458 03:50 PM, 12 Sep 2018
    пытался читать код, ничего не понял. есть шанс, что они пропадут со временем сами или нужно что-то делать?
  • https://t.me/clickhouse_ru
    @proller ↶ Reply to #65456 #65459 04:00 PM, 12 Sep 2018
    всмысле много и повторяются такие ошибки? тогда возможно что оно скачивает куски и сразу их удаляет в цикле
  • https://t.me/clickhouse_ru
    @molo4ko007 #65460 04:07 PM, 12 Sep 2018
    да, в логах также есть сообщения про удаление, поэтому и вопрос - стоит ждать, что оно сойдется к какой-то неподвижной точке?
  • https://t.me/clickhouse_ru
    @proller #65461 04:08 PM, 12 Sep 2018
    если пишет its a bug и все премя одинаковое название part - не сойдется, надо найти в каком оно partition и сделать detach, attach
  • https://t.me/clickhouse_ru
    @proller #65462 04:09 PM, 12 Sep 2018
    найти partition - :) select partition from system.parts where name='20180521_46_63_4' limit 10;
  • https://t.me/clickhouse_ru
    @proller #65463 04:09 PM, 12 Sep 2018
    проверить потом сколько на диске - select SUM(bytes_on_disk) from system.parts where partition='\'2018-05-21\'' ;
  • https://t.me/clickhouse_ru
    @proller #65464 04:11 PM, 12 Sep 2018
    Делаем на лидере -
    :) ALTER TABLE db.tbl DETACH PARTITION '2018-05-21';
    :) ALTER TABLE db.tbl ATTACH PARTITION '2018-05-21';
    Больше лишних скачиваний нет.

    Убеждаемся что в лишнем парте нет нужных данных
    :) ALTER TABLE db.tbl ATTACH PART '20180521_1_62_5';
    :) OPTIMIZE TABLE db.tbl PARTITION '2018-05-21' DEDUPLICATE;
  • https://t.me/clickhouse_ru
    @molo4ko007 #65465 04:13 PM, 12 Sep 2018
    ого, супер
  • https://t.me/clickhouse_ru
    @molo4ko007 #65466 04:14 PM, 12 Sep 2018
    а зачем проверять место на диске?
  • https://t.me/clickhouse_ru
    @molo4ko007 #65467 04:14 PM, 12 Sep 2018
    имею в виду, какой смысл в этом числе? должно быть 0?
  • https://t.me/clickhouse_ru
    @molo4ko007 #65468 04:15 PM, 12 Sep 2018
    а, и как узнать лидера?)
  • https://t.me/clickhouse_ru
    @proller ↶ Reply to #65467 #65469 04:16 PM, 12 Sep 2018
    если там очень много - то процесс может занять очень долго, должно быть больше 0
  • https://t.me/clickhouse_ru
    @proller ↶ Reply to #65468 #65470 04:18 PM, 12 Sep 2018
    SELECT * FROM system.replicas
    для нужной таблицы is_leader=1
  • https://t.me/clickhouse_ru
    @molo4ko007 #65471 04:19 PM, 12 Sep 2018
    а в каком куске я заинтересован? есть несколько кусков, которые intersects previous & intersects next, где left <= PART <= right, left/right - разные, а PART - всегда один и тот же кусок - я правильно понимаю, что это он проблемный?
  • https://t.me/clickhouse_ru
    @proller #65472 04:19 PM, 12 Sep 2018
    а, чтоб вообще такое не повторялось - обновить надо сервер , в 18.10.3 причина уже исправлена была
  • https://t.me/clickhouse_ru
    @molo4ko007 #65473 04:19 PM, 12 Sep 2018
    о, класс
    еще раз спасибо)
  • https://t.me/clickhouse_ru
    @proller ↶ Reply to #65471 #65474 04:21 PM, 12 Sep 2018
    который после ATTACH PARTITION останется на диске в detached/
  • https://t.me/clickhouse_ru
    @molo4ko007 #65475 04:22 PM, 12 Sep 2018
    19 гигабайт, ничего себе
  • https://t.me/clickhouse_ru
    @molo4ko007 #65476 04:34 PM, 12 Sep 2018
    сделал attach/detach, прошло практически мгновенно
  • https://t.me/clickhouse_ru
    @molo4ko007 #65477 04:36 PM, 12 Sep 2018
    в detached осталось несколько десятков директорий/кусков с префиксом inactive, стоит пытаться их приаттачивать?
  • https://t.me/clickhouse_ru
    @proller #65478 04:36 PM, 12 Sep 2018
    а время изменеиня какое? может что-то старое
  • https://t.me/clickhouse_ru
    @molo4ko007 #65479 04:51 PM, 12 Sep 2018
    cегодняшние, в районе 10 утра.
    но выхлоп такой:
    Code: 226, e.displayText() = DB::Exception: No columns in part 20180912_20180912_101361_101361_0, e.what() = DB::Exception
    ошибки из логов пропали, все устаканилось
  • https://t.me/clickhouse_ru
    @molo4ko007 #65480 04:51 PM, 12 Sep 2018
    (выхлоп попытки приаттачить)
  • @cinder2 #65481 06:13 PM, 12 Sep 2018
    Привет, может кто-то сталкивался с ошибкой при создании реплицируимой таблицы ZooKeeperImpl::Exaption: Marshalling error, path: /clickhouse/tables/01/clusterA/table_name/log ?
    Подозреваю что проблема с zookeepr но как пофиксить не знаю. Может можно как-то кластер пересоздать ? Пробовал удалять в zookeeper path, zkCli.sh валится с ошибкой.
  • https://t.me/clickhouse_ru
    @orloffv #65482 08:24 PM, 12 Sep 2018
    Привет. а как на мак cli client поставить?
  • https://t.me/clickhouse_ru
    @den_crane #65483 08:25 PM, 12 Sep 2018
    клиент это на самом деле тот же бинарь что и сервер, поэтому либо собирать, либо докер.
  • https://t.me/clickhouse_ru
    @Alesapin ↶ Reply to #65274 #65484 08:33 PM, 12 Sep 2018
    Привет, а можешь побольше логов приложить? Желательно с trace-уровнем.
    Ну и заодно конфиг словаря, /etc/odbc.ini и /etc/odbcinst.ini.
  • https://t.me/clickhouse_ru
    @Alesapin #65485 09:36 PM, 12 Sep 2018
    Кажется логи не нужны, нашли баг (воспроизводится при наличии invalidate_query у odbc-словарей), скоро будет новый релиз с фиксом.
  • Если один кусок - тоже всё распараллеливается.
  • Это экспериментальная функциональность. Доступна для тестирования.
  • @v_sotnikov #65488 09:58 PM, 12 Sep 2018
    Joined.
  • 13 September 2018 (208 messages)
  • Это говорит о том, что в директории /clickhouse/tables/01/clusterA/table_name/log очень много нод. Нужно вручную удалить наиболее старые записи.
  • С inactive директориями ничего делать не нужно. Разве что их можно удалить.
  • Тип данных UUID начинает полноценно поддерживаться в ClickHouse. Вы можете использовать его по прямому назначению. Любые оставшиеся недоработки будем исправлять в первую очередь.
  • UNION ALL тоже распараллеливается.
  • @Neekees #65493 03:29 AM, 13 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @ealebed ↶ Reply to #65485 #65494 05:45 AM, 13 Sep 2018
    конфиг словаря:

    <dictionaries>
    <dictionary>
    <name>bundle_ids</name>
    <source>
    <odbc>
    <connection_string>DSN=postgres_dashboard</connection_string>
    <table>bundle_ids</table>
    </odbc>
    </source>
    <lifetime>
    <min>300</min>
    <max>360</max>
    </lifetime>
    <layout>
    <hashed/>
    </layout>
    <structure>
    <id>
    <name>id</name>
    </id>
    <attribute>
    <name>content</name>
    <type>String</type>
    <null_value></null_value>
    </attribute>
    </structure>
    </dictionary>
    </dictionaries>

    содержимое /etc/odbc.ini:

    [DEFAULT]
    Driver = postgres_dashboard

    [postgres_dashboard]
    Description = PostgreSQL connection to dashboard
    Driver = PostgreSQL Unicode
    Database = dashboard
    Servername = ip-address
    UserName = user
    Password = superStrongPass
    Port = 5432
    Protocol = 9.6
    ReadOnly = Yes
    RowVersioning = No
    ShowSystemTables = No
    ConnSettings =

    [postgres_booking_tool]
    Description = PostgreSQL connection to booking tool
    Driver = PostgreSQL Unicode
    Database = booking_tool
    Servername = ip-address
    UserName = user
    Password = superStrongPass
    Port = 5432
    Protocol = 9.6
    ReadOnly = Yes
    RowVersioning = No
    ShowSystemTables = No
    ConnSettings =

    содержимое /etc/odbcinst.ini:

    [PostgreSQL ANSI]
    Description=PostgreSQL ODBC driver (ANSI version)
    Driver=psqlodbca.so
    Setup=libodbcpsqlS.so
    Debug=0
    CommLog=1
    UsageCount=1

    [PostgreSQL Unicode]
    Description=PostgreSQL ODBC driver (Unicode version)
    Driver=psqlodbcw.so
    Setup=libodbcpsqlS.so
    Debug=0
    CommLog=1
    UsageCount=1

    locate psqlodbca.so
    /usr/lib/x86_64-linux-gnu/odbc/psqlodbca.so

    Как видите, в моем случае invalidate_query не используется...
  • https://t.me/clickhouse_ru
    @ealebed ↶ Reply to #65485 #65495 05:57 AM, 13 Sep 2018
    По логам. Когда в логе ошибок есть

    2018.09.13 05:54:32.796610 [ 150 ] <Error> ExternalDictionaries: Cannot update external dictionary 'bundle_ids', leaving old version: Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = Host not found, e.what() = Host not found

    В логе с уровнем трейс вижу следующее:

    2018.09.13 05:54:32.795648 [ 150 ] <Trace> ODBCDictionarySource: SELECT id, content FROM bundle_ids;
    2018.09.13 05:54:32.795671 [ 150 ] <Trace> ReadWriteBufferFromHTTP: Sending request to http://localhost:9018/ping
    2018.09.13 05:54:32.796610 [ 150 ] <Error> ExternalDictionaries: Cannot update external dictionary 'bundle_ids', leaving old version: Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = Host not found, e.what() = Host not found

    остальные записи в логе, насколько я могу судить, к обновлению не относятся...
  • https://t.me/clickhouse_ru
    @agkrishtalev #65496 06:21 AM, 13 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @ixomaxip #65497 06:23 AM, 13 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Alesapin ↶ Reply to #65495 #65498 06:31 AM, 13 Sep 2018
    А localhost резолвится вообще? Если попробовать ping localhost?
  • https://t.me/clickhouse_ru
    @ealebed ↶ Reply to #65498 #65499 06:47 AM, 13 Sep 2018
    Да, с этим проблем нет:

    ping localhost
    PING localhost.localdomain (127.0.0.1) 56(84) bytes of data.
    64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=1 ttl=64 time=0.010 ms
    64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=2 ttl=64 time=0.031 ms
  • https://t.me/clickhouse_ru
  • @symmetriac #65501 07:26 AM, 13 Sep 2018
    Joined.
  • @madms #65502 08:26 AM, 13 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Alesapin ↶ Reply to #65499 #65503 08:42 AM, 13 Sep 2018
    Посмотрел код ещё раз. Действительно будет стрелять для odbc hashed-словарей и без invalidate_query. Фикс уже есть, скоро соберём релиз.
  • https://t.me/clickhouse_ru
    @ealebed ↶ Reply to #65503 #65504 08:43 AM, 13 Sep 2018
    Спасибо, ждем!
  • @Ivanuska #65505 08:48 AM, 13 Sep 2018
    Подозреваю что вопрос уже был и не раз, но всё же: первичный ключ в *MergeTree таблицах. Использую CollapsingMergeTree, соответственно должен добавить в ключ колонку с id-шником, а у него высокая кардинальность (практически уникальный). Стоит ли вместо (xx,xxx,xxxx,id) сделать (xx,xxx,xxxx,hash(id),id), где hash(id) понизит кардинальность такого поля на несколько порядков ( (xx,xxx,xxxx) обладает малой кардинальностью)? Конечно hash(id) больше index_granularity во многих случаях, в каких случаях это даст выигрыш в производительности? hash(id) не очень дорогая функция.
  • @682294320 #65506 08:50 AM, 13 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @dzarlax #65507 09:25 AM, 13 Sep 2018
    Привет. Подскажите пожалуйста, а как вытащить последний не нулевой элемент массива в ячейке?
    У меня есть столбец с массивами, но все они разной длины. Если беру просто arr[-1], то он мне почти везде 0 выдает.
  • https://t.me/clickhouse_ru
    select arrayFilter(x -> x !=0, [1,2,3,0,2,0])[-1];
  • https://t.me/clickhouse_ru
    @dzarlax ↶ Reply to #65508 #65509 09:28 AM, 13 Sep 2018
    Спасибо огромное!
  • https://t.me/clickhouse_ru
    Подскажи, что значит эта часть? [1,2,3,0,2,0]
  • https://t.me/clickhouse_ru
    @dzarlax ↶ Reply to #65510 #65511 09:30 AM, 13 Sep 2018
    Это сам массив
  • https://t.me/clickhouse_ru
    Аааа, всё спс.
  • https://t.me/clickhouse_ru
    @thebits #65513 10:03 AM, 13 Sep 2018
    Joined.
  • @VladimirKoptev #65514 10:38 AM, 13 Sep 2018
    всем привет. это нормально, что текущая партиция в system.parts содержит на 2 порядка больше кусков, чем предыдущая? 1000 против 30-40
    на ровном месте повалили мержи, пытаюсь разобраться, почему
  • @kalombos #65515 10:57 AM, 13 Sep 2018
    Подскажите, как в кликхаус сделать следующий запрос из постгреса https://dumpz.org/cYffQYBgRsBc То есть в нем, я для каждого dimension1 получаю цену с самой последней датой.
    source code in SQL

    source code in SQL from Anonymous.

  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #65515 #65516 11:03 AM, 13 Sep 2018
    ORDER BY datetimeadded DESC LIMIT 1 BY dimension1
  • https://t.me/clickhouse_ru
    @easya #65517 11:05 AM, 13 Sep 2018
    SELECT *
    FROM system.metrics
    WHERE metric = 'MemoryTracking'

    ┌─metric─────────┬────────value─┬─description──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
    │ MemoryTracking │ -69765993365 │ Total amount of memory (bytes) allocated in currently executing queries. Note that some memory allocations may not be accounted. │
    └────────────────┴──────────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
    скажите, а это фича или баг?
    Версия КХ - 18.12.13
  • https://t.me/clickhouse_ru
    @343206394 #65518 11:06 AM, 13 Sep 2018
    Добрый день
    Скажите а как объяснить что кол во селектов больше чем общее кол во запросов,
  • https://t.me/clickhouse_ru
    @343206394 #65519 11:07 AM, 13 Sep 2018
    tsf-data24.us.com :) select * from system.events;

    SELECT *
    FROM system.events

    ┌─event───────────────────────────────────┬───────────value─┐
    │ Query │ 68848667 │
    │ SelectQuery │ 101904153 │
    │ InsertQuery │ 513217 │
    │ FileOpen │ 2778419186 │
  • @kalombos ↶ Reply to #65516 #65520 11:20 AM, 13 Sep 2018
    Спасибо
  • @medov_alexey #65521 11:25 AM, 13 Sep 2018
    Не пойму в чем прикол. Есть таблица в которой есть столбец с типом "Date".
    Вставляю в него текущее UnixTime время, потом смотрю селектом что вставилось. А там 2020-08-06
  • @medov_alexey #65522 11:26 AM, 13 Sep 2018
    Взял время из интернета, тогда показал вообще 2020-03-16
  • https://t.me/clickhouse_ru
    @Shegloff #65523 11:26 AM, 13 Sep 2018
    а зачем вы время вставляете в Date
  • https://t.me/clickhouse_ru
    @Shegloff #65524 11:26 AM, 13 Sep 2018
    в Date надо вставлять дату
  • @medov_alexey #65525 11:26 AM, 13 Sep 2018
    Бля
  • @medov_alexey #65526 11:26 AM, 13 Sep 2018
    точно
  • @medov_alexey #65527 11:26 AM, 13 Sep 2018
    ссорян
  • @medov_alexey #65528 11:26 AM, 13 Sep 2018
    за мат
  • @medov_alexey #65529 11:26 AM, 13 Sep 2018
    спасибо =)
  • https://t.me/clickhouse_ru
    @stufently #65530 11:26 AM, 13 Sep 2018
    этож не datetime
  • @medov_alexey #65531 11:26 AM, 13 Sep 2018
  • Спасибо !
  • https://t.me/clickhouse_ru
    @LvLilya #65533 11:36 AM, 13 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Mike_Er #65534 11:42 AM, 13 Sep 2018
    Коллеги, а не подкажете в какую сторону копать на тему "2018.09.13 14:40:54.368711 [ 8 ] <Error> dnl_int.dnl_log_local (StorageReplicatedMergeTree): DB::StorageReplicatedMergeTree::queueTask()::<lambda(DB::StorageReplicatedMergeTree::LogEntryPtr&)>: Code: 10, e.displayText() = DB::Exception: Not found column size in block. There are only columns: , e.what() = DB::Exception" - колонка такая в самой таблице конечн же есть. Ругается на много подобных таблиц и только на поле size. С какой стороны начинать поиск?
  • https://t.me/clickhouse_ru
    @moonpie #65535 12:09 PM, 13 Sep 2018
    Привет всем.
    Я тут попробовал подключить монгу в качестве словаря и столкнулся с невозможностью прокинуть поля из вложенных структур. Т.е. все верхнеуровневые поля видны нормально, а глубже уже нет. В конфиге имя атрибута указываю как Structure.FieldName, но возвращается пустое значение. Никто не сталкивался с подобным поведением?
  • https://t.me/clickhouse_ru
    @msnezhkov #65537 12:17 PM, 13 Sep 2018
    Всем привет. Подскажите пожалуйста формат отправки метрик с тегами в carbon-clickhouse чем то отличается от нативного в graphite? Пробую вот так echo "my.awesome.metric1;tag1=sd;tag2=xz 11 $(date +%s)" | nc -w0 carbon-clickhouse 2003 и ничего не падает в кх.
  • https://t.me/clickhouse_ru
    @msnezhkov #65538 12:17 PM, 13 Sep 2018
    не уверен что вопрос про кх, пойду продублирую в метрики его
  • @DrDareka #65539 12:25 PM, 13 Sep 2018
    подскажите, пожалуйста, нужно сделать INSERT SELECT FROM CROSS JOIN - все время упираюсь в нехватку памяти. Он то ли всю таблицу в голове пытается удержать, не пойму. Отдельные строки вроде большие, но не запредельные...
  • Пытается
  • @DrDareka ↶ Reply to #65540 #65541 12:37 PM, 13 Sep 2018
    А в файл выгрузить и загрузить не поможет? Все равно сначала в памяти создаст?
  • @mfilimonov #65542 12:37 PM, 13 Sep 2018
    А вам правда нужен именно CROSS джойн?
  • @mfilimonov #65543 12:39 PM, 13 Sep 2018
    Обычно в КХ хранят таблицы размерами в несколько миллионов строк (или миллиардов / триллионов). При CROSS джойн "на выходе" количество строк равно количеству строк в первой таблице, умноженному на количество строк в другой таблице. Если миллионы умножать на миллионы то сложно ожидать что в памяти поместится.
  • @DrDareka #65544 12:46 PM, 13 Sep 2018
    У меня нетипичный случай. 10000 строк. Может правда что-то другое подойдёт лучше. Кстати, он что-то успевает насовать, хоть и падает. Наверно строки тяжёлые. Массивы.
  • @mfilimonov #65545 12:46 PM, 13 Sep 2018
    ок, а нет ли какого-то условия для сужения слияния? Вам точно нужно именно каждый с каждым?
  • @DrDareka #65546 12:52 PM, 13 Sep 2018
    Мне нужно все разные пары. Но с условием на различие падает ещё быстрее. Я пробовал поэтапно делать, с промежуточными таблицами.
  • @medov_alexey #65547 12:57 PM, 13 Sep 2018
    Методом тыка удалось создать реплицируемую таблицу
  • @medov_alexey #65548 12:57 PM, 13 Sep 2018
    CREATE TABLE lexa_test
    (
    id Int64,
    i_env Int64,
    i_customer Int64,
    i_account Int64,
    creation_date Date
    )
    ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/lexa_test', '{replica}', creation_date, creation_date, 8192)
  • @medov_alexey #65549 12:57 PM, 13 Sep 2018
    но что это за параметры такие
  • @medov_alexey #65550 12:57 PM, 13 Sep 2018
    creation_date, creation_date
  • @medov_alexey #65551 12:57 PM, 13 Sep 2018
    если их не указывать
  • @medov_alexey #65552 12:57 PM, 13 Sep 2018
    не создается реплицируемая таблица
  • https://t.me/clickhouse_ru
    @stufently #65553 12:58 PM, 13 Sep 2018
    ключ партицирования и праймери кей
  • @medov_alexey #65554 12:58 PM, 13 Sep 2018
    это обязательные параметры получается ?
  • https://t.me/clickhouse_ru
    @stufently #65555 12:59 PM, 13 Sep 2018
    ну а как движок будет без них то
  • https://t.me/clickhouse_ru
    единственный вариант выполнить 10000 insert для каждой строки по 1.
  • @medov_alexey #65557 01:00 PM, 13 Sep 2018
    Ладно я знаю что такое первичный ключ
  • @medov_alexey #65558 01:00 PM, 13 Sep 2018
    а что такое ключ партицирования ? простыми словами
  • @medov_alexey #65559 01:00 PM, 13 Sep 2018
    для чего он нужен ?
  • @medov_alexey #65560 01:00 PM, 13 Sep 2018
    не пойму
  • @medov_alexey #65561 01:03 PM, 13 Sep 2018
    Я просто хочу перевезти все текущие таблицы в реплицируемые. И сделать это максимально безболезнено. То есть по пути наименьшего сопротивления. Хочу обойтись минимальным количеством дополнительных параметров при создании реплицируемой таблицы.
  • @DrDareka ↶ Reply to #65556 #65562 01:04 PM, 13 Sep 2018
    скриптом? или есть какое-то заклинание?
  • https://t.me/clickhouse_ru
    чтобы виртуально разделить таблицу на несколько ( для ускорения select и для простоты управления таблицей ).

    у вас два клиента -- партиционируем по клиенту ( select where client = 1 затрагивает пол таблицы, клиент ушел, дропаем все его данные одной командой ) .

    Или партиционируем по-месячно, и запросы затрагивающие один, два... месяца ускоряются, и данные страше 4 месяцев легко удалить.

    Первичный ключ для уменьшия занимаего места на диске, из-за сортировки, и опять-же для некоторого ускорения select.
  • https://t.me/clickhouse_ru
    скриптом
  • Спасибо) правда я ничего не понял, но я так понимаю я могу указать любой столбец из таблицы, и оно будет работать.
  • https://t.me/clickhouse_ru
    логично там дате ложить
  • https://t.me/clickhouse_ru
    хуже того, можно указать любую комбинацию выражений, это базовый и очень мощный инструмент.
    partition by (x%2, a, sha666(d))
    patrition by tuple()
  • https://t.me/clickhouse_ru
    @calculating_infinity #65568 01:09 PM, 13 Sep 2018
    добрый день
    Имеется следующая ситуация:
    Linux Debian-94-stretch-64-LAMP 4.9.0-6-amd64 #1 SMP Debian 4.9.82-1+deb9u3 x86_64 GNU/Linux
    Версия КХ - 1.1.54394

    Результат df -h:
    Filesystem Size Used Avail Use% Mounted on
    udev 32G 0 32G 0% /dev
    tmpfs 6.3G 506M 5.8G 8% /run
    /dev/md2 2.0T 974G 907G 52% /
    tmpfs 32G 4.0K 32G 1% /dev/shm
    tmpfs 5.0M 0 5.0M 0% /run/lock
    tmpfs 32G 0 32G 0% /sys/fs/cgroup
    /dev/md1 488M 38M 424M 9% /boot
    /dev/md3 42T 14T 27T 34% /home
    tmpfs 6.3G 0 6.3G 0% /run/user/1005
    tmpfs 6.3G 0 6.3G 0% /run/user/1001
    tmpfs 6.3G 0 6.3G 0% /run/user/0

    Я далек от администрирования и не очень соображаю в устройстве raid, но КХ явно хранит данные в /dev/md2, а хотелось бы конечно использовать память из /dev/md3.
    Подскажите пожалуйста, можно ли это изменить в настройках КХ или следует менять что-то в ОС? Уместно ли спросить о каких-то best practice в данном случае?
  • https://t.me/clickhouse_ru
    @den_crane #65569 01:12 PM, 13 Sep 2018
    я бы смонтировал в линуксе md3 в /var/lib/clickhouse
  • @medov_alexey #65570 01:13 PM, 13 Sep 2018
    Тут всплыла подсказка, при ошибочном создании таблицы типа ReplicatedMergeTree

    ReplicatedMergeTree('/clickhouse/tables/{layer}-{shard}/hits', '{replica}', EventDate, intHash32(UserID), (CounterID, EventDate, intHash32(UserID), EventTime), 8192)

    То есть вместо EventDate я должен указать из своей таблицы столбец с датой
    А вместо (CounterID, EventDate, intHash32(UserID), EventTime) указать стоблец с первичным ключом.

    Верно понимаю ?
  • https://t.me/clickhouse_ru
    @stufently #65571 01:13 PM, 13 Sep 2018
    в праймери кее вы должны указать праймери кей который будет ускорять ваши запросы
  • Скажите пожалуйста, а где в этом тексте

    ReplicatedMergeTree('/clickhouse/tables/{layer}-{shard}/hits', '{replica}', EventDate, intHash32(UserID), (CounterID, EventDate, intHash32(UserID), EventTime), 8192)

    PrimaryKey ?
  • https://t.me/clickhouse_ru
    @den_crane #65573 01:14 PM, 13 Sep 2018
    первичный ключ -- это ключ сортировки, его назвали неправильно в КХ, чтобы всех запутать.
  • https://t.me/clickhouse_ru
    @kshvakov #65574 01:15 PM, 13 Sep 2018
    Это была не единственная причина )
  • Так где получается в этом списке

    ReplicatedMergeTree('/clickhouse/tables/{layer}-{shard}/hits', '{replica}', EventDate, intHash32(UserID), (CounterID, EventDate, intHash32(UserID), EventTime), 8192)

    Primary Key ?
  • @medov_alexey #65576 01:16 PM, 13 Sep 2018
    Это EventDate ? или CounterID ?
  • @medov_alexey #65577 01:16 PM, 13 Sep 2018
    не пойму
  • @terrifilch #65578 01:17 PM, 13 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @defval #65579 01:17 PM, 13 Sep 2018
    (CounterID, EventDate, intHash32(UserID), EventTime)
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #65575 #65580 01:17 PM, 13 Sep 2018
    Это старый синтаксис, тут дата - это ключ партиционирования, потом ключ семплирования и сам ПК он задает сортировку
  • https://t.me/clickhouse_ru
    @orantius #65581 01:18 PM, 13 Sep 2018
    должно быть
    партиционирование по EventDate,
    семплирование по intHash32(UserID),
    сортировка по (CounterID, EventDate, intHash32(UserID), EventTime)
  • Так значит
  • @medov_alexey #65583 01:18 PM, 13 Sep 2018
    понял
  • @medov_alexey #65584 01:18 PM, 13 Sep 2018
    не просто
  • @medov_alexey #65585 01:18 PM, 13 Sep 2018
    сложно даже)
  • @medov_alexey #65586 01:18 PM, 13 Sep 2018
    спасибо всем !
  • @medov_alexey #65587 01:18 PM, 13 Sep 2018
    =)
  • https://t.me/clickhouse_ru
    @defval #65588 01:19 PM, 13 Sep 2018
    Используй новый синтаксис он понятнее будет)
  • @medov_alexey #65589 01:19 PM, 13 Sep 2018
    А где его почитать ?
  • https://t.me/clickhouse_ru
  • Вот про это речь ?

    ENGINE [=] MergeTree() [PARTITION BY expr] [ORDER BY expr] [SAMPLE BY expr] [SETTINGS name=value, ...]
  • @medov_alexey #65592 01:21 PM, 13 Sep 2018
    Где Order By - это первичный ключ
  • https://t.me/clickhouse_ru
    @defval ↶ Reply to #65592 #65593 01:22 PM, 13 Sep 2018
    Угу
  • @medov_alexey #65594 01:22 PM, 13 Sep 2018
    Понял. Спасибо, буду игратся)
  • https://t.me/clickhouse_ru
    т.е. сделать /dev/md3 mounted on /var/lib/clickhouse?
    а где в таком случае будет храниться то что уже есть в /home ?
  • https://t.me/clickhouse_ru
    @den_crane #65596 01:46 PM, 13 Sep 2018
    ну так перенесите куда-нибудь, откуда я знаю куда вам надо
  • https://t.me/clickhouse_ru
    @calculating_infinity #65597 01:48 PM, 13 Sep 2018
    но само хранение данных КХ в любом случае не вариант никуда переносить, верно?
  • @medov_alexey #65598 01:48 PM, 13 Sep 2018
    Все разобрался. Вдруг кто то такой же глупый как и я, будет искать пример создания по новому синтаксису, таблицы на движке Replicated Merge Tree.

    Поясняю.

    ==============================

    CREATE TABLE lexa_test
    (
    id Int64,
    i_env Int64,
    i_customer Int64,
    i_account Int64,
    creation_date Date
    )
    ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/lexa_test', '{replica}')
    PARTITION BY creation_date
    ORDER BY id

    в PARTITION BY нужно указать имя столбца с типом данных Date
    а в ORDER BY нужно указать стоблец который будет первичным ключом

    #пример #ReplicatedMergeTree #новый #синтаксис
  • https://t.me/clickhouse_ru
    path
    Путь к каталогу с данными.
    Завершающий слеш обязателен.
    Пример
    <path>/var/lib/clickhouse/</path>
    https://clickhouse.yandex/docs/ru/operations/server_settings/settings/#path
  • https://t.me/clickhouse_ru
    PARTITION BY creation_date
    это по-дневные партиции

    PARTITION BY toYYYYMM(creation_date)
    по-месячные
  • Спасибо еще раз)
  • https://t.me/clickhouse_ru
    спасибо, проглядел.
    а будут ли перенесены уже существующие данные при изменении path?
  • https://t.me/clickhouse_ru
    нет (сдержал 5минутный рант с матами), как вообще такие идеи приходят?
  • https://t.me/clickhouse_ru
    ну мало ли.
  • https://t.me/clickhouse_ru
    @calculating_infinity #65605 01:59 PM, 13 Sep 2018
    я просто действительно совсем слаб с линуксом и администрированием, и пытаюсь понять как лучше действовать, не будет ли это чревато геморроем в будущем после изменения дефолтной настройки и тп
  • https://t.me/clickhouse_ru
    @calculating_infinity #65606 01:59 PM, 13 Sep 2018
    извините за глупые вопросы
  • https://t.me/clickhouse_ru
    @den_crane #65607 02:02 PM, 13 Sep 2018
    а 42ТБ смонтировано в /home зачем? вертика?
  • https://t.me/clickhouse_ru
    @calculating_infinity #65610 02:02 PM, 13 Sep 2018
    вертики нет, так было изначально
  • https://t.me/clickhouse_ru
    @calculating_infinity #65611 02:03 PM, 13 Sep 2018
    изначально = после установки ОС (делалось не мной)
  • https://t.me/clickhouse_ru
    @den_crane #65612 02:03 PM, 13 Sep 2018
    круто, ржачно.
  • https://t.me/clickhouse_ru
    @stufently #65613 02:05 PM, 13 Sep 2018
    да сделатьпросто симлинк в папку кликхауса и ок
  • https://t.me/clickhouse_ru
    @nicname #65614 02:05 PM, 13 Sep 2018
    а вот я смотрю SHOW CREATE TABLE таблицы которая оч давно создавалась (в старом формате еще) и там такое
    ENGINE = MergeTree ORDER BY DateStamp SETTINGS index_granularity = 8192
    это что значит, без партиций создавалось вообще?
  • https://t.me/clickhouse_ru
    @stufently #65615 02:06 PM, 13 Sep 2018
    без партиций не бывает в кх
  • @medov_alexey #65616 02:07 PM, 13 Sep 2018
    @den_crane а вы случаем не занимались преобразованием из MergeTree в ReplicatedMergeTree ?

    Просто в инструкции:

    Переименуйте имеющуюся MergeTree таблицу, затем создайте со старым именем таблицу типа ReplicatedMergeTree. Перенесите данные из старой таблицы в поддиректорию detached в директории с данными новой таблицы (/var/lib/clickhouse/data/db_name/table_name/). Затем добавьте эти куски данных в рабочий набор с помощью выполнения запросов ALTER TABLE ATTACH PARTITION на одной из реплик.

    Не понимаю что имеется ввиду под:

    Перенесите данные из старой таблицы в поддиректорию detached в директории с данными новой таблицы (/var/lib/clickhouse/data/db_name/table_name/).

    А где данные старой таблицы лежат ?
    ls -la /var/lib/clickhouse/data/default/lexa_test_backup/

    19750711_19750711_1_1_0
    detached
    format_version.txt

    Мне папку состоящую в названии из чисел нужно перенести в
    /var/lib/clickhouse/data/default/lexa_test ?
  • https://t.me/clickhouse_ru
    @nicname ↶ Reply to #65615 #65617 02:07 PM, 13 Sep 2018
    а как понять с какой партицией создано? файлы так выглядят all_5458725_5458725_0
  • @ztlpn #65618 02:08 PM, 13 Sep 2018
    Таблица без партиционирования - all_* это одна большая партиция.
  • https://t.me/clickhouse_ru
    @nicname #65619 02:08 PM, 13 Sep 2018
    мм, то есть оно у меня не разбито реально?
  • @Evanushechkin #65620 02:09 PM, 13 Sep 2018
    Добрый вечер! Кто-нибудь сталкивался с проблемой подгрузки файла словарей. Три одинаковые ноды на одной файл подгружается на двух других нет. Влоги ни каких ошибок не пишет. Версии 18.10 и 18ю12 пробовал
  • https://t.me/clickhouse_ru
    @edyya #65621 02:24 PM, 13 Sep 2018
    Привет! Подскажите, пожалуйста, по поводу AggregateFunction

    Есть Materialized View с ENGINE = AggregatingMergeTree
    , где есть колонка uniqExactState.
    Можно ли сделать для этой колонку какую-либо операцию помимо uniqExactMerge?
    В идеале, как-нибудь развернуть то что находится внутри.
  • https://t.me/clickhouse_ru
    я так не делаю, у меня данных мало, не больше 10ТБ, мне проще insert новая select from старая.
  • Понял спасибо. Я только что выполнил по инструкции на сайте Преобразование из MergeTree в ReplicatedMergeTree, но данные из старой таблицы в новой не появились. Хотя все без ошибок сделал. Видимо ваш способ единственный правильный))
  • https://t.me/clickhouse_ru
    А что в логах?
  • https://t.me/clickhouse_ru
    то бишь хранить данные в /home, но поместить симлинк на них в /var/lib/clickhouse/?
  • @Evanushechkin #65626 02:37 PM, 13 Sep 2018
    ничего, иначе бы я до сути добрался, логирование в trace выставлено
  • https://t.me/clickhouse_ru
    Ну это самое простое решение
  • https://t.me/clickhouse_ru
    Детач аттач отлично работает для этого, плюс это супер быстро, чем перелить данные.
  • https://t.me/clickhouse_ru
    спасибо за совет
    а как наиболее корректно/безопасно перенести уже существующие данные?
    остановить КХ, скопировать всю папку /var/lib/clickhouse/ и запустить КХ? или это не так просто решается?
  • https://t.me/clickhouse_ru
    @stufently #65630 02:39 PM, 13 Sep 2018
    Это ок если это то что вам нужно
  • https://t.me/clickhouse_ru
    @stufently #65631 02:40 PM, 13 Sep 2018
    Если на старом месте у вас ничего не остаётся это ок
  • https://t.me/clickhouse_ru
    @calculating_infinity #65632 02:41 PM, 13 Sep 2018
    понял, спасибо еще раз
  • @medov_alexey #65633 02:56 PM, 13 Sep 2018
    Ребят скажите пожалуйста
  • @medov_alexey #65634 02:56 PM, 13 Sep 2018
    Я вот хочу перенести данные из таблицы MergeTree в ReplicatedMergeTree
  • @medov_alexey #65635 02:56 PM, 13 Sep 2018
    Если я так сделаю
  • @medov_alexey #65636 02:56 PM, 13 Sep 2018
    INSERT INTO default.new_table SELECT * FROM default.old_table
  • @medov_alexey #65637 02:57 PM, 13 Sep 2018
    это будет же работать ?
  • @medov_alexey #65638 02:57 PM, 13 Sep 2018
    при условии что очередность и количество столбцов соблюдено
  • https://t.me/clickhouse_ru
    @kshvakov #65639 02:58 PM, 13 Sep 2018
    Попробуйте и узнаете
  • @medov_alexey #65640 02:58 PM, 13 Sep 2018
    Ну так сработало
  • @medov_alexey #65641 02:58 PM, 13 Sep 2018
    я про в принципе, это правильно ? или лучше так не делать ?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #65623 #65642 02:58 PM, 13 Sep 2018
    значит что-то сделали не так
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #65641 #65643 02:59 PM, 13 Sep 2018
    Да, но перед этим делать что-то вроде SET max_threads = 1, max_block_size = 8192; если данных в таблице много
  • А много это сколько ? в Гигабайтах или в штуках ?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #65644 #65645 03:00 PM, 13 Sep 2018
    В штуках проще
  • https://t.me/clickhouse_ru
    @kshvakov #65646 03:01 PM, 13 Sep 2018
    Ну и если еще активно массивы используете с большим количеством элементов
  • @medov_alexey #65647 03:02 PM, 13 Sep 2018
    около 100 млн записей
  • @medov_alexey #65648 03:03 PM, 13 Sep 2018
    столбцов около 20
  • https://t.me/clickhouse_ru
    @kshvakov #65649 03:04 PM, 13 Sep 2018
    да, выставте ` SET max_threads = 1, max_block_size = 8192;`
  • Это где высталять не подскажите ? Не могу найти в документации на сайте
  • https://t.me/clickhouse_ru
    @kshvakov #65651 03:06 PM, 13 Sep 2018
    Прям в консольке
  • https://t.me/clickhouse_ru
    @kshvakov #65652 03:06 PM, 13 Sep 2018
    на сессию для вашего юзера будут применены
  • @medov_alexey #65653 03:06 PM, 13 Sep 2018
    Понятно теперь) спасибо буду пробовать)
  • а нет ли таймаута или счетчика через какое время проверять наличие файла?
  • @Evanushechkin #65655 03:23 PM, 13 Sep 2018
    на еще одной ноде подцепился файл с диктами
  • https://t.me/clickhouse_ru
    Детач аттач сработает за секунды
  • Погодите, разве нужно делать детач ?

    В инструкции сказано что нужно скопировать файлы старой таблицы, в папку detach новой таблицы, после чего просто выполнить команду

    ALTER TABLE default.lexa_test ATTACH PARTITION 19750711
  • https://t.me/clickhouse_ru
    @stufently #65658 03:27 PM, 13 Sep 2018
    Ну я делал все на лету так что надо
  • @medov_alexey #65659 03:29 PM, 13 Sep 2018
    Понятно. Мне нужно понять сколько по времени займет перекидывания данных моим способом) мне кажется так проще
  • @medov_alexey #65660 03:29 PM, 13 Sep 2018
    Попробую и узнаю)
  • https://t.me/clickhouse_ru
    @stufently #65661 03:31 PM, 13 Sep 2018
    Ну если данных много то очень много
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #65663 #65664 03:58 PM, 13 Sep 2018
    Кнопки «сделать все хорошо» пока не существует.
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #65665 #65666 04:01 PM, 13 Sep 2018
    Есть дока с типами таблиц которые есть в CH. Этого вполне хватит для того чтобы составить схему. Перелить можно чем угодно. Хоть через csv.
  • https://t.me/clickhouse_ru
    @rheinx #65667 04:02 PM, 13 Sep 2018
    Но просто as is переезжать с PG на CH, не оч клевая идея
  • @medov_alexey #65668 04:02 PM, 13 Sep 2018
    @stufently @kshvakov @den_crane

    Перекинул следующим способом из MergeTree в ReplicatedMergeTree:
    INSERT INTO default.new_table SELECT * FROM default.old_table

    Elapsed: 98.473 sec. Processed 46.38 million rows, 14.33 GB (471.02 thousand rows/s., 145.50 MB/s.)

    (это на виртуалке с 4 ядрами, и 15 Гб ОЗУ)
  • @medov_alexey #65669 04:04 PM, 13 Sep 2018
    В принципе это быстрее, чем в ручную делать перенос данных на диске, а потом детач и атач и все дела...
  • @medov_alexey #65670 04:04 PM, 13 Sep 2018
    Мне так кажется
  • https://t.me/clickhouse_ru
    @stufently #65671 04:04 PM, 13 Sep 2018
    Детач аттач занимает несколько секунд
  • @medov_alexey #65672 04:05 PM, 13 Sep 2018
    А пока наберешь нужные команды со всеми нюансами и параметрами уйдет пару минут)
  • @medov_alexey #65673 04:05 PM, 13 Sep 2018
    так что плюс минус времени уходит одинаково
  • @githubreleases_bot #65674 b o t 04:14 PM, 13 Sep 2018
    yandex/ClickHouse was tagged: v18.12.14-stable
    Link: https://github.com/yandex/ClickHouse/releases/tag/v18.12.14-stable
    Release notes:
    v18.12.14-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
    https://clickhouse.yandex/docs/ru/getting_started/example_datasets/nyc_taxi/#_1
    вот тут есть пример, в котором данные сначала заливают в pg, оттуда в КХ
  • @677918575 #65678 05:07 PM, 13 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #65679 05:24 PM, 13 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #65680 05:24 PM, 13 Sep 2018
    Привет!
  • https://t.me/clickhouse_ru
    @pavel_odintsov #65681 05:24 PM, 13 Sep 2018
    2018.09.13 17:08:15.628349 [ 23 ] {83} <Error> executeQuery: std::exception. Code: 1001, type: std::bad_typeid, e.what() = std::bad_typeid (from 127.0.0.1:36060) (in query: INSERT INTO dns.traffic VALUES)
  • https://t.me/clickhouse_ru
    @pavel_odintsov #65682 05:27 PM, 13 Sep 2018
    Что-то новенькое
  • https://t.me/clickhouse_ru
    @pavel_odintsov #65683 05:27 PM, 13 Sep 2018
    Деградация? ;( код вставки не менялся
  • Привет.

    Скорее всего, версия сервера достаточно старая. Проверьте на версии 18.12.14.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #65685 05:43 PM, 13 Sep 2018
    сейчас попробую, спасибо :)
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #65676 #65686 06:53 PM, 13 Sep 2018
    Если у вас табличек много, вы уверены что вам КХ нужен?
  • https://t.me/clickhouse_ru
    когда всё делал в 5NF очень сложно понять как всё загнать в одну таблицу.
    А потом узнаешь про массивы...
  • Какой результат?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #65689 07:20 PM, 13 Sep 2018
    пробуем :)
  • @vstakhov #65690 07:52 PM, 13 Sep 2018
    Алексей, а как вы относитесь к chproxy? Я тут, подумав, хочу вместо distributed table использовать аггрегацию на chproxy
  • @vstakhov #65691 07:53 PM, 13 Sep 2018
    Просто так кажется проще добавлять и удалять ноды из кластера с точки зрения управления конфигами
  • Я сам не использовал chproxy. Отношусь хорошо :)

    Вы имеете ввиду просто слияние результатов с разных серверов, без всяких распределённых агрегаций, сортировок?
  • @vstakhov #65693 08:03 PM, 13 Sep 2018
    Вроде, chproxy заявляет, что они делают все то же, что и distributed
  • Это почти невозможно.
  • @vstakhov #65695 08:09 PM, 13 Sep 2018
    Вообще, у меня довольно тривиальные запросы пока что. Вот разве что window функций хочется, вы ведь их в некоем виде недавно реализовали, да?
  • @milovidov_an #65696 08:15 PM, 13 Sep 2018
    Нет, не реализовали.
  • https://t.me/clickhouse_ru
    @399999446 #65697 08:19 PM, 13 Sep 2018
    а в планах есть реализация?
  • https://t.me/clickhouse_ru
    @399999446 #65698 08:19 PM, 13 Sep 2018
    Нет, не реализовали.
  • Есть, но не в ближайших (не 2018).
  • https://t.me/clickhouse_ru
    они делают в том смысле что обращение будет не к distributed таблице одной ноды, а к дистрибьютид таблицам на разных нодах, но distributed таблицы все равно нужны на каждой ноде, ну и инсерты chproxy умеет делать прямо в шарды.
  • @vstakhov ↶ Reply to #65700 #65701 08:41 PM, 13 Sep 2018
    Гм, тогда я не понимаю, зачем это
  • https://t.me/clickhouse_ru
    @den_crane #65702 08:45 PM, 13 Sep 2018
    у вас есть 10 нод, 5 шардов по 2 реплики, вы создаете дистрибьютид таблицу на каждой ноде.
    теперь можно ходить и делать запросы на любой из 10 нод.
    но у вас тупое приложение все время ходит к первой ноде, и эта нода делает финальные агрегации, и загружена больше всех.
    вы ставите chproxy как балансер и начинаете ходить ко всем 10, все 10 загружены равномерно.
  • @vstakhov #65703 09:26 PM, 13 Sep 2018
    тогда мне это совсем не нужно, понятно
  • https://t.me/clickhouse_ru
    @malev #65704 10:53 PM, 13 Sep 2018
    А кто сталкивался с задачей удаления дублированных записей ?
    Когда по одному ключу две записи записались идентичных ?
  • 14 September 2018 (88 messages)
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #65705 #65706 03:39 AM, 14 Sep 2018
    Оставте справочники в постгресе и подключите их как словарь. Возможно ваши таблицы с логами по колонкам чуть более чем сильно совпадают, их можно в одну таблицу писать, просто создать доп колонку с типом логов и бросить ее в первичный ключ
  • @Nvarchar495 #65708 06:02 AM, 14 Sep 2018
    Доброе утро! Есть 10 серверов и 1 csv, можно как-то параллелить загрузку?
  • https://t.me/clickhouse_ru
    @EvgenyVinogradov #65709 06:23 AM, 14 Sep 2018
    Лить в distributed таблицу
  • https://t.me/clickhouse_ru
    @EvgenyVinogradov #65710 06:24 AM, 14 Sep 2018
    Не будет параллельного чтения, только запись
  • https://t.me/clickhouse_ru
    @anikansh #65711 06:30 AM, 14 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @ab7orbent #65712 06:33 AM, 14 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Vasyaabr #65713 06:45 AM, 14 Sep 2018
    Привет!
    В ответ на
    TRUNCATE TABLE table
    получил исключение:
    Received exception from server (version 18.10.3):
    Code: 48. DB::Exception: Received from 127.0.0.1:9003. DB::Exception: Can't proxy this query. Unsupported query type.
    Я правильно понимаю, что для Replicated таблиц truncate просто не поддерживается?
  • https://t.me/clickhouse_ru
    @elenashrlq #65715 07:48 AM, 14 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Vasyaabr #65716 08:15 AM, 14 Sep 2018
    И вот ещё вопрос:
    ALTER TABLE table FETCH PARTITION кидает исключение, если мы эту партицию уже бэкапили. Можно как-то изменить это поведение (не кидать исключение), или проверить средствами самого Clickhouse, что партиция уже забэкаплена?
  • https://t.me/clickhouse_ru
    @Sablast #65717 09:28 AM, 14 Sep 2018
    подскажите, пытаюсь настроит chproxy при подключении получаю:
    "127.0.0.1:61813": invalid username or password for user "default"; query: ""
    при этом пользователя default вообще нет в конфиге, чтяднт?
  • https://t.me/clickhouse_ru
    @alexdirect #65718 10:12 AM, 14 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    Тоже самое :(
  • https://t.me/clickhouse_ru
    @pavel_odintsov #65720 10:20 AM, 14 Sep 2018
    2018.09.14 10:09:51.596455 [ 23 ] <Debug> MemoryTracker: Peak memory usage (total): 150.00 KiB.
    2018.09.14 10:09:51.596472 [ 23 ] <Information> TCPHandler: Processed in 0.037 sec.
    2018.09.14 10:09:52.010968 [ 23 ] {190} <Debug> executeQuery: (from 127.0.0.1:45300) INSERT INTO dns.traffic VALUES
    2018.09.14 10:09:52.048632 [ 23 ] {190} <Error> executeQuery: std::exception. Code: 1001, type: std::bad_typeid, e.what() = std::bad_typeid (from 127.0.0.1:45300) (in query: INSERT INTO dns.traffic VALUES)
    2018.09.14 10:09:52.048703 [ 23 ] <Debug> MemoryTracker: Peak memory usage (total): 150.00 KiB.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #65721 10:23 AM, 14 Sep 2018
    Clickhouse issue

    Clickhouse issue. GitHub Gist: instantly share code, notes, and snippets.

  • https://t.me/clickhouse_ru
    @andrewromm #65722 10:53 AM, 14 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @AlexAkulov #65723 10:56 AM, 14 Sep 2018
    посоны, как мне по красоте можно табличку вместе с данными из постгреса в кликхаус перенести?
  • https://t.me/clickhouse_ru
    @ikozlov1 #65724 11:03 AM, 14 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @AlexAkulov #65725 11:08 AM, 14 Sep 2018
    Ну что? Есть идеи?
    Могу подключиться к постгресу через odbc.
    Могу сделать pgsql dump, clickhouse restore сделать не могу.
  • https://t.me/clickhouse_ru
    @Shegloff #65726 11:10 AM, 14 Sep 2018
    почитайте в доке
    Данные о такси в Нью-Йорке
    Как импортировать сырые данные
  • https://t.me/clickhouse_ru
    @Shegloff #65727 11:11 AM, 14 Sep 2018
    там как раз перенос данных из постгреса в кх
  • https://t.me/clickhouse_ru
    @AlexAkulov #65728 11:11 AM, 14 Sep 2018
    ок, спс
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @Mike_Er ↶ Reply to #65534 #65730 11:20 AM, 14 Sep 2018
    Апну, ошибка продолжает сыпаться, куда копать не понятно :(
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #65730 #65731 11:26 AM, 14 Sep 2018
    Сделайте пример для воспроизведения
  • https://t.me/clickhouse_ru
    @Mike_Er ↶ Reply to #65731 #65732 11:28 AM, 14 Sep 2018
    Ошибка вызывается не запросом, а слиянием партиций, есть только полный трейс https://pastebin.com/A3M7XUmL
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #65732 #65733 11:39 AM, 14 Sep 2018
    Интересно, он у вас в этом блоке, судя по всему, вообще колонок не видит. Есть схема таблицы и версия сервера?
  • https://t.me/clickhouse_ru
    @Mike_Er ↶ Reply to #65733 #65734 11:43 AM, 14 Sep 2018
    18.10.3 revision 54405, структура https://pastebin.com/1QqBmnYv , запись и запросы в эту таблицу идут постоянно и поле, конечно же есть, оно ключевое
  • https://t.me/clickhouse_ru
    @Shegloff #65735 11:50 AM, 14 Sep 2018
    18.12.13:
    SELECT
    value,
    formatReadableSize(value),
    description
    FROM system.metrics
    WHERE metric = 'MemoryTracking'

    ┌─────────value─┬─formatReadableSize(value)─┬─description──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
    │ 5090069495129 │ 4.63 TiB │ Total amount of memory (bytes) allocated in currently executing queries. Note that some memory allocations may not be accounted. │
    └───────────────┴───────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

    1 rows in set. Elapsed: 0.006 sec.
  • https://t.me/clickhouse_ru
    @Shegloff #65736 11:51 AM, 14 Sep 2018
    256Gb на тачке оперативы, что-то он странное показывает, нет?
  • https://t.me/clickhouse_ru
    в лимит упёрлись
  • https://t.me/clickhouse_ru
    max_memory_usage
  • https://t.me/clickhouse_ru
    @Shegloff #65739 11:52 AM, 14 Sep 2018
    $ free -m
    total used free shared buff/cache available
    Mem: 257849 9408 25868 2508 222572 245311
    Swap: 0 0 0
  • https://t.me/clickhouse_ru
    @Shegloff #65740 11:52 AM, 14 Sep 2018
    в смысле
  • https://t.me/clickhouse_ru
    В смысле, у меня, например, на не особо большом сервере для юзера установлен лимит:
    <max_memory_usage replace="replace">6000000000</max_memory_usage>
  • https://t.me/clickhouse_ru
    @Shegloff #65743 11:54 AM, 14 Sep 2018
    метрика показывает, сколько все запросы используют оперативы прямо сейчас, причем тут лимит этот?
  • https://t.me/clickhouse_ru
    А... Перепутал сообщение об ошибке и результат запроса
  • https://t.me/clickhouse_ru
    Тут разве что заммапленое могло посчитаться...
  • https://t.me/clickhouse_ru
    @Shegloff #65746 11:55 AM, 14 Sep 2018
    просто раньше на 54390 норм показывало, постоянно мониторил это, а теперь...
  • https://t.me/clickhouse_ru
    @Shegloff #65747 11:56 AM, 14 Sep 2018
    ладно, попробую дообновить кластер до конца и порестарчу раза три :) говорят помогает
  • https://t.me/clickhouse_ru
    @Shegloff #65748 12:47 PM, 14 Sep 2018
    еще такая ошибка:
    Code: 49, e.displayText() = DB::Exception: Attempt to attach to nullptr thread group, e.what() = DB::Exception
    при запросе:
    CREATE TABLE db.table ON CLUSTER repl
    ENGINE = Memory AS
    SELECT
    id,
    ts,
    sum(proc)
    FROM db.table2
    WHERE date = (today() - 1)
    GROUP BY id
    HAVING sum(proc) > 0
    ORDER BY ts ASC
    LIMIT 1000000
  • https://t.me/clickhouse_ru
    @Shegloff #65749 12:49 PM, 14 Sep 2018
    при 54390 такого не было
  • https://t.me/clickhouse_ru
    @Shegloff #65750 12:51 PM, 14 Sep 2018
    db.table2 - Distributed-таблица над ReplicatedCollapsingMergeTree
  • @teknik2008 #65751 12:54 PM, 14 Sep 2018
    Если построить CREATE MATERIALIZED VIEW с таблицы MergeTree. В MergeTree применить ALTER TABLE name_table DELETE WHERE user_id>0, то эти данные останутся в MATERIALIZED VIEW?
  • @teknik2008 #65752 12:54 PM, 14 Sep 2018
    Как их удалить в MATERIALIZED VIEW?
  • https://t.me/clickhouse_ru
    @AlexAkulov #65755 01:16 PM, 14 Sep 2018
    Пробовал кто-нибудь использовать JetBrains DataGrid для подключения к кликхаусу через https?
    У меня пишет: cannot initialize http client
  • https://t.me/clickhouse_ru
    @Imaskar #65756 01:19 PM, 14 Sep 2018
    а они уже запилили поддержку? в обещаниях видел, в релизе - нет
  • https://t.me/clickhouse_ru
    @AlexAkulov #65757 01:20 PM, 14 Sep 2018
    Да, вот пару дней назад скачал.
  • https://t.me/clickhouse_ru
    да, насколько я помню, где-то в середине августа в минорном релизе
  • https://t.me/clickhouse_ru
    если кому интересно, выставил в Advanced sslmode: none и всё заработало
  • https://t.me/clickhouse_ru
    @Shegloff #65760 01:30 PM, 14 Sep 2018
    MemoryTracking после обновления на 18.12.13 показывает какую-то дичь на всех репликах
  • https://t.me/clickhouse_ru
    @AlexAkulov #65761 01:32 PM, 14 Sep 2018
    пришло время обновиться до 18.12.14)
  • @RomanYx #65762 01:34 PM, 14 Sep 2018
    на 18.12.14 все еще лучше
  • https://t.me/clickhouse_ru
    @Shegloff #65764 01:40 PM, 14 Sep 2018
    😂
  • https://t.me/clickhouse_ru
    @Sablast #65765 01:54 PM, 14 Sep 2018
    коллеги, может кто помочь с настройкой chproxy?
  • https://t.me/clickhouse_ru
    @mo1seev #65766 01:55 PM, 14 Sep 2018
    DataGrip 2018.2.2: ClickHouse Support and Bugfixes | The DataGrip Blog

    With just a few weeks since the last minor update, we're in hurry again to bring you a fresh portion of improvements. Please welcome DataGrip 2018.2.2.One of the highlights in this update is added

  • https://t.me/clickhouse_ru
    @mo1seev #65767 01:55 PM, 14 Sep 2018
    урааааааа!
  • https://t.me/clickhouse_ru
    @Alesapin ↶ Reply to #65760 #65768 02:02 PM, 14 Sep 2018
    Нужно issue на гитхабе хоть с каким-нибудь описанием. А то потеряется в чате.
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #65768 #65769 02:02 PM, 14 Sep 2018
    ok
  • @alex13dgh #65770 02:04 PM, 14 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    останутся, данные MV лежат в обычной таблице, оттуда таким же alter delete удаляйте. Если вы не называли/создавали таблицу для MV (для синтаксиса create mat view ... to ... as), то MV таблица называется .inner.{MVname}....
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #65766 #65772 02:16 PM, 14 Sep 2018
    неплохо, кроме цены =(
  • https://t.me/clickhouse_ru
    @mo1seev ↶ Reply to #65772 #65773 02:16 PM, 14 Sep 2018
    Ну так покупайте со скидками)
  • https://t.me/clickhouse_ru
    @mo1seev #65774 02:16 PM, 14 Sep 2018
    на всякие праздники
  • @e11it #65775 03:00 PM, 14 Sep 2018
    Привет!

    Вчера попрбовали decimal | LowCardinality, перелили таблицу и сделали optimize final.
    Сегодня обновили КХ до 18.12.14 и КХ не стартанул из-за ошибок:

    Uncompressed size of column id_dep(19624475) is not divisible by the size of value

    Колонка объявлена как id_dep LowCardinality(UInt32)

    Могу выслать логи если проблема не известная…
  • @alexeysetevoi #65776 05:11 PM, 14 Sep 2018
    Joined.
  • Пригодится.
  • @milovidov_an #65778 05:25 PM, 14 Sep 2018
    На всякий случай - пока LowCardinality годится для тестирования, но не для продакшена.
  • @milovidov_an #65779 05:28 PM, 14 Sep 2018
    Кстати, от LowCardinality(UInt32) наверное большого профита не будет. Ведь UInt32 - это уже намного лучше, чем String.
  • @e11it #65780 05:30 PM, 14 Sep 2018
    Мы как раз тестировали и все стобцы где меного значений обернули в LowCardinality.
  • @milovidov_an #65781 05:30 PM, 14 Sep 2018
    Имеется ввиду - где немного значений?
  • @e11it #65782 05:32 PM, 14 Sep 2018
    А такой вопрос, с LowCardinality(UInt32) на LowCardinality(String) возможно буде перейти через alter колонки?
    По идее размерность столбца не должна меняться. Только словарь..
  • @e11it ↶ Reply to #65781 #65783 05:32 PM, 14 Sep 2018
    Не много уникальных значений
  • Alter, наверное, можно сделать. Но я не проверял. Данные все равно перезапишутся вместе с индексами.
  • @kochetovnicolai #65785 05:41 PM, 14 Sep 2018
    Проверил. Получилось.
  • Можно сразу в тест добавить...
  • @e11it ↶ Reply to #65786 #65787 05:55 PM, 14 Sep 2018
    А словарь от LowCardinality где храниться? Я полагал что alter со сменой типа у словаря будет достаточно дешевой операцией.
  • Словарь хранится в отдельном файле. Некоторые столбцы имеют несколько файлов с данными (сериализуются в несколько "потоков"), в том числе, LowCardinality.

    ALTER для столбцов, у которых меняется физическое представление, реализуется так же, как чтение, CAST, запись. Операция по смене типа словаря, может быть дешёвой, за счёт маленького объёма данных, которых нужно прочитать с диска и записать обратно. По CPU не уверен, может быть не очень дёшево.

    (бывают случаи, когда ALTER бесплатен - например, замена UInt32 на DateTime и подобное).
  • Можно было бы сделать дешевой для некоторых случаев, но нужно руками писать оптимизацию. Сейчас еще есть проблема с тем, что поедут индексы, так как в начале словаря всегда хранится значение по умолчанию. В случае строк - это пустая строка, и ее нельзя сопоставить с числом.
  • https://t.me/clickhouse_ru
    @wawaka #65791 06:13 PM, 14 Sep 2018
    а для lowcardinality не делали бесплатный nullable?
  • @milovidov_an #65792 06:15 PM, 14 Sep 2018
    Там есть некоторая специализация для Nullable. Возможно как раз бесплатная с точки зрения хранения.
    Николай ответит позже (~ через пол часа).
  • @e11it ↶ Reply to #65790 #65793 06:18 PM, 14 Sep 2018
    Понятно, я исходил из предположения, что это не затрагивает индексы, т.к. результат сранения будет такой же( select 1 > 0, '1' > '0'; ), соответственно и засечки на том же месте. И при сменене типа в словаре значение по умолчанию будет такое как в исходном..
  • С точки зрения хранения бесплатный. Но в некоторых местах есть overhead.
  • https://t.me/clickhouse_ru
    @wawaka #65795 07:42 PM, 14 Sep 2018
    здорово
  • https://t.me/clickhouse_ru
    @geebv #65796 10:42 PM, 14 Sep 2018
    Коллеги, подскажите пожалуйста в связке GROUP BY ... ORDER BY ... разве не будет в any первое значение в отсортированной группе. А в anyLast последнее?
    ORDER BY же после GROUP BY выполняется вроде бы как

    value | group
    ------+------
    1 | 1
    2 | 1
    3 | 2
    4 | 3
    5 | 3

    SELECT group, any(value) as open, anyLast(value) as close FROM t GROUP BY group ORDER BY value;

    group | open | close
    ------+-----+------
    1 | 1 | 2
    2 | 3 | 3
    3 | 4 | 5

    SELECT
    group,
    (SELECT value FROM t tt WHERE tt.group = t.group ORDER BY value ASC LIMIT 1) as open,
    (SELECT value FROM t tt WHERE tt.group = t.group ORDER BY value DESC LIMIT 1) as close
    FROM t
    GROUP BY group
    ORDER BY group ASC;

    group | open | close
    ------+-----+------
    1 | 1 | 2
    2 | 3 | 3
    3 | 4 | 5
  • https://t.me/clickhouse_ru
    @den_crane #65797 11:53 PM, 14 Sep 2018
    anyLast и any любое значение возвращают

    anyLast(x)
    Выбирает последнее попавшееся значение. Результат так же недетерминирован, как и для функции any.

    потому что 48 потоков выполняют запрос и кто-то вернет первый что-то, и это будет any
    коррелированные запросы в КХ не работают (вычисляются один раз как константа).

    create table xx (a Int64, b Int64) engine = MergeTree partition by tuple() order by tuple()
    insert into xx select number, 0 from numbers(1000000);
    insert into xx select number+1000, 1 from numbers(1000000);

    select b,o,e from (
    select arraySort(groupArray(a)) ar,b,ar[1] o, ar[-1] e from xx group by b)
    order by b
  • 15 September 2018 (32 messages)
  • @faerics #65798 08:21 AM, 15 Sep 2018
    А в каких случаях anyLast предпочтительнее, чем any?
  • https://t.me/clickhouse_ru
    Ну вы хотя бы плюс-минус последнее значение получите, а не первое. Например, если у вас какие-нибудь логи ошибок, то вы можете делать какую-нибудь группировку и потом делать anyLast(message) и будете получать плюс-минус последнее релевантное сообщение об ошибке из группы
  • @faerics ↶ Reply to #65799 #65800 10:34 AM, 15 Sep 2018
    для меня непонятно, что такое «плюс-минус последнее». Почему тогда any не называется anyFirst, если её семантика — вернуть «плюс-минус первую» запись?
    Мне же anyLast может вернуть и первую запись, просто так повезёт?
  • https://t.me/clickhouse_ru
    Если вам нужно первое или последнее, есть argMin/argMax
  • @faerics ↶ Reply to #65801 #65802 11:09 AM, 15 Sep 2018
    верно, о том и речь
  • https://t.me/clickhouse_ru
    @pavel_odintsov #65803 11:25 AM, 15 Sep 2018
    А кто-то выбивал уже "Attempted access has violated the permissions assigned to the memory area" на 18.12.14 ?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #65804 11:26 AM, 15 Sep 2018
    забил тикет, вроде дублей не видел https://github.com/yandex/ClickHouse/issues/3141
    Attempted access has violated the permissions assigned to the memory area · Issue #3141 · yandex/ClickHouse

    Hello! I just migrated to 18.12.14 and noticed number of failures for old application which just insert data into Clickhouse using C++ library: https://github.com/artpaul/clickhouse-cpp From client...

  • Нет, пока не сталкивались. Возможно это как-то связано с особенностью работы библиотеки clickhouse-cpp (хотя она должна быть совместимой). Пока информации не хватает.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #65806 05:42 PM, 15 Sep 2018
    Угу, с 18.10.3 работает отлично
  • https://t.me/clickhouse_ru
    @pavel_odintsov #65807 05:42 PM, 15 Sep 2018
    Что-то явно поменялось
  • https://t.me/clickhouse_ru
    @pavel_odintsov #65808 05:42 PM, 15 Sep 2018
    я прочитал changelog и чего-то что могло повлиять не вижу
  • https://t.me/clickhouse_ru
    @pavel_odintsov #65809 05:44 PM, 15 Sep 2018
    Могу собрать любой дебаг, я воспроизвел баг в тест окружении
  • https://t.me/clickhouse_ru
    @zeroweb #65810 08:15 PM, 15 Sep 2018
    В кликхаусе ведь есть тип UUID ?
  • https://t.me/clickhouse_ru
    @zeroweb #65811 08:15 PM, 15 Sep 2018
    Хочу генерировать уникальный ID
  • https://t.me/clickhouse_ru
    @zeroweb #65812 08:15 PM, 15 Sep 2018
    CREATE TABLE t1 (id UUID DEFAULT generateUUIDv4()) ENGINE = MergeTree()
    ORDER BY (id)
    SETTINGS index_granularity = 8192
  • https://t.me/clickhouse_ru
    @zeroweb #65813 08:16 PM, 15 Sep 2018
    или нужно указывать id String ?
  • https://t.me/clickhouse_ru
    @zeroweb #65814 08:16 PM, 15 Sep 2018
    при INSERT ошибка Code: 62. DB::Exception: Cannot parse expression of type UUID here: )
  • https://t.me/clickhouse_ru
    @orantius #65815 08:18 PM, 15 Sep 2018
    во-первых он не до конца поддержан в зависимости от версии, в 18.12.13 была очередная итерация добавления чего-то
  • https://t.me/clickhouse_ru
    @orantius #65816 08:19 PM, 15 Sep 2018
    во-вторых, вы правда хотите отсортировтаь данные по случайному числу?
  • https://t.me/clickhouse_ru
    @zeroweb #65817 08:19 PM, 15 Sep 2018
    это тестовая таблица на проверку вставки значений по-умолчанию
  • https://t.me/clickhouse_ru
    @zeroweb #65818 08:19 PM, 15 Sep 2018
    сортировку тут можно и убрать)
  • https://t.me/clickhouse_ru
    @zeroweb #65819 08:20 PM, 15 Sep 2018
    вообще хотелось бы обычный auto increment как например поле типа SERIAL / BIGSERIAL в PostgreSQL
  • https://t.me/clickhouse_ru
    @zeroweb #65820 08:26 PM, 15 Sep 2018
    Хм, вообще странно работают DEFAULT значения. Создал таблицу с одним полем created_at типа DateTime и прописал ему DEFAULT now(). При INSERT INTO t1 VALUES() вставляет пустую дату
  • https://t.me/clickhouse_ru
    @zeroweb #65821 08:26 PM, 15 Sep 2018
    Я 1 день с кликхаус может так и надо конечно но как-то непредсказуемо
  • https://t.me/clickhouse_ru
    @zeroweb #65822 08:43 PM, 15 Sep 2018
    версия 18.12.13
  • https://t.me/clickhouse_ru
    @Imaskar ↶ Reply to #65820 #65823 09:02 PM, 15 Sep 2018
    Возможно, проблемы из-за того, что других столбцов нет. У меня не работал default только когда явно null передавал.
  • https://t.me/clickhouse_ru
    @Imaskar ↶ Reply to #65819 #65824 09:06 PM, 15 Sep 2018
    Кх рассчитан на кластер, там такое будет слишком накладно. Поэтому отталкиваются от writetime в таких случаях. Добавьте номер шарда к нему как младший разряд и можете на него смотреть как на последовательность с пропусками.
  • https://t.me/clickhouse_ru
    @Imaskar ↶ Reply to #65823 #65825 09:06 PM, 15 Sep 2018
    Хотя имхо стоило бы и в таких случаях применять дефолт, если столбец не nullabe
  • https://t.me/clickhouse_ru
    @zeroweb #65826 09:07 PM, 15 Sep 2018
    Спасибо попробую
  • https://t.me/clickhouse_ru
    @Imaskar #65827 09:13 PM, 15 Sep 2018
    Или eventtime, если оно есть. Это будет лучше.
  • https://t.me/clickhouse_ru
    @den_crane #65828 11:05 PM, 15 Sep 2018
    КХ это DWH, какой смысл генерить serial или UUID в КХ? Идентификатор должен появится в источнике который сгенерил данные.
  • https://t.me/clickhouse_ru
    @den_crane #65829 11:06 PM, 15 Sep 2018
    Если вам нужен auto increment в КХ вы точно что-то странное делаете.
  • 16 September 2018 (28 messages)
  • @githubreleases_bot #65830 b o t 05:04 AM, 16 Sep 2018
    yandex/ClickHouse was tagged: v18.12.17-stable
    Link: https://github.com/yandex/ClickHouse/releases/tag/v18.12.17-stable
    Release notes:
    v18.12.17-stable
    yandex/ClickHouse

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

  • @sr_maks1 ↶ Reply to #65830 #65831 08:50 AM, 16 Sep 2018
    А где можно changelog глянуть?
  • https://t.me/clickhouse_ru
    @not_logan #65833 11:05 AM, 16 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @not_logan #65834 11:17 AM, 16 Sep 2018
    Приветствую коллег! Подскажите пжлст, откуда подгружаются include в clickhouse server для debian и ubuntu

    разместил макрос в /etc/clickhouse-server/conf.d/macros.xml, пытаюсь создать по tutorial-у replicated таблицу:

    CREATE TABLE ontime_replica (...)
    ENGINE = ReplicatedMergeTree(
    '/clickhouse_perftest/tables/{shard}/ontime',
    '{replica}',
    FlightDate,
    (Year, FlightDate),
    8192);

    получаю ошибку
    Received exception from server (version 18.12.14):
    Code: 62. DB::Exception: Received from 127.0.0.1:9000. DB::Exception: No macro shard in config.
  • https://t.me/clickhouse_ru
    @alexdzyoba #65835 03:01 PM, 16 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @geebv #65836 03:28 PM, 16 Sep 2018
    В чем может быть проблема с CH при выполнении обычного SELECT запроса?
    [read meta] unexpected packet [5] from server
  • https://t.me/clickhouse_ru
    @geebv #65837 03:29 PM, 16 Sep 2018
    Напрямую подключившись к консоли запрос норм отрабатывает
    А из приложения (go) вот такая ошибка
  • https://t.me/clickhouse_ru
    можно в /etc/clickhouse-server/config-preprocessed.xml посмотреть во что инклуд отрендерился и в логах на ошибки /var/log/clickhouse/...

    ну и таблицы system.macros system.clusters
  • https://t.me/clickhouse_ru
    вопрос в том, где их КХ по умолчанию ищет
  • https://t.me/clickhouse_ru
    @den_crane #65840 03:56 PM, 16 Sep 2018
    у вас все похоже на правду
    https://clickhouse.yandex/docs/en/operations/configuration_files/

    ndividual settings can be overridden in the *.xml and *.conf files in the conf.d and config.d directories next to the config file.

    вот например мой:
    # cat /etc/clickhouse-server/conf.d/macros.xml
    <?xml version="1.0" ?>
    <yandex>
    <macros>
    <cluster>oStaging24</cluster>
    <replica>test316</replica>
    <shard>1</shard>
    </macros>
    </yandex>
  • https://t.me/clickhouse_ru
    @not_logan #65841 03:58 PM, 16 Sep 2018
    о, спасибо
  • https://t.me/clickhouse_ru
    @not_logan #65842 03:58 PM, 16 Sep 2018
    я неправильно сам xml оформил значит
  • https://t.me/clickhouse_ru
    go драйверов больше одного
    все которые я видел, работают по http, значит порт куда подключаться это 8123
  • https://t.me/clickhouse_ru
    @nicname #65844 04:03 PM, 16 Sep 2018
    GitHub - ClickHouse/clickhouse-go: Golang driver for ClickHouse

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

  • https://t.me/clickhouse_ru
    @nicname #65845 04:05 PM, 16 Sep 2018
    но да, надо проверять коннект, в первую очередь
  • https://t.me/clickhouse_ru
    @den_crane #65846 04:06 PM, 16 Sep 2018
    ну а эти по http
    https://github.com/roistat/go-clickhouse
    https://github.com/mailru/go-clickhouse
  • https://t.me/clickhouse_ru
    @geebv ↶ Reply to #65844 #65847 04:06 PM, 16 Sep 2018
    Да этот, сори это мне кажется было очевидно
  • https://t.me/clickhouse_ru
    @geebv #65848 04:07 PM, 16 Sep 2018
    А что если с коннектом проблема будет именно такая ошибка?
  • https://t.me/clickhouse_ru
    @nicname #65849 04:10 PM, 16 Sep 2018
    ну судя по тому что он метаинформацию не может считать. я бы проверил коннект и права пользователя еще.
  • https://t.me/clickhouse_ru
    @nicname #65850 04:12 PM, 16 Sep 2018
    ну и проверять потом простым селектом сначала типа SELECT 1
  • https://t.me/clickhouse_ru
    @geebv #65851 04:14 PM, 16 Sep 2018
    да не с коннектом все ОК
  • https://t.me/clickhouse_ru
    @geebv #65852 04:14 PM, 16 Sep 2018
    Одна часть приложения пишет и там есть данные
  • https://t.me/clickhouse_ru
    @den_crane #65853 04:20 PM, 16 Sep 2018
    возможно в native протоколе что-то изменили или драйвер какую-то фичу еще не поддерживает.
  • https://t.me/clickhouse_ru
    @kshvakov #65854 04:33 PM, 16 Sep 2018
    Скорее всего так и есть. Какая версия сервера? Есть пример для воспроизведения?
  • https://t.me/clickhouse_ru
    @geebv #65855 04:57 PM, 16 Sep 2018
    image: yandex/clickhouse-server:18.6.0
  • https://t.me/clickhouse_ru
    @geebv #65856 04:57 PM, 16 Sep 2018
    Делаю пример
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #65856 #65857 05:03 PM, 16 Sep 2018
    Ok
  • 17 September 2018 (206 messages)
  • https://t.me/clickhouse_ru
    @Imaskar #65861 07:57 AM, 17 Sep 2018
    спамчик в треде
  • https://t.me/clickhouse_ru
    @PolyakovAV #65862 08:33 AM, 17 Sep 2018
    здравствуйте!
    есть проблема, поломалась репликация
    при старте сервера при инициализации возникает такое:
    2018.09.17 10:29:16.783466 [ 10 ] <Error> void ZooKeeperImpl::ZooKeeper::receiveEvent(): Code: 999, e.displayText() = ZooKeeperImpl::Exception: Too large array size while reading from ZooKeeper (Marshalling error), e.what() = ZooKeeperImpl::Exception, Stack trace:

    0. /usr/bin/clickhouse-server(StackTrace::StackTrace()+0x16) [0x56d06c6]
    1. /usr/bin/clickhouse-server(ZooKeeperImpl::Exception::Exception(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)+0xce) [0x54579ee]
    2. /usr/bin/clickhouse-server(ZooKeeperImpl::ZooKeeper::ListResponse::readImpl(DB::ReadBuffer&)+0x156) [0x5458cd6]
    3. /usr/bin/clickhouse-server(ZooKeeperImpl::ZooKeeper::receiveEvent()+0x543) [0x545ea83]
    4. /usr/bin/clickhouse-server(ZooKeeperImpl::ZooKeeper::receiveThread()+0x2b2) [0x545f232]
    5. /usr/bin/clickhouse-server() [0x930310f]
    6. /lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba) [0x7f40cf0476ba]
    7. /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7f40ce87041d]

    далее везде void DB::StorageReplicatedMergeTree::mutationsUpdatingTask(): Code: 999, e.displayText() = ZooKeeperImpl::Exception: Session expired (Session expired), e.what() = ZooKeeperImpl::Exception
    кто-то сталкивался? что можно сделать?
  • https://t.me/clickhouse_ru
    @xammett #65863 08:37 AM, 17 Sep 2018
    всем привет, столкнулся с проблемой агрегации данных на разных машинах в кластере, а именно, есть 2 ноды по 256 гигов памяти и много процессоров, есть большая distibuted таблица, хочется сделать агрегат и выгрузить в csv, при попытке сделать это валится в ошибку: Attempt to read after eof: while receiving packet from localhost. Хочеться уменьшить набор данных, который отправляется на доагрегацию на первую машину
  • https://t.me/clickhouse_ru
    @xammett #65864 08:37 AM, 17 Sep 2018
    настройки вот такие
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @xammett #65867 08:39 AM, 17 Sep 2018
    данных реально много если делать выборку за месяц и не хватает памяти на дожевывание на первой машине, у меня есть рабочий способ на разбитием на дни и доагрегацией своими силами, но хотелось бы за раз прожевать месяц по возможности
  • https://t.me/clickhouse_ru
    @xammett #65868 08:39 AM, 17 Sep 2018
    может быть кто-нибудь сталкивался с подобной проблемой
  • https://t.me/clickhouse_ru
    @tsundokum #65869 09:03 AM, 17 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @fzhinkin #65870 09:03 AM, 17 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @rasc41 #65871 09:08 AM, 17 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @xammett ↶ Reply to #65872 #65873 09:11 AM, 17 Sep 2018
    спасибо
  • https://t.me/clickhouse_ru
    @akisin #65874 09:14 AM, 17 Sep 2018
    Добрый день, подскажите пожалуйста, умеет ли tabix работать через chproxy?
  • @ligich #65875 09:21 AM, 17 Sep 2018
    умеет
  • https://t.me/clickhouse_ru
    @sherpc #65876 09:22 AM, 17 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @sherpc #65877 09:26 AM, 17 Sep 2018
    Всем добрый день!

    Не нашел правил группы, если не по теме — без проблем удалю вопрос.

    Ищу себе в команду человека, у которого есть опыт миграции на Clickhouse (в идеале — с вертики). Задача — мигрировать =) Разобраться в текущих потоках данных, придумать, как переложить их на Clickhouse, поднять Clickhouse (kubernetes или подобная архтикетура), провести весь процесс миграции.

    Если кому-то понравилась миграция (понимаю, что таких, скорее всего, мало, но вдруг =) ) и хочется повторить — пишите в лс.
  • https://t.me/clickhouse_ru
    как активный пользователь кубернетеса предположу, что кубернетис в вашем уравнении будет лишней переменной
  • https://t.me/clickhouse_ru
    @sherpc #65879 09:31 AM, 17 Sep 2018
    Архитектура, на которой будем разворачивать, обсуждаема. Живем в AWS.
  • https://t.me/clickhouse_ru
    @sherpc ↶ Reply to #65878 #65880 09:31 AM, 17 Sep 2018
    Если не секрет, чем плох k8s в связке с clickhouse? В целом тем, что там не очень здорово хранилища поднимать, или есть особенности?
  • https://t.me/clickhouse_ru
    @Imaskar #65881 09:32 AM, 17 Sep 2018
    мне тоже интересно
  • https://t.me/clickhouse_ru
    @not_logan #65882 09:34 AM, 17 Sep 2018
    k8s не рекомендуется в тех случаях, когда вам надо хранить данные. Об этом постоянно говорят идеологи кубера (включая даже Сета Варго). Кубер – это про контейнеры, а контейнеры не хранят состояния (точнее могут, но не должны). Вторая проблема в том, что кубер - это сложно. Заставить его нормально работать, поддерживать и отлаживать его – это тоже сложно. Безопасность кубера - это тоже сложно. Если вы ставите кубер для того, чтобы запускать в нем кликхауз (и только для этого) – вы сильно переусложняете свою архитектуру. Архитектура должна быть максимально простой. Это, разумеется, мое мнение. Готов раскрыть подробнее. Хотя это и оффтоп
  • https://t.me/clickhouse_ru
    @Imaskar #65883 09:35 AM, 17 Sep 2018
    так данные же в томах хранятся, а не в контейнерах
  • https://t.me/clickhouse_ru
    @not_logan #65884 09:36 AM, 17 Sep 2018
    Тома подключаются к контейнерам. Контейнеры работают с данными. Но это в целом довольно хрупкая конструкция. И да, идеология работы с контейнерами предполагает "бесконечное" горизонтальное масштабирование. Чего контейнер с сохранением состояния обеспечить не сможет
  • https://t.me/clickhouse_ru
    @Imaskar #65885 09:37 AM, 17 Sep 2018
    в принципе, ни клик, ни зукипер не предполагается масштабировать автоматически
  • @70532431 ↶ Reply to #65883 #65886 09:37 AM, 17 Sep 2018
    У меня на железных серверах если сервер/сервис аварийно завершает работу, пара таблиц да кораптнется, а контейнеры это вообще неустойчивая единица, не могу предположить, как можно хранить данные, управляемые КХ в контейнере сколь-нибудь долго
  • https://t.me/clickhouse_ru
    @Imaskar #65887 09:37 AM, 17 Sep 2018
    но я не пойму, где же состояние, если данные в томах...
  • https://t.me/clickhouse_ru
    а как вы к этим томам обращаетесь? из контейнера же?
  • https://t.me/clickhouse_ru
    @Imaskar #65889 09:39 AM, 17 Sep 2018
    из контейнера, но он их как конфигурацию получает
    (я никак не обращаюсь, меня теория вопроса интересует)
  • https://t.me/clickhouse_ru
    ну то есть у вас контейнер хранит состояние. Просто для хранения состояния он использует том. Вообще, задача "прицепить к каждому контейнеру его строго определенный том" в кубере решается... Но болезненным и извращенным путем. Что явно подсказывает, что делать так не стоит
  • https://t.me/clickhouse_ru
    @not_logan #65891 09:40 AM, 17 Sep 2018
    плюс у контейнеров очень плохо предсказывается производительность. Кубер - классная штука. Но это сложно, я серьезно
  • https://t.me/clickhouse_ru
    @AlexAkulov #65892 09:41 AM, 17 Sep 2018
    А что в odbc опять сломан в последних версиях ClickHouse?
  • https://t.me/clickhouse_ru
    @AlexAkulov #65893 09:43 AM, 17 Sep 2018
    Пробую сделать select * from odbc('Driver={PostgreSQL Unicode};UID=analytic;PWD=*****;Server=192.168.10.10;Port=5532;DATABASE=production', 'jobs') limit 100
    Получаю:
    HTTP status code: 500 Internal Server Error, body: Error getting columns from ODBC 'Code: 404, e.displayText() = DB::Exception: ODBC connection string has forbidden parameter, e.what() = DB::Exception'
  • https://t.me/clickhouse_ru
    @sherpc ↶ Reply to #65891 #65894 09:44 AM, 17 Sep 2018
    Согласен, в нашем случае k8s существует не из-за кликхауса, а сам по себе. Это просто один из вариантов, куда его можно развернуть. =)
  • https://t.me/clickhouse_ru
    @pavel_odintsov #65895 09:45 AM, 17 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    Как будто он порт игнорирует.
    Смотрю tcpdump на 5532, ничего не приходит.
  • https://t.me/clickhouse_ru
    if (name == "FILEDSN" || name == "SAVEFILE" || name == "DRIVER")
    throw Exception("ODBC connection string has forbidden parameter", ErrorCodes::BAD_ODBC_CONNECTION_STRING);
  • https://t.me/clickhouse_ru
    @AlexAkulov #65898 09:48 AM, 17 Sep 2018
    И как теперь быть?
  • https://t.me/clickhouse_ru
    @Imaskar ↶ Reply to #65890 #65899 09:51 AM, 17 Sep 2018
    ок, допустим. а разворачивать и обновлять как? шефом или ручками?
  • https://t.me/clickhouse_ru
    шеф или ансибл. поверьте, вы не захотите обновлять хранилище данных в полностью автоматическом режиме без наблюдения оператора
  • Это как раз несколько ограничивает такое совсем "облачное" использование КХ, где масштабирование вверх/вниз должно происходить без переконфигурирования и конфигурация кластера / "облака" сильно динамична. В настоящее время КХ требует много "ручного" / "полуручного" конфигурирования, и конфигурацяи должна быть относительно статична. Поэтому всякие там кубернетисы мало что дают.

    В идеале конфигурация кластера наверное должна поддерживаться чем-то типа discovery service куда регистрируется каждый новый хост, и тогда автоматически начинает получает получать данные и запросы и подхватывая от соседей данные. В случае если какой-то хост падает / пропадет то куски которые на нём были должны скопироваться на какие-то другие хосты в кластере, чтобы обеспечить нужный replication factor. Но чтобы это нормально работало это должна "нативно" поддерживать сама база.
  • https://t.me/clickhouse_ru
    @Imaskar #65902 10:05 AM, 17 Sep 2018
    зукипер не может это сделать?
  • @mfilimonov #65903 10:06 AM, 17 Sep 2018
    @milovidov_an вы не планируете что-то типа этого? ^^ КХ реально крут в процессинге данных, но вот с распределенностью у него не всё гладно. Идеально - это что-то типа кликхаус поверх торрнетов :) Когда части размазываются между участиниками сети в соответствии с представлением сети о том как должны быть "размазаны" данные :)
  • https://t.me/clickhouse_ru
    @Imaskar #65904 10:06 AM, 17 Sep 2018
    но это только для замены. а увеличить количество нод так не получится...
  • https://t.me/clickhouse_ru
    @Imaskar #65905 10:07 AM, 17 Sep 2018
    может, сделать хэш с маской значимых битов? тогда можно будет растить кластер в 2 раза, добавляя бит в маску.
  • да вроде как service discovery на зукипере не сложно сделать.
  • https://t.me/clickhouse_ru
    С DSN у меня другая траба:
    Я делаю вот так select * from odbc('DSN=production', 'jobs') limit 100 но эти 100 строк кликхаус достаёт больше минуты.
    При том с той же тачки через isql production всё работает мгновенно. Куда компать?
  • https://t.me/clickhouse_ru
    К сожалению, я не настоящий сварщик и odbc не использовал - просто копнул в место исключения, вдруг поможет :)
  • https://t.me/clickhouse_ru
    и где там ответ на мой вопрос?
  • В смысле - попробуйте сконфигурировать DSN в системе, вместо указания драйвера в запросе.
  • https://t.me/clickhouse_ru
    @AlexAkulov #65912 10:20 AM, 17 Sep 2018
    Так я это уже сделал. Всё работает, но очень медленно.
    Кликхаус достаёт 100 строчек больше минуты, а через системный isql всё мгновенно
  • Могу только предположить, что он сначала все данные вытягиваает из постгреса, а лимит выполняет уже на стороне КХ.
  • https://t.me/clickhouse_ru
    @Vasyaabr ↶ Reply to #65907 #65914 10:23 AM, 17 Sep 2018
    Так и есть (как выше ответили). LIMIT выполняется из Clickhouse, так что вытягивается вся таблица.
  • https://t.me/clickhouse_ru
    @AlexAkulov #65915 10:24 AM, 17 Sep 2018
    хм..
  • https://t.me/clickhouse_ru
    @AlexAkulov #65916 10:24 AM, 17 Sep 2018
    ок, спс!
  • https://t.me/clickhouse_ru
    @Imaskar #65917 10:26 AM, 17 Sep 2018
    но почему? постгря же умеет лимит обрабатывать
  • Потому что кликхаус тоже умеет :) Скорее всего просто специфика того в какой последовательности обрабатывается запрос.
  • https://t.me/clickhouse_ru
    @Krashuevina #65919 10:34 AM, 17 Sep 2018
    Семантика запроса такая. odbc - табличная функция, которая возвращает поток данных. Чтобы запрос пробрасывался в нижележащий движок, нужна функция, в которую будет пробрасываться целиком запрос
  • @mfilimonov #65920 10:38 AM, 17 Sep 2018
    Хм. Интересная штуковина - кликхаус позволяет создавать/хранить состояния аггрегатных функций с -If. Только я не понимаю 1) зачем 2) как это потом использовать? :) Контекст: как оказалось между groupArrayStateIf и groupArrayIfState есть большая разница. Второе создает тип данных AggregateFunction(groupArrayIf, String, UInt8), на которым не понятно как сделать Merge. :)
  • https://t.me/clickhouse_ru
    @Shegloff #65921 10:39 AM, 17 Sep 2018
    на центосе сборка 18.12.14 от альтинити - в клиенте стрелки на клавиатуре не работают, печатаются символы:
    clickhouse-client
    ClickHouse client version 18.12.14.
    Connecting to localhost:9000.
    Connected to ClickHouse server version 18.12.14 revision 54407.

    1clickhouse0004.ad.rambler.tech :) ^[[A^[[B^[[C^[[D
  • https://t.me/clickhouse_ru
    @Shegloff #65922 10:39 AM, 17 Sep 2018
    кто что может подсказать?
  • Что-то у них с readline поломалось. Им уже сообщили.
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #65923 #65924 10:41 AM, 17 Sep 2018
    Спс
  • @mfilimonov #65927 10:42 AM, 17 Sep 2018
    the newest version 18.12.14 from Altinity seems has some problem, the auto complete function seems not work on clickhouse-client
  • @mfilimonov #65928 10:42 AM, 17 Sep 2018
    Thank you for alert, we will investigate what's happened with the build (every time building clickhouse is a quest) and fix ASAP
  • https://t.me/clickhouse_ru
    @moonpie ↶ Reply to #65766 #65929 11:14 AM, 17 Sep 2018
    у меня базы показывает как схемы, а таблицы вообще не показывает. У всех так?
  • https://t.me/clickhouse_ru
    @mo1seev ↶ Reply to #65929 #65930 11:15 AM, 17 Sep 2018
    У меня всё ок
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #65903 #65931 11:18 AM, 17 Sep 2018
    Мы что-то типа такого делаем, только без торентов, но с автодискавери и кучей автоматизации, но времени сильно нехватает, надеюсь к новому году что-то на попробовать выкатим )
  • https://t.me/clickhouse_ru
    @kshvakov #65932 11:20 AM, 17 Sep 2018
    Кстати, в новых версиях КХ должна быть ручка чтоб он сам старые хосты переставал видеть как живые в ZK и не копил лог репликации и прочего после некого порога, что уже сильно проще для динамического развертывания типа в к8
  • https://t.me/clickhouse_ru
    @sargo #65933 11:27 AM, 17 Sep 2018
    Joined.
  • В код кликхаус или поверх КХ?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #65934 #65935 11:30 AM, 17 Sep 2018
    Поверх КХ, сейчас форкать КХ и что-то делать отдельно весьма сомнительное решение.
  • Ну я не в смысле форкать, а в смысле какое-нибудь allow_experimental_service_discovery = 1 и в основном бранче. Хотя вряд ли это легко воплотимо без очень серьезного раскапывания кода.
  • @ReRo26 #65937 11:38 AM, 17 Sep 2018
    Кто-то использует JDBC драйвер? почему может возникать ошибка "ClickHouse response without column names" версия драйвера 0.1.41 версия сервера 18.10.3 (54405)
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #65936 #65938 11:42 AM, 17 Sep 2018
    Да, есть такое, поэтому пока решение писать все рядом с основным функционалом, если пойдет хорошо, можно будет подумать о миграции части функционала в сам сервер
  • Поддержка такой магии "внутри" была бы сильно здоровее чем наружняя "обертка". Если представить себе что около КХ ещё нужно поставить какого-то демона который будет как-то следить дополнительно за тем что происходит в кластере и править конфигурацию кластера "на лету" - как-то страшновато становится :) Хотя наверное реально всё - нужно только интенсивно взаимодествовать с зукипером и в конфигах повсеместно использовать from_zk=...
  • https://t.me/clickhouse_ru
    @petrov_ksan #65940 11:49 AM, 17 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #65939 #65941 11:54 AM, 17 Sep 2018
    Мы сами конфиги генерим, а данные храним в ZK
  • https://t.me/clickhouse_ru
    @kshvakov #65942 11:54 AM, 17 Sep 2018
    Вернее один большой конфиг, так как его не человек смотрит )
  • @mfilimonov #65943 11:55 AM, 17 Sep 2018
    Ну сгенерить - полбеды, а как подменять? При том что некоторые изменения могут и рестарта требовать?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #65943 #65944 11:56 AM, 17 Sep 2018
    С рестартом как раз самое интересное, нужно расчитать что можно рестартить (учесть какие есть шарды и реплики) и каскадно запускать рестарт.
  • https://t.me/clickhouse_ru
    @nonamehobo #65945 12:00 PM, 17 Sep 2018
    18.12.17 - есть changelog? Какая версия click на текущий момент является достаточно стабильной?
  • @mfilimonov #65946 12:00 PM, 17 Sep 2018
    Ну и кроме того если это не виртуалка, а железный сервер, то варианты типа "а давайте дадим этому демону права писать куда-то в /etc/ " звучат так себе. Наши ОПсы сильно возмущались уже тем что кликхаус пишет свои -processed.xml в /etc/.
  • https://t.me/clickhouse_ru
    @kshvakov #65947 12:03 PM, 17 Sep 2018
    Пока КХ нуждается в том чтоб файл конфигурации физически где то лежал на сервере, поэтому так. Вообще у нас в планах сильно больше чем просто возможность обновления конфигурации )
  • https://t.me/clickhouse_ru
    @ivor06 #65948 12:08 PM, 17 Sep 2018
    Добрый день. Таблица с партиционированием по дню (PARTITION BY date). При создани бэкапа командой FREEZE за год появляется такая ошибка:
    user@ip-10-0-0-1:~# clickhouse-client --query="ALTER TABLE test.myTable FREEZE PARTITION '2018';"
    Received exception from server (version 1.1.54342):
    Code: 33. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Cannot read all data.

    Аналогичный запрос для таблицы с партиционированием по умолчанию работает корректно.

    Подскажите, как можно решить проблему годового бэкапа? Возможно, как-то задать имени партиции в числовом формате (20180101) вместо строкового ('2018-01-01')
  • https://t.me/clickhouse_ru
    @not_logan #65949 12:13 PM, 17 Sep 2018
    коллеги, вопрос - насколько вероятны проблемы, если в одном кластере будут очень старый кликхауз и современный?
  • Если "очень старый" то весьма вероятны. В changelog есть информация про обратной совместимости.
  • https://t.me/clickhouse_ru
    @not_logan #65951 12:16 PM, 17 Sep 2018
    спасибо. Я хотел убедится. При реэкспорте в формате native проблем быть не должно?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #65951 #65952 12:17 PM, 17 Sep 2018
    Могут не поддерживаться новые типы, если их не использовать то - ОК
  • https://t.me/clickhouse_ru
    @not_logan #65953 12:17 PM, 17 Sep 2018
    мне надо из старого в новый вытащить)
  • https://t.me/clickhouse_ru
    @kshvakov #65954 12:18 PM, 17 Sep 2018
    Из старого в новый должно работать
  • @mfilimonov #65955 12:19 PM, 17 Sep 2018
    Обычно прямая миграция на более новую версию возможна. Проблемы могут появляться если одновременно в кластере сильно разные версии живут.
  • https://t.me/clickhouse_ru
    @not_logan #65956 12:19 PM, 17 Sep 2018
    супер, спасибо
  • https://t.me/clickhouse_ru
    @den_crane #65958 12:42 PM, 17 Sep 2018
    у вас time_ все время разный, назовите по другому

    CREATE MATERIALIZED VIEW mtrades
    ENGINE = AggregatingMergeTree(EventDate, (isin_, time__), 8192) POPULATE AS
    select
    toDate(time_) as EventDate,
    isin_,
    toInt64(intDiv(toUInt32(time_), 60) * 60) AS time__
    argMinState(price_, time__) as open_,
    argMaxState(price_, time__) as close_,
    sumState(abs(amount_)) as amount_,
    from trades
    GROUP BY EventDate, isin_, time__

    select isin_,
    argMinMerge(open_) as open_,
    argMaxMerge(close_) as close_,
    sumMerge(volume_) as volume_,
    time__
    from mtrades
    group by isin_, time__

    https://clickhouse.yandex/docs/en/query_language/functions/date_time_functions/#tostartofminute
  • https://t.me/clickhouse_ru
    @akisin #65959 12:50 PM, 17 Sep 2018
    Подскажите пожалуйста, кто как организовывал обновление данных в КХ? Понятно, что для обновления данных можно использовать CollapsingMergeTree. Но как быть с удалением строк?
  • https://t.me/clickhouse_ru
    @xammett ↶ Reply to #65959 #65960 12:55 PM, 17 Sep 2018
    а что вы хотите удалять?
  • https://t.me/clickhouse_ru
    @xammett ↶ Reply to #65959 #65961 12:55 PM, 17 Sep 2018
    если к вам приходят более новые данные по тем же id, то ReplacingMergeTree будет хорошим решением
  • https://t.me/clickhouse_ru
    @xammett ↶ Reply to #65959 #65962 12:57 PM, 17 Sep 2018
    в этом движке нужно явно управлять версиями, чтобы записи схлопнуть
  • https://t.me/clickhouse_ru
    @salim_murtazaliev #65963 01:06 PM, 17 Sep 2018
    С ReplacingMergeTree вы будете получать фантомные записи
  • https://t.me/clickhouse_ru
    @salim_murtazaliev #65964 01:07 PM, 17 Sep 2018
    не будет возможности принудительно схлопнуть записи, у CollapsingMergeTree можно указать FINAL
  • https://t.me/clickhouse_ru
    @akisin ↶ Reply to #65960 #65965 01:08 PM, 17 Sep 2018
    Записи из источника данных
  • https://t.me/clickhouse_ru
    @xammett ↶ Reply to #65964 #65966 01:09 PM, 17 Sep 2018
    в ReplacingMergeTree вы тоже можете сделать FINAL вместе с OPTIMIZE TABLE и будет хорошо
  • https://t.me/clickhouse_ru
    @xammett ↶ Reply to #65965 #65967 01:11 PM, 17 Sep 2018
    если у вас данные часто меняются по разным полям, то наверное вам не подойдет это решение, если данные можно перетирать по ключам, то это то, что вам нужно
  • https://t.me/clickhouse_ru
    @xammett #65968 01:13 PM, 17 Sep 2018
    по ключу будет происходит схлопывание данных, после схлопывания останется последняя пришедшяя строка по ключу
  • https://t.me/clickhouse_ru
    @xammett #65969 01:13 PM, 17 Sep 2018
    supplier | amount
    1 | 100
    1 | 50
  • https://t.me/clickhouse_ru
    @xammett #65970 01:14 PM, 17 Sep 2018
    если записи пришли в таком порядке, от останется только последняя после схловывания, это сильно упрощенный пример, но тем не менее
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #65959 #65971 01:14 PM, 17 Sep 2018
    ALTER TABLE DELETE?
  • https://t.me/clickhouse_ru
    @akisin ↶ Reply to #65967 #65972 01:14 PM, 17 Sep 2018
    По ключам перетирать можно, но что делать с записями, которые удаляются из таблицы-источника. Для update-insert есть вариант использовать триггеры и COPY TO PROGRAM, а вот насчет удалений не придумал
  • https://t.me/clickhouse_ru
    @xammett #65973 01:14 PM, 17 Sep 2018
    мы для себя используем в подобном кейсе
  • https://t.me/clickhouse_ru
    @akisin ↶ Reply to #65971 #65974 01:14 PM, 17 Sep 2018
    не вариант, данных террабайты будут
  • https://t.me/clickhouse_ru
    @xammett ↶ Reply to #65972 #65975 01:15 PM, 17 Sep 2018
    наверное здесь как раз подойдет CollapsingMergeTree с досыланием -1 на нужные записи
  • https://t.me/clickhouse_ru
    @akisin ↶ Reply to #65975 #65976 01:18 PM, 17 Sep 2018
    Спасибо, тоже к этому прихожу.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #65975 #65977 01:20 PM, 17 Sep 2018
    Это не сильно лучше чем ALTER TABLE DELETE и очень сильно не гарантирует что данные будут удалены ;)
  • https://t.me/clickhouse_ru
    @xammett ↶ Reply to #65977 #65978 01:21 PM, 17 Sep 2018
    они ведь рано или поздно удалятся, как вы писали где-то, optimize final схлопаывает их принудительно)
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #65978 #65979 01:23 PM, 17 Sep 2018
    Когда-то удаляться, но это не точно. Плюс старые и большие куски могут долго не мержиться или не мержиться вовсе. Колапсом хорошо работать по достаточно новым данным
  • https://t.me/clickhouse_ru
    @salim_murtazaliev #65980 01:24 PM, 17 Sep 2018
    OPTIMIZE дорогой процесс
  • https://t.me/clickhouse_ru
    @salim_murtazaliev #65981 01:24 PM, 17 Sep 2018
    и он не выполняется вместе с FINAL
  • https://t.me/clickhouse_ru
    @salim_murtazaliev #65982 01:25 PM, 17 Sep 2018
    FINAL на лету отдаст уже актуальные данные с учетом поля sign
  • https://t.me/clickhouse_ru
    @kshvakov #65983 01:28 PM, 17 Sep 2018
    Там обещают террабайты данных, можно никогда не дождаться SELECT с FINAL
  • https://t.me/clickhouse_ru
    @xammett ↶ Reply to #65983 #65984 01:31 PM, 17 Sep 2018
    какое бы вы посоветовали решение для Андрея, в этом случае?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #65984 #65985 01:35 PM, 17 Sep 2018
    Не удалять ) Надо знать что за задача и детали, сейчас есть еоробочное решение через ALTER DELETE, нужно его смотреть, возможно есть лучшие решение, но нужно больше деталей как и что будет храниться.
  • В планах есть, идёт пунктом "Облачные таблицы".
  • https://t.me/clickhouse_ru
    @xammett ↶ Reply to #65985 #65987 01:38 PM, 17 Sep 2018
    кейсы чаще всего удалять, либо перезаписывать что-то, с ALTER не все так однозначно, а схлопнуть строки по условием, кажется простым решением, но только с артефактами)
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #65987 #65988 01:40 PM, 17 Sep 2018
    Это не "конек" КХ, зачастую на практике проще перезалить партицию с откоректированными данными, но это тоже сильно редкие операции
  • 👍
  • https://t.me/clickhouse_ru
    @stufently #65990 01:51 PM, 17 Sep 2018
    @milovidov_an а на сколько стабильна уже 18 ветка? А то что не день то о каком то баге пишут, хотя не всегда конечно связано это именно с самим кх. Но проблем явно больше чем было раньше, хотя возможно просто больше людей в чате стало.
  • @VasiliyBukharev #65991 01:56 PM, 17 Sep 2018
    Joined.
  • @VasiliyBukharev #65992 01:57 PM, 17 Sep 2018
    добрый день, уважаемые
  • @VasiliyBukharev #65993 01:57 PM, 17 Sep 2018
    требуется помощь
  • @VasiliyBukharev #65994 01:58 PM, 17 Sep 2018
    при загрузке данных через $ clickhouse-client -n < data.sql
    загрузка падает с errno: 28
  • @VasiliyBukharev #65995 01:58 PM, 17 Sep 2018
    причём места достаточно
  • @VasiliyBukharev #65996 01:59 PM, 17 Sep 2018
    и мониторю место при загрузке
  • @VasiliyBukharev #65997 01:59 PM, 17 Sep 2018
    но.. стоит подключиться с помощью strace к процессу clickhouse-server, то больше не падает
  • @VasiliyBukharev #65998 02:00 PM, 17 Sep 2018
    VERSION_FULL ClickHouse 18.12.14
    VERSION_DESCRIBE v18.12.14-testing
    VERSION_GITHASH 84cde3429bec15028992497b3ab7e7a0fb53a253
    VERSION_REVISION 54407
  • @VasiliyBukharev #65999 02:02 PM, 17 Sep 2018
    по заббиксу вижу только что упирается в память
  • @VasiliyBukharev #66000 02:03 PM, 17 Sep 2018
    виртуалка тестовая, оперативки 8 гигов
  • https://t.me/clickhouse_ru
    @stufently #66001 02:03 PM, 17 Sep 2018
    ext4 ?
  • https://t.me/clickhouse_ru
    @stufently #66002 02:03 PM, 17 Sep 2018
    покажи df -h полностью
  • https://t.me/clickhouse_ru
    а в логе КХ сервера что?
  • да, до этого был xfs
  • https://t.me/clickhouse_ru
    @stufently #66006 02:06 PM, 17 Sep 2018
    у вас на руте кончилось место епта
  • https://t.me/clickhouse_ru
    @stufently #66007 02:06 PM, 17 Sep 2018
    как мы его мониторите не понятно , заббикс уже давно вам прислал об этом алерт
  • это не влияет, там данные strace не удалил
  • https://t.me/clickhouse_ru
    @stufently #66009 02:07 PM, 17 Sep 2018
    ну сомнительно что не влияет , так ка квероятно влияет , он же в рут тоже пишет что то
  • @faerics #66010 02:07 PM, 17 Sep 2018
    там в /etc/ вроде что-то пишется.
  • @VasiliyBukharev #66011 02:08 PM, 17 Sep 2018
    данные для ClickHouse вынесены на отдельный диск
  • https://t.me/clickhouse_ru
    @den_crane #66012 02:08 PM, 17 Sep 2018
    ну в /var/log точно пишется
  • https://t.me/clickhouse_ru
    @stufently #66013 02:08 PM, 17 Sep 2018
    ну он даже лог у вас не может записать чтобы вы узнали что не так
  • https://t.me/clickhouse_ru
    @stufently #66014 02:08 PM, 17 Sep 2018
    в общем почистите рут и все будет норм заливаться
  • https://t.me/clickhouse_ru
    du --max-depth 1 -h / --exclude=/var/lib/clickhouse

    похоже, вас ждут сюрпризы
  • @VasiliyBukharev #66016 02:08 PM, 17 Sep 2018
    ругается на нехватку места в /var/lib/clickhouse, который как видно имеет достаточно свободного места
  • https://t.me/clickhouse_ru
    а места не хватает на /
  • удалил данные strace, запустил заново, минут через 5 упадёт
  • @VasiliyBukharev #66020 02:11 PM, 17 Sep 2018
    это перед запуском
  • вот ошибка
    Code: 1000. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: File access error: no space left on device: /var/lib/clickhouse/data/default/pack_statistics/tmp_insert_20180608_20180608_125748_125748_0.
    как видно, не на корневой диск ругается
  • @VasiliyBukharev #66022 02:13 PM, 17 Sep 2018
    да, использую MergeTree
  • https://t.me/clickhouse_ru
    @stufently #66023 02:13 PM, 17 Sep 2018
    А что дф ?
  • https://t.me/clickhouse_ru
    @stufently #66024 02:14 PM, 17 Sep 2018
    покади df -h и df -i
  • https://t.me/clickhouse_ru
    @stufently #66025 02:14 PM, 17 Sep 2018
    просто странно что вы записали за 2 минуты 30 гигов в кх
  • @VasiliyBukharev #66026 02:14 PM, 17 Sep 2018
    на айноды тоже думал
  • @VasiliyBukharev #66027 02:15 PM, 17 Sep 2018
    мониторинг по айнодам показывает что всё нормально
  • https://t.me/clickhouse_ru
    @stufently #66028 02:15 PM, 17 Sep 2018
    ну сейчас то дф что показывает ?
  • @VasiliyBukharev #66030 02:17 PM, 17 Sep 2018
    прям перед падением
  • @VasiliyBukharev #66031 02:17 PM, 17 Sep 2018
    в каком логе смотреть?
  • https://t.me/clickhouse_ru
    @not_logan #66032 02:18 PM, 17 Sep 2018
    у вас кончаются иноды
  • @VasiliyBukharev #66033 02:18 PM, 17 Sep 2018
    вот теперь заметил
  • https://t.me/clickhouse_ru
    @not_logan #66034 02:18 PM, 17 Sep 2018
    там пустая файлсистема? ее стоит переформатировать
  • @VasiliyBukharev #66035 02:18 PM, 17 Sep 2018
    что с этим можно сделать?
  • @VasiliyBukharev #66036 02:19 PM, 17 Sep 2018
    на пустой та же проблема была
  • https://t.me/clickhouse_ru
    @stufently #66037 02:19 PM, 17 Sep 2018
    форматишь заново в ext4 и задаешь большое количество инодов
  • @VasiliyBukharev #66038 02:19 PM, 17 Sep 2018
    для примера какое?
  • https://t.me/clickhouse_ru
    @stufently #66039 02:19 PM, 17 Sep 2018
    там просто по дефолту количество инодов зависит от размера диска а на 40 гигов их будет очень мало
  • https://t.me/clickhouse_ru
    @stufently #66040 02:19 PM, 17 Sep 2018
    ну задайте в 100 раз больше инодов чем сейчас
  • @VasiliyBukharev #66041 02:20 PM, 17 Sep 2018
    спасибо, завтра попробую
  • @mfilimonov #66042 02:20 PM, 17 Sep 2018
    Интересно кстати - почему столько инодов занято?
  • https://t.me/clickhouse_ru
    @crazyproger #66043 02:21 PM, 17 Sep 2018
    Мелкие вставки?
  • @mfilimonov #66044 02:21 PM, 17 Sep 2018
    Вангую: внутри того data.sql который вы пайпуете в clickhouse-client много-много однострочных INSERT.
  • @mfilimonov #66045 02:22 PM, 17 Sep 2018
    А должен быть один :)
  • @mfilimonov #66046 02:22 PM, 17 Sep 2018
    и много-много VALUES.
  • У нас на продакшене она используется. Если говорить про отдельные релизы, то по количеству обнаруженных ошибок, 18.12 существенно лучше, чем 18.10, 18.5, 18.1.
  • Ещё хотелось бы узнать - если сейчас есть какой-либо баг, обнаруженный в последней версии, который вас беспокоит - то какой именно?
  • https://t.me/clickhouse_ru
    @alexuserid #66050 04:11 PM, 17 Sep 2018
    друзья, а вот расскажите, очищаются ли данные в кликхаусе как-то? то есть он же в основном для метрик используется, а метрики, далеко не всегда нужно хранить годами. как происходит освобождение памяти от уже ненужного?
  • Данные сами собой не очищаются. Это надо делать вручную. Например, удалением старых партиций.
  • https://t.me/clickhouse_ru
    @alexuserid #66052 04:13 PM, 17 Sep 2018
    аа, ок
  • https://t.me/clickhouse_ru
    @alexuserid #66053 04:13 PM, 17 Sep 2018
    пасиб
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #66049 #66054 04:18 PM, 17 Sep 2018
    счетчик MemoryTracking сломался
  • https://t.me/clickhouse_ru
  • @397047829 #66056 04:21 PM, 17 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    поменяйте функцию на дельту
  • Счётчик (глобальный) действительно сейчас показывает не то, что надо. Для отдельных запросов отслеживание памяти - Ок.
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #66058 #66060 04:24 PM, 17 Sep 2018
    думаете будет норм показывать? расход оперативки для всех запросов на текущий момент
  • https://t.me/clickhouse_ru
    @not_logan #66061 04:25 PM, 17 Sep 2018
    думаю - да. судя по графику - счетчик является каунтером, то есть он показывает не текущее значение, а прирост
  • https://t.me/clickhouse_ru
    @not_logan #66062 04:25 PM, 17 Sep 2018
    пропишете дельту - будут реальные цифры
  • @milovidov_an #66063 05:36 PM, 17 Sep 2018
    Но так не должно быть.
  • @serlex777 #66064 07:00 PM, 17 Sep 2018
    Добрый вечер! Подскажите пожалуйста, а вот этот пункт "Protobuf and Parquet input and output formats" в какой стадии сейдас находится?
  • Есть рабочие pull requests, но их нужно доделывать. Внешний разработчик (@luc1ph3r) хочет довести до разумного состояния до октября (но я не уверен, что это будет), потом будем сами доделывать.
  • @serlex777 #66068 07:30 PM, 17 Sep 2018
    Судя по коммиту построение схемы таблицы по протобуф описанию не предполагается? Возможно с какими-то ограничениями по вложенности сообщений...Только загрузка/выгрузка данных или есть что-то в перспективе? Было бы очень прикольно скормить КХ .proto файл и получить на выходе готовые талицы и возможность лить данные в соответствующем формате :) Ну конечно мечтать не вредно :)
  • @milovidov_an #66069 07:32 PM, 17 Sep 2018
    Пока нет - только загрузка в таблицу с более-менее соответствующей схемой, и выгрузка из таблицы в схеме, которая выводится из схемы таблицы.
  • Сейчас разберёмся с некоторыми мелочами и напишу в личку, как помочь разобраться.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #66071 08:59 PM, 17 Sep 2018
    спасибо! :)
  • @VitalVas #66072 11:26 PM, 17 Sep 2018
    Есть feature request - сделать движок GraphiteReplacingMergeTree
  • @VitalVas #66073 11:27 PM, 17 Sep 2018
    цель - возможность перезаписывать определенные данные в истории
  • @VitalVas #66074 11:28 PM, 17 Sep 2018
    к примеру - убирать спайки фолс-позитивов
  • 18 September 2018 (77 messages)
  • @pogorelskiym #66075 01:10 AM, 18 Sep 2018
    Joined.
  • @679362143 #66076 04:46 AM, 18 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @wawaka #66077 06:15 AM, 18 Sep 2018
    подскажите, в чем разница в использовании 32-битного sampling выражения и 64-битного? intHash32 vs intHash64?
  • https://t.me/clickhouse_ru
    @Imaskar ↶ Reply to #65714 #66078 06:26 AM, 18 Sep 2018
    спам же
  • @sspat #66081 07:35 AM, 18 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @ram00X #66082 07:44 AM, 18 Sep 2018
    Всем привет, подскажите как лучше хранить и считать агрегаты над 38 символьными числами? Что-то типо number/numeric я так понял нет
  • @YaroslavMakarov #66083 08:10 AM, 18 Sep 2018
    @milovidov_an Алексей, нашел вашу цитату "После вставки в Distributed таблицу, отправка данных на удалённые серверы производится полностью асинхронно. Если при отправке возникает ошибка, её следует смотреть в логе отправляющего сервера."
    Сохранилось ли такое же поведение сейчас?
    Интересен момент с возвращением статуса. Хотелось бы или получать ошибочный статус при невозможности вставки данных на другие шарды, а не сообщение в лог, или может быть повторные попытки отправки данных на другие шарды.
  • https://t.me/clickhouse_ru
    decimal сейчас в активной разработке, в свежих сборках можно уже потестить
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #66083 #66085 08:16 AM, 18 Sep 2018
    Можно синхронную вставку включить insert_distributed_sync
  • @YaroslavMakarov #66086 08:18 AM, 18 Sep 2018
    спасибо!
  • https://t.me/clickhouse_ru
    @studnev ↶ Reply to #66084 #66087 09:08 AM, 18 Sep 2018
    а есть по ним документация?
  • https://t.me/clickhouse_ru
    Пока нет, но там мало что от SQL стандарта отличается + можно по тестам ориентироваться
  • https://t.me/clickhouse_ru
    @studnev ↶ Reply to #66088 #66089 09:17 AM, 18 Sep 2018
    главный вопрос сколько можно до и после ? ( знаков я имею ввиду )
  • @milovidov_an #66090 09:29 AM, 18 Sep 2018
    Всего 38 знаков.
  • @vstakhov #66091 09:35 AM, 18 Sep 2018
    а можно ли сказать сабжу слушать по ssl на 0.0.0.0 и без ssl на 127.0.0.1?
  • https://t.me/clickhouse_ru
    @geebv ↶ Reply to #65857 #66092 09:41 AM, 18 Sep 2018
    Коллеги мне помогли разобраться, вроде бы ошибка в драйвере
    Скоро будет ишью
  • https://t.me/clickhouse_ru
    @alek_si #66093 09:46 AM, 18 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Sablast #66094 09:52 AM, 18 Sep 2018
    На distributed таблице не работает функция quantiles
    Received exception from server (version 18.12.14):
    Code: 42. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Aggregate function quantile require one parameter or less:
  • https://t.me/clickhouse_ru
    @Sablast #66095 09:52 AM, 18 Sep 2018
    так и задумано?)
  • @maxim_vorsobine #66096 10:06 AM, 18 Sep 2018
    Добрый день!
    Есть запрос вида:
    SELECT ...
    FROM ...
    WHERE ...
    AND test_id IN ( SELECT test_id... )
    GROUP BY ...
    ANY LEFT JOIN (
    SELECT ...
    FROM ...
    WHERE ...
    AND test_id IN ( SELECT test_id... )
    GROUP BY ...
    ANY LEFT JOIN (
    SELECT ...
    FROM ...
    WHERE ...
    AND test_id IN ( SELECT test_id... )
    )
    USING test_id
    LIMIT ...
    в нём все три подзапроса SELECT test_id... совершенно одинаковы;
    будут ли они вычислены в CH только один раз?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #66092 #66097 10:20 AM, 18 Sep 2018
    Хорошо, давайте issue буду править ;)
  • https://t.me/clickhouse_ru
    @geebv ↶ Reply to #66097 #66098 10:20 AM, 18 Sep 2018
    [read meta] unexpected packet [5] from server #122

    Tagged version v1.3.4. ClickHouse yandex/clickhouse-server:18.12.17. db.SetConnMaxLifetime(0) db.SetMaxOpenConns(2) db.SetMaxIdleConns(2) First connection is opened: [clickhouse]host(s)=127.0.0.1:9001, database=default, username=default ...

  • https://t.me/clickhouse_ru
    @proller ↶ Reply to #66091 #66099 10:22 AM, 18 Sep 2018
    Нет
  • @vstakhov ↶ Reply to #66099 #66100 10:23 AM, 18 Sep 2018
    это печально, синтаксис, когда хост отдельно, а порт отдельно полностью инопланетянский и неудобный
  • @vstakhov #66101 10:23 AM, 18 Sep 2018
    @proller а ты не задокументировал свои добавления к distributed, чтобы пользоваться им через ssl?
  • https://t.me/clickhouse_ru
    @proller ↶ Reply to #66100 #66102 10:25 AM, 18 Sep 2018
    так исторически сложилось, но сделать новый вариант не сложно
  • @vstakhov ↶ Reply to #66101 #66103 10:29 AM, 18 Sep 2018
    в Changelog нашел, а в документации нет
  • @vstakhov #66104 10:29 AM, 18 Sep 2018
    ну и мелкое пожелание - в документации, когда добавляются новые вещи, лучше писать, с какой версии та или иная вещь добавилась
  • @vstakhov #66105 10:30 AM, 18 Sep 2018
    это очень облегчает жизнь
  • https://t.me/clickhouse_ru
    @proller ↶ Reply to #66101 #66106 10:31 AM, 18 Sep 2018
    Нет
  • @70532431 #66107 11:26 AM, 18 Sep 2018
    Привет! Где-нибудь можно почитать сравнение реализации SQL в CH со стандартом ANSI SQL 2008 (или другого года)?
  • @vor_nik ↶ Reply to #66107 #66108 11:34 AM, 18 Sep 2018
    Я думаю что сравнивать бесполезно, т.к. в CH слишком "своя" реализация напоминающая SQL. Тут больше подойдет название "SQL подобный" синтаксис запросов
  • @70532431 #66109 11:45 AM, 18 Sep 2018
    Понятно. Вот в особенностях в доках написано "отсутствие полноценных транзакций". А что, какие-то подобия есть?
  • @70532431 ↶ Reply to #59265 #66110 11:52 AM, 18 Sep 2018
    Алексей, то есть если будет в батче больше 1млн строк, то атомарность INSERT-а не будет работать? Тут не совсем понятно
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #66110 #66111 11:54 AM, 18 Sep 2018
    Будет, размер блока может быть любым
  • @YaroslavMakarov #66112 11:58 AM, 18 Sep 2018
    Можно ли как-то организовать вставку в Distributed таблицу не перечисляя все поля таблицы (для некоторых есть DEFAULT)?
    Перестало работать после определения insert_distributed_sync=1

    Сейчас выдает Code: 171. DB::Exception: Received from localhost:9001, 127.0.0.1. DB::Exception: Block structure mismatch in RemoteBlockOutputStream stream: different number of columns:
  • @70532431 ↶ Reply to #66111 #66113 11:59 AM, 18 Sep 2018
    Спасибо, но всё равно непонятно, к чему там в реплае оговорка про 1 млн строк... Типа SELECT по умолчанию может отставать на 1млн записей, ещё не подтверждённой записи недавних данных?
  • https://t.me/clickhouse_ru
    @ITishkin #66114 12:16 PM, 18 Sep 2018
    подскажите, мутации поддерживаются для SummingMergeTree? если да, то с какой версии?
  • @ztlpn #66115 12:20 PM, 18 Sep 2018
    Да, поддерживаются (никакой специальной логики для Summing нет). DELETE с версии 18.1.0, UPDATE с 18.12.14.
  • https://t.me/clickhouse_ru
    @ManfrediK #66116 12:24 PM, 18 Sep 2018
    Коллеги, всем привет!
    Недавно начали только использовать ClickHouse ищем специалиста который может поконсультировать на платной основе нашу разработку на предмет правильности использования и тонкостей настройки
  • https://t.me/clickhouse_ru
    потому что параметр по умолчанию раверн 1млн
    t.me/clickhouse_ru/63449
    Denny Crane in ClickHouse не тормозит

    max_insert_block_size для вставки с клиента, max_block_size для insert into t select .. from for i in seq 1 20000000; do echo $i; done > x.tsv echo xxx >> x.tsv for i in seq 1 2000; do echo $i; done >> x.tsv drop table i; create table i(a Int64) ENGINE=MergeTree PARTITION by tuple() order by tuple(); cat x.tsv |clickhouse-client --max_insert_block_size 30000000 -q 'insert into i format TSV' Code: 27. DB::Exception: Cannot parse input..... select count() from i; 0 rows in set. Elapsed: 0.001 sec.

  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @MrAnatoly #66119 01:00 PM, 18 Sep 2018
    Joined.
  • @70532431 #66120 01:21 PM, 18 Sep 2018
    А CH поддерживает вертикальное партицирование по полям? DBA зачем-то спрашивают
  • https://t.me/clickhouse_ru
    @den_crane #66121 01:29 PM, 18 Sep 2018
    каждая колонка это отдельный файл
  • Насколько я помню, всё-таки будут выполнены несколько раз.
  • Это определяется настройкой max_insert_block_size. Её можно указать как в clickhouse-client, так и в HTTP интерфейсе. Блоки будут собираться такого размера из строк, и вставка каждого блока будет атомарной.
  • Не видел пока текста с подробной сводкой.
  • Возможно, Altinity сможет помочь. https://www.altinity.com/ Хотя я даже не знаю, начиная с какого размера, они заинтересованы.
    ClickHouse Software And Services — Altinity

    Deploy and operate ClickHouse, a lightning fast, open source SQL data warehouse for real-time analytics, time series, and log analysis.

  • @70532431 #66126 01:49 PM, 18 Sep 2018
    Во VIEW можно же можно столбцы любых типов данных использовать? Не нашёл в доках
  • Да.
  • @geshido #66128 02:06 PM, 18 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Alex_Neo #66129 02:53 PM, 18 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @easla #66130 03:07 PM, 18 Sep 2018
    Joined.
  • @bladeofsteel #66131 03:24 PM, 18 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @easla #66132 04:15 PM, 18 Sep 2018
    Добрый день. Подскажите, как быть. Впритык не вижу в чем проблема. Есть основная таблица stat (MergeTree). Также есть view_general (VIEW над stat). Далее выполняю последовательно запросы над view_general:
    1) Вытягиваю данные за последнюю неделю - данные отдаются в полной мере.
    2) Затем тащу данные за последние сутки - данные отдаются в полной мере.
    3) Пробую вновь вытащить данные за неделю - отдаются данные лишь за последние сутки.

    Проблема наблюдается и в запросах через веб и в cli.
  • https://t.me/clickhouse_ru
    @Shegloff #66133 04:20 PM, 18 Sep 2018
    а на 4й раз как?
  • https://t.me/clickhouse_ru
    @Shegloff #66134 04:21 PM, 18 Sep 2018
    view обычная, не материальная?
  • https://t.me/clickhouse_ru
    @easla ↶ Reply to #66133 #66135 04:22 PM, 18 Sep 2018
    может прибавиться несколько записей, буквально единицы
  • https://t.me/clickhouse_ru
    @easla ↶ Reply to #66134 #66136 04:22 PM, 18 Sep 2018
    обычная
  • https://t.me/clickhouse_ru
    @den_crane #66137 04:25 PM, 18 Sep 2018
    а версия КХ последняя?
    тогда enable_optimize_predicate_expression = 0 и пересоздать view
  • https://t.me/clickhouse_ru
    @easla ↶ Reply to #66137 #66138 04:26 PM, 18 Sep 2018
    v18.12.17, спасибо, работает*
  • https://t.me/clickhouse_ru
    @bsukhinin #66140 06:52 PM, 18 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @proller ↶ Reply to #66101 #66141 06:54 PM, 18 Sep 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
    @timurkar #66142 07:01 PM, 18 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @timurkar #66143 07:11 PM, 18 Sep 2018
    господа,
    во-первых большое спасибо за clickhouse, больше года используем у себя и просто счастливы что появилась такая штука

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

    вопрос такой: а в яндекс.облаке, где clickhouse подключен как одна из баз данных - нет возможности включить этот словарь?
  • В Яндекс.Облаке тоже нет внутрияндексовской геобазы.

    (если бы была - тогда можно было бы легко выгрузить её целиком)
  • https://t.me/clickhouse_ru
    @timurkar #66145 07:25 PM, 18 Sep 2018
    Понял, спасибо
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #66146 07:46 PM, 18 Sep 2018
    После пары последних обновлений заметил странный баг с вьюхами: запрос ко вьюхе (обычная, не матвью) отдает меньше данных, чем в исходной таблицы.
    Схема такая:
    1. исходная таблица (в mysql)
    2. таблица с движком mysql (в КХ)
    3. вьюха на таблицу (в КХ)

    Запрос count для первых друх таблиц возвращает правильное значение, а к третьей - где-то процентов 10. Но стоит пересоздать вьюху - запрос с count ко вьюхе начинает отдавать правильное значение. И такое уже второй раз за день
  • https://t.me/clickhouse_ru
    @Shegloff #66147 07:52 PM, 18 Sep 2018
    а версия КХ последняя?
    тогда enable_optimize_predicate_expression = 0 и пересоздать view
  • https://t.me/clickhouse_ru
    Это я ещё при 18.12.13 сначала включил, потом выключил. А сейчас оказывается по умолчанию включена. Спасибо, буду дальше копать
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #66146 #66149 08:20 PM, 18 Sep 2018
    А точно обычная вьюха, а не матвью? А то поведение очень уж похоже на мержи. Сразу после создания еще ничего не помержилось, вот и отдается полностью, а потом по прошествии мержей остается 10 процентов данных.
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #66150 08:21 PM, 18 Sep 2018
    Точно. Эта вьюха нужна чтобы запросы к таблице с mysql-движком не падали
  • https://t.me/clickhouse_ru
    @den_crane #66151 08:38 PM, 18 Sep 2018
    да, странный баг, когда на марсе температура через 0 переходит, вьюхи начинают возвращать 10% строк.
    и вроде исправлен https://github.com/yandex/ClickHouse/commit/13779bc75d85a3f52299c4df34a741208ebf4cf7
  • https://t.me/clickhouse_ru
    @rheinx #66152 09:28 PM, 18 Sep 2018
    Ребят, а есть возможность делать инклуд какого-то своего файла в конфиг?
    Т.е. если я некоторую часть config.xml хочу вынести в отдельный файл, как сказать CH чтобы он ее тоже почитал?
  • https://t.me/clickhouse_ru
    @den_crane #66153 09:34 PM, 18 Sep 2018
    ну мы вообще стандартные конфиги не изменяем, все свое складываем в clickhouse/conf.d
    https://clickhouse.yandex/docs/en/operations/configuration_files/
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #66153 #66154 09:36 PM, 18 Sep 2018
    Воооо, юзеры. То что нужно. Спасибо!!
  • 19 September 2018 (260 messages)
  • @238773844 #66155 01:12 AM, 19 Sep 2018
    Доброго утра! Нет ли штатной функции отображения seconds(UintX) в формате HH:MM:SS? Я знаю что типа time нет в CH
  • https://t.me/clickhouse_ru
    @den_crane #66156 01:33 AM, 19 Sep 2018
    меньше суток наверное можно выкрутиться
    SELECT substring(toString(toDateTime(36000)), 12, 8 )
    10:00:00

    SELECT substring(toString(toDateTime(3600)), 12, 8 )
    01:00:00
  • https://t.me/clickhouse_ru
    @den_crane #66157 01:41 AM, 19 Sep 2018
    select 360001 s, intDiv(s, 3600) h, intDiv(s-3600*h, 60) m, s-3600*h-m*60 ss
    ┌──────s─┬───h─┬─m─┬─ss─┐
    │ 360001 │ 100 │ 0 │ 1 │
    └────────┴─────┴───┴────┘
  • @farziev_amin #66158 02:16 AM, 19 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @timurkar ↶ Reply to #66155 #66159 04:46 AM, 19 Sep 2018
    если я правильно понял - скоро должно быть )

    https://github.com/yandex/ClickHouse/pull/2770#issuecomment-422466974
  • https://t.me/clickhouse_ru
    @leidruid ↶ Reply to #66143 #66160 05:46 AM, 19 Sep 2018
    А что такое "геобаза" ?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @athathot ↶ Reply to #66160 #66162 05:50 AM, 19 Sep 2018
    обычно база данных, в которой ip связан с герлокацией
  • https://t.me/clickhouse_ru
    @athathot #66163 05:50 AM, 19 Sep 2018
    можно самим наколхозить, но лучше бы родную.
  • https://t.me/clickhouse_ru
    @kshvakov #66164 05:51 AM, 19 Sep 2018
    Это лучше до КХ определять, так как в зависимости от версии самой базы будут и разные значения на один и тотже IP
  • https://t.me/clickhouse_ru
    @athathot #66165 05:51 AM, 19 Sep 2018
    есть еще всякие spatial опции в традиционных базах, запрос по координатам, пересечение областей на карте
  • https://t.me/clickhouse_ru
    @athathot ↶ Reply to #66164 #66166 05:51 AM, 19 Sep 2018
    именно так
  • https://t.me/clickhouse_ru
    @athathot #66167 05:52 AM, 19 Sep 2018
    несколько вендоров баз geoIP. за деньги и нет
  • https://t.me/clickhouse_ru
    @kshvakov #66168 05:53 AM, 19 Sep 2018
    Даже от одного и того же вендора (например digital element) от версии к версии будут меняться значения
  • https://t.me/clickhouse_ru
    @timurkar ↶ Reply to #66168 #66169 06:06 AM, 19 Sep 2018
    так вот это не очень критично
    все-равно оно никогда не дает 100% попадания (всегда есть мобильные операторы/vpn'ы и т.п.), всегда важнее срез "в общем"

    можно и свою наколхозить, есть вендоры конечно. но то как устроена яндексовая (иерархично, с областями) - для СНГ идеально
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #66169 #66170 06:09 AM, 19 Sep 2018
    Смотря где, если мы продали трафик как трафик с США, то он потом не долже внезапно светиться как трафик с Канады
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #66169 #66171 06:09 AM, 19 Sep 2018
    Там простой формат, легко сделать, она там вообще к IP не привязана
  • https://t.me/clickhouse_ru
    @leidruid ↶ Reply to #66161 #66172 06:12 AM, 19 Sep 2018
    я чё-то про аналог OSM подумал
  • https://t.me/clickhouse_ru
    @kshvakov #66173 06:15 AM, 19 Sep 2018
    Более того, на ней можно сделать что угодно, даже классификатор матрешек или что там в голову взбредет )
  • https://t.me/clickhouse_ru
    @timurkar ↶ Reply to #66171 #66174 06:16 AM, 19 Sep 2018
    я понимаю что иерархия не связана с IP

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

    хотелось хоть с одним крупным вендором (яндекс/google/вк) совпадать (хотя-бы по набору регионов)

    просто подумалось что может быть в Яндекс.Облаке есть подключенный словарь который не дают наружу

    потом уже после ответа Алексея стало понятно что да, если бы был - можно бы было получить и саму базу
  • @231864534 #66175 07:20 AM, 19 Sep 2018
    Привет всем! Мы тут на клике решили считать воронку, но вопрос не про неё. Упрощённо у нас есть таблица, содержащая колонки (uid, date, event), мы группируем по uid и с помощью groupArray получаем две колонки (uid, [event1,event2,event3]), далее делаем расчёты. Чтобы не группировать при каждом запросе, решили сгруппировать единожды и положить в отдельную таблицу. Но когда делаем запросы к заранее сгруппированной таблице, то вылетает по лимиту памяти, тогда как тот же самый запрос с группировкой в памяти отрабатывает на отлично. Вроде бы делаем то же самое, даже выбросили лишний шаг.. С чем может быть связано такое поведение?
  • https://t.me/clickhouse_ru
    а потом что именно вы с этими массивами делаете?
  • https://t.me/clickhouse_ru
  • Дальше делается полнейшая жесть с arrayFilter, чтобы найти индексы ивентов входа в воронку (их может быть несколько), arrayJoin, чтобы размножить последовательность шагов на отдельные записи на каждый вход в воронку, и в итоге arraySlice, чтобы оставить в каждой записи только одно прохождение. Но эта жесть с группировкой в памяти отрабатывает и скорее вопрос, в чём принципиальная разница, группировать в памяти или брать из заранее сгруппированной таблицы..
  • Ага, это видела. По сути на основе этого и делается, там просто не простая воронка, поэтому появляется всякая жесть))
  • https://t.me/clickhouse_ru
    @athathot ↶ Reply to #66178 #66180 07:31 AM, 19 Sep 2018
    для отладки удобнее из таблицы, как мне кажется
  • Мне тоже так кажется) Но запросы из таблицы вылетают по памяти и пока не понятно, почему..
  • А какой движок таблицы и настройки? И как выбираете из таблицы (по сравнению с прямым селектом)? (Например не используете ли повторно GROUP BY?)
  • @mfilimonov #66183 07:49 AM, 19 Sep 2018
    т.е. я так понимаю что делаете что-то типа
    CREATE TABLE ... Engine=... AS SELECT uid, groupArray(event) FROM (SELECT uid, event FROM table ORDER BY date) GROUP BY uid ?
  • @mfilimonov #66184 07:50 AM, 19 Sep 2018
    А потом простой селект (без дополнительных группировок) из получившейся таблицы?
  • @mfilimonov #66185 07:50 AM, 19 Sep 2018
    Вроде бы не должно "отваливаться"...
  • Движок MergeTree. Какие настройки интересуют?
    Запросы различаются лишь секцией from - либо таблица, в которой уже сгруппированные данные, либо запрос из исходной таблицы и группировка (ровно то, чем заполнена сгруппированная таблица).
  • Почти, только groupArray(event) вместо просто event
  • Да, никаких доп группировок, но своё слово вносит arrayJoin, я думаю. Так что не такой уж простой)
  • @mfilimonov #66189 08:01 AM, 19 Sep 2018
    Ну если он может "размножить" строки читая данные из памяти, то по идее должен справиться с тем же самым читая те же данные из таблицы.
  • @mfilimonov #66190 08:03 AM, 19 Sep 2018
    А если вы в том селекте где используете данные записанные в таблицу замените прямое использование таблицы на подзапрос типа FROM (SELECT * FROM table) ?
  • Попробовала только что - тот же результат.
    Кстати, по памяти вылетает достаточно быстро, прогресс бар в клиенте замирает на 2% и через 4 секунды выкидывает ошибку. Может он заранее пытается прикинуть нужный размер и падает из-за некоторого вычисленного значения? Потому что просто сделать какой-нибудь каунт из сгруппированной таблицы можно, не отрабатывают сложные запросы с arrayJoin и arraySlice.
  • @lnpj12 ↶ Reply to #66191 #66192 08:17 AM, 19 Sep 2018
    объём используемой памяти видно в логах сервера
  • @madms #66193 08:22 AM, 19 Sep 2018
    Привет всем! Возник вопрос про механизм обновление кластера. Есть кластер из 25 машин. Кластер находится под нагрузкой. Могу ли я обновлять ноды одна за другой без простоя кластера? Тоесть будет ли работать кластер с нодами разной версии, не возникнит ли конфликт. Или необходимо выполнять остановку всех нод, обновлять, а потом продолжать работу. Если есть мануал по данному вопросу скинте ссылочку, а то я както не нашел
  • Интересненько, MemoryTracker из логов: группировка в памяти 2.15 GiB, чтение из заранее сгруппированной таблицы остановилось на 8.05 GiB (упёрлось в лимит). Значит, это реально не какое-то вычисленное значение..
  • https://t.me/clickhouse_ru
    @konstantin_ptr #66195 08:58 AM, 19 Sep 2018
    Code: 159, e.displayText() = DB::Exception: Timeout exceeded: elapsed 5.079963156 seconds, maximum: 5, e.what() = DB::Exception
    как то обойти можно? а то не пересортировать
  • https://t.me/clickhouse_ru
    @Imaskar #66196 09:00 AM, 19 Sep 2018
    есть настройка http_connection_timeout
  • @alexryasn #66197 09:00 AM, 19 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    да я через tabix.io пока
  • https://t.me/clickhouse_ru
    @konstantin_ptr #66199 09:01 AM, 19 Sep 2018
    о есть такая
  • А можете попробовать сделать какой-то воспроизводимый пример?
  • @mfilimonov #66203 09:08 AM, 19 Sep 2018
    Что-нибудь похожее на ваши данные погенерить из numbers() и rand?
  • @mfilimonov #66204 09:09 AM, 19 Sep 2018
    И какой-то минимальный пример?
  • https://t.me/clickhouse_ru
    @emakarov #66205 09:28 AM, 19 Sep 2018
    @milovidov_an добрый день
    можно поинтересоваться,
    в случае, если будет реализована новая полезная функция в виде pull request, то каков примерный срок вхождения ее в релиз?
  • https://t.me/clickhouse_ru
    @studnev ↶ Reply to #66205 #66206 09:29 AM, 19 Sep 2018
    на своем опыте - я сделал бесполезную функцию, Алексей ее сразу интегрировал ( до релиза прошло 2 недели или около того). За что огромное спасибо, так как не надо возиться со своей сборкой
  • https://t.me/clickhouse_ru
    @emakarov #66207 09:30 AM, 19 Sep 2018
    понятно, спасибо
  • https://t.me/clickhouse_ru
    да, небольшое обычно редко висит на ревью дольше единиц дней или недель, но на нетривиальные патчи может уходить непредсказуемо много времени в зависимости объема, сложности и качества кода
  • https://t.me/clickhouse_ru
    @emakarov #66209 09:33 AM, 19 Sep 2018
    понятно
  • Попробую
  • @lnpj12 ↶ Reply to #66194 #66212 09:51 AM, 19 Sep 2018
    скорее всего arrayJoin сильно увеличивает расход памяти
  • Но тот же самый запрос с тем же самым arrayJoin и группировкой в памяти, а не чтением из таблицы с заранее сгруппированными данными, отрабатывает с меньшим потреблением памяти и не падает.
  • https://t.me/clickhouse_ru
    @blindsight #66214 11:15 AM, 19 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @blindsight #66215 11:16 AM, 19 Sep 2018
    Привет, мне сказали, что тут есть люди, которые умеют селектить, а не как я.
  • https://t.me/clickhouse_ru
    @blindsight #66216 11:16 AM, 19 Sep 2018
    есть пользователи, они иногда приходят. Есть retention недельный. Для дня Х мы хотим посчитать следующую чиселку: уники, который пришли в диапазоне (Х-2 недели, Х-неделя) и еще раз пришли в (Х-неделя,Х). Вроде всё просто
  • https://t.me/clickhouse_ru
    @blindsight #66217 11:16 AM, 19 Sep 2018
    а теперь хочется селект, который для последний 14 дней будет выдавать эту чиселку
  • https://t.me/clickhouse_ru
    типа скользящим окном?
  • https://t.me/clickhouse_ru
    @blindsight #66219 11:27 AM, 19 Sep 2018
    Это самых похожие слова, что я нашла в документации
  • https://t.me/clickhouse_ru
    Обновляю кластер по одной машине, обычно никаких проблем нет, надо тоже ченджлог читать на предмет совместимости
  • @madms ↶ Reply to #66220 #66221 11:50 AM, 19 Sep 2018
    спасибо
  • @farziev_amin #66222 11:52 AM, 19 Sep 2018
    Ребята, посоветуйте хорошие, полезные статьи по Catboost?
  • @al_bog #66223 11:52 AM, 19 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Imaskar ↶ Reply to #66213 #66224 11:52 AM, 19 Sep 2018
    Могу предположить такой сценарий: у кх где-нибудь есть параметр - сколько записей читать одним блоком. Примем за 100. Приходит полный запрос, читает блок 100 записей, получает из них условно 10 строчек с массивами по 10. От них считает математику, кушая 100*0,2% доступной памяти. Параллельно ещё 3 процессора работают, всего 80% памяти съедено.
    Ситуация 2. Приходит запрос на создание промежуточной таблицы. Берёт 100 записей, группирует, пишет 10 строчек с массивами по 10 за каждый обработанный блок. Приходит 2й запрос на сложную математику, читает 100 строчек, но теперь каждая строчка - это уже массив из 10 элементов. И в памяти такой блок занимает не 100*0,2%, а 1000*0,2%. ООМ.

    пс. это всего лишь предположение, реального сценария не знаю.
  • https://t.me/clickhouse_ru
    @molo4ko007 #66225 11:54 AM, 19 Sep 2018
    как-то можно сделать distributed join двух таблиц (с одинаковым ключом шардирования) как будто в режиме local?

    select a,b from (select a from tableA where foo=bar all inner join (select b from tableB where x = y) using id)
  • https://t.me/clickhouse_ru
    @molo4ko007 #66226 11:54 AM, 19 Sep 2018
    я помню, что можно было просто указывать имя локальной таблицы во вложенном запросе, но, кажется, это только если tableA == tableB
  • https://t.me/clickhouse_ru
    @studnev #66227 12:13 PM, 19 Sep 2018
    Ошибка «Attempt to attach to nullptr thread group» при <Error> DDLWorker: Query CREATE MATERIALIZED VIEW - известная проблема или нет?
  • https://t.me/clickhouse_ru
    @Shegloff #66228 12:18 PM, 19 Sep 2018
    У меня такая же ошибка при create table engine = memory on cluster
  • Настройки | Документация ClickHouse

    Настройки distributed_product_mode Изменяет поведение распределенных подзапросов. ClickHouse применяет настройку в тех с

  • https://t.me/clickhouse_ru
    @studnev ↶ Reply to #66228 #66230 12:25 PM, 19 Sep 2018
    и что делать?
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #66230 #66231 12:26 PM, 19 Sep 2018
    не знаю, дождаться ответа разработчиков или issue сделать, например
  • https://t.me/clickhouse_ru
    @studnev ↶ Reply to #66231 #66232 12:26 PM, 19 Sep 2018
    https://github.com/yandex/ClickHouse/issues/3173 - добавь пожалуйста свои данные может ускорится
    Attempt to attach to nullptr thread group when creating materalized view #3173

    Error happens 2018.09.19 14:43:03.046468 [ 356 ] {3c0ea2eb-f069-41b4-900a-e907f5bc5917} executeQuery: Code: 49, e.displayText() = DB::Exception: There was an error on ch3: Code: 49, e.displayText() = DB::Exception: Attempt to attach to n...

  • SELECT user, countIf( date between today()-6 and today() ) as has_action_in_last_7_days, countIf( date between today()-13 and today()-7 ) as has_action_in_previous_7_days from table where date between today()-13 and today() group by user having has_action_in_last_7_days>1 and has_action_in_previous_7_days>1
  • https://t.me/clickhouse_ru
    В общем, не уверен, что правильно понял что тебе нужно, но кажется что-то типа того: https://gist.github.com/blinkov/a415e5c9d6dcc373a5eb1e1e37b34bd5
    foo.sql

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

  • https://t.me/clickhouse_ru
    это вроде без усложнения из второго сообщения про то, что надо за 14 последних значений X это посчитать
  • угу. Такой сильно топорный вариант :)
  • @mfilimonov #66237 12:35 PM, 19 Sep 2018
    Но понять просто
  • @mfilimonov #66238 12:38 PM, 19 Sep 2018
    Кстати если данных не очень много то можно просто sequenceMatch написать https://clickhouse.yandex/docs/en/query_language/agg_functions/parametric_functions/#sequencematchpatterntime-cond1-cond2 или windowFunnel
  • https://t.me/clickhouse_ru
    @blindsight #66239 12:40 PM, 19 Sep 2018
    Так да, за день я могу, мне надо график рисовать. Вот про окна очень не хватает какие-то примеров похожего толка. Но кажется, будет многовато, это ретеншн всего сервиса
  • https://t.me/clickhouse_ru
    Смотрю, спасибо!
  • @d_0x1337 #66241 12:52 PM, 19 Sep 2018
    Всем привет! Описываю конфиг внешнего словаря, там нужно указать null_value для атрибута. Какой валидный null_value для DateTime? Такой вариант падает с ошибкой:
    <attribute>
    <name>start_time</name>
    <type>DateTime</type>
    <null_value>NULL</null_value>
    </attribute>
    .
  • https://t.me/clickhouse_ru
    select
    a, b
    from tableA
    all inner join (
    SELECT b
    FROM tableB
    ) USING id

    без установки d_p_m
    Double-distributed IN/JOIN subqueries is denied (distributed_product_mode = 'deny’)

    d_p_m=local
    Table default.tableB_replicated doesn't exist., e.what() = DB::Exception
    (потому что b_local в бд shard_0, а не в default)

    d_p_m=allow
    DB::Exception: Table shard_0.tableB doesn't exist.., e.what() = DB::Exception
    (непонятно, почему)

    d_p_m=global
    работает
  • https://t.me/clickhouse_ru
    @molo4ko007 #66243 12:57 PM, 19 Sep 2018
    вероятно, d_p_m не слишком хорошо дружит с перекрестной репликацией/шардингом? у кого-то есть опыт?
  • https://t.me/clickhouse_ru
    @ysagan #66244 01:05 PM, 19 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    что-то странное вы делаете

    что будет если джойнить с шардом tableB, зачем там дистрибьютид? по моему вы этого хотите

    select a,b from (select a from tableA where foo=bar all inner join (select b from *tableB_SHARD* where x = y) using id)
  • https://t.me/clickhouse_ru
    @d_emelyanov #66246 01:08 PM, 19 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @molo4ko007 #66247 01:09 PM, 19 Sep 2018
    а как это работает?
  • https://t.me/clickhouse_ru
    @molo4ko007 #66248 01:09 PM, 19 Sep 2018
    это же при dpm=local?
  • https://t.me/clickhouse_ru
    @d_emelyanov #66249 01:10 PM, 19 Sep 2018
    Всем доброго дня. На многих вебинарах встречаю фразу, что нельзя в клик сваливать джисонки и растаскивать их по вьюхам, но нигде не нашел объяснения почему. Может кто-то знает или даст ссылку почитать?
  • https://t.me/clickhouse_ru
    dpm тут вообще ни к селу кмк, это полиси.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    потому что КХ парсит свой формат json и на очень базовом уровне, например нельзя лишние проблелы
  • https://t.me/clickhouse_ru
    @den_crane #66253 01:14 PM, 19 Sep 2018
    это сделано для скорости, там нет нормального парсера, потому что это будет очень тормозить, json плохой формат.
  • https://t.me/clickhouse_ru
    а что тогда это значит?
    >tableB_SHARD

    есть бд default c tableA/tableB, которые смотрят на tableA_replicated/tableB_replicated на разных машинах, как можно шард указать?
  • https://t.me/clickhouse_ru
    Не совсем понял. Если у меня в клике запись json = {"id":1, "var1": "value", "var2":"value"}, то ее же можно разобрать через visitParamExtractUInt(json,'id'). То есть тут вопрос не столько в формате, сколько в скорости? То есть хочу понять в какой момент проблемы всплывут
  • https://t.me/clickhouse_ru
    @andrey_konyaev #66256 01:16 PM, 19 Sep 2018
    Disk sdb read requests merge per second -
    подскажите, что физически означает эта метрика?:
  • https://t.me/clickhouse_ru
    ну вот то и значит, что в КХ это не json
    вот раз
    select visitParamExtractString('{"id": "1", "var1": "value", "var2":"value"}', 'id')
    вот два
    select visitParamExtractString('{"id":"1", "var1": "value", "var2":"value"}', 'id')
  • https://t.me/clickhouse_ru
    @leidruid #66258 01:20 PM, 19 Sep 2018
    А как посмотреть, куда клик заныкал RES память ?
  • https://t.me/clickhouse_ru
    @leidruid #66259 01:20 PM, 19 Sep 2018
    В system.processes как-то маловато
  • https://t.me/clickhouse_ru
    @leidruid #66260 01:20 PM, 19 Sep 2018
    ну гиг там, суммарно
  • @AEDeveloper #66261 01:20 PM, 19 Sep 2018
    Привет, коллеги. Такой вопрос. Сопоставима ли скорость кликхаус memory движок со скоростью чтения тем же редисом?
  • https://t.me/clickhouse_ru
    @leidruid #66262 01:20 PM, 19 Sep 2018
    Но не 60 же
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #66255 #66263 01:21 PM, 19 Sep 2018
    Самая тут большая проблема в том, что для того чтоб достать вам эту строку он прочитает еще кучу которые рядом и хранить в КХ что-то не фиксированной длины (плюс/минус) - это сильно не оправдано. Ну и о том что JSON поддерживается достаточно базово уже сказали
  • https://t.me/clickhouse_ru
    Кстати о памяти. Вот у меня статистика по объёму занятой памяти на серверах за неделю:
  • https://t.me/clickhouse_ru
    Вот как мне посмотреть, что там происходит до того, как сервер click2 упадёт по oom?
  • https://t.me/clickhouse_ru
    select a,b from (select a from tableA where foo=bar all inner join (select b from tableB_replicated where x = y) using id)
  • https://t.me/clickhouse_ru
    @leidruid ↶ Reply to #66265 #66267 01:25 PM, 19 Sep 2018
    Вот и у меня аналогичный вопрос, потому как всякие system.processes и system.merges я уже просуммировал - не сходится даже приблизительно
  • https://t.me/clickhouse_ru
    Аналогично, причём на click2 в момент проверки работало два запроса: insert от telegraf на том же сервере и мой.
  • https://t.me/clickhouse_ru
    Я правильно понимаю логику работы клика? У меня есть таблица, куда валятся джисонки, и отдельно материалайзд вью которая "распарсивает" таблицу. Каждый раз, когда будет прилетать джисонка новая, КХ, чтобы добавить новые данные во вьюху, будет доставать ближайшие Н-тысяч джисонок и распарсивать их?
  • https://t.me/clickhouse_ru
    @Imaskar ↶ Reply to #66261 #66270 01:27 PM, 19 Sep 2018
    вряд ли кто-то измерял.
  • https://t.me/clickhouse_ru
    нет, не будут, парсится будет вставляемый блок, сами json-ы можно вообще не хранить если сделать саму таблицу с engine=Null
  • https://t.me/clickhouse_ru
    @Vasyaabr ↶ Reply to #66249 #66272 01:30 PM, 19 Sep 2018
    Мы сейчас делаем так: из таблицы с движком mySQL выбираем в таблицу с движком Memory пачку событий (у нас такая, довольно примитивная, очередь), распарсивая при этом json данные события. И уже из таблицы с распарсенными данными, запросами INSERT INTO ... SELECT ... раскладываем куда надо. Проблем с json пока не было, видимо у нас подходящий для Clickhouse формат :)
  • https://t.me/clickhouse_ru
    на мержи и словари может легко, смотрится в соотвествующих system. таблицах
    плюс кеш марков, плюс кеш распакованных
  • @terrifilch #66274 01:42 PM, 19 Sep 2018
    добрый день

    тупой вопрос

    есть инструмент, который показывает в реалтайме обновление таблицы c данными?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #66274 #66275 01:43 PM, 19 Sep 2018
    clickhouse-client + SQL + watch ?
  • https://t.me/clickhouse_ru
    @d_emelyanov #66276 01:43 PM, 19 Sep 2018
    @Vasyaabr @den_crane @kshvakov спасибо!
  • @terrifilch #66277 01:44 PM, 19 Sep 2018
    Kirill Shvakov in ClickHouse не тормозит

    clickhouse-client + SQL + watch ?

  • вопрос не мой, поэтому я тегнул автора, за ответ спасибо :D
  • Оказалось, что в запросах потерян ордеринг по дате, с ним и первый запрос падает по памяти:) Без ордеринга такие запросы не имеют смысла, но просто чтобы воспроизвести ситуацию, сделала совсем простой вариант - без ордера и только с одним типом ивентов. На нём можно увидеть, что есть разница по памяти. https://gist.github.com/svpetrova/b82880ceeba395d0ffa26356d78bd84b
    ClickExample

    ClickExample. GitHub Gist: instantly share code, notes, and snippets.

  • @pookieShmukie #66280 01:49 PM, 19 Sep 2018
    А как себя поведет КХ если я вставляю блок данных из разных партиций, но ДО лимита в 1 млн строк (что бы данные одним блоком отправились с клиента) и вот возникла ошибка во время вставки, либо вставка была прервана, то данные запишутся частично или нет? Просто у меня сейчас подозрение, что если данные из разных партиций, то он частично пишет данные. Т.е. я отправляю запрос на инсерт большого куска данных ДО 1 млн строк и у меня как-то каждую секунду увеличивается количество строк в таблице (пишу в один поток).
  • https://t.me/clickhouse_ru
    @leidruid ↶ Reply to #66273 #66281 01:50 PM, 19 Sep 2018
    словари не используются, в мержах мало
  • https://t.me/clickhouse_ru
    @leidruid #66282 01:50 PM, 19 Sep 2018
    Как проверить остальное
  • https://t.me/clickhouse_ru
    @leidruid #66283 01:50 PM, 19 Sep 2018
    ?
  • @pookieShmukie #66284 01:50 PM, 19 Sep 2018
    Хотя по идее оно должно вставить разом, т.е. пишу 500 000 строк из 10 партиций, то оно по окончанию вставки должно сразу показать + 500 000 строк, а не кусочками?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #66284 #66285 01:51 PM, 19 Sep 2018
    Да, но если insert INTO T SELECT ... то пишет не по 1кк
  • @pookieShmukie #66286 01:52 PM, 19 Sep 2018
    Не, мы через clickhouse-client пишем данные
  • @pookieShmukie #66287 01:52 PM, 19 Sep 2018
    Типа cat file | clickhouse-client -q 'insert into ...'
  • Из моего опыта - по памяти сортировку лучше делать внутри каждый группы отдельно. Примерно так:
    WITH
    groupArray( tuple(value,time) ) as val_time_tuples,
    arraySort( x -> x.2, val_time_tuples ) as val_time_tuples_sorted,
    arrayMap( t -> t.1, indexes) as time_sorted_vals,
  • https://t.me/clickhouse_ru
    @m_pov #66289 02:03 PM, 19 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @kshvakov #66290 02:05 PM, 19 Sep 2018
    Надо вот тут покопаться https://github.com/yandex/ClickHouse/blob/db13ef96d62ce739c3e666deaa042c9bfda61b1a/dbms/programs/client/Client.cpp#L960 (insert_format_max_block_size - по дефолту 1048576, но есть подозрение что он не будет его копить, а будет чаще блоки скидывать)
    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
    не запишутся полностью (точнее у меня записываются на проде при out of memory, но воспроизвести на стейдже и оформить баг я не смог и скорее всего это моя очень специфичная проблема)
  • Просто у нас трабл. Мы ставим клиенту настройку с размером блока в кол-во строк которое хотим записать. Улетает команда на запись данных и я по несколько раз в секунду делаю select count() from table и вижу как кол-во строк меняется.
  • @pookieShmukie #66293 02:12 PM, 19 Sep 2018
    Причем постоянно
  • Пока ещё нет, но выглядит знакомо. Скорее всего будет несложно исправить.
  • @milovidov_an #66295 02:14 PM, 19 Sep 2018
    Я думаю, что это связано с наличием в таблице "толстых" строк (длинных массивов) и достаточно большим index_granularity по-умолчанию. Наверное стоит указать в таблице с временными данными поменьше index_granularity. Например, 64.
  • https://t.me/clickhouse_ru
    @480436358 #66296 02:15 PM, 19 Sep 2018
    Всем привет. Есть какая-то альтернатива aioch ( постлянно выхватываю ошибку https://github.com/mymarilyn/aioch/issues/2), кроме aiohttp клиента ?
    Error on socket shutdown: [Errno 107] Transport endpoint is not connected · Issue #2 · mymarilyn/aioch

    GCP - 24 CPU, 32 RAM. Semaphore - just 4 Query is fast enough Script starts running well but after some time I start getting this error: Error on socket shutdown: [Errno 107] Transport endpoint is ...

  • @YaroslavMakarov #66297 02:15 PM, 19 Sep 2018
    Коллеги, есть кластер два шарда по две реплики. Шардирование и репликация через zookeeper. Страшен ли clickhous`у split brain реплик в каждом шарде в случае когда данные льются постоянно на обе реплики, а связь между репликами оборвалась?
    Или после восстановления связи просто все безболезнено синхронизируется?
    Есть ли у zookeeper`а какие-то общие данные, которые могут поломаться в таком случае?
  • https://t.me/clickhouse_ru
    типа видно незакончившийся insert ? что-то значит неправильно сделано у вас, у вас точно один insert ?

    create table p(a Int64, b Int64) engine=MergeTree partition by a%2 order by tuple();
    insert into p select number,throwIf(number=999998) from numbers(1000000);

    select * from p;
    0 rows in set. Elapsed: 0.001 sec.
  • Вот судя по всем примерам и тестам есть подозрение, что у нас где-то есть зомби процессы
  • https://t.me/clickhouse_ru
    @salttan ↶ Reply to #66241 #66300 02:23 PM, 19 Sep 2018
    <null_value>0000-00-00 00:00:00</null_value>
  • @d_0x1337 ↶ Reply to #66300 #66301 02:23 PM, 19 Sep 2018
    Спасибо!
  • https://t.me/clickhouse_ru
    @salttan ↶ Reply to #66297 #66302 02:25 PM, 19 Sep 2018
    Если оборвалась связь между репликами, то они синхронизируются после восстановления.
    Если оборвалась связь с ЗуКипером, то таблицы перейдут в режим read_only
  • Попробуйте уменьшить max_block_size для этого селекта. В том примере который вы прислали - при уменьшении до 1024 использование памяти при чтении из таблицы ниже чем в первом примере. Кстати там этот rand() который вы используете в примере - "не совсем" случаен :)
  • @mfilimonov #66304 02:27 PM, 19 Sep 2018
    В КХ если агрументы функции отсуствуют или = константе, то функция вычисляется один раз.
  • @mfilimonov #66305 02:27 PM, 19 Sep 2018
    Поэтому rand умеет принимать агрументы :)
  • https://t.me/clickhouse_ru
    @molo4ko007 #66306 02:34 PM, 19 Sep 2018
    Too large array size while reading from ZooKeeper
    такое вываливается на старте и сервер останавливается
    нужно ноду дропать руками?
  • Это полностью Ок. Split brain - штатная ситуация. Сначала обе реплики будут содержать неполные данные, потом нальют недостающие данные друг с друга. Если какая-то реплика не видит по сети кворума zookeeper нод, то на неё не получится вставлять данные.
  • @YaroslavMakarov #66308 02:39 PM, 19 Sep 2018
    Спасибо
  • Пачка данных разобъётся на несколько по количеству партиций. Вставка будет атомарной не для всей пачки, а только для отдельных кусочков.
  • Нужно вручную удалить часть нод. Скорее всего из директории log для таблицы, в которой есть заброшенная реплика.
  • https://t.me/clickhouse_ru
    @molo4ko007 #66311 02:43 PM, 19 Sep 2018
    это вообще неиспользуемая таблица, в нее писали последний раз месяца два назад
  • https://t.me/clickhouse_ru
    @molo4ko007 #66312 02:43 PM, 19 Sep 2018
    непонятно, почему началось какое-то движение там
  • https://t.me/clickhouse_ru
    @molo4ko007 #66313 02:44 PM, 19 Sep 2018
    zk ls:
    WatchedEvent state:SyncConnected type:None path:null
    2018-09-19 14:42:43,714 [myid:] - WARN [main-SendThread(localhost:2181):ClientCnxn$SendThread@1168] - Session 0xc004dc897660047 for server localhost/127.0.0.1:2181, unexpected error, closing socket connection and attempting reconnect
    java.io.IOException: Packet len18875288 is out of range!
    at org.apache.zookeeper.ClientCnxnSocket.readLength(ClientCnxnSocket.java:113)
    at org.apache.zookeeper.ClientCnxnSocketNIO.doIO(ClientCnxnSocketNIO.java:79)
    at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:366)
    at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1145)

    WATCHER::

    WatchedEvent state:Disconnected type:None path:null
    Exception in thread "main" org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /clickhouse/tables/0/table_foo_replicated/log
    at org.apache.zookeeper.KeeperException.create(KeeperException.java:102)
    at org.apache.zookeeper.KeeperException.create(KeeperException.java:54)
    at org.apache.zookeeper.ZooKeeper.getChildren(ZooKeeper.java:1541)
    at org.apache.zookeeper.ZooKeeper.getChildren(ZooKeeper.java:1569)
    at org.apache.zookeeper.ZooKeeperMain.processZKCmd(ZooKeeperMain.java:732)
    at org.apache.zookeeper.ZooKeeperMain.processCmd(ZooKeeperMain.java:600)
    at org.apache.zookeeper.ZooKeeperMain.run(ZooKeeperMain.java:363)
    at org.apache.zookeeper.ZooKeeperMain.main(ZooKeeperMain.java:291)
  • @milovidov_an #66314 02:46 PM, 19 Sep 2018
    Вот это - проблемная нода: /clickhouse/tables/0/table_foo_replicated/log
    У ней накопилось слишком много детей, потому что у таблицы table_foo_replicated есть заброшенная реплика.

    > это вообще неиспользуемая таблица, в нее писали последний раз месяца два назад

    Не могу ничего сказать. Лог обновляется только при записи в таблицу.
  • https://t.me/clickhouse_ru
    а почему тогда

    create table p(a Int64, b Int64) engine=MergeTree partition by a%103 order by tuple();
    insert into p select number,throwIf(number=999998) from numbers(1000000);
    select count() from p;
    0 rows in set. Elapsed: 0.001 sec.

    потому что insert select и select обламывается?
  • Эх :( спасибо! Будем думать как быть
  • Если используете Replicated таблицу, то после ошибки, следует просто повторить весь батч.
  • Не, обычная таблица (
  • https://t.me/clickhouse_ru
    а что значит “заброшенная”? если я просто выведу машину из кластера, этого недостаточно?
  • Думаю, что да. После SELECT блоки сначала склеиваются до max_insert_block_size. До этого момента есть исключение. В результате ничего не вставляется. До разбиения блоков по партициям, дело не доходит.
  • Да, раньше было недостаточно. Потому что, если сервер исчез - наверное он может подняться. И случай, когда сервер исчез навсегда, от этого не отличается. В ZooKeeper остаётся запись о реплике, и для реплики накапливаются логи.

    Недавно сделали доработку на эту тему: https://github.com/yandex/ClickHouse/blob/master/CHANGELOG_RU.md#%D0%A3%D0%BB%D1%83%D1%87%D1%88%D0%B5%D0%BD%D0%B8%D1%8F-1
    И теперь проблем с заброшенными репликами нет :)
  • @251058757 #66322 03:04 PM, 19 Sep 2018
    Привет! Можете подсказать merge() и union слишком различаются по производительности? При union'е распараллеливается запрос или нет?
  • @milovidov_an #66323 03:05 PM, 19 Sep 2018
    И тот и другой распараллеливаются.
    Для маленького числа (несколько) таблиц разницы либо не будет, либо UNION ALL будет быстрее. Для большого количества таблиц лучше merge.
  • @251058757 #66324 03:06 PM, 19 Sep 2018
    Спасибо!
  • Спасибо, действительно, с уменьшенным max_block_size работает! И за пример с WITH и сортировкой массива большое спасибо!))
  • @d_0x1337 #66326 03:34 PM, 19 Sep 2018
    Кто-нибудь может подсказать, когда добавят табличную функцию MySQL ?
  • @d_0x1337 #66327 03:34 PM, 19 Sep 2018
    Для SELECTа из MySQL
  • https://t.me/clickhouse_ru
    @sergey_panyushkin #66328 03:39 PM, 19 Sep 2018
    Joined.
  • Дак она есть давно вроде бы
  • @d_0x1337 ↶ Reply to #66329 #66330 03:46 PM, 19 Sep 2018
    В Changelog-ах нет
  • Там как правило много чего нет
  • @d_0x1337 #66332 03:47 PM, 19 Sep 2018
    У нас относительно свежий КХ (18.10), в нем нет её
  • @d_0x1337 #66333 03:47 PM, 19 Sep 2018
    Не хотелось бы обновляться просто так
  • https://t.me/clickhouse_ru
    @orantius #66334 03:49 PM, 19 Sep 2018
    есть табличная функция mysql, есть engine mysql
  • https://t.me/clickhouse_ru
    Уточните чего у вас нет? Уже давно естсь такое
    CREATE TABLE users ( _id String, username Strin) ENGINE = MySQL('localhost:3306', 'admin_stat', 'users', 'root', '')

    И делать селекты из users как из обычной КХ таблицы
  • @d_0x1337 #66336 03:49 PM, 19 Sep 2018
    Табличной функции
  • https://t.me/clickhouse_ru
    @den_crane #66337 03:51 PM, 19 Sep 2018
    Релиз ClickHouse 1.1.54337, 2018-01-18
    Добавлены табличные функции mysql и odbc и соответствующие движки таблиц MySQL, ODBC для обращения к удалённым базам данных. Функциональность в состоянии "бета".

    select * from system.table_functions where lower(name) like '%mysql%'
  • @d_0x1337 #66338 03:52 PM, 19 Sep 2018
    О, спасибо. Я смотрел в system.functions
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #66338 #66339 04:02 PM, 19 Sep 2018
    Так это из changelog'а же фраза
  • @d_0x1337 #66340 04:14 PM, 19 Sep 2018
    Ок, тогда такой вопрос. Использую табличную функцию mysql и получаю

    SELECT *
    FROM mysql('url:port', 'dbname', 'tablename', 'user', 'password')

    Received exception from server (version 18.10.54405):
    Code: 90. DB::Exception: Received from URL, IP DB::Exception: Empty list of columns passed.

    0 rows in set. Elapsed: 0.080 sec.
    Что за лист колонок? В доках https://clickhouse.yandex/docs/ru/single/#mysql_1 про это ничего не сказано.
  • https://t.me/clickhouse_ru
    @ifoton #66341 04:24 PM, 19 Sep 2018
    Всем привет, появилась проблема при запросах с табличной функцией odbc
    Code: 33, e.displayText() = DB::Exception: Cannot read all data. Bytes read: 239145. Bytes expected: 67905586., e.what() = DB::Exception
    Пробывал на MSSQL, PostgreSQL. Вроде началось после 18.12.17, никто не сталкивался?
  • https://t.me/clickhouse_ru
    @xammett #66342 04:26 PM, 19 Sep 2018
    всем, привет. Сталкивались ли вы с проблемами таймаутов в запросах? Делаю запрос из нативного клиента и он выполняется за 560+ секунд
  • https://t.me/clickhouse_ru
    @xammett #66343 04:27 PM, 19 Sep 2018
    тоже самое из питона валится по таймауту, хотя они выставлены в корректные значения
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @edyya #66345 04:47 PM, 19 Sep 2018
    Коллеги, подскажите, как правильно, задать последовательность ключей при создании MergeTree.

    Есть три потенциальные колонки для ключа со следующими кардиналитити (кол-во уникальных значений/ общее кол-во строк):

    col1 - 0.001
    col2 - 0.005
    col3 - 0.010

    Как правильнее будет сделать для большинства кейсов (в запросах могут присутсвовать все ключи или только некоторые с равной вероятностью).

    1. (col1, col2, col3) так?
    2. (col3, col2, col1) или так?
  • https://t.me/clickhouse_ru
    @molo4ko007 #66346 04:48 PM, 19 Sep 2018
    как правильно оживлять таблицы, для которых пропали данные в зк?
  • @Nvarchar495 #66347 05:12 PM, 19 Sep 2018
    А по перфомансу string и fixed string сильно разные?
  • @Nvarchar495 #66348 05:15 PM, 19 Sep 2018
    И еще e num)
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @ITMobile #66350 05:31 PM, 19 Sep 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Alesapin ↶ Reply to #66341 #66351 06:07 PM, 19 Sep 2018
    А можно подробностей -- конфиг драйверов, сам запрос?
  • https://t.me/clickhouse_ru
    @ifoton #66352 06:11 PM, 19 Sep 2018
    select id from odbc('DSN=mssql;UID=xxx;PWD=yyy;', orders) заметил что если писать select * то запрос работает
  • https://t.me/clickhouse_ru
    @Alesapin #66353 06:14 PM, 19 Sep 2018
    А если попробовать не табличную функцию, а создать таблицу с таким движком?
  • https://t.me/clickhouse_ru
    @ifoton #66354 06:16 PM, 19 Sep 2018
    С каким движком?
  • Может быть это тайм-аут сети/http клиента? Не самого кликхауса?
  • https://t.me/clickhouse_ru
    @Alesapin #66356 06:22 PM, 19 Sep 2018
    ODBC, такой есть, параметры как у табличной функции. Создаётся через create table, в конце ENGINE = ODBC(...)
  • https://t.me/clickhouse_ru
    @ifoton #66357 06:22 PM, 19 Sep 2018
    Вообщем сломались запросы с явным указанием колонок, и обмануть с помощью подзапроса тоже не получается select id from (select * from odbc(...))
  • https://t.me/clickhouse_ru
    @ifoton ↶ Reply to #66356 #66358 06:27 PM, 19 Sep 2018
    В доках про него ничего нет, но видимо он аналогичен движку MySql, я правильно понимаю?
  • https://t.me/clickhouse_ru
    @Alesapin #66359 06:28 PM, 19 Sep 2018
    Да, так и есть. В любом случае проверю табличную функцию.
  • https://t.me/clickhouse_ru
    @JackRussell77 #66360 06:29 PM, 19 Sep 2018
    Joined.
  • 1 будет скорее всего будет лучше жаться и скорее всего будет лучше справляться с поиском по частичному ключу.
    В общем случае после ключей с высоким кардиналити добавлять что-то ещё обычно довольно бессмысленно.
  • https://t.me/clickhouse_ru
    @edyya #66362 06:31 PM, 19 Sep 2018
    Спасибо
  • Тут в документации есть про выбор PK: https://clickhouse.yandex/docs/ru/operations/table_engines/mergetree/#_5
  • https://t.me/clickhouse_ru
    А уже появилась возможность создавать пользовательские кастомные функции (udf user define function) ?
    Или весь странный кастом выносить в апп слой, например если нужна алгебра на OpenCl GPU
  • https://t.me/clickhouse_ru
    @ifoton ↶ Reply to #66359 #66365 06:40 PM, 19 Sep 2018
    Через таблицу работает
  • https://t.me/clickhouse_ru
    @Alesapin #66366 06:41 PM, 19 Sep 2018
    Ок
  • Нет и не предвидится. Довольно легко можно дописать что-то своё до кода КХ если можете C++. Если это что-то нужное не только вам - можно сделать пулл реквест и добавить функцию к основному коду. Ещё как вариант (оч. медленный) можно внешнюю логику подцепить как словарь (http/executable), и тогда можно в чем угодно ее написать.
  • https://t.me/clickhouse_ru
    @studnev ↶ Reply to #66367 #66368 07:07 PM, 19 Sep 2018
    хорошо было бы хотя бы сделать вычисления лямбды над arrays
  • Ну arrayMap вроде как уже давным-давно есть ? https://clickhouse.yandex/docs/en/query_language/functions/higher_order_functions/
  • https://t.me/clickhouse_ru
    @studnev ↶ Reply to #66369 #66370 07:11 PM, 19 Sep 2018
    да, но в нем нельзя использовать контекст текущий. Например нельзя написать функцию, которая будет считать среднее геометрическое ( как выражение)
  • Да, наверное что-то типа arrayMapWithAccumulator или arrayInplaceModify могли бы порой быть полезны .
  • https://t.me/clickhouse_ru
    @studnev ↶ Reply to #66371 #66372 07:22 PM, 19 Sep 2018
    +1
  • https://t.me/clickhouse_ru
    Ну вообще говоря можно. Через логарифмы в суммы перевести. Есть еще arrayReduce — но она недоделана. Вот ее бы доделать
  • https://t.me/clickhouse_ru
    @b0ch4r0v #66374 09:19 PM, 19 Sep 2018
    Мы недавно начали использовать версию 18.14.12 вместо 1.1.54388 на 1/3 кластера и заметили увеличенное количество ошибок вида
    Memory limit (total) exceeded: would use 30.00 GiB (attempt to allocate chunk of 2097152 bytes), maximum: 30.00 GiB
    когда мы вставляем в ClickHouse
    Подскажите пожалуйста, в новой версии или в предыдущей - могло ли измениться значительно потребление памяти или другая причина почему мы ловим такие ошибки?
    Ошибки видны только на 1/3 кластера где новая версия, старые 2/3 кластера нету таких ошибок
    @milovidov_an @kochetovnicolai
  • https://t.me/clickhouse_ru
    @molo4ko007 #66375 09:20 PM, 19 Sep 2018
    а у этого на текуший момент какой статус?
    https://github.com/yandex/ClickHouse/issues/520

    вот этот совет отсюда (https://groups.google.com/forum/#!topic/clickhouse/uq9891JyV7M) все еще актуален? кх 12.14
    Write <background_pool_size>4</background_pool_size> at /profiles/default in users.xml file and restart the server.
    Recovery after data loss doesn't work with more than 2 replicas per shard · Issue #520 · yandex/ClickHouse

    This is a bit vague report, but we had an issue when one node was put back to production after a disk failure and couldn't recover from peer replicas. What happened was we put the node back...

  • https://t.me/clickhouse_ru
    @molo4ko007 #66376 09:20 PM, 19 Sep 2018
    что-то сегодня у меня одни сплошные проблемы, и я все транслирую сюда)
  • https://t.me/clickhouse_ru
    @ganyakmu #66377 09:49 PM, 19 Sep 2018
    Joined.
  • Total - потребление оперативки в сумме всеми запросами. Посмотрите также, есть ли изменение в количестве одновременно выполняющихся запросов.
  • https://t.me/clickhouse_ru
    @b0ch4r0v #66379 10:10 PM, 19 Sep 2018
    какой лучший способ посмотреть исторически сколько запросов выполнялось? возможно ли через query_log?
  • На 10 GB сети, репликация может использовать несколько соединений и из-за этого существенно тормозить диски. Это актуально, но возникает далеко не всегда (должно совпасть несколько условий). Если вы подтверждаете все проблемы - что у вас 10 GBit сеть, что диски перегружены, и что репликация использует слишком много соединений (метрики ReplicatedFetch и ReplicatedSend в system.metrics), при этом версия ClickHouse достаточно свежая, то стоит уменьшить background_pool_size.
  • Самый простой - если выгружаются метрики (в конфиге, секция graphite). Если нет - можно и через query_log. Сейчас напишу...
  • https://t.me/clickhouse_ru
    @b0ch4r0v #66382 10:13 PM, 19 Sep 2018
    The allocator has been replaced: jemalloc is now used instead of tcmalloc. In some scenarios, this increases speed up to 20%. However, there are queries that have slowed by up to 20%. Memory consumption has been reduced by approximately 10% in some scenarios, with improved stability. With highly competitive loads, CPU usage in userspace and in system shows just a slight increase. #2773
    Могло ли это повлиять отрицательно на размер потребляемой памяти?
  • https://t.me/clickhouse_ru
    @b0ch4r0v #66383 10:13 PM, 19 Sep 2018
    разный аллокатор согласно system.build_options
  • Это не может повлиять на величину отслеживаемой потребляемой памяти, так как она не зависит от аллокатора. Может повлиять на RSS, который содержит также куски памяти, которые алокатор кэширует, а не отдаёт системе (оставляет в "куче"). В остальном, jemalloc чуть-чуть менее прожорлив, чем tcmalloc.
  • https://t.me/clickhouse_ru
    @b0ch4r0v #66385 10:16 PM, 19 Sep 2018
    понятно, спасибо
    буду благодарен за запрос как посмотреть количество одновременно выполняющихся запросов хронологически
  • @milovidov_an #66386 10:16 PM, 19 Sep 2018
    select query_start_time + arrayJoin(range(toUInt64(ceil(query_duration_ms / 1000)))) AS time, count() FROM system.query_log WHERE event_time >= '2015-07-31 11:14:00' AND event_time < '2015-07-31 11:16:00' AND event_date = '2015-07-31' AND type IN (2, 4) GROUP BY time ORDER BY time
  • https://t.me/clickhouse_ru
    нет, у меня 1GB-сеть и не загружен диск, просто #520 - единственный баг, который ищется по DB::Exception: Cannot write to ostream at offset N
  • https://t.me/clickhouse_ru
    @molo4ko007 #66388 10:19 PM, 19 Sep 2018
    причем они (оффсеты) повторяются периодически
  • https://t.me/clickhouse_ru
    @molo4ko007 #66389 10:20 PM, 19 Sep 2018
    и background_pool_size выставил в 4, ничего не поменялось
  • У вас другая проблема.
  • https://t.me/clickhouse_ru
    @b0ch4r0v #66391 10:22 PM, 19 Sep 2018
    @milovidov_an в среднем новая версия имеет меньшее количество выполняющихся запросов чем старая, процентов так на 20%
    но это не совсем объясняет как оно негативно влияет на ту ошибку про память
  • Посмотрите в SHOW PROCESSLIST. Правда ли, что в сумме потребление оперативки достигает 30 GB? Или это враньё из-за неправильного подсчёта, на который недавно жаловались?