• 15 May 2023 (178 messages)
  • https://t.me/clickhouse_ru
    О, благодарю!

    У меня даже проще получилось:
    arrayFilter(
    x -> NOT has(t1.array_2, x),
    t1.array_1
    ) AS array_rez

    Но проблема в том, что вычитаются сразу все элементы 'a', а не только один, который есть во втором массиве.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Я из клиента и запускаю
    При чём csv работает корректно, но я его использовать не могу
  • https://t.me/clickhouse_ru
    ORC и Arrow тоже самое, только csv json экспортит
  • https://t.me/clickhouse_ru
    так не было этого ничего в 2018 году.
    клиент обновите до 22.8.17.17
    либо используйте curl
  • https://t.me/clickhouse_ru
    Колдунство какое!! 🙂
    Работает, благодарю!
  • https://t.me/clickhouse_ru
    там просто +1 в левом массиве, -1 в правом, то что = 0 выкидывается, конечно там надо дорабатывать, там отрицательные элементы тоже останутся
  • https://t.me/clickhouse_ru
    Ага, немного разобрал и понял задумку, круто!
    Спасибо ещё раз
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    То, что нужно!
    Спасибо большое!
  • https://t.me/clickhouse_ru
    @f0mster #324842 03:27 PM, 15 May 2023
    Подскажите плз, почему
    select toDecimal128(100,18)/toDecimal128(1,18)
    возвращает 100.00000000000000000,
    а если
    select toDecimal128(100,19)/toDecimal128(1,19)
    1.3181135929278455956?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    угу, есть. только divideDecimal на 22.8 не работает....
  • https://t.me/clickhouse_ru
    @den_crane #324845 03:35 PM, 15 May 2023
    Big Decimal can overflow without exception · Issue #30341 · ClickHouse/ClickHouse

    Describe what's wrong It's possible to get meaningless result after big decimal division. Does it reproduce on recent release? Yes. ClickHouse 21.11, 21.8 How to reproduce ClickHouse 21.11 ...

  • https://t.me/clickhouse_ru
    зачем вам Decimal128 ?
    там скорее всего еще куча проблем, вроде крашится КХ из-за него, но не воспроизводится
  • https://t.me/clickhouse_ru
    а какой работает без проблем?
  • https://t.me/clickhouse_ru
    decimal64
  • https://t.me/clickhouse_ru
    маловато.... нам надо хранить 18 до запятой и 18 после....
  • https://t.me/clickhouse_ru
    @rvkggwp #324850 03:45 PM, 15 May 2023
    Стринга ещё есть ))
  • https://t.me/clickhouse_ru
    @rvkggwp #324851 03:45 PM, 15 May 2023
    Норм хранит любую точность
  • https://t.me/clickhouse_ru
    а с математикой у нее как? :)
  • https://t.me/clickhouse_ru
    @rvkggwp #324853 03:49 PM, 15 May 2023
    Ещё можно как целое хранить и делитель к нему
  • https://t.me/clickhouse_ru
    атомы в другую галактику запускаете? понимаю.
  • https://t.me/clickhouse_ru
    @rvkggwp #324855 03:49 PM, 15 May 2023
    Если математика нужна и ни один из типов не подходит
  • https://t.me/clickhouse_ru
    А кликхаус используют для космоса
  • https://t.me/clickhouse_ru
    @den_crane #324857 03:50 PM, 15 May 2023
    если речь про крипту то нахер не надо decimal там
  • https://t.me/clickhouse_ru
    просто храним денежные транзакции в разных валютах. в эфире 10^18 wei, а в 10000 долларе 2 600 000 000 боливаров. так что разброс приличный, + запас в пару разрядов на случай инфляции....
  • @xeniro #324859 04:06 PM, 15 May 2023
    Привет! Нужна помощь с задачкой на гугл таблице в 5к+ строк, посчитать несколько метрик и разобраться с запросами. Может ли кто-то помочь за вознаграждение?
  • https://t.me/clickhouse_ru
    @ella135945 #324860 04:13 PM, 15 May 2023
    😂😂😂😂
  • Лучше не хранить значения денежные (тем более крипты) во float. int64 + делитель, относительно удобно и точно получается
  • https://t.me/clickhouse_ru
    а математику как с этим подружить? нужно деление и умножение.
  • Только decimal это не float, а fixed point и то, что предлагаете вы - наивная реализация decimal
  • Не увидел контекста про decimal. Почему-то его не использовали, даже не вспомню почему.
  • А можно пример операции? Вернее конкретного действия, что с чем считать нужно
  • https://t.me/clickhouse_ru
    Взять одну сумму из транзакции и поделить на другую.
  • https://t.me/clickhouse_ru
    Деньги всегда хранят в целых
  • Немного непонятная операция. Из нашего кейса близкое: сумма всех транзакций пользователя: SELECT SUM(amount), divider FROM table GROUP BY divider, далее приводите к единому делителю (divider) и проводите необходимую операцию.

    Если речь идет про необходимость перевода крипты в сумму фиата, то мы считали сумму, группировали по делителю (выше) и далее приводили делитель фиата к делителю каждой группы.
  • @msmk_cn #324869 05:03 PM, 15 May 2023
    Делитель фиата зачастую 100, проблем с приведением не должно быть
  • если у Вас вот прямо 18 знаков после запятой, то храните всё в UInt умноженным на 10 в 18 степени и делите спокойно одно на другое
  • https://t.me/clickhouse_ru
    @MakeReady #324871 05:04 PM, 15 May 2023
    👍🏻
  • Это работает, соответственно, если мы соглашаемся с тем, что amount / divider равняется абсолютному значению (т. е. 0.03 в нашем представлении будет выражено как amount = 3, divider = 100)
  • По ISO это не так.
  • Вы вводите новый столбец в итоге и изобретаете decimal
  • @dvhutddcbkmndd #324875 05:14 PM, 15 May 2023
    вот только в Decimal этот столбец задан на уровне схемы, а не отдельной строки
  • Вынужден отметить более очевидно, что вы правы. Но повторно отмечу то, что decimal не был использован по какой-то причине, которую я сейчас не вспомню.
  • Именно поэтому "зачастую" :)
  • Тот подход который вы сейчас описываете у нас уже реализован и несет свои неудобства. Как вариант расматривалась возможность использования Uint и зафиксировтать что у все валют 18 сабюнитов, но это усложняет математику
  • простите, а что становится усложнённого? 😳
  • @d27ff176 #324880 05:19 PM, 15 May 2023
    Всем привет, есть вопрос на счет производительности кликхауса. Он достаточно высокоуровневый, понятно что нужно рассматривать конкретный профиль нагрузки и набор данных, но тем не менее.

    Можно ли использовать кликхаус для большого количества клиентских olap запросов? Как ведёт себя кликхаус с увеличением rps?

    Если есть что по теме, было бы интересно почитать/послушать.
  • https://t.me/clickhouse_ru
    конвертация валют становиться запутанной. надо все время помнить что у разных валют разное количество сабюнитов.
  • она не запутанная, а действительно усложненная. Если смотреть на реализацию, то у всего есть свои минусы. Как выше отметили, можно использовать string и забыть про потерю данных, но в то же время забыть про производительность :)
  • я не очень сильно владею вопросом конвертации валют, поэтому ещё раз прошу прощения за возможно дилетантский вопрос.... что такое сабюнит?
    если я всё привожу к UInt в том числе и курсы валют, то пока не могу придумать пример, когда бы математика хоть чем-то отличалась от обычной школьной
  • https://t.me/clickhouse_ru
    типа центы. у японской йоны их нету, а в эфире их 10^18
  • так центы это единица денег, как в россии это копейки, а не рубли
  • На конкретном примере: это когда 70 рублей 40 копеек в нашем представлении будут равны 70400000000000000000
  • Придется ручками прописывать типы например чтобы не переполнится
  • @dvhutddcbkmndd #324888 05:24 PM, 15 May 2023
    в Decimal это из коробки
  • @aoparin #324889 05:27 PM, 15 May 2023
    что не переполниться должно? просто в изначальной постановке вопроса про ошибку в Decimal128 мол нужны 18 и 18 значений порядков... в Uint128 их 39 и никакого переполнения я не придумал пока откуда может взяться...
    по сути Uint128 это тот же Decimal128 получается по задаче... ну с небольшим нюансом
  • @aoparin #324890 05:29 PM, 15 May 2023
    все валюты хранятся в целых минимальной единицы умноженной на нужный порядок десятичного числа... и математика начальной школы, но только с очень длинными цифрами... всё равно в памяти компьютера оно занимает очень длинное место для хранения, так какая разница в каком месте будут нули, а в каком значимые единички?
  • https://t.me/clickhouse_ru
    @den_crane #324891 05:34 PM, 15 May 2023
    как вы поделите 1 на 8 для decimal (2) ?
    там внутри нужен будет decimal (4) , который потом округлится до decimal(2)

    Decimal128(19) / Decimal128(19) = переполнение
  • https://t.me/clickhouse_ru
    @den_crane #324892 05:36 PM, 15 May 2023
    поэтому и ввели divideDecimal и multiplyDecimal
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #324889 #324893 05:38 PM, 15 May 2023
    Это все конечно здорово, кроме того что не работает пока.
    Но мне все равно непонятно - зачем складывать яблоки и груши? Или если угодно эфирные копейки и йены? Вы же не храните в соседних строках транзакции на десятки миллиардов долларов и доли центов (долларовых).
    Для каждой транзакции хранится тип валюты, кто мешает масштабировать конкретное значение непосредственно в момент конвертации валют для каких-то totals? Откуда это требование на 39 символов? Только что из лени.
  • https://t.me/clickhouse_ru
    @den_crane #324894 05:41 PM, 15 May 2023
    кстати вспомнил что делить можно вот так

    select 1/toDecimal128(100,19)* toDecimal128(100,19)
    ┌─multiply(divide(1, toDecimal128(100, 19)), toDecimal128(100, 19))─┐
    │ 1 │
    └───────────────────────────────────────────────────────────────────┘

    select 1/toDecimal128(100,19)* toDecimal128(3,19)
    ┌─multiply(divide(1, toDecimal128(100, 19)), toDecimal128(3, 19))─┐
    │ 0.03 │
    └─────────────────────────────────────────────────────────────────┘

    а хотя нет, нифига не помогает
  • https://t.me/clickhouse_ru
    чудес не бывает, если запрос выполняется 1 сек. и использует 100% CPU, то 100 таких одновременных запросов выполняются >100 сек.
  • Речь скорее про то, что локально запрос может отрабатывать несколько ms, а под нагрузкой время может увеличиться скажем до десятка секунд. Интересно было бы на эту тему что-нибудь почитать про кликхаус, какие есть ограничения.
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #324896 #324897 05:52 PM, 15 May 2023
    ClickHouse In the Storm. Part 1: Maximum QPS estimation

    May 2, 2019ClickHouse is an OLAP database for analytics, so the typical use scenario is processing a relatively small number of requests -- from several per hour to many dozens or even low hundreds per second --affecting huge ranges of data (gigabytes/millions of rows).But how it will behave in other scenarios? Let's try to use a steam-hammer to crack nuts, and check how ClickHouse will deal with thousands of small requests per second. This will help us to understand the range of possible use cases and limitations better.This post has two parts. The first part covers connectivity benchmarks and test setup. The next part covers maximum QPS in scenarios involving actual data.

  • https://t.me/clickhouse_ru
    ограничение, что по дефолту <max_concurrent_queries>100</max_concurrent_queries>, но можно поставить сколько угодно.

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

    Но если >128 CPU core и 1ТB RAM то проблемы нет, можно и max_concurrent_queries = 500
  • > двигая головы дисков

    А для ssd это актуальная проблема?
  • Спасибо, почитаю
  • https://t.me/clickhouse_ru
    в каком-то смысле да.

    в любом случае кешей много и можно добится ситуации когда 2 запроса будут одновременно выполнятся 30 сек, а по одному по .01 сек., но это стараться надо вымывая markcache
  • Да, потому что с диска читается блоками и при последовательном чтении нужно прочитать меньше блоков. nvme ssd обычно еще быстрее для последовательного чтения чем sata ssd, но это зависит конретно от диска
  • @r3former #324903 07:39 PM, 15 May 2023
    Как проверить, какое значение max_server_memory_usage используется? Выставил в config.xml, перезапустил сервер. В логах никакой информации не увидел о принятом сервере значении. В system.settings этого тоже не увидел. Версия 21.11
  • https://t.me/clickhouse_ru
    в логе КХ при старте.
  • Нету, грепал по max_server_memory_usage
  • https://t.me/clickhouse_ru
    2023.05.15 21:39:33.708852 [ 4076534 ] {} <Information> Application: Setting max_server_memory_usage was set to 21.08 GiB (23.43 GiB available * 0.90 max_server_memory_usage_to_ram_ratio)
    2023.05.15 21:39:33.708864 [ 4076534 ] {} <Warning> Application: Setting merges_mutations_memory_usage_soft_limit was set to 11.71 GiB (23.43 GiB available * 0.50 merges_mutations_memory_usage_to_ram_ratio)
  • Это при дефолтном значении max_server_memory_usage? У меня такая строка при дефолтном, после внесения изменений в конфиг она больше не появлялась
  • https://t.me/clickhouse_ru
    значит установилась, фиг знает что там было в 21.11
  • 16 May 2023 (177 messages)
  • https://t.me/clickhouse_ru
    @Spellik #324909 03:20 AM, 16 May 2023
    Доброе утро!

    Подскажите, как можно оставить на одной реплике несколько партиций, чтобы на другой реплике при этом партиции были другие?
    detach partition, drop partition работают через репликационный поток и не подходят

    После сбоя одна из нода начала выкачивать данные с реплики и забивает все ресурсы, хочется сделать, чтобы были данные за последнее время, а потом уже восстановить реплику окончательно
  • https://t.me/clickhouse_ru
    MergeTree tables settings | ClickHouse Docs

    The values of mergetree settings (for all MergeTree tables) can be viewed in the table system.mergetreesettings, they can be overridden in config.xml in the mergetree section, or set in the SETTINGS section of each table.

  • https://t.me/clickhouse_ru
    @igor_gorbenko #324911 03:37 AM, 16 May 2023
    Всем привет! Прошу помощи экспертного сообщества! У нас есть большая Distributed таблица с ивентами - несколько миллиардов записей. В ней есть следующая информация: ts ивента, геохэши, идентификатор пользователя. Partition by event_date, Primary key по event_date, ts и геохэшам. На идентификаторе пользователя (длинная строка) стоит bloom index с гранулярностью 2. Use case у нас такой:
    1. Сперва по заданным ts, геохэшам и другим условиям находим ВСЕХ пользователей, удовлетворяющих условиям фильтрации (каждый раз это может быть от нескольких тысяч до миллионов),
    2. Затем по найденным пользователям по заданным геохэшам отображаем ВСЕ их ивенты без учета TS
    Получается, что подзапрос таблицы самой к себе. С движком Distributed это не работает как надо... Какие есть идеи?
  • https://t.me/clickhouse_ru
    Global in
  • https://t.me/clickhouse_ru
    Благодарю. Для таблицы настройка сразу действует, я правильно понимаю?
  • https://t.me/clickhouse_ru
    @Spellik #324914 03:48 AM, 16 May 2023
    А это ограничение действует и на получение партиций при восстановлении реплики, и на получение новых данных при вставке записей ?
  • https://t.me/clickhouse_ru
    в этом случае падает по памяти на небольшой выборке (на каждой ноде у нас 64Gb)
  • https://t.me/clickhouse_ru
    Ну так запрос киньте сюда.
  • https://t.me/clickhouse_ru
    ```
    CREATE TABLE db.event_local(
    ts DateTime,
    event_date Date,
    user_id String,
    cnt UInt32,
    geo_hash_2 String,
    geo_hash_3 String,
    geo_hash_4 String,
    geo_hash_5 String,
    geo_hash_6 String,
    geo_hash_7 String,
    geo_hash_8 String,
    geo_hash_9 String,
    ... OTHER columns
    INDEX uuid_bloom user_id TYPE bloom_filter(0.01) GRANULARITY 2
    )
    ENGINE = ReplicatedMergeTree('/clickhouse/{installation}/{cluster}/tables/{shard}/db/event_local', '{replica}')
    PARTITION BY toYYYYMMDD(event_date)
    PRIMARY KEY (event_date, geo_hash_2, ts, geo_hash_3, geo_hash_4, geo_hash_5, geo_hash_6, geo_hash_7, geo_hash_8, geo_hash_9)
    ORDER BY (event_date, geo_hash_2, ts, geo_hash_3, geo_hash_4, geo_hash_5, geo_hash_6, geo_hash_7, geo_hash_8, geo_hash_9)
    SETTINGS index_granularity = 8192

    CREATE TABLE db.event
    (
    ts DateTime,
    event_date Date,
    user_id String,
    cnt UInt32,
    geo_hash_2 String,
    geo_hash_3 String,
    geo_hash_4 String,
    geo_hash_5 String,
    geo_hash_6 String,
    geo_hash_7 String,
    geo_hash_8 String,
    geo_hash_9 String,
    ... OTHER columns
    )
    ENGINE = Distributed('{cluster}', 'db', 'event_local', rand())
    ```
  • https://t.me/clickhouse_ru
    WITH pre_select AS (
    SELECT user_id
    FROM db.event AS b
    WHERE ((ts >= '2023-03-04 08:00:00') AND (ts <= '2023-04-11 08:00:00')) AND ((event_date >= '2023-03-04') AND (event_date <= '2023-04-11')) AND (geo_hash_2 IN ('w0', 'w2', 'w8', 'w3', 'w9')) AND (geo_hash_3 IN ('w0r', 'w0x', 'w0z', 'w22', 'w23', 'w26', 'w27', 'w2k', 'w2m', 'w2q', 'w2r', 'w28', 'w29', 'w2d', 'w2e', 'w2s', 'w2t', 'w2w', 'w2x', 'w2b', 'w2c', 'w2f', 'w2g', 'w2u', 'w2v', 'w2y', 'w2z', 'w82', 'w83', 'w86', 'w87', 'w8k', 'w88', 'w89', 'w8d', 'w8e', 'w8s', 'w8b', 'w8c', 'w8f', 'w8g', 'w8u', 'w1p', 'w30', 'w31', 'w34', 'w35', 'w3h', 'w3j', 'w3n', 'w3p', 'w90', 'w91', 'w94', 'w95', 'w9h'))
    )
    SELECT
    geo_hash_5,
    sum(cnt) AS events_count
    FROM dev_igor.bid
    WHERE (geo_hash_2 IN ('w0', 'w2', 'w8', 'w3', 'w9')) AND (geo_hash_3 IN ('w0r', 'w0x', 'w0z', 'w22', 'w23', 'w26', 'w27', 'w2k', 'w2m', 'w2q', 'w2r', 'w28', 'w29', 'w2d', 'w2e', 'w2s', 'w2t', 'w2w', 'w2x', 'w2b', 'w2c', 'w2f', 'w2g', 'w2u', 'w2v', 'w2y', 'w2z', 'w82', 'w83', 'w86', 'w87', 'w8k', 'w88', 'w89', 'w8d', 'w8e', 'w8s', 'w8b', 'w8c', 'w8f', 'w8g', 'w8u', 'w1p', 'w30', 'w31', 'w34', 'w35', 'w3h', 'w3j', 'w3n', 'w3p', 'w90', 'w91', 'w94', 'w95', 'w9h')) AND (user_id GLOBAL IN (
    SELECT user_id
    FROM pre_select
    ))
    GROUP BY 1

    Query id: 8de9c63f-921a-425a-af40-52c98f9d5c5b

    0 rows in set. Elapsed: 192.714 sec.

    Received exception from server (version 23.3.1):
    Code: 32. DB::Exception: Received from cluster_name.net:9000. DB::Exception: Attempt to read after eof: while receiving packet from cluster_name:9000: While executing Remote: While processing user_id GLOBAL IN (_subquery2). (ATTEMPT_TO_READ_AFTER_EOF)
  • https://t.me/clickhouse_ru
    @igor_gorbenko #324920 06:18 AM, 16 May 2023
    если поставить LIMIT 1 в подзапросе, то такой запрос отработает за 10 секунд, что не подходит под требования к системе
  • https://t.me/clickhouse_ru
    WITH pre_select AS (
    SELECT user_id
    FROM db.event AS AS b
    WHERE ((ts >= '2023-03-04 08:00:00') AND (ts <= '2023-04-11 08:00:00')) AND ((event_date >= '2023-03-04') AND (event_date <= '2023-04-11')) AND (geo_hash_2 IN ('w0', 'w2', 'w8', 'w3', 'w9')) AND (geo_hash_3 IN ('w0r', 'w0x', 'w0z', 'w22', 'w23', 'w26', 'w27', 'w2k', 'w2m', 'w2q', 'w2r', 'w28', 'w29', 'w2d', 'w2e', 'w2s', 'w2t', 'w2w', 'w2x', 'w2b', 'w2c', 'w2f', 'w2g', 'w2u', 'w2v', 'w2y', 'w2z', 'w82', 'w83', 'w86', 'w87', 'w8k', 'w88', 'w89', 'w8d', 'w8e', 'w8s', 'w8b', 'w8c', 'w8f', 'w8g', 'w8u', 'w1p', 'w30', 'w31', 'w34', 'w35', 'w3h', 'w3j', 'w3n', 'w3p', 'w90', 'w91', 'w94', 'w95', 'w9h'))
    LIMIT 1
    )
    SELECT
    geo_hash_5,
    sum(cnt) AS events_count
    FROM db.event
    WHERE (geo_hash_2 IN ('w0', 'w2', 'w8', 'w3', 'w9')) AND (geo_hash_3 IN ('w0r', 'w0x', 'w0z', 'w22', 'w23', 'w26', 'w27', 'w2k', 'w2m', 'w2q', 'w2r', 'w28', 'w29', 'w2d', 'w2e', 'w2s', 'w2t', 'w2w', 'w2x', 'w2b', 'w2c', 'w2f', 'w2g', 'w2u', 'w2v', 'w2y', 'w2z', 'w82', 'w83', 'w86', 'w87', 'w8k', 'w88', 'w89', 'w8d', 'w8e', 'w8s', 'w8b', 'w8c', 'w8f', 'w8g', 'w8u', 'w1p', 'w30', 'w31', 'w34', 'w35', 'w3h', 'w3j', 'w3n', 'w3p', 'w90', 'w91', 'w94', 'w95', 'w9h')) AND (user_id GLOBAL IN (
    SELECT user_id
    FROM pre_select
    ))
    GROUP BY 1

    Query id: e7b2f194-3896-4901-b25d-f849a6ddb882

    ┌─geo_hash_5─┬─events_count─┐
    │ w281w │ 2 │
    │ w0z8k │ 18 │
    │ w283f │ 88 │
    │ w2833 │ 1 │
    │ w2864 │ 71 │
    │ w283c │ 174 │
    │ w0z87 │ 12 │
    │ w2839 │ 1 │
    │ w0xxf │ 61 │
    │ w281r │ 2 │
    │ w0xxg │ 470 │
    │ w82n0 │ 28 │
    └────────────┴──────────────┘

    12 rows in set. Elapsed: 10.766 sec. Processed 13.20 million rows, 1.10 GB (1.23 million rows/s., 102.54 MB/s.)
  • https://t.me/clickhouse_ru
    @Lazycat_su #324922 06:25 AM, 16 May 2023
    Ну для начала я бы поменял order by и event_date вынес в конец.
    Во-вторых в pre_select вы получаете весь неуникальный список пользователей и я бы попробовал сделать что-то вроде select user_id, count(1) group by user_id. (Или distinct или uniqExact или groupBitmap надо посмотреть что лучше)
    Кроме того, если есть проблемы с памятью и дальше - я бы поставил хинт на разбивку по памяти при группировке
  • https://t.me/clickhouse_ru
    вы совершенно правы, группировка в подзапросе снижает размерность списка идентификаторов пользователей. Но запрос все равно работает очень медленно - 90сек
  • https://t.me/clickhouse_ru
    @igor_gorbenko #324925 06:39 AM, 16 May 2023
    (
    SELECT
    user_id,
    count(1)
    FROM db.event AS b
    WHERE ((ts >= '2023-03-04 08:00:00') AND (ts <= '2023-04-11 08:00:00')) AND ((event_date >= '2023-03-04') AND (event_date <= '2023-04-11')) AND (geo_hash_2 IN ('w0', 'w2', 'w8', 'w3', 'w9')) AND (geo_hash_3 IN ('w0r', 'w0x', 'w0z', 'w22', 'w23', 'w26', 'w27', 'w2k', 'w2m', 'w2q', 'w2r', 'w28', 'w29', 'w2d', 'w2e', 'w2s', 'w2t', 'w2w', 'w2x', 'w2b', 'w2c', 'w2f', 'w2g', 'w2u', 'w2v', 'w2y', 'w2z', 'w82', 'w83', 'w86', 'w87', 'w8k', 'w88', 'w89', 'w8d', 'w8e', 'w8s', 'w8b', 'w8c', 'w8f', 'w8g', 'w8u', 'w1p', 'w30', 'w31', 'w34', 'w35', 'w3h', 'w3j', 'w3n', 'w3p', 'w90', 'w91', 'w94', 'w95', 'w9h'))
    GROUP BY 1
    )
    SELECT
    geo_hash_5,
    sum(cnt) AS events_count
    FROM db.event
    WHERE (geo_hash_2 IN ('w0', 'w2', 'w8', 'w3', 'w9')) AND (geo_hash_3 IN ('w0r', 'w0x', 'w0z', 'w22', 'w23', 'w26', 'w27', 'w2k', 'w2m', 'w2q', 'w2r', 'w28', 'w29', 'w2d', 'w2e', 'w2s', 'w2t', 'w2w', 'w2x', 'w2b', 'w2c', 'w2f', 'w2g', 'w2u', 'w2v', 'w2y', 'w2z', 'w82', 'w83', 'w86', 'w87', 'w8k', 'w88', 'w89', 'w8d', 'w8e', 'w8s', 'w8b', 'w8c', 'w8f', 'w8g', 'w8u', 'w1p', 'w30', 'w31', 'w34', 'w35', 'w3h', 'w3j', 'w3n', 'w3p', 'w90', 'w91', 'w94', 'w95', 'w9h')) AND (user_id GLOBAL IN (
    SELECT user_id
    FROM pre_select
    ))
    GROUP BY 1
    LIMIT 1

    Query id: 2ef44108-29f9-4565-b49b-bc583eceeed7

    ┌─geo_hash_5─┬─events_count─┐
    │ w2qhx │ 2 │
    └────────────┴──────────────┘

    1 row in set. Elapsed: 89.645 sec. Processed 4.80 billion rows, 389.21 GB (53.54 million rows/s., 4.34 GB/s.)
  • https://t.me/clickhouse_ru
    @Lazycat_su #324926 06:47 AM, 16 May 2023
    Я так понимаю, у вас гео-хэши это разные уровни? Т.е. geo_hash_3 это подуровень geo_hash_2 ?
  • https://t.me/clickhouse_ru
    @Lazycat_su #324927 06:49 AM, 16 May 2023
    Order by у таблицы надо менять..зачем вам дата первым столбцом, если по ней партиции делаете?
  • https://t.me/clickhouse_ru
    @Lazycat_su #324928 06:49 AM, 16 May 2023
    Partition pruning вроде как самым первым отрабатывает (если конечно включен вообще в order by)
  • https://t.me/clickhouse_ru
    @Lazycat_su #324929 06:53 AM, 16 May 2023
    А так.. для подобных запросов делайте ещё одну таблицу - AggregatingMergeTree
  • https://t.me/clickhouse_ru
    можно поподробнее?
  • https://t.me/clickhouse_ru
    У вас ts используется только при поиске пользователья. Основной запрос вытаскивает агрегаты без ts. Сделайте табличку типа AggregatingMergeTree и собирайте туда sumState в разрезе всех остальных аналитик
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @Vitaly_Vaskovich #324933 07:18 AM, 16 May 2023
    День добрый!
    Понимаю, что вопрос простой, но не могу решить. На сервере выполнил запрос select * from remoteSecure.... и ошибся в имени удалённого сервера. Теперь постоянно в syste,errors вижу, что эта ошибка увеличивает last_error_message (те запрос постоянно пытается выполниться??). В логах увидел, что ошибка постоянно повторяется. Но ведь я её 1 раз выполнил, исправил на корректный адрес и давно уже забыл. В system.processes не вижу этого запроса. Как и почему повторяется ошибка?
  • https://t.me/clickhouse_ru
    @kirmark #324934 07:54 AM, 16 May 2023
    Доброе утро!

    Не знаете, сейчас никто случайно не пишет clickhouse для LangChain? Хочу улучшить драфты кверей к кликхаусу, которые наш tech-support сейчас от chatGPT получает

    Может чем помочь смогу.
  • https://t.me/clickhouse_ru
    @permyakov10 #324935 07:59 AM, 16 May 2023
    Ребят, всем привет. Подскажите пожалуйста, какое оптимальное время на вставку 10 миллионов записей в клик. У меня выходит около 40 секунд.
  • https://t.me/clickhouse_ru
    https://github.com/plmercereau/chat-dbt а это смотрели ?
    GitHub - plmercereau/chat-dbt: Interact with your database using human queries through OpenAI GPT.

    Interact with your database using human queries through OpenAI GPT. - GitHub - plmercereau/chat-dbt: Interact with your database using human queries through OpenAI GPT.

  • https://t.me/clickhouse_ru
    нет, посмотрю, спасибо. 40 секунд это много значит?
  • https://t.me/clickhouse_ru
    @permyakov10 #324938 08:03 AM, 16 May 2023
    в команде только знакомимся с кликом просто, из-за этого такие вопросы)
  • https://t.me/clickhouse_ru
    Интересно, спасибо, посмотрю, что они там наколдовали 🙌
  • На этот вопрос очень сложно ответить. 10 млн записей, это 10 млн интов или 500 колонок. На каком железе работает кх, какая табличка(движок), откуда вставляете, где развернут КХ и клиент
  • https://t.me/clickhouse_ru
    Я не вам :)
  • https://t.me/clickhouse_ru
    А через что вы вставляете ?
  • https://t.me/clickhouse_ru
    через clickhouse_driver на питоне, ch в докере
  • https://t.me/clickhouse_ru
    уже понял)
  • https://t.me/clickhouse_ru
    @ella135945 #324945 08:22 AM, 16 May 2023
    Hello everyone
  • https://t.me/clickhouse_ru
    @ktracer #324946 08:56 AM, 16 May 2023
    ReplicatedMergeTree.
    По какой причине optimize table <table> deduplicate by *;
    мжет сообщать об ошибке, что ждёт into outfile, setting, format?
  • @word1973 #324947 09:02 AM, 16 May 2023
    Всем привет, вопрос по связям между гранулой и и блоком. Если granule скажем 8K, и есть 2 колонки: одна шириной 8 байт, а вторая с huge шириной скажем 64K каждый элемент. Будут ли блоки этих колонок «засихронизированны»? Т.е. одинаковое количество значении в блоках обеих колонок?
  • покажите ошибку, скорее всего ваш ide лишнее генерирует что-то
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #324911 #324949 09:10 AM, 16 May 2023
    bloom index это конечно здорово, но он не всегда работает хорошо. Я бы сделал отдельные индексные таблицы отсортированные по дате и геохешу (для каждого геохеша своя), а основную таблицу отсортировал по user_id. Чуть больше места и кое-какие проблемы с целостностью данных, зато будет быстро, потому как оба поиска будут идти по нормальному PK.
  • https://t.me/clickhouse_ru
    Спасибо за совет! У меня 9 геохешей вот только…
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #324950 #324951 09:19 AM, 16 May 2023
    А что такого в 9-ти? Не 90 же. Какая разница - отдельная колонка или таблица? Вы же в запросах отдельно к каждому обращаетесь.
    Конечно можно их умять и в одну таблицу, но зачем?
  • https://t.me/clickhouse_ru
    IDE в данном случае стандартный клиент clickhouse, я набираю руками, так что вряд ли речь о чём-то лишнем.
  • https://t.me/clickhouse_ru
    @ktracer #324953 09:23 AM, 16 May 2023
    при этом optimize table <table> deduplicate; ни на что не ругается, но и ничего не делает. 0 записей за 0 секунд :)
  • он ничего и не будет делать, он назначает внеочередной мердж. Смотрите таблицу system.merges.
    Ну или используйте optimize_throw_if_noop
  • https://t.me/clickhouse_ru
    @bagdenia #324955 09:41 AM, 16 May 2023
    Всем привет! Есть матвью, надо собирать процентаж по некоему полю. Т.е. должно аггрегироваться что-то вида

    client_id | status |
    _________________________________________________
    1 | [["200", 20%], ["400", 78%], ["500", 2%]]

    подскажите плиз, как возможно такое реализовать.
  • версия clickhouse-client?
  • @d27ff176 #324957 10:17 AM, 16 May 2023
    Всем привет, еще вопрос про материализованные вью. Можно от них добиться такого поведения, что вью будет регулярно пересчитываться по данным в сорс таблице? Задача в том, чтобы в таргет таблице были всегда акутальные данные, а они с течением времени могут протухать.
  • https://t.me/clickhouse_ru
    @ActionNum #324958 10:21 AM, 16 May 2023
    Всем привет, подскажите плиз, что можно сделать с таблицей, удалить не могу, kill query не помогает. Данные там не критичные, разработчик ошибся и повесил такой запрос:
    ALTER TABLE develop.kpi_cmt_new_v4_part MOVE PARTITION 20230324 TO TABLE develop.kpi_cmt_new_v4_part;
  • Надо также помнить, что ошибки округления набегают немалые. В итоге совсем не очевидно, как и где правильно делать.
    В финансах лучше на уровне документа с отнесением ошибок округления на самую жирную (или первую, или..) позицию. А для аналитики лучше на самом высоком уровне агрегации (мб даже на клиенте).
  • https://t.me/clickhouse_ru
    Нет
  • А live view решит эту проблему?
  • https://t.me/clickhouse_ru
    Может кто подсказать? Или только рестарт сервера может помочь?
  • https://t.me/clickhouse_ru
    Посмотрите мутации текущие. Если данные некритичные то наверное можно убить мутацию
  • https://t.me/clickhouse_ru
    В мутациях нет ничего для этой таблицы, смотрел так:
    select * from system.mutations;
  • @nibrag #324965 10:52 AM, 16 May 2023
    Подскажите, как заставить выполниться запрос
    CREATE TABLE xxx
    ENGINE = Log AS
    SELECT
    spider_item_id,
    main_spider_id,
    description
    FROM tmp__0db9167f75
    ORDER BY
    added ASC,
    spider_item_id ASC,
    version DESC

    поле description - большой текст

    сейчас запрос падает по лимитам памяти
    Memory limit (total) exceeded: would use 35.62 GiB

    Пробовал менять max_bytes_before_external_sort, устанавливал и 1гб и 10, но не увидел изменений.
    Без жирного поля description все отрабатывает
  • @mussi_pussi #324966 11:06 AM, 16 May 2023
    Можете посмотреть?
    https://github.com/ClickHouse/ClickHouse/issues/49909
  • а что не так? почему партиция должна быть неактивна? данные ведь не удаляются
  • данные должны удаляться после мерджа, по крайней мере раньше точно так было
  • а если так таблицу создать?

    CREATE TABLE qkrq (id Int64, x Int64) Engine = MergeTree PARTITION BY id ORDER BY id SETTINGS merge_tree_clear_old_parts_interval_seconds = 1
  • https://t.me/clickhouse_ru
    но там террабайты данных
  • https://t.me/clickhouse_ru
    @Nur_oriabukhina #324971 11:52 AM, 16 May 2023
    Всем привет!

    А кто-нибудь пробовал делать foreign таблицу с полем типа array из ch в postgre? Когда делаю foreign тип array превращается в int, и не получается перенести данные. Чет в гугле ничего не нашла
  • https://t.me/clickhouse_ru
    @Vladimir_Borisov #324972 11:54 AM, 16 May 2023
    Привет,
    подскажите, пожалуйста,
    баг или фича
    с версии ClickHouse 23.3.1.2823

    select ifNotFinite(arrayReduce('kurtPop', groupArray(amount)), Null) as kurt_spd_1y
    from (
    select toDecimal64(78878.47,2) as amount
    from numbers(5)
    ) t
    получаю 90071992547409904
  • https://t.me/clickhouse_ru
    и по идее, геохэш 9 всегда включает в себя все предыдущие геохэши
  • https://t.me/clickhouse_ru
    @dichetovkin #324974 12:15 PM, 16 May 2023
    Всем привет.
    Установил clickhouse на удаленную машину через докер, проблема - не получается подключиться через dbeaver.

    При запуске clickhouse-server в логах появляются такие ошибки

    2023.05.16 09:00:18.556471 [ 1 ] {} <Trace> MySQLHandlerFactory: Failed to create SSL context. SSL will be disabled. Error: Poco::Exception. Code: 1000, e.code() = 0, SSL Exception: Configuration error: no certificate file has been specified (version 23.4.2.11 (official build))
    2023.05.16 09:00:18.556557 [ 1 ] {} <Trace> MySQLHandlerFactory: Failed to read RSA key pair from server certificate. Error: Code: 139. DB::Exception: Certificate file is not set. (NO_ELEMENTS_IN_CONFIG) (version 23.4.2.11 (official build))

    В конфиг файле раскомментил строки c listen_host

    <listen_host>::</listen_host>

    <!-- Same for hosts without support for IPv6: -->
    <listen_host>0.0.0.0</listen_host>

    <!-- Default values - try listen localhost on IPv4 and IPv6. -->

    <listen_host>::1</listen_host>
    <listen_host>127.0.0.1</listen_host>

    а в dbeaver получаю ошибку, когда пытаюсь подключиться через пользователя, которого создал командой в clickhouse-client внутри докера 'CREATE USER admin IDENTIFIED WITH plaintext_password BY 'qwerty''
    ошибка в dbeaver:

    В соединении отказано, server ClickHouseNode [uri=http://<host>:8123/default, options={use_server_time_zone=false,use_time_zone=false}]@-1628969032

    эти options пробовал менять на true, не помогло
    При этом через командную строку я могу подключиться
    Подскажите, пожалуйста, как и что исправить?
    Я совсем чайник если что
  • так тоже не работает
  • но issue уже закрыли
  • у меня удалило сразу через секунду, если поставить 60 в этой настройке, удалит через 60
  • а на какой версии ты запускал?
  • 22.8
  • https://t.me/clickhouse_ru
    @iCheater #324980 12:28 PM, 16 May 2023
    Всем привет! Что означает две точки в синтаксисе запросов кликхауса?
    пример:
    error can't freeze table: code: 497, message: [MASKED]: Not enough privileges. To execute this query it's necessary to have grant
    GRANT ALTER FREEZE PARTITION ON db_name..inner.ext_data TO backupper
  • да, на 22.8 у меня тоже работало, на 23.3 уже не работает
  • но по умолчания партиция не удалялась, так же как на 23.3, только через время
  • на 23.3 я попробовал с настройкой, она не удаляется через время
  • https://t.me/clickhouse_ru
    @ella135945 #324984 12:31 PM, 16 May 2023
    Hello
  • https://t.me/clickhouse_ru
    всем спасибо, название таблицы включало в себя "точку" в начале.
    так правильно:
    GRANT ALTER FREEZE PARTITION ON db_name.`.inner.ext_data` TO backupper;
  • https://t.me/clickhouse_ru
    https порт 8443, а не 8123
  • https://t.me/clickhouse_ru
    в 22.9 переделали как парты удаляются.
  • https://t.me/clickhouse_ru
    если поменять в настройках соединения в dbeaver - не помогло. А docker ps показывает, что clickhouse-server на порту 8123
  • https://t.me/clickhouse_ru
    я неправильно прочитал.

    docker контейнер надо с ключом -p создавать.
    конфиг КХ (listen_host) менять не надо!!!!

    https://hub.docker.com/r/clickhouse/clickhouse-server/
    networking

    You can expose your ClickHouse running in docker by mapping a particular port from inside the container using host ports:

    docker run -d -p 18123:8123 -p19000:9000 --name some-clickhouse-server --ulimit nofile=262144:262144 clickhouse/clickhouse-server
    echo 'SELECT version()' | curl 'http://localhost:18123/' --data-binary @-
  • https://t.me/clickhouse_ru
    system drop dns cache
  • https://t.me/clickhouse_ru
    optimize table <table> FINAL deduplicate
  • https://t.me/clickhouse_ru
    матвью такое не может.
    не так работают матвью, т.е. оно может преагрегировать данные для этого запроса, но готовый результат в таком виде, не может
  • https://t.me/clickhouse_ru
    нет такой фичи
  • https://t.me/clickhouse_ru
    client_id | status_counts |
    _________________________________________________
    1 | [["200", 5000], ["400", 100], ["500", 3]]

    а так например может? потом можно и поделить на общий count.
    Пробую с sumMap, но пока неуспешно
  • https://t.me/clickhouse_ru
  • @shadowusr #324996 01:33 PM, 16 May 2023
    Подскажите, плз, при использовании Normal Views, насколько неоптимальными будут запросы/нагружать базу, в сравнении с ручным запросом?

    use-case: хочу сделать Normal View над materialized view. MV схлопывает строки с помощью агрегатных функций, но нередко делает это с задержкой, что приводит к некорректному поведению на клиентах. Поэтому в Normal View добавил лишний group by, чтобы все точно сагрегировалось для клиентов.

    Поэтому есть 2 подхода:
    - использовать Normal View: select * from normal_view where id = 123
    - везде дописать запрос руками select * from materialized_view group by field1 having id = 123

    NV удобнее, но ручной запрос выглядит оптимальнее. Так ли это?
  • https://t.me/clickhouse_ru
    ну в сотни / тысячи раз может быть медленее запрос через view
  • https://t.me/clickhouse_ru
    @den_crane #324998 01:35 PM, 16 May 2023
    проблема со вью что оно читает лишние колонки и делает еще одну агрегацию, т.е. может быть в сотни раз медленее прямого запроса.

    типа есть вью с: select sumMerge() s, browser, date .... group by browser, date
    если из такого вью сделать селект: select sum(s) , date .... group by date
    оно прочитает лишнюю колонку browser и сделает лишнюю агрегацию group by browser, date и это ужасно медленно.
  • @shadowusr #324999 01:35 PM, 16 May 2023
    Ясно, то есть clickhouse тут не умеет применить какие-то оптимизации под капотом в этом месте. Спасибо!
  • https://t.me/clickhouse_ru
    на самом деле это очень сложно. Надо понимать что использованные функции ассоциативны.
  • Хотя вот сейчас попробовал сделать с вложенным запросом (эмулировать NV), запрос занимает 17 мс, вроде и не долго. В таблице MV у меня 250k записей, в перспективе будет не сильно больше. Может в этом случае можно пожертвовать скоростью в угоду удобству?
  • https://t.me/clickhouse_ru
    конечно
  • https://t.me/clickhouse_ru
    а в каком виде возможно сагрегировать? потом при запосе пересчитаю. Главное чтоб агрегировалось количество по значениям в разрезе группировки. Есть такие агрегаты?
  • https://t.me/clickhouse_ru
    @MakeReady #325004 01:40 PM, 16 May 2023
    болезненная разница будет на больших объемах или, например, если во VIEW у вас перебор с подзапросами и окнами
  • https://t.me/clickhouse_ru
    ну откуда я знаю, можете вы или нет.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @BobrD #325007 01:41 PM, 16 May 2023
    Как перенести базу данных с одного сервера на другой, между которыми нет прямой связи? Т.е. нужен перенос через промежуточный файл(ы). Насколько я понимаю у клика нет таких средств как например в postresql типа pg_dump и есть возможность выгружать не всю БД, а только отдельные таблицы через:
    clickhouse-client --query="SELECT * FROM source_table FORMAT CSV" > data.csv

    или может быть есть что-то более удобное для переноса БД?
  • https://t.me/clickhouse_ru
    Спасибо большое, оно!!!
  • https://t.me/clickhouse_ru
    в новых версиях это починено и после 3 кажется ошибок (dnsresolve), хост выкидывается из кеша автоматически
  • https://t.me/clickhouse_ru
    @Vitaly_Vaskovich #325010 02:01 PM, 16 May 2023
    Странно, что вообще не отбилось сразу, я 1 раз запустил, увидел, что неправильный адрес и поправил запрос. А ошибочный целые сутки пытался что-то выполнить.
  • https://t.me/clickhouse_ru
    если версии ClickHouse свежие то можно через
    BACKUP/ RESTORE

    https://clickhouse.com/docs/en/operations/backup#command-summary
    Backup and Restore | ClickHouse Docs

    In order to effectively mitigate possible human errors, you should carefully prepare a strategy for backing up and restoring your data.

  • https://t.me/clickhouse_ru
    @BobrD ↶ Reply to #325011 #325012 02:08 PM, 16 May 2023
    спасибо, посмотрю
  • https://t.me/clickhouse_ru
    @mrAndersen7 #325013 02:09 PM, 16 May 2023
    Привет! Может кто подсказать каким образом быстрее всего можно поискать по тексту по типу like '%abc%', сейчас делаю match(coulmn, '^abc|def$'), есть ли какие-то способы быстрее?
  • https://t.me/clickhouse_ru
    Спасибо, но если построчно с группировкой по статусам тоже - то это слишком тяжелая мв уже будет (
  • https://t.me/clickhouse_ru
    если известно . что искомый паттерн встречается в малом кол-ве data parts
    то еще можно skip index ngram_bf1 попробовать

    https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/mergetree#functions-support

    инвертированные индексы есть. но к сожалению работают так себе (память жрут)
    MergeTree | ClickHouse Docs

    The MergeTree engine and other engines of this family (*MergeTree) are the most robust ClickHouse table engines.

  • https://t.me/clickhouse_ru
    Посмотрю, спасибо, но паттерн к сожалению на всех партах :(
  • https://t.me/clickhouse_ru
    тогда skip index не помогут придется сканить всю колонку

    там скорость сканирование до нескольких гигабайт в секунду не расжатых данных
    и используется Intel Vector либа для этого...
  • https://t.me/clickhouse_ru
    так dnscache в КХ устроен
  • https://t.me/clickhouse_ru
    вы с кем вообще разговариваете? С голосами?
    matView может собрать суммы в одной строке, есть два способа.

    сделайте в https://fiddle.clickhouse.com/ пример с простыми createtable / insert /create matview.
    сейчас совершенно непонятен контекст
  • https://t.me/clickhouse_ru
    @abstractbreazy #325020 03:02 PM, 16 May 2023
    Всем привет,

    Подскажет кто-нибудь, каким образом возможно (ли?) взять дамп с таблицы с движком AggregatingMergeTree?

    Колонки типов ~ AggregateFunction(sum/avg/max, UInt64)
    Пока не пойму как это сделать в datagrip/dbeaver.

    Понимаю, что нужно использовать sumMerge(col) для селекта,
    -State для вставки.
  • https://t.me/clickhouse_ru
    Ну так используйте clickhouse-client, он сможет наверное выгрузить ... в каком нибудь native формате
  • https://t.me/clickhouse_ru
    https://fiddle.clickhouse.com/72178777-b005-40ea-b0c8-0909a7a825e1
    есть колонка status, ее нужно тоже агрегировать в матвью т.е. массив или map статусов с их количеством, в разрезе client_id и session_id соответственно
  • @r3former #325023 03:15 PM, 16 May 2023
    Как найти запросы, который съели больше всего тредов? Такой вариант корректен?
    SELECT query_start_time,query_id,length(thread_ids) as threads_cnt from system.query_log where query_start_time > '2023-05-16 15:50:00' and query_start_time < '2023-05-16 17:20:00' ORDER BY threads_cnt DESC LIMIT 10;
  • https://t.me/clickhouse_ru
    В целом ок, но кол-во тредов != потраченное cpu время
  • У нас именно трешолд срабатывает на число тредов, ищем причину. ЦПУ пока не интересует
  • https://t.me/clickhouse_ru
    SELECT query_start_time,query_id,arrayUniq(thread_ids) as threads_cnt from system.query_log where query_start_time > '2023-05-16 15:50:00' and query_start_time < '2023-05-16 17:20:00' ORDER BY threads_cnt DESC LIMIT 10;

    Точнее будет
  • https://t.me/clickhouse_ru
    @unamedrus #325027 03:17 PM, 16 May 2023
    А вообще, кх поддерживает некий пулл тредов которые потом использует для запросов
  • https://t.me/clickhouse_ru
    @unamedrus #325028 03:18 PM, 16 May 2023
    И кх при старте пытается задрать ulimit для кол-ва тредов
  • https://t.me/clickhouse_ru
    функция finalizeAggregation
  • https://t.me/clickhouse_ru
    сколько статусов может быть в одной session_id максимум?
    нужно только req_count ? или все метрики?
  • https://t.me/clickhouse_ru
    Теоретически по каждой сессии могут быть все возможные (от 1** до 5**), это http коды ответов. Пока только req_counts по ним нужны..
  • https://t.me/clickhouse_ru
    А финальный результат можно снова вставить в таблицу с агрегациями? Задача думаю в переносе промежуточного состояния агрегаций из таблицы в таблицу
  • https://t.me/clickhouse_ru
    Нет, результат finalizeAggregation это просто число, а не стейт
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @man_from_glasgow #325035 03:43 PM, 16 May 2023
    Привет! Подскажите, пожалуйста, если задать пароль для default пользователя. То обязательно прописывать для каждой реплики в секции remote_servers этот пароль или как-то можно задать в одном месте
  • https://t.me/clickhouse_ru
    для AggregateFunction(sum/avg/max, UInt64) да

    Вообще вам надо понять что такое AggregateFunction и что такое SimpleAggregateFunction

    Ну и стейт можно переность как строку или поток байт.

    select sumState(166666) x, hex(x);
    ┌─x─┬─hex(sumState(166666))─┐

    � │ 0A8B020000000000 │
    └───┴───────────────────────┘

    select unhex('0A8B020000000000') x, sumMerge(cast(x, 'AggregateFunction(sum, UInt64)')) res;
    ┌─x─┬────res─┐

    � │ 166666 │
    └───┴────────┘
  • https://t.me/clickhouse_ru
    @klug_pro #325037 03:52 PM, 16 May 2023
    Здравствуйте!
    Подскажите пожалуйста, есть в логах такая ошибка:
    <Error> MergeFromLogEntryTask: virtual bool DB::ReplicatedMergeMutateTaskBase::executeStep(): Code: 16. DB::Exception: There is no column timestamp.null in table. (NO_SUCH_COLUMN_IN_TABLE), Stack trace (when copying this message, always include the lines below):
    Как узнать, какая именно база.таблица?
  • https://t.me/clickhouse_ru
    не обязательно

    можно использовать secret
    можно использовать include https://gist.github.com/den-crane/d6e0f1c7849a0bc44c27eab2de51c911
    CH dictionary source included

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

  • https://t.me/clickhouse_ru
    Спасибо
  • https://t.me/clickhouse_ru
    расшарьте все сообщение
    с timestamp и номером треда и стектрейсом на pastila.nl
  • https://t.me/clickhouse_ru
    этот баг очень давно исправлен.

    select version()
  • https://t.me/clickhouse_ru
    @ofzhur #325043 04:11 PM, 16 May 2023
    Привет! Не подскажите, не знакомо кому решение на базе clickhouse для анализа логов nginx? хочется построить что-то вроде упрощенной яндекс-метрики на собственных мощностях, но упираюсь в то что плохо себе представляю как можно удачно задать структуру данных. Пробовал искать в истории но что-то именно про агрегацию и как можно отобразить - ничего толком не нахожу.
  • https://t.me/clickhouse_ru
    логи сделать надо просто структурными в json

    можно через https://github.com/kobsio/klogs/
    можно через https://github.com/metrico/qryn
    можно через https://vector.dev
    GitHub - kobsio/klogs: Fast, scalable and reliable logging using Fluent Bit and ClickHouse

    Fast, scalable and reliable logging using Fluent Bit and ClickHouse - GitHub - kobsio/klogs: Fast, scalable and reliable logging using Fluent Bit and ClickHouse

  • https://t.me/clickhouse_ru
    а второй способ какой?
  • https://t.me/clickhouse_ru
    https://plausible.io/

    И множество других продуктов что использует кх
    Link

    Plausible is a lightweight and open-source Google Analytics alternative. Your website data is 100% yours and the privacy of your visitors is respected.

  • https://t.me/clickhouse_ru
    @ofzhur ↶ Reply to #325046 #325047 04:44 PM, 16 May 2023
    Знакомо но это не про логи, как и posthog, а больше вроде никто не использует
  • https://t.me/clickhouse_ru
    @ofzhur #325048 04:44 PM, 16 May 2023
    Posthog тоже не про логи
  • https://t.me/clickhouse_ru
    vector про логи
  • https://t.me/clickhouse_ru
    Ну это про метрики https://github.com/VKCOM/statshouse
    GitHub - VKCOM/statshouse: StatsHouse is a highly-available, scalable, multi-tenant monitoring system

    StatsHouse is a highly-available, scalable, multi-tenant monitoring system - GitHub - VKCOM/statshouse: StatsHouse is a highly-available, scalable, multi-tenant monitoring system

  • я настроил так логи в nginx:
    https://privatebin.net/?4338a5c40ccb9e1b#31qpG8dYyf5JcCRrrTLx5qRFGrJtCCMF7JG634yAkgRX

    примерно так создал табличку:
    https://privatebin.net/?b6eee7ebc446b86b#gzF5zE9F1b4tbtUkrhZS25sd1niWZxsZyXKVvdYinrV

    и примерно так настроил vector:
    https://privatebin.net/?2624d52f5c8494b8#2BaCoqMSUTkvCgt5oMPvgK2VJzqFdHQa36QqoR1HTbaQ
    Encrypted note on PrivateBin

    Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.

  • https://t.me/clickhouse_ru
    @ofzhur ↶ Reply to #325049 #325052 04:53 PM, 16 May 2023
    Про пайплайны если я правильно понимаю, любопытно но я скорее больше именно про их отображение и обработку, но спасибо
  • https://t.me/clickhouse_ru
    @ofzhur ↶ Reply to #325050 #325053 04:53 PM, 16 May 2023
    Интересно, спасибо!
  • https://t.me/clickhouse_ru
    @ofzhur ↶ Reply to #325051 #325054 04:54 PM, 16 May 2023
    Очень любопытно, спасибо!
  • потом в графане можно такого понастроить... и всякого другого тоже 🙂
  • https://t.me/clickhouse_ru
    на loki похоже 🙂
  • локи - это аггрегатор логов от графаны 🙂 а на скриншоте сама графана 🙂

    локи оказался беспомощным тормозом в рамках одного хоста с не быстрыми накопителями и ограниченными ресурсами. clickhouse уделал локи как стоячего 🙂
  • https://t.me/clickhouse_ru
    локи имеет дашборд в графане, весьма похожий.

    но да, локи оказался какой-то ерундой с неясной областью применения. Вроде бы про логи - но на логах он тупит сурово 🙂
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    о класс, спасибо огромное. У меня не суммировалось, да из-за AggregatingMergeTree.
  • https://t.me/clickhouse_ru
    нет, не поэтому.

    просто замените мои SummingMergeTree на AggregatingMergeTree и все будет работать точно также
    во второй MV
  • https://t.me/clickhouse_ru
    ну и конечно надо использовать нормальные TO таблицы, а не то что сейчас в примере
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    у меня было без sum_map, а просто
    groupArray(status) AS countsByStatusMap.status,
    groupArray(1) AS countsByStatusMap.req_count

    и с AggregatingMergeTree оставались негруппированными, а с SummingMergeTree стали ок.
  • https://t.me/clickhouse_ru
    ну да, nested summing это только SummingMergeTree
  • https://t.me/clickhouse_ru
    простите, а TO таблицы, что это?
  • 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
    @F_AlexanderL #325070 07:07 PM, 16 May 2023
    доброе. подскажите. на винду clickhouse как установить? он только для линукса и мака?
  • https://t.me/clickhouse_ru
    Через виртуалку , докер или wsl2
  • https://t.me/clickhouse_ru
    Если winserver, я бы поднял Linux на hyper-v
  • https://t.me/clickhouse_ru
    @touristplay #325073 07:48 PM, 16 May 2023
    Ребят, как во время запроса в поле datetime использовать только дату и игнорировать время?
  • https://t.me/clickhouse_ru
    @ilamak #325074 07:49 PM, 16 May 2023
    toDate(datetime) привести
  • https://t.me/clickhouse_ru
    @F_AlexanderL #325075 07:50 PM, 16 May 2023
    Wsl норм вариант. Спасибо.
  • https://t.me/clickhouse_ru
    ага wsl это на ВЕНДУ
  • https://t.me/clickhouse_ru
    Надеюсь не в прод?
  • Учтите, что диск ext4 понадобится под wsl
  • https://t.me/clickhouse_ru
    Поздно. Винда улетела🥲
  • https://t.me/clickhouse_ru
    @F_AlexanderL #325080 08:00 PM, 16 May 2023
    Пытаюсь в исходное состояние привести
  • https://t.me/clickhouse_ru
    @F_AlexanderL #325081 08:00 PM, 16 May 2023
    Проще наверное Linux поставить
  • @2070273164 #325082 08:01 PM, 16 May 2023
    А так под Hyper-V, начиная от Pro версии Windows ставится нормальный Linux.
  • https://t.me/clickhouse_ru
    @F_AlexanderL #325083 08:03 PM, 16 May 2023
    Принял
  • https://t.me/clickhouse_ru
    @paulineoskolkoff #325085 08:10 PM, 16 May 2023
    Добрый вечер,

    Подскажите, пожалуйста, у меня есть запрос:

    select count() from
    (
    select
    name,
    code,
    array_values
    from table
    )

    который возвращает 129 строк и отрабатывает за 0 секунд.

    Если разворачиваю массив через array join,

    select count() from
    (
    select
    name,
    code,
    array_values
    from table
    )
    array join array_values

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

    Это вообще ок по производительности? ) Array join такой тяжелый? Там вроде не миллионные массивы..

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

    Куда можно посмотреть, чтобы улучшить время?

    Спасибо!
  • https://t.me/clickhouse_ru
    array join очень легкий

    возможно это фетч на клиента занимает 14 сек.

    проверьте из КХ-клиента вот такое

    select count() from
    (
    select
    name,
    code,
    array_values
    from table
    )
    array join array_values
    format Null

    format Null -- делает всю работу, но не возвращает результат
  • https://t.me/clickhouse_ru
    Спасибо большое, завтра проверю и отпишусь!
  • live view делает то что нужно, с определённым интервалом вызывает select и данные протухшие по timestamp легко отфильтровываются
    тут два вопроса:

    - live view же на диске хранится, не in memory?
    - можно написать select не указывая явно названия таблиц? например используя условный wildcard

    Предполагается, что вьюхи можно создавать в рантайме. Не хочется переписывать запрос на чтение при добавлении новой вьюхи.
  • @d27ff176 #325089 10:12 PM, 16 May 2023
    SELECT * FROM *_live_view; было бы идеально 🙂
  • @d27ff176 #325090 10:17 PM, 16 May 2023
    Вот так делать не хочется:

    SELECT * FROM foo_live_view

    UNION ALL

    SELECT * FROM bar_live_view;
  • 17 May 2023 (222 messages)
  • @d27ff176 #325091 12:23 AM, 17 May 2023
    Кстати фильтр where при создании LIVE VIEW не умеет фильтровать по json полю:

    CREATE LIVE VIEW lv WITH REFRESH 300 AS
    SELECT user_id, 'key_value' AS key FROM table
    WHERE json_object.field == 1
    GROUP BY (user_id, key);

    вьюха создаётся но потом падает селект SELECT * FROM lv;
  • https://t.me/clickhouse_ru
    @alex_jies #325093 06:28 AM, 17 May 2023
    Здравствуйте! подскажите плиз есть ли в CH аналог функции json_agg, мне нужно из внешней таблицы (postgres) взять сгруппированные данные в json(массив объектов) чтобы получилось такое
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @alex_jies #325095 06:28 AM, 17 May 2023
    если нет, то как вариант можно сделать VIEW в pg, но хотелось бы нативными функциями если возможно
  • https://t.me/clickhouse_ru
    @Omega515 #325096 06:54 AM, 17 May 2023
    Добрый день.
    Подскажите можно ли получить данные о размерах словарях за вчера, за неделю назад?
  • https://t.me/clickhouse_ru
    groupArray()
  • там наверное хочется функцию которая сама сделает json из полей и значений
  • https://t.me/clickhouse_ru
    точно )
  • https://t.me/clickhouse_ru
    @konnectrl #325100 06:57 AM, 17 May 2023
    Ааа я не перепутал array_agg с json_agg
  • https://t.me/clickhouse_ru
    А зачем вам JSON в CH ?
  • https://t.me/clickhouse_ru
    @konnectrl #325102 06:57 AM, 17 May 2023
    Вам вывести надо в json'e ?
  • https://t.me/clickhouse_ru
    мы решили CH использовать как быстрое хранилище на сайте, там храним денормализованные данные по товарам, и вот как раз это поле которое мне нужно это список модификаций товаров
  • https://t.me/clickhouse_ru
    Вы мне кажется что то перепутали ... CH не может быстрым хранилищем для сайта ...
  • https://t.me/clickhouse_ru
    мне тоже так кажется, но на это я не могу повлиять, так решило руководство
  • https://t.me/clickhouse_ru
    А сколько планируется QPS ?
  • https://t.me/clickhouse_ru
    планируют как обычно миллионы юзеров в сутки )
  • https://t.me/clickhouse_ru
    Киньте 1000 селектов в секунду в CH ... И покажите результаты руководству :) Вы под OLTP нагрузку берёте OLAP решение ...
  • https://t.me/clickhouse_ru
    )) понял
  • https://t.me/clickhouse_ru
    а дозировать запросы можно через max_concurrent_queries? чтобы просто в очереди болтались запросы, но по мемори лимиту не падали
  • https://t.me/clickhouse_ru
    Не знаю не занимался
  • @iksleo #325112 07:18 AM, 17 May 2023
    всем привет
    подскажите плиз в части PROJECTION и Materialized view
    инпуты:
    - репортнул ишью (MUTATION в контексте Materialize PROJECTION зависает на этапе MERGE PARTS)
    - без projections скорость выборки падает ~x40 раз (DDL по PARTITION BY и индексам в рамках стейментов оптимизирован)
    один и тот же дата сет и DDL
    без проекций
    Read 466460102 rows, 32.58 GiB in 9.817406 sec., 47513579.65637766 rows/sec., 3.32 GiB/sec.
    с проекциями
    Read 62 rows, 250.30 KiB in 0.259682 sec., 238.7535524218082 rows/sec., 963.87 KiB/sec.

    Вопросы:
    - есть ли WA (воркэраунд) в части проекций чтобы данные партов/партишнов не афектались
    - подойдет ли использование Materialized view + AggregatingMergeTree (чтобы не проседать по перфомансу и выполнялось +- также как с проекциями)
  • Проекция это по сути и есть Aggregating, только надо будет самим думать из какой таблицы селекты делать. Ну и мутации соответственно вам тоже 2 раза надо будет делать
  • https://t.me/clickhouse_ru
    @s_nikolajus #325114 07:29 AM, 17 May 2023
    Привет, возможно ли узнать когда определенные партиции-парты были считаны в последний раз? Чтобы понять какие данные используются реже-чаще.
  • @iksleo ↶ Reply to #325113 #325115 07:29 AM, 17 May 2023
    получается, есть вероятность, что в мутациях при слиянии MERGE_PARTS тоже будет exception в system.replication_queue если использовать AggregatingMergeTree и MatViews?
    или механика слияний в projection другая, раз баг слинковали c похожей issue
    SELECT queries using a projection raise a `BAD_DATA_PART_NAME` error · Issue #46413 · ClickHouse/ClickHouse

    Describe what's wrong We have implemented a projection using the GROUP BY clause. Queries activating the projection have been running without fault for months. But since a few weeks ago, someti...

  • https://t.me/clickhouse_ru
    @ilejn ↶ Reply to #325110 #325116 07:33 AM, 17 May 2023
    Можно. И не забывайте про потоки - если количество одновременно исполняемых запросов заведомо больше числа потоков исполнения, то распараллеливание - это зло.
    Вцелом, конечно, согласен с коллегой: выставлять доступ к CH для неограниченного числа пользователей - полная дичь. Вас не ждёт лёгкая прогулка ;)
  • Не, все должно нормально работать. Это немного другое
  • @ShulcevVA #325118 07:45 AM, 17 May 2023
    Склонировал кластер из 2 нод, поменял конфигу, но таблицы вся равно пытаются соединиться на старые ip. Подозреваю, что это из-за host в зукипере. Я изменил имена хостов, удалил корень на ЗК, сделал ресторе таблицы, и результат - в место fqdn теперь в ЗК отображается только домен без имени хоста машины. От куда он берет инфу и как это пофиксить?
  • @iksleo ↶ Reply to #325114 #325119 07:46 AM, 17 May 2023
    вот такая есть инфа по партам которые не смогли мержануться
  • а из самой файловой системы посмотреть, когда файл был считан не подойдет?
  • @ShulcevVA #325121 07:54 AM, 17 May 2023
    File Timestamps - mtime, ctime and atime in Linux - GeeksforGeeks

    A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

  • @iksleo ↶ Reply to #325117 #325122 07:54 AM, 17 May 2023
    Ок. попробую materialized views. отпишу потом.
    проекцию/и дропну которые ломают MERGE PARTS
  • https://t.me/clickhouse_ru
    возможно и подойдёт, я сначала подумал может в самом КХ есть какой-нибудь поле. Но, с другой стороны, это наверное дорого писать такую инфу куда-то при каждом чтении.
  • есть еще такая штука, но я ее не тестил https://clickhouse.com/docs/ru/operations/system-tables/part_log?ysclid=lhreuocv8d961914351
    system.part_log | ClickHouse Docs

    system_tables-part-log}

  • @d27ff176 #325125 08:25 AM, 17 May 2023
    https://stackoverflow.com/questions/29164893/postgresql-union-of-several-tables-using-dynamic-names

    > What I'd like to do is to get one big table which is the union of all my vl_* tables, with also a column with the name of the original table.

    В CH можно как-нибудь этот кейс закрыть? Без явного перечисления всех таблиц через union all.
  • Merge Table Engine | ClickHouse Docs

    The Merge engine (not to be confused with MergeTree) does not store data itself, but allows reading from any number of other tables simultaneously.

  • @iksleo ↶ Reply to #325124 #325127 08:28 AM, 17 May 2023
    да. там много таких ошибок отсвечивает.
    везде Code: 233. в system.replication_queue как раз эти MERGE PARTS операции фэйлятся
  • https://t.me/clickhouse_ru
    @zorrozoroff #325128 08:32 AM, 17 May 2023
    коллеги, доброе утро! Делал я тут insert from select, тысяч 400 всего записей. Ну оно мне сказало, что количество партов для инсерта чересчур велико получается, говорит поменяй предел. Ну я поменял. Ну заинсертил. Ну, таблица старая, плохо прикинул тогда и сделал partition by чересчур мелкий, ну такое. Секунд 15 инсертилось, партов было много, trace рисовал аллокейшны на fs, и по копеечке вставлял, и закончилось всё ок.

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

    баг или шо это?

    паста тут: https://pastebin.com/raw/iZsh5Ldx

    на пасте инсерт из соседней бд, где я повторял для контроля, там тайминг другой, принцип тот же.
  • какая версия?
  • https://t.me/clickhouse_ru
    23.2.4.12 и 22.10.2.11
  • A events_swap2 тоже MergeeTree?
  • https://t.me/clickhouse_ru
    больше похоже имеет отношение к операциями с партами, а не лог доступа
  • https://t.me/clickhouse_ru
    да. Отличие только в том, что там не low cardinality strings, но данные те же самые
  • выглядит как то что нужно, спасибо
  • @reneyna #325135 09:46 AM, 17 May 2023
    Кто-нибудь работал с json в таблицах? После создания таблицы со столбцом json простой селект падает с ошибкой illegal argument type.
  • @d27ff176 #325136 09:47 AM, 17 May 2023
    а в CH есть возможность "уникальный индекс" по user_id построить?
    мне для одной из таблиц нужен по факту только Upsert по user_id без исторических данных, пока не нашел как это можно провернуть
  • INSERT INTO table (content) VALUES ('{"a": 1, "b": { "c": 2, "d": [1, 2, 3] }}');
    SELECT content.a, content.b.c, content.b.d[3] FROM table;
  • @cation73 #325139 10:01 AM, 17 May 2023
    Всем привет!
    Столкнулся с проблемой в парам. вью, что при использовании джоина возникает ошибка Query parameter 'start' was not set (UNKNOWN_QUERY_PARAMETER).
    Подскажите, пожалуйста, можно ли как это обойти и нормальное ли это поведение парам. вью?

    Искусственный пример:
    CREATE OR REPLACE VIEW v_segment AS
    WITH
    today() - toIntervalDay({start:Int}) AS date_from,
    today() - toIntervalDay({end:Int}) AS date_to
    SELECT visitID
    FROM visits1 v
    INNER JOIN
    (SELECT
    clientID
    FROM hits
    WHERE 1=1
    AND date >= date_from
    AND date < date_to) h
    ON v.clientID = h.clientID
    WHERE 1=1
    AND v.date >= date_from
    AND v.date < date_to
  • https://t.me/clickhouse_ru
    @fitz_12oz #325140 10:38 AM, 17 May 2023
    Привет. Кто-нибудь тянул данные с MSSQL в кликхаус? Можно ли без костылей через ODBC лить? Или может какие-нибудь ETL решения?
  • https://t.me/clickhouse_ru
    гугель показывает это (не реклама :))
  • https://t.me/clickhouse_ru
    Благодарю. Возможно, это поможет)
  • https://t.me/clickhouse_ru
    @legaru #325143 10:48 AM, 17 May 2023
    подскажите из за чего могут зависать DROP ? kill не помогает
  • DROP..... SYNC
  • @vmakulov #325145 11:13 AM, 17 May 2023
    в мануале вроде ясно сказано
  • @iksleo ↶ Reply to #325112 #325146 11:38 AM, 17 May 2023
    проекции заработали
    откоментил тут что сделал
    Hanging MATERIALIZE projection MUTATION · Issue #49913 · ClickHouse/ClickHouse

    INPUTS ReplicatedMergeTree table projections (works fine) CH ver 23.1.6.42 system.mutations for MATERIALIZE projection has is_done equals to 0 for unexists parts Unexpected behaviour Hanging MATERI...

  • https://t.me/clickhouse_ru
    @phil_tsr #325147 12:01 PM, 17 May 2023
    Всем привет. Не получается установить кликхаус на мак. Дошёл до компилятора, и пишет:

    The CMAKE_CXX_COMPILER:

    =/Library/Developer/CommandLineTools/usr/bin/clang++

    is not a full path and was not found in the PATH.

    Tell CMake where to find the compiler by setting either the environment
    variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
    to the compiler, or to the compiler name if it is in the PATH

    При этом в этой папке clang++ есть. И с clang проблем нет. Скрин: http://joxi.ru/eAO49qGUGzwXQr

    В этом процессе новичок, иду на ощупь по инструкции. Поможете разобраться?
  • https://t.me/clickhouse_ru
    @socketpair #325148 12:03 PM, 17 May 2023
    Всем привет. Не смог найти нормальный ответ в интернетах по SQL. Спрашиваю тут: select ... union all select ... выдаст обьединение двух выборок. Вопрос, является ли рандомным порядок этих двух пачек между собой (порядок строк внутри каждой пачки - вне вопроса). Возможно всё ещё хуже и КХ разрешено перемешивать строки между пачками
  • по всем стандартам sql, да (рандомно) и да (порядок не гарантирован, так что строки между пачками могут перемешаться)
  • @1382671541 #325150 12:20 PM, 17 May 2023
    только это не "хуже", это "лучше"
    sql-движок не тратит ресурсы на сортировку, если пользователь не запросил ее явно через order by, данные можно в несколько потоков отправлять и т.д.
  • https://t.me/clickhouse_ru
    а я и не просил сортировку. я хотел просто склеивание
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @socketpair #325154 12:21 PM, 17 May 2023
    Хорошо. А как грамотно упорядочить пачки ?
  • https://t.me/clickhouse_ru
    @socketpair #325155 12:21 PM, 17 May 2023
    внутри пачек порядок уже проставлен
  • https://t.me/clickhouse_ru
    @socketpair #325156 12:21 PM, 17 May 2023
    (я нашёл конечно способ, но такое)
  • https://t.me/clickhouse_ru
    Элементарно.
    select * from (
    select '1' as gr1, ....
    union all
    select '2' ......
    )
    order by gr1
  • https://t.me/clickhouse_ru
    так я и сделал. но тогда теряется порядок который был ВНУТРИ каждой пачки
  • https://t.me/clickhouse_ru
    @socketpair #325159 12:23 PM, 17 May 2023
    тогда надо делать сортировку по gr1 и потом через запятую повторить сортировку каждой пачки (блако у меня они одинаковые в каждой пачке) но если бы ли бы разные то ой
  • https://t.me/clickhouse_ru
    Ну тогда проще на бэке уже склеить эти два запроса, чем мучать тройной сортировкой сервер )
  • https://t.me/clickhouse_ru
    у меня бек стримово просто тащит запрос с КХ где КХ генерит джсонный ответ. тоесть бек очень тонкий
  • https://t.me/clickhouse_ru
    @socketpair #325162 12:24 PM, 17 May 2023
    вангую что-то есть для этого всего в КХ
  • https://t.me/clickhouse_ru
    @socketpair #325163 12:25 PM, 17 May 2023
    сделаю-ка feature request на GH. вдруг прокатит
  • а чем обеспечивается порядок внутри каждой пачки?
    а то может вы читаете без order by и там на самом деле нет никакого порядка, как вам кажется, просто движок несколько раз выдал вам данные в одном порядке, но согласно стандартам sql это абсолютно не значит, что в другой день он не выдаст вам другой порядок внутри пачки
  • https://t.me/clickhouse_ru
    внутри каждой пачки явно прописан нужный order by
  • https://t.me/clickhouse_ru
    @socketpair #325166 12:28 PM, 17 May 2023
    меня интересует порядок пачек между собой. нужен тот в котором они описаны в запросе
  • а зачем ставить из исходников? вы хотите писать код на С++? если нет - ставьте из докера https://hub.docker.com/r/clickhouse/clickhouse-server/
  • если поля сортировки разные в "пачках", сделайте row_number() в каждой по этим полям, и используйте эту колонку в -->
  • здесь
  • https://t.me/clickhouse_ru
    curl https://clickhouse.com/ | sh

    https://github.com/Altinity/homebrew-clickhouse
  • https://t.me/clickhouse_ru
    всеравно это лишняя работа по сортировке, которой хотелось бы избежать
  • https://t.me/clickhouse_ru
    это баг в kafka

    https://github.com/ClickHouse/ClickHouse/issues/15473
    Kafka can (still) hang during drop · Issue #15473 · ClickHouse/ClickHouse

    20.6.6.7, on cluster table drop on 10 nodes cluster, table reads 2 topics. log 2020-09-30 2020-09-30 07:20:12 513899 BgSchPool 46901 Trace StorageKafka (kafka_fact_customer_session) Topics/partitio...

  • https://t.me/clickhouse_ru
    @socketpair #325173 12:34 PM, 17 May 2023
    Короче запилил feature request: https://github.com/ClickHouse/ClickHouse/issues/49957
    Add options to SQL for strict UION ALL order. · Issue #49957 · ClickHouse/ClickHouse

    Suppose we have the query: select ... from A order by XXXX UNION ALL select ... from B order by YYYY In this case, according to SQL standard, all the records (even between two subselects) can be sh...

  • https://t.me/clickhouse_ru
    А, спасибо
  • https://t.me/clickhouse_ru
    @den_crane думаешь ересь? мне вот прям надо.
  • и этот реквест так же не решит ситуацию, что сортировка внутри пачек сломается
  • https://t.me/clickhouse_ru
    не понял почему. и какой ЭТОТ. если фича реквест, а не sql request, то я же и написал что оно не должно ломаться.
  • https://t.me/clickhouse_ru
    это бред.

    это надо решать на уровне оптимизатора чтобы order by TT, XXX во внешнем запросе не вызывал сортировку
  • а при работе с данными часто сортировку стараются избегать, потому что операция дорогая, и отдают все это наведение красоты клиенту
  • https://t.me/clickhouse_ru
    ну ок, но там разные сортировки. тоесть XXX и YYY РАЗНЫЕ.
  • https://t.me/clickhouse_ru
    @socketpair #325181 12:37 PM, 17 May 2023
    тоесть совсем
  • https://t.me/clickhouse_ru
    @socketpair #325182 12:38 PM, 17 May 2023
    тогда придётся делать хитры общий order by (с ифником по TT)
  • https://t.me/clickhouse_ru
    @socketpair #325183 12:38 PM, 17 May 2023
    выглядит как адовый костыль
  • https://t.me/clickhouse_ru
    Спасибо
  • https://t.me/clickhouse_ru
    ну надо тогда расширение синтаксиса SQL делать либо просто стабилизорвать порядок того что выдает union all
  • https://t.me/clickhouse_ru
    да. и мне нужна именна эта стабилизация
  • почему не отдать на клиент?
  • https://t.me/clickhouse_ru
    только есть проблема что macos clickhouse это обрубок полного КХ
  • https://t.me/clickhouse_ru
    @ilejn ↶ Reply to #325186 #325189 12:41 PM, 17 May 2023
    Если она нужна только вам, то берите напильник и пилите.
    Звучит грубо, но уж как есть.
    А если не только вам, то попробуйте обосновать: вдруг куче людей только этого и не хватало для счастья.
  • https://t.me/clickhouse_ru
    Такой ответ в принципе для любого feature request так что можно было и не писать
  • https://t.me/clickhouse_ru
    @zero_stranger #325191 12:43 PM, 17 May 2023
    Всем привет. Подскажите, в каком формате лучше всего хранить бекапы? По размеру, очевидно, Native, однако в случае внештатных ситуаций (повреждение файла и тд) без понятия как Native ручками посмотреть. Пока склоняюсь к CSV, есть советы на этот счет?
  • https://t.me/clickhouse_ru
    я тоже думаю что не имеет смысла заводить feature requests, это замусоривает github.
  • https://t.me/clickhouse_ru
    толсто
  • https://t.me/clickhouse_ru
    кстати опечатки в заголовках и сокращения, (кмк) дико бесят главного, рекомендую исправить

    https://github.com/ClickHouse/ClickHouse/issues/49957
    Add options to SQL for strict UION ALL order. · Issue #49957 · ClickHouse/ClickHouse

    Suppose we have the query: select ... from A order by XXXX UNION ALL select ... from B order by YYYY In this case, according to SQL standard, all the records (even between two subselects) can be sh...

  • https://t.me/clickhouse_ru
    спс, поправил всё что увидел
  • https://t.me/clickhouse_ru
    вот кстати я завел FR про fiddle

    https://github.com/lodthe/clickhouse-playground/issues/30

    проголосуйте, там автор fiddle очень странный
    PrettyCompactMonoBlock by default · Issue #30 · lodthe/clickhouse-playground

    it looks much nicer if enabled SET output_format_pretty_grid_charset = 'ASCII', output_format_pretty_color=0; https://fiddle.clickhouse.com/fd308ccc-94d8-4f7a-b1e5-6fd1ddbe8b18

  • https://t.me/clickhouse_ru
    каким образом проголосовать?
  • https://t.me/clickhouse_ru
    Вот вам стабилизация
    https://fiddle.clickhouse.com/e5afc28c-279e-4907-a638-39a5c1fc133e
  • я не совсем верно выразился
    просто sql основан на понятии set. набор данных. если его явно не сортировать при чтении, результат не сортирован.
    операция union / union all берет несколько set и создает новый set.
    и новый полученный set обладает такими же свойствами, как и все — если его не сортировать при чтении, результат не сортирован. так что даже если слепить несколько отсортированных set в один и если даже в определенном порядке, то при чтении этого нового set без явного указания сортировки результат тоже может оказаться не сортирован. так что для вашего реквеста надо не только к union новое поведение прикручивать, но и к select
  • https://t.me/clickhouse_ru
    @Alexey_037 #325200 12:54 PM, 17 May 2023
    3 запроса - 1 с сортировкой по возрастанию возрастов, 2 - по убыванию. Итог выводит как положено при любом количестве запросов.
  • @Islam551 #325201 12:55 PM, 17 May 2023
    Добрый день!
    Хочу сделать материализованное представление, но не пойму что делать если в исходную таблицу инсерт одних и тех же данных может быть несколько раз. Часто бывает такое, что данные за один период могут перегружать по разным причинам.
    Соответственно во вьюшке после каждого инсерта идёт вставка данных и данные дублируются.
    Сталкивался кто?) Поделитесь опытом пожалуйста
  • https://t.me/clickhouse_ru
    @legaru ↶ Reply to #325172 #325202 12:56 PM, 17 May 2023
    ребут кафки не поможет? CH тяжело ребутнуть ((
  • https://t.me/clickhouse_ru
    Итоговая логика проста - вы нумеруете в подзапросах данные после сортировки. Во втором запросе вы добавляете в нумерацию количество строк из 1 подзапроса. В итоге - сортировка по нумерации.
  • https://t.me/clickhouse_ru
    а оптимизатор КХ догадается что каждая пачка уже отсортирована чтобы заново не сортировать?
  • https://t.me/clickhouse_ru
    вы по ссылке ходили? Там полный эмулятор клика
  • https://t.me/clickhouse_ru
    @Alexey_037 #325206 12:58 PM, 17 May 2023
    вы просили запрос - вот вам запрос и без всяких issue )
  • https://t.me/clickhouse_ru
    Ходил. я не говорил что оно не будет работать. я спросил оптимально ли оно будет работать
  • https://t.me/clickhouse_ru
    @socketpair #325208 12:58 PM, 17 May 2023
    я ТОЖЕ сделал (попроще, т.к. у меня упрощенный кейс) но мне не нравится это нагромождение ради простой фичи
  • https://t.me/clickhouse_ru
    можно оптимальней, если количество строк вынести в константу, тогда не будет на каждую строку запрашивать количество.
  • вы усложняете, потому что "количество строк" из 1 подзапроса тоже надо подсчитать, это в третьем подзапросе делать что ли, чтобы отдать его результат во второй?
  • https://t.me/clickhouse_ru
    @iceflame #325211 01:05 PM, 17 May 2023
    Code: 620. DB::Exception: Received from localhost:19000. DB::Exception: PostgreSQL replication initialization did not finish successfully. Please check logs for error messages. (QUERY_NOT_ALLOWED)

    А кликхаус пока особенно не умеет писать в лог ошибки репликации Postgres? Вроде ничего не находит
  • https://t.me/clickhouse_ru
    Ну да. 1 раз посчитать.
    https://fiddle.clickhouse.com/5df954bd-eaf6-4999-ba47-9fe90b29ebf4
  • один-то один, но вдруг этот query 5 минут считается по сложному условию.
    а если мне пять датасетов надо склеить, или 10. получим десять раз по "всего один раз" и куча мусора в коде
    вы же сами написали:

    select * from (
    select '1' as gr1, ....
    union all
    select '2' ......
    )
    order by gr1

    надо просто каждый датасет пронумеровать, и сортировать order by gr1, row_num
  • @Evgeny_Agv #325214 01:10 PM, 17 May 2023
    всем привет.
    подскажите, пожалуйста, по проблеме ниже.
    пытаюсь сделать бэкап бд с помощью: BACKUP DATABASE database TO Disk ('backups', '/backups/database.zip/')
    и получаю ошибку как на скриншоте ниже

    просьба подсказать возможно ли как-то обойти эту ошибку?
  • https://t.me/clickhouse_ru
    Я пробовал. НО к великому удивлению, второй датасет выдает случайные результаты. Если первый дает в нормальной сортировке, то второй - рандомно. Поэтому пришлось городить так. )
  • это как это вы получили рандом?
    https://fiddle.clickhouse.com/e0d2b22e-700f-4f29-b4b4-db6f8bcc4202
  • https://t.me/clickhouse_ru
    Вспомнил откуда ) у меня в первой вариации было rowNumberInALlBlocks. )
  • https://t.me/clickhouse_ru
    @Alexey_037 #325218 01:16 PM, 17 May 2023
    Так что да, этот вариант еще быстрее, согласен )
  • https://t.me/clickhouse_ru
    так и задумано. Мат.вью это триггер который получает данные из инсерта. Если в исходную таблицу вставили 3 строки, мат вью тоже получает 3 строки. И это не важно что строки одинаковые.
  • https://t.me/clickhouse_ru
    нет, не поможет
  • спасибо
  • https://t.me/clickhouse_ru
    @legaru ↶ Reply to #325220 #325222 01:24 PM, 17 May 2023
    жаль(( запросы уже 14к секунд висят. а ребут сервера уходит 1-2 часа((
  • апну вопрос, пока актуально
  • https://t.me/clickhouse_ru
    КХ рестартует 2 часа?
  • https://t.me/clickhouse_ru
    единственное отдаленное подобие это ReplacingMergeTree
  • матвью можно сделать записывающий в реплейсинг/коллапсинг МТ
  • https://t.me/clickhouse_ru
    а зачем matview ?
  • https://t.me/clickhouse_ru
    @legaru ↶ Reply to #325224 #325228 01:30 PM, 17 May 2023
    да там 8 терабайт забито + куча словарей. (80 CPU, 320 ГБ RAM)
  • https://t.me/clickhouse_ru
    покажите select count() from system.parts
  • https://t.me/clickhouse_ru
    @legaru ↶ Reply to #325229 #325230 01:31 PM, 17 May 2023
    96743
  • я понял, что таблица с данными не обязательно уникальная может остаться, а нужен только дополнительный уникальный список
  • https://t.me/clickhouse_ru
    ну т.е. тупо партов много. Это случайно так или намеренно? Сколько таблиц?

    (есть cache metadata, он ускоряет загрузку КХ до секунд, но немного замедляет инсерты)
  • гайс, тут есть какие-нибудь подсказки куда стоит копать?
  • https://t.me/clickhouse_ru
    бекапы для трусов
  • https://t.me/clickhouse_ru
    @legaru ↶ Reply to #325232 #325235 01:36 PM, 17 May 2023
    select count() from system.tables WHERE database NOT IN ('system', '_system', 'information_schema') ;
    252
    большинство таблиц парт по дате намеренно был сделан
  • )))
  • https://t.me/clickhouse_ru
    @legaru ↶ Reply to #325232 #325237 01:36 PM, 17 May 2023
    cache metadata это что то из коробки CH ?
  • https://t.me/clickhouse_ru
    зачем бекапить dictionary ? это просто xml / sql , там нет данных
  • https://t.me/clickhouse_ru
    select count() cnt, table, database from system.parts where active group by table, database order by cnt desc limit 10

    какой partition by и сколько партов в первой таблице?
  • https://t.me/clickhouse_ru
    да, выключен по умолчанию.

    если включить то КХ начинает писать метаданные партов в rockdb и при старте просто читает из этой базы и не сканирует парты на диске
  • https://t.me/clickhouse_ru
    @legaru ↶ Reply to #325239 #325241 01:41 PM, 17 May 2023
    10765
    10219
    первые две таблицы
    у них partition by по своим id
  • https://t.me/clickhouse_ru
    намеренно? или так получилось?
  • https://t.me/clickhouse_ru
    @legaru ↶ Reply to #325242 #325243 01:43 PM, 17 May 2023
    в этих таблицах так получилось
  • Все на скрине написано. "Бекапы для движка СЛОВАРЬ не поддерживается" Почитай про словари в КХ
  • https://t.me/clickhouse_ru
    ну я бы исправил

    про cache https://zhuanlan.zhihu.com/p/515899510

    (ускорится естественно следующий старт, после старта со включенной фичой)
    ClickHouse MergeTree启动加速--使用篇

    前言MergeTree Family启动慢问题一直是ClickHouse社区的痛点。在完成对所有MergeTree part的加载之前,clickhouse-server实例无法对外提供服务。而在生产环境中,加载过程动辄持续几十分钟,严重影响clickhouse集…

  • https://t.me/clickhouse_ru
    @YephimS #325246 01:56 PM, 17 May 2023
    Ребята, привет! Есть БД в MySQL примонтирована к clickhouse. Во вьюшке в MySQL поменял тип поля, но в клихаусе без изменений. можно как-то пнуть кликхауз чтоб он данные перечитал. Создал новую вьюху там все ок. А в старой не хочет обновлять тип полей.
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #325246 #325247 01:59 PM, 17 May 2023
    > БД в MySQL примонтирована к clickhouse
    что значат эти слова? Можно объяснить в терминологии документации? Какой Engine?
  • https://t.me/clickhouse_ru
    @legaru ↶ Reply to #325245 #325248 02:00 PM, 17 May 2023
    спасибо!
  • https://t.me/clickhouse_ru
    CREATE DATABASE IF NOT EXISTS dashboard
    ENGINE = MySQL('10.130.0.17:3306', 'dashboard', 'dashboard', '***')
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #325249 #325250 02:03 PM, 17 May 2023
    Можно удалить/создать - это же простая прокси, без хранимых данных. Неприятно конечно что это цельная Database, будут пострадавшие в процессе
  • https://t.me/clickhouse_ru
    кмк должно помочь
    detach database dashboard;
    attach database dashboard;
  • а какой лучший способ для резервирования данных в клике? я пробовал через партиции, еще думаю попробовать clickhouse-copier
  • https://t.me/clickhouse_ru
    а clickhouse-backup не пробывали ?
  • хотелось бы штатными средствами
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    спасибо, помогло. А вообще есть надежда, что изменения сам подтянуться? у меня баз 50+ и вручную их дергать грустновато.
  • ругается на dictionary , мне его исключить получается из бд при бэкапе? backup database db except db_dictionary..
  • https://t.me/clickhouse_ru
    нет надежды
  • https://t.me/clickhouse_ru
    Башем за 5 минут делается ведь ..
  • https://t.me/clickhouse_ru
    так-то да, но хотелось чтоб КХ сам умел.
  • https://t.me/clickhouse_ru
    я попробовал в 23.4 все работает.

    забекапился dictionary и вся база

    cat /backups/test/test/metadata/flows/item_dict.sql
    CREATE DICTIONARY flows.item_dict (`id` UInt64, attr String) PRIMARY KEY id SOURCE(CLICKHOUSE(TABLE item_dict_t DB 'flows')) LIFETIME(MIN 0 MAX 0) LAYOUT(HASHED())
  • видимо в моей версии 22.3.3.44 это не работает(
  • https://t.me/clickhouse_ru
    22 это очень страрая версия, там бекап только начинался
  • а какие пока есть варианты для 22.3.3.44 версии ?
    физическая копия файлов? + снимок системы?
  • https://t.me/clickhouse_ru
    clickhouse-backup ?
  • да вот штатными средствами хотелось бы
  • https://t.me/clickhouse_ru
    так не было.

    был alter table freeze -- снепшот таблицы.

    clickhouse-backup это штука которая просто умеет немного автоматизации вокруг freeze
  • @Evgeny_Agv #325268 03:01 PM, 17 May 2023
    а clickhouse-copier, например?
  • https://t.me/clickhouse_ru
    clickhouse-copier тоже не умеет словари. И это такая штука которой чтобы пользоваться надо IQ >150
  • Понял)))
    Буду тогда переходить на более свежую версию и пробовать через backup database и тд.
    Спасибо!
  • https://t.me/clickhouse_ru
    @ActionNum #325271 03:25 PM, 17 May 2023
    Добрый день, можете подсказать, у нас есть много витрин с данными, которые могут меняться каждый час (парсится статистика от партнеров). В кластере у нас 2 реплики, для этих таблиц используем движок ReplicatedMergeTree. Так вот после получения новых данных они пишутся во временную таблицу и потом через REPLACE PARTITION мы подменяем данные из временной таблицы в итоговую таблицу. Когда таких витрин стало много, стали замечать что запись в кластер начала притормаживаться, и запросы могут висеть по 100 секунд. Если зайти в show processlist когда все плохо то там в основном висят запросы с ALTER TABLE по REPLACE PARTITION.

    Хочется понять правильный ли это юзкейс для КХ и какие здесь слабые места? ZK на отдельных серверах в кластере из 3-х реплик. Лимитов у него нет, JVM выделено 3Gb heapSize
  • https://t.me/clickhouse_ru
    @ilejn ↶ Reply to #325271 #325272 03:37 PM, 17 May 2023
    По идее у вас не должно быть записи в тот момент, когда из временной таблицы делается replace partition. Это так?
  • https://t.me/clickhouse_ru
    Вот в это место и думаю, что возможно все. Там порядка 50 парсеров, в какой момент там все записывается и когда было инициировано перемещение партиции не понятно.
  • https://t.me/clickhouse_ru
    это скорее всего фетч на реплику
  • https://t.me/clickhouse_ru
    @ActionNum #325275 03:51 PM, 17 May 2023
    То есть ZK такие наши действия тоже нагружает? Можно ли как то это избежать? Есть более правильный патерн действий с изменяемыми витринами данных?
  • https://t.me/clickhouse_ru
    @den_crane #325276 03:53 PM, 17 May 2023
    Вы ищите под фонарем. При чем тут вообще зукипер?

    смотрите system.replication_queue
  • https://t.me/clickhouse_ru
    Она тоже возрастает, когда начинают висеть эти запросы. Потом отпускает
  • https://t.me/clickhouse_ru
    @ActionNum #325279 03:56 PM, 17 May 2023
    Основной вопрос в том, как под капотом работает attach partition на реплецируемых таблицах
  • https://t.me/clickhouse_ru
    график вообще ни о чем. Нужно содержимое таблицы.

    >attach partition на реплицируемых таблицах
    завист от того какая таблица реплицируемая, источник или приемник.
    если в источнике есть парт, он атачится, если нет, то фетчится.
    важно не удалять парты из источника пока не закончился alter.
    move например криво реализован, поэтому удаляет парты раньше чем реплика успела их приатачить
    но вообще единственно что нормально работает это attach partition from, все остальное replace/move/,, сделаны на отвали.
  • https://t.me/clickhouse_ru
    Обе реплецируемые и источник и приемник.
  • https://t.me/clickhouse_ru
    И мы не понимаем почему торомоза, может он пытается сравнивать парты еще попутно?
  • https://t.me/clickhouse_ru
    хм, не воспроизводится?

    https://fiddle.clickhouse.com/e8a6f5ad-3f01-41e2-848c-75f0d97e9cf8
  • не воспроизводится(
    версия клика 23.1.3.5 и судя по песочнице, дело в версии - тоже отрабатывает ошибка UNKNOWN_QUERY_PARAMETER
  • https://t.me/clickhouse_ru
    Можешь подсказать пожалуйста на счет ReplicatedReplacingMergeTree может лучше его использовать, в приведенном кейсе по замене партиций? Или он делает тот же attach partition from
  • https://t.me/clickhouse_ru
    там with в таких вью не поддерживались
    и сервер крашился из-за вью вообще совсем https://github.com/ClickHouse/ClickHouse/issues/47247
    parameterized view leads to segmentation fault · Issue #47247 · ClickHouse/ClickHouse

    I upgraded to Clickhouse 23.2.2.20 to use new parameterized views. Under load I began to get segmentation fault error. Here are few stack traces from logs: 2023.03.04 20:57:50.473964 [ 424295 ] {} ...

  • https://t.me/clickhouse_ru
    все ответы в system.replication_queue
    возможно надо просто увеличить pool
    если есть фетчи из-за replace partition, то починить это
  • Спасибо! Тогда будем обновляться
  • https://t.me/clickhouse_ru
    Тут есть что такое
  • https://t.me/clickhouse_ru
    @ilamak #325290 04:48 PM, 17 May 2023
    подскажите, как увеличить BackgroundMergesAndMutationsPoolTask ? ActiveParts продолжают расти, CPU свободен, а только по 2 мерджа выполняется
    метрики:
    https://pastila.nl/?00768103/2035b7cabba21cb20ded60652bf199d0
  • https://t.me/clickhouse_ru
    pastila.nl
  • https://t.me/clickhouse_ru
    select * from system.replication_queue
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    а в какой таблице растет ActiveParts ? и сколько их?

    select database, table, partition, count() cnt from system.parts
    where active
    group by database, table, partition
    order by desc limit 0
  • https://t.me/clickhouse_ru
    @ilamak #325295 04:57 PM, 17 May 2023
    |database: clickstream_v2
    |table: umo_raw_v1

    при нормальном значении в 12-15 тыс, сейчас 25 и продолжает расти, потом упрется и будет too many parts
  • https://t.me/clickhouse_ru
    а какой
    partition by ?

    по идее до 16 мержей по дефолту может идти у вас
  • https://t.me/clickhouse_ru
    @ilamak ↶ Reply to #325296 #325297 04:59 PM, 17 May 2023
    плохой ;/
    более 600 ключей получается, yyyymm (два месяца храним), и два поля
  • https://t.me/clickhouse_ru
    @ilamak ↶ Reply to #325294 #325298 05:02 PM, 17 May 2023
    https://pastila.nl/?01ef4dae/f864fc5d62fd05af4ff33d3c3e765ff4
    отсортированы по cnt, макс 16 частей, почти все приходится на эту таблицу
  • https://t.me/clickhouse_ru
    @ilamak #325299 05:04 PM, 17 May 2023
    сделал детач консьюмера, части резко упали
  • https://t.me/clickhouse_ru
    @ilamak #325300 05:04 PM, 17 May 2023
    но в чем причина почему не успеваем делать мержи непонятна
  • https://t.me/clickhouse_ru
    @ilamak #325301 05:05 PM, 17 May 2023
    cpu не поднимается выше 60%, 12-50% в среднем (как правило, это явно коррелировало с cpu)
  • https://t.me/clickhouse_ru
    @ilamak #325302 05:06 PM, 17 May 2023
    Not executing log entry queue-0373933638 for part 8908e177b542853d51784667b10a09f5_0_9962_4571_9974 because 2 merges with TTL already executing, maximum 2.

    также есть подозрение на это, что не успеваем подрезать под TTL
  • https://t.me/clickhouse_ru
    мониторьте select * from system.replication_queue
    возможно есть merge таски которые ждут фетча с реплики
    по идее до 16 мержей может бежать
  • https://t.me/clickhouse_ru
    ttl_only_drop_parts ?
  • https://t.me/clickhouse_ru
    @ilamak #325305 05:08 PM, 17 May 2023
    в system.settings не вижу этого параметра
  • https://t.me/clickhouse_ru
    ну он не имеет отношения к сессии

    system.merge_tree_settings
  • https://t.me/clickhouse_ru
    попробуйте поставить background_schedule_pool_size=1024
  • https://t.me/clickhouse_ru
    @ilamak ↶ Reply to #325303 #325308 05:10 PM, 17 May 2023
    спасибо, но странно что обычно он 2-4
  • https://t.me/clickhouse_ru
    @ActionNum #325309 05:18 PM, 17 May 2023
    @den_crane спасибо за system.replication_queue
    У нас на одной реплике гора
    REPLACE_RANGE,551
    DROP_RANGE,552
    Как-то их оттуда можно убить?
  • @5857659142 #325310 05:20 PM, 17 May 2023
    phones are also a good option
  • https://t.me/clickhouse_ru
    удалять их из зукипера

    SELECT replica_path || '/queue/' || node_name FROM system.replication_queue JOIN system.replicas USING (database, table)
    WHERE create_time < now() - INTERVAL 1 DAY AND type = REPLACE_RANGE , DROP_RANGE

    потом system restart replica таблица
  • https://t.me/clickhouse_ru
    Чет не соображу как из ZK удалить конкретный queue-0081148716
    Путь не нахожу такой в replica_path
  • https://t.me/clickhouse_ru
    я запрос поправил, там телеграм || съел,
    что запрос возвращает?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @ActionNum #325316 05:50 PM, 17 May 2023
    1083 всего где то записи висят с 27 марта 2023 это жесть наверно.