• 01 June 2020 (244 messages)
  • @1187026293 #163986 01:01 AM, 01 Jun 2020
    Joined.
  • Он сам все разобьет на партиции как ему надо 🙂
    Если указать партиционирование при создании таблицы, то он просто будет следовать этому правилу разбивки
  • @n1ght_f0x #163988 01:53 AM, 01 Jun 2020
    Лучше сразу при работе с кх выкинуть из головы подходы, которые используются в mysql, postgre, etc. 🙂
  • https://t.me/clickhouse_ru
    будет одна партиция, с именем tuple()
  • спасибо за поправку 🙂
  • Слияниий
  • @n1ght_f0x #163992 04:50 AM, 01 Jun 2020
    Подскажите как правильно чанками по 30к перебрать таблицу размером 39kk с наименьшей нагрузкой на проц?

    Пробовал разные движки MergeTree, SummingMergeTree, Log
    Но везде втыкаюсь в проблемы, например:
    1. SummingMergeTree
    При limit 7620000, 100
    0.93 sec.| 39,318,115 rows.| 4 GB
    Но при этом нагрузка на 64 ядра по 30-40% на каждое

    если добавить сюда еще и order by из-за того что кх не упорядоченно отдает данные, то тогда
    21.26 sec.| 39,318,115 rows.| 4 GB
    нагрузка до 50% на ядро
  • @n1ght_f0x #163993 04:54 AM, 01 Jun 2020
    Кроме как перед перебором с агрегировать данные и положить в лог (чтобы не делать order by), возможны еще решения?
  • https://t.me/clickhouse_ru
    @AleksandrVassiliev #163994 05:58 AM, 01 Jun 2020
    Добрый день! Подскажите, пожалуйста, как после нескольких инсертов в одну из реплик убедиться, что данные доехали до остальных реплик? Достаточно ли дожаться, чтобы в system.replication_queue было пусто? Или надежнее проверять через count()?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #163992 #163995 07:43 AM, 01 Jun 2020
    https://clickhouse.tech/docs/ru/operations/settings/settings/#settings-max_threads
    но это чисто ограничение самого запроса, для него не будет юзаться больше потоков чем указано в этой настройке.
    Настройки | Документация ClickHouse

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

  • https://t.me/clickhouse_ru
    @KateGlushchenko #163996 07:49 AM, 01 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @KateGlushchenko #163997 08:06 AM, 01 Jun 2020
    Добрый день!
    Меняю структуру таблицы данных. Поэтому встала задача перелить данные из старой таблицы в новую.
    Вставляю пачками по 6-10 тыс записей.
    Запросом SELECT-INSERT к clickhouse-client

    Через какое то время падает с Code: 241. DB::Exception: Received from localhost:9000. DB::Exception: Memory limit (total) exceeded: would use 13.96 GiB (attempt to allocate chunk of 4503208 bytes), maximum: 13.96 GiB.

    Если уменьшаю размер пачки, то просто падает чутка позже.

    Что делать?
  • https://t.me/clickhouse_ru
    а зачем пачками по 6-10тыс?
    я переливал млрд записей просто INSERT SELECT
  • https://t.me/clickhouse_ru
    @KateGlushchenko #163999 08:12 AM, 01 Jun 2020
    потому что не получается сразу вот так - возникает та же ошибка с ОЗУ. Пробую пачками - не помогает
  • https://t.me/clickhouse_ru
    @KateGlushchenko #164000 08:12 AM, 01 Jun 2020
    что мягко говоря выглядит странно
  • https://t.me/clickhouse_ru
    @unamedrus #164001 08:12 AM, 01 Jun 2020
    Сколько озу на сервере?
  • сколько ОЗУ на сервере
    какой max_insert_block_size
    сколько партов в вашей таблице из которой идет селект
    какой средний/медианный размер парта в вашей таблице из которой идет селект
    ?
  • https://t.me/clickhouse_ru
    @w1n2k #164003 08:21 AM, 01 Jun 2020
    Я что-то понять не могу, пытаюсь добавить ALIAS к столбцу ALTER TABLE events ADD COLUMN some_alias ALIAS id_str_1; получаю ClickHouse exception, code: 36, host: clickhouse-1.services, port: 8223; Code: 36, e.displayText() = DB::Exception: Data type have to be specified for column `some_alias to add (version 20.4.2.9 (official build))`
  • https://t.me/clickhouse_ru
    16 Gb, max_insert_block_size не настроен. Выборка идет внутри партиции, партиция состоит из 3 файлов по 7-8 Gb
  • ALTER TABLE events ADD COLUMN some_alias String ALIAS id_str_1
  • https://t.me/clickhouse_ru
    @w1n2k ↶ Reply to #164008 #164009 08:26 AM, 01 Jun 2020
    А когда оно начало требовать тип? с какого CH?
  • https://t.me/clickhouse_ru
    @w1n2k #164010 08:27 AM, 01 Jun 2020
    Раньше вроде как само резолвило тип исходя из родительской колонки
  • не знаю, но он вроде позволяет expression задавать, и понятия "родительской колонки" нет
  • попробуйте уменьшите max_insert_block_size (он всегда настроен по умолчанию миллион строк).
    может у вас слишком широкие строки.
  • а сколько в IDLE режиме памяти занято? (когда не вставляете ничего)
  • https://t.me/clickhouse_ru
    @z_1ac3124 #164014 08:29 AM, 01 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    insert select по 6-10 к строк, это нужно уменьшать инсерт блок сайз до этих чисел или даже меньше судя по всему
  • @dj_mixer #164016 08:29 AM, 01 Jun 2020
    ну может там в IDLE режиме все 13 Гиг и заняты )))
  • https://t.me/clickhouse_ru
    Спасибо за помощь. Разобрался.
    Это дефект на стороне DataGrip.
    Не смотря на то, что в настройках соединения SSL включен, сертификат отдан и включена его проверка, при коннекте это не учитывалось.
    В строке коннекта насильно добавил ssl=true и блок с SSL начал работать.
    Отправлю ребятам из JB ишью в их трекер 🙂

    Оставлю этот пост здесь. Вдруг кому пригодится 🙂
    #datagrip #ssl #yandex
  • https://t.me/clickhouse_ru
    ну там не OOM приходит, а просто убивается по лимиту памяти.
  • какой средний/медианный размер НЕСЖАТОГО парта? (uncompressed_size)
  • https://t.me/clickhouse_ru
    В доке написано что это бесполезно
  • ну там 13 занято, он 1гиг резервирует и потом убивается, почему бы и да
  • https://t.me/clickhouse_ru
    есть настройка для размера блока селекта, но непонятно будет ли работать для INSERT SELECT
  • у Денни влияло, у меня тоже влияло
    https://t.me/clickhouse_ru/153076
    【D】【J】 in ClickHouse не тормозит

    вот так и знал, что у вас уже будет готовый гист )))) спасибо ! получается так - (размерпарта/max_insert_block_size)*max_threads партов?

  • хотя может это max_block_size влиял...
  • какой средний/медианный размер НЕСЖАТОГО парта? (uncompressed_size)
    и сколько строк в партах?

    просто если вы вставляете по 6к и вылетает по памяти - у вас строки монструозно широкие должны быть...
  • @pavelRed #164026 08:51 AM, 01 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
  • @dj_mixer #164028 09:10 AM, 01 Jun 2020
    ~2500 bytes per row...
    все правильно, вы в доку не туда смотрели.
    вот эти дефолты надо менять (уменьшать). И все будет хорошо.
    у вас минимум по ляму строк вставка - т.е. 2.5 * 10м * 8 (мой магический фактор расфигачивания в памяти)
    min_insert_block_size_rows 1048576
    min_insert_block_size_bytes 268435456
  • https://t.me/clickhouse_ru
    В Clickhouse нет транзакционной целостностности, нормальных UPDATE, уникальных индексов и внешних ключей. Помимо этого справочник по-хорошему надо создавать и обновлять на каждом узле кластера отдельно.

    Одним словом, в CH гораздо больше проблем со справочниками, чем пользы, лучше подключить ODBC Dictionary из PostgreSQL.
  • https://t.me/clickhouse_ru
    ну на каждом узле, можно через репликацию сделать
  • https://t.me/clickhouse_ru
    так реплицируется же на реплики, а не на шарды, разве нет?
  • @253072124 #164032 09:17 AM, 01 Jun 2020
    Содержимое словарей известно заранее?
  • https://t.me/clickhouse_ru
    @IlyaTsutskov #164033 09:17 AM, 01 Jun 2020
    Можно извратиться и сделать Distributed view над справочником, чтобы он гонялся туда-сюда с одного шарда, но это как-то уж совсем странно😄
  • https://t.me/clickhouse_ru
    @rjs45 #164034 09:19 AM, 01 Jun 2020
    Добрый день. Можно как-то сделать что-то типа ReplacingMergeTree, только схлопывать не по максимальной версии, а по минимальной?
    Нужно сделать материалку, которая будет хранить только первую версию, а все последующие игнорировать
  • https://t.me/clickhouse_ru
    @oo00oo00oo00oo #164035 09:21 AM, 01 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @dbalashov #164036 09:22 AM, 01 Jun 2020
    -version не ?
  • https://t.me/clickhouse_ru
    @rjs45 ↶ Reply to #164036 #164037 09:23 AM, 01 Jun 2020
    ver — столбец с версией, тип UInt*, Date или DateTime.
    Нельзя отрицательный
  • https://t.me/clickhouse_ru
    @oo00oo00oo00oo #164038 09:23 AM, 01 Jun 2020
    Добрый день
    С какой версии работают и работают ли вообще quantile функции с Decimal ?
    У нас сейчас при любом запросе они возвращают 0.0
    avg при этом работает нормально, например
  • https://t.me/clickhouse_ru
    MaxUInt - ver
  • https://t.me/clickhouse_ru
    @unamedrus #164040 09:31 AM, 01 Jun 2020
    SELECT
    toUInt64(-1000) AS a,
    toUInt64(-30000) AS b,
    a > b AS comp

    ┌────────────────────a─┬────────────────────b─┬─comp─┐
    │ 18446744073709550616 │ 18446744073709521616 │ 1 │
    └──────────────────────┴──────────────────────┴──────┘
    на самом деле и с отрицательными пойдет
  • https://t.me/clickhouse_ru
    @rjs45 ↶ Reply to #164040 #164041 09:37 AM, 01 Jun 2020
    Попробуем.

    Просто есть сомнения, что это не оптимальный вариант. Может, как-то через запрос можно?
    Было бы что-то типа MySQL-овского Insert on duplicate key...
  • https://t.me/clickhouse_ru
    @unamedrus #164042 09:37 AM, 01 Jun 2020
    можно, но безумно дорого будет по затратам :)
  • https://t.me/clickhouse_ru
    @unamedrus #164043 09:38 AM, 01 Jun 2020
    а так, это вполне ок вариант, если собираетесь использовать replacingMergeTree
  • @n1ght_f0x #164044 09:52 AM, 01 Jun 2020
    а это что-то архитектурно принципиальное, что в materialized view не корректно работает такая конструкция:

    select

    from table_name where (..) in ( select … from table_name)
  • https://t.me/clickhouse_ru
    @unamedrus #164045 09:54 AM, 01 Jun 2020
    почему некорректно?
  • https://t.me/clickhouse_ru
    @unamedrus #164046 09:55 AM, 01 Jun 2020
    и mat_view это триггер на инсерт буквально, те такое будет вызываться на каждую вставку, что выглядит расточительным
  • если в table_name лежит N строк удовлетворяющих условию
    where (..) in ( select … from table_name)
    то тогда на выходе ожидается получить N строк
    но в реальности получается M строк которые были на входе в MV
  • https://t.me/clickhouse_ru
    @unamedrus #164048 10:00 AM, 01 Jun 2020
    на выходе будет то количество вставленных строк которые удовлетворят условию where (..) in ( select … from table_name)
  • CREATE TABLE tmp1 (
    `key` String,
    `val` Int32
    ) ENGINE = MergeTree()
    ORDER BY key

    CREATE TABLE tmp2 (
    `key` String,
    `val` Int32
    ) ENGINE = MergeTree()
    ORDER BY key

    CREATE MATERIALIZED VIEW mv_tmp1_to_tmp2 TO tmp2 (
    `key` String,
    `val` Int32
    ) AS
    SELECT
    key,
    sum(val) as val
    FROM tmp1 where key in (
    SELECT distinct key FROM tmp1
    )
    group by key

    insert into tmp1 values ('1', 1)
    insert into tmp1 values ('1', 1)

    select * from tmp1

    | key | val |
    | 1 | 1 |
    | 1 | 1 |

    select * from tmp2

    | key | val |
    | 1 | 1 |
    | 1 | 1 |
  • @n1ght_f0x #164050 10:07 AM, 01 Jun 2020
    Ожидаемый результат:

    select * from tmp2

    | key | val |
    | 1 | 1 |
    | 1 | 2 |
  • https://t.me/clickhouse_ru
    @unamedrus #164051 10:08 AM, 01 Jun 2020
    Вот эта часть
    SELECT
    key,
    sum(val) as val
    FROM tmp1
    Видит только тот блок данных, что вставляется.
  • https://t.me/clickhouse_ru
    @unamedrus #164052 10:08 AM, 01 Jun 2020
    думай о MAT VIEW как триггер на инсерт
  • @n1ght_f0x #164053 10:09 AM, 01 Jun 2020
    да, просто никогда проблем не было в кейсах
    SELECT
    key,
    sum(val) as val
    FROM tmp2 where key in (select distinct key from tmp1)
  • https://t.me/clickhouse_ru
    @unamedrus #164054 10:12 AM, 01 Jun 2020
    потому что mat_view работают несколько иначе, чем себе представляете
  • https://t.me/clickhouse_ru
    @unamedrus #164055 10:12 AM, 01 Jun 2020
    и вообще вся эта секция с дистинктом бесполезна
  • https://t.me/clickhouse_ru
    @unamedrus #164056 10:12 AM, 01 Jun 2020
    для конкретного случая с этим mat view
  • @n1ght_f0x #164057 10:16 AM, 01 Jun 2020
    здесь получается что тригер повесился на FROM tmp1, а where key просто выполнился как подзапрос
  • https://t.me/clickhouse_ru
    @unamedrus #164059 10:19 AM, 01 Jun 2020
    ну вроде того, единственное не уверен за область видимости второго FROM tmp1
  • https://t.me/clickhouse_ru
    @unamedrus #164060 10:20 AM, 01 Jun 2020
    судя по том, что вставились обе строки. то видит он тоже только блок вставки, иначе первая строчка бы не вставилась
  • @n1ght_f0x #164061 10:21 AM, 01 Jun 2020
    тогда получается что и первый tmp1 и второй tmp1 имеют доступ к данным mv 🤔🤔🤔
  • https://t.me/clickhouse_ru
    @romanneklesa #164062 10:24 AM, 01 Jun 2020
    Joined.
  • @n1ght_f0x #164063 10:24 AM, 01 Jun 2020
    Выглядит как бага ну или фича) смотря с какой стороны посмотреть
  • https://t.me/clickhouse_ru
    @unamedrus #164064 10:25 AM, 01 Jun 2020
    я думаю as intended
  • https://t.me/clickhouse_ru
    @unamedrus #164065 10:26 AM, 01 Jun 2020
    потому, что за попытку читать всю таблицу(использование JOIN в MV и тд) на каждую вставку тут стараются бить по рукам:)
  • @n1ght_f0x #164066 10:28 AM, 01 Jun 2020
    ну тут кейс такой просто
    что при вставке раз в час необходимо собрать всю инфу по вставленному и переложить в ttl таблицу
  • https://t.me/clickhouse_ru
    учитывая ваш пример с sum(val) может вам summing engine лучше подойдет?
  • @n1ght_f0x #164068 10:30 AM, 01 Jun 2020
    увы нет 🙁

    по ttl потом пойдет воркер со скип-лимит и засинхронит изменения в другие системы
  • https://t.me/clickhouse_ru
    @unamedrus #164069 10:32 AM, 01 Jun 2020
    У вас вставка раз в час, и вам нужно сгруппировать это дело в набегающий итог?
  • https://t.me/clickhouse_ru
    @unamedrus #164070 10:33 AM, 01 Jun 2020
    вообще самый нормальный путь это вставлять с агрегированные данные каждый час, а набегающий итог считать при селектах
  • https://t.me/clickhouse_ru
    @dream_of_silence #164071 10:34 AM, 01 Jun 2020
    здравствуйте, подскажите пожалуйста, есть вопрос, если сделать двухуровневую кластеризацию, выделяя подкластер под проект, правильно ли я понимаю, что выполнять запрос с объединением какого-либо рода таблиц по всему кластеру можно без проблем через функцию remote? то есть хочется иметь разделение по возможностям горизонтального масштабирования по проектам, потому что они разные по нагрузкам, но при этом иметь возможность кверить какие-то данные по всем проектам в одном запросе.
  • https://t.me/clickhouse_ru
    можно начать хитрить и обернуть таблицу tmp1 в merge движок, и тогда возможно запрос полетит к настоящей таблице
  • https://t.me/clickhouse_ru
    ноды клика вообще ничего не знают про кластер и тд.
    вы спокойно можете в ремоут секции конфига сделать N кластеров

    level_1

    server_1
    ......
    server_5

    level_2

    server_6
    ......
    server_10

    level_3

    server_11
    ......
    server_15

    all_servers

    server_1
    ......
    server_15
  • не совсем понял о чем речь)

    есть конечно вариант засунуть в цепочку между tmp1 и tmp2 еще null engine, но не очень хочется
  • https://t.me/clickhouse_ru
    @unamedrus #164075 10:38 AM, 01 Jun 2020
    и сделать нужные вам DISTRIBUTED таблицы
  • https://t.me/clickhouse_ru
    спасибо!
  • https://t.me/clickhouse_ru
    тут все зависит от специфики
  • https://t.me/clickhouse_ru
    @unamedrus #164078 10:39 AM, 01 Jun 2020
    допустим вам нужно сделать только набегающую сумму
  • https://t.me/clickhouse_ru
    @unamedrus #164079 10:41 AM, 01 Jun 2020
    MV не умеет в union, сие есть паршиво
  • https://t.me/clickhouse_ru
    @unamedrus #164080 10:49 AM, 01 Jun 2020
    CREATE MATERIALIZED VIEW mv_tmp1_to_tmp2 TO tmp2 (
    key String,
    val Int32
    ) AS
    SELECT
    key,
    sum(val + tmps.val) as val
    FROM tmp1 LEFT JOIN (SELECT key, val FROM tmp2 WHERE key IN (SELECT key FROM tmp1) ORDER BY val DESC LIMIT 1 BY key ) as tmps USING (key)
    group by key
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @unamedrus #164082 10:49 AM, 01 Jun 2020
    но это кривая хрень
  • https://t.me/clickhouse_ru
    @unamedrus #164083 10:49 AM, 01 Jun 2020
    и возможно даже неправильно работает
  • @n1ght_f0x #164084 10:50 AM, 01 Jun 2020
    tmp2 имеет ttl час 🙂 соответственно при следующем заполнении она будет пустой 🙂
  • https://t.me/clickhouse_ru
    ну. это далеко не обязательно:)
    TTL он удалить данные после истечения срока в неопределенное время
  • https://t.me/clickhouse_ru
    @unamedrus #164086 10:52 AM, 01 Jun 2020
    ну можно заменить tmp2 на tmp1 в моем запросе. но там хитрее будет
  • @n1ght_f0x #164087 10:53 AM, 01 Jun 2020
    с left join кстати пробовал
    аналогичный результат получился как и в моем первом примере 🙂
  • @n1ght_f0x #164088 10:54 AM, 01 Jun 2020
    такое ощущение складывает что в каком бы месте и сколько бы раз я не обращался к tmp1 внутри mv она будет видеть только данные от тригера
  • https://t.me/clickhouse_ru
    ну потому, что он заменяет все обращения к tmp1 на данные из триггера
  • @bobelev #164090 10:59 AM, 01 Jun 2020
    roadmap пропал из документации 🙁
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    такой вопрос, зачем вам очищать таблицу по TTL?
  • @n1ght_f0x #164093 11:07 AM, 01 Jun 2020
    есть сурс таблица - динамика по объектам с некоторыми статусами

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

    сам итоговый статус можно получить только просуммировав всю динамику
  • @n1ght_f0x #164094 11:09 AM, 01 Jun 2020
    и сответственно результат того что происходит если это делать по всей таблице 🙂

    это не учитывая что должны протекать фоновые процессы
  • https://t.me/clickhouse_ru
    и сответственно результат того что происходит если это делать по всей таблице 🙂
    можно запрос показать?
  • @n1ght_f0x #164096 11:10 AM, 01 Jun 2020
    именно сам запрос увы нет
    долбаное NDA но могу пример накидать
  • https://t.me/clickhouse_ru
    @unamedrus #164097 11:10 AM, 01 Jun 2020
    ну, да речь о примере
  • https://t.me/clickhouse_ru
    @unamedrus #164098 11:11 AM, 01 Jun 2020
    просто я бы допустим(из грубого описания) заменил движок на summing или агрегейтинг и добавил бы столбец(таймштамп, номер батча), по которому бы отсекал всех тех, кто не обновился
  • @n1ght_f0x #164099 11:14 AM, 01 Jun 2020
    Схлопывать данные в динамике нельзя, нужны для других процессов

    SELECT
    field1,
    field2,
    field3,
    sum(p1) as m,
    sum(p2) as m2,
    if(m + m2 > 0, 1, -1) as isVisible
    FROM table
    group by field1, field2, field3
    LIMIT 18000000, 30000
  • https://t.me/clickhouse_ru
    @unamedrus #164100 11:14 AM, 01 Jun 2020
    и запросы были бы вида
    select key, sum(val) FROM summing GROUP BY key HAVING max(updated_at) > now() - INTERVAL 1 HOUR
  • https://t.me/clickhouse_ru
    @BloodJazMan #164101 11:14 AM, 01 Jun 2020
    Народ, а подскажите кто нибудь

    Народ, помогите

    у меня кластер с 2 хостами \ репликами
    я пытаюсь сделать следующий тестовый сценарий:
    - успешно создаю таблицы CREATE TABLE default.test(event_time DateTime, test UInt64) ON CLUSTER "all-replicated" ENGINE MergreTree() ORDER BY tuple() + CREATE TABLE default.test_distr(event_time DateTime, test UInt64) ON CLUSTER "all-replicated" ENGINE Distributed("all-replicated", default, test, test) - четвертый параметр подразумевает, что данные через distributed таблицу должны вставляться поровну в каждый хост кластера

    - стопаю сервер на 1м хосте
    - успешно вставляю данные INSERT INTO default.test_distr ... на втором хосте
    - я ожидаю что у меня увеличиться значение DistributedFilesToInsert в system.metrics на втором хосте
    и что default.test MergeTree будет иметь только половину данных, но вместо этого я вижу что в distributed таблице данных столько же сколько в merge tree и никаких ошибок связанных с distributed connection

    что я делаю не так?
  • 30000 в лимите не спроста 🙂
  • https://t.me/clickhouse_ru
    отдельный AggregatedMergeTree Materialized VIew вам не поможет?
  • https://t.me/clickhouse_ru
    @Randomazer #164104 11:15 AM, 01 Jun 2020
    Yuri Alexandrovich, [31.05.20 21:13]
    можно ли как-нибудь узнать сколько будут весить данные, которые отдаются КХ по запросу?
  • https://t.me/clickhouse_ru
    те хочешь воcпользоватся internal_replication='false'?
  • https://t.me/clickhouse_ru
    LIMIT 18000000, 30000

    вот же виновник
  • https://t.me/clickhouse_ru
    @unamedrus #164107 11:19 AM, 01 Jun 2020
    он сначала все группирует а потом пропускает 18млн ключей и достает жалкие 30к
  • да весь этот запрос виновник моих бессонных ночей)
  • https://t.me/clickhouse_ru
    @unamedrus #164109 11:19 AM, 01 Jun 2020
    В общем, я бы попробовал сделать, как я предложил
  • https://t.me/clickhouse_ru
    @unamedrus #164110 11:19 AM, 01 Jun 2020
    замена tmp2 на таблицу c summing agregating движком
    но можно и просто ваш запрос чутка улучшить
  • https://t.me/clickhouse_ru
    вы не можете/хотите забирать больше 30к за раз?
  • @n1ght_f0x #164112 11:20 AM, 01 Jun 2020
    не можем
  • https://t.me/clickhouse_ru
    @unamedrus #164113 11:20 AM, 01 Jun 2020
    сколько у вас юников?
  • https://t.me/clickhouse_ru
    @unamedrus #164114 11:20 AM, 01 Jun 2020
    примерно?
  • https://t.me/clickhouse_ru
    здравствуйте, можно вопрос, я правильно понимаю, что если какую-то таблицу небольшую, которую надо джойнить делать на каждом шарде, делать поверх шардированных таблиц Distributed таблица, то сервер без дополнительных ухищрений с моей стороны, при джойне левой distributed таблицы и правой distributed таблицы, которая есть на каждом шарде, будет делать на каждом шарде, и потом объединит результаты, а вот если правая таблиц только на одном шарде, то для левой таблицы он потащить на один шард все данные левой таблицы и джойнит там? Группировку данных он тоже будет делать на шардах, если правая таблица есть на всех шардах?
  • https://t.me/clickhouse_ru
    скорее всего нет, кликхаус буферизует кусочек данных и сразу их отправляет, но в http он передает некие хедеры о состоянии запроса, возможно что то вам там будет интересно
  • https://t.me/clickhouse_ru
    @Randomazer #164117 11:22 AM, 01 Jun 2020
    спасибо
  • 40kk при условии наличия ~20-30% данных
  • @n1ght_f0x #164119 11:22 AM, 01 Jun 2020
    потенциально их может стать 1лярд
  • @n1ght_f0x #164120 11:23 AM, 01 Jun 2020
    а раз в час не более 400к - 1кк уников
  • https://t.me/clickhouse_ru
    @unamedrus #164121 11:23 AM, 01 Jun 2020
    можно сделать так
    FROM table
    WHERE cityHash64(field1, field2, field3) % 1000000 = 0
    group by field1, field2, field3
  • https://t.me/clickhouse_ru
    @unamedrus #164122 11:24 AM, 01 Jun 2020
    и так все пробегать 0-1-2-3-4-999999, это должно быть быстрее чем делать лимит каждый раз
  • https://t.me/clickhouse_ru
    @unamedrus #164123 11:24 AM, 01 Jun 2020
    либо можно один раз посчитать весь запрос и выгрузить в временную таблицу и уже по ней бегать лимитом
  • вот в этом и была задумка ))
  • https://t.me/clickhouse_ru
    Можно написать global join тогда правую таблицу разошлет
  • https://t.me/clickhouse_ru
    @unamedrus #164126 11:26 AM, 01 Jun 2020
    ну временную таблицу вы можете и руками создавать, транкейтить и тд.
    не используя механизм mat view
  • https://t.me/clickhouse_ru
    по ресурсам не выходит критичной разницы, что делать global , что дублировать правую по шардам, а потом делать поверх нее Distributed?
  • https://t.me/clickhouse_ru
    нет, заранее нельзя, можно попробовать через заголовки ответа
    X-ClickHouse-Progress

    https://clickhouse.tech/docs/ru/interfaces/http/
    https://clickhouse.tech/docs/ru/operations/settings/settings/#settings-send_progress_in_http_headers
    https://clickhouse.tech/docs/ru/operations/settings/settings/#cancel-http-readonly-queries-on-client-close
    HTTP-интерфейс | Документация ClickHouse

    HTTP-интерфейс HTTP интерфейс позволяет использовать ClickHouse на любой платформе, из любого языка программирования. У

  • https://t.me/clickhouse_ru
    с дублированной дешевле. На самом деле не нужна дистрибьютид таблица для нее. Она ведь одинаковая на всех шардах.
  • https://t.me/clickhouse_ru
    спасибо
  • https://t.me/clickhouse_ru
    @dream_of_silence #164131 11:30 AM, 01 Jun 2020
    то есть если я делаю Tab1_distrib join Tab2, то сервер сджойнит каждый шардированный кусок левой таблицы с правой на соответствующем шарде?
  • https://t.me/clickhouse_ru
    Да
  • https://t.me/clickhouse_ru
    спасибо!
  • https://t.me/clickhouse_ru
    так, кажется я понял, таблицы у меня не реплицированные
    обычный MergeTree

    стоит в настройках Для шарда
    <internal_replication>true</internal_replication>
  • https://t.me/clickhouse_ru
    ну это значит, что дистрибьютед движок не будет пытаться рассылать один и тот же блок данных на реплики
  • https://t.me/clickhouse_ru
    @unamedrus #164136 11:31 AM, 01 Jun 2020
    ты ведь создал 1 шард и 2 реплики. а не 2 шарда по 1 реплике?
  • https://t.me/clickhouse_ru
    @BloodJazMan #164137 11:32 AM, 01 Jun 2020
    да, я создал один шард, две реплики...
    ок. понял, надо два шарда по 1й реплике, спасибо
  • https://t.me/clickhouse_ru
    так, попробовал 2 шарда с 1 репликой в каждом
    distributed таблица создается с ключом шардирования
    то есть часть данных должны скармливаться в MergeTree а часть данных должны складываться как DelayedDistributedFiles
    разве нет?

    вставка идет без проблем
    чтение из distributed таблицы обрывается в клиенте

    DB::NetException: Connection refused (shard-0-0:9000)
    этот хост выключен

    вроде ожидаемое поведение

    но я не понимаю, почему DistributedFilesToInsert
    все время 0
    ;(
  • https://t.me/clickhouse_ru
    skip_unavailable_shards=1 настроечка, что бы скипать недоступные шарды и не кидать эксепшен
  • https://t.me/clickhouse_ru
    @unamedrus #164140 12:04 PM, 01 Jun 2020
    а какие значения принимает test?
  • https://t.me/clickhouse_ru
    ну как и положено нечетные
    SELECT * FROM default.test LIMIT 10;

    ┌──────────event_time─┬─test─┐
    │ 2020-06-01 11:53:50 │ 1 │
    │ 2020-06-01 11:53:50 │ 3 │
    │ 2020-06-01 11:53:50 │ 5 │
    │ 2020-06-01 11:53:50 │ 7 │
    │ 2020-06-01 11:53:50 │ 9 │
    │ 2020-06-01 11:53:50 │ 11 │
    │ 2020-06-01 11:53:50 │ 13 │
    │ 2020-06-01 11:53:50 │ 15 │
    │ 2020-06-01 11:53:50 │ 17 │
    │ 2020-06-01 11:53:50 │ 19 │
    └─────────────────────┴──────┘
  • https://t.me/clickhouse_ru
    и папка /data/default/d_test/ пустая?
  • https://t.me/clickhouse_ru
    @BloodJazMan #164143 12:11 PM, 01 Jun 2020
    так

    очень интересно
    SELECT
    event_time,
    CurrentMetric_DistributedFilesToInsert
    FROM system.metric_log
    WHERE CurrentMetric_DistributedFilesToInsert > 0

    ┌──────────event_time─┬─CurrentMetric_DistributedFilesToInsert─┐
    │ 2020-06-01 12:02:42 │ 350 │
    │ 2020-06-01 12:06:13 │ 137 │
    └─────────────────────┴────────────────────────────────────────┘

    оно значит не все время 0
  • https://t.me/clickhouse_ru
    ну это возможно те файлики, что вставлялись в живой шард
  • https://t.me/clickhouse_ru
    @BloodJazMan #164145 12:13 PM, 01 Jun 2020
    нет, сейчас папка не пустая...
    но при этом gauge показывает 0
    я не понимаю
  • https://t.me/clickhouse_ru
    нет, шард не мог подняться, вставка начинается строго после того как первый шард гасится
  • https://t.me/clickhouse_ru
    ну я имею в виду локальный шард
  • https://t.me/clickhouse_ru
    @unamedrus #164148 12:14 PM, 01 Jun 2020
    он же тоже через дистрибьютед вставляется
  • https://t.me/clickhouse_ru
    @BloodJazMan #164149 12:15 PM, 01 Jun 2020
    там 471 .bin файл лежит

    ls -la /var/lib/clickhouse/data/default/test_distr/default\@chi%2Dtest%2Dcluster%2Dfor%2Dalerts%2Ddefault%2D0%2D0\:9000/ | wc -l
    471
  • https://t.me/clickhouse_ru
    @BloodJazMan #164150 12:15 PM, 01 Jun 2020
    выглядит как баг в метрике
  • https://t.me/clickhouse_ru
    @tyraello #164151 12:50 PM, 01 Jun 2020
    Joined.
  • @460254773 #164152 12:51 PM, 01 Jun 2020
    всем привет!
    возможно кто то сталкивался
    на прошлой неделе обновили мускул до 8 версии
    не знаю точно ли с обновлением связано но
    обнаружили что внешние словари странно теперь себя ведут

    2020.05.29 04:23:19.459080 [ 53376 ] {} <Error> ExternalDictionariesLoader: Could not update external dictionary 'g_hits_1', leaving the previous version, next update is scheduled at 2020-05-29 04:23:34: Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = Exception: Connections to all replicas failed: database@mysql_host:3306 as user clickhouse, Stack trace (when copying this message, always include the lines below)

    при неудачно попытке обновление шедулится но так и не выполняется и словари протухают
    если выполнить SYSTEM RELOAD DICTIONARIES обновится и сразу фризится, повторных попыток нет
    ClickHouse server version 20.3.8 revision 54433
  • @fliperzero #164153 01:08 PM, 01 Jun 2020
    Всем доброго дня! Ставлю параметр в КЛ "set optimize_move_to_prewhere = 0;" проверяю "select name,value from system.settings;" стоит, но запрос все еще не работает, делаю рестарт, сбрасывается снова в "1", прописываю через config.xml "<optimize_move_to_prewhere>0</optimize_move_to_prewhere>" рестартую, ноль реакции. Server v20.4 client 20.4
    Кто знает, кто сталкивался посоветуйте, что не так, пожалуйста
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #164153 #164154 01:19 PM, 01 Jun 2020
    optimize_move_to_prewhere - нужно прописывать в users.xml
  • https://t.me/clickhouse_ru
    @387452444 #164155 01:34 PM, 01 Jun 2020
    кстати был помню разговор перенести все конфиги в system таблицы, чего-то решили с этим в итоге ?
  • нет, не помогла, может еще есть варианты?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #164156 #164157 01:45 PM, 01 Jun 2020
    В профиль прописали? У
    юзера точно тот профиль в который прописали?
  • @fliperzero #164160 01:50 PM, 01 Jun 2020
    секунду)
  • https://t.me/clickhouse_ru
    а что написано в select ? Как пачки формируются?
  • https://t.me/clickhouse_ru
    ну а как вы думаете лимит, оффсет работают? они скроллируют сквозь себя записи, невозможно спустится сразу в 7620000

    запоминать макс id (PK), и спользовать его в where ?

    решения зависит от того зачем вам это нужно
  • https://t.me/clickhouse_ru
    а зачем? репликация обычно 1,2 сек, т.е. какая разница, из какой реплики выбирать?
  • https://t.me/clickhouse_ru
    например если опустить макрос {shard} в zk path , то таблица будет реплицирована на все ноды (будет один шард), ну и можно задать хоть 100 конфигураций, и наделать 10005000 макросов
  • https://t.me/clickhouse_ru
    У меня несколько этапов расчета. На первом считается куча формул в разных разрезах (разные group by) и результаты вставляются в локальные таблицы. Различные разрезы при этом запускаются на различных репликах. А потом второй этап расчета - также запускается на всех нодах, но оперируют результатми первого этапа. Иногда не хватает несколько секунд, чтобы результат первого этапа зарепцилировался и тогда во второй этап попадают не все данные. При этом у меня есть возможность немного подождать. В это время гарантировано ничего вставляться нового не будет.
  • https://t.me/clickhouse_ru
    больше года, до этого выдавало DB::Exception: Illegal type Decimal(18, 3) of argument for aggregate function quantile.

    select quantile(a) from (select toDecimal128(10,18) a union all select toDecimal128(10,18))
    10.000000000000000000
  • https://t.me/clickhouse_ru
    есть кворумный инсерт, там можно ждать что n реплик вставило
  • https://t.me/clickhouse_ru
    спасибо, покопаю
  • https://t.me/clickhouse_ru
    А вообще забавная ситуация. Пытаюсь в цикле вставить одну и ту же пачку несколько раз, размер ее знаю. Свободной оперативы все меньше и меньше и она в итоге заканчивается. Запрос на вставку вызываю в цикле на питоне - скармливаю его через subprocess clickhouse-client -mn -q. Подозреваю, что клик просто не успевает освободить память
  • https://t.me/clickhouse_ru
    sum(val) as val
    FROM tmp1

    tmp1 -- это буфер инсерта (а там одна строка) настоящая таблица tmp1 вообще никогда не читается в MV
  • https://t.me/clickhouse_ru
    ничего такого тут нет, например у КХ кеш марков по умолчанию 5ГБ , поэтому надо смотреть что там у вас происходит

    мониторить select * from system.asynchronous_metrics where metric like '%MarkCacheBytes%'
    плюс мержи могут начаться и скушать пару гигабайт, и т.д.

    рекомендую добавить max_threads=1 для начала

    а что написано в select ? Как пачки формируются?
  • @qqruz #164173 03:32 PM, 01 Jun 2020
    Приветствую! Восстанавливали таблицу после смерти zookeeper'a (переводил в не реплицированную, потом обратно), через неделю clickhouse упал со словами <Error> Application: Caught exception while loading metadata: Code: 49, e.displayText() = DB::Exception: Table contains parts with adaptive and non adaptive marks, but setting enable_mixed_granularity_parts is disabled: Cannot attach table
  • @qqruz #164174 03:33 PM, 01 Jun 2020
    гранулярность, та же что и была до этого, подскажите, пожалуйста, куда посмотреть?
  • https://t.me/clickhouse_ru
    @unamedrus #164175 03:36 PM, 01 Jun 2020
    можно включить в настройках сервера?
  • https://t.me/clickhouse_ru
    @unamedrus #164176 03:36 PM, 01 Jun 2020
    уже было несколько таких человек емнип
  • https://t.me/clickhouse_ru
    INSERT INTO table2 (
    time,
    ...
    )
    SELECT
    time,
    ...
    FROM table1
    where time=XXX. Тут я знаю кол-во строк в этой пачке и пробую вставить ее в цикле.
  • @705690279 #164178 03:36 PM, 01 Jun 2020
    Подскажите, делаю бэкап таблицы для переноса, так вот несколько партиций успешно обработались, потом оставшиеся выпали с ошибкой, что Query.bin doesn't exist.
    Как можно исправить?
  • https://t.me/clickhouse_ru
    @Randomazer #164179 03:37 PM, 01 Jun 2020
    как объеденить несколько колонок в массив и потом сгруппировать в другой массив? Чтобы получился массив массивов
  • https://t.me/clickhouse_ru
    @orantius #164180 03:37 PM, 01 Jun 2020
    groupArray([a,b])
  • https://t.me/clickhouse_ru
    max_threads=1 max_block_size=10000
  • https://t.me/clickhouse_ru
    Так это какая версия ?
  • https://t.me/clickhouse_ru
    такое же поведение
  • https://t.me/clickhouse_ru
    а версия КХ ?
  • https://t.me/clickhouse_ru/164028
    min_insert_block_size*
    нужен в дополнение к max_block_size же
    【D】【J】 in ClickHouse не тормозит

    ~2500 bytes per row... все правильно, вы в доку не туда смотрели. вот эти дефолты надо менять (уменьшать). И все будет хорошо. у вас минимум по ляму строк вставка - т.е. 2.5 * 10м * 8 (мой магический фактор расфигачивания в памяти) min_insert_block_size_rows 1048576 min_insert_block_size_bytes 268435456

  • да помогло, спасибо! Я прописал пользователю, а после вашего коментария поправил на профиль и все взлетело, пасибо!
  • https://t.me/clickhouse_ru
    нет. при max_block_size=10000, по 10тыс будет вставка, тут вообще проблема возможно с новой версией КХ и другое поведение jemallok - threads. Попадаем на другой тред в тредпуле, и память отжираем для запроса, а тред который выполнял предыдущий запрос сидит курит с кучей памяти.
  • не не, я тестил вот прям седня перепроверил + дока говорит прямо
    Устанавливает минимальное количество строк в блоке, который может быть вставлен в таблицу запросом INSERT. Блоки меньшего размера склеиваются в блоки большего размера.
  • @dj_mixer #164189 04:01 PM, 01 Jun 2020
    либо врем и я и дока, но я точно не менял max_block_size, и увеличил min_insert_block_size_rows и гранулярность партов уменьшилась (у меня была обратная цель - вставлять батчами крупнее)
  • https://t.me/clickhouse_ru
    а ну да там из-за min_insert_block_size_rows Squash blocks
  • @dj_mixer #164191 04:02 PM, 01 Jun 2020
    да, вот я и написал, у Кейт 2500 байт на строку, миллион строк за раз плюс оверхед по памяти, имхо все сходится
  • https://t.me/clickhouse_ru
    это не объясняет почему памяти не хватает через несколько итераций
  • @fliperzero #164193 04:08 PM, 01 Jun 2020
    Подскажите еще пожалуйста, что может быть не так с "Received exception from server (version 20.1.3):
    Code: 306. DB::Exception: Received from 127.0.0.1:9000. DB::Exception: Stack size too large. Stack address: 0x7f4d3dfff000, frame address: 0x7f4d3e3fefe0, stack size: 4194336, maximum stack size: 8388608." запрос "SELECT * FROM table_name LIMIT 1"?
  • Да, тут вы правы, особенно при ручных вставках по 6 тыс строк
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #163997 #164195 04:17 PM, 01 Jun 2020
    А у вас движок ведь MergeTree? Не Memory?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #163997 #164196 04:18 PM, 01 Jun 2020
    И первая таблица никак не связана со второй?
  • @415821235 #164197 04:19 PM, 01 Jun 2020
    Помогите плиз возможно ли решить такой кейс:

    в БД ноды есть N-ое кол-во таблиц и N-ое кол-во распределенных представлений над ними.
    Возможно ли установить права для пользователя таким образом, чтобы пользователь видел только представления?

    Выдавать на каждую таблицу/вьюху права отдельно не представляется возможным.
  • У меня обычно мердж кикается вроде сам начинается после 4 инсерта в эту же таблицу ) может он начинает кушать память
  • https://t.me/clickhouse_ru
    первая и вторая таблица структурно одинаковы кроме поля time которое поменло тип. Между собой они не связаны никак
  • А вы можете после каждой вставки смотреть в system.merges, и если идет мердж чуток подождать? В целях эксперимента
  • https://t.me/clickhouse_ru
    table_name -- это вью которое читает само себя?
  • @fliperzero #164202 04:25 PM, 01 Jun 2020
    нет, обычная таблица с данными
  • @fliperzero #164203 04:25 PM, 01 Jun 2020
    а какая у Вас мысль?
  • https://t.me/clickhouse_ru
    create view x(A Int64) as select 1 from x;
    select * from x limit 1
    DB::Exception: Stack size too large. Stack address: 0x7ff9da37a000, frame address: 0x7ff9da777fc0, stack size: 4202560, maximum stack size: 8388608.
  • Получилось подключиться?
  • https://t.me/clickhouse_ru
    Если оставляю только селекты без втавки - тоже потихоньку выедает память и падает. Медленнее, но итог один
  • https://t.me/clickhouse_ru
    после каждого селект

    select * from system.asynchronous_metrics where metric like '%MarkCacheBytes%'
  • https://t.me/clickhouse_ru
    @SmsactivatorRu #164208 04:35 PM, 01 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    MarkCacheBytes 2783713920 и не меняется
  • @274798640 #164210 04:44 PM, 01 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    Да, спасибо
  • https://t.me/clickhouse_ru
    Тут описал
  • спасибо
  • @usermorphism #164214 05:01 PM, 01 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @406703802 #164216 05:39 PM, 01 Jun 2020
    Joined.
  • у вас селект всегда с одинаковым количеством строк?
    можете поставить
    ——
    SELECT
    time,
    ...
    FROM table1
    where time=XXX
    LIMIT 6000
    —-

    и посмотреть выедается ли память ?
  • https://t.me/clickhouse_ru
    Да у меня селект с одинаковым количеством строк, да там лимит написан. Да - память отжирается
  • А можно код посмотреть?
  • https://t.me/clickhouse_ru
    @KateGlushchenko #164221 07:46 PM, 01 Jun 2020
    Код селекта?
  • @253072124 #164222 07:46 PM, 01 Jun 2020
    Ага
  • https://t.me/clickhouse_ru
    @KateGlushchenko #164223 07:47 PM, 01 Jun 2020
    Да такой же как выше, только вместо многоточия от 100 до 150 полей
  • https://t.me/clickhouse_ru
    @KateGlushchenko #164224 07:47 PM, 01 Jun 2020
    Зачем вам это на ночь глядя, ейбогу
  • @dj_mixer #164225 07:53 PM, 01 Jun 2020
    если у вас сегодня отжирает... завтра будет у нас (
  • @dj_mixer #164226 07:53 PM, 01 Jun 2020
    какая версия кстати? или я проглядел?
  • https://t.me/clickhouse_ru
    ClickHouse server version 20.4.4 revision 54434.
  • ну хорошо, прям завтра эт у нас точно не будет...
    а вы с повторением абсолютно идентичного запроса тестировали?
    может просто данные раскиданы на большее число блоков, на том запросе который фейлится
  • https://t.me/clickhouse_ru
    @KateGlushchenko #164229 08:03 PM, 01 Jun 2020
    да - запрос идентичный. Данные в базу новые не попадают
  • @dj_mixer #164230 08:07 PM, 01 Jun 2020
    а можете 3-4 раза запустить с включенным трейс логом, только селект (set send_logs_level='trace', max_threads=1, max_block_size=5000). и посмотреть отожрется ли память на повторных запросах.
    если да - лучше тикет завести в гитхаб...
  • @dj_mixer #164231 08:08 PM, 01 Jun 2020
    ну и PeakMemoryUsage посмотреть меняются ли с ходом запросов
  • https://t.me/clickhouse_ru
    @elise_azure #164232 08:09 PM, 01 Jun 2020
    привет
    кто-нибудь может подсказать, почему при одинаковой выборке из двух таблиц, в одной из которых тип данных Enum8, а во второй LowCardinality(String), при одинаковом кол-ве прочитанных строк, прочитанных данных по объему больше в случае с Enum
    он же по идее должен быть 1байтным, а словарь 4байтным? (уникальных значений всего 6)

    Пример запроса и результатов:
    SELECT field FROM table group by field order by count()

    LowCardinality: 0.59 sec.| 215,835,807 rows.| 206 MB
    Enum8: 0.51 sec.| 215,835,967 rows.| 1 GB

    P.S. пробовал тот же трюк на других полях (тоже Enum и LowCardinality, всегда разница в объеме +- в 5 раз)
  • @burachonok #164233 08:43 PM, 01 Jun 2020
    Joined.
  • @verxotyroff #164234 08:48 PM, 01 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @nikolaiav #164235 10:17 PM, 01 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    Апну проблему. 20.4.4.18. Похожая ошибка при принудительной оптимизации партиции ( Раньше такого не наблюдалось
  • https://t.me/clickhouse_ru
    @nikolaiav #164237 10:20 PM, 01 Jun 2020
    Походу надо баг заводить :(
  • https://t.me/clickhouse_ru
    @nikolaiav #164238 10:45 PM, 01 Jun 2020
    Вскрытие показало, что без FINAL оптимизация таки работает optimize table <table> partition '2020-06-01' deduplicate
  • 02 June 2020 (225 messages)
  • https://t.me/clickhouse_ru
    сделайте tcpdump -i any port 3306 -w mysql.pcap на сервере где clickhouse
    и посмотрите что происходит с авторизацией
    это сильно похоже на то. что MySQL8 у вас с обновленным механизмом авторизации
    который возможно не реализован в clickhouse
    если не трудно заведите issue на github?
  • https://t.me/clickhouse_ru
    @855437500 #164240 07:21 AM, 02 Jun 2020
    Доброе время суток. Подскажите как принудительно завершить выполнение запроса? Делал через KILL QUERY, но вот уже как 15 минут прошло, а запрос еще висит.
  • https://t.me/clickhouse_ru
    @ne_perezvonyu #164241 07:42 AM, 02 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    KILL QUERY ... WHERE ... SYNC

    но KILL QUERY принудительно не завершает запрос, он только выставляет флажок который проверяется в треде исполнения запроса после того как очередной блок обработан, это может быть довольно долго ждать...
  • https://t.me/clickhouse_ru
    Можно грохнуть процесс в ОС. terminate
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #164243 #164244 08:26 AM, 02 Jun 2020
    А это не завалит весь CH целиком?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #164242 #164245 08:26 AM, 02 Jun 2020
    SYNC ведь просто будет держать консоль, ничего в плане более принудительной остановки он не делает?
  • https://t.me/clickhouse_ru
    @theyoshi86 #164246 08:26 AM, 02 Jun 2020
    В пятницу так сделали, были заблоченные select и DDL
  • https://t.me/clickhouse_ru
    @theyoshi86 #164247 08:27 AM, 02 Jun 2020
    Всё ок, сервер не завис и не перезапустился. Убили именно процесс который под select
  • https://t.me/clickhouse_ru
    19.15.3.6
  • https://t.me/clickhouse_ru
    @SmsactivatorRu #164249 08:29 AM, 02 Jun 2020
    Всем ПРИВЕТ !
  • https://t.me/clickhouse_ru
    SYNC делал, вот примерно 15-20 минут запрос убивался
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #164250 #164251 08:30 AM, 02 Jun 2020
    ну да, он там ждет пока запрос дойдет до точки где его можно безопасно остановить.
  • https://t.me/clickhouse_ru
    @marmer #164252 08:38 AM, 02 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    не процесс а тред
    через kill <thread_id>
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #164253 #164254 08:44 AM, 02 Jun 2020
    Это безопасно? не завалит CH целиком?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @socketpair #164256 08:46 AM, 02 Jun 2020
    дак --pidfile или --pid-file ?
  • https://t.me/clickhouse_ru
    —pid-file

    pidfile это имя
  • @CaptainObviou #164258 08:48 AM, 02 Jun 2020
    Злравствуйте ещё раз. Есть 20.3.8.53 на двух узлах. Нужны идентичные. А сейчас LTS-ами стали v20.3.10.75-lts и v20.3.9.70-lts 8-\
  • https://t.me/clickhouse_ru
    я так не делал, я всегда KILL .. SYNC ждал окончания
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @ukchuvrus #164261 08:52 AM, 02 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    Ребят, привет! А чем вот эта проблема решилась? у меня опять воспроизводится, на последней версии кликхауса
  • https://t.me/clickhouse_ru
    @ukchuvrus #164264 08:57 AM, 02 Jun 2020
    Интересно, что вся функциональсность чтение/запись/удаление по партишенам, все работает, а мутации не работают после одной успешно прошедшей мутации
  • https://t.me/clickhouse_ru
    все уперлось в зукипер и там и умерло?
  • @guram_vashakidze #164266 08:58 AM, 02 Jun 2020
    Нет с ним все было хорошо
  • @guram_vashakidze #164267 08:59 AM, 02 Jun 2020
    Все остальные запросы выполнялись без проблем
  • https://t.me/clickhouse_ru
    @ukchuvrus #164268 08:59 AM, 02 Jun 2020
    еще я пробовал переналивать таблицу идентичную
  • https://t.me/clickhouse_ru
    @ukchuvrus #164269 08:59 AM, 02 Jun 2020
    в новой таблице все работает
  • https://t.me/clickhouse_ru
    @ukchuvrus #164270 08:59 AM, 02 Jun 2020
    проблема не в данных, видимо
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #164258 #164271 09:01 AM, 02 Jun 2020
    Так а в чем проблема? Там несколько параллельных версий. Выбирай ту которая нравится и наливай.
  • @guram_vashakidze #164272 09:03 AM, 02 Jun 2020
    Была такая ситуация, тогда только появился этот функционал, запускаешь клик.сервер начинаешь работать поначалу все норм работает, удаляет поля. Но через некоторое время, все "перегревалось" и переставало работать, помогал только перезапуск. Поэтому я отказался от этих запросов и до сих пор не использую
  • https://t.me/clickhouse_ru
    @ukchuvrus #164273 09:03 AM, 02 Jun 2020
    перезапуск чего?
  • https://t.me/clickhouse_ru
    @ukchuvrus #164274 09:03 AM, 02 Jun 2020
    кликхауса?
  • @guram_vashakidze #164275 09:03 AM, 02 Jun 2020
    да
  • https://t.me/clickhouse_ru
    @ukchuvrus #164276 09:03 AM, 02 Jun 2020
    интересно
  • https://t.me/clickhouse_ru
    @ukchuvrus #164277 09:03 AM, 02 Jun 2020
    ну тогда надо баг репорт заводить
  • https://t.me/clickhouse_ru
    @ukchuvrus #164278 09:04 AM, 02 Jun 2020
    зукипер я перезапускал, проблема продолжала воспроизводиться
  • Лентяй я - не хочу искать почему минорную версию повысили. Но заповеди (работает - не трожь) - тоже важно.
  • кликхаус мы тоже вчера перезапускали, сразу после рестарта проблема тоже воспроизводится
  • если память мне не изменяет я тогда issue заводил
  • Спасибо, буду смотреть. Что интересно вручную запросом SYSTEM RELOAD DICTIONARIES обновляются
  • @dice2slice #164283 09:12 AM, 02 Jun 2020
    Добрый день. Подскажите, пожалуйста, как развернуть два массива одновременно, что бы порядковый номер значения одного массива соответствовал порядковому номеру другого?
    Есть условно ['a', 'b', 'c'] и [100,101,102], как получить
    a 100
    b 102
    c 103
    ?
  • https://t.me/clickhouse_ru
    ARRAY JOIN arr1 as a, arr2 as b
  • https://t.me/clickhouse_ru
    ой блин =) фигасе, забавно
  • https://t.me/clickhouse_ru
    это очень странно тем более... надо смотреть что там на уровне протокола
  • Спасибо, помогло!
  • https://t.me/clickhouse_ru
    Да, всё так, оговорился. Спасибо
  • https://t.me/clickhouse_ru
    @elise_azure #164290 09:53 AM, 02 Jun 2020
    попробую еще раз, мало ли:D
    кто-нибудь может подсказать, почему при одинаковой выборке из двух таблиц, в одной из которых тип данных Enum8, а во второй LowCardinality(String), при одинаковом кол-ве прочитанных строк, прочитанных данных по объему больше в случае с Enum
    он же по идее должен быть 1байтным, а словарь 4байтным? (уникальных значений всего 6)

    Пример запроса и результатов:
    SELECT field FROM table group by field order by count()

    LowCardinality: 0.59 sec.| 215,835,807 rows.| 206 MB
    Enum8: 0.51 sec.| 215,835,967 rows.| 1 GB

    P.S. пробовал тот же трюк на других полях (тоже Enum и LowCardinality, всегда разница в объеме +- в 5 раз)
  • https://t.me/clickhouse_ru
    попробуй сравнить размер колонок в system.columns
  • https://t.me/clickhouse_ru
    @lnuynxa #164292 10:00 AM, 02 Jun 2020
    SELECT CAST(field AS UInt8) FROM table group by CAST(field AS UInt8) order by count()
  • https://t.me/clickhouse_ru
    @lnuynxa #164293 10:01 AM, 02 Jun 2020
    попробуй так ради интереса
  • https://t.me/clickhouse_ru
    @elise_azure #164294 10:06 AM, 02 Jun 2020
    словари не кастятся в числа
  • https://t.me/clickhouse_ru
    @elise_azure #164295 10:06 AM, 02 Jun 2020
    размер колонок тоже проблематично сравнить, одна таблица - подмножество второй, сравниваю все по партициям, а в columns таблице нет такой возможности
  • https://t.me/clickhouse_ru
    я про enum
  • https://t.me/clickhouse_ru
    @elise_azure #164297 10:12 AM, 02 Jun 2020
    с енамом тот же результат, что и без каста
  • https://t.me/clickhouse_ru
    Есть parts_columns
  • https://t.me/clickhouse_ru
    добрый день, подскажите, как правильно полностью удалить данные о zookeeper. Были убраны все движки Replicated и удалены пути зк, сервер остался один, без реплик
    в логе -
    Coordination::Exception: All connection tries failed while connecting to ZooKeeper
    в конфиге данные о кластере и зк закоментировал
  • https://t.me/clickhouse_ru
    спасибо! пойду смотреть)
  • https://t.me/clickhouse_ru
    Рестартовали кх?
  • https://t.me/clickhouse_ru
    да, но только после того, как убрал данные из .sql , после изменения конфига не рестартовал
  • https://t.me/clickhouse_ru
    Кх не применяет изменения конфига зк без рестарта
  • https://t.me/clickhouse_ru
    понял, спасибо
  • https://t.me/clickhouse_ru
    @Sdmxx #164306 11:55 AM, 02 Jun 2020
    Всем привет, в кликхаусе есть либы для нечеткого поиска?
  • https://t.me/clickhouse_ru
    ngram индексы только есть
  • https://t.me/clickhouse_ru
    @Sdmxx #164308 11:57 AM, 02 Jun 2020
    можно статью если нетрудно?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @vadvmkn #164310 12:07 PM, 02 Jun 2020
    есть банальная таблица с (time, http_code, http_path, …)
    хочется сделать count по времени и вывести top50 http_path, какие функции у clickhouse могут помочь?
  • https://t.me/clickhouse_ru
    @aoleynik #164311 12:07 PM, 02 Jun 2020
    Привет, подскажите как лучше оргинизовать в Clickhouse хранение событий с разными параметрами? Те у них есть общая часть и у каждого что-то свое. Изначально хотелось положить различающиеся параметры в одно поле в виде json, но Clickhouse, как я понял, не позволяет делать выборки по таким колонкам.
    Нашел статью от баду, они хранят ключи и значения в массивах, а потом изгаляются и строят графики: (https://habr.com/ru/company/badoo/blog/442616/). Так принято делать? Или есть более правильные варианты?
    Разгоняем обработку событий до 1,6 миллионов в секунду

    Когда участники HighLoad++ пришли на доклад Александра Крашенинникова, они надеялись услышать про обработку 1 600 000 событий в секунду. Ожидания не оправдались… Потому что во время подготовки к...

  • @oleg_kozlyuk #164312 12:22 PM, 02 Jun 2020
    Есть тип Nested, в нем можно сделать key-value пары. Почти те же массивы, но по крайней мере со слабой гарантией консистентности: https://clickhouse.tech/docs/ru/sql-reference/data-types/nested-data-structures/nested/
    Nested | Документация ClickHouse

    Nested Nested(Name1 Type1, Name2 Type2, …) Вложенная структура данных - это как будто вложенная таблица. Параметры вложе

  • @NickNickNi #164313 12:22 PM, 02 Jun 2020
    Привет! Подскажите, есть в Clickhouse возможность ограничения размера таблицы? То есть я могу поставить для таблицы TTL, чтобы ограничить время хранения. А есть ли возможность аналогичной настройки для размера таблицы в гигабайтах?
  • https://t.me/clickhouse_ru
    @lnuynxa #164314 12:24 PM, 02 Jun 2020
    TTL это скорее пожелание, чем ограничение
  • @wateryoma #164315 12:25 PM, 02 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    позволяет, jsonExtract , парсим джейсоны в select, только работает в 1000 раз медленее чем просто колонка
  • https://t.me/clickhouse_ru
    нет такой возможности
  • https://t.me/clickhouse_ru
    Ок, а как делать правильно?) Создавать таблицу для каждого события?
  • https://t.me/clickhouse_ru
    что такое "count по времени" ?

    select count() с, http_path
    ...
    group by http_path
    order by c desc
    limit 50
  • https://t.me/clickhouse_ru
    @Melchizedek13 #164321 12:37 PM, 02 Jun 2020
    Ребят, привет.

    Хотел спросить по поводу алгоритма выполнения функции toStartOfInterval. Может быть кто-нибудь сталкивался.

    Обратил внимание, что для третьей недели сбивается группа и возвращается не первый день первой недели.

    Первый день первой недели, на сколько понимаю, должен быть 2019-12-30.

    Опять-таки, если и вернул 2019-12-23, то почему на следующих вычислениях повторяется возврат той же даты только один раз.

    Мне казалось, что правильным бы было вернуть три раза подряд 2019-12-23.
  • https://t.me/clickhouse_ru
    @Melchizedek13 #164322 12:37 PM, 02 Jun 2020
    Запрос:

    select addWeeks(toDateTime('2020-01-02 02:15:22'), number) as dttm,
    toInt8(formatDateTime(dttm, '%V')) wn,
    toStartOfInterval(dttm, interval 1 week) w1,
    toStartOfInterval(dttm, interval 2 week) w2,
    toStartOfInterval(dttm, interval 3 week) w3,
    toStartOfInterval(dttm, interval 4 week) w4
    from numbers(12)
    order by dttm
    ;
  • https://t.me/clickhouse_ru
    просто таблица с 800 колонками, там все события, всех типов
  • https://t.me/clickhouse_ru
    count по времени во временном интервале: group by t где t - например округление до минуты/часа/..
  • https://t.me/clickhouse_ru
    и что для каждого часа надо топ50?

    select count() с, http_path, toStartOfHour(time) h
    ...
    group by http_path,h
    order by h, c desc
    limit 50 by h
  • https://t.me/clickhouse_ru
    Ок поясню, строю график по времени. Нужно отсечь рандомный мусор. Сейчас отсекаю через having count > N, хочется весь отсечённый мусор показать как overs
  • не подойдет?
    group by field1…fieldn with totals
  • https://t.me/clickhouse_ru
    трехнедельный интервал начался не 30, а 23, все правильно работает
  • https://t.me/clickhouse_ru
    With totals, заценю, спасибо!
  • https://t.me/clickhouse_ru
    пипец вы обсъяняете, как будто с инопланетянами общение
    нихера не понял
  • https://t.me/clickhouse_ru
    Сорян, кинул бы sql, но не за ноутом. Спасибо!
  • https://t.me/clickhouse_ru
    Спасибо.

    Получается, что расчет интервалов начинается с 1970 года
  • https://t.me/clickhouse_ru
    @Melchizedek13 #164335 01:40 PM, 02 Jun 2020
    поэтому и значения разные могут быть.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @alexcyprus #164339 01:48 PM, 02 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @Alexpricker #164341 02:49 PM, 02 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @433217261 #164342 02:54 PM, 02 Jun 2020
    Joined.
  • @mlmdev #164343 03:34 PM, 02 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    на гитхабе? не подскажешь ссылочку? я попытался найти, но не осилил
  • @kreuzerkrieg #164345 03:44 PM, 02 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    там проблема была в кол-ве партов, в таблице было 105000 тыщ партов, и мутацию такой таблицы сделать нельзя by design
  • @n1ght_f0x #164347 03:48 PM, 02 Jun 2020
    @den_crane подскажи пожалуйста в какой величине в system.query_log поле memory_usage?
  • https://t.me/clickhouse_ru
    desc system.query_log
  • https://t.me/clickhouse_ru
    @den_crane #164349 03:49 PM, 02 Jun 2020
    аа, в байтах
  • @n1ght_f0x #164350 03:49 PM, 02 Jun 2020
    спасибо 🙂
  • https://t.me/clickhouse_ru
    @Makasinov #164351 03:51 PM, 02 Jun 2020
    Ребят привет, есть какие то уникумы, которых допустили в продакшновый кластер, а они начали делать на огромной таблице дистрибьютед запрос
    select * from db.big_table order by event_time limit 1. Без использования индексной колонки stats_day, которая служит собственно для отсечения лишних не нужных дней из базы. У кого нибудь есть экспертиза как по рукам давать таким людям в техническом плане? Прописать может чего? И куда если чего?)
  • https://t.me/clickhouse_ru
    а сколько считается много? я видел, что 10к, у меня сейчас 10.5к
  • https://t.me/clickhouse_ru
    зависит от длины имени парта
  • https://t.me/clickhouse_ru
    @den_crane #164354 03:52 PM, 02 Jun 2020
    ошибка какая в КХ, какая в ЗК ????
  • https://t.me/clickhouse_ru
    да есть возможность запретить query если не указаны определнные поля в where
  • https://t.me/clickhouse_ru
    force index by date
  • https://t.me/clickhouse_ru
    @orantius #164357 03:53 PM, 02 Jun 2020
    а также выдавать людям отдельных пользователей с лимитами на различные ресурсы.
  • https://t.me/clickhouse_ru
    @Makasinov #164358 03:54 PM, 02 Jun 2020
    Ага, я кстати беру в расчёт этот параметр как вариант
  • в ЗК ошибок нет,
    в КХ каждый раз логируется 25 Error'ов, начиная с такого:

    void Coordination::ZooKeeper::finalize(bool, bool) - 2020.06.02 16:01:50.151518 [ 3535710 ] {} <Error> void Coordination::ZooKeeper::finalize(bool, bool): Poco::Exception. Code: 1000, e.code() = 107, e.displayText() = Net Exception: Socket is not connected, Stack trace (when copying this message, always include the lines below):

    0. Poco::IOException::IOException(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x10421930 in /usr/bin/clickhouse
    1. Poco::Net::NetException::NetException(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x102dfc5d in /usr/bin/clickhouse
    2. ? @ 0x102fd743 in /usr/bin/clickhouse
    3. Poco::Net::SocketImpl::shutdown() @ 0x102f9020 in /usr/bin/clickhouse
    4. Coordination::ZooKeeper::finalize(bool, bool) @ 0xde0e130 in /usr/bin/clickhouse
    5. ? @ 0xde14de1 in /usr/bin/clickhouse
    6. ? @ 0xde0ec80 in /usr/bin/clickhouse
    7. ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0x902526b in /usr/bin/clickhouse
    8. ? @ 0x9023753 in /usr/bin/clickhouse
    9. start_thread @ 0x7ea5 in /usr/lib64/libpthread-2.17.so
    10. __clone @ 0xfe8dd in /usr/lib64/libc-2.17.so
    (version 20.4.4.18 (official build))
  • https://t.me/clickhouse_ru
    зк на отдельном хосте? диски у ЗК ssd ?
  • @767696369 #164361 04:06 PM, 02 Jun 2020
    ssd, но на тех-же хостах где КХ. нагрузка на него мизерная
  • https://t.me/clickhouse_ru
    @beast_drc #164362 04:08 PM, 02 Jun 2020
    Всем привет ) Коллеги, а проясните пожалуйста по интеграции с мускулем: https://clickhouse.tech/docs/ru/engines/table-engines/integrations/mysql/
    Я правильно понял из доки, что это штатный инструмент для перегона данных из мускуля в клик ?
    Изначально задача такая: система на мускуле получает около 20к заказов в сутки, клик выбран для хранения истории постройки различных отчетов. Но задача которую я пока не понимаю как решить это периодическое пополнение клика данными без дублирования записей. Для простоты можно считать 15-20 записей в минуту приходит в систему
    MySQL | Документация ClickHouse

    MySQL Движок MySQL позволяет выполнять запросы SELECT и INSERT над данными, хранящимися на удалённом MySQL сервере. Созд

  • https://t.me/clickhouse_ru
    чего то я потерял нить, я думал я отвечаю @ukchuvrus
  • все ок мы с ним вместе с этой проблемой разбираемся
  • https://t.me/clickhouse_ru
    ошибка в ЗК должна быть, или он вообще отвалился
  • @767696369 #164366 04:10 PM, 02 Jun 2020
    нет ничего, проверял все ноды, в логах чисто..
  • @767696369 #164367 04:12 PM, 02 Jun 2020
    2020-06-02 19:01:50,148 [myid:2] - WARN [NIOWorkerThread-20:NIOServerCnxn@373] - Close of session 0x2011cea53870008
    java.io.IOException: Len error 1709078
    at org.apache.zookeeper.server.NIOServerCnxn.readLength(NIOServerCnxn.java:541)
    at org.apache.zookeeper.server.NIOServerCnxn.doIO(NIOServerCnxn.java:332)
    at org.apache.zookeeper.server.NIOServerCnxnFactory$IOWorkRequest.doWork(NIOServerCnxnFactory.java:522)
    at org.apache.zookeeper.server.WorkerService$ScheduledWorkRequest.run(WorkerService.java:154)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
  • https://t.me/clickhouse_ru
    и это только в случае мутации?
  • https://t.me/clickhouse_ru
    @ukchuvrus #164369 04:13 PM, 02 Jun 2020
    да, а удаление, например, по партишенам - работает
  • https://t.me/clickhouse_ru
    ясно, логично
  • https://t.me/clickhouse_ru
    @den_crane #164371 04:14 PM, 02 Jun 2020
    надо смотреть что там в коде зукипера, java.io.IOException: Len error , я вообще не знаю что это и никогда не. видел такой ошибки
  • https://t.me/clickhouse_ru
    @den_crane #164372 04:14 PM, 02 Jun 2020
    у Гурама была другая
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    это я читал, 10тыс. мне кажется совсем немного
  • https://t.me/clickhouse_ru
    @den_crane #164375 04:19 PM, 02 Jun 2020
    хотя надо смотреть в зк, сколько там
  • @se_teryoshkin #164376 04:29 PM, 02 Jun 2020
    @den_crane
    Не подскажете настройки логирования, чтобы сервер перестал в логи писать пароль в открытом виде при подключении к нему по JDBC?
    Пример:
    2020.06.02 16:17:06.953423 [ 21955 ] {} <Trace> DynamicQueryHandler: Request URI: /?password=мой_пароль&database=db&extremes=0&session_id=DataGrip_2d9a5daf-9f4c-4837-83af-e01e574e938e&compress=1&user=test_usr
  • https://t.me/clickhouse_ru
    нет, в гитхабе ищите, там что-то было
  • @se_teryoshkin #164378 04:30 PM, 02 Jun 2020
    Благодарю))
  • https://t.me/clickhouse_ru
    байты
  • https://t.me/clickhouse_ru
    https://clickhouse.tech/docs/en/operations/settings/query-complexity/#max-rows-to-read
    отдельный профиль выделить для таких людей с ограничениями
    Restrictions on Query Complexity | ClickHouse Documentation

    Restrictions on Query Complexity Restrictions on query complexity are part of the settings. They are used to provide saf

  • @690692841 #164381 04:34 PM, 02 Jun 2020
    Joined.
  • @eperesadka #164382 05:01 PM, 02 Jun 2020
    кто яндекс.облаком пользуется, подскажите - пропали исторические данные по метрикам Queries в вебморде с 26ого мая, при этом сами значения уменьшились в 5-6 раз (было 18 инсертов и 260 селектов в секунду, стало 3 инсерта и 40 селектов), при этом 27ого был переход на версию 19.14 с 19.13, никто с подобным не сталкивался?
  • @eperesadka #164383 05:01 PM, 02 Jun 2020
    ну и обрыв метрик так выглядит
  • https://t.me/clickhouse_ru
    метрики случаем не в metrics_log хранятся?
  • @eperesadka #164385 05:03 PM, 02 Jun 2020
    я не знаю как в облаке это организовано, остальные метрики не задеты
  • https://t.me/clickhouse_ru
    @unamedrus #164386 05:04 PM, 02 Jun 2020
    просто при некоторых обновлениях клика, старая таблица переименовывается в metrics_log_0
    из за изменения схемы
  • https://t.me/clickhouse_ru
    @unamedrus #164387 05:04 PM, 02 Jun 2020
    лучше спросить у поддержки яндекса
  • @eperesadka #164388 05:06 PM, 02 Jun 2020
    я спрашиваю просто в разных источниках, чтобы поточнее понять, тп чаще всего в документацию посылает к сожалению
  • https://t.me/clickhouse_ru
    @lnuynxa #164389 05:07 PM, 02 Jun 2020
    кмк, что это из за обновления, просто сменился формат метрик.
  • @eperesadka #164390 05:09 PM, 02 Jun 2020
    обновление на день позже произошло, точнее, то что метрики поменялись заметили только сейчас. исторические данные только этой метрики есть начиная с 26ого мая, а обновление было 27ого мая
  • https://t.me/clickhouse_ru
    @pic_Nick77 #164391 05:31 PM, 02 Jun 2020
    Подскажите, пожалуйста, есть в КХ аналог строковых функций LPAD и RPAD?
  • https://t.me/clickhouse_ru
    с помощью repeat/concat/length можно реализовать
  • https://t.me/clickhouse_ru
    @vmaxlog #164393 06:19 PM, 02 Jun 2020
    а как сделать DETACH materialized view от таблички
  • https://t.me/clickhouse_ru
    о! спасибо за наводку!
  • https://t.me/clickhouse_ru
    я знаю ответ, вы что хотите сделать?

    оторвать навсегда? на время? переделать в TO ?
  • https://t.me/clickhouse_ru
    @den_crane #164396 06:24 PM, 02 Jun 2020
    от какой кстати таблички, от from или от to ?
  • https://t.me/clickhouse_ru
    оторвать навсегда и приатачить другую
  • https://t.me/clickhouse_ru
    входную или выходную?
  • https://t.me/clickhouse_ru
    @vmaxlog #164399 06:25 PM, 02 Jun 2020
    выходную
  • https://t.me/clickhouse_ru
    выходная явная to или неявная .inner ?
  • https://t.me/clickhouse_ru
    .inner
  • https://t.me/clickhouse_ru
    detach table MVname
    rename table ".inner.MVname" to MVname_old, somenewtable to ".inner.MVname"
    attach table MVname
  • https://t.me/clickhouse_ru
    спасибо!
  • https://t.me/clickhouse_ru
  • @v3ktor_1 #164405 06:59 PM, 02 Jun 2020
    Привет. Ребят есть такая проблема, что некоторые данные уже могут существовать, а удалить или обновить я не могу в кликхаус, я могу просто для пачки новых данных поставить sign -1? В CollapseMergeTree?
  • @v3ktor_1 #164406 06:59 PM, 02 Jun 2020
    Точнее для старых -1 а новых 1
  • @v3ktor_1 #164407 06:59 PM, 02 Jun 2020
    Судя по документации...
  • @v3ktor_1 #164408 07:01 PM, 02 Jun 2020
    Подскажите, кто-то пользовался? Нормально все?)
  • https://t.me/clickhouse_ru
    @orantius #164409 07:02 PM, 02 Jun 2020
    главное чтбы при этом старые -1 сколлапсировались с чем надо, а не с новыми +1
  • @v3ktor_1 #164410 07:05 PM, 02 Jun 2020
    Это я так понял нужно чтоб колонки были идентичны конечно и сначала писать минусовые а потом закидывать +1 и все должно быть хорошо?
  • https://t.me/clickhouse_ru
    @orantius #164411 07:08 PM, 02 Jun 2020
    чтобы что-то исчезло надо чтобы значения в ключевых колонках были одинаковые, в остальных вообще говоря не важно что будет, просто в этом случае до коллапса можно странную аналитику получать.
  • https://t.me/clickhouse_ru
    @orantius #164412 07:09 PM, 02 Jun 2020
    и на всякий случай лучше зафорсить коллапс, optimize final для партиций, например.
  • @v3ktor_1 #164413 07:09 PM, 02 Jun 2020
    Спасибо большое
  • @176504465 #164414 08:30 PM, 02 Jun 2020
    Может кто то подскозать куда заглянуть на тему Code: 306, e.displayText() = DB::Exception: Stack size too large. Stack address: 0x7f17cfeff000, frame address: 0x7f17d02ff450, stack size: 4197296, maximum stack size: 8392704 (version 20.3.5.21 (official build)) ?
  • https://t.me/clickhouse_ru
    а где и как ты такое получил то?
  • @176504465 #164416 08:33 PM, 02 Jun 2020
    ответ на попытку вставить данные с помощью smi2/phpClickHouse пачкой в 400 записей
  • https://t.me/clickhouse_ru
    @unamedrus #164417 08:34 PM, 02 Jun 2020
    что то очень странное.
    в идеале получить минимально воспроизводимый пример и на гитхаб скорее всего
  • слабо представляю как это воспроизвести, пока не сооброжу в кокую сторону поковырять (есть пару мыслей), но в целом думал может кто сталкивался с подобным
  • https://t.me/clickhouse_ru
    @unamedrus #164419 08:37 PM, 02 Jun 2020
    можно попробовать получить запрос, который формирует php драйвер(через брейкпоинты) и попробовать вставить через curl
  • https://t.me/clickhouse_ru
    @theOneJesus #164420 08:38 PM, 02 Jun 2020
    Joined.
  • @176504465 #164421 08:41 PM, 02 Jun 2020
    данные беру из rabbit и пачками по 400 записей отправляю с помощью smi2/phpClickHouse в 13 таблиц раз в минуту, на 2 из них стал получать данное сообщение, помню что ClickHouse не очень любит частые мелкие вставки, может это быть связанно?
  • https://t.me/clickhouse_ru
    раз в минуту для 13 таблиц это нормально
  • https://t.me/clickhouse_ru
    @unamedrus #164423 08:42 PM, 02 Jun 2020
    про те таблицы на которых падает можешь сказать, что нибудь?
  • https://t.me/clickhouse_ru
    @unamedrus #164424 08:43 PM, 02 Jun 2020
    очень широкие и тд?
  • https://t.me/clickhouse_ru
    @k0st1an #164425 08:45 PM, 02 Jun 2020
    подскажите в чем может быть проблема при запросе CREATE DATABASE db42 ON CLUSTER jake вываливается с ошибкой Watching task /clickhouse/task_queue/ddl/query-0000001147 is executing longer than distributed_ddl_task_timeout (=180) seconds. There are 3 unfinished hosts (0 of them are currently active), they are going to execute the query in background.. Кластеров много, много шардов и по две реплики в шарде. Но именно в кластере jake три шарда и по одной реплике. На всех хостах конфигурация одинаковая (я про конфиги). Доступ к ZK есть со всех хостов (проверял через telnet). В ZK создается запись о DDL запросе. Но сам запрос не работает не на одном хосте кластера. Проверил как остальные кластеры и там запрос работает. Может кто подскажет?
  • не на столько что бы уж большие, есть пару колонок с большим количеством текста от которых надо избавиться,
    но есть подозрение что это просто мои кривые руки пытаются в консьюмере отправить всю очередь в 12к сообщений вместо 400
  • https://t.me/clickhouse_ru
    ну это не должно быть проблемой на самом деле 12к, 400 штук
  • @176504465 #164428 08:47 PM, 02 Jun 2020
    @unamedrus в любом случае спасибо за мысли
  • https://t.me/clickhouse_ru
    @unamedrus #164429 08:47 PM, 02 Jun 2020
    тут проблема где то в другом месте
  • https://t.me/clickhouse_ru
    конфиг кластера такой

    <yandex>
    <remote_servers>
    <jake>
    <shard>
    <internal_replication>true</internal_replication>
    <replica>
    <host>ch1.domain.net</host>
    <port>9000</port>
    </replica>
    </shard>
    <shard>
    <internal_replication>true</internal_replication>
    <replica>
    <host>ch2.domain.net</host>
    <port>9000</port>
    </replica>
    </shard>
    <shard>
    <internal_replication>true</internal_replication>
    <replica>
    <host>ch3.domain.net</host>
    <port>9000</port>
    </replica>
    </shard>
    </jake>
    </remote_servers>
    </yandex>
  • https://t.me/clickhouse_ru
    a например ch1.domain.net что думает про свое имя? hostname -f ?
  • https://t.me/clickhouse_ru
    @k0st1an #164432 08:51 PM, 02 Jun 2020
    пингует 127..
  • вы правы, все же консюмер пытается отправить только 400, отключил все таблицы но эти таблицы продложают выдавать то же саммое, на них так же есть материализованные представления, возможно что то там не нравится
  • https://t.me/clickhouse_ru
    можно показать запрос мат вью?
  • https://t.me/clickhouse_ru
    что то упаскаю я. это как то влияет, то есть когда хост сам себя пингует по своему имени 127? другие хосты в кластере его пингуют без проблем
  • CREATE MATERIALIZED VIEW reports.daily_events_ad_impression TO reports.daily_events
    AS SELECT
    1 as id,
    mautic_id,
    dictGetInt32('leads', 'allmedx_lead_id', toUInt64(mautic_id)) as allmedx_id,
    assumeNotNull(name) as event_name,
    'Ad Impression' as event_type,
    if(isNotNull(query) AND query!='', CONCAT('Term: ', query), '') as event_data,
    date_hit as event_date,
    request_url as link,
    '' as platform,
    npi
    FROM (
    SELECT
    dictGetInt32('site_user_info', 'npi', toUInt64(user_id)) as npi_a,
    dictGetInt32('leads', 'npi', toUInt64(mautic_id)) as npi_m,
    IF(assumeNotNull(npi_m) > 0, npi_m, npi_a) as npi,
    *
    FROM mautic.revive_view
    )
  • https://t.me/clickhouse_ru
    хост на котором вы запускаете берет из того конфига что показали имена хостов, и кладет в зукипер задания, т.е. в кластере jake есть ch1.domain.net, в зукипере для него появится строчка ch1.domain.net:900 делай то, ch1.domain.net проверяет, опа мне надо сделать то , выполняет ....
  • https://t.me/clickhouse_ru
    вроде особого нет криминала.
    хотя есть словари.
    попробуй детачнуть вью и опять вставить
  • https://t.me/clickhouse_ru
    @unamedrus #164439 08:59 PM, 02 Jun 2020
    assumeNotNull(npi_m) > 0
    это проверка на положительность npi_m?
  • без изменений
  • нужны не null больше 0
  • https://t.me/clickhouse_ru
    если я правильно понял текст )) КХ обращается к адресу 127…:9000, а сам висит на другом адресе (в моем случае на внутренней сети)?
  • @176504465 #164443 09:02 PM, 02 Jun 2020
    @unamedrus получил новенькое:
    Code: 76. DB::Exception: Received from localhost:9000. DB::Exception: Cannot open file /var/lib/clickhouse/data/mautic/revive_view/1557766800_45310_45310_0_48966/revive_user_id.null.mrk, errno: 23, strerror: Too many open files in system: While executing MergeTree.
  • https://t.me/clickhouse_ru
    ну это уже другое дело.
  • @176504465 #164445 09:03 PM, 02 Jun 2020
    уже что то)
  • https://t.me/clickhouse_ru
    @unamedrus #164446 09:03 PM, 02 Jun 2020
    это всякие ulimit -u ulimit -n
  • https://t.me/clickhouse_ru
    @unamedrus #164447 09:03 PM, 02 Jun 2020
    и слишком маленькие парты почему то
  • https://t.me/clickhouse_ru
    спасибо, заработало ))
  • https://t.me/clickhouse_ru
    @unamedrus #164449 09:04 PM, 02 Jun 2020
    select database, table, count() from system.parts WHERE active GROUP BY database, table
  • дневные партации у таблицы куда представления переливают
  • спасибо, видимо с этим предеться разобраться - https://prnt.sc/ssm7ci
    Screenshot

    Captured with Lightshot

  • https://t.me/clickhouse_ru
    дневные партиции это достаточно редкий кейс
  • https://t.me/clickhouse_ru
    @den_crane #164453 09:12 PM, 02 Jun 2020
    на самом деле кол-во партов не должно влиять никак

    вот дневные, и даже часовые партиции есть на этом сервере

    lsof -p 11715|wc -l
    333

    SELECT count()
    FROM system.parts

    ┌─count()─┐
    │ 17259 │
    └─────────┘
  • https://t.me/clickhouse_ru
    @den_crane #164454 09:14 PM, 02 Jun 2020
    я думаю какая-то бага в 20.3 последних, потому что несколько раз за последние 2 недели пришли с "Too many open files" и Stack size too large
  • @176504465 #164455 09:26 PM, 02 Jun 2020
    Too many open files in system больше нет, но при вставке все то же сообщение
  • https://t.me/clickhouse_ru
    df -i /var/lib
    что выдает?
  • Filesystem Inodes IUsed IFree IUse% Mounted on
    /dev/vda1 165150720 2407595 162743125 2% /
  • @176504465 #164458 09:39 PM, 02 Jun 2020
    как оказалось кол-во столбцов я приукрасил, в одной 20 во второй 43
  • https://t.me/clickhouse_ru
    @unamedrus #164459 09:40 PM, 02 Jun 2020
    Я бы на самом деле действительно попробовал обновится, мало ли что
  • без изменений к сожалению
  • @176504465 #164461 09:44 PM, 02 Jun 2020
    Code: 306, e.displayText() = DB::Exception: Stack size too large. Stack address: 0x7f4a7afff000, frame address: 0x7f4a7b3fd640, stack size: 4204992, maximum stack size: 8392704 (version 20.4.4.18 (official build))
  • https://t.me/clickhouse_ru
    ну тогда бы вытащил SQL запрос из пхп(до этого поигрался бы с объемом батча) и начал бы мучать через curl
  • https://t.me/clickhouse_ru
    @unamedrus #164463 09:45 PM, 02 Jun 2020
    можно еще создать копию таблицы и попробовать вставлять в нее
  • @176504465 #164464 09:47 PM, 02 Jun 2020
    уже в процессе, спасибо
  • https://t.me/clickhouse_ru
    @vld_ivn #164465 09:48 PM, 02 Jun 2020
    Здравствуйте! Подскажите, кто либо запускал на macOS в вагранте docker-compose с кликхаусом? Не было проблем с прекдиванием волюма?
    clickhouse:
    image: yandex/clickhouse-server
    volumes:
    - ./var/docker/clickhouse:/var/lib/clickhouse
    ports:
    - 8124:8123
    - 9001:9000
    у меня почему-то падает контейнер
  • теперь все таблицы решили не вставлять ничего)
  • @176504465 #164467 10:51 PM, 02 Jun 2020
    все же проблема с представлением, можно ли переливать из таблиц данные в таблицу по средством MATERIALIZED VIEW … TO … и навесить еще одно представление к конечной таблицы что бы из нее переливать в другую таблицу?
  • https://t.me/clickhouse_ru
    да, можно, каскады работают

    надо во втором MV написать from либоTOтаблица_либо_inner
  • https://t.me/clickhouse_ru
    зачем у вас select from select в MV ?

    в смысле можно написать if(. (somefunc as X) > 0, X
  • https://t.me/clickhouse_ru
    @den_crane #164470 11:09 PM, 02 Jun 2020
    assumeNotNull не нужен, dictGetInt32 не может вернуть null
  • 03 June 2020 (296 messages)
  • https://t.me/clickhouse_ru
    @KateGlushchenko #164471 03:41 AM, 03 Jun 2020
    Вопрос по clickhouse-copier

    У меня есть две таблицы на одном хосте с одинаковой стуктурой
    events и events_test

    В таблицах есть поле
    _date Date MATERIALIZED toDate(time),

    По нему идет партиционирование
    ENGINE = MergeTree
    PARTITION BY toDate(_date)
    ORDER BY (time, class)
    SETTINGS index_granularity = 8192

    При попытке копирования из events в events_test :

    2020.06.03 03:33:57.506690 [ 18248 ] {} <Debug> ClusterCopier: Checking shard N1 (having a replica 127.0.0.1:9000, pull table mybase.events of cluster source_cluster) for partition '2020-06-01' existence, executing query: SELECT 1 FROM _local..read_shard_0.destination_cluster.mybase.events_test WHERE (toDate(_date) = ('2020-06-01' AS partition_key)) LIMIT 1
    2020.06.03 03:33:57.508538 [ 18248 ] {} <Error> ClusterCopier: Will retry: Code: 47, e.displayText() = DB::Exception: Missing columns: '_date'

    Это норма?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @KateGlushchenko #164473 03:47 AM, 03 Jun 2020
    Спасибо!
  • https://t.me/clickhouse_ru
    @KateGlushchenko #164474 03:54 AM, 03 Jun 2020
    когда планируется фикс?
  • https://t.me/clickhouse_ru
    @Sharptop #164475 04:22 AM, 03 Jun 2020
    а подружить clickhouse и jasperserver ни у кого не получилось? или есть какой-то другой способ прикрутить отчеты к клику
  • @1050853748 #164476 06:41 AM, 03 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @vld_ivn #164477 06:45 AM, 03 Jun 2020
    Подскажите, что делать, кликхаус ругается на права volume docker’a
    clickhouse:
    image: yandex/clickhouse-server
    volumes:
    - ./var/docker/clickhouse:/var/lib/clickhouse
    ports:
    - 8124:8123
    - 9001:9000
  • почему с точкой?
  • https://t.me/clickhouse_ru
    относительный путь.
    я заметил что у меня там права пользователя 1000:1000
  • https://t.me/clickhouse_ru
    @vld_ivn #164480 06:50 AM, 03 Jun 2020
    вот закинул в другую папку
  • @docker_ru
  • https://t.me/clickhouse_ru
    @ravlio #164485 07:13 AM, 03 Jun 2020
    Подскажите пожалуйста, будет ли для кликхауса разница (в основном интересует скорость индексации или ещё какие-то ньюансы, которые могут возникнуть), буду я делать записи в рамках примерно одинакового таймфрейма (CreatedAt записей монотонно увеличивается) или буду добавлять пачками записи, где CreatedAt будет размазан, например, сразу на год? К примеру, есть действия пользователя. Обычно они пишутся по факту возникновения. Но мне нужно записать в бд сразу все действия пользователя, сделанные за год.
  • https://t.me/clickhouse_ru
    @ravlio #164486 07:35 AM, 03 Jun 2020
    То есть особенность моего подхода в том, что я буду интенсивно записывать сразу во множество партиций, нежели в одну текущую.
  • https://t.me/clickhouse_ru
    @ukchuvrus #164487 07:46 AM, 03 Jun 2020
    Насколько я знаю, во много партиций сразу писать не очень рекомендуется, скорее всего, это будет медленнее. Кроме того, есть ограничение дефолтное на возможность записать за раз в максимум 100 партиций
  • https://t.me/clickhouse_ru
    @ravlio #164488 07:57 AM, 03 Jun 2020
    Спасибо. Надо попробовать. Одновременно 100 партиций — это, пожалуй, перебор. Но у меня особенность генератора данных — он генерит сразу все данные по одному юзеру за всю историю его сессий, пишет в бд, затем переходит к другому, из-за этого и затрагивается сразу много партиций.
  • https://t.me/clickhouse_ru
    @387452444 #164489 08:00 AM, 03 Jun 2020
    ну они не сразу а во время мержа у вас будут затронуты потому что сортировка идет по ключу следовательно надо пересортировать, ну а там зависит уже от скорости дисков, размера данных
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #164485 #164490 08:00 AM, 03 Jun 2020
    Зависит от партиционирования и ключа сортировки.
    Если данные сортированные льются, мержи будут проходить быстрее.
    Что касается партиций, если сразу льете во множество, то будет создаваться по парту на каждую партицию, это будет достаточно сильно влиять на IO.
  • https://t.me/clickhouse_ru
    @ravlio #164491 08:04 AM, 03 Jun 2020
    Интересно. Попробую ещё в самом генераторе организовать временное окно, но это сильно много памяти потребуется.
  • https://t.me/clickhouse_ru
    @387452444 #164492 08:16 AM, 03 Jun 2020
    в клике есть временные окна - buffer tables )) оттуда можно вставлять отсортированными
  • https://t.me/clickhouse_ru
    @ravlio #164493 08:30 AM, 03 Jun 2020
    Почитал, это чуть другое. Буферизировать я могу в генераторе, я это и делаю. Я имел в виду, что мне нужно в идеале писать всё во временном окне/в одной партиции, чтобы работало, как в реальности, а для этого нужно хранить все сессии всех пользоватей в памяти, что очень и очень накладно.
  • https://t.me/clickhouse_ru
    @387452444 #164494 08:54 AM, 03 Jun 2020
    вы можете вставлять в буферную таблицу в каком угодно порядке, а когда оттуда вычитываете через INSERT INTO SELECT делаете ORDER BY по ключу
  • https://t.me/clickhouse_ru
    @387452444 #164495 08:54 AM, 03 Jun 2020
    имхо это сильно проще чем делать это в генераторе
  • https://t.me/clickhouse_ru
    @387452444 #164496 08:58 AM, 03 Jun 2020
    да и в общем и целом мне кажется стоит просто попробовать вставить в клик как вам удобно - возможно что на ваших объемах / железе вы и не почувствуете разницы
  • @denserdotru #164497 09:16 AM, 03 Jun 2020
    здравствуйте, подскажите, можно ли запросить выборку из определенной партиции? мне известно примерное время, однако, при запросе
    where time='2019-06-18 16:03:18'
    оно лопатит все данные, хотя логика подсказывает, что можно искать в партиции за данный месяц
  • https://t.me/clickhouse_ru
    @nyoroon #164498 09:17 AM, 03 Jun 2020
    а какой order by/primary key у таблицы?
  • @denserdotru #164499 09:17 AM, 03 Jun 2020
    гм, не указываю при запросе, есть разница?
  • https://t.me/clickhouse_ru
    @nyoroon #164500 09:17 AM, 03 Jun 2020
    не, у самой таблицы
  • @denserdotru #164501 09:18 AM, 03 Jun 2020
    в структуре? date
  • @denserdotru #164502 09:18 AM, 03 Jun 2020
    ENGINE = MergeTree(date, (---, --, --), 8192)
  • https://t.me/clickhouse_ru
    ну поскольку у вас переход на новую версию
    то это уже новые инстансы кликхауса и поэтому у вас уже новые метрики с новыми labels показываются, не важно где это хранится

    а насчет того что показатели упали, ну это же к вашему clickhouse запросы идут
    вы их в приложении никак не можете проверить? чтобы точно знать,
    возможно эти вещи никак не связаны
  • https://t.me/clickhouse_ru
    @nyoroon #164504 09:19 AM, 03 Jun 2020
    добавляйте тогда в запрос ещё where date='2019-06-18'
  • @denserdotru #164505 09:19 AM, 03 Jun 2020
    ага, тогда оно по немувыберет :) класс. спасибо, попробую
  • https://t.me/clickhouse_ru
    @BloodJazMan #164506 09:19 AM, 03 Jun 2020
    всем привет
    кто нибудь знаком с такой метрикой как QueryPreempted ? в ClickHouse?
  • https://t.me/clickhouse_ru
    @hack3p #164507 09:21 AM, 03 Jun 2020
    Joined.
  • тут есть репутация?
  • @denserdotru #164509 09:23 AM, 03 Jun 2020
    /stat@combot
  • https://t.me/clickhouse_ru
    ей никто не пользуется
  • https://t.me/clickhouse_ru
    @igor_dia #164512 09:23 AM, 03 Jun 2020
    Всем привет! Версия v20.3.10.75-lts - это действительно LTS или всё ещё нестабильно? Несколько месяцев назад я спрашивал уже про 20 версию, тогда люди говорили, что баг на баге.
  • ну и ладно) человеку спасибо, за прозрение
  • https://t.me/clickhouse_ru
    @KateGlushchenko #164514 09:24 AM, 03 Jun 2020
    А можно узнать примерно сколько полей в таблице считается нормальным/средним для клика? насколько здоровая ситуация если в таблице 900 полей?
  • https://t.me/clickhouse_ru
    это уже близко к верхнему разумному пределу, из того что я слышал
  • https://t.me/clickhouse_ru
    @rjs45 #164516 09:44 AM, 03 Jun 2020
    Доброго всем.

    В запросе есть 22 поля, которые высчитываются как toDecimal64OrNull(column, 4)

    Очень часто при выполнении запросы возвращается ошибка
    Code: 32, e.displayText() = DB::Exception: Attempt to read after eof: Cannot parse Decimal(18, 4) from String, because value is too short (version 19.15.3.6 (official build))

    Можно ли как-то определить какое именно поле/значение ему не нравится?
    Пробовал увеличивать precision, исключать поля - всегда ошибка остается в подавляющем большинстве запросов
  • https://t.me/clickhouse_ru
    разве он не должен просто возвращать Null а не кидать exception?
  • https://t.me/clickhouse_ru
    @lnuynxa #164518 09:46 AM, 03 Jun 2020
    SELECT toDecimal64OrNull('тык', 4)

    ┌─toDecimal64OrNull('тык', 4)─┐
    │ ᴺᵁᴸᴸ │
    └─────────────────────────────┘
  • https://t.me/clickhouse_ru
    @galyamrusl #164519 09:48 AM, 03 Jun 2020
    добрый день
    не подскажите как в clickhouse написать подобную конструкцию:

    COALESCE(field1::text, '') || '_' || COALESCE(field2, '')

    спасибо
  • https://t.me/clickhouse_ru
    @lnuynxa #164520 09:51 AM, 03 Jun 2020
    COALESCE в клике есть concat тоже есть.
  • https://t.me/clickhouse_ru
    @galyamrusl #164521 09:51 AM, 03 Jun 2020
    concat(COALESCE(toString(field1), ''), '_', COALESCE(feild2, ''))
  • https://t.me/clickhouse_ru
    @galyamrusl #164522 09:51 AM, 03 Jun 2020
    вот так
  • https://t.me/clickhouse_ru
    @Leg10nna1re #164523 09:52 AM, 03 Jun 2020
    Коллеги, всем привет. Столкнулся с проблемой, есть поле в таблице Nullable(DateTime), в каком виде должна быть запись в csv для вставки значени null в это поле?
  • https://t.me/clickhouse_ru
    @387452444 #164524 09:53 AM, 03 Jun 2020
    empty field не делает null?
  • https://t.me/clickhouse_ru
    Расшифруй?
  • https://t.me/clickhouse_ru
    @387452444 #164526 09:54 AM, 03 Jun 2020
    пустое значение поля
  • https://t.me/clickhouse_ru
    @orantius #164527 09:54 AM, 03 Jun 2020
    \N ?
  • https://t.me/clickhouse_ru
    У меня после это выглядит так даныее через зпт,''
  • https://t.me/clickhouse_ru
    @387452444 #164529 09:55 AM, 03 Jun 2020
    ну имхо если ,"", то это пустая строка
  • https://t.me/clickhouse_ru
    @387452444 #164530 09:55 AM, 03 Jun 2020
    а если ,, то пустое поле
  • https://t.me/clickhouse_ru
    Вот это проконало, осталось из Oracle выгрузить в таком виде
  • https://t.me/clickhouse_ru
    @NordLuf_work #164532 10:00 AM, 03 Jun 2020
    Скажите пожалуйста, а разница в используемой памяти в 200 раз при arrayIntersect(arr, sm) и arrayCount(a -> has(sm, a), arr) это нормально?

    Синтетическсий запрос с интерсект использует 5мб, а с arrayCount - 1037мб

    select sum(len)
    from (
    select
    length(arrayIntersect(arr, sm)) as len
    -- arrayCount(a -> has(sm, a), arr) len
    from (
    select arr, range(val) as sm from (
    select range(1000) as arr
    )
    array join arr as val
    )
    )
  • https://t.me/clickhouse_ru
    Спасибо )
  • https://t.me/clickhouse_ru
    Сейчас проверю )
  • @328978263 #164535 10:30 AM, 03 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @ygrishaev #164536 10:33 AM, 03 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @ygrishaev #164537 10:34 AM, 03 Jun 2020
    Всем привет, подскажите куда копать если имею такую ошибку

    Can't OPTIMIZE by some reason
  • в error log :)

    может и сюда
    https://t.me/clickhouse_ru/95512
    Felixoid 🚜🇩🇪 in ClickHouse не тормозит

    хм... похоже, что он не может отловить "merge already in progress". Печаль. SELECT count() FROM system.merges WHERE (database = 'graphite') AND (table = 'data') AND (partition_id = '201903') ┌─count() ─┐ │ 2 │ └─────────┘

  • https://t.me/clickhouse_ru
    @387452444 #164539 10:53 AM, 03 Jun 2020
    should be - Can't OPTIMIZE FOR some reason ))
  • https://t.me/clickhouse_ru
    @igorBalashov #164540 10:54 AM, 03 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @igorBalashov #164541 10:55 AM, 03 Jun 2020
    Всем привет, почему CH может не пускать локально с того же сервака в clickhouse-client ?
    Code: 210. DB::NetException: Connection refused (localhost:8123, ::1)
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #164541 #164542 10:55 AM, 03 Jun 2020
    listen host какой?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #164541 #164543 10:55 AM, 03 Jun 2020
    netstat -natp | grep LISTEN
  • https://t.me/clickhouse_ru
    @igorBalashov #164544 10:57 AM, 03 Jun 2020
    2958
  • @Shazo_Rus #164545 10:57 AM, 03 Jun 2020
    мб localhost не localhost) мб не слушает на локальной ip, ch не запустился до конца (загружает данные о таблицах) - вариантов несколько
  • https://t.me/clickhouse_ru
    @ravlio ↶ Reply to #164514 #164546 10:57 AM, 03 Jun 2020
    Я вот тоже напроектировал себе схему, там не 900 колонок, но около 400. В общем, надо загонять данные и тестить, только так. По занимаемому месту, по скорости запросов.
  • https://t.me/clickhouse_ru
    @AndreyZuroff #164547 11:01 AM, 03 Jun 2020
    Joined.
  • @v3ktor_1 #164548 11:15 AM, 03 Jun 2020
    так в кликхаусе можно делать delete и update! :))
  • https://t.me/clickhouse_ru
    @dbalashov #164549 11:15 AM, 03 Jun 2020
    я тестил с ~250 колонками, никакой особой разницы когда их было 16
  • @v3ktor_1 #164550 11:15 AM, 03 Jun 2020
    правда примари ключи не апдейтятся, ну то не беда)
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #164548 #164551 11:20 AM, 03 Jun 2020
    ну тока перед этим надо оттеститься на данных +/- prod, чтоб понимать как быстро они будут работать и как себя будут чувствовать хосты во время их применения. А в остальном да, можно 😄
  • @v3ktor_1 #164552 11:20 AM, 03 Jun 2020
    да вот гоняю вроде норм все
  • @v3ktor_1 #164553 11:21 AM, 03 Jun 2020
    как же это облегчило мне жизнь)
  • @v3ktor_1 #164554 11:21 AM, 03 Jun 2020
    кучу кода не нужно писать)
  • https://t.me/clickhouse_ru
    @vulgarnykarlson #164555 11:22 AM, 03 Jun 2020
    Всем привет, нужно сделать выборку для гистограммы с группировкой по диапозону от выбранного 0 до выбранного прайса ( сложить все X ) , и пока не приложу ума как это сделать
    Запрос такого типа
    SELECT price,
    count() as x
    FROM table
    GROUP BY price
    ORDER BY price ASC
  • https://t.me/clickhouse_ru
    Это админстративные операции. их нельзя использовать как замену update/delete
  • https://t.me/clickhouse_ru
    @HekuToc #164557 11:22 AM, 03 Jun 2020
    Привет! Есть масивы собранные groupUniqArray как можно сделать группировку по ним, если важен набор элеменов в масиве, а не их порядок. Не вижу, как посортировать перед группировокой в массив?
  • они как то не так удаляют?)
  • @v3ktor_1 #164559 11:23 AM, 03 Jun 2020
    в смысле, могут удалить что то не то?)
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #164553 #164560 11:23 AM, 03 Jun 2020
    Объемы, главное объемы и IO промониторьте.
    Работают они сильно иначе чем привычные update/delete в реляционных бд.
    Там происходит полная перезапись всех затронутых данных.
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #164558 #164561 11:23 AM, 03 Jun 2020
    именно
  • https://t.me/clickhouse_ru
    Во втором случае в лямбду передается размноженная копия массива sm
  • @v3ktor_1 #164563 11:24 AM, 03 Jun 2020
    @rheinx @den_crane спасибо
  • https://t.me/clickhouse_ru
    В лямюду передаётся копия массива, а не ссылка на него? Грустно. Так во всех лямбдах происходит?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #164554 #164565 11:25 AM, 03 Jun 2020
    в общем случае среднестатистический пользователь CH для удаления использует drop partition.
    Если нужен update/delete то обратите внимание на движки replasingmergetree/collapsingmergetree
  • https://t.me/clickhouse_ru
    да
  • у меня партишн помесячно, а данные пишутся ежедневно, я не думаю что есть смысл делать партици по дням? в день там +- 30 лямов падает записей
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #164567 #164568 11:27 AM, 03 Jun 2020
    зависит от того сколько лишнего вы можете держать и каким объемами будете удалять.
    Ну т.е. если вам удалять месяцами ок, то держите месяцами. Если нет, и надо чаще, то неделями.

    Днями может быть обратная сторона если долго хранить будете. Партиций будет много.
  • https://t.me/clickhouse_ru
    arraySort?
  • https://t.me/clickhouse_ru
    @alarin #164570 11:27 AM, 03 Jun 2020
    на 20.4. не работают словари :(
    >To execute this query it's necessary to have the grant dictGet ON

    grant выполняется но ошибка остается. Как поправить?

    Пользователь создан SQL, словарь xml на диске.
  • да вот там такая ситуация, что удалений за день может несколько, и касаться они будут только текущего дня, как лучше поступить?
  • https://t.me/clickhouse_ru
    Я так понял мне нужно идти в сторону гистограмм ? просто выборку хочу сделать для графаны
  • @v3ktor_1 #164573 11:31 AM, 03 Jun 2020
    удалить целую партицию я не могу, там куча данных
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #164571 #164574 11:31 AM, 03 Jun 2020
    CollapsingMergeTree | Документация ClickHouse

    CollapsingMergeTree Движок наследует функциональность от MergeTree и добавляет в алгоритм слияния кусков данных логику с

  • https://t.me/clickhouse_ru
    Блин. Я для отчёта выбираю события в несколько массивов по каждому юзеру по которым потом бегаю вычисляя нужные значениия. Получается каждый раз как я использую фильтерс и каунт у меня делается копия массивов. Понятно откуда у меня потребление в 250 гигов на один день. Что-то я как-то даже и не знаю что делать.
  • уже смотрел, но в таком случае все будет работать очень долго, так как количество данных может быть разное в базе и которое пришло, а судя по движку нужно быть очень точным в указании -1 and +1. Так что такой вариант ресурсозатратный, долго будут проверки идти((

    Это мне нужно будет выбрать все, посмотреть разницу, поставить метки и сделать 2 инсерта...
  • https://t.me/clickhouse_ru
    смотрите
    если все столбцы одновременно за раз вставляются, то это да. будет напрягать
    на каждый столбец условно говоря при вставке выделяются буфера для поточной записи где то мегабайт
    900 мегабайт аллокаций на каждый INSERT за раз если все столбцы
    и тоже самое при чтении. но там не так критично
    но я так понимаю что вставляете вы только часть? остальное заполняется каким то дефолтным значением?

    реального лимита на кол-во столбцов нет
  • в любом случае спасибо, сейчас буду выбирать)
  • https://t.me/clickhouse_ru
    @vulgarnykarlson #164579 11:37 AM, 03 Jun 2020
    Я так понял тут избранным помогают ?) или никто гистограммы как делать не знает ? ( чет я через чур наглею )
  • @144593339 #164580 11:39 AM, 03 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    Вопрос мутный)
  • в графане есть примеры выборок вроде
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @nvartolomei #164584 11:39 AM, 03 Jun 2020
    Не подходит?
  • https://t.me/clickhouse_ru
    @vulgarnykarlson #164585 11:40 AM, 03 Jun 2020
    Подходит, только я не понимаю как 2+2 сложить вместе с этим гуглом ( уже видел )
  • https://t.me/clickhouse_ru
    кто увидел твое сообщение, могли не знать как делать.
    кто знал как делать, мог не увидеть твое сообщение.
  • https://t.me/clickhouse_ru
    @nvartolomei #164587 11:40 AM, 03 Jun 2020
    Хотя если нужен тайм сириис то наверное не оно
  • https://t.me/clickhouse_ru
    @unamedrus #164588 11:40 AM, 03 Jun 2020
    Если вопрос не решился то можно и повторить его вечером, вдруг другие люди увидят
  • https://t.me/clickhouse_ru
    @vulgarnykarlson #164589 11:40 AM, 03 Jun 2020
    как раз таймсирис не нужен , X будет у меня Price, Y - количество которое должно увеличиваться , но никак не скакать ))
  • https://t.me/clickhouse_ru
    у тебя границы бакетов заданы?
  • https://t.me/clickhouse_ru
    @vulgarnykarlson #164591 11:42 AM, 03 Jun 2020
    Граница бакетов от 0 до price по которому идет выборка
  • https://t.me/clickhouse_ru
    @vulgarnykarlson #164592 11:43 AM, 03 Jun 2020
    Просто программируя на JS такое чувство что убью столько же времени чем найду запрос как это сделать
  • https://t.me/clickhouse_ru
    Можно регулировать max_block_size или запрос переписать
  • https://t.me/clickhouse_ru
    @NordLuf_work #164594 11:45 AM, 03 Jun 2020
    Я вот как раз думаю как переписать запрос, да. И что-то ничего не могу придумать
  • https://t.me/clickhouse_ru
    0|123456|price
    0|12|34|56|price
    все таки?
  • https://t.me/clickhouse_ru
    Просто в колонках sumIf(a>3 and a<5), sumIf(a>=5 ...
  • https://t.me/clickhouse_ru
    @unamedrus #164597 11:47 AM, 03 Jun 2020
    Combinators | ClickHouse Documentation

    Aggregate Function Combinators The name of an aggregate function can have a suffix appended to it. This changes the way

  • https://t.me/clickhouse_ru
    Это не подходит ибо значение не фиксированное для выборки ,оно равно price'у по которому идет выборка, грубо говоря countIf(price <= priceSelect)
  • https://t.me/clickhouse_ru
    ну так и подставляй в запросе?
  • https://t.me/clickhouse_ru
    @vulgarnykarlson #164600 11:52 AM, 03 Jun 2020
    Ну она лжет мне вроде как ...
    SELECT price as priceSelect,
    countIf(price <= priceSelect) as x
    FROM x
    GROUP BY price
    ORDER BY price DESC LIMIT 10
    ┌─priceSelect─┬───x─┐
    │ 0.216 │ 12 │
    │ 0.1975 │ 39 │
    │ 0.1792 │ 372 │
    │ 0.175 │ 94 │
    │ 0.15984 │ 1 │
    │ 0.158 │ 28 │
    │ 0.155 │ 6 │
    │ 0.154 │ 31 │
    │ 0.153 │ 1 │
    │ 0.152 │ 12 │
    └─────────────┴─────┘
  • https://t.me/clickhouse_ru
    X ведь только уменьшатся должен
  • @iureva #164603 11:54 AM, 03 Jun 2020
    Joined.
  • @iureva #164604 11:54 AM, 03 Jun 2020
    Добрый день.
    Можно удалять партиции напрямую через распределенную таблицу? Или надо по отдельности обращаться к каждому шарду?
  • https://t.me/clickhouse_ru
    вот с примерном стало яснее.
  • https://t.me/clickhouse_ru
    @unamedrus #164606 11:55 AM, 03 Jun 2020
    у тебя много различных цен?
  • https://t.me/clickhouse_ru
    К каждому шарду. Или on cluster
  • https://t.me/clickhouse_ru
    @vulgarnykarlson #164608 11:55 AM, 03 Jun 2020
    очень
  • https://t.me/clickhouse_ru
    @unamedrus #164609 11:56 AM, 03 Jun 2020
    это можно через arrayJoin сделать, либо через массивы
  • https://t.me/clickhouse_ru
    @unamedrus #164610 11:56 AM, 03 Jun 2020
    нарастающая сумма тебе нужна?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    много сколько?
  • https://t.me/clickhouse_ru
    SELECT count() FROM (
    SELECT DISTINCT price FROM table WHERE stats_day= today()
    )
    ┌─count()─┐
    │ 22506 │
    └─────────┘
  • https://t.me/clickhouse_ru
    @unamedrus #164614 11:58 AM, 03 Jun 2020
    нарастающую сумму можно сделать несколькими методами либо через neighbor, но значение в ней сбрасывается на каждом блоке данных.
    либо через массивы
  • https://t.me/clickhouse_ru
    @vulgarnykarlson #164615 11:59 AM, 03 Jun 2020
    И если я правильно понимаю у меня запрос просто упадет от переизбытка по памяти ?
  • https://t.me/clickhouse_ru
    @unamedrus #164616 12:00 PM, 03 Jun 2020
    на самом деле необязательно
    22506 float + столько же UInt32 как каунтер это не так страшно
  • https://t.me/clickhouse_ru
    @unamedrus #164617 12:01 PM, 03 Jun 2020
    тут самое тяжелое это будет это дело сгруппировать, те твой первый запрос кмк
  • https://t.me/clickhouse_ru
    @vulgarnykarlson #164618 12:01 PM, 03 Jun 2020
    А можно подсказать сам запрос? а то в выборке по массиву я не знаю как сделать (каюсь)
  • https://t.me/clickhouse_ru
    @unamedrus #164619 12:10 PM, 03 Jun 2020
    SELECT price, cum_sum FROM (
    SELECT
    arrayCumSum(groupArray(x)) as cum_sum,
    groupArray(priceSelect) as price
    FROM
    (SELECT price as priceSelect,
    count() as x
    FROM x
    GROUP BY price
    ORDER BY price ASC
    )) ARRAY JOIN cum_sum, price
  • https://t.me/clickhouse_ru
    @unamedrus #164620 12:10 PM, 03 Jun 2020
    типа такого
  • 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
    arrayJoin развернуть массив, тогда в лямбду будет передаваться значение а не массив, потом сверху сум / групбай
  • https://t.me/clickhouse_ru
    @AnKochem #164627 02:01 PM, 03 Jun 2020
    запускаю мутацию , мутация виснет и не выполняется, в error-логе ошибка
    Code: 393, e.displayText() = DB::Exception: There is no query, Stack trace:
    Полный трейс: https://pastebin.com/C0t1Ub8f

    Что не так?..
    Версия 19.17.8.54
    2020.06.03 13:57:35.448567 [ 4 ] {} <Error> void DB::BackgroundProcessingPool::t - 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
    а как сама мутация то выглядит?
  • https://t.me/clickhouse_ru
    @AnKochem #164629 02:04 PM, 03 Jun 2020
    ALTER TABLE active_orders
    DELETE WHERE order_id IN
    (
    SELECT DISTINCT order_id
    FROM closed_orders
    INNER JOIN
    (
    SELECT order_id
    FROM active_orders
    FINAL
    ) AS ao ON closed_orders.order_id = ao.order_id
    ORDER BY order_id ASC
    )

    Ok.

    0 rows in set. Elapsed: 0.376 sec.
  • https://t.me/clickhouse_ru
    нельзя делать select в where у мутации
  • https://t.me/clickhouse_ru
    надо сложить результат вот этого запроса

    SELECT DISTINCT order_id
    FROM closed_orders
    INNER JOIN
    (
    SELECT order_id
    FROM active_orders
    FINAL
    ) AS ao ON closed_orders.order_id = ao.order_id
    ORDER BY order_id ASC

    в таблицу, на таблицу сделать словарь и выполнить мутации where dictHas
  • https://t.me/clickhouse_ru
    Спасибо!

    Ну и костыль....
  • https://t.me/clickhouse_ru
    ахаха
  • https://t.me/clickhouse_ru
    @den_crane #164634 02:09 PM, 03 Jun 2020
    но все еще смешнее, уже и этот костыль выпилили для репликейтид таблиц
  • https://t.me/clickhouse_ru
    А, то есть для Replicated таблиц это не сработает?
  • https://t.me/clickhouse_ru
    @den_crane #164636 02:10 PM, 03 Jun 2020
    а потом добавили настройку, чтобы те кто понимает что делает могли все таки выполнить это
  • https://t.me/clickhouse_ru
    для Replicated таблиц надо добится чтобы на всех репликах словарь был полностью идентичный
  • https://t.me/clickhouse_ru
    @den_crane #164638 02:11 PM, 03 Jun 2020
    иначе результат мутации на репликах будет различным, и будет ЖОООПАААА
  • https://t.me/clickhouse_ru
    @AnKochem #164639 02:13 PM, 03 Jun 2020
    так а что, если выполнить на одном хосте, потом через zk не синхронизируется?
  • https://t.me/clickhouse_ru
    мутации выполняются на всех репликах, чтобы результат мутации не передавать по сети.
  • https://t.me/clickhouse_ru
    @alarin ↶ Reply to #164570 #164641 02:16 PM, 03 Jun 2020
    есть у кого идеи?

    у вас работают на 20.4 словари?
  • https://t.me/clickhouse_ru
    тикет вам надо заводить, вот и все идеи
  • https://t.me/clickhouse_ru
    @alarin ↶ Reply to #164642 #164643 02:17 PM, 03 Jun 2020
    эх, неужели у всех сломались в 20.4 словари
    спасибо
  • https://t.me/clickhouse_ru
    @den_crane #164644 02:17 PM, 03 Jun 2020
    словари конечно работают на 20.4
  • https://t.me/clickhouse_ru
    проблема в вашем окружении
  • https://t.me/clickhouse_ru
    @den_crane #164646 02:19 PM, 03 Jun 2020
    как пользователь создан? с каким профилем? Тикет давайте с конфигами и логами
  • https://t.me/clickhouse_ru
    @alarin #164647 02:19 PM, 03 Jun 2020
    да я понял, спасибо, соберу все данные в тикет

    пользователь мигрирован с 20.3 (sql)
  • https://t.me/clickhouse_ru
    @den_crane #164648 02:21 PM, 03 Jun 2020
    вполне возможно что никто не тестировал конфигурацию словари_через_xml + пользователь_через_create_user
  • https://t.me/clickhouse_ru
    @vadimft #164649 02:34 PM, 03 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @alarin ↶ Reply to #164648 #164650 02:53 PM, 03 Jun 2020
    да у меня была дичь со словарем. Думаю причина что файл словаря лежал в /etc/clickhouse-server а не /var/lib/clickhouse/user_files

    спасибо 🙏
  • https://t.me/clickhouse_ru
    @SergeyLossev #164651 03:01 PM, 03 Jun 2020
    Хало!

    Что за ошибка при попытке модифицировать столбец со структурой? Пытаюсь добавить ещё одно значение, а оно не добавляется

    Есть такой столбец
    src Enum16 (
    'ga' = 1,
    'ym' = 2
    )

    Пытаюсь дополнить его ещё одним значением
    ALTER TABLE test.qq MODIFY COLUMN `src` Enum16(
    'ga' = 1,
    'ym' = 2,
    'mail' = 3
    )

    Получаю ошибку
    DB::Exception: Trying to ALTER key column src (version 20.4.2.9 (official build))
  • https://t.me/clickhouse_ru
    @unamedrus #164652 03:02 PM, 03 Jun 2020
    enum учавствует в ключе либо в partition by
  • https://t.me/clickhouse_ru
    @unamedrus #164653 03:02 PM, 03 Jun 2020
    вообще я руками редактируя метаданные расширял enum который учавствует в partition by
  • https://t.me/clickhouse_ru
    Да, enum участвует в партиционировании. И что теперь делать?
  • https://t.me/clickhouse_ru
    @unamedrus #164655 03:04 PM, 03 Jun 2020
    вообще это фиксили вроде бы
  • https://t.me/clickhouse_ru
    @unamedrus #164656 03:04 PM, 03 Jun 2020
    можешь создать таблицу с расширенным enum и аттачнуть парты к ней
  • https://t.me/clickhouse_ru
    Т.е., по сути, получается - создать новую таблицу и перезалить
  • https://t.me/clickhouse_ru
    @unamedrus #164658 03:06 PM, 03 Jun 2020
    ну перезалить это INSERT SELECT долго и мучительно
  • https://t.me/clickhouse_ru
    @unamedrus #164659 03:07 PM, 03 Jun 2020
    аттачнуть парты это бесплатно почти
  • https://t.me/clickhouse_ru
    @SergeyLossev #164660 03:08 PM, 03 Jun 2020
    Т.е. делаю новую таблицу с дополненным enum-ом, а затем циклом по всем партициям в исходной таблице делаю детач из старой и аттач к новой. А MOVE partition прокатит? Или опять хзче начнется
  • https://t.me/clickhouse_ru
    @unamedrus #164661 03:11 PM, 03 Jun 2020
    из старой необязательно детачить.
    на самом деле там можно разными способами все сделать, все зависит от условий
  • https://t.me/clickhouse_ru
    @unamedrus #164662 03:11 PM, 03 Jun 2020
    ATTACH PARTITION FROM¶
  • https://t.me/clickhouse_ru
    Всмысле? Одна партиция может принадлежать нескольким таблицам?
  • https://t.me/clickhouse_ru
    @unamedrus #164664 03:14 PM, 03 Jun 2020
    нет, будут созданы хардлинки
  • https://t.me/clickhouse_ru
    @SergeyLossev #164665 03:14 PM, 03 Jun 2020
    Ок, а какие могут быть "условия"? Просто интересно, чем следует руководствоваться в каких случаях
  • https://t.me/clickhouse_ru
    @SergeyLossev #164666 03:15 PM, 03 Jun 2020
    На самом деле, нужно всего лишь расширить енум. Т.е., по-другому - старая таблица будет не нужна
  • https://t.me/clickhouse_ru
    @SergeyLossev #164667 03:16 PM, 03 Jun 2020
    Но, тем не менее, узнать о других вариантах тоже интересно
  • https://t.me/clickhouse_ru
    @unamedrus #164668 03:17 PM, 03 Jun 2020
    ну самое примитивное, допустим у вас льются записи и запросы в эту таблицу. и желательно ничего из этого не потерять
  • https://t.me/clickhouse_ru
    @unamedrus #164669 03:18 PM, 03 Jun 2020
    тогда нужно будет сделать MAT VIEW которое будет копировать вставку в новую таблицу и только потом делать attach from
  • https://t.me/clickhouse_ru
    @unamedrus #164670 03:18 PM, 03 Jun 2020
    и потом сделать RENAME TABLE tbl TO tbl_old, tbl_new TO tbl;
  • @gUnk08STUZ #164671 03:32 PM, 03 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    А в чём, вообще, разница между материализованным представлением и копией данных? Это, типа, как столбец с мутациями, только таблица?
  • https://t.me/clickhouse_ru
    Мат VIEW это триггер на инсерт, в данном конкретном случае он будет новые данные так же отправлять в другую таблицу
  • https://t.me/clickhouse_ru
    То есть, как я понимаю, последовательность действий следующая:
    1. Создаю мат вью t_new с точно такой же структурой, но с изменённым столбцом src (дополнив enum новым полем)
    2. Во всех скриптах, использующих t_old, я подменяю имя старой таблицы на новую t_new (с этого момента данные начнут литься в неё)
    3. Прохожусь циклом по старой таблице, где
    3. а) аттачу старую партицию к новой таблице t_new,
    3. б) сразу же детачу партицию из старой таблицы t_old

    Так?
  • https://t.me/clickhouse_ru
    @unamedrus #164675 04:06 PM, 03 Jun 2020
    Как бы делал я:
    1. Создают таблицу t_new
    2. Создаю mat view TO t_new SELECT * FROM t (на этом этапе новые данные льются в обе таблицы)
    3. Прохожусь циклом по старой таблице, где
    3. а) аттачу старую партицию к новой таблице t_new,
    4. RENAME TABLE t TO t_old, t_new TO t;
    5. проверка, что все работает
    6. DROP TABLE t_old;
  • https://t.me/clickhouse_ru
    @SergeyLossev #164676 04:11 PM, 03 Jun 2020
    тэкс... надо переварить. Спасибо в любом случае
  • https://t.me/clickhouse_ru
    @AnKochem #164677 04:18 PM, 03 Jun 2020
    у меня КХ мирно крутился в докере последние несколько недель, а сегодня резко перестал реагировать на запросы, в логе вижу несколько таких ошибок после старта:
    2020.06.03 16:11:08.938245 [ 1 ] {} <Error> Application: Listen [::]:9004 failed: Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = DNS error: EAI: -9 (version 20.3.10.75 (official build)). If it is an IPv6 or IPv4 address and your host has disabled IPv6 or IPv4, then consider to specify not disabled IPv4 or IPv6 address to listen in <listen_host> element of configuration file. Example for disabled IPv6: <listen_host>0.0.0.0</listen_host> . Example for disabled IPv4: <listen_host>::</listen_host>
  • https://t.me/clickhouse_ru
    @inlagdgurka #164678 04:19 PM, 03 Jun 2020
    ipv6 погашен небось, а?
  • https://t.me/clickhouse_ru
    не знаю...
  • @khrulev_kirill #164680 04:24 PM, 03 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    Что у вас прописано в listen_host?
  • https://t.me/clickhouse_ru
    у меня это дело крутится в докере, с дефолтным конфигом
    <listen_host>::1</listen_host>
    <listen_host>127.0.0.1</listen_host>
  • https://t.me/clickhouse_ru
    sysctl -r disable_ipv6 net
  • https://t.me/clickhouse_ru
    @inlagdgurka #164684 04:26 PM, 03 Jun 2020
    И вот это проверить:
    https://docs.docker.com/config/daemon/ipv6/
    Enable IPv6 support

    How to enable IPv6 support in the Docker daemon

  • https://t.me/clickhouse_ru
    Странно что в конфиге прописан локалхост, а ругается на [::]
  • https://t.me/clickhouse_ru
    Попробуйте <listen_host>0.0.0.0</listen_host>
  • https://t.me/clickhouse_ru
    @patsevanton #164687 04:32 PM, 03 Jun 2020
    Вместо ::1
  • https://t.me/clickhouse_ru
    а не, это я grep'ал.
    На самом деле эта секция вообще закомменчена
  • https://t.me/clickhouse_ru
    не помогло...
  • @176504465 #164690 04:37 PM, 03 Jun 2020
    Возможно кто то подскажет, для того что бы обьеденить массивы в SummingMergeTree можно только использовать вариант с AggregateFunction?
    CREATE … AggregateFunction(groupUniqArray,…
    INSERT … groupUniqArrayState
    SELECT … groupUniqArrayMerge`
    Или есть какие-то еще варианты?
  • https://t.me/clickhouse_ru
    И не должно. Вывело что?
  • https://t.me/clickhouse_ru
    net.ipv6.conf.all.disable_ipv6 = 0net.ipv6.conf.default.disable_ipv6 = 0net. - 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
    @inlagdgurka #164693 04:51 PM, 03 Jun 2020
    На хосте не выключено. В конфигурации докера?
    Вообще, как правильно сказали выше, если ipv6 всё равно не используется, можно просто сделать в конфиге 0.0.0.0.
  • https://t.me/clickhouse_ru
    сделал в конфиге 0.0.0.0, не помогло
  • https://t.me/clickhouse_ru
    файла /etc/docker/daemon.json нету
  • https://t.me/clickhouse_ru
    @AnKochem #164696 04:55 PM, 03 Jun 2020
    не понимаю, почему в логе Application: Listen [::]:8123 failed , хотя :: в конфиге действительно нет
  • https://t.me/clickhouse_ru
    Попробовал MOVE PARTITION - не прокатило. Пишет
    DB::Exception: Tables have different structure (version 20.4.2.9 (official build))

    В доке на эту тему сказано

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

    https://clickhouse.tech/docs/ru/sql-reference/statements/alter/#alter_move_to_table-partition

    А у меня как раз партиционирование по тому ключу, который нужно изменить

    Щас попробую аттач/детач...
    ALTER | Документация ClickHouse

    ALTER Изменение структуры таблицы. ALTER TABLE [db].name [ON CLUSTER cluster] ADD|DROP|CLEAR|COMMENT|MODIFY COLUMN ... В

  • https://t.me/clickhouse_ru
    Аттач тоже не прокатил
    DB::Exception: Tables have different structure (version 20.4.2.9 (official build))

    Какие ещё есть варианты? Инсертить че-то совсем не хочется...
  • @IvStrk #164699 05:46 PM, 03 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @ilejn #164700 06:28 PM, 03 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @vmaxlog #164701 06:38 PM, 03 Jun 2020
    здраствуйте подскажите как получить массив значений от А до Б
    например 2011 - 2020 = [2011, 2012, ... , 2020]
  • https://t.me/clickhouse_ru
    @orantius #164702 06:39 PM, 03 Jun 2020
    range, arrayMap. или даже просто range
  • https://t.me/clickhouse_ru
    много партиций?партов?
  • https://t.me/clickhouse_ru
    Я бы сказал до хрена
  • https://t.me/clickhouse_ru
    @SergeyLossev #164705 06:44 PM, 03 Jun 2020
    Всего данных почти терабайт
  • https://t.me/clickhouse_ru
    создай вторую таблицу с идентичной структурой
  • https://t.me/clickhouse_ru
    @SergeyLossev #164707 06:46 PM, 03 Jun 2020
    Изначально заморочился с енумами для того, чтобы другим аналитикам было проще пользоваться, а не держать в голове, что означает 1, что 2, что 3. Т.е. для удобного формулирования фильтров в WHERE. И всем всё было удобно до сегодняшнего дня, пока не стало ясно, что надо расширять набор значений. Не ожидал от енума такой вот подляны...
  • https://t.me/clickhouse_ru
    @SergeyLossev #164708 06:47 PM, 03 Jun 2020
    Ну и плюс места меньше занимает
  • https://t.me/clickhouse_ru
    С идентичной - в смысле с такой же, но с расширенным енумом?
  • https://t.me/clickhouse_ru
    стоп, а у тебя какие изменения были между двумя таблицами7
  • https://t.me/clickhouse_ru
    @unamedrus #164711 06:49 PM, 03 Jun 2020
    1. создай вторую таблицу
    2. аттачни туда парты
    3. DETACH TABLE t_new
    4. руками меняешь метадату новой таблицы /metadata/default/t_new и дописываешь новые значения
    5. ATTACH TABLE
  • https://t.me/clickhouse_ru
    Да особо никаких. Мне надо-то всего, чтоб у енума добавилось ещё одно значение
  • https://t.me/clickhouse_ru
    @SergeyLossev #164713 06:50 PM, 03 Jun 2020
    детачиться-то оно детачится (из старой), а вот в новую с расширенным енумом аттачиться не хочет
  • https://t.me/clickhouse_ru
    я так расширял enum сам
  • https://t.me/clickhouse_ru
    нет, таблицы полностью индентичны(не расширяй enum)
  • https://t.me/clickhouse_ru
    @unamedrus #164716 06:51 PM, 03 Jun 2020
    а потом уже будешь руками править файлы
  • https://t.me/clickhouse_ru
    @SergeyLossev #164717 06:52 PM, 03 Jun 2020
    А зачем тогда вторую таблицу делать, если у неё структура точно такая же? Может, проще мету в старой подправить?
  • https://t.me/clickhouse_ru
    просто перестраховка моя на самом деле
  • https://t.me/clickhouse_ru
    @SergeyLossev #164719 06:53 PM, 03 Jun 2020
    файлы-парты как-то надо переименовывать?
  • https://t.me/clickhouse_ru
    там есть файлик /columns.txt
    я в нем тоже расширял enum
  • https://t.me/clickhouse_ru
    @unamedrus #164721 06:53 PM, 03 Jun 2020
    ну делал это скриптом конечно
  • https://t.me/clickhouse_ru
    Т.е. тут в каждой папке надо переписать файл columns.txt?
  • https://t.me/clickhouse_ru
    @unamedrus #164723 07:02 PM, 03 Jun 2020
    да
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    тоже
  • https://t.me/clickhouse_ru
    @SergeyLossev #164726 07:07 PM, 03 Jun 2020
    И это всё, надо полагать, при остановленном сервисе
  • https://t.me/clickhouse_ru
    я думаю достаточно сделать detach таблицы
  • https://t.me/clickhouse_ru
    @unamedrus #164728 07:09 PM, 03 Jun 2020
    но из за hard link. мне кажется безопаснее будет удалить columns.txt и создать новый
  • https://t.me/clickhouse_ru
    @unamedrus #164729 07:09 PM, 03 Jun 2020
    что бы не поменять его в нормальной таблице
  • https://t.me/clickhouse_ru
    @SergeyLossev #164730 07:09 PM, 03 Jun 2020
    Разве можно таблицу отсоединить? Вроде, только части...
  • https://t.me/clickhouse_ru
    да, конечно можно
  • https://t.me/clickhouse_ru
    @unamedrus #164732 07:09 PM, 03 Jun 2020
    DETACH TABLE test.qq;
  • https://t.me/clickhouse_ru
    @unamedrus #164733 07:10 PM, 03 Jun 2020
    ClickHouse Documentation

    Miscellaneous Statements ATTACH CHECK TABLE DESCRIBE TABLE DETACH DROP EXISTS KILL OPTIMIZE RENAME SET SET ROLE TRUNCATE

  • https://t.me/clickhouse_ru
    @KonstantinSverdlov #164734 07:17 PM, 03 Jun 2020
    Привет! Подскажите, есть ли более грамотный способ извлекать значения по названию поля из строки

    key="value str" key2=123

    чем функция extract? Что-то аналогичное visitParamExtractString(params, name)
  • https://t.me/clickhouse_ru
    из JSON ? JSONExtract
  • https://t.me/clickhouse_ru
    нет, это не json, а именно "key=value через пробел" формат (в syslog такой часто выплевывают в поле message)
  • https://t.me/clickhouse_ru
    @den_crane #164737 07:45 PM, 03 Jun 2020
    For Searching in Strings | ClickHouse Documentation

    Functions for Searching in Strings The search is case-sensitive by default in all these functions. There are separate va

  • https://t.me/clickhouse_ru
    Тогда вопрос - файлы columns.txt нужно именно править или достаточно отредактировать один и раскидать его копию по всем директориям с частями?
  • https://t.me/clickhouse_ru
    @den_crane #164739 07:48 PM, 03 Jun 2020
    select extractAll ('key="value str" key2=123','key="(.*?)"')
    ┌─extractAll('key="value str" key2=123', 'key="(.*?)"')─┐
    │ ['value str'] │
    └───────────────────────────────────────────────────────┘
  • https://t.me/clickhouse_ru
    я правил каждый, но можно думаю и раскидать
  • https://t.me/clickhouse_ru
    Да, именно так и делаю. Вопрос был в том, есть ли более грамотный (быстрый) способ. Спасибо в любом случае.
  • https://t.me/clickhouse_ru
    Щас попробовал отсоединить таблицу, изменил columns.txt в нескольких папках, а остальные перенёс в /detached. Присоединяю обратно - всё завелось. Но почему-то, блин, в таблице остались не только те запчасти, которые я оставил, а и другие. Полез разбираться - выяснилось, что эти лишние он подтягивает с HDD. Совсем забыл, что у меня политика на два тома раскидывает =) Вопщем, надо будет и на втором диске то же самое делать... сколько нюансов надо учесть...
  • https://t.me/clickhouse_ru
    Changes of Enum in partition key don't work · Issue #7513 · ClickHouse/ClickHouse

    From #2667. thanks @develar CREATE TABLE report ( `product` Enum8('IU' = 1, 'WS' = 2), `machine` String, `branch` String, `build_c1` String, `build_c2` String, `buil...

  • https://t.me/clickhouse_ru
    @unamedrus #164744 07:56 PM, 03 Jun 2020
    я поэтому заменил у себя enum на low_cardinality в partition by у меня там потихоньку сотню значений так пришлось бы добавить причем сразу на неск серверах.
  • https://t.me/clickhouse_ru
    @nvartolomei #164745 07:57 PM, 03 Jun 2020
    Мы отказались от enum-ов вообще) UInt + TSV dictionary делаем
  • https://t.me/clickhouse_ru
    Полез разбираться - выяснилось, что эти лишние он подтягивает с HDD.
    вообще это знак. что возможно этот файл только для справочной информации, но фиг его знает
  • https://t.me/clickhouse_ru
    @unamedrus #164747 07:57 PM, 03 Jun 2020
    я не стал дальше углубляться в это
  • @psdimon #164748 07:59 PM, 03 Jun 2020
    Всем привет!
    Кто-нибудь пользовался http_handlers?
    У меня с ним проблема.
    Разкомментировал блок
    <http_handlers>
    <rule>
    <url>/</url>
    <methods>POST,GET</methods>
    <headers><pragma>no-cache</pragma></headers>
    <handler>
    <type>dynamic_query_handler</type>
    <query_param_name>query</query_param_name>
    </handler>
    </rule>
    <rule>
    <url>/predefined_query</url>
    <methods>POST,GET</methods>
    <handler>
    <type>predefined_query_handler</type>
    <query>SELECT * FROM system.settings</query>
    </handler>
    </rule>
    <rule>
    <handler>
    <type>static</type>
    <status>200</status>
    <content_type>text/plain; charset=UTF-8</content_type>
    <response_content>config://http_server_default_response</response_content>
    </handler>
    </rule>
    </http_handlers>

    Новая фича (/predefined_query) отрабатывает отлично, а вот стандартный HTTP интерфейс (как я понимаю за него теперь отвечает первое правило <url>/</url>) перестал работать:

    # curl 'http://localhost:8123/?query=select 123'
    curl: (52) Empty reply from server

    в логах ничего в глаза не бросилось...
    В чем может быть причина?
    p.s. ClickHouse server version 20.4.4.18 (official build)
  • https://t.me/clickhouse_ru
    Хочешь сказать, было достаточно изменить только этот файл?
    /clickhouse/metadata/test/qq.sql
  • https://t.me/clickhouse_ru
    ну если у тебя нормально подключились парты в которых ты не правил, то возможно
  • https://t.me/clickhouse_ru
    @unamedrus #164752 08:03 PM, 03 Jun 2020
    я это не проверял
  • https://t.me/clickhouse_ru
    @SergeyLossev #164753 08:04 PM, 03 Jun 2020
    Ок, понял
  • https://t.me/clickhouse_ru
    А тут, я так понял, багу они так и не закрыли?
  • https://t.me/clickhouse_ru
    это скорее фича, но нет - не закрыли
  • https://t.me/clickhouse_ru
    @Makasinov #164756 08:38 PM, 03 Jun 2020
    Всем доброй ночи. Я на маке использую контейнер с кх клиентом, подумал наверное можно маунтить файлик с query history, но не знаю где он. Можно такое провернуть вообще? И где он находится, если существует конечно же?
  • https://t.me/clickhouse_ru
    @unamedrus #164757 08:39 PM, 03 Jun 2020
    /user_home_folder/.clickhouse-client-history ?
  • https://t.me/clickhouse_ru
    @Makasinov #164758 08:40 PM, 03 Jun 2020
    Он пустой
  • https://t.me/clickhouse_ru
    @unamedrus #164759 08:42 PM, 03 Jun 2020
    ты как проверяешь?
  • https://t.me/clickhouse_ru
    @Makasinov #164760 08:42 PM, 03 Jun 2020
    Хотя возможно это пока что он пустой
  • https://t.me/clickhouse_ru
    @Makasinov #164761 08:42 PM, 03 Jun 2020
    Зашёл внутрь контейнера и там cat
  • https://t.me/clickhouse_ru
    @unamedrus #164762 08:42 PM, 03 Jun 2020
    просто возможно он пустой. потому что клиент не завершал свой процесс, что бы записать туда что то
  • https://t.me/clickhouse_ru
    @unamedrus #164763 08:43 PM, 03 Jun 2020
    а если ты выйдешь из клиента. то контейнер пересоздастся
  • https://t.me/clickhouse_ru
    @Makasinov #164764 08:43 PM, 03 Jun 2020
    Хм. Звучит логично. Интересно успеет ли он перед закрытием записать лог в файл, чтобы я его перехватил
  • https://t.me/clickhouse_ru
    @Makasinov #164765 08:45 PM, 03 Jun 2020
    Проверил вне контейнера, он должен писать по ходу сессии в файл. Интересно почему внутри контейнера он этого не делает
  • https://t.me/clickhouse_ru
    @unamedrus #164766 08:47 PM, 03 Jun 2020
    возможно это просто выключено
  • https://t.me/clickhouse_ru
    Короче, докладываю обстановку - достаточно изменить только *.sql файл в метадате. После приаттачивания таблицы обратно, файлы columns.txt обновляются значениями, взятыми из *.sql файла
  • https://t.me/clickhouse_ru
    поня, будем теперь знать, что все проверяется только сравнивая SQL файлы метаданных таблиц
  • https://t.me/clickhouse_ru
    @SergeyLossev #164769 09:18 PM, 03 Jun 2020
    Всё куда надо добавилось и раскидалось по партсам и по томам
  • https://t.me/clickhouse_ru
    @SergeyLossev #164770 09:21 PM, 03 Jun 2020
    Изменил лишь хвост в описании енумов, дописав необходимые значения в хвосте
  • https://t.me/clickhouse_ru
    @SergeyLossev #164771 09:24 PM, 03 Jun 2020
    вопщем, развлекуха на целый вечер %-)
  • @v3ktor_1 #164772 10:53 PM, 03 Jun 2020
    Подскажите пожалуйста, как в kittenhouse передать пароль или юзера бд для clickhouse при старте?
  • @1292440442 #164773 11:40 PM, 03 Jun 2020
    Joined.
  • 04 June 2020 (443 messages)
  • @kafnevod #164774 04:53 AM, 04 Jun 2020
    Добрый день, коллеги. Есть вопрос.

    Материализованные представления в ClickHouse типа
    CREATE MATERIALIZED VIEW test1 TO test AS SELECT * FROM test ORDER BY (...)
    являются удобным механизмом для ускорения выполнения запроса по выборке значений столбцов по
    которым не отсоритирована основная таблица test
    В этом случае при наличии нескольких материализованных представлений дублируюших основную
    можно выбрать при запросе подходящее мат. представление. Что на порядок ускоряет выборку, так как не сканируется вся таблица, а только часть по засечкам.

    Вопрос: а нет ли в Clickhouse механизма. когда при запросе к основной таблице ClickHouse перенаправляет запрос к мат. представлению в котором запрашиваемые столбцы входят в ключ сортировки?
  • @iureva #164775 05:53 AM, 04 Jun 2020
    Joined.
  • @iureva #164776 05:54 AM, 04 Jun 2020
    Доброе утро!
    Можно принудительно запустить процесс слияния (merge) кусков данных?
  • Вроде как команда
    OPTIMIZE
  • @iureva ↶ Reply to #164777 #164778 06:01 AM, 04 Jun 2020
    спасибо, попробую.
  • @kafnevod #164779 06:27 AM, 04 Jun 2020
    Обратите вникаие
    https://clickhouse.tech/docs/ru/sql-reference/statements/misc/#misc_operations-optimize
    Если OPTIMIZE не выполняет мёрж по любой причине, ClickHouse не оповещает об этом клиента. Чтобы включить оповещения, используйте настройку optimize_throw_if_noop.
    Документация ClickHouse

    Прочие виды запросов ATTACH CHECK TABLE DESCRIBE TABLE DETACH DROP EXISTS KILL OPTIMIZE RENAME SET SET ROLE TRUNCATE USE

  • @iureva #164780 06:34 AM, 04 Jun 2020
    да, спасибо, Алексей. Прочитал это руководство. Как раз то что надо было мне. Уже запустил оптимизацию.
    OPTIMIZE TABLE default.table FINAL;
  • https://t.me/clickhouse_ru
    @SergeyLossev #164781 06:34 AM, 04 Jun 2020
    Подскажите, плз, если кто сталкивался - какую настройку надо подкрутить, чтобы пробиться через этот таймаут?

    DB::Exception: WRITE locking attempt on "data_flat.flat_temp" has timed out! (120000ms) Possible deadlock avoided. Client should retry. (version 20.4.2.9 (official build))

    Пытаюсь детачнуть таблицу из базы, но таблица большая, и процесс затягивается
  • @iureva #164782 06:36 AM, 04 Jun 2020
    /stat@combot
  • https://t.me/clickhouse_ru
    @combot #164783 b o t 06:36 AM, 04 Jun 2020
    Total messages: 164782
  • https://t.me/clickhouse_ru
    @easya #164784 06:45 AM, 04 Jun 2020
    Господа, кто-нибудь сталкивался со следующей проблемой: нельзя выполнить запрос с GLOBAL-подзапросом из распределенной таблицы при readonly=1?
    Ошибка следующая: DB::Exception: <username>: Cannot execute query in readonly mode.

    Запрос такой:
    SELECT
    <columns>
    FROM <db>.distributed_table
    GLOBAL INNER JOIN (SELECT <colums> FROM <db>.distributed_table WHERE <clause> GROUP BY <column>) USING <columns>
    WHERE
    <clause>
    ORDER BY <column>
    Версия КХ v20.4.3.16-stable
    В 20.3.7 не проявлялось
  • https://t.me/clickhouse_ru
    @alarin #164785 07:25 AM, 04 Jun 2020
    Подскажите, почему не работает Materialised View от Materialised View?
  • https://t.me/clickhouse_ru
    @alarin ↶ Reply to #164784 #164786 07:25 AM, 04 Jun 2020
    в 20.4 вроде сильно переделали access rights, надо попробовать через Create User прав раздать
  • попробуй через SQL выдать grant юзеру на select из этой базы
  • попробуй Materialized View To на Materialized View To
  • https://t.me/clickhouse_ru
    @easya ↶ Reply to #164786 #164789 07:28 AM, 04 Jun 2020
    Хорошая мысль, попробую покопать в эту сторону
  • https://t.me/clickhouse_ru
    @alarin ↶ Reply to #164788 #164790 07:29 AM, 04 Jun 2020
    не, в смысле создать получается. MV от MV не заполняется потом
  • https://t.me/clickhouse_ru
    @alarin ↶ Reply to #164789 #164791 07:30 AM, 04 Jun 2020
    Information

    ClickHouse also supports SQL-driven workflow for managing users. ***We recommend using it.***
  • Так пробовал?
    Исходная таблица -> матвью -> таблица1 ->матвью2 -> таблица2
  • https://t.me/clickhouse_ru
    @easya ↶ Reply to #164787 #164793 07:30 AM, 04 Jun 2020
    https://clickhouse.tech/docs/ru/sql-reference/statements/grant/#grant-select
    grant select работает на уровне колонок, разрешение на доступ к базе, как я понял, все еще выдается через allow_databases в users.xml
    GRANT | Документация ClickHouse

    GRANT Присваивает привилегии пользователям или ролям ClickHouse. Назначает роли пользователям или другим ролям. Отозвать

  • https://t.me/clickhouse_ru
    @alarin ↶ Reply to #164793 #164794 07:30 AM, 04 Jun 2020
    нет, теперь пользователи хранятся по другому вообще
  • https://t.me/clickhouse_ru
    @alarin ↶ Reply to #164794 #164795 07:31 AM, 04 Jun 2020
    ну кроме админа
  • GRANT SELECT ON my_database.* WITH GRANT OPTION TO my_user
  • https://t.me/clickhouse_ru
    @easya #164797 07:31 AM, 04 Jun 2020
    и что странно, если я убираю GLOBAL, то при distributed_product_mode='allow' оно работает. Т.е. прав хватает
  • https://t.me/clickhouse_ru
    мб у вас версия не поддерживает их?
  • https://t.me/clickhouse_ru
    @alarin ↶ Reply to #164798 #164799 07:34 AM, 04 Jun 2020
    как это? :) Они создаются все ок. Просто второй MV не заполняется
  • https://t.me/clickhouse_ru
    ну каскадные МВ появились в 19.14.3.3, если у вас младше, то никак не взлетит)
  • https://t.me/clickhouse_ru
    @alarin ↶ Reply to #164800 #164801 07:35 AM, 04 Jun 2020
    20.4.

    А где почитать про каскадные MV? whats new или дока
  • https://t.me/clickhouse_ru
    Работает
  • https://t.me/clickhouse_ru
    @easya ↶ Reply to #164794 #164803 07:39 AM, 04 Jun 2020
    ну, во-первых это было бы очень странно - перефигачивать всю систему управления правами, без обратной совместимости и написания большими красными буквами, что в новом релизе все сломается (а такого в release notes для 20.4 нет)
  • https://t.me/clickhouse_ru
    @alarin ↶ Reply to #164803 #164804 07:39 AM, 04 Jun 2020
    гы, у меня при переходе 20.3 → 20.4 удалились все пользователи.
  • https://t.me/clickhouse_ru
    @nvartolomei #164805 07:40 AM, 04 Jun 2020
    Но до 19.14 надо прививается к inner а после на саму MV вроде
  • https://t.me/clickhouse_ru
    @nvartolomei #164806 07:40 AM, 04 Jun 2020
    Или наоборот
  • https://t.me/clickhouse_ru
    @easya ↶ Reply to #164796 #164807 07:40 AM, 04 Jun 2020
    я сделал SHOW GRANTS под нужным юзером, и там вот такое
    Row 6:
    ──────
    GRANTS: GRANT ALTER, CREATE DATABASE, CREATE DICTIONARY, CREATE TABLE, CREATE VIEW, DROP, INSERT, OPTIMIZE, SELECT, SHOW, SYSTEM FETCHES, SYST$M FLUSH DISTRIBUTED, SYSTEM MERGES, SYSTEM MOVES, SYSTEM REPLICATION QUEUES, SYSTEM RESTART REPLICA, SYSTEM SENDS, SYSTEM SYNC REPLICA, SYSTEM
    TTL MERGES, TRUNCATE, dictGet ON <db>.* TO <user>
    где <db> - все базы, указанные в allow_databases
    Т.е. гранты есть
  • https://t.me/clickhouse_ru
    @nvartolomei #164808 07:41 AM, 04 Jun 2020
    Если нужен пример на chained MV до 19.14 дайте знать и скину через полтора часа
  • https://t.me/clickhouse_ru
    @easya ↶ Reply to #164804 #164809 07:42 AM, 04 Jun 2020
    забавно. мы users.xml генерим ансиблом, так что не заметили. Пока заметная разница только в том, что GLOBAL-подзапросы перестали работать. Похоже это все-таки баг
  • https://t.me/clickhouse_ru
    @alarin ↶ Reply to #164809 #164810 07:43 AM, 04 Jun 2020
    так да, скорее всего баг, надо создать.

    Я про work around возможный
  • https://t.me/clickhouse_ru
    @easya ↶ Reply to #164810 #164811 07:43 AM, 04 Jun 2020
    спасибо за подсказки, в качестве workaround'а пока сработало только readonly=2 :( Что как-бы намекает на то, что тут проблема не с правами доступа, а какими-то настройками
  • https://t.me/clickhouse_ru
    @easya #164812 07:45 AM, 04 Jun 2020
    А багу заведу сейчас, да
  • https://t.me/clickhouse_ru
    @RVRcode #164813 07:54 AM, 04 Jun 2020
    Joined.
  • я делаю что то не так?)
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #164814 #164815 07:56 AM, 04 Jun 2020
    может я что-то не понял, но вот ведь в доке есть
  • @v3ktor_1 #164816 07:57 AM, 04 Jun 2020
    это про юзера от которого запустить
  • @v3ktor_1 #164817 07:58 AM, 04 Jun 2020
    и там нет вообще пароля в доках к базе
  • https://t.me/clickhouse_ru
    @erlong15 #164818 07:58 AM, 04 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164819 08:00 AM, 04 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @DimOFFFF #164820 08:00 AM, 04 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164821 08:02 AM, 04 Jun 2020
    Привет всем в этом чате.
    Есть вопрос по двум, на первый взгляд, одинаковым операциям которые дают разный результат.
    Для конструкций вида
    if(1 != count(*), max(count_in) - min(count_in), max(count_in))
    стреляют ошибки:
    > There is no supertype for types Int64, UInt64 because some of them are signed integers and some are unsigned integers, but there is no signed integer type, that can exactly represent all required unsigned integer values
    А конструкция
    minus(max(count_in), if(1 >= count(*), 0, min(count_in)))
    работает
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164822 08:02 AM, 04 Jun 2020
    Почему так?
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164823 08:02 AM, 04 Jun 2020
    Пришёл к варианту когда и первая конструкция работает, но для этого пришлось для полей IF-а явно указывать типы.
  • @vasilvasilvasilvasil #164824 08:23 AM, 04 Jun 2020
    Всем привет, подскажите, CH подходит для хранения большого массива исторических данных, с высокими требованиям надёжности? Например, истории кассовых ордеров. С учётом репликации серверов, само собой.
  • https://t.me/clickhouse_ru
    @Synoecium #164825 08:27 AM, 04 Jun 2020
    если важнее надежность, а не скорость аналитики, может что-то другое взять?
  • @androsporidae #164826 08:28 AM, 04 Jun 2020
    Joined.
  • @vasilvasilvasilvasil #164827 08:34 AM, 04 Jun 2020
    Вот пытаемся понять, т.к. все-равно планируем использовать CH для хранения трафика. По размеру выигрыш с постресом есть, это основная причина по которой хочется эти данные перелить. Стоит ли смотреть в сторону других бд, или CH в принципе может использоваться в таком кейсе.
  • https://t.me/clickhouse_ru
    if(1 != count(*), max(count_in) - min(count_in), max(count_in))
    потому что кликхаус вычисляет обе ветки If
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164829 08:38 AM, 04 Jun 2020
    А что, разве после операции вычитания может смениться тип результата?
  • https://t.me/clickhouse_ru
    @unamedrus #164830 08:42 AM, 04 Jun 2020
    max(count_in) - min(count_in)
    первый и второй аргумент UInt64 допустим
    если мы будем вычитать их друг из друга, то возможно может получится отрицательно число.
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164831 08:44 AM, 04 Jun 2020
    Ммм.
    Правильно ли я понял, что движок пытается предсказать возможные граничные условия(значения). И если тип одого из значений, предполагаемый тип, не будет совпадать с типом значения в другой ветке, происходит выброс исключения о конфликте типов?
  • @iureva #164832 08:45 AM, 04 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    select If(1=1,toUInt64(1)-toUInt64(1),toUInt64(2));
  • https://t.me/clickhouse_ru
    @unamedrus #164834 08:46 AM, 04 Jun 2020
    ну да
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164835 08:47 AM, 04 Jun 2020
    да да, я до этого уже дошёл
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164836 08:47 AM, 04 Jun 2020
    Но мне не понятно почему это обязательно нужно?
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164837 08:47 AM, 04 Jun 2020
    В какой момент происходит смена типа?
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164838 08:48 AM, 04 Jun 2020
    Если для min/max аргумент беззнаковый, значит min не может быть меньше 0.
    А значит и вычитание не перейдёт через 0.
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164839 08:48 AM, 04 Jun 2020
    разве нет ?
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164840 08:49 AM, 04 Jun 2020
    Может я чего-то не вижу или недопонимаю ?
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164841 08:50 AM, 04 Jun 2020
    Я допускаю что неоднозначность может вносить null. Но в моём конкретном случае, в наборе нет null-ов. Все значения определены.
  • https://t.me/clickhouse_ru
    ну смотри, ведь у тебя в min max могли быть и другие колонки. и могло быть так что для разных колонок min > max
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164843 08:55 AM, 04 Jun 2020
    Могли бы быть, но я оперирую двумя конкретными колонками одного типа.
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164844 08:55 AM, 04 Jun 2020
    Если бы колонки были разного типа, то никаких вопросов. Всё чётко и логично.
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164845 08:55 AM, 04 Jun 2020
    Но у меня MIN и MAX значений одной колонки.
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164846 08:56 AM, 04 Jun 2020
    С чего вдруг их разница должна иметь другой тип или MIN и MAX должны получить разный тип?
  • https://t.me/clickhouse_ru
    один кейс из довольно большого числа вариантов, ради него пилить отдельную проверку? смысл?
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164848 08:57 AM, 04 Jun 2020
    Стоп. Я не про кейсы а про строгость проверки.
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164849 08:57 AM, 04 Jun 2020
    Если есть проверка типов почему она не работает? Если работает то почему произошла смена типа?
  • https://t.me/clickhouse_ru
    @unamedrus #164850 08:59 AM, 04 Jun 2020
    UInt64 - UIn64 какой будет результирующий тип?
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164851 08:59 AM, 04 Jun 2020
    Я ожидаю UInt64
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164852 09:00 AM, 04 Jun 2020
    ПОчему тип должен смениться?
  • https://t.me/clickhouse_ru
    первый UInt64 = 10
    второй UInt64 = 10000000
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164854 09:01 AM, 04 Jun 2020
    В зависимости от языка, может быть переход к MAX для типа, или 0 или выброс исключения арифметики...
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164855 09:02 AM, 04 Jun 2020
    Если язык строго типизированный, то и тип не должен меняться.
    В лучшем случае, должно быть приведение типа результата к типу однооо из аргументов.
  • https://t.me/clickhouse_ru
    но мы же обсуждаем не язык программирования а субд.
  • https://t.me/clickhouse_ru
    @unamedrus #164857 09:04 AM, 04 Jun 2020
    если ты знаешь какой должен быть тип в результате. ты можешь явно приводить к нему
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164858 09:07 AM, 04 Jun 2020
    Да. Но СУБД написана на языке и опирается на его возможности.
    Если язык СУБД заявляет о необходимости совпадении типов, значит проверки достаточно строгие и учитывают проверки на тип.
    Я ожидаю, что при достаточно строгих проверках не должна возникать чехарда со сменой типа после выполнения арифметическх действий над значениями одного типа.
    В противном случае, если двиг БД допускает возможность смены типа после арифметических преобразований, я ожидаю что и проверки будут более лояльными.
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164859 09:07 AM, 04 Jun 2020
    Я не прав?
  • https://t.me/clickhouse_ru
    @AnKochem #164860 09:11 AM, 04 Jun 2020
    Я правильно понимаю, что DateTime64 еще не подъехал? https://clickhouse.tech/docs/ru/sql-reference/data-types/datetime64/
    DateTime64 | Документация ClickHouse

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

  • https://t.me/clickhouse_ru
    @unamedrus #164861 09:12 AM, 04 Jun 2020
    СУБД предоставляет только те возможности, что в ней реализованы.
    Скорее выглядит так, что
    UInt64 это довольно редко используемый тип,
    поэтому поведение по дефолту сделано такое, что бы в 90% случаев работало само и не было необходимости приводить типы
  • https://t.me/clickhouse_ru
    подъехал, в 20 + версиях
  • https://t.me/clickhouse_ru
    Что-то мой внутренний дотошный зануда негодует против вот такой вот "нечёткой" логики.
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164864 09:13 AM, 04 Jun 2020
    Хорошо, допустим арифметика, по какой-то причине, меняет тип.
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164865 09:14 AM, 04 Jun 2020
    Но.
    разве MIN(A) по типу не совпадает с MAX(A) ?
  • https://t.me/clickhouse_ru
    скажу больше, клик не проверяет при вставке нет будет ли переполнение типа. ты можешь вставить 10000 в UInt8 и получить там 153
  • https://t.me/clickhouse_ru
    совпадает
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164868 09:15 AM, 04 Jun 2020
    Если совпадает, то почему результат
    toUInt64(MAX(A))-toUInt64(MIN(A)) в IF-е не вызывает вопроса с типами, а MAX(A)-MIN(A) вызывает?
    MIN/MAX меняют тип?
  • https://t.me/clickhouse_ru
    нет
    UInt64 - UInt64 меняет тип
  • https://t.me/clickhouse_ru
    @unamedrus #164870 09:16 AM, 04 Jun 2020
    представь, что нет никаких min max
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164871 09:17 AM, 04 Jun 2020
    Хорошо
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164872 09:17 AM, 04 Jun 2020
    А - В
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164873 09:17 AM, 04 Jun 2020
    Но А и В одного типа
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164874 09:17 AM, 04 Jun 2020
    IF(cond, B-A,B) - это отработает
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164875 09:18 AM, 04 Jun 2020
    Чем B отличается от MAX(val)?
  • https://t.me/clickhouse_ru
    кто сказал?
  • https://t.me/clickhouse_ru
    @unamedrus #164877 09:18 AM, 04 Jun 2020
    select If(1=1,toUInt64(1)-toUInt64(1),toUInt64(2));
  • https://t.me/clickhouse_ru
    @SergeyLossev #164878 09:18 AM, 04 Jun 2020
    Ребят, какие таймауты надо выставить, чтобы запрос не отваливался?

    Попробовал устанавливать вот эти, но всё равно отваливается. Причем, за время меньшее, чем установленные значения. Т.е. ставлю 10 минут, а отваливается за 5. Таблица большая, партиций много...
  • https://t.me/clickhouse_ru
    ну, вот я проверил,
  • https://t.me/clickhouse_ru
    проверь этот запрос
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164881 09:19 AM, 04 Jun 2020
    Два значения двух колонок одного типа одной строки
  • https://t.me/clickhouse_ru
    Вначале отваливалось по дедлоку. Увеличил lock_acquire_timeout - по этой ошибке перестало отваливаться, но стало отваливаться по чему-то другому
  • https://t.me/clickhouse_ru
    300 таймаут это сильно похоже на дефолтный
  • https://t.me/clickhouse_ru
    There is no supertype for types Int64,
  • https://t.me/clickhouse_ru
    >IF(cond, B-A,B) - это отработает
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164886 09:20 AM, 04 Jun 2020
    Но почему?
  • https://t.me/clickhouse_ru
    Да, дефолтный 300. Я ставлю 600, но всё равно не хочет
  • https://t.me/clickhouse_ru
    Вычитание меняет тип?
  • https://t.me/clickhouse_ru
    расширяет его
  • https://t.me/clickhouse_ru
    @unamedrus #164890 09:21 AM, 04 Jun 2020
    иначе на каждое вычитание тебе бы пришлось приводить типы
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164891 09:21 AM, 04 Jun 2020
    Кккак это? Зачем это?
  • https://t.me/clickhouse_ru
    Ок.
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164893 09:22 AM, 04 Jun 2020
    Значит, арифметика расширяет типы а операторы IF-а нет ?
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164894 09:22 AM, 04 Jun 2020
    ПОчему?
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164895 09:22 AM, 04 Jun 2020
    И почему расширение типа происходит всегда а не только в случаях перехода через границы?
  • https://t.me/clickhouse_ru
    ты не можешь расширить тип в одной row и не расширить его в другой
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164897 09:25 AM, 04 Jun 2020
    нет, всё равно, на мой взгляд это не чёткая логика.
    Сравнения проводить с точностью до типа а арифметике позволять расширять типы...
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164898 09:25 AM, 04 Jun 2020
    Такое себе
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164899 09:25 AM, 04 Jun 2020
    Только лишние вопросы вызывает и раскладывает грабли
  • https://t.me/clickhouse_ru
    @AnKochem #164900 09:26 AM, 04 Jun 2020
    Подскажите, пожалуйста,
    как удалить Replicated таблицу, если по какой-то причине в зукипере ее нет ?
  • https://t.me/clickhouse_ru
    @unamedrus #164901 09:27 AM, 04 Jun 2020
    >Сравнения проводить с точностью до типа
    Никто не сравнивает оба значения, просто есть проверка что бы все ветки If можно хранить в зарезервированном типе данных для этой колонки
  • https://t.me/clickhouse_ru
    DROP TABLE не работает?
  • https://t.me/clickhouse_ru
    DB::Exception: Can't drop readonly replicated table (need to drop data in ZooKeeper as well).
  • https://t.me/clickhouse_ru
    @galyamrusl #164904 09:28 AM, 04 Jun 2020
    Добрый день
    на dev под default пользователем ALTER TABLE table1 UPDATE работает
    а на prod под != default пользователем выдает
    Not enough privileges. To execute this query it's necessary to have the grant ALTER UPDATE
    спасибо
  • https://t.me/clickhouse_ru
    DETACH TABLE и ручками подчистить метадату и в папке с датой
  • https://t.me/clickhouse_ru
    @AnKochem #164906 09:28 AM, 04 Jun 2020
    спасибо
  • https://t.me/clickhouse_ru
    @unamedrus #164907 09:28 AM, 04 Jun 2020
    если точно ничего не осталось в зуукипере
  • https://t.me/clickhouse_ru
    @unamedrus #164908 09:28 AM, 04 Jun 2020
    что бы потом не вылезло
  • https://t.me/clickhouse_ru
    Немного отвлечённый тогда вопрос.
    А как этот IF определяет тип для последующего резервирования? Опять на основании проверки совпадения типов граничных значений?
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164910 09:30 AM, 04 Jun 2020
    И сюда же.
    Зачем арифметическим операциям всегда проводить расширение типа? Почему не делать расширение типа только тогда, когда это нужно, а именно: в случае когда аргументы имеют разный тип ?
  • https://t.me/clickhouse_ru
    скорее всего вычисляет типы для обоих веток и потом смотрит есть ли для них супертип
  • https://t.me/clickhouse_ru
    @unamedrus #164913 09:30 AM, 04 Jun 2020
    >Почему не делать расширение типа только тогда, когда это нужно, а именно: в случае когда аргументы имеют разный тип
    я на примере с вычитанием показал, что расширение может понадобится даже если тип один!
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164914 09:32 AM, 04 Jun 2020
    Почему плюсы, Java, питон этого не делают?
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164915 09:32 AM, 04 Jun 2020
    Хотя...
    Это уже в дебри.
  • https://t.me/clickhouse_ru
    потому что ЯП != субд
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164917 09:33 AM, 04 Jun 2020
    Ладно, я запомню для себя, что арифметика расширяет тип и в IF с арифметикой, лучше явно приводить типы
  • они делают, они автокастят... не вижу зла
  • https://t.me/clickhouse_ru
    Вот вот, автокаст. Но он не только для арифметики.
  • https://t.me/clickhouse_ru
    @unamedrus #164920 09:34 AM, 04 Jun 2020
    кликхаус не автокастит емнип
  • @dj_mixer #164921 09:34 AM, 04 Jun 2020
    в базах по другому, во всех базах есть утвержденные implicit автокасты и определяют в каких функциях их можно применять а где нельзя...
  • https://t.me/clickhouse_ru
    @unamedrus #164922 09:34 AM, 04 Jun 2020
    у него есть перегрузки функций для всех типов
  • @dj_mixer #164923 09:34 AM, 04 Jun 2020
    чем больше разрешить - тем больше потом отлавливать гейзенбаги
  • https://t.me/clickhouse_ru
    @vladislav_sakun #164924 09:36 AM, 04 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164925 09:36 AM, 04 Jun 2020
    Ладно. Всем спасибо, я пойду дальше этот кактус грызть.
    Запишу свой случай в разряд фич пока не докопаюсь до самой сути.
  • @dj_mixer #164926 09:36 AM, 04 Jun 2020
    представьте у вас
    select If(1=1,IntCol,UIntCol);
    по вашему надо ли приводить результат к IntCol автоматом?
  • @dj_mixer #164927 09:36 AM, 04 Jun 2020
    а потом в верхнем запросе не понимать почему у меня вместо значения "3млн" выдает "-1млн"
  • @tsaberyaby #164928 09:39 AM, 04 Jun 2020
    Добрый день всем. Подскажите пожалуйста почему могут пропасть данные из таблицы system.mutations. Есть данные за сегодня, но нет данных за месяц начиная с 30 апреля. Есть ли какой-то механизм очистки?
  • https://t.me/clickhouse_ru
    Приняв во внимание ранее озвученное заявление о расширении типа арифметическиими операторами, я бы ожидал аналогичного поведения и для оператора IF.
  • https://t.me/clickhouse_ru
    оператор if расширяет, но только там где безопасно
    select If(1=1,toUInt32(1)-toUInt32(1),toUInt8(2));
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164931 09:41 AM, 04 Jun 2020
    такое расширение безопасно?
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164932 09:41 AM, 04 Jun 2020
    select If(1=1,toUInt64(1)-toUInt64(1),toUInt64(2)); - а тут нет?
  • https://t.me/clickhouse_ru
    @unamedrus #164933 09:42 AM, 04 Jun 2020
    да Int64 покрывает диапазон UInt32
  • https://t.me/clickhouse_ru
    а тут диапазон не покрывает
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164935 09:43 AM, 04 Jun 2020
    Вычитание расширяет до Int64?
  • https://t.me/clickhouse_ru
    @unamedrus #164936 09:43 AM, 04 Jun 2020
    смотря, что за типы
    до Int16, Int32, Int64
  • https://t.me/clickhouse_ru
    @elise_azure #164937 09:44 AM, 04 Jun 2020
    привет
    подскажите, плз, может, кто знает
    почему при выборке из MATERIALIZED VIEW читается больше байт данных (в разы), чем при выборке из его "внутренней" таблицы (.inner.view_table)?
  • https://t.me/clickhouse_ru
    Входные Uint64
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #164937 #164939 09:45 AM, 04 Jun 2020
    вьюха аггрегатная?
  • https://t.me/clickhouse_ru
    Что будет супером для UInt64 ?
    Int64?
  • https://t.me/clickhouse_ru
    @unamedrus #164941 09:46 AM, 04 Jun 2020
    да
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164942 09:47 AM, 04 Jun 2020
    Ну, тогда всё на своих местах.
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164943 09:47 AM, 04 Jun 2020
    Int64 не покрывает верхней границы для UInt64
  • https://t.me/clickhouse_ru
    @unamedrus #164944 09:48 AM, 04 Jun 2020
    видимо здесь решено было сделать компромисс
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164945 09:48 AM, 04 Jun 2020
    Видимо...
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164946 09:48 AM, 04 Jun 2020
    Обидно что в доке про это ни слова.
  • https://t.me/clickhouse_ru
    @unamedrus #164947 09:48 AM, 04 Jun 2020
    Привыкайте
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164948 09:48 AM, 04 Jun 2020
    По крайней мере, я не нашёл
  • https://t.me/clickhouse_ru
    @unamedrus #164949 09:48 AM, 04 Jun 2020
    в доке описана только половина всего :)
  • https://t.me/clickhouse_ru
    @unamedrus #164950 09:49 AM, 04 Jun 2020
    Все остальное только через страдания и чтение гитхаба
  • https://t.me/clickhouse_ru
    Ага...
    Куда я денусь, с подводной лодки в погруженном состоянии :)
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164952 09:49 AM, 04 Jun 2020
    Благодарю @unamedrus за содержательную беседу.
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164953 09:49 AM, 04 Jun 2020
    Всем добра
  • https://t.me/clickhouse_ru
    @unamedrus #164954 09:50 AM, 04 Jun 2020
    не за что.
    Недавно приходил человечек и просил строгий режим, что бы при вставке не возникало тихого переполнение. Но такой настройки просто нет(правда вариант с констрейтом не проверяли)
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164955 09:53 AM, 04 Jun 2020
    Ну, хотелки разные бывают.
    Когда-то сильно повеселило, что в редисе, в какой-то момент, выкатили функцию быстрого вычисления числа фибоначи до какого-то офигенского порядка.
    Но ведь завели, значит было сильно надо :))
  • https://t.me/clickhouse_ru
    да, но тихое переполнение оч неприятная штука на самом деле, и фиг сразу поймешь в чем дело то
  • https://t.me/clickhouse_ru
    @Imh0t3mp #164957 09:54 AM, 04 Jun 2020
    Согласен.
  • @vasya_p0pkin #164958 10:00 AM, 04 Jun 2020
    Подскажите, какие есть способы получения данных из клика, с помощью trasact в ms sql server?
  • https://t.me/clickhouse_ru
    odbc?
  • @vasya_p0pkin #164960 10:03 AM, 04 Jun 2020
    В каком смысле? Можно пример кода
  • https://t.me/clickhouse_ru
    обычный mergetree
  • @vasya_p0pkin #164962 10:04 AM, 04 Jun 2020
    Мне надо вызвать хранимку на ms sql и получить выборку из клика
  • https://t.me/clickhouse_ru
    Создание связанных серверов - SQL Server

    Создание связанных серверов (компонент SQL Server Database Engine)

  • https://t.me/clickhouse_ru
    @unamedrus #164964 10:06 AM, 04 Jun 2020
    скорее всего так можно
  • То есть вы не знаете, но советуете?
  • https://t.me/clickhouse_ru
    я не пользуюсь ms sql что бы что то утверждать. у меня другие субд.
    Но предложить направление поиска я могу.
  • @pavelRed #164967 10:24 AM, 04 Jun 2020
    Добрый день.
    есть Clickhouse запущенный в докере. Через flyway пытаюсь делать миграцию, падает на вставке данных (около 3000 инсертов) с ошибкой
    Code: 241, e.displayText() = DB::Exception: Memory limit (total) exceeded: would use 3.46 GiB (attempt to allocate chunk of 4197620 bytes), maximum: 3.46 GiB (version 20.4.2.9 (official build)).
    память докеру уже выделял больше, не помогает.
    Где и что нужно подкрутить ?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #164967 #164968 10:32 AM, 04 Jun 2020
    в users.xml параметр max_memory_usage можно попробовать поправить.

    но вы точно уверены что верную базу выбрали для 3000 инсертов на 1 инстанс в докере?
  • default , примерно 1000 строк даже вставляются в таблицу. причем таблица на 6 колонок всего
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #164969 #164970 10:36 AM, 04 Jun 2020
    в КХ нужно вставлять реже, но большими батчами.
  • https://t.me/clickhouse_ru
    @AnKochem #164971 10:47 AM, 04 Jun 2020
    А как работает insert select
    он же должен кусками данные вставлять, по ключу сортировки?

    У меня на таблице (25 Гб) падает по памяти
    Memory limit (total) exceeded: would use 5.76 GiB (attempt to allocate chunk of 269625952 bytes), maximum: 5.74 GiB)
    можно как-то гранулировать разбивку что ли?
    КХ версии 19
  • не исследовал каким способом flyway вставляет
  • @SergeNedashkovsky #164973 11:04 AM, 04 Jun 2020
    Всем привет!
    У меня есть таблица в которую льются метаданные и для того чтобы получить значения метаданных для каждого объекта я делаю агрегацию (group by).
    Как создать словарь из подобной таблицы с учетом того, что значения метаданных могут меняться во времени?
  • @1223465121 #164974 11:08 AM, 04 Jun 2020
    Joined.
  • @iureva #164975 11:17 AM, 04 Jun 2020
    Данные из старой таблицы archive_table, пытаюсь перенести в новую распределенную таблицу, состоящую из двух шардов (shard_1, shard_2). Движок у таблиц и структура одинаковые.
    Распределяются данные при вставки рандомно, веса одинаковые, т.е 50 на 50. На выходе получается что данные из shard_1 и shard_2 весят очень много, столько же как и в старой таблице archive_table, хотя их по отдельности в два раза меньше.
    Получатся такой же объем данных, который занимает в два раза больше места. Запускал команду OPTIMAZE TABLE FINAL; - Размер не изменился.
  • https://t.me/clickhouse_ru
    можно сделать эту таблицу AggregatedMergeTree и еще VIEW в нее, которое будет доаггрегировать данные
  • https://t.me/clickhouse_ru
    какие движки у таблиц и как вставляете данные?
  • привет, удалось разобраться?
    у нас такая-же проблема, Len error в логах зукипера
  • @iureva ↶ Reply to #164977 #164979 11:19 AM, 04 Jun 2020
    1. MergeTree
    2. INSERT INTO распределенная таблица SELECT * FROM archive_table
  • https://t.me/clickhouse_ru
    а старая таблица не реплицированная?
  • @iureva #164981 11:20 AM, 04 Jun 2020
    нет
  • https://t.me/clickhouse_ru
    @elise_azure #164982 11:20 AM, 04 Jun 2020
    у distributed таблицы задавали ключ шардирования?
  • @iureva #164983 11:20 AM, 04 Jun 2020
    да, rand()
  • https://t.me/clickhouse_ru
    @elise_azure #164984 11:21 AM, 04 Jun 2020
    🤔
  • https://t.me/clickhouse_ru
    Нет, увы 🙁 Я просто перенес данные в другую таблицу снес ту по которой была эта ошибка. Обновил версию ZK кластера до послденей, и КХ до последней. И заново перезалил данные в новосозданную таблицу. и такая ошибка больше не повторялась. Как то так…
  • https://t.me/clickhouse_ru
    @elise_azure #164986 11:22 AM, 04 Jun 2020
    @iureva мб это норм
    возможно при бОльшем кол-ве данных в одном месте клик просто сжал их эффективнее
  • https://t.me/clickhouse_ru
    тк рандомное распределение, то мог ухудшится коэффициент сжатия
  • https://t.me/clickhouse_ru
    @elise_azure #164988 11:24 AM, 04 Jun 2020
    пробовали OPTIMIZE TABLE table ON CLUSTER cluster PARTITION '2020-03-01' FINAL? видел, что оптимизацию пробовали, мб с явным указанием партиции поможет
  • https://t.me/clickhouse_ru
    @elise_azure #164989 11:25 AM, 04 Jun 2020
    у нас был кейс, когда после оптимизации партиции немножко лучше ужалось все
  • @iureva ↶ Reply to #164986 #164990 11:25 AM, 04 Jun 2020
    Я обратил внимание, что если переносить данные по одной партиции, то занимаемый размер остается в норме. А когда все сразу, то начинается такая проблема.
  • @iureva ↶ Reply to #164987 #164991 11:26 AM, 04 Jun 2020
    а можно это как-то оптимизировать ?
  • https://t.me/clickhouse_ru
    @elise_azure #164992 11:26 AM, 04 Jun 2020
    а почему рандомное распределение используете?
  • https://t.me/clickhouse_ru
    не использовтаь рандомное распределение?
  • https://t.me/clickhouse_ru
    @elise_azure #164994 11:26 AM, 04 Jun 2020
    +
  • https://t.me/clickhouse_ru
    @elise_azure #164995 11:26 AM, 04 Jun 2020
    не вижу плюсов у рандомного относительно какого-то, которое может и помочь в будущем)
  • @iureva ↶ Reply to #164988 #164996 11:27 AM, 04 Jun 2020
    пробовал, раньше одна партиция хранилась на разных кусках, сейчас все в одном, но на размер это не повлияло.
  • https://t.me/clickhouse_ru
    @elise_azure #164997 11:27 AM, 04 Jun 2020
    попробуйте распределение по какому-нибудь адекватному выражению, чтобы было +- 50 на 50 в итоге
  • https://t.me/clickhouse_ru
    @elise_azure #164998 11:28 AM, 04 Jun 2020
    и сожмется лучше, и группировать потом, если нужно будет, проще
  • @iureva ↶ Reply to #164993 #164999 11:28 AM, 04 Jun 2020
    мне надо распределять данные равномерно. Могу указать в качестве ключа дату создания записи, она должна быть уникальной.
  • @iureva ↶ Reply to #164998 #165000 11:28 AM, 04 Jun 2020
    а что влияет на сжатие ?
  • https://t.me/clickhouse_ru
    @elise_azure #165001 11:28 AM, 04 Jun 2020
    а нет никакого uid или id записей?
  • https://t.me/clickhouse_ru
    @elise_azure #165002 11:29 AM, 04 Jun 2020
    кол-во и длина одинаковых последовательностей в оригинальном файле
  • @iureva ↶ Reply to #165001 #165003 11:29 AM, 04 Jun 2020
    нет, это не мой случай
  • https://t.me/clickhouse_ru
    а смысл дату записи?
  • https://t.me/clickhouse_ru
    @unamedrus #165005 11:30 AM, 04 Jun 2020
    если у тебя на 1 ноде сжималось лучше. значит твои данные не случайны и по ключу сортировки есть зависимость
  • https://t.me/clickhouse_ru
    @unamedrus #165006 11:30 AM, 04 Jun 2020
    вот и найди какой нибудь из столбцов ключа сортировки
  • https://t.me/clickhouse_ru
    @elise_azure #165007 11:30 AM, 04 Jun 2020
    👍
  • @iureva ↶ Reply to #165004 #165008 11:30 AM, 04 Jun 2020
    так как записи все уникальные равномерность распределения ляжет на веса?
  • https://t.me/clickhouse_ru
    @elise_azure #165009 11:30 AM, 04 Jun 2020
    если веса одинаковые, а ключ правильно подобран, то все норм будет
  • @iureva #165010 11:31 AM, 04 Jun 2020
    вобщем я понял куда копать, спасибо!
  • https://t.me/clickhouse_ru
    @elise_azure #165011 11:31 AM, 04 Jun 2020
    😀
  • @iureva #165012 11:33 AM, 04 Jun 2020
    Просто это выглядит очень подозрительно.., КХ на столько плохо сжимает данные, что они могут весить в два раза больше ?
  • https://t.me/clickhouse_ru
    @elise_azure #165013 11:33 AM, 04 Jun 2020
    кто-нибудь знает, как работает MV внутри при выборке из него? или тыкните, где почитать, плз
    не допру, почему при чтении из view читается больше данных, глянул в логи, там есть дополнительный пункт в пайплайне (Filter), а если читать из .inner.view, то этого пункта нет и читается намного меньше данных
    меньше/больше по кол-ву байт, а не по строкам
  • https://t.me/clickhouse_ru
    @elise_azure #165014 11:34 AM, 04 Jun 2020
    там довольно простой алгоритм сжатия, чем больше повторений и чем они длиннее, тем лучше сжатие
  • https://t.me/clickhouse_ru
    представь у тебя есть столбец состоящий из 1 и 0
    теперь сравни такие случаи
    Все лежит в 1 парте
    1 лежат в одном парте, 0 лежат в другом
    1 и 0 лежат в обоих партах
  • https://t.me/clickhouse_ru
    Не должно быть никакой разницы. Mv и .inner это одно и тоже. Может сломалось. Какая версия кх?
  • https://t.me/clickhouse_ru
    Нету такого механизма.
  • Спасибо! Попробую)
  • https://t.me/clickhouse_ru
    Такое есть в роадмапе на 2020 год, но сам понимаешь может и отложится
  • https://t.me/clickhouse_ru
    19.14.7.15
    может быть из-за того, что я для альтера отцеплял вьюшку и прицеплял уже с новой схемой?
  • https://t.me/clickhouse_ru
    Видимо раньше или не проверялось либо было специально обойдено что global создает temporary table. Видимо надо bug завести
  • https://t.me/clickhouse_ru
    Не может
  • https://t.me/clickhouse_ru
    @elise_azure #165023 11:44 AM, 04 Jun 2020
    вот и я так думаю
  • https://t.me/clickhouse_ru
    @elise_azure #165024 11:45 AM, 04 Jun 2020
    но факт остается(
  • https://t.me/clickhouse_ru
    @easya ↶ Reply to #165021 #165025 11:45 AM, 04 Jun 2020
    Завел вот тут: https://github.com/ClickHouse/ClickHouse/issues/11428
    Спасибо за пояснение!
    Can't execute SELECT query with readonly=1 and GLOBAL subquery · Issue #11428 · ClickHouse/ClickHouse

    I'm trying to execute following queries: SELECT <columns> FROM <db>.distributed_table1 GLOBAL INNER JOIN (SELECT <colums> FROM <db>.d...

  • https://t.me/clickhouse_ru
    @elise_azure #165026 11:46 AM, 04 Jun 2020
    лог для .inner такой:
    2020.06.04 13:30:52.672221 [ 66 ] {99461634-ad12-4c26-949e-3a8e37c13221} <Debug> db..inner.mt_log_view (SelectExecutor): Key condition: unknown, unknown, and
    2020.06.04 13:30:52.672269 [ 66 ] {99461634-ad12-4c26-949e-3a8e37c13221} <Debug> db..inner.mt_log_view (SelectExecutor): MinMax index condition: (column 0 in [1588280400, +inf)), (column 0 in (-inf, 1588283999]), and
    2020.06.04 13:30:52.672295 [ 66 ] {99461634-ad12-4c26-949e-3a8e37c13221} <Debug> db..inner.mt_log_view (SelectExecutor): Selected 1 parts by date, 1 parts by key, 3372 marks to read from 1 ranges
    2020.06.04 13:30:52.678729 [ 66 ] {99461634-ad12-4c26-949e-3a8e37c13221} <Debug> executeQuery: Query pipeline:
    Expression
    Expression
    ParallelAggregating
    Expression × 8
    MergeTreeThread

    2020.06.04 13:30:52.803225 [ 66 ] {99461634-ad12-4c26-949e-3a8e37c13221} <Information> executeQuery: Read 27618755 rows, 5.95 MiB in 0.134 sec., 206072548 rows/sec., 44.42 MiB/sec.

    а для view такой:
    2020.06.04 13:30:58.798955 [ 63 ] {7d5d0172-11c5-4529-a866-acb8ecded944} <Debug> db..inner.mt_log_view (SelectExecutor): Key condition: unknown, unknown, and
    2020.06.04 13:30:58.799005 [ 63 ] {7d5d0172-11c5-4529-a866-acb8ecded944} <Debug> db..inner.mt_log_view (SelectExecutor): MinMax index condition: (column 0 in [1588280400, +inf)), (column 0 in (-inf, 1588283999]), and
    2020.06.04 13:30:58.799027 [ 63 ] {7d5d0172-11c5-4529-a866-acb8ecded944} <Debug> db..inner.mt_log_view (SelectExecutor): Selected 1 parts by date, 1 parts by key, 3372 marks to read from 1 ranges
    2020.06.04 13:30:58.800654 [ 63 ] {7d5d0172-11c5-4529-a866-acb8ecded944} <Debug> executeQuery: Query pipeline:
    Expression
    Expression
    ParallelAggregating
    Expression × 8
    Filter
    MergeTreeThread

    2020.06.04 13:30:58.936572 [ 63 ] {7d5d0172-11c5-4529-a866-acb8ecded944} <Information> executeQuery: Read 27618755 rows, 540.71 MiB in 0.141 sec., 195196395 rows/sec., 3.73 GiB/sec.
  • https://t.me/clickhouse_ru
    @elise_azure #165027 11:46 AM, 04 Jun 2020
    видно для вьюшки лишний шаг Filter перед MergeTreeThread
  • https://t.me/clickhouse_ru
    Не может такого быть.
    Или удалились пользователи созданные через create user? там надо в 20.3 раскоментировать в config xml путь к стораджу юзеров инчае они только в памяти создаются и на диск не пишутся
  • https://t.me/clickhouse_ru
    @alarin ↶ Reply to #165028 #165029 11:49 AM, 04 Jun 2020
    пользователи все были на диске, обновил через apt-get, все исчезли

    на продакшене сделал backup users.list и остальных файлов, накатил после обновления ошибка в PROFILE 'default'. руками поправил файлы, заработало
  • https://t.me/clickhouse_ru
    @alarin ↶ Reply to #165028 #165031 11:50 AM, 04 Jun 2020
    но таки все удалились с диска при простом обновлении 😬
  • https://t.me/clickhouse_ru
    Значит баг. Хотя в 20.3 они не были еще stable фичей. Попробую в 20.4 воспроизвести
  • https://t.me/clickhouse_ru
    Кх не acid. Нельзя быть уверенным что вставленные данные на самом деле сохранились.
  • https://t.me/clickhouse_ru
    Там есть настройка сколько хранить (100 последних?) и как долго (месяц).
  • А если перепроверять после вставки? Есть уверенность, что они останутся в сохранности?
  • https://t.me/clickhouse_ru
    View сделайте в mssql которое выбирает из хр.
  • а где это настройка? В доках нашел только finished_mutations_to_keep
  • https://t.me/clickhouse_ru
    нету уверенности кх не делает fsync
  • https://t.me/clickhouse_ru
    @egorpopov94 #165039 12:03 PM, 04 Jun 2020
    всем привет! подскажите, есть ли команда, которая заставит буфер-таблицу выгрузить все данные в подчиненную независимо от достижения min/max условий?
  • https://t.me/clickhouse_ru
    finished_mutations_to_keep, 100, "How many records about mutations that are done to keep. If zero, then keep all of them.

    Аа может быть. Я с dddl перепутал видимо
  • Спасибо Сейчас поищу настройку
  • https://t.me/clickhouse_ru
    @lapteva_darja #165042 12:09 PM, 04 Jun 2020
    Joined.
  • а где посмотреть значение этой настройки?
  • https://t.me/clickhouse_ru
    Словарь можно поверх обычного view сделать и во вью написать запрос какой надо
  • https://t.me/clickhouse_ru
    System.mergtree_settings
  • @1050853748 #165046 12:14 PM, 04 Jun 2020
    всем привет! кому-нибудь доводилось удалять clickhouse установленный скриптами из архива?
  • Спасибо
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #165046 #165048 12:26 PM, 04 Jun 2020
    deb пакет имеется в виду?
  • вот нет, скачал архивом tar для установки там используются скрипты:

    https://clickhouse.tech/docs/ru/getting-started/install/#from-tgz-archives
    Установка | Документация ClickHouse

    Установка Системные требования ClickHouse может работать на любой операционной системе Linux, FreeBSD или Mac OS X с арх

  • @1050853748 #165050 12:27 PM, 04 Jun 2020
    вот не очень хотелсь бы вытирать всё ручками, может есть готовое решение?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #165050 #165051 12:36 PM, 04 Jun 2020
    так там же в директории есть скрипты для удаления
  • вот что-то нет..
  • @1050853748 #165053 12:37 PM, 04 Jun 2020
    я посмотрю ещё, спасибо большое.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @rheinx #165055 12:37 PM, 04 Jun 2020
    ну по крайней мере у сервера точно есть, остальные не проверял
  • скачаю от 20.4, я более раннюю ставил, наверное не добавляли, спасибо большое)
  • @1050853748 #165057 12:37 PM, 04 Jun 2020
    куда ставить классы?
  • Жаль. Говорят в vertica есть
    Придется поддерживать данный механизм на уровне приложения.
  • @569817842 #165059 01:16 PM, 04 Jun 2020
    Добрый день, есть 2 реплики ClickHouse, как правильно поднять 3 реплику, без остановки существующих? при rsync, данные которые появятся во время работы rsync доедут до 3 реплики после ее старта?
  • https://t.me/clickhouse_ru
    @eigrad #165060 01:16 PM, 04 Jun 2020
    Узнал сегодня, что ClickHouse таки иногда тормозит. Когда это managed clickhouse с network-hdd дисками :).
  • https://t.me/clickhouse_ru
    мат вью в кликхаусе != проекции в вертике
    таблица в которую вставляет данные мат вью является отдельным объектом и может иметь другой движок
    проекции - это копия (части)таблицы с другим ключом сортировки
  • https://t.me/clickhouse_ru
    это не кликхаус тормозит, это диски тормозят
  • @vk_rv #165063 01:20 PM, 04 Jun 2020
    Кликхаус не тормозит.
  • https://t.me/clickhouse_ru
    емнип достаточно просто добавить в конфиг, подключить к зк и создать табличку, кх сам данные скачает
  • Спасибо
    В vertice я не специалист.
    Но судя по всему мат вью в ClickHouse позволяют сэмулировать этот механизм
    путем выноса части функционала в приложение.
  • https://t.me/clickhouse_ru
    @nyoroon #165066 01:22 PM, 04 Jun 2020
    мат вью в кх это просто триггер на инсерт
  • спасибо
  • https://t.me/clickhouse_ru
    какую проблему решаете? пока вы говорите, что вам нужны разные индексы
  • Это да но он позволяет поддерживать сортировку по разным ключм
    Я сравнивал ClickHouse с Postgres

    Таблицы Postgres на 57 млн записях занимют 24GB (14GB таблицы + 10GB индексы)
    Таблици ClickHouse - 4GB

    То есть ожно созадть до 5-ти дополнительных мат вью по разным ключам сортировки чтобы данные занимали близкий к Postgres объем
  • https://t.me/clickhouse_ru
    @nyoroon #165070 01:31 PM, 04 Jun 2020
    сортировка это характеристика таблицы, мат вью в таком случае просто дублирует вставку в другю таблицу
  • @julia_zh_julia #165071 01:34 PM, 04 Jun 2020
    Joined.
  • Поток фотофиксации транспортных средств (ТС).
    Основная таблица сортируется по времени
    Кроме этого нужны для быстого доступа :
    - таблица трасс трасс ТС отсортированная но номерам ТС и времени
    - таблица потоков фотофиксаторов отсортиорванная по ID фотофиксаторов и времени
    Вот уж как полгода как база работает
  • https://t.me/clickhouse_ru
    @ovenger #165073 02:12 PM, 04 Jun 2020
    Joined.
  • @531497489 #165074 02:24 PM, 04 Jun 2020
    Joined.
  • @531497489 #165075 02:26 PM, 04 Jun 2020
    Привет! Подскажите плиз, где можно найти гайд по подключению Tableau на macOS к clickhouse?
  • @vvvjhaq #165076 02:38 PM, 04 Jun 2020
    Добрый день. ЗК работал себе и работал, но в один момент резко выросла нагрузка на cpu(average load) в 5 раз. И не отпускает. С чем может быть связано?
  • @vvvjhaq #165077 02:40 PM, 04 Jun 2020
    Конфиг выглядит так:
    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/opt/zookeeper/data
    clientPort=2181
    autopurge.snapRetainCount=10
  • https://t.me/clickhouse_ru
    в vertic-е проекции связаны с таблицей, точнее проекции это обрезок суперпроекции, а в КХ MV может хранить данных больше или меньше чем в таблице, т.е. они не связаны жестко, например в таблице может быть год данных, а в MV за неделю, и нигде это не описано, поэтому впрямую нельзя переписывать запросы
  • https://t.me/clickhouse_ru
    и в КХ новых таблиц не создавали?
  • нет, просто работали рядовые вставки
  • https://t.me/clickhouse_ru
    если движок Replicated то он скачает сам после create table (rsync вообще конкретно ничем не поможет в случае Replicated)
  • zk на отдельной виртуалке стоит
  • https://t.me/clickhouse_ru
    не знаю, может инсертов стало больше? что в логах ЗК?

    а может garbage collector,

    сколько размер одного снепшот файлика?
    сколько озу у серверa?
    как запущена java zk XMX ...?
  • инсертов не стало больше
    пробовали перезапустить зк - логи только новые и там все ок, с момента запуска только INFO были и все.
    файл снэпшота - 1.5мб
    ОЗУ 10 ГБ
  • java zk xmx дефолтно запущено. Никаких настроек доп не было
  • https://t.me/clickhouse_ru
    ну не знаю, идеи кончились, включить логи в КХ в trace и смотреть кто долбит, гуглить как найти кто виноват в высокой нагрузке на ЗК
  • понял, ок. спасибо за помощь
  • @vvvjhaq #165088 03:27 PM, 04 Jun 2020
    Еще такой вопрос, что означает число watcher зукипера?
  • сделайте импрувмент реквест для КХ, это будет вполне возможно запилом улучшенного merge engine, которому можно правила/полиси прокидывать =) и будет круче чем в вертике...
  • https://t.me/clickhouse_ru
    есть же уже в роадмапе на 2020 год?
  • Как сделать, не понятно. Через связный сервер? Или как?
  • не вижу
  • https://t.me/clickhouse_ru
    @unamedrus #165093 04:09 PM, 04 Jun 2020
    несколько физических представлений для кусков, несколько ORDER BY для кусков не оно?
  • view нельзя на ХР натягивать вроде, а на table-function можно
    CREATE FUNCTION dbo.FnTable
    RETURNS TABLE AS
    RETURN (
    SELECT * FROM mytable
    )

    CREATE VIEW dbo.MyView AS SELECT * FROM FnTable;
  • увидел )
    1.16. Несколько физических представлений для одного куска данных
    Сложная задача, только после 1.3 и 1.6. Позволяет компенсировать 21.20.

    имхо merge реализация в разы проще, и позволит более гибкие полиси прописывать
  • https://t.me/clickhouse_ru
    @unamedrus #165096 04:12 PM, 04 Jun 2020
    я от этой штуки надеюсь, что они прикрутят более твердую консистентость
  • @dj_mixer #165097 04:12 PM, 04 Jun 2020
    т.е. логика проекций будет все таки отделена от таблиц, и гуляй-страна, накидывай merge на другой merge
  • https://t.me/clickhouse_ru
    @unamedrus #165098 04:12 PM, 04 Jun 2020
    а то с MV фиг его знает
  • https://t.me/clickhouse_ru
    @unamedrus #165099 04:15 PM, 04 Jun 2020
    ну тогда опять надеятся на MV для перемещения данных между таблиц?
  • https://t.me/clickhouse_ru
    ааа, я наоборот прочитал, думал в КХ нужно дернуть данные из MSSQL хранимой п.

    Вы можете через odbc запрос в КХ сделать через linked server
  • https://t.me/clickhouse_ru
    добро пожаловать в недокументированный мир, вот еще пример для взрыва мозга

    DESCRIBE TABLE
    (
    SELECT if(toLowCardinality('a') = 'a', 1, 0)
    )
    --
    LowCardinality(UInt8)

    т.е. LowCardinality пролезает из условия в результат
  • https://t.me/clickhouse_ru
    @mondzucker #165102 04:26 PM, 04 Jun 2020
    Joined.
  • А что с мв не так? Мы просто мало пользовались
  • Может есть пример, как настраивать linked server именно к кх?
  • https://t.me/clickhouse_ru
    хм, а если написать CREATE TABLE AS SELECT if(toLowCardinality('a') = 'a', 1, 0)
    должен же будет ругнутся на бессмысленный lowCardinality
  • https://t.me/clickhouse_ru
    ругнется наверное
  • https://t.me/clickhouse_ru
    @den_crane #165107 04:28 PM, 04 Jun 2020
    но в MV например ругалка отключена
  • https://t.me/clickhouse_ru
    все так, отличный механизм
    но скажем так не 100% гарантия что таблица с другим ORDER BY будет иметь аналогичные данные основной таблицы
  • https://t.me/clickhouse_ru
    забавно, не знал.
    впрочем я всегда пользовался TO
  • https://t.me/clickhouse_ru
    ну КХ odbc драйвер поставите на винду, дальше все как с mysql или с другим любым odbc например
  • https://t.me/clickhouse_ru
    @vngrv #165111 04:31 PM, 04 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @den_crane #165112 04:31 PM, 04 Jun 2020
    CREATE TABLE xxx Engine = Log as SELECT if(toLowCardinality('a') = 'a', 1, 0) x

    DB::Exception: Creating columns of type LowCardinality(UInt8) is prohibited by default due t...
  • https://t.me/clickhouse_ru
    @den_crane #165113 04:33 PM, 04 Jun 2020
    уже пилят Add insert_materialized_view_atomic to control pushing to MV behaviour
    https://github.com/ClickHouse/ClickHouse/pull/10770
  • https://t.me/clickhouse_ru
    @den_crane #165114 04:33 PM, 04 Jun 2020
    это только ничего не гарантирует, я может MV транкейчу по утрам
  • Ну так то вы про транзакционность уже...
    Можно делать доп функционал для частичного scrubbingа, рефреша конкретных партиций (связывание зависимых таблиц-маппинг партиций), атомисити на вставке (хотя по тому ишшю выше у меня больше вопросов чем ответов), итд итп..
    опять таки имхо, проекции как таковые не совсем являются решением этого
  • https://t.me/clickhouse_ru
    это не совсем транзакционность имхо, просто консистентность разных ORDER BY
    И одна таблица выглядит гораздо проще чем две таблицы и MV между них для каких то изменений
    А еще нужно объяснять как этим пользоваться программистам
  • @sergeik #165117 04:42 PM, 04 Jun 2020
    Добрый вечер,
    Code: 241, e.displayText() = DB::Exception: Memory limit (total) exceeded: would use 7.00 GiB (attempt to allocate chunk of 4502712 bytes), maximum: 7.00 GiB (version 20.3.10.75 (official build))
    Начали сыпаться при записи небольших чанков. Пару недель все ок было.
    Мониторинг в Я.Облаке для сервиса ничего подозрительного.
    Не подскажете плз в чем проблема?
  • посмотри на количество соединений к базе
  • про МВ между них речи не шло.
    консистентность order by будет разменом на гибкость и усложнением merge-tree.
    кмк лучше иметь возможность гибко настраивать таблицы с этими разными order by... кому надо - будет атомик инсерт делать (вставить либо везде успешно, либо никуда)
  • https://t.me/clickhouse_ru
    @den_crane #165120 04:44 PM, 04 Jun 2020
    у нас бекэнд угадывает куда ходить, типа есть агрегаты A,B,C,D, факты X,Y,Z , бекенд перебирает по очереди и ищет где есть все метрики и дименшины, и пишет sql куда надо
  • https://t.me/clickhouse_ru
    сурово
  • у нас подобная была штука, и проблема заключалась в том, что с какого-то момента выросли http соединения и судя по всему они не закрывались, а кликхаус не высвобождает память пока соединение на закроется
  • @sergeik #165123 04:45 PM, 04 Jun 2020
    Да, ~20% больше обычного
  • Спасибо!
  • https://t.me/clickhouse_ru
    это из-за фичи max_server_memory_usage_to_ram_ratio

    https://github.com/ClickHouse/ClickHouse/issues/11153#issuecomment-633212510
  • https://t.me/clickhouse_ru
    @den_crane #165126 04:48 PM, 04 Jun 2020
    в облаке саппорт по объявлениям в маршрутках набирают? Меня возьмите, я способный.
  • https://t.me/clickhouse_ru
    Ну мне допустим нужен только различный ORDER BY
    И я был бы рад если бы эта фича появилась ;)
  • https://t.me/clickhouse_ru
    @unamedrus #165128 04:48 PM, 04 Jun 2020
    где нужны разные агрегаты буду дальше пользоваться MV
  • ну вот вы сами сделали навороченный supermerge engine =)
  • в облаке саппорт отвечает "читайте документацию, мы хз", ты тут гораздо ценнее
  • https://t.me/clickhouse_ru
    построенный на эксепшенах, я правильно же понял ?)
  • https://t.me/clickhouse_ru
    кстати сделано 10 лет назад, для вертики или еще mysql даже
  • Спасибо! Буду чанки увеличивать, похоже много соединений и часто пишу.
  • https://t.me/clickhouse_ru
    @den_crane #165134 04:50 PM, 04 Jun 2020
    в вертике тоже агрегаты суммирующие (типа summingMT) которые не сделать проекциями
  • https://t.me/clickhouse_ru
    @den_crane #165135 04:51 PM, 04 Jun 2020
    кстати щаз у нас еще смешнее, если в вертике таких дименшинов нет, бекэнд идет автоматически в КХ
  • почему? на правилах... если то - иди туда, если сё - иди сюда...
  • @dj_mixer #165137 04:53 PM, 04 Jun 2020
    я к тому, что если делать это поверх таблиц отдельным engine-ом - это позволит не усложнять merge-tree
  • https://t.me/clickhouse_ru
    >перебирает по очереди
    ну я это понял буквально просто, возможно ошибаюсь
  • @dj_mixer #165139 04:55 PM, 04 Jun 2020
    можно сделать MV-log - как в оракле, и будет вам консистентность ещё и replayable/refixable (до какого момента)... но это превратит простой КХ в комбайн-тыкву...
  • https://t.me/clickhouse_ru
    @unamedrus #165140 04:56 PM, 04 Jun 2020
    Ну хотят же WAL впилить в MergeTree, так что так просто как было раньше уже не будет )
  • как я слушал, его впилить хотят для быстрых мелких вставок а не консистентности
  • https://t.me/clickhouse_ru
    @den_crane #165142 04:57 PM, 04 Jun 2020
    в КХ просто очень сложные выражения в MV можно написать, нифига не угадать что там в поле просто sum( )
  • https://t.me/clickhouse_ru
    для durability тоже
  • т.е. для (вставка в distributed, chained вставка в МВ) итд?
    ну если каждая "вставка" не бьется нигде на пути и создающиеся куски одинаковые, то наверное можно... а иначе будет ад из роллбеков
  • https://t.me/clickhouse_ru
    @elise_azure #165145 05:16 PM, 04 Jun 2020
    почему могут автоматом не переноситься фильтры из WHERE в PREWHERE для MAT VIEW
    кейс такой:
    если выбираю из самого view, то в PREWHERE не переносится, а если из .inner.view, то переносятся, WTF...
  • @teen_spirit1 #165146 05:26 PM, 04 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    звучит как баг
  • https://t.me/clickhouse_ru
    @elise_azure #165148 05:35 PM, 04 Jun 2020
    мне кажется, раньше все было ок (но я не помню)
    уже много раз отсоединял вьюшку, подсоединял с новой схемой после альтера .inner таблицы, мб что сломалось
    нет же настройки оптимизатора WHERE конкретно для какой-то таблицы?
  • https://t.me/clickhouse_ru
    такое лучше в github kittenhouse в issue спросить
  • Посмотрел - не заметил.
    Номер не подскажете?
  • https://t.me/clickhouse_ru
    1.15-1.17
    как я понял ваш запрос
  • https://t.me/clickhouse_ru
    в вертике есть механизм PROJECTIONS
    потому что в вертике таблица это ЛОГИЧЕСКОЕ определение под которое может быть выбрана ЛЮБАЯ проекция
    в том числе и проекция с аггрегацией
    механизм вставки более сложный получается...
  • https://t.me/clickhouse_ru
    по идее зная какие materialized views уже есть (выбрать через system.tables)
    такое можно на application layer реализовать не очень сложным способом
  • Это где? На сайте ClickHouse или ALtinity?
  • https://t.me/clickhouse_ru
    Issues · ClickHouse/ClickHouse

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

  • Возможно Вы и правы, но как-то завуалировано
  • OK
    Спасибо, подумаю...
  • @heyroman #165158 05:59 PM, 04 Jun 2020
    Joined.
  • OK
    Спасибо за предложение
  • @a_naumov #165160 07:53 PM, 04 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @Oleg_Oleg_Oleg #165161 08:07 PM, 04 Jun 2020
    Всем привет!
    Столкнулся с простой задачей и хотел бы получить совет от опытных пользователей.
    У меня есть 2 инстанса CH.
    В этих инстансах есть таблица (DDL совпадает).
    Нужно смёржить данные (т.е. перелить из одного инстанса в другой, при этом сохранив данные, которые были).
    Как это правильно сделать?
    Просто написать скрипт с двумя коннетами, который будет читать, а потом вставлять?
    Какие бест практис?
  • https://t.me/clickhouse_ru
    @387452444 #165162 08:11 PM, 04 Jun 2020
    insert into select remote ?
  • https://t.me/clickhouse_ru
    @Oleg_Oleg_Oleg #165163 08:12 PM, 04 Jun 2020
    Хм, ща погуглю, спасибо
  • https://t.me/clickhouse_ru
    @387452444 #165164 08:18 PM, 04 Jun 2020
    remote | ClickHouse Documentation

    remote, remoteSecure Allows to access remote servers without creating a Distributed table. remoteSecure - same as remote

  • https://t.me/clickhouse_ru
    @k0st1an #165165 08:20 PM, 04 Jun 2020
    Ребят есть вопрос: на хосте с1 указан лимит по памяти для пользователя 40гб. На этой же машине существует дистрибьют таблица. На других хостах в кластере лимит по памяти меньше, 25гб. Когда я делаю запрос через с1 лимит по памяти же не должен меняться на хостах в кластере? Пользователь везде один.
  • https://t.me/clickhouse_ru
    ну делаете на первом alter table xxx freeze
    в папке shadow появляются парты, копируете их на второй инстанс, например rsync -rav папка_в_shadow другой_хост:/bkp
    перекладываете в папку таблицы detached
    делаете владельцем chown clickhouse.clickhouse -R ...
    делаете атач партиций / партов
  • https://t.me/clickhouse_ru
    Оу, не, спасибо, но с таким не справлюсь )) не на столько с CH знаком )
    пойду с remote экспериментировать
  • https://t.me/clickhouse_ru
    передается max_memory_usage на шарды
    и есть такой тикет https://github.com/ClickHouse/ClickHouse/issues/11292
  • https://t.me/clickhouse_ru
    @Oleg_Oleg_Oleg #165169 08:42 PM, 04 Jun 2020
    Timeout: connect timed out: 255.255.255.255:9000 (version 20.3.10.75 (official build)

    Для подключения remote что-то нужно в конфиге активировать?
    Я подключаюсь к машине с DataGrip, но через remote достучаться не могу.
    Стучусь на tcp порт, который в конфиге указан
  • @makseshina #165170 08:43 PM, 04 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @nikitosiusis #165172 08:44 PM, 04 Jun 2020
    он же ссш-тунель умеет
  • https://t.me/clickhouse_ru
    спасибо, это совершенно неожиданное поведение
  • https://t.me/clickhouse_ru
    @Oleg_Oleg_Oleg #165175 08:44 PM, 04 Jun 2020
    Заменил на порт http и ушёл думать (жду селект).... иии отвалился опять )
  • https://t.me/clickhouse_ru
    так закрыт наверное порт или КХ видят друг друга через локальную сеть и там другие ip, а у вас наружняя
  • https://t.me/clickhouse_ru
    а это особенность или баг такой? я не очень понимаю почему параметры инициатора должны перекрывать параметры на реплике. реплика может быть не сильно похожа на инициатора…
  • https://t.me/clickhouse_ru
    не знаю, так им было надо

    наверное чтобы передать ограничения пользователя, потому что по шардам ходит другой пользователь (описанный в remote_servers) и у него свой профиль
  • @Provet #165179 09:18 PM, 04 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    Работаю без локальной сети
    в /etc/clickhouse-server/config.xml в параметре tcp_port был указан 9000.
    Я попробовал сдвинуть на 9001, перезагрузил сервер. С независимой машины до порта достучаться получается без проблем. Файрволы выключены.
    listen_host слушает все ipv4+ipv6

    🤷‍♂️
  • https://t.me/clickhouse_ru
    пробую с кх один на второй:9000

    900 ------ неправильный порт
    curl xxx:900
    curl: (7) Failed to connect to xxx port 900: Connection refused

    SELECT *
    FROM url('http://xxx:900', 'CSV', 'id String')

    Received exception from server (version 20.4.4):
    Code: 1000. DB::Exception: Received from localhost:9000. DB::Exception: Connection refused.

    ----------

    9000 ------ правильный порт
    curl xxx::9000
    Port 9000 is for clickhouse-client program. You must use port 8123 for HTTP.

    тоже самое из КХ, тестируем порт

    SELECT *
    FROM url('http://xxx:9000', 'CSV', 'id String')

    Received exception from server (version 20.4.4):
    Code: 86. DB::Exception: Received from localhost:9000. DB::Exception: Received error from remote server . HTTP status code: 400 Bad Request, body: Port 9000 is for clickhouse-client program.
    You must use port 8123 for HTTP.
  • https://t.me/clickhouse_ru
    @Oleg_Oleg_Oleg #165182 09:37 PM, 04 Jun 2020
    В документации написано, что для remote нужно tcp порт использовать
    По 8123 достучаться тоже не получилось.

    Дёргать curl на saas инстансе не понял как, возможно - никак )
  • https://t.me/clickhouse_ru
    але, вы читаете что я пишу?
  • https://t.me/clickhouse_ru
    @Oleg_Oleg_Oleg #165184 09:38 PM, 04 Jun 2020
    Да, но не понял причём тут 900 )
  • https://t.me/clickhouse_ru
    @den_crane #165185 09:38 PM, 04 Jun 2020
    я показываю пример как протестировать ip/port с помощью URL фунции
  • https://t.me/clickhouse_ru
    А вы читаете, что я пишу? (последнее предложение, про curl)
  • https://t.me/clickhouse_ru
    @den_crane #165187 09:38 PM, 04 Jun 2020
    900 -- это пример что будет если порт неправильный
  • https://t.me/clickhouse_ru
    @den_crane #165188 09:38 PM, 04 Jun 2020
    конечно 9000 вам нужен
  • https://t.me/clickhouse_ru
    @den_crane #165189 09:38 PM, 04 Jun 2020
    я показываю как увидеть что 9000 доступен
  • https://t.me/clickhouse_ru
    @den_crane #165190 09:39 PM, 04 Jun 2020
    надо выполнить SELECT * FROM url('http://xxx:9000', 'CSV', 'id String')
  • https://t.me/clickhouse_ru
    @den_crane #165191 09:39 PM, 04 Jun 2020
    если будет ответ Port 9000 is for clickhouse-client program. -- значит порт доступен
  • https://t.me/clickhouse_ru
    @den_crane #165192 09:39 PM, 04 Jun 2020
    это просто проверка доступности
  • https://t.me/clickhouse_ru
    @Oleg_Oleg_Oleg #165193 09:40 PM, 04 Jun 2020
    Это я уже проверил, сдвинув 9000 на 9001
  • https://t.me/clickhouse_ru
    @den_crane #165194 09:40 PM, 04 Jun 2020
    если ткнутся на порт 9000 -- который вам нужен с помощью http будет ответ Port 9000 is for clickhouse-client program.
  • https://t.me/clickhouse_ru
    слабо вот так
    SELECT * FROM url('http://xxx:9000', 'CSV', 'id String') ?
  • https://t.me/clickhouse_ru
    @Oleg_Oleg_Oleg #165196 09:41 PM, 04 Jun 2020
    Сейчас попробую, через url не пробовал
  • https://t.me/clickhouse_ru
    @Oleg_Oleg_Oleg #165197 09:42 PM, 04 Jun 2020
    HTTP status code: 400 Bad Request, body: Port 9001 is for clickhouse-client program.

    Т.е. порт доступен, но от этого не легче )
  • https://t.me/clickhouse_ru
    @den_crane #165198 09:45 PM, 04 Jun 2020
    а select * from remote('xxx:9001', system, one, 'юзер', 'пароль')
  • https://t.me/clickhouse_ru
    Это как в доке

    remote('addresses_expr', db.table[, 'user'[, 'password']])
  • https://t.me/clickhouse_ru
    и что?
    можно и так и так

    select * from remote('xxx:9001', system, one, 'юзер', 'пароль')
    select * from remote('xxx:9001', system.one, 'юзер', 'пароль')
  • https://t.me/clickhouse_ru
    @Oleg_Oleg_Oleg #165201 09:53 PM, 04 Jun 2020
    Не в этом проблема, оба варианта юзал
  • https://t.me/clickhouse_ru
    и что ошибка ?
  • https://t.me/clickhouse_ru
    @Oleg_Oleg_Oleg #165203 09:54 PM, 04 Jun 2020
    DB::NetException: Timeout: connect timed out: 00.00.00.00:9001 (version 20.3.10.75 (official build)
  • https://t.me/clickhouse_ru
    @den_crane #165204 09:54 PM, 04 Jun 2020
    00:00:00:00 -- вы понимаете что туда нельзя подключится?
  • https://t.me/clickhouse_ru
    @den_crane #165205 09:55 PM, 04 Jun 2020
    это алиас для
  • https://t.me/clickhouse_ru
    @den_crane #165206 09:55 PM, 04 Jun 2020
    для listen
  • https://t.me/clickhouse_ru
    @Oleg_Oleg_Oleg #165207 09:55 PM, 04 Jun 2020
    lol, я IP так спрятал )

    Могу писать 8.8.8.8:9001, если так будет проще :)
    Там IP моего сервера
  • https://t.me/clickhouse_ru
    @den_crane #165208 09:55 PM, 04 Jun 2020
    означает все IP
  • https://t.me/clickhouse_ru
    @nikitosiusis #165209 09:56 PM, 04 Jun 2020
    айпи стоит прятать за файрволом, а не за редактированием текста)
  • https://t.me/clickhouse_ru
    ясно, загадочно. system.one тоже?
  • https://t.me/clickhouse_ru
    Согласен, но писать в чате IP как-то неразумно )
  • https://t.me/clickhouse_ru
    @den_crane #165212 09:58 PM, 04 Jun 2020
    ааааа сколько пинг между серверами?
  • https://t.me/clickhouse_ru
    @den_crane #165213 09:59 PM, 04 Jun 2020
    попробуйте так из КХ клиента

    set connect_timeout_with_failover_ms=1000;
    select * from remote('xxx:9001', system, one, 'юзер', 'пароль');
  • https://t.me/clickhouse_ru
    @den_crane #165214 09:59 PM, 04 Jun 2020
    у КХ таймаут 50мс по дефолту, хотя в 20.3.10.75 вроде как не должно влиять это на remote
  • https://t.me/clickhouse_ru
    @Oleg_Oleg_Oleg #165215 10:00 PM, 04 Jun 2020
    Да, скорее всего тут проблема
    Из России в Германию идём :)
    Ща попробую
  • https://t.me/clickhouse_ru
    Огонь! Работает :)))))
  • https://t.me/clickhouse_ru
    @Oleg_Oleg_Oleg #165217 10:02 PM, 04 Jun 2020
    Спасибо!
  • https://t.me/clickhouse_ru
    @den_crane #165218 10:02 PM, 04 Jun 2020
    а ясно, так и не сделали https://github.com/ClickHouse/ClickHouse/issues/5188 годы идут.
  • https://t.me/clickhouse_ru
    а данных то много? если много то файлами удобнее... я думал что у вас в одной сетке два сервера стоит
  • https://t.me/clickhouse_ru
    Не, данных немного, пара Гб
  • 05 June 2020 (172 messages)
  • @584803022 #165221 05:53 AM, 05 Jun 2020
    Joined.
  • @iureva #165222 06:19 AM, 05 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @justicewisdom #165223 06:41 AM, 05 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @Vasyaabr #165224 06:55 AM, 05 Jun 2020
    Привет!
    А есть возможность хранить словари не только в памяти? Видел пару слов об этом в документации, но не больше, может оно уже в релизе, просто документацию не обновили?
    Сценарий использования - хранение нескольких небольших табличек из mySQL, которые остались бы в живых после перезапуска сервера клика. На случай если mySQL-ю в этот момент настал конец.
  • https://t.me/clickhouse_ru
    ну да, стандартный механизм словарей как раз умеет тянуть таблицы из других БД, мы например, тянем из Постгреса несколько более-менее статичных таблиц со справочными данными и с ними потом уже джойнимся в запросе к основным таблицам КХ
  • https://t.me/clickhouse_ru
    @Vasyaabr #165226 07:10 AM, 05 Jun 2020
    Это понятно, мы тоже активно используем словари. Но они хранятся в памяти, а хочется чтобы они пережили перезагрузку сервера. Недавно словили совершенно жуткий по продолжительности даунтайм датацентра с mySQL базой, и если в процессе очередного такого выкрутаса случится перезапуск клика - будет не очень.
  • https://t.me/clickhouse_ru
    @alexeykonyaev #165227 07:12 AM, 05 Jun 2020
    да, теперь я понял... тогда присоединяюсь к твоему вопросу) интересно...
  • https://t.me/clickhouse_ru
    @easya ↶ Reply to #165226 #165228 07:12 AM, 05 Jun 2020
    Тут либо MySQL делать отказоустойчивым, либо копировать данные в ClickHouse, и для них уже поднимать словари
  • @Shazo_Rus #165229 07:13 AM, 05 Jun 2020
    Если база не большая в mysql, подымите локальную реплику на КХ на read-only
  • https://t.me/clickhouse_ru
    @Vasyaabr #165230 07:13 AM, 05 Jun 2020
    Большая. Реплицировать стандартными средствами не выходит.
  • https://t.me/clickhouse_ru
    @alexeykonyaev #165231 07:15 AM, 05 Jun 2020
    если большая, то словари кмк тут не спасут, потому что он в памяти КХ кешируется только частично, и подгружается в нее по мере необходимости.
    Может вопрос не про словари, а про то, как использовать КХ для бекапа больших таблиц из другой БД?)
  • @AlexNov89 #165232 07:17 AM, 05 Jun 2020
    всем привет.
    есть MV с движком AMT.
    как для нее поменять запрос, согласно которого она формируется? так чтобы не похерить уже имеющиеся данные
  • https://t.me/clickhouse_ru
    @Vasyaabr #165233 07:19 AM, 05 Jun 2020
    База большая, но используется из неё для словарей очень мало данных, вполне подходит для словарей. Проблема стандартной репликации в том, что на реплику идет бинлог (весь поток данных) и уже там разбирается. То есть, условно, на реплике 5 таблиц из 100, ни идут все 100, и лишнее отбрасывается (если я всё правильно понимаю и объясняю). Для географически разнесенных реплик с большой задержкой это фатально.
    Раздумываем сейчас над вариантом с выносом нужных таблиц в отдельную БД, тогда репликация станет реальной.
  • https://t.me/clickhouse_ru
    @yakhontovyi #165234 07:37 AM, 05 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @denis_nikulnikov #165235 08:38 AM, 05 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @PeterSh0 #165236 09:48 AM, 05 Jun 2020
    Привет!
    Есть какой-нибудь способ игнорировать исключения в функциях?
    select number, toDateTime(IF(number > 0, 'error', number)) from numbers(2);Чтобы при таком возвращался во второй строке null или явно указанное значение?
  • https://t.me/clickhouse_ru
    @nyoroon #165237 09:48 AM, 05 Jun 2020
    toDateTimeOrNull?
  • https://t.me/clickhouse_ru
    @nyoroon #165238 09:49 AM, 05 Jun 2020
    или toDateTimeOrZero
  • https://t.me/clickhouse_ru
    @PeterSh0 #165239 09:52 AM, 05 Jun 2020
    Вот как значит, я искал универсальный try .. catch какой-нибудь, а про специальные функции не подумал, спасибо!
  • https://t.me/clickhouse_ru
    @kitsu #165240 10:00 AM, 05 Jun 2020
    Есть достаточно большое количество разношерстных таблиц с общих ключем, можно их всех как-нибудь заджойнить с минимумом по памяти (по сути нужна обычная сортировка слиянием, т.к. данные упорядочены) или лучше это программно делать вне бд?
  • @anttoon #165241 10:02 AM, 05 Jun 2020
    Добрый день
    подскажите пожалуйста как подключиться секюрно через clickhouse-client

    clickhouse-client -s
    ClickHouse client version 20.3.8.53 (official build).
    Connecting to localhost:9440 as user default.
    Code: 210. DB::NetException: Connection refused (localhost:9440)

    как я понимаю у меня нет кликхауса на 9440 порту
    в настройках все по умолчанию, сертификат добавил.

    netstat вот что показывает
    sudo netstat -tulpn | grep clickhouse
    tcp 0 0 127.0.0.1:9004 0.0.0.0:* LISTEN 665/clickhouse-serv
    tcp 0 0 127.0.0.1:9009 0.0.0.0:* LISTEN 665/clickhouse-serv
    tcp 0 0 127.0.0.1:8123 0.0.0.0:* LISTEN 665/clickhouse-serv
    tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 665/clickhouse-serv
    tcp6 0 0 ::1:9004 :::* LISTEN 665/clickhouse-serv
    tcp6 0 0 ::1:9009 :::* LISTEN 665/clickhouse-serv
    tcp6 0 0 ::1:8123 :::* LISTEN 665/clickhouse-serv
    tcp6 0 0 ::1:9000 :::* LISTEN 665/clickhouse-serv
  • https://t.me/clickhouse_ru
    большие таблицы?
  • https://t.me/clickhouse_ru
    @kitsu ↶ Reply to #165242 #165243 10:02 AM, 05 Jun 2020
    угу
  • @WhiteF0x #165244 10:07 AM, 05 Jun 2020
    Joined.
  • из коробки не получится, но можно периодически самим передампивать данные словаря из таблицы c mysql движком в локальную ну либо на локальный файл, и на локальных данных уже строить словарь..

    ну или ждать этого:
    10.17. Локальный дамп состояния словаря для быстрого старта сервера
  • ну есть merge join в КХ.
    Настройки тут:
    https://clickhouse.tech/docs/ru/sql-reference/statements/select/join/#memory-limitations
    JOIN | Документация ClickHouse

    Секция JOIN JOIN создаёт новую таблицу путем объединения столбцов из одной или нескольких таблиц с использованием общих

  • join_algorithm hash 0 Specify join algorithm: 'auto', 'hash', 'partial_merge', 'prefer_partial_merge'. 'auto' tries to change HashJoin to MergeJoin on the fly to avoid out of memory.
    —-
    поиграйтесь с этим параметром.
  • https://t.me/clickhouse_ru
    @DimaVS #165248 10:17 AM, 05 Jun 2020
    Всем привет! Подскажите, пожалуйста, как сделать инсерт даты в формате ДД.ММ.ГГГГ? При обычной вставке в ячейке вместо даты указан null.
  • https://t.me/clickhouse_ru
    @unamedrus #165249 10:19 AM, 05 Jun 2020
    <date_time_input_format>best_effort</date_time_input_format>
  • https://t.me/clickhouse_ru
    @kitsu ↶ Reply to #165247 #165250 10:19 AM, 05 Jun 2020
    Ага понял, спасибо
  • https://t.me/clickhouse_ru
    @DimaVS ↶ Reply to #165249 #165251 10:20 AM, 05 Jun 2020
    спасибо
  • это только для ИСО форматов вроде (а там всегда год-месяц-день)
    https://clickhouse.tech/docs/ru/operations/settings/settings/#settings-date_time_input_format
    Настройки | Документация ClickHouse

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

  • @928029209 #165253 10:21 AM, 05 Jun 2020
    привет, может кто-нибудь подскажет, при использовании clickhouse-copier получаю такие сообщения
    <Information> ClusterCopier: There was an error while executing ALTER on each node. Query was executed on 4 nodes. But had to be executed on 153198686
    что это значит, и почему он хочет на стольких нодах query запускать?
  • https://t.me/clickhouse_ru
    select parseDateTimeBestEffort('10.11.2020')
  • https://t.me/clickhouse_ru
    @unamedrus #165255 10:22 AM, 05 Jun 2020
    но это только для datetime, нужно потом отдельно оттуда дату вытаскивать
  • 2020-11-10 01:00:00
    :) работает, но откуда 1 час взялся? (моя зона utc+3)
  • https://t.me/clickhouse_ru
    у меня 00:00:00 )
    в какой таймзоне сервер?
  • @dj_mixer #165258 10:25 AM, 05 Jun 2020
    Europe/Bucharest
  • Eastern European Summer Time
    Time zone in Bucharest, Romania (GMT+3)
    Friday, June 5, 2020, 1:24 PM
  • https://t.me/clickhouse_ru
    ты через датагрип запустил или через консольный?
  • @dj_mixer #165261 10:26 AM, 05 Jun 2020
    dbeaver->jdbc, я тоже в ЮТС+3
  • в консоли ок
    V30LC-INCLKHSE1.PW.LOCAL :) select parseDateTimeBestEffort('10.11.2020');

    SELECT parseDateTimeBestEffort('10.11.2020')

    ┌─parseDateTimeBestEffort('10.11.2020')─┐
    │ 2020-11-10 00:00:00 │
    └───────────────────────────────────────┘

    1 rows in set. Elapsed: 0.007 sec.
  • https://t.me/clickhouse_ru
    ну возможно jdbc пытается привести к локальной дате как то
  • да хз, я ж тоже в utc, может у бобра где-то закопано... toDateTime также врет
  • https://t.me/clickhouse_ru
    @AvadaKebaba #165266 10:40 AM, 05 Jun 2020
    Всем привет, у кликхаусе основная идеология это замена greenplum в аналитических системах? Или замена транзакционных бд в удобных случаях?
  • основная идеология - быстрые запросы к одной гигантской таблице
  • @dj_mixer #165268 10:42 AM, 05 Jun 2020
    но микроскоп прочный, и можно вполне гвозди забивать )
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Ну кстати простое решение, и сервисов никаких городить не надо :) Спасибо :)
  • да не за что, ну как минимум условный крон делать придется или другой скедюлер
  • https://t.me/clickhouse_ru
    @BuggyTheClown #165272 11:10 AM, 05 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @BuggyTheClown #165273 11:15 AM, 05 Jun 2020
    Привет, как писать запросы в clickhouse вида (выбрать товар с ценой выше средней) без WITH, OVER (не поддерживаются в CH) и без копипасты subquery (это не мелкий подзапрос)?
    например (с копипастой)
    ```SELECT name, price
    FROM subquery
    WHERE (price) > (SELECT avg(price) FROM subquery)```
  • можно через groupArray->array join
  • https://t.me/clickhouse_ru
    спасибо, ушел пробовать )
  • здесь в чате 100500 примеров, поищите, найдете готовый
  • хм, внезапно не помогло
  • вот теперь помогло )
    когда тз абсолютно идентичные - работает.
    когда несовпадают, несмотря на совпадение UTC+3, он думает что время зимнее и дает оффсет... странно...
  • https://t.me/clickhouse_ru
    Так ноябрь зимнее
  • https://t.me/clickhouse_ru
    Detach table mv;
    attach materialized view mv as новый запрос
  • точно же ))))
  • https://t.me/clickhouse_ru
    Вне кх. Кх не умеет мердж джойн настоящий и с новыми настройками будет обрабатывать левую таблицу сотрируя кусками и сотртировать правые
  • https://t.me/clickhouse_ru
    работает это так. На сервере tz x. У клиента y (в jvm). Jdbc из кх выбирает tz. Делает запрос с формате tsv и полученные данные конвертит из x в y
  • да все логично, я в дату даже не додумался глянуть...
  • https://t.me/clickhouse_ru
    это максимально неочевидное поведение имхо.
  • https://t.me/clickhouse_ru
    Надо в конфиге раскоментировать чтобы кх начал слушать секурные порты 9440
  • https://t.me/clickhouse_ru
    @elise_azure #165287 12:13 PM, 05 Jun 2020
    привет
    почему-то размер файла с засечками увеличился в 2 раза при переходе от String или Enum к LowCardinality(String), кол-во засечек не поменялось
    может кто сталкивался с кейсом?
    also размер файла с ключом стал меньше
  • https://t.me/clickhouse_ru
    @negasus #165288 12:16 PM, 05 Jun 2020
    Парни, привет) А подскажете, какой движок используется для сайта документации? Или может что-то свое?
  • <https_port>8443</https_port>
    <tcp_port_secure>9440</tcp_port_secure>
    эти настройки раскоментированы
    может еще что-то ?
  • в контексте КХ это же дефолтное поведение родного клиента - по моему очевидность определяется этим )

    Но да, лучше ввести флажок, чтоб клиент не додумывал, потому что клиенты других баз не додумывают...
  • https://t.me/clickhouse_ru
    А что кх пишет при старте? Может файлы ключей и сертификаты ему не нравятся?
  • https://t.me/clickhouse_ru
    @denis_nikulnikov #165292 12:24 PM, 05 Jun 2020
    Всем привет, кто-то пробовал интеграцию Clickhouse и apache kafka через двихок kafka? Какой объем примерно трафика сможет поглоить cickhouse на 8 ядерной виртуалке с 8 cpu? Проблема в том, что когда в кафку на вход идет 50mbit/s консьюмер Clickhouse-a поглощает примерно 45mbit/s и образуется все время растущий лаг... При этом процы сервера clickhouse - забиты лишь наполовину! Но что бы я ни делал (игрался с настройками rdkafka и количеством партиций) быстрее он все равно не поглощает..
  • ничего не пишут
    сертификат делал по команде которая указана в конфиге SSL -
    openssl req -subj "/CN=localhost" -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout /etc/clickhouse-server/server.key -out /etc/clickhouse-server/server.crt
  • https://t.me/clickhouse_ru
    как-то странно, то есть если пустить 60mbit все равно 45 только возьмет? а не пробовали вторую таблицу к тому же топику?
  • https://t.me/clickhouse_ru
    все равно 45, 2 не пробовал. Думаешь из-за задержки на запись в таблицу? (У меня 1 mergetree) Самое странное что процы ток в половину загружены, так и не получилось их в планку поставить...
  • https://t.me/clickhouse_ru
    @387452444 #165296 12:34 PM, 05 Jun 2020
    не знаю, вроде как и немного если честно по трафику
  • https://t.me/clickhouse_ru
    @387452444 #165297 12:35 PM, 05 Jun 2020
    но советуют вторую таблицу если не выгребает
  • https://t.me/clickhouse_ru
    @denis_nikulnikov #165298 12:36 PM, 05 Jun 2020
    Спасибо попробую..
  • @WhiteF0x #165299 12:48 PM, 05 Jun 2020
    Всем привет. Кто-то может посоветовать годный менетжер миграций табличек с логами для кликхауса ?
  • https://t.me/clickhouse_ru
    ну я в джава клиентах в connection properties вписываю

    use_time_zone Canada/Atlantic
    use_server_time_zone_for_dates false
    use_server_time_zone false

    в этом случае jdbc не делает select timezone() / считает что данные с сервера приходят в Canada/Atlantic / и конвертирует их мою клиентскую таймзону (JVM) Canada/Atlantic. Таким образом я вижу даты в таймзоне сервера (у которого обычно UTC, но это не важно)
  • https://t.me/clickhouse_ru
    надо проверять на самом последнем 20.4
    если пинг большой до брокера рекомендую влючить комрессию топиков zstd
  • https://t.me/clickhouse_ru
    @denis_nikulnikov #165302 12:58 PM, 05 Jun 2020
    у меня сейчас 20.3.8
  • https://t.me/clickhouse_ru
    @denis_nikulnikov #165303 12:58 PM, 05 Jun 2020
    не такой уж и древний)
  • https://t.me/clickhouse_ru
    @denis_nikulnikov #165304 12:59 PM, 05 Jun 2020
    они в 1 сети пинг маленький
  • https://t.me/clickhouse_ru
    а сколько это в строках 45мбит? в смысле они широкие или узкие?
  • а если написать только так
    use_server_time_zone_for_dates false
    use_server_time_zone false

    клиент будет конвертить от UTC к локальной ТЗ?
  • https://t.me/clickhouse_ru
    @denis_nikulnikov #165307 01:00 PM, 05 Jun 2020
    примерно 12к msg/sec
  • https://t.me/clickhouse_ru
    по моему ошибку напишет что use_time_zone не установлена (я проверял 2 года назад)
  • https://t.me/clickhouse_ru
    параметр у таблицы kafka_max_block_size попробуйте поставить 128к -> 256k
    но вроде 2 кафка таблицы должны тоже помогать
  • https://t.me/clickhouse_ru
    Спасибо за совет, попробую
  • https://t.me/clickhouse_ru
    ну вот поставил я голый кх, на чистый линукс
    он стартовал успешно

    я раскоментивал
    <https_port>8443</https_port>
    <tcp_port_secure>9440</tcp_port_secure>

    рестартую, кх не стартует

    2020.06.05 13:11:15.381770 [ 151662 ] {} <Error> Application: DB::Exception: Listen [::]:8443 failed: Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = SSL context exception: Error loading private key from file /etc/clickhouse-server/server.key: error:02000002:system library::No such file or directory (version 20.4.4.18 (official build))
    2020.06.05 13:11:15.381781 [ 151662 ] {} <Information> Application: shutting down

    не может быть такого что эти настройки раскоментированы, кх стартовал, и при этом не слушает эти порты
  • https://t.me/clickhouse_ru
    да, что-то даже получилось, спасибо))
    как-то можно упростить (например промежуточные имена не нравятся: SELECT name FROM <...> col.1 as _name<...>)?
    SELECT _name as name, _price as price, avg
    FROM (
    SELECT arrayJoin(groupArray((name, price))) as col, col.1 as _name, col.2 as _price, avg(price) as avg
    FROM (
    SELECT arrayJoin([(3, 'a'), (5, 'b'), (3, 'c'), (3, 'd')]) as col, col.1 as price, col.2 as name
    )
    )
    WHERE price > avg;
  • ... ( WITH col.1 as price, col.2 as name
    SELECT arrayJoin([(3, 'a'), (5, 'b'), (3, 'c'), (3, 'd')]) as col, price, name
    ...
  • WITH надо писать на том же уровне, он вниз не пробрасывается
  • https://t.me/clickhouse_ru
    так и не понял, как можно убрать промежуточные имена _name, _price или что-то упростить с with (
    если не затруднит, отредактируйте, плз, мой пример
    PS строчку SELECT arrayJoin([(3, 'a'), (5, 'b') <...> лучше не трогать, это "мок таблица"
  • нашел ошибку

    <Error> Application: Listen [127.0.0.1]:9440 failed: Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = SSL context exception: Error loading private key from file /etc/clickhouse-server/server.key: error:0200000D:system library::Permission denied (version 20.3.8.53 (official build)). If it is an IPv6 or IPv4 address and your host has disabled IPv6 or IPv4, then consider to specify not disabled IPv4 or IPv6 address to listen in <listen_host> element of configuration file. Example for disabled IPv6: <listen_host>0.0.0.0</listen_host> . Example for disabled IPv4: <listen_host>::</listen_host>

    и подскажите пожалуйста как restart делаете?

    я при sudo service clickhouse-server restart ничего не вижу
  • поменял права для сертификатов на clickhouse и завелось
  • https://t.me/clickhouse_ru
    я ошибку в логе смотрел, это копипаста из лога
  • ясно, в итоге тоже там нашел ошибку
    спасибо
  • https://t.me/clickhouse_ru
    @linguaPN #165321 02:23 PM, 05 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @Tigromol #165323 03:19 PM, 05 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @Tigromol #165324 03:20 PM, 05 Jun 2020
    Привет. Начал выполнять запрос, результат которого не влез в оперативную память. После этого, клик сожрал всю оперативку и упал. Каждый раз , когда он перезапускается, он сжирает всю оперативку и сразу падает. Ребут машины не помогает.
  • https://t.me/clickhouse_ru
    странное поведение, а что в логах то?
  • https://t.me/clickhouse_ru
    @unamedrus #165326 03:26 PM, 05 Jun 2020
    какая версия клика? Сколько вообще оперативной памяти на сервере?
  • @alex_ts1 #165327 03:26 PM, 05 Jun 2020
    Joined.
  • я не очень понял вашу проблему если честно, что именно вам мешает в промежуточных именах...
    так достаточно эстетично?
    SELECT name, price, avgPrice
    from (
    SELECT
    groupArray((t.name, t.price)) as col,
    avg(price) as avgPrice
    FROM (-- data simulation
    SELECT arrayJoin([(3, 'a'), (5, 'b'), (3, 'c'), (3, 'd')]) as col, col.1 as price, col.2 as name
    ) as t
    )
    ARRAY JOIN col, col.1 as name, col.2 as price
    WHERE price > avgPrice
  • https://t.me/clickhouse_ru
    а что должно быть? КХ жрет всю память что разрешили, ООМ его убивает
  • https://t.me/clickhouse_ru
    Понимаю, не ожидал что после рестарта он продолжит такое поведение.
    Версия - 20.1.5.26
  • https://t.me/clickhouse_ru
    в каком продолжит? сам запрос не запускается
  • https://t.me/clickhouse_ru
    @unamedrus #165332 03:32 PM, 05 Jun 2020
    А это точно запрос, а не мутация, мердж?
  • https://t.me/clickhouse_ru
    @Tigromol #165333 03:35 PM, 05 Jun 2020
    Тут не могу подсказать. Запрос был инсерт с селектом из таблицы, объём которой больше свободной оперативки.
  • https://t.me/clickhouse_ru
    @unamedrus #165334 03:37 PM, 05 Jun 2020
    но ты говоришь, что ты рестартишь кликхаус, не запуская повторно запрос и он сам по себе падает?
  • https://t.me/clickhouse_ru
    да
  • https://t.me/clickhouse_ru
    почти ) избавился от промежуточных имен, теперь бы не хотелось зависеть от порядка упаковки значений (name, price) при распаковке col.1 as name, col.2 as price, но динамические имена колонок просто так не даются ((
    В боевых условиях полей не 2 )
    SELECT col.1 as name, col.2 as price, avg
    FROM (
    SELECT arrayJoin(groupArray((name, price))) as col, avg(price) as avg
    FROM (
    SELECT arrayJoin([(3, 'a'), (5, 'b'), (3, 'c'), (3, 'd')]) as col, col.1 as price, col.2 as name
    )
    )
    WHERE price > avg;
  • >(name, price) при распаковке col.1 as name, col.2 as price, но динамические имена колонок просто так не даются

    не получится, туплы адресуются только по номеру в тупле, ассоциативной адресации нет.

    но если честно проблема не ясна. Вы будете генерировать кодом или писать руками?
  • https://t.me/clickhouse_ru
    а в логах есть что то интересное?
    Можно в теории очистить таблицу-назначение, маловероятно но вдруг он пытается что то сделать с tmp партами
  • если вас прямо напрягает нумерация - не используйте тупл
  • https://t.me/clickhouse_ru
    В логах один эррор - <Error> void DB::BackgroundProcessingPool::threadFunction(): Code: 240, e.displayText() = DB::ErrnoException: Allocator: Cannot mremap memory chunk from 4.00 GiB to 8.00 GiB., errno: 12, strerror: Cannot allocate memory, Stack trace (when copying this message, always include the lines below):
  • https://t.me/clickhouse_ru
    сколько оперативной памяти на сервере?
  • https://t.me/clickhouse_ru
    @Tigromol #165342 03:44 PM, 05 Jun 2020
    16
  • https://t.me/clickhouse_ru
    @unamedrus #165343 03:45 PM, 05 Jun 2020
    например джойны не учитывают этих ограничений.

    и я бы добавил

    cat /etc/clickhouse-server/conf.d/marks_cache.xml
    <?xml version="1.0"?>
    <yandex>
    <mark_cache_size>256000000</mark_cache_size>
    </yandex>
  • https://t.me/clickhouse_ru
    @unamedrus #165344 03:45 PM, 05 Jun 2020
    попробуй
  • https://t.me/clickhouse_ru
    @unamedrus #165345 03:45 PM, 05 Jun 2020
    но 16гб это мало
  • https://t.me/clickhouse_ru
    @unamedrus #165346 03:46 PM, 05 Jun 2020
    скок записей в таблицах было?
  • https://t.me/clickhouse_ru
    468к
  • https://t.me/clickhouse_ru
    а версия КХ ?
  • https://t.me/clickhouse_ru
    ClickHouse server version 20.1.5.26 (official build).
  • https://t.me/clickhouse_ru
    alter delete запускали?
  • https://t.me/clickhouse_ru
    @Tigromol #165351 03:49 PM, 05 Jun 2020
    нет
  • https://t.me/clickhouse_ru
    можно же двумерные туплы брать: (('name', name), ('price', price)) , чтобы сохранить ассоциацию имя-значение
    Генерировать запросы будем по-разному: и руками, и скриптом
    Проблема сейчас в том, что можно легко ошибиться при перечислении и при рефакторинге
  • https://t.me/clickhouse_ru
    надо больше логов, непоятно что делал <Error> void DB::BackgroundProcessingPool::threadFunction()
    и надо обновлять до 20.1.12.86
  • https://t.me/clickhouse_ru
    Что именно из логов показать, трейсы? не хочется сюда много шума тащить.
  • https://t.me/clickhouse_ru
    ну весь желательно
  • и перебором искать туплы динамически? это какой-то новый уровень оверэнжиниринга, тормозов и доп памяти для запроса (в 2 раза минимум)...
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    зачем искать? ) SELECT col.1.2 as col.1.1, col.2.2 as col.2.1 FROM (SELECT (('name', 1), ('price', 2)) as col) красота же (нет, можно еще лучше), но и так нельзя (
  • я сломался походу, видимо вечер пятницы влияет ))) вон Денни или Дмитрий лучше разберутся )

    делайте уже так если цифры вам совсем спать не дают...
    SELECT
    name,
    priceArr[idx] as price,
    avgPrice
    from (
    SELECT
    groupArray(t.name) as nameArr,
    groupArray(t.price) as priceArr,
    avg(price) as avgPrice
    FROM (-- data simulation
    SELECT arrayJoin([(3, 'a'), (5, 'b'), (3, 'c'), (3, 'd')]) as col, col.1 as price, col.2 as name
    ) as t
    )
    ARRAY JOIN nameArr as name, arrayEnumerate(nameArr) as idx
    WHERE price > avgPrice
  • https://t.me/clickhouse_ru
    ну это мерж таблицы search_index.vector_index нахрена он памяти столько жрет непонятно, обновитесь сначала.

    в search_index.vector_index есть String поле в котором длинные строки? и сколько там полей в таблице ? примерно?
  • https://t.me/clickhouse_ru
    @Tigromol #165361 04:05 PM, 05 Jun 2020
    нет, там стринги короткие и массивы длинные оч
  • https://t.me/clickhouse_ru
    @Tigromol #165362 04:06 PM, 05 Jun 2020
    Массивы с флотами, весят много.
  • https://t.me/clickhouse_ru
    @den_crane #165363 04:08 PM, 05 Jun 2020
    ну это из-за массивов тогда. Вам надо уменьшать merge_max_block_size например сделать = 500
    https://github.com/den-crane/ClickHouse/blob/master/docs/ru/operations/settings/merge-tree-settings.md#merge_max_block_size-merge-max-block-size
  • https://t.me/clickhouse_ru
    на мой вкус выглядит страшнее, чем обычные туплы с циферками :)
    Да и вообще разве базовый sql позволяет динамические названия?!
  • https://t.me/clickhouse_ru
    @den_crane #165365 04:12 PM, 05 Jun 2020
    я не. читал целиком, если туплы не нравятся

    groupArray((name, price))

    то почему не groupArray(price), groupArray(name)
  • там походу динамическое программирование требуется
  • https://t.me/clickhouse_ru
    я вообще sql запросы не пишу руками, поэтому претензия непонятна ща
  • нет, но что-то типа
    tuple.name1
    удобная штука
  • ну, а там руками хочется чтоб люди не ошибались с номерами
  • https://t.me/clickhouse_ru
    на самом деле если у него динамическое построение запроса, что мешает просто везде использовать один и тот же массив правильным образом для подстановки
  • @dj_mixer #165371 04:15 PM, 05 Jun 2020
    защита от кривых рук наверно
    https://t.me/clickhouse_ru/165352
    Artsiom Ivanov in ClickHouse не тормозит

    можно же двумерные туплы брать: (('name', name), ('price', price)) , чтобы сохранить ассоциацию имя-значение Генерировать запросы будем по-разному: и руками, и скриптом Проблема сейчас в том, что можно легко ошибиться при перечислении и при рефакторинге

  • https://t.me/clickhouse_ru
    Спасибо, помогло.
  • @kosa_98 #165373 06:03 PM, 05 Jun 2020
    Joined.
  • @Zero32167 #165374 06:18 PM, 05 Jun 2020
    Joined.
  • @253072124 #165375 07:44 PM, 05 Jun 2020
    Скажите, пожалуйста, стоит ли пытаться реализовывать ETL процессы по агрегации данных, используя Clickhouse? Или более лучшей практикой будет использование сторонних инструментов для загрузки уже подготовленных данных в агрегированном виде в БД?
  • https://t.me/clickhouse_ru
    смотря, какая агрегация? JOIN ить множество таблиц? лучше до кликхауса.
    Считать всякие avg по GROUP BY, для этого есть отличные mat View
  • @253072124 #165377 07:45 PM, 05 Jun 2020
    Join-ы
  • @253072124 #165378 07:46 PM, 05 Jun 2020
    Очень больших таблиц
  • https://t.me/clickhouse_ru
    @unamedrus #165379 07:47 PM, 05 Jun 2020
    Лучше до кликхауса, впрочем если были бы маленькие таблицы справа, то можно попробовать было бы dictionary
  • @253072124 #165380 07:53 PM, 05 Jun 2020
    То есть для примера если у меня есть две огромные таблицы, которые хранят начало и конец сессий, то лучше писать все в одну и на одной таблице через аналитику получать данные требуемые о начале о конце каждой из сессий
  • @253072124 #165381 07:53 PM, 05 Jun 2020
    Верно?
  • https://t.me/clickhouse_ru
    @nyoroon #165382 07:54 PM, 05 Jun 2020
    да
  • https://t.me/clickhouse_ru
    @unamedrus #165383 07:54 PM, 05 Jun 2020
    У тебя отдельная таблица для начала и конца сессий?
  • @253072124 #165384 07:54 PM, 05 Jun 2020
    Да
  • https://t.me/clickhouse_ru
    @unamedrus #165385 07:54 PM, 05 Jun 2020
    Вообще кликхаус тяготеет к хранению всего в 1 широкой таблице
  • @253072124 #165386 07:54 PM, 05 Jun 2020
    Разработчики так создали
  • https://t.me/clickhouse_ru
    ну можно либо разрабов упросить писать все в 1 таблицу, либо через MV направить все туда. но это костыль
  • https://t.me/clickhouse_ru
    @nyoroon #165388 07:56 PM, 05 Jun 2020
  • @253072124 #165389 07:56 PM, 05 Jun 2020
    👌
  • @253072124 #165390 07:57 PM, 05 Jun 2020
    Спасибо за информацию
  • https://t.me/clickhouse_ru
    @AvadaKebaba #165391 09:30 PM, 05 Jun 2020
    В clickhouse как то можно установить требования к паролям уз?
  • https://t.me/clickhouse_ru
    Нет, rbac еще только-только впилили.
  • https://t.me/clickhouse_ru
    @NordLuf_work #165393 09:41 PM, 05 Jun 2020
    Добрый ночи
    А есть возможность сделать ASOF JOIN так, чтобы для отсутствующих в правой таблице записях возвращать записи из левой с нулевыми значениями из правой? (ну то есть outer)
  • https://t.me/clickhouse_ru
    ASOF LEFT JOIN ?
  • https://t.me/clickhouse_ru
    @NordLuf_work #165395 09:52 PM, 05 Jun 2020
    Спасибо! (мне непередаваемо стыдно что я попробовал всё кроме этого очевидного варианта)
  • 06 June 2020 (31 messages)
  • @448733735 #165396 01:31 AM, 06 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @SergeyLossev #165397 09:34 AM, 06 Jun 2020
    Ребят, как переименовать таблицу?

    DB::Exception: WRITE locking attempt on "data_flat.flat_temp" has timed out! (120000ms) Possible deadlock avoided. Client should retry. (version 20.4.2.9 (official build))
  • https://t.me/clickhouse_ru
    @SergeyLossev #165398 09:35 AM, 06 Jun 2020
    Может, сервис рестартануть? А данные не покорраптятся?
  • https://t.me/clickhouse_ru
    вообще ничего страшного в этой ошибке нет
  • https://t.me/clickhouse_ru
    @unamedrus #165400 09:44 AM, 06 Jun 2020
    ты делал ALTER TABLE?
  • https://t.me/clickhouse_ru
    @SergeyLossev #165401 09:44 AM, 06 Jun 2020
    ага
  • https://t.me/clickhouse_ru
    @SergeyLossev #165402 09:45 AM, 06 Jun 2020
    Вернее, вот так
    RENAME TABLE data_flat.flat_temp TO data_flat.flat_temp_old
  • https://t.me/clickhouse_ru
    @unamedrus #165403 09:46 AM, 06 Jun 2020
    ALTER TABLE занимает некоторое место в очереди между обычными запросами, и в этом случае не дождался ее похоже
  • https://t.me/clickhouse_ru
    @SergeyLossev #165404 09:47 AM, 06 Jun 2020
    Я удалял данные из таблицы, вернее, переносил из одной в другую. Потом решил переименовать. А она ну ни в какую. Даже с интервалом в несколько часов делал - думал, может, если какой процесс ещё не закончился
  • https://t.me/clickhouse_ru
    @unamedrus #165405 09:50 AM, 06 Jun 2020
    мх, вообще это означает. что клик не может взять лок на эту таблицу
  • https://t.me/clickhouse_ru
    @unamedrus #165406 09:51 AM, 06 Jun 2020
    можно попробовать рестартнуть сервис и быстро ее rename, или может DETACH ATTACH сделать таблицы
  • https://t.me/clickhouse_ru
    @unamedrus #165407 09:51 AM, 06 Jun 2020
    но скорее проще всего убрать запросы к ней:)
    и зависит от того, какие у тебя есть возможности
  • https://t.me/clickhouse_ru
    Кстати, аттач/детач тоже не смог сделать - пишет ту же ошибку, только на READ. Собственно, поэтому и пришлось переносить в другую таблицу с изменённой структурой - не детачит и всё тут. Хотел расширить количество значений под enum, участвующем в партиционировании, изменив *.sql в метадате. Ну так вот, на мелких тестовых таблицах сработало, а на боевой огромной не получилось. Пришлось создавать новую с обновлённой структурой, а потом селектить/инсертить. Но старую, блин, даже пустую переименовать не могу (((
  • https://t.me/clickhouse_ru
    @unamedrus #165409 10:09 AM, 06 Jun 2020
    SELECT * FROM system.processes WHERE query LIKE '%data_flat.flat_temp%';
  • @584803022 #165412 05:50 PM, 06 Jun 2020
    Посоветуйте как лучше сделать.
    Есть 7 числовых фильтров - countryId, browserId, OsId и т.д.

    Их все можно запихать битовой маской в uint32.
    В реалиях КХ лучше сделать 7 отдельных колонок uint8 или одно поле с маской uint32 ?

    Если важно - эти фильтры будут частью primary key.

    Кроме страны, которая 8 бит, остальные фильтры от 1-го бита до 5.
  • https://t.me/clickhouse_ru
    @andreysenko #165413 06:18 PM, 06 Jun 2020
    Сорри за офф, очнадр

    Привет.
    Не подскажете, программа для такого кейса:
    Есть mp4, штук 10 и минут на 30,
    Надо на выходе получить одно видео, на 3 минуты и со своим аудиорядом.
    Ну и без ватермарки и т.п.,
    Желательно под убунту :-)
  • https://t.me/clickhouse_ru
    @387452444 #165414 06:50 PM, 06 Jun 2020
    ffmpeg
  • 7 отдельных колонок дают меньше гемора, но больше по памяти и диску... если данные влезают лучше не велосипедить. чтобы индекс полезней работал хорошо лучше сортировать по колонкам с низким кардиналити (ставить их вначале)
  • @dj_mixer #165416 06:54 PM, 06 Jun 2020
    коротко говоря, вы не получите прирост в скорости или экономию места "на порядок", если будете мучать битмап...
  • https://t.me/clickhouse_ru
    ffmpeg
  • https://t.me/clickhouse_ru
    @andreysenko #165418 07:00 PM, 06 Jun 2020
    Al T @nyoroon
    Спасибо большое!
  • Спасибо.
    А вообще надо потестить для себя чтоб снять вопросы.
    По диску разницы может особой и не быть из-за поколоночного сжатия, а вот в памяти при select'e (после распаковки) отдельные колонки должны больше занимать.
  • да, если не упираетесь, то оно того не будет стоить... ну и менять индивидуальные колонки проще чем битмапы
  • Пока никуда не упираемся, этап проектирования )
    Ожидается до 100M записей в сутки в SummaryMergeTree.
    Крутиться будет в облаке, диск можно расширять до определённых пределов (iops'ы тоже), ядер до 64-х на одном тазике.

    Характер нагрузки - постоянная запись пачками десятков тысяч строк, относительно редкие чтения со сканированием в пределах 1M-100M записей.

    В SummaryMergeTree первичный ключ 12 колонок (если эти фильтры отдельными столбцами делать). Отсюда и возник вопрос, может его урезать за счёт битовой маски.

    В общем лучше протестировать разные варианты и на числа тогда смотреть.
  • https://t.me/clickhouse_ru
    можно разделить PK и ORDER BY
    если часть столбцов нужна только для сортировки
  • @584803022 #165423 08:02 PM, 06 Jun 2020
    Сортировки нет, только группировка по координатам.
    Если кратко, то хранить перемещения мышки. Решено не хранить с точностью до пикселя, достаточно привязки к сетке 15х15 пикселей + счётчик, чтоб уменьшить количество данных. И нужен ряд фильтров: броузер, ос, и т.д.
    Отсюда возникла схема с Summary таблицей и индексом:
    pageId,date,deviceTypeId,coordX,coordY,country,browser,os,... + count поле.
    По полям pageId,date,deviceTypeId всегда будет условие в where. По остальным опционально. Все эти поля будут входить в group by и выбираться coordX,coordY,sum(count)
  • Не парьтесь, делайте отдельные колонки. На порядок не будет изменений, слишком мало колонок у вас.
  • https://t.me/clickhouse_ru
    я бы попробовал
    partition by date
    primary key pageId,deviceTypeId,country
    order by pageId,deviceTypeId,country,browser,os,coordX,coordY
  • @584803022 #165426 09:41 PM, 06 Jun 2020
    Всем спасибо, будем пробовать
  • https://t.me/clickhouse_ru
    @orantius #165427 09:59 PM, 06 Jun 2020
    >Ожидается до 100M записей в сутки в SummaryMergeTree.
    >Если кратко, то хранить перемещения мышки.
    перемещений мышки может хоть на одной вкладке быть 10к
  • @584803022 #165428 10:32 PM, 06 Jun 2020
    Перемещений да, группируются в блоки по 15x15 пикселей. Хранится счётчик для блока, а не перемещения в сыром виде. Для всех пользователей андроида из одной страны в сутки в рамках одной страницы пусть будет 15К записей. Но вообще, конечно фильтры (срезы) очень сильно добавляют данных. Опять же, на лавры Гугла/Яндекса не претендуем, трекать весь мир планов нет. А оценка в 100M/сутки, выглядит для старта скорее даже завышенной в конкретно наших реалиях.
  • 07 June 2020 (55 messages)
  • https://t.me/clickhouse_ru
    @Mikhastos #165429 01:29 AM, 07 Jun 2020
    Joined.
  • @softbot_xxl #165430 07:40 AM, 07 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @JonParker1337 #165431 02:03 PM, 07 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @uranium_235 #165432 04:24 PM, 07 Jun 2020
    С чем может быть связана эта ошибка?
    Code: 159, e.displayText() = DB::Exception: Timeout exceeded: elapsed 5.00045659 seconds, maximum: 5: While executing MergeTreeThread (version 20.3.7.46 (official build))
  • https://t.me/clickhouse_ru
    @uranium_235 #165433 04:24 PM, 07 Jun 2020
    Делаю select'ы с union'ами. На выходе около 3 млн строк должно получиться. Запрос то отрабатывает, то не отрабатывает
  • https://t.me/clickhouse_ru
    @uranium_235 #165434 04:25 PM, 07 Jun 2020
    Если отрабатывает, то секунд за 30
  • https://t.me/clickhouse_ru
    @387452444 #165435 05:02 PM, 07 Jun 2020
    безотносительно к ошибке, хочется узнать 3 миллиона строк куда потом?
  • https://t.me/clickhouse_ru
    @387452444 #165436 05:02 PM, 07 Jun 2020
    это ETL у вас?
  • https://t.me/clickhouse_ru
    @uranium_235 #165437 05:25 PM, 07 Jun 2020
    В Табло)
  • https://t.me/clickhouse_ru
    а таблу нормально от 3м точек? в интернетах больше ~500к в принципе не рекомендуют.
  • https://t.me/clickhouse_ru
    @uranium_235 #165439 05:28 PM, 07 Jun 2020
    Да, нормально. Я тестирую запрос через tabix или datagrip
  • https://t.me/clickhouse_ru
    @387452444 #165440 05:28 PM, 07 Jun 2020
    да тут просто гонять 3 миллиона на каждый чих табло
  • https://t.me/clickhouse_ru
    @uranium_235 #165441 05:29 PM, 07 Jun 2020
    Не, там если extract сделать, то табло локальную копию таблицы из запроса сохранит у себя
  • https://t.me/clickhouse_ru
    @oroborosus #165442 05:30 PM, 07 Jun 2020
    на экстракт нормально. Я думал, вы отчёт строите. А зачем кх, если экстракт? Или кх является и хранилищем тоже?
  • https://t.me/clickhouse_ru
    @uranium_235 #165443 05:31 PM, 07 Jun 2020
    Кх - хранилище
  • https://t.me/clickhouse_ru
    @uranium_235 #165444 05:31 PM, 07 Jun 2020
    Ну так вот, почему-то через datagrip sql запрос исполняется на 9/10 union all, а через tabix, на 3-[ union уже timeout вылезает
  • https://t.me/clickhouse_ru
    @oroborosus #165445 05:31 PM, 07 Jun 2020
    по ошибке: в кх очень много разных таймаутов. Я бы сделал select * from system.settings и поискал бы 5 или 5000. Точнее, к сожалению, не знаю
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @uranium_235 #165447 05:36 PM, 07 Jun 2020
    И вот 5000. Вроде, все не то
  • https://t.me/clickhouse_ru
    @unamedrus #165448 05:38 PM, 07 Jun 2020
    попробуй сделать log_level trace
    и отследить этот запрос в логах?
  • https://t.me/clickhouse_ru
    в табиксе настройка справа в верху, под шестеренкой
  • https://t.me/clickhouse_ru
    @uranium_235 #165450 05:56 PM, 07 Jun 2020
    Опа
  • https://t.me/clickhouse_ru
    @den_crane #165451 05:56 PM, 07 Jun 2020
    раз в неделю в этом чате этот вопрос.
  • https://t.me/clickhouse_ru
    @uranium_235 #165452 05:56 PM, 07 Jun 2020
    Все отработало
  • https://t.me/clickhouse_ru
    @den_crane #165453 05:57 PM, 07 Jun 2020
    я честно ни разу в жизни табикса не видел, но ответ уже запомнил
  • https://t.me/clickhouse_ru
    @uranium_235 #165454 05:57 PM, 07 Jun 2020
    Странно
  • https://t.me/clickhouse_ru
    @uranium_235 #165455 05:57 PM, 07 Jun 2020
    Спасибо)
  • https://t.me/clickhouse_ru
    @dergilev87 #165456 06:13 PM, 07 Jun 2020
    Курсы по бигдата

    Данный курс сделает из вас специалиста за 10 мин

  • https://t.me/clickhouse_ru
    @dergilev87 #165457 06:13 PM, 07 Jun 2020
    Немного юмора:)
  • https://t.me/clickhouse_ru
    Тут еще одна ошибка вылезла. Запрос работает, если делать select count(), но падает, если сделать select *

    select count()
    from (
    select A, B, C
    from table1

    union all

    select A, B, C
    from table2
    )
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @uranium_235 #165460 06:51 PM, 07 Jun 2020
    Invalid status for associated output
  • https://t.me/clickhouse_ru
    тоже ловил именно такое на юнионе. в районе 20.3.11 или чуть дальше собирались чинить, вроде бы
  • https://t.me/clickhouse_ru
    @oroborosus #165462 06:54 PM, 07 Jun 2020
    баг плавающий. Если все строки в юнионе будут разные, он исчезнет
  • https://t.me/clickhouse_ru
    @uranium_235 #165463 06:55 PM, 07 Jun 2020
    если в обоих union'ах поставить limit 10, то работает
  • https://t.me/clickhouse_ru
    @uranium_235 #165464 06:55 PM, 07 Jun 2020
    А без лимитов - нет)
  • https://t.me/clickhouse_ru
    @uranium_235 #165465 06:57 PM, 07 Jun 2020
  • https://t.me/clickhouse_ru
    Это 20.3.7.46
  • https://t.me/clickhouse_ru
    в трекере видел у них уже несколько (других) багов на юнион. Думаю, просто не стоит им пока пользоваться, благо это обычно не сложно.
  • https://t.me/clickhouse_ru
    @den_crane #165468 07:02 PM, 07 Jun 2020
    нету такого бага

    https://github.com/ClickHouse/ClickHouse/issues?q=is%3Aissue+is%3Aopen+%22Invalid+status+for+associated+output%22
    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
    @den_crane #165469 07:02 PM, 07 Jun 2020
    надо заводить и воспроизводить
  • https://t.me/clickhouse_ru
    @den_crane #165470 07:02 PM, 07 Jun 2020
    какая структура у таблицы?
  • @479837600 #165471 07:04 PM, 07 Jun 2020
    Друзья, братья, коллеги и просто неравнодушные, подскажите какой движок лучше использовать для небольшой таблички(по факту словарь) которую надо будет джойнить? Dictionary, как я понял, для внешних словарей. Если нет, подправьте.
  • https://t.me/clickhouse_ru
    А фикс есть: https://github.com/ClickHouse/ClickHouse/pull/11200
    Скорее всего это про это
    Fix StrictResize by KochetovNicolai · Pull Request #11200 · ClickHouse/ClickHouse

    I hereby agree to the terms of the CLA available at: https://yandex.ru/legal/cla/?lang=en Changelog category (leave one): Bug Fix Changelog entry (a user-readable short description of the changes...

  • https://t.me/clickhouse_ru
    можно словарь на local сделать, и не надо делать join, делайте dictGet, он в тысячи раз быстрее https://gist.github.com/den-crane/3cf085dc0e36d9c51bde825aa72a8ae9#file-flows-sql-L8
  • https://t.me/clickhouse_ru
    Ща, сек. Проверю кое-что еще
  • Спасибо, увидел кое что новое))
  • https://t.me/clickhouse_ru
    @ser_gray #165476 09:59 PM, 07 Jun 2020
    Joined.
  • @479837600 #165477 10:57 PM, 07 Jun 2020
    Кто нибудь знает почему запрос create dictionary my_dic ( id Uint64, attr String, attr2 String) выдает ошибку: Incorrect CREATE query: required list of column descriptions or AS section or SELECT?
  • https://t.me/clickhouse_ru
    @orantius #165478 11:00 PM, 07 Jun 2020
    версия какая
  • А как посмотреть?
  • https://t.me/clickhouse_ru
    @orantius #165480 11:05 PM, 07 Jun 2020
    select version()
  • @479837600 #165481 11:05 PM, 07 Jun 2020
    19.16.12.49
  • https://t.me/clickhouse_ru
    @orantius #165482 11:08 PM, 07 Jun 2020
    может там еще нельзя было
  • Ты прав, спасибо😊
  • 08 June 2020 (292 messages)
  • https://t.me/clickhouse_ru
    Лёёё... вот что самоизоляция делает с людьми 😂😂😂
  • @anton_vishnevski #165487 12:22 AM, 08 Jun 2020
    😂😅😭
  • https://t.me/clickhouse_ru
    @combot #165490 b o t 01:41 AM, 08 Jun 2020
    Total messages: 165489
  • @a_shakirzyanov #165491 06:51 AM, 08 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @peter_ll #165492 08:00 AM, 08 Jun 2020
    Ребята, подскажите плиз:
    делаю инсерт в дистрибьютед (12 шардов, распределена по sipHash64(id), смотрит в ReplacingMergeTree)
    с SETTINGS insert_distributed_sync=1
    и есть подозрение что инсерт-запрос все-же не дожидается завершения и отдает управление скрипту как отлько поставлено в очередь

    как проверить / где искать подводные камини?
  • @479837600 #165493 08:05 AM, 08 Jun 2020
    Подскажите, пожалуйста, как обновить кликхаус имея rpm пакеты но без доступа к интернету на CentOS
  • @479837600 #165494 08:05 AM, 08 Jun 2020
    ?
  • @479837600 #165495 08:05 AM, 08 Jun 2020
    Так чтобы конфиги и все остальное не сломалось
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #165495 #165496 08:06 AM, 08 Jun 2020
    забекапьте конфиги, после обновления rpm раскатайте обратно.
    А вообще их лучше не править, а оверрайдить через conf.d
  • Кого их?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #165497 #165498 08:07 AM, 08 Jun 2020
    конфиги
  • Кроме конфигов что то ещё может сломаться?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #165499 #165500 08:12 AM, 08 Jun 2020
    В идеале еще бы и данные забекапить.
  • А обновлять то как? Yum install?
  • https://t.me/clickhouse_ru
    SYSTEM | ClickHouse Documentation

    SYSTEM Statements The list of available SYSTEM statements: RELOAD EMBEDDED DICTIONARIES RELOAD DICTIONARIES RELOAD DICTI

  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #165501 #165503 08:13 AM, 08 Jun 2020
    yum localinstall наверное
  • @iureva #165504 08:13 AM, 08 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @unamedrus #165505 08:13 AM, 08 Jun 2020
    можно попробовать поставить и посмотреть, вернет ли кликхаус управление в этом случае, но тут еще возможно эта команда не влияет при insert_distributed_sync=1
  • У меня кликхаус сервер и кликхаус коммон статик не хотят обновляться, ругаясь друг на друга(
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #165506 #165507 08:17 AM, 08 Jun 2020
    ошибка то какая?
  • https://t.me/clickhouse_ru
    спасибо, буду пробовать
  • Типа новая версия одного не подходит для старой версии другого и наоборот
  • https://t.me/clickhouse_ru
    хороший Insert выполняется стримабл, он просто не видит settings в конце. Настройку через урл или set или профиль надо задать
  • https://t.me/clickhouse_ru
    Одновременно надо три пакета перечислить
  • Спасибо🙏
  • https://t.me/clickhouse_ru
    спасибо
    попробую посетать на коннекте / перед запросом
    * но запрос видит сеттинг distributed_product_mode='allow' оттуда-же из сеттингов в хвосте
  • https://t.me/clickhouse_ru
    @massimovs #165514 08:29 AM, 08 Jun 2020
    А куда можно обратиться с повторяющимся багом, на который никто не ответил в данном канале?
  • https://t.me/clickhouse_ru
    Мы видимо про разные инсерты говорим.
  • https://t.me/clickhouse_ru
    Путину можно письмо написать, но лучше тикет в гитхаб.
  • https://t.me/clickhouse_ru
    спасибо
  • https://t.me/clickhouse_ru
    @DimaVS #165518 08:37 AM, 08 Jun 2020
    всем привет! подскажите, пожалуйста, почему не обновляется МВ? есть предположение, что, так как записи добавляются построчно, то используемый фильтр автоматически их фильтрует. можно ли как-то это обойти? текст запроса привожу ниже

    CREATE MATERIALIZED VIEW retained_users
    engine = AggregatingMergeTree order by(
    city_id
    ,initial_date
    ,retention_date
    ,retention
    )
    populate
    as
    select
    city_id
    ,udate[1] as initial_date
    ,date as retention_date
    ,date - udate[1] as retention
    ,countState(user_id) as retained_users_cnt
    from(
    select city_id
    ,user_id
    ,arraySort(arrayReduce('groupUniqArray', groupArray(date))) as udate
    ,arrayEnumerate(udate) as dindex
    ,arrayFilter(date, index -> (udate[index] - udate[1] == 1) or
    (udate[index] - udate[1] == 3) or (udate[index] - udate[1] == 7) or
    (udate[index] - udate[1] == 14) or (udate[index] - udate[1] == 28) or
    (udate[index] - udate[1] == 60) or (udate[index] - udate[1] == 90) or
    (udate[index] - udate[1] == 180) or (udate[index] - udate[1] == 360),
    udate, dindex) as udate_filter
    from table_users
    group by user_id
    ,city_id
    )
    array join udate_filter as date
    group by
    city_id
    ,udate[1]
    ,date
    ,date - udate[1];
  • https://t.me/clickhouse_ru
    Mv применяется к данным инсерта, таблица не читается
  • https://t.me/clickhouse_ru
    @DimaVS ↶ Reply to #165519 #165520 08:40 AM, 08 Jun 2020
    Спасибо. Собственно так и думал. Можно это как-то обойти?
  • https://t.me/clickhouse_ru
    @ukchuvrus #165521 08:41 AM, 08 Jun 2020
    Ребят, привет!
    Запустил optimize table my_table final deduplicate;

    смотрю

    SELECT *
    from system.replication_queue
    order by create_time
    LIMIT 100

    Code: 365, e.displayText() = DB::Exception: Output of TreeExecutor is not sorted (version 20.4.4.18 (official build))
    Такая ошибка во всех строках
  • https://t.me/clickhouse_ru
    @ukchuvrus #165522 08:41 AM, 08 Jun 2020
    с чем может быть связано
  • https://t.me/clickhouse_ru
    @den_crane #165523 08:42 AM, 08 Jun 2020
    mv сделан как триггер на инсерт.
    Вам нужно что-то другое. Наверное по крону как-то обновлять
  • https://t.me/clickhouse_ru
    @ukchuvrus #165524 08:46 AM, 08 Jun 2020
    Из-за этого ещё и запросы все стали отваливаться с разными ошибками. Может можно откатить как-то оптимайз
  • https://t.me/clickhouse_ru
    Попробуйте system stop merges таблица. Поторм назад старт. Если не поможет то надо детачить таблицы и удалять из зукипера
  • https://t.me/clickhouse_ru
    @ukchuvrus #165526 08:50 AM, 08 Jun 2020
    А если не стартовать то состояние будет поломанное?
  • https://t.me/clickhouse_ru
    Старт я про system start merges
  • https://t.me/clickhouse_ru
    @DimaVS ↶ Reply to #165523 #165528 08:52 AM, 08 Jun 2020
    спасибо
  • https://t.me/clickhouse_ru
    а вы раньше запускали такой optimize? Какая версия кх была до этого?
  • https://t.me/clickhouse_ru
    @ukchuvrus #165531 08:55 AM, 08 Jun 2020
    нет
  • https://t.me/clickhouse_ru
    вроде никакого эффекта не оказало
  • https://t.me/clickhouse_ru
    @ukchuvrus #165533 08:55 AM, 08 Jun 2020
    is_currently_executing = 1 нет строк
  • https://t.me/clickhouse_ru
    20.3.8
  • https://t.me/clickhouse_ru
    может stop replication queue можно попробовать?
  • https://t.me/clickhouse_ru
    Из зукипера надо удалять этот мерж
  • https://t.me/clickhouse_ru
    @ukchuvrus #165537 09:11 AM, 08 Jun 2020
    какие еще есть идеи?
  • @iureva #165538 09:11 AM, 08 Jun 2020
    Добрый день.
    Можно однозначно сказать какой кодек подходит для поля DateTime, которое не входит в ORDER BY?
  • https://t.me/clickhouse_ru
    @ukchuvrus #165539 09:11 AM, 08 Jun 2020
    почему вообще эта ошибка может возникать?
  • https://t.me/clickhouse_ru
    @ukchuvrus #165540 09:11 AM, 08 Jun 2020
    у меня были мутации, я удалял часть данных
  • https://t.me/clickhouse_ru
    @ukchuvrus #165541 09:12 AM, 08 Jun 2020
    но насколько я понимаю, это не должно приводить к таким проблемам
  • https://t.me/clickhouse_ru
    В версии 20.1 удаляли?
  • https://t.me/clickhouse_ru
    Zstd
  • https://t.me/clickhouse_ru
    20.3.4.10-2 самая ранняя
  • https://t.me/clickhouse_ru
    Значит какой-то баг в 20.4
  • https://t.me/clickhouse_ru
    @ukchuvrus #165546 09:16 AM, 08 Jun 2020
    я еще не очень понимаю, в каком состоянии сейчас таблица, от мержей ведь не может ничего сломаться?
  • https://t.me/clickhouse_ru
    @ukchuvrus #165547 09:16 AM, 08 Jun 2020
    могу я просто переналить таблицу?
  • https://t.me/clickhouse_ru
    @ukchuvrus #165548 09:16 AM, 08 Jun 2020
    операция слияния мержей атомарная?
  • https://t.me/clickhouse_ru
    да удалите мерж. В зукипере znode типа такого /clickhouse/{CLUSTER}/tables/6/{TABLE}/replicas/{NODE}/queue/queue-0002370007
  • https://t.me/clickhouse_ru
    @ukchuvrus #165550 09:19 AM, 08 Jun 2020
    окей, а в самом кликхаусе ничего делать не надо?
  • https://t.me/clickhouse_ru
    Detach table / attach
  • https://t.me/clickhouse_ru
    @ukchuvrus #165552 09:19 AM, 08 Jun 2020
    окей, спасибо
  • https://t.me/clickhouse_ru
    а в каком порядке надо делать detach/attach и удаление из зк
  • https://t.me/clickhouse_ru
    Сначала удаление
  • https://t.me/clickhouse_ru
    @ukchuvrus #165555 09:31 AM, 08 Jun 2020
    у меня еще висят инсерты не добавленные в очереди
  • https://t.me/clickhouse_ru
    @ukchuvrus #165556 09:31 AM, 08 Jun 2020
    я могу их не удалять?
  • https://t.me/clickhouse_ru
    @yovgen #165557 09:33 AM, 08 Jun 2020
    привет. Сорри за нубский вопрос.
    Есть распределенный во времени поток событий в базу.

    Базу хочется правильно бекапить - ка клучше это делать? По планировщику вызывать некую встроенную бекапилку или писать обычный скрипт?
    Если бекап таблицы случился одновременно с попыткой записать туда - что будет?
  • https://t.me/clickhouse_ru
    а если их удалить, то как мне потом синхронизировать реплики? или они сами разберутся?
  • https://t.me/clickhouse_ru
    Базу хочется правильно бекапить - ка клучше это делать? По планировщику вызывать некую встроенную бекапилку или писать обычный скрипт?
    Зависит от размера базы и куда бекапить.
    Для относительно небольших баз clickhouse-backup может подойти
    еще можно сделать свою логику через FREEZE table

    Если бекап таблицы случился одновременно с попыткой записать туда - что будет?
    те данные, что записываются не попадут в бекап
  • https://t.me/clickhouse_ru
    @yovgen ↶ Reply to #165559 #165560 09:43 AM, 08 Jun 2020
    ++
  • https://t.me/clickhouse_ru
    clickhouse-backup create <название бекапа> (почитай какие ключи и как тебе подходит)
    копируешь /var/lib/clickhouse/backup/<название бекапа> на удаленное хранилище
    clickhouse-backup delete <название бекапа> созданный бекап
  • Подскажите для каких объёмов clickhouse-backup уже не подходит? И как лучше бэкапить в этом случае?
  • https://t.me/clickhouse_ru
    ну у меня на базе с 1тб данными (это размер 1 шарда), пришлось чутка перепиливать clickhouse-backup, что бы данные бекапились по партам и инкременты соответственно по ним же делались.

    Но я потом отказался от clickhouse-backup в сторону реплики на ZFS и снапшоты
  • а реплика в том же кластере или через copier наливается?
  • https://t.me/clickhouse_ru
    она наливается через протокол репликации, но она не в 'кластере'
  • https://t.me/clickhouse_ru
    @elise_azure #165566 09:48 AM, 08 Jun 2020
    привет в очередной раз)
    у кого-нибудь есть предположение, почему размер засечек увеличивается в 2 раза при переходе от строк или enum'ов к LowCardinality?
  • https://t.me/clickhouse_ru
    @omikuro #165567 09:49 AM, 08 Jun 2020
    Коллеги всем доброго дня, подскажите, кто либо пробовал данные из амо передавать в кликхаус а оттуда в power bi?)
  • https://t.me/clickhouse_ru
    ну для low_cardinality надо хранить и айдшник в словаре и сам словарь(для каждого парта).
    причем в отличии от enum там скорее всего айдишник больше
  • https://t.me/clickhouse_ru
    @elise_azure #165569 09:50 AM, 08 Jun 2020
    размер колонки на диске не меняется относительно enum
    только размер файла с засечками
  • https://t.me/clickhouse_ru
    @elise_azure #165570 09:50 AM, 08 Jun 2020
    зачем в засечках хранить что-то из словаря?
  • https://t.me/clickhouse_ru
    @elise_azure #165571 09:51 AM, 08 Jun 2020
    точнее, при переходе с енама на словарь размер колонки на диске даже уменьшился (сжатый), а разжатый +- такой же
  • https://t.me/clickhouse_ru
    А, я подумал про хранение в оперативной памяти.
    словарь там хитрый, и их может быть несколько на 1 парт емнип
  • https://t.me/clickhouse_ru
    @DimaVS #165573 09:52 AM, 08 Jun 2020
    Подскажите, пожалуйста, как groupArrayMergeState в groupArray для применения функции arrayEnumarate?
  • https://t.me/clickhouse_ru
    @elise_azure #165574 09:52 AM, 08 Jun 2020
    может быть несколько, если суммарно кол-во записей в словаре превышают сколько-то там
  • https://t.me/clickhouse_ru
    а какой размер enum был? UInt8?
  • https://t.me/clickhouse_ru
    @elise_azure #165576 09:53 AM, 08 Jun 2020
    угу
  • https://t.me/clickhouse_ru
    @elise_azure #165577 09:53 AM, 08 Jun 2020
    по идее засечки состоят из указателя на начало блока с сжатом файле + расжатом
  • https://t.me/clickhouse_ru
    @elise_azure #165578 09:53 AM, 08 Jun 2020
    т.е. их размер то не должен был измениться
  • https://t.me/clickhouse_ru
    @elise_azure #165579 09:53 AM, 08 Jun 2020
    не важно, строки там, словари или числа
  • https://t.me/clickhouse_ru
    Other | ClickHouse Documentation

    Other Functions hostName() Returns a string with the name of the host that this function was performed on. For distribut

  • https://t.me/clickhouse_ru
    @elise_azure #165581 09:56 AM, 08 Jun 2020
    знать бы, в каком формате хранятся засечки, я бы просто файлы сравнил)
  • https://t.me/clickhouse_ru
    mrk2
  • https://t.me/clickhouse_ru
    я лично подумал, что ты говоришь про сам индекс, а не указатели, тогда фиг знает
  • https://t.me/clickhouse_ru
    Только мерж.
  • https://t.me/clickhouse_ru
    @unamedrus #165585 09:57 AM, 08 Jun 2020
    у меня все mrk2 файлы одинакового размера в парте
  • https://t.me/clickhouse_ru
    ты сравниваешь размер засечек в одной и той же таблице?
  • https://t.me/clickhouse_ru
    а в зк можно как-то отличить мерж от инсерта? или это только по табличке надо найти все id и потом идти удалять?
  • https://t.me/clickhouse_ru
    @DimaVS ↶ Reply to #165580 #165588 10:00 AM, 08 Jun 2020
    Спасибо !
  • https://t.me/clickhouse_ru
    По id
  • https://t.me/clickhouse_ru
    у меня 2 таблицы, в одной колонка enum, во второй LowCardinality(String), сравниваю по таблице system.parts_columns
  • https://t.me/clickhouse_ru
    @elise_azure #165591 10:02 AM, 08 Jun 2020
    конкретно поле column_marks_bytes
  • https://t.me/clickhouse_ru
    а кол-во партов одинаковое?
  • https://t.me/clickhouse_ru
    @elise_azure #165593 10:04 AM, 08 Jun 2020
    нет, но одна из таблиц - подмножество второй по набору данных
    я же сравниваю по партициям, а не всю колонку
  • https://t.me/clickhouse_ru
    ок, а кол-во партов в конкретной партиции?
  • https://t.me/clickhouse_ru
    @AnKochem #165595 10:16 AM, 08 Jun 2020
    помню, тут обсуждалось, что мутация вида alter table t delete where field in (select ...) - не работает. (нельзя select писать). И у меня действительно не работало

    А сегодня обнаружил, что такая мутация на другой таблице проходит...
    alter table logs delete where id in ( select id from logs final
    where active_size = 0)
    Че-то не понимаю...
    КХ версии 19
  • https://t.me/clickhouse_ru
    да
  • https://t.me/clickhouse_ru
    и само кол-во засечек одинаковое (marks)?
  • https://t.me/clickhouse_ru
    @elise_azure #165598 10:23 AM, 08 Jun 2020
    ага
  • https://t.me/clickhouse_ru
    @elise_azure #165599 10:25 AM, 08 Jun 2020
    кстати, еще интересная штука
    есть колонка Array(String), которую я решил перевести тоже на словари
    там column_marks_bytes увеличилось не в 2, а в 1,5 раза)
  • @Mustafin #165600 10:26 AM, 08 Jun 2020
    Добрый день!

    У меня есть таблица вида K -> V, по которой получается очень эффективно забирать по условию where select V where K = x. Но иногда возникает необходимость сделать операцию select K where V = x. Я попробовал min/max и bloom_filter индексы, но они не пропускают никакие парты вообще, судя по логам.

    Я настраиваю что-то не так или это ожидаемое поведение и единственное решение — постороить MV/таблицу с обратным ключом?
  • https://t.me/clickhouse_ru
    min/max и bloom_filter индексы
    сильно чувствительны к локальности V, если ее не будет, то они бесполезны и только замедляют

    У меня есть похожий случай и я там просто сделал две таблицы с разным ORDER BY
  • По крону копируете?
  • https://t.me/clickhouse_ru
    @unamedrus #165603 10:29 AM, 08 Jun 2020
    нет, MV AS SELECT * FROM table_k TO table_v
  • @Mustafin #165604 10:30 AM, 08 Jun 2020
    Понял, спасибо
  • @Mustafin #165605 10:31 AM, 08 Jun 2020
    А ngrambf_v1 на полнотекстовом поиске тоже от чего-то зависит или стоит пробовать?
  • https://t.me/clickhouse_ru
    так то есть еще set(0)
    ngrambf_v1 если ты щас говоришь о том же запросе, то полнотекстовый поиск дороговато выходит, имхо
  • У вас изначальная таблица небольшая была, видимо? Или некритично было уже существующие данные потерять?
  • нет, не такой же :)
  • https://t.me/clickhouse_ru
    Это было сделано так изначально.
    щас таблица примерно 500млрд записей
  • https://t.me/clickhouse_ru
    @unamedrus #165610 10:34 AM, 08 Jun 2020
    а так, никто не мешает перелить старые данные в том, числе
  • clickhouse-copier с source=target?
  • https://t.me/clickhouse_ru
    я clickhouse-copier не пользовался, не скажу насколько это оптимально будет
  • @Mustafin #165613 10:36 AM, 08 Jun 2020
    Это такая умная обертка вокруг insert .. select, если проще говорить
  • https://t.me/clickhouse_ru
    есть какая то корреляция между K и V?
  • @Mustafin #165615 10:36 AM, 08 Jun 2020
    нет, просто инты
  • https://t.me/clickhouse_ru
    Ну это я знаю, но люди от нее не в восторге и сами пилят аналоги, это я тоже знаю)
  • https://t.me/clickhouse_ru
    @unamedrus #165617 10:38 AM, 08 Jun 2020
    Какого размера таблица?
  • Там миллиардами исчисляются туплы
  • https://t.me/clickhouse_ru
    а сколько колонок в таблице? и сколько ты забираешь только 1?
  • 4 колонки, забираю 1 по условию на другую
  • @Mustafin #165621 10:44 AM, 08 Jun 2020
    По сути это табличка М2М отношения такая
  • https://t.me/clickhouse_ru
    С каким настройками создавал индексы?
  • https://t.me/clickhouse_ru
    @unamedrus #165623 10:44 AM, 08 Jun 2020
    ну выглядит так. что самый быстрый по скорости запроса вариант это создать обратную ей таблицу, тк вторичные индексы никогда такой скорости не достигнут
  • @Mustafin #165624 10:45 AM, 08 Jun 2020
    Хотя бы от фуллскана бы избавиться :)
  • Ага, были такие мысли, пришел уточнить, может быть индексы не так готовлю
  • INDEX bloom_filter_v tuple(v) TYPE bloom_filter GRANULARITY 4
  • @Mustafin #165627 10:46 AM, 08 Jun 2020
    с min/max было так же примерно
  • @Mustafin #165628 10:47 AM, 08 Jun 2020
    Но с min/max не очень идея, все-таки у меня V не лежит в каком-то узком диапазоне
  • https://t.me/clickhouse_ru
    чутка смущает tuple, но я индексы особо не трогал
  • https://t.me/clickhouse_ru
    @unamedrus #165630 10:48 AM, 08 Jun 2020
    гранулярность +-адекватная, боюсь в таком случае помочь нечем:)
  • https://t.me/clickhouse_ru
    @DavidAvagimyan #165631 10:48 AM, 08 Jun 2020
    Всем привет! Не подскажите есть ли возможность группировать данные по неделям? Допустим беру дата сет за 3 месяца и хочу разложить его на 16 частей сгруппированных по 7 дней
  • Спасибо, буду знать, что попробовал все :)
  • https://t.me/clickhouse_ru
    Dates and Times | ClickHouse Documentation

    Functions for Working with Dates and Times Support for time zones. All functions for working with the date and time that

  • https://t.me/clickhouse_ru
    @DavidAvagimyan #165634 10:50 AM, 08 Jun 2020
    toRelativeWeekNum - я так понимаю это то что мне нужно?
  • https://t.me/clickhouse_ru
    ну можно конечно еще уменьшить гранулярность, я еще не уверен, если ты альтером добавлял индексы. создаются ли они для всех партов или только для новых
  • https://t.me/clickhouse_ru
    ну да, смотря какая "неделя" вам нужна
    если вам подходит, то берите
  • Я тут искал уже, писали, что если optimize запустить, то индексы создадутся
  • https://t.me/clickhouse_ru
    а, ну тогда ок
    там вроде была отдельная команда на индексы правда
  • https://t.me/clickhouse_ru
    а индексы не забыли материализовать?
  • Вот может быть и забыл!
    Попробую, спасибо
  • https://t.me/clickhouse_ru
    @387452444 #165641 11:01 AM, 08 Jun 2020
    по умолчанию только новые данные будут индексироваться, да это многие забывают
  • https://t.me/clickhouse_ru
    @DavidAvagimyan #165642 11:06 AM, 08 Jun 2020
    да спасибо, то что нужно было)
  • https://t.me/clickhouse_ru
    @DavidAvagimyan #165643 11:06 AM, 08 Jun 2020
    а, ну тогда ок
    там вроде была отдельная команда на индексы правда
  • https://t.me/clickhouse_ru
    @peter_ll #165644 11:13 AM, 08 Jun 2020
    А подскажите плиз как посмотреть (+ наверн почистить) очередь накопленных асинхронных инсертов?

    а то прилетала корявенькая дата (=колонка партицирования)

    SYSTEM FLUSH DISTRIBUTED lz.distributed_table

    Received exception from server (version 20.1.10):
    Code: 246. DB::Exception: Received from localhost:9000. DB::Exception: Received from 192.168.0.9:9000. DB::Exception: Partition value mismatch between two parts with the same partition ID. Existing part: 21060207-20200603_66880_121440_2570, newly added part: 21060207-20200603_1350_1350_0.

    0 rows in set. Elapsed: 0.282 sec.
  • https://t.me/clickhouse_ru
    @peter_ll #165645 11:14 AM, 08 Jun 2020
    *или просто дропать на шарде партишку?
  • @1215401255 #165646 11:28 AM, 08 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    .bin файлы в папке distributed таблицы
  • https://t.me/clickhouse_ru
    @DimOFFFF #165648 11:42 AM, 08 Jun 2020
    Коллеги, день добрый. Подскажите, пожалуйста, или помогите правильно покурить мануал по внешним словарям. Есть таблица из нее нужно вытащить ID и текст. В тексте лежит JSON, от которого нужно только одно значение. Можно ли это значение вытащить сразу, при формировании словаря или логика CH это не позволяет? Или правильно будет забрать весь JSON и парсить его самим CH? Данные берутся из MySQL
  • https://t.me/clickhouse_ru
    21060207-20200603 такого не должно быть, это баг. Какую дату вставили и какой DDL у таблицы?
  • https://t.me/clickhouse_ru
    можно в expression у атрибута написать выражение.

    <attribute>
    <name>value</name>
    <type>Int32</type>
    <null_value>0</null_value>
    <expression>assumeNotNull(value)</expression>
    </attribute>
  • https://t.me/clickhouse_ru
    на входе unixtime, прилетело некорректное ~64000
    через toDate(64000) →
    SELECT toDate(64000)

    ┌─toDate(64000)─┐
    │ 2106-02-07 │
    └───────────────┘
  • https://t.me/clickhouse_ru
    А там можно вставить что-то вида: JSONExtractBool(JSONExtractString(DATA,'F1'),'F2',F3'))
  • https://t.me/clickhouse_ru
    какой-то ужас бесконечный с этим КХ

    какого хрена toDate принимает и дни и секунды как число
  • https://t.me/clickhouse_ru
    ну да, я это и предложил сделать
  • https://t.me/clickhouse_ru
    show create table можете показать?
  • https://t.me/clickhouse_ru
    Спасибо. Из документации не понял глубину кроличьей норы. Пошел пробовать.
  • https://t.me/clickhouse_ru
    заглянул - орда (13к) файлов .bin
    это залипшие последующие инсерты?
    или только с эксепшеном что свалилось?
  • https://t.me/clickhouse_ru
    ну в логе КХ все ответы, мне его не видно
  • https://t.me/clickhouse_ru
    CREATE TABLE lz.braingame_android_distributed_bigbase12_ets_events (`created_at_dt` Date, `file_dt` Date, `file_hr` UInt8, `created_at` UInt32, `installed_at` UInt32, `adid` FixedString(16), `idfa` FixedString(16), `idfv` FixedString(16), `gps_adid` FixedString(16), `city` String, `country_subdivision` String, `postal_code` String, `session_count` String, `install_finish_time` String, `install_begin_time` String, `app_id` String, `app_name` String, `app_version` String, `app_version_raw` String, `network_name` String, `campaign_name` String, `adgroup_name` String, `creative_name` String, `label` String, `is_organic` String, `gclid` String, `click_referer` String, `android_id` String, `referrer` String, `search_term` String, `country` String, `device_name` String, `device_type` String, `os_name` String, `api_level` String, `sdk_version` String, `os_version` String, `revenue_usd` String, `match_type` String, `activity_kind` String, `event_name` String, `tracker` String, `fb_campaign_group_name` String, `fb_campaign_name` String, `fb_adgroup_name` String, `tweet_id` String, `twitter_line_item_id` String, `connection_type` String, `isp` String, `conversion_duration` String, `last_time_spent` String, `time_spent` String, `lifetime_session_count` String, `source` String, `balance_ver` String, `game_count` String, `time_s` String, `score` String, `block_count` String, `lines` String, `squares` String, `best_score` String, `miss_block0` String, `miss_block1` String, `miss_block2` String, `stage` String, `hints` String, `block_value` String, `remove_ad` String, `count` String, `action` String, `skin_id` String, `prv_skin_id` String, `date` String, `time_05s` String, `day` String, `text` String, `placement` String, `place` String, `networkName` String, `creativeId` String, `orientation` String, `mode` String, `time_1s` String, `line_item_1` String, `line_item_2` String, `type` String, `viewCount` String, `id` String, `reason` String, `connection` String, `screen` String, `app` String, `time_01s` String, `statusCode` String, `errorCode` String, `button` String, `eu` String, `issue` String, `per_user` String, `per_session` String, `interval_renamed` String, `ignore_in_a_row` String, `seq_num` String, `mopub_ilrd_adgroup_id` String, `mopub_ilrd_adgroup_name` String, `mopub_ilrd_adgroup_priority` String, `mopub_ilrd_adgroup_type` String, `mopub_ilrd_adunit_format` String, `mopub_ilrd_adunit_id` String, `mopub_ilrd_adunit_name` String, `mopub_ilrd_country` String, `mopub_ilrd_currency` String, `mopub_ilrd_id` String, `mopub_ilrd_network_name` String, `mopub_ilrd_network_placement_id` String, `mopub_ilrd_precision` String, `mopub_ilrd_publisher_revenue` String, `rewarded` String, `session` String, `applies` String, `lat` String, `personalized_ads` String, `consent_ads_state` String, `consent_easy_state` String, `option_state` String, `pages` String, `region_detection` String, `link` String, `banner_request` String, `banner_loaded` String, `banner_failed` String, `inter_request` String, `inter_loaded` String, `inter_failed` String, `rewarded_request` String, `rewarded_loaded` String, `rewarded_failed` String, `name` String, `level_progress` String, `state` String, `level_id` String, `from` String, `hints_unlock` String, `setting` String, `change_count` String, `tasks` String, `level_number` String, `content_version` String, `download_error` String, `middle` String, `value` String, `balance_version` String, `skip` String, `clickTrackingUrl` String, `test` String, `group` String, `fromScrn` String, `fromCtrl` String, `slideOn` String, `slideTo` String, `monthDif` String, `by` String, `dayDif` String, `month` String, `progress` String, `available` String, `userLvl` String, `cnt` String, `year` String, `game_mode` String, `main` String, `daily` String, `consent_ccpa_state` String, `created_at_micro` UInt64, `source_file_name_for_debug` String, `timezone` String, `impression_id` String, `waterfall` String) ENGINE = Distributed('bigbase12', 'lz', 'braingame_android_shard_bigbase12_ets_events', sipHash64(adid))
  • https://t.me/clickhouse_ru
    это не та таблица, нужен DDL от shard braingame_android_shard_bigbase12_ets_events
  • https://t.me/clickhouse_ru
    CREATE TABLE lz.braingame_android_shard_bigbase12_ets_events (`created_at_dt` Date, `file_dt` Date, `file_hr` UInt8, `created_at` UInt32, `installed_at` UInt32, `adid` FixedString(16), `idfa` FixedString(16), `idfv` FixedString(16), `gps_adid` FixedString(16), `city` String, `country_subdivision` String, `postal_code` String, `session_count` String, `install_finish_time` String, `install_begin_time` String, `app_id` String, `app_name` String, `app_version` String, `app_version_raw` String, `network_name` String, `campaign_name` String, `adgroup_name` String, `creative_name` String, `label` String, `is_organic` String, `gclid` String, `click_referer` String, `android_id` String, `referrer` String, `search_term` String, `country` String, `device_name` String, `device_type` String, `os_name` String, `api_level` String, `sdk_version` String, `os_version` String, `revenue_usd` String, `match_type` String, `activity_kind` String, `event_name` String, `tracker` String, `fb_campaign_group_name` String, `fb_campaign_name` String, `fb_adgroup_name` String, `tweet_id` String, `twitter_line_item_id` String, `connection_type` String, `isp` String, `conversion_duration` String, `last_time_spent` String, `time_spent` String, `lifetime_session_count` String, `source` String, `balance_ver` String, `game_count` String, `time_s` String, `score` String, `block_count` String, `lines` String, `squares` String, `best_score` String, `miss_block0` String, `miss_block1` String, `miss_block2` String, `stage` String, `hints` String, `block_value` String, `remove_ad` String, `count` String, `action` String, `skin_id` String, `prv_skin_id` String, `date` String, `time_05s` String, `day` String, `text` String, `placement` String, `place` String, `networkName` String, `creativeId` String, `orientation` String, `mode` String, `time_1s` String, `line_item_1` String, `line_item_2` String, `type` String, `viewCount` String, `id` String, `reason` String, `connection` String, `screen` String, `app` String, `time_01s` String, `statusCode` String, `errorCode` String, `button` String, `eu` String, `issue` String, `per_user` String, `per_session` String, `interval_renamed` String, `ignore_in_a_row` String, `seq_num` String, `mopub_ilrd_adgroup_id` String, `mopub_ilrd_adgroup_name` String, `mopub_ilrd_adgroup_priority` String, `mopub_ilrd_adgroup_type` String, `mopub_ilrd_adunit_format` String, `mopub_ilrd_adunit_id` String, `mopub_ilrd_adunit_name` String, `mopub_ilrd_country` String, `mopub_ilrd_currency` String, `mopub_ilrd_id` String, `mopub_ilrd_network_name` String, `mopub_ilrd_network_placement_id` String, `mopub_ilrd_precision` String, `mopub_ilrd_publisher_revenue` String, `rewarded` String, `session` String, `applies` String, `lat` String, `personalized_ads` String, `consent_ads_state` String, `consent_easy_state` String, `option_state` String, `pages` String, `region_detection` String, `link` String, `banner_request` String, `banner_loaded` String, `banner_failed` String, `inter_request` String, `inter_loaded` String, `inter_failed` String, `rewarded_request` String, `rewarded_loaded` String, `rewarded_failed` String, `idfa__hashed` UUID ALIAS CAST(coalesce(UUIDNumToString(MD5(hex(MD5(hex(MD5(nullif(UUIDNumToString(idfa), '00000000-0000-0000-0000-000000000000'))))))), '00000000-0000-0000-0000-000000000000'), 'UUID'), `idfv__hashed` UUID ALIAS CAST(coalesce(UUIDNumToString(MD5(hex(MD5(hex(MD5(nullif(UUIDNumToString(idfv), '00000000-0000-0000-0000-000000000000'))))))), '00000000-0000-0000-0000-000000000000'), 'UUID'), `gps_adid__hashed` UUID ALIAS CAST(coalesce(UUIDNumToString(MD5(hex(MD5(hex(MD5(nullif(UUIDNumToString(gps_adid), '00000000-0000-0000-0000-000000000000'))))))), '00000000-0000-0000-0000-000000000000'), 'UUID'), `android_id__hashed` UUID ALIAS CAST(coalesce(UUIDNumToString(MD5(hex(MD5(hex(MD5(nullif(lower(android_id), ''))))))), '00000000-0000-0000-0000-000000000000'), 'UUID'), `name` String, `level_progress` String, `state` String, `level_id` String, `from` String, `hints_unlock` String, `setting` String, `change_count` String,
  • https://t.me/clickhouse_ru
    `tasks` String, `level_number` String, `content_version` String, `download_error` String, `middle` String, `value` String, `balance_version` String, `skip` String, `clickTrackingUrl` String, `test` String, `group` String, `fromScrn` String, `fromCtrl` String, `slideOn` String, `slideTo` String, `monthDif` String, `by` String, `dayDif` String, `month` String, `progress` String, `available` String, `userLvl` String, `cnt` String, `year` String, `game_mode` String, `main` String, `daily` String, `consent_ccpa_state` String, `created_at_micro` UInt64, `source_file_name_for_debug` String, `timezone` String, `impression_id` String, `waterfall` String) ENGINE = MergeTree PARTITION BY (created_at_dt, file_dt) ORDER BY (event_name, adid, created_at) SETTINGS index_granularity = 8192
  • https://t.me/clickhouse_ru
    /report
  • https://t.me/clickhouse_ru
    !report
  • https://t.me/clickhouse_ru
    @UglyKoyote #165666 12:08 PM, 08 Jun 2020
    да как тут))
  • https://t.me/clickhouse_ru
    @UglyKoyote #165667 12:08 PM, 08 Jun 2020
    некогда нам, у нас тут насущные проблемы
  • https://t.me/clickhouse_ru
    21060207-20200603

    ааа я понял, (created_at_dt, file_dt), это два разных поля, это не легаси наименование парта

    >Partition value mismatch between two parts with the same partition ID.
    >Existing part: 21060207-20200603_66880_121440_2570, newly added part: 21060207-20200603_1350_1350_0.

    т.е. это вообще не то что я подумал, ясно. Это просто авторинкремент в зукипере с номером блока внезапно стал 1350 хотя уже был 121440.
  • https://t.me/clickhouse_ru
    @sirnie_sosisochki #165669 12:29 PM, 08 Jun 2020
    Всем привет! Ребят, внезапно перестались логироваться запросы в query_log. Никто не сталкивался случайно? Клик не ребутали, конфиги не переччитывали
  • https://t.me/clickhouse_ru
    конфиг сам перечитывается, КХ следит за изменением файла
  • https://t.me/clickhouse_ru
    @sirnie_sosisochki #165671 12:30 PM, 08 Jun 2020
    >не переччитывали
    всмысле файлы не трогались
  • https://t.me/clickhouse_ru
    select * from system.settings WHERE name='log_queries';
  • https://t.me/clickhouse_ru
    @sirnie_sosisochki #165674 12:46 PM, 08 Jun 2020
    Я на это и смотрю) Там 0, changed тоже 0. Но в конфигах все ок и запросы до недавнего времени залетали
  • https://t.me/clickhouse_ru
    @unamedrus #165675 12:46 PM, 08 Jun 2020
    ну, эта настройка может стоять и у профиля пользователя и у конкретного запроса.
  • https://t.me/clickhouse_ru
    @unamedrus #165676 12:47 PM, 08 Jun 2020
    так что, могло там изменится что то
  • https://t.me/clickhouse_ru
    @sirnie_sosisochki #165677 12:48 PM, 08 Jun 2020
    Вот в том то и дело магия какая-то - и в профидле включены и к запросу цепляется log_queries=1
  • https://t.me/clickhouse_ru
    хмм, а если отправить такой запрос с нужным профилем и с цеплянием к запросу?)
    select * from system.settings WHERE name='log_queries';
  • https://t.me/clickhouse_ru
    @unamedrus #165679 12:49 PM, 08 Jun 2020
    вообще никакие запросы не логгируются?
  • https://t.me/clickhouse_ru
    @sirnie_sosisochki #165680 12:50 PM, 08 Jun 2020
    пробовал уже всякие комбинации, запросы никакие не логируются, приччем если глянуть в system.query_log то перестали это делать в один момент на всех репликах
  • https://t.me/clickhouse_ru
    и в тот момент времени ничего с кластером не делалось же?
  • https://t.me/clickhouse_ru
    @unamedrus #165682 12:51 PM, 08 Jun 2020
    Я бы на самом деле попробовал или дропнуть или транкейтнуть таблицу. но это пальцем в небо
    (вроде при дропе) она при след вставках пересоздатся
  • https://t.me/clickhouse_ru
    @sirnie_sosisochki #165683 12:52 PM, 08 Jun 2020
    Грепнул по логам в тот день, ничего интересного нет - ошибки мержей на некоторых табличках только.
  • https://t.me/clickhouse_ru
    @sirnie_sosisochki #165684 12:52 PM, 08 Jun 2020
    Хм подключился напрямую к 8123, мимо чпрокси - все ок.
  • https://t.me/clickhouse_ru
    логируется?
  • https://t.me/clickhouse_ru
    @sirnie_sosisochki #165686 12:53 PM, 08 Jun 2020
    Да! Дело раскрыто)))
  • https://t.me/clickhouse_ru
    @unamedrus #165687 12:54 PM, 08 Jun 2020
    ну видимо в chproxy настроечки перезаписываются
  • https://t.me/clickhouse_ru
    @sirnie_sosisochki #165688 12:55 PM, 08 Jun 2020
    Дыа, большое спасибо за ответы) Будем смотреть туда
  • @dj_mixer #165689 01:07 PM, 08 Jun 2020
    @milovidov_an доброго времени суток,
    а можно либо
    https://github.com/ClickHouse/ClickHouse/pull/10542
    либо фикс для
    https://github.com/ClickHouse/ClickHouse/issues/10483

    в 20.3 замерджить?

    сейчас физически невозможно анализировать запрос использующий словари посредством trace логов + логи переполняются...
    Ability to set logger level for loggers that have non allowed in xml tags symbols by azat · Pull Request #10542 · ClickHouse/ClickHouse

    Changelog category (leave one): Non-significant (changelog entry is not required) Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md): Ability to set logg...

  • https://t.me/clickhouse_ru
    @zulgabis #165691 02:10 PM, 08 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @zulgabis #165692 02:11 PM, 08 Jun 2020
    Коллеги, есть какой-то метод селекта с указанием партиции?
  • https://t.me/clickhouse_ru
    @zulgabis #165693 02:13 PM, 08 Jun 2020
    хотелось бы не писать конструкции с between
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #165692 #165694 02:13 PM, 08 Jun 2020
    как партиционирование построено?
  • https://t.me/clickhouse_ru
    @zulgabis #165695 02:14 PM, 08 Jun 2020
    по дате
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #165695 #165696 02:15 PM, 08 Jun 2020
    а точнее?
    Если например по toYYYYMM(date), то можно where toYYYYMM(date) = toYYYYMM('some_date')
  • https://t.me/clickhouse_ru
    лучше так не делать, есть тикет с примером где перфоманс хуже чем с where date between ... ...
  • https://t.me/clickhouse_ru
    @zulgabis #165698 02:17 PM, 08 Jun 2020
    я понимаю. просто хотелось получить все партиции таблицы и делать селекты по партициям, без указания диапазона дат
  • https://t.me/clickhouse_ru
    нету и не планируется
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #165697 #165700 02:18 PM, 08 Jun 2020
    ого, а можно линку на него? Просто звучит крайне странно. Это ж вроде базовый механизм
  • https://t.me/clickhouse_ru
    @zulgabis #165701 02:19 PM, 08 Jun 2020
    понятно, придется тогда использовать min(date) и max(date), чтобы получить весь диапазон дат и селектить по дням, с учитыванием сколько дней в месяце
  • https://t.me/clickhouse_ru
    where date between ... ... работает прямо

    where toYYYYMM(date) = toYYYYMM('some_date') -- пытается угадать через жопу

    не совсем такой пример там https://github.com/ClickHouse/ClickHouse/issues/7948
  • https://t.me/clickhouse_ru
    @dbalashov #165703 02:32 PM, 08 Jun 2020
    есть какието особенности по установке CH на ubuntu 20.04 lts ?
  • https://t.me/clickhouse_ru
    в system.parts уже все это есть
  • https://t.me/clickhouse_ru
    действительно, тогда придется только выдирать из DDL PARTITION BY xxx
  • https://t.me/clickhouse_ru
    что за задача-то такая?

    в system.tables есть поле partition_key
  • https://t.me/clickhouse_ru
    спасибо, выстроился план без геморроя
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #165702 #165708 03:05 PM, 08 Jun 2020
    Если задавать конкретно то же выражение что и в PARTITION BY то все работает ок.
    Пример для toYYYYMM партиционировантя:

    (SelectExecutor): Key condition: (toYYYYMM(column 0) in [202006, 202006])
    (SelectExecutor): MinMax index condition: (toYYYYMM(column 0) in [202006, 202006])
  • _part=xxxx?
  • https://t.me/clickhouse_ru
    дада, работает пока не найдется пример где не работает
  • https://t.me/clickhouse_ru
    фуллскан, _part вычисляется в секции select
  • https://t.me/clickhouse_ru
    само значение toYYYYMM нигде не хранится, в парте хранятся значения minmax(date), есть тикет возможно когда-нибудь
  • 20.3 -

    [V30LC-INCLKHSE1.PW.LOCAL] 2020.06.08 18:07:05.752893 [ 862 ] {75cb8877-cc8a-4a26-b1ea-03f35ab2ea19} <Debug> schema.tablexxx (SelectExecutor): Selected 1 parts by date, 1 parts by key, 13984 marks to read from 1 ranges
  • @dj_mixer #165714 03:08 PM, 08 Jun 2020
    только что проверил
  • 20.04 - не LTS вроде, 20.3 LTS
  • https://t.me/clickhouse_ru
    @dbalashov #165716 03:10 PM, 08 Jun 2020
    да вроде написано что 20.04 LTS
  • https://t.me/clickhouse_ru
  • ой, дайте ссылку на тикет следить, а то мы свой собирались открывать
  • ааа, вы про версию убунты ) "дефолт сити"
    я подумал вы про КХ 20.4
  • https://t.me/clickhouse_ru
    @dbalashov #165720 03:11 PM, 08 Jun 2020
    нет, я про убунту
  • https://t.me/clickhouse_ru
    @dbalashov #165721 03:12 PM, 08 Jun 2020
    да, я чот не подумал про версии CH :)
  • https://t.me/clickhouse_ru
    @Felixoid #165722 03:12 PM, 08 Jun 2020
    Доброго дня. Вопрос относительно настройки date_time_input_format='best_effort' и движка Kafka. Этот параметр придётся задавать глобально для пользователя default, чтобы из кафки читать строчки а ля 2020-06-08T12:27:15.410246Z в колонки DateTime или Date?
  • ну простите, не могу помочь, мы живем на rhel/centos
  • https://t.me/clickhouse_ru
    ок, может из-за процессоров, но все равно придется все парты перечислять
  • https://t.me/clickhouse_ru
  • да,
    select count(*) from table tt where _part in (select name from system.parts where partition='(202004,146)');
  • https://t.me/clickhouse_ru
    проблема что прунинг уже закончится до (select name from system.
  • работает, потому что функция такая. если функция mod, внезапно работать не будет
  • исправлено:
    with (select groupArray(name) partsList from system.parts where partition='(202004,150)' and `table` ='tablename' and active) as partsList
    select count(*), length(partsList) from vs_cm_data vcd where has (partsList, _part);

    ...
    [V30LC-INCLKHSE1.PW.LOCAL] 2020.06.08 18:28:32.061240 [ 862 ] {772cee9b-3b2e-4784-a0ce-b8fe442c8eab} <Debug> schema.tablename (SelectExecutor): Selected 9 parts by date, 9 parts by key, 67808 marks to read from 9 ranges
    ...

    ┌───count()─┬─length(partsList)─┐
    │ 551776508 │ 9 │
    └───────────┴───────────────────┘

    @zulgabis fyi
  • Сделаем второе (бэкпортируем убирание излишнего логгирования).
  • спасибо!
  • @181568392 #165732 03:49 PM, 08 Jun 2020
    Всем привет, подскажите пожалуйста. как в кх округлять недели, чтоб первая начиналась с понедельника 00:00:00, а последняя заканчивалась воскресеньем 23:59:59, делаю такой конструкцией, но данные все равно показываетcz уже следующей недели WHERE date > toStartOfWeek(now()) - interval 23 week
    AND date < toStartOfWeek(now())
  • https://t.me/clickhouse_ru
    не понятно что за тип у date ? дата?

    дата сравнивается с датой?

    date <= oStartOfWeek(now())-interval 1 day

    или с временем?
  • у date тип date
  • https://t.me/clickhouse_ru
    ну тогда date < toStartOfWeek(now()) должно работать, может время из-за таймзон неправильно получается?
  • а как к таймзоне привести нормальной
  • https://t.me/clickhouse_ru
    а где вы время видите?

    проблема в том что неясно в какой TZ вы храните и в какой видите.

    select sometimecol, toString(sometimecol)
    ....
    ...
    where ...

    есть разница в sometimecol vs toString(sometimecol) ?
  • таймзона UTC, я в Москве
  • https://t.me/clickhouse_ru
    он просто вам какбэ намекает что пора уже перебираться в UTC таймозну
  • https://t.me/clickhouse_ru
    ну очевидно что из поля date нельзя это вычислить, когда понедельник только начался в UTC в москве уже было 3 утра
  • https://t.me/clickhouse_ru
    @mir_shn #165741 04:14 PM, 08 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @Nick_jv #165742 04:26 PM, 08 Jun 2020
    Добрый день! Возможно на клике построить витрину актуальных данных с помощью вью?
  • https://t.me/clickhouse_ru
    а можете пожалуйста подсказать из-за чего слететь мог автоинкремент (или это риторический вопрос))) ? я не оч понимаю куда копать
    data_version в system.parts это и есть префикс файлов .bin ?

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

    * благо сырье еще рядом, и долить именно этот шард возможно
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #165742 #165744 04:28 PM, 08 Jun 2020
    Aggregatingmergetree/collapsingmergetree. Мне кажется это надо в первую очередь посмотреть.
  • https://t.me/clickhouse_ru
    обычно чтобы ответить мне нужно читать логи КХ в течении пары часов, потом еще думать часов 6
  • https://t.me/clickhouse_ru
    понял, спасибо, не смею), вы и так изрядно помогли с расследованием
    *может подскажете где описана механика асинхронного инсерта? или это в сорсы закапываться и постигать?
  • https://t.me/clickhouse_ru
    при инсерте Distriubted таблица пишет их на диск в .bin файлы, есть шедулер который обходит каталоги и пытается сделать инсерт в шард
  • https://t.me/clickhouse_ru
    @elise_azure #165748 04:38 PM, 08 Jun 2020
    а кто-нибудь в курсе, в статистику клика, а именно bytes_read, входит размер словарей?
  • @N0tNu11 #165749 04:39 PM, 08 Jun 2020
    Joined.
  • @N0tNu11 #165750 04:44 PM, 08 Jun 2020
    Привет! Последнее время стал ловить ошибки вида
    Received exception from server (version 20.3.5):
    Code: 107. DB::Exception: Received from ip:9000. DB::Exception: Cannot open file /var/lib/clickhouse/data/db/table1/202006_1474_1474_0/field.bin, errno: 2, strerror: No such file or directory: While executing MergeTree.
    Кто-нибудь знает с чем это может быть связано?
    Есть ощущение, что виной всему truncate. Т.к. до него такого замечено не было.
    Проявляется по-разному. Делаешь инсерты - норм, делаешь - еще и при селекте падает такая ошибка.
    Truncate на такую корапченную таблицу выручает. Но после проблема может снова проявиться, а может и не проявиться
  • @N0tNu11 #165751 04:47 PM, 08 Jun 2020
    Ошибка валит как на .bin, так и на .mrk
  • @N0tNu11 #165752 04:55 PM, 08 Jun 2020
    File not found after inserts · Issue #11466 · ClickHouse/ClickHouse

    (you don't have to strictly follow this form) Describe the bug File not found error on insert from select query right after multiple inserts Which ClickHouse server version to use 20.3.5.21...

  • @N0tNu11 #165754 05:02 PM, 08 Jun 2020
    Ничего не переименовывал. Таблица обычная MergeTree на одной ноде
  • https://t.me/clickhouse_ru
    а файл такой /var/lib/clickhouse/data/db/table1/202006_1474_1474_0/field.bin есть?

    field как в таблице объявлена ? materialized ? default ?
  • конкретно тот случай уже убрали танкейтом. Но вот свежий
    Code: 107, e.displayText() = DB::ErrnoException: Cannot open file /var/lib/clickhouse/data/system/query_log/202006_3245_3245_0/type.bin, errno: 2, strerror: No such file or directory: While executing MergeTree (version 20.3.5.21 (official build))
  • @N0tNu11 #165757 05:16 PM, 08 Jun 2020
    202006_3245_3245_0 такой папки нет в фс
  • @N0tNu11 #165758 05:17 PM, 08 Jun 2020
    До этого делал транкейт на эту таблицу и все было норм после него
  • https://t.me/clickhouse_ru
    @druzhoksapozhok #165759 05:17 PM, 08 Jun 2020
    Друзья, я понимаю что это не зукипер чат, но все таки. Есть кто-то кто использует КХ+Зукипер и мониторит зукипер ОКметром? У них есть такая фича - замерять replication lag (разница между zookeeper.current_transaction_number.follower и zookeeper.current_transaction_number.leader)
    Так вот на одном из кластеров он у меня 10-20 сек, при том что есть кластера с лагом стремящимся к 0.
    Я обмазался зукиперовской докой и почитал что нашел в доке КХ, и даже поискал по истории этого чата, но так и не нашел ответа на 3 главных вопроса:
    1) Как вытащить номер транзакции с ноды зукипера?
    2) Какие факторы кроме сетки могут влиять на задержки в репликации?
    3) Насколько критично влияние задержки в репликации Зукипер кластера на репликацию КликХауса?
  • так же не знаю связано или нет, но в логах постоянно
    2020.06.08 17:22:04.272711 [ 17814 ] {} <Error> void DB::SystemLog<LogElement>::flushImpl(const std::__1::vector<_Tp>&, uint64_t) [with LogElement = DB::MetricLogElement; uint64_t = long unsigned int]: Code: 252, e.displayText() = DB::Exception: Too many parts (300). Merges are processing significantly slower than inserts., Stack trace (when copying this message, always include the lines below):
  • @N0tNu11 #165761 05:24 PM, 08 Jun 2020
    При чем в таблицах
    metric_log,300
    trace_log,300
    query_thread_log,185
    query_log,156
    Я уже пробова их чистить, но набегает быстро
  • @N0tNu11 #165762 05:25 PM, 08 Jun 2020
    И на данный момент(уже после чистки), они все отдают подобную ошибку при селекте
  • https://t.me/clickhouse_ru
    @Bartimeus33nt10 #165763 06:39 PM, 08 Jun 2020
    Всем привет!

    Выполняю джавой sql команду, получаю спустя ровно 5 минут
    Timeout exceeded while reading from socket (XXX): while receiving packet from XXX
    socket_timeout выставлен гораздо больше 5 минут, но все равно выкидывает на 5 минутах
  • https://t.me/clickhouse_ru
    @Bartimeus33nt10 #165764 06:40 PM, 08 Jun 2020
    Есть еще send_timeout и receive_timeout - оно вообще в джава классе ClickHouseProperties не прокидывается
  • https://t.me/clickhouse_ru
    а socket_timeout нету-ли в jdbc урле ?
  • https://t.me/clickhouse_ru
    я отдельно его прокидываю, не в урле
  • https://t.me/clickhouse_ru
    я не это спросил
  • https://t.me/clickhouse_ru
    @Bartimeus33nt10 #165768 07:03 PM, 08 Jun 2020
    нет его в урле
  • https://t.me/clickhouse_ru
    это системные таблички, странно что они не успевают мержится, потому что они маленькие, их можно вообще выключить в config.xml если они не нужны
  • Да, я понимаю. Просто проблема не только на системных
  • https://t.me/clickhouse_ru
    слишком часто пишете? или диск медленный ?
  • Нет, даже на сценарии 1000 в минуту ломается. Я сейчас не про мерж, а про file not found
  • @N0tNu11 #165773 07:12 PM, 08 Jun 2020
    Мы никаких alter не делаем. Либо truncate, либо drop partition. И таблицы в какой-то момент начинают отдавать file not found
  • @N0tNu11 #165774 07:13 PM, 08 Jun 2020
    Сдается мне даже если бы ты писали часто, то не должно быть file not found. И да, на 19.х.х таких проблем не было
  • https://t.me/clickhouse_ru
    вообще-то рекомендуется делать не чаще одного инсерта в секунду в один инстанс КХ.
    Я делаю 1 инсерт в минуту.
  • Так и есть. Я неверно выразился. 1000 одним инсертом
  • А что может быть file not found?
  • https://t.me/clickhouse_ru
    какая там FS ext4 ?
  • Да
  • https://t.me/clickhouse_ru
    а field инсертится в insert или заполняется вычислением?

    проверьте что у вас на всех серверах совпадают поля между MergeTree и Distributed
  • Да, инсертится. И это на одном сервере возникает :( Без distributed
  • https://t.me/clickhouse_ru
    начните с апгрейда в 20.3.10.75
  • Надеялся что кто-то сталкивался. До 20.4.х не стоит? Или там нового "наловлю"?
  • https://t.me/clickhouse_ru
    Может быть наловите, у нас с оптимайзд непонятное проведение
  • 09 June 2020 (151 messages)
  • https://t.me/clickhouse_ru
    @ashmatov #165787 12:09 AM, 09 Jun 2020
    Joined.
  • @orlan_sar #165788 03:54 AM, 09 Jun 2020
    Привет всем. Как из массива достать элемент, если предыдущий элемент соответствует условию?
    Например : есть такой массив [29,49,12,45,2 ]
    условие: предыдущий элемент должен быть больше 40
    Должны получить такой массив: [0,0,12,0,2]
  • https://t.me/clickhouse_ru
    with [29, 49, 12, 45, 2] as arr
    select arrayMap(x -> x>40, arr) as check,
    arrayMap((x, y) -> if(check[y-1] = 1, x, 0), arr, arrayEnumerate(check)) as result
  • спасибо
  • https://t.me/clickhouse_ru
    @yakhontovyi #165791 04:46 AM, 09 Jun 2020
    Всем привет! Подскажите, пожалуйста, а есть ли способ обойти проблему с нехваткой памяти для join-a, помимо добавления памяти на сервер, конечно?
  • https://t.me/clickhouse_ru
    обрабатывать меньше данных. Например, разбивать данные на несколько запросов при помощи хешей.
    WHERE cityHash64(some_column) % {{chunks}} = {{chunk}}
  • https://t.me/clickhouse_ru
    @yakhontovyi #165793 05:10 AM, 09 Jun 2020
    спасибо!
  • https://t.me/clickhouse_ru
    @Imh0t3mp #165794 06:16 AM, 09 Jun 2020
  • https://t.me/clickhouse_ru
    @Imh0t3mp #165795 06:17 AM, 09 Jun 2020
    Мелкий вопрос.
    для ClickHouseProperties значение socketTimeout в каких единицах задаётся? Секунды или миллисекунды?
  • https://t.me/clickhouse_ru
    @Imh0t3mp #165796 06:17 AM, 09 Jun 2020
    Речь идёт об JDBC драйвере
  • https://t.me/clickhouse_ru
    ms
  • https://t.me/clickhouse_ru
    @UglyKoyote #165798 06:19 AM, 09 Jun 2020
    final ClickHouseProperties clickHouseProperties = new ClickHouseProperties();
    clickHouseProperties.setSocketTimeout((int) TimeUnit.SECONDS.toMillis(socketTimeoutSeconds));
    clickHouseProperties.setConnectionTimeout(socketTimeoutMillis);
    clickHouseProperties.setUser(user);
    clickHouseProperties.setPassword(password);
    clickHouseProperties.setCompress(compress);
    clickHouseProperties.setDecompress(compress);
    clickHouseProperties.setUseServerTimeZone(true);
    clickHouseProperties.setUseServerTimeZoneForDates(true);
    clickHouseProperties.setMaxQuerySize(maxQuerySizeBytes);
    return clickHouseProperties;
    }
  • https://t.me/clickhouse_ru
    @UglyKoyote #165799 06:19 AM, 09 Jun 2020
    вроде милисекунды
  • https://t.me/clickhouse_ru
    @Imh0t3mp #165800 06:22 AM, 09 Jun 2020
    Благодарю. Интуиция шла в разрез с реальностью.
  • https://t.me/clickhouse_ru
    @Vasyaabr #165801 06:23 AM, 09 Jun 2020
    Блин, вот почему можно было сделать DDL для словарей, но нельзя было сделать обратную совместимость - возможность создавать словари с пустой базой. Теперь перетряхивай кодовую базу, если хочешь использовать DDL...
  • @vasya_p0pkin #165802 07:31 AM, 09 Jun 2020
    Подключаю ch как linked server к mssql. Вижу все таблицы, но не могу сделать запрос к ним. Пишет что нет прав к колонкам. Select * не работает. У пользователя все права есть
  • https://t.me/clickhouse_ru
    @PeterSh0 #165803 08:09 AM, 09 Jun 2020
    Не получается сделать tuple из результатов двух simpleLinearRegression, в чём тут ошибка? (Хотел использовать подобный tuple в CTE выражении, чтобы не писать два запроса)
    SELECT (simpleLinearRegression(x, y), simpleLinearRegression(x, 2 * y))
    FROM
    (
    SELECT
    number AS x,
    number AS y
    FROM numbers(2)
    )Ошибка
    DB::Exception: Syntax error (data type): failed at position 15: Float64, b Float64), Tuple(k Float64, b Float64)). Expected one o
    f: LIKE, GLOBAL NOT IN, AS,.....
  • @andreyduhin #165804 08:13 AM, 09 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    скорее всего тупл не умеет просто в simpleLinearRegression
  • https://t.me/clickhouse_ru
    Странно, судя по ошибке ch будто бы видит что возвращаемый функцией simpleLinearRegression тип Tuple(Float64, Float64)
  • https://t.me/clickhouse_ru
    ошибка кстати похоже на клиенте
  • https://t.me/clickhouse_ru
    @unamedrus #165808 08:24 AM, 09 Jun 2020
    это проблема клиента похоже, на playground у меня заработал
  • https://t.me/clickhouse_ru
    @unamedrus #165809 08:25 AM, 09 Jun 2020
    SELECT (simpleLinearRegression(x, y),simpleLinearRegression(x, 2*y)) FROM ( SELECT number AS x, number AS y FROM system.numbers LIMIT 2 )
    https://play.clickhouse.tech/
  • https://t.me/clickhouse_ru
    Спасибо, правда это на клиенте ошибка, причём в последней версии тоже. Через http если делать запрос, то ошибки нет. Баг что ли надо заводить
  • @souz9 #165811 09:29 AM, 09 Jun 2020
    Всем привет!
    Пытаюсь записать результат кросс джойна в таблицу. Запрос максимально простой, без использования каких либо условий и агрегаций. Практически такой:
    insert into a select * from b, c;
    Выглядит так, будто КХ пытается построить полное декартовое произведение целиком в RAM. Конечно для этого не хватает памяти. Можно ли както обойти это ограничение? Т.е. указать КХ сразу записывать результат в таблицу, а не строить его в памяти.
  • https://t.me/clickhouse_ru
    в свежих версиях с этим чуть лучше, но правую таблицу все равно нужно положить в память. попробуйте обновиться
  • https://t.me/clickhouse_ru
    @chertus #165813 09:41 AM, 09 Jun 2020
    но там делается не построчно, если брать вырожденный случай, когда в правой таблице доминирует 1 ключ и в блоке прилетает несколько таких ключей - тоже будут проблемы с памятью
  • @souz9 #165814 09:48 AM, 09 Jun 2020
    @chertus Спасибо. Попробуем повторить, когда будет возможность обновить КХ.
  • https://t.me/clickhouse_ru
    @afedotov89 #165815 10:02 AM, 09 Jun 2020
    Всем привет! А известно, когда примерно появится поддержка аутентификации в hdfs через Kerberos?
  • @souz9 #165816 10:17 AM, 09 Jun 2020
    @chertus Проверил на синтетических данных на последней версии в докер контейнере. Кажется это как раз то, что нам нужно 👍
  • https://t.me/clickhouse_ru
    @ilia_vo #165817 10:24 AM, 09 Jun 2020
    Joined.
  • @yglmn #165818 10:49 AM, 09 Jun 2020
    всем привет! подскажите, пожалуйста, кто-нибудь использует power bi или tableau для кликхауса? насколько легко было подружить их?
  • @Onuchinx #165819 10:51 AM, 09 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    --join_algorithm Specify join algorithm: 'auto', 'hash', 'partial_merge', 'prefer_partial_merge'. 'auto' tries to change HashJoin to MergeJoin on the fly to avoid out of memory.
  • https://t.me/clickhouse_ru
    у нас табло (сервер под виндой делали - в то время драйвер под линукс был с какими-то проблемами)
    одбц драйвер + немного кастомизации через xml - вроде работает
    но все-равно вылазят иногда неожиданные подводные камни от автогена запрососв
  • @Onuchinx #165822 11:09 AM, 09 Jun 2020
    Всем привет! Кто может проконсультировать по clickhouse-driver python? Проблемы с подключением к удаленной базе Clickhouse rкод ошибки 102. Все данные для входа верные.
  • https://t.me/clickhouse_ru
    а мессага / стек-трейс?
    с теми же кредами из другого чего-нить можете подключиться со своей машины?
  • Стектрейса как такогого нет. Так как запускаю из jupyternotebook. из DBeaver подключаюсь без проблем. Креды все верные, в том числе порт
  • https://t.me/clickhouse_ru
    порт... я в питоне хожу через 9000 (а в бивере через 8123)
  • Все верно, через 9000. Вот поэтому обратился с вопросом, в чем может быть проблема, если все чреды верные
  • https://t.me/clickhouse_ru
    без деталей м.б. что угодно
    NAT / настройки пользователя или сервера / неадекватный ресолв имени (если ноутбук на хабе или в ВМ)
  • @orlan_sar #165828 11:29 AM, 09 Jun 2020
    Привет всем! Можно ли данные из вьюшки перелить в таблицу (только один раз)? Подскажите как?
  • @294661832 #165829 11:30 AM, 09 Jun 2020
    Joined.
  • @294661832 #165830 11:30 AM, 09 Jun 2020
    всем привет!
  • https://t.me/clickhouse_ru
    @BloodJazMan #165832 11:47 AM, 09 Jun 2020
    Коинишива
  • @248854393 #165833 12:08 PM, 09 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @alexsem80 #165834 12:26 PM, 09 Jun 2020
    Всем доброго дня!
    Прошу совета у знающих людей. Возникла следующая проблема. Необходимо произвести резервное копирование таблицы, данные в которой распределены на нескольких дисках. Вопрос заключается в том, как правильно бекапить и восстанавливать такие таблицы.
    При бекапе с помощью ALTER TABLE table_name FREEZE PARTITION 'partition_name'; создаются хардлинки в папке shadow на каждом диске.
    После чего бекапы со всех дисков удаленно копируются на сервер бекапов.
    При восстановлении данных я помещаю эти бекапы в папку detached одного из дисков и с помощью ATTACH PARTITION закидываю данные в таблицу. Однако при таком подходе все данные из бекапа заливаются только на 1 диск. Существует ли механизм, при котором данные из бекапа будут распределяться по всем дискам, согласно storage policy таблицы?
    Спасибо
  • @231864534 #165835 12:27 PM, 09 Jun 2020
    Всем привет! Подскажите, пожалуйста, можно ли в версии 19.16 безопасно использовать кодеки Gorilla и DoubleDelta? Помнится с ними были проблемы..
  • https://t.me/clickhouse_ru
    @rumochnaya #165836 12:51 PM, 09 Jun 2020
    Друзья, подскажите как без рестарта clickhouse-server изменить уровень логирования с TRACE на ERROR?
  • @kafnevod #165837 01:29 PM, 09 Jun 2020
    Коллеги доброго времени суток
    Не подскажете ка правильно создать dictionary с UUID в качестве peimay key.
    Создаю Dictonary:
    CREATE DICTIONARY SalesOfProductsFromStock.UUIDProducts
    (
    primaryKey UUID,
    КодТовара UInt64,
    Название String,
    ЕдиницыИзмерения String,
    Описание String,
    Цена Float32
    )
    PRIMARY KEY primaryKey
    SOURCE(FILE(PATH '/var/lib/clickhouse/user_files/SalesOfProductsFromStock/UUIDProducts.csv' FORMAT 'CSV'))
    LIFETIME(MIN 0 MAX 300)
    LAYOUT(HASHED) ;

    Пытаюсь экспортировать CSV-файл
    "02420a00-070a-11ea-b547-26fd09492fb4",124,"Карандаш","штук","",234
    "02420a00-070a-11ea-b547-26fd0948f418",123,"Ручка","штук","ручка пластиковая",44

    Получаю:
    Code: 27. DB::Exception: Received from localhost:9000. DB::Exception: Cannot parse input: expected '"' before: 'a00-070a-11ea-b547-26fd09492fb4",124,"Карандаш","штук","",234\n"02420a00-070a-11ea-b547-26fd0948f418",123,"Ручка","штук","ручка пла�': (at row 1)

    Row 1:
    Column 0, name: primaryKey, type: UInt64, parsed text: "<DOUBLE QUOTE>02420"ERROR
  • https://t.me/clickhouse_ru
    Начиная с версии 20.1 нужен рестарт
  • https://t.me/clickhouse_ru
    мне кажется, что layout нужно сделать complex_key_hashed если у вас ключ не число
  • https://t.me/clickhouse_ru
    Версия 20.4.4.18, в логе вижу:
    2020.06.09 13:23:01.435085 [ 335 ] {} <Debug> ConfigReloader: Loading config '/etc/clickhouse-server/config.xml'

    Но он продолжает трейсить
  • https://t.me/clickhouse_ru
    Ещё раз прочитайте то что я написал
  • https://t.me/clickhouse_ru
    Прочитал! Эх, глаза видят то, что хотят видеть 🙁
  • https://t.me/clickhouse_ru
    А этому есть какое-то логические объяснение? Не знаете случайно?
  • Спасибо - помогло!
  • https://t.me/clickhouse_ru
    >layout нужно сделать complex_key_hashed
    +1

    не делайте имена полей киррилицей (по крайней мере у таблиц), на диске имена файлов кодируются через %4564676%353454 и вылетают за максимально возможную длину в ext4
  • https://t.me/clickhouse_ru
    кажется был рейс или что-то такое, и это роняло КХ
  • https://t.me/clickhouse_ru
    Спасибо.
  • https://t.me/clickhouse_ru
    attach переименовывает каталоги, это выполняется мнгновенно и атомарно когда файлы на одном диске.

    вы пробовали разложить в detached на разных дисках ?

    т.е. attach принципиально не будет атачить файлы с другого диска
  • да насчет кириллических имен я в курсе - трудно просматривать /var/lib/clickhouse/data
    но иногда это требование не под моей властью

    Кстати после Postgres с 64 байтами длина имена базы/файла в ClickHouse поболее будет
    256/3 = 85 кириллических символов
    В Postgres - 21 кириллический символ
  • https://t.me/clickhouse_ru
    когда завтра база сломается НАВСЕГДА во время мержа, потому что имя парта стало длинее, сюда не приходите ныть, пожалуста.
  • Принято 😊
  • https://t.me/clickhouse_ru
    @galyamrusl #165852 01:49 PM, 09 Jun 2020
    пытаюсь импортировать данные из сsv файла
    clickhouse-client --format_csv_delimiter="," --query="INSERT INTO table FORMAT CSV" < /tmp/data.csv

    в файле есть строка KHTML\, like Gecko (экранированная запятая)

    выходит ошибка
    каким образом можно скормить эту строку?
    спасибо
  • https://t.me/clickhouse_ru
    CSV стандарт имплеминтированный в КХ допускает только двойные кавычки в этом случае "KHTML,"
  • https://t.me/clickhouse_ru
    выгружал данные в csv с помощью pgsql
  • https://t.me/clickhouse_ru
    @galyamrusl #165855 01:52 PM, 09 Jun 2020
    pgsql экранировал запятую
  • https://t.me/clickhouse_ru
    @galyamrusl #165856 01:53 PM, 09 Jun 2020
    copy (select from table) To '/tmp/data.csv' DELIMITER ',';
  • https://t.me/clickhouse_ru
    я в этом случае TSV выгружал
  • https://t.me/clickhouse_ru
    COPY (select * from crash_test) TO PROGRAM 'clickhouse-client --query="INSERT INTO crash_test FORMAT CSV"' with csv force quote *;
  • @253072124 #165859 02:05 PM, 09 Jun 2020
    Всем привет. Пользовался ли кто-либо функцией runningAccumulate?
  • https://t.me/clickhouse_ru
    тут в чате примерно 100500 примеров как ей пользоваться, и как выразить тоже самое через массивы и arrayCumSum
  • @253072124 #165862 02:32 PM, 09 Jun 2020
    пасиб большое, я нашёл, сорри, что отвлёк представителей сообщества. Извините, пожалуйста)
  • https://t.me/clickhouse_ru
    @dbalashov #165863 03:01 PM, 09 Jun 2020
    где гайку покрутить?

    DB::Exception: Memory limit (total) exceeded: would use 3.47 GiB (attempt to allocate chunk of 4502616 bytes), maximum: 3.47 GiB (version 20.4.4.18 (official build))
  • https://t.me/clickhouse_ru
    а сколько памяти у вас?

    <max_server_memory_usage_to_ram_ratio>1</max_server_memory_usage_to_ram_ratio>
    или
    <max_server_memory_usage_to_ram_ratio>2</max_server_memory_usage_to_ram_ratio>
  • https://t.me/clickhouse_ru
    @dbalashov #165865 03:08 PM, 09 Jun 2020
    на виртуалку выделено 6 гигов :(
  • А что у вас в uname --m?
  • https://t.me/clickhouse_ru
    @dbalashov #165867 03:09 PM, 09 Jun 2020
    ща
  • https://t.me/clickhouse_ru
    @dbalashov #165868 03:09 PM, 09 Jun 2020
    x86_64
  • https://t.me/clickhouse_ru
    @dbalashov #165869 03:10 PM, 09 Jun 2020
    щас разуплотню немношко памяти
  • https://t.me/clickhouse_ru
    @dbalashov #165870 03:12 PM, 09 Jun 2020
    выдал 12 гигов, проверю
  • https://t.me/clickhouse_ru
    @dbalashov #165871 03:24 PM, 09 Jun 2020
    так, пока всё идёт как надо
  • https://t.me/clickhouse_ru
    @dbalashov #165872 03:25 PM, 09 Jun 2020
    ключа max_server_memory_usage_to_ram_ratio ваще не нашёл в config.xml
  • https://t.me/clickhouse_ru
    @den_crane #165873 03:26 PM, 09 Jun 2020
    сейчас видимо есть проблема что неправильно считается кол-во памяти которое отожрал КХ
  • https://t.me/clickhouse_ru
    скорее всего вендорный конфиг у вас перезатерт своим
  • https://t.me/clickhouse_ru
    @dbalashov #165875 03:27 PM, 09 Jun 2020
    нет, там ваще дефолтный конфиг, котрый я поправил чтобы слушалось на всех IP адресах и всё.
  • https://t.me/clickhouse_ru
    @dbalashov #165876 03:27 PM, 09 Jun 2020
    а, и logger.level=error поставил
  • https://t.me/clickhouse_ru
    @dbalashov #165877 03:27 PM, 09 Jun 2020
    установка свежая вот вчера поставил новую виртуалку
  • https://t.me/clickhouse_ru
    @kslpv #165878 03:29 PM, 09 Jun 2020
    Привет!
    https://clickhouse.tech/docs/ru/sql-reference/functions/geo/#greatcircleangle
    нашел опечатку в документации, в функции в примере указана другая (указана greatCircleDistance, а должна быть greatCircleAngle), куда можно зарепортить?)
    Документация ClickHouse

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

  • https://t.me/clickhouse_ru
    @ilia_vo #165879 03:44 PM, 09 Jun 2020
    буду рад помощи по следующему вопросу по Materialized View

    есть MergeTree таблица (назовем ее А) на кластере с определенным PrimaryKey и SortingKey
    хочу под нее сделать MaterializedView с движком SummingMergeTree и немного другими PrimaryKey и SortingKey

    Но при этом необходимо, чтобы она:
    1. подгрузила данные, которые есть в изначальной таблице А
    2. автоматически подгружала новые данные, которые приходят в А, т.к. данные туда постоянно приходят

    Как понимаю, для решения проблемы 1 есть POPULATE, но он "пропускает вставляемые во время переноса старых данных новые данные"
    https://www.altinity.com/blog/clickhouse-materialized-views-illuminated-part-1

    Поэтому рекомендуется использовать TO, а старые данные руками перенести

    Но тут возникает другая проблема — не понимаю, как указать одновременно TO и Engine MV, т.к. КХ ругается на такую конструкцию

    Буду рад помощи в том, правильно я понимаю логику подхода... ну и как объяснить КХ, что он должен следить за новыми вставками в таблицу А и использовать кастомный движок

    Спасибо
    ClickHouse Materialized Views Illuminated, Part 1

    Readers of the Altinity blog know we love ClickHouse materialized views. Materialized views can compute aggregates, read data from Kafka, implement last point queries, and reorganize table primary indexes and sort order. Beyond these functional capabilities, materialized views scale well across large numbers of nodes and work on large datasets. They are one of the distinguishing features of ClickHouse.

  • https://t.me/clickhouse_ru
    @ilia_vo #165880 03:56 PM, 09 Jun 2020
    то есть DDL выглядит как
    CREATE MATERIALIZED VIEW test_table_mv ON CLUSTER aaa

    TO source_table_A

    ENGINE = ReplicatedSummingMergeTree('/clickhouse/{cluster}/{shard}/database/test_table_mv', '{replica}', (amount1, amount2))
    PARTITION BY day
    PRIMARY KEY (pk1, pk2)
    ORDER BY (pk1, pk2, sk1, sk2) AS
    SELECT
    day
    pk1,
    pk2,
    sk1,
    sk2,
    amount1,
    amount2
    FROM source_table_A_distributed
    WHERE ...filters...

    В этом случае падает ошибка в том, что не ожидается ENGINE

    Expected one of: AS, UUID, OpeningRoundBracket, Dot, token

    При этом в документации явно не указано, что такое невозможно 😞
    https://clickhouse.tech/docs/en/sql-reference/statements/create/#create-view

    Если убрать TO, то все работает, но при этом пополнения данными не идет (возможно имеет смысл как-то руками указать dependencies_table, но не понимаю что в синтаксисе выше неверно)

    Спасибо
    Overview | ClickHouse Documentation

    CREATE Queries Create queries make a new entity of one of the following kinds: DATABASE TABLE VIEW DICTIONARY USER ROLE

  • https://t.me/clickhouse_ru
    >одновременно TO и Engine MV
    так не нужен Engine
  • https://t.me/clickhouse_ru
    @den_crane #165882 04:02 PM, 09 Jun 2020
    если у вас to , то у вас таблица уже готова которая будет хранить данные
    если to не указан то таблица автоматически будет создана и ей нужен engine
  • https://t.me/clickhouse_ru
    @spalaxinco #165883 04:03 PM, 09 Jun 2020
    Ребята, подскажите может у кого-то было. Делаю запрос с LIMIT 1, типа select * from logs limit 1. Конфигурация из двух шардов. И он Висит вечно (уже 3ий день)..... в SHOW PROCESSLIST.

    ┌─is_initial_query─┬─user────┬─query_id─────────────────────────────┬─address─────────────┬──port─┬─initial_user─┬─initial_query_id─────────────────────┬─initial_address──┬─initial_port─┬─interface─┬─os_user─┬─client_hostn
    ame─────────┬─client_name───────┬─client_revision─┬─client_version_major─┬─client_version_minor─┬─client_version_patch─┬─http_method─┬─http_user_agent─┬─quota_key─┬─────────elapsed─┬─is_cancelled─┬─read_rows─┬─read_bytes─┬
    ─total_rows_approx─┬─written_rows─┬─written_bytes─┬─memory_usage─┬─peak_memory_usage─┬─query──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
    ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬─thread_ids──────────────────────────────────────────────────────────────────────────────────────────────
    ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬─ProfileEvents.Names──────────────────────────────────────────────────────
    ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬─ProfileEvents.Values──────────────────────
    ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬─Settings.Names───────────────────────────────────────────────────────────────────────────────────────────
    ────────────────────────────────────────────────────────────────────────────────────────────────┬─Settings.Values────────────────────────────────────────────────┐
    │ 0 │ default │ bfd5094b-33a0-457b-8ef1-09db979f93c7 │ ::ffff:IPADDRESS │ 50272 │ default │ dc4e81e8-7d6b-437a-8604-9b5d025180d9 │ ::ffff:127.0.0.1 │ 40180 │ 1 │ ubuntu │ prod-cl
    ickhouse-2b │ ClickHouse client │ 54434 │ 20 │ 4 │ 3 │ 0 │ │ │ 449403.62553614 │ 1 │ 2 │ 168 │
    8192 │ 0 │ 0 │ 75517838 │ 96509142 │ SELECT ....
  • https://t.me/clickhouse_ru
    TO — это таблица, в которую должны попадать данные, верно?
  • https://t.me/clickhouse_ru
    да
    если у вас to , то у вас таблица уже готова которая будет хранить данные
    если to не указан то таблица автоматически будет создана и ей нужен engine
  • https://t.me/clickhouse_ru
    спасибо

    а данные до момента создания просто руками перенести обычным запросом, верно?
  • https://t.me/clickhouse_ru
    версия КХ? обновляйтесь до последней в своей маджор
  • https://t.me/clickhouse_ru
    да
  • https://t.me/clickhouse_ru
    20.4.3.16 последняя вроде была.
  • https://t.me/clickhouse_ru
    20.4.4.18 последняя
  • @gUnk08STUZ #165891 04:10 PM, 09 Jun 2020
    Привет!
    Мне нужно materialized view.
    Проблема в том, что данные прилетающие в таблицу могут содержать время в прошлом(-10/15 минут).
    Соответственно если в mw я считаю quantileTDigest по какому то столбцу и временному интервалу - строки дублируются.
    Как можно поступить в этом случае?
  • https://t.me/clickhouse_ru
    MV это триггер на инсерт, оно не читает исходную таблицу

    теоритически у вас quantileTDigest со стейтом должны быть за период какой-то и строки должны схлопнутся, и это вообще не должно влиять, поэтому странно

    quantileTDigestState у вас ?
  • верно, да. но если в одном инсерте пришли данные за 2020-06-09 00:00:00, потом была ещё пачка вставок, а потом снова 2020-06-09 00:00:00
    будут дубли, верно?
  • нет, без State
  • https://t.me/clickhouse_ru
    ну тогда все бессмысленно, quantileTDigestState должен быть
  • https://t.me/clickhouse_ru
    дубли? Таблицу MV не читает, и то что дубли схлопываете в таблице или в select-е который в MV не знает, это все зря
  • quantileTDigestState + quantileTDigestMerge спасут, верно я понимаю?
  • https://t.me/clickhouse_ru
    ну вероятно
  • спасибо )
  • @nizovtsevnv #165900 06:56 PM, 09 Jun 2020
    Joined.
  • @nizovtsevnv #165901 06:58 PM, 09 Jun 2020
    После перезапуска кликхауса и зукипера в докер стэке при попытке вставки в них данных через clickhouse_bulk стал получать DB::Exception: Table is in readonly mode, подскажите пожалуйста чем лечится?
  • https://t.me/clickhouse_ru
    у таблицы движок репликатед?
  • @nizovtsevnv #165903 07:01 PM, 09 Jun 2020
    по запросу SELECT * FROM system.replicas where is_readonly = 1 выдает на таблицах Code: 999, e.displayText() = Coordination::Exception: No node, path: /clickhouse/tables/1/table_name/log
  • @nizovtsevnv #165904 07:01 PM, 09 Jun 2020
    да
  • https://t.me/clickhouse_ru
    ты volume для zookeeper монтировал?
  • @nizovtsevnv #165906 07:02 PM, 09 Jun 2020
    это делается вручную после перезапуска?
  • @nizovtsevnv #165907 07:03 PM, 09 Jun 2020
    конфиги вроде не менял
  • https://t.me/clickhouse_ru
    @unamedrus #165908 07:03 PM, 09 Jun 2020
    zookeeper это тоже бд, и если она в докере и ты ее перезапускаешь, то данные очевидным образом теряются
  • @nizovtsevnv #165909 07:04 PM, 09 Jun 2020
    есть под рукой ссылка как это сделать?
  • https://t.me/clickhouse_ru
    @unamedrus #165910 07:07 PM, 09 Jun 2020
    это надо искать, как правильным образом запускать zookeeper в докере.
    Восстановить работоспособность можешь по гайду из доки
    https://clickhouse.tech/docs/en/engines/table-engines/mergetree-family/replication/#recovery-when-metadata-in-the-zookeeper-cluster-is-lost-or-damaged
    Data Replication | ClickHouse Documentation

    Data Replication Replication is only supported for tables in the MergeTree family: ReplicatedMergeTree ReplicatedSumming

  • @nizovtsevnv #165911 07:07 PM, 09 Jun 2020
    спасибо!
  • @nizovtsevnv #165912 07:18 PM, 09 Jun 2020
    To start recovery, create the ZooKeeper node /path_to_table/replica_name/flags/force_restore_data with any content
  • @nizovtsevnv #165913 07:18 PM, 09 Jun 2020
    создал файл в контейнере кликхауса touch /var/lib/clickhouse/flags/force_restore_data
  • @nizovtsevnv #165914 07:18 PM, 09 Jun 2020
    но чтото ничего не происходит
  • @Shazo_Rus #165915 07:19 PM, 09 Jun 2020
    Вы потеряли данные зукипера, вы не можете восстановить из него
  • @Shazo_Rus #165916 07:19 PM, 09 Jun 2020
    Смотрите варианты без зукипера
  • https://t.me/clickhouse_ru
    @ukchuvrus #165917 07:22 PM, 09 Jun 2020
    привет
  • https://t.me/clickhouse_ru
    @ukchuvrus #165918 07:23 PM, 09 Jun 2020
    а какие функции можно использовать для того, чтобы максимально быстро понять если строки в указанном условии?
  • https://t.me/clickhouse_ru
    проверить существует ли строки удовлетворяющие WHERE ?
  • @nizovtsevnv #165920 07:39 PM, 09 Jun 2020
    как удалить ReplicatedMergeTree когда она не вяжется с ZooKeeper?
  • @nizovtsevnv #165921 07:40 PM, 09 Jun 2020
    пишет DB::Exception: Received from localhost:9000. DB::Exception: Can't drop readonly replicated table (need to drop data in ZooKeeper as well).
  • В доке есть инструкция как переделать в mergetree
    либо можно снести в директории с данными кликхауса
  • @Mustafin #165923 07:43 PM, 09 Jun 2020
    (надеюсь не вредные советы раздаю)
  • @nizovtsevnv #165924 07:43 PM, 09 Jun 2020
    я сделал таблицу с другим именем MergeTree но Replicated удалить же надо
  • @nizovtsevnv #165925 07:43 PM, 09 Jun 2020
    чтобы затем старое имя можно было использовать
  • в /var/lib/clickhouse/data можно найти метаданные и данные (соответствующие директории) и удалить
  • https://t.me/clickhouse_ru
    @AvadaKebaba #165929 09:03 PM, 09 Jun 2020
    Парни, почему может быть такое, что когда делаешь dictGet ругается на DEFAULT: Authentication failed, при этом все остальные запросы робят нормально
  • https://t.me/clickhouse_ru
    @AvadaKebaba #165930 09:05 PM, 09 Jun 2020
    Собственно использую дефолтного пользователя без явок и паролей, все словари на clickhouse(не внешние)
  • У тебя default капсом написан при создании словаря
  • @479837600 #165932 09:17 PM, 09 Jun 2020
    Подскажите, пожалуйста, почему при селекте к словарю может возникать ошибка: Logical error: more than two components in table expression?
  • @nizovtsevnv #165933 10:02 PM, 09 Jun 2020
    Пытаюсь создать ReplcatedMergeTree после утери данных в Zookeeper докер контейнере, в Clickhouse в итоге ловлю таймаут Code: 999. DB::Exception: Received from localhost:9000. DB::Exception: All connection tries failed while connecting to ZooKeeper. nodes... Timeout exceeded while reading from socket, а в Zookeeper WARN [NIOWorkerThread-19:ZooKeeperServer@1357] - Connection request from old client /10.0.5.4:59764; will be dropped if server is in r-o mode
    Как соединение между зукипером и кликхаусом восстановить?
  • @nizovtsevnv #165934 10:05 PM, 09 Jun 2020
    конфиги не менялись, может ли быть несовместимость версий зукипера и кликхауса после обновления?
  • https://t.me/clickhouse_ru
    ты не удалял старую реплицированную таблицу же?
  • @nizovtsevnv #165936 10:15 PM, 09 Jun 2020
    удалил
  • @nizovtsevnv #165937 10:16 PM, 09 Jun 2020
    в файловой системе метаданные и данные реплицированных таблиц удалил
  • @nizovtsevnv #165938 10:16 PM, 09 Jun 2020
    перезапускал
  • @nizovtsevnv #165939 10:18 PM, 09 Jun 2020
    вот, начало создавать, пришлось из конфигурации зукипер сервера убрать
  • @nizovtsevnv #165940 10:19 PM, 09 Jun 2020
    хотя нет, не убирал
  • @nizovtsevnv #165941 10:20 PM, 09 Jun 2020
    уже запутался что помогло то )
  • 10 June 2020 (218 messages)
  • https://t.me/clickhouse_ru
    @cyalat3r #165942 05:57 AM, 10 Jun 2020
    Добрый день товарищи!
    Я раньше никогда не имел дел с добавлением больших объемов данных в базы поэтому у меня тупой вопрос.
    Насколько сильно ограничен по длине SQL-запрос для Кликхауса?
  • https://t.me/clickhouse_ru
    @chicoxyzzy #165944 06:17 AM, 10 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @cybice #165945 06:19 AM, 10 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @gtretyakov #165947 06:37 AM, 10 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @Sdmxx ↶ Reply to #165946 #165948 06:38 AM, 10 Jun 2020
    бан?
  • https://t.me/clickhouse_ru
    @sgolod ↶ Reply to #165946 #165949 06:38 AM, 10 Jun 2020
    /report
  • https://t.me/clickhouse_ru
    @zotov8 #165950 06:38 AM, 10 Jun 2020
    Может, она фото и видео в кликхаусе хранит?
  • https://t.me/clickhouse_ru
    @alarin ↶ Reply to #162355 #165952 07:08 AM, 10 Jun 2020
    удалось разобраться? у меня такая же :(
  • @nizovtsevnv #165953 07:13 AM, 10 Jun 2020
    Словил глюк при копировании таблиц с одинаковой структурой с разницей в движке, исходная MergeTree, приемник ReplicatedMergeTree, INSERT INTO table1 SELECT * FROM table1_replicated; в результате значения одного из полей улетели в другой столбец. Кто-то сталкивался?
  • @ilyas_pro #165954 07:17 AM, 10 Jun 2020
    Всем привет! Подскажите, есть какие-то рекомендации по оптимальному объёму партиций? Как понять что партицирование по месяцу уже слишком жирно и нужно, например, по неделе партицировать. Как не наломать дров и не сделать партиции слишком мелкими.
  • https://t.me/clickhouse_ru
    @tonymironov #165955 07:23 AM, 10 Jun 2020
    Всем день добрый.
    Подскажите, а можно ли как-то сделать таблицу, которая будет дублировать основную таблицу по некоторым правилам?
    Хочу сделать дублирующую таблицу с другим ключом сортировки
  • Материализованная вьюха может подойдёт?
  • https://t.me/clickhouse_ru
    а в ней можно настроить ключи сортировки?
  • https://t.me/clickhouse_ru
    @tonymironov #165958 07:37 AM, 10 Jun 2020
    чет не могу в документации найти про ключи
  • https://t.me/clickhouse_ru
    Нет. Все также сыпет переодически, связываю это с багом по optimize. В гите висит issue открытое. Жду обновы
  • https://t.me/clickhouse_ru
    @alarin ↶ Reply to #165959 #165960 07:38 AM, 10 Jun 2020
    у меня сыпет ток на optimize. А поделитесь ссылкой
  • https://t.me/clickhouse_ru
    @Kerigan #165961 07:39 AM, 10 Jun 2020
    OPTIMIZE with FINAL should wait for already running merges. · Issue #11309 · ClickHouse/ClickHouse

    Otherwise it can just exit quickly and be effectively no-op. We cannot reliably write tests with this behaviour.

  • Она может в любую таблицу данные перекладывать. Это не совсем то же самое что вьюхи в "обычном понимании". В доке точно было
  • @ilyas_pro #165963 07:49 AM, 10 Jun 2020
    Overview | ClickHouse Documentation

    CREATE Queries Create queries make a new entity of one of the following kinds: DATABASE TABLE VIEW DICTIONARY USER ROLE

  • https://t.me/clickhouse_ru
    @alarin ↶ Reply to #165961 #165964 07:50 AM, 10 Jun 2020
    не очень похоже на нашу багу. Или все же оно?
  • https://t.me/clickhouse_ru
    Как таковой инфы по ошибке я не нашел, но помимо этой ошибки у меня есть проблемы с OPTIMIZE описанные в баге, которые появились после обновления вместе с этой ошибкой. Связано это или нет я не знаю, буду смотерть уже после фикса, если не будет другого ответа.
  • @x0101e #165967 08:08 AM, 10 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    что там? секреты кликхауса?
  • https://t.me/clickhouse_ru
    в итоге уйдет из группы с уверенностью что ей точно нужен кх для аналитики по статистике продаж
  • https://t.me/clickhouse_ru
    @vlkolobaev #165970 08:35 AM, 10 Jun 2020
    Ребят помогите разобраться в следующей ситуации.
    У меня есть кластер из 2 шардов по 2 реплики. Когда отправляю запрос в каждую из локальных таблиц, запрос отрабатывает за 3сек, а когда этот же запрос отправляю в Distributed, он отрабатывает за 30 сек
  • https://t.me/clickhouse_ru
    @vlkolobaev #165971 08:37 AM, 10 Jun 2020
    я честно говоря ожидал что он отработает за х2 по времени ну явно не за х10
  • https://t.me/clickhouse_ru
    @vlkolobaev #165972 08:51 AM, 10 Jun 2020
    запрос вида:
    SELECT toStartOfMinute(event_datetime) datetime,
    count()
    FROM nginx.access_log
    PREWHERE event_date BETWEEN toDate(toStartOfMinute(now()-3600)) AND toDate(toStartOfMinute(now())-1)
    AND server_name = 'www.hello-world.ru'
    WHERE event_datetime BETWEEN toStartOfMinute(now()-3600) AND toStartOfMinute(now())-1
    GROUP BY datetime
    ORDER BY datetime
  • https://t.me/clickhouse_ru
    @Mike_Er #165973 09:03 AM, 10 Jun 2020
    Добрый день, подскажите плиз, по какой причине кх не использует всю доступную ему память? Выделено 400Gb (max_memory_usage_for_all_queries, max_memory_usage, max_memory_usage_for_user). В системе свободно более 500 (правда в buff/cache). Запрос съедает где-то 50gb и начинает слать (DB::Exception: Received from stat8:9000. DB::ErrnoException. DB::ErrnoException: Allocator: Cannot malloc 1.00 MiB., errno: 12, strerror: Cannot allocate memory: (avg_value_size_hint = 69.66058823529411, avg_chars_size = 73.99270588235294, limit = 8192): (while reading column uagent): (while reading from part /var/lib/clickhouse/data/ladnl/dnl_log_local/3287_0_2873_8_16121/ from mark 55681 with max_rows_to_read = 8192):
    Происходит это только на одной ноде из 8, конфики везде одинаковые, железо практически тоже.
    Версия 19.13.6.51
  • С сетью все ок? Попробуйте с шарда1 кинуть по ремоут в шард2.
  • https://t.me/clickhouse_ru
    @denis_nikulnikov #165979 09:16 AM, 10 Jun 2020
    Вем привет! Есть настроенная интеграция kafka и clickhousr/ При подачи нагрузки 150-200Mbit\s в логах clickhouse появляются ошибки```2020.06.10 12:12:44.285160 [ 16839 ] {} <Error> void DB::StorageKafka::threadFunc(): std::exception. Code: 1001, type: cppkafka::HandleException, e.what() = Local: Timed out, Stack trace (when copying this message, always include the lines below):

    0. cppkafka::HandleException::HandleException(cppkafka::Error) @ 0x1031512e in /usr/bin/clickhouse
    1. ? @ 0x1031d1d2 in /usr/bin/clickhouse
    2. cppkafka::Consumer::get_offsets_committed(std::__1::vector<cppkafka::TopicPartition, std::__1::allocator<cppkafka::TopicPartition> > const&) const @ 0x10321eb1 in /usr/bin/clickhou
    se
    3. DB::ReadBufferFromKafkaConsumer::commit() @ 0xd86d927 in /usr/bin/clickhouse
    4. DB::KafkaBlockInputStream::commit() @ 0xd864619 in /usr/bin/clickhouse
    5. DB::StorageKafka::streamToViews() @ 0xd853e80 in /usr/bin/clickhouse
    6. DB::StorageKafka::threadFunc() @ 0xd854920 in /usr/bin/clickhouse
    7. DB::BackgroundSchedulePoolTaskInfo::execute() @ 0xd00d455 in /usr/bin/clickhouse
    8. DB::BackgroundSchedulePool::threadFunction() @ 0xd00da72 in /usr/bin/clickhouse
    9. ? @ 0xd00dbb0 in /usr/bin/clickhouse
    10. ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0x8f667eb in /usr/bin/clickhouse
    11. ? @ 0x8f64c33 in /usr/bin/clickhouse
    12. start_thread @ 0x7ea5 in /usr/lib64/libpthread-2.17.so
    13. clone @ 0xfe8dd in /usr/lib64/libc-2.17.so
    (version 20.3.8.53 (official build))```
    Есть мысли с чем это может быть связано?
  • https://t.me/clickhouse_ru
    @kostyabl #165980 09:17 AM, 10 Jun 2020
    Joined.
  • @nikitin_dv #165981 09:17 AM, 10 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    @kostyabl #165982 09:19 AM, 10 Jun 2020
    Добрый день. Долго гуглил, но не нашел ответа по zookeeper. Может кто-нибудь сказать про конфигурацию серверов под него, а именно сколько место нужно на hdd с вот такими настройками:
    tickTime=2000
    dataDir=/data/zookeeper
    clientPort=2181
    maxClientCnxns=2000
    initLimit=30000
    syncLimit=10
    maxSessionTimeout=60000000
    autopurge.snapRetainCount=10
    autopurge.purgeInterval=1
    preAllocSize=131072
    snapCount=3000000
    ?
  • https://t.me/clickhouse_ru
    @alternativnovka #165983 09:48 AM, 10 Jun 2020
    всем привет, на кликхаусе можно сделать в запросе round() чтобы шаг округления был 0.5 и всегда в большую сторону?
    то есть 0.25 = 0.5
    0.1 = 0.5
    0.6 = 1
  • https://t.me/clickhouse_ru
    а какие range чисел? min и max?
  • https://t.me/clickhouse_ru
    от 0 до 10000
  • умножте на 2, и поделите
  • @dj_mixer #165987 09:50 AM, 10 Jun 2020
    а ну и вместо round, надо if/ceil/floor
  • @dj_mixer #165988 09:50 AM, 10 Jun 2020
    round - банковское в КХ
  • https://t.me/clickhouse_ru
    можно в теории и на одном if сделать, если сравнивать остаток с 0.5
  • https://t.me/clickhouse_ru
    @unamedrus #165990 09:51 AM, 10 Jun 2020
    вопрос, что быстрее будет, да
  • https://t.me/clickhouse_ru
    @blinkovivan #165991 09:51 AM, 10 Jun 2020
    Следующий ClickHouse митап онлайн 18 июня https://events.yandex.ru/events/click-house-onlajn-vs-18-06-2020
    Link

    18 июня команда разработки аналитической СУБД ClickHouse вновь проведёт онлайн-встречу с сообществом. Вы сможете узнать о последних изменениях в системе управления доступом в CH, а также о модном сочетании СУБД и объектного хранилища. Вы можете заранее прислать вопросы через форму регистрации или задать их в чате во время трансляции. Ссылку на прямой эфир мы отправим вам на почту в день встречи.

  • https://t.me/clickhouse_ru
    None
  • да, вы правы, это уже как реализовано внутри...
  • https://t.me/clickhouse_ru
    60 rows in set. Elapsed: 4.633 sec. Processed 3.08 billion rows, 16.75 GB (665.18 million rows/s., 3.62 GB/s.)
  • https://t.me/clickhouse_ru
    @selivandex #165995 09:53 AM, 10 Jun 2020
    Ребят. а подскажите плз, кх нормально работает с датой millis? почему-то при импорте данных через csv падает каждый раз на разных строках, будто ждет 10-и значный timestamp вместо 13. То есть несколько тысяч записей с длиной 13 цифр принимает но в какой-то момент падает и пишет

    Code: 27. DB::Exception: Cannot parse input: expected ';' before: '658;1.7.1;1.7.2;0.6.8;13

    658 - это последние 3 цифры timestamp-а
  • https://t.me/clickhouse_ru
    а какой тип используется в таблице?
  • https://t.me/clickhouse_ru
    @selivandex #165997 09:55 AM, 10 Jun 2020
    DateTime
  • https://t.me/clickhouse_ru
    @vlkolobaev #165998 09:55 AM, 10 Jun 2020
    а вот это запрос в Distributed:
    60 rows in set. Elapsed: 37.370 sec. Processed 6.30 billion rows, 34.75 GB (168.55 million rows/s., 929.99 MB/s.)
    при этом скорость выполнения запроса плавно падает с 3.6Гб/сек до 0,9Гб/сек
  • https://t.me/clickhouse_ru
    @vlkolobaev #165999 09:56 AM, 10 Jun 2020
    может там какой нить PREWHERE не отрабатывает
  • https://t.me/clickhouse_ru
    datetime не умеет в миллисекунды, вам нужен DateTime64
  • https://t.me/clickhouse_ru
    Благодарю, щас попробуем
  • проверьте с помощью set send_logs_level='trace' оба варианта.
    у нас такого не было...

    max_parallel_replicas с семплингом есть?
  • https://t.me/clickhouse_ru
    select toFloat32(33.7) as num, toUInt32(num) + (num >= (toUInt32(num) + 0.5)) * 0.5
    вообще без if, но нужно смотреть что лучше
  • https://t.me/clickhouse_ru
    учитывая group by не может ли так быть, что он пытается сделать это на инициаторе
  • это не может же вызвать подобного замедления... разве что память кончается и он вываливается в спилл... - но эт надо трейс палить
  • https://t.me/clickhouse_ru
    а какой DDL таблицы?
  • @Mustafin #166007 10:06 AM, 10 Jun 2020
    log_queries=1 сильно нагружает БД? Не уверен, что именно из-за него нагрузка выросла, но выглядит будто бы так
  • смотря сколько запросов кидаете в секунду =) а вообще нет.
  • @Mustafin #166009 10:07 AM, 10 Jun 2020
    Собственно, отчасти это и хотел смотреть и в целом как-то перформанс улучшать, а тут la1 скакнул в два раза :)
  • https://t.me/clickhouse_ru
    То же самое выходит. Вообще не понимаем в чем дело
  • https://t.me/clickhouse_ru
    покажите DDL таблицы
  • https://t.me/clickhouse_ru
    @selivandex #166012 10:10 AM, 10 Jun 2020
    сюда кинуть?
  • https://t.me/clickhouse_ru
    @selivandex #166013 10:11 AM, 10 Jun 2020
  • https://t.me/clickhouse_ru
    DateTime64(3)
  • https://t.me/clickhouse_ru
    @unamedrus #166015 10:12 AM, 10 Jun 2020
    нужно указать точность
  • @Mustafin #166016 10:12 AM, 10 Jun 2020
    Это у меня idea тупит или она у всех не показывает computed columns? И в trace_log вроде сильно больше полей должно быть
  • @Mustafin #166017 10:12 AM, 10 Jun 2020
    Обновлений на плагины и идею нет новых
  • https://t.me/clickhouse_ru
    Спасибо, щас попробуем
  • https://t.me/clickhouse_ru
    @unamedrus #166019 10:13 AM, 10 Jun 2020
    еще dt64 новый тип достаточно, и возможно не все способы вставки работают, нужно проверить
  • https://t.me/clickhouse_ru
    спасибо большое, а как в большую сторону округлять, можете с рецептом помочь?

    а то математика в голове не складывается такая элементарная
  • @Shionsama #166021 10:18 AM, 10 Jun 2020
    Joined.
  • https://t.me/clickhouse_ru
    можно просто еще раз 0.5 добавить, но вообще лучше тогда на if сделать, возможно
    select toFloat32(33.5) as num, toUInt32(num) + if(num >= toUInt32(num) + 0.5,1,0.5)
  • https://t.me/clickhouse_ru
    спасибо огромное, храни вашу светлую голову господь!
  • https://t.me/clickhouse_ru
    Это абсолютно не оно. Вообще не рядом. Откройте свою багу. Никто из разработчиков не вкурсе про вашу проблему
  • https://t.me/clickhouse_ru
    @alarin ↶ Reply to #166024 #166025 10:31 AM, 10 Jun 2020
    моя проблема кстати решилась убиранием DEDUPLICATE из OPTIMIZE FINAL, но для replacing merge tree он и не нужен

    то есть получается все работает
  • https://t.me/clickhouse_ru
    Вообще у кх настраивается длина запроса. Но в вашем случае это вообще не вадно. Правильный Insert обрабатывается другим парсером. Стрим парсером -- ему не важно длина запроса. Он обрабатывает поток и не ждет конца запроса. Вставляя кусками.
  • https://t.me/clickhouse_ru
    Я подозреваю что у вас поломаны данные в первичном индексе. Конечно на эту проблему надо посмотреть всем очень внимательно, и она одна из самых страшных и важных.
  • https://t.me/clickhouse_ru
    @alarin ↶ Reply to #166027 #166028 10:35 AM, 10 Jun 2020
    😱 ок, пойду создам задачу
  • https://t.me/clickhouse_ru
    Ну ясен пень у вас разный порядок полей в таблице.
    Insert into x select * from y -- не смотрит на имена полей
    в любой базе. Это про sql
  • https://t.me/clickhouse_ru
    вообще были какие то проблемы с deduplicate емнип
  • @nizovtsevnv #166031 10:37 AM, 10 Jun 2020
    да я уже понял, спасибо ) хотя порядок полей в create не менял вроде
  • https://t.me/clickhouse_ru
    Ну и как вы делали create?
  • @nizovtsevnv #166033 10:38 AM, 10 Jun 2020
    обычно, с передачей имен и типов
  • @nizovtsevnv #166034 10:38 AM, 10 Jun 2020
    в виде списка последовательного же
  • @nizovtsevnv #166035 10:38 AM, 10 Jun 2020
    потому и не думал что столкнусь
  • @nizovtsevnv #166036 10:38 AM, 10 Jun 2020
    в документации написано что берется по порядку
  • https://t.me/clickhouse_ru
    Тогда делайте месячные. Не шучу.
  • https://t.me/clickhouse_ru
    Спасибо, кажется понял. По крайней мере теперь понимаю в какую сторону двигаться.
  • Тогда - это в смысле чтоб не наломать дров?
  • https://t.me/clickhouse_ru
    Ваш запрос должен за теже 3 сек. отрабатывать