• 01 May 2022 (54 messages)
  • @5312006477 #268379 05:32 AM, 01 May 2022
    ⚡️ Продаю СОФТ для рассылки в чаты ⚡️

    🧨 Софт просто - огонь🧨
    - Если вы хотите предложить вашу услугу/товар/продукт на большую аудиторию, то вам обязательно нужен данный софт!
    - За сутки может отправить более 100.000 смс.

    💰 Цена данного софта = 6000 рос.руб.

    🔻 Так же в продаже есть софт для рассылки в ЛС.
    🔻Софт для инвайта.
    🔻Софт для автоматической подписки на чаты.
    🔻Парсер.
  • https://t.me/clickhouse_ru
    @ZLOdeii_ru #268380 05:33 AM, 01 May 2022
    /stat@combot
  • https://t.me/clickhouse_ru
    @combot #268381 b o t 05:33 AM, 01 May 2022
    Total messages: 268380
  • @ChernyshovAnton #268386 08:55 AM, 01 May 2022
    Аукцион открыт)
  • https://t.me/clickhouse_ru
    Удаляем сообщения, контекст удален
  • https://t.me/clickhouse_ru
    Бесплатно?
  • @mulinux_com #268398 03:26 PM, 01 May 2022
    /stat@combot
  • @mulinux_com #268401 03:31 PM, 01 May 2022
    /stat@combot
  • https://t.me/clickhouse_ru
    @combot #268402 b o t 03:31 PM, 01 May 2022
    Total messages: 268401
  • https://t.me/clickhouse_ru
    @ug1Iefaiv5ao #268404 05:05 PM, 01 May 2022
    Всем привет!

    Нужна ваша помощь

    Импорт данных реализован через http api

    ?query=INSERT%20INTO%20imported_table%20FORMAT%20CSV' --data-binary @file.csv

    Есть ошибка при импорте данных через http api:

    (CANNOT_PARSE_INPUT_ASSERTION_FAILED) (version 22.1.3.7 (official build))

    : While executing ParallelParsingBlockInputFormat: (at row 172)
    . (CANNOT_PARSE_INPUT_ASSERTION_FAILED) (version 22.1.3.7 (official build))

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

    input_format_allow_errors_num и input_format_skip_unknown_fields=1 не помогают

    Подскажите, пожалуйста, как можно решить данную проблему?
  • @179984270 #268405 08:30 PM, 01 May 2022
    Коллеги, доброй ночи. Бахнул вчера вечером в таблицу почти 2 млрд записей. В таблице 2 скип индекса. С момента заливки данных прошли почти сутки, бд до сих пор оклематься не может. Запросы по первичному индексу выполняются минут по 5. Хотя он и выводит мне результат быстро, но запрос не прекращается. Подскажите пожалуйста в чём проблема? Это фоном так индексы просчитываются новые и пересортировка таблицы по первичному происходит?

    И заодно, подскажите, кто знает. Как понять, что переиндексирование таблицы закончено?
  • https://t.me/clickhouse_ru
    Что значит "выводит мне результат быстро, но запрос не прекращается"? Это datagrip? Покажите ddl и запрос
  • https://t.me/clickhouse_ru
    нет никакого фоном. Все индексы ВСЕГДА построены окончательно по завершению инсерта
  • это обычный консольный клиент кликхауса, в терминале
  • В фоновом режиме ClickHouse выполняет слияния кусков данных для более эффективного хранения. Я вот это скорее имел в виду. Не влияет ли этот процесс
  • @179984270 #268410 08:45 PM, 01 May 2022
    типа лексиграфическая пересортировка по первичному ключу
  • https://t.me/clickhouse_ru
    99% мержей случились в момент инсерта, оставшийся 1% ни на что не влияет и закончился минут через 5 после последнего инсерта
  • https://t.me/clickhouse_ru
    нету никаких пересортировок, не надо фантазировать
  • https://t.me/clickhouse_ru
    @TigProg #268413 08:46 PM, 01 May 2022
    Вот кстати да, в доке чётко сказано, что при add index создание "реальных" индексов откладывается до мержа, если нет materialize index.
    Но ничего не сказано про insert (понятно, что в данном случае 1 инсерт = очень много мержей).
  • https://t.me/clickhouse_ru
    @TigProg #268414 08:48 PM, 01 May 2022
    А что будет, если вставится 1 парт и не начнётся мерж, на нем ранее созданные индексы создадутся?
  • https://t.me/clickhouse_ru
    фантазеры. Вторичные индексы в куске могут быть могут не быть. При инсерте они создаются в куске и готовы еще до того как инсерт вернет управление.
  • https://t.me/clickhouse_ru
    @den_crane #268416 08:49 PM, 01 May 2022
    если вторичных индексов в парте нет, их можно достроить мутацией materialize index
  • https://t.me/clickhouse_ru
    @den_crane #268417 08:49 PM, 01 May 2022
    мержи создают индексы естественным образом, так же как и инсерт
  • https://t.me/clickhouse_ru
    Не понял, почему фантазеры, я просто указал на то, что не нашёл инфу про инсерт (без мержей) касательно skip index и стало интересно. Спасибо.
  • https://t.me/clickhouse_ru
    запрос по первичному индексу select * ? сколько времени выполняется select count()
  • т.е. хотите сказать, что сортировка в лексиграфическом порядке происходит в момент инсерта?
  • https://t.me/clickhouse_ru
    да
  • да, по первичному. count выдаётся мгновенно
  • https://t.me/clickhouse_ru
    короче ваша проблема вообще никак не связана с инсертами, мержами, индексами
  • в таком случае мне нужно ещё раз перечитать документацию)
  • как тогда можно объяснить ситуацию, когда при 500млн записей поиск по первичному индексу отрабатывает менее, чем за секунду, а при 2млрд - 5 минут?
  • @179984270 #268426 08:55 PM, 01 May 2022
    это вот реальный мой случай сейчас
  • https://t.me/clickhouse_ru
    я знаю 48 обяснений, как-то не хочентся проверять все.

    джойн есть? аггрегация? сортировка?

    покажите explain estimate ваш_select

    и
    set send_logs_level='trcace';
    ваш_select ... format Null;
  • @179984270 #268429 09:03 PM, 01 May 2022
    ни джойнов, ни агрегаций, ни сортировок.

    `
    explain estimate select * from metrics prewhere pkey like 'xxxx%' limit 100;

    EXPLAIN ESTIMATE
    SELECT *
    FROM metrics
    PREWHERE pkey LIKE 'xxxx%'
    LIMIT 100

    Query id: e8170490-ddef-41fc-9050-344fb2b97195

    ┌─database─┬─table──────────┬─parts─┬───rows─┬─marks─┐
    │ xxxx │ metrics │ 7 │ 443466 │ 13859 │
    └──────────┴────────────────┴───────┴────────┴───────┘
    `
  • @179984270 #268430 09:04 PM, 01 May 2022
    обычный селект строки по маске на значение колонки
  • https://t.me/clickhouse_ru
    а через 5 минут завершается запрос? сколько GB processed (Processed 100.00 thousand rows, 800.00 KB) ?
    а таблица distributed?
  • сейчас повторю запрос, отпишусь
  • 100 rows in set. Elapsed: 217.031 sec. Processed 56.17 thousand rows, 12.89 MB (258.83 rows/s., 59.40 KB/s.)
  • @179984270 #268436 09:20 PM, 01 May 2022
    одна таблица, на одной ноде
  • @179984270 #268437 09:20 PM, 01 May 2022
    без шардингов и всяких распределений
  • https://t.me/clickhouse_ru
    а сколько памяти у сервера?
  • @179984270 #268439 09:23 PM, 01 May 2022
    32GB
  • С системой точно все в порядке? atop где-нибудь красное показывает?
  • https://t.me/clickhouse_ru
    set send_logs_level='trace';
    ваш_select ... format Null;
  • [node100] 2022.05.02 00:31:38.197893 [ 1815704 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Debug> executeQuery: (from [::1]:43426, user: xxxxx) select * from metrics prewhere pkey like 'qwerty%' limit 1 format Null;
    [node100] 2022.05.02 00:31:38.198891 [ 1815704 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Trace> ContextAccess (xxxxx): Access granted
    [node100] 2022.05.02 00:31:38.199099 [ 1815704 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Trace> InterpreterSelectQuery: FetchColumns -> Complete
    [node100] 2022.05.02 00:31:38.199511 [ 1815704 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Debug> xxxxx.metrics (6fbdae6b-2c89-4e36-afbd-ae6b2c890e36) (SelectExecutor): Key condition: (column 0 in ['qwerty', 'qwertz'))
    [node100] 2022.05.02 00:31:38.199676 [ 1815704 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Debug> xxxxx.metrics (6fbdae6b-2c89-4e36-afbd-ae6b2c890e36) (SelectExecutor): MinMax index condition: unknown
    [node100] 2022.05.02 00:31:38.200207 [ 1815872 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Trace> xxxxx.metrics (6fbdae6b-2c89-4e36-afbd-ae6b2c890e36) (SelectExecutor): Running binary search on index range for part 202204_1234_1413_3 (6211981 marks)
    [node100] 2022.05.02 00:31:38.200218 [ 1815735 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Trace> xxxxx.metrics (6fbdae6b-2c89-4e36-afbd-ae6b2c890e36) (SelectExecutor): Running binary search on index range for part 202204_1594_1809_3 (7454370 marks)
    [node100] 2022.05.02 00:31:38.200249 [ 1815875 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Trace> xxxxx.metrics (6fbdae6b-2c89-4e36-afbd-ae6b2c890e36) (SelectExecutor): Running binary search on index range for part 202204_2172_2172_0 (10789 marks)
    [node100] 2022.05.02 00:31:38.200280 [ 1815876 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Trace> xxxxx.metrics (6fbdae6b-2c89-4e36-afbd-ae6b2c890e36) (SelectExecutor): Running binary search on index range for part 202204_1990_2171_3 (6281093 marks)
    [node100] 2022.05.02 00:31:38.200251 [ 1815756 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Trace> xxxxx.metrics (6fbdae6b-2c89-4e36-afbd-ae6b2c890e36) (SelectExecutor): Running binary search on index range for part 202204_1810_1989_3 (6212000 marks)
    [node100] 2022.05.02 00:31:38.200257 [ 1815778 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Trace> xxxxx.metrics (6fbdae6b-2c89-4e36-afbd-ae6b2c890e36) (SelectExecutor): Running binary search on index range for part 202204_1414_1593_3 (6211952 marks)
    [node100] 2022.05.02 00:31:38.200250 [ 1815873 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Trace> xxxxx.metrics (6fbdae6b-2c89-4e36-afbd-ae6b2c890e36) (SelectExecutor): Running binary search on index range for part 202204_1_1233_4_556 (41194922 marks)
    [node100] 2022.05.02 00:31:38.203963 [ 1815756 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Trace> xxxxx.metrics (6fbdae6b-2c89-4e36-afbd-ae6b2c890e36) (SelectExecutor): Found (LEFT) boundary mark: 4696744
    [node100] 2022.05.02 00:31:38.204023 [ 1815778 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Trace> xxxxx.metrics (6fbdae6b-2c89-4e36-afbd-ae6b2c890e36) (SelectExecutor): Found (LEFT) boundary mark: 4698362
    [node100] 2022.05.02 00:31:38.204060 [ 1815756 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Trace> xxxxx.metrics (6fbdae6b-2c89-4e36-afbd-ae6b2c890e36) (SelectExecutor): Found (RIGHT) boundary mark: 4697987
    [node100] 2022.05.02 00:31:38.204074 [ 1815778 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Trace> xxxxx.metrics (6fbdae6b-2c89-4e36-afbd-ae6b2c890e36) (SelectExecutor): Found (RIGHT) boundary mark: 4699620
    [node100] 2022.05.02 00:31:38.204061 [ 1815735 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Trace> xxxxx.metrics (6fbdae6b-2c89-4e36-afbd-ae6b2c890e36) (SelectExecutor): Found (LEFT) boundary mark: 5636864
    [node100] 2022.05.02 00:31:38.204110 [ 1815876 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Trace> xxxxx.metrics (6fbdae6b-2c89-4e36-afbd-ae6b2c890e36) (SelectExecutor): Found (LEFT) boundary mark: 4749799
    [node100] 2022.05.02 00:31:38.204137 [ 1815778 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Trace> xxxxx.metrics (6fbdae6b-2c89-4e36-afbd-ae6b2c890e36) (SelectExecutor): Found continuous range in 43 steps
  • [node100] 2022.05.02 00:31:38.204183 [ 1815735 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Trace> xxxxx.metrics (6fbdae6b-2c89-4e36-afbd-ae6b2c890e36) (SelectExecutor): Found (RIGHT) boundary mark: 5638366
    [node100] 2022.05.02 00:31:38.204099 [ 1815873 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Trace> xxxxx.metrics (6fbdae6b-2c89-4e36-afbd-ae6b2c890e36) (SelectExecutor): Found (LEFT) boundary mark: 31012529
    [node100] 2022.05.02 00:31:38.204049 [ 1815872 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Trace> xxxxx.metrics (6fbdae6b-2c89-4e36-afbd-ae6b2c890e36) (SelectExecutor): Found (LEFT) boundary mark: 4697244
    [node100] 2022.05.02 00:31:38.204238 [ 1815735 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Trace> xxxxx.metrics (6fbdae6b-2c89-4e36-afbd-ae6b2c890e36) (SelectExecutor): Found continuous range in 44 steps
    [node100] 2022.05.02 00:31:38.204293 [ 1815872 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Trace> xxxxx.metrics (6fbdae6b-2c89-4e36-afbd-ae6b2c890e36) (SelectExecutor): Found (RIGHT) boundary mark: 4698518
    [node100] 2022.05.02 00:31:38.204118 [ 1815756 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Trace> xxxxx.metrics (6fbdae6b-2c89-4e36-afbd-ae6b2c890e36) (SelectExecutor): Found continuous range in 43 steps
    [node100] 2022.05.02 00:31:38.204329 [ 1815872 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Trace> xxxxx.metrics (6fbdae6b-2c89-4e36-afbd-ae6b2c890e36) (SelectExecutor): Found continuous range in 43 steps
    [node100] 2022.05.02 00:31:38.204185 [ 1815876 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Trace> xxxxx.metrics (6fbdae6b-2c89-4e36-afbd-ae6b2c890e36) (SelectExecutor): Found (RIGHT) boundary mark: 4751062
    [node100] 2022.05.02 00:31:38.204290 [ 1815873 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Trace> xxxxx.metrics (6fbdae6b-2c89-4e36-afbd-ae6b2c890e36) (SelectExecutor): Found (RIGHT) boundary mark: 31019841
    [node100] 2022.05.02 00:31:38.204370 [ 1815876 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Trace> xxxxx.metrics (6fbdae6b-2c89-4e36-afbd-ae6b2c890e36) (SelectExecutor): Found continuous range in 42 steps
    [node100] 2022.05.02 00:31:38.204090 [ 1815875 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Trace> xxxxx.metrics (6fbdae6b-2c89-4e36-afbd-ae6b2c890e36) (SelectExecutor): Found (LEFT) boundary mark: 8426
    [node100] 2022.05.02 00:31:38.204405 [ 1815873 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Trace> xxxxx.metrics (6fbdae6b-2c89-4e36-afbd-ae6b2c890e36) (SelectExecutor): Found continuous range in 49 steps
    [node100] 2022.05.02 00:31:38.204429 [ 1815875 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Trace> xxxxx.metrics (6fbdae6b-2c89-4e36-afbd-ae6b2c890e36) (SelectExecutor): Found (RIGHT) boundary mark: 8433
    [node100] 2022.05.02 00:31:38.204473 [ 1815875 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Trace> xxxxx.metrics (6fbdae6b-2c89-4e36-afbd-ae6b2c890e36) (SelectExecutor): Found continuous range in 25 steps
    [node100] 2022.05.02 00:31:38.204837 [ 1815704 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Debug> xxxxx.metrics (6fbdae6b-2c89-4e36-afbd-ae6b2c890e36) (SelectExecutor): Selected 7/7 parts by partition key, 7 parts by primary key, 13859/73577100 marks by primary key, 13859 marks to read from 7 ranges
    [node100] 2022.05.02 00:31:38.205300 [ 1815704 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Debug> xxxxx.metrics (6fbdae6b-2c89-4e36-afbd-ae6b2c890e36) (SelectExecutor): Reading approx. 443466 rows with 7 streams
    [node100] 2022.05.02 00:31:38.207100 [ 1815814 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Debug> MemoryTracker: Current memory usage (total): 4.47 GiB.
    [node100] 2022.05.02 00:31:38.386467 [ 1815756 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Debug> MemoryTracker: Current memory usage (total): 5.05 GiB.
    [node100] 2022.05.02 00:31:49.494361 [ 1815872 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Debug> MemoryTracker: Current memory usage (total): 6.04 GiB.
    [node100] 2022.05.02 00:32:01.134631 [ 1815735 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Debug> MemoryTracker: Current memory usage (total): 7.06 GiB.
  • [node100] 2022.05.02 00:32:12.740096 [ 1815876 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Debug> MemoryTracker: Current memory usage (total): 8.04 GiB.
    [node100] 2022.05.02 00:32:21.187334 [ 1815814 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Debug> MemoryTracker: Current memory usage (total): 9.51 GiB.
    [node100] 2022.05.02 00:32:34.376382 [ 1815876 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Debug> MemoryTracker: Current memory usage (total): 10.02 GiB.
    [node100] 2022.05.02 00:32:51.201379 [ 1815872 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Debug> MemoryTracker: Current memory usage (total): 11.06 GiB.
    [node100] 2022.05.02 00:33:00.838116 [ 1815814 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Debug> MemoryTracker: Current memory usage (total): 12.53 GiB.
    [node100] 2022.05.02 00:33:08.955138 [ 1815876 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Debug> MemoryTracker: Current memory usage (total): 13.04 GiB.
    [node100] 2022.05.02 00:33:35.506902 [ 1815814 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Debug> MemoryTracker: Current memory usage (total): 15.53 GiB.
    [node100] 2022.05.02 00:33:45.078600 [ 1815814 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Debug> MemoryTracker: Current memory usage (total): 16.16 GiB.
    [node100] 2022.05.02 00:34:03.399894 [ 1815814 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Debug> MemoryTracker: Current memory usage (total): 17.38 GiB.
    [node100] 2022.05.02 00:34:22.298660 [ 1815814 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Debug> MemoryTracker: Current memory usage (total): 18.58 GiB.
    [node100] 2022.05.02 00:34:31.463592 [ 1815814 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Debug> MemoryTracker: Current memory usage (total): 19.18 GiB.
    [node100] 2022.05.02 00:34:50.458226 [ 1815814 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Debug> MemoryTracker: Current memory usage (total): 20.42 GiB.
    [node100] 2022.05.02 00:34:59.513516 [ 1815814 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Debug> MemoryTracker: Current memory usage (total): 21.07 GiB.
    [node100] 2022.05.02 00:35:22.843898 [ 1815814 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Debug> MemoryTracker: Current memory usage (total): 22.31 GiB.
    [node100] 2022.05.02 00:35:41.327850 [ 1815704 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Information> executeQuery: Read 56174 rows, 12.29 MiB in 243.129815155 sec., 231 rows/sec., 51.78 KiB/sec.
    [node100] 2022.05.02 00:35:41.327927 [ 1815704 ] {737c871c-9609-4e31-8cc4-0cfcd07eaea6} <Debug> MemoryTracker: Peak memory usage (for query): 28.43 MiB.
    Ok.

    0 rows in set. Elapsed: 243.131 sec. Processed 56.17 thousand rows, 12.89 MB (231.04 rows/s., 53.02 KB/s.)
  • https://t.me/clickhouse_ru
    а сколько колонок в таблице?

    а если order by добавить тоже самое?

    SELECT *
    FROM metrics
    PREWHERE pkey LIKE 'xxxx%'
    order by pkey
    LIMIT 100
  • @179984270 #268447 09:52 PM, 01 May 2022
    Колонок в таблице 15. Ордер бай лучше не сделает, проверял(
  • Какой нибудь вердикт вынести можете?) В каком хотя бы направлении мне дальше копать? И спасибо, что в час ночи помогаете решить проблему)
  • https://t.me/clickhouse_ru
    а что если колонки добавлять по одной, вместо * , на какой колонке тормозит?

    либо баг в КХ и надо проверять на старой версии 21.8.15, потому что непонятно накой он память выделяет и в конце пишет Peak memory usage (for query): 28.43 MiB

    либо диск тормозит и кусок файлов медленно читается ( я бы смотрел sudo dmesg |tail )
    хотя врядли диск, такой объем закешировался бы уже.
  • Кстати перебирать колонки не пробовал, надо бы проверить)

    По поводу диска - посмотрю. Не исключаю, что дело и в нём.

    Проверю всё уже завтра. Спасибо!)
  • Диск действительно по iops перегружен, но запрос маленький, должен из кеша обслуживаться (15Гб рам в кеше). Я б убедился бы что вся нагрузка идёт от кх (iotop), что кх выполняет только один запрос (а то вдруг какая-нибудь тулза раз в секунду отправляет запрос, который 20 выполняется и там очередь в 20+ запросов дружно грузят диск). И если действительно кх в монопольном режиме так нагрузил шпиндельный диск (на массив не похоже, разве что аппаратный, деградировавший и с отключённым кешем), то стал бы кх ковырять - кх на шпинделях себя должен прекрасно чувствовать.
  • 02 May 2022 (69 messages)
  • @5374095012 #268452 10:24 AM, 02 May 2022
    🔔 Продаю автоматические программы для : 🔔

    1️⃣ - Массовая рассылка по чатам.👉6000 рублей.
    2️⃣ - Массовая рассылка в ЛС. 👉 9000 рублей.
    3️⃣ - Инват.👉 5000 рублей.
    4️⃣ - Автоподписчик на чаты. 👉4000 рублей.
    5️⃣ - Парсинг. 👉3500 рублей.
  • @mboitsov #268453 11:55 AM, 02 May 2022
    Привет! Вот раньше можно было дату при джойне проверить на пустоту через like '0000-00-00%'
    в более новых версиях (в моем случае 21.12) это можно сделать, например через like '1970-01-01%'.
    Вопрос: а нет ли какой-нибудь ф-ии, возвращающей дефолтную дату в КХ? Или может быть такую проверку можно как-то покрасивее сделать? А то вдруг в будущих версиях опять в этом моменте что-то поменяется...
  • https://t.me/clickhouse_ru
    @Alexey_037 #268454 11:57 AM, 02 May 2022
    Выбирайте любую дату ранее 1900 года - вернет дефолтную, в чем проблема.
  • https://t.me/clickhouse_ru
    @Alexey_037 #268455 11:58 AM, 02 May 2022
    обкастовывайте в строку, сверяйте с 00000....
  • @mboitsov #268456 12:00 PM, 02 May 2022
    окай, спасибо)
  • @olehdudkin #268457 12:14 PM, 02 May 2022
    Коллеги, добрый день. Кто-нибудь проводил бенчмарк на разных index_granularity ? в связке с skip-indexes ?
  • https://t.me/clickhouse_ru
    можно, но не нужно

    select defaultValueOfArgumentType(today()); 1970-01-01
    select defaultValueOfTypeName('Date'); 1970-01-01

    проще использовать --join_use_nulls

    select * from (select 0 key) l left join (select 1 key, today() a) r using key settings join_use_nulls=1;
    ┌─key─┬────a─┐
    │ 0 │ ᴺᵁᴸᴸ │
    └─────┴──────┘

    или просто вводя дополнительное поле found

    select * from (select 0 key) l left join (select 1 key, today() a, 1 found) r using key;
    ┌─key─┬──────────a─┬─found─┐
    │ 0 │ 1970-01-01 │ 0 │
    └─────┴────────────┴───────┘
  • https://t.me/clickhouse_ru
    а смысл?
    результат будет абсолютно разный и у индекса можно задать granularity что решает в 99% задачу.
  • @olehdudkin #268460 12:22 PM, 02 May 2022
    В этом и вопрос, с самими индексами - предсказуемо, как например влияет на производительность изменение гранулы до 1024 ?
  • @olehdudkin #268461 12:23 PM, 02 May 2022
    или наоборот - увеличение в 2 раза
  • https://t.me/clickhouse_ru
    результат будет абсолютно разный для разных данных и разных индексов
  • @olehdudkin #268463 12:23 PM, 02 May 2022
    Догадываюсь. Поэтому и спрашиваю, кто-нибудь проводил бенчмарки?
  • @olehdudkin #268464 12:24 PM, 02 May 2022
    use-cases если хотите. "Вот у нас такие данные, мы вот поэксперементировали - получили вот такой результат"
  • @olehdudkin #268465 12:25 PM, 02 May 2022
    со скип-индексами нашел несколько статей. А вот с самой granularity в MergeTree - нет. Все берут за основу дефолтное значение
  • https://t.me/clickhouse_ru
    зачем? вот предположим я нашел что идеальный вариант миллион строк в грануле индекса, и у таблицы index_granularity 16384, ну я ставлю granularity 1000000/16384
  • @olehdudkin #268467 12:26 PM, 02 May 2022
    Вы это к тому, что гранулярность primary_index не очень важна?
  • @olehdudkin #268468 12:26 PM, 02 May 2022
    или ее тоже можно менять?
  • https://t.me/clickhouse_ru
    бессмысленно менять index_granularity для улучшения skip indexов
  • @olehdudkin #268470 12:27 PM, 02 May 2022
    Понимаю, а на что она тогда вообще влияет?
  • https://t.me/clickhouse_ru
    она очень важна, настолько важна, что ее не надо менять ни в коем случае для тюнинга скип индекса
  • @olehdudkin #268472 12:28 PM, 02 May 2022
    а для чего ее можно / нужно менять?
  • @olehdudkin #268473 12:33 PM, 02 May 2022
    Точнее так, вот этот параграф в документации
    """
    Accordingly, the natural impulse to try to speed up ClickHouse queries by simply adding an index to key columns is often incorrect. This advanced functionality should only be used after investigating other alternatives, such as modifying the primary key (see How to Pick a Primary Key), using projections, or using materialized views. Even when a data skipping index is appropriate, careful tuning both the index and the table will often be necessary.
    """
  • https://t.me/clickhouse_ru
    Два самых частых случая:

    1. В таблице очень много очень узких строк. Например в таблице 10 триллионов строк и три поля 64 бит. Размер первичного индекса 100гб, он хранится в памяти, 100гб ОЗУ жалко. Он такой большой потому что много строк и гранулы 8192, увеличиваем размер гранулы в 4 раза до 32768, получаем индекс в четыре раза меньше 25гб.

    2. В таблице есть aggregate functions uniq uniqmerge, т.е. ячейки таблицы очень жирные это не 64 бита а напротив 20кб. Адаптивная гранулярность в этом случае не срабатывает. Т.е. размер гранул в байтах огромен и запросы которым надо прочитать из гранулы мало строк очень тормозят потому что читают соседние строки, и запрос таким образом поднимает с диска несколько гигабайт. В этом случае надо уменьшить 8192 например до 256.
  • @olehdudkin #268476 12:39 PM, 02 May 2022
    Я вас понял, спасибо большое
  • https://t.me/clickhouse_ru
    Denny, подскажи, правильно ли я понял:
    Если в таблице не более 300-500 млн. строк и в 99% случаев требуется отбирать практически все значения (uniqExact), то размер гранул вообще не будет играть роли?
  • https://t.me/clickhouse_ru
    Не будет
  • https://t.me/clickhouse_ru
    @Alexey_037 #268479 12:43 PM, 02 May 2022
    Спасибо
  • https://t.me/clickhouse_ru
    @den_crane #268480 12:45 PM, 02 May 2022
    Ну и uniqExact не равно aggregate function. Это два абсолютно разных кейса
  • https://t.me/clickhouse_ru
    @Alexey_037 #268481 12:46 PM, 02 May 2022
    да, я понимаю. Просто между строк увидел некоторые моменты, применимые к моим случаям.
  • @olehdudkin #268482 12:51 PM, 02 May 2022
    В документации была удобная табличка, какие кондишены поддреживаются какими скип-индексами. Не могу ее теперь найти, есть у кого-нибудь ссылка под рукой? Спасибо
  • Можно пару предложений почему? Разве мы не уменьшаем кол-во проверок через увеличение гранулярности индекса? При условии высококардинального поля
  • https://t.me/clickhouse_ru
    Ни слова не понял
  • Денни, почему нельзя менять гранулярность для тюнинга скип индекса? Речь про гранулярность, кстати, скип индекса или первичного ключа?
  • https://t.me/clickhouse_ru
    Гранулярность первичного ключа слишком важна, чтобы ее менять ради такой глупости как скип индексы. И да у индекса есть собственная гранулярность , ее надо подбирать.
  • Спасибо.
  • @olehdudkin #268491 02:25 PM, 02 May 2022
    Как minmax index ведет себя с NULL ?
  • https://t.me/clickhouse_ru
    @Alexey_037 #268493 02:37 PM, 02 May 2022
    А поконкретней?
  • @Artem_Makarenko #268494 02:47 PM, 02 May 2022
    Приветствую. Подскажите плиз .
    Нужно ли соблюдать какую-то версионность zookeepera и clickhouse ?
    Например, могу ли я использовать clickhouse 21.3.13 и zookeeper 3.8 ?
  • https://t.me/clickhouse_ru
    > Нужно ли соблюдать какую-то версионность zookeepera и clickhouse ?
    Нет
    > Например, могу ли я использовать clickhouse 21.3.13 и zookeeper 3.8 ?

    Да, вполне.

    Мы правда используем 3.7, но думаю 3.8 не сильно хуже
  • https://t.me/clickhouse_ru
    Я думал когда выходит новая версия, то она должна улучшать работу предыдущей 🙂
  • https://t.me/clickhouse_ru
    Ну где два шага вперед, где один назад
  • @simpl1g #268498 02:51 PM, 02 May 2022
    Подскажите redis словарь должен работать с layout complex_key_direct?
    Ошибка DB::Exception: Bad cast exception. (POCO_EXCEPTION)

    Если использовать complex_key_hashed и загружать в память всё ок работает
  • https://t.me/clickhouse_ru
    А clickhouse-keeper Вы у себя не используете ещё?
  • https://t.me/clickhouse_ru
    Не в нашем облаке пока, но кое где используем.

    Плюс насколько знаю в яндексе используют для некоторых кластеров
  • https://t.me/clickhouse_ru
    я использую zookeeper 3.4 со всеми версиями КХ.
  • https://t.me/clickhouse_ru
    Ну у Вас и ClickHouse наверное 21.3, а может и предыдущий LTS 🙂
  • https://t.me/clickhouse_ru
    КХ у меня 18.14, 20.8, 21.8, 22.4, 22.5
  • https://t.me/clickhouse_ru
    А clickhouse-keeper используете или только на zookeeper?
  • https://t.me/clickhouse_ru
    использую для тестовых окружений
  • @olehdudkin #268506 03:10 PM, 02 May 2022
    "ALTER ADD PROJECTION is not supported for tables with the old syntax." - как "рпавильно" пересоздать таблицу с новым синтаксисом?
  • @olehdudkin #268507 03:11 PM, 02 May 2022
    вообще как правильно копировать таблицу без потери данных - если в нее постоянно заливка идет
  • @olehdudkin #268508 03:23 PM, 02 May 2022
    ^ таблица ReplicatedCollapsingMergeTree()
  • https://t.me/clickhouse_ru
    сколько данных таблице в ГБ и в строках
  • @olehdudkin #268510 04:13 PM, 02 May 2022
    Сейчас
  • https://t.me/clickhouse_ru
    PROJECTION не совсем правильно работают с Collapsing, они не видят сами колапсы
  • https://t.me/clickhouse_ru
    @den_crane #268512 04:14 PM, 02 May 2022
    Projections inconsistent results for ReplacingMergeTree/CollapsingMergeTree · Issue #24778 · ClickHouse/ClickHouse

    drop table if exists tp; create table tp (type Int32, eventcnt UInt64, projection p (select sum(eventcnt), type group by type)) engine = ReplacingMergeTree order by type; insert into tp select numb...

  • @olehdudkin #268513 04:30 PM, 02 May 2022
    57240527 строк, 1 GB
    Вторая
    12 Миллиардов - 520 Gb
  • @olehdudkin #268514 04:30 PM, 02 May 2022
    Как мне их скопировать
  • @olehdudkin #268515 04:32 PM, 02 May 2022
    Насчет коллапсов - спасибо, это важно знать
  • https://t.me/clickhouse_ru
    ну 1 ГБ не проблема остановить инсерты, да переинсертить

    с большой таблицей несколько вариантов, например создать новую таблицу, на старую сделать мат.вью которое начнет дублировать запись например начиная с 3 мая (where event_date >= 'may3') , и по кускам из старой перелить все что до 3го мая.
  • @5309741108 #268519 06:54 PM, 02 May 2022
    Привет! Хочу с вами поделиться, вероятно, очень полезным сервисом по трудоустройству IT-специалистов из СНГ в Американские и Европейские компании, так-же есть прога по релокации в другие страны, вдруг кому-то наш сервис поможет получить классный оффер.  Огромных успехов всем!!! Open jobs for software developers, QA engineers, and data scientists
    Work for an American or European company remotely or relocate to work abroad! Find your perfect job match with Talent Service
  • @179984270 #268523 08:08 PM, 02 May 2022
    @den_crane Снова добрый вечер! В продолжение вчерашнего вопроса про тормозной селект на >2млрд строк. Забыл упомянуть про то, что при создании таблицы я выставил index_granularity = 32. Хотел сделать индекс менее разреженным и проверить, насколько это отразится на работе. Так вот, столь малое значение этого параметра не может привести к обратному эффекту и к вот такого рода тормозам?
  • https://t.me/clickhouse_ru
    Ну так попробуйте поставить стандартный и проверьте
  • https://t.me/clickhouse_ru
    @konnectrl #268526 08:21 PM, 02 May 2022
    У вас в 256 раз больше индексов
  • @179984270 #268527 08:22 PM, 02 May 2022
    а могу я изменить индекс гранулярити на существующей таблице?
  • https://t.me/clickhouse_ru
    Скорее нет, чем да.

    Проще пересоздать думаю
  • @179984270 #268529 08:23 PM, 02 May 2022
    ну я вот тоже в документации не нашёл ответ(
  • https://t.me/clickhouse_ru
    типа как альтернативу ты мог бы предложить из-за mrk2 подправить мету а потом перемержить? Такое работает?
  • https://t.me/clickhouse_ru
    Не (ну или чуть иначе чем ты предложил),

    Создать новую таблицу с mixed_granularity on сделать ATTACH PARTITION FROM

    и выполнить OPTIMIZE TABLE FINAL

    Не уверен, что сработает правда
  • 03 May 2022 (44 messages)
  • https://t.me/clickhouse_ru
    Так сработало у нас
  • https://t.me/clickhouse_ru
    @5284777777 #268533 03:46 AM, 03 May 2022
    Joined.
  • https://t.me/clickhouse_ru
    Я проводил. Обычно дефолтный самый быстрый
  • https://t.me/clickhouse_ru
    Кайф спс, догадывался но чёткого понимания не было
  • https://t.me/clickhouse_ru
    @good_developer #268537 07:16 AM, 03 May 2022
    max_bytes_before_external_sort / group_by использует tmp_policy для внешней сортировки? Или ему начхать что там и он смотрит только на tmp_path?
  • @5396754198 #268538 07:39 AM, 03 May 2022
    Joined.
  • https://t.me/clickhouse_ru
    @mike_vz #268539 08:37 AM, 03 May 2022
    Joined.
  • https://t.me/clickhouse_ru
    @mike_vz #268540 08:43 AM, 03 May 2022
    Коллеги, вопрос по хранению JSON в CH.
    Есть ли разница в хранении в CH VARCHAR и JSON (Array)?
    Нужны ли дополнительные настройки для хранения?
    Нужны ли дополнительные настройки для обработки JSON
  • https://t.me/clickhouse_ru
    @5309981618 #268541 08:50 AM, 03 May 2022
    Joined.
  • https://t.me/clickhouse_ru
    в последних версиях есть отдельный тип поля JSON
    он раскладывается в отдельные колонки
    https://clickhouse.com/docs/en/guides/developer/working-with-json/json-intro

    есть подход когда raw json хранится как строка
    и отдельно из него через JSONExtract функции материализуются колонки. по мере надобности
    https://clickhouse.com/docs/en/guides/developer/working-with-json/json-other-approaches
    Handling JSON | ClickHouse Docs

    Introduction to Handling JSON

  • https://t.me/clickhouse_ru
    > Есть ли разница в хранении в CH VARCHAR и JSON (Array)?

    разница кардинальная
    JSON тип это отдельные под-колонки...

    > Нужны ли дополнительные настройки для хранения?
    насколько помню нет
    нужна только версия clickhouse 22.3 или 22.4 желательно

    ну и баги поищите, в github
    функционал новый, наверняка что-то всплывает
  • https://t.me/clickhouse_ru
    @mike_vz #268545 09:53 AM, 03 May 2022
    спасибо
  • https://t.me/clickhouse_ru
    @migunovalex #268546 09:55 AM, 03 May 2022
    Ребята, добрый день!
    Подскажите, пожалуйста, у нас есть проблема с настройкой репликации между инстансами Клика. Есть ли кто то, кто мог бы нам помочь на платной почасовой основе и пройтись по нашим конфигам и определить проблему? Если есть возможность - напишите в личку.
    Наша проблема уже поднималась в чате ранее - https://t.me/clickhouse_ru/268182
    Artem Savitsky in ClickHouse не тормозит

    Вмем привет! Подскажите кто знает пожалуйста - CH version 22.1.3.7 У нас 1 шард/3 реплики (схема и настройки прилагается в скриншоте) При инстерте или батч инсерте в дистрибутивную таблицу - все данные мгновенно реплицируются (видно во всех репликах) и данные можно получить через select на дистрибутивной таблице, но клиент (java jdbc) выдает ошибку Code: 286. DB::Exception: Received from lx51:9000. DB::Exception: Another quorum insert has been already started. (UNSATISFIED_QUORUM_FOR_PREVIOUS_WRITE) (version 22.1.3.7 (official build)) На 3х нодах где размещены реплики также ошибки в логах (также в скриншотах) при каждом новом инстерте меняется только хост ноды (lx51:9000, lx52:9000, lx53:9000) - но ошибка остается таже

  • https://t.me/clickhouse_ru
    @MMUrft #268548 10:49 AM, 03 May 2022
    Joined.
  • @5396754198 #268549 10:52 AM, 03 May 2022
    ❗️Продаю полностью рабочую программу, которая автоматически делает отправки вашего текста в чаты❗️
    • Программа поддерживает отправку сразу с многих аккаунтов.
    • С одного аккаунта можно отправить до 10.000 смс.
    • Программа полностью автоматическая. Вам нужно нажимать только на одну кнопку.

    ⚠️ Продаю за очень маленькие деньги, так как очень срочно нужны деньги.

    ✅ Цена за данную программу - 5999р.
  • /report
  • https://t.me/clickhouse_ru
    @EKbfh ↶ Reply to #122116 #268563 03:35 PM, 03 May 2022
    привет, а им кто-то занимается вообще?
    Последняя stable там 22.2.2.1
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Поменяли адрес репы. Смотрите доки
  • https://t.me/clickhouse_ru
    Installation | ClickHouse Documentation

    Installation System Requirements ClickHouse can run on any Linux, FreeBSD, or Mac OS X with x86_64, AArch64, or PowerPC6

  • https://t.me/clickhouse_ru
    @EKbfh ↶ Reply to #268565 #268567 03:36 PM, 03 May 2022
    спасибо
  • https://t.me/clickhouse_ru
    @EKbfh ↶ Reply to #268566 #268568 03:37 PM, 03 May 2022
    благодарю.
  • https://t.me/clickhouse_ru
    @5121444780 #268573 06:58 PM, 03 May 2022
    ☑️ Пpoдаю крeдитныe кapтoчки PФ и дpугиx стpaн! Отправим, анонимно! Tinkoff и Пpиватбанк пoд зaказ.
    💲 Рaботaем черeз гаpантa. Отмoeм вaши деньги.
    🔥 https://tele.gg/bank_karty
  • @renatko #268576 09:44 PM, 03 May 2022
    Всем привет! есть ли какой-то воркарауд для ошибки THERE_IS_NO_COLUMN? Версия 22.2.2.1
  • у вас на локальных нодах в кластере DDL таблицы разошлись?
  • https://t.me/clickhouse_ru
    Что на других версиях кх ошибки не было?
  • прошлая версия была очень старая - 19.5.3.8. Ошибки не было на тех же самых запросах
  • нет. Такие запросы работают:
    select col1 from events limit 1;
    select col1 from events_distributed limit 1;
    select dictGet('dict', 'name', col1) from events limit 1;

    а вот так ошибка:
    select dictGet('dict', 'name', col1) from events_distributed limit 1;
  • ошибка полностью:
    Cannot find column dictGet('dict', 'name', col1) in source stream, there are only columns: [dictGet('dict', 'name', col1)]. (THERE_IS_NO_COLUMN)
  • dictGetOrDefault тоже заваливается?
  • да, тоже самое
  • https://t.me/clickhouse_ru
    @BLACKtoBACK #268584 10:34 PM, 03 May 2022
    Доброго времени суток коллеги, подскажи как в КХ можно подойти к теме AUTO INCREMENT ?
    Хочу , что бы данные подгружаемые в таблицу, автоматически получали id. Допустим это таблица заказов и каждый новый заказ должен быть уникальным.
  • https://t.me/clickhouse_ru
    @BLACKtoBACK #268585 10:34 PM, 03 May 2022
    Стоит ли смотреть в сторону UUID ?
  • А вам нужна сортировка по этому id?
  • https://t.me/clickhouse_ru
    Да в принципе нет, могу сделать по дате 🤷‍♂️
  • Не только при хранении, но и при запросах тоже? Если да, то uuid-ы подойдут.
  • https://t.me/clickhouse_ru
    Да и при запросах тоже. Но меня беспокоит в uuid, что он от AI требует условия insert! А если я добавляю данные к примеру импортом csv или у меня допустим материализованная вью?!
  • default для этого же есть
  • https://t.me/clickhouse_ru
    если бы вы чуть раскрыли момент default )))
  • @2070273164 #268592 10:55 PM, 03 May 2022
    id UUID DEFAULT generateUUIDv4()
  • https://t.me/clickhouse_ru
    спасибо, я буду изучать этот момент))))
  • @2070273164 #268594 11:00 PM, 03 May 2022
    если пишете через буфер, то в буфере сгенерируется и запишется в таблицу, если через MV, то можно в самой таблице не писать DEFAULT, а в MV генерировать
  • https://t.me/clickhouse_ru
    хочу сейчас попробовать через обычный view
  • https://t.me/clickhouse_ru
    @BLACKtoBACK #268596 11:03 PM, 03 May 2022
    работает!!!! Спасибо Вам огромное))))
  • 04 May 2022 (106 messages)
  • Разобрался в чем проблема. В старом кластере словари были через XML, в новом SQL DDL. Как выяснилось в новом формате словарей нужно указывать имя БД в качестве префикса, а в старом работало без этого.

    С другой стороны присутствует некоторая неконсистентность: при запросе в локальную таблицу работает и без префикса, но при запросе в Distributed таблицу префикс обязателен.
  • https://t.me/clickhouse_ru
    И база не default?
  • база default, словари тоже default
  • https://t.me/clickhouse_ru
    @RapidCodeLab #268600 01:32 AM, 04 May 2022
    Пардон, я че то пропустил, а зачем вообще айди записи ?
  • https://t.me/clickhouse_ru
    @5197259108 #268602 06:37 AM, 04 May 2022
    Всем привет,знакомлюсь:)
  • https://t.me/clickhouse_ru
    @z0omal1 #268603 06:52 AM, 04 May 2022
    коллеги, доброго утра!
  • https://t.me/clickhouse_ru
    @z0omal1 #268604 06:53 AM, 04 May 2022
    дайте, пожалуйста, совет. в конце той недели некорректно удалил партиции по фильтру max_date <= today() - 14; и теперь логи пестрят ошибками вида:
    2022.05.04 09:51:27.634937 [ 10678 ] {} <Warning> graphite.graphite_reverse (ReplicatedMergeTreePartCheckThread): Checking part 20220426_20220427_1939313_1939318_1
    2022.05.04 09:51:27.635267 [ 10678 ] {} <Warning> graphite.graphite_reverse (ReplicatedMergeTreePartCheckThread): Checking if anyone has a part 20220426_20220427_1939313_1939318_1 or covering part.
    2022.05.04 09:51:27.637905 [ 10678 ] {} <Warning> graphite.graphite_reverse (ReplicatedMergeTreePartCheckThread): Found parts with the same min block and with the same max block as the missing part 20220426_20220427_1939313_1939318_1 on replica r00monch03.r00.egov.local. Hoping that it will eventually appear as a result of a merge.
  • https://t.me/clickhouse_ru
    @z0omal1 #268605 06:54 AM, 04 May 2022
    таких партиций некоторое количество
    ┌─partition─┬───max_date─┬─name────────────────────────────────┐
    │ 202204 │ 2022-04-27 │ 20220426_20220427_1939313_1939313_0 │
    │ 202204 │ 2022-04-26 │ 20220426_20220426_1939314_1939314_0 │
    │ 202204 │ 2022-04-26 │ 20220426_20220426_1939315_1939315_0 │
    │ 202204 │ 2022-04-26 │ 20220426_20220426_1939316_1939316_0 │
    │ 202204 │ 2022-04-26 │ 20220426_20220426_1939317_1939317_0 │
    │ 202204 │ 2022-04-26 │ 20220426_20220426_1939318_1939318_0 │
    │ 202204 │ 2022-04-26 │ 20220426_20220426_1939320_1939320_0 │
    │ 202204 │ 2022-04-26 │ 20220426_20220426_1939321_1939321_0 │
    │ 202204 │ 2022-04-27 │ 20220426_20220427_1939323_1939323_0 │
    │ 202204 │ 2022-04-27 │ 20220426_20220427_1939324_1939324_0 │
    └───────────┴────────────┴─────────────────────────────────────┘
    но при попытке сделать detach, получаю ошибку
    ALTER TABLE graphite.graphite_reverse
    DETACH PART '20220426_20220427_1939313_1939313_0'

    Query id: 990d23f9-a305-4f24-854d-49c3e3366f47

    0 rows in set. Elapsed: 0.004 sec.

    Received exception from server (version 22.3.3):
    Code: 384. DB::Exception: Received from localhost:9000. DB::Exception: Part 20220426_20220427_1939313_1939313_0 is currently participating in a background operation (mutation/merge), try again later. (PART_IS_TEMPORARILY_LOCKED)
  • https://t.me/clickhouse_ru
    @z0omal1 #268606 06:56 AM, 04 May 2022
    я так понимаю, что проблема в том, что эти партиции пытаются реплицироваться. как мне сделать детач и удалить эти партиции? останавливать реплику?
  • @5138450911 #268608 07:39 AM, 04 May 2022
    ❗️ Продаю СОФТЫ ❗️

    В наличии есть софты и для Telegram и для ВК.

    ✅Рассылка в ЛС.
    ✅Рассылка по чатам.
    ✅Рассылка по комментариям.
    ✅Инвайт.
    ✅Парсинг.
    ✅Парсинг по ГЕО.
    ✅Автоподписка на чаты.

    🛑Цены самые минимальные🛑
  • @bogomaz1987 #268609 07:44 AM, 04 May 2022
    Ребята, помогите найти проблему...

    Есть вот такая реплицируемая таблица данных c шардами:

    portsdata - Distributed('datalayer', 'test', 'portsdata_repl', rand())
    Поля - timestamp DateTime, port_id UInt32, parent_port_id UInt32 NULL, service_id UInt32, in_octets UInt64, in_octets_delta UInt64, out_octets UInt64, out_octets_delta UInt64, period UInt32

    portsdata_repl - ReplicatedMergeTree('/clickhouse/tables/{shard}/test/portsdata_repl', '{replica}') PARTITION BY toYYYYMM(timestamp) ORDER BY (timestamp, service_id, port_id) SETTINGS index_granularity = 8192

    Есть вот такой запрос, который агрегирует данные и определяет 95й персентиль:

    SELECT service_set, quantileExact(0.95)(`in_bps`) AS in_95th, quantileExact(0.95)(`out_bps`) AS out_95th
    FROM (
    SELECT
    interval_start,
    service_set,
    sum(`avg_in_bps`) AS in_bps,
    sum(`avg_out_bps`) AS out_bps
    FROM (
    SELECT
    toStartOfInterval(`timestamp`, INTERVAL 5 minute) AS interval_start,
    service_id,
    arrayJoin([[1]]) AS service_set,
    avg(((`in_octets_delta` * 😍 / `period`)) AS avg_in_bps,
    avg(((`out_octets_delta` * 😍 / `period`)) AS avg_out_bps
    FROM `portsdata`
    GLOBAL LEFT OUTER JOIN (
    SELECT
    port_id AS child_port_id,
    parent_port_id,
    service_id AS child_service_id
    FROM `portsdata`
    WHERE `service_id` IN (1)
    ) AS `children_map` ON `children_map`.`parent_port_id` == `port_id`
    WHERE
    `service_id` IN (1)
    AND (`timestamp` >= '1651622400')
    AND (`timestamp` < '1651968000')
    AND (isNull(`child_service_id`) OR `service_id` != `child_service_id`)
    GROUP BY `interval_start`, `service_id`, `port_id`, `child_port_id`
    )
    WHERE has(`service_set`, `service_id`)
    GROUP BY `interval_start`, `service_set`
    ORDER BY interval_start
    )
    GROUP BY `service_set`

    Пример выполнения команды выше по определению персентиля:

    service_set in_95th out_95th
    [1] 17504.0 8752.0

    Суть проблемы в том, что персентиль считается неверно, подсчитанные in_bps\out_bps персентили выше максимального значения в последовательности агрегируемых данных.

    Если выполнить внутреннюю команду по агрегации данных (до определения персентиля):

    SELECT
    interval_start,
    service_set,
    sum(`avg_in_bps`) AS in_bps,
    sum(`avg_out_bps`) AS out_bps
    FROM (
    SELECT
    toStartOfInterval(`timestamp`, INTERVAL 1440 minute) AS interval_start,
    service_id,
    arrayJoin([[1]]) AS service_set,
    avg(((`in_octets_delta` * 😍 / `period`)) AS avg_in_bps,
    avg(((`out_octets_delta` * 😍 / `period`)) AS avg_out_bps
    FROM `portsdata`
    GLOBAL LEFT OUTER JOIN (
    SELECT
    port_id AS child_port_id,
    parent_port_id,
    service_id AS child_service_id
    FROM `portsdata`
    WHERE `service_id` IN (1)
    ) AS `children_map` ON `children_map`.`parent_port_id` == `port_id`
    WHERE
    `service_id` IN (1)
    AND (`timestamp` >= '1651622400')
    AND (`timestamp` < '1651968000')
    AND (isNull(`child_service_id`) OR `service_id` != `child_service_id`)
    GROUP BY `interval_start`, `service_id`, `port_id`, `child_port_id`
    )
    WHERE has(`service_set`, `service_id`)
    GROUP BY `interval_start`, `service_set`
    ORDER BY interval_start

    то получим следующие данные:

    interval_start service_set in_bps out_bps
    2022-05-04 00:00:00 [1] 2296 1148
    2022-05-05 00:00:00 [1] 6904 3452
    2022-05-06 00:00:00 [1] 11512 5756
    2022-05-07 00:00:00 [1] 16120 8060
  • @bogomaz1987 #268610 07:44 AM, 04 May 2022
    Подытожу:
    У меня есть один большой запрос в clickhouse, который берет данные за определенный промежуток времени, агрегируем и затем вычисляем из этих данных персентиль.
    И дело в том, что персентиль считается неверно. Персентиль получается больше чем максимальное значение из последовательности агрегированных данных, что в принципе неправильно.
    Не получается найти причину в чем проблема. Нужна помощь
  • https://t.me/clickhouse_ru
    @Krisantis #268611 08:18 AM, 04 May 2022
    Подскажите, пожалуйста:
    хочу замерить быстродействие remote таблицы. Что нужно прописать в квере в set, чтобы запрос не кешировался и был чистый результат при повторных запусках?
  • https://t.me/clickhouse_ru
    Не знаю, есть ли чего в set, я использую отдельный запрос после этого https://clickhouse.com/docs/ru/sql-reference/statements/system/#query_language-system-drop-uncompressed-cache
  • https://t.me/clickhouse_ru
    А если попробовать на время остановить мутации и мерджи?
  • https://t.me/clickhouse_ru
    а есть какой-то элегантный способ это сделать?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @malkeshar #268617 08:26 AM, 04 May 2022
    Там несколько команд стоп
  • https://t.me/clickhouse_ru
    ага, спасибо! сейчас буду пробовать
  • https://t.me/clickhouse_ru
    Может имена полей в бэктики `` нужно обернуть
  • https://t.me/clickhouse_ru
    Обернул, не помогло. 😔
  • Запятую после Tax UInt64 уберите.
  • https://t.me/clickhouse_ru
    Блин... Точно. Спасибо!
    *Простыню кода удалил, чтобы не мусорить*
  • https://t.me/clickhouse_ru
    попробовал постопать фетчи, мержи, ттл мержи - не помогло. сейчас заглянул в system.replication_queue, и там такая картина:
    SELECT table, type, parts_to_merge, is_detach, num_tries, merge_type FROM system.replication_queue where num_tries > 1;

    SELECT
    table,
    type,
    parts_to_merge,
    is_detach,
    num_tries,
    merge_type
    FROM system.replication_queue
    WHERE num_tries > 1

    Query id: c18c89ff-c4ad-4e15-ba01-8c092d650e11

    ┌─table────────────┬─type─────┬─parts_to_merge─┬─is_detach─┬─num_tries─┬─merge_type─┐
    │ graphite_reverse │ GET_PART │ [] │ 0 │ 1327482 │ │
    │ graphite_reverse │ GET_PART │ [] │ 0 │ 1327549 │ │
    └──────────────────┴──────────┴────────────────┴───────────┴───────────┴────────────┘
  • https://t.me/clickhouse_ru
    @ifinik #268627 09:40 AM, 04 May 2022
    Привет. Подключаюсь к Yandex Managed Service for ClickHouse при помощи clickhouse-benchmark.
    Он пишет вот такое
    WARNING: Certificate verification failed
    ----------------------------------------
    Issuer Name: /CN=YandexInternalRootCA
    Subject Name: /CN=YandexInternalRootCA

    The certificate yielded the error: self signed certificate in certificate chain

    The error occurred in the certificate chain at position 2
    Accept the certificate (y,n)? DB::NetException: SSL Exception: error:1000007d:SSL routines:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED (rc1b-8sht3vfv69o4tca1.mdb.yandexcloud.net:9440)

    Консольный клиент пишет тоже самое но дает утвердительно ответить на впорос, и после этого нормально работает.
    Отсюда вопрос, что можно сделать чтобы заработало?
  • https://t.me/clickhouse_ru
    @s_nikolajus #268628 09:50 AM, 04 May 2022
    Привет 👋 короткий вопрос: grants для insert: написано что «privilege level: column» я правильно понимаю, что просто дать grant Insert on db.* не получится?
  • https://t.me/clickhouse_ru
    @s_nikolajus #268629 09:53 AM, 04 May 2022
    Дал такой grant insert, а Go драйвер все равно говорит надо дать insert(col1,col2) on db.table
  • @s4851 ↶ Reply to #268628 #268630 09:54 AM, 04 May 2022
    Здесь вы дали доступ исключительно на выполнение операции Select, а не Insert
    grant Select on db.*
  • @s4851 ↶ Reply to #268628 #268631 09:55 AM, 04 May 2022
    Сделайте
    grant Select,Insert on db.*
    и попробуйте Insert
  • https://t.me/clickhouse_ru
    @s_nikolajus #268633 10:00 AM, 04 May 2022
    Исправил на insert вместо select, моя ошибка 🤦‍♂️
  • https://t.me/clickhouse_ru
    @s_nikolajus #268634 10:01 AM, 04 May 2022
    Он делает insert, но в логах все равно ошибка периодически что нужен grant insert(col1,col2) on db.table
  • @s4851 ↶ Reply to #268634 #268635 10:02 AM, 04 May 2022
    Те insert проходит, данные в таблице появляются, но в логах ошибка?
  • https://t.me/clickhouse_ru
    Все, нашёл проблему, ansible мне там гадил и делал revoke периодически по поэтому в логах были ошибки. Разобрался, спасибо за ответы👌
  • https://t.me/clickhouse_ru
    @733187272 #268638 12:59 PM, 04 May 2022
    есть сотни источников с разнородными метриками. По каждому источнику надо делать плюс-минус одну и ту же аналитику. Есть смысл все хранить в одной очень широкой таблице вместо сотен таблиц для каждого источника?
  • https://t.me/clickhouse_ru
    @Alexey_037 #268639 01:01 PM, 04 May 2022
    ну если они между собой не будут пересекаться в запросах, то можно и в разных. А если будут - то в 1 будет практичней.
  • https://t.me/clickhouse_ru
    @yaturkeenzhenserheve #268641 01:11 PM, 04 May 2022
    А ещё помогите, плз.
    После попытки влить данные из CSV в таблицу получаю:

    SQL Error [32] [07000]: Code: 32. DB::Exception: Attempt to read after eof: Cannot parse UInt8 from String, because value is too short: while converting source column idTypeSession to destination column idTypeSession: while executing 'FUNCTION _CAST(idTypeSession :: 2, UInt8 :: 13) -> _CAST(idTypeSession, UInt8) UInt8 : 12'. (ATTEMPT_TO_READ_AFTER_EOF)
    При этом значений idTypeSession всего 15 (от 0 до 14).
    Почему каст не проходит?
  • https://t.me/clickhouse_ru
    @Alexey_037 #268642 01:13 PM, 04 May 2022
    Ну самый простой вариант - либо разделителя нет и идет попытка левого значения преобразовать в UInt8, либо действительно кривое число (например, с минусом)
  • https://t.me/clickhouse_ru
    @Alexey_037 #268643 01:14 PM, 04 May 2022
    или еще проще - у вас куча пустых строк в конце файла
  • https://t.me/clickhouse_ru
    Это может так аукаться? Не ожидал. Пойду проверять.
  • https://t.me/clickhouse_ru
    @Alexey_037 #268645 01:16 PM, 04 May 2022
    конечно. Например, у вас в конце будет не просто простая строка, а что то типа
    ;;;;;;;;;;; - то есть пустые значения..
  • https://t.me/clickhouse_ru
    @Alexey_037 #268646 01:16 PM, 04 May 2022
    в csv каждая строка - это набор данных. Соответственно, если там будет пустота или ;;;; - будет идти попытка преобразования данных.
  • https://t.me/clickhouse_ru
    @nafanaseva #268647 01:19 PM, 04 May 2022
    Имеет смысл заменять пустые значения на \N при выгрузке, либо тогда задать дефолтное значение NULL у неприходящих атрибутов.
  • https://t.me/clickhouse_ru
    Нет, я к тому, что не ожидал, что падать будет в середине столбцов, а не в конечном столбце.
    Но в общем нет, проверил, пустых строк нет, все значения в таблице в этом столбце положительные.
  • https://t.me/clickhouse_ru
    @Alexey_037 #268649 01:24 PM, 04 May 2022
    большой файл csv?
  • https://t.me/clickhouse_ru
    @yaturkeenzhenserheve #268650 01:26 PM, 04 May 2022
    5 гигов
  • https://t.me/clickhouse_ru
    @Alexey_037 #268651 01:26 PM, 04 May 2022
    О как... А грузится он порциями или разом?
  • https://t.me/clickhouse_ru
    @yaturkeenzhenserheve #268652 01:26 PM, 04 May 2022
    Пытаюсь разом
  • https://t.me/clickhouse_ru
    @Alexey_037 #268653 01:28 PM, 04 May 2022
    Ну тогда я бы попробовал сделать хитрость - сделать поле idTypeSession типом String, и залить. Если вдруг все Ок - добавить матер. столбец в итоговой таблице - в котором сделать преобразование строки в число. Если пройдет, подменить запросами idTypeSession на число.
  • https://t.me/clickhouse_ru
    Понял, спасибо за идею, пойду пробовать!
  • https://t.me/clickhouse_ru
    Дак, почему не сделать LowCordinality,
  • https://t.me/clickhouse_ru
    @konnectrl #268656 01:42 PM, 04 May 2022
    Зачем эти костыли ? Если по факту уже придумали решения для этого
  • https://t.me/clickhouse_ru
    @sakutepov #268659 02:32 PM, 04 May 2022
    всем привет
    сервер не запускается(
    выдаёт ошибку clickhouse-server.service: Failed at step EXEC spawning /usr/bin/clickhouse-server: Operation not permitted

    командой $ sudo -u clickhouse /usr/bin/clickhouse-server --config-file /etc/clickhouse-server/config.xml заводится

    подскажите куда копать чтобы поправить
  • https://t.me/clickhouse_ru
    @sakutepov #268660 02:37 PM, 04 May 2022
    началось после правки /etc/clickhouse-server/users.xml
    возврат к старой версии не помог
  • https://t.me/clickhouse_ru
    проверьте права на этот файл

    `ls -lah /etc/clickhouse-server/users.xml`
  • https://t.me/clickhouse_ru
    r-------- 1 clickhouse clickhouse 6,2K мая 4 13:56 /etc/clickhouse-server/users.xml
  • https://t.me/clickhouse_ru
    у меня вот -rw-r--r--. 1 clickhouse clickhouse
    попробуйте додать прав, возможно поможет
  • https://t.me/clickhouse_ru
    не помогло
    на папке такие же права?
  • https://t.me/clickhouse_ru
    @sakutepov #268667 03:16 PM, 04 May 2022
    дело похоже в другом
    Cannot open file /run/clickhouse-server/clickhouse-server.pid, errno: 2, strerror: No such file or directory. (CANNOT_OPEN_FILE), Stack trace (when copying this message, always include the lines below)
  • https://t.me/clickhouse_ru
    @sakutepov #268668 03:21 PM, 04 May 2022
    sudo clickhouse restart помог😂
  • https://t.me/clickhouse_ru
    @lvkrlv ↶ Reply to #128036 #268669 03:30 PM, 04 May 2022
    🙏🏻
  • https://t.me/clickhouse_ru
    @vstepankov #268670 03:38 PM, 04 May 2022
    Коллеги, правильно ли я понимаю, что clickhouse-local на вход может принимать форматы файлов что указаны в таблице?
    https://clickhouse.com/docs/ru/interfaces/formats
  • https://t.me/clickhouse_ru
    @blinkovivan #268675 04:32 PM, 04 May 2022
    An update on upcoming ClickHouse events.

    May 12 is our day of meetups (in both EU and US timezones). We are welcoming speakers from Opensee and Gigasheet. In addition, Alexey Milovidov and Geoff Genz from the ClickHouse team will be sharing. Find the one nearest you and join us.

    https://www.meetup.com/pro/clickhouse/

    May 19 is the next release webinar. If you haven’t joined one in the past, we share the highlights of the release – including live demos —, leave time for Q&A, and…generally…celebrate with the community. Register now!

    https://clickhouse.com/company/events/v22-5-release-webinar/
    ClickHouse | Meetup Pro - Meetup

    ClickHouse is on Meetup Pro with more than 441 members across 10 Meetups worldwide. Meetup Pro is the professional tool for organizing and communicating a network of users, partners, contributors and members.

  • https://t.me/clickhouse_ru
    None
  • https://t.me/clickhouse_ru
    да
  • https://t.me/clickhouse_ru
    а как конкретно "некорректно удалил партиции по фильтру" ?
  • https://t.me/clickhouse_ru
    так а почему вы считаете во внешнем запросе?
  • https://t.me/clickhouse_ru
    @ivan_blohin #268682 05:12 PM, 04 May 2022
    Всем привет!
    Кто подскажет, что за параметр такой: max_rows_to_read и насколько безопасно его увеличивать? Например, до миллиона строк.

    Читать то я умею: максимальное количество строчек, которое можно прочитать из таблицы при выполнении запроса

    Но мне не очень понятно, как оно работает. Если КХ кидает такую ошибку, то это запрос говно (раньше работал, но стало больше данны) или надо увеличивать max_rows_to_read?

    Code: 49. DB::Exception: Prefetch is valid in readUntilPosition: (while reading column sample_id): (while reading from part /var/lib/clickhouse/disks/object_storage/store/637/6374d274-b1a7-4b95-b705-830599538cee/all_2556_9214_36_9529/ from mark 2117 with max_rows_to_read = 8192): While executing MergeTreeInOrder. (LOGICAL_ERROR) (version 22.3.3.44 (official build))
  • https://t.me/clickhouse_ru
    Это low cardinality колонка?
  • https://t.me/clickhouse_ru
    LOGICAL_ERROR это баг КХ. Раньше это до апгрейда?
  • https://t.me/clickhouse_ru
    Вообще этот баг после обновы как-будто бы. Хостимся в облаке яндекса.
    Залив большого кол-ва данных пришелся практически на один день с апдейтом и происходило это без меня...
  • https://t.me/clickhouse_ru
    Не очень прошарен: sample_id UInt64,
  • https://t.me/clickhouse_ru
    так откатывайтесь
  • https://t.me/clickhouse_ru
    Хм, там вылезали баги похожие, нужно метод который кх для чтения поменять
  • https://t.me/clickhouse_ru
    Это можно как-то законфижить или нам лучше откатиться?
  • https://t.me/clickhouse_ru
    Можно на user level

    Настройка называется как то ...read_method...
  • @avialn #268691 05:35 PM, 04 May 2022
    откатиться не получается, вот эта настройка уже не дает
  • Ты клик на 150 миллиардов строк мигрировала за ночь?
  • @s4851 #268696 05:51 PM, 04 May 2022
    Добрый день!
    Вопрос: как можно определить таблицу на которую направлено matview если известна исходная таблица на которую повешена matview?
    Создаю matview
    CREATE MATERIALIZED VIEW test_sev.mv_test_tbl_last_last
    TO test_sev.test_tbl_last
    AS
    SELECT date, item_id, unit_id
    FROM test_sev.test_tbl

    Запросом
    select database,name,engine,dependencies_database,dependencies_table from system.tables where database='test_sev' and name ='test_tbl'
    получаю что от моей исходной таблицы test_tbl есть зависимое matview ['mv_test_tbl_last_last']
    А теперь как по этому mv_test_tbl_last_last получить TO таблицу(test_sev.test_tbl_last ) в которую оно пишет данные ?
  • Я не Анна, но хотел бы услышать подробности.
  • Да там мем небольшой случился: в ДЦ сломался "главный" роутер, сказали сети не будет ещё день. А у нас на клике критически важный функционал завязан, чуть ли не с боем вырвали диски из серверов и перенесли через кликхаус бекап
  • @olehdudkin #268699 06:00 PM, 04 May 2022
    А так и вижу толпа ДБА на толпу Админов с криками "Отдай диск, век воли не видать"
  • там, скорее, юридические моменты: ДЦ всеми силами старается сделать вид, что он защищен от внешнего доступа, потому абы кто не может получить оборудование
  • как вариант, достать из колонки create_table_query
  • @s4851 ↶ Reply to #268701 #268702 06:07 PM, 04 May 2022
    Да, пока вижу только этот вариант. Но это конечно так себе, регуляркой выдергивать из DDL.
    Я думал есть более прямая связь
  • + если не использовался TO, то и в engine_full эта же инфа должна быть
  • @s4851 ↶ Reply to #268703 #268704 06:10 PM, 04 May 2022
    У нас все с явным хранением(TO)
  • https://t.me/clickhouse_ru
    SHOW CREATE TABLE MV_NAME
  • @s4851 ↶ Reply to #268705 #268706 06:15 PM, 04 May 2022
    Это то же самое что system.tables.create_table_query. Те так же надо вытаскивать табличку TO из текста запроса?
  • https://t.me/clickhouse_ru
    @TotalAwesome #268710 09:16 PM, 04 May 2022
    Ребят привет. У нас на одной ноде память течет. 100+ гб объем на сервере, 22.3.3.44. Подскажите куда копать?
  • https://t.me/clickhouse_ru
    прекрасный график на котором абсолютно ничего нельзя понять
    ни осей, ни легенд.
  • https://t.me/clickhouse_ru
    я думаю линейный рост графика видно
  • https://t.me/clickhouse_ru
    ох, вы не представляете сколько сотен раз я видел графики с таким ростом и только 2 раза это был лик.
    пока не вижу шкалу в ГБ, это бессмысленно даже обсуждать
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @TotalAwesome #268716 09:35 PM, 04 May 2022
    зеленый только что рестартнули, по этому график остыл
  • https://t.me/clickhouse_ru
    @den_crane #268717 09:35 PM, 04 May 2022
    даже не знаю плакать или смеятся теперь, пойду чаю попью
  • https://t.me/clickhouse_ru
    @TotalAwesome #268718 09:36 PM, 04 May 2022
    как это понимать?
  • https://t.me/clickhouse_ru
    вы когда шкалу видите от 0 до 100, вы о чем думаете? от 0 до 100 , что является ценой деления?
  • https://t.me/clickhouse_ru
    @kemsa ↶ Reply to #268719 #268720 09:45 PM, 04 May 2022
    а что подразумеваются под memory usage спросить не хочется?)
  • https://t.me/clickhouse_ru
    это тоже, это будет след. вопрос. А вообще проще конечно спросить select из system таблиц
  • https://t.me/clickhouse_ru
    Gb :)
  • https://t.me/clickhouse_ru
    @TotalAwesome #268723 09:47 PM, 04 May 2022
    какой именно select сделать?
  • https://t.me/clickhouse_ru
    @den_crane #268724 09:49 PM, 04 May 2022
    ну и для информации сейчас есть два известных issue related похожих на утечки, одно про LiveView другое про kafka engine (но это особенности librdkafka).
  • https://t.me/clickhouse_ru
    select metric, formatReadableSize(value) from system.asynchronous_metrics where metric ilike '%mem%';

    select metric, formatReadableSize(max(value))
    from asynchronous_metric_log
    where event_date >=today() and metric ilike '%mem%'
    group by metric;
  • https://t.me/clickhouse_ru
    не, у нас rabbitMQ и LiveView вроде не применяем
  • 05 May 2022 (160 messages)
  • https://t.me/clickhouse_ru
    @VBelyshev #268728 06:44 AM, 05 May 2022
    Всем привет. Я правильно понял что асинхронная вставка работает только в HTTP протоколом, а значит оно не совместимо с Clickhouse-driver на python?
  • https://t.me/clickhouse_ru
    @ZLOdeii_ru #268729 06:47 AM, 05 May 2022
    Подскажите, в документации https://clickhouse.com/docs/ru/engines/table-engines/integrations/rabbitmq есть параметр rabbitmq_host_port, и логин, пароль и vhost нужно в конфиг сервера вписывать, а как быть если нужно сходить в несколько vhost и в несколько серверов? Вот тут https://github.com/ClickHouse/ClickHouse/blob/master/docs/en/engines/table-engines/integrations/rabbitmq.md есть вот такой еще прааметр (rabbitmq_address = 'amqp(s)://guest:guest@localhost/vhost'), но если я его использую получаю ошибку.

    DB::Exception: Empty address passed to function parseAddress. (BAD_ARGUMENTS) (version 22.2.2.1). (BAD_ARGUMENTS)
    RabbitMQ | ClickHouse Docs

    rabbitmq-engine}

  • https://t.me/clickhouse_ru
    @biochemicalcake #268730 07:08 AM, 05 May 2022
    Всем привет! подскажите пожалуйста, клик сегфолтит примерно раз 30 секунд и рестартует
    по стектрейсу нифига не понятно, но чукча джавист, чукча не плюсовик
    Куда копать, чтобы удовлетворить потребности клика?

    2022.05.05 07:07:14.768709 [ 231 ] {} <Fatal> BaseDaemon: ########################################
    2022.05.05 07:07:14.768746 [ 231 ] {} <Fatal> BaseDaemon: (version 21.10.2.15 (official build), build id: 6699B86599A2121E78E0D42DD67791ABD9AE5265) (from thread 207) (no query) Received signal Segmentation fault (11)
    2022.05.05 07:07:14.768763 [ 231 ] {} <Fatal> BaseDaemon: Address: 0x7f1def49cf98 Access: write. Attempted access has violated the permissions assigned to the memory area.
  • https://t.me/clickhouse_ru
    @biochemicalcake #268736 07:09 AM, 05 May 2022
    вот это очень смущает
    2022.05.05 07:07:14.768763 [ 231 ] {} <Fatal> BaseDaemon: Address: 0x7f1def49cf98 Access: write. Attempted access has violated the permissions assigned to the memory area.
  • @infisamk #268737 07:11 AM, 05 May 2022
    А сервисы, где можно выкладывать портянки логов, уже кончились в интернете?
  • https://t.me/clickhouse_ru
    Специально, Алексей сделал вот такую штуку https://pastila.nl/
  • https://t.me/clickhouse_ru
    @biochemicalcake #268739 07:14 AM, 05 May 2022
    сорри, поправлю
  • https://t.me/clickhouse_ru
    всё прочитал -- очень интересно, траги-комедия, можно еще логов? в телеграме увеличили размер пересылаемого файла до 2гб, надо было стрим прям сюда лить
  • https://t.me/clickhouse_ru
    @konnectrl #268741 07:15 AM, 05 May 2022
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    DB::PipelineExecutor::prepareProcessor
    и DB::PipelineExecutor::tryAddProcessorToStackIfUpdated

    48 штук вложенных это у вас какой то хитрый запрос
    но какой именно непонятно
    можете посмотреть [231] на пару строк выше
    там возможно мелькнет uuid для query_id
  • https://t.me/clickhouse_ru
    опытным путём выяснил что проблема в зафейленной мутации, очистил все мутации и полёт нормальный
  • https://t.me/clickhouse_ru
    а что значит зафейленная мутация ?
    какую ошибку в system.mutations показывало?
  • https://t.me/clickhouse_ru
    @biochemicalcake #268747 08:43 AM, 05 May 2022
    ошибок не было, просто is_done = 0
  • https://t.me/clickhouse_ru
    @biochemicalcake #268748 08:44 AM, 05 May 2022
    их для этой таблицы накопилось около 10к
  • https://t.me/clickhouse_ru
    ну в смысле не фейленная. а подвисшая...
  • https://t.me/clickhouse_ru
    @biochemicalcake #268750 08:44 AM, 05 May 2022
    там справочные данные, поэтому проще всё дропнуть и перекатить
  • https://t.me/clickhouse_ru
    10к мутаций это не фейл, это непонимание как мутации работают

    справочники через dictionary лучше держать, самое простое, если в память влазит
  • https://t.me/clickhouse_ru
    в чем именно там ошибка была - не понятно, по логам было видно что клик вычитывал мутации, пытался их применить и сваливался в сегфолт
  • https://t.me/clickhouse_ru
    они накопились за 2 недели
    по поводу словарей - согласен, но это легаси, которое поправить уже непросто
  • https://t.me/clickhouse_ru
    вот было бы конечно здорово из system.query_log
    вытащить как именно вы ALTER TABLE делали
  • https://t.me/clickhouse_ru
    @tamikso #268758 09:40 AM, 05 May 2022
    всем привет, подскажите пожлауйста, как я могу включить allow_experimental_window_functions = 1?
  • https://t.me/clickhouse_ru
    @mike_vz #268759 09:42 AM, 05 May 2022
    Коллеги, вопрос как из строки
    '{"a": "hello", "b": [-100, 200.0, 300]},{ "a": "world","b": [-500, 700.0, 300]}'
    получить все значения a то есть hello,world ?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    У вас JSON не валидный. Не хватает [] по краям
  • https://t.me/clickhouse_ru
    with '[{"a": "hello", "b": [-100, 200.0, 300]},{ "a": "world","b": [-500, 700.0, 300]}]' as arg
    select JSON_QUERY(arg,'$[*].a')
  • https://t.me/clickhouse_ru
    @mike_vz #268763 09:55 AM, 05 May 2022
    спасибо
  • @i_kid_you_not #268764 10:16 AM, 05 May 2022
    Добрый день! Нужна помощь в вычислении exponentialMovingAverage по сетке времени. Приведу пример, что я имею в виду. Есть временной ряд, timestamp -> value
    Нужно рассчитать ewma для конкретного ts, но в вычислении использовать только те timestamps, которые отстоят от конкретного ts на время dt.
    То есть,
    t1 -> v1
    t1 + dt/2 -> v2
    t1 + 2dt/3 -> v3
    t1 + dt -> v4
    t1 + 3dt/2 -> v5
    t1 +2dt -> v6
    Для t1+2dt ewma надо рассчитать пользуясь значениями t1+dt, t1, t1-dt ... . Возможно ли такое сделать в clickhouse?
  • https://t.me/clickhouse_ru
    > t1 + 2dt/3 -> v3

    Не лишнее тут?
  • https://t.me/clickhouse_ru
    @unamedrus #268766 10:19 AM, 05 May 2022
    Вроде шаг по 0.5dt
  • @i_kid_you_not #268767 10:19 AM, 05 May 2022
    не, как раз нет. его не нужно учитывать, но оно есть. Шаг произвольный. Равно как и dt хочется задавать как параметр во вьюхе, например.
  • @i_kid_you_not #268768 10:20 AM, 05 May 2022
    наблюдения не равномерно распределены сильно. Может быть и такое, что на t1-dt наблюдения нет, но как там добавить какую-то интерполяцию, я примерно понимаю.
  • https://t.me/clickhouse_ru
    @unamedrus #268769 10:21 AM, 05 May 2022
    А, эт просто пример данных.
    Мб такое можно
    exponentialMovingAverageIf(val, (t1(некое значение) - ts) % dt = 0)
  • @afonchikov #268770 10:22 AM, 05 May 2022
    Добрый день, подскажите кто сталкивался про это предупреждение

    Configuration property group.id is a consumer property and will be ignored by this producer instance

    вознкает когда пишешь в через таблицу с Engine Kafka, но параметр kafka_group_name является обязательным для движка.

    Есть ли способ избавиться от ворнинга, кроме как изменить уровень логирования?)
  • @i_kid_you_not #268771 10:24 AM, 05 May 2022
    да, сейчас попробую, спасибо.
  • если на уровне всего сервера, то лезть в конфиги
    если на уровне запроса, то SELECT .... SETTINGS allow_experimental_window_functions = 1
  • https://t.me/clickhouse_ru
    спасибо!
  • https://t.me/clickhouse_ru
    так вроде уже и без этого работают
  • и начиная с какой-то недавней версии, она по умолчанию включена
  • https://t.me/clickhouse_ru
    @MakeReady #268776 10:27 AM, 05 May 2022
    уже несколько месяцев как
  • https://t.me/clickhouse_ru
    @tamikso #268777 10:28 AM, 05 May 2022
    22.0.4
  • https://t.me/clickhouse_ru
    Вам тогда не надо, они без этой настройки уже работают в этой версии
  • @tiger_and_dragon #268779 10:29 AM, 05 May 2022
    Привет! Есть SELECT с таблиц (3 штуки), в которых хранится очень много данных. Если делать запрос в Merge таблицу (указывает на эти 3 таблицы), то запрос занимает 117 сек. А если делать через подзапрос в FROM таблицы через UNION ALL то получается 50 сек. Где можно об этом почитать, почему второй вариант работает быстрее больше чем в 2 раза?
  • текущие настройки сервера лежат в system.settings, там и эта настройка есть, можете удостовериться, что она по умолчанию включена
    (или выключена, если кто-то отключил :)
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @konnectrl #268782 10:31 AM, 05 May 2022
    Кхм
  • странно, судя по changelog, начиная с 21.9 она должна была иметь description "Obsolete setting"
    по крайней мере, так она выглядит у меня на 22.4
  • https://t.me/clickhouse_ru
    @tamikso #268784 10:35 AM, 05 May 2022
    🤷🏻‍♂️
  • в общем, пока разгадываете эту непонятку, можно попробовать вернуться к моему первому сообщению )
    я бы для начала попробовал с настройкой на уровне запроса
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @konnectrl #268787 10:36 AM, 05 May 2022
    Вообще такая настройка должна быть удалена
  • https://t.me/clickhouse_ru
    @konnectrl #268788 10:37 AM, 05 May 2022
    mark window functions as ready for general use by akuzm · Pull Request #27184 · ClickHouse/ClickHouse

    Changelog category (leave one): Improvement Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md): Mark window functions as ready for general use. Remove th...

  • https://t.me/clickhouse_ru
    @konnectrl #268789 10:37 AM, 05 May 2022
    Ну и её включили по умолчанию
  • https://t.me/clickhouse_ru
    @konnectrl #268790 10:37 AM, 05 May 2022
    с 21.9
  • https://t.me/clickhouse_ru
    скажите пожалуйста, а в запросе SELECT .... SETTINGS allow_experimental_window_functions = 1, после select что должно идти?
  • https://t.me/clickhouse_ru
    @konnectrl #268792 10:38 AM, 05 May 2022
    Ничего
  • https://t.me/clickhouse_ru
    @konnectrl #268793 10:38 AM, 05 May 2022
    SETTINGS указываете в конце запроса
  • она не удалена физически из system settings (смотрю на версиях 22.3 и 22.4), просто в description указано "Obsolete setting, does nothing"
  • https://t.me/clickhouse_ru
    @tamikso #268795 10:38 AM, 05 May 2022
    спасибо
  • ваш запрос, в котором вы хотите использовать любую оконную функцию
  • https://t.me/clickhouse_ru
    @tamikso #268797 10:39 AM, 05 May 2022
    понял, мерси
  • https://t.me/clickhouse_ru
    @yaturkeenzhenserheve #268798 10:39 AM, 05 May 2022
    Я снова пришел помощи просить. 😔
    Экспорт в клик CSV таблицы с double внутри (например "200,001") вываливается с ошибкой "garbage after Float64".
    То есть клик в колонку типа Float64 заливает только целую часть double, а дробную отбрасывает. Поменял уже сепаратор CSV файла на ; чтобы запятая нормально обрабатывалась - не помогает. Что можно сделать с этим? Может имеет смысл поменять формат колонки Клика?
  • https://t.me/clickhouse_ru
    вроде работает
  • https://t.me/clickhouse_ru
    кхм, может потому что Float ожидает точку, а у вас запятая
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @rasstr0en #268802 10:56 AM, 05 May 2022
    Чатик, подскажите пожалуйста, Connection request from old client /192.168.48.34:39450; will be dropped if server is in r-o mode. - зукиперы подняты, кх не стартует тк <Error> Application: Coordination::Exception: All connection tries failed while connecting to ZooKeeper. nodes: 192.168.48.196:2181, 192.168.48.90:2181, 192.168.48.117:2181
  • https://t.me/clickhouse_ru
    @rasstr0en #268803 10:57 AM, 05 May 2022
    зукиперы “дропают коннекшны”, кх говорият что подключиться к зк не могут, пингуются все, в логах зк коннекты от серверов кх видны как отстреливаются, рестартил всех, куда бы копать
  • https://t.me/clickhouse_ru
    Ну да, я понимаю. Потому и спросил, что делать с этим. Если формат колонки менять, то на какой тогда? Дробные числа же только в Float32/64, или ещё можно что то использовать?
  • https://t.me/clickhouse_ru
    Загрузить как строку, на ходу поменять запятую на точку
  • https://t.me/clickhouse_ru
    @yaturkeenzhenserheve #268806 11:00 AM, 05 May 2022
    Или CSVшку каким нибудь perl'ом обрабатывать сначала? Такое себе решение, конечно...
  • https://t.me/clickhouse_ru
    А можно пример кода? Это после INSERT уже делать или можно как то совместить?
  • https://t.me/clickhouse_ru
    Совместить

    create table csvtest(csv_id Int64, c1 String, c2 String) Engine=Memory;

    INSERT INTO csvtest SELECT 55,c1,c2 FROM input('c1 String, c2 String') format CSV a,b

    select * from csvtest

    SELECT *
    FROM csvtest

    Query id: 7f6453eb-59f6-4750-8391-435ff242b426

    ┌─csv_id─┬─c1─┬─c2─┐
    │ 55 │ a │ b │
    └────────┴────┴────┘
  • https://t.me/clickhouse_ru
    @yaturkeenzhenserheve #268809 11:09 AM, 05 May 2022
    О, круто! Спасибо огромное!
  • https://t.me/clickhouse_ru
    @mike_vz #268810 11:23 AM, 05 May 2022
    такое еще вопрос: как получить и возможно ли одним запросом значение name
    '[{"a": [{"name":"hello","id":120}], "b": [-100, 200.0, 300]},{ "a": [{"name":"word","id":200}],"b": [-500, 700.0, 300]}]'
    что бы получить hello и word массива a?
  • https://t.me/clickhouse_ru
    @Alexey_037 #268811 11:28 AM, 05 May 2022
    Чет какая то мешанина из json и массивов
  • https://t.me/clickhouse_ru
    select JSON_QUERY(arg,'$[*].a[*].name')
  • https://t.me/clickhouse_ru
    @NDSpasov #268813 11:28 AM, 05 May 2022
    Пользователи самый быстрый олтп базы привествую!))

    Будет круто если решим такую задачу)
    Есть две почти одинакоые таблицы (логи события пользователей) , но в одной из них не хватает 1% данных, с помощью какого запроса/функции могу вывести недостающие данные учитывая что возможно только поле timestamp отличается
  • https://t.me/clickhouse_ru
    Спасибо
  • https://t.me/clickhouse_ru
    Не в тот чатик ... Тут не OLTP
  • https://t.me/clickhouse_ru
    @NDSpasov #268816 11:29 AM, 05 May 2022
    ой olap конечно же)
  • https://t.me/clickhouse_ru
    "where ... not in" в помощь..
  • https://t.me/clickhouse_ru
    @Alexey_037 #268818 11:31 AM, 05 May 2022
    SELECT .. FROM a WHERE timestamp NOT IN (select timestamp from B). Навскидку так.
  • https://t.me/clickhouse_ru
    скажите пожалуйста, max() over () не реализована?
  • у меня на 22.3.2.1 работает
    но когда появилась, не знаю )
    какой у вас запрос?
  • https://t.me/clickhouse_ru
    у меня 22.0.4, возможно поэтому(
  • а на что ругается?
  • https://t.me/clickhouse_ru
    Code: 48, e.displayText() = DB::Exception: The support for window functions is experimental and will change in backwards-incompatible ways in the future releases. Set allow_experimental_window_functions = 1 to enable it. While processing 'max(pass) OVER ()' (version 21.7.2.7 (official build))
  • @1382671541 #268824 11:42 AM, 05 May 2022
    так ругается на то, что вы забыли добавить в конце SETTINGS
  • https://t.me/clickhouse_ru
    @tamikso #268825 11:42 AM, 05 May 2022
    а, все заработало, надо было условие settings за скобки вынести
  • https://t.me/clickhouse_ru
    @tamikso #268826 11:42 AM, 05 May 2022
    спасибо!
  • https://t.me/clickhouse_ru
    @804865419 #268828 11:55 AM, 05 May 2022
    Всем добра!
    Поменял пароль пользователя, через CREATE USER OR REPLACE. Дал доступ через GRANT ALL ON. Теперь данные запрашиваются, но при запросе данных с использование справочников Authentication failed: password is incorrect or there is no user with such name: while executing 'FUNCTION dictGet(
    Куда копать, подскажите, пожалуйста.
  • https://t.me/clickhouse_ru
    >у меня 22.0.4, возможно поэтому(
    >version 21.7.2.7
  • https://t.me/clickhouse_ru
    а от другого пользователя такие dictGet работают?
  • https://t.me/clickhouse_ru
    Теперь вообще ни от какого пользователя не работает. Специально создал пользователя, но и он тоже оказался не у дел. Даже default через clickhouse-client в консоли не может выполнять.
  • https://t.me/clickhouse_ru
    и как словарь создан?

    словарю нужен пользователь пароль чтобы ходить к таблицам которые источник словаря
  • https://t.me/clickhouse_ru
    Вроде дошло! Словарь создан как локальное подключение. Спасибо большое! Просто огромное! Не видел очевидного.(
  • https://t.me/clickhouse_ru
    @den_crane #268834 12:07 PM, 05 May 2022
    >Словарь создан как локальное подключение.
    >словарю нужен пользователь пароль чтобы ходить к таблицам которые источник словаря

    это нужно для security, иначе получается дыра, которая позволяет через словарь увидеть данные пользователю у которого нет прав, потому что в КХ нет понятия владельцев объектов
  • https://t.me/clickhouse_ru
    Копал в GRANT, но не накопал. Пока от вас не пришла подсказка.) Не туда копал. Еще раз благодарю!
  • https://t.me/clickhouse_ru
    @mike_vz #268836 12:28 PM, 05 May 2022
    Коллеги, вот такой еще вопрос
    есть таблица в CH
    date SKU
    2019-02-28 '["2072805", "2072805", "2055805"]'
    2019-02-28 '["1994388"]'

    каким запросом получить такую выборку

    2 2072805 2019-02-28
    1 2055805 2019-02-28
    1 1994388 2019-02-28
  • https://t.me/clickhouse_ru
    @mike_vz #268837 12:29 PM, 05 May 2022
    сложность для меня в том, что SKU - это строка надо получить все элементы и потом по ним сгруппировать
  • SELECT sku, count() FROM (
    select
    toDate('2019-02-28') as dte, extractAll('["2072805", "2072805", "2055805"]', '"(\\d*)"') as sku
    union all
    SELECT
    toDate('2019-02-28') as dte, extractAll('["1994388"]', '"(\\d*)"') as sku
    ) ARRAY JOIN sku
    GROUP BY
    sku
  • https://t.me/clickhouse_ru
    SELECT date, arrayJoin(JSONExtract(SKU,'Array(String)') AS g_SKU FROM t GROUP BY date
  • https://t.me/clickhouse_ru
    @BloodJazMan #268840 12:39 PM, 05 May 2022
    ой
  • https://t.me/clickhouse_ru
    @BloodJazMan #268841 12:40 PM, 05 May 2022
    arrayJoin вместо groupArray
  • https://t.me/clickhouse_ru
    @mike_vz #268842 12:41 PM, 05 May 2022
    спасибо
  • https://t.me/clickhouse_ru
    ой что-то голова не варит

    SELECT date, g_SKU, count() g_SKU_cnt FROM (
    SELECT date, arrayJoin(JSONExtract(SKU,'Array(String)') AS g_SKU FROM t
    ) GROUP BY date, g_SKU

    вот так скорее всего сработает
  • https://t.me/clickhouse_ru
    но хочется сразу предупредить, что если записей сотни миллионов, то будет довольно медленно по меркам clickhouse и памяти отожрет на группировку дофига...
  • https://t.me/clickhouse_ru
    Это я понимаю мне все равно надо где то это предрасчитать, что бы потом в куб положить
  • https://t.me/clickhouse_ru
    @maxpain #268846 12:46 PM, 05 May 2022
    Подскажите плиз, откуда я могу взять версию clickhouse, в которой есть этот MR?
    Или когда этот MR пойдёт в релиз?
  • https://t.me/clickhouse_ru
    create table nenavizhu_pisat_create_table(date Date, SKU String) Engine=Memory;
    insert into nenavizhu_pisat_create_table values('2019-02-28', '["2072805", "2072805", "2055805"]')
    insert into nenavizhu_pisat_create_table values('2019-02-28', '["1994388"]');

    SELECT date, arrayJoin(extractAll(SKU, '"(\\w+)"')) s, count() from nenavizhu_pisat_create_table group by date,s;
    ┌───────date─┬─s───────┬─count()─┐
    │ 2019-02-28 │ 2055805 │ 1 │
    │ 2019-02-28 │ 2072805 │ 2 │
    │ 2019-02-28 │ 1994388 │ 1 │
    └────────────┴─────────┴─────────┘
  • https://t.me/clickhouse_ru
    нажимаете на красный крестик напротив "fix tests" / ищете ClickHouse build check (actions) — 22/22 artifact gr... / нажимаете
    https://s3.amazonaws.com/clickhouse-builds/36756/76dd2409809dacd1ff9cb4b8e6069ffe4b8cac1e/clickhouse_build_check_(actions)/report.html

    качаете deb

    ng-13 relwithdebuginfo none bundled unsplitted success link 0:47:57
    clickhouse-client_22.5.1.1_all.deb
    clickhouse-common-static_22.5.1.1_amd64.deb
    clickhouse-server_22.5.1.1_all.deb
  • https://t.me/clickhouse_ru
    благодарю)
  • https://t.me/clickhouse_ru
    @apanasevich_d #268851 12:49 PM, 05 May 2022
    Есть вопрос по интеграции с Кафкой и MV в целом.

    Есть MV, которая разбирает данные в формате JSONAsString. В структуру этого json добавляют новое поле, соответственно, надо поменять MV. Но в DDL для MV отсутствует конструкция OR REPLACE.

    Можно только так:

    DROP TABLE my_mv;

    CREATE MATERIALIZED VIEW my_mv
    ...

    Как правильно поменять MV под новую структуру без потери данных?
  • https://t.me/clickhouse_ru
    можно через MATERIALIZED VIEW в TO SummingMergeTree что нибудь придумать такое чтобы нагрузку размазать...
  • https://t.me/clickhouse_ru
    @Alexey_037 #268853 12:50 PM, 05 May 2022
    with
    cte as (select dt, arrayJoin (SKU) as mas, uniqExact(SKU) as ar2 from test_tbl group by dt, SKU)
    select dt, mas, sum(ar2) from cte
    group by dt, mas
    Еще вариант )
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    SKU строка
  • https://t.me/clickhouse_ru
    и данные из таблицы с кафка-движком при этом не будут потеряны на время этого действия?
  • https://t.me/clickhouse_ru
    тут вот не могу сказать 100 точно
    https://kb.altinity.com/altinity-kb-integrations/altinity-kb-kafka/altinity-kb-kafka-main-parsing-loop/

    кафка никакого INSERT не делает, она читает топик и формируется INSERT блок в MV уже...
    и я не помню ошибки в MV они не дают librdkafka consumer читать топик, или чтение топика продолжается...

    если не дают, тогда все ок, старые сообщения пойдут по старому формату, новые по новому

    но вообще вам бы больше подошел подход чтения исходной строки как строка
    и набора полей которые через DEFAULT JSONExtract задаются...
  • https://t.me/clickhouse_ru
    не будут
  • https://t.me/clickhouse_ru
    @apanasevich_d #268859 01:05 PM, 05 May 2022
    спасибо за ответы!
  • https://t.me/clickhouse_ru
    DROP TABLE my_mv;

    CREATE MATERIALIZED VIEW my_mv

    тоже не теряет данные если MV только одно.
    когда вы дропаете MV консьюм из кафки прекращается
  • https://t.me/clickhouse_ru
    самый безопасный способ

    DETACH kafka_table
    2. ... any modifications of derived MV (CREATE may not work, because kafka table is detached, but ATTACH MATERIALIZED VIEW will)
    3. ATTACH kafka_table
  • https://t.me/clickhouse_ru
    @den_crane #268862 01:33 PM, 05 May 2022
    ALTER TABLE mv MODIFY QUERY SELECT a * 2 as a FROM src_table;
    отлично работает, его клаудфлер сделал для себя и у них на их нагрузках оно используется уже два года
    allow_experimental_alter_materialized_view_structure нужен по смешной причине, MODIFY QUERY не меняет структуру полей в самом MV, но это и не нужно
  • https://t.me/clickhouse_ru
    @mike_vz #268864 01:36 PM, 05 May 2022
    вот здесь как быть?
  • https://t.me/clickhouse_ru
    @mike_vz #268865 01:37 PM, 05 May 2022
    таблица уже до меня была создана
  • https://t.me/clickhouse_ru
    @mike_vz #268866 01:38 PM, 05 May 2022
    строка такая точно есть и она одна и значение в ней не null
  • https://t.me/clickhouse_ru
    так просто ifNull или assumeNotNull
  • https://t.me/clickhouse_ru
    @mike_vz #268868 01:41 PM, 05 May 2022
    да, спасибо
  • @msmk_cn #268871 02:13 PM, 05 May 2022
    Добрый день. Насколько сильно влияют характеристики диска на скорость выполнения SELECT запроса в clickhouse?

    Есть выбор между двумя дисками:
    1. 3500MB/s read, 42000 IOPS
    2. 6900MB/s read, 60000 IOPS

    Насколько сильно будут заметны различия?
  • https://t.me/clickhouse_ru
    если запрос выполняется 0.1 сек и читает из кеша ОС, то незаметны, если запрос выполняется 10минут и 99% читает с диска, то в два раза (6900/3500), 10 минут vs 5 минут
  • https://t.me/clickhouse_ru
    @massimovs #268873 02:53 PM, 05 May 2022
    А как сделать, чтобы результат вот такого запроса(~80s) кешировался и не высчитывался при повторном SELECT?

    SELECT *
    FROM tablename
    WHERE (sign_date >= '2020-06-01') AND (sign_date <= '2020-06-02') AND match(product_name, '(?i)(^|,|\\.|-|;|"|\\s)(pattern1|pattern2)(\\.|\\s|$|-|,|;|")')
  • https://t.me/clickhouse_ru
    Если я правильно помню, у кликхауса нет кеша результатов запросов
  • https://t.me/clickhouse_ru
    Хм. Но ведь справедливо бы его сделать, если запрос внутри одной партиции. Наверное. Но ладно, Спасибо!
  • https://t.me/clickhouse_ru
    кешируйте на стороне приложения
    и попробуйте поменять match на что нибудь по проще

    у вас в люм случае выбирается столбец
    и вместо SELECT *
    только те столбцы которые нужны

    а то у вас таблица читается вся за двое суток...
    и потом фильтруется по столбцу на CPU через match
  • https://t.me/clickhouse_ru
    chproxy это умеет
  • https://t.me/clickhouse_ru
    @stovm #268878 03:00 PM, 05 May 2022
    А есть где-то калькулятор для стоимости конфигурации Cloud версии ClickHouse? Хочу оценить немного возможности
  • https://t.me/clickhouse_ru
    про яндекс облако? а этих Cloud много
  • https://t.me/clickhouse_ru
    @stovm #268880 03:02 PM, 05 May 2022
    Желательно зарубежное
  • https://t.me/clickhouse_ru
    @stovm #268881 03:02 PM, 05 May 2022
    мне любого вендора решения под ключ
  • https://t.me/clickhouse_ru
    облако тиктока подойдет в сингапуре 🙂 ?
  • https://t.me/clickhouse_ru
    @stovm #268883 03:04 PM, 05 May 2022
    Я хочу сделать схему с льются данные time, key1, …, keyN, uniq_id, val в dev/null и Мат-вьюхи агрегирующие в AggregatingMergeTree
  • https://t.me/clickhouse_ru
    @massimovs #268884 03:14 PM, 05 May 2022
    Спасибо за ответы @den_crane @BloodJazMan
  • https://t.me/clickhouse_ru
    и в чем вопрос? в каком облаке такое можно?
  • https://t.me/clickhouse_ru
    ну нормальная схема. рабочая вполне
    сколько данных то сырых не сжатых такий планируете?
  • https://t.me/clickhouse_ru
    https://double.cloud/
    https://altinity.cloud/
    https://clickhouse.com/cloud/
    https://aiven.io/
  • https://t.me/clickhouse_ru
    @socketpair #268890 04:02 PM, 05 May 2022
    https://domclick.ru косплеят (импортозамещают) ClickHouse. Эта шутка за -200 -- баян ?
    Link

    Найти, купить, снять квартиру, комнату, дом и коммерческую недвижимость в Москве. Объявления о продаже и аренде недвижимости от партнеров и проверенных собственников. Бесплатное размещение объявлений.

  • https://t.me/clickhouse_ru
    Где косплеят, как косплеят?
  • https://t.me/clickhouse_ru
    Click = Клик
    House = дом
    же
  • https://t.me/clickhouse_ru
    @trinitroturbotron #268894 04:15 PM, 05 May 2022
    Шутка за минус стопицот, да.
  • https://t.me/clickhouse_ru
    Это понятно. Но боян ли ?
  • https://t.me/clickhouse_ru
    Это вообще про недвижимость
    Причем тут СУБД?

    попалась на тупую шутку
  • https://t.me/clickhouse_ru
    @stovm ↶ Reply to #268885 #268897 04:22 PM, 05 May 2022
    Да
  • https://t.me/clickhouse_ru
    @stovm ↶ Reply to #268887 #268898 04:22 PM, 05 May 2022
    Спасибо
  • @anttoon #268900 06:09 PM, 05 May 2022
    Подскажите пожалуйста почему так не получается дедуплицировать ?
    и какие варианты ?

    ```OPTIMIZE TABLE db_name.table_name PARTITION toYYYYMM(today()) DEDUPLICATE;```

    ошибка
    Code: 62. DB::Exception: Syntax error: failed at position 63 ('DEDUPLICATE'): DEDUPLICATE. Expected one of: FILTER, OVER, token, DoubleColon, MOD, DIV, NOT, BETWEEN, LIKE, ILIKE, NOT LIKE, NOT ILIKE, IN, NOT IN, GLOBAL IN, GLOBAL NOT IN, IS, AND, OR, QuestionMark. (SYNTAX_ERROR) (version 22.3.3.44 (official build))

    ключь партицирования YYYYMM
  • ```OPTIMIZE TABLE db_name.table_name PARTITION 202205 DEDUPLICATE;``` - норм отрабатывает
  • https://t.me/clickhouse_ru
    Ну вы должны указать имя партиции и указать модификатор FINAL. А можно не указывать.
  • https://t.me/clickhouse_ru
    PARTITION tuple(toYYYYMM(today()))
  • спасибо 🙏
  • 06 May 2022 (158 messages)
  • @allokdog #268907 06:20 AM, 06 May 2022
    Всем привет. Подскажите, как можно быстро скопировать данные из таблицы размером 100 гигов в другую таблицу (с той же структурой, только чуть меньше полей). Желательно обойтись без тулзов типа clickhouse-copier
  • https://t.me/clickhouse_ru
    Сделать такую же таблицу, Выполнить Detach table, скопировать ее данные в другое место, выполнить attach table и там и там. Потом удалить лишние колонки в новой таблице
  • https://t.me/clickhouse_ru
    и помнить о том что если таблица реплицируется то attach делать только на 1 реплике 🙂
  • https://t.me/clickhouse_ru
    Insert … select

    Новая таблица на том же сервере?
  • А вот по поводу репликации и аттач. Я так понял из документации что наоборот, аттач не реплицируется и его руками нужно делать на каждом сервере
  • https://t.me/clickhouse_ru
    @baltazorbest #268912 06:43 AM, 06 May 2022
    возможно сейчас да, из моего старого опыта (1 год назад или 2) вполне себе реплицировался
  • https://t.me/clickhouse_ru
    @baltazorbest #268913 06:43 AM, 06 May 2022
    по этому у меня тогда вышло х2 данных случайно))))
  • https://t.me/clickhouse_ru
    @imakaren #268917 09:48 AM, 06 May 2022
    Здравствуйте
    Подскажите, пожалуйста, есть ли способ переименовать колонку в таблице с движком ReplicatedMergeTree, а не добавлять новую и осуществлять манипуляции с данным
  • переименуйте на уровне view
  • https://t.me/clickhouse_ru
    @imakaren #268919 10:22 AM, 06 May 2022
    А для materialized view можно указывать поле партиционирования?
  • https://t.me/clickhouse_ru
    @mr_looser_01 #268920 10:31 AM, 06 May 2022
    всем привет.
    Помогите решить проблему
    Clickhouse 22.1.3.7
    Не понимаем даже куда копать
    Проблема на одной ноде кластера

    2022.05.06 13:01:07.671220 [ 49385 ] {} <Fatal> BaseDaemon: ########################################
    2022.05.06 13:01:07.671266 [ 49385 ] {} <Fatal> BaseDaemon: (version 22.1.3.7 (official build), build id: D11BC54A7FE20E44) (from thread 49384) (no query) Received signal Segmentation fault (11)
    2022.05.06 13:01:07.671292 [ 49385 ] {} <Fatal> BaseDaemon: Address: NULL pointer. Access: read. Address not mapped to object.
    2022.05.06 13:01:07.671316 [ 49385 ] {} <Fatal> BaseDaemon: Stack trace: 0x173f211f 0x173f4f21 0x173f5384 0x173f9700 0x7f5614c79ca2 0x7f5614c79eb3 0x7f56149a29fd
    2022.05.06 13:01:07.671360 [ 49385 ] {} <Fatal> BaseDaemon: 2. tcache_bin_flush_small @ 0x173f211f in /data/clickhouse/bin/22.1.3.7/clickhouse
    2022.05.06 13:01:07.671382 [ 49385 ] {} <Fatal> BaseDaemon: 3. ? @ 0x173f4f21 in /data/clickhouse/bin/22.1.3.7/clickhouse
    2022.05.06 13:01:07.671397 [ 49385 ] {} <Fatal> BaseDaemon: 4. ? @ 0x173f5384 in /data/clickhouse/bin/22.1.3.7/clickhouse
    2022.05.06 13:01:07.671412 [ 49385 ] {} <Fatal> BaseDaemon: 5. tsd_cleanup @ 0x173f9700 in /data/clickhouse/bin/22.1.3.7/clickhouse
    2022.05.06 13:01:07.671436 [ 49385 ] {} <Fatal> BaseDaemon: 6. __nptl_deallocate_tsd @ 0x7ca2 in /usr/lib64/libpthread-2.17.so
    2022.05.06 13:01:07.671464 [ 49385 ] {} <Fatal> BaseDaemon: 7. start_thread @ 0x7eb3 in /usr/lib64/libpthread-2.17.so
    2022.05.06 13:01:07.671484 [ 49385 ] {} <Fatal> BaseDaemon: 8. __clone @ 0xfe9fd in /usr/lib64/libc-2.17.so
    2022.05.06 13:01:07.857311 [ 49385 ] {} <Fatal> BaseDaemon: Calculated checksum of the binary: 38FD0E3944230CBD1E0C1028A9D68C83. There is no information about the reference checksum.
    2022.05.06 13:01:19.601666 [ 94333 ] {} <Fatal> Application: Child process was terminated by signal 11.
  • можете сделать MV с опцией TO, и отправлять данные в обычную таблицу со всеми фичами
  • https://t.me/clickhouse_ru
    если на одной - прогоняли memtest ? банально, но...
  • https://t.me/clickhouse_ru
    Спасибо
  • https://t.me/clickhouse_ru
    К сожалению, нет возможности прогнать тест памяти, это ВМ и у меня нет на ней полных прав
  • https://t.me/clickhouse_ru
    ну в вм бессмысленно прогонять.
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #268923 #268927 10:41 AM, 06 May 2022
    похоже, что clickhouse насилует память интенсивнее чем memtest. Тут на одной машинке 22.{2|3|4} крашатся на самых разных операциях, а memtest счастлив в полной мере.
  • https://t.me/clickhouse_ru
    @socketpair #268928 10:41 AM, 06 May 2022
    попробуйте смигрировать вм на другой хочт и попробовать ещё раз. Если перестало повторяться - то хост дефективный
  • https://t.me/clickhouse_ru
    НИЧОСИИ
  • https://t.me/clickhouse_ru
    NUMA ?
  • https://t.me/clickhouse_ru
    благодарю, попробую
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #268930 #268932 10:43 AM, 06 May 2022
    hetzner :)
  • https://t.me/clickhouse_ru
    ROWHAMMER ? мемтест вроде как не обнаруживает это
  • https://t.me/clickhouse_ru
    @socketpair #268934 10:43 AM, 06 May 2022
    а в хетзнере память без ECC ?!
  • https://t.me/clickhouse_ru
    Там и датацентры иной раз без серверов, чисто commodity hardware.
  • https://t.me/clickhouse_ru
    Atach table нет, не реплицируется
    Attach partition реплицируется. Если выполнить на двух репликах все удвоится
  • @olehdudkin #268939 11:25 AM, 06 May 2022
    спасибо
  • https://t.me/clickhouse_ru
    так rename column
  • https://t.me/clickhouse_ru
    @socketpair #268941 11:26 AM, 06 May 2022
    @den_crane подскажи пожалуйста как лимитировать потребление памяти ClickHouse на операциях типа select distinct ? понятно что через задействование диска, по-другому никак. swap не предлагать.
  • https://t.me/clickhouse_ru
    Конечно можно
  • https://t.me/clickhouse_ru
    И сколько строк в system.mutations where not is_done ?
  • https://t.me/clickhouse_ru
    А это не только для семейства движков MergeTree?
  • https://t.me/clickhouse_ru
    Distinct же можно переписать в groupby и выставить спиллинг external before groupby
  • https://t.me/clickhouse_ru
    о, интересно. по какому заклинанию искать доку на тему того как залимитировать group by ?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Это и есть это семейство. в семейство не входят log, memory, ...
  • https://t.me/clickhouse_ru
    max_bytes_before_external_group_by
  • https://t.me/clickhouse_ru
    а, да, извиняюсь, репликейтед туда тоже входит
  • https://t.me/clickhouse_ru
    Спасибо!
  • https://t.me/clickhouse_ru
    @imakaren #268952 11:34 AM, 06 May 2022
    просто при попытке написать запрос на rename column получаю такую ошибку
  • https://t.me/clickhouse_ru
    @imakaren #268953 11:35 AM, 06 May 2022
    версия 21.7
  • https://t.me/clickhouse_ru
    вам гадит jetbrains
  • https://t.me/clickhouse_ru
    @imakaren #268955 11:37 AM, 06 May 2022
    а.. понятно, спасибо за помощь!
  • https://t.me/clickhouse_ru
    @den_crane #268956 11:37 AM, 06 May 2022
    Datagrip пытается валидировать синтаксис sql используя знания о кх трехлетней давности.
  • https://t.me/clickhouse_ru
    @imakaren #268957 11:39 AM, 06 May 2022
    🤦🏻‍♀️ спасибо, буду знать
  • https://t.me/clickhouse_ru
    тогда действительно возможно проблема в железе. Я наступал в хецнере на бажный AMD CPU (или перегрев), купил 8 серверов, на одном КХ падал, заменил на другой такой же, все ОК.
  • https://t.me/clickhouse_ru
    @unet903 #268961 12:07 PM, 06 May 2022
    Всем привет как-то можно в CH схему данных экспортировать в JSON
  • https://t.me/clickhouse_ru
    @unet903 #268962 12:08 PM, 06 May 2022
    Требуется для yandex Data Stream
  • https://t.me/clickhouse_ru
    спасибо, буду пробовать запускать на других хостах
  • https://t.me/clickhouse_ru
    @eduha #268969 01:28 PM, 06 May 2022
    Здравствуйте!

    Подскажите пожалуйста, есть таблица ReplacingMergeTree, с колонкой-версией origin_event_version
    В таблице есть две записи с одинаковым ключем сортировки и одинаковым ключем партиционирования и одинаковой версией origin_event_version

    Должна ли удаляться дублирующая запись при этих данных?

    Делал OPTIMIZE TABLE numbers FINAL, дубликаты не удалились.

    Если делать SELECT FROM numbers FINAL, дубликата нет.

    Параметры таблицы:

    ENGINE=ReplacingMergeTree("origin_event_version") PARTITION BY toYYYYMMDD("datetime") ORDER BY ("datetime", "origin_id", "origin_event_uuid")
  • https://t.me/clickhouse_ru
    @eduha ↶ Reply to #268969 #268970 01:29 PM, 06 May 2022
    На скриншоте видно, что разница только в колонке id (не входит в ключ сортировки), и что _partition_id одинаковый
  • https://t.me/clickhouse_ru
    @mike_vz #268971 02:00 PM, 06 May 2022
    Добрый день,
    Такой вопрос меня волнует, возможно ли одним запросом собрать данные?
    Есть таблица с кодами датами в CH
    | code date
    | 1001983 2019-02-28
    | 1010053 2019-02-28

    где code может быть либо SKU либо группой SKU, но только либо тем, либо другим
    1001983 - SKU
    select ref from item where sku = 1001983
    1010053 - группа SKU
    select ref from item where group_sku = 1010053
    Нужно получить данные по ref из item по code таблицы

    В sm sql была возможность Outer apply ставить
  • optimize final выполнился?
  • https://t.me/clickhouse_ru
    @eduha ↶ Reply to #268972 #268973 02:06 PM, 06 May 2022
    да,

    OPTIMIZE TABLE numbers FINAL

    Query id: cde3c97b-42c8-4676-8970-63dade842192

    Ok.

    0 rows in set. Elapsed: 273.876 sec.
  • в system.merges закончился мердж?
  • https://t.me/clickhouse_ru
    @eduha ↶ Reply to #268974 #268975 02:07 PM, 06 May 2022
    да,

    SELECT *
    FROM system.merges

    Query id: 3d7765f0-2775-44ca-9fa4-050d5961f3b4

    Ok.

    0 rows in set. Elapsed: 0.006 sec.
  • в принципе не обязательно оставляет уникальные строки, ну попробуйте еще дедупликацию сделать optimize deuplicate
  • https://t.me/clickhouse_ru
    Добавьте в селект виртуальную колонку _part
  • https://t.me/clickhouse_ru
    @eduha ↶ Reply to #268978 #268979 02:15 PM, 06 May 2022
    парты разные
  • https://t.me/clickhouse_ru
    Final мержит до упора если есть возможность. Если парты очень большие и места на диске нет, то межр не случится
  • https://t.me/clickhouse_ru
    @eduha ↶ Reply to #268977 #268981 02:17 PM, 06 May 2022
    тоже пробовал,

    optimize table numbers final deduplicate by "datetime", "origin_id", "origin_event_uuid";

    не помогало
  • https://t.me/clickhouse_ru
    @eduha ↶ Reply to #268980 #268982 02:17 PM, 06 May 2022
    о, а вот тут точно. места на диске мало, не догадался посмотреть
  • https://t.me/clickhouse_ru
    @eduha #268983 02:17 PM, 06 May 2022
    спасибо, сейчас попробую подчистить если получится
  • https://t.me/clickhouse_ru
    Так проще размеры партов посмотреть и место на диске
  • https://t.me/clickhouse_ru
    @eduha #268985 02:27 PM, 06 May 2022
    парты по 200 мб максимум, а вот места на диске было меньше 100 мегабайт, прям впритык :/

    освободил 8 гб, запустил optimize еще раз.

    запрос отвалился в итоге по таймауту, но видимо всё еще маслает, в system.merges обновляются записи.

    но дубликаты пропали.

    Спасибо большое!
  • потому, что нельзя делать две агрегации в одном запросе

    Code: 184. DB::Exception: Aggregate function sum(avg_in_bps) is found inside another aggregate function in query: While processing sum(avg_in_bps). (ILLEGAL_AGGREGATION) (version 21.11.11.1 (official build))
  • https://t.me/clickhouse_ru
    @socketpair #268987 03:03 PM, 06 May 2022
    мая 06 17:17:08 localhost clickhouse-server[1478172]: 2022.05.06 17:17:08.250884 [ 1478172 ] {} <Fatal> Application: Child process was terminated by signal 9 (KILL). If it is not done by 'forcestop' command or manually, the possible cause is OOM Killer (see 'dmesg' and look at the '/var/log/kern.log' for the details).
    мая 06 17:17:08 localhost systemd[1]: clickhouse-server.service: Succeeded.
    мая 06 17:17:08 localhost systemd[1]: clickhouse-server.service: Consumed 2h 15min 18.911s CPU time.

    У кликхауса ПО ДЕФОЛТУ есть вачдог. ЗАЧЕМ?! если есть systemd...контейнеры тоже все умеют перезапускать.

    ну как-бы и ладно. но если чайлд процесс прибить SIGKILL (так делает earlyOOM) то родительский процесс выходит с кодом 0! ну и systemd конечно его не перезапускает. Ну зачем так. Разумеется мы отключили вачдог, но у нас есть куча клиентов на старых версиях нашей системы с кликхаусом. БОЛЬ.
  • https://t.me/clickhouse_ru
    @socketpair #268989 03:04 PM, 06 May 2022
    Вобще, выбор дефолтов у КХ доставляет в разных местах. Отлично что всё это настраиваемо (прям радует) но сами значения выбраны... крайне странно
  • https://t.me/clickhouse_ru
    я не об этом.

    представьте у вас на входе значения 1,2,3 вам нужен max -> 3 , а вы сначала считаете среднее, оно получается (1+2+3)/3 =2, а затем вы считаете max(2) и говорите что результат неверный.
  • хм… понял, спасибо большое
  • https://t.me/clickhouse_ru
    @socketpair #268992 03:05 PM, 06 May 2022
    и да, в 2022 году нет интеграции с Systemd. (мы запатчили) чтобы сообщеать системде, что КХ готов принимать запросы.
  • https://t.me/clickhouse_ru
    хахахахаха, ватчдог не перезапускает (его можно выключить, настройкой)
  • https://t.me/clickhouse_ru
    @socketpair #268994 03:05 PM, 06 May 2022
    да, патч состоит из 1 строки.
  • https://t.me/clickhouse_ru
    ну мы и выключили. Нафиг он вобще нужен по дефолту. кто такой дефолт придумал ?!
  • https://t.me/clickhouse_ru
    Алексей очень долго мечтал о возможности записать в лог КХ инфу о том что процесс КХ умер по причине ....
    и запилил ватчдог
  • https://t.me/clickhouse_ru
    отлично. зачем по дефолту сделал?
  • https://t.me/clickhouse_ru
    @socketpair #268998 03:08 PM, 06 May 2022
    да и максимум что можно узнать - это название сигнала.
  • https://t.me/clickhouse_ru
    @socketpair #268999 03:08 PM, 06 May 2022
    системда это пишет
  • https://t.me/clickhouse_ru
    Он очень странный человек, я согласен с ним на только 5% по любому вопросу (при этом я конформист), благодаря этому у нас есть КХ.
  • https://t.me/clickhouse_ru
    Такие баги кто-нибудь будет фиксить в КХ ? у меня ощущения что нет
  • https://t.me/clickhouse_ru
    @socketpair #269002 03:09 PM, 06 May 2022
    (если я зарепорчу)
  • но все равно не совсем понятно.. Я же персентиль считаю из набора уже агрегированных значений. Т.е. например из набора уже усредненных значений считается персентиль.
  • https://t.me/clickhouse_ru
    конечно это не будут фиксить
  • https://t.me/clickhouse_ru
    каеф
  • https://t.me/clickhouse_ru
    @socketpair #269006 03:10 PM, 06 May 2022
    как и интеграцию с системд. правильно?
  • https://t.me/clickhouse_ru
    @sibbarb #269007 03:10 PM, 06 May 2022
    Всем привет, подскажите плиз что делаю не так.
    Надо вставить csv
    Тестовый прмер , чтобы разобраться
    Вот такой файлик , и вот такая ошибка.
    Пост на стаковерлоу с такой же ошибкой не особо помог , там проблема была из за даты
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @socketpair #269011 03:10 PM, 06 May 2022
    потому что Яндексу это не нужно, а значит это не нужно никому.
  • https://t.me/clickhouse_ru
    @socketpair #269012 03:10 PM, 06 May 2022
    так?
  • https://t.me/clickhouse_ru
    @socketpair #269013 03:11 PM, 06 May 2022
    ну я просто чтобы понимать.
  • https://t.me/clickhouse_ru
    @socketpair #269014 03:11 PM, 06 May 2022
    никаких наездов
  • https://t.me/clickhouse_ru
    Доброго дня, Csv откройте, может там в первой строчке дата, а потом уже строки нормальные идут. Если так, то сотрите вобще эту дату.
  • https://t.me/clickhouse_ru
    @sibbarb #269016 03:13 PM, 06 May 2022
    нет там даты(
  • https://t.me/clickhouse_ru
    @eduha ↶ Reply to #269009 #269017 03:14 PM, 06 May 2022
    попробуйте запятые вместо ;
  • https://t.me/clickhouse_ru
    прикол конечно) но сработало
  • https://t.me/clickhouse_ru
    вы о чем? КХ в systemd работает, есть возможность настройкой выключить вотчдог, я выключил

    # cat /etc/default/clickhouse
    CLICKHOUSE_WATCHDOG_ENABLE=0
  • https://t.me/clickhouse_ru
    @eduha ↶ Reply to #269018 #269020 03:15 PM, 06 May 2022
    clickhouse-client --format_csv_delimiter=";" --query="...."
  • https://t.me/clickhouse_ru
    сейчас баг таки зарепорчу и всё станет понятно. делаю это в данный момент.
  • https://t.me/clickhouse_ru
    @eduha ↶ Reply to #269020 #269022 03:15 PM, 06 May 2022
    чтобы точки с запятыми приняло
  • https://t.me/clickhouse_ru
    вы даже не представляете настолько я далек от Яндекса, и как Яндекс далек от Кликхауза.
  • https://t.me/clickhouse_ru
    ладно. значит вопрос кому-то другому...
  • https://t.me/clickhouse_ru
    https://github.com/ClickHouse/ClickHouse/issues/8685 - этот баг репортил мой коллега ещё 2 года назад.
    Notify systemd about successful startup · Issue #8685 · ClickHouse/ClickHouse

    Use case I have a service which starts after clickhouse-server.service startup, but clickhouse-server.service considered started right after fork called by systemd (Type=simple). This causes connec...

  • https://t.me/clickhouse_ru
    @socketpair #269026 03:30 PM, 06 May 2022
    я только дополнил
  • https://t.me/clickhouse_ru
    С моей точки зрения это ну мелочь, чинится настройкой, фигня какая-то.

    (Я 8 часов в день чиню у клиентов крешлупы, неработающие мержи, застрявшие очереди репликации, лишние парты, потеряные парты, по локоть в коде и зукипере, с моей точки зрения КХ работает минуты 3 в год, остальное время лежит)
  • https://t.me/clickhouse_ru
    У нас КХ работает нормально в основном. но когда падает - падает громко
  • https://t.me/clickhouse_ru
    и настройкой не чинится. Костылями вокруг - да.
  • https://t.me/clickhouse_ru
    @socketpair #269030 03:37 PM, 06 May 2022
    У нас где-то 3К серверов с КХ (не кластер :), просто не связанные меж собой никак, разные базы) и все разные и нами не управляемые (входит в состав нашего коробочного продукта). И надо сделать чтобы оно ну хоть немного самолечилось
  • всего 8? маловато будет
  • https://t.me/clickhouse_ru
    у меня 2 работы, я больше 14 часов в день не могу работать.
  • https://t.me/clickhouse_ru
    @sach3000 #269034 03:48 PM, 06 May 2022
    остальные 16, мне кажется в этом чате
  • https://t.me/clickhouse_ru
    Это всё из-за старости, выгорание ;)
  • эка вы лихо 14 + 16 вывели в сутки. готовый проект менеджер!
  • https://t.me/clickhouse_ru
    нет, это к 8, с арифметикой норм )
  • https://t.me/clickhouse_ru
    @socketpair #269043 07:58 PM, 06 May 2022
    @den_crane Делаю всё по документации:

    https://clickhouse.com/docs/ru/sql-reference/statements/select/group-by/#select-group-by-in-external-memory
    Секция GROUP BY | ClickHouse Docs

    select-group-by-clause}

  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @socketpair #269045 07:59 PM, 06 May 2022
    А памяти не хватает.... ЧЯДНТ ?
  • https://t.me/clickhouse_ru
    @socketpair #269046 08:00 PM, 06 May 2022
    @bvt123 тот же вопрос
  • https://t.me/clickhouse_ru
    @konnectrl #269047 08:00 PM, 06 May 2022
    200 мегабайт ?
  • https://t.me/clickhouse_ru
    @konnectrl #269048 08:00 PM, 06 May 2022
    Издеваетесь ?
  • https://t.me/clickhouse_ru
    да.
  • https://t.me/clickhouse_ru
    нет.
  • https://t.me/clickhouse_ru
    @socketpair #269051 08:01 PM, 06 May 2022
    в чём проблема ? если слишком мало - то надо поправить доку.
  • https://t.me/clickhouse_ru
    @socketpair #269052 08:01 PM, 06 May 2022
    либо показать как надо считать если там не всё так тупо линейно
  • https://t.me/clickhouse_ru
    @socketpair #269053 08:01 PM, 06 May 2022
    я просто хотел проверить как работает. Где гарантии что сработает если будет 20 ГБ ?
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #269045 #269054 08:02 PM, 06 May 2022
    а где max_threads=1 ?
  • https://t.me/clickhouse_ru
    FAIL
  • https://t.me/clickhouse_ru
    @socketpair #269056 08:02 PM, 06 May 2022
    доку поправить бы. это не очевидно
  • https://t.me/clickhouse_ru
    это нормально. Иногда мне не хватает 2TB ОЗУ. Это ожидаемо. By design
  • https://t.me/clickhouse_ru
    @konnectrl #269058 08:03 PM, 06 May 2022
    В доке 10000000000, а у вас 100000000
  • https://t.me/clickhouse_ru
    дада. сарказм понят.
  • https://t.me/clickhouse_ru
    очень смешно, да
  • https://t.me/clickhouse_ru
    нет сарказма
  • https://t.me/clickhouse_ru
    ПОМОГЛО
  • https://t.me/clickhouse_ru
    @socketpair #269063 08:03 PM, 06 May 2022
    круть
  • https://t.me/clickhouse_ru
    @socketpair #269064 08:04 PM, 06 May 2022
    а нет. рано радовался
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @konnectrl #269066 08:04 PM, 06 May 2022
    В чём прикол, в доке по 10 нулей, у вас по 8
  • https://t.me/clickhouse_ru
    @socketpair #269067 08:04 PM, 06 May 2022
    что так, что так. на 99% падает
  • https://t.me/clickhouse_ru
    дак в доке наверно и таблица другая. У меня нет столько оперативы в этой инсталляции. И там число чисто для примера же.
  • https://t.me/clickhouse_ru
    @socketpair #269069 08:05 PM, 06 May 2022
    что за дурацкий стёб.
  • https://t.me/clickhouse_ru
    @konnectrl #269070 08:05 PM, 06 May 2022
    Блэт, ну тогда ставьте 10 и 20 мегабайт
  • https://t.me/clickhouse_ru
    @konnectrl #269071 08:05 PM, 06 May 2022
    Это же так же как 100 и 200
  • https://t.me/clickhouse_ru
    а сколько озу у сервера?
  • https://t.me/clickhouse_ru
    8 ГБ. можно КХ отдать не более 3
  • https://t.me/clickhouse_ru
    @socketpair #269074 08:06 PM, 06 May 2022
    вот только не надо вот мол про днищенское железо. это не моё.
  • https://t.me/clickhouse_ru
    @seeyouall #269075 08:07 PM, 06 May 2022
    Разработка и вежливое общение тоже
  • https://t.me/clickhouse_ru
    @socketpair #269076 08:07 PM, 06 May 2022
    с таким количество строк на таких серверах справляется только КХ.
  • https://t.me/clickhouse_ru
    ну поставьте max_memory_usage='3G', max_bytes_before_external_group_by='1G'
  • https://t.me/clickhouse_ru
    попробую. Но всёже есть какая-то методика расчёт чтобы не пальцем в небо? в доке напиано в 2 раза... а тут в три. может там константу какую прибавлять. Просто есть сервера где больше оперативы. 32 например.
  • https://t.me/clickhouse_ru
    @konnectrl #269079 08:10 PM, 06 May 2022
    Я не помню, чтобы были проблемы на нормальном количестве оперативной памяти при GROUP BY. И у нас примерно max_memory_usage / 2
  • https://t.me/clickhouse_ru
    нету. Изначально писалось под сервера у которых >64. У ydb вон вообще под железки от 100
  • https://t.me/clickhouse_ru
    @den_crane #269081 08:13 PM, 06 May 2022
    если оперативки мало то max_bytes_before_external_group_by надо делать маленьким, типа если 4 то 1.
    делается спиллинг на диск и группируются кусочки, но результат надо собрать в единое целое, и кусочки собираются в 256 бакетов, и 1/256 результата должна поместится в память
  • https://t.me/clickhouse_ru
    @den_crane #269082 08:14 PM, 06 May 2022
    256 бакетов это часть алоритма, изменить нельзя, это даже не хардкод велью
  • https://t.me/clickhouse_ru
    > типа если 4 то 1
    это соотношение max_memory_usage к max_bytes_before_external_group_by?

    1/256 от суммы размеров всех хешей от уникальных полей по которым делаем груп бай ?
  • https://t.me/clickhouse_ru
    @massimovs #269085 10:00 PM, 06 May 2022
    Полгода назад был доклад про то, что кафка как менеджер очередей для накопления пачки инсёртов более не нужна, и теперь можно напрямую инсёртить, не накапливая предварительно. Поправьте меня если ошибаюсь. Как проектировать новую систему с брокером очередей для больших инсертов или можно без этой прослойки
  • https://t.me/clickhouse_ru
    Можно ли вставлять в ClickHouse по одной строке?

    В этом видео мы рассмотрим производительность ClickHouse при вставке в асинхронном режиме и сравним его производительность с kittenhouse в режиме reverse proxy. Презентация Яндекса: https://www.youtube.com/watch?v=W6h3_xykd2Y&t=4940s Установка kittenhouse: 1. Установите Go по инструкциям из https://golang.org 2. Склонируйте мой форк kittenhouse: `git clone https://github.com/YuriyNasretdinov/kittenhouse.git` 3. Зайдите в директорию с kittenhouse и установите его: `cd kittenhouse; go install -v` 4. Собранный kittenhouse будет находиться в `~/go/bin/kittenhouse` Использование reverse proxy: Предположим, что ClickHouse находится на localhost на порту по умолчанию, тогда reverse proxy на порту 8124 (открытый в интернет по умолчанию (!)) будет запущен таким образом: `kittenhouse -u='' -g='' -p 8124 -reverse -ch-addr=127.0.0.1:8123` Использование утилиты inserter для бенчмарков: 1. Сохраните файл из Gist как inserter.go в отдельной директории: https://gist.github.com/YuriyNasretdinov/be43cf200c2c3a160f13e3b5d784aa3c 2. Соберите файл с помощью `go mod init; go get .; go install -v` 3. Утилита inserter будет находиться в `~/go/bin/inserter` 4. Подберите нужные Вам параметры (использовать ли ClickHouse, какой адрес сервера, сколько нужно сделать вставок, и т.д.) и запустите бенчмарк. Посмотрите видео, для того, чтобы увидеть пример использования. В конце работы выводится среднее количество запросов в секунду (QPS) во время работы утилиты.

  • 07 May 2022 (16 messages)
  • https://t.me/clickhouse_ru
    @DalilaDefi #269088 05:21 AM, 07 May 2022
    لا تدع أي شخص يخدعك من أموالك. تقرير إلى صندوق الوارد الخاص بي لإرشادات تعدين العملات المشفرة. شكرًا
  • https://t.me/clickhouse_ru
    @ivan_blohin #269089 08:47 AM, 07 May 2022
    Всем привет! Верно ли, что вместо null лучше хранить некое значение и потом выполнять nullIf()? Или без разницы и это чепуха?
    Движок MergeTree.
  • https://t.me/clickhouse_ru
    Лучше вместо нуллов хранить пустые строки, или нули, да
  • https://t.me/clickhouse_ru
    не чепуха, нуллы требуют отдельный битмап и соответственно оверхед. другое дело, насколько это критично? если не критично, то нуллы лучше в плане логической чистоты кода.
  • https://t.me/clickhouse_ru
    @ivan_blohin #269092 09:22 AM, 07 May 2022
    спасибо!
  • https://t.me/clickhouse_ru
    @adsrun #269096 02:33 PM, 07 May 2022
    Приветствую.
    В старую табличку добавил geo

    ALTER TABLE default.a_1_merge_summ_minuts ADD COLUMN geo LowCardinality(FixedString(2)) , MODIFY ORDER BY (days, sid, tid, geo)

    Появились первичные ключи.. которых не было

    ENGINE = SummingMergeTree
    PRIMARY KEY (days, sid, tid)
    ORDER BY (days, sid, tid, geo)

    Вставка сюда из MV ( добавлю geo ) будет не по первичному ключу а по ORDER BY ?

    В доках вроде описано, но хочу уточнить

    Работает только для таблиц семейства MergeTree (в том числе реплицированных). После выполнения запроса ключ сортировки таблицы заменяется на new_expression (выражение или кортеж выражений). Первичный ключ при этом остаётся прежним.

    Отличие заключается в том, что для таблиц SummingMergeTree при слиянии кусков данных ClickHouse все строки с одинаковым первичным ключом (точнее, с одинаковым ключом сортировки) заменяет на одну
  • https://t.me/clickhouse_ru
    @adsrun #269097 02:40 PM, 07 May 2022
    Я насколько понимаю старые данные останутся как есть схлопнуты, а новые инсерты уже пойдут по новому ORDER BY ?
  • https://t.me/clickhouse_ru
    первичных ключей нету в КХ

    PRIMARY KEY описывает поля которые входят в главный индекс

    ORDER BY описывает как строки в таблице отсортированы и что мержи будут использовать для схлапывания строк для SummingMergeTree
  • https://t.me/clickhouse_ru
    @den_crane #269099 02:43 PM, 07 May 2022
    >Я насколько понимаю старые данные останутся как есть схлопнуты, а новые инсерты уже пойдут по новому ORDER BY ?

    да. Абстрактно говоря старые данные тоже уже схлопнуты по новому ORDER BY, их не надо схлопывать, там одно и тоже значение geo (пустое / дефолтное)
  • https://t.me/clickhouse_ru
    @den_crane #269100 02:45 PM, 07 May 2022
    >Появились первичные ключи.. которых не было
    PRIMARY KEY был неявно, незримо, просто был равен ORDER BY, поэтому не присутсвовал в DDL таблицы
  • https://t.me/clickhouse_ru
    @adsrun ↶ Reply to #269099 #269101 02:46 PM, 07 May 2022
    Спасибо большое 🤘
  • https://t.me/clickhouse_ru
    @adsrun ↶ Reply to #269100 #269102 03:16 PM, 07 May 2022
    А как сейчас лучше сделать нужно дропнуть просто эту табличку ?
    CREATE MATERIALIZED VIEW default.MV_1_minuts TO default.a_1_merge_summ_minuts
    и новую создать с geo тут же ?
  • https://t.me/clickhouse_ru
    @adsrun #269103 03:17 PM, 07 May 2022
    Заливка раз в 10 минут вроде ни че не должно упасть после дропа по сути
  • https://t.me/clickhouse_ru
    @adsrun #269104 03:23 PM, 07 May 2022
    Или лучше сначала DETCH MV потом DROP и потом CREATE по новой или нет разницы ?
  • https://t.me/clickhouse_ru
    да drop/create
  • https://t.me/clickhouse_ru
    @adsrun ↶ Reply to #269105 #269106 03:28 PM, 07 May 2022
    👍
  • 08 May 2022 (29 messages)
  • https://t.me/clickhouse_ru
    @drookie #269112 01:04 PM, 08 May 2022
    снимите меня с ручничка пожалста, что CH не нравится ?

    Code: 69. DB::Exception: Decimal value is too big: 1 digits were read: 5e0. Expected to read decimal with scale 2 and precision 2: (at row 1)
    :
    Row 1:
    Column 0, name: dt, type: Date, parsed text: "<DOUBLE QUOTE>2022-04-08<DOUBLE QUOTE>"
    Column 1, name: ts, type: DateTime, parsed text: "<DOUBLE QUOTE>2022-04-08 16:31:43<DOUBLE QUOTE>"
    Column 2, name: child, type: UInt32, parsed text: "59555293"
    Column 3, name: zoneId, type: UInt32, parsed text: "0"
    Column 4, name: appId, type: String, parsed text: "<DOUBLE QUOTE>com.xiaomi.mipicks<DOUBLE QUOTE>"
    Column 5, name: appName, type: String, parsed text: "<DOUBLE QUOTE>GetApps<DOUBLE QUOTE>"
    Column 6, name: usageData, type: String, parsed text: "<DOUBLE QUOTE>{<DOUBLE QUOTE><DOUBLE QUOTE>secondUsageDay<DOUBLE QUOTE><DOUBLE QUOTE>:0,<DOUBLE QUOTE><DOUBLE QUOTE>secondUsageWeek<DOUBLE QUOTE><DOUBLE QUOTE>:0,<DOUBLE QUOTE><DOUBLE QUOTE>secondUsageMonth<DOUBLE QUOTE><DOUBLE QUOTE>:8}<DOUBLE QUOTE>"
    Column 7, name: usageTs, type: DateTime, parsed text: "<DOUBLE QUOTE>2022-04-08 19:32:42<DOUBLE QUOTE>"
    Column 8, name: tz, type: Decimal(2, 2), parsed text: "5.00"ERROR
    Code: 69. DB::Exception: Decimal value is too big: 1 digits were read: 5e0. Expected to read decimal with scale 2 and precision 2. (ARGUMENT_OUT_OF_BOUND) (version 22.5.1.1328 (official build))

    : While executing ParallelParsingBlockInputFormat: data for INSERT was parsed from stdin: (in query: INSERT INTO appUsageWithAggregated FORMAT CSV). (ARGUMENT_OUT_OF_BOUND)
  • https://t.me/clickhouse_ru
    @drookie #269113 01:05 PM, 08 May 2022
    5.00 же укладывается в Decimal(2,2)
  • https://t.me/clickhouse_ru
    @drookie #269114 01:05 PM, 08 May 2022
    смотрю на исключение как баран на новые ворота
  • https://t.me/clickhouse_ru
    MySQL - Value of 1 in DECIMAL(2, 2) is coming out as 0.99

    I am storing monetary values, and I read that FLOAT has internal rounding problems (although I can't say I ever noticed any problems) and that it is better to use DECIMAL. So I have been using DEC...

  • https://t.me/clickhouse_ru
    @seeyouall #269116 01:07 PM, 08 May 2022
    DECIMAL(2, 2) only allows a range of -0.99 to 0.99
  • https://t.me/clickhouse_ru
    @drookie #269117 01:08 PM, 08 May 2022
    jeez. thanks a lot.
  • @5392891681 #269118 03:31 PM, 08 May 2022
    🔥KAЧECTBEНHAЯ И ЭΦФEКTИBНАЯ PЕКЛ𝖠МА TELΕGRAM🔥

    ❗️НИКAKИⲬ 𝖮ГPАНИЧЕНИЙ ΠО КОHТEНТᎩ❗️
    BериՓ,шоп,cайт,про𝚎кт,нaрⲕ,peферaлы,ycлуги, ⲕаналы и т.д.

    ✔️ Софт coбcтⲃeннoй paзpaбoтκи
    ✔️ Aⲃтoотвeтчик c ⲃaшим т𝚎кстом
    ✔️ Cтaтиcтикa
    ✔️ Bысоⲕaя чacтoтноcть
    ✔️ Упоминaни𝚎 yчастникоⲃ чатa через @
    ✔️ Постоянно добавляются новые гpуппы, подбeрем под ⲃашy т𝚎мaтику
    ✔️ Πoмoгaeм cocтaвить и ⲕpacивo oфopмить oбъяⲃлени𝚎
    ✔️ Бoльшой опыт SMM
    ✔️ Γapaнт - любой пpoвeренный вpеменем

    ❗️НЕ ОTКЛАДЫBAЙ Р𝖠ЗВИТИE ƃИЗНΕСA - ЗАKАЗЫВАЙ РEKЛАМᎩ ΠPЯ𝖬О СЕЙЧ𝖠С❗️

    @bestarget⁠⁠⁠⁠⁠⁠⁠⁠⁠
  • @alexeysetevoi #269120 07:40 PM, 08 May 2022
    51704444 ./lib/clickhouse
    51701892 ./lib/clickhouse/data
    47826500 ./lib/clickhouse/data/system
    А нормально что таблица system ест 90% места?
  • https://t.me/clickhouse_ru
    @orantius #269121 07:41 PM, 08 May 2022
    не таблица а база
  • https://t.me/clickhouse_ru
    @orantius #269122 07:42 PM, 08 May 2022
    там пишутся всякие логи, если они не нужны, то можно попробовать этого не делать
  • https://t.me/clickhouse_ru
    @orantius #269123 07:43 PM, 08 May 2022
    или хранить их меньше
  • @alexeysetevoi #269124 07:43 PM, 08 May 2022
    Ну вот про логи не знал, в доке сей момент был?
  • https://t.me/clickhouse_ru
    Уже тоже в это наступил
  • О, Марк. Чем лечил?
  • https://t.me/clickhouse_ru
    Там есть опции по неписанию данных таблиц. @bvt123 подсказал
  • https://t.me/clickhouse_ru
    @socketpair #269128 07:45 PM, 08 May 2022
    На память не помню, триггерни в рабочее время - скину
  • Окей, если до вторника не найду, тригерну, но наводок в принципе хватает
  • https://t.me/clickhouse_ru
    @socketpair #269130 07:46 PM, 08 May 2022
    А ещё, старые удалить по названию нельзя. Ну тоесть можно, но там есть подвох что они могут назвать немного иначе (_1, _2 и тп). Поэтому надо скрипт который выбирает из system.parts все таблицы у кого бд=систем. И эти таблицы грохать
  • https://t.me/clickhouse_ru
    @socketpair #269131 07:46 PM, 08 May 2022
    Следующая грабля будет в том что там есть лимиты на обьем данных которые можно грохнуть
  • https://t.me/clickhouse_ru
    @socketpair #269132 07:47 PM, 08 May 2022
    Удобно
  • https://t.me/clickhouse_ru
    А мы знакомы ?
  • Ты был завсегдатаем Джобса, я тебя помню как нормального)
  • https://t.me/clickhouse_ru
    О_о. Но всеравно не понял кто ты
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Ага, спасибо. Это оно
  • https://t.me/clickhouse_ru
    @socketpair #269139 09:07 PM, 08 May 2022
    Но в это надо предварительно наступить прежде чем прочитать
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Равно как и с удалением больших таблиц а вернее партишенов
  • очень, шаловливые ручки случайно не натворят беды
  • 09 May 2022 (117 messages)
  • https://t.me/clickhouse_ru
    @krokwen #269144 12:34 AM, 09 May 2022
    доброго утра
    подскажите пожалуйста, лыжи не едут или я тупой
    что не так с exponentialMovingAverage?
    с over или без, она выдает значение очень далекое от среднего, и чем больше выставляю период - тем меньше это значение становится.
    к тому же, вне зависимости от периода, сохраняется прямая пропорция между значениями. если подобрать множители, то значения с разных периодов сходятся 1 в 1.

    чяднт?

    на всякий случай пошел в эксель, там по известной формуле ema=price*alpha + prev_ema*(1-alpha) при alpha=2/(1+N) - все выходит верно, я получаю средние значения около входных...

    или если есть у кого рецепт расчета EMA в кликхаусе, поделитесь плиз
  • https://t.me/clickhouse_ru
    входные данные: выборка time_open, close_price из серии минутрых свечей с биржи. в качестве значения time в ema скармливаю toUnixTimestamp(time_open)
  • https://t.me/clickhouse_ru
    А скрипты внезапно не отработают на куче инсталляций.
  • https://t.me/clickhouse_ru
    Это читали?
    https://altinity.com/blog/2020/3/9/real-time-moving-average-with-clickhouse-live-views
    Real-time Moving Average with ClickHouse Live Views

    In data analytics, analysts often use moving averages. Moving averages help to smooth data series as well as identify long term trends. New Live View tables start to bring real-time capabilities to ClickHouse.One of the applications of Live View tables is a calculation of real-time metrics on the event data. Readings from IoT sensors, price ticks from the stock exchange, or some metrics from your production servers are some of the examples of event data streams. ClickHouse can store all this data with a good compression ratio and excellent analytical query performance.

  • @5203586373 #269150 07:02 AM, 09 May 2022
    ❗️Срoчно требуютcя сoтpyдниⲕи на доcтaвку и oпeрaторы(удал𝚎ннo) ⲃ oнлайн магазин, любoй гоpод PФ ❗️
    @lavkaif_bot⁠⁠⁠⁠⁠⁠⁠⁠⁠
  • https://t.me/clickhouse_ru
    @StrangeBelk #269152 07:43 AM, 09 May 2022
    Всем привет. Подскажите, в чем может быть трабл. Пытаюсь через DB Viewer импортировать CSV, в котором есть две колонки типа Array. Одна с текстом, другая числовая. Текстовая все ок парсится, а вот с числовой засада.
    Тип столбца Array(Float32)
    Значение столбца:
    "[-0.0014539104938000324, -0.0005765507130586335, -0.0003760113346034566, -7.520226692069132e-05, -5.013484461379422e-05, -0.0026195456310707478, -0.0004261461792172508, -3.760113346034566e-05, -1.2533711153448555e-05]"'

    Подскажите плз в чем может быть трабл?
  • https://t.me/clickhouse_ru
    Пробовали Float64?
  • https://t.me/clickhouse_ru
    Неа. Ща попробую.
  • https://t.me/clickhouse_ru
    @StrangeBelk #269155 08:25 AM, 09 May 2022
    Нифига. Та же ошибка....

    `Code: 130. DB::ParsingException: Cannot read array from text, expected comma or end of array, found ''':
    Column 24, name: ColumnName, type: Array(Float64), parsed text: "["ERROR
    Code: 130. DB::ParsingException: Cannot read array from text, expected comma or end of array, found '''. (CANNOT_READ_ARRAY_FROM_TEXT) (version 22.3.3.44 (official build))

    : While executing TabSeparatedRowInputFormat: (at row 1)
    . (CANNOT_READ_ARRAY_FROM_TEXT) (version 22.3.3.44 (official build))
  • https://t.me/clickhouse_ru
    @s_nikolajus #269156 08:26 AM, 09 May 2022
    Привет! Есть ли у кого-то опыт отсылки метрик в Prometheus на основе sql-запроса в СH? Какие будут рекомендации?
  • https://t.me/clickhouse_ru
    @floxard #269157 09:04 AM, 09 May 2022
    Есть на гитхабе масса таких поделий, у меня есть питонячий говнокод в сотню с чем то строк делающий то же самое, не уверен что кому то нужный, но если вдруг тебе надо могу поделиться.
  • https://t.me/clickhouse_ru
    @floxard #269158 09:05 AM, 09 May 2022
    Основной рекомендацией от меня будет не пускать кого попало запросы туда писать, потому что так легко наплодить 100500 тяжелых запросов на мониторинг чтоб проду потом ресурса мало осталось
  • https://t.me/clickhouse_ru
    @nyoroon #269159 09:06 AM, 09 May 2022
    В кликхаусе есть predefined query, которые по http можно дёргать и получать ответ сразу в формате прометея
    https://clickhouse.com/docs/en/interfaces/http#predefined_http_interface
  • https://t.me/clickhouse_ru
    это не то. это простое скользящее среднее, а нужно именно экспоненциальное. там не просто сумма, а накапливающаяся сумма произведения нового значения на пропорциональный сглаживающий фактор и произведения предыдущего значения на обратно пропорциональный сглаживающий фактор.
    если совсем просто, то ema=p*a + ema*(1-a)
    сама по себе функция рекурсивная.

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

    в общем понятно.

    сделаю отдельный скрипт, которым буду перегенерять метрику и потом чекать в графане, неудобно ну и хер с ним...
  • https://t.me/clickhouse_ru
    соглашусь, неплохой вариант
    необходимость рестарта правда отталкивает очень
  • https://t.me/clickhouse_ru
    так он же явно пишет, что ему одинарная ковычка в конце не нравится
  • https://t.me/clickhouse_ru
    к тому же, то, что они там делают, делается одной строчкой с оконной функцией...
  • https://t.me/clickhouse_ru
    Да, видел, не совсем ещё понял что именно мне нужно, буду разбираться :) спасибо
  • https://t.me/clickhouse_ru
    ну возможно баг, покажите пример на https://github.com/ClickHouse/ClickHouse/issues
    без конкретики тяжело понять о чем вы.

    например over без order by считает за все окно,

    select x, sum(x) over () from (select number x from numbers(10));
    ┌─x─┬─sum(x) OVER ()─┐
    │ 0 │ 45 │
    │ 1 │ 45 │
    │ 2 │ 45 │
    │ 3 │ 45 │
    │ 4 │ 45 │
    │ 5 │ 45 │
    │ 6 │ 45 │
    │ 7 │ 45 │
    │ 8 │ 45 │
    │ 9 │ 45 │
    └───┴────────────────┘

    VS

    select x, sum(x) over (order by x) from (select number x from numbers(10));
    ┌─x─┬─sum(x) OVER (ORDER BY x ASC)─┐
    │ 0 │ 0 │
    │ 1 │ 1 │
    │ 2 │ 3 │
    │ 3 │ 6 │
    │ 4 │ 10 │
    │ 5 │ 15 │
    │ 6 │ 21 │
    │ 7 │ 28 │
    │ 8 │ 36 │
    │ 9 │ 45 │
    └───┴──────────────────────────────┘
    Issues · 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
    еще раз, sum, avg и прочие - простые аггрегирующие функции, они берут всю кучу и считают.
    exponentialMovingAverage должен высчитываться рекурсивно из последнего значения.

    https://clickhouse.com/docs/en/sql-reference/aggregate-functions/reference/exponentialmovingaverage/
  • https://t.me/clickhouse_ru
    я не про это. OVER без ORDER BY выдает КОНЕЧНЫЙ результат в каждой строке для всего окна , он всегда ОДИН/EДИН.
  • https://t.me/clickhouse_ru
    вот взять сейчас курс битка. 33к-35к. среднее щначение должно быть где то в этом диапазоне, вне зависимости от периода.

    эта же функция с периодами 9, 12, 26 может выдавать значения около 3000, 2000, 1000 соответственно. и это ни разу не среднее, даже если пробовать их перемнобать на период. и опять же, пропорция у всех этих значений вне зависимости от периода, сохраняется абсолютно прчмая, без какого либо сдвига, в котором заключается суть этого среднего значения
  • https://t.me/clickhouse_ru
    ?
    т.е. rows between X preceding and current row выдаст не тот набор, который выдаст вложенный селект с лимитом X?
  • https://t.me/clickhouse_ru
    в КХ не работают "выдаст вложенный селект с лимитом X"
  • https://t.me/clickhouse_ru
    размер окна exponentialMovingAverage задается в параметре exponentialMovingAverage(1)

    SELECT 1 AS value, number FROM numbers_mt(10);
    ┌─value─┬─number─┐
    │ 1 │ 0 │
    │ 1 │ 1 │
    │ 1 │ 2 │
    │ 1 │ 3 │
    │ 1 │ 4 │
    │ 1 │ 5 │
    │ 1 │ 6 │
    │ 1 │ 7 │
    │ 1 │ 8 │
    │ 1 │ 9 │
    └───────┴────────┘

    select value, time, exponentialMovingAverage(1)(value, time) over ()
    from ( SELECT 1 AS value, number time FROM numbers_mt(10) ) ;
    ┌─value─┬─time─┬─exponentialMovingAverage(1)(value, time) OVER ()─┐
    │ 1 │ 0 │ 0.9990234375 │
    │ 1 │ 1 │ 0.9990234375 │
    │ 1 │ 2 │ 0.9990234375 │
    │ 1 │ 3 │ 0.9990234375 │
    │ 1 │ 4 │ 0.9990234375 │
    │ 1 │ 5 │ 0.9990234375 │
    │ 1 │ 6 │ 0.9990234375 │
    │ 1 │ 7 │ 0.9990234375 │
    │ 1 │ 8 │ 0.9990234375 │
    │ 1 │ 9 │ 0.9990234375 │
    └───────┴──────┴──────────────────────────────────────────────────┘

    select value, time, exponentialMovingAverage(1)(value, time) over (order by time)
    from ( SELECT 1 AS value, number time FROM numbers_mt(10) ) ;
    ;
    ┌─value─┬─time─┬─exponentialMovingAverage(1)(value, time) OVER (ORDER BY time ASC)─┐
    │ 1 │ 0 │ 0.5 │
    │ 1 │ 1 │ 0.75 │
    │ 1 │ 2 │ 0.875 │
    │ 1 │ 3 │ 0.9375 │
    │ 1 │ 4 │ 0.96875 │
    │ 1 │ 5 │ 0.984375 │
    │ 1 │ 6 │ 0.9921875 │
    │ 1 │ 7 │ 0.99609375 │
    │ 1 │ 8 │ 0.998046875 │
    │ 1 │ 9 │ 0.9990234375 │
    └───────┴──────┴───────────────────────────────────────────────────────────────────┘
  • https://t.me/clickhouse_ru
    @den_crane #269178 12:58 PM, 09 May 2022
    SELECT
    value,
    time,
    exponentialMovingAverage(1)(value, time) OVER (ORDER BY time ASC)
    FROM
    (
    SELECT
    10 AS value,
    number AS time
    FROM numbers_mt(10)
    )

    Query id: 5a95b327-7e1a-42e8-960e-2cf9f5ea8788

    ┌─value─┬─time─┬─exponentialMovingAverage(1)(value, time) OVER (ORDER BY time ASC)─┐
    │ 10 │ 0 │ 5 │
    │ 10 │ 1 │ 7.5 │
    │ 10 │ 2 │ 8.75 │
    │ 10 │ 3 │ 9.375 │
    │ 10 │ 4 │ 9.6875 │
    │ 10 │ 5 │ 9.84375 │
    │ 10 │ 6 │ 9.921875 │
    │ 10 │ 7 │ 9.9609375 │
    │ 10 │ 8 │ 9.98046875 │
    │ 10 │ 9 │ 9.990234375 │
    └───────┴──────┴───────────────────────────────────────────────────────────────────┘
  • https://t.me/clickhouse_ru
    @krokwen #269179 01:00 PM, 09 May 2022
    хм.
    как вернусь домой скину свои примеры
  • https://t.me/clickhouse_ru
    @polunosnik #269181 01:55 PM, 09 May 2022
    Всем доброго, товарищи подскажите пожалуйста можно ли в кликхаус заполнить значение в колонке по условию. У меня есть таблица, я создаю представление с доп столбцом, в котором например вложен селект из другой таблицы, если значение есть в таблице значит ставим 1 иначе 0. Перерыл уже весь инет но.. Заранее спасибо
  • https://t.me/clickhouse_ru
    @5343019339 #269182 01:57 PM, 09 May 2022
    Мальчишкам приветик, остальным соболезную:)
  • https://t.me/clickhouse_ru
    @polunosnik #269183 01:59 PM, 09 May 2022
    CREATE MATERIALIZED VIEW default.fs ENGINE=MergeTree() ORDER BY (date, magazin) POPULATE AS(
    --DELETE VIEW default.fs
    --CREATE TABLE default.fs5 ENGINE=MergeTree() ORDER BY (date, magazin) AS
    (
    SELECT
    l.date as date,
    l.magazin as magazin,
    l.nomenklatura as nomenklatura,
    l.kolichestvo as kolichestvo,
    l.summa_so_skidkoy as summa_so_skidkoy,
    l.nom_gr as nom_gr,
    r.mg as mg,
    r.dir as dir,
    r.region as region,
    r.rayon as rayon,
    0 as is_utm



    FROM default.sales AS l

    LEFT OUTER JOIN default.mags AS r
    ON l.magazin = r.magazin


    )
    )

    Сейчас как то так, хотелось бы "0 as is_utm" заполнять сразу по условию 0 или 1 Пните в нужном направлении плиз
  • https://t.me/clickhouse_ru
    @dobratulin #269184 02:00 PM, 09 May 2022
    Коллеги, нет ли исследований по запуску ClickHouse в Docker? В плане бенчмарков и насколько это вообще хорошо в продакшне?
    Все что удалось накопать по теме из документации:
    https://clickhouse.com/docs/en/operations/performance-test/
    https://clickhouse.com/benchmark/hardware/
  • https://t.me/clickhouse_ru
    @maxpain #269185 02:01 PM, 09 May 2022
    Докер это обычные линукс-процессы
  • https://t.me/clickhouse_ru
    @maxpain #269186 02:01 PM, 09 May 2022
    Он никак не влияет на производительность)
  • https://t.me/clickhouse_ru
    Я просто по следам бенчмарков от PostgreSQL заинтересовался, там скорость могла падать в некоторых случаях
  • https://t.me/clickhouse_ru
    вот запрос
    SELECT time_ts,
    current_price,
    exponentialMovingAverage(9)(current_price, time_ts) OVER (ORDER BY "time_ts" ASC) AS ema
    FROM (
    SELECT time_ts,
    current_price
    FROM (
    SELECT toStartOfInterval(trade_ts, INTERVAL 1 MINUTE) AS time,
    toUnixTimestamp(time) AS time_ts,
    last_value(price) AS current_price
    FROM btb.BTCUSDT_trades
    WHERE trade_ts BETWEEN
    '2022-05-04' AND
    '2022-05-06'
    GROUP BY toStartOfInterval(trade_ts, INTERVAL 1 MINUTE)
    ORDER BY time ASC
    LIMIT 20
    )
    GROUP BY time_ts, current_price
    ORDER BY time_ts ASC
    )
    GROUP BY time_ts, current_price
    ORDER BY time_ts ASC;

    и даже если поубирать последние GROUP BY ,то результат не меняется
  • https://t.me/clickhouse_ru
    Вот не начинайте. Как минимум одна сеть готова просадить производительность до 2+ раз на мелких операциях.
    Если, конечно, не хост нетворк
  • https://t.me/clickhouse_ru
    и вот выхлоп
  • https://t.me/clickhouse_ru
    Пусть даже будет хост нетворк, для упрощения
  • https://t.me/clickhouse_ru
    Ну тогда я могу сравнить bare metal и виртуалку и сказать что оверхед на сеть в гипервизоре тоже ненулевой))
  • https://t.me/clickhouse_ru
    Вот хотелось бы глянуть на что-нибудь вроде Clickhouse in Ubuntu vs. Ubuntu + Clickhouse in Docker, например
  • https://t.me/clickhouse_ru
    @maxpain #269194 02:08 PM, 09 May 2022
    С host network будет тоже самое
  • https://t.me/clickhouse_ru
    @maxpain #269195 02:08 PM, 09 May 2022
    Можно даже не тестить)
  • https://t.me/clickhouse_ru
    @maxpain #269196 02:08 PM, 09 May 2022
    Естественно если не использовать, к примеру, gVisor
  • https://t.me/clickhouse_ru
    Ну вот хотелось бы посмотреть на бенчмарки конечно. Ладно, спасибо, тогда сам займусь бенчмарками
  • https://t.me/clickhouse_ru
    @sarirworld #269198 02:20 PM, 09 May 2022
    Здравствуйте, есть идеи?

    Таблица ReplacingMergeTree на 300млн с дублями по order by ключу,

    Когда запускается запрос через jenkins кидает memory limit, когда запускаю тот же запрос через ch-client на сервере c trace, то такой ошибки нет, по логам 8 ГБ ОЗУ и успешно выполняется

    Пользователь один и тот же, аргументы одни и те же

    CREATE TABLE db.table ENGINE = MergeTree ORDER BY col SETTINGS index_granularity = 8192 AS SELECT * FROM db.table2 FINAL;

    Ошибка
    DB::Exception: Memory limit (total) exceeded: would use 27.94 GiB (attempt to allocate chunk of 5242880 bytes), maximum: 27.94 GiB: While executing ReplacingSorted.
  • https://t.me/clickhouse_ru
    Там наверно если альпайн линукс с дебильным либси
  • https://t.me/clickhouse_ru
    Возможно, сейчас уже есть и на дебиане, помню что проблемы были, но не помню какой контейнер тестировали
  • https://t.me/clickhouse_ru
    есть ли вероятность что из-за разницы версий у clickhouse-client такое происходит?

    jenkins ch-client ClickHouse client version 21.6.5.37 (official build).
    сервер ch-client ClickHouse client version 21.11.4.14 (official build).
    версия ch 21.11.4
  • https://t.me/clickhouse_ru
    разница в итоговой таблице по строчкам почти в 2 раза
  • https://t.me/clickhouse_ru
    Ну может и не в этом дело, но лучше иметь клиент такой же версии либо более поздней
  • https://t.me/clickhouse_ru
    jenkins поддерживает 2 кх, которые занимаются немного разными вещами

    То есть более старый КХ будет работать норм с новым клиентом?
  • https://t.me/clickhouse_ru
    @konnectrl #269205 02:34 PM, 09 May 2022
    Я думаю, что вообще выполнять запросы через client не классно и это костыли
  • https://t.me/clickhouse_ru
    Какой путь лучше? Через баш же надо как-то запускать)
  • https://t.me/clickhouse_ru
    http интерфейс?
  • https://t.me/clickhouse_ru
    @konnectrl #269209 02:36 PM, 09 May 2022
    Я думаю, что любой интерфейс кликхауса, который просто принимает запрос
  • https://t.me/clickhouse_ru
    @konnectrl #269210 02:36 PM, 09 May 2022
    Будет работать без проблем
  • https://t.me/clickhouse_ru
    дак клиент и есть такой интерфейс)
  • /report
  • https://t.me/clickhouse_ru
    у вас минутные отсчеты, exponentialMovingAverage считает что current_price=0 в остальные 59 секунд

    добавьте intDiv(time_ts,60)

    exponentialMovingAverage(9)(current_price, intDiv(time_ts,60)) OVER (ORDER BY time_ts) AS ema
  • https://t.me/clickhouse_ru
    Удалось лишь 6 к 1. что-то у меня не так видимо. про 256 и бакеты если честно я тоже не очень понял. @bvt123 возможно и твоя помощь понадобится (в другом чате, если хочешь).

    Суть вопроса - как рассчитать max_memory_usage и max_bytes_before_external_group_by. В документации соотношение 2 к 1, мне приходится делать 6 к 1. Пикантности добавляет ещё и то, что допустим 600М ограничения по памяти выглядит как более гигабайта в топе (RSS). При этом в состоянии ничего не делания — 122 МБ в RSS. Абсолютно точно, конечно, рассчитывать не требуется. но погрешность в несколько раз не очень нравится. Почему это всё важно? скрипт переноса данных будет запускаться на большом количестве инсталляций с разным количеством оперативки.

    да, запрос вот такой (для устраниения дубликатов. Старая таблица была не RMT и ещё и с кривым партицированием):

    insert into log4 select * from webstat.log3 where day >= '2021-12-01' and day < '2022-01-01' group by *;
  • https://t.me/clickhouse_ru
    хм, это довольно неочевидно, но помогло.
    безмерно благодарствую)
    правда теперь еще одна непонятка появилась - он выходит на среднее значение довольно долго. при указаном количестве периодов 5 - на среднее вышел только где-то к 36-40 строке, а при указании максимального нужного мне количества периодов он на среднее вышел уже в 2хх строках.

    буду дальше тыкать. еще раз огромное спасибо!
  • https://t.me/clickhouse_ru
    не обижайтесь, но мне неинтересно обсуждать инсталляции с меньше чем 32ГБ. Это потеря времени. Я буду игнорировать вопросы.
  • https://t.me/clickhouse_ru
    ок. тоесть если мем_лимит допустим 16ГБ то правило 2 к 1 бетонно будет работать. верно ?
  • https://t.me/clickhouse_ru
    нет, это общая рекомендация, куча исключений.
  • https://t.me/clickhouse_ru
    сделать-то можно, просто инсерты будут работать примерно в 10тыс раз медленее.

    алиасы таблиц во вьюхах не поддерживаются, пишите имя таблицы в имени поля
  • https://t.me/clickhouse_ru
    тут все под словом докер понимают что-то свое. Например кубернетис это докер или уже нет?
  • https://t.me/clickhouse_ru
    Я имел в виду чистый докер, без кубернетиса, но если есть что-то с кубернетисом, то тоже здорово
  • https://t.me/clickhouse_ru
    минимальная разница, на уровне погрешности, никто не заморачивается измерениями.
  • https://t.me/clickhouse_ru
    @dobratulin #269226 06:07 PM, 09 May 2022
    Отлично, спасибо!
  • https://t.me/clickhouse_ru
    /report
  • https://t.me/clickhouse_ru
  • @congocongo #269232 06:58 PM, 09 May 2022
    /report
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @socketpair #269234 07:42 PM, 09 May 2022
    ЧЯДНТ ?
  • https://t.me/clickhouse_ru
    возможно версия КХ не поддерживает эту настройку
  • https://t.me/clickhouse_ru
    @socketpair #269236 07:43 PM, 09 May 2022
    клиент и сервер ТОЧНО одной и тойже версии
  • https://t.me/clickhouse_ru
    логично. но откуда тогда клиент об ней знает ?
  • https://t.me/clickhouse_ru
    @socketpair #269238 07:43 PM, 09 May 2022
    клиент и сервер 146% одной версии
  • https://t.me/clickhouse_ru
    @sarirworld #269239 07:43 PM, 09 May 2022
    что значит знает?
  • https://t.me/clickhouse_ru
    начало скриншота. набрал часть сеттинга и нажал таб
  • https://t.me/clickhouse_ru
    судя по всему это настройка для таблицы, а не глобально для запросов
  • https://t.me/clickhouse_ru
    @sarirworld #269242 07:45 PM, 09 May 2022
    отсюда и знает
  • https://t.me/clickhouse_ru
    @sarirworld #269243 07:45 PM, 09 May 2022
    нашел информацию про настройку в distributed table engine доке

    https://clickhouse.com/docs/en/engines/table-engines/special/distributed/
  • https://t.me/clickhouse_ru
    @sarirworld #269244 07:46 PM, 09 May 2022
    в разделе Distributed Settings

    Которые задаются в конце создания таблицы

    CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
    (
    name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
    name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
    ...
    ) ENGINE = Distributed(cluster, database, table[, sharding_key[, policy_name]])
    [SETTINGS name=value, ...]

    Могу ошибаться, понятия не имею как distributed работают, но выводы делаю из доки
  • https://t.me/clickhouse_ru
    @sarirworld #269245 07:47 PM, 09 May 2022
    Вот пример нашел еще
  • https://t.me/clickhouse_ru
    Спасибо. Я правильно понял, что на MergeTree это работать не будет ?
  • https://t.me/clickhouse_ru
    @sarirworld #269247 07:48 PM, 09 May 2022
    это настройка чисто для distributed

    Просто MergeTree движок не distributed, поэтому не будет работать
  • https://t.me/clickhouse_ru
    Будет
  • https://t.me/clickhouse_ru
    @sarirworld #269249 07:50 PM, 09 May 2022
    ну как я и сказал, понятия не имею как работают distributed) Сорри за дезинфу
  • https://t.me/clickhouse_ru
    @den_crane #269250 07:50 PM, 09 May 2022
    Есть два типа настроек. Settings и merge_tree settings
  • https://t.me/clickhouse_ru
    Хорошо. Где нужно писать min_compressed_bytes_to_fsync_after_merge ? в документации вообще этого нет
  • https://t.me/clickhouse_ru
    merge tree которые для всего семейства merge tree?
  • https://t.me/clickhouse_ru
    @den_crane #269253 07:51 PM, 09 May 2022
    Settings в сессии/профиле пользователя.
  • https://t.me/clickhouse_ru
    @den_crane #269254 07:52 PM, 09 May 2022
    Merge tree settings либо в секции merge tree либо в settings таблицы
  • https://t.me/clickhouse_ru
    ну нет. есть ещё глобальный конфиг сервера. некоторые опции можно только там.
  • https://t.me/clickhouse_ru
    Ну ок есть 27 типов настроек.
  • https://t.me/clickhouse_ru
    Вы посчитали или на память написали?)
  • https://t.me/clickhouse_ru
    Если это не сарказм, то таки жесть
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    и что. там про фсинк ни одной опции нет.
  • https://t.me/clickhouse_ru
    @socketpair #269261 07:58 PM, 09 May 2022
    (проверил, на мердж три позволяет задать у таблицы, но будет ли действовать ещё не проверил)
  • https://t.me/clickhouse_ru
    Вряд ли кх позволит абы что ставить в настройках
  • https://t.me/clickhouse_ru
    это был ещё один вопрос. не успел задать. может ли так случиться что опцию задал, а она не действует.
  • https://t.me/clickhouse_ru
    ну не дописали еще, у меня есть в плане на июль 2026 года
  • https://t.me/clickhouse_ru
    SELECT *
    FROM system.merge_tree_settings
    WHERE name LIKE '%fsync%'

    настройки уровня запроса/сессии
    select * from system.settings
  • https://t.me/clickhouse_ru
    Хорошое у вас планирование…. Долгосрочное….
  • https://t.me/clickhouse_ru
    Ух-ты. Спасибо!.
  • https://t.me/clickhouse_ru
    да, просто это мелкая настройка, для параноиков,

    вот например недокументированные geo функции

    readWKTMultiPolygon
    readWKTPolygon
    polygonsWithinSpherical
    polygonsDistanceSpherical
    polygonsDistanceCartesian
    polygonsEqualsCartesian
    polygonsSymDifferenceSpherical
    polygonsSymDifferenceCartesian
    polygonsIntersectionSpherical
    polygonsWithinCartesian
    polygonConvexHullCartesian
    polygonAreaSpherical
    polygonsUnionSpherical
    polygonPerimeterSpherical
    polygonsIntersectionCartesian
    polygonAreaCartesian
    polygonPerimeterCartesian
    polygonsUnionCartesian
    cosineDistance
    LinfDistance
    L2Distance
    L1Distance
    tupleHammingDistance
    LpDistance
    distanceL1
    distanceLp
    distanceL2
    distanceLinf

    и когда садишься дописать доку, выбираешь что важнее min_compressed_bytes_to_fsync_after_merge или cosineDistance
  • https://t.me/clickhouse_ru
    @socketpair #269269 08:12 PM, 09 May 2022
    ну как-бы не совсем для параноиков. Думаешь как я доехал до этого? у нас накручено оказалось dirty_writeback_centisecs. А потом от клиентов повалилось too many broken parts
  • https://t.me/clickhouse_ru
    Можно вспомнить maxIntersections, которой уже 4 года а все еще нет в доке
  • https://t.me/clickhouse_ru
    гыгы, я только вчера про нее узнал
  • https://t.me/clickhouse_ru
    @den_crane #269272 08:18 PM, 09 May 2022
    新增maxIntersections(left_col, right_col)聚合函数, 返回最大同时相交区间数[left; 对]. maxIntersectionsPosition(left, right) 函数返回 "maximum" 间隔的开始.
  • https://t.me/clickhouse_ru
    @den_crane #269273 08:18 PM, 09 May 2022
    все же поняно 😁
  • https://t.me/clickhouse_ru
    @unamedrus #269274 08:29 PM, 09 May 2022
    https://github.com/ClickHouse/ClickHouse/pull/2012

    А принесли не китайцы кстати, просто кое кто более ответственно относится к коллективному заполнению доки )
    add aggregate functions IntersectionsMax and IntersectionsMaxPos by furmur · Pull Request #2012 · ClickHouse/ClickHouse

    I hereby agree to the terms of the CLA available at: https://yandex.ru/legal/cla/?lang=en new aggregate functions: IntersectionsMax(start_column ,end_column) IntersectionsMaxPos(start_column ,end_c...

  • https://t.me/clickhouse_ru
    @graid2030 #269278 10:50 PM, 09 May 2022
    Не так давно слышал что есть(будет) какая-то возможность вставки в CH маленькими батчами без предварительной агрегации, не наведете где посмотреть как работает?
  • https://t.me/clickhouse_ru
    ClickHouse - ClickHouse v21.11 Released

    We’re continuing our monthly release cadence and blog updates at ClickHouse, Inc. The 21.11 release includes asynchronous inserts, interactive mode,…

  • https://t.me/clickhouse_ru
    Спасибо
  • 10 May 2022 (45 messages)
  • @renatko #269288 03:07 PM, 10 May 2022
    Всем привет!
    Кликхаус почему-то перестает обновлять внешние словари pgsql. Не очень понимаю где проблема, куда смотреть и как дебажить. В system.dictionaries в last_exception пусто

    версия 22.2.2.1
  • @renatko #269289 03:10 PM, 10 May 2022
    при этом вручную перезагрузка через system reload dictionary работает нормально. После ручного обновления в логе

    2022.05.09 20:36:07.680480 [ 4119654 ] {ef86321d-641f-40cd-9b3d-cc112fb24c09} <Trace> ExternalDictionariesLoader: Next update time for '4fd3cbad-43f5-4217-9903-bb18c1e731bd' was set to 2022-05-09 20:36:57

    но обновление в назначенное время не происходит
  • @renatko #269290 03:12 PM, 10 May 2022
    в clickhouse-server.err.log грепом по 4fd3cbad-43f5-4217-9903-bb18c1e731bd есть вот только такие записи, но они старые:

    2022.05.03 18:09:17.000341 [ 1349802 ] {} <Error> ExternalDictionariesLoader: Could not update external dictionary '4fd3cbad-43f5-4217-9903-bb18c1e731bd', leaving the previous version, next update is scheduled at 2022-05-03 18:17:14: Code: 614. DB::Exception: Try 1. Connection to 11.11.11.11:5432 failed: connection to server at "11.11.11.11", port 5432 failed: timeout expired
  • https://t.me/clickhouse_ru
    @gkate1984 #269292 03:34 PM, 10 May 2022
    Подскажите, пожалуйста, почему не удается установить пакеты clickhouse-server и clickhouse-client на ubuntu?
  • https://t.me/clickhouse_ru
    а если основной лог грепать по ExternalDictionariesLoader
  • Репозиторий не добавили
  • https://t.me/clickhouse_ru
    ls -l /etc/apt/sources.list.d/
  • Там пробел просто
  • @olehdudkin #269300 03:47 PM, 10 May 2022
    Почему только HTTP протокол?
  • \после tee убрать из команды и всё
  • https://t.me/clickhouse_ru
    там \ лишний, копи-пейст проблема
  • https://t.me/clickhouse_ru
    так реализовали. Все несколько сложнее и через TCP тоже можно, кажется go и python либы уже научились, и КХ клиенту тоже ключ добавят
  • @olehdudkin #269304 03:50 PM, 10 May 2022
    Меня интересует PHP. Что нужно чтобы произошло сие?
  • @olehdudkin #269305 03:53 PM, 10 May 2022
    Всмысле, что добавить нужно и куда
  • https://t.me/clickhouse_ru
    @gkate1984 #269306 03:53 PM, 10 May 2022
    Урра!! Спасибо, все получилось (я 3 часа искала ошибку ))))
  • https://t.me/clickhouse_ru
    так https://github.com/smi2/phpClickHouse 'port' => '8123', через HTTP работает. При чем тут TCP ?
  • только вот такое, но этот словарь действительно не скофигурирован:

    2022.05.10 02:04:35.404283 [ 4157305 ] {89a07857-74b5-4d57-b38b-9efadd6f2526} <Error> executeQuery: Code: 36. DB::Exception: Dictionary (`campaign_tracking`) not found. >
  • 0. DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, bool) @ 0xaebed1a in /usr/bin/clickhouse
    1. DB::Exception::Exception<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(int, std::__1::basic_string<char, std::__1::char_trai>
    2. DB::ExternalDictionariesLoader::resolveDictionaryName(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_st>
    3. DB::ExternalDictionariesLoader::getDictionary(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::shared_ptr<DB::C>
    4. DB::TreeOptimizer::apply(std::__1::shared_ptr<DB::IAST>&, DB::TreeRewriterResult&, std::__1::vector<DB::TableWithColumnNamesAndTypes, std::__1::allocator<DB::TableWit>
    5. DB::TreeRewriter::analyzeSelect(std::__1::shared_ptr<DB::IAST>&, DB::TreeRewriterResult&&, DB::SelectQueryOptions const&, std::__1::vector<DB::TableWithColumnNamesAnd>
    6. ? @ 0x14c5acf2 in /usr/bin/clickhouse
    7. DB::InterpreterSelectQuery::InterpreterSelectQuery(std::__1::shared_ptr<DB::IAST> const&, std::__1::shared_ptr<DB::Context const>, std::__1::optional<DB::Pipe>, std::>
    8. DB::InterpreterSelectQuery::InterpreterSelectQuery(std::__1::shared_ptr<DB::IAST> const&, std::__1::shared_ptr<DB::Context const>, DB::SelectQueryOptions const&, std:>
    9. DB::InterpreterSelectWithUnionQuery::buildCurrentChildInterpreter(std::__1::shared_ptr<DB::IAST> const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_>
    10. DB::InterpreterSelectWithUnionQuery::InterpreterSelectWithUnionQuery(std::__1::shared_ptr<DB::IAST> const&, std::__1::shared_ptr<DB::Context const>, DB::SelectQueryO>
    11. DB::InterpreterSelectWithUnionQuery::getSampleBlock(std::__1::shared_ptr<DB::IAST> const&, std::__1::shared_ptr<DB::Context const>, bool) @ 0x14cb1780 in /usr/bin/cl>
    12. DB::getDatabaseAndTablesWithColumns(std::__1::vector<DB::ASTTableExpression const*, std::__1::allocator<DB::ASTTableExpression const*> > const&, std::__1::shared_ptr>
    13. DB::JoinedTables::resolveTables() @ 0x14cdbedf in /usr/bin/clickhouse
    14. DB::InterpreterSelectQuery::InterpreterSelectQuery(std::__1::shared_ptr<DB::IAST> const&, std::__1::shared_ptr<DB::Context const>, std::__1::optional<DB::Pipe>, std:>
    15. DB::InterpreterSelectQuery::InterpreterSelectQuery(std::__1::shared_ptr<DB::IAST> const&, std::__1::shared_ptr<DB::Context const>, DB::SelectQueryOptions const&, std>
    16. DB::InterpreterSelectWithUnionQuery::buildCurrentChildInterpreter(std::__1::shared_ptr<DB::IAST> const&, std::__1::vector<std::__1::basic_string<char, std::__1::char>
    17. DB::InterpreterSelectWithUnionQuery::InterpreterSelectWithUnionQuery(std::__1::shared_ptr<DB::IAST> const&, std::__1::shared_ptr<DB::Context const>, DB::SelectQueryO>
    18. DB::InterpreterFactory::get(std::__1::shared_ptr<DB::IAST>&, std::__1::shared_ptr<DB::Context>, DB::SelectQueryOptions const&) @ 0x14bffa96 in /usr/bin/clickhouse
    19. ? @ 0x14ee8750 in /usr/bin/clickhouse
    20. DB::executeQuery(DB::ReadBuffer&, DB::WriteBuffer&, bool, std::__1::shared_ptr<DB::Context>, std::__1::function<void (std::__1::basic_string<char, std::__1::char_tra>
    21. DB::HTTPHandler::processQuery(DB::HTTPServerRequest&, DB::HTMLForm&, DB::HTTPServerResponse&, DB::HTTPHandler::Output&, std::__1::optional<DB::CurrentThread::QuerySc>
    22. DB::HTTPHandler::handleRequest(DB::HTTPServerRequest&, DB::HTTPServerResponse&) @ 0x157a8a52 in /usr/bin/clickhouse
    23. DB::HTTPServerConnection::run() @ 0x15a0d67b in /usr/bin/clickhouse
    24. Poco::Net::TCPServerConnection::start() @ 0x18667a0f in /usr/bin/clickhouse
    25. Poco::Net::TCPServerDispatcher::run() @ 0x18669e61 in /usr/bin/clickhouse
    26. Poco::PooledThread::run() @ 0x1881a549 in /usr/bin/clickhouse
    27. Poco::ThreadImpl::runnableEntry(void*) @ 0x18817c40 in /usr/bin/clickhouse
    28. ? @ 0x7f4bfdf30609 in ?
    29. __clone @ 0x7f4bfde55163 in ?
  • https://t.me/clickhouse_ru
    @gkate1984 #269310 04:06 PM, 10 May 2022
    А как вернуться в clickhouse если в терминале меня из нее вышибло (там мне ошибку выдало и выкинуло)?
  • вы сейчас в кх клиенте
    чтобы выйти из него сделайте exit;
  • https://t.me/clickhouse_ru
    @gkate1984 #269312 04:08 PM, 10 May 2022
    👍
  • Мы используем форк поддерживающий TCP протокол
  • https://t.me/clickhouse_ru
    @gkate1984 #269317 04:41 PM, 10 May 2022
    почему на удается войти в директорию clickhouse-server и посмотреть конфигурационные файлы, такие как config.xml например?
  • https://t.me/clickhouse_ru
    Тут надо бы основы работы в шелле
  • https://t.me/clickhouse_ru
    @socketpair #269319 04:42 PM, 10 May 2022
    Попробуйте ls /etc/clickhouse-server
  • https://t.me/clickhouse_ru
    @socketpair #269320 04:42 PM, 10 May 2022
    Какая-то дичь на скриншоте в плане вводимых команд
  • Попробуйте sudo cd /etc/clickhouse-server
  • https://t.me/clickhouse_ru
    🤦‍♂
  • https://t.me/clickhouse_ru
    @socketpair #269323 04:45 PM, 10 May 2022
    Сработает, наверно. Но смысла ноль
  • Видимо у пользователя kate нет прав доступа на папку /etc/clickhouse-server. Через sudo все должно получиться.
  • https://t.me/clickhouse_ru
    Пожалуйста посчитайте гайды по linux, а именно об устройстве папок, работы с терминалом
  • https://t.me/clickhouse_ru
    @sakutepov #269327 06:16 PM, 10 May 2022
    Всем привет
    Вопрос к пользователям MaterializedPostgreSQL. Как вы боритесь с разрастанием pg_wal? Они за неделю сожрали 2 tb(
  • @festive_fermat #269328 06:18 PM, 10 May 2022
    Йоу! Есть таблица с партициями по дате PARTITION BY toYYYYMMDD(date). Я хочу продублировать данные за день в этой таблице в другой день, можно ли это сделать, используя инструменты над партициями? (freeze, alter table update in partition, etc)
  • https://t.me/clickhouse_ru
    нельзя т.к. надо данные менять, только insert into ... select
  • @festive_fermat #269330 06:20 PM, 10 May 2022
    спасибо, есть другие мнения?)
  • https://t.me/clickhouse_ru
    @nyoroon #269331 06:23 PM, 10 May 2022
    через alter update нельзя изменять ключ партиции
  • @olehdudkin #269332 06:24 PM, 10 May 2022
    Не вижу проблемы с инсертом
  • @olehdudkin #269333 06:25 PM, 10 May 2022
    у вас же в партиции данные есть, даже если вы обманите кх - и подсунете дубликат партиции с другим именем
  • @olehdudkin #269334 06:25 PM, 10 May 2022
    данные все равно будут за тот деть, что вы скопировали
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @edyya ↶ Reply to #269335 #269336 06:31 PM, 10 May 2022
    если напрямую не выйдет, можно придумать таблицу-“посредника”
  • https://t.me/clickhouse_ru
    @Krisantis #269337 06:43 PM, 10 May 2022
    Подскажите, почему не рабоатет ни одно из выражений? Проблема в версии? Не могу скастовать строку 'true' к типу bool
  • SELECT CAST('true', 'Bool')

    Query id: 849255fa-0fb9-415a-91ec-d75ee0bbe678

    ┌─CAST('true', 'Bool')─┐
    │ true │
    └──────────────────────┘

    1 rows in set. Elapsed: 0.001 sec.

    38604531e29e :) select version()

    SELECT version()

    Query id: 3fd6296d-fd25-4321-a715-73eca4865c28

    ┌─version()─┐
    │ 22.1.3.7 │
    └───────────┘

    1 rows in set. Elapsed: 0.001 sec.

    38604531e29e :)
  • https://t.me/clickhouse_ru
    Значит проблема в версии, большое спасибо
  • 11 May 2022 (47 messages)
  • https://t.me/clickhouse_ru
    @yuriy_kuchits #269343 06:39 AM, 11 May 2022
    Привет! подскажите а гибридное хранение уже можно использовать для продакшена?
  • https://t.me/clickhouse_ru
    https://highload.ru/foundation/2022/abstracts/8144
    Уж не знаю, будет ли там про бенчмарки
  • https://t.me/clickhouse_ru
    Огонь! Постараюсь найти способ посмотреть
  • https://t.me/clickhouse_ru
    Есть бесплатная трансляция главного зала
  • https://t.me/clickhouse_ru
    Супер, сегодня вечером разузнаю
  • https://t.me/clickhouse_ru
    @111254034 #269348 08:03 AM, 11 May 2022
    Всем привет, подскажите, пожалуйста, не нарушу ли я правила группы, если запощу вакансию по ClickHouse в нашу команду. Работаю в Aiven, сравнительно молодой и перспективный стартап, по последней оценке $2B, офисы по всему миру. Мы любим и вкладываемся в opensource. Ищем талантов, прелагаем relocation.
  • @softbot_xxl #269349 08:11 AM, 11 May 2022
    Постите если КХ, это нормально.
  • https://t.me/clickhouse_ru
    С тегом jobs
  • https://t.me/clickhouse_ru
    @forward32 #269352 08:39 AM, 11 May 2022
    Привет, уже 100 раз спрашивали, но может что изменилось в 2022 - какой самый простой способ посчитать totalы в запросе, в котором есть лимит? Не хочется делать доп. запрос, при этом не хочется привязываться к формату (with total), группировкам (with rollup) и в идеале оконкам (count over) из-за ньюансов каждого подхода...
  • https://t.me/clickhouse_ru
    @Alexey_Cald #269353 08:58 AM, 11 May 2022
    Всем привет
    У меня вопрос, вот есть одна табличка (скажем табличка А) типа MergeTree и MV типа ReplacingMergeTree с TO syntax (скажем табличка B) из таблицы А
    Я хочу добавить одну колонку для этих таблиц. Нужно ли мне как-то фризить инсерты в табличку А, если у меня в онлайн режиме падают туда данные и не хотелось бы их потерять в табличке В?
  • https://t.me/clickhouse_ru
    @111254034 #269354 08:59 AM, 11 May 2022
    Спасибо.
    https://apply.workable.com/aiven/j/C297560743/ - позиция в нашу команду по разработке и поддержке ClickHouse в Aiven (по вопросам технического плана можно обращаться ко мне напрямую, касательно рекрутмента @Ludmila_Lumi)
    https://apply.workable.com/aiven/j/F0FB31090E/ - позиция в Open Source офис.
    #jobs
    Senior Backend Engineer (ClickHouse), Helsinki, Berlin, Europe - Aiven

    Aiven’s exceptional growth is a testament to our ambition in becoming the global category leader in managed cloud data infrastructure. Since its inception six years ago, Aiven’s mission has been to enable customers to drive business results from open-s...

  • https://t.me/clickhouse_ru
    @cmbcksrl #269355 09:07 AM, 11 May 2022
    добрый день
    подскажите, пожалуйста, есть ли возможность выгрузить полностью в виде pdf документа Altinity knowledge base?
  • https://t.me/clickhouse_ru
    @orline09 #269357 10:00 AM, 11 May 2022
    Joined.
  • @DeeDoubleYouEitch #269360 10:57 AM, 11 May 2022
    Как в ClickHouse такую строку '\u0411\u0438-\u0431\u0438' преобразовать в utf-8?
  • https://t.me/clickhouse_ru
    SELECT toValidUTF8('\u0411\u0438-\u0431\u0438')

    https://clickhouse.com/docs/en/sql-reference/functions/string-functions/
    Functions for Working with Strings | ClickHouse Docs

    functions-for-working-with-strings}

  • 80 lvl Clickhouse ?
    ))
  • https://t.me/clickhouse_ru
    Какого-то определенного ? Может имя есть его, ник в телеграмме или страничка в вк.
  • Эта функция для таких строк: '\x61\xF0\x80\x80\x80b'
    На моем примере может только показаться, что она работает, потому что некоторые способы вывода результата сами преобразуют такие строки в utf-8, а мне надо в базе преобразование сделать, как на скрине не подходит
  • https://t.me/clickhouse_ru
    @Alexey_037 #269367 11:11 AM, 11 May 2022
    Ну тогда нужен пример, когда функция покажет кривизну, и оттуда уже думать )
  • @DeeDoubleYouEitch #269368 11:13 AM, 11 May 2022
    Вот пример в Dbeaver, который не преобразует результат запроса в utf-8. То есть эта функция с такими строками ничего не делает
  • Есть такой тупой вариант:
    select visitParamExtractString('{"abc":"\u0411\u0438-\u0431\u0438"}', 'abc');
  • Круто, спасибо )) Главное, что работает
  • https://t.me/clickhouse_ru
    @111093495 #269372 01:21 PM, 11 May 2022
    подскажите пожалуйста, пытаюсь по доке тестануть JSON тип, но не могу создать таблицу тк ругается на EPHEMERAL:

    04c7175a1aa7 🙂 set allow_experimental_object_type = 1;

    SET allow_experimental_object_type = 1

    Query id: 20931360-f794-42b7-b874-34ab8e172577

    Connecting to localhost:9003 as user warehouse.
    Connected to ClickHouse server version 22.3.3 revision 54455.

    ClickHouse client version is older than ClickHouse server. It may lack support for new features.

    Ok.

    0 rows in set. Elapsed: 0.002 sec.

    04c7175a1aa7 🙂 create table github_json
    (
    event_type LowCardinality(String) DEFAULT JSONExtractString(message_raw, 'type'),
    repo_name LowCardinality(String) DEFAULT JSONExtractString(message_raw, 'repo.name'),
    message JSON DEFAULT message_raw,
    message_raw String EPHEMERAL
    ) ENGINE = MergeTree ORDER BY (event_type, repo_name)

    Syntax error: failed at position 271 (')') (line 7, col 1):

    create table github_json
    (
    event_type LowCardinality(String) DEFAULT JSONExtractString(message_raw, 'type'),
    repo_name LowCardinality(String) DEFAULT JSONExtractString(message_raw, 'repo.name'),
    message JSON DEFAULT message_raw,
    message_raw String EPHEMERAL
    ) ENGINE = MergeTree ORDER BY (event_type, repo_name)

    Expected one of: expression with ternary operator, logical-OR expression, list, delimited by operator of variable arity, logical-AND expression, logical-NOT expression, expression with prefix unary operator, NOT, nullity checking, comparison expression, list, delimited by binary operators, BETWEEN expression, string concatenation expression, additive expression, INTERVAL operator expression, INTERVAL, TIMESTAMP operator expression, TIMESTAMP, DATE operator expression, DATE, multiplicative expression, unary expression, CAST expression, tuple element expression, array element expression, element of expression, SELECT subquery, CAST operator, tuple, collection of literals, parenthesized expression, array, literal, NULL, number, Bool, true, false, string literal, case, CASE, COLUMNS matcher, COLUMNS, function, identifier, qualified asterisk, compound identifier, list of elements, asterisk, substitution, MySQL-style global variable
  • https://t.me/clickhouse_ru
    ну так и добавляйте в форк. TCP протокол позволяет async инсерты если данные заинлайтить в текст запроса инсерт, а не передавать отдельно.
  • https://t.me/clickhouse_ru
    @ilejn ↶ Reply to #269372 #269374 01:24 PM, 11 May 2022
    меня бы насторожило "It may lack support for new features." ;)
  • https://t.me/clickhouse_ru
    нет, много багов
  • https://t.me/clickhouse_ru
    из датагрипа тоже ругалось, из /play тоже ругалось,,, попробую апнуть консоль клиента, но думаю результат очевиден
  • https://t.me/clickhouse_ru
    alter table modify query позволяет на ходу поменять MV.
    т.е.
    добавляете поле alter-ом в TO таблицу
    добавляете поле alter-ом в A таблицу
    меняете MV - alter table modify query

    начинаете инсертить поле в A таблицу
  • https://t.me/clickhouse_ru
    @drookie #269378 01:32 PM, 11 May 2022
    @milovidov_an (простите великодушно что вот так хайлайтом, но подозреваю, что если просто спросить в канале, то вопрос утонет) а есть какие-то шансы увидеть официальный билд для FreeBSD с USE_MYSQL 1 ?
  • https://t.me/clickhouse_ru
    на гитхабе такое надо спрашивать
  • https://t.me/clickhouse_ru
    @drookie #269380 01:37 PM, 11 May 2022
    билды-то ведь головная компания делает, не коммьюнити ? или я неправ ?
  • https://t.me/clickhouse_ru
    @drookie #269381 01:38 PM, 11 May 2022
    на гитхабе ассетов для FreeBSD в принципе нет, они только на https://builds.clickhouse.com есть
  • https://t.me/clickhouse_ru
    Спасибо )
  • https://t.me/clickhouse_ru
    билды собираются кодом который в гитхабе.
    И вообще какая разница.
    Если вы сейчас сделаете PR который заэнейблит mysql во freebsd, то его вмержат (насколько я понимаю есть проблема в сборке mysql либы под freebds с кросскомпиляцией)

    freedbs ассеты в гитхабе не лежат потому что их забыли копировать в пайплайне
  • https://t.me/clickhouse_ru
    @uuxxxx #269384 01:46 PM, 11 May 2022
    Привет!
    А можно ли установить ODBC драйвер для MacOS на arm64 чипе?
  • https://t.me/clickhouse_ru
    спасибо, попробую погнать волну там
  • @pbaturin #269386 02:05 PM, 11 May 2022
    Обновил на стенде одну ноду clickhouse с 22.2.2.1 до актуальной версии. При запуске ругается на кипера <Error> RaftInstance: failed to accept a rpc connection due to error 125. Использую встроенный киепер кластер из 3-х нод. Что можно посмотреть?
  • https://t.me/clickhouse_ru
    перестартуйте еще раз, иногда с 10й попытки заводится
  • @pbaturin #269388 02:14 PM, 11 May 2022
    Раз 20 уже попробовал. Даже ОС перезагрузил.
  • Пока это низкий приоритет, то есть никто этим не занимается. Надежда на то, что эта задача сделается сама собой в рамках какой-либо другой задачи. Например, сейчас актуальна https://github.com/ClickHouse/ClickHouse/issues/35630 и есть шанс, что в рамках работы над ней случайно активизируется MySQL для FreeBSD.
    Build all contribs using our own CMake files (2) · Issue #35630 · ClickHouse/ClickHouse

    Continuation of #9226. We have strict guidelines for our code base: don't use source codes or libraries from OS or repositories; build everything from source code; use fixed versions of the...

  • https://t.me/clickhouse_ru
    @Pershin_Artem_spb #269390 02:53 PM, 11 May 2022
    Здравствуйте, а есть ли какая-то уже устоявшаяся борда для графаны или кастомный (отдельное какое-то приложение с админкой/бордой) мониторинг, который покрывает основные метрики ClickHouse?
  • https://t.me/clickhouse_ru
    @rasstr0en #269391 02:54 PM, 11 May 2022
    Привет! <Error> mysqlxx::Pool: mysqlxx::ConnectionFailed
    2022.05.11 14:49:02.335504 [ 3045858 ] {} <Warning> Application: Connection to my_dtabs@my_dbhost.tech:3406 as user clickhouse failed: mysqlxx::ConnectionFailed: Can't initialize character set utf8mb4 (path: compiled_in) (my_dbhost.tech:3406)

    помогите плиз, никто не сталкивался? на чьей стороне чинить
  • Zabbix? Или какие именно метрики вы имеет ввиду?
  • https://t.me/clickhouse_ru
    @Pershin_Artem_spb #269393 02:56 PM, 11 May 2022
    Что-то типа okmeter для постгреса, например, ну или заббикс, да. Готовые темплейты с алертами настроенными https://grafana.com/grafana/dashboards/882 вот что нашел - но оно видимо старое
  • https://t.me/clickhouse_ru
    Добрый день. В Okmeter, уже в этом году, планируется полноценная поддержка ClickHouse. Правда, пока, точных сроков нету(
  • https://t.me/clickhouse_ru
  • в итоге откатил обновление. так и не смог завести на новой версии. вроде бы не на столько старая версия была...
  • 12 May 2022 (217 messages)
  • https://t.me/clickhouse_ru
    @BloodJazMan #269400 03:54 AM, 12 May 2022
    Извините. а когда группу сделали приватной и почему забанили пользователя @natamya ?
  • https://t.me/clickhouse_ru
    @lockkie #269401 05:37 AM, 12 May 2022
    Если кто сталкивался, подскажите в чем дело. Использую clickhouse-copier, кидает ошибку:
    <Error> Application: Will retry: Code: 47. DB::Exception: Missing columns: 'EventDate' while processing query: 'SELECT DISTINCT toYYYYMM(EventDate) AS partition FROM _local.`.read_shard_1.target_cluster.metrika.access_logs_local` ORDER BY partition DESC', required columns: 'EventDate'.
    Колонка есть`EventDate` Date MATERIALIZED toDate(Timestamp)
  • https://t.me/clickhouse_ru
    это на приемнике или на отправителе запрос ломается?
  • https://t.me/clickhouse_ru
    на отправителе, сразу после выполнения clickhouse-copier --config-file=zookeeper.xml --task-path=/clickhouse-copier/access_logs_local --base-dir .
  • https://t.me/clickhouse_ru
    у меня подозрения на MATERIALIZED, на таблицах без MATERIALIZED все ок
  • https://t.me/clickhouse_ru
    ну вроде как MATERIALIZED нельзя в SELECT * ... использовать, в остальном он от DEFAULT толком ничем не отличается...

    если запрос руками выпонить таже ошибка?
  • https://t.me/clickhouse_ru
    в смысле insert into table select * from?
  • https://t.me/clickhouse_ru
    insert into talbe select * from тут да, не будет выборки но у вас ошибка то другая

    SELECT DISTINCT toYYYYMM(EventDate) AS partition FROM _local..read_shard_1.target_cluster.metrika.access_logs_local ORDER BY partition DESC

    вот этот запрос на отправителе работает если ручками из clickhouse-client запустить?
  • https://t.me/clickhouse_ru
    Возвращает сode: 81. DB::Exception: Received from localhost:9000. DB::Exception: Database _local doesn't exist. (UNKNOWN_DATABASE) Я мб не совсем понимаю как правильно такой запрос выполнить.
  • https://t.me/clickhouse_ru
    @BloodJazMan #269410 06:44 AM, 12 May 2022
    если вы его скопировали из телеги, то там кавычки потерялись
    потому что таблица у вас точки содержит
  • https://t.me/clickhouse_ru
    @lockkie #269411 06:44 AM, 12 May 2022
    не из тг, прям из консоли
  • https://t.me/clickhouse_ru
    @BloodJazMan #269412 06:44 AM, 12 May 2022
    возможно это какая то временная таблица которую clickhouse-copier создает... ? или это ваша таблица?
  • https://t.me/clickhouse_ru
    @lockkie #269413 06:46 AM, 12 May 2022
    это 100% временная, реальная таблица metrika.access_logs_local
  • https://t.me/clickhouse_ru
    Search · copier materialized · 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
    @BloodJazMan #269415 06:51 AM, 12 May 2022
    какая версия clickhouse-copier ?
  • https://t.me/clickhouse_ru
    @lockkie #269416 06:51 AM, 12 May 2022
    если из реальной этот селект сделать, возвращает 0, ну это и логично, она ж целевая и пустая
  • https://t.me/clickhouse_ru
    22.3.3.44
  • https://t.me/clickhouse_ru
    @lockkie #269418 06:58 AM, 12 May 2022
    похоже на мою ситуацию https://github.com/ClickHouse/ClickHouse/issues/26702
  • https://t.me/clickhouse_ru
    https://github.com/nikitamikhaylov

    ну попробуйте с компетентным человеком напрямую связаться
    nikitamikhaylov - Overview

    MIPT. nikitamikhaylov has 24 repositories available. Follow their code on GitHub.

  • @packofopinions #269420 07:08 AM, 12 May 2022
    Всем привет. Не подскажете, как работает order by при создании таблицы mergetree? В доке пишут, что если не задавать первичный ключ, то он будет создан из order by. У меня есть таблица с ивентам order by по datetime полю, на которую настроена materialized view. В таблицу ивентов я могу дублировать записи по datetime полю, но materialized view отрабатывает только если добавятся какие-то новые.
  • https://t.me/clickhouse_ru
    PK не гарантирует уникальности
  • А как можно избежать проверку уникальности при работе materialized view? Или может на это влияет что-то другое?
  • https://t.me/clickhouse_ru
    Какой движок у таблицы в которую складывает MV ?
  • Distributed в ReplicatedMergeTree
  • https://t.me/clickhouse_ru
    так, давайте на две части проблему разделим
    первое понятия

    PRIMARY KEY - первичный ключ, он ОБЯЗАТЕЛЕН но не как в MySQL, он НЕ УНИКАЛЬНЫЙ, значения первичного ключа хранятся на диске, все остальные колонки отсортированы в соответствии с значениями полей первичного ключа, это позволяет очень быстро сканировать таблицу если в WHERE есть поля из PRIMARY KEY

    ORDER BY - он же sorting key в документации, в него должны входить все поля из PRIMARY KEY и могут быть еще поля по которым остальные колонки сортируются, если PRIMARY KEY не задан то он равен ORDER BY

    что касается materialized view
    явно вы не так понимаете как он работает
    он не срабатывает никогда когда "добавляются новые значения"

    оригинальная таблица у вас какой engine?

    SHOW CREATE TABLE покажите на таблицу и на materialized view?
  • https://t.me/clickhouse_ru
    @ermakmkb #269427 08:14 AM, 12 May 2022
    Коллеги, подскажите способ узнать - была ли вставка данных в партицию после какого-то времени? Может, системные поля у записи или на файлы смотреть
  • в system.parts было поле modification_time

    https://clickhouse.com/docs/en/operations/system-tables/parts_columns

    тут почитайте, мб то что нужно
    parts_columns | ClickHouse Docs

    systemtables-partscolumns}

  • https://t.me/clickhouse_ru
    @ermakmkb #269429 08:17 AM, 12 May 2022
    modification_time (DateTime) — The time the directory with the data part was modified. This usually corresponds to the time of data part creation.
  • https://t.me/clickhouse_ru
    @ermakmkb #269430 08:19 AM, 12 May 2022
    хотя, смотрю свои данные - похоже, что работает
  • https://t.me/clickhouse_ru
    system.part_log еще есть
  • Немного сократил, но в целом все так

    CREATE TABLE db.events (
    message String,
    received_at DateTime DEFAULT now(),
    REC_DATE Date DEFAULT toDate(now())
    )
    ENGINE = MergeTree()
    PARTITION BY REC_DATE
    ORDER BY (REC_DATE, received_at)
    TTL received_at + INTERVAL 2 WEEK

    CREATE MATERIALIZED VIEW db.mv
    TO db.distributed
    AS SELECT

    FROM db.events
    WHERE
    JSONExtractString(db.events.message, 'entity_type') = ‘type’

    CREATE TABLE db.distributed
    AS db.table
    ENGINE = Distributed(‘cluster’, ‘db’, ‘table’, intHash64(received_at))

    CREATE TABLE db.table (

    REC_DATE Date,
    received_at DateTime
    )
    ENGINE = ReplicatedMergeTree('/clickhouse/cluster/tables/db/shard-{shard}/table’, '{replica}')
    PARTITION BY REC_DATE
    ORDER BY (REC_DATE, …, received_at)
  • https://t.me/clickhouse_ru
    ReplicatedMergeTree - если повторно один и тот же блок вставлять, он будет скипаться

    как тестируете? по одной записи вставляете? с теми же самыми данными?
  • https://t.me/clickhouse_ru
    Спасибо! Избыточно немного, но зато гарантированно есть то, что надо
  • добавил несколько записаей в формате TabSeparated и импортирую
    clickhouse-client -q “insert into db.events format TabSeparated” < dump.tsv
  • https://t.me/clickhouse_ru
    ну получается просто два раза вставляете одни и теже данные

    они проходят путь MergeTree -> MV -> Distributed -> ReplicatedMergeTree - и в последнем скипаются
  • получается уникальность проверяется по всему блоку? Т.е достаточно изменить одно поле одной записи, чтобы это пропустить? В смысле тогда будет уже новый блок
  • https://t.me/clickhouse_ru
    @Alexey_Cald #269438 08:31 AM, 12 May 2022
    А есть какая-нибудь аггрегирующая функция для AggregateMergeTree, которая берет argMax, если в обоих записях есть какие-то не null значения и берет не null значение, если в одной из записи есть null?
  • https://t.me/clickhouse_ru
    @Alexey_Cald #269439 08:35 AM, 12 May 2022
    Ну либо как такое поведение симулировать
  • https://t.me/clickhouse_ru
    В ответ на свой вопрос для истории (каж-ся это оно)

    https://kb.altinity.com/engines/mergetree-table-engine-family/aggregatingmergetree/
  • @KekDl #269441 08:39 AM, 12 May 2022
    Привет, есть ли какие-то способы переименовать базу с ordinary engine?
  • https://t.me/clickhouse_ru
    угу. будет новый блок и он вставится нормально в ReplicatedMergeTree
  • Понял, сейчас попробую, спасибо большое
  • https://t.me/clickhouse_ru
    атомарно нет

    с рестартом сервера
    просто переименовать
    systemctl stop clickhouse-server
    /var/lib/clickhouse/metadata/db_ordinary_name
    /var/lib/clickhouse/metadata/db_ordinary_name.sql (тут переименовать внутри файла)
    /var/lib/clickhouse/data/db_ordinary_name
    systemctl start clickhouse-server
  • https://t.me/clickhouse_ru
    @vladislav_sakun #269445 08:47 AM, 12 May 2022
    Всем привет!
    Пробовал переехать с zookeeper на clickhouse-keeper.
    Перегнал данные в новый кластер и начал его тестировать.
    Первая проблема была достаточно часто наблюдал ерроры Session expired.
    А так же столкнулся с проблемой https://github.com/ClickHouse/ClickHouse/issues/35712
    Возможно у кого-то уже есть опыт работы с clickhouse-keeper или может подскажите какие настройки нужно здесь применить, чтобы избавиться от этой ошибки
    Session expired (Session expired). (KEEPER_EXCEPTION) - (ClickHouse Keeper) · Issue #35712 · ClickHouse/ClickHouse

    Describe what's wrong I am trying to migrate Apache Zookeeper into ClickHouse Keeper but am running into Session expired KEEPER_EXCEPTION while doing a bunch of table creations that which I...

  • @KekDl ↶ Reply to #269444 #269447 09:02 AM, 12 May 2022
    Спасибо)
  • https://t.me/clickhouse_ru
    а у вас clickhouse-keeper запускается один экземпляр отдельно? или несколько реплик?
    или это in-process keeper внутри clickhouse-server?
  • https://t.me/clickhouse_ru
    Это in-process keeper внутри clickhouse-server
  • https://t.me/clickhouse_ru
    @Alexey_Cald #269450 09:05 AM, 12 May 2022
    Вопрос знающим
    Как кликхаус понимает какая запись была последней? Экспериментирую с anyLast, вроде он каким-то образом понимает какая запись была последней, но не понимаю как
  • https://t.me/clickhouse_ru
    @Alexey_Cald #269451 09:06 AM, 12 May 2022
    В табличке они хранятся в другом порядке (не в порядке вставки записей), но кх все равно как-то понимает какая запись последняя была при вставке
  • https://t.me/clickhouse_ru
    сколько серверов?
    можно попробовать настройки raft протокола потюнить

    coordination_settings

    но там
    <operation_timeout_ms>10000</operation_timeout_ms>
    <session_timeout_ms>30000</session_timeout_ms>

    по умолчанию итак нифига не маленькие...

    а вы как прописываете <zookeeper> секцию? один хост 127.0.0.1?
  • судя по документации, никак не понимает, и результаты функций any / anyLast являются indeterminate
    видимо, сегодня просто такая фаза Луны, что он берет последнюю по физической вставке, и строить на этом бизнес-логику не стоит
    https://clickhouse.com/docs/en/sql-reference/aggregate-functions/reference/any/
    any | ClickHouse Docs

    agg_function-any}

  • https://t.me/clickhouse_ru
    Ого, понял, спасибо
  • https://t.me/clickhouse_ru
    Нет, указываю все сервера.
    Серверов всего 4 (2 шарда по 2 реплики)

    <keeper_server>
    <tcp_port>9181</tcp_port>
    <server_id>1</server_id>
    <log_storage_path>/var/lib/clickhouse/coordination/log</log_storage_path>
    <snapshot_storage_path>/var/lib/clickhouse/coordination/snapshots</snapshot_storage_path>

    <coordination_settings>
    <operation_timeout_ms>10000</operation_timeout_ms>
    <session_timeout_ms>30000</session_timeout_ms>
    <raft_logs_level>warning</raft_logs_level>
    </coordination_settings>

    <raft_configuration>
    <server>
    <id>1</id>
    <hostname>hostname1.domain.com</hostname>
    <port>9444</port>
    </server>
    <server>
    <id>2</id>
    <hostname>hostname2.domain.com</hostname>
    <port>9444</port>
    </server>
    <server>
    <id>3</id>
    <hostname>hostname3.domain.com</hostname>
    <port>9444</port>
    </server>
    <server>
    <id>4</id>
    <hostname>hostname4.domain.com</hostname>
    <port>9444</port>
    </server>
    </raft_configuration>
    </keeper_server>
  • https://t.me/clickhouse_ru
    <zookeeper>
    <node>
    <host>hostname1.domain.com</host>
    <port>9181</port>
    </node>
    <node>
    <host>hostname2.domain.com</host>
    <port>9181</port>
    </node>
    <node>
    <host>hostname3.domain.com</host>
    <port>9181</port>
    </node>
    <node>
    <host>hostname4.domain.com</host>
    <port>9181</port>
    </node>
    </zookeeper>
  • https://t.me/clickhouse_ru
    укажите один
    в <zookeeper> 127.0.0.1
    и посмотрите что получится

    для in-process этого достаточно
    там все равно через raft протокол остальные зукиперы будут жить
  • посмотрите на функцию argMax, она хороший заменитель anyLast, потому что это как anyLast с order by
  • https://t.me/clickhouse_ru
    <raft_configuration> оставьте без изменений
  • https://t.me/clickhouse_ru
    @artilligence #269460 09:18 AM, 12 May 2022
    Господа, добрый день! Подскажите, пожалуйста, в кликхаусе есть возможность передачи в функцию дефолтного значения или перехват ошибки парсинга с возратом дефолтного значения в случае ошибки функции?
    Интересует toDateTime. Если туда передать пустую строку, функция валится, а хочется получить, например, нулевую дату
  • https://t.me/clickhouse_ru
    @Alexey_Cald #269461 09:18 AM, 12 May 2022
    Тогда не совсем понимаю... В доке альтинити косяк? (https://kb.altinity.com/engines/mergetree-table-engine-family/aggregatingmergetree/)
    Потому что там пример того, как получить ПОСЛЕДНЕЕ не null значение, или здесь под последним имеется в виду последнее при рандомном чтении?
  • https://t.me/clickhouse_ru
    Но какой в этом смысл тогда, если операция недетерминирована?
  • https://t.me/clickhouse_ru
    Пробовал и так, разницы нету, наткнулся потом на issue с похожей проблемой
    https://github.com/ClickHouse/ClickHouse/issues/35712
    Но, смотрю что её даже не верифицировали как баг, потому вообще не ясно будут ли за неё браться или нет...
    Session expired (Session expired). (KEEPER_EXCEPTION) - (ClickHouse Keeper) · Issue #35712 · ClickHouse/ClickHouse

    Describe what's wrong I am trying to migrate Apache Zookeeper into ClickHouse Keeper but am running into Session expired KEEPER_EXCEPTION while doing a bunch of table creations that which I...

  • https://t.me/clickhouse_ru
    То есть он так же будет брать только не null значения?
    Я к чему, вот есть игрушечный пример. Здесь выделенные колонки это order by для aggregateMergeTree

    Я хочу чтобы в итоге col2, col3 = b, 2 и чтобы детерминированно, а не как с anyLast
  • https://t.me/clickhouse_ru
    ну странная конечно фигня,

    а какаая у вас интенсивность вставки что сессия экспайрится, чаще чем раз в минуту вообще вставляете?
  • https://t.me/clickhouse_ru
    У нас запись через кафку, у нее настроено время сбрасывания 7.5 секунд
  • "чтобы детерминированно"
    а по какому полю собираетесь это определять, если у вас на экране 4 рандомных строки с одинаковым "ключом"?
  • https://t.me/clickhouse_ru
    @Alexey_Cald #269468 09:25 AM, 12 May 2022
    Могу добавить колонку по типу "event_date", условно порядок вставки
  • https://t.me/clickhouse_ru
    угу, ну тогда вообще все ровно должно быть... не должна сессия экспайрится

    попробуйте raft логи до information увеличить и посмотреть

    может между серверами рафт рушится часто, тогда из-за этого даже на 127.0.0.1 потеря сессии будет
  • https://t.me/clickhouse_ru
    Спасибо, попробую включить уровень information
  • https://t.me/clickhouse_ru
    хотя по идее warning или error должны быть потеря кворума

    вы логи анализировали до того как ошибку словить

    grep -i raft /var/log/clickhouse-server/clickhouse-server.log

    что нибудь такое
  • добавляйте, сделаете по ней argMax() и голова не будет болеть от того, а как anyLast в очередной раз себя поведет
    конечно, может, оказаться, что anyLast под капотом всегда читает в одном порядке, но лично я бы (на опыте работы с разными бд) не рискнул на этом строить логику )
  • @tanyaris #269473 09:32 AM, 12 May 2022
    Всем привет )

    есть вопрос по запросу к кх

    у меня есть табличка (скриншот прикрепляю)

    и мне в ней нужно посчитать куммулятивную сумму (нарастающим итогом) по столбцу total_rev_per_day для каждого столбца day_of_life (то есть напротив day_of_life=1 я хочу видеть значение, равное сумме 698.74+4.99; напротив day_of_life=24 я хочу видеть значение, равное сумме 698.74+4.99+4.99 и так далее...)

    как это можно сделать?
  • Этого не хватит, вам нужны тогда наносекунды, а их в now() нет.
  • либо движок ReplacingMergeTree попробуйте, если вам все строки не нужны, и их можно схлопнуть
  • sum(total_rev) over (order by day_of_live rows unbounded preceding)
  • Спасибо ☺️
  • https://t.me/clickhouse_ru
    @Alexey_Cald #269478 09:36 AM, 12 May 2022
    Так, сейчас, кажется я привел не совсем удачный пример

    В итоге здесь надо получить col2 = c, col3 = 1
    Порядок вставки указан стрелкой
  • https://t.me/clickhouse_ru
    Не страшно, до инсерта можно заранее посчитать "now()", не средствами кх
  • https://t.me/clickhouse_ru
    Насколько я помню, ReplacingMergeTree берет именно прям ВСЮ последнюю строку, а мне нужно поведение похожее на anyLast, то есть последнее не null значение
  • да, так и есть
    тогда да, я бы добавил какой-то insert timestamp, чтобы от него отталкиваться
  • Если есть возможность, тогда да. А если нет, то можно комбинировать now() и rowNumberInAllBlocks() например, чтобы нумерация внутри блока позволила сохранить его порядок.
  • https://t.me/clickhouse_ru
    WINDOW functions
    SELECT day_of_life, SUM(total_rev_per_day) OVER (ORDER BY day_of_live RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS cumulative_revenue FROM table ORDER BY day_of_life
    как то так
  • https://t.me/clickhouse_ru
    То есть AggregateMergeTree с argMax по timestamp вставки?
  • https://t.me/clickhouse_ru
    Window Functions | ClickHouse Docs

    ClickHouse supports the standard grammar for defining windows and window functions. The following features are currently supported:

  • https://t.me/clickhouse_ru
    @VBelyshev #269486 10:05 AM, 12 May 2022
    Всем привет. Подскажите, как сгенерировать столбец с типом DateTime с шагом в 1 час на текущий день. Нужно 24 строки от начала текущего дня до его конца
  • https://t.me/clickhouse_ru
    @logast #269487 10:07 AM, 12 May 2022
    Привет. Есть необходимость физически разделить кластер на 2 zookeeper кластера.
    В текущий момент все схемы идут в 100 шарде на 1 кластере. Идея в том что бы разделить их по шарднам.
    Есть идея быстро стопнуть кластер, переименовать пути в таком роде:
    zkpath /clickhouse/table/100 -> /clickhouse/table/300 -> macros 300 some shemas.
    zkpath /clickhouse/table/100 -> /clickhouse/table/200 -> macros 200 some shemas.
    Стартануть хосты с новыми макросами.
    На сколько безопасен такой метод, нету ли по мимо макроса каверзных моментов в метаданных?
    Возможно есть какие то другие пути?
  • как вариант через массив, может и проще можно

    SELECT arrayJoin(arrayMap(x -> (start + toIntervalHour(x)), range))
    FROM
    (
    SELECT
    range(24) AS range,
    toStartOfDay(now()) AS start
    )
  • можно при помощи табличной функции numbers()
    https://clickhouse.com/docs/en/sql-reference/table-functions/numbers/
  • https://t.me/clickhouse_ru
    оооо спасибо, то что нужно!!!!
  • https://t.me/clickhouse_ru
    Есть из чего выбрать)) Спасибо!
  • @2070273164 #269492 10:14 AM, 12 May 2022
    select toStartOfDay(now()) + toIntervalHour(number) FROM numbers(24);
  • https://t.me/clickhouse_ru
    @konnectrl #269493 10:14 AM, 12 May 2022
    SELECT toStartOfDay(now()) + toIntervalHour(number)
    FROM numbers(24)
  • https://t.me/clickhouse_ru
    Функцию parseDateTimeBestEffortOrZero смотрели?
  • https://t.me/clickhouse_ru
    сейчас посмотрю, спасибо!
  • https://t.me/clickhouse_ru
    Кстати говоря, нашел незадокументированную функцию now64(<precision>) :)
    Но я думаю ее не просто так нет в доке )
  • https://t.me/clickhouse_ru
    просто забыли задокументировать
  • https://t.me/clickhouse_ru
    Можете проверить посиком в чате, все про нее знают
  • https://t.me/clickhouse_ru
    @Alexey_Cald #269500 11:09 AM, 12 May 2022
    Понял
  • https://t.me/clickhouse_ru
    @Alexey_Cald #269501 11:10 AM, 12 May 2022
    Получается она стабильная?
  • https://t.me/clickhouse_ru
    Да
  • https://t.me/clickhouse_ru
    Так нельзя в зк переименовывать

    System restore replica
  • @Artem_Makarenko #269504 11:14 AM, 12 May 2022
    Добрый день.
    Подскажите пожалуйста.
    Можно ли к табличке из новым синтаксисом MergeTree аттачить данные которые которые были взяти из таблички из старым синтаксисом?(В новом синтаксисе изменилась запись PRIMARY KEY)
    Ибо переписав табличку на новый синтаксис перестали артачиться данные( запрос на атачь выполняет но фактический данных нет )
  • https://t.me/clickhouse_ru
    У функций есть orZero orNull суффиксы
  • https://t.me/clickhouse_ru
    Нельзя
  • https://t.me/clickhouse_ru
    Спасибо!
  • А есть ли какие-то варианты обновить табличку на новый синтаксис ?
  • https://t.me/clickhouse_ru
    Вы не можете увидеть / узнать в каком порядке хранятся записи. AnyLast примерно похож на правду потому что в нумерации блоков инкрементальный счетчик
  • https://t.me/clickhouse_ru
    Есть. Дорого (за деньги)
  • Понял.
    А distribution engine может работать из табличкой из новым и старым синтаксисом ?
  • https://t.me/clickhouse_ru
    @logast ↶ Reply to #269503 #269512 11:21 AM, 12 May 2022
    А на более старых версиях ch без SYSTEM RESTORE REPLICA ?
  • https://t.me/clickhouse_ru
    @maga_rs #269513 11:32 AM, 12 May 2022
    Привет. Хочу протестировать тип json, но не могу создать таблицу. Ругается, что не включена экспирементальная настройка, хотя она включена. Версия клика 22.3.3.44

    SET allow_experimental_object_type=1;

    CREATE table test_json
    ( event JSON ) ENGINE = Memory;

    Code: 44. DB::Exception: Cannot create table with column 'event' which type is 'Object('json')' because experimental Object type is not allowed. Set setting allow_experimental_object_type = 1 in order to allow it. (ILLEGAL_COLUMN) (version 22.3.3.44 (official build))
  • https://t.me/clickhouse_ru
    может, есть еще варианты, например engine=Merge. Переименовываете старую таблицу, создаете новую в новом синтаксисе, накрываете все engine=merge, merge подсовываете в distributed. Я так переехал со старого синтаксиса на новый (в 2018 году)
  • https://t.me/clickhouse_ru
    SET allow_experimental_object_type=1;
    включает в СЕССИИ.

    у инсерта другая СЕССИЯ. Надо либо передевать в инсерте, либо задать в профиле, чтобы у всех сессий по умолчанию было =1
  • https://t.me/clickhouse_ru
    а зачем вам разделять зукипер?
    в смысле можно и по другому сделать, но нужно знать конечную цель (НЕ ЗАДАЧУ)
  • https://t.me/clickhouse_ru
    у вас проблема в непонимании что Keeper ничего не меняет относительно Зукипера. Для Кипера все так же нужны выделенные ноды, которые имеют свой собственный быстрый диск.
  • Понял.Спасибо большое
  • https://t.me/clickhouse_ru
    что за приватной?

    я разбанил natamya, я не знаю почему я забанил этого пользователя, возможно случайно.
  • https://t.me/clickhouse_ru
    @logast ↶ Reply to #269516 #269520 11:56 AM, 12 May 2022
    На кластере более 10 тысяч таблиц, представленных в разных схемах, но по 1 шарду. 1. Физическая изоляция. 2. Снижения нагрузки на zk, сейчас более 10млн znode
  • https://t.me/clickhouse_ru
    То есть если развернуть его отдельно, то проблем с работой не будет?
  • https://t.me/clickhouse_ru
    я не понял каким образом вам номера шардов помогут ходит в разные зукиперы.

    в смысле сейчас КХ умеет работать с несколькими зукиперами, там в пути надо указать что это др. зукипер.

    Т.е. я бы делал так,
    детачнул часть таблиц (или баз)
    сделал копию зукипера (скопировав файлы ЗК, или расщепив ЗК кластер из 6 нод на ходу (это легко)).
    добавил второй зукипер в конфиг.
    А потом просто поменял пути у детачнутых таблиц.
  • https://t.me/clickhouse_ru
    да, не будет
  • https://t.me/clickhouse_ru
    https://github.com/ClickHouse/ClickHouse/issues/31919

    https://github.com/ClickHouse/ClickHouse/issues/32259
    Zookeeper & 5000 Replicated tables · Issue #31919 · ClickHouse/ClickHouse

    It's not an issue just an observation. 1 replica create database test_zoo; -- Let's create 5000 tables for i in `seq 5000`; do echo -n $i ""; \ clickhouse-client -...

  • https://t.me/clickhouse_ru
    @logast ↶ Reply to #269522 #269525 12:02 PM, 12 May 2022
    Номера шардов для безопастности, что-бы не промахнуться. Это дало бы логическое разделение, при котором какой-либо шард не смог-бы законектится по старой метадате.
  • https://t.me/clickhouse_ru
    @Alexey_Cald #269526 12:03 PM, 12 May 2022
    Можно ли заставить anyLast брать очередность записей по ключу сортировки?
  • https://t.me/clickhouse_ru
    Так значение ключа одинаковое, там нет последнего.
    Вот ключ (a,17), у другой записи тоже (a,17), они равны
  • https://t.me/clickhouse_ru
    @Alexey_Cald #269528 12:06 PM, 12 May 2022
    Я понимаю, но если я в ключ вставлю timestamp (хотя это вроде не очень хорошо, но всё же)
  • https://t.me/clickhouse_ru
    какая версия КХ
  • https://t.me/clickhouse_ru
    @greyhard #269530 12:06 PM, 12 May 2022
    подскажите , не могу найти в документации , можно ли как то при создании таблицы задать сортировку для ключа ORDER BY ? простой способ ORDER BY (datetime DESC) не работает , часто будут нужны свежие данные , и хочется индекс сразу перевернуть на DESC
  • https://t.me/clickhouse_ru
    timestamp станет частью ключа, и у записей будет разный ключ
  • timestamp надо вставлять не в ключ, а просто доп колонкой, и использовать его в SELECT argMax(column, timestamp) GROUP BY ключ
  • https://t.me/clickhouse_ru
    можно типа ORDER BY (-datetime) (не так в тупую, но это возможно)
    но на самом деле вам этого не нужно.
    запросы ORDER BY DESC и так нормально работают c ORDER BY (datetime)
  • https://t.me/clickhouse_ru
    @logast ↶ Reply to #269529 #269534 12:09 PM, 12 May 2022
    18.10.3
  • https://t.me/clickhouse_ru
    @logast #269535 12:10 PM, 12 May 2022
    грейданутся можно, но там много проблем с join + неопределенными переменными в запросах
  • https://t.me/clickhouse_ru
    18.10 не умеет работать с 2мя зукиперами
  • https://t.me/clickhouse_ru
    скорее всего это настраивается сеттингами
  • https://t.me/clickhouse_ru
    ладно ) пойду дальше копать , а ДБА клика далеко ) ушел в запой )
    SELECT t.*
    FROM default.sensors_ym AS t
    WHERE (sensor_serial = '10000581HIT') AND (type = 'press')
    ORDER BY datetime ASC
    LIMIT 10
    10 rows in set. Elapsed: 49.631 sec. Processed 2.70 billion rows, 241.71 GB (54.45 million rows/s., 4.87 GB/s.)
  • https://t.me/clickhouse_ru
    Вот хотелось бы этого избежать
    У меня есть табличка с логами (который хранит только последние 3 месяца) и mv из этой таблички типа AggregatingMergeTree

    Если делать argMax на MV, то ведь он будет учитывать только последние 3 месяца из таблички логов, так?
  • а как быстро отработает select t.timestamp from [всё остальное]?
    тут вроде недавно уже было обсуждение, что в случае LIMIT и SELECT * быстрее сначала вытащить десять нужных значений одного поля из индекса, а потом SELECT * WHERE timestamp in (...)
  • https://t.me/clickhouse_ru
    а order by какой у таблицы?
  • https://t.me/clickhouse_ru
    ORDER BY (datetime, master_serial, sensor_serial, type)
  • то есть у вас high-cardinality значение на первой позиции индекса, а WHERE идет по другим полям
  • https://t.me/clickhouse_ru
    вероятно при создании таблицы не понимали юз кейс , видимо надо переделать
  • https://t.me/clickhouse_ru
    ну понятно, проблема вовсе не в desc/asc
    если записи WHERE (sensor_serial = '10000581HIT') AND (type = 'press') далеко от конца/начала datetime или их вообще нет, то нужно весь индекс/все таблицу просканировать
  • https://t.me/clickhouse_ru
    спасибо, напишу дба пусть исправляет )
  • https://t.me/clickhouse_ru
    Ну там надо все данные перелить по новому ключу 👍
  • https://t.me/clickhouse_ru
    материализованное представление с новым ключем временно не решит проблему ?
  • https://t.me/clickhouse_ru
    @konnectrl #269550 12:34 PM, 12 May 2022
    Ну есть проекции сейчас
  • https://t.me/clickhouse_ru
    @konnectrl #269551 12:34 PM, 12 May 2022
    Но лучше переделывать
  • https://t.me/clickhouse_ru
    @greyhard #269552 12:36 PM, 12 May 2022
    пока для теста сделать матвью, он же отдельно считает индекс ? а если все прокатит ) будут пруфы за переделку
  • https://t.me/clickhouse_ru
    в 38 раз проще и быстрее сделать тестовую таблицу, вставить тестовых данных, и проверить, я минуты за 3 справлюсь
  • https://t.me/clickhouse_ru
    да но ) как быть с объемом ? тестовая таблица будет 1 млн записей, а боевая 6 млрд , это на тесте не скажется ?
  • https://t.me/clickhouse_ru
    если с головой подходить и не заполнять все поля рандомным мусором, то можно сделать тествую таблицу на 100млрд.(и уложится в 3 минуты)
  • https://t.me/clickhouse_ru
    через буфер лить ? )
  • https://t.me/clickhouse_ru
    @greyhard #269558 12:44 PM, 12 May 2022
    задачка на подумать )
  • https://t.me/clickhouse_ru
    да куча вариантов генерить данные прямо в КХ , numbers, range, random для любых типов данных
  • https://t.me/clickhouse_ru
    create table A(K Int64, s1 String, s2 String) Engine=MergeTree order by s1 as select number, '', '' from numbers(1e9);
  • https://t.me/clickhouse_ru
    @den_crane #269562 12:48 PM, 12 May 2022
    insert into metric_definition(metric_id, name, machine_id )
    select generateUUIDv4() metric_id, toString(number%55555) name, generateUUIDv4() machine_id from numbers(30000);
  • https://t.me/clickhouse_ru
    @den_crane #269563 12:48 PM, 12 May 2022
    insert into metrics select '94cf81ba-1b39-4cf5-8127-ab65f6b2b1b7', toDateTime('2021-09-01 00:00:00') + number date, date, rand()%103/44 from numbers(2592000);
  • https://t.me/clickhouse_ru
    Спасибо ) но я хотел сам 😉
  • https://t.me/clickhouse_ru
    А почему вариант, именно на своих данных, потестить, а не на сгенерированных ?
  • https://t.me/clickhouse_ru
    @spacecobra #269567 01:13 PM, 12 May 2022
    Привет. Подскажите, пожалуйста. Мы используем КХ версии 22.3.2.1 на тестовых стендах в docker. Собран кластер из двух нод, на котором для ~100 топиков кафки выполнены скрипты вида https://ghostbin.com/tpN18
    На стендах ограничены ресурсы, КХ никак не нагружен (нет запросов SELECT, нет данных в кафке), а потребление памяти постоянно растет. Как можно посмотреть для чего он использует память?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Я с нее начал, пока мне ни чем не помогла. Кеши ни чем не заняты, MemoryResident и MemoryDataAndStack постоянно растут.
  • https://t.me/clickhouse_ru
    Да, согласен, я забыл, что он аггрегирует по sort key
    Вопрос тогда по доке в альтинити (https://kb.altinity.com/engines/mergetree-table-engine-family/aggregatingmergetree/), тут написано, что будет брать последний non-null value, получается тут учитывается порядок вставки?
  • https://t.me/clickhouse_ru
    @spacecobra #269572 02:14 PM, 12 May 2022
    А можно как то подробнее узнать что тут MemoryResident и MemoryDataAndStack?
  • https://t.me/clickhouse_ru
    ClickHouse/AsynchronousMetrics.cpp at 0f5f75a7844e4cd1a6acc484ee4e15b1a839e319 · 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
    @erdmko #269574 02:17 PM, 12 May 2022
    Кажется тут какая то пролема на стороне верстки документации https://clickhouse.com/docs/ru/operations/utilities/clickhouse-local/
  • https://t.me/clickhouse_ru
    Похоже на то.
  • https://t.me/clickhouse_ru
    @spacecobra #269576 02:25 PM, 12 May 2022
    DB::MergeTreeBackgroundExecutor<DB::MergeMutateRuntimeQueue>::routine(DB::TaskRuntimeDataPtr) [Queue = DB::MergeMutateRuntimeQueue]: Code: 241. DB::Exception: Memory limit (total) exceeded: would use 1.92 GiB (attempt to allocate chunk of 4362015 bytes), maximum: 1.00 GiB. (MEMORY_LIMIT_EXCEEDED), Stack trace (when copying this message, always include the lines below)
    ---
    Я понимаю что 1Gb это вообще не о чем. Но это тестовый стенд, вообще без нагрузки. А съедается и больше 4, если не ограничивать
  • https://t.me/clickhouse_ru
    @konnectrl #269577 02:29 PM, 12 May 2022
    Система не предназначена для работы с 4 гб вообще. Ну где то в чатике где 2-3 месяца назад был человек с вопросами и ему отвечали, как уменьшить потребление памяти
  • https://t.me/clickhouse_ru
    @spacecobra #269578 02:31 PM, 12 May 2022
    В документации есть такое
    You can use ClickHouse in a system with a small amount of RAM, even with 2 GB of RAM, but it requires additional tuning and can ingest at a low rate.
    Кто бы подсказал как это настроить
  • https://t.me/clickhouse_ru
    You need to have 4GB SWAP.
    You need to change <mlock_executable>true</mlock_executable> to false in config.xml
    You need to set mark_cache_size=500MB
  • https://t.me/clickhouse_ru
    @Alexey_Cald #269582 03:20 PM, 12 May 2022
    Как схлопнуть стейты в AggregateFunction? Только через OPTIMIZE?
  • https://t.me/clickhouse_ru
    вопрос непонятен. AggregateFunction где? в таблице или в запросе?
  • https://t.me/clickhouse_ru
    @Alexey_Cald #269584 03:28 PM, 12 May 2022
    В таблице, я так понимаю
    То есть есть MV, туда делается argMaxState и все эти стейты сохраняются
  • https://t.me/clickhouse_ru
    ну optimize да, но вообще подразумевается что это не нужно, что запрос будет с groupby и argMaxMerge
  • https://t.me/clickhouse_ru
    @Alexey_Cald #269586 03:29 PM, 12 May 2022
    argMaxMerge долго (относительно) работает
    Поэтому я хочу делать Optimize и запрос с finalizeAggregation с final и с флагом do_not_merge_across_partitions_select_final
  • https://t.me/clickhouse_ru
    ну ОК.
    Но вы должны понимать что вы не можете постоянно вызывать Optimize, это очень дорогая и долгая операция
  • https://t.me/clickhouse_ru
    Получается так, что селекты работают намного быстрее, если таблица финализирована, если нет, то примерно раза в 2, 1.5 быстрее, чем argMaxMerge
  • https://t.me/clickhouse_ru
    Нууу, в моем случае он выполняется примерно секунд 15-20
  • https://t.me/clickhouse_ru
    @Alexey_Cald #269591 03:33 PM, 12 May 2022
    И раз в день вызывать OPTIMIZE вроде звучит разумно, при такой скорости
  • https://t.me/clickhouse_ru
    а в этом смысле. В общем optimize просто инициирует незапланированный мерж, т.е. если 30 партов в партиции, то например после оптимайз станет 25 и дубликаты останутся, а optimize final мержит до упора (пока есть что мержить или есть свободное место), дубликатов в итоге не останется, но и мерж может занять часы или дни.
  • https://t.me/clickhouse_ru
    Понял, спасибо
  • https://t.me/clickhouse_ru
    @ermakmkb #269594 03:42 PM, 12 May 2022
    Есть ли разница по сложности и по времени между тем, чтобы сделать optimize и положить рядом select from .. final?
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #269592 #269595 03:43 PM, 12 May 2022
    тоже думаю на эту тему. Допустим лежат в таблице какие-то аггрегированные данные. Они туда попадают через MV. Все достаточно стабильно, изменений почти нет. Но иногда - бывают. Не хотелось бы из-за этого каждый раз делать select final. Хочу сделать дневные партиции и периодически смотреть в system.parts, где партов в партишене больше 1-й. И для таких партиций запускать прицельно optimize final. Дневные партиции не такие большие, а событие прихода обновлений не такое частое. Вроде должно работать достаточно приемлемо.
  • https://t.me/clickhouse_ru
    есть. Обычно упоротые пользователи КХ делают в этом случае дневные партиции, и например запросы за сегодня делают с from final, а по ночам(в начале след.дня) запускают optimize final для вчерашней партиции, и запросы к старым данным делают без final.

    я так никогда не делал, у меня groupby быстро работает.
  • https://t.me/clickhouse_ru
    @ermakmkb #269597 03:48 PM, 12 May 2022
    Идея в том, чтобы после отработки etl данные схлопнуть
  • https://t.me/clickhouse_ru
    @ermakmkb #269598 03:48 PM, 12 May 2022
    Собственно либо переложить крайнюю(ние) партицию отдельно, либо на всю таблицу optimize
  • https://t.me/clickhouse_ru
    @ermakmkb #269599 03:49 PM, 12 May 2022
    Переписывать запросы, чтобы не надо было так делать - отдельная история
  • https://t.me/clickhouse_ru
    либо вы описывате ровно тоже самое что я сказал, либо я совершенно не понимаю о чем вы
  • https://t.me/clickhouse_ru
    @ermakmkb #269601 03:50 PM, 12 May 2022
    Похоже на первое, да
  • https://t.me/clickhouse_ru
    @ermakmkb #269602 03:51 PM, 12 May 2022
    Упоротые пользователи делают final везде. Я пытаюсь уйти от этого с минимальной болью
  • https://t.me/clickhouse_ru
    Кстати, а в этом случае не наступит ли ситуация, когда будет слишком много стейтов и из-за этого argMaxMerge будет страдать по производительности?
  • https://t.me/clickhouse_ru
    argMaxMerge ничем не отличается от любой другой агрегатной функции, sum, avg.
    Если КХ может сделать sum по 1млрд записей, то argMaxMerge делает тоже самое, ну может в два раз медленее потому что надо обработать state. Обычно проблема в наличии groupby , для groupby надо построить хеш таблицу и там перекладывать стейты.
  • https://t.me/clickhouse_ru
    Понял, спасибо большое
  • https://t.me/clickhouse_ru
    @svetorus1 #269607 07:12 PM, 12 May 2022
    Всем привет!
    Использую full join
    Он работает как left.
    Выводит только данные первой таблицы. Начитался документации
    Попробовал global all full outer join- такой же результат.
    Может кто-то сталкивался?
  • @olehdudkin #269608 07:14 PM, 12 May 2022
    Господа, кто-нибудь когонибудь знает из этого списка? Как потыкать палочкой, чтобы заапрувили?
    https://github.com/SeasX/SeasClick/pull/4
    Added Support for Fetch Modes by iliaal · Pull Request #4 · SeasX/SeasClick

    Couple of feature enhancements to simplify data retrieval Added ability to fetch dates as strings (date as Y-m-d and datetime as Y-m-d H:i:s similar to how it is returned by HTTP client) via DATE_...

  • https://t.me/clickhouse_ru
    Спасибо! Попробую.
  • @garikanet #269612 07:35 PM, 12 May 2022
    Обновил Tabix, это релиз на посмотреть мои на работки, есть что по править и допилить, но в целом уже рабочий вариант.

    Сейчас мне интересно подключается он к серверам или нет, т/к пришлось много "ветвится и отлаживатся" под разные версии CH, разницу ловить между 21.x и 22.x и т/д и т/п.

    Ограничения:
    - Google Chrome
    - CH 19+
    - Not readonly user

    Весь код в мастре, собирается без проблем.

    Собранный и готовый: http://dash.tabix.io

    Короткий видео обзор

    Обсудить на github
    tabix.io

    Tabix preview release, dash.tabix.io Discussion: github.com/tabixio/tabix/…

  • https://t.me/clickhouse_ru
    @5381538805 #269614 07:41 PM, 12 May 2022
    Привет, ищу парня.
  • https://t.me/clickhouse_ru
    @skyp5 ↶ Reply to #269614 #269615 07:42 PM, 12 May 2022
    Нашли группу для знакомств) 😂
  • Тут секса итак хватает
  • https://t.me/clickhouse_ru
    @skyp5 ↶ Reply to #269616 #269617 07:42 PM, 12 May 2022
    Да такого)
  • https://t.me/clickhouse_ru
    Вот вы тут шутите, а не в каждой группе на такие "поиски" получишь высокооплачиваемого специалиста :)
    Но, ввиду того как написано предложение, фидбек конечно будет очень не очень, думаю.
  • @olehdudkin #269619 07:44 PM, 12 May 2022
    Вот так и рождаются приколы про айтишников
  • @olehdudkin #269620 07:44 PM, 12 May 2022
    "Я написала в группу где одни парни, так меня нах послали, гребаные айтишники"
  • https://t.me/clickhouse_ru
    👍😂
  • https://t.me/clickhouse_ru
    @skyp5 ↶ Reply to #269618 #269622 07:48 PM, 12 May 2022
    А Вы думаете она вакансию закрыть хочет?)
  • @olehdudkin #269623 07:48 PM, 12 May 2022
    Скорее сама работу ищет ...
  • https://t.me/clickhouse_ru
    Я думаю что будь я девушкой и у меня было бы желание искать человека с деньгами но не очень много... Ммм.. как бы помягче сказать, вычислительных способностей, я бы искал по айтишным группам как раз
    Но вообще вряд-ли тут этот случай
  • https://t.me/clickhouse_ru
    @skyp5 ↶ Reply to #269624 #269625 07:51 PM, 12 May 2022
    😂
  • @Lomdjaria #269626 08:08 PM, 12 May 2022
    Всем привет! Помогите пожалуйста разобраться с мутациями и памятью. Есть таблица:

    engine = AggregatingMergeTree PARTITION BY month
    ORDER BY (objectHash, month)

    Прежде чем запускать мутацию сделал optimise final и дождался завершения (то есть количество партиций и партов стало равным).
    Запустил мутацию, которая бежит по всей патриции без учета ключа, и она потребляет слишком много памяти (отвалились в это время остальные запросы по totalMemoryLimit, и на графиках после запуска видно было как растет потребление памяти). Хочу разбить эту мутацию на несколько. Для этого хочу изменить таблицу на

    engine = AggregatingMergeTree PARTITION BY month
    ORDER BY (objectHash%10, objectHash, month)

    И запускать последовательно несколько мутаций с Where objectHash%10 = i. Но даст ли это результат? Кажется, что при выполнении мутацию, будет всё равно использована целиком вся партиция, и тогда не получу никакой пользы. Я правильно понимаю, что мне нужно также изменить ключ партиционирования чтобы это заработало?
  • https://t.me/clickhouse_ru
    вообще работает. Таблицы обычные? или дистрибьютид? Какая версия КХ?
  • https://t.me/clickhouse_ru
    покажите что за мутация, сколько памяти, мутации не должны использовать много памяти.
  • Большое спасибо за комментарий. Нашел что там в мутации делается подзапрос который вычитывает всю партицию, и видимо из-за него всё отваливалось по памяти.

    Я правильно понимаю, что в целом мутация должна последовательно читать отдельные блоки, а не считывать всю партицию целиком, как я предположил до этого?
  • https://t.me/clickhouse_ru
    Сделал в итоге на том же объёме данных 400 мсек вместо 44 сек
  • https://t.me/clickhouse_ru
    да, мутация последовательно обрабатывает по 8 тыс. строк из парта, несколько партов могут процессится одновременно (это настраивается). Обычно мутации используют мало памяти.

    Если запустить подряд много мутаций они начинают объединятся в одну, с очень-очень длинным выражением, и парсер выражения начинает жрать память (я видел 50 тыс. мутаций объединились и там сотни мегабайт выражение было, падал сервер по ООМ со 100ГБ ОЗУ), в современных КХ это починили
  • 13 May 2022 (143 messages)
  • https://t.me/clickhouse_ru
    @ermakmkb #269634 07:19 AM, 13 May 2022
    Всем привет. В клике есть оператор сравнения по типу пг-шного is distinct? Чтобы можно было null-ы сравнивать в одном выражении?
  • https://t.me/clickhouse_ru
    @mr_looser_01 #269635 08:37 AM, 13 May 2022
    Коллеги, привет
    Подскажите пожалуйста, у нас сейчас кластер clickhouse состоит из одной шарда и трех реплик(хостов соответственно 3)
    Мы хоти переделать кластер немного иначе - 3 шарды и по одной реплике в каждом шарде
    Могут ли быть какие-то проблемы с данными и если да, то как поправить?
  • @EdigarevEA #269636 09:12 AM, 13 May 2022
    Привет. Для внешнего словаря с ShellCommandSource есть возможность сменить таймаут ожидания выполнения команды с 10 секунд?
  • https://t.me/clickhouse_ru
    @zhiraslan_shedzhem #269637 09:14 AM, 13 May 2022
    Привет!😉
    Подскажите, пожалуйста, по следующему вопросу
    Заливаю в витрину CH строку в JSON-формате, которую буду парсить через JSON-функцию (картинка 1)
    Но есть случаи, когда у меня несколько JSON-словарей для одного поля (картинка 2) - как в таких случаях правильно объявить тип поля в витрине? Думал передавать как Array(String), но первый элемент такого массива не первый JSON, а первый символ - то есть '['
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
  • @iamkree #269643 09:33 AM, 13 May 2022
    Коллеги, привет
    Подскажите пожалуйста, как выполнить select по нескольким колонкам и по каждой получить последнее не Null значение в колонке?
  • https://t.me/clickhouse_ru
    https://clickhouse.com/docs/ru/sql-reference/aggregate-functions/reference/anylast/
    https://clickhouse.com/docs/ru/sql-reference/aggregate-functions/#obrabotka-null
  • argMaxIf(<колонка>, <поле сортировки>, условие то колонка не нулл)
  • @179984270 #269647 11:07 AM, 13 May 2022
    Коллеги, добрый день! Проясните, пожалуйста момент. Допустим выполняю select с использованием первичного индекса. Кликхаус определил между какими засечками может лежать нужным мне результат и получилось, например, что нас интересует 100 гранул. Кликхаус будет погранульно искать результат или сперва выгрузит в память все строчки всех гранул, а потом только по ним будет искать?
  • @olehdudkin #269648 11:08 AM, 13 May 2022
    Логично предположить - что по порядку, обрываясь на достижении LIMIT, или в конце.
  • @179984270 #269649 11:09 AM, 13 May 2022
    согласен, что логично) но конкретно у меня ощущения возникают обратные. хотел уточнить
  • https://t.me/clickhouse_ru
    @sibbarb #269651 11:13 AM, 13 May 2022
    Всем привет , можно ли это сделать более оптимально ?
    может есть одна функция какая нить ?
  • https://t.me/clickhouse_ru
    select firstSignificantSubdomain('www.instagram.ru')
  • https://t.me/clickhouse_ru
    спасибо , посмотрю
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #269651 #269654 11:16 AM, 13 May 2022
    Не совсем понятна задача в общем виде, но конкретно для этого случая можно ещё сделать splitByChar('.', 'instagram.ru')
  • @1114590163 #269656 11:22 AM, 13 May 2022
    Всем привет, кто может подсказать решение проблемы?
    После запроса во фронте не отображаются данные таблицы ( через postman, client - данные таблицы выдают в полном объеме), ребут службы не помогает, проблема на всех репликах, проблема на всех ПК.
    2022.05.13 13:10:10.839376 [ 22503 ] {745364f3-90e7-447e-add6-23d899ccd510} <Error> executeQuery: Code: 420. DB::Exception: Cannot UPDATE key column id. (CANNOT_UPDATE_COLUMN) (version 22.3.3.44 (official build)) (from 10.15.231.138:5$
    ALTER TABLE test.archive_float32 UPDATE id=5 WHERE id= 5472), Stack trace (when copying this message, always include the lines below):

    0. DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, bool) @ 0xb3712fa in /usr/bin/clickhouse
    1. DB::MutationsInterpreter::prepare(bool) @ 0x15b399b1 in /usr/bin/clickhouse
    2. DB::MutationsInterpreter::MutationsInterpreter(std::__1::shared_ptr<DB::IStorage>, std::__1::shared_ptr<DB::StorageInMemoryMetadata const> const&, DB::MutationCommands, std::__1::shared_ptr<DB::Context const>, bool) @ 0x15b321bd in /$
    3. DB::InterpreterAlterQuery::executeToTable(DB::ASTAlterQuery const&) @ 0x159c4971 in /usr/bin/clickhouse
    4. DB::InterpreterAlterQuery::execute() @ 0x159c30d2 in /usr/bin/clickhouse
    5. ? @ 0x15d27d3a in /usr/bin/clickhouse
    6. DB::executeQuery(DB::ReadBuffer&, DB::WriteBuffer&, bool, std::__1::shared_ptr<DB::Context>, std::__1::function<void (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_strin$
    7. DB::HTTPHandler::processQuery(DB::HTTPServerRequest&, DB::HTMLForm&, DB::HTTPServerResponse&, DB::HTTPHandler::Output&, std::__1::optional<DB::CurrentThread::QueryScope>&) @ 0x1663cee7 in /usr/bin/clickhouse
    8. DB::HTTPHandler::handleRequest(DB::HTTPServerRequest&, DB::HTTPServerResponse&) @ 0x16641692 in /usr/bin/clickhouse
    9. DB::HTTPServerConnection::run() @ 0x168c8bdb in /usr/bin/clickhouse
    10. Poco::Net::TCPServerConnection::start() @ 0x19b7de4f in /usr/bin/clickhouse
    11. Poco::Net::TCPServerDispatcher::run() @ 0x19b802a1 in /usr/bin/clickhouse
    12. Poco::PooledThread::run() @ 0x19d3d269 in /usr/bin/clickhouse
    13. Poco::ThreadImpl::runnableEntry(void*) @ 0x19d3a5c0 in /usr/bin/clickhouse
    14. start_thread @ 0x7fa3 in /usr/lib/x86_64-linux-gnu/libpthread-2.28.so
    15. clone @ 0xf94cf in /usr/lib/x86_64-linux-gnu/libc-2.28.so
  • какой-то вопрос слишком абстрактный, какие-то проблемы могут быть. Миллион ньюансов может всплыть. Вы выбрали ключ шардирования? Как данные на шарды переливать будете? Приложение готово читать из распределённых таблиц? DDL запросы готовы к работе с шардами?
  • @hhhackkk #269659 11:49 AM, 13 May 2022
    Всем привет, подскажите пожалуйста: есть реплицированная таблица с движком SummingMergeTree, есть ли механизм добавление в кортеж столбцов в которых будут суммироваться данные или нужно пересоздавать таблицу?
  • https://t.me/clickhouse_ru
    в source <max_command_execution_time>10<max_command_execution_time>
  • @179984270 #269661 11:54 AM, 13 May 2022
    Ещё раз всем привет. Может ли маленький размер гранулы (16 строк) оказать негативное влияние на поиск по таблице с несколькими сотнями миллионов строк (мб и > миллиарда)?
  • @179984270 #269662 11:55 AM, 13 May 2022
    *негативное влияние на СКОРОСТЬ поиска
  • https://t.me/clickhouse_ru
    Может замедлять анализ индекса.
    Плюс увеличивается размер индекса в памяти
  • https://t.me/clickhouse_ru
    КХ обрабатывает блоками по 64К строк. 100*8192 строк, они поделятся между 16 потоками, и те начнут обрабатывать в кусками по 64к
  • https://t.me/clickhouse_ru
    что такое данные таблицы ?
  • про размер индекса знаю. проверял его размер, в моём случае получилось суммарно со всех партов около 2ГБ. В оперативку влезает, всё норм. Волнует именно вопрос замедления селекта. Типа раз гранул в 500 раз больше, то и мб и их чтение замедляется
  • https://t.me/clickhouse_ru
    так не надо задать этот кортеж и тогда не будет проблем.
    ищите тут в чате, можно вручную этот список отредактировать
  • понял, спасибо. а этот параметр в 64к строк конфигурируется, или он захардкожен?
  • Спасибо. Размещал внутри <executable>..</executable>, где оно игнорировалось.
  • можно ли уже на рабочей таблице изменить этот список, если можно то как?
  • https://t.me/clickhouse_ru
    да, может. На самом деле смысла меньше 256 задавать нету. Потому что компрессия блоков минимальная 64 КБ, в любом случае КХ будет прочитывать больше строк
  • https://t.me/clickhouse_ru
    параметр max_block_size
  • спасибо!)
  • https://t.me/clickhouse_ru
    @den_crane #269674 12:02 PM, 13 May 2022
    даже если поставить CODEC(NONE) все равно блоки есть и при маленьких index_granularity КХ читает очень много лишних мегабайт
  • @179984270 #269675 12:05 PM, 13 May 2022
    т.е. лучше всего оставить дефолтное значение index_granularity?
  • [Question] Add column to SummingMergeTree table · Issue #3054 · ClickHouse/ClickHouse

    Hello. As I know I can add a column to an existing SummingMergeTree table using Alter table statement. But is it possible to add this new column to the primary key or to the aggregated columns ? Fo...

  • данные в таблице*
  • https://t.me/clickhouse_ru
    "select * from таблица" показывает ничего?
  • ничего не показывает, в логах ошибок нет, в таблице всего 7 строк.
  • Проблема видимо в столбце id т.к. при обращении к другим столбцам, данные отображаются.
    Запрос по которому создавалась таблица:
    CREATE TABLE test.archive_int32 ON CLUSTER cluster_test
    (
    id UInt32,
    ts DateTime64(6),
    value Int32 CODEC(Delta(4), LZ4),
    qvalue UInt8
    )
    ENGINE = ReplicatedReplacingMergeTree('/clickhouse/tables/{shard}/test/archive_int32', '{replica}')
    PARTITION BY toYYYYMM(ts)
    ORDER BY (id, ts)
    SETTINGS index_granularity = 8192
  • https://t.me/clickhouse_ru
    если еще раз выполнить запрос, все равно пусто?
  • https://t.me/clickhouse_ru
    @ermakmkb #269682 12:16 PM, 13 May 2022
    Привет. В клике есть оператор сравнения по типу пг-шного is distinct? Чтобы не надо было отдельно null-ы обрабатывать?
  • пусто, restart сервиса ch не помогает, рестарт страницы фронта не помогает, открытие с другого компа тоже, проблема на всех репликах
  • https://t.me/clickhouse_ru
    а из КХ клиента не пусто?
  • https://t.me/clickhouse_ru
    нет
  • верно, через client данные есть и при обращение через http get, тоже данные есть
  • https://t.me/clickhouse_ru
    так UI тоже http get делает, в смысле баг в /play ?
  • https://t.me/clickhouse_ru
    @stokwel #269688 12:19 PM, 13 May 2022
    ]
  • возможно и баг
  • https://t.me/clickhouse_ru
    и я не понял при чем тут ALTER TABLE test.archive_float32 UPDATE id=5 WHERE id= 5472)
  • https://t.me/clickhouse_ru
    Видимо слишком неправильно задал вопрос
    Спрошу немного иначе, что там нужно сделать, чтобы изменить схему работы кластера на целевую?
  • после выполнения данного запроса, получил exception и play перестал отображать данные в таблицах archive, на всех репликах.
    Если указывать явно столбцы, без id, то данные в play отображаются.
  • https://t.me/clickhouse_ru
    CREATE TABLE test.archive_int32
    ALTER TABLE test.archive_float32
  • Прошу прощения, не тот скрипт создания прислал, вот от таблицы archive_float32:
    CREATE TABLE test.archive_float32 ON CLUSTER cluster_test
    (
    id UInt32,
    ts DateTime64(6),
    value Float32 CODEC(Delta(4), LZ4),
    qvalue UInt8
    )
    ENGINE = ReplicatedReplacingMergeTree('/clickhouse/tables/{shard}/test/archive_float32', '{replica}')
    PARTITION BY toYYYYMM(ts)
    ORDER BY (id, ts)
    SETTINGS index_granularity = 8192
  • https://t.me/clickhouse_ru
    а если в браузере открыть console в developers tools то видно ошибки если выбирать id ?
  • https://t.me/clickhouse_ru
    @adventurehikkikomori #269697 01:40 PM, 13 May 2022
    Добрый вечер! Посоветуйте, пожалуйста, годные папиры по кликхаусу, с максимально приближённым материалом к рабочим задачкам, а не условные доки с «как создать табличку и написать запрос к данным»
  • https://t.me/clickhouse_ru
    А какие ещё есть задачки в кликхаусе ? Кроме создать табличку и написать запросик ?
  • https://t.me/clickhouse_ru
    С более сложными запросиками к табличкам, которые чаще встречаются в работе, чем создайте табличку и напишите свой первый запросик
  • https://t.me/clickhouse_ru
    https://youtu.be/Op9_gEPyc8o
    https://youtu.be/1AJ41Xc1lIQ
    https://youtu.be/efRryvtKlq0
    https://youtu.be/JSLhU_LJ5VE
    002. "Как используют ClickHouse в мире" – Александр Зайцев

    Полтора года назад система управления базами ClickHouse стала открытым ПО. За это время сотни компаний начали ей пользоваться. 12 декабря в Яндексе прошла большая встреча, на которой мы подвели промежуточные итоги. Компания LifeStreet занимается поддержкой ClickHouse и сталкивается с самыми разными кейсами. Александр Зайцев рассказал, в каких индустриях и проектах используют ClickHouse, какие особенности имеет работа с СУБД в разных областях. Другие видео встречи https://events.yandex.ru/events/meetings/12-dec-2017/

  • https://t.me/clickhouse_ru
    @adventurehikkikomori #269702 01:44 PM, 13 May 2022
    Я к тому, что каждая статья == дока, примеры из которой есть в официальной доке
  • https://t.me/clickhouse_ru
    Вот что-то подобное и искала, но предпочтительнее текст
    В любом случае, спасибо❤️
  • https://t.me/clickhouse_ru
    а покажите результат из ClickHouse-client
  • https://t.me/clickhouse_ru
    тест??? в 2022 году? вы что буквы читать умеете? офигеть
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @adventurehikkikomori #269707 01:48 PM, 13 May 2022
    Не знаю почему, но гораздо проще воспринимаю текст, нежели туториалы, скринкасты, и так далее
  • https://t.me/clickhouse_ru
    @adventurehikkikomori #269709 01:48 PM, 13 May 2022
    Доклады вообще прикольно в оффлайне смотреть, на самом деле
  • https://t.me/clickhouse_ru
    я просто шучу. Нету текстов, не написали еще.
  • https://t.me/clickhouse_ru
    @den_crane #269711 01:50 PM, 13 May 2022
    видео есть, часов 100
  • https://t.me/clickhouse_ru
    Вот и я удивилась, что не смогла ничего найти, даже грустно стало
  • https://t.me/clickhouse_ru
    Придётся, значит, смотреть!
  • https://t.me/clickhouse_ru
    некому и некогда писать, бежать надо.
  • https://t.me/clickhouse_ru
    Кликхаус не тормозит же, да
  • https://t.me/clickhouse_ru
    @adventurehikkikomori #269716 01:51 PM, 13 May 2022
  • https://t.me/clickhouse_ru
  • @olehdudkin #269718 01:52 PM, 13 May 2022
    А что насчет функции автонотации ? читабельно?
  • Я смотрел вебинары Алексея Миловидова с автопереводом. Вполне
  • https://t.me/clickhouse_ru
    @den_crane #269720 01:54 PM, 13 May 2022
    AI особенно умен если мешать в неразборчивой речи тех.термины на двух языках
  • https://t.me/clickhouse_ru
    баг в джаваскрипте в коде (play)

    select arrayJoin([5,5,5,5472,5472,5472,5]) id ;

    https://github.com/ClickHouse/ClickHouse/issues/37191
    play ui shows nothing (js error play:579 Uncaught TypeError: response.data[0][0].startsWith is not a function) · Issue #37191 · ClickHouse/ClickHouse

    22.3.4.20 select arrayJoin([5,5,5,5472,5472,5472,5]) id ; empty result browser console VM7 play:579 Uncaught TypeError: response.data[0][0].startsWith is not a function at renderResult (VM7 play:57...

  • спасибо!
  • https://t.me/clickhouse_ru
    @den_crane #269723 02:10 PM, 13 May 2022
    хорошо что пазл сложился, а то я бы еще неделю думал, че это
  • @subotic0 #269724 02:15 PM, 13 May 2022
    всем привет, после апа с 21.8 на 22.3 стал отваливаться селект из mssql данных по odbc. Отваливается примерно через 30 мин, какая настройка за это отвечает?
  • @olehdudkin #269725 02:20 PM, 13 May 2022
    Вставки в Join Table Engine синхронные или нет?
  • https://t.me/clickhouse_ru
    а раньше через сколько отваливалось?
  • @olehdudkin #269727 02:20 PM, 13 May 2022
    у нас странное поведение системы, как будто данные в джоин тейбл не сразу доступно после инсерта
  • https://t.me/clickhouse_ru
    @nyoroon #269728 02:21 PM, 13 May 2022
    добрый вечер! увеличиваю ttl через alter table ... modify ttl ... settings materialize_ttl_after_modify = 0
    но кликхаус всё равно запускает мутации. ЧЯДНТ?
    ClickHouse server version 21.8.15 revision 54449.
  • @179984270 #269729 02:26 PM, 13 May 2022
    следует ли ожидать просадки по скорости селекта, когда параллельно в таблицу грузятся данные?
  • https://t.me/clickhouse_ru
    @orantius #269730 02:30 PM, 13 May 2022
    ну диск не резиновый
  • @179984270 #269731 02:35 PM, 13 May 2022
    с диском то понятное дело) вопрос больше в том, не влияют не до конца слитые вместе дата парты на скорость селекта?
  • Раньше работало, по логам смотрю в районе 4 часов
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #269731 #269733 02:56 PM, 13 May 2022
    Влияют. Несколько партов быстрее, т.к. идет параллельное чтение.
  • https://t.me/clickhouse_ru
    on cluster ?
  • https://t.me/clickhouse_ru
    да
  • https://t.me/clickhouse_ru
    а из одного парта нет параллельных чтений? конечно есть
  • https://t.me/clickhouse_ru
    на on cluster не влияют settings.

    надо установить materialize_ttl_after_modify = 0 в профиле дефалтного пользователя и рестартовать КХ (потому что ddlworker стартует и читает профиль в момент старта КХ).

    или не использовать on_cluster
  • https://t.me/clickhouse_ru
    возможно из-за

    было
    SELECT name, value FROM system.settings WHERE name LIKE '%receive_timeout%'
    ┌─name─────────────────┬─value─┐
    │ receive_timeout │ 300 │
    │ http_receive_timeout │ 1800 │
    └──────────────────────┴───────┘

    было
    select name, value from system.settings where name like '%receive_timeout%';
    ┌─name─────────────────┬─value─┐
    │ receive_timeout │ 300 │
    │ http_receive_timeout │ 180 │
    └──────────────────────┴───────┘
  • https://t.me/clickhouse_ru
    ок, спасибо! эту мутацию с чистой душой можно прибить?
  • https://t.me/clickhouse_ru
    да
  • @anotherbugmaster #269741 03:28 PM, 13 May 2022
    Привет! Тестирую projections, при включенном флаге allow_experimental_projection_optimization число читаемых рядов значительно сокращается, но при этом падает скорость чтения. В итоге без проекции читается ~300kk строк со скоростью 2.4ГБ/сек, а с проекцией - ~115к строк со скоростью 3МБ/сек. В итоге прирост получается всего в 2 раза - так должно быть или я что-то делаю неправильно? Почему так сильно падает скорость чтения?
  • https://t.me/clickhouse_ru
    allow_experimental_projection_optimization включен по умолчанию
  • @anotherbugmaster #269743 03:33 PM, 13 May 2022
    У меня версия 20.10.5, в ней ещё не включен)
  • https://t.me/clickhouse_ru
    не надо пробовать проджекшины в 20.10
  • @anotherbugmaster #269745 03:34 PM, 13 May 2022
    Почему? Там что-то очень сильно сломано?
  • https://t.me/clickhouse_ru
    да
  • @anotherbugmaster #269747 03:36 PM, 13 May 2022
    Хорошо, спасибо
  • @DeeDoubleYouEitch #269750 04:16 PM, 13 May 2022
    У кого-нибудь ReplacingMergeTree теряет данные? Есть такая таблица
    CREATE TABLE default.some_table (
    `key_hash` UInt64, /* = cityHash64(String, String) */
    `is_allowed` UInt8,
    `created_at` DateTime
    )
    ENGINE = ReplacingMergeTree(created_at)
    ORDER BY key_hash
    SETTINGS index_granularity = 1024
    При вставке в нее теряются уникальные key_hash, примерно половина. Версия 20.12.3.3. Ключей должно быть 15+М, после вставки остается 5-7М, результат колеблется
  • как выглядят запросы вставки и выборки?
  • @DeeDoubleYouEitch #269752 04:26 PM, 13 May 2022
    Спасибо! )) В тотале все сходится. Причина в интервальном условии на created_at. Сначала в подзапросе, а потом во внешнем запросе. Условие это набирает больше значений в исходной тяжелой таблице, в которой мержи происходят редко, а целевая мержится быстро и без дублей получается меньший результат.
  • https://t.me/clickhouse_ru
    20.12.3 вообще у всех селектов неправильный результат, надо 20.12.8.5

    https://github.com/ClickHouse/ClickHouse/issues/18137
    20.12.3.3 Less amount of data is returned if "read backoff" is in effect. · Issue #18137 · ClickHouse/ClickHouse

    Consider following: 1 master server with Distributed table (tracking_distributed), 2 shards, previously was 4 shards, but during chat discussion i've reduced them to 2 for easier debugging ...

  • @garikanet #269755 06:28 PM, 13 May 2022
    ⭐️ Tabix need help

    У кого есть ClickHouse за SSL, и кто может проверить что Tabix соединяется - проверьте плиз
    https://beta.tabix.io/?

    Должен соединится с CH если SSL сертификату доверяет ваш браузер
  • @dj_mixer #269757 06:33 PM, 13 May 2022
    а будут записи вчерашних митапов?
  • https://t.me/clickhouse_ru
    говорят их подчистят и выложат
  • https://t.me/clickhouse_ru
    https://github.demo.trial.altinity.cloud:8443 demo/demo

    https://play.clickhouse.com play/play
  • Спасибо!

    Но тут видимо readOnly <> 2

    Setting max_execution_time should not be changed.
  • https://t.me/clickhouse_ru
    @den_crane #269762 07:03 PM, 13 May 2022
    ¯\_(ツ)_/¯
  • @garikanet #269763 07:03 PM, 13 May 2022
    Tabix делает запрос на сервер curl "https://github.demo.trial.altinity.cloud:8443/?output_format_json_quote_denormals=1&output_format_json_quote_64bit_integers=1&log_queries=1&enable_http_compression=1&add_http_cors_header=1&result_overflow_mode=throw&timeout_overflow_mode=throw&max_execution_time=10&max_result_rows=90000&max_result_bytes=10000000&user=demo&password=demo&query=SELECT%20version()%20as%20version"

    Если валится - то нихт ))
  • @garikanet #269764 07:05 PM, 13 May 2022
    Поднял свой валидный SSL (летсинспипт) на отдельной DNS записи - смог подключится к дефолтному CH

    https-Tabix.IO -> https-igorstrykhar.io получилось -)
  • Если будет возможность проверьте пожалуйста еще раз, что httpS получилось решить - буду очень благодарен!
  • Вот такую ошибку даёт на серверы, которые Denny указал
  • @garikanet #269767 07:22 PM, 13 May 2022
    На эти не получится, только на серверы где нормальный user

    Tabix вообще не может работать с readOnly user ((

    ReadOnly = 2 сможет, другими нет (

    Tabix нужно указывать настройки output_format_json_quote_denormals=1&output_format_json_quote_64bit_integers=1 и т/д если не смог -> значит нихт
  • https://t.me/clickhouse_ru
    @youngbluesman #269768 08:34 PM, 13 May 2022
    Ребятушки! Имею на диске папочку detached весит около 30ГБ не знаю можно ее херить или нет. Может подскажите как быть?
  • https://t.me/clickhouse_ru
    да
    если там давно лежат файлы (посмотрите даты), то смело удаляйте.

    https://kb.altinity.com/altinity-kb-useful-queries/detached-parts/
  • https://t.me/clickhouse_ru
    @den_crane #269770 08:38 PM, 13 May 2022
    КХ-у не нужны файлы в detached
  • https://t.me/clickhouse_ru
    @den_crane #269771 08:38 PM, 13 May 2022
    он их не испольует
  • https://t.me/clickhouse_ru
    @youngbluesman #269772 08:38 PM, 13 May 2022
    А есть способ узнать используются ли они шобнаверняка?
  • https://t.me/clickhouse_ru
    @youngbluesman #269773 08:40 PM, 13 May 2022
    Это все началось с того, что я настроил clickhouse-backup
  • https://t.me/clickhouse_ru
    @den_crane #269774 08:40 PM, 13 May 2022
    КХ-у не нужны файлы в detached
    он их не использует,

    КХ никогда сам, без команды пользователя не использует файлы в detached
  • https://t.me/clickhouse_ru
    вторая черепашка врет
  • https://t.me/clickhouse_ru
    Не понял отсылки, простите.
  • https://t.me/clickhouse_ru
    анекдот-загадка про трех черепашек есть такой
  • https://t.me/clickhouse_ru
    А это, все равно не понял, как это соотносится. В любом случае, спасибо за помощь, пошел курить маны
  • https://t.me/clickhouse_ru
    @ermakmkb #269779 09:12 PM, 13 May 2022
    Предположу, что detach по логике своей не должен возникать в результате backup, отсюда атрибуция не совсем верная.
  • https://t.me/clickhouse_ru
    @youngbluesman #269780 09:34 PM, 13 May 2022
    Так бы сразу и сказал, что с clickhouse-backup'ом это, скорее всего не связано.
  • https://t.me/clickhouse_ru
    @youngbluesman #269781 09:34 PM, 13 May 2022
    (-:
  • https://t.me/clickhouse_ru
    @youngbluesman #269782 09:35 PM, 13 May 2022
    Эзопов язык, это не для наших групп.
  • https://t.me/clickhouse_ru
    @youngbluesman #269783 09:50 PM, 13 May 2022
    История такая: есть CH развернутый в GKE через clickhouse-operator, сейчас он находится в одном кластере с приложением и я хочу его мигрировать в отдельный. 2 шарда по 3 репилки, по одной на зону. Я настроил clickhouse-backup, с намерением не торопясь протестировать и оптимизировать новый кластер, развернуть на нем данные и переключить туда приложение с минимальными простоем, потому что данные в CH льются из Kafka.
    И вот, где-то после этого, у меня начало пропадать место в этот чертов detached. Не могу понять что за хрень. Усложняется все тем, что я ни хера не понимаю в базах данных (ну, почти)
  • https://t.me/clickhouse_ru
    что лежит в detached ? ignored_ ?
  • https://t.me/clickhouse_ru
    @youngbluesman #269785 10:03 PM, 13 May 2022
    Ща позырю...
  • https://t.me/clickhouse_ru
  • 14 May 2022 (52 messages)
  • https://t.me/clickhouse_ru
    @youngbluesman #269791 12:06 AM, 14 May 2022
    Всё, продуплил шары. Тогда вопрос: я просто удаляю всю папку и я счастлив, или надо какую-то "особую" команду?
  • https://t.me/clickhouse_ru
    @Krisantis #269795 06:44 AM, 14 May 2022
    Здравствуйте, подскажите пожалуйста:
    два дня назад обновились на версию 22.1.3
    и вот что сегодня обнаружили: утечку по памяти, причём это не словари.
    Как проверить, что держит память?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    большое спасибо, сейчас буду выяснять виновника)
  • https://t.me/clickhouse_ru
    чето не нашли нужного кейса в статье. еще нет ничего почитать?
  • https://t.me/clickhouse_ru
    Этот график показывает что? Что такое memory tracker?
    Как rss выглядит из линукса? Как выглядел до обновления?
    Есть какфка? Есть live view? Есть rabbit?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    красная линия, время обновления кх.

    Метрика берется из ch exporter, ее забирает прометей. Не помню, встроенный ли метрик сервер в кликхаус или отдельно стоит.
    Имя метрики: ClickHouseMetrics_MemoryTracking.

    Да, кх работает с rabbitmq, забирает сообщения из кролика и складывает в таблицу.

    Кафки - нет, Live view тоже
  • https://t.me/clickhouse_ru
    с какой версии на какую обновлялись?
  • https://t.me/clickhouse_ru
    С 21.12.что-то на 22.1.3
  • https://t.me/clickhouse_ru
    Я помню что эта метрика показывала минус 400tb. Очень показательная метрика.
  • https://t.me/clickhouse_ru
    Модельки не билдятся, валятся по памяти, как видно по графику, на данный момент ch съел где-то на 8-9Gb больше от нормального аллоцированного объема
  • https://t.me/clickhouse_ru
    Если сказать detach table таблице с engine раббит то что с графиком?
  • https://t.me/clickhouse_ru
    модельки? В смысле?
  • https://t.me/clickhouse_ru
    Не хватает памяти материализовать таблицы, раньше хватало
  • https://t.me/clickhouse_ru
    Вот метрика с метрик сервера кубернейтса. Потребление оперативной памяти подом
  • https://t.me/clickhouse_ru
    @emanaev #269815 09:11 AM, 14 May 2022
    Добрый день!
    Есть данные биржевых сделок в формате
    Время
    Бумага
    Сумма

    Как эффективно выбрать данные по бумаге в виде "свечей"? Т.е. разбить заданный интервал на одинаковые кусочки, для каждого кусочка выбрать первое значение, минимальное, максимальное, последнее.

    В общем случае запрос вот такой:
    SELECT t1.price AS open, m.high, m.low, t2.price as close, open_time FROM (SELECT MIN(timeInMilliseconds) AS min_time, MAX(timeInMilliseconds) AS max_time, MIN(price) as low, MAX(price) as high, FLOOR(timeInMilliseconds/(1000*60)) as open_time FROM ticks GROUP BY open_time) m JOIN ticks t1 ON t1.timeInMilliseconds = min_time JOIN ticks t2 ON t2.timeInMilliseconds = max_time
    Но для ClickHouse это вряд ли хороший вариант.
  • https://t.me/clickhouse_ru
    а кусочки заранее известной длинны?
  • https://t.me/clickhouse_ru
    Да, одинаковой длины
  • https://t.me/clickhouse_ru
    @emanaev #269818 09:14 AM, 14 May 2022
    1 час - например
  • https://t.me/clickhouse_ru
    а в чем проблема сейчас что типо плохой перфоманс или что?
  • https://t.me/clickhouse_ru
    Да не сказал бы. Но на больших объемах не гонял, и смущает двойной джойн
  • https://t.me/clickhouse_ru
    @emanaev #269821 09:15 AM, 14 May 2022
    Вроде как не самый лучший вариант для Клика
  • https://t.me/clickhouse_ru
    @Sablast #269822 09:16 AM, 14 May 2022
    а зачем вам вообще джойн?
  • https://t.me/clickhouse_ru
    @Sablast #269823 09:17 AM, 14 May 2022
    select toStartOfInterval(timeInMilliseconds, interval 1 hour) open, MIN(timeInMilliseconds) AS min_time, MAX(timeInMilliseconds) AS max_time, MIN(price) as low, MAX(price) as high, argMin(price, timeInMilliseconds) as open, argMax(price, timeInMilliseconds) as close from ticks group by open
  • https://t.me/clickhouse_ru
    В данном случае - чтобы найти первую и последнюю запись внутри куска.
    Подозреваю, что это можно сделать с помощью window function
  • https://t.me/clickhouse_ru
    запрос выше думаю вам поможет
  • https://t.me/clickhouse_ru
    Да, похоже. Попробую, спасибо!
  • https://t.me/clickhouse_ru
    не, argMin/max гораздо кайфовее чем оконки
  • https://t.me/clickhouse_ru
    Argmin и argMax потребляют меньше памяти чем wf. Wf все записи окна держат в памяти и медленее
  • https://t.me/clickhouse_ru
    Да я и смотрю. Почитаю внимательнее про них
  • https://t.me/clickhouse_ru
    @emanaev #269830 09:22 AM, 14 May 2022
    Спасибо!
  • https://t.me/clickhouse_ru
    @Sablast #269834 10:27 AM, 14 May 2022
    {"2022-04-26 11:51:33": {"start": "2022-04-26 11:51:33", "reason": "manual_change"},
    "2022-03-01 00:41:19": {"Model": {"Type": 0, "Email": null}, "Message": null, "Success": false},
    "2022-03-02 12:44:19": {"Model": {"Rrn": null, "Type": 1, "Email": null}, "Message": null, "Success": true}} as json
    подскажите, а что ожидает в качестве аргумента функция JSON_QUERY?
    пытаюсь достать значение reason вот таким выражением JSON_QUERY(json, '$..reason')
    на что получаю ошибку:
    Code: 36. DB::Exception: Unable to parse JSONPath: While processing '{"2022-04-26 11:51:33": {"start": "2022-04-26 11:51:33", "reason": "manual_change"}, "2022-03-01 00:41:19": {"Model": {"Type": 0, "Email": null}, "Message": null, "Success": false}, "2022-03-02 12:44:19": {"Model": {"Rrn": null, "Type": 1, "Email": null}, "Message": null, "Success": true}}' AS a, isValidJSON(a) AS valid_json, JSON_QUERY(a, '$..start') AS reason, version(). (BAD_ARGUMENTS) (version 21.11.8.4 (official build))
  • https://t.me/clickhouse_ru
    @Sablast #269835 10:27 AM, 14 May 2022
    хотя онлайн парсер нормально распознаёт
  • https://t.me/clickhouse_ru
    У вас получилось ? Я просто пытаюсь уже минут 30 у меня не выходит
  • https://t.me/clickhouse_ru
    @Sablast #269837 11:01 AM, 14 May 2022
    неа, не понимаю чего не хватает
  • https://t.me/clickhouse_ru
    select JSON_QUERY(tupleElement(t, 2), '$.reason')
    from (select arrayJoin(JSONExtractKeysAndValuesRaw('{"2022-04-26 11:51:33": {"start": "2022-04-26 11:51:33", "reason": "manual_change"},
    "2022-03-01 00:41:19": {"Model": {"Type": 0, "Email": null}, "Message": null, "Success": false},
    "2022-03-02 12:44:19": {"Model": {"Rrn": null, "Type": 1, "Email": null}, "Message": null, "Success": true}}')) as t)
  • https://t.me/clickhouse_ru
    Варианты достать конечно есть, но я хочу именно через JSONPath одной функцией
  • https://t.me/clickhouse_ru
    @Sablast #269840 11:35 AM, 14 May 2022
    Надо просто понять это баг или нюансы работы в кх
  • может вот это?

    Before version 21.11 the order of arguments was wrong, i.e. JSON_QUERY(path, json)
  • https://t.me/clickhouse_ru
    Ну тут только про порядок, но у меня и версия 21.11.8.4
  • https://t.me/clickhouse_ru
    Хвастаетесь?
  • https://t.me/clickhouse_ru
    @catent #269845 12:54 PM, 14 May 2022
    Не в тот чат скорее всего)
  • Сорри!
  • @subotic0 #269847 01:24 PM, 14 May 2022
    оно, спасибо
  • https://t.me/clickhouse_ru
    Его здесь нет
  • https://t.me/clickhouse_ru
    @tedm24 #269851 01:48 PM, 14 May 2022
    Привет! Clickhouse version 22.3.5.5 Метрика RWLockActiveReaders ушла в планку (1K+ значение) и не меняется (никогда не уменьшается. Очередь репликаций и мержей только растет. Процессор и сеть не загружены практически Кто-нибудь сталкивался с таким?
  • https://t.me/clickhouse_ru
    @madiken_habr #269854 07:29 PM, 14 May 2022
    Добрый день.

    Столкнулась с вопросом, как выбрать order by для таблицы в Clickhouse.

    Допустим, есть транзакционная таблица. Как такового, primary key у нее нет.

    Допустим, данные вносятся ежемесячно.

    Как должно быть:

    Mergetree order by <перечень ключевых полей> partition by <дата>

    или

    Mergetree order by tuple() partition by <дата>

    или просто

    Mergetree partition by <дата>

    От чего зависит выбор ключа order by?

    Если есть хорошие ссылки, поделитесь пожалуйста.
  • https://t.me/clickhouse_ru
    Наверное я бы посоветовал ещё разочек прочитать доку и понять что такое PK Order BY и Partition by
  • https://t.me/clickhouse_ru
    Ну и первый вариант самый нормальный, но партиции можно по месячные сделать
  • https://t.me/clickhouse_ru
    @konnectrl #269857 07:33 PM, 14 May 2022
    Но всё зависит от данных уже
  • https://t.me/clickhouse_ru
  • 15 May 2022 (83 messages)
  • https://t.me/clickhouse_ru
    @madiken_habr #269863 04:40 AM, 15 May 2022
    Спасибо, почитаю :)
    В целом конечно понимаю, для чего order by. Просто на транзакционных данных объемы за месяц небольшие. И непонятно, зачем ещё их привязывать к пятью ключам.
    Надеюсь, документация поможет :)
  • https://t.me/clickhouse_ru
    если объемы небольшие то берите любой вариант. например по дате. тут нет задачи соблюдать уникальность ключа
  • https://t.me/clickhouse_ru
    @madiken_habr #269865 04:59 AM, 15 May 2022
    В order by дату?
  • https://t.me/clickhouse_ru
    например да. вообще если у вас данных в таблице мало то это неважное решение которое ни на что не повлияет.

    морочится про ордер бай нужно если потом сложно делать селекты или есть работа с дубликатами
  • https://t.me/clickhouse_ru
    @madiken_habr #269867 05:05 AM, 15 May 2022
    Мне надо подумать, т.е. order by - это типа индекса для селектов.
  • https://t.me/clickhouse_ru
    это в прямом смысле то как будут упорядочены данные. если просто сделать select * from table то они вот в таком порядке выйдут
  • не путайте человека, выборка select * без явного order by является недетерминированной операцией, нет стопроцентной гарантии, что такая выборка будет отсортирована по индексу
  • https://t.me/clickhouse_ru
    100% гарантии нет. но работает именно так.
  • https://t.me/clickhouse_ru
    @kobzevvv #269872 05:56 AM, 15 May 2022
    гарантия понятно зачем нужна чтобы ориентироватся на эту выборку. и конечно такую гарантию в таком случае не нужно давать
  • смотрите, какие запросы вы будете писать к этим данным. что в where постоянно будет, то и кладите в order by или partition by. low-cardinality поля двигайте в начало индекса
  • @tiger_and_dragon #269874 07:36 AM, 15 May 2022
    Всем привет! Забился сервер с КХ на 100% по памяти. Не могу подключиться теперь к КХ что бы почистить его. Пишет просто Connection refused. Кто-то сталкивался, как решать?
  • https://t.me/clickhouse_ru
    Рестартануть кх.
  • не помогает, он сам постоянно пытается рестартонуться и падает. Почистил партиции в файловой системе, потом рестартонул и так уже все норм, подключается)
  • https://t.me/clickhouse_ru
    @sakutepov #269877 09:21 AM, 15 May 2022
    всем привет
    в логах начали всплывать ошибки
    DB::Exception: There is no column rp_contest.null in table. (NO_SUCH_COLUMN_IN_TABLE) (version 22.4.4.7 (official build))

    подскажите, пожалуйста, чего ему надо и как это лечить
  • https://t.me/clickhouse_ru
    Посмотрите свои запросы на вставку. Судя по всему идёт попытка вставить null в не nullable колонку
  • https://t.me/clickhouse_ru
    в том то и дело, что это nullable колонка
  • https://t.me/clickhouse_ru
    А колонку сразу создавали nullable или, может, через alter меняли?
  • https://t.me/clickhouse_ru
    сразу

    попробовал выполнить optimize table … final settings optimize_throw_if_noop=1

    таже ошибка
  • https://t.me/clickhouse_ru
    Обновитесь до 22.4.5.9
    https://github.com/ClickHouse/ClickHouse/issues/36687
    22.4 Vertical merges of wide parts are broken · Issue #36687 · ClickHouse/ClickHouse

    Vertical merges of wide parts fail if there is an array in the table and not all columns are present in parts. CREATE TABLE aaa ( a Array(Int16), b Int8 ) ENGINE = MergeTree ORDER BY tuple() settin...

  • @179984270 #269883 10:13 AM, 15 May 2022
    Коллеги, добрый день! Заметил, что в директории /var/lib/clickhouse/store остаются пустые папки после удаления соответствующих таблиц. Так и должно быть? Есть способ "из коробки" очистки КХшного мусора с диска?
  • https://t.me/clickhouse_ru
    спасибо!
  • https://t.me/clickhouse_ru
    Например?
  • Что например?
  • https://t.me/clickhouse_ru
    Имя папки
  • https://t.me/clickhouse_ru
    @526143964 #269889 02:48 PM, 15 May 2022
    Всем привет. Подскажите, пожалуйста, кто использует вот этот тул для backup/restore:
    https://github.com/AlexAkulov/clickhouse-backup
    Я когда пытаюсь cделать restore, то предварительно выкачиваю backup from s3 bucket. Потом делаю
    backup restore <directory name>
    Получаю следующую ошибку:
    error can't restore '<database_name>.<table_name>': error during filepath.Walk for partition '201905_25403_32885_1': lstat /data/clickhouse/backup/2022-03-11T09-44-05/shadow/<database_name>/<table_name>/201905_25403_32885_1: no such file or directory

    Причина в том, что backup-тул заархивировал все или почти файлы с данными. Я могу это конечно в скрипте разархивировать. Но может есть какой-то флаг в этом туле, чтобы он мог из архивов делать restore. Или еще какие-то детали есть.
    Помогите, пожалуйста
    GitHub - AlexAkulov/clickhouse-backup: Tool for easy ClickHouse backup and restore with cloud storages support

    Tool for easy ClickHouse backup and restore with cloud storages support - GitHub - AlexAkulov/clickhouse-backup: Tool for easy ClickHouse backup and restore with cloud storages support

  • https://t.me/clickhouse_ru
    в смысле выкачиваю? он сам выкачивает clickhouse-backup download
    clickhouse-backup list -- работает? версии одинаковые?
  • https://t.me/clickhouse_ru
    ну эти остаются, так задумано
  • Понял, спасибо
  • https://t.me/clickhouse_ru
    @pimpmyyoba #269894 03:29 PM, 15 May 2022
    посоны, как перекачать 870млн строк из одной таблицы в другую с такой же схемой?
  • INSERT INTO tbl1 SELECT * FROM tbl2
  • https://t.me/clickhouse_ru
    невозможно долго
  • https://t.me/clickhouse_ru
    @pimpmyyoba #269897 03:32 PM, 15 May 2022
    мб есть какие-то махинации с партициями?
  • https://t.me/clickhouse_ru
    @pimpmyyoba #269898 03:32 PM, 15 May 2022
    мне необходимо проставить PRIMARY KEY, из-за этого приходится перекачивать 870млн строк
  • @stuffy_fluffy #269899 03:33 PM, 15 May 2022
    чтож у вас там за строки такие, что всего 1ярд записей переливать долго?
  • @stuffy_fluffy #269900 03:33 PM, 15 May 2022
    или сервер дюже слабый?
  • https://t.me/clickhouse_ru
    проставить? Вы знаете что такое PRIMARY KEY?
  • https://t.me/clickhouse_ru
    t2.xlarge
  • https://t.me/clickhouse_ru
    я понимаю, что его нельзя “проставить”. Мне нужен способ как из одной таблицы перелить в другую такую же где уже есть primary key в схеме
  • https://t.me/clickhouse_ru
    Вы знаете что такое PRIMARY KEY?
  • не густо =(
  • https://t.me/clickhouse_ru
    это префикс у ORDER BY
  • https://t.me/clickhouse_ru
    я могу поменять, сколько нужно ресурсов, примерно?
  • https://t.me/clickhouse_ru
    в смысле у вас есть ORDER BY (a,b,c,d,e,f,g), а вы хотите PRIMARY KEY (a,b,c) ?
  • https://t.me/clickhouse_ru
    @pimpmyyoba #269909 03:38 PM, 15 May 2022
    How do I update a Clickhouse table to be able to sample from it?

    I'm trying to sample rows from a clickhouse table. Below you can find the table definition CREATE TABLE trades ( `id` UInt32, `ticker_id` UUID, `epoch` DateTime, `nanoseconds` UInt3...

  • https://t.me/clickhouse_ru
    @pimpmyyoba #269910 03:39 PM, 15 May 2022
    моя схема, нужно включить SAMPLE
  • https://t.me/clickhouse_ru
    @pimpmyyoba #269911 03:39 PM, 15 May 2022
    в схеме неправильный ORDER BY, как исправить – не знаю
  • https://t.me/clickhouse_ru
    Я видел, что есть такая возможность, но по привычке использовал aws s3 cp ..
  • не могу сказать, не использовал ни разу КХ с меньше 128гб на инстанс 🤷‍♂️
  • https://t.me/clickhouse_ru
    в этом случае 1млрд rows будет ок?
  • https://t.me/clickhouse_ru
    А чем PRIMARY KEY поможет с SAMPLE ?
  • https://t.me/clickhouse_ru
    по другому не работает, мне нужно:

    PRIMARY KEY intHash32(id)
    SAMPLE BY intHash32(id)
  • https://t.me/clickhouse_ru
    @526143964 #269917 03:42 PM, 15 May 2022
    clickhouse-backup list работает:
    ~clickhouse-backup list
    2022-03-11T09-44-05 151.17GiB 11/03/2022 09:44:07 local tar
  • https://t.me/clickhouse_ru
    еще один стрелок в ногу
  • https://t.me/clickhouse_ru
    @526143964 #269919 03:42 PM, 15 May 2022
    версии одинаковые
  • https://t.me/clickhouse_ru
    как не стрелять?
  • https://t.me/clickhouse_ru
    внимательно читать https://kb.altinity.com/altinity-kb-queries-and-syntax/sampling-example/
    потом тестировать на тестовой таблице.

    с
    PRIMARY KEY intHash32(id)
    SAMPLE BY intHash32(id)
    у вас таблица в размерах увеличится раз в n и все будет дичайше тормозить
    Sampling Example

    Clickhouse table sampling example

  • https://t.me/clickhouse_ru
    @pimpmyyoba #269922 03:47 PM, 15 May 2022
    если делать SAMPLE BY на текущей схеме, то отвечает ошибкой
  • https://t.me/clickhouse_ru
    sampling дохрена непростая штука

    у вас сейчас какой ORDER BY ?
  • https://t.me/clickhouse_ru
    который бы мне починил кликхаус
  • https://t.me/clickhouse_ru
    How do I update a Clickhouse table to be able to sample from it?

    I'm trying to sample rows from a clickhouse table. Below you can find the table definition CREATE TABLE trades ( `id` UInt32, `ticker_id` UUID, `epoch` DateTime, `nanoseconds` UInt3...

  • https://t.me/clickhouse_ru
    @pimpmyyoba #269927 03:54 PM, 15 May 2022
    предполагаю, что должно быть
    ```
    CREATE TABLE trades
    (
    `id` UInt32,
    `ticker_id` UUID,
    `epoch` DateTime,
    `nanoseconds` UInt32,
    `amount` Float64,
    `cost` Float64,
    `price` Float64,
    `side` UInt8
    )
    ENGINE = MergeTree()
    ORDER BY intHash32(id)
    PARTITION BY (ticker_id, toStartOfInterval(epoch, toIntervalHour(1)))
    PRIMARY KEY intHash32(id)
    SAMPLE BY intHash32(id)
    ```
  • https://t.me/clickhouse_ru
    @anna7yeyghgh #269928 03:56 PM, 15 May 2022
    питер тут?
  • https://t.me/clickhouse_ru
    @glhftyirka #269929 03:58 PM, 15 May 2022
    кто тут кто тут?
  • ну это очень странный вопрос, сколько там ваш 1млрд весит? +-100Гб?
    вот я поставил переливку таблицы: 77 столбцов, в среднем 1 строка ~1kb данных
    переливается ~552.80 thousand rows/s, т.е. 1 млрд уйдёт за полчаса гдето - по мне это не долго
  • https://t.me/clickhouse_ru
    16gb
  • @stuffy_fluffy #269932 04:00 PM, 15 May 2022
    т.е. пока обсуждали в чате оно должно было несколько раз уже перелиться?))
  • https://t.me/clickhouse_ru
    гуд. А как-то надо тюнить кликхаус дополнительно, если я сделаю 128гб какой-нибудь инстанс?
  • @stuffy_fluffy #269934 04:04 PM, 15 May 2022
    я не умею в облака, чтобы тупо переливать select * память то не особо нужна - цпу+диски, мб коллеги кто с облачным работает точнее подскажут
  • @stuffy_fluffy #269935 04:06 PM, 15 May 2022
    вот попробовал:
    Elapsed: 273.547 sec. Processed 132.38 million rows, 133.62 GB (483.94 thousand rows/s., 488.48 MB/s.)
    потребление выше 2Гб Озу не поднялось ни разу
  • https://t.me/clickhouse_ru
    интересно сколько таблица станет после переливки, 160ГБ или 640ГБ
  • https://t.me/clickhouse_ru
    Кстати, КХ при инсерте сразу жмёт парты, или только при мердже ?
  • https://t.me/clickhouse_ru
    и жмет и сортирует прямо в момент инсерта, поэтому инсерту нужна память чтобы отсортировать в памяти все записи блока.

    можно настроить разную компрессию для маленьких партов и для больших. Т.е. типа LZ4 пока парт меньше чем 10ГБ, а после например ZSTD2
  • https://t.me/clickhouse_ru
    почему?
  • https://t.me/clickhouse_ru
    ну отсротирована таблица была по x,y и поэтому значения близкие значения хорошо сжимались (были рядом) , а теперь у вас таблица будет отсортирована по рандому, и жаться не будет.

    Вы бы потренировались сначала, на тестовой таблице, на тестовых данных, sampling дюже непростая штука и ее очень сложно и мало кому нужно использовать.
  • https://t.me/clickhouse_ru
    @pimpmyyoba #269941 04:19 PM, 15 May 2022
    на тесте стало меньше
  • https://t.me/clickhouse_ru
    нет, это не так. Партиции остаются те же, сортировка идет внутри партиции
  • https://t.me/clickhouse_ru
    PARTITION BY (ticker_id, toStartOfInterval(epoch, toIntervalHour(1)))
    ORDER BY (ticker_id, epoch)

    1. непонятно зачем вам вообще был нужен ticker_id в order by, потому что у вас патриционирована по этому полю и всегда одно и тоже значение в партиции.

    2. Таблица была отсортирована по epoch это значит что значения тикера шли отсортированные по времени.
  • https://t.me/clickhouse_ru
    1. это ошибка
    2. отсортировано по epoch внутри партиции
  • https://t.me/clickhouse_ru
    да и я согласен что эта схема неправильная, может эта правильная?
  • https://t.me/clickhouse_ru
    спасибо. Не понимаю почему, но если использовать clickhouse-backup для скачивания, то restore выполняется успешно
  • https://t.me/clickhouse_ru
    так download что-то делает, я не помню, или распаковывает или меняет json с описанием
  • https://t.me/clickhouse_ru
    видимо, да. Спасибо
  • 16 May 2022 (126 messages)
  • https://t.me/clickhouse_ru
    @Hardstep83 #269952 06:14 AM, 16 May 2022
    Коллеги, добрый день. Забавная фича или бага, что думаете?
    select true = 1
    учитывая что в доке указано что булевого типа в КХ нет, его заменяет UInt8
  • https://t.me/clickhouse_ru
    @orantius #269953 06:48 AM, 16 May 2022
    может нет, а может и есть
    SELECT toTypeName(true)
    ┌─toTypeName(true)─┐
    │ Bool │
    └──────────────────┘
  • https://t.me/clickhouse_ru
    ну имеется ввиду что хранится как UInt8
  • https://t.me/clickhouse_ru
    @DarshilxD #269955 07:28 AM, 16 May 2022
    hi all , i want to query on table which has json as data type with where clause , but it is not working !
    create table testj( A Int64, device JSON ) Engine=MergeTree order by A;
    insert into testj (device) format TSV {"brand_name":"oppo","brand_id":"1235","country":"india"}
    insert into testj (device) format TSV {"brand_name":"apple","brand_id":"1236","country":"usa"}
    SELECT * FROM testj WHERE device.brand_name = india

    and getting this error :
    Missing columns: 'india' while processing query: 'SELECT A, device FROM
    testj WHERE device.brand_name = india', required columns: 'A'
    'device.brand_name' 'india' 'device', maybe you meant: ['A','device'].
    (UNKNOWN_IDENTIFIER)
  • hi, you need to use quotes to mean a string value instead of some column name
  • https://t.me/clickhouse_ru
    @unet903 #269960 08:10 AM, 16 May 2022
    CREATE TABLE IF NOT EXISTS user_activity_event (
    event_date DateTime('Europe/Moscow'),
    event_type Enum8(
    'COURSE_VIEW' = 1,
    'LIBRARY_DOWNLOAD' = 2,
    'LIBRARY_VIEW' = 3,
    'COURSE_CLICK_BUTTON' = 4,
    'COURSE_CREATE_ORDER' = 5
    ),
    object_id UInt32,
    object_owner UInt32 NULL
    created_at DateTime('Europe/Moscow') DEFAULT now('Europe/Moscow')
    ) ENGINE = MergeTree()
    ORDER BY (event_date, event_type, object_id)
    PARTITION BY toYYYYMM(event_date)
    Добрый день вот такая структура таблицы.
    Пользую Yandex Data STREAM
    Там нет типа ENUM только string И вот я пытаюсь тип Enum перевести в string
    alter table user_activity_event modify column event_type String;

    и получаю ошибку.

    Code: 524. DB::Exception: ALTER of key column event_type from type Enum8('COURSE_VIEW' = 1, 'LIBRARY_DOWNLOAD' = 2, 'LIBRARY_VIEW' = 3, 'COURSE_CLICK_BUTTON' = 4, 'COURSE_CREATE_ORDER' = 5, 'OTHER' = 6) to type String is not safe because it can change the representation of primary key. (ALTER_OF_COLUMN_IS_FORBIDDEN) (version 22.3.5.5 (official build))

    Гугление говорит, что надо пересоздавать базу данных можно ли как-то это обойти?
  • @2070273164 #269961 08:17 AM, 16 May 2022
    Никак не обойти
  • @2070273164 #269962 08:18 AM, 16 May 2022
    Если бы колонка не была в order by, можно было бы
  • @2070273164 #269963 08:20 AM, 16 May 2022
    Но вы можете попробовать сделать конвертацию из строки в enum на вставке
  • @2070273164 #269964 08:23 AM, 16 May 2022
    Т.е. делать insert в null таблицу и конвертировать колонку в Materialized View
  • https://t.me/clickhouse_ru
    @unet903 #269965 08:34 AM, 16 May 2022
    Т.е. делать insert в null таблицу
    Вот тут не понял что имеется ввиду
  • https://t.me/clickhouse_ru
    @unet903 #269967 08:38 AM, 16 May 2022
    Кажется понял о чем речь.
    В идеале пример нужен доку почитал что это такое
  • @2070273164 #269968 08:52 AM, 16 May 2022
    примерно так: создаёте таблицу src_user_activity_event с теми же колонками, что у вас, только event_type String и Engine=Null, потом пишете create materialized view to_user_activity_event to user_activity_event as select event_date, КОНВЕРТАЦИЯ , object_id, object_owner, created_at from src_user_activity_event. Конвертацию делаете через функцию multiIf
  • @hsv000 #269970 09:32 AM, 16 May 2022
    простите, только поставил Кх но что-то не так с кодировкой
  • https://t.me/clickhouse_ru
    все так, псоставьте 22.3 вместо 22.1

    были issue связанные с этим
  • @hsv000 ↶ Reply to #269972 #269973 09:35 AM, 16 May 2022
    спс!
  • https://t.me/clickhouse_ru
    у вас винда ?
  • https://t.me/clickhouse_ru
    @behemo ↶ Reply to #269975 #269979 11:55 AM, 16 May 2022
    Попробуйте через docker-compose развернуть. И тут кажется проблема с локальным клиентом.
    Изолируйте от системы и 99% все заработает
  • https://t.me/clickhouse_ru
    @behemo #269980 11:57 AM, 16 May 2022
    https://github.com/rongfengliang/clickhouse-docker-compose как быстрый пример. Есть и другие варианты
    GitHub - rongfengliang/clickhouse-docker-compose: clickhouse-docker-compose

    clickhouse-docker-compose. Contribute to rongfengliang/clickhouse-docker-compose development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @Alexey_Cald #269981 12:53 PM, 16 May 2022
    Можно ли сделать из внешней postgresql таблички табличку в КХ с движком join?
  • https://t.me/clickhouse_ru
    можно сделат ьсловарь который будет позож на join
  • https://t.me/clickhouse_ru
    Понял, спасибо
  • https://t.me/clickhouse_ru
    @zhiraslan_shedzhem #269984 01:03 PM, 16 May 2022
    Привет!
    Подскажите, пожалуйста, кто знает, какого формата должны быть данные в питоне, чтобы залить их в ClickHouse как Array?
  • https://t.me/clickhouse_ru
    @kernelorg #269985 01:05 PM, 16 May 2022
    Подскажите пожалуйста как восстановить таблицу ? Пытаюсь восстановить таблицу на реплике, по следующему методу:
    DETACH TABLE table_name;
    SYSTEM DROP REPLICA 'replica_name' FROM ZK PATH '/table_path_in_zk/';
    ATTACH TABLE table_name;
    SYSTEM RESTORE REPLICA table_name;
    SYSTEM SYNC REPLICA table_name;

    Но SYSTEM RESTORE REPLICA table_name; говорит:

    Received exception from server (version 22.1.3):
    Code: 49. DB::Exception: Received from localhost:9000. DB::Exception: It's a bug: replica is not readonly. (LOGICAL_ERROR)

    Хотя: SYSTEM SYNC REPLICA table_name; говорит обратное:
    Received exception from server (version 22.1.3):
    Code: 164. DB::Exception: Received from localhost:9000. DB::Exception: Cannot SYNC REPLICA, because replica is readonly. (READONLY)

    Таблица на самом деле в read only. Спасибо
  • @kirillov_mikhail #269987 02:07 PM, 16 May 2022
    Добрый день
    Вопрос по внешним словарям
    в качестве источника - таблица в клике
    в условии - dictGet из другого словаря
    словарь создается, при попытке загрузки данных (dictionary reload) падает ошибка Code: 36. DB::Exception: Unexpected key in dictionary source configuration

    Можно ли использовать dictGet при создании словаря?
  • https://t.me/clickhouse_ru
    покажите как словарь создаете? через XML ?
    или как?

    вообще у меня получалось несколько словарей lookup делать через вложенные dictGet
  • create dictionary __tmp_dictionary_2022_05_16_17_36_40_944(
    a UInt64,
    b UInt32,
    c UInt32,
    d UInt8,
    book_id UInt8) PRIMARY KEY a, b, c
    SOURCE(CLICKHOUSE(TABLE '__tmp_table_2022_05_16_17_34_18_099' WHERE
    'book_id = 6
    AND c in (20220725, 20220919) AND dictGet('dict_one', 'g', toUInt64(a)) in (102020604)
    AND dictGet('dict_two', 'r', toUInt64(b)) in ('AE')'))
    LIFETIME(MIN 0 MAX 0)
    LAYOUT(COMPLEX_KEY_HASHED_ARRAY)
  • https://t.me/clickhouse_ru
    одинарные кавычки внутри одинарных кавычек

    WHERE "book_id= ... dictGet('...', ... "
    попробуйте
  • https://t.me/clickhouse_ru
    и второй dictGet кавычками вообще не закрыт
    то есть открывающие есть, а закрывающих нет
  • https://t.me/clickhouse_ru
    можно использовать heredoc $$ текст $$ https://clickhouse.com/docs/en/sql-reference/syntax#heredeoc
  • @kirillov_mikhail #269994 02:32 PM, 16 May 2022
    заэскейпил одинарные ковычки через back slash
    проблема с словарями - нужно обращаться к ним database.dict_one
    спасибо за помощь
  • https://t.me/clickhouse_ru
    да, словари созданные через SQL это db.dict_name
    словари через XML это просто dict_name
  • https://t.me/clickhouse_ru
    @den_crane #269996 02:37 PM, 16 May 2022
    можно к SQL словарям обращаться без db, будет использована current база (это давно добавлено)
  • https://t.me/clickhouse_ru
    потому что вы пытаетесь решить проблему которую так не решить.
    зачем вы вообще это делаете?
  • https://t.me/clickhouse_ru
    Потому что нуб в CH. Пересоздали таблицу, вроде все ок стало. Спасибо
  • https://t.me/clickhouse_ru
    А как там преобразовать string в Enum ?
  • https://t.me/clickhouse_ru
    @zagirnur #270000 03:00 PM, 16 May 2022
    Можно ли удалять данные из Set engine? ALTER TABLE […] DELETE WHERE […] не работает. Спасибо заранее за ответ)
  • Через multiIf: multiIf(условие 1, значение для условия 1, условие 2, значение для условия 2, ... значение при несовпадении всех условий)
  • @2070273164 #270002 03:05 PM, 16 May 2022
    Если у вас приходят указанные строки, то так: multiIf (event_type = 'COURSE_VIEW', 1, event_type = 'LIBRARY_DOWNLOAD' , 2, event_type = 'LIBRARY_VIEW' , 3, etc ...., 0) as event_type
  • @msmk_cn #270004 03:11 PM, 16 May 2022
    Привет всем. Имеет ли смысл для улучшения сжатия в ORDER BY добавлять actionable_id в этом примере данных?

    Структура таблицы:
    user_id uint32, current_id uint32, actionable_id uint32
    ORDER BY (user_id, current_id)

    Пример данных:
    user_id | current_id | actionable_id
    1 | 1 | 10
    15047 | 1 | 32
    9 | 1 | 81
    10 | 1 | 13
    1 | 2 | 10
    15047 | 2 | 32
    9 | 2 | 81
    10 | 2 | 13
    При условии, что в каждом уникальном current_id никогда не дублируется actionable_id?
  • https://t.me/clickhouse_ru
    @KingwayRoy4le #270005 03:11 PM, 16 May 2022
    Здравствуйте
  • https://t.me/clickhouse_ru
    @KingwayRoy4le #270006 03:11 PM, 16 May 2022
    помогите, как сделать команду связанную с базой данных по типу такого инвентаря
  • https://t.me/clickhouse_ru
    @KingwayRoy4le #270007 03:11 PM, 16 May 2022
    🏢 Хранилище
    ———————————
    52 💠 — сапфир
    1 🏆 — кубок
  • https://t.me/clickhouse_ru
    IMHO тут лучше DELTA codec лучше применить
  • точно, надо попробовать. спасибо
  • https://t.me/clickhouse_ru
    вопрос не ясен

    что такое "команда связанная с базой данных"?
    имеется ввиду SQL запрос или что?
  • https://t.me/clickhouse_ru
    Ну типа смотри, инвентарь где сохраняются предметы с базы данных
  • А можете подсказать сильное ли будет снижение производительности при запросе вида SELECT COUNT(*) FROM actions WHERE current_id = 2 GROUP BY user_id ? при условии использовании delta codec на current_id
  • https://t.me/clickhouse_ru
    @unet903 #270013 03:19 PM, 16 May 2022
    Добрый день есть splitByChar(separator, s)

    А как его заставить преобразовать потом все строковые значения в INT ???
  • https://t.me/clickhouse_ru
    я имел ввиду дельта кодек на actionable_id

    но в принципе и на current_id можно сделать дельту

    нет оно не влияет почти на производитительность
    у вас в основном на GROUP BY время CPU уйдет
    и на WHERE current_id = 2 на сравнение
  • https://t.me/clickhouse_ru
    можно попробовать LowCardinality(uint32) использовать вместо кодека...
  • https://t.me/clickhouse_ru
    @BloodJazMan
  • https://t.me/clickhouse_ru
    извините, я не понимаю о чем вы говорите
  • https://t.me/clickhouse_ru
    хм как же обьяснить
  • https://t.me/clickhouse_ru
    @KingwayRoy4le #270019 03:23 PM, 16 May 2022
    вызываешь команду инвентаря где хранятся предметы из базы данных, они тратятся когда передаешь или покупаешь что-то у бота или когда тебе их передают то они добавляются
  • https://t.me/clickhouse_ru
    @orantius #270020 03:24 PM, 16 May 2022
    может вам на какой-то базе попроще тренироваться?
  • https://t.me/clickhouse_ru
    я работаю на sqlite3
  • Я же правильно понимаю, что LowCardinality создаёт словарь, и чем больше уникальных значений, тем хуже в плане производительности для словаря?
  • https://t.me/clickhouse_ru
    ну, а clickhouse тут причем?
    это задача для sqlite или postgresql

    в кликхаус можно историю сгрузить
    https://clickhouse.com/docs/ru/engines/table-engines/mergetree-family/collapsingmergetree
    CollapsingMergeTree | ClickHouse Docs

    table_engine-collapsingmergetree}

  • https://t.me/clickhouse_ru
    ну он словарь на блок создает, так что серьезные проблемы тогда когда больше сотен тысяч на блок
  • Гениально. Спасибо.
  • https://t.me/clickhouse_ru
    Уффф завелось, Есть еще типы array есть splitByChar(separator, s) который просто строку поделит с разделителем и мы получим массив строк, а можно в CH как-то каждое значение в массиве преобразовать в нужный тип ? мне надо в INT
  • https://t.me/clickhouse_ru
    cast(['1','2','3'] AS Array(Int64))
  • arrayMap(x->toInt...(x), splitByChar(....))
  • https://t.me/clickhouse_ru
    @socketpair #270030 04:23 PM, 16 May 2022
    DB::Exception: Checksum doesn't match: corrupted data. Reference: 468023eceeaf0d17e14c15d87f1b3416. Actual: 0a2247d069df18fcfce942b1a2589306. Size of compressed block: 27746. The mismatch is caused by single bit flip in data block at byte 23278, bit 7. This is most likely due to hardware failure. If you receive broken data over network and the error does not repeat every time, this can be caused by bad RAM on network interface controller or bad controller itself or bad RAM on network switches or bad CPU on network switches (look at the logs on related network switches; note that TCP checksums don't help) or bad RAM on host (look at dmesg or kern.log for enormous amount of EDAC errors, ECC-related reports, Machine Check Exceptions, mcelog; note that ECC memory can fail if the number of errors is huge) or bad CPU on host. If you read data from disk, this can be caused by disk bit rot. This exception protects ClickHouse from data corruption due to hardware failures.
  • https://t.me/clickhouse_ru
    @socketpair #270031 04:24 PM, 16 May 2022
    Господа эксперты. Подскажите, что это за такая крутая чексумма, которая может аж локейшн бита указать ?
  • https://t.me/clickhouse_ru
    @catent #270032 04:24 PM, 16 May 2022
    Возможно там перебрали все биты просто
  • https://t.me/clickhouse_ru
    даже не знаю как пошутить
  • https://t.me/clickhouse_ru
    @catent #270034 04:25 PM, 16 May 2022
    И сравнили хеши
    Где совпал там и был флип
  • https://t.me/clickhouse_ru
    @catent ↶ Reply to #270033 #270035 04:26 PM, 16 May 2022
    Ну так в чем проблема пройтись по всем битам, пофлипать каждый, взять хеш и посмотреть, где совпадёт
  • https://t.me/clickhouse_ru
    @catent #270036 04:26 PM, 16 May 2022
    Ситихеш может гигабайты в секунду делать
  • https://t.me/clickhouse_ru
    Size of compressed block: 27746
  • https://t.me/clickhouse_ru
    @socketpair #270038 04:26 PM, 16 May 2022
    ну тоесть 27746*8 раз посчитать хеш ?
  • https://t.me/clickhouse_ru
    @socketpair #270039 04:27 PM, 16 May 2022
    интересный способ. хотелось бы узнать правда ли так
  • https://t.me/clickhouse_ru
    @catent #270040 04:27 PM, 16 May 2022
    10 гигабайт в секунду на одно ядро в гошной имплементации, например
  • https://t.me/clickhouse_ru
    @catent #270041 04:28 PM, 16 May 2022
    на крестах скорее всего ещё быстрее
  • https://t.me/clickhouse_ru
    никак. Set engine вообще штука одноразовая. Попользовался, пересоздал.
  • https://t.me/clickhouse_ru
    сast ( .... as Array(Int64))
  • https://t.me/clickhouse_ru
    Можно еще посчитать контрольную сумму по "колонкам". И определить проблемное место по пересечению несовпавших контрольных сумм колонки и строки.
  • https://t.me/clickhouse_ru
    в парте есть файлик с checksum-ми

    есть код на go который может поправить
  • https://t.me/clickhouse_ru
    @den_crane #270046 04:37 PM, 16 May 2022
    GitHub - marliotto/clickhouse-bitflip

    Contribute to marliotto/clickhouse-bitflip development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    Спасибо, но... мне не надо править. вопрос был про то как чексумма позволяет найти бит. Парт я уже удалил.
  • https://t.me/clickhouse_ru
    переключает все биты по одному пытаясь понять сколько битов надо изменить
  • https://t.me/clickhouse_ru
    понял, спс.
  • https://t.me/clickhouse_ru
    @socketpair #270050 04:38 PM, 16 May 2022
    Вобще, интересно. Неужели НАСТОЛЬКО часто, что заморочились подобной штукой
  • https://t.me/clickhouse_ru
    @den_crane #270051 04:38 PM, 16 May 2022
    есть доклад Миловидова зачем все это, они несколько месяцев дебажили проблему
  • https://t.me/clickhouse_ru
    и что в итоге оказалось ?
  • https://t.me/clickhouse_ru
    @socketpair #270053 04:39 PM, 16 May 2022
    космические лучи ?
  • https://t.me/clickhouse_ru
    @den_crane #270054 04:39 PM, 16 May 2022
    оказалось это в сетевом обоудовании
  • https://t.me/clickhouse_ru
    ППЦ
  • https://t.me/clickhouse_ru
    @catent #270056 04:39 PM, 16 May 2022
    Отъявленные баги и как их избежать на примере ClickHouse / Алексей Миловидов (Яндекс)

    Приглашаем на HighLoad++ Foundation — крупнейшую в России профессиональную IT-конференцию. Подробности и билеты: https://bit.ly/3HYVSKS 🔥В программе — более 130 докладов, каждый из которых решает конкретную задачу. Но конференция — это не только доклады. На HighLoad++ Foundation вы легко сможете пообщаться с топами IT-индустрии и найти ответы на свои вопросы. Ждем вас 13 и 14 мая 2022 г. в Крокус-Экспо! -------- При поддержке AvitoTech мы впервые публикуем все видео с HighLoad++ 2019 в открытый доступ. Учитесь, вдохновляйтесь и перенимайте лучшие практики у спикеров, не выходя из дома. -------- Календарь конференций - https://ontico.ru -------- HighLoad++ 2019 Тезисы и презентация: https://www.highload.ru/moscow/2019/abstracts/6091 Если вы пишете код, готовьтесь к проблемам. Проблемы обязательно будут и ожидать их стоит со всех сторон — и из вашего кода, и от компилятора, и от операционной системы, и от железа. Если вы отмасштабировали кластер до космических масштабов, то ожидайте космические баги. Особенно, если речь идёт про данные из интернет-трафика. ... -------- Нашли ошибку в видео? Пишите нам на support@ontico.ru

  • https://t.me/clickhouse_ru
    Забавно. но у меня не кластер ни разу. память с EDAC. Жёсткий диск простой сата (магнитный)
  • https://t.me/clickhouse_ru
    битый cpu ?
  • https://t.me/clickhouse_ru
    ну даже не знаю. как проверить? вмятин не видно
  • https://t.me/clickhouse_ru
    не знаю,
    я просто возвращаю такие сервера хостеру , и беру точно такой же, но другой 🙂
  • https://t.me/clickhouse_ru
    причём по логам в едаке вобще тишина
  • https://t.me/clickhouse_ru
    @den_crane #270063 04:47 PM, 16 May 2022
    If you read data from disk, this can be caused by disk bit rot.
  • https://t.me/clickhouse_ru
    На серверных дисках обещают одну ошибку на 10^15 bit прочитанных (125Tb), вероятно дальше може быть bit rot на диске
  • https://t.me/clickhouse_ru
    ну это понятно. но я не очень представляю как такое возможно. там же тоже чексуммы на каждом углу
  • https://t.me/clickhouse_ru
    Я думаю в целевой надёжности чексуммы учтены производителем
  • https://t.me/clickhouse_ru
    @den_crane #270067 05:03 PM, 16 May 2022
    кажется у дисков не настолько хорошие чексуммы (не 128 бит), и они могут пропустить гниение с некоторой вероятностью
  • https://t.me/clickhouse_ru
    @Alexey_Cald #270068 05:11 PM, 16 May 2022
    SELECT session_id
    FROM postgresql('host', 'dbname', 'logs', 'username', '123123')
    LIMIT 1

    Пытаюсь прочитать хоть что-то из большой таблички Постгри, падает с ошибкой таймаута. В табличке ~4млн записей. Если пытаться прочитать из маленькой таблички, то всё ок
  • https://t.me/clickhouse_ru
    @Brahmaleykin #270069 05:11 PM, 16 May 2022
    Приветствую, други! Подтолкните к решению, пожалуйста

    Был создан MATERIALIZED VIEW v_name TO t_name select* from kafkaqueue

    В t_name был некий не нуловый столбец для которого в kafkaqueue прилетели нуловые значения и эти данные застряли во вьюхе

    Приёмник t_name был беспощадно поальтерен, но при попытке после извлечь из вьюхи застрявшие данные вижу фигу CANNOT_INSERT_NULL_IN_ORDINARY_COLUMN

    1) правильно понимаю, что данные застряли именно во вью, а не в kafkaqueue ( запрос к вью показывает данные, к kafkaqueue нет)?

    2) Есть возможность проальтерить вью без потери данных которые там застряли? К примру переделать на без TO
  • https://t.me/clickhouse_ru
    @Brahmaleykin #270070 05:12 PM, 16 May 2022
    В kafkaqueue данные льются сессиями и нового пока не доливается, пока вопрос именно вытащить застрявшие
  • https://t.me/clickhouse_ru
    не гниение, а кручение. Мне тут сказали, что на одометре в машине, RPM - это Redhat Package Manager
  • https://t.me/clickhouse_ru
    сколько секунд в сообщение с ошибкой?
  • https://t.me/clickhouse_ru
    Сначала пытался через dbeaver, там по дефолту таймаут 30 сек, потом через веб UI, там я от нгинкса получил таймаут (не знаю сколько, по ощущением около минуты)
  • https://t.me/clickhouse_ru
    во вью ничего не может застрять. Вью работает в момент инсерта
  • https://t.me/clickhouse_ru
    при чем тут КХ тогда? пишите в nginx
  • https://t.me/clickhouse_ru
    @Alexey_Cald #270076 05:19 PM, 16 May 2022
    нууу, я к тому, что он даже с limit 1 не может ничего забрать
  • https://t.me/clickhouse_ru
    @Alexey_Cald #270077 05:19 PM, 16 May 2022
    Или прежде чем сделать лимит КХ вычитывает всю табличку?
  • https://t.me/clickhouse_ru
    @Alexey_Cald #270078 05:20 PM, 16 May 2022
    Причем с мелкими табличками всё работает
  • https://t.me/clickhouse_ru
    limit делается на стороне КХ.

    т.е. КХ час сосет данные из PG, затем делает limit.
    у вас клиент (beaver/nginx) не ждут этот час а отваливаются через минуту (30 сек). КХ тут при чем?
  • https://t.me/clickhouse_ru
    А, лимит на стороне КХ, тогда всё понял, спасибо
  • https://t.me/clickhouse_ru
    @den_crane #270081 05:22 PM, 16 May 2022
    limit не проталкивается в PG по причине что код общий для всех баз, некоторые базы умеют limit, некоторые top, некоторые ни top ни limit, поэтому так
  • https://t.me/clickhouse_ru
    Вроде и понимаю, но в доке

    Материализованные (MATERIALIZED) представления хранят данные, преобразованные соответствующим запросом SELECT

    Т.е. именно хранят или я могу смело сделать детач, поменять запрос вьюхи , сделать аттач и всё поедет?
  • https://t.me/clickhouse_ru
    А что насчет блока where? Так же?
  • https://t.me/clickhouse_ru
    @Brahmaleykin #270084 05:23 PM, 16 May 2022
    Запрос к первичной таблице на кафкадвижке отдаёт ничего, а вью данные показыват
  • https://t.me/clickhouse_ru
    да

    https://youtu.be/1LVJ_WcLgF8?list=PLO3lfQbpDVI-hyw4MyqxEk3rDHw95SzxJ&t=7597
    https://den-crane.github.io/Everything_you_should_know_about_materialized_views_commented.pdf
  • https://t.me/clickhouse_ru
    Так-так, спасибо
  • https://t.me/clickhouse_ru
    проталкиваются функции и операторы которые есть во всех базах (типа ANSI SQL)
  • https://t.me/clickhouse_ru
    Понял, спасибо
  • Подскажите пожалуйста, а для всех readonly юзеров можно передавать/устанавливать add_http_cors_header ?
    Или в у вас в конфиге сервера указано разрешение?

    В коде по умолчанию отключен CORS M(Bool, add_http_cors_header, false, "Write add http CORS header.", 0)
  • https://t.me/clickhouse_ru
    /report
  • 17 May 2022 (193 messages)
  • https://t.me/clickhouse_ru
    @Krisantis #270097 03:06 AM, 17 May 2022
    Подскажите, что в кх, кроме словарей и temp таблиц, может перманентно держать память?
  • https://t.me/clickhouse_ru
    @Alexey_037 #270098 03:30 AM, 17 May 2022
    Ну какую то часть могут мутации постоянные откушивать.
  • https://t.me/clickhouse_ru
    не подскажите как увидеть память аллоцированную мутациями? и они её не возвращают что ли?
  • https://t.me/clickhouse_ru
    @Alexey_037 #270100 03:42 AM, 17 May 2022
    сами мутации есть?
    select * from system.mutations
  • https://t.me/clickhouse_ru
    select * from system.mutations where is_done <> 1
    - неоконченных нету. А так есть, да
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @809771411 #270103 07:29 AM, 17 May 2022
    Всем привет!
    Можно ли настройку stream_flush_interval_ms применить к конкретной таблице?
    Или же только применима для всех потоковых таблиц?
  • https://t.me/clickhouse_ru
    @unet903 #270104 07:45 AM, 17 May 2022
    Всем привет пытаюсь сделать вьюшку на массив поля q1 чтобы из String преобразовывать в Array, но почему-то постоянно только пустые значения записывает. Что я делаю не так ?

    create table user_activity_event3
    (
    event_date DateTime('Europe/Moscow'),
    object_id UInt32,
    q1 Array(String)
    )
    engine = MergeTree PARTITION BY toYYYYMM(event_date)
    ORDER BY (event_date, object_id);

    create table user_activity_event3_src
    (
    event_date DateTime('Europe/Moscow'),
    object_id UInt32,
    q1 String
    )
    engine = Null;

    create materialized view to_user_activity_event3 to user_activity_event3 as select event_date, object_id, splitByString(',', q1) from user_activity_event3_src;

    INSERT INTO user_activity_event3_src (event_date, object_id, q1)
    VALUES ('2022-05-17 09:46:22', 12, '1,2,3,4,5,6');
  • нейминг полей во вью для этого поля сделайте
    create materialized view to_user_activity_event3 to user_activity_event3 as select event_date, object_id, splitByString(',', q1) as q1 from user_activity_event3_src;
  • https://t.me/clickhouse_ru
    @unet903 #270106 08:09 AM, 17 May 2022
    Работает, спасибо!!!
    Вопрос, а все эти преобразования через materialized view они сильно будут тормозить все ? Не могу на вход получать иные значения кроме String
  • https://t.me/clickhouse_ru
    @svobodsky #270107 08:46 AM, 17 May 2022
    Добрый день, в продолжение темы Materialized View прошу подсказать по решению проблемы с MV:

    1. Есть основная таблица с событиями от пользователей с примерно 50 млн записей в сутки
    2. Создал AggregatingMergeTree таблицу с сессиями пользователей, в которую передаёт данные Materialized View (примерно 400 тыс записей в сутки)
    3. Для удобства также создал вьюху на MV, где используются Merge-суффиксы для выборки данных.

    На тестовом сервере всё было хорошо... С запросами, которые агрегируют данные (средние длительности сессий и т.д.) даже в разрезе периода (session_date) и любых других полей и на боевой базе всё работает как надо и даже быстро, однако в некоторых запросах для дальнейшей работы требуется именно когорта сессий с определёнными параметрами - и вот тут возникает проблема - даже такой запрос при раскомментировании условия user_state перестаёт работать (а вместе с этим и все остальные, построенные на этой когорте), упираясь в память (30Гб на запрос) а фильтры требуются практически по всем полям.

    Memory limit (for query) exceeded: would use 27.94 GiB (attempt to allocate chunk of 4456448 bytes), maximum: 27.94 GiB: While executing AggregatingTransform (version 21.4.6.55 (official build))

    Запрос напрямую к MV (не через обычную вьюху, но с теми же Merge-функциями) не решает проблему.

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

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

    Всё, что понимаю в настоящий момент о MV - исключительно благодаря "Everything you should know about materialized views" by Denny Crane и нескольким видео об использовании CH в принципе от Алексея Миловидова, Александра Зайцева и т.д. по "околоэтой" теме, если есть что-то более свежее/подробное/с примерами использования - буду очень благодарен за ссылки!

    Спасибо!
    CREATE TABLE stat_event_sessionON CLUSTER cluster( `session` String, - Pastebin.com

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

  • https://t.me/clickhouse_ru
    мы решили подобную задачу через dbt макрос в итоге
  • https://t.me/clickhouse_ru
    @kobzevvv #270110 09:11 AM, 17 May 2022
    тоже aggregate работало норм на тесте, а потом начало тупить
  • https://t.me/clickhouse_ru
    Агрегацию основной таблицы или агрегацию уже MV?
  • https://t.me/clickhouse_ru
    Исходя из названия этой группы, не должно. 😉 Вангую, что это просто я что-то делаю не так... Возможно, совсем... 😊
  • https://t.me/clickhouse_ru
    основной таблицы да. AggregatingMergeTree как-то медленно работа. я пришел к выводу что причина в том что у нас кейс когда мало событий в сессии, типо 3-5 а эта тема когда аггрегируются сотни тысячи. ну или хз
  • https://t.me/clickhouse_ru
    Ну у меня количество "событий" и "сессий" всё же критично отличается - на два порядка... Вроде, для этого оно и надо, но конкретных рецептов приготовления пока не очень нашёл, думаю, партиционирование уже упростило бы многое, но по агрегируемому полю оно невозможно... :-(
  • https://t.me/clickhouse_ru
    ага, похожая была проблема. я закастовал все в лоу-кардиналити и другие подобные штуки. сделал индексы и норм работает. в итоге. и в реальном времени данные доступны
  • https://t.me/clickhouse_ru
    Спасибо, и так попробую, но, вдруг, все решается как-то проще и я просто этого не знаю?!
  • https://t.me/clickhouse_ru
    @Alexey_Cald #270117 09:49 AM, 17 May 2022
    Есть какой-то способ объявить колонку не Nullable и когда инсертится Null заменять его на какой-то default?
  • https://t.me/clickhouse_ru
    ifNull()
  • https://t.me/clickhouse_ru
    @Alexey_Cald #270119 09:52 AM, 17 May 2022
    Но это в блоке селект, а я хочу задать такое поведение при создании таблицы
  • https://t.me/clickhouse_ru
    Так, вроде, DEFAULT даже в синтаксисе прописан...
    CREATE TABLE | ClickHouse Docs

    create-table-query}

  • прописать DEFAULT для колонки
  • https://t.me/clickhouse_ru
    @Alexey_Cald #270122 09:54 AM, 17 May 2022
    Хммм... Как-то не отработало
    Может я не так проверяю, секунду
  • https://t.me/clickhouse_ru
    создавать из селекта хотите?
  • https://t.me/clickhouse_ru
    А, всё, понял
    Я проверял для Array(), для него default не нужен, он туда сам пихает []
  • https://t.me/clickhouse_ru
    @AnKochem #270125 10:24 AM, 17 May 2022
    подскажите плиз, не могу избавиться от таблицы system.metric_log

    в конфиге прописал <metric_log remove="1" />
    дропаю таблицу, перезапускаю сервер - таблица снова здесь и снова заполняется
  • @997664653 #270126 10:48 AM, 17 May 2022
    Добрый день.
    Есть вопрос по функционалу with rollup. Не могу понять, как в результируюющем датасете отличить строки-итоги от строк-результатов-groupBy в случае, если в groupBy есть nullable колонка. Пример результата, где строки выглядят одинаково – но одна это итог по 2019 году, другая это просто группировка по ‘месяц’=null:
    Есть ли какой-то подход, чтобы подсветить какую-то из этих строк как «отличную от другой»?

    Запросы, на всякий случай:
    create table test1.tmp_rollup
    (year String, month Nullable(String), value Int64)
    Engine = MergeTree Order By (year);

    insert into test1.tmp_rollup
    VALUES
    (2019, 'май', 1),
    (2019, 'июнь', 2),
    (2019, null, 5),
    (2020, 10 , 1);

    select year, month, sum(value)
    from test1.tmp_rollup
    group by year, month with rollup
  • @packofopinions #270127 11:10 AM, 17 May 2022
    Добрый день. Может кто-нибудь знает, есть ли функционал named_collections в 21.8.13.1.altinitystable? Никак не удается найти
  • https://t.me/clickhouse_ru
    @unet903 #270128 11:33 AM, 17 May 2022
    Добрый день использую materialized view
    там вот такая конвертация arrayMap(x->toInt8(x), splitByString(',', course_additional_info))

    Возможно ли это все заставить работать с null
    На вход или string или null
  • 21.11
  • спасибо
  • в ifNull обернуть?
  • https://t.me/clickhouse_ru
    arrayMap(x->toInt8(x), splitByString(',', ifNull(course_additional_info, '')) as course_additional_info,
    Вот так падаем
  • ошибку скиньте
  • https://t.me/clickhouse_ru
    Code: 62. DB::Exception: Syntax error: failed at position 1338 ('(') (line 39, col 16): (x->toInt8(x), splitByString(',', ifNull(course_additional_info, '')) as course_additional_info, arrayMap(x->toUInt16(x), splitByString(',', ifNull(lib. Unmatched parentheses: ((((((. (SYNTAX_ERROR) (version 22.3.5.5 (official build))
  • так скобок не хватает, перепроверьте открывающие и закрывающие
  • @simpl1g #270136 11:51 AM, 17 May 2022
    l_info, '')) ====> l_info, '')))
  • https://t.me/clickhouse_ru
    @unet903 #270137 11:52 AM, 17 May 2022
    точно спасибо
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Functions for Working with Nullable Values | ClickHouse Docs

    functions-for-working-with-nullable-aggregates}

  • @janatweety #270142 12:52 PM, 17 May 2022
    коллеги, привет! Можно ли в clickhouse сделать count по всем элементам массива по всем строкам?

    Например строки с массивом:
    ['а','б','в']
    ['а','б',]
    ['б','в']

    Надо собрать в строки:
    (элемент) (количество таких элементов во всех массивах)
    a 2
    б 3
    в 2
  • https://t.me/clickhouse_ru
    Должен помочь arrayJoin
  • select arrayJoin(array) as element, count() as c from <table> group by element
  • @janatweety #270145 12:56 PM, 17 May 2022
    спасибо, думала что arrayJoin не подойдет, сейчас попробую
  • https://t.me/clickhouse_ru
    @unet903 #270146 01:02 PM, 17 May 2022
    Вопрос, а можно ли в multiIf проверять на null ?
  • https://t.me/clickhouse_ru
    Никто не в курсе? (
  • https://t.me/clickhouse_ru
    @Alexey_Cald #270148 01:14 PM, 17 May 2022
    Как селектить Array(boolean) поля из постги?
    КХ ругается, что не понимает что это
    Could not convert string to t: 't'. (version 22.1.3.7 (official build))

    Я понимаю, что КХ не знает boolean, но и закастить на UInt8 со стороны КХ это невозможно?
  • https://t.me/clickhouse_ru
    Вы делали как рекомендовано, в отдельном конфиге? При запуске сервера в логах никаких ошибок нет?
  • https://t.me/clickhouse_ru
    нет, найкидал в config.xml )
    в логах при старте ничего нет

    я в том же конфиге дописал TTL к query_log, оно спокойно подхватилось.
  • можно, почему нет
  • а вы после перезапуска дропали?
  • https://t.me/clickhouse_ru
    и после перезапуска дропал. После следующего все-равно поднимается
  • https://t.me/clickhouse_ru
    А все работает как в SQL NOT NULL ???
    В целом != так же выглядит как в SQL <> ???
  • https://t.me/clickhouse_ru
    Попробуйте по документашке сделать в отдельном файлике в /etc/clickhouse-server/config.d/ с патчем на remove.
    Может в той директории уже есть какие-то патчи, в которых повторно задан metric_log?
  • multiIf(x is not null, 'not null', 'null')
    или
    multiIf(isNotNull(x), 'not null', 'null')
  • https://t.me/clickhouse_ru
    https://kb.altinity.com/altinity-kb-setup-and-maintenance/altinity-kb-system-tables-eat-my-disk/

    возможно ваш кусок XML применяется до вендорского

    1. вы удалялете
    2. они добавляют

    надо
    1. они добавляют
    2. вы удалялете
  • https://t.me/clickhouse_ru
    КХ уже знает булеан.
    просто мапинга для pg типа нет
  • https://t.me/clickhouse_ru
    Грусть (
    Понял, спасибо
  • https://t.me/clickhouse_ru
    @IvanTulaev #270160 01:48 PM, 17 May 2022
    Как можно узнать тип поля в результате произвольного запроса?
    Желательно без создания временной таблицы.
  • https://t.me/clickhouse_ru
    desc (select 'a')

    select 'a' as x, toTypeName(x)
  • https://t.me/clickhouse_ru
    помогло, спасибо
  • @zhora9001 #270163 02:11 PM, 17 May 2022
    добрый день! обновились до CH 22.3.5 и словили странное: sequenceCount/sequenceMatch перестал работать, когда запрос обращается к Distributed таблице (если выполнить этот же запрос на шарде - все красиво). Мы сейчас пытаемся воспроизвести на чистую и зарепортать баг, но быть может кто-то уже сталкивался/знает как лечить?
  • @konstantin_mitjurin #270164 02:18 PM, 17 May 2022
    всем привет, решили обновить столбцы на боевой базе uint16 -> uint32
  • @konstantin_mitjurin #270165 02:18 PM, 17 May 2022
    на одном из серверов кластера на одном из дисков - мало места
  • @konstantin_mitjurin #270166 02:18 PM, 17 May 2022
    DB::Exception: Exception happened during execution of mutation '0000000000' with part '20220512_3289_16170_6' reason: 'Code: 243. DB::Exception: Cannot reserve 160.53 GiB, not enough space. (NOT_ENOUGH_SPACE) (version 21.10.2.15 (official build))'. This error maybe retryable or not. In case of unretryable error, mutation can be killed with KILL MUTATION query. (UNFINISHED) (version 21.10.2.15 (official build))
  • @konstantin_mitjurin #270167 02:18 PM, 17 May 2022
    и все, ничего дальше не сделать
  • @konstantin_mitjurin #270168 02:19 PM, 17 May 2022
    если пробовать локально вернуть столбец в исходное состояние, то получаем:

    Code: 517. DB::Exception: Received from localhost:9000. DB::Exception: Metadata on replica is not up to date with common metadata in Zookeeper. Cannot alter. (CANNOT_ASSIGN_ALTER)
  • @konstantin_mitjurin #270169 02:20 PM, 17 May 2022
    пробуем освободить место на диске и дропнуть 1 партицию, получаем:

    Code: 72. DB::Exception: Received from localhost:9000. DB::Exception: Cannot parse number with multiple sign (+/-) characters or intermediate sign character: Cannot parse UInt32 from String: while executing 'FUNCTION if(isNull(_dummy_0) : 3, defaultValueOfTypeName('UInt32') :: 2, _CAST(_dummy_0, 'UInt32') :: 4) -> if(isNull(_dummy_0), defaultValueOfTypeName('UInt32'), _CAST(_dummy_0, 'UInt32')) UInt32 : 1'. (CANNOT_PARSE_NUMBER)
  • @konstantin_mitjurin #270170 02:20 PM, 17 May 2022
    раньше у нас поле country_id было uint16
  • @konstantin_mitjurin #270171 02:21 PM, 17 May 2022
    потребовалось расширить до uint32
  • @konstantin_mitjurin #270172 02:21 PM, 17 May 2022
    дефолтное значение тоже поменяли
  • @konstantin_mitjurin #270173 02:21 PM, 17 May 2022
    CAST(visitParamExtractUInt(geoip, 'country_id'), 'UInt32')
  • @konstantin_mitjurin #270174 02:21 PM, 17 May 2022
    и судя по тому, что это единственное UInt32 поле, то не нравится именно это
  • @konstantin_mitjurin #270175 02:22 PM, 17 May 2022
    что делать?
  • https://t.me/clickhouse_ru
    select * from system.mutations where not is_done
  • @konstantin_mitjurin #270177 02:25 PM, 17 May 2022
    да, вижу 2 запроса
  • @konstantin_mitjurin #270178 02:25 PM, 17 May 2022
    попробовать kill mutation?
  • @konstantin_mitjurin #270179 02:26 PM, 17 May 2022
    вообще странная политика КХ, у нас настроен storage policy, 3 диска по 4Т
  • https://t.me/clickhouse_ru
    понятно все.

    в общем когда я задаю вопрос с SQL я хочу увидеть точный копи-пейст ответа. Мне не интересны пересказы.
  • @konstantin_mitjurin #270182 02:27 PM, 17 May 2022
    блин, плохое качество
  • https://t.me/clickhouse_ru
    она не странная. Она работает как запрограммирована и сдизайнена.
  • @konstantin_mitjurin #270184 02:27 PM, 17 May 2022
    сейчас загружу куда-нибудь
  • https://t.me/clickhouse_ru
  • @konstantin_mitjurin #270187 02:31 PM, 17 May 2022
    @den_crane 0 rows in set. Elapsed: 0.010 sec.
  • @konstantin_mitjurin #270188 02:31 PM, 17 May 2022
    отпустило, что ли?
  • @konstantin_mitjurin #270189 02:31 PM, 17 May 2022
    судя по всему да
  • https://t.me/clickhouse_ru
    видимо в итоге хватило места
  • @konstantin_mitjurin #270191 02:35 PM, 17 May 2022
    у нас эта таблица с TTL
  • @konstantin_mitjurin #270192 02:35 PM, 17 May 2022
    видимо в какой-то момент хватило
  • https://t.me/clickhouse_ru
    @den_crane #270193 02:37 PM, 17 May 2022
    Дело не в TTL, дело в том что КХ резервирует место для мутаций, и если КХ пытается мутировать 20 партов одновременно, а места есть на 10, то для остальных 10 будет ошибка, но когда первые 10 мутированы, то вторым 10ти хватит места
  • @konstantin_mitjurin #270194 02:38 PM, 17 May 2022
    ясно, спасибо
  • @olehdudkin #270195 02:42 PM, 17 May 2022
    Есть таблица CollapsingMergeTree. Нужно обновить колонку в которой нули
    мы делаем
    ALTER TABLE reporting.chats_mutable
    UPDATE platform = joinGet('reporting.temp_join_1', 'platform', chat_id)
    WHERE platform = 0 AND toYYYYMM(dt) between '202104' and '202107';
  • @olehdudkin #270196 02:43 PM, 17 May 2022
    при этом в temp_join_1 они все есть
  • @olehdudkin #270197 02:56 PM, 17 May 2022
    Данные обновляются кусками
  • @olehdudkin #270198 02:57 PM, 17 May 2022
    т.е. если я перезапущу запрос
  • @olehdudkin #270199 02:57 PM, 17 May 2022
    он обновит еще несколько строк
  • @olehdudkin #270200 02:57 PM, 17 May 2022
    и в какой-то момент перестают обновлять что-либо
  • https://t.me/clickhouse_ru
    UPDATE асинхронный, может еще первый не добежал
  • @olehdudkin #270202 02:57 PM, 17 May 2022
    я проверят
  • @olehdudkin #270203 02:57 PM, 17 May 2022
    мутации заканчиваются почти сразу
  • @olehdudkin #270204 02:57 PM, 17 May 2022
    секунд за 10
  • @olehdudkin #270205 02:57 PM, 17 May 2022
    там мало строк
  • @olehdudkin #270206 02:58 PM, 17 May 2022
    всего 20-30 миллионов
  • https://t.me/clickhouse_ru
    reporting.chats_mutable replicated ?
  • @olehdudkin #270208 02:58 PM, 17 May 2022
    Да
  • https://t.me/clickhouse_ru
    'reporting.temp_join_1' на всех репликах одинаковая?
  • @olehdudkin #270210 02:59 PM, 17 May 2022
    Ее нет на репликах
  • https://t.me/clickhouse_ru
    опа
  • @olehdudkin #270212 02:59 PM, 17 May 2022
    Ну она ж джоин. Я так понял они не реплицируется?
  • https://t.me/clickhouse_ru
    да и деда мороза тоже нет.
  • https://t.me/clickhouse_ru
    @den_crane #270214 03:00 PM, 17 May 2022
    нужно создать таблицу на всех нодах и залить одни теже данные в каждую
  • https://t.me/clickhouse_ru
    @den_crane #270215 03:01 PM, 17 May 2022
    таблица должна быть на 100% одинаковая везде
  • @olehdudkin #270216 03:02 PM, 17 May 2022
    Понял, спасибо
  • @olehdudkin #270217 03:03 PM, 17 May 2022
    Как вообще реплицируется альтер тейбл?
  • https://t.me/clickhouse_ru
    все реплики выполняют одно и тоже
  • @olehdudkin #270219 03:05 PM, 17 May 2022
    Аааа, он не данные реплицирует
  • @olehdudkin #270220 03:05 PM, 17 May 2022
    А как он теперь к консенсусу придет, если везде разный результат?
  • https://t.me/clickhouse_ru
    кто-то заканчивает мерж(мутацию) первым и записывает в зукипер контрольную сумму результируещго парта.
    остальные реплики (последние) проверяют свою сумму с той первой, если несовпдает, они начинают все заново, если 3 раза неудачно завершилось, они сдаются и скачивают парт с первой реплики (с победителя гонки).
  • @olehdudkin #270222 03:10 PM, 17 May 2022
    Понял, это очень полезно, спасибо
  • @olehdudkin #270223 03:10 PM, 17 May 2022
    Не значит ли это что остальные реплики стянут данные в итоге с той где таблица есть?
  • @Artem_Makarenko #270224 03:14 PM, 17 May 2022
    Добрый день.
    Подскажите по поводу аутентификации zookeeper и clickhouse.
    Запускаю в докере. Использую имедж bitnami/zookeeper:3.6 где уже есть енвы под креди и юзера (ZOO_CLIENT_PASSWORD,ZOO_SERVER_PASSWORDS) но они почему-то не работают.
    Из доки как я понимаю говориться что поддерживают 2 вида аутентификации для Server-Server
    (ZooKeeper supports Kerberos or DIGEST-MD5) и как я понял DIGEST-MD5 наданный момент не работает ?
    https://cwiki.apache.org/confluence/display/ZOOKEEPER/Server-Server+mutual+authentication
    из Server-client тоже не совсем понятно ,пропускает спокойно.
    Или там ещё дополнительно ACL ками нужно рулить ?
    Может кто-то сталкивался ?
  • https://t.me/clickhouse_ru
    Где-то давно был issue по этому поводу, была такая же проблема.
  • из 19 года открыт в репе bitnami/zookeepe )
    https://github.com/bitnami/bitnami-docker-zookeeper/issues/13
    на офф репе также есть такие же.
    Просто интерестно, есть уже какие-то варианты решения ?. Как в остальных из этим вопросом? Или это чисто у меня где-то завтык.
    ZOO_ENABLE_AUTH=yes has no effect · Issue #13 · bitnami/bitnami-docker-zookeeper

    I am trying to enable SASL authentication without SSL for the communication between Zookeeper nodes themselves and also Kafka to Zookeeper. I am using docker-compose to start up a single-node ensem...

  • https://t.me/clickhouse_ru
    Решений нет
  • https://t.me/clickhouse_ru
    это также значит что та реплика где таблица стянет с тех где ее нет
  • т.е. если ALTER TABLE мутация прошла с ошибкой - она все равно записывает хэши в зукипер?
  • @hsv000 ↶ Reply to #269976 #270231 03:34 PM, 17 May 2022
    поставил на виртуалке, а клиент Windows terminal
  • https://t.me/clickhouse_ru
    херней вы занимаетесь.
    у вас работает alter ? нет, ну и делайте как вам говорят, создавайте таблицу везде
  • https://t.me/clickhouse_ru
    ну я уже скидывал amosbird
    они отказываюстя править...
    нахрена вообще было это добавлять непонятно
  • Очень самокритично с вашей стороны называть попытки разобраться в работе кликхауса - херней :)
  • https://t.me/clickhouse_ru
    потому что КХ меняем ландшафт, пока мы пытаемся рисовать карты наступления (разобраться в работе КХ)

    ну смотрите КХ лог, смотрите system.mutations на репликах.
  • @olehdudkin #270237 04:05 PM, 17 May 2022
    Пытаюсь понять как это работает выступая в роли переводчика между нашей дев-тим и этим каналом :)
  • https://t.me/clickhouse_ru
    я не использую joinGet для этого. Это слишком опасная балалайка (засегфолтит в раз) и она не умеет составные ключи.
    я делаю replicatedMergeTree без макроса shard (она будет одинаковая на всех нодах) и сверху словарь.
  • @EdigarevEA #270239 04:09 PM, 17 May 2022
    IPv4CIDRToRange(ipv4, Cidr)
    а обратной функции случаем нет?
  • Спасибо
  • @olehdudkin #270242 04:16 PM, 17 May 2022
    Это нормально ?
  • @olehdudkin #270243 04:16 PM, 17 May 2022
    кажеться, что очень медленно
  • @olehdudkin #270244 04:16 PM, 17 May 2022
    для такой таблицы
  • https://t.me/clickhouse_ru
    это не таблица это план запроса...

    у вас там 15 партов из 15 просканировалось

    что у вас в ORDER BY?
  • @olehdudkin #270247 04:19 PM, 17 May 2022
    account_id, dt
  • @olehdudkin #270248 04:20 PM, 17 May 2022
    SELECT count() FROM chats;
  • @olehdudkin #270249 04:20 PM, 17 May 2022
    Занимает столько-же по времени
  • @olehdudkin #270250 04:20 PM, 17 May 2022
    мне отдельный нужен индекс?
  • https://t.me/clickhouse_ru
    нет, это не нормально.

    set send_logs_level='trace';
    вашзапрос
  • https://t.me/clickhouse_ru
    ой, там 15 из 675 я попутал маленько... то есть оно правильно отрезало по Minmax
  • https://t.me/clickhouse_ru
    select count() вообще не должен обращаться к диску. Какая версия КХ?
    скорее всего это https://github.com/ClickHouse/ClickHouse/issues/34779
    weird magic with projections + minmax index · Issue #34779 · ClickHouse/ClickHouse

    create table test ( id Int64, d Int64 ) Engine=MergeTree partition by (intDiv(d, 10000)) Order by id; set max_partitions_per_insert_block=0; insert into test select number, number from numbers(1e8)...

  • @olehdudkin #270254 04:24 PM, 17 May 2022
    [<SERVER>] 2022.05.17 12:21:36.616846 [ 37399 ] {cb710acf-78e7-44bf-8478-fb80f6d9e91a} <Debug> executeQuery: (from 10.0.0.122:33988, using production parser) SELECT count() FROM chats cm WHERE dt between '2021-04-01' and '2021-07-31';
    [<SERVER>] 2022.05.17 12:21:36.617455 [ 37399 ] {cb710acf-78e7-44bf-8478-fb80f6d9e91a} <Trace> ContextAccess (default): Access granted: SELECT(dt) ON reporting.chats
    [<SERVER>] 2022.05.17 12:21:36.617724 [ 37399 ] {cb710acf-78e7-44bf-8478-fb80f6d9e91a} <Trace> InterpreterSelectQuery: FetchColumns -> Complete
    [<SERVER>] 2022.05.17 12:21:36.617956 [ 37399 ] {cb710acf-78e7-44bf-8478-fb80f6d9e91a} <Debug> reporting.chats (d65d428d-342e-4992-b049-7fd6c8d06c19) (SelectExecutor): Key condition: (column 1 in [18718, +inf)), (column 1 in (-inf, 18839]), and
    [<SERVER>] 2022.05.17 12:21:36.618262 [ 37399 ] {cb710acf-78e7-44bf-8478-fb80f6d9e91a} <Debug> reporting.chats (d65d428d-342e-4992-b049-7fd6c8d06c19) (SelectExecutor): MinMax index condition: (column 0 in [18718, +inf)), (column 0 in (-inf, 18839]), and
    [<SERVER>] 2022.05.17 12:21:36.618481 [ 3470 ] {cb710acf-78e7-44bf-8478-fb80f6d9e91a} <Trace> reporting.chats (d65d428d-342e-4992-b049-7fd6c8d06c19) (SelectExecutor): Used generic exclusion search over index for part 20210401_20210426_0_36167_923_42164 with 199 steps
    [<SERVER>] 2022.05.17 12:21:36.618510 [ 1607 ] {cb710acf-78e7-44bf-8478-fb80f6d9e91a} <Trace> reporting.chats (d65d428d-342e-4992-b049-7fd6c8d06c19) (SelectExecutor): Used generic exclusion search over index for part 20210426_20210430_36168_41372_825_42164 with 29 steps
    [<SERVER>] 2022.05.17 12:21:36.618577 [ 3470 ] {cb710acf-78e7-44bf-8478-fb80f6d9e91a} <Trace> reporting.chats (d65d428d-342e-4992-b049-7fd6c8d06c19) (SelectExecutor): Used generic exclusion search over index for part 20210430_20210430_41373_42113_300_42164 with 5 steps
    [<SERVER>] 2022.05.17 12:21:36.618597 [ 1607 ] {cb710acf-78e7-44bf-8478-fb80f6d9e91a} <Trace> reporting.chats (d65d428d-342e-4992-b049-7fd6c8d06c19) (SelectExecutor): Used generic exclusion search over index for part 20210430_20210430_42114_42162_12_42164 with 1 steps
    [<SERVER>] 2022.05.17 12:21:36.618681 [ 1607 ] {cb710acf-78e7-44bf-8478-fb80f6d9e91a} <Trace> reporting.chats (d65d428d-342e-4992-b049-7fd6c8d06c19) (SelectExecutor): Used generic exclusion search over index for part 20210528_20210531_39103_43658_740_43664 with 24 steps
    [<SERVER>] 2022.05.17 12:21:36.618715 [ 3470 ] {cb710acf-78e7-44bf-8478-fb80f6d9e91a} <Trace> reporting.chats (d65d428d-342e-4992-b049-7fd6c8d06c19) (SelectExecutor): Used generic exclusion search over index for part 20210501_20210528_0_39102_975_43664 with 219 steps
    [<SERVER>] 2022.05.17 12:21:36.618746 [ 1607 ] {cb710acf-78e7-44bf-8478-fb80f6d9e91a} <Trace> reporting.chats (d65d428d-342e-4992-b049-7fd6c8d06c19) (SelectExecutor): Used generic exclusion search over index for part 20210531_20210531_43659_43662_1_43664 with 1 steps
    [<SERVER>] 2022.05.17 12:21:36.618826 [ 1607 ] {cb710acf-78e7-44bf-8478-fb80f6d9e91a} <Trace> reporting.chats (d65d428d-342e-4992-b049-7fd6c8d06c19) (SelectExecutor): Used generic exclusion search over index for part 20210626_20210630_36687_41794_763_42389 with 26 steps
    [<SERVER>] 2022.05.17 12:21:36.618839 [ 3470 ] {cb710acf-78e7-44bf-8478-fb80f6d9e91a} <Trace> reporting.chats (d65d428d-342e-4992-b049-7fd6c8d06c19) (SelectExecutor): Used generic exclusion search over index for part 20210601_20210626_0_36686_785_42389 with 201 steps
    [<SERVER>] 2022.05.17 12:21:36.618885 [ 3470 ] {cb710acf-78e7-44bf-8478-fb80f6d9e91a} <Trace> reporting.chats (d65d428d-342e-4992-b049-7fd6c8d06c19) (SelectExecutor): Used generic exclusion search over index for part 20210630_20210630_41795_42382_310_42389 with 5 steps
    [<SERVER>] 2022.05.17 12:21:36.618889 [ 1607 ] {cb710acf-78e7-44bf-8478-fb80f6d9e91a} <Trace> reporting.chats (d65d428d-342e-4992-b049-7fd6c8d06c19) (SelectExecutor): Used generic exclusion search over index for part 20210630_20210630_42383_42387_1_42389 with 1 steps
  • @olehdudkin #270255 04:24 PM, 17 May 2022
    [<SERVER>] 2022.05.17 12:21:36.618975 [ 3470 ] {cb710acf-78e7-44bf-8478-fb80f6d9e91a} <Trace> reporting.chats (d65d428d-342e-4992-b049-7fd6c8d06c19) (SelectExecutor): Used generic exclusion search over index for part 20210726_20210730_36374_41499_841_43626 with 28 steps
    [<SERVER>] 2022.05.17 12:21:36.619007 [ 1607 ] {cb710acf-78e7-44bf-8478-fb80f6d9e91a} <Trace> reporting.chats (d65d428d-342e-4992-b049-7fd6c8d06c19) (SelectExecutor): Used generic exclusion search over index for part 20210701_20210726_0_36373_902_43626 with 193 steps
    [<SERVER>] 2022.05.17 12:21:36.619046 [ 3470 ] {cb710acf-78e7-44bf-8478-fb80f6d9e91a} <Trace> reporting.chats (d65d428d-342e-4992-b049-7fd6c8d06c19) (SelectExecutor): Used generic exclusion search over index for part 20210730_20210731_41500_43623_323_43626 with 14 steps
    [<SERVER>] 2022.05.17 12:21:36.619074 [ 1607 ] {cb710acf-78e7-44bf-8478-fb80f6d9e91a} <Trace> reporting.chats (d65d428d-342e-4992-b049-7fd6c8d06c19) (SelectExecutor): Used generic exclusion search over index for part 20210731_20210731_43624_43624_0_43626 with 1 steps
    [<SERVER>] 2022.05.17 12:21:36.619148 [ 37399 ] {cb710acf-78e7-44bf-8478-fb80f6d9e91a} <Debug> reporting.chats (d65d428d-342e-4992-b049-7fd6c8d06c19) (SelectExecutor): Selected 15/164 parts by partition key, 15 parts by primary key, 672/672 marks by primary key, 672 marks to read from 15 ranges
    [<SERVER>] 2022.05.17 12:21:36.619286 [ 37399 ] {cb710acf-78e7-44bf-8478-fb80f6d9e91a} <Debug> reporting.chats (d65d428d-342e-4992-b049-7fd6c8d06c19) (SelectExecutor): Reading approx. 5364776 rows with 2 streams
    [<SERVER>] 2022.05.17 12:21:36.620104 [ 30830 ] {cb710acf-78e7-44bf-8478-fb80f6d9e91a} <Trace> AggregatingTransform: Aggregating
    [<SERVER>] 2022.05.17 12:21:36.620120 [ 30830 ] {cb710acf-78e7-44bf-8478-fb80f6d9e91a} <Trace> Aggregator: Aggregation method: without_key
    [<SERVER>] 2022.05.17 12:21:36.620213 [ 33672 ] {cb710acf-78e7-44bf-8478-fb80f6d9e91a} <Trace> AggregatingTransform: Aggregating
    [<SERVER>] 2022.05.17 12:21:36.620226 [ 33672 ] {cb710acf-78e7-44bf-8478-fb80f6d9e91a} <Trace> Aggregator: Aggregation method: without_key
    [<SERVER>] 2022.05.17 12:21:36.627469 [ 33672 ] {cb710acf-78e7-44bf-8478-fb80f6d9e91a} <Debug> AggregatingTransform: Aggregated. 2705201 to 1 rows (from 0.00 B) in 0.006711844 sec. (403048849.169 rows/sec., 0.00 B/sec.)
    [<SERVER>] 2022.05.17 12:21:36.627472 [ 30830 ] {cb710acf-78e7-44bf-8478-fb80f6d9e91a} <Debug> AggregatingTransform: Aggregated. 2651143 to 1 rows (from 0.00 B) in 0.006795591 sec. (390126922.000 rows/sec., 0.00 B/sec.)
    [<SERVER>] 2022.05.17 12:21:36.627480 [ 30830 ] {cb710acf-78e7-44bf-8478-fb80f6d9e91a} <Trace> Aggregator: Merging aggregated data
    ┌─count()─┐
    │ 5356344 │
    └─────────┘
    [<SERVER>] 2022.05.17 12:21:36.629143 [ 37399 ] {cb710acf-78e7-44bf-8478-fb80f6d9e91a} <Information> executeQuery: Read 5356344 rows, 10.22 MiB in 0.011213097 sec., 477686405 rows/sec., 911.11 MiB/sec.
    [<SERVER>] 2022.05.17 12:21:36.629162 [ 37399 ] {cb710acf-78e7-44bf-8478-fb80f6d9e91a} <Debug> MemoryTracker: Peak memory usage (for query): 0.00 B.

    1 rows in set. Elapsed: 0.335 sec. Processed 5.36 million rows, 10.71 MB (15.97 million rows/s., 31.95 MB/s.)
  • @olehdudkin #270256 04:24 PM, 17 May 2022
    Сорри за длинный копипаст
  • @olehdudkin #270257 04:25 PM, 17 May 2022
    векрсия 21.7.5.29
  • А что имеется ввиду под "сверху словарь" ?
  • Лучше бы просто в пастилу закатали
  • https://t.me/clickhouse_ru
    @mikezsin #270262 05:27 PM, 17 May 2022
    всем привет, а после SYSTEM STOP TTL MERGES , stop moves и последующего рестарта кх надо ли их запускать или они сами запустятся?
  • https://t.me/clickhouse_ru
    сами должны запуститься
  • https://t.me/clickhouse_ru
    @mikezsin #270264 05:28 PM, 17 May 2022
    спс, еще вопрос про ttl, если у меня timestamp в int32, то TTL toDate(log_date, 'UTC') + toIntervalDay(366) корректно отработает?
  • https://t.me/clickhouse_ru
    @mikezsin #270265 05:29 PM, 17 May 2022
    смущает, что он partition читает, в которых чистить нечего и пишет, что удалено 0 (разово при alter сделает или по кругу гонять будет)
  • https://t.me/clickhouse_ru
    @baltic_tea #270266 05:35 PM, 17 May 2022
    Добрый день. Подскажите, пожалуйста, в чем может быть ошибка?
    Не выходит создать таблицу, хотя подключение к серверу проходит корректно.
    Код исполняется в JupyterLab.

    class simple_ch_client():
    def __init__(self, CH_HOST, CH_USER, CH_PASS, cacert):
    self.CH_HOST = CH_HOST
    self.CH_USER = CH_USER
    self.CH_PASS = CH_PASS
    self.cacert = cacert

    def get_clickhouse_data(self, query, connection_timeout = 1500):
    r = requests.post(self.CH_HOST, params = {'query': query,
    'user': self.CH_USER, 'password':self.CH_PASS},
    timeout = connection_timeout, verify=self.cacert)
    if r.status_code == 200:
    return r.text
    else:
    raise ValueError(r.text)

    my_client = simple_ch_client(CH_HOST, CH_USER, CH_PASS, CH_CASERT)

    q = f'''
    CREATE TABLE IF NOT EXISTS direct_table ON CLUSTER {CH_DB_NAME}
    (
    Date Date,
    CampaignName String,
    Impressions UInt64,
    Clicks UInt64,
    Cost UInt64
    )
    ENGINE = MergeTree()
    ORDER BY Date
    '''

    my_client.get_clickhouse_data(q)

    ОШИБКА:
    ———————————————————————
    ValueError: Code: 170. DB::Exception:
    Requested cluster 'clickhouse_cluster' not found.
    (BAD_GET) (version 22.3.5.5 (official build))
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #270266 #270267 05:39 PM, 17 May 2022
    Так он же пишет, что приходит запрос create table direct_table on cluster clickhouse_cluster, но такого кластера в system.clusters нет.
  • https://t.me/clickhouse_ru
    system.clusters смотрите
  • https://t.me/clickhouse_ru
    Да, но такой кластер есть. Он вообще только один
  • https://t.me/clickhouse_ru
    вроде первый раз надо все просканить
    а потом просто при мержах будет фильтровать
  • https://t.me/clickhouse_ru
    ON CLUSTER 'cluster-name'
    в кавычках вроде имя кластера должно быть

    ну и в system.query_log смотрите какой именно запрос с клиента вашего передался
  • https://t.me/clickhouse_ru
    @Lipuchk_a #270279 06:09 PM, 17 May 2022
    Привет, подскажите бд у кликхаус перенести можно? если да то как
  • https://t.me/clickhouse_ru
    @brbrbr #270280 06:20 PM, 17 May 2022
    С одного и того же сервака делаю запрос к распределённой таблице. В первый раз отрабатывает за 37мс, второй - за 69110. Пытаюсь разобраться в причинах с помощью EventsProfile. Возникло три вопроса:
    1. Как трактовать в 67500 раз бОльшую продолжительность чтения с диска всего при 4 SlowRead-ах? Серваки при этом идентичные.
    2. Почему в рамках одного и того же запроса в одном случае по сети шлётся 4кб, а в другом - 4.7мб? Или там что-то типа пингов, объём которых пропорционален времени запроса?
    3. Почему в system.query_log согласно query_duration_ms запрос выполнялся 69110, а в EventsProfile метрика RealTimeMIcroseconds 345434710? Это же в 5000 раз больше.
  • https://t.me/clickhouse_ru
    @orantius #270281 06:22 PM, 17 May 2022
    в п.3. - видимо потому что пять тредов что-то делали.
  • https://t.me/clickhouse_ru
    а вы на инициаторе все эти числа смотрите? у вас вообще запрос тот же самый и вернул то же самое?
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #270283 #270284 06:27 PM, 17 May 2022
    Запрос возвращает всего одну строку и одну и ту же оба раза, да.
    Кластер из двух шардов по две ноды, выполняю на первой ноде первого шарда, а query_log смотрю на двух нодах второго шарда через clusterAllReplicas where query_id != initial_query_id and initial_query_id in (...)).
  • https://t.me/clickhouse_ru
    @brbrbr #270285 06:27 PM, 17 May 2022
    Да и запрос select * from table where sorting_key = 12345
  • https://t.me/clickhouse_ru
    @orantius #270286 06:36 PM, 17 May 2022
    OSIOWait какой-то большой
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #270286 #270287 06:41 PM, 17 May 2022
    Я так понимаю, что это ожидание окончания чтения с диска. Но если бы данные читались настолько медленно, то там по идее должна была бы быть куча SlowRead-ов и ReadBackoff-ов, но их нет. В магию не верю, поэтому наверное что-то не так понимаю в метриках или в механике происходящего)
  • @SinchiUnaka #270289 06:59 PM, 17 May 2022
    Joined.
  • @miko_fery #270290 07:05 PM, 17 May 2022
    Привет, подскажите как в ClickHouse проверить является ли значение текстового поля числом?
  • https://t.me/clickhouse_ru
    cast сделай? или регуляркой)
  • @garikanet #270292 07:48 PM, 17 May 2022
    Обновил Tabix

    - Поддержка httpS+http
    - Поддержка ReadOnly

    Должно все работать с единого url

    http://dash.tabix.io

    К trial.altinity.cloud подключается )
  • https://t.me/clickhouse_ru
    toUInt32OrNull is Null
  • Ок, работает, спасибо большое!!! только в моем случае я так использую: toUInt32OrNull is not Null
  • https://t.me/clickhouse_ru
    тоже можно
  • https://t.me/clickhouse_ru
    У меня поломан чутка локальный clickhouse, поэтому вылезает такая ошибка. В целом работать самому ClickHouse она сильно не мешает, но похоже tabix от нее становится грустно и он не выполняет никакие запросы.
  • https://t.me/clickhouse_ru
    @unamedrus #270297 08:24 PM, 17 May 2022
    А так спасибо вам за tabix
  • Ого, а другие Ui, jetbrains могут подключится и показать структуру?
    Просто без sys.cols не возможно получить структуру db )
  • https://t.me/clickhouse_ru
    dbeaver смог (ну все базы показал), но имхо я уже привык и без структуры жить и хотелось бы что бы tabix тоже мог наплевать на нее
  • Подумаю, не простая задачка )
    Попробую в несколько проходов сделать, может получится

    Select * from sys.cols limit 50k
    If false limit 5000
    If false limit 1 ;)
  • https://t.me/clickhouse_ru
    Да я думаю можно просто сделать fall back что как будто ни баз ни таблиц нет.
  • https://t.me/clickhouse_ru
    @unamedrus #270302 08:47 PM, 17 May 2022
    Вдруг у пользователя нет доступа к системным таблицам вообще. (сделать сложно но можно)
  • 😉 Лучше не нужно лишних ограничений - мне уже хватает в коде ветвления если версия CH ... то ... а если это то ...то ...
    Будет возможность, попробуйте плиз залил [Version: 22.05.18 ] в dash.tabix.io правку - проще оказалось чем думал

    Обязательно system.databases + system.tables + system.parts
    system.parts -подумаю как выкинуть тоже, но пока нужен

    Не обязательные:
    - system.functions
    - system.clusters
    - system.dictionaries
    - system.columns
  • https://t.me/clickhouse_ru
    Да, кажется работает.
    Спасибо!
  • 18 May 2022 (186 messages)
  • https://t.me/clickhouse_ru
    что вы подразумеваете под словом "перенести"?

    с сервера на сервер?
    https://clickhouse.com/docs/en/operations/backup#clickhouse-copier

    или с диска на диск?
    https://clickhouse.com/docs/en/operations/server-configuration-parameters/settings#server_configuration_parameters-path

    или переиеменовать?
    в новых версиях для Atomic
    RENAME DATABASE

    https://clickhouse.com/docs/en/sql-reference/statements/rename
  • https://t.me/clickhouse_ru
    КРАСАВЧЕГ! вот просто хочется обнять =)
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Привет,

    вот тут написано

    For Summing / Aggregating 

    All dimensions go to ORDER BY, all metrics - outside of that.

    The most important for filtering columns with the lowest cardinality should be the left most.

    If number of dimensions is high it’s typically make sense to use a prefix of ORDER BY as a PRIMARY KEY to avoid polluting sparse index.

    Не могу понять, как перечисление в Primary key тех же самых полей, что и в Order by поможет avoid polluting sparse index.

    Что означает avoid polluting sparse index?

    Как изменится логика, если поля агрегации будут перечислены только в order by или же и там, и в Primary key?

    Поля фильтрации достаточно перечислить только в order by?
  • https://t.me/clickhouse_ru
    @madiken_habr #270310 03:51 AM, 18 May 2022
    Вот этот раздел тоже слабо в голове укладывается :((
    Вроде слова понятные, а по смыслу непонятно. Поясните пожалуйста на пальцах, что имеется ввиду:

    For Replacing / Collapsing

    You need to keep all ‘mutable’ columns outside of ORDER BY, and have some unique id (a base to collapse duplicates) inside. Typically the right-most column is some row identifier. And it’s often not needed in sparse index (so PRIMARY KEY can be a prefix of ORDER BY) The rest consideration are the same.

    Examples:

    ORDER BY (tenantid, site_id, eventid) -- utm_source is mutable, while tenantid, site_id is not PRIMARY KEY (tenantid, site_id) -- eventid is not used for filtering, needed only for collapsing duplicates

    Ещё, подскажите пожалуйста,

    Replacing - это когда мы заменяем секцию со старыми данными на секцию с актуальными?

    А collapsing?
  • https://t.me/clickhouse_ru
    IMHO иееется ввиду разреженные значения индекса, когда у вас значения в кусках данных случайно распределены ... и поэтому сканирование замедляется потому что сжатие хуже

    PRIMARY KEY это основные поля ускоряющие выборку если они есть в WHERE

    а ORDER BY обязан содержать все из PRIMARY KEY но дополнительно может содержать еще поля, которые будут учавствоваоть в сортировке и за счет этого колонки которые не входят в PRIMARY KEY могут сжиматься лучше
  • https://t.me/clickhouse_ru
    Спасибо
  • https://t.me/clickhouse_ru
    Спасибо! А collapsing (второй вопрос) не подскажете?
  • https://t.me/clickhouse_ru
    В primary key низко кардинальные поля
    По возрастанию кардинальному
    3-4 поля обычно достаточно остальное обычно не имеет смысла

    В order by
    Все из primary
    И дор поля для которых сортировка приведёт к улучшенному сжатию

    Не надо туда все поля писать

    Если primary не указан он берётся из order by в create table
  • https://t.me/clickhouse_ru
    Агрегирующий движок тупо делает агрегацию
    Для всех строк

    Хранит не результат агрегации а внутренние состояния чтобы потом в select доагрегировать можно было
  • https://t.me/clickhouse_ru
    Collapsing
    Схлопывает по sign все строки с одинаковым order by значениями полей
  • https://t.me/clickhouse_ru
    А replacing заменяет
    На любую строку
    И на последнюю если versioning
  • https://t.me/clickhouse_ru
    @Lipuchk_a #270318 06:49 AM, 18 May 2022
    почему не дает влить бекап ? переношу с сервера на сервер, базу и таблицу создал как тут https://hub.docker.com/r/yandex/clickhouse-server
  • https://t.me/clickhouse_ru
    что значит схлопывает по SIGN? Когда это происходит, при селекте? Простите, совсем непонятно :((( возможно, чего-то базового не знаю.
  • https://t.me/clickhouse_ru
    Я думала replacing - это когда мы принудительно партицию стираем, а вместо нее другую из источника заливаем. Но, судя по ответу, это что-то другое. Поясните пожалуйста.
  • https://t.me/clickhouse_ru
    Я пояснил

    Перечитайте ещё раз

    Парты и партиции это разные вещи
    Почитайте про system.parts и system.partitions

    Парты иммутабельны

    Создаются при вставке

    Потом объединяются с другими более старыми партами в фоне
    Путём сортировкой слиянием

    Порождая новые парты
    А старые ставя как active=0
    И удаляя через 480 секунд

    Разновидности движков это всего лишь логика которая действует при вставке и слияниях
  • https://t.me/clickhouse_ru
    @madiken_habr #270325 07:30 AM, 18 May 2022
    спасибо
  • https://t.me/clickhouse_ru
    Replacing
    Видя несколько строк с одинаковыми значениями полей из order by
    Выбирает только одну строку

    А replacingversioning
    Выбирает строку с максимальным значением поля которое указано как version
    В параметрах движка в create table
  • https://t.me/clickhouse_ru
    @losdmi #270327 07:41 AM, 18 May 2022
    Всем привет. Вижу в логах ошибку DUPLICATE_DATA_PART на Relicated таблице с двумя репликами. Подскажите куда копать, из-за чего это возникает? Это "норм" или такой ошибки в принципе не должно быть в нормальном состоянии?
  • @Eugene3711 #270328 07:47 AM, 18 May 2022
    Добрый день!
    У меня вопрос по нормализации данных в кликхаус
    Нужно ли распределять данные по нескольким таблицам как в обычных БД?
    Или с учетом полей Low Cardinality можно делать просто широкие таблицы и повторяющиеся значения будут оптимизированы ?
  • https://t.me/clickhouse_ru
    У join есть определенные ограничения, см документацию. Поэтому по возможности рекомендуется денормализовать данные или использовать словари
  • https://t.me/clickhouse_ru
    Collapsing и Replacing касается только движков CollapsingMergeTree и ReplacingMergeTree? Просто MergeTree - нет?
  • https://t.me/clickhouse_ru
    @Alexey_Cald #270332 09:17 AM, 18 May 2022
    Всем привет
    Есть ли какие-то туториалы по настройке Replicated + clickhouse-keeper?
  • https://t.me/clickhouse_ru
    @Alexey_Cald #270338 09:30 AM, 18 May 2022
    И стоит ли его использовать или лучше zookeeper?
  • @Sergei_Putsenko #270339 09:42 AM, 18 May 2022
    Добрый день!
    Подскажите, пожалуйста, есть какая-нибудь возможность/параметр, чтобы ClickHouse игнорировал/заполнял <null> колонки, которых нет в Parquet, но определены в таблице?
    Т.е. обойти ошибку "DB::Exception: Column "clmn" is not presented in input data: While executing HDFS."
    Нигде не нашел подобной информации..
  • https://t.me/clickhouse_ru
    @Aleksey_Veselov #270340 09:56 AM, 18 May 2022
    всем привет) можете плз напомнить, какой командой можно оценить запрос в кх - порядок его выполнения? кажется я где-то видел что, такая команда существует, но в доке и гугле что-то не могу найти
  • https://t.me/clickhouse_ru
    во, спасибо!)
  • https://t.me/clickhouse_ru
    @316527246 #270344 10:13 AM, 18 May 2022
    Всем привет! А в кх есть функция чтобы до запуска запроса оценить время его выполнения и объем памяти который будет обрабатываться?
  • @DovgalyukA #270346 10:26 AM, 18 May 2022
    Всем привет!
    У меня есть набор range данных, которые я бы хотел использовать в качестве словаря:
    | from | to | product |
    |------|----|---------|
    | 1 | 5 | ball |
    | 6 | 10 | doll |
    | 11 | 15 | car |
    Есть возможность использования такого range-словаря, чтобы передавать число и получать соответствующее значение product? Нашёл инфу про range-hashed словари, но в DictGet всё равно требуется передача ключа, а range - дополнительное условие. Есть workaround?
    Storing Dictionaries in Memory | ClickHouse Docs

    There are a variety of ways to store dictionaries in memory.

  • https://t.me/clickhouse_ru
    просто MergeTree не касается. от слова вообще
    просто MergeTree
    это связли два парта по Х и Y строк
    и получили один парт из X+Y строк отсортированных по ORDER BY
  • https://t.me/clickhouse_ru
    use a prefix of ORDER BY as a PRIMARY KEY to avoid polluting sparse index

    имеется ввиду что полей в orderby у summingMergeTree может быть много, типа 50, а в PRIMARY KEY добавлять стоит только 3 первых (префикс), таким образом 47 полей не будут загрязнять индекс, индекс будет маленьким в размере и займет небольшое кол-во ОЗУ и места на диске, в любом случае в индексе не имеет смысла хранить больше 5 полей (из опыта).
  • https://t.me/clickhouse_ru
    ORDERBY секция используется мержами идентификации уникальных записей (типа первичный / уникальный), ReplacingMT в мержах остаются только один экземпляр для набора ORDERBY
  • https://t.me/clickhouse_ru
    это в документации надо читать, тут вам напоют
  • https://t.me/clickhouse_ru
    всю ошибку в студию
  • https://t.me/clickhouse_ru
    чего там настраивать-то?

    https://kb.altinity.com/altinity-kb-setup-and-maintenance/altinity-kb-zookeeper/clickhouse-keeper/
  • https://t.me/clickhouse_ru
    О, спасибо, не смог найти это
  • https://t.me/clickhouse_ru
    есть, но надо руками перечислять поля
  • @theo_inside #270357 11:14 AM, 18 May 2022
    Подскажите: я правильно понимаю, что коннектор для Tableau от Altinity предназаначен для использования c Tableau Desktop, а для создания live connect / extract на серверной стороне всё равно нужно установить драйвер clickhouse-odbc, и, таким образом, это невозможно сделать в Tableu Online?
  • https://t.me/clickhouse_ru
    есть еще Altinity видео на ютубе про zookeeper/keeper (но я его не смотрел)
  • https://t.me/clickhouse_ru
    Ага, нашел (для истории)
    https://altinity.com/webinarspage/all-about-zookeeper-and-clickhouse-keeper-too
    All About Zookeeper (And ClickHouse Keeper, too!)

    Join Altinity’s in-depth webinar to learn about ZooKeeper (why it's necessary, how it works), ClickHouse Keeper (the new built-in replacement), and best practices for both of them.

  • https://t.me/clickhouse_ru
    такого нет и врядли будет (это очень тяжело предсказать), есть explain estimate
  • https://t.me/clickhouse_ru
    @losdmi ↶ Reply to #270353 #270361 11:17 AM, 18 May 2022
    2022.05.18 10:07:15.558361 [ 25001 ] {} <Error> database.table_local (9d6098aa-ffa6-4fac-85c4-bfcf62e5b7d8): auto DB::StorageReplicatedMergeTree::processQueueEntry(ReplicatedMergeTreeQueue::SelectedEntryPtr)::(anonymous class)::operator()(DB::StorageReplicatedMergeTree::LogEntryPtr &) const: Code: 235. DB::Exception: Part 20220518_28722_28722_0 (state Active) already exists. (DUPLICATE_DATA_PART), Stack trace (when copying this message, always include the lines below):

    0. DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, bool) @ 0xb6fbffa in /usr/bin/clickhouse
    1. DB::MergeTreeData::renameTempPartAndReplace(std::__1::shared_ptr<DB::IMergeTreeDataPart>&, DB::MergeTreeTransaction*, SimpleIncrement*, DB::MergeTreeData::Transaction*, std::__1::unique_lock<std::__1::mutex>&, std::__1::vector<std::__1::shared_ptr<DB::IMergeTreeDataPart const>, std::__1::allocator<std::__1::shared_ptr<DB::IMergeTreeDataPart const> > >*, DB::MergeTreeDeduplicationLog*, std::__1::basic_string_view<char, std::__1::char_traits<char> >) @ 0x16a33c08 in /usr/bin/clickhouse
    2. DB::MergeTreeData::renameTempPartAndReplace(std::__1::shared_ptr<DB::IMergeTreeDataPart>&, DB::MergeTreeTransaction*, SimpleIncrement*, DB::MergeTreeData::Transaction*, DB::MergeTreeDeduplicationLog*) @ 0x16a359ab in /usr/bin/clickhouse
    3. DB::StorageReplicatedMergeTree::fetchPart(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::shared_ptr<DB::StorageInMemoryMetadata const> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool, unsigned long, std::__1::shared_ptr<zkutil::ZooKeeper>) @ 0x1673433a in /usr/bin/clickhouse
    4. DB::StorageReplicatedMergeTree::executeFetch(DB::ReplicatedMergeTreeLogEntry&, bool) @ 0x16726271 in /usr/bin/clickhouse
    5. DB::StorageReplicatedMergeTree::executeLogEntry(DB::ReplicatedMergeTreeLogEntry&) @ 0x16715724 in /usr/bin/clickhouse
    6. ? @ 0x167dc11f in /usr/bin/clickhouse
    7. DB::ReplicatedMergeTreeQueue::processEntry(std::__1::function<std::__1::shared_ptr<zkutil::ZooKeeper> ()>, std::__1::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&, std::__1::function<bool (std::__1::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&)>) @ 0x16c23a25 in /usr/bin/clickhouse
    8. DB::StorageReplicatedMergeTree::processQueueEntry(std::__1::shared_ptr<DB::ReplicatedMergeTreeQueue::SelectedEntry>) @ 0x16757a13 in /usr/bin/clickhouse
    9. DB::ExecutableLambdaAdapter::executeStep() @ 0x167dcc71 in /usr/bin/clickhouse
    10. DB::MergeTreeBackgroundExecutor<DB::OrdinaryRuntimeQueue>::routine(std::__1::shared_ptr<DB::TaskRuntimeData>) @ 0xb6d4fe5 in /usr/bin/clickhouse
    11. DB::MergeTreeBackgroundExecutor<DB::OrdinaryRuntimeQueue>::threadFunction() @ 0xb6d4ced in /usr/bin/clickhouse
    12. ThreadPoolImpl<ThreadFromGlobalPool>::worker(std::__1::__list_iterator<ThreadFromGlobalPool, void*>) @ 0xb7aa47a in /usr/bin/clickhouse
    13. ThreadFromGlobalPool::ThreadFromGlobalPool<void ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda0'()>(void&&)::'lambda'()::operator()() @ 0xb7ac464 in /usr/bin/clickhouse
    14. ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0xb7a78a7 in /usr/bin/clickhouse
    15. ? @ 0xb7ab2dd in /usr/bin/clickhouse
    16. start_thread @ 0x8ea7 in /usr/lib/x86_64-linux-gnu/libpthread-2.31.so
    17. __clone @ 0xfddef in /usr/lib/x86_64-linux-gnu/libc-2.31.so
    (version 22.4.4.7 (official build))
  • https://t.me/clickhouse_ru
    есть, просто передавать в rangehashed заглушку (обычно передают key=1)
  • для того, чтобы в выборку попадали только поля, которые есть в parquet'е?
    И, если parquet'ы разнородные по полям (данные за несколько лет, и постепенно прирастали полями), то при выборке еще нужно учитывать, чтобы читались только те файлы, где эти поля есть?
    Я правильно понял?
  • https://t.me/clickhouse_ru
    @psheni #270364 11:20 AM, 18 May 2022
    #вакансия
    Добрый день! Хотела бы предложить вам две вакансии

    💊 Компания ФК ПУЛЬС — фармдистрибьютор № 1 на российском рынке. Уже 25 лет мы формируем новые стандарты качества в дистрибьюторском бизнесе и любим дело, которым занимаемся!
    Наш IT департамент насчитывает уже больше 160 человек.

    Сейчас мы ищем ClickHouse DBA
    Вилка: до 260 000 на руки.
    Формат работы: Можно удаленно, гибрид или офис.
    Адрес офиса: г. Химки, ул. Ленинградская, д.29
    График: 5\2 с 9 до 18, но можно обсуждать

    🔹Задачи:
    - Установка, настройка кластера и сопровождение ClickHouse;
    - Обеспечение непрерывной работы, диагностика и устранение неполадок ClickHouse;
    - Восстановление кластера в случае аварии;
    - Настройка системы мониторинга и анализа ошибок в части работы ClickHouse;
    - Внедрение систем миграций БД;
    - Настройка кластеров Apache Kafka, контроль и обеспечение непрерывной работы;
    - Контроль пайплайна данных Kafka -> Clickhouse.

    🔹Что мы хотим видеть от кандидата:
    - Опыт администрирования и настройки Clickhouse и Kafka от 2-х лет;
    - Опыт настройки мониторинга;
    - Опыт взаимодействия с разработчиками, участие во внедрениях как плюс;
    - Базовые знания unix систем.

    🔹Что мы предлагаем:
    - Оформление на работу согласно ТК РФ;
    - Полностью белая зарплата, выплата три раза в месяц;
    - Интересные и сложные задачи;
    - Возможность обучения и посещения конференций за счет компании;
    - ДМС.

    Контакты для связи: @psheni, y.pshenichnaya@puls.ru
  • https://t.me/clickhouse_ru
    @psheni #270365 11:20 AM, 18 May 2022
    #вакансия
    Также ФК ПУЛЬС ищет Разработчика баз данных ClickHouse
    Вилка: до 180 000 на руки.
    Формат работы: Можно удаленно, гибрид или офис.

    🔸Задачи:
    - Создание структур данных и витрин для отчётов (ClickHouse);
    - Участие в разработке ETL (NiFi, Kafka);
    - Написание SQL запросов для отчётов (ClickHouse, PostgreSQL);
    - Взаимодействие со смежными подразделениями по вопросам настройки метрик, подготовки отчетов и т.д.

    🔸Что мы хотим видеть от кандидата:
    - Уровень работы с ClickHouse от middle;
    - Уровень разработки SQL (Postgresql, MSSQL) от middle;
    - Опыт работы с Kafka;
    - Будет плюсом опыт работы с NiFi и Java.
  • https://t.me/clickhouse_ru
    надо грепать логи на обеих репликах по 20220518_28722_28722_0
    тут что-то странное случилось, реплика скачала парт и обнаружила что у нее такой есть уже. Это часто у вас?
  • https://t.me/clickhouse_ru
    ну да, есть такая штука input function, из нее можно делать select поэтому получается insert into .... select ..... from input(.. .... )format Parquet
  • https://t.me/clickhouse_ru
    @losdmi ↶ Reply to #270366 #270368 11:26 AM, 18 May 2022
    каждые несколько минут регулярно
  • https://t.me/clickhouse_ru
    а зукипер далеко? в другом датацентре?
  • https://t.me/clickhouse_ru
    @losdmi ↶ Reply to #270369 #270370 11:31 AM, 18 May 2022
    зукипер на тех же хостах что и кликхаус
  • https://t.me/clickhouse_ru
    а ну нельзя так. Зукиперу нужен отдельный хост с отдельным диском. КХ мешает зукиперу работать.
  • https://t.me/clickhouse_ru
    @losdmi ↶ Reply to #270371 #270372 11:34 AM, 18 May 2022
    спасибо, попробуем.

    но при этом зукипер должен быть близко (в пределах одного датацентра), чтобы не было лагов сети?
  • https://t.me/clickhouse_ru
    да, типа летенси должна быть <30ms (чем меньше тем больше инсертов сможете делать)
  • https://t.me/clickhouse_ru
    Хотя бы для начала вынести данные кипера на отдельный от КХ диск (В рамках той же машины)
  • https://t.me/clickhouse_ru
    @losdmi ↶ Reply to #270373 #270375 11:39 AM, 18 May 2022
    ещё подскажите пожалуйста есть ли какой-то особый подход чтобы перевести существующий кластер КХ на новые хосты зукипера и при этом не потерять данные которые в моменте пишутся в Replicated таблицу?

    просто обновить адреса зукипера в конфигах это слишком резкий подход?
  • https://t.me/clickhouse_ru
    Добавить в существующий кластер зоокипера новые ноды, дождаться синхронизации, поменять в конфигах, удалить старые
  • https://t.me/clickhouse_ru
    КХ переключается на другую сессию зукипера если в текущей ошибка, т.е. будет (возможна) ошибка инсерта

    я останавливаю заливку, КХ обычно быстро переключается (из-за репликации и мержей)
  • https://t.me/clickhouse_ru
    @gudinagutin #270380 12:23 PM, 18 May 2022
    Здравствуйте, изменил настройки сервера <logger> в директории config.d (изменил пути к логам + уровень логирования). Вопрос: нужно ли перезагружать сервер при изменении этих настроек? Можно ли как-то убедиться, что изменения "подхватились" (может через какой-то хитрый SELECT или еще как-то)?
    Спасибо
  • https://t.me/clickhouse_ru
    Только глядя в логи.
    И зависит от версии, сначала КХ умел без перезагрузки, потом его разучили, потом снова научили.
  • https://t.me/clickhouse_ru
    @gudinagutin #270383 12:32 PM, 18 May 2022
    спасибо!
  • https://t.me/clickhouse_ru
    спасибо большое! понятно :)
  • https://t.me/clickhouse_ru
    Не могу создать ReplicatedMegreTree таблицу из примера с альтинити, бесконечно долго (до таймаута) жду ответа от запроса. Настроил вроде правильно
  • https://t.me/clickhouse_ru
    @skirpichenok #270387 12:38 PM, 18 May 2022
    Добрый день.

    перешел на jdbc 0.3.2

    java.lang.IllegalArgumentException: Only singleton array is allowed, but we got: [671754, 874503, 874502, 167962, 493592...

    clickHouseDAO.executeSQLByHost(this.clickHouseHost, insertDenormalizedDataSql, (connection, statement) ->
    statement.setArray(ONE, connection.createArrayOf(JdbcTypes.BIGINT, studyIndexInfo.getIds().toArray(new Long[]{}))));

    как победить?
  • https://t.me/clickhouse_ru
    select * from system.zookeeper where path = '/' работает?
  • https://t.me/clickhouse_ru
    @Alexey_Cald #270390 12:47 PM, 18 May 2022
    на лидере да
  • https://t.me/clickhouse_ru
    чта? какой лидер, вы о чем?
  • https://t.me/clickhouse_ru
    @Alexey_Cald #270392 12:47 PM, 18 May 2022
    На фоловере
  • https://t.me/clickhouse_ru
    @levkasper #270393 12:48 PM, 18 May 2022
    Всем хорошего времени суток, есть ли ограничение на кол-во таблиц в базе? Заранее благодарен!
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Нууу реплики ж отличаются как-то
  • https://t.me/clickhouse_ru
    каша, какая каша.

    надо сначала добится чтобы киперы собрались в кластер.
    select * from system.zookeeper where path = '/' должен работать на всех нодах
  • https://t.me/clickhouse_ru
    спасибо!
  • https://t.me/clickhouse_ru
    проверяйте сеть, порты
  • @olehdudkin #270399 01:07 PM, 18 May 2022
    Сегодня выяснил что на наших серверах 32 гига памяти под CH. Есть ли какой-то нижний порог рекомендуемой памяти?
  • https://t.me/clickhouse_ru
    имхо, если меньше 128 не стоит даже заморачиваться с КХ. Взять что-нибудь попроще.

    https://clickhouse.com/docs/en/operations/requirements#ram
    https://clickhouse.com/docs/en/operations/tips#ram
  • @olehdudkin #270401 01:16 PM, 18 May 2022
    Спасибо
  • @fdeh75 #270405 01:27 PM, 18 May 2022
    Всем привет!
    Есть ли возможность изменить тип столбца (UInt16 => UInt256) который находится в ключе сортировки без создания новой таблицы и переноса данных? версия - 21.8
  • https://t.me/clickhouse_ru
    нет.

    и вообще вам это не нужно. UInt256 это страшная штука, это как стратегическое ядерное оружие, я даже на тестовых контейнерах в докере не пользуюсь, страшно.
  • @fdeh75 ↶ Reply to #270406 #270407 01:31 PM, 18 May 2022
    К сожалинию нужно(
    Кстати, UInt256 шикарно работает для нас. В базе считаем большие числа.

    Спасибо за ответ, пойду перегонять)
  • https://t.me/clickhouse_ru
    @ilejn ↶ Reply to #270407 #270410 01:44 PM, 18 May 2022
    С помощью UInt128 можно пересчитать все атомы во Вселенной ;)
    Не хватает?
  • Не хватает. Есть строковые данные, которые не помещаются в UInt128, но поместились бы в UInt256. К сожалению, процессоры с поддержкой 256-битной арифметики пока не выпускают, так что пользы от UInt256 будет не так много.
  • https://t.me/clickhouse_ru
    во вселенной не хватит, в млечном пути наверное можно
  • https://t.me/clickhouse_ru
    @den_crane #270413 01:49 PM, 18 May 2022
    с трудом конечно можно понять зачем нужны UInt128 и 256 и тем более в orderby, там граблей вагон, в какой-то момент выяснится что все вообще работает неправильно и индекс битый потому что UINt256 сравниваются неправильно
  • https://t.me/clickhouse_ru
    Хеши можно хранить, и они будут относительно человеко-читаемы
  • https://t.me/clickhouse_ru
    @ilejn ↶ Reply to #270411 #270415 01:51 PM, 18 May 2022
    А строчки прямо все разные?
    Если вдруг нет, можно смотреть сюда https://clickhouse.com/docs/en/sql-reference/data-types/lowcardinality
    LowCardinality Data Type | ClickHouse Docs

    lowcardinality-data-type}

  • https://t.me/clickhouse_ru
    дада, я уже это слышал, "нам в табло надо показывать", тут правда есть проблема что никто не поддерживает UInt256
  • https://t.me/clickhouse_ru
    драйвер превратит в строку, которая покажется в tableau.

    А внутри кх это будет все те же 16/32 байта
  • Условно разные, но их больше 100_000. Например, база цифробуквенных серийных номеров.
  • @sergey_alaev #270419 01:54 PM, 18 May 2022
    Упаковка таких ключей в int значительно ускоряет запросы
  • @fdeh75 ↶ Reply to #270410 #270420 02:02 PM, 18 May 2022
    Анализируем систему которая с такими числами работает. Для очистки совести - 256 юзаю только там где необходимо, из-за этого и нарвался на то что прийдется перегодять терабайтную таблицу)
  • https://t.me/clickhouse_ru
    и что это на самом деле числа? с арифметическими операциями?
  • @kaneril #270422 02:17 PM, 18 May 2022
    Здравствуйте)

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

    Соответственно, чтобы соединить данные нужно выполнить следующее: джойн 1 большой таблицы с маппингом -> получаем большую таблицу, (вариативно)группировка результата, джойн 2 большой таблицы

    Сейчас в кликхаусе получше обстоят дела с джойнами (появился джойн для больших таблиц, джойн во внешней памяти), но все равно скрипты будут получаться достаточно громоздкими (нельзя использовать несколько джойнов подряд и нужно уходить в подзапросы)и из-за большого размера таблиц растет риск уронить запрос по памяти

    Возможно кто-то уже сталкивался с подобной проблемой?

    Мы также рассматривали возможность скидывать метрики с обеих сущностей в одну супер-большую таблицу, но тогда неочень понятно как их соединять: 2 подзапроса опять же породят 2 таблицы из одной, которые затем соединятся через таблицу с маппингом через 2 джойна. Кроме того мы чаще работаем с данными каждой сущности по отдельности, соответственно нужно будет добавлять специальное поле, чтобы иметь возможность быстро фильтроваться по метрикам. Также структура метрик у этих сущностей имеет существенные различия, поэтому будут полупустые колонки, заполненные значениями только для какой-то одной сущности
  • @2070273164 #270423 02:21 PM, 18 May 2022
    А вы не хотите сразу заливать в несколько таблиц через MV? Тогда для запросов к отдельным сущностям вы будете пользоваться отдельными таблицами, а когда к объединенным данным - то к сгруппированной.
  • https://t.me/clickhouse_ru
    Вариант с супер широкой таблицей выглядит радужнее. Пропуски в метриках? - ну и ладно. Можно попробовать уложить метрики в словари.
    Широкую табличку можно сделать через MV
  • а как это решит проблему с соединением сущностей?
    все равно придется цепляться через маппинг
  • @olehdudkin #270426 02:26 PM, 18 May 2022
    Мы делаем что-то очень похожее, но необходимости в джоинах не возникло
  • @olehdudkin #270427 02:27 PM, 18 May 2022
    что вы подразумеваете под соединением сущностей?
  • @olehdudkin #270428 02:27 PM, 18 May 2022
    и для воронок есть встроенная функция КХ
  • https://t.me/clickhouse_ru
    join не нужен. На самом деле вы клеите все ивенты по какому-то id в одну строку, это group by а не join
    поэтому масса вариантов, grouparray , WF

    маппинг в словарь и мапить лучше в момент инсерта
  • https://t.me/clickhouse_ru
    @youngbluesman #270430 02:33 PM, 18 May 2022
    Ребята, я тут уже задавал вопрос про директорию /var/lib/clickhouse/data/database/detached мне дали ссылку в которой говорится, что файлы начинающиеся на ignored_ можно спокойно удалять.
  • https://t.me/clickhouse_ru
    @youngbluesman #270431 02:34 PM, 18 May 2022
    Вопрос: можно просто удалить соответствующие директории из ОС или надо делать какой-то особый запрос к СУБД?
  • У нас есть нулевой шаг воронки, на нем сущность = профиль интеграции
    Следующие шаги воронки, сущность = id провайдера
    При чем с разных профилей можно попасть на разные провайдеры + на провайдер можно попасть напрямую, минуя профиль
  • @olehdudkin #270433 02:36 PM, 18 May 2022
    у вас просто одна таблица - profile_id, provider_id, action/event
  • @olehdudkin #270434 02:36 PM, 18 May 2022
    Этого достаточно чтобы строить воронки вдоль и поперек
  • https://t.me/clickhouse_ru
    да, из ОС, все что в detached можно сносить.

    если лень из ос то можно через SQL, там в статье был пример
  • https://t.me/clickhouse_ru
    @youngbluesman #270436 02:37 PM, 18 May 2022
    Большое спасибо!
  • @fdeh75 ↶ Reply to #270421 #270437 02:37 PM, 18 May 2022
    Да, сложение/вычитание в базе прямо. Планирую на сумирующий матвью уехать.
  • https://t.me/clickhouse_ru
    и что там? биткоины? сложно представить для чего нужно 128 бит, не говоря уж про 256
  • У нас есть UserId, но этих пользователей нужно потом раскидывать по кучкам (b2b2c модель), соответственно тех людей, которые с 0 шага перешли на первый мы без проблем таким образом распределим по нашим провайдерам (основная сущность), но вот чтобы посчитать конверсию нулевого шага, где у нас другая сущность (профиль) возникают проблемы
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    ну вы наизобретали разных терминов, которые у вас там используются (профиль, шаг0, пользователь, провайдер) это все шелуха. Абстрактно мы все тут в этом чате решаем одну и туже задачу, клеим кучи ивентов в строку и обсчитываем воронки, и не нужны джойны, просто вам надо осознать задачу под другим углом
  • @fdeh75 ↶ Reply to #270438 #270442 02:44 PM, 18 May 2022
    Система отдает много этих цифророк 256 разрадности, надо их компактно упаковать и про запросу шутро посчитать вот на математике думал сначала побить на 4 столбца по 64 бита (мб выиграл бы в компресси), потом решл юзать 256 бит, раз уж поддерживается. Ну и клик тут идеально вывозит
  • https://t.me/clickhouse_ru
    вопрос не в этом, просто любопытно для чего может понадобится 256 бит, что можно считать в таких числах? Это перебор даже для коллайдера и астрофизики.
  • https://t.me/clickhouse_ru
    @bvt123 #270444 02:47 PM, 18 May 2022
    Я заметил что MaterializedMySQL начали фиксить потихоньку. Непонятно только - это по прежнему энтузиасты или уже разработчики из clickhouse.inc ? Есть шанс что её доделают к 22.8?
  • https://t.me/clickhouse_ru
    хуавей
  • У нас тоже b2b2c. Вы наверное задачу в терминах реляционных баз представляете. А вам нужно ее как огромную таблицу фактов с приклеенными атрибутами
  • @olehdudkin #270447 02:48 PM, 18 May 2022
    понятие сущности тут выпадает вообще
  • это технические ограничения системы, уже есть профиль, уже есть провайдер (система живет больше 10 лет)
    соответственно наши аналитики не могут сказать, сносите все и пилите заново с одной сущностью, а пытаются каким-то образом подстроить аналитическую систему
  • @olehdudkin #270449 02:49 PM, 18 May 2022
    Ничего заново пилить не надо
  • @olehdudkin #270450 02:49 PM, 18 May 2022
    на уровне аналитике вы можете хоть зеленых человесков рисовать
  • @olehdudkin #270451 02:49 PM, 18 May 2022
    вопрос в хранении данных и как их потом запрашивать
  • https://t.me/clickhouse_ru
    вы ничего не поняли.
  • https://t.me/clickhouse_ru
    извините, но так на вскидку кажется что нужно нормально написать запросы и посмотреть на структуры данных 16млн в день это не так чтобы овер много.

    ну и посмотреть на типы данных. может нужно закастовать в лоукардиналит и инты (в том числе внутри мапов и эрреев)

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

    подзапросы вообще зло. из-за них код хрен поймешь. используйте with / cte по гайдланам гитлаба
  • https://t.me/clickhouse_ru
    @kobzevvv #270454 02:59 PM, 18 May 2022
    на практике скорее всего окажется что джоин с умножением строк, distinct не нужный или чето еще такое по пустому тратящее ресурсы
  • @fdeh75 ↶ Reply to #270443 #270455 03:00 PM, 18 May 2022
    Крипта. Там decimals предсавление: UInt256 бит на число + Uint8 на колличество знаков после зарятой.
  • https://t.me/clickhouse_ru
    @kobzevvv #270457 03:04 PM, 18 May 2022
    сейчас глянул сколько в день инсертится у нас на кликхаусе. ничего себе. и всё работает. и тупо даже не морочились с оптимизацией на продакшине. и так норм
  • https://t.me/clickhouse_ru
    Добрый день, аналитику на ClickHause перевели? А отчётные формы на чем решили сделать, если не секрет? :)
  • https://t.me/clickhouse_ru
    :) спасибо, все понятно!
  • а сколько, если не секрет?
  • https://t.me/clickhouse_ru
    не знаю секрет это или нет. поэтому не скажу
  • Спасибо!!! Доработаю ))
  • 👍👍😄
  • https://t.me/clickhouse_ru
    =) да нормальный процесс..
  • https://t.me/clickhouse_ru
    @voronin_d #270467 04:17 PM, 18 May 2022
    Всем привет!
    Кто может подсказать почему не выполняются ALTER операции для некоторых таблиц?

    Проблема:
    Пытаюсь добавить/изменить/удалить столбец в таблице, но получаю timeout.

    Тестил в VS Code c clickhouse-driver (python), получаю:
    clickhouse_driver.errors.ServerException: Code: 473.
    DB::Exception: Locking attempt for ALTER on "test_db.test_table" has timed out! (120000 ms) Possible deadlock avoided. Client should retry..

    Тестил в DBeaver:
    SQL Error [159] [07000]: Read timed out, server ClickHouseNode(addr=http:localhost:8123, db=default)@-550109806

    При этом остальные таблицы большего и меньшего размера выполняют ALTER корректно, а также копия данной таблицы работает с ALTER исправно.

    В чем тогда может быть проблема с данной таблицей?
  • @softbot_xxl #270468 04:24 PM, 18 May 2022
    Допустим есть Distributed таблица, и есть шарды. Можно ли при запросе определить лагающие реплики?
  • @softbot_xxl #270469 04:24 PM, 18 May 2022
    Или просто замерить время ответа каждой реплики. Допустим прямо в запросе.
  • А что за гайдлайны? Как найти?
  • https://t.me/clickhouse_ru
    одна операция в одном алиасе. то есть пишите вверху оди with и дальше каждое вычисление отдельным блоком. все джойны желательно через using вообще если перфекционизмом заниматся:) https://gitlab.com/gitlab-data/analytics/-/blob/master/transform/snowflake-dbt/models/marts/pumps/subscription_product_usage_data.sql

    ну я вот так пишу, просто рандомная моделька кусок
  • спасибо)
  • Выглядит - офигенно. Но вот всмысле читать - не очень удобно как по мне
  • https://t.me/clickhouse_ru
    да не. читать 100% удобнее, просто непривычно ну и разные стили по отступам может вам другой комфортнее.

    тут самое важное это простота отладки. в конце модели всегда делается select * from last_cte и можно подставить любой промежуточный шаг и посмотреть.
  • https://t.me/clickhouse_ru
    @kobzevvv #270475 04:53 PM, 18 May 2022
    типо такого
  • @olehdudkin #270476 04:55 PM, 18 May 2022
    Вот это интересно, ага
  • https://t.me/clickhouse_ru
    @elzaa8 #270477 04:56 PM, 18 May 2022
    да конечно
  • https://t.me/clickhouse_ru
    @suiziy #270478 04:57 PM, 18 May 2022
    кто тут кто тут?
  • https://t.me/clickhouse_ru
    @psheni ↶ Reply to #270458 #270479 05:05 PM, 18 May 2022
    Добрый день! DataLens + самописный портал
  • @kaneril #270480 05:08 PM, 18 May 2022
    Пару часов назад я задавала вопрос про соединения метрик 2 разных сущностей через таблицу с маппингом многие-ко-многим
    Большое спасибо всем за участие
    Как оказалось, описание нашей проблемы было несовсем корректным)
    Но все равно было найдено хорошее решение, вдруг кому-то оно тоже пригодится

    Метрики пользователей с 0 шага (сущность профиль) и метрики пользователей с последующих шагов (с сущностью провайдер) будут писаться в общую таблицу со всеми метриками

    Таблица с маппингом многие-ко-многим будет реализована 2 словарями: словарь 1 - к уникальному профилю цепляется массив с возможными провайдерами, словарь 2 - к уникальному провайдеру цепляется массив с возможными профилями

    При инсерте метрик пользователей в общую таблицу будут заполнятся 2 дополнительные колонки из словарей: для метрик 0 шага массив с провайдерами из словаря 1, для метрик последующих шагов массив с профилями из словаря 2

    Таким образом, мы получим возможность быстро и незатратно по памяти считать воронки как в разрезе профилей, так и в разрезе провайдеров (с помощью функций работы с массивами и функциональности array join)
  • https://t.me/clickhouse_ru
    Добрый вечер, вы пишите парты и партиции разные вещи, но в документации написано, что парты и есть партиции:

    https://clickhouse.com/docs/ru/operations/system-tables/parts/

    Подскажите, где мне почитать о том, что они разные. Описание таблицы system.partitions также не нагуглила.

    Посоветуйте пожалуйста.
    system.parts | ClickHouse Docs

    system_tables-parts}

  • так указано же, что в этой таблице в колонке name лежит имя парта, в колонке partition — имя партиции, к которой этот part принадлежит.
    и там разные значения.
  • https://t.me/clickhouse_ru
    @madiken_habr #270483 06:18 PM, 18 May 2022
    Поняла, спасибо
  • @1382671541 #270484 06:18 PM, 18 May 2022
    partition — это то, на что вы нарезаете таблицу в зависимости от ваших нужд
    part — это то, из чего движок собирает партицию для своих нужд
  • https://t.me/clickhouse_ru
    @madiken_habr #270485 06:18 PM, 18 May 2022
    Поняла
  • @we2beast #270487 06:20 PM, 18 May 2022
    Добрый вечер! Кто-то сталкивался с ошибкой в Clickhouse «DB::Exception: Size of filter doesn't match size of column.: While executing MergeTreeThread. (SIZES_OF_COLUMNS_DOESNT_MATCH) (version 21.12.4.1 (official build))»? В интернете не могу найти вменяемые ответы, в особенности как исправить
  • @Vlad999 #270490 06:58 PM, 18 May 2022
    Приветствую! Я тут новичок... Подскажите, плз, куда смотреть!? Clickhouse есть 1464 %CPU (((
  • https://t.me/clickhouse_ru
    Ну в запросы, а так кликхаус MPP система
  • https://t.me/clickhouse_ru
    а какая версия КХ ? вообще это нормально, alter не смог наложить блокировку и отвалился через 2 минуты
  • Вот, например, запрос:
  • @Vlad999 #270495 07:13 PM, 18 May 2022
    SELECT video_id
    FROM videos_categories
    WHERE (category_id IN (1,2,3,4,5,6)) AND (
    video_id IN (
    SELECT video_id
    FROM site1
    WHERE video_id != 1
    ORDER BY RAND() ASC
    LIMIT 1000
    ))
    GROUP BY video_id
    ORDER BY COUNT(*) DESC
    LIMIT 60
  • @Vlad999 #270496 07:14 PM, 18 May 2022
    ┌─explain─────────────────────────────────────────────────────────────────────────────────┐
    │ CreatingSets (Create sets before main query execution) │
    │ Expression (Projection) │
    │ Limit (preliminary LIMIT (without OFFSET)) │
    │ Sorting (Sorting for ORDER BY) │
    │ Expression (Before ORDER BY) │
    │ Aggregating │
    │ Expression (Before GROUP BY) │
    │ Filter (WHERE) │
    │ SettingQuotaAndLimits (Set limits and quota after reading from storage) │
    │ ReadFromMergeTree (db1.videos_categories) │
    │ CreatingSet (Create set for subquery) │
    │ Expression (Projection) │
    │ Limit (preliminary LIMIT (without OFFSET)) │
    │ Sorting (Sorting for ORDER BY) │
    │ Expression (Before ORDER BY) │
    │ Filter (WHERE) │
    │ SettingQuotaAndLimits (Set limits and quota after reading from storage) │
    │ ReadFromMergeTree (db1.site1) │
    └─────────────────────────────────────────────────────────────────────────────────────────┘
  • @Vlad999 #270497 07:15 PM, 18 May 2022
    CREATE TABLE db1.videos_categories
    (
    video_id Int32,
    category_id Int32
    )
    ENGINE = MergeTree
    ORDER BY tuple()
    SETTINGS index_granularity = 8192
  • @Vlad999 #270498 07:15 PM, 18 May 2022
    CREATE TABLE db1.site1
    (
    video_id Int32
    )
    ENGINE = MergeTree
    ORDER BY tuple()
    SETTINGS index_granularity = 8192
  • @Vlad999 #270499 07:16 PM, 18 May 2022
    все вроде бы элементарно и раньше работало, не нагружало CPU
  • https://t.me/clickhouse_ru
    для начала попробовать обновить до 22.3.4.20
  • https://t.me/clickhouse_ru
    парты (куски) физическое представление таблицы (директории на диске)
    партиции логическое

    вы создаете таблицу partition by toYYYYMM(D)

    потом делаете
    insert ... ( D.... ) values ( 2020-01-01 .... )
    insert ... ( D.... ) values ( 2020-01-02 .... )

    insert ... ( D.... ) values ( 2021-01-01 .... )

    создается 3 парта, в двух партициях (toYYYYMM(D)).

    парты (куски) сливаются /мержатся в бOльшие куски в рамках партиции
    т.е. в какой-то момент два первых превратятся в один
    станет два парта, по одному в партиции
  • https://t.me/clickhouse_ru
    Denny, я ведь не могу никак повлиять на parts? Они же мержатся в своей логике. И как бы это просто для информации, или нет?

    Если я, допустим, хочу какой-то кусок заменить. Я могу стереть партицию и внести ее заново.
  • Можно detach делать партов и нужный кусок убирать
  • https://t.me/clickhouse_ru
    @madiken_habr #270504 07:52 PM, 18 May 2022
    А ещё вот такой вопрос, когда таблицу с mergetree создаю из-под sqlalchemy, как в order by прописать tuple(). Может, кто-то делал?
  • https://t.me/clickhouse_ru
    Как это?

    Кусок же нужно логически выделить. Чтобы потом его заменить на аналогичный, но новый.

    А как по part понять, что в нем смержилось и чему он эквивалентен в источнике?

    По партиции-то понятно.
  • Парт сам по себе - атомичен и неизменяем. Он мерджится в другие парты. Пока не смерджился - можно удалять детачем. Виртуальная колонка _part вернет информацию о парте
  • https://t.me/clickhouse_ru
    @madiken_habr #270507 08:11 PM, 18 May 2022
    Но когда он смержился, это же ведь уже другой парт?
  • https://t.me/clickhouse_ru
    order_by=func.tuple_() попробуйте
  • https://t.me/clickhouse_ru
    @madiken_habr #270509 08:23 PM, 18 May 2022
    Спасибо!
  • https://t.me/clickhouse_ru
    @Igess ↶ Reply to #270507 #270510 08:25 PM, 18 May 2022
    Да, когда 2 парта смерджатся, то получится новый парт, а 2 старых удалятся
  • https://t.me/clickhouse_ru
    @baltic_tea #270511 08:26 PM, 18 May 2022
    Подскажите, а в Tabix можно подключиться к кластеру Clickhouse, созданному в Yandex.Cloud? Постоянно ошибка подключения, хотя все данные по идее корректны
  • https://t.me/clickhouse_ru
    @beautkatyaie #270512 08:36 PM, 18 May 2022
    ага
  • https://t.me/clickhouse_ru
    на парты вы не должны хотеть влиять.

    есть варианты, можно сделать replace партции
  • https://t.me/clickhouse_ru
    @madiken_habr #270514 08:47 PM, 18 May 2022
    Ну да я почитала, понятно.
  • https://t.me/clickhouse_ru
    @madiken_habr #270515 08:48 PM, 18 May 2022
    А replace вобще много времени занимает?

    Быстрее сделать replace партиции или удалить и заново insert?
  • https://t.me/clickhouse_ru
    replace это операция для подмены партиции из другой таблицы, это немного не то что инсерт
  • https://t.me/clickhouse_ru
    @madiken_habr #270517 09:01 PM, 18 May 2022
    Ну допустим мы положили в таблицу данные инсертом за год.

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

    Скажем, нашли партиции с расхождениями.

    Что теперь быстрее?подменить партиции из первой таблицы партиция и из второй.

    Или detach партиции из первой, сделать туда insert.

    Интуитивно кажется, первый способ быстрее :)

    Хотя понятно, пример может и надуманный.
  • https://t.me/clickhouse_ru
    22.1.3.7

    тогда вопрос по механике блокировки:
    если, например, выполнить три запроса c alter, то они будут выполняться по очереди? И чем больше накидывается ALTER запросов, тем дольше ждать, пока все не будут выполнены?
  • https://t.me/clickhouse_ru
    DDL locks are possible and should be resolved or documented as normal behavior · Issue #25273 · ClickHouse/ClickHouse

    create table xx ( A DateTime, B Float64, C UInt8, D UInt8) Engine=MergeTree order by A; insert into xx select now(), 1/(number+1), 1, 1 from numbers(1000000000) ; alter table xx modify column B Flo...

  • https://t.me/clickhouse_ru
    👍
  • 19 May 2022 (265 messages)
  • https://t.me/clickhouse_ru
    извините, но в ссылке которую вы прислали написано "кусок данных",
    кусок данных это не партиция

    partition это одно из полей этой таблицы

    грубо говорят, партиции это префикс в имени парта и еще minmax индекс внутри парта по полям из PARTITION BY
    чтобы при сканировании партов можно было ОЧЕНЬ БЫСТРО отбрость лишние
  • https://t.me/clickhouse_ru
    Здравствуйте, мы возвращаемся с нашей проблемой утечки памяти. Мы подняли стейджинг с одной таблицей, которая подключена к кролику. Проблема действительно в ней. Если детачить, то память не освобождается. Обновились на 22.2 проблема остаётся. Куда копать?
  • https://t.me/clickhouse_ru
    22.3 ? и 22.4 пробовали?
  • https://t.me/clickhouse_ru
    @BloodJazMan #270529 04:18 AM, 19 May 2022
    22.3 lts все таки
  • https://t.me/clickhouse_ru
    А чего 22.2 ? есть 22.3 , 22.4, завтра 22.5 выйдет.

    Какой формат данных? Json? На простой таблице и 2х полей тоже самое? Надо воспроизводить и писать в ишью в гитхабе шаги. Чем быстрее напишете, тем быстрее починят. Возможно что течет в какой-то конкретной конфигурации, например с какой-то версией кролика.
  • https://t.me/clickhouse_ru
    нет, там прост ов 22.3 без обратной совместимости.
  • https://t.me/clickhouse_ru
    Формат данных Json, exchange type - topic, используем rabbitmq_queue_base,

    RabbitMQ 3.7.14.

    Возможно кролик и не виноват, у нас еще в бд есть внешние дикты.
  • @mkllekunovich #270537 06:35 AM, 19 May 2022
    Здравствуйте, хочу сделать так:
    create table tutorial.temp1 (arr Array(UInt32)) ENGINE = MergeTree() ORDER BY tuple();

    INSERT INTO tutorial.temp VALUES (
    select range(start_ticket_number, end_ticket_number) from tutorial.distributions);
    Получаю это:

    Code: 62. DB::Exception: Cannot parse expression of type Array(UInt32) here: select range(start_ticket_number, end_ticket_number) from tutorial.distributions): While executing ValuesBlockInputFormat. (SYNTAX_ERROR) (version 22.1.3.7 (official build))
    Есть ли варианты исправить.
  • https://t.me/clickhouse_ru
    INSERT INTO tutorial.temp VALUES (
    select range(start_ticket_number, end_ticket_number) from tutorial.distributions);

    тут VALUES( убрать нужно
    а то бессмысленная фигня получается =)
    SYNTAX ERRЩК yt ghjcnj nfr IMHO
  • "Е мае" о вот это человек, вот это тебе огромное спасибище, вот это я тупил, еще раз СПАСИБО)
  • https://t.me/clickhouse_ru
    Не помогло, всё та же ошибка.
    ZooKeeperClient: Code: 999. Coordination::Exception: Received error in heartbeat response: Connection loss (Run time inconsistency). (KEEPER_EXCEPTION)
  • https://t.me/clickhouse_ru
    @ermakmkb #270541 08:31 AM, 19 May 2022
    есть две таблицы
    a: id, value1
    и
    b: id, value2

    как для клика лучше?
    a full join b using (id)
    или

    id, sum(value1), sum(value2)
    from (
    select id, value1, 0 as value2 from a
    union all
    select id, 0, value2 from b
    )
    group by id
  • @1382671541 #270543 08:59 AM, 19 May 2022
    а как узнать размер primary index таблицы, который был загружен в оперативку?
  • @214612813 #270544 09:01 AM, 19 May 2022
    Посчитать по system.parts можно
  • а точно, есть специальная колонка
  • https://t.me/clickhouse_ru
    @MichaelMaestro #270548 09:49 AM, 19 May 2022
    Всем доброго дня, вопрос следующий: есть ли какие-либо бест-практис решения по организации полнотекствого поиска в clickhouse?
  • https://t.me/clickhouse_ru
    нет его в кликхаусе. можно только накостылить
  • https://t.me/clickhouse_ru
    Использовать что-то вроде iLike + LIMIT ?
  • https://t.me/clickhouse_ru
    Inverted Indices (RFC) · Issue #37216 · ClickHouse/ClickHouse

    We already have "data skipping" indices in ClickHouse. Data skipping index is a data structure (aggregation, data sketch, etc) that is created for every data granule (or every n g...

  • https://t.me/clickhouse_ru
    это не полнотекстовый поиск, просто поиск по подстроке. если устраивает - то ок
  • https://t.me/clickhouse_ru
    Это пока единственное что подходит хоть как-то
  • https://t.me/clickhouse_ru
    На гитхабе есть пара форков с поддержкой lucene и Sphinx, afaik. Но это не мейнстрим со всеми вытекающими
  • https://t.me/clickhouse_ru
    @egor_mandragor #270555 10:23 AM, 19 May 2022
    Привет.
    Используем clickhouse-backup с s3 в качестве стораджа.
    Проблема такая, при ресторе, бекапер не дожидается пока скачается бекап и падает с timed out waiting for the condition через 5 минут.
    В конфиг файле есть таймаут в секции clickhouse, а есть ли такой же в секции s3?
  • https://t.me/clickhouse_ru
    лог покажите?

    что такое "wating for the condition"
    при ресторе
  • https://t.me/clickhouse_ru
    @vlstv #270557 10:26 AM, 19 May 2022
    всем привет! не подскажите почему такой дата скип индекс не срабатывает?
    ALTER TABLE ips ADD INDEX ip cutIPv6(IPv6StringToNum(ip),2,2) TYPE minmax GRANULARITY 2;

    в таблице есть ipv6 и ipv4 адресса, хочу индексировать их на базе двух постедних октет
  • https://t.me/clickhouse_ru
    @egor_mandragor #270558 10:29 AM, 19 May 2022
    @BloodJazMan {"level":"info","timestamp":"2022-05-19T10:12:38.426Z","msg":"action found: Command=download%!(EXTRA string= , string=20220518T144441_chi-cluster-replicated-0-0), Status=in progress, Error="}
    {"level":"info","timestamp":"2022-05-19T10:12:38.426Z","msg":"action in progress, waiting..."}
    {"level":"error","timestamp":"2022-05-19T10:12:38.426Z","msg":"can't perform restore","error":"timed out waiting for the condition"}
  • https://t.me/clickhouse_ru
    потому что он data skip
    а ваши IP тупо размазаны по всем system.parts
    и при проверке просто ни один парт не может быть отброшен

    проверьте через clickhouse-client
    SET send_logs_level='trace';

    SELECT ip FROM ips WHERE ip=...
  • https://t.me/clickhouse_ru
    это какой то странный лог, clickhouse-backup логи в JSON не выдает
  • https://t.me/clickhouse_ru
    У меня есть обёртка над clickhouse-backup. Которая поллит backup/actions?last=1 и собирает в резалт файл.

    В логах самого бекапера ничего особо интересного, там включен дебаг и видно, как в с3 уходят реквесты и приходят респонсы.

    2022/05/19 10:46:42 info DEBUG: Request s3/GetObject Details:
    ---[ REQUEST POST-SIGN ]-----------------------------
    GET /click-backups/20220518T144441_chi-cluster-replicated-0-0/shadow/mcdo_prom/samples_5m/default_1.tar HTTP/1.1
    Host: minio-gateway-svc.platform-miniogw.svc.cluster.local:9000
    User-Agent: aws-sdk-go/1.40.31 (go1.17.3; linux; amd64)
    Authorization: AWS4-HMAC-SHA256 Credential=1kS9LL6OgDeBp5WlaapK/20220519/us-east-1/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=c611e576a6ded681aebee3df18f272e374b9dbff14362f2e85175c1a30f5ef33
    X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
    X-Amz-Date: 20220519T104642Z
    Accept-Encoding: gzip
    -----------------------------------------------------
    2022/05/19 10:46:42 info DEBUG: Response s3/GetObject Details:
    ---[ RESPONSE ]--------------------------------------
    HTTP/1.1 200 OK
    Content-Length: 120462336
    Accept-Ranges: bytes
    Content-Security-Policy: block-all-mixed-content
    Content-Type: application/x-tar
    Date: Thu, 19 May 2022 10:46:42 GMT
    Etag: "500e229f5b66c74168b092715b5618fe-8"
    Last-Modified: Wed, 18 May 2022 15:00:22 GMT
    Server: MinIO
    Vary: Origin
    X-Amz-Request-Id: 16F07BD15CA36E2D
    X-Xss-Protection: 1; mode=block
  • https://t.me/clickhouse_ru
    у вас S3 debug включен

    а лучше бы вы его выключили
    а включили в конфиге
    general:
    log_level: debug

    и расшарили вместо логов поллера, именно лог stdout / stderr того что clickhouse-backup server выдает
  • https://t.me/clickhouse_ru
    @egor_mandragor #270563 10:53 AM, 19 May 2022
    хорошо, спасибо. Моменто море
  • https://t.me/clickhouse_ru
    @vlstv #270564 10:58 AM, 19 May 2022
    @BloodJazMan
    вот что он пишет
    default.ips (SelectExecutor): Key condition: unknown
    default.ips (SelectExecutor): Selected 3/3 parts by partition key, 3 parts by primary key, 297/297 marks by primary key, 297 marks to read from 3 ranges
    default.ips (SelectExecutor): Reading approx. 2416992 rows with 2 streams

    при этом когда я делаю идекс ALTER TABLE ips ADD INDEX ip ip TYPE minmax GRANULARITY 2; он кажется срабатывает
    default.ips (SelectExecutor): Key condition: unknown
    default.ips (SelectExecutor): Index ip has dropped 138/150 granules.
    default.ips (SelectExecutor): Selected 3/3 parts by partition key, 3 parts by primary key, 297/297 marks by primary key, 24 marks to read from 6 ranges
    default.ips (SelectExecutor): Reading approx. 196608 rows with 2 streams
  • https://t.me/clickhouse_ru
    @mobilesfinks #270567 11:20 AM, 19 May 2022
    Коллеги, приветствую.
    Кто-то поднимал КХ под posthog?
  • https://t.me/clickhouse_ru
    Cпасибо. Дело было не в бобине. Дело закрыто
    У меня PollImmediate cваливался через 5 минут.
  • https://t.me/clickhouse_ru
    @mobilesfinks #270569 11:22 AM, 19 May 2022
    ПХ хочет работать с кластером, настроил кластер по статье с ведущим инстансом + 4 инстанса под шарды (2 шарда/2 реплики в шарде)
    Не проходят миграции. По статусу кластера - он собрался.
    Пробую накатить через мастера таблицу, но на шардах она не создаётся.
    Может кто направить на истинный путь?
  • https://t.me/clickhouse_ru
    Смотрите доку по поводу create table … on
    cluster

    Зукипер настроили?
  • https://t.me/clickhouse_ru
    @Mosyakova #270572 11:56 AM, 19 May 2022
    Привет! Может кто-нибудь подсказать, как работает функция toStartOfInterval(date,INTERVAL 20 day), точнее от какого дня она начинает отсчитывать заданое количество дней (например, 20, как указано)
  • https://t.me/clickhouse_ru
    зависит от версии кх
  • https://t.me/clickhouse_ru
    а, нет, там только при интервале в час, зависит от версии
  • https://t.me/clickhouse_ru
    @atiannay #270575 12:06 PM, 19 May 2022
    что уж
  • https://t.me/clickhouse_ru
    вроде бы весь диапазон от 1970-01-01 до нужной DateTime бьется по выбранному интервалу и выбирает последний перед нужной DateTime
  • @ShCube #270577 12:08 PM, 19 May 2022
    Всем привет! прошу прощения за нубский вопрос
    Подскажите, есть ли возможность вставлять в таблицу данные ИЗ json формата. Мне хочется что-то типо такого:
    INSERT INTO my_table
    SELECT
    toFixedString(unhex(substring(address, 3, 66)), 20) as address,
    data,
    some_more_data
    FROM [{address: " looong bla bla", data, some_more_data: "somedata"}, {address: " looong bla bla bla", data, some_more_data: "somedata2"} ]
  • https://t.me/clickhouse_ru
    @Alexey_Cald #270578 12:10 PM, 19 May 2022
    А при инсерте по http интерфейсу можно ли в ответ получить сколько строк заинсертилось?
  • https://t.me/clickhouse_ru
    зукипер поднят.
    запрос
    SELECT * FROM system.clusters LIMIT 2 FORMAT Vertical;
    показывает, что шарды есть
  • https://t.me/clickhouse_ru
    ух, вот этого и боялась((
    спасибо!
  • https://t.me/clickhouse_ru
    но я бы проверил, потому, что, например, тут в первом backward incompatible change было изменение для интервала по часам, может быть в какой то версии работает по другому
    2021 Changelog | ClickHouse Docs

    ClickHouse release v21.12, 2021-12-15

  • https://t.me/clickhouse_ru
    конечно, но очень на правду похоже, т.к. разбиение на интервалы не от 01.01.22 и не от сегодняшнего дня
  • https://t.me/clickhouse_ru
    беру запрос на создание таблицы и развёрнутого в кубере инстанса.
    Там всё работает и поднялось.
    Пытаюсь продублировать снаружи, но опыта с кластером КХ нехватает. Конфигурится он конечно хреново.
  • https://t.me/clickhouse_ru
    @vanyasvl #270584 01:10 PM, 19 May 2022
    А подскажите пожалуйста, как удалить партишены по маске, например 2021-01-*. В alter table ttt drop partition можно вообще как-то SELECT поставить в качестве partition_expr ?
  • https://t.me/clickhouse_ru
    @logast #270585 01:14 PM, 19 May 2022
    Привет вопрос, изменяет ли clickhouse существующие блоки или только создает новые? Т.е идея создать N энвов из жестких ссылок, где новые блоки будут идти в свой env. Реально?
  • https://t.me/clickhouse_ru
    @ermakmkb #270587 01:22 PM, 19 May 2022
    есть две таблицы
    a: id, value1
    и
    b: id, value2

    как для клика лучше?
    a full join b using (id)
    или

    select id, sum(value1), sum(value2)
    from (
    select id, value1, 0 as value2 from a
    union all
    select id, 0, value2 from b
    )
    group by id
    аля summingmerge
  • https://t.me/clickhouse_ru
    @egor_mandragor #270591 02:25 PM, 19 May 2022
    @BloodJazMan
    Я ещё разок надоем. Крокодил не водится, не растет кокос...

    Делаю download бекапа для соседнего пода кликхауса, чтобы сделать рестор толкьо схемы.
    Но в ответ получаю вот что.
    Направьте, куда ещё можно посмотреть.

    Команда curl -XPOST
    http://chi-cluster-replicated-0-1:7171/backup/download/20220518T144441_chi-cluster-replicated-0-1

    Логи кликхаус-бекапера:
    2022/05/19 14:20:32 debug api.status.inProgress -> len(status.commands)=0, inProgress=false
    2022/05/19 14:20:32 debug api.status.Start -> status.commands[0] == {download%!(EXTRA string= , string=20220518T144441_chi-cluster-replicated-0-1) in progress 2022-05-19 14:20:32 }
    2022/05/19 14:20:33 info SELECT value FROM system.build_options where name='VERSION_INTEGER'
    2022/05/19 14:20:33 info SELECT * FROM system.disks;
    2022/05/19 14:20:33 debug api.status.stop -> status.commands[0] == {download%!(EXTRA string= , string=20220518T144441_chi-cluster-replicated-0-1) error 2022-05-19 14:20:32 2022-05-19 14:20:33 unexpected end of JSON input}
    2022/05/19 14:20:33 error Download error: unexpected end of JSON input
  • https://t.me/clickhouse_ru
    @5365728390 #270592 03:08 PM, 19 May 2022
    Investing in cryptocurrency is one of the best way of earning when you do it with the right platform and with the right expert trader. I recommend Mr Freche to anyone who is interested in trading bitcoins. DM Him via link

    https://t.me/joinchat/AwXYFkKXaaBmNGJk
  • если есть вариант что хешированные а и б не влезут в память, то лучше второй, вот только вместо sum лучше anyIf(special value)
  • https://t.me/clickhouse_ru
    @jarogor #270598 03:50 PM, 19 May 2022
    Всем привет! Не вижу правил. Тут можно проблемы кликхауса пообсуждать попробовать?)
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    None
  • https://t.me/clickhouse_ru
    а почему не сделаете "будущую трансляцию"? что бы напоминалку можно было сделать и подписаться?
  • https://t.me/clickhouse_ru
    да
  • https://t.me/clickhouse_ru
    cc @blinkovivan )
  • https://t.me/clickhouse_ru
    регистрация предполагалась через сайт https://clickhouse.com/company/events/v22-5-release-webinar/
  • https://t.me/clickhouse_ru
    я про ютуб
  • https://t.me/clickhouse_ru
    @orloffv #270607 03:56 PM, 19 May 2022
    удобная же фича
  • https://t.me/clickhouse_ru
    @orloffv #270608 03:57 PM, 19 May 2022
    вот так выглядит
  • https://t.me/clickhouse_ru
    удобная, но боюсь не проинтерированная в чудный мир бизнес-технологий… (и с Zoom кажись тоже)
  • https://t.me/clickhouse_ru
    окей, но я все время пропускаю начало из-за этого)
  • https://t.me/clickhouse_ru
    @jarogor #270611 04:00 PM, 19 May 2022
    Я поискал в истории чата, вижу много раз уже обсуждали, но свой случай не нашёл.

    В общем есть связка clickhouse + rabbitmq.

    1. в docker-compose завёл два сервиса clickhouse и rabbitmq соответственно
    2. создаю таблицу с движком rabbitmq и типом точки обмена direct
    3. удаляю таблицу (или базу даже, не важно)
    4. меняю тип точки обмена (или удаляю просто настройку, по умолчанию fanout становится)
    5. создаю таблицу с новыми настройками
    6. падает конекшн между clickhouse и rabbitmq и больше восстановить не получается.

    Казалось бы можно откатиться к рабочему варианту и пересоздать ту таблицу которая работала, но фига с два, так как удалить таблицу уже не получается, базу тоже.
  • https://t.me/clickhouse_ru
    @jarogor #270612 04:01 PM, 19 May 2022
    std::exception. Code: 1001, type: std::runtime_error, e.what() = failed to open channel: connection is not active (version 21.10.2.15 (official build))
  • https://t.me/clickhouse_ru
    @jarogor #270613 04:01 PM, 19 May 2022
    Вот такое возникает на любые попытки что-то удалить, поменять
  • /report
  • @olehdudkin #270615 04:02 PM, 19 May 2022
    А так-то вообще веселее было когда путаны услуги предлагали, а не криптоинвесторы
  • https://t.me/clickhouse_ru
    А когда будет ?
  • https://t.me/clickhouse_ru
    @atsygane #270619 04:06 PM, 19 May 2022
    уже идет, в ютубе по крайней мере
  • @1221341460 #270624 04:22 PM, 19 May 2022
    ongoing
  • Эх, помним еще те времена, когда были релизы и митапы на русском.(Теперь понятно, что можно о них забыть). Но грустно наблюдать 38 зрителей сейчас. На русском помнится 1000+- было.
  • https://t.me/clickhouse_ru
    та нафиг на русском)
  • @dj_mixer #270628 04:32 PM, 19 May 2022
    Кто нибудь понял про memory ? что-то вообще непонятно стало как оно
  • https://t.me/clickhouse_ru
    @dmitriynvkv #270629 04:32 PM, 19 May 2022
    больше аудитории будет
  • ну для начала, они были не такими частыми...
  • @dj_mixer #270631 04:33 PM, 19 May 2022
    сейчас и юх-кейс вебинары и релиз вебинары
  • https://t.me/clickhouse_ru
    @konnectrl #270632 04:36 PM, 19 May 2022
    Ну про память, что будет софт ограничение и хард ограничение можно выставить для пользователей (ну как я понял)
  • хз, мы так частно не обновляемся, чтобы каждый релиз смотреть, а вот раз в полгодика зайти на митап и получить классные обновления круто)
  • согласен
  • так и так же было )

    max_memory_usage
    max_memory_usage_for_user
  • @dj_mixer #270639 04:45 PM, 19 May 2022
    как я понял сейчас просто default будет вычислятся относительно общей памяти и подразумевается что это проще
  • https://t.me/clickhouse_ru
    Ну выглядит это так
  • https://t.me/clickhouse_ru
    @konnectrl #270641 04:46 PM, 19 May 2022
    Вообщем, что добавят не хард ограничение
  • ну есть у нас 2 трешолда на юзера. один хард - один софт.
    я не понял что происходит при пробитии софт
  • @NUR_vnaumov #270646 05:08 PM, 19 May 2022
    /report
  • https://t.me/clickhouse_ru
    что такое "ведущий инстанс"?

    чем он отличается от всех остальных?

    нет такого понятия как "мастер" в clickhouse

    запрос покажите SQL который запускаете?
  • https://t.me/clickhouse_ru
    когда памяти будет не хватать запрос с самым больших оверкоммитом будет убит (получит ошибку)
  • ок, так бы и написали на слайде
  • @dj_mixer #270650 05:12 PM, 19 May 2022
    я опять лекцию про неправильное использование КХ послушал. ОК =)
  • https://t.me/clickhouse_ru
    @ermakmkb #270651 05:14 PM, 19 May 2022
    при выполнении операции optimize на replacing, summing - выполняются же эти операции? т.е. нет смысла указывать DEDUPLICATE
  • https://t.me/clickhouse_ru
    download значит скачать на ноду
    а не в клиент через curl получить

    вы stdout / stderr

    можете зайти на контейнер с clickhouse-server на поде /chi-cluster-replicated-0-1-0
    и сделать
    SELECT * FROM system.backup_actions ?
  • https://t.me/clickhouse_ru
    версия clickhouse-backup какая?
  • https://t.me/clickhouse_ru
    @den_crane #270654 05:14 PM, 19 May 2022
    а чего никто не спросил как КХ в облаке работает? ему не нужен шардинг и решардинг.
  • https://t.me/clickhouse_ru
    ты про clickhouse cloud serverless? ;)
  • https://t.me/clickhouse_ru
    эм, даже не знаю какой ответ ты ожидаешь. Ну давай: нет, я про bigquery спрашиваю.
  • так все, "secret-sauce"
  • @dj_mixer #270658 05:18 PM, 19 May 2022
    может там кластеры динамически меняются как то (а решардинг - job background)
  • https://t.me/clickhouse_ru
    я думаю там просто полностью отделен компьют от стораджа
  • https://t.me/clickhouse_ru
    s3 cache еще сильно экспериментальный + копирования лишние есть в s3 клиенте, разница с локальными дисками может быть заметной
  • да, у нас такие же мысли когда будет поддержка EFS (было обещано пару месяцев назад)

    а то щас есть сетапы где NFS по три раза данные хранит
    ну и по три раза мерджит
  • https://t.me/clickhouse_ru
    просто нужно в кавычках писать =) в этом случае
  • https://t.me/clickhouse_ru
    и что? у них там не 100500 тысяч клиентов с мишин критикал, можно прям на ходу на котиках тренироваться
  • а может там как раз уже тот самый NFS на нереплицированных данных и везде запрещенные внутренниви флажгами мерджи проме одного с периодическим детач-атач на нодах.
  • @dj_mixer #270665 05:29 PM, 19 May 2022
    я как то попробовал, там особо не меняя код дополнительными скриптами и конфигами можно наколдовать (на простом МТ). Но объемы колдовства дороже дисков
  • https://t.me/clickhouse_ru
    так это не решает проблему решардинга и самого наличия шардов
  • https://t.me/clickhouse_ru
    @unamedrus #270667 05:30 PM, 19 May 2022
    Может там вместо решардинга и шардов просто реплики и просто используются parallel_replicas
  • и память резиновая?
  • https://t.me/clickhouse_ru
    тогда гиганская system.parts и проблема с анализом запросов
  • https://t.me/clickhouse_ru
    Ну, приват бета, так что есть ограничения.
  • https://t.me/clickhouse_ru
    Да, но с точки зрения реализации это можно хоть прям щас сделать. А для честных шардов нужны cloud tables делать (впрочем может за год и могли их сделать).
  • я не делал, но думал что либо вирт папки с линками на стороне сервера, либо пермишны на стороне НФС... но мне стало страшно уже на стадии репликации. это можно поддерживать если это клауд.
    на много он-прем энтерпрайзах можно и с ума сойти
  • https://t.me/clickhouse_ru
    @unamedrus #270674 05:46 PM, 19 May 2022
    из parallel_replicas issue

    This task will also help to implement distributed processing over shared storage.
    In most simple case, multiple computation nodes over shared storage can look as replicas, and we split data processing over them.

    Плюс дней 5 назад решили починить их для случая использования локальной реплики.
  • https://t.me/clickhouse_ru
    @catent #270676 05:57 PM, 19 May 2022
    Посоветуйте пожалуйста схему для таблицы, в которую будут писаться span-ы OpenTelemetry

    Если я сделаю партицию на каждый час, то сильно больно будет?
    Проблема в том, что хочется искать по trace_id, а он генерируется случайно.

    Тут два варианта вижу: либо заставить trace_id генерировать так, чтобы он рос со временем (типа UUIDv6) и делать его ключом сортировки, либо делать маленькие партиции и индекс по trace_id (но с другим ключом сортировки)
  • https://t.me/clickhouse_ru
    можно и так отсортировать
  • https://t.me/clickhouse_ru
    в чем проблема отсортировать по trace_id?
  • https://t.me/clickhouse_ru
    @catent ↶ Reply to #270678 #270679 06:00 PM, 19 May 2022
    оно не будет постоянно в фоне пересортировывать?

    слышал что сортировать по рандому не оптимально
  • https://t.me/clickhouse_ru
    @den_crane #270680 06:00 PM, 19 May 2022
    множественные партиции == очень медленные селекты за большой период.
  • https://t.me/clickhouse_ru
    вы неправильно услышали, и вообще нет пересортировок
  • https://t.me/clickhouse_ru
    А вы смотрели на примеры схем которые уже есть?

    https://github.com/jaegertracing/jaeger-clickhouse
    GitHub - jaegertracing/jaeger-clickhouse: Jaeger ClickHouse storage plugin implementation

    Jaeger ClickHouse storage plugin implementation. Contribute to jaegertracing/jaeger-clickhouse development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @den_crane #270683 06:01 PM, 19 May 2022
    у вас похожие данные будут рядом потому что они один traceid
  • https://t.me/clickhouse_ru
    @den_crane #270684 06:01 PM, 19 May 2022
    traceid связывает кучу трейсов (это корень дерева) или это span делает и я путаю?
  • https://t.me/clickhouse_ru
    @catent ↶ Reply to #270684 #270685 06:03 PM, 19 May 2022
    правильно
  • https://t.me/clickhouse_ru
    @catent ↶ Reply to #270682 #270686 06:03 PM, 19 May 2022
    смотрел, ещё у uptrace смотрел

    смущает что выбраны разные подходы
  • https://t.me/clickhouse_ru
    @den_crane #270687 06:06 PM, 19 May 2022
    ORDER BY (service, -toUnixTimestamp(timestamp)) -- они хотят конец моментально показывать, поэтому делают так
  • https://t.me/clickhouse_ru
    @den_crane #270688 06:07 PM, 19 May 2022
    я бы попробовал наш обычный хак
    order by (toStartOfHour(timestamp), traceid)
    зависит конечно от того сколько времени хранить собираемся
  • https://t.me/clickhouse_ru
    @catent ↶ Reply to #270681 #270689 06:07 PM, 19 May 2022
    подскажите, пожалуйста, где про это почитать/посмотреть

    ну или хотя бы ключевые слова для поиска

    хочу разобраться (наверное я пересортировку спутал с мержем партов)
  • https://t.me/clickhouse_ru
    при инсерте записи сортируются в памяти, пишутся на диск, мержи просто идут по отсортированным наборам и делают сюрприз мерж
  • https://t.me/clickhouse_ru
    @den_crane #270691 06:09 PM, 19 May 2022
    есть первичный индекс, но он разрежен и хранит только каждую n-ю запись (8192)
  • https://t.me/clickhouse_ru
    @den_crane #270692 06:13 PM, 19 May 2022
    а ну кстати у них тоже https://github.com/jaegertracing/jaeger-clickhouse/blob/main/sqlscripts/jaeger-index.tmpl.sql

    PARTITION BY (
    {{if .Multitenant -}}
    tenant,
    {{- end -}}
    toDate(timestamp)
    )
    ORDER BY traceID
    SETTINGS index_granularity = 1024
  • https://t.me/clickhouse_ru
    @catent #270693 06:14 PM, 19 May 2022
    Попробую сделать как у них и потестировать, спасибо!
  • https://t.me/clickhouse_ru
    @den_crane #270694 06:14 PM, 19 May 2022
    зря они конечно делают SETTINGS index_granularity = 1024 , только память тратят.
  • @olehdudkin #270695 06:15 PM, 19 May 2022
    Вот только про это хотел спросить
  • https://t.me/clickhouse_ru
    тут правда все зависит от того сколько записей хранить. Может эти хранят 10 дней и им ОК.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @spalaxinco #270698 06:17 PM, 19 May 2022
    Ребята а подскажите пожалуйста, что может быть не так у нас MV вставляет из кафка таблицы в ReplicatedMergeTree из которой на вставку должна забирать другая MV и вставлять в агрегированную таблицу, так вот почему-то эта вторая MV как будто не тригерится ? :disappointed:
  • https://t.me/clickhouse_ru
    эти еще интереснее SETTINGS index_granularity = 128

    расход памяти на индекс можно посчитать примерно, миллиард записей - traceid = 16 байт, миллиард / index_granularity = 1024 -> миллион, * 16 = 16 мегабайт

    миллиард записей - traceid = 16 байт+id 8 байт, миллиард / index_granularity = 128 * (16+8) = 1000000000/128 * (16+8) = 187 мегабайт
  • https://t.me/clickhouse_ru
    @uuxxxx #270700 06:23 PM, 19 May 2022
    Привет всем!
    Переезжаем на новые сервера в связи с чем встал вопрос в сравнении эффективности выполнения запросов. Подскажите, пожалуйста, как можно это измерить?
    Пока в голове только 1 вариант, запустить один и тот же запрос на разных серверах и засечь время выполнения, но может есть какие-то еще варианты?
    Как я понимаю, функция explain в clickhouse для этого не очень подходит
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    спасибо 🙏
  • https://t.me/clickhouse_ru
    @ermakmkb #270703 06:30 PM, 19 May 2022
    Как-то упоминалось, что операции над полем партиционирования не влияют на фильтрацию.
    но для полей в order by это не верно, так? т.е. если сделать, например, фильтр по lower(field) вместо исходного значения, то то, что field указан в order by уже не будет иметь значения
  • https://t.me/clickhouse_ru
    Индекс используется если функции монотонные. Lower не вроде не монотонная из за турецкого языка, хотя я не знаю точно.
  • https://t.me/clickhouse_ru
    @ermakmkb #270705 06:35 PM, 19 May 2022
    ну вот я этот вопрос задал потому что в 20 раз отличается производительность c lower() и без него. решил переспросить
  • https://t.me/clickhouse_ru
    @ermakmkb #270706 06:37 PM, 19 May 2022
    и вообще, разве это монотонное преобразование?
    строчные и заглавные же смешаются
  • https://t.me/clickhouse_ru
    @den_crane #270707 06:39 PM, 19 May 2022
    Да. Наверное нет
  • @olehdudkin #270708 06:44 PM, 19 May 2022
    Открытый вопрос, использовать CH для замены mysql где все таблицы replacingMergeTree изза частых апдейтов, здоровая идея?
  • https://t.me/clickhouse_ru
    Ноу
  • @olehdudkin #270710 06:45 PM, 19 May 2022
    куда смотреть? Нужны частые апдейты, но и аналитика нужна, и записей не оч много - 4-5 миллионов на самых больших таблицах.
  • Тут надо пояснить, что такое частые и для чего вы используете КХ
  • @softbot_xxl #270712 06:46 PM, 19 May 2022
    Потому что смысл как-раз таки может быть.