• 01 July 2019 (171 messages)
  • https://t.me/clickhouse_ru
    @darthunix #106914 12:20 AM, 01 Jul 2019
    Подскажите, пытаюсь выполнить запрос
    select 'ch1' as host_address, 9000 as port from remote(concat(host_address, ':', toString(port)), 'system.replicas');
    получаю ошибку DB::Exception: Hosts pattern must be string literal (in single quotes)
    Так как не нашел отдельной функции string literal, добавляю экранированные одинарные кавычки - результат тот же
    select 'ch1' as host_address, 9000 as port from remote(concat('\'', host_address, ':', toString(port), '\''), 'system.replicas');
    Как эту штуку побороть?
  • https://t.me/clickhouse_ru
    никак, remote принимает только константы. Формируйте sql на клиенте.
  • https://t.me/clickhouse_ru
    благодарю. а с константами в remote - там под капотом какая-то фундаментальная проблема, или просто так сделали?
  • https://t.me/clickhouse_ru
    даже не знаю как ответить (я вообще имею отношения к разработке КХ примерно -100000).
    Но вот например вы знаете какую-нибудь СУБД которая позволяет задать имя таблицы в виде переменной? Как вы себе это видите?

    select 'aa' as t from xxx||t where t > 'z' ?
  • https://t.me/clickhouse_ru
    @darthunix #106918 12:54 AM, 01 Jul 2019
    ну в данном случае речь именно о функции remote с конкретно описанной сигнатурой, куда первым агрументов в виде строки передается выражение, генерирующее адреса удаленных серверов. о том, что это константа догадаться было…гм… неочевидно
  • https://t.me/clickhouse_ru
    @darthunix #106919 12:55 AM, 01 Jul 2019
    я вполне могу представить некую eval функцию в каком-нибудь постгресе, которая позволяет задавать имя таблицы в виде переменной
  • https://t.me/clickhouse_ru
    ну вы первый у кого настолько нетривиальное realm of sql.
  • @st0neg0d #106921 05:12 AM, 01 Jul 2019
    Всем привет. А можно как то в запросе сделать строку константой?
    например select to_constant(‘1’)
  • https://t.me/clickhouse_ru
    @520804631 #106922 05:27 AM, 01 Jul 2019
    Добрый день. Вопрос по использованию памяти в запросе с использованием join. В результате выполнения в память помещаются все колонки перечисленные после слова select?
  • https://t.me/clickhouse_ru
    Это очень похоже на опыт с ORM, у меня коллега сырого sql не нюхал, примерно таким же задаётся
  • https://t.me/clickhouse_ru
    @Senior_Oracle_DBA #106924 06:18 AM, 01 Jul 2019
    Крутой сборник SQL запросов для мониторинга и проерки здоровья Postgres.

    Какой index hit rate, статистика вакуума, неспользуемые индексы и тд.

    https://github.com/lob/pg_insights
    GitHub - lob/pg_insights: A collection of convenient SQL for monitoring Postgres database health.

    A collection of convenient SQL for monitoring Postgres database health. - GitHub - lob/pg_insights: A collection of convenient SQL for monitoring Postgres database health.

  • https://t.me/clickhouse_ru
    @dudedudedu #106925 06:27 AM, 01 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @Cycloppy #106926 07:58 AM, 01 Jul 2019
    Joined.
  • @dkirhlarov #106927 08:03 AM, 01 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @alias_ryzhov #106928 08:05 AM, 01 Jul 2019
    Joined.
  • @ainamarth #106929 08:06 AM, 01 Jul 2019
    Joined.
  • @orlan_sar #106930 08:22 AM, 01 Jul 2019
    как посмотреть логи таблицы, т.е. какие операции совершались в таблице в прошлые дни?
  • https://t.me/clickhouse_ru
    @mgolubev #106931 08:24 AM, 01 Jul 2019
    там надо включить уровень trace и они в файл пишутся помоему
  • https://t.me/clickhouse_ru
    @idr0id #106932 08:25 AM, 01 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    Что вы имеете в виду? В sql разве есть понятие константых строк (а какие они ещё могут быть, если не константные)?
  • @st0neg0d #106934 08:47 AM, 01 Jul 2019
    при исользование ’text’ as column получаю ошибку Cannot convert column column because it is non constant in source stream but must be constant in result

    в целом нашел функцию materialize что решает эту ошибку, но эта функция предназначена для отладки
  • https://t.me/clickhouse_ru
    @blinkovivan #106935 09:09 AM, 01 Jul 2019
    ClickHouse Meetup в Минске 11 июля: https://yandex.ru/promo/metrica/clickhouse-minsk

    Площадка сильно больше обычного, так что нужна помощь в распространении информации по белорусским и украинским IT сообществам.
    Link

    Приглашаем технических специалистов на митап по ClickHouse. Разработчики системы расскажут о новых функциях и планах, а пользователи — о собственном опыте.

  • https://t.me/clickhouse_ru
    None
  • https://t.me/clickhouse_ru
    @624619071 #106937 09:10 AM, 01 Jul 2019
    В линкедине не публикуете? С удовольствием бы репостнул
  • https://t.me/clickhouse_ru
    @gr_buza #106938 09:11 AM, 01 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    добрый день. А будет запись/трансляция докладов?
  • https://t.me/clickhouse_ru
    @624619071 #106940 09:13 AM, 01 Jul 2019
    +1
  • https://t.me/clickhouse_ru
    пока точно не известно, к сожалению
  • https://t.me/clickhouse_ru
    @blinkovivan #106942 09:31 AM, 01 Jul 2019
    Слайды с митапа в Новосибирске: https://github.com/yandex/clickhouse-presentations/tree/master/meetup25
    yandex/clickhouse-presentations

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

  • Моя презентация похоже не обновлена - там ведь были исправления опечаток.
  • https://t.me/clickhouse_ru
    хорошая идея - хранить все презентации в одном месте. спасибо!
  • Percona2019 надо обновить также.
  • https://t.me/clickhouse_ru
    @emtsptth #106946 09:46 AM, 01 Jul 2019
    Подскажите как работают MV поверх реплицированных сырых таблиц.
    Хочу понять, как на двух нодах будет работать следующее – сырые события (ReplicatedMT) –> матвьюха (ReplicatedSummingMT). Происходит ли дублирование в MV? т.е она сама по себе Replicated, сырые события тоже Replicated, но делает ли MV агрегацию, когда импорт был не в локальную таблицу с сырыми событиями, а туда прилетела репликация?
  • https://t.me/clickhouse_ru
    MV не работает с реплицированной таблицы. Там insert не происходит если то не работает
  • https://t.me/clickhouse_ru
    Нужная MV на каждой реплике, тогда все будет работать.
  • https://t.me/clickhouse_ru
    @emtsptth #106949 10:09 AM, 01 Jul 2019
    Ага, т.е МВ ловит только те события которые именно инсертом блока прилетели, но не репликацию?
    Благодарю
  • https://t.me/clickhouse_ru
    MV ловит все что прилетело в локальную таблицу реплики. Если таблица назначения MV репилцируемая, то блоки с других реплик ей прилетают из зоокипера уже агрегриованными.
  • https://t.me/clickhouse_ru
    @Demelor_Shebr #106951 10:13 AM, 01 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    Точно так же с шардированием и реплицированием, матвьюха нужна на всех шардах и репликах куда прилетают "сырые" данные
  • @izebit #106953 10:50 AM, 01 Jul 2019
    тупой вопрос, у меня в качестве ключа в AggregatingMergeTree выступает массив. Есть смысл его сортировать перед вставкой или CH сам разберется что строки содержат одинаковые значения, но в разном порядке и сагрегирует их как надо?
  • https://t.me/clickhouse_ru
    @orantius #106954 10:51 AM, 01 Jul 2019
    но ведь [1,2] != [2,1]
  • @izebit #106955 10:53 AM, 01 Jul 2019
    спасибо, значит нужно сортировать
  • https://t.me/clickhouse_ru
    @vstepankov #106956 10:54 AM, 01 Jul 2019
    А вам именно массив нужен? Хеш не подходит?
  • @izebit #106957 10:59 AM, 01 Jul 2019
    нет, такой вариант не подойдет. Есть потребность отфильтровывать данные по значениям в массиве
  • https://t.me/clickhouse_ru
    @Konstantin132 #106958 11:09 AM, 01 Jul 2019
    Помогите разобраться:
    Есть запрос
    select p2, p3+, p4+, p1+, p1++, count(Maxp1++InMinute) maxinminute,
    groupUniqArrayIf(res, has(two_arr, res) = 0) newp3+
    from
    (
    select p2, p3+, p4+, p1+, p1++, Maxp1++InMinute, arrayJoin(p3+) AS res, any(statp3+) two_arr
    from
    (
    select p2, p3+, p4+, p1+, p1++, Maxp1++InMinute,
    groupUniqArrayIf(p3, Date<today()) statp3+
    from 'table'
    global any inner join
    (
    select p2, groupUniqArray(p3) p3+, groupUniqArray(p4) p4+,
    count(extract(p1, '[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}')) as p1+,
    uniq(extract(p1, '[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}')) as p1++, Maxp1++InMinute
    from 'table'
    global any inner join
    (
    select p2, max(p1++inminute) Maxp1++InMinute
    from
    (
    select toStartOfMinute(TimeStamp) Time,
    groupUniqArray(extract(p1, '[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}')) p1++inminute,
    p2
    from 'table'
    where TimeStamp between now()-3600 and now() and p2 != '00000000-0000-0000-0000-000000000001'
    GROUP BY Time, p2
    )
    group by p2
    ) using p2
    where TimeStamp between now()-3600 and now() and p2 != '00000000-0000-0000-0000-000000000001'
    group by p2, Maxp1++InMinute
    ) using p2
    group by p2, p3+, p4+, p1+, p1++, Maxp1++InMinute
    )
    group by p2, p3+, p4+, p1+, p1++, Maxp1++InMinute, res
    )
    group by p2, p3+, p4+, p1+, p1++, Maxp1++InMinute
    having p1++ >900 or (p1++>500 and notEmpty(newp3+)=1)До обновления на 19.7.3.9 срабатывал на отлично. После обновления стал терять столбцы p3+, p4+, p1+, p1++ на втором подзапросе.
    [Unknown] Code: 47, e.displayText() = DB::Exception: Missing columns:
  • https://t.me/clickhouse_ru
    @Demelor_Shebr #106959 11:09 AM, 01 Jul 2019
    Всем привет! ALTER TABLE RESHARD окончательно выпилили из свежей версии? В доке никакого упоминания не осталось.
    Теперь балансить данные по кластеру без переименования таблиц можно только вручную перенося партиции на новую тачку кластера?
  • https://t.me/clickhouse_ru
    @litvinsedaya #106960 11:18 AM, 01 Jul 2019
    очень странно не_парсится decimal128 из строки из приджойненой таблицы, bc value is too short
    при этом напрямую из таблицы всё парсится. в чем может быть дело?
  • https://t.me/clickhouse_ru
    так наверное в правой таблице нет строки и получается пустая '', недавно сделали todecimalornull orZero
  • https://t.me/clickhouse_ru
    Да. Выпилили полтора года назад.
  • https://t.me/clickhouse_ru
    и правда, иннер решил вопрос
  • https://t.me/clickhouse_ru
    @litvinsedaya #106964 11:26 AM, 01 Jul 2019
    спасибо
  • что то не могу его найти в версии 19.9.2.4. Он же с клиентом ставится?
  • https://t.me/clickhouse_ru
    [Exception] when use union all with constant throw DB::Exception: Cannot convert column · Issue #2507 · yandex/ClickHouse

    version 1.1.54383, version 1.1.54342 union all with constant from distributed table, throw exception a minimal reproducible example CREATE TABLE datacenter.testunionalla_shard ON CLUSTER datacenter...

  • @orlan_sar #106968 11:30 AM, 01 Jul 2019
    Подскажите обратную функцию array join?
  • Можно написать clickhouse obfuscator (через пробел)
  • https://t.me/clickhouse_ru
    groupArray
  • ОК. Спасибо!
  • https://t.me/clickhouse_ru
    @newsettler #106973 11:33 AM, 01 Jul 2019
    Уважаемые, подскажите, какие настройки дисковой подстистемы рекомендованы? Что-то при XFS поверх LVM крайне удручающе выглядит при большом количестви партов.
  • https://t.me/clickhouse_ru
    @mephisto_ak #106974 11:34 AM, 01 Jul 2019
    После удаления *_dictionary.xml таблица по прежнему живёт в кх, можно ли как-нибудь удалить ее без ребута кх?
  • https://t.me/clickhouse_ru
    Да. Надо в файлике перед удалением сделать пустой тег.

    <dictionaries></dictionaries>

    Словарь удалится и можно удалить файл.
    Т.е. создайте файл назад на секунду.
  • https://t.me/clickhouse_ru
    Понял, спасибо, сейчас поробую
  • https://t.me/clickhouse_ru
    Рекомендованы mdraid и ext4(кх написан с учетом кишков ext4). Но от большого числа партов вряд ли поможет.
  • @orlan_sar #106978 11:41 AM, 01 Jul 2019
    В массиве есть повторяющиеся значения, хочу вывести массив с уникальными значениями. Как это сделать?
  • https://t.me/clickhouse_ru
    arrayReduce('groupUniqArray', arr)
  • @orlan_sar #106980 11:56 AM, 01 Jul 2019
    спасибо
  • https://t.me/clickhouse_ru
    а если создать симлинк, как это сделано с остальными (clickhouse-server, clickhouse-client и тд) будет работать?
  • спасибо
  • https://t.me/clickhouse_ru
    @n1_31 #106983 12:19 PM, 01 Jul 2019
    Joined.
  • 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
    19.4.0 до 19.7.3.9
  • https://t.me/clickhouse_ru
    К сожалению данного контекста не хватает, чтобы разобраться. Можно прислать (можно в личку) полный текст ошибки и/или минимизировать пример, на котором это происходит, в идеале до сведения к запросу, не требующему данных.
  • Да.
  • https://t.me/clickhouse_ru
    Ошибку пришлю чуть чуть позже. Спасибо
  • https://t.me/clickhouse_ru
    @asdatarius #106992 01:35 PM, 01 Jul 2019
    Привет!
    Есть ошибка - DB::Exception: Type mismatch for column colName. Column has type UInt32, got type String.

    drop этой колонки поможет?
  • https://t.me/clickhouse_ru
    ошибка при insert ?
  • У вас во вьюхе один тип, в таблице другой. - пересоздать вьюху
  • https://t.me/clickhouse_ru
    @asdatarius #106995 01:37 PM, 01 Jul 2019
    при селекте
  • https://t.me/clickhouse_ru
    @asdatarius #106996 01:37 PM, 01 Jul 2019
    это физическая таблица
  • https://t.me/clickhouse_ru
    @asdatarius #106997 01:38 PM, 01 Jul 2019
    изначально был один тип у колонки, потом был альтер
  • @ramun25 #106998 01:38 PM, 01 Jul 2019
    Ну или джойните две таблицы по полю с разным типом
  • https://t.me/clickhouse_ru
    alter у дистрибьютид тоже нужен
  • @ramun25 #107000 01:39 PM, 01 Jul 2019
    Сделайте селект по списку столбцов - увидите, что мешает
  • https://t.me/clickhouse_ru
    set enable_optimize_predicate_expression = 0, allow_experimental_cross_to_join_conversion = 0, allow_experimental_multiple_joins_emulation = 0
  • https://t.me/clickhouse_ru
    Спасибо
  • https://t.me/clickhouse_ru
    @Demelor_Shebr #107003 02:09 PM, 01 Jul 2019
    Если не сложно, можете подсказать? Если в запросе есть where как по полям из первичного ключа, так и по полям вне его, то CH будет делать scan для полей вне ключа только по той выборке, которую он предварительно сделал по первичному ключу?
  • https://t.me/clickhouse_ru
    @slesgar #107004 02:10 PM, 01 Jul 2019
    Думаю, он будет искать выборку по той партиции, которая указана в условии where
  • https://t.me/clickhouse_ru
    да.
  • https://t.me/clickhouse_ru
    @Demelor_Shebr #107006 02:14 PM, 01 Jul 2019
    Отлично, спасибо
  • @181568392 #107007 02:19 PM, 01 Jul 2019
    Дата центр встанет на кликхаус?
  • @181568392 #107008 02:19 PM, 01 Jul 2019
    Дата центр встанет на кликхаус?
  • https://t.me/clickhouse_ru
    Есть тонкий момент, что если не указана prewhere, то для prewhere (при optimize_move_to_prewhere=1) будет выбрана наименьшая(самая легкая) колонка, в нее КХ зайдет по ограниченям первичного ключа, отфильтрует ( найдет первичные ключи ) и остальные колонки будут читаться уже этими ключами.

    Т.е. в случае where pk_column = ? and bad_filter_column_always_true and good_filter_column_sometimes_true
    имеет смысл писать

    prewhere good_filter_column_sometimes_true
    where pk_column = ? and bad_filter_column_always_true

    КХ не может сам найти good_filter_column_sometimes_true потому что у него нет такой статистики.
  • @181568392 #107010 02:19 PM, 01 Jul 2019
    Около 30 терррабайт
  • @181568392 #107011 02:20 PM, 01 Jul 2019
    Что для этого нужно
  • @181568392 #107012 02:20 PM, 01 Jul 2019
    Какие библиотеки
  • https://t.me/clickhouse_ru
    Ленинская
  • https://t.me/clickhouse_ru
    PREWHERE крутая штука. Спасибо, что подсказали.
  • https://t.me/clickhouse_ru
    В чём ваш вопрос? Кликхаус может жить с большими объёмами данных, для этого и существует, вас что-то конкретное смущает?
  • @181568392 #107016 02:22 PM, 01 Jul 2019
    оьбем 30 трб
  • https://t.me/clickhouse_ru
    🤣🤣🤣 Это очень круто было👍🏻
  • https://t.me/clickhouse_ru
    @ikostukovski #107018 02:22 PM, 01 Jul 2019
    это объем среднестатичтического шарда, что в этом страшного?
  • https://t.me/clickhouse_ru
    приборы восемь
  • https://t.me/clickhouse_ru
    у меня ноутбук столько осилит.
  • @181568392 #107021 02:23 PM, 01 Jul 2019
    а сколько максимально он может понянуть
  • https://t.me/clickhouse_ru
    @ikostukovski #107022 02:23 PM, 01 Jul 2019
    а сколько максимально потянет мускул\постгрес?
  • https://t.me/clickhouse_ru
    один сервер? у меня есть сервера с 60ТБ диска, там в 50 раз ужато, изначальных сырых данных.
  • https://t.me/clickhouse_ru
    Ограничений нет, сколько серверов поднимете, столько и будет
  • @181568392 #107025 02:25 PM, 01 Jul 2019
    а сколько стоит
  • https://t.me/clickhouse_ru
    бесплатно
  • @181568392 #107027 02:26 PM, 01 Jul 2019
    а где тут зарыта понетизация, такие же объемы нужно окупать
  • https://t.me/clickhouse_ru
    @ikostukovski #107028 02:26 PM, 01 Jul 2019
    ага, сча яндекс будет на опенсорс продукте навариваться =)
  • @181568392 #107029 02:26 PM, 01 Jul 2019
    почему бы нет если спрос есть
  • https://t.me/clickhouse_ru
    вопрос про яндекс.облако? это в другой чат.
  • https://t.me/clickhouse_ru
    @khvostikovao #107031 02:27 PM, 01 Jul 2019
    Мы не храним данные, данные хранят сами пользователи, мы предоставляем код
  • https://t.me/clickhouse_ru
    Это не так много, у нас примерно столько же на 9 машинах
  • https://t.me/clickhouse_ru
    @frankegoesdown #107033 02:36 PM, 01 Jul 2019
    Коллеги, такой вопрос: при создании MV можно указать движок таблицы, куда будут сохраняться данные, а что будет, если мы удалим MV?
  • https://t.me/clickhouse_ru
    При создании MV можно указать явную таблицу куда будут сохраняться данные с помощью TO. В этом случае при drop MV таблица останется.

    Если при создании MV явная таблица не была указана, то данные будут сохранятся в автоматически созданной таблице .inner.{mv_name}. Эта таблица будет дропнута при drop MV. Если она нужна то можно сделать detach MV, rename .inner.... to ...
  • https://t.me/clickhouse_ru
    @frankegoesdown #107035 02:44 PM, 01 Jul 2019
    @den_crane спасибо
  • https://t.me/clickhouse_ru
    @den_crane #107037 02:51 PM, 01 Jul 2019
    ищите доку сами, если нету, могу дописать
  • https://t.me/clickhouse_ru
    @lechie #107038 02:53 PM, 01 Jul 2019
    Joined.
  • Доку нашел, но 19.9.2 ругается на синтаксис:
    CREATE MATERIALIZED VIEW _test TO _view_test ON CLUSTER mycluster
    ENGINE = ReplicatedMergeTree('/clickhouse/tables/{cluster}/{shard}/test', '{replica}')
    PARTITION BY ...
    ORDER BY ...
    TTL ...
    POPULATE AS SELECT ...;

    Syntax error: failed at position 46 (line 1, col 46):
    Expected one of: AS, OpeningRoundBracket, Dot, token
  • @novikov_tema #107040 03:36 PM, 01 Jul 2019
    Ругается как раз на TO
  • https://t.me/clickhouse_ru
    Либо TO либо не TO и ENGINE = ReplicatedMergeTree(
  • https://t.me/clickhouse_ru
    @den_crane #107042 03:37 PM, 01 Jul 2019
    POPULATE тоже не сделан с TO
  • @novikov_tema #107043 03:39 PM, 01 Jul 2019
    Поправил ReplicatedMergeTree() -> MergeTree() и убрал POPULATE, все равно ошибка
  • @novikov_tema #107044 03:40 PM, 01 Jul 2019
    TO точно TO
  • https://t.me/clickhouse_ru
    @den_crane #107045 03:41 PM, 01 Jul 2019
    еще раз
    без TO

    CREATE MATERIALIZED VIEW requests_graph
    ENGINE = AggregatingMergeTree(request_date, (request_hour,request_uri), 8192)
    AS SELECT
    request_date,

    с TO

    CREATE table requests_graph (
    request_date Date,
    request_hour DateTime('UTC'),

    CREATE MATERIALIZED VIEW requests_graph_mv
    to requests_graph
    AS SELECT
  • https://t.me/clickhouse_ru
    @den_crane #107046 03:42 PM, 01 Jul 2019
    либо храним в неявной таблице и MV без TO
    либо в явной с TO
  • @novikov_tema #107047 03:43 PM, 01 Jul 2019
    Т.е. сначала сделать таблицу, а потом при создании МВ указать ее в качестве целевой "для данных" - так?
  • https://t.me/clickhouse_ru
    да
  • @novikov_tema #107049 03:45 PM, 01 Jul 2019
    Вот этот момент точно нужно в документации описать. Я был уверен, что TO - это что-то вроде альяса для .inner.*, позволяющего задать иное имя для таблицы с данными.
  • @Big_Z97 #107051 03:58 PM, 01 Jul 2019
    Добрый день, подскажите, пожалуйста, если кто-нибудь знает
    Можно ли сделать с такой логикой:

    SELECT *
    FROM
    numbers(100)
    WHERE
    number BETWEEN (select 10,20 /*Результаты большого запроса*/)

    Или единственный вариант:

    SELECT *
    FROM
    numbers(100)
    WHERE
    number>(select 10)
    AND
    number<(select 20)

    Понимаю, что можно через временные и всёвотэтовот, но если без побочных таблиц, может есть какой-нибудь синтаскис через массивы? А то я уже подумываю костылить через pointInPolygon
  • Подумал было, что нашел способ, как обойти это ограничение - использовать конструкцию TO при создании MV и назвать таблицу с данными не начиная с точки. Но все равно не реботают фильтры. Т.е. они работают при непосредственно выборке по таблице с данными, но если выбирать из view - не фильтруются.
  • https://t.me/clickhouse_ru
    переименуйте MV
  • @novikov_tema #107054 04:12 PM, 01 Jul 2019
    Сделал таблицу _inner_test и MV _test TO _inner_test. Что во что переименовать?
  • https://t.me/clickhouse_ru
    with
  • https://t.me/clickhouse_ru
    _inner_test в test, test в test_MV
  • https://t.me/clickhouse_ru
    @dvornikovio #107057 04:14 PM, 01 Jul 2019
    Joined.
  • В чем разница? Есть какие-то ограничения на имена таблиц для фильтров row-level security
  • https://t.me/clickhouse_ru
    Если вам удобно оборачиваеть имя таблицы в обратные кавычки - разницы нет
  • https://t.me/clickhouse_ru
    нет. Проблема в том что вы что-то не понимаете.

    есть таблица X, вы делаете из- нее селекты, на нее наложены row_level фильтры. Как называется MV вообще не имеет значения, назовите его trulalala И НЕ ИСПОЛЬЗУЙТЕ в select
  • Имена вроде _xxx оборачивать в обратные кавычки не требуется, но мне удобно, why not ;)
  • https://t.me/clickhouse_ru
    @den_crane #107062 04:22 PM, 01 Jul 2019
    Наверное для секурности можно trulalala положить в другую БД на которую не давать доступ
  • https://t.me/clickhouse_ru
    @den_crane #107063 04:24 PM, 01 Jul 2019
    Или вообще с помощью row_level запретить читать из trulalala
  • У меня есть таблица S (от source - источник данных), она живет в базе D1. Я сделал новую базу D2 и сделал в ней таблицу I (от inner - внутренняя, "эмуляция" .inner.* для вьюхи) и сделал MV с именем V (от view) вида CREATE MATERIALIZED VIEW D2.V TO D2.I AS SELECT * FROM D1.S WHERE ... ;
    Соответственно, в D2.I у меня только строки, которые удовлетворяют WHERE вьюхи.
    Дополнительно я хочу отфильтровать строки для разных пользователей - для этого пытаюсь использовать row-level фильтры на таблицу D2.I. Они не работают.
  • https://t.me/clickhouse_ru
    @IgorRekun #107065 04:37 PM, 01 Jul 2019
    Господа, насколько валидна следующая схема?
    CREATE TABLE IF NOT EXISTS attr_state
    (
    Id UInt64,
    Attributes Array(UInt64),
    Sign Array(Int8),
    Ts DateTime
    )
    ENGINE = MergeTree
    ORDER BY IdВремя от времени я обновляю длинный список аттрибутов (~1-5M). Некоторые добавляются, некоторые пропадают, при апдейте пишу список того что поменялось, sign показывает значение удалилось или добавилось.

    Насколько это хорошо/плохо для операций вида посчитать количество включений аттрибута по набору ID?

    Имеет ли смысл проиграть по памяти и писать без Array в колонку и везде дублировать дату?
  • @novoselovmaks #107066 04:38 PM, 01 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    >для этого пытаюсь использовать row-level фильтры на таблицу D2.I. Они не работают.
    вот это странно и что в xml ?
  • <databases>
    <D2>
    <V>
    <filter>number = 42</filter>
    </V>
    <I>
    <filter>number = 42</filter>
    </I>
    </D2>
    </databases>
  • @novikov_tema #107069 04:44 PM, 01 Jul 2019
    select * from I — фильтрует
    select * from V — не фильтрует
  • https://t.me/clickhouse_ru
    Уточните что значит длиный список атрибутов? Длина массива в одной записи?
  • https://t.me/clickhouse_ru
    @bralbral #107071 05:07 PM, 01 Jul 2019
    А что у КХ с fulltext seach ? Планируют ли добавлять ? На данный момент какие есть решения данной проблемы?
  • https://t.me/clickhouse_ru
    Да, в массиве может быть много записей
  • https://t.me/clickhouse_ru
    @Randomazer #107073 05:29 PM, 01 Jul 2019
    Привет, можно ли как-нибудь через alter table сменить ttl таблицы merge tree?
  • https://t.me/clickhouse_ru
    спасибо, нашел ALTER TABLE test MODIFY TTL TestDateTime + INTERVAL 60 DAY
  • https://t.me/clickhouse_ru
    @koch_kir #107075 05:46 PM, 01 Jul 2019
    столкнулся с проблемой - toISOWeek начинает недели с воскресенья. Есть ли подобная функция, но начинающая неделю с понедельника?
  • https://t.me/clickhouse_ru
    @Randomazer #107076 05:52 PM, 01 Jul 2019
    Как посмотреть какой выставлен TTL у таблицы?
  • https://t.me/clickhouse_ru
    т.е. похоже RL security в принципе для MV не работает, т.е. вариант с созданием MV в базе в которую нет доступа вообще
  • https://t.me/clickhouse_ru
    SHOW CREATE?
  • https://t.me/clickhouse_ru
    спасибо огромное
  • https://t.me/clickhouse_ru
    @Sablast #107080 06:06 PM, 01 Jul 2019
    подскажите, можно ли както такую дату 2019-07-01T20:31:29+03:00 выводить в таком же виде (вставлять получается, но селектом отдается UTC)? или лучше сохранить смещение в отдельный столбeц?
  • Еще одна боль есть - я хочу I-таблицу обернуть в Distributed (потому что I в моем случае - реплицируемая). Т.к. для distributed запросов по умолчанию используется пользователь default, row level security тоже не будет работать (( Точнее - он отработает для локальной таблицы, но не для удаленной.
    Решение - создать отдельный специальный кластер в remote_serves для каждого юзера, но это же подразумевает создание для каждого юзера своей Distributed-таблицы ну и остальные вытекающие проблемы с доступом (((
  • https://t.me/clickhouse_ru
    да вроде нет.
    select timezone() ?
  • https://t.me/clickhouse_ru
    но для старых партов как оказалось это не применится.
  • https://t.me/clickhouse_ru
    я решил проблемы вычитанием одного дня из даты) хотя так конечно заметно медленне работает
  • https://t.me/clickhouse_ru
    @den_crane #107085 06:15 PM, 01 Jul 2019
    SELECT toISOWeek(toDate('2019-06-30'))

    ┌─toISOWeek(toDate('2019-06-30'))─┐
    │ 26 │
    └─────────────────────────────────┘

    SELECT toISOWeek(toDate('2019-07-01'))

    ┌─toISOWeek(toDate('2019-07-01'))─┐
    │ 27 │
    └─────────────────────────────────┘
  • https://t.me/clickhouse_ru
    👍
  • 02 July 2019 (187 messages)
  • https://t.me/clickhouse_ru
    @darthunix #107088 01:54 AM, 02 Jul 2019
    подскажите, а есть возможность узнать непосредственно из экземпляра кх его соственный http_port? (в system.settings его нет)
  • https://t.me/clickhouse_ru
    нету, только в конфиге или в

    netstat -nlp|grep click
  • https://t.me/clickhouse_ru
    то есть если, к примеру, через set кто-то выставил значение, то посмотреть я его не смогу
  • https://t.me/clickhouse_ru
    нельзя это выставить через set , только в конфиге и применится с рестартом.
  • https://t.me/clickhouse_ru
    @darthunix #107092 02:08 AM, 02 Jul 2019
    а все, что можно выставить через set оказывается в system.settings?
  • https://t.me/clickhouse_ru
    Да. Это параметры сессии.
  • https://t.me/clickhouse_ru
    а в кх есть какой-то хитрый вариант выполнить через экземпляр bash комманду, чтобы получить порт? типа sql блаблабла clickhouse extract-from-config --config-file /etc/clickhouse-server/config.xml --key=http_port
  • https://t.me/clickhouse_ru
    Можно. Только зачем? По асфальту на коньках?
  • https://t.me/clickhouse_ru
    я по-хитрому собираю конфигурацию локальных таблиц под distributed движком, чтобы напрямую писать в них в ряде случаев. пишу через http, все собрать могу через экземпляр кх с distibuted, кроме http_port
  • https://t.me/clickhouse_ru
    если расскажете как, буду благодарен
  • https://t.me/clickhouse_ru
    А чем вам поможет знание порта в кх? Nat balancer port forwarding ?
  • https://t.me/clickhouse_ru
    Словарь executable
  • https://t.me/clickhouse_ru
    расширение для гринплама, которое льет через собственный внутренний движок внешних таблиц данные в кх по хитрому алгоритму (там долго рассказывать детали)
  • https://t.me/clickhouse_ru
    Да мне все равно. Я столько не пью.
  • https://t.me/clickhouse_ru
    спасибо!
  • https://t.me/clickhouse_ru
    @Daraning #107103 02:50 AM, 02 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @prospik #107104 05:00 AM, 02 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @necrosisoff #107105 05:02 AM, 02 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @Vabka #107106 05:02 AM, 02 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @ployd #107107 05:47 AM, 02 Jul 2019
    В каком порядке вставка в matview идёт? По алфавиту? По порядку создания?
  • https://t.me/clickhouse_ru
    @ployd #107108 05:48 AM, 02 Jul 2019
    Кстати, в ченджлоге фигурирует parallel_view_processing, но в списке настроек не находится
  • https://t.me/clickhouse_ru
    Это нормально, ищите сразу на гитхабе https://github.com/yandex/ClickHouse/search?l=SQL&q=parallel_view_processing&type=
    yandex/ClickHouse

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

  • https://t.me/clickhouse_ru
    @blinkovivan #107110 08:19 AM, 02 Jul 2019
    Акция в Облаке — не упустите возможность развернуть управляемые базы данных и использовать их со скидкой! С 1 по 31 июля 2019 г. разверните новую базу данных в Облаке, используйте её платно и получите скидку до 40% на использование этой БД в течение 12 месяцев.

    Как участвовать в акции?
    1. Перейдите на платный аккаунт или пополните баланс, если вы уже используете платную версию Облака.
    2. С 1 по 31 июля выберите СУБД, с которой вы не работали раньше, из списка на сайте и создайте кластер БД. Используйте эту БД платно в течение месяца, включая 31 июля.
    3. С 1 августа получите скидку на все классы хостов этой СУБД в Облаке на 12 месяцев.

    Если вы пробовали работать с БД в Облаке до июня, то у вас тоже есть возможность получить скидку на год. Подробные условия здесь.
    Link

    12 месяцев платного использования сервисов по управлению базами данных со скидкой до 40%. Акция действует с 1 по 31 августа 2019 года. На БД Redis™ в Облаке скидка может достигать 42%. Подробные условия по ссылке: https://ya.cc/66XzD

  • @avdot #107112 08:59 AM, 02 Jul 2019
    Привет. Есть readoly профиль, есть юзер с этим профилем, запускаю клента передаю send_logs_level, он не выставляется, через SET send_logs_level тоже, говорит
    Cannot execute SET query in readonly mode.
    Можно ли как-то создать сессию под readonly юзером и при старте поменять уровень send_logs_level?
  • @v_math #107113 09:12 AM, 02 Jul 2019
    Joined.
  • @avdot #107115 09:50 AM, 02 Jul 2019
    там есь min, max, readonly
  • @avdot #107116 09:50 AM, 02 Jul 2019
    что задать для trace, debug, info ... ?
  • @citrin_ru #107117 10:02 AM, 02 Jul 2019
    As far as I understand 1st user should readonly=2 (allow change any settings), than you can add constraints on all settings except send_logs_level (I don't know if there an easier way).
  • https://t.me/clickhouse_ru
    @stovm #107118 10:11 AM, 02 Jul 2019
    А есть какой-то способ сделать SYSTEM RELOAD DICTIONARIES
    но ON CLUSTER ?
  • @avdot ↶ Reply to #107117 #107119 10:24 AM, 02 Jul 2019
    👍 спасибо
  • @ilyas_pro #107120 10:40 AM, 02 Jul 2019
    Всем привет! Подскажите, mergeTree движок пишет какую-то мету для вставляемых строк типа времени вставки или вроде того?
  • https://t.me/clickhouse_ru
    @blind_oracle #107121 10:41 AM, 02 Jul 2019
    построчно - нет. для парта (одного инсерта пока он не смержился) вся метадата есть в system.parts
  • А шо делать если в клауд карта не добавляется и все запросы в саппорт игнорируются?
  • https://t.me/clickhouse_ru
    есть номер тикет в саппорте?
  • @suoenrorre #107124 11:18 AM, 02 Jul 2019
    Joined.
  • @Ru6aKa #107125 11:20 AM, 02 Jul 2019
    Joined.
  • я много раз заполнял форму на сайте
    на почту ничего не приодило
  • @suoenrorre #107127 11:23 AM, 02 Jul 2019
    SELECT
    elapsed,
    formatReadableSize(memory_usage) AS memory_usage,
    initial_user,
    formatReadableSize(read_bytes) AS read_bytes,
    substring(query, 1, 650) AS query
    FROM
    system.processes;

    Правильно я понимаю, что такой запрос возвращает процессы только на текущей ноде кластера? А можно ли получить процессы на всех нодах или надо на каждой отдельно запрашивать?
  • https://t.me/clickhouse_ru
    remote позволяет
  • @orlan_sar #107129 11:26 AM, 02 Jul 2019
    Есть две колонки "время начала" и "время конца" хочу найти продолжительность(интервал) между колонками в часах и минутах. Подскажите, плиз?
  • https://t.me/clickhouse_ru
    даже в спам? не Украина случаем?
  • ни в спаме, нив логах мта
  • она самая
  • https://t.me/clickhouse_ru
    вероятно какой-то побочный эффект от https://www.president.gov.ua/documents/822019-26290
    УКАЗ ПРЕЗИДЕНТА УКРАЇНИ №82/2019 — Офіційне інтернет-представництво Президента України

    Про рішення Ради національної безпеки і оборони України від 19 березня 2019 року

  • https://t.me/clickhouse_ru
    @devandreyl #107134 11:35 AM, 02 Jul 2019
    Всем привет, есть вопрос по тому какой движок лучше юзать. Цель следующая: хранить текстовые данные( анкоры(например site.com/url) ) как в ahrefs“, но анкоры со страницы могут со временем удалятся, и их нужно будет удалять из базы. На сколько я понял, сейчас нет для решения это задачи подходящих движков, или кто-то решал уже подобное? Поделитесь как
  • https://t.me/clickhouse_ru
    @devandreyl #107135 11:36 AM, 02 Jul 2019
    Именно в контексте кликхаус
  • https://t.me/clickhouse_ru
    @blind_oracle #107136 11:37 AM, 02 Jul 2019
    удалять это не про кликхаус. удаление только через alter table.
  • https://t.me/clickhouse_ru
    @devandreyl #107137 11:40 AM, 02 Jul 2019
    Это я знаю
  • https://t.me/clickhouse_ru
    @devandreyl #107138 11:40 AM, 02 Jul 2019
    Вопрос в другом
  • https://t.me/clickhouse_ru
    @tratatataass #107139 11:41 AM, 02 Jul 2019
    Можно попробовать на CollapsingMergeTree построить такое, но сильно от задачи зависит
  • https://t.me/clickhouse_ru
    @devandreyl #107140 11:41 AM, 02 Jul 2019
    не получится так
  • https://t.me/clickhouse_ru
    @devandreyl #107141 11:41 AM, 02 Jul 2019
    там нет дублей
  • https://t.me/clickhouse_ru
    @devandreyl #107142 11:41 AM, 02 Jul 2019
    нужо именно хранилище
  • https://t.me/clickhouse_ru
    @devandreyl #107143 11:41 AM, 02 Jul 2019
    с которого можно быстро доставать и сортировать данные
  • https://t.me/clickhouse_ru
    @biochemicalcake #107144 11:42 AM, 02 Jul 2019
    Мы вставляем с sign -1 ту же запись для удаления
  • https://t.me/clickhouse_ru
    @devandreyl #107145 11:42 AM, 02 Jul 2019
    не совсем понял о sign - 1
  • https://t.me/clickhouse_ru
    @biochemicalcake #107146 11:42 AM, 02 Jul 2019
    А данные отдаются через вью
  • https://t.me/clickhouse_ru
    @biochemicalcake #107147 11:43 AM, 02 Jul 2019
    Это для CollapsingMergingTree
  • https://t.me/clickhouse_ru
    @biochemicalcake #107148 11:43 AM, 02 Jul 2019
    Строки схлопываются с -1 и 1
  • @suoenrorre #107149 11:43 AM, 02 Jul 2019
    Просто помечать данные удалёнными, а не удалять.
  • https://t.me/clickhouse_ru
    @biochemicalcake #107150 11:43 AM, 02 Jul 2019
    Тоже вариант
  • https://t.me/clickhouse_ru
    но это для числовых значений
  • https://t.me/clickhouse_ru
    @devandreyl #107152 11:44 AM, 02 Jul 2019
    у меня же будут строковые
  • https://t.me/clickhouse_ru
    @devandreyl #107153 11:44 AM, 02 Jul 2019
    или я не правильно понимаю
  • https://t.me/clickhouse_ru
    @tratatataass #107154 11:44 AM, 02 Jul 2019
    не имеет значения тип поля
  • https://t.me/clickhouse_ru
    @biochemicalcake #107155 11:44 AM, 02 Jul 2019
    +
  • https://t.me/clickhouse_ru
    @biochemicalcake #107156 11:44 AM, 02 Jul 2019
    Строки схлопывается по ключу
  • https://t.me/clickhouse_ru
    Тоже вариант, но со временем таких данных будет очень много и придется тратить деньги на сервера
  • Шардировать по месяцам, например и дропать шарды.
  • https://t.me/clickhouse_ru
    @devandreyl #107159 11:46 AM, 02 Jul 2019
    @alikutov твой вариант хорош, а как ведет себя кх на большем объеме записей?
  • https://t.me/clickhouse_ru
    Со временем "помеченные" строчки будут свернуты https://clickhouse.yandex/docs/ru/operations/table_engines/collapsingmergetree/#table_engine-collapsingmergetree-collapsing
  • https://t.me/clickhouse_ru
    @DBarchenkov #107161 11:46 AM, 02 Jul 2019
    Ребятки, есть тут кто, подключающийся по odbc из Tableau к ClickHouse?
    При публикации воркбуков постоянно слетает форматирование. Кто-нибудь сталкивался с этим? Нашли причину?🙏
  • https://t.me/clickhouse_ru
    Нельзя, допустим за один день могли поставить 10 ссылок и удалить из них 2, а если дропать шард - то остальные 8 в этот же день тоже дропнутся
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @devandreyl #107164 11:47 AM, 02 Jul 2019
    Спасибо ребят
  • https://t.me/clickhouse_ru
    @devandreyl #107165 11:47 AM, 02 Jul 2019
  • https://t.me/clickhouse_ru
    @biochemicalcake #107166 11:47 AM, 02 Jul 2019
    У нас записей не очень много, около 100к в день
  • https://t.me/clickhouse_ru
    @devandreyl #107167 11:47 AM, 02 Jul 2019
    Ну у меня всего будет около 1кк
  • https://t.me/clickhouse_ru
    @ondanna #107168 11:48 AM, 02 Jul 2019
    уважаемые коллеги, прошу прощения за тупой вопрос, но как переименовывать матвьюхи? :)
  • https://t.me/clickhouse_ru
    1 миллион это не о чем
  • https://t.me/clickhouse_ru
    @devandreyl #107170 11:48 AM, 02 Jul 2019
    Но на PG слишком большая нагрузка и так, по этому и решил юзать кх
  • https://t.me/clickhouse_ru
    @blind_oracle #107171 11:48 AM, 02 Jul 2019
    КХ легко жует миллиарды и триллионы
  • https://t.me/clickhouse_ru
    @devandreyl #107172 11:48 AM, 02 Jul 2019
    Да, я знаю)
  • https://t.me/clickhouse_ru
    @devandreyl #107173 11:48 AM, 02 Jul 2019
    По этому и хочу его использовать
  • https://t.me/clickhouse_ru
    @devandreyl #107174 11:49 AM, 02 Jul 2019
    + данные занимают меньше места чем в том же pg
  • https://t.me/clickhouse_ru
    @biochemicalcake #107175 11:49 AM, 02 Jul 2019
    Почитай доку, там все подробно расписано
  • https://t.me/clickhouse_ru
    @blind_oracle #107176 11:49 AM, 02 Jul 2019
    таблицу на миллон строк проще удалять через ALTER TABLE чем городить коллапс
  • https://t.me/clickhouse_ru
    @biochemicalcake #107177 11:49 AM, 02 Jul 2019
    И даже на русском))
  • https://t.me/clickhouse_ru
    MV c to или без?
  • https://t.me/clickhouse_ru
    apt-get install cassandra -- я не шучу
  • https://t.me/clickhouse_ru
    Ага, у проекта уже и так 3 отдельных бд есть, еще 4-ю не хватало туда)
  • https://t.me/clickhouse_ru
    По этому и уточнил
  • https://t.me/clickhouse_ru
    самая простая как по документации
    CREATE MATERIALIZED VIEW default.statistic
    ENGINE = MergeTree() PARTITION BY toYYYYMM(timestamp) ORDER BY (.....) SETTINGS index_granularity = 8192 AS
    SELECT *
    FROM default.data;
  • https://t.me/clickhouse_ru
    @blind_oracle #107183 11:51 AM, 02 Jul 2019
    Кассандра это про "быстро достать 1 ключ" ))
  • https://t.me/clickhouse_ru
    И что ? Ну забивайте гвозди тапком.
  • https://t.me/clickhouse_ru
    Мне нужно не таблицу а 1 запись удалить
  • https://t.me/clickhouse_ru
    Да, так и будем делать:)
  • https://t.me/clickhouse_ru
    через ALTER TABLE записи и удаляются по фильтру WHERE
  • https://t.me/clickhouse_ru
    Это я тоже знаю) Но в услове в where должно быть тип UInt 8
  • https://t.me/clickhouse_ru
    @devandreyl #107189 11:53 AM, 02 Jul 2019
    А у меня String
  • 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
    @blind_oracle #107194 11:54 AM, 02 Jul 2019
    это результат должен быть такой
  • https://t.me/clickhouse_ru
    @blind_oracle #107195 11:54 AM, 02 Jul 2019
    а не тип столбца
  • https://t.me/clickhouse_ru
    @blind_oracle #107196 11:55 AM, 02 Jul 2019
    Uint8 там вместо true/false юзается
  • https://t.me/clickhouse_ru
    @devandreyl #107197 11:56 AM, 02 Jul 2019
    Да, мой проеб, сорян
  • https://t.me/clickhouse_ru
    @devandreyl #107198 11:57 AM, 02 Jul 2019
    Просто пробовал удалить через IDE, а там выполняется такой запрос
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @devandreyl #107201 11:58 AM, 02 Jul 2019
    По этому не хотело удалять
  • https://t.me/clickhouse_ru
    @devandreyl #107202 11:58 AM, 02 Jul 2019
    Тогда можно обыкновенный MergeTree юзать и не парится
  • https://t.me/clickhouse_ru
    @dmpichugin #107203 11:59 AM, 02 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    было CREATE MATERIALIZED VIEW testmv

    detach table testmv;
    rename table `.inner.testmv` to `.inner.newtestmv`;

    # mv /var/lib/clickhouse/metadata/dw/testmv.sql /var/lib/clickhouse/metadata/dw/newtestmv.sql

    attach table newtestmv;
  • https://t.me/clickhouse_ru
    понял! спасибо большое
  • https://t.me/clickhouse_ru
    @ondanna #107206 12:02 PM, 02 Jul 2019
    то есть аттач детач отключают "представление" (таблицу или матвью) от данных
  • https://t.me/clickhouse_ru
    убирает из инстанса, без удаления данных на диске. Фактически ребут КХ это detach -> attach
  • https://t.me/clickhouse_ru
    @ondanna #107208 12:05 PM, 02 Jul 2019
    хммммм я вот глянул Ваш код там ренейм применяется к матвью но указывается table и меня осенило попробовать наживую без детачей этот же код
    работает !
  • https://t.me/clickhouse_ru
    @ondanna #107209 12:06 PM, 02 Jul 2019
    то есть движок ренейм table спокойно применяет к матвью
  • https://t.me/clickhouse_ru
    @ondanna #107210 12:08 PM, 02 Jul 2019
    оставется вопрос правильно ли это 🙂 недокументированные особенности часто могут гхм ... стрелять в неожиданные части тела
  • У меня есть требование работать от readonly-пользователя. В этом случае поможет только Distributed поверх system.processes?
  • https://t.me/clickhouse_ru
    ну вопрос тогда какая у вас версия, это смержили только что https://github.com/yandex/ClickHouse/pull/5209
  • https://t.me/clickhouse_ru
    @ondanna #107213 12:12 PM, 02 Jul 2019
    19.9.2.4 одна из самых свежих в докере
  • https://t.me/clickhouse_ru
    да. Зачем пользователю туда ходить?
  • есть. что за "форматирование слетает"? как это выглядит?
  • https://t.me/clickhouse_ru
    да я понял что это новинка 🙂 врятле Вы стали бы советовать обходной путь если бы простой ренейм работал бы, Спасибо за наводку! чтото мне самому не пришло в голову попробовать table вместо матвью указывать в командах
  • https://t.me/clickhouse_ru
    Короткий ответ: цвета графиков
    Длинный: изменяю исходную (автоматически "назначенную") цветовую гамму графиков (чтобы план одиним цветом, факт 2018 - другим, факт 2019 - третьим). Мало того, что на десктопной версии это изменение не сохраняется, так ещё при публикации воркбука на сервер tableau нужная цветовая гамма не передается - передается исходный вариант🤷
  • Мониторинг.
  • @andrey45263 #107220 12:35 PM, 02 Jul 2019
    Добрый день, подскажите пожалуйста почему может возникать такая ошибка:

    2019.07.02 11:50:00.909962 [ 15 ] <Error> sns.co_uk_product_agg_original (StorageReplicatedMergeTree): DB::StorageReplicatedMergeTree::queueTask()::<lambda(DB::StorageReplicatedMergeTree::LogEntryPtr&)>: Cod
    e: 10, e.displayText() = DB::Exception: Not found column avg_price in block. There are only columns: , e.what() = DB::Exception, Stack trace:

    0. clickhouse-server(StackTrace::StackTrace()+0x16) [0x4810b46]
    1. clickhouse-server(DB::Exception::Exception(std::string const&, int)+0x1f) [0x264a23f]
    2. clickhouse-server(DB::Block::getByName(std::string const&)+0x9a) [0x3a2daca]
    3. clickhouse-server(DB::ColumnGathererStream::init()+0x16c) [0x43ce56c]
    4. clickhouse-server(DB::ColumnGathererStream::readImpl()+0x8e0) [0x43cfb70]
    5. clickhouse-server(DB::IProfilingBlockInputStream::read()+0x1fd) [0x3a3f38d]
    6. clickhouse-server(DB::MergeTreeDataMergerMutator::mergePartsToTemporaryPart(DB::MergeTreeDataMergerMutator::FuturePart const&, DB::MergeListEntry&, unsigned long, long, DB::DiskSpaceMonitor::Reservation*,
    bool)+0x3c28) [0x42bc368]
    7. clickhouse-server(DB::StorageReplicatedMergeTree::tryExecuteMerge(DB::ReplicatedMergeTreeLogEntry const&)+0x959) [0x424a8a9]
    8. clickhouse-server(DB::StorageReplicatedMergeTree::executeLogEntry(DB::ReplicatedMergeTreeLogEntry&)+0x25b) [0x424f52b]
    9. clickhouse-server() [0x424fcd0]
    10. clickhouse-server(DB::ReplicatedMergeTreeQueue::processEntry(std::function<std::shared_ptr<zkutil::ZooKeeper> ()>, std::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&, std::function<bool (std::shared_ptr<D
    B::ReplicatedMergeTreeLogEntry>&)>)+0x41) [0x431d031]
    11. clickhouse-server(DB::StorageReplicatedMergeTree::queueTask()+0x19d) [0x422bd8d]
    12. clickhouse-server(DB::BackgroundProcessingPool::threadFunction()+0x3ee) [0x427ab9e]
    13. clickhouse-server() [0x4ca4f9f]
    14. /lib64/libpthread.so.0(+0x7dd5) [0x7fe4f5874dd5]
    15. /lib64/libc.so.6(clone+0x6d) [0x7fe4f5097ead]
  • @andrey45263 #107221 12:36 PM, 02 Jul 2019
    ведь если скаченная реплика была повреждена, то не сойдутся чексуммы и парт будет стянут по-новой?
  • 3d secure работает без каких-либо проблем
    ошибку в я.к. не могу увидить - она мелькает на доли секунды
  • https://t.me/clickhouse_ru
    версия КХ ?
  • @andrey45263 #107224 12:49 PM, 02 Jul 2019
    1.1.54390
  • @Prokh ↶ Reply to #107224 #107225 12:51 PM, 02 Jul 2019
    Жесть
  • https://t.me/clickhouse_ru
    @ajIeks #107226 12:51 PM, 02 Jul 2019
    Привет всем, возможно ли сконвертировать строку вида "2019-07-02T12:44:42.569Z" в DateTime или проще привести исходные данные к более простому виду?
  • очень хотим обновиться, но есть неотложные дела, которые нужно делать сейчас, к сожалению
  • если при сохранении книги (в Десктопе) и повторном открытии ее (в Десктопе) цвета сбрасываются, то это вопрос к Табло (не к CH). Напишите мне в личку, разберемся.
  • https://t.me/clickhouse_ru
    select parseDateTimeBestEffortOrZero('2014-09-21T09:44:28+0400')
    для инсерт date_time_input_format "Method to read DateTime from text input formats. Possible values: 'basic' and 'best_effort'."
  • @Prokh ↶ Reply to #107226 #107231 12:57 PM, 02 Jul 2019
    Через регулярку возможно
  • https://t.me/clickhouse_ru
    @ajIeks #107232 01:10 PM, 02 Jul 2019
    Спасибо, попробую сообразить чего-нибудь
  • https://t.me/clickhouse_ru
    Чего соображать. Кх поддерживает это через besteffort
  • https://t.me/clickhouse_ru
    @ajIeks #107234 01:12 PM, 02 Jul 2019
    точн ) сорян, спасибо, получилось 🙂
  • https://t.me/clickhouse_ru
    @iusik #107235 01:51 PM, 02 Jul 2019
    смотрю.
  • https://t.me/clickhouse_ru
    @atutik #107237 02:03 PM, 02 Jul 2019
    Сори кто увидел, сверхчуствительный тач)))
  • https://t.me/clickhouse_ru
    @needigeo #107238 02:05 PM, 02 Jul 2019
    Joined.
  • @st0neg0d #107239 02:12 PM, 02 Jul 2019
    Всем привет. У меня в таблицe хранятся полигоны в струтурe Array(Tuple(Float64, Float64))
    но при попытке подставить ее в функцию pointInPolygon получаю ошибку
    DB::Exception: Argument 2 for function pointInPolygon must be constant array of tuples

    Получается в таблице хранится не константы?
    описывал структуру используя `Nested`🤔
    есть способ обйти это? 🤔
  • https://t.me/clickhouse_ru
    Моё скромное ИМХО, что единственный «хороший» формат датывремени — это UNIX timestamp (и ClickHouse, насколько мне известно, так и хранит датувремя). Соответственно, я бы рекомендовал всегда стараться вставлять в ClickHouse датувремя обычным числом, чтобы не было путаницы с временными зонами, например. Единственное место, где все-таки таймзона, выставленная на сервере влияет — это то, как считается дата на основе датывремени. Обычно её удобнее всего считать в той таймзоне, которая для ваших клиентов ближе всего (например Москва), и дата хранится отдельно, так что её нельзя (или очень сложно) пересчитать потом
  • https://t.me/clickhouse_ru
    @ajIeks ↶ Reply to #107240 #107241 02:14 PM, 02 Jul 2019
    с этим согласен, но это натягивание совы на глобус с минимальной работой напильником 🙂 данные из кафки идут
  • https://t.me/clickhouse_ru
    @roko99 #107243 03:04 PM, 02 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    под константой имеется в виду что вы руками вводите полигон
  • @st0neg0d #107245 03:29 PM, 02 Jul 2019
    Вот оно что.. Получается это ни как не обойти
  • https://t.me/clickhouse_ru
    @Sablast #107246 03:29 PM, 02 Jul 2019
    циклом в питоне
  • @st0neg0d #107247 03:33 PM, 02 Jul 2019
    Циклом то понятно, но хотелось сохранить полигоны в базу и после использовать материализованное представление.
  • https://t.me/clickhouse_ru
    @Sablast #107248 03:35 PM, 02 Jul 2019
    значит вам нужен какой никакой ETL перед складыванием в КХ
  • https://t.me/clickhouse_ru
    @Sablast #107249 03:36 PM, 02 Jul 2019
    подскажите, есть сейчас версия КХ которая научилась нормально убивать таблицы с ENGINE = Kafka ?
  • https://t.me/clickhouse_ru
    @Sablast #107250 03:36 PM, 02 Jul 2019
    19.9.2 revision 54421 - дроп висит уже 10 минут
  • https://t.me/clickhouse_ru
    avg_price это alter-м добавили или это alias колонка?
  • В том то и загадочность ситуации что avg_price это Float32 который существовал с давних времен и не менялся в ближайшее время
  • https://t.me/clickhouse_ru
    ну надо в общем смореть в логе что делал [ 15 ], и откуда этот парт взялся и куда делся
  • https://t.me/clickhouse_ru
    @gorsil #107254 03:44 PM, 02 Jul 2019
    Привет. Делаю селект в distributed таблицу, с использованием словаря, падает с ошибкой что типа нету такого словаря, но на конечных машинках этот же запрос (названия таблиц совпадает) отрабатывает. В чем может быть проблема?
  • https://t.me/clickhouse_ru
    @gorsil #107255 03:45 PM, 02 Jul 2019
    Словари ведь на конечных нодах применяются, а не на dist таблице
  • https://t.me/clickhouse_ru
    в смысле на инициаторе где distributed такого словаря нет?
  • https://t.me/clickhouse_ru
    @gorsil #107257 03:46 PM, 02 Jul 2019
    На нем его действитель нету, но в запросе используется сразу несколько словарей, ругается он только на 1 из них
  • https://t.me/clickhouse_ru
    @den_crane #107258 03:46 PM, 02 Jul 2019
    почему вы решили что на инициаторе он не нужен? инициатор домерживает
  • https://t.me/clickhouse_ru
    @gorsil #107259 03:46 PM, 02 Jul 2019
    хм
  • https://t.me/clickhouse_ru
    @den_crane #107260 03:47 PM, 02 Jul 2019
    т.е. прикол в том что из-за () пол-запроса можно переместить на инициатор
  • https://t.me/clickhouse_ru
    @gorsil #107261 03:47 PM, 02 Jul 2019
    Типо там ast такое получилось что часть словарей он на нодах применяет, а часть на инициаторе?
  • https://t.me/clickhouse_ru
    @den_crane #107262 03:47 PM, 02 Jul 2019
    как запрос выглядит примерно?
  • https://t.me/clickhouse_ru
    @gorsil #107263 03:48 PM, 02 Jul 2019
    могу в личку скинуть кусок
  • https://t.me/clickhouse_ru
    нет спасибо, я уже хороший
  • https://t.me/clickhouse_ru
    @gorsil #107265 03:49 PM, 02 Jul 2019
    Кусок запроса, тот кусок о котором ты говоришь - не отдам
  • https://t.me/clickhouse_ru
    у вас в having dictGetInt8
    собрав со всех нод резултат и досуммировав, having нельзя проверить без словаря
  • https://t.me/clickhouse_ru
    @gorsil #107267 03:56 PM, 02 Jul 2019
    Но почему стреляет только 1 словарь, а все остальные норм?
  • https://t.me/clickhouse_ru
    @den_crane #107268 03:57 PM, 02 Jul 2019
    потому что он в having ?
  • https://t.me/clickhouse_ru
    @gorsil #107269 03:58 PM, 02 Jul 2019
    Как раз таки нет
  • https://t.me/clickhouse_ru
    @gorsil #107270 04:01 PM, 02 Jul 2019
    Стреляет только 1 dict который разворачивает колонку, если его убрать то всё работает, но нифига не понятно почему. Там ведь сразу много разных диктов используется аналогично этому
  • https://t.me/clickhouse_ru
    @gorsil #107271 04:02 PM, 02 Jul 2019
    Ладно, это очень походит на баг, напишу в команду ch пожалуй
  • @ViacheslavNefedov #107272 04:14 PM, 02 Jul 2019
    Вставляю данные из представления в таблицу. 20 млн строк. 3 млн вставляет и всё. Можно как-то подтюнить чтобы всё вставилось?
  • https://t.me/clickhouse_ru
    @gorsil #107273 04:15 PM, 02 Jul 2019
    У тебя таймаут запроса скорее всего случается
  • @ViacheslavNefedov #107275 04:19 PM, 02 Jul 2019
    Тайм-аута уже нет, я менял запрос по разному - всегда вставляет в точности одно количество строк. Вроде была настройка по максимальной величине пакета на вставку
  • @ViacheslavNefedov #107276 04:21 PM, 02 Jul 2019
    Там по памяти ещё проблема - пока в массивах, все ок, а только делаю array join - сразу вся память заканчивается. Тоже не знаю как бороться
  • https://t.me/clickhouse_ru
    group by / order by в запросе? Какая ошибка copy/paste ? Сколько памяти?
  • https://t.me/clickhouse_ru
    Ошибка есть? Что в логе КХ ?
  • https://t.me/clickhouse_ru
    @avabr #107279 05:56 PM, 02 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @TssDragon #107280 06:54 PM, 02 Jul 2019
    Joined.
  • @ViacheslavNefedov #107281 08:29 PM, 02 Jul 2019
    @den_crane завтра выложу всё, сегодня уже нет доступа к системе
  • 03 July 2019 (148 messages)
  • @Promsoft #107282 04:14 AM, 03 Jul 2019
    Joined.
  • @certifiedmindblower #107283 04:16 AM, 03 Jul 2019
    Joined.
  • @707575417 #107286 04:48 AM, 03 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @ivgenich #107287 04:49 AM, 03 Jul 2019
    /stat@combot
  • https://t.me/clickhouse_ru
    @rjazsenka #107291 06:27 AM, 03 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @Kos4u #107292 07:02 AM, 03 Jul 2019
    Привет всем!

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

    Подскажите, как это сделать.
  • https://t.me/clickhouse_ru
    @Kos4u ↶ Reply to #107292 #107293 07:06 AM, 03 Jul 2019
    @milovidov_an есть ли такие средства ограничения доступа на уровне СУБД?
  • https://t.me/clickhouse_ru
    @forward32 #107294 07:07 AM, 03 Jul 2019
    Вот тут разве не об этом? https://clickhouse.yandex/docs/ru/operations/access_rights/
  • https://t.me/clickhouse_ru
    @forward32 #107295 07:08 AM, 03 Jul 2019
    По крайней мере ограничить юзеру список доступных баз - точно тут есть
  • https://t.me/clickhouse_ru
    @Kos4u ↶ Reply to #107295 #107296 07:18 AM, 03 Jul 2019
    Спасибо. Прочитал весь текст, а в примере конфига нужную строку и не заметил.
  • https://t.me/clickhouse_ru
    @forward32 #107297 07:19 AM, 03 Jul 2019
    <allow_databases>
    <database>test</database>
    </allow_databases>
    ???
  • @ViacheslavNefedov #107298 07:44 AM, 03 Jul 2019
    @den_crane с запросом получилось так - часть на массивах потребляет 700мб. После array join всё, труба, просит 250гб на запрос и умирает (я не даю ему столько памяти). Никак не получается обойти.
  • @ViacheslavNefedov #107300 07:46 AM, 03 Jul 2019
    Вроде ничего криминального кроме собственно array join нету. 3.5млн записей пока с массивами, 25млн в развернутом виде
  • @ViacheslavNefedov #107301 07:48 AM, 03 Jul 2019
    До array join считается влёт
  • https://t.me/clickhouse_ru
    @Kos4u #107302 07:49 AM, 03 Jul 2019
    Сколько записей при выборке внутреннего запроса без CROSS JOIN и с ним? Может его вообще наружу вытащить?
  • https://t.me/clickhouse_ru
    @Kos4u ↶ Reply to #107297 #107303 07:49 AM, 03 Jul 2019
    Да, я нашел. Спасибо.
  • @ViacheslavNefedov #107304 07:51 AM, 03 Jul 2019
    В cross join 20 записей и считается моментально. Все плохое начинается только на array join
  • https://t.me/clickhouse_ru
    @Kos4u ↶ Reply to #107304 #107305 08:08 AM, 03 Jul 2019
    Это в нем 20 записей, а в результате перемножения выборок у тебя весь результат может легко вырасти в 20 раз
  • https://t.me/clickhouse_ru
    @Kos4u #107306 08:08 AM, 03 Jul 2019
    Поэтому я и спрашиваю про размер с и без
  • @ViacheslavNefedov #107307 08:09 AM, 03 Jul 2019
    Там не перемножается - оно же аггрегировано в одну строку
  • https://t.me/clickhouse_ru
    @Kos4u ↶ Reply to #107297 #107308 08:09 AM, 03 Jul 2019
    В случае с VIEW возникает ошибка доступа, если пользователю я даю доступ к представлению из базы данных, куда доступ у пользователя отсутствует
  • https://t.me/clickhouse_ru
    @forward32 #107309 08:12 AM, 03 Jul 2019
    Я не знаю, можно ли настроить права per таблицу, но то, что вы описали, звучит логично, не? Типа вы запретили смотреть пользователю базу X, значит то, что он не сможет посмотреть вьюху (которая по сути таблица, если речь о матвью) из базы X - ожидаемо.
  • https://t.me/clickhouse_ru
    @Kos4u ↶ Reply to #107309 #107310 08:12 AM, 03 Jul 2019
    Вьюха в моем случае содержит ограниченный список полей, которые можно отобразить пользователю
  • https://t.me/clickhouse_ru
    @Kos4u #107311 08:14 AM, 03 Jul 2019
    Я могу дать ему ещё права только на чтение, чтобы он не смог создать другие представления для доступа к основным таблицам
  • https://t.me/clickhouse_ru
    @forward32 #107312 08:17 AM, 03 Jul 2019
    Ну, кажется решение такое - вы делаете пользователя X, который может делать с базой че угодно и делаете пользователя Y с опцией readonly, в список его баз пишите ту, в которую ему надо ходить на чтение. Но, как я понимаю, он будет уметь читать все из этой базы
  • @AlyushkinVA #107313 08:17 AM, 03 Jul 2019
    Привет всем,
  • https://t.me/clickhouse_ru
    @Kos4u ↶ Reply to #107312 #107314 08:17 AM, 03 Jul 2019
    Да, и это мне не подходит(
  • @AlyushkinVA #107315 08:19 AM, 03 Jul 2019
    подскажите есть какой то простой и быстрый способ импоритровать таблицу из DB clickhouse в CSV, таблица сама по седе не очень большая.
  • @AlyushkinVA #107316 08:19 AM, 03 Jul 2019
    ?
  • https://t.me/clickhouse_ru
    @forward32 #107317 08:20 AM, 03 Jul 2019
    export table in csv · Issue #1751 · yandex/ClickHouse

    Hello, There is any way I can export an entire table in csv or any other format ? SELECT * from table is excluded as time the table is pretty big and I need something to export it in chunks Silviu

  • @AlyushkinVA #107318 08:27 AM, 03 Jul 2019
    спасибо
  • https://t.me/clickhouse_ru
    @blinkovivan #107319 08:42 AM, 03 Jul 2019
    Появился экспериментальный YouTube канал, где будем стараться собирать весь видео контент по ClickHouse в одном месте: https://www.youtube.com/channel/UChtmrD-dsdpspr42P_PyRAw Подписывайтесь, чтобы быть в курсе развития событий 🙂
    Из совсем эксклюзивного материала там пока только часть последнего митапа в Новосибирске.

    Предстоящий ClickHouse Meetup в Минске 11 июля: https://yandex.ru/promo/metrica/clickhouse-minsk
  • https://t.me/clickhouse_ru
    None
  • https://t.me/clickhouse_ru
    @624619071 #107321 08:43 AM, 03 Jul 2019
  • https://t.me/clickhouse_ru
    о, наконец-то, круть👍
  • https://t.me/clickhouse_ru
    @atutik #107323 08:43 AM, 03 Jul 2019
    7 мой =)
  • https://t.me/clickhouse_ru
    Увидел лого и подумал: "А причем тут Билайн?" ))) Очень хорошо что сейчас будет канал где собраны все видео!
  • @ramun25 ↶ Reply to #96478 #107326 09:35 AM, 03 Jul 2019
    Тоже поймал ошибку cannot schedule task. В каких случаях она возникает? У меня внешний процесс транкейтит табличку в памяти (Memory), вставляет данные, матвьюха на ней обогащенные данные кладёт в целевую.
  • https://t.me/clickhouse_ru
    @ployd ↶ Reply to #107107 #107327 09:44 AM, 03 Jul 2019
    Отвечу сам: по алфавиту, причём по названию MV, имя целевой таблицы значения не имеет (это для кейса CREATE MAT VIEW .. TO ..)

    Порядок обхода — деталь реализации: https://github.com/yandex/ClickHouse/blob/9ea05b2401a01f37307ebf11d2d7bd4cccdffe5a/dbms/src/Interpreters/Context.h#L88

    И завязываться не хочется.

    Вопрос: есть ли риск, что в будущем std::set заменят на std::unordered_set и свойство нарушится? Или таки где-то свойство зафиксировано, но я его не вижу?
    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
    @ployd #107328 09:44 AM, 03 Jul 2019
    Зачем это нужно:
    Нам в одном месте нужна транзакционная запись в несколько таблиц (A, B, C). И предполагаемое решение:
    * все строки провязываются некоторым общим transaction_id
    * делается общая таблица A&B&C (конкатенацией полей) с ENGINE=null, после чего MV в A, B, C.
    * Последним MV добавляется некоторый "~transaction_log", куда пишется тот же transaction_id.
    * Если в transaction_log есть запись, то записи легли во все нужные таблицы, куда должны были лечь (A, B, C), иначе, при фейле записи хоть в одну и них общая операция INSERT зафейлилась, не дойдя до последней MV.
  • @swatgetmann #107331 09:52 AM, 03 Jul 2019
    /
  • https://t.me/clickhouse_ru
    @toshich_omsk #107332 09:57 AM, 03 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @153320011 #107333 10:30 AM, 03 Jul 2019
    Здравствуйте
  • https://t.me/clickhouse_ru
    @153320011 #107334 10:32 AM, 03 Jul 2019
    Столкнулся с проблемой, с какой-то периодичностью жрёт CPU, хочу отследить какие запросы или что конкретно может это делать. Подскажите пожалуйста куда смотреть.
  • @k2u1k5c #107335 10:36 AM, 03 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    Мержинг?
  • https://t.me/clickhouse_ru
    @153320011 #107337 11:18 AM, 03 Jul 2019
    В htop, нагрузка clickhouse-server/config.xml
  • https://t.me/clickhouse_ru
    MergeTree
  • https://t.me/clickhouse_ru
    @blind_oracle #107339 11:18 AM, 03 Jul 2019
    мержтри мержит парты в бэкграунде. Поэтому всплески проца ожидаемы.
  • https://t.me/clickhouse_ru
    @153320011 #107340 11:25 AM, 03 Jul 2019
    Просто всплески каждые 24 сек, 6 ядер до 80-90 поднимает, на 1-2 секунды
  • https://t.me/clickhouse_ru
    @blind_oracle #107341 11:26 AM, 03 Jul 2019
    подними логлевел и гляди в логи какие запросы коррелируют
  • https://t.me/clickhouse_ru
    Спасибо, попробую
  • https://t.me/clickhouse_ru
    @blind_oracle #107343 11:39 AM, 03 Jul 2019
    Еще как вариант включить query_log и читать его
  • https://t.me/clickhouse_ru
    @wtfgroup #107344 11:48 AM, 03 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @koch_kir #107345 11:49 AM, 03 Jul 2019
    Привет! Подскажите, что почитать и куда смотреть для вопросу выбора железа под кликхаус (планируется использовать яндекс-облако или мэйл клауд). Может кто-то делал сравнение?
  • https://t.me/clickhouse_ru
    @MaximStanovov #107346 11:56 AM, 03 Jul 2019
    Матвью из двух таблиц можно сделать? Через union не работает
  • https://t.me/clickhouse_ru
    можно заджойнить, только очень внимательно надо это делать, т.к. во вьюху попадет состояние на момент записиси
  • https://t.me/clickhouse_ru
    Просто два матвью которые пишут в одну ТО
  • https://t.me/clickhouse_ru
    а сколько у вас таблиц и как они партиционированы? Сколько партиций?
  • https://t.me/clickhouse_ru
    20 таблиц, 201906│ 20190619_20190629_1_7621_6689│ TestsNews
  • https://t.me/clickhouse_ru
    @ArsentievAnton #107351 12:58 PM, 03 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #107352 01:02 PM, 03 Jul 2019
    привет, а подскажите как unix nano сковертировать в datetime?
  • https://t.me/clickhouse_ru
    toDateTime(intDiv(nano, 1000000000))
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #107354 01:07 PM, 03 Jul 2019
    thx
  • https://t.me/clickhouse_ru
    select count() parts_count
    from system.parts
    where table like '%%' and active
  • https://t.me/clickhouse_ru
    По разным таблицам, в среднем 20
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #107357 01:23 PM, 03 Jul 2019
    а подскажите, кто нибудь пробывал индексы по колонкам для быстрого лукапа?
    к примеру у меня есть табличка с логами (2-3тб), логи в ней сортированы по времени. В табличке есть доп колонки по которым хотелось бы быстро искать логи (trace_id всякие), я правильно же понимаю что эти индексы позволят мне делать подобные выборки "быстро"
  • https://t.me/clickhouse_ru
    >я правильно же понимаю что эти индексы позволят мне делать подобные выборки "быстро"
    нет, индексы этого не позволяют (можно конечно с bloom поизвращаться, но это так, может ускорит в два раза, а для других trace_id замедлит).

    В общем-то только вручную вторичное таблицей отсортированной по trace_id которая будет или хранить данные из первой или ссылаться на первую.
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #107359 01:28 PM, 03 Jul 2019
    ок, такой вариант тоже рассматривал
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #107360 01:28 PM, 03 Jul 2019
    почему то показалось что эта фича мне поможет
  • https://t.me/clickhouse_ru
    @dnslvrk #107361 01:28 PM, 03 Jul 2019
    Друзья, подскажите, как справиться с ошибкой ниже?

    Code: 241, e.displayText() = DB::Exception: Memory limit (for query) exceeded: would use 9.31 GiB (attempt to allocate chunk of 4194304 bytes), maximum: 9.31 GiB (version 19.9.2.4
  • https://t.me/clickhouse_ru
    поможет если trace_id коррелируют с временем (с основным индексом), например всегда растут.
  • https://t.me/clickhouse_ru
    увы это не так :(
  • https://t.me/clickhouse_ru
    это дефолтное значение, его можно поменять и поставить 100ГБ если память есть
  • https://t.me/clickhouse_ru
    @dnslvrk #107365 01:31 PM, 03 Jul 2019
    А где поменять? в config.xml не нашёл
  • https://t.me/clickhouse_ru
    это пользовательская users max_memory_usage_for_all_queries max_memory_usage
    cat /etc/clickhouse-server/conf.d/memory_usage.xml
    <?xml version="1.0" ?>
    <yandex>
    <profiles>
    <default>
    <max_memory_usage_for_all_queries>101310968832</max_memory_usage_for_all_queries>
    <max_bytes_before_external_group_by>50655484416</max_bytes_before_external_group_by>
    <max_memory_usage>101310968832</max_memory_usage>
    </default>
    </profiles>
    </yandex>
  • https://t.me/clickhouse_ru
    Помогло, спасибо!
  • https://t.me/clickhouse_ru
    @dnslvrk #107368 01:54 PM, 03 Jul 2019
    Теперь просто по read timed out падает) время таймаута тоже можно задать?
  • @dice2slice #107369 01:56 PM, 03 Jul 2019
    Если подключаться через DBeaver, то можно в настройках драйвера указать таймаут
  • https://t.me/clickhouse_ru
    @leoska #107370 01:57 PM, 03 Jul 2019
    Joined.
  • »\Теперь просто по read timed out падает) время таймаута тоже можно задать?

    Попробуйте запустить запрос в обычном консольном клиенте КХ clickhouse-client. Так вы точно поймете в чем причина отвалов.
  • https://t.me/clickhouse_ru
    Если создать MATERIALIZED VIEW t1 TO t2, то запрос в t1 будет возвращать данные из t2?
  • https://t.me/clickhouse_ru
    да, MV это триггер на инсерт, оно подписывается на таблицу во FROM, и обрабатывает то что присылат insert
    если TO не указано то MV само создает сторадж и называет его `.inner.{MV_NAME}` , если TO указано то пишет туда.
  • https://t.me/clickhouse_ru
    @gorsil #107374 02:47 PM, 03 Jul 2019
    Привет. А что означает ошибка DB::Exception: Embedded dictionaries were not loaded. You need to check configuration file..? Кто нибудь сталкивался?
  • @profile_undefined #107375 02:50 PM, 03 Jul 2019
    Ребят, подскажите, кто-то пробовал писать данные напрямую в кликхаус используя сервис statsd?
  • @registiy #107376 03:16 PM, 03 Jul 2019
    подскажите, пожалуйста, как правильнее всего создавать MV и заполнять их историческими данными (populate судя по доке не очень подходит к нагруженным таблицам)?
  • https://t.me/clickhouse_ru
    StatsD -> Graphite -> Clickhouse не подходит?
  • Возможно. Спрашиваю, так как для ресерча нужно ))
  • https://t.me/clickhouse_ru
    Мы так делаем, все ок.
    Вопросы по мониторингу, видимо лучше задавать в @metrics_ru (не реклама :) )
  • @profile_undefined #107380 03:34 PM, 03 Jul 2019
    спасибо )
  • https://t.me/clickhouse_ru
    @458801747 #107381 04:25 PM, 03 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @b0zar #107382 04:31 PM, 03 Jul 2019
    Подскажите, пожалуйста, почему таймзона не применяется "на лету" с переменной?
    а только если передать явно строкой

    timezone(): America/Los_Angeles
    toTypeName(toDateTime(now())): DateTime('America/Los_Angeles')
    berlin_timezone: Europe/Berlin
    toTypeName(toDateTime(now(), berlin_timezone)): DateTime('America/Los_Angeles')
    toTypeName(toDateTime(now(), 'Europe/Berlin')): DateTime('Europe/Berlin')
  • https://t.me/clickhouse_ru
    @458801747 #107383 04:36 PM, 03 Jul 2019
    привет, изучаю внедрение ClickHouse - что-то никак не найду чьих либо тестов по сравнению CH на SSD против HDD...
  • https://t.me/clickhouse_ru
    HDD достаточно, там, в основном, последовательное чтение.
  • https://t.me/clickhouse_ru
    наверно потому что эти тесты никому особо не интересны. Держать такую аналитику на ssd обычно сильно дороговато выходит
  • https://t.me/clickhouse_ru
    @vitroot #107386 04:38 PM, 03 Jul 2019
    и, да, HDD хватает пока всем, вроде
  • https://t.me/clickhouse_ru
    так либо в сервер ставим 10*10ТБ дисков либо один 100ТБ ssd скорость будет одинаковая
  • https://t.me/clickhouse_ru
    @vitroot #107388 04:39 PM, 03 Jul 2019
    100тб ssd? Круто было бы, наверно
  • https://t.me/clickhouse_ru
    @den_crane #107389 04:39 PM, 03 Jul 2019
    1 NMVE по тестам = 10HDD (RAID 0)
  • https://t.me/clickhouse_ru
    да о том и речь
  • https://t.me/clickhouse_ru
    @vitroot #107391 04:40 PM, 03 Jul 2019
    тут еще стоит уточнить, что при всем при этом 10hdd заметно дешевле 🙂
  • https://t.me/clickhouse_ru
    @vitroot #107392 04:40 PM, 03 Jul 2019
    и надежней
  • https://t.me/clickhouse_ru
    @den_crane #107393 04:42 PM, 03 Jul 2019
    я видел aws i инстансы с 1TB озу, двумя nvme и 128 (или 256 не помню) ядрами с КХ, некоторым надо (сам не пользовался)
  • https://t.me/clickhouse_ru
    @vitroot #107394 04:42 PM, 03 Jul 2019
    оверхед
  • https://t.me/clickhouse_ru
    я тут почитал про kdb+ и посмотрел на цены, такое железо + КХ будет дешевле в разы
  • https://t.me/clickhouse_ru
    @vitroot #107396 04:45 PM, 03 Jul 2019
    вот про kdb+ ничего не скажу, не сталкивался)
  • https://t.me/clickhouse_ru
    это если все данные кх в память положить?
  • https://t.me/clickhouse_ru
    @den_crane #107398 04:45 PM, 03 Jul 2019
    так там и есть все в памяти
  • https://t.me/clickhouse_ru
    @458801747 #107399 04:46 PM, 03 Jul 2019
    Просто пытаюсь понять (сравнивая цены выделенных серверов с ssd и hdd) какой профит производительности в цифрах. Сервер с ssd стоит примерно в 2 раза дороже чем с hdd (не в разы). Разве он не будет как минимум в два раза быстрее...?
  • https://t.me/clickhouse_ru
    сервер с 1 SSD (NVME) читающим 1.6ГБ/c будет в 10 раз быстрее чем сервер с одним HDD (я проверял на 1TB NVME)
  • https://t.me/clickhouse_ru
    предлагаю учитывать, что производительность зависит далеко не только от иопсов
  • https://t.me/clickhouse_ru
    ну да - там и тип RAID повлияет и количество ядер процессора - понимаю.
  • https://t.me/clickhouse_ru
    @vitroot #107403 04:51 PM, 03 Jul 2019
    уточню - и не только от железа
  • https://t.me/clickhouse_ru
    @IgorRekun #107404 05:01 PM, 03 Jul 2019
    Понял как правильно поставить вопрос)

    Как в КХ оптимально хранить апдейты жирного списка ключей? Хочется с timestamp'ом знать какие добавились, какие пропали не сохраняя всю кучу значений. Каждый ключ уникален.
  • Если ключ уникален, то храните в реплайседмерж. По крайней мере вы будете избавлены от заботы о дублях. Тем более список ключей это не всегда dic or other. Вполне достаточно движка MergeTree
  • https://t.me/clickhouse_ru
    @IgorRekun #107406 05:15 PM, 03 Jul 2019
    История скорее что для каждого объекта состояние описывается набором уникальных значений. Раз в какое то время я их обновляю и хотелось бы писать в базу только разницу и таймстамп.
  • Тогда вам путь через MV
  • @571805847 #107408 05:17 PM, 03 Jul 2019
    Опять же... озвучьте ТЗ, плиз
  • @571805847 #107409 05:18 PM, 03 Jul 2019
    Никто здесь ваших процессов просто не знает и не сможет что-то советовать
  • https://t.me/clickhouse_ru
    @IgorRekun #107410 05:18 PM, 03 Jul 2019
    CREATE TABLE IF NOT EXISTS attr_state
    (
    Id UInt64,
    Attributes Array(UInt64),
    Sign Array(Int8),
    Ts DateTime
    )
    ENGINE = MergeTree
    ORDER BY IdБыло так и в Sign хранил удалилось значение или добавилось. Минус что приходилось вне базы вычислять текущий финальный стейт.
  • @571805847 #107411 05:19 PM, 03 Jul 2019
    А сколько записей в таблице?
  • @571805847 #107412 05:20 PM, 03 Jul 2019
    Структуру нужно хранить ручками, кстати
  • https://t.me/clickhouse_ru
    @IgorRekun #107413 05:20 PM, 03 Jul 2019
    500M строк в таблице, в аттрибутах несколько миллионов может быть
  • @571805847 #107414 05:21 PM, 03 Jul 2019
    Вам не стоит надеяться, что КХ будет реагировать на "каждый чих" относительно ваших array
  • https://t.me/clickhouse_ru
    @IgorRekun #107415 05:22 PM, 03 Jul 2019
    Имеется в виду если я collapsing или replacing юзаю?
  • @Ru6aKa #107416 05:22 PM, 03 Jul 2019
    Добрый день, есть вопрос. Проблема такая, сделал кластер(для теста) в котором 3 zookeeper-a + 6 КХ (3 шарда по 2 реклики)... это все дело живет на локальной машине и запускаеться через docker-compose.

    После запуска создаю таблицу CREATE TABLE IF NOT EXISTS default.ttt ON CLUSTER cluster_1 (id Int32) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{layer}-{shard}/ttt', '{replica}') PARTITION BY id ORDER BY id и CREATE TABLE IF NOT EXISTS default.ttt_all ON CLUSTER cluster_1 AS default.ttt ENGINE = Distributed(cluster_1, default, ttt, rand());
    дальше закидываю какие-то данные в таблицу for ((idx=1;idx<=100;++idx)); do clickhouse-client --query "INSERT INTO default.ttt_all VALUES ($idx)"; done;

    В принципе ничего нового и интересного тут нету. Когда останавливаю кластер docker-compose down и запускаю заново docker-compose up -d, то таблица default.ttt пропадает c первой реплики одного или двух (из трех) шардов... Причем до остановки кластера, таблица есть везде, и данные отдаються. Причем локально data/default/ttt существует на той реплике откуда пропада таблица
  • @571805847 #107417 05:23 PM, 03 Jul 2019
    rand() - дыс из жопа
  • @571805847 #107418 05:23 PM, 03 Jul 2019
    Зря вы так
  • @571805847 #107419 05:24 PM, 03 Jul 2019
    Рандомайз СТОИТ использовать, но очень аккуратно
  • @Ru6aKa #107420 05:24 PM, 03 Jul 2019
    это для тестов, чтобы понять как кластер вообще работает
  • @Ru6aKa #107421 05:25 PM, 03 Jul 2019
    а он при перезагрузке тупо теряет таблицу на как-той то реплике рандомного или рандомных шардов
  • Не вопрос... Только тестовать заведомо ... не стоит. Вот этот мужик @den_crane знает о вашем вопросе очень много.
  • https://t.me/clickhouse_ru
    @IgorRekun #107423 05:28 PM, 03 Jul 2019
    Таблица на простом mergeTree чтобы не надеяться логику апдейтов. Вытаскиваю все записи, вне КХ считаю какие attributes на текущий момент присутствуют, считаю что надо записать в новый Sign, Attributes.

    Смущает что когда апдейтов накопится много будет долго работать, ну и хочется средствами КХ это делать.
  • https://t.me/clickhouse_ru
    @IgorRekun #107424 05:29 PM, 03 Jul 2019
    Можно в лоб дампать весь список attributes и время, тогда последнее состояние мгновенно будет вытаскиваться, но тогда КХ ведь не пожмет ничего)
  • Я бы предложил вам дискретный цикл: загрузка, удаление.
  • @571805847 #107426 05:30 PM, 03 Jul 2019
    В смысле загрузить все... в память, а потом сравнить с текущим по ключу и удалить лишнее.
  • @571805847 #107427 05:30 PM, 03 Jul 2019
    Я так делаю и работает очень даже быстро...
  • https://t.me/clickhouse_ru
    @IgorRekun #107428 05:36 PM, 03 Jul 2019
    Это если требуется только последнее состояние?
  • https://t.me/clickhouse_ru
    @IgorRekun #107429 05:38 PM, 03 Jul 2019
    Мне нужно уметь вытащить историю, какие ключи добавлялись, какие удалялись, поэтому пришла в голову схема с Sign, Attribute, Timestamp
  • они в таких объемах больше про энергоэффективность, чем про производительность
    https://nimbusdata.com/products/exadrive-platform/advantages/
    Advantages - Nimbus Data

    Plug-and-Play for Diverse Workloads Featuring the same 3.5” form factor and interface used by hard drives, the ExaDrive SSDs are plug-and-play compatible with hundreds of storage and server platforms. ExaDrive’s low power (as low as 0.1 watts/TB) and portability also make it well-suited for edge and IoT applications. Advantages World’s highest capacity SSD World’s most […]

  • @571805847 #107431 05:40 PM, 03 Jul 2019
    А разве времени обновления у ключей нет?
  • Тогда конечно мержтри, но с датой обновления в контексте сервера
  • @571805847 #107433 05:41 PM, 03 Jul 2019
    Мне кажется, что так будет удобней, конечно, если я правильно понял вашу задачу.
  • https://t.me/clickhouse_ru
    @IgorRekun #107434 05:42 PM, 03 Jul 2019
    О, мне кажется начинаю понимать идею. Текущий стейт храним в Collapsing и обновляем, чтобы вытаскивать без аггрегации всех записанных difference, а какие ключи удалились - добавились пишем в отдельный mergeTree. Оно?)
  • https://t.me/clickhouse_ru
    @IgorRekun #107435 05:45 PM, 03 Jul 2019
    Если на пальцах то задача такая:
    есть состояние [23, 45, 222, 48]
    через час мы получили новое [23, 9, 6, 222]
    чтобы не есть память апдейт я храню как
    [9, 6, 45, 48]
    [1, 1, -1, -1],
    где знак показывает значение добавилось или удалилось. Лью это в mergeTree.
  • https://t.me/clickhouse_ru
    @DSRub #107436 06:35 PM, 03 Jul 2019
    Joined.
  • @749324769 #107437 07:04 PM, 03 Jul 2019
    Joined.
  • 04 July 2019 (191 messages)
  • https://t.me/clickhouse_ru
    @ctodsimonov #107438 07:53 AM, 04 Jul 2019
    Коллеги! А кликхаус можно считать аналитическим кубом? Или, например, говорить, что в нём есть часть функционала из аналитического куба?
  • https://t.me/clickhouse_ru
    Да, вполне можно считать
  • https://t.me/clickhouse_ru
    @galamoon #107440 08:14 AM, 04 Jul 2019
    Колеги! проводил ли кто то статистику что быстрее работает с кликом получение данных по http или odbs драйвер?
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #107441 08:14 AM, 04 Jul 2019
    привет, подскажите, как бы оптимизировать следующий запрос:
    есть табличка (пару ТБ) с логами, сортирована по timestamp + пару колонок дедубликации. Хочу сделать быструю выборку топ Н самых свежих строк. Работает прям долго и таймаутится :(
  • https://t.me/clickhouse_ru
    к сожалению я уже не помню что тогда было не так(
  • https://t.me/clickhouse_ru
    Мат вьюху с движком replacing ?
  • https://t.me/clickhouse_ru
    а это не раздвоит мои данные?
  • Вообще кубом обычно называют либо базу, поддерживающую mdx, либо вообще базу с многомерным хранением. В кх нет ни того, ни того. Тогда почему кубом?
  • https://t.me/clickhouse_ru
    в каком плане?
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #107447 08:30 AM, 04 Jul 2019
    ну матвью сделает же копию моих данных в удобном для себя формате
  • https://t.me/clickhouse_ru
    @Mike_Er #107448 08:31 AM, 04 Jul 2019
    а, ну там будет ограниченный набор данных же, которые будут схлопываться по условию. на основные данные никак не повлияет
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @Mike_Er #107450 08:31 AM, 04 Jul 2019
    мы держим матвьюхи с топами для дашбордов, так как основные таблицы тоже очень большие и выборка в онлайне невозможна
  • https://t.me/clickhouse_ru
    Да, только не таблицу, а матвью с таким движком
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #107452 08:33 AM, 04 Jul 2019
    а как вы делаете что бы свежие данные в ней были? дату как версию или что?
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #107453 08:34 AM, 04 Jul 2019
    у меня ща так то и основная табличка ReplicatedReplacingMergeTree
  • https://t.me/clickhouse_ru
    @Mike_Er #107454 08:34 AM, 04 Jul 2019
    все от условий зависит
  • @sheft18 #107455 08:35 AM, 04 Jul 2019
    Всем привет! Вопрос наверняка избитый, но может есть какой-то чит из коробки.

    Есть таблица ивентов, где на один request_id всего 5-10 ивентов (но зато много уникальных этих request_id).

    При построении репорта нужно делать SELECT ... GROUP BY request_id, который валится по оперативе.

    Хочется получить MV в котором просто делать запросы без GROUP BY. Могут ли помочь SummingMergeTree, AggregatingMergeTree в данном случае? Вариант где данные за последние пару часов еще не проагрегировались, но для более старых уже
    точно схлопнулись, был бы ок (аналог OPTIMIZE в ReplacingMergeTree).

    Сейчас мы по сути так и делаем сами: отдельно раз в пару часов GROUP BY по свежим ключам и объединям такие результаты в MV с агрегированными уже раньше.
  • Возникло подозрение, что сессии остаются у кх, если рвётся подключение клиента. Основная версия зависания кх у нас то, что мы создали нагрузку, при которой ответы от кх сталм приходить с задержкой, которую не ожидали клиенты и рвали сессии. В результате осталась куча ожидающих закрытия сессий снаружи кх и незавершенные сессии внутри него. На некоторых серверах запросы запускались и зависали (с ошибкой cannot schedule task) , а на некоторых возвращали ошибку о превышении количества сессий. Но это все предположения, когда есть падение - есть ошибка, а когда зависание без ошибок - предположения.
  • Все правильно - копай матвью, движок summing merge tree, а если при группировке вам нужно количество уникальных, то и агрегатные ф-ии.
  • Но вроде эти движки не гарантируют, что все строки проагрегируются в одну, поэтому без GROUP BY на старых данных SELECT выдаст может не выдать корректный результат, разве нет? А с GROUP BY всё равно свалится по оперативе
  • https://t.me/clickhouse_ru
    @dmitryq #107459 09:11 AM, 04 Jul 2019
    всем привет. такой вопрос - сейчас у нас используется ReplacingMergeTree для того, чтобы обновлять одно UInt8 значение с 0 на 1. Сейчас в этом не устраивает скорость селекта с FINAL, поэтому думаю над другим вариантом.

    Использовать обычный мержтри и мутации ALTER TABLE UPDATE - нормальная практика? Не вижу никаких минусов, но как-то не уверен. Менять нужно одно поле и одно за раз, не пачками
  • Да догруппировать надо. Но если вам нужна группировка по календарным интервалам (сутки с 00, неделя с пнд, месяц с 1го числа), то там будет очень мало записей - не свалится. Дополнительно можете приводить в меньший тип ваших агрегатов, чем uint64, т.к. все агрегаты в нем собираются.
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #107461 09:14 AM, 04 Jul 2019
    а подскажите, насколько адекватно для партиций использовать час, если я собераюсь хранить максимум 2-5 дней информации?
  • https://t.me/clickhouse_ru
    Вполне можно
  • https://t.me/clickhouse_ru
    @ctodsimonov #107463 09:15 AM, 04 Jul 2019
    Коллеги! А кто-то занимался аналитическими системами? Там вообще есть понятие при ETL для зон с "грязной" информаций и "чистой"? Я имею в виду не столько разделение raw данных и структурированных, сколько модерацию полученной информации.
  • Тут админ этого чата как-то говорил, что кх не любит много партиции. Сутки норм. 5 тестируйте, возможно нет.
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #107465 09:16 AM, 04 Jul 2019
    а размер партиции какой любит?
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #107466 09:16 AM, 04 Jul 2019
    у меня суточная партиция 5-7тб
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #107467 09:16 AM, 04 Jul 2019
    а часовая уже не такая и страшная
  • @ramun25 #107469 09:17 AM, 04 Jul 2019
    ТБ для кх не должно быть страшно)
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #107470 09:17 AM, 04 Jul 2019
    ну думаю да, но вот как то читать плохо получается
  • Ключи сортировки?
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #107472 09:18 AM, 04 Jul 2019
    да, индексы помогают, осталось только побороть вот такой запрос
    SELECT
    toDateTime(intDiv(-timestamp, 1000000000)) AS ts,
    level
    FROM logs
    ORDER BY timestamp ASC
    LIMIT 10

    ┌──────────────────ts─┬─level─┐
    │ 2019-07-04 14:39:06 │ INFO │
    │ 2019-07-04 14:39:06 │ INFO │
    │ 2019-07-04 14:39:06 │ INFO │
    │ 2019-07-04 14:39:06 │ INFO │
    │ 2019-07-04 14:39:06 │ INFO │
    │ 2019-07-04 14:39:06 │ INFO │
    │ 2019-07-04 14:39:06 │ INFO │
    │ 2019-07-04 14:39:06 │ INFO │
    │ 2019-07-04 14:39:06 │ INFO │
    │ 2019-07-04 14:39:06 │ INFO │
    └─────────────────────┴───────┘

    10 rows in set. Elapsed: 247.588 sec. Processed 5.06 billion rows, 111.83 GB (20.44 million rows/s., 451.69 MB/s.)
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #107473 09:19 AM, 04 Jul 2019
    я вот чет думал что раз табличка сразу сортирована по timestamp то будет быстро и красиво
  • Таймстемп у тебя доли секунд хранит?
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #107475 09:22 AM, 04 Jul 2019
    +
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #107476 09:22 AM, 04 Jul 2019
    unixnano инвертированный
  • @ramun25 #107477 09:22 AM, 04 Jul 2019
    Пиши ещё одно поле с datetime
  • @ramun25 #107478 09:22 AM, 04 Jul 2019
    Его в ключ сортировки и партиции
  • @ramun25 #107479 09:22 AM, 04 Jul 2019
    Когда надо доли доставать будешь
  • @ramun25 #107480 09:23 AM, 04 Jul 2019
    Когда нужны даты - по лате
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #107481 09:23 AM, 04 Jul 2019
    сейчас вот так
    ORDER BY (timestamp, _partition, _offset, _idx)
    PARTITION BY toYYYYMMDD(toDate(intDiv(-timestamp, 1000000000)))
  • https://t.me/clickhouse_ru
    @andrey_konyaev #107482 09:23 AM, 04 Jul 2019
    Коллеги, подскажите, как Вы настраиваете clion чтобы в нём разрабатывать?
    Может как-то cmake настраиваете для проекта?
    При попытке импорта проекта получаю в консоли cmake :
    /usr/local/bin/cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_COMPILER=/usr/bin/gcc-7 -G "CodeBlocks - Unix Makefiles" /home/akonyaev/git/ClickHouse/dbms/src
    CMake Error at Common/StringUtils/CMakeLists.txt:4 (include):
    include could not find load file:

    /cmake/dbms_glob_sources.cmake
  • @ramun25 #107483 09:24 AM, 04 Jul 2019
    Не мучай железки - пиши дейттайм в дополнительном поле
  • https://t.me/clickhouse_ru
    а разве эт плохо? я вот вижу что у меня диск почти в потолок, но эт я просто пишу от души
  • Не плохо и не хорошо. Делать вычисления на миллиарде записей постоянно и при вставке и при чтении - я бы так не делал. Но решай сам, тут имхо.
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #107486 09:27 AM, 04 Jul 2019
    хм, резонно, сейчас попробую. спасибо
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #107487 09:27 AM, 04 Jul 2019
    хотя по идеи это цпу грузит, а цпу у меня с запасом
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #107488 09:28 AM, 04 Jul 2019
    но попробовать стоит.
  • https://t.me/clickhouse_ru
    Может кто-то из разработчиков экспортировать свои настройки clion?
  • @izebit #107491 09:46 AM, 04 Jul 2019
    Всем привет 🙂,
    Переодически стали появляться ошибки:
    Cannot enqueue replicated DDL query for a replicated shard
    В чем может быть причина?
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #107493 09:49 AM, 04 Jul 2019
    хм, 1. Size (778.76 GB) is greater than max_[table/partition]_size_to_drop (53.69 GB)
    а как бы это дропнуть табличку то
  • https://t.me/clickhouse_ru
    @xeldarnok #107494 09:51 AM, 04 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    Truncate?
  • https://t.me/clickhouse_ru
    в конфиге поправить можно
  • https://t.me/clickhouse_ru
    та же беда :(
  • https://t.me/clickhouse_ru
    @Mike_Er #107498 09:54 AM, 04 Jul 2019
    в конфиге в <profile> добавьте
    <max_table_size_to_drop>0</max_table_size_to_drop>
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #107499 09:54 AM, 04 Jul 2019
    🙏
  • https://t.me/clickhouse_ru
    @newsettler #107500 09:55 AM, 04 Jul 2019
    Подскажите, пожалуйста, при восстановлении падавшего сервера, есть ли возможность поступающие сейчас данные реплицировать сразу, а у того, что в истории сделать меньший приоритет?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @xeldarnok #107502 09:55 AM, 04 Jul 2019
    Народ, всем привет.
    Подскажите, если кто знает.

    Выгружаю из LOGS API данные, сначала по всем визитам за неделю, потом по всем хитам за неделю.

    Потом создаю таблицу с идентификатором визита и единичный идентификатором хита.

    Потом провожу сравнение хитов из новосозданной таблицы и с хитами из логов.

    Я правильно понимаю, что в ymswatchids записываются не все хиты?

    Если да, то почему?
  • @terrifilch #107503 10:29 AM, 04 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @mobilesfinks #107504 10:53 AM, 04 Jul 2019
    Камрады приветствую.
    пробую скопировать с одного КХ на другой. Таргет это 3 инстанса.

    <tables>
    <table_crm_fin_account>
    <cluster_pull>source_cluster</cluster_pull>
    <database_pull>analytics</database_pull>
    <table_pull>crm_fin_account</table_pull>

    <cluster_push>default_cluster</cluster_push>
    <database_push>analytics</database_push>
    <table_push>crm_fin_account</table_push>
    <engine>ENGINE = MergeTree PARTITION BY date ORDER BY date</engine>
    <sharding_key>rand()</sharding_key>
    </table_crm_fin_account>
    </tables>
    Всё запускается, по логам видно, что на исходном сервере больше 2к партиций. Но потом валит ошибку при попытке дропнуть партицию с датой на таргет сервере.

    2019.07.04 10:47:34.605004 [ 1 ] {} <Debug> ClusterCopier: Execute distributed DROP PARTITION: ALTER TABLE analytics.crm_fin_account DROP PARTITION '2019-07-04'
    2019.07.04 10:47:34.611961 [ 4 ] {} <Information> ClusterCopier: Code: 60, e.displayText() = DB::Exception: Received from kube-clickhouse-stage-2:9000, 10.50.63.185. DB::Exception: Table analytics.crm_fin_account doesn't exist.. (version
    19.8.3.8 (official build))
    2019.07.04 10:47:34.617127 [ 5 ] {} <Information> ClusterCopier: Code: 60, e.displayText() = DB::Exception: Received from kube-clickhouse-stage-0:9000, 10.50.29.164. DB::Exception: Table analytics.crm_fin_account doesn't exist.. (version
    19.8.3.8 (official build))
    2019.07.04 10:47:34.619641 [ 6 ] {} <Information> ClusterCopier: Code: 60, e.displayText() = DB::Exception: Received from kube-clickhouse-stage-1:9000, 10.50.59.119. DB::Exception: Table analytics.crm_fin_account doesn't exist.. (version
    19.8.3.8 (official build))
    2019.07.04 10:47:34.619824 [ 1 ] {} <Information> ClusterCopier: DROP PARTITION wasn't successfully executed on 3 shards
    И так короче по кругу.
    Что ему нужно? На новом и нет этих партиций, там только база создана.
  • https://t.me/clickhouse_ru
    @mobilesfinks #107505 10:56 AM, 04 Jul 2019
    насколько я понял то копир сам должен создавать таблички в новой базе. Нет?
  • https://t.me/clickhouse_ru
    @ployd ↶ Reply to #107441 #107506 11:03 AM, 04 Jul 2019
    В идеале, должна быть оптимизация, если в запросе order by по order key. Просто пока не реализована (
  • https://t.me/clickhouse_ru
    @ployd #107507 11:03 AM, 04 Jul 2019
    Тоже очень ждем
  • https://t.me/clickhouse_ru
    @ployd #107508 11:03 AM, 04 Jul 2019
    Где-то ишью была
  • https://t.me/clickhouse_ru
    @ployd ↶ Reply to #107461 #107509 11:04 AM, 04 Jul 2019
    Ttl?
  • https://t.me/clickhouse_ru
    было такое, когда начал копировать и прервал, а потом опять пробовал запустить. Надо все почистить и заново начинать
  • https://t.me/clickhouse_ru
    @Mike_Er #107512 11:34 AM, 04 Jul 2019
    таблички сам создаст, если <engine> заполнено
  • https://t.me/clickhouse_ru
    Ок, попробую
  • https://t.me/clickhouse_ru
    @dima_sh #107514 12:07 PM, 04 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @vbuttermaan #107515 12:29 PM, 04 Jul 2019
    Подскажите пожалуйста, коллеги: есть ли какое то ограничение на количество партиций в одной таблице?
    могу я например сделать 100тыс партиций в одной таблице?
  • https://t.me/clickhouse_ru
    сделать можете, но далеко не факт, что ФС не поплохеет и КХ вместе с ней же.
    Ну и традиционное - парты и партиции это разное
  • https://t.me/clickhouse_ru
    Да, про парты в курсе. Ограничение 300 на партицию. Можно выставить в конфиге.
  • https://t.me/clickhouse_ru
    Что подразумевается под словом "почистить"?

    База есть, но пустая, в ней никаких таблиц нет.
  • https://t.me/clickhouse_ru
    тогда это какой-то другой случай, у меня в одном из шардов была таблица, в остальных не было
  • https://t.me/clickhouse_ru
    Еще вы пытаетесь писать в ту же таблицу от куда читаете
  • https://t.me/clickhouse_ru
    @dmitryq #107521 12:36 PM, 04 Jul 2019
    получаю данные из SummingMergeTree с ключевым словом FINAL:
    SELECT SUM(clicks) as clicks, date as short_date FROM table FINAL WHERE date >= '2019-07-03' AND date <= '2019-07-03' GROUP BY short_date
    это занимает 1-1.5 секунды.
    убираю FINAL, запрос проходит за менее чем 0.1 секунд. Данные получаю уже оптимизированные, то есть так же одна строчка. Понимаю, что могу получить несколько, если оптимизация не прошла, или данные в нескольких партициях

    НО

    мне ничто же не помешает их самому суммировать. Почему с FINAL тогда запрос в 10-15 раз медленнее? И могу ли спокойно делать запрос без FINAL и самому суммировать?
  • https://t.me/clickhouse_ru
    Да, в моём сообщении конфиг пуша и пулла показан.
  • https://t.me/clickhouse_ru
    @Mike_Er #107523 12:36 PM, 04 Jul 2019
    а как вы себе это представляете?
  • https://t.me/clickhouse_ru
    @Mike_Er #107524 12:37 PM, 04 Jul 2019
    я не уверен, что это допустимо. я писал в таблицы с другим именем, потом rename on cluster
  • https://t.me/clickhouse_ru
    так на таргете вообще пусто. Он бы так и писал - я думаю - что неззя в таблицу с тем же именем.
  • https://t.me/clickhouse_ru
    @Mike_Er #107526 12:40 PM, 04 Jul 2019
    как на таргете пусто, если у вас сорс и таргет идентичны? analytics.crm_fin_account ?
  • https://t.me/clickhouse_ru
    я хочу залить с имеющегося инстанса в пустой шардированный кластер.
    Я так понимаю копир должен сам создавать таблички в таргете
  • https://t.me/clickhouse_ru
    @Mike_Er #107528 12:41 PM, 04 Jul 2019
    теперь понял. в моем случае кластер расширялся и имена надо было делать разные
  • https://t.me/clickhouse_ru
    @Mike_Er #107529 12:42 PM, 04 Jul 2019
    есть подозрение, что по какой-то причине он не создает таблицы на таргете, может быть в engine что-то не так?
  • https://t.me/clickhouse_ru
    @mobilesfinks #107530 12:43 PM, 04 Jul 2019
    в вопросе ENGINE есть, я хз
  • https://t.me/clickhouse_ru
    могу прислать свой xm на копирование - может найдете что-то
  • https://t.me/clickhouse_ru
    давай, поэкспериментирую
  • https://t.me/clickhouse_ru
    Кх будет стартовать 4.5 часа и мутации не будут работать на replicated таблицах.
  • https://t.me/clickhouse_ru
    Для фс это семечки если inod-в хватит.
  • https://t.me/clickhouse_ru
    Конечно надо досуммировать самому. Final до тысячи раз замедляет запросы.
  • https://t.me/clickhouse_ru
    то есть досуммирование самому не имеет подводных камней и позволительно, ок спасибо
  • https://t.me/clickhouse_ru
    Про старт понятно, при старте КХ чекает все парты по всех партицях. А почему мутации не будут работать?
    Планировал ALTER DROP PARTITION, для реплициуемой таблицы с 100тыс партами после манипуляций. Будет отваливатся в связи с большим обменом с ZK ?
  • https://t.me/clickhouse_ru
    Это вообще изначальная идея для всех агрегирующих движков. Final имеет смысл для отладки и микроскопических таблиц с replacing движком
  • https://t.me/clickhouse_ru
    Там в транзакции к зк будут перечислены все парты таблицы. На 30000 партов зк отбивает транзакцию по размеру - имена партов длинные, получается несколько мегабайт пакет.
  • https://t.me/clickhouse_ru
    спасибо большое, не знал) начали подозревать это только когда скорость на проде замерили
  • https://t.me/clickhouse_ru
    Благодарю, т.е. получается на реплицируемую таблицу предел где то 30000 партов - 100 партиций по 300 партов максимум, так?
  • https://t.me/clickhouse_ru
    300 партов-то у вас не будет. В старых партициях обычно 1-4 парта.
  • https://t.me/clickhouse_ru
    @den_crane #107543 01:28 PM, 04 Jul 2019
    300 партов это просто предохранитель что мержи не успевают за инсертами.
  • https://t.me/clickhouse_ru
    @den_crane #107544 01:31 PM, 04 Jul 2019
    И его можно поменять на любое число. По дефолту 300. На 150 инсерты замедляются на 1 сек.
  • https://t.me/clickhouse_ru
    @606215749 #107545 01:36 PM, 04 Jul 2019
    Добрый день всем!

    пытаюсь поработать с MySql engine.
    создал табличку
    делаю запрос

    select * from mysql_table
    limit 100;

    запрос выполняется дольше 1 минуты. при этом такой же запрос напрямую занимает меньше секунды

    при этом в логах вижу
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @606215749 #107547 01:36 PM, 04 Jul 2019
    запрос в datadrip делаю
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @606215749 #107549 01:37 PM, 04 Jul 2019
    куда копать?
  • https://t.me/clickhouse_ru
    @tratatataass #107550 01:37 PM, 04 Jul 2019
    похоже на то что limit на стороне кх только работает
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    понял, спасибо большое!
  • https://t.me/clickhouse_ru
    @606215749 #107553 01:40 PM, 04 Jul 2019
    select * from ecinity.sys_contact
    where id > 658574738;

    да, выполняется быстро..
  • https://t.me/clickhouse_ru
    @606215749 #107554 01:46 PM, 04 Jul 2019
    подскажите еще пожалуйста, к какому типу привести следующую калонку из мускула?
    opt_out bit default b'0' null,

    пробую opt_out Nullable(Int8) default toInt8(0)
    получаю ошибку mysqlxx::CannotParseValue: Cannot parse signed integer:
  • https://t.me/clickhouse_ru
    @ployd #107555 02:03 PM, 04 Jul 2019
    Есть ли агрегатная функция all/every, которая вернёт 1, если для всех строк в группе выполняется условие?
  • https://t.me/clickhouse_ru
    @vkosmos26 #107556 02:18 PM, 04 Jul 2019
    Добрый день! в КХ есть поддержка полнотекстового поиска? без морфологии, просто быстрый поиск по части содержимого текстового поля
  • https://t.me/clickhouse_ru
    @vkosmos26 #107557 02:19 PM, 04 Jul 2019
    очень не хочется еще эластик для этого подымать
  • https://t.me/clickhouse_ru
    @ployd #107558 02:20 PM, 04 Jul 2019
    Оператор LIKE?
  • https://t.me/clickhouse_ru
    @vkosmos26 #107559 02:20 PM, 04 Jul 2019
    ага
  • https://t.me/clickhouse_ru
    @ployd #107560 02:20 PM, 04 Jul 2019
    Ну, он есть. Ещё добавили функции multiSearch*
  • https://t.me/clickhouse_ru
    @vkosmos26 #107561 02:21 PM, 04 Jul 2019
    ну я имел в виду, оптимизирован ли LIKE, работает ли он по индексам?
  • https://t.me/clickhouse_ru
    @vkosmos26 #107562 02:22 PM, 04 Jul 2019
    как например в постгре есть спец индексы для этого
  • https://t.me/clickhouse_ru
    @ployd #107563 02:22 PM, 04 Jul 2019
    Нет, не работает
  • https://t.me/clickhouse_ru
    @ployd #107564 02:22 PM, 04 Jul 2019
    Соб-но, по индексам в принципе могло бы работать, но только LIKE с начала строки
  • https://t.me/clickhouse_ru
    @vkosmos26 #107565 02:24 PM, 04 Jul 2019
    понял, спасибо!
  • https://t.me/clickhouse_ru
    @ployd ↶ Reply to #107562 #107566 02:24 PM, 04 Jul 2019
    Ну, если речь про fulltext индексы, то вроде как это полноценные инвертированные поисковые индексы
  • https://t.me/clickhouse_ru
    @blinkovivan #107567 02:25 PM, 04 Jul 2019
    При использовании управляемой базы данных ClickHouse в Облаке вы можете обновить версию СУБД, которую использует кластер. Теперь можно воспользоваться новыми функциональностями ClickHouse, не пересоздавая кластер БД и не перенося данные.

    Список доступных для обновления версий можно посмотреть на экране создания или изменения кластера в консоли управления. Обратите внимание, что понизить версию СУБД не получится.

    Подробности здесь.

    #yacloud_news
    Документация Yandex.Cloud | Yandex Managed Service for ClickHouse | Изменение версии ClickHouse

    Вы можете изменить версию ClickHouse, которую использует кластер, на любую из поддерживаемых Managed Service for ClickHouse версий.

  • https://t.me/clickhouse_ru
    @gri201 #107568 02:40 PM, 04 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @devandreyl #107569 02:53 PM, 04 Jul 2019
    Всем привет, никто не знает костыль как сделать уникальный ключ в таблице?
  • https://t.me/clickhouse_ru
    @devandreyl #107570 02:54 PM, 04 Jul 2019
    кроме варианта хранить эти данные в другом хранилище
  • @antonio_antuan #107571 02:54 PM, 04 Jul 2019
    Ююид?
  • https://t.me/clickhouse_ru
    ReplacingMergeTree + FINAL на запросах
  • https://t.me/clickhouse_ru
    @chertus #107573 02:56 PM, 04 Jul 2019
    это примерно то же, что делают LevelDB подобные базы внутри себя. LSM кишками наружу )
  • https://t.me/clickhouse_ru
    Модификатор FINAL может быть использован только при SELECT-е из таблицы типа CollapsingMergeTree
  • https://t.me/clickhouse_ru
    @devandreyl #107575 02:57 PM, 04 Jul 2019
    Из доки
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @devandreyl #107577 02:58 PM, 04 Jul 2019
    Думал над таким вариантом
  • https://t.me/clickhouse_ru
    @devandreyl #107578 02:58 PM, 04 Jul 2019
    Но мне кажется что это дичь
  • https://t.me/clickhouse_ru
    @devandreyl #107579 02:58 PM, 04 Jul 2019
    Походу пг придется таки юзат ь
  • https://t.me/clickhouse_ru
    @devandreyl #107580 02:58 PM, 04 Jul 2019
    а по ходу уже разбиратся что можно в кх запихнуть
  • https://t.me/clickhouse_ru
    @vic_gald #107581 02:59 PM, 04 Jul 2019
    добрый день
    подскажите, если у меня есть materialized view, которое читает с null табличке, имеет Engine ReplicatedSummingMergeTree и создано как
    create table t_null (clientIPv6 FixedString(16), clientIPv4 UInt32, date Date, datetime DateTime) Engine=Null;

    CREATE MATERIALIZED VIEW r0.t_minute
    (
    uniquesIPv4 AggregateFunction(uniq, UInt32),
    uniquesIPv6 AggregateFunction(uniq, FixedString(16)),
    date Date,
    timeslot DateTime
    )
    ENGINE = ReplicatedSummingMergeTree('/clickhouse/cluster/tables/{shard0}/t_minute', '{replica}', date, date, 32) AS
    SELECT
    date,
    toStartOfMinute(datetime) AS timeslot,
    uniqState(clientIPv4) AS uniquesIPv4,
    uniqState(clientIPv6) AS uniquesIPv6
    FROM t_null
    GROUP BY
    date,
    timeslot
    Если мне надо поменять select для view, и я не могу ходить по каждому metadata_path, правильно ли мне сделать
    drop table r0.t_minute

    CREATE MATERIALIZED VIEW r0.t_minute
    ...

    Или есть другой способ переписать SELECT?
    DETACH + ATTACH с изменённым select например
  • https://t.me/clickhouse_ru
    @nivelium #107582 02:59 PM, 04 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    yandex/ClickHouse

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

  • https://t.me/clickhouse_ru
    @devandreyl #107584 03:03 PM, 04 Jul 2019
    Может что-то поменялось значит)
  • https://t.me/clickhouse_ru
    На самом деле все современные судб делают примерно так, просто внутри. Честный delete никто не пишет - вместо него пишется запись на удаление, которая мержится в фоне.
  • https://t.me/clickhouse_ru
    Ну пг по факту данные не удаляет
  • https://t.me/clickhouse_ru
    @devandreyl #107587 03:04 PM, 04 Jul 2019
    она апдейдит их, помечая удаленными
  • https://t.me/clickhouse_ru
    @devandreyl #107588 03:04 PM, 04 Jul 2019
    И только при вакууме они удаляются уже
  • https://t.me/clickhouse_ru
    @vic_gald #107589 03:04 PM, 04 Jul 2019
    по поводу своего вопроса с update materialized view:

    насколько я вижу с тестов, на кластере из трёх нод в случае
    drop table r0.t_minute
    и пересоздании этой вью, я получаю свои предыдущие данные назад

    но может я что-то упускаю, и по факту будет дроп underlying inner таблицы тоже?
  • https://t.me/clickhouse_ru
    @chertus #107590 03:04 PM, 04 Jul 2019
    тут будет то же самое, результат домержится в процессе селекта
  • https://t.me/clickhouse_ru
    @devandreyl #107591 03:04 PM, 04 Jul 2019
    но мне нужно что бы в таблице данные были уникальными
  • https://t.me/clickhouse_ru
    @devandreyl #107592 03:05 PM, 04 Jul 2019
    как уникальный составной индекс в пг
  • https://t.me/clickhouse_ru
    @mobilesfinks #107593 03:05 PM, 04 Jul 2019
    Кто пользуется копиром? Почему он не может создать таблицы на таргете сам? куда смотреть?
  • https://t.me/clickhouse_ru
    replacing (с order by по составному ключу) + final на селектах вам это должны обеспечить
  • https://t.me/clickhouse_ru
    @devandreyl #107595 03:06 PM, 04 Jul 2019
    Ну по факту в таблице будет какое-то время 2 записи
  • https://t.me/clickhouse_ru
    @devandreyl #107596 03:06 PM, 04 Jul 2019
    + возможно только последовательное чтение
  • https://t.me/clickhouse_ru
    @devandreyl #107597 03:06 PM, 04 Jul 2019
    А это - скорость
  • https://t.me/clickhouse_ru
    @devandreyl #107598 03:06 PM, 04 Jul 2019
    и теряется весь смысл
  • https://t.me/clickhouse_ru
    @chertus #107599 03:06 PM, 04 Jul 2019
    в постргрессе у вас тоже какое-то время будет 2 записи
  • https://t.me/clickhouse_ru
    @devandreyl #107600 03:08 PM, 04 Jul 2019
    Да, пока не сделается вакуум
  • https://t.me/clickhouse_ru
    @devandreyl #107601 03:08 PM, 04 Jul 2019
    но в выборке эти записи участвовать не будут
  • https://t.me/clickhouse_ru
    @devandreyl #107602 03:08 PM, 04 Jul 2019
    в случае с пг
  • https://t.me/clickhouse_ru
    @chertus #107603 03:10 PM, 04 Jul 2019
    тут аналогично есть OPTIMIZE, разве что нет простой возможности задать снапшот, чтобы не селектить свежие данные (с возможными дублями). Нужна datetime вставки в запросе (коррелированная с оптимайзами) + проверка выполнен ли прошлый OPTIMIZE
  • https://t.me/clickhouse_ru
    @devandreyl #107604 03:11 PM, 04 Jul 2019
    Optimize больше на EXPLAIN ANALYZE похож
  • https://t.me/clickhouse_ru
    @devandreyl #107605 03:12 PM, 04 Jul 2019
    В общем кх к сожалению не подходит для этой задачи(
  • https://t.me/clickhouse_ru
    @devandreyl #107606 03:12 PM, 04 Jul 2019
    Спасибо за помощь)
  • https://t.me/clickhouse_ru
    Спорное утверждение. Вернетесь, когда PG перестанет хватать :)
  • https://t.me/clickhouse_ru
    @devandreyl #107608 03:14 PM, 04 Jul 2019
    Да, я так и написал)
  • https://t.me/clickhouse_ru
    @devandreyl #107609 03:14 PM, 04 Jul 2019
    Тогда буду что то думать
  • https://t.me/clickhouse_ru
    @devandreyl #107610 03:14 PM, 04 Jul 2019
    Что можно вынести
  • https://t.me/clickhouse_ru
    При дропе данные пропадут. Можно сделать detach и attach с другим селектом
  • https://t.me/clickhouse_ru
    @vic_gald #107612 03:29 PM, 04 Jul 2019
    спасибо, но при attach с новым селектом metadata файл не обновляется

    /var/lib/clickhouse/metadata/r0/t_minute.sql старый
  • https://t.me/clickhouse_ru
    @vic_gald #107613 03:30 PM, 04 Jul 2019
    те при ребуте у меня будет старая MV, верно?
  • https://t.me/clickhouse_ru
    ## добавляем поле NEWCOL
    detach table kostya_test.view_table;

    alter table kostya_test..inner.view_table add column NEWCOL String;

    ATTACH MATERIALIZED VIEW kostya_test.view_table( date Date, customer_id UInt32, val AggregateFunction (sum, UInt32), NEWCOL String) ENGINE = ReplicatedAggregatingMergeTree('/clickhouse/tables/kostya_test.view_table', '{replica}', date, (date, prom_customer_id, val), 8192)AS SELECT date, customer_id, sumState(val) AS val,NEWCOL FROM test_db.log_41949_pageviews_product GROUP BY date, customer_id;
  • https://t.me/clickhouse_ru
    @vic_gald #107615 03:35 PM, 04 Jul 2019
    да, MV поменялась тоже, не на той ноде смотрел на неё
  • https://t.me/clickhouse_ru
    @vic_gald #107616 03:35 PM, 04 Jul 2019
    спасибо!
  • https://t.me/clickhouse_ru
    К сожалению, ClickHouse не умеет (пока что?) оптимизировать SELECT ... ORDER BY pk LIMIT ... Поэтому, если ваш timestamp является одним из первых столбцов в первичном ключе и партиционирование по дате, то можно сделать запрос примерно такого вида: SELECT ... FROM table WHERE date >= yesterday () AND ts >= now() - 300 ORDER BY ts DESC LIMIT N. Соответственно, если за последние 300 секунд у вас достаточно данных для лимита N, то здорово, иначе нужно запрос повторить с другим фильтром по timestamp. К сожалению, лучшего варианта (без создания доп таблиц) я не знаю.
  • @Asheenk #107618 04:24 PM, 04 Jul 2019
    Joined.
  • @pavel_maksimow #107619 04:27 PM, 04 Jul 2019
    Подскажите пожалуйста, почему на сложные долгие запросы не срабатывает KILL QUERY, там где он как раз нужен?
  • https://t.me/clickhouse_ru
    @catless #107621 04:44 PM, 04 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @vic_gald #107622 04:47 PM, 04 Jul 2019
    я думаю это возможно связано с тем, что thread вашего запроса залочен

    я бы попробовал сделать
    curl -s "https://clickhouse-dsn/?query=select+1&query_id=_query_id_here_"
    если replace_running_query=1, то это заменит ваш долгоиграющий запрос на select 1

    https://clickhouse.yandex/docs/en/operations/settings/settings/#replace-running-query
    Settings | ClickHouse Documentation

    Settings distributed_product_mode Changes the behaviour of distributed subqueries. ClickHouse applies this setting when

  • спасибо! буду пробовать
  • https://t.me/clickhouse_ru
    @leonido310 #107624 06:53 PM, 04 Jul 2019
    Всем ночи доброй.
    Подскажите по движку URL
    В доке сказано, что Запросы ... SELECT транслируются в ... GET запросы...
    как-то параметры этого запроса можно задать?

    через http выгружаем справочник на примерно 10к записей, не хочется их на каждый запрос по сети гонять
  • https://t.me/clickhouse_ru
    @vld_ivn #107625 08:25 PM, 04 Jul 2019
    коллеги, есть вопрос по составлению запроса: от пользователей приходят ивенты, каждый с уникальным ид, нужно посчитать сумму каждого ивента, если вдруг пришел один и тот же ивент от 1 пользователя, тогда считать его за один, как такое сделать?
  • https://t.me/clickhouse_ru
    Что такое сумма ивента?
  • https://t.me/clickhouse_ru
    колличество ивентов, раньше как считали: event_date, countIf(event='click') as clicks, countIf(event='view') as views, уникальным ид, так как некоторые бразуеры дважды отправляли ивенты
  • https://t.me/clickhouse_ru
    Optimization of ORDER BY with respect to the ORDER key in MergeTree tables. by anrodigina · Pull Request #5042 · yandex/ClickHouse

    I hereby agree to the terms of the CLA available at: https://yandex.ru/legal/cla/?lang=en For changelog. Remove if this is non-significant change. Category (leave one): Improvement Short descript...

  • https://t.me/clickhouse_ru
    Либо ReplacingMergeTree юзать для схлопывания по ID либо группировать по нему
  • https://t.me/clickhouse_ru
    а после группировки как посчитать? replacing не подходит, так как нужно хранить их в базе, для аналитики понимание сколько таких случаев есть
  • https://t.me/clickhouse_ru
    Сложно ответить не видя структуры
  • 05 July 2019 (154 messages)
  • https://t.me/clickhouse_ru
    @ployd ↶ Reply to #107617 #107635 06:08 AM, 05 Jul 2019
    Кстати, какая ишью на реализацию этой оптимизации?
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #107636 06:21 AM, 05 Jul 2019
    Slow order by primary key with small limit on big data · Issue #1344 · yandex/ClickHouse

    Hello. I have such table: CREATE TABLE logs.logs ( timestamp DateTime, nsec UInt32, `string_fields.names` Array(String), `string_fields.values` Array(String), `number_fields.names` Array(String), `...

  • https://t.me/clickhouse_ru
    @ployd #107637 06:23 AM, 05 Jul 2019
    Ага, спасибо
  • https://t.me/clickhouse_ru
    @stovm #107638 06:24 AM, 05 Jul 2019
    Всем привет.
    Что-то не могу понять как правильно сгенерить случайное значение в выбранном диапазоне
  • https://t.me/clickhouse_ru
    @stovm #107639 06:25 AM, 05 Jul 2019
    Может кто подскажет?
  • https://t.me/clickhouse_ru
    Там уже почти готовый пр есть ❤️
  • https://t.me/clickhouse_ru
    @ployd #107641 06:27 AM, 05 Jul 2019
    Судя по ПР к концу долго еще
  • https://t.me/clickhouse_ru
    @ployd #107642 06:27 AM, 05 Jul 2019
    Тонна непоправленных замечаний
  • https://t.me/clickhouse_ru
    @ployd #107643 06:28 AM, 05 Jul 2019
    И вообще оно другой таской заблочено два дня назад
  • @bezany #107644 07:20 AM, 05 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @606215749 #107645 07:22 AM, 05 Jul 2019
    Добрый день всем,
    подскажите кто знает, к какому типу привести следующую калонку из мускула?
    opt_out bit default b'0' null,

    пробую opt_out Nullable(Int8) default toInt8(0)
    получаю ошибку mysqlxx::CannotParseValue: Cannot parse signed integer:
  • https://t.me/clickhouse_ru
    @tratatataass #107646 07:25 AM, 05 Jul 2019
    Гайз, а это же старый баг как я понимаю? Есть какой-то обходной путь что бы работали алиасы из вложенных запросов для MV при инсерте?
    CREATE TABLE IF NOT EXISTS test_table (
    A String,
    B Int64
    ) ENGINE MergeTree()
    ORDER BY (A, B )
    PARTITION BY tuple();

    INSERT INTO test_table (A, B ) VALUES ('A', 1), ('B', 2), ('B', 3);

    -- тут ок, табличка создается сумма считается
    CREATE MATERIALIZED VIEW IF NOT EXISTS test_view
    ENGINE = MergeTree()
    ORDER BY (A, BB )
    PARTITION BY tuple()
    POPULATE AS
    SELECT A, BB FROM (
    SELECT
    A,
    sum(B ) as BB
    FROM
    test_table
    GROUP BY A
    );

    SELECT * FROM test_view;

    -- При вставке возникает ошибка DB::Exception: Missing columns: 'BB' while processing query:
    INSERT INTO test_table (A, B ) VALUES ('C', 4), ('D', 5), ('D', 6);
  • https://t.me/clickhouse_ru
    https://github.com/Altinity/clickhouse-mysql-data-reader/blob/master/README.md тут пробуют String. в целом работает. но не так как хотелось..
    Altinity/clickhouse-mysql-data-reader

    utility to read mysql data. Contribute to Altinity/clickhouse-mysql-data-reader development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @catless #107648 07:36 AM, 05 Jul 2019
    привет!

    есть такой запрос:
    SELECT resource_id, owner
    FROM db.table1
    WHERE resource_id in (
    SELECT resource_id from db.table2
    WHERE date > today() - 14
    )
    хочется вместо него написать JOIN, но такой же быстрый — подскажите, как? моя попытка провалилась (думал, что соптимизируется):
    SELECT resource_id, owner
    FROM
    (
    SELECT resource_id, owner
    FROM db.table1
    ) ALL JOIN
    (
    SELECT resource_id from db.table2
    WHERE date > today() - 14
    ) USING resource_id
  • @akalagur #107649 07:37 AM, 05 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @Zextserg #107650 07:42 AM, 05 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @a1exm0 #107651 07:42 AM, 05 Jul 2019
    Всем привет! Скажите, а кто-нибудь использовал кликхаус в качестве основной базы для мессенджера?
  • https://t.me/clickhouse_ru
    Ничего более подходящего не можете вспомнить?)
  • https://t.me/clickhouse_ru
    @a1exm0 ↶ Reply to #107652 #107653 07:44 AM, 05 Jul 2019
    Думаю, что использовать - клик очень подходит. Но не знаю как персистить данные, в клик лучше пачками сохранять, если каждое сообщение персистить отдельно, не знаю как он себя поведет. Плюс еще есть движок из кафки, не смотрел и не изучал как работает
  • https://t.me/clickhouse_ru
    IN - это ОК, КХ работает сильно иначе с JOIN чем другие, оно для фильтрации не подойдет
  • @Prokh ↶ Reply to #107651 #107655 07:45 AM, 05 Jul 2019
    Вк
  • https://t.me/clickhouse_ru
    Никак он не подходит, берите https://scylladb.com и смотрите как не напопроться на large partition и все
    ScyllaDB | The Real-Time Big Data Database

    Scylla scales-up performance of 1,000,000s of OPS per node, and scales-out to hundreds of nodes and 99% latency of <1 msec.

  • https://t.me/clickhouse_ru
    @a1exm0 ↶ Reply to #107656 #107657 07:47 AM, 05 Jul 2019
    Спасибо изучу.
  • https://t.me/clickhouse_ru
    @kshvakov #107658 07:51 AM, 05 Jul 2019
    Ну и, понятное дело, что "основная БД для месенджера" подразумевается хранение сообщений, для хранения изеров и прочего вам нужна обычная реляционка типа MySQL или PostgreSQL. Если нужно сделать пруф оф концепт - и сообщения туда же положите, все будет работать хорошо до определенного момента (когда станет очень много сообщений), а он, между прочим, и вообще может не наступить
  • https://t.me/clickhouse_ru
    оу. хорошо (смутило, что простой IN, без GLOBAL, выключен по умолчанию)
  • https://t.me/clickhouse_ru
    @a1exm0 ↶ Reply to #107658 #107660 07:54 AM, 05 Jul 2019
    Ну - у нас не совсем мессенджер - нагрузки там будет оооочень мало. Можно сказать чат для сайта. Насчет других баз - там микросервисная архитектура, и чат просто один из сервисов - которому нужна база для хранения истории переписки. За юзеров отвечают другие сервисы и их БД
  • https://t.me/clickhouse_ru
    @kshvakov #107661 07:55 AM, 05 Jul 2019
    Понятно, микробардак) Берите ту СУБД которую сможете поддерживать (бэкапы делать и восстанавливать и поднимать в случае если она упала).
  • @akalagur #107662 07:56 AM, 05 Jul 2019
    Ребят, подскажите в чем может быть причина такого сообщения в логах clickhouse?

    2019.07.05 07:51:09.876895 [ 32 ] {} <Error> void DB::StorageKafka::streamThread(): Code: 48, e.displayText() = DB::Exception: Method write is not supported by storage Kafka, Stack trace:

    0. clickhouse-server(StackTrace::StackTrace()+0x16) [0x6834a66]
    1. clickhouse-server(DB::Exception::Exception(std::string const&, int)+0x1f) [0x317311f]
    2. clickhouse-server(DB::IStorage::write(std::shared_ptr<DB::IAST> const&, DB::Context const&)+0x4c) [0x5cd537c]
    3. clickhouse-server(DB::StorageMaterializedView::write(std::shared_ptr<DB::IAST> const&, DB::Context const&)+0x86) [0x64b8e06]
    4. clickhouse-server(DB::PushingToViewsBlockOutputStream::PushingToViewsBlockOutputStream(std::string const&, std::string const&, std::shared_ptr<DB::IStorage> const&, DB::Context const&, std::shared_ptr<DB::IAST> const&, bool)+0x321) [0
    x633da51]
    5. clickhouse-server(DB::PushingToViewsBlockOutputStream::PushingToViewsBlockOutputStream(std::string const&, std::string const&, std::shared_ptr<DB::IStorage> const&, DB::Context const&, std::shared_ptr<DB::IAST> const&, bool)+0xa17) [0
    x633e147]
    6. clickhouse-server(DB::InterpreterInsertQuery::execute()+0x1cb) [0x5e9ce0b]
    7. clickhouse-server(DB::StorageKafka::streamToViews()+0x592) [0x680eba2]
    8. clickhouse-server(DB::StorageKafka::streamThread()+0x8b) [0x680effb]
    9. clickhouse-server(DB::BackgroundSchedulePoolTaskInfo::execute()+0xe1) [0x5d3f7d1]
    10. clickhouse-server(DB::BackgroundSchedulePool::threadFunction()+0x62) [0x5d3fea2]
    11. clickhouse-server() [0x5d3ff04]
    12. clickhouse-server(ThreadPoolImpl<std::thread>::worker(std::_List_iterator<std::thread>)+0x187) [0x683a7b7]
    13. clickhouse-server() [0x73c681f]
    14. /lib64/libpthread.so.0(+0x7e25) [0x7f7480d26e25]
    15. /lib64/libc.so.6(clone+0x6d) [0x7f7480029bad]
    (version 19.7.3.1)
  • https://t.me/clickhouse_ru
    @a1exm0 ↶ Reply to #107661 #107663 07:57 AM, 05 Jul 2019
    Микробардак, да он самый. Есть вариант просто все пока персистить в реляционку, на первом этапе. Но всегда есть мысли про будущее, в далеком будущем когда реляционка станет тормозить на нашем объеме данных
  • https://t.me/clickhouse_ru
    Наверное потому, что: "Method write is not supported by storage Kafka"
  • @akalagur #107665 07:58 AM, 05 Jul 2019
    Таблицу и view создаю:

    create table kaffkka
    (
    id UInt64,
    customer_id UInt64,
    location String,
    type String,
    created String
    ) ENGINE = Kafka SETTINGS kafka_broker_list = 'xxx.xxx.xxx.xxx:9092',
    kafka_topic_list = 'db4.xxxxx.locations',
    kafka_group_name = 'kaffkka',
    kafka_format = 'JSONEachRow',
    kafka_num_consumers = 1;

    CREATE MATERIALIZED VIEW view_kafka to kaffkka
    AS SELECT id
    FROM kaffkka;
  • https://t.me/clickhouse_ru
    был тут уже один с такой идеей, емнип, не удалось его переубедить, что КХ это не про длинные строки
  • https://t.me/clickhouse_ru
    Вы из таблицы kaffkka с движком кафка хотите писать в таблицу kaffkka, надо сделать проверку при создании матвью
  • https://t.me/clickhouse_ru
    Как доростете до объемов - переделаете
  • https://t.me/clickhouse_ru
    @a1exm0 ↶ Reply to #107666 #107669 08:02 AM, 05 Jul 2019
    Во это интересно. Я просто расписываю пока для себя минусы. Из моих минусов:
    1) Не ясно как вставлять данные(если вставлять их не пачками, могут быть отставания от того что видит юзер и его реальной историей)
    2)нет апдейтов конкретных записей, если потребуется функциональность апдейта сообщений то придется это делать через новую запись с версией
  • https://t.me/clickhouse_ru
    тут лучше зайти с другой стороны.
    Ваша переписка будет юзер - юзер.
    99% выборок - это получение последних сообщений по паре юзер - юзер.

    Зачем вам КХ - непонятно.
    Можно хоть в .txt сохранять, хоть в монгу, прости хоспаде
  • https://t.me/clickhouse_ru
    @a1exm0 ↶ Reply to #107670 #107671 08:05 AM, 05 Jul 2019
    Будут выборки по датам. С такой-то по такую-то. И зная монгу, когда коллекции вырастут до 25 млн записей - все будет очень плохо.
  • https://t.me/clickhouse_ru
    @vstepankov #107672 08:06 AM, 05 Jul 2019
    нужно выбирать сообщения по всем юзерам за диапазон?
  • https://t.me/clickhouse_ru
    Берете любую реляционку, строите индекс по дате и все дела
  • https://t.me/clickhouse_ru
    @a1exm0 ↶ Reply to #107672 #107674 08:06 AM, 05 Jul 2019
    По всем, думаю нет.
  • https://t.me/clickhouse_ru
    в купе с индексом по юзеру будет летать ведь. тут точно не нужен КХ
  • https://t.me/clickhouse_ru
    @vstepankov #107676 08:08 AM, 05 Jul 2019
    Пока звучит примерно так - у вас нет сейчас проблемы, но вы хотите взять КХ и получить несколько проблем
  • https://t.me/clickhouse_ru
    @a1exm0 ↶ Reply to #107676 #107677 08:09 AM, 05 Jul 2019
    Либо сделать просто, но иметь потенциальные проблемы. Хотя в случае с КХ от потенциальных проблем - никто тоже не застрахован
  • https://t.me/clickhouse_ru
    @vstepankov #107678 08:10 AM, 05 Jul 2019
    Просто это в монге, КХ это 100% не просто
  • https://t.me/clickhouse_ru
    @a1exm0 ↶ Reply to #107678 #107679 08:12 AM, 05 Jul 2019
    ну как сказать - был у меня опыт. Решил стартовать с монги, в проекте было очень много аггрегационных запросов. Примерно неделю потратил на изучение агрегационного фреймворка монги и его трансляцию на dsl джавовый. В итоге когда реализовал - залил данные, все стало жутко медленно работать, за выходные переписал на кликхаус - и все стало летать
  • https://t.me/clickhouse_ru
    Повторю общее мнение - КХ это не про онлайн хранилище. Это аналитика.
    Можно его использовать как внешний доп-индекс для основной БД если есть необходимость делать по ней аналитику.
    Но не как основную БД для такого рода задач.
  • https://t.me/clickhouse_ru
    @a1exm0 ↶ Reply to #107680 #107681 08:21 AM, 05 Jul 2019
    Спасибо. Да - я это понял.
  • https://t.me/clickhouse_ru
    @nivelium #107682 08:59 AM, 05 Jul 2019
    Кто-нибудь использовал интеграцию Клика и Кафки? Я использую базовый пример из документации, развернул локально кликхаус и кафку, сразу поймал ошибку с тацмаутом, что я неправильно делаю?
  • https://t.me/clickhouse_ru
    @153320011 #107684 09:07 AM, 05 Jul 2019
    Привет, интересует такой вопрос. Когда создавал таблицы установил primary key, сейчас хочу расширить его еще по нескольким полям с таблицы, но без потери данных в таблице. Такое возможно?
  • https://t.me/clickhouse_ru
    @a1exm0 ↶ Reply to #107684 #107685 09:08 AM, 05 Jul 2019
    Я делал так: создавал новую таблицу с расширенным ключом потом делал INSERT INTO new_table SELECT * FROM old_table
  • https://t.me/clickhouse_ru
    Я нашел issue на гитхабе
    https://github.com/yandex/ClickHouse/issues/3450
    https://github.com/yandex/ClickHouse/issues/448 и много других, даже кто-то пытался пофиксить. https://github.com/yandex/ClickHouse/pull/3796

    Дело так и не пошло да? Очень полезная фича. Есть какие-то технические проблемы с реализацией?
    Issue with query Alias in Materialized View · Issue #3450 · yandex/ClickHouse

    Hello I'm currently using CH 18.14.8 and i'm facing an issue when building materialized views. I'm trying to build and feed automatically a site aggregated table from an inp...

  • @vcomzzz #107689 11:30 AM, 05 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    Mv не умеют вложенные запросы.
  • https://t.me/clickhouse_ru
    Да, но при populate такой MV снчала все хорошо, ошибка только при инсерте. А чем отличается POPULATE от инсерта?
  • https://t.me/clickhouse_ru
    Тем что это две разные по свой природе вещи.
    При populate делается обычный запрос к таблице. При инсерт таблица не читается и делается необычный селект
  • https://t.me/clickhouse_ru
    @ochumelec #107693 11:37 AM, 05 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @ochumelec #107694 11:38 AM, 05 Jul 2019
    Exception: Syntax error (Multi-statements are not allowed
    как это в curl исправить?
  • https://t.me/clickhouse_ru
    @ochumelec #107695 11:39 AM, 05 Jul 2019
    несколько запросов в одном реквесте нужно сделать, кто-то делал такое?
  • https://t.me/clickhouse_ru
    в теории можем же представить бакет с данными в виде таблицы и применить к ней запрос из MV?
  • https://t.me/clickhouse_ru
    можем.
    Я просто вам сообщаю что вложенные запросы никогда не работали в MV.
    Наверняка есть feature request об этом созданный два года назад.
  • Почему не может? У нас работают.
  • https://t.me/clickhouse_ru
    мне тоже надо было, не получается
  • https://t.me/clickhouse_ru
    @studnev #107700 12:20 PM, 05 Jul 2019
    в конце концов кончилось union all
  • https://t.me/clickhouse_ru
    @Deleveraged #107701 12:26 PM, 05 Jul 2019
    Joined.
  • @ViacheslavNefedov #107702 12:37 PM, 05 Jul 2019
    Отсылаю запрос к кх через odbc, по тексту ошибки вижу, что драйвер исковеркал запрос (добавил букву в конец запроса, например). Ещё получаю ошибку "exec direct called, but statement query is not equal to prepared". Менял строку подключения и версии драйверов - не помогает. Никто не сталкивался?
  • https://t.me/clickhouse_ru
    А кх насколько старый? Вроде год назад новый драйвер стал несовместимым.
  • @ViacheslavNefedov #107704 12:41 PM, 05 Jul 2019
    Иногда ещё бывает, что отсылается предыдущий запрос, а не текущий
  • @ViacheslavNefedov #107705 12:42 PM, 05 Jul 2019
    Кх 19.8.3.8
  • @ViacheslavNefedov #107706 12:43 PM, 05 Jul 2019
    Пробовал последние три версии драйвера
  • @ViacheslavNefedov #107707 12:44 PM, 05 Jul 2019
    Может работа драйвера зависить от настроек сервера?
  • https://t.me/clickhouse_ru
    @mgolubev #107708 01:06 PM, 05 Jul 2019
    users/test_trello.py ..
  • https://t.me/clickhouse_ru
    @studnev #107709 01:07 PM, 05 Jul 2019
    Кто нибудь использовал WITH statement? Он вроде как работает, но как его реально использовать нигде не нашел
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #107710 01:09 PM, 05 Jul 2019
    а подскажите, можно как то попарсить в кх вот такого вида duration (9.954087992s)
  • @profile_undefined #107711 01:11 PM, 05 Jul 2019
    Ребят, подскажите, можно ли выполнить в консоле запрос за один раз, в котором создается N таблиц. Возможно можно как-то разделить запросы ";".

    Нужно что-то типа такого:
    create table 1; create table 2; create table 3; - за один запрос создано 3 таблицы...
  • https://t.me/clickhouse_ru
    отрезать s и кастануть во флоат?
  • https://t.me/clickhouse_ru
    Пример раз - делаем "переменные" перед запросом
    WITH '2019-07-01 13:24:00' AS specific_ts
    SELECT count()
    FROM table_name
    WHERE (dt >= toDate(specific_ts)) AND (ts >= specific_ts)
  • https://t.me/clickhouse_ru
    Regex extract / replace
  • на точку с запятой консоль ругается...
  • https://t.me/clickhouse_ru
    clickhouse-client -m -n
  • https://t.me/clickhouse_ru
    В консоли или в скрипте? В одной строке нельзя. Перевод строки нужен. После ; все откидывается до перевода строки.
  • @profile_undefined #107718 01:14 PM, 05 Jul 2019
    в скрипте
  • https://t.me/clickhouse_ru
    если -n то не нужен
  • @profile_undefined #107720 01:14 PM, 05 Jul 2019
    спасибо, попробую @blind_oracle
  • https://t.me/clickhouse_ru
    @blind_oracle #107721 01:14 PM, 05 Jul 2019
    :) select 1; select 2;

    SELECT 1

    ┌─1─┐
    │ 1 │
    └───┘

    1 rows in set. Elapsed: 0.002 sec.

    SELECT 2

    ┌─2─┐
    │ 2 │
    └───┘

    1 rows in set. Elapsed: 0.001 sec.
  • https://t.me/clickhouse_ru
    Пример два - убираем из результата запроса поле, которое не хотим показывать:
    WITH sum(bytes) AS sum_bytes
    SELECT
    formatReadableSize(sum_bytes) AS human_bytes,
    table
    FROM system.parts
    WHERE active
    GROUP BY table
    ORDER BY sum_bytes DESC
    LIMIT 1
  • https://t.me/clickhouse_ru
    Нет. Скорее всего это у вас в коде. Откуда odbc используется?
  • https://t.me/clickhouse_ru
    Вариант 3 - взять скалярный результат из подзапроса:
    WITH
    (
    SELECT sum(number)
    FROM numbers(5)
    ) AS sum
    SELECT sum * 2

    ┌─multiply(sum, 2)─┐
    │ 20 │
    └──────────────────┘
  • https://t.me/clickhouse_ru
    спасибо, примеры понятны
  • https://t.me/clickhouse_ru
    @koch_kir #107726 01:41 PM, 05 Jul 2019
    Подскажите, можно ли сделать alter table drop partition по списку партиций, или ещё лучше через подзапрос из system.parts?
  • https://t.me/clickhouse_ru
    насколько я знаю нет. там указывется одна партиция.
  • https://t.me/clickhouse_ru
    но я смотрю на вложенные запросы это не распостраняется
  • https://t.me/clickhouse_ru
    @studnev #107729 02:01 PM, 05 Jul 2019
    это печаль
  • Варианты - через линкед сервер в ms sql, второй - кодом на питоне через pyodbc или pyoyodbc. Всеми способами в кх улетает некорректная строка
  • @ViacheslavNefedov #107731 02:25 PM, 05 Jul 2019
    Через tabix или dbeaver (jdbc) всё ок
  • @ViacheslavNefedov #107732 02:26 PM, 05 Jul 2019
    Начинаю подумывать о мосте odbc-jdbc
  • https://t.me/clickhouse_ru
    Да, внутри вложенного запроса надо писать свой with ....
  • https://t.me/clickhouse_ru
    @nivelium #107734 02:45 PM, 05 Jul 2019
    Никто не знает, куда нужно подкладывать proto файлы, чтобы я мог использовать их схемы в clickhouse?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Вложенные запросы работают, не работают только алиасы полей вроде как. У вас без алиасов да?
  • https://t.me/clickhouse_ru
    Кстати да, вот такой вариант работает:
    CREATE TABLE IF NOT EXISTS test_table (
    A String,
    B Int64
    ) ENGINE MergeTree()
    ORDER BY (A, B )
    PARTITION BY tuple();

    INSERT INTO test_table (A, B ) VALUES ('A', 1), ('B', 2), ('C', 3);

    CREATE MATERIALIZED VIEW IF NOT EXISTS test_view
    ENGINE = MergeTree()
    ORDER BY (A)
    PARTITION BY tuple()
    POPULATE AS
    SELECT A, B FROM (
    SELECT A, B FROM test_table
    );

    SELECT * FROM test_view;

    INSERT INTO test_table (A, B ) VALUES ('C', 4), ('D', 5), ('E', 6);

    но как только поменяем populate на

    SELECT A, b FROM (
    SELECT A, B as b FROM test_table
    );

    то перестает инсерт работать
  • @solhov #107738 05:22 PM, 05 Jul 2019
    гм. а как почистить неактивные партиции?
  • @solhov #107739 05:22 PM, 05 Jul 2019
    а то их оказывается у мня как-то завалялось.
  • @solhov #107740 05:24 PM, 05 Jul 2019
    даже не так. как почистить те файлы которые уже даже не считаются частью партиций?
  • https://t.me/clickhouse_ru
  • @solhov #107742 05:24 PM, 05 Jul 2019
    не почистилось
  • https://t.me/clickhouse_ru
    @mo1seev #107743 05:25 PM, 05 Jul 2019
  • @solhov #107744 05:29 PM, 05 Jul 2019
    не работает
  • @Nvarchar495 #107745 05:32 PM, 05 Jul 2019
    Спасибо помогло...
  • https://t.me/clickhouse_ru
    Кх сам их удаляет
  • https://t.me/clickhouse_ru
    @ValyaUspenskaya #107747 06:49 PM, 05 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @yuliycv #107748 06:51 PM, 05 Jul 2019
    Joined.
  • Без алиасов, они нужны? У меня и джойны и ины... Один раз через мВ большой объем данных обогатили полями.
  • @solhov ↶ Reply to #107746 #107750 06:59 PM, 05 Jul 2019
    Нет
  • @solhov #107751 07:01 PM, 05 Jul 2019
    Эти партиции были дропнуты чуть не полгода назад и кое-что до сих пор присутствует на диске
  • https://t.me/clickhouse_ru
    Значит что-то глюкануло. Если их нет в system.parts то я думаю можно просто снести с диска и все
  • https://t.me/clickhouse_ru
    Ну например сумму считать во вложенном запросе, без алиаса не знаю как в MV ее пропихнуть
  • @solhov #107754 07:20 PM, 05 Jul 2019
    Так что, кроме как руками городить колхоз из скриптов вариантов нет?
  • @githubreleases_bot #107755 b o t 07:53 PM, 05 Jul 2019
    yandex/ClickHouse tagged: v19.9.3.31-stable
    Link: https://github.com/yandex/ClickHouse/releases/tag/v19.9.3.31-stable
    Release notes:
    v19.9.3.31-stable
    ClickHouse/ClickHouse

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

  • И с алиасами и с агрегатными функциями. С движками summing merge tree и replacing merge tree.
  • @vladislavadv #107757 08:15 PM, 05 Jul 2019
    Всем привет.
    Подскажи. плиз, по функции dictGetUInt64
    Если в табличке есть 2 записи у которых attr_name=value, как я понимаю, она берет последнюю. Насколько это доведение детерминировано, и можно ли им управлять?
    Словарь - категория элемента, в системе может быть несколько категорий, нам нужно брать первую. У таблицы есть PK(id), в зависимости от которого мы решаем какая первая.
  • https://t.me/clickhouse_ru
    На самом деле не последняя а как повезет, просто перезатирает последняя но она может любой запросы многопоточные. Я бы сделал source словаря http и написал в урле запрос с argmin.
  • https://t.me/clickhouse_ru
    @g0dlike_man #107764 09:59 PM, 05 Jul 2019
    Уважаемые гуру SQL, вопрос хоть и не совсем по clickhouse (хотя мне нужно выполнить задачу именно в нем), но очень прошу помочь. Поиски по интернету увы не дали ответа... Сам вопрос тут: https://toster.ru/q/645930 , спасибо
    Как построить запрос в sql?

    Ответили на вопрос 3 человека. Оцените лучшие ответы! И подпишитесь на вопрос, чтобы узнавать о появлении новых ответов.

  • https://t.me/clickhouse_ru
    SELECT argMax(id, price), argMax(group, price), max(price ) ?
  • any можешь добавить ещё если неважен ид
  • https://t.me/clickhouse_ru
    any? будьте добры пример
  • Я с телефона. После того как max возьмёте ещё раз сгруппируйте и any это группировка
  • https://t.me/clickhouse_ru
    @studnev #107769 10:21 PM, 05 Jul 2019
    SELECT argMax(id, price), argMax(group, price), max(price ) FROM table GROUP BY group
  • https://t.me/clickhouse_ru
    сейчас попробую
  • https://t.me/clickhouse_ru
    Просит обязательно закидывать id и price в GROUP BY
  • https://t.me/clickhouse_ru
    @studnev #107772 10:31 PM, 05 Jul 2019
    из этой части картинки ничего непонятно
  • https://t.me/clickhouse_ru
    Пардон, имя столбца не правильно написал. Работает, спасибо! но вроде как argMax достаточно тяжелая функция
  • https://t.me/clickhouse_ru
    в каком смысле тяжелая?
  • https://t.me/clickhouse_ru
    ресурсоемкая функция, ошибаюсь?
  • https://t.me/clickhouse_ru
    а запрос долго выполнялся?
  • https://t.me/clickhouse_ru
    все остальные варианты, order by limit by / in (select max) еще хуже
  • https://t.me/clickhouse_ru
    @den_crane #107778 10:40 PM, 05 Jul 2019
    можно написать
    SELECT argMax((id,group,price), price) FROM table GROUP BY group
    но это примерно тоже самое
  • https://t.me/clickhouse_ru
    пока что шустро, но там всего 300 строчек пока еще) таблица сессионная. Еще раз спасибо!
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @den_crane #107781 10:41 PM, 05 Jul 2019
    ну (price, -id) даст максимальный price / мин id (для равных price)
    SELECT argMax((id,group,price), (price, -id)) FROM table GROUP BY group
  • https://t.me/clickhouse_ru
    в любом случае это уже подзапрос. Строчку нужно вывести всю
  • https://t.me/clickhouse_ru
    ┌─argMax(tuple(is, group, price), tuple(price, negate(is)))─┐
    │ (6,'g2',255) │
    │ (1,'g1',232) │
    └───────────────────────────────────────────────────────────┘
  • https://t.me/clickhouse_ru
    @studnev #107784 10:44 PM, 05 Jul 2019
    там все ^^^
  • https://t.me/clickhouse_ru
    да, id там String, поэтому он ругается: Illegal type String of argument of function negate
  • https://t.me/clickhouse_ru
    is имеется виду id?
  • https://t.me/clickhouse_ru
    @studnev #107787 10:45 PM, 05 Jul 2019
    да
  • https://t.me/clickhouse_ru
    ну тоже наверно не отработает, т.к. id => String type
  • https://t.me/clickhouse_ru
    @studnev #107789 10:47 PM, 05 Jul 2019
    toUInt64(id)
  • https://t.me/clickhouse_ru
    Алексей, еще раз спасибо, видимо в обычной MYSQL подобная задача будет реализована хуже т.к. в ней нет argMax
  • https://t.me/clickhouse_ru
    Вы кстати не подскажите, TTL у строчек в новых версиях ch сам будет отрабатывать или его запускать нужно? По документации не понял
  • https://t.me/clickhouse_ru
    @den_crane #107792 10:50 PM, 05 Jul 2019
    в 8м mysql можно попробовать через оконные функции и индексу по group,price
  • https://t.me/clickhouse_ru
    Сам. Альтером можно добавить TTL на существующую таблицу, но применится это только к строкам вставленным после alter.
  • https://t.me/clickhouse_ru
    спасибо, осталось дождаться stable версии с TTL
  • https://t.me/clickhouse_ru
    @den_crane #107795 10:59 PM, 05 Jul 2019
    Вроде уже 3 стейбла с TTL.
  • https://t.me/clickhouse_ru
    во всяком случае docker образ от яндекса поумолчанию использует 19.1
  • 06 July 2019 (56 messages)
  • @120600581 #107797 07:21 AM, 06 Jul 2019
    Всем добрый день! Не получается настроить правильно Distributed таблицу, кто-нибудь можем помочь правильно настроить? Буду благодарен
  • https://t.me/clickhouse_ru
    @ployd #107798 08:09 AM, 06 Jul 2019
    Господа, а в CH какие-нибудь visibility map-ы есть?
    Могут быть такие кейсы:
    * во время SELECT-а произойдёт вставка и в выполняющийся SELECT долетят данные из нового парта?
    * во время SELECT-а произойдёт мёрж и SELECT вычитает и первоначальные парты и смёрженный?
  • https://t.me/clickhouse_ru
    @tailsRoot #107799 09:52 AM, 06 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @tailsRoot #107800 09:53 AM, 06 Jul 2019
    Добрый день не подскажите альтернативы хранения json ?
  • https://t.me/clickhouse_ru
    @ployd ↶ Reply to #107800 #107801 09:55 AM, 06 Jul 2019
    1. Разложить по колонкам
    2. Вставлять как колонку с json в null таблицу, потому MV в другую таблицу с extract* полей из оригинальной
    3. Массивы keys/values
    4. Ну или просто хранить json в String поле
  • https://t.me/clickhouse_ru
    @ployd #107802 09:56 AM, 06 Jul 2019
    (4) для всяких дампов подходит с редкими дорогими запросами

    Для запросов лучше (1), (2)
  • https://t.me/clickhouse_ru
    а можно ли как-то увидеть пример второго пункта
  • https://t.me/clickhouse_ru
    @ployd ↶ Reply to #107803 #107804 10:01 AM, 06 Jul 2019
    CREATE TABLE main(..., json String) ENGINE = Null

    CREATE TABLE target(a Int64, b String, ...) ...

    CREATE MATERIALIZED VIEW target_handler TO target
    AS SELECT
    visitParamExtractInt(json, 'a') AS a,
    visitParamExtractString(json, 'b') AS b,
    ...
    FROM main
  • https://t.me/clickhouse_ru
    спасибо, будем разбираться)
  • https://t.me/clickhouse_ru
    @ployd #107806 10:02 AM, 06 Jul 2019
    Либо можно специализированные функции JSONExtract* использовать вместо visitParamExtract* (нужна последняя версия CH)
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @tailsRoot #107808 10:03 AM, 06 Jul 2019
    отлично, благодарю Вас.
  • https://t.me/clickhouse_ru
    @ployd #107809 10:04 AM, 06 Jul 2019
    Хм. Возможно я вопрос неправильно понял. Если вы хотите вставлять JSON, в котором уже разложено по колонкам, то вам FORMAT JSONEachRow нужен
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @tailsRoot #107811 10:07 AM, 06 Jul 2019
    ну по сути да у меня уже готовый json приходит упакованный, но он может быть разных форматов
  • https://t.me/clickhouse_ru
    @tailsRoot #107812 10:08 AM, 06 Jul 2019
    разных форматов в плане полей
  • https://t.me/clickhouse_ru
    @ployd #107813 10:08 AM, 06 Jul 2019
    1. По полям искать потом надо или это всё просто payload?
    2. Общий список полей известен ?
  • https://t.me/clickhouse_ru
    @tailsRoot #107814 10:09 AM, 06 Jul 2019
    общий список полей заранее не известен
  • https://t.me/clickhouse_ru
    @ployd #107815 10:10 AM, 06 Jul 2019
    Первый вопрос более важный, как ты догадался
  • https://t.me/clickhouse_ru
    да нужно будет)
  • https://t.me/clickhouse_ru
    @ployd #107817 10:13 AM, 06 Jul 2019
    Как часто?
  • https://t.me/clickhouse_ru
    @tailsRoot #107818 10:13 AM, 06 Jul 2019
    для вывода в дэшборд
  • https://t.me/clickhouse_ru
    @ployd #107819 10:13 AM, 06 Jul 2019
    Давай ты расскажешь про кейс, чтобы не надо было по слову тянуть)
  • https://t.me/clickhouse_ru
    @ployd #107820 10:14 AM, 06 Jul 2019
    Для этого нужен поиск по json-у?
  • https://t.me/clickhouse_ru
    @ployd #107821 10:14 AM, 06 Jul 2019
    Как вариант: сделать extract на поля, по которым хочется поиск иметь, а остальное оставить в String и доставать полностью
  • https://t.me/clickhouse_ru
    @ployd #107822 10:14 AM, 06 Jul 2019
    Либо поменять CH на монгу, если вариант
  • https://t.me/clickhouse_ru
    @Ars756 #107823 10:15 AM, 06 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @tailsRoot #107824 10:15 AM, 06 Jul 2019
    вот в этом и дело что необходима ch
  • https://t.me/clickhouse_ru
    @tailsRoot #107825 10:15 AM, 06 Jul 2019
    просто будут прилетать распарсенные токены в формате json
  • https://t.me/clickhouse_ru
    @tailsRoot #107826 10:16 AM, 06 Jul 2019
    я их анмаршелю в golang и нужно отправить в бд
  • https://t.me/clickhouse_ru
    @tailsRoot #107827 10:16 AM, 06 Jul 2019
    вот вся суть
  • https://t.me/clickhouse_ru
    @ployd ↶ Reply to #107821 #107828 10:16 AM, 06 Jul 2019
    this
  • https://t.me/clickhouse_ru
    @ployd #107829 10:16 AM, 06 Jul 2019
    Либо на стороне приложения отдельно поля для поиска вставить, либо в MV, как выше показал
  • https://t.me/clickhouse_ru
    @ployd #107830 10:17 AM, 06 Jul 2019
    (наверное, можно без MV, а с materialized columns просто)
  • https://t.me/clickhouse_ru
    @ployd #107831 10:17 AM, 06 Jul 2019
    А сам json как String
  • https://t.me/clickhouse_ru
    @ployd #107832 10:18 AM, 06 Jul 2019
    Можно сразу с CODEC(LZ4HC) (в два раза медленнее, в два раза лучше сжимает, чем LZ4 дефолтный)
  • https://t.me/clickhouse_ru
    @tailsRoot #107833 10:21 AM, 06 Jul 2019
    то есть как я понимаю можно хранить как стринг в базе а потом доставать её так же как строку и на строне приложения строку анмаршелить в json
  • https://t.me/clickhouse_ru
    @ployd #107834 10:21 AM, 06 Jul 2019
    Именно
  • https://t.me/clickhouse_ru
    отлично!)
  • https://t.me/clickhouse_ru
    @ployd #107836 10:22 AM, 06 Jul 2019
    Но для поиска точно стоит отдельные поля вычленять
  • https://t.me/clickhouse_ru
    как вы указали выше, хорошо
  • https://t.me/clickhouse_ru
    @399999446 #107838 10:41 AM, 06 Jul 2019
    всем привет
    Мне нужно получить элемент массива
    arrayElement(arraySort(new_aclid),1) as new_aclid_zero

    В итоговую таблицу получаю array(UUID)
    А должен быть просто UUID
    Где проблема и как сделать эту операцию?
  • https://t.me/clickhouse_ru
    Таких кейсов быть не может. Вначале селект строит список партов, а зтем начинает их читать.
  • https://t.me/clickhouse_ru
    Если нужно получить елемент массива - обратитесь к массиву по индексу
    Например 4й элемент - Array[4]
  • https://t.me/clickhouse_ru
    @ployd ↶ Reply to #107839 #107841 12:39 PM, 06 Jul 2019
    Супер. Это я и хотел услышать
  • @odainic #107842 12:48 PM, 06 Jul 2019
    Подскажите, плиз, если ли какой-нить конвеер в CH, аналог GO MSSQL, например
  • https://t.me/clickhouse_ru
    в КХ есть некий аналог MVCC т.е. данные выдаются те, которые были на момент запроса
  • https://t.me/clickhouse_ru
    read committed? Или repeatable read?
  • https://t.me/clickhouse_ru
    там нет транзакций, поэтому репитебл рид смысла не имеет.
    так что да, что-то вроде рид коммитед
  • https://t.me/clickhouse_ru
    @den_crane #107846 02:52 PM, 06 Jul 2019
    Только на уровне партов. Если инсерт создаст 10 партов то можно увидеть только часть, например 3.
  • https://t.me/clickhouse_ru
    да, до max block size который по дефолту 1млн оно атомарно
  • https://t.me/clickhouse_ru
    @den_crane #107848 03:01 PM, 06 Jul 2019
    Да тут половина вставляет в 100500 партиций сразу у них без млн куча партов.
  • https://t.me/clickhouse_ru
    @aveDenis #107849 08:14 PM, 06 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @studnev #107850 09:32 PM, 06 Jul 2019
    Как можно прибить висячие запросы - сначала повис TRUNCATE TABLE потом за ним стали какие то другие запросы виснуть? KILL QUERY не удаляет их из очереди…
  • @NormandFR #107851 09:52 PM, 06 Jul 2019
    Всем привет проблема подключения через datagrip к хосту яндекс облаку кликхауса (Managed Service for ClickHouse)
    https://monosnap.com/file/9V3lxeFPY92jmVuDdKL7qAnPFQaaKe
    ну и конечно использую сертификат
    https://monosnap.com/file/OdHBTiIA1zqiD5ahUWrIbdWjmFWdaV

    лог ошибки
    https://paste.laravel.io/84101f69-6f5c-4b14-941c-5eee31b1a487

    Спасибо за помощь!
  • @NormandFR #107852 10:29 PM, 06 Jul 2019
    я уже просто везел перетыкал меня эта ошибка выводит уже, наверняка кто то уже сталкивался - помогите пожалуйста.
  • 07 July 2019 (56 messages)
  • У вас тоже? Вторую неделю бьюсь с зависанием кх. Использую временные таблицы и чищу их транкейтом перед вставкой. Сначала использовал таблички на диске - приводило к тому, что парты переставали объединяться (и все (по всем таблицам) встает с to many parts). Потом перевёл эти таблички в память (engine=Memory), сейчас все зависает c ошибкой cannot schedule task. Если косяк в транкейте, значит завтра переведу на drop-create. Посмотрим.
  • Мы плюнули и рестартим нафик пока не нашли, как обойти проблему.
  • https://t.me/clickhouse_ru
    @tailsRoot #107858 08:56 AM, 07 Jul 2019
    Кто-нибудь подскажет как порт наружу открыть а то что-то правила iptables не помогают
  • что значит не помогает? tcpdump пакеты видит. Что пишет nc -v host port запущенный снаружи? А вообще настройка linux это offtopic тут imho.
  • https://t.me/clickhouse_ru
    @tailsRoot #107860 08:59 AM, 07 Jul 2019
    <listen_host>::</listen_host> как понимаю из документации нужно так сделать в конфиге
  • https://t.me/clickhouse_ru
    @tailsRoot #107861 09:02 AM, 07 Jul 2019
    да действительно раскоментировал добавил свой хост все поднялось
  • @asfive #107862 10:02 AM, 07 Jul 2019
    Joined.
  • @ViacheslavNefedov #107863 11:28 AM, 07 Jul 2019
    А можно писать в odbc-таблицу? Или только читать?
  • @743764896 #107866 01:07 PM, 07 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    что такое временные таблицы? mergeTree ?

    >drop-create
    drop любой mergeTree сбрасывает кеш марков (для всех таблиц), поэтому дропать их постоянно -- не очень идея.
    Используйте drop / create Log/TinyLog, .... в качестве временных.
  • @izebit ↶ Reply to #107868 #107872 02:02 PM, 07 Jul 2019
    что за кэш марков, можно поподробнее?
  • https://t.me/clickhouse_ru
    кеш primary ключей
  • https://t.me/clickhouse_ru
  • @lucifron31 #107875 02:11 PM, 07 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @hitmaker #107876 02:14 PM, 07 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @hitmaker #107877 02:14 PM, 07 Jul 2019
    Здравствуйте. Я немножко тут позависаю
  • @VitalVas #107878 03:08 PM, 07 Jul 2019
    кто-то пробовал бекапиться с помощю бакулы?
  • https://t.me/clickhouse_ru
    @vmoshikov #107879 03:21 PM, 07 Jul 2019
    Кто подскажет. Делаю запрос в таюлицу, где 2-5 строк могут повторяться, кроме одного столбца. Как мне поставить условие GROUP BY для получения первого значения?
  • https://t.me/clickhouse_ru
    Первого - любого?
  • https://t.me/clickhouse_ru
    Да, в крайнем правом столбце
  • https://t.me/clickhouse_ru
    any(правый столбец). Все остальные поля в group by
  • https://t.me/clickhouse_ru
    @vmoshikov #107883 03:26 PM, 07 Jul 2019
    Отлично, спасибо!
  • https://t.me/clickhouse_ru
    @studnev #107884 03:30 PM, 07 Jul 2019
    Да, рестарт помог. Причем в err логе никаких проблем не обнаружено. Это баг или фича что работа с DDL такой глючный или что то мы делаем не так?
  • https://t.me/clickhouse_ru
    @den_crane #107885 03:40 PM, 07 Jul 2019
    Непонятно. Какой движок у таблицы? Долгие select в это время бежали?
  • https://t.me/clickhouse_ru
    Таблица простая CREATE TABLE IF NOT EXISTS analytics.day_balance ON CLUSTER api_replicated
    (
    date Date,
    token_id UInt32,
    amount Float64
    ) ENGINE = ReplicatedMergeTree('/clickhouse/api_replicated/tables/analytics/day_balance', '{replica}')
    PARTITION BY toStartOfMonth(date)
    ORDER BY (token_id, date);
  • https://t.me/clickhouse_ru
    @studnev #107887 04:33 PM, 07 Jul 2019
    SELECT не было
  • https://t.me/clickhouse_ru
    @studnev #107888 04:34 PM, 07 Jul 2019
    Создаем таблицу, вставляем несколько млн записей и делаем потом DROP или TRUNCATE. Зависает в лучшем случае на минуты, в худшем на сутки щавис пришлось сервер перестартовать
  • https://t.me/clickhouse_ru
    @studnev #107889 04:35 PM, 07 Jul 2019
    есть подозрение на ZK как всегда 🙂
  • https://t.me/clickhouse_ru
    @studnev #107890 04:35 PM, 07 Jul 2019
    виснет на том сервере куда реплика пишется, на исходном все быстро удаляется
  • Спасибо, попробуем. Временные - это набор данных, которые вычисляли на кластере и приземляли на каждый шард, чтобы при распределеных вычислениях на каждом шарде не поднимать данные со всего кластера ( group by по distributed таблице по полям отличными от ключей шардирования). Приземляли через транкейт и инсерт, сначала на MergeTree, но после того, как весь кластер (все шарды) перестали мержить парты и заливка по всему кластеру встала по to many parts, перешли на Memory. Теперь все встаёт по cannot schedule task. Спасибо, попробую завтра log.
  • @lexasa #107892 06:17 PM, 07 Jul 2019
    Joined.
  • @lexasa #107893 06:47 PM, 07 Jul 2019
    привет, вопрос по запросу.
    возможно ли вытащить одним запросом топ N=1 по sum(v) в каждой группе
    или только через временные таблицы на каждый уровень вложенности - 1?
  • https://t.me/clickhouse_ru
    Order by group, sum desc limit 1 by group
  • @lexasa #107895 07:02 PM, 07 Jul 2019
    группа должна быть зависима от вышестоящей. топ группа потом топ в по каждому знаению в предыдущей группе и так далее.
  • https://t.me/clickhouse_ru
    Ранк типа?
  • @lexasa #107897 07:03 PM, 07 Jul 2019
    да
  • https://t.me/clickhouse_ru
    @den_crane #107899 07:04 PM, 07 Jul 2019
    Через массивы тогда. Какой результат ожидаем?
  • @lexasa ↶ Reply to #107899 #107900 07:05 PM, 07 Jul 2019
    нижняя часть скрина - результат выдачи
  • @mlmdev #107901 07:09 PM, 07 Jul 2019
    Joined.
  • @lexasa ↶ Reply to #107899 #107902 07:14 PM, 07 Jul 2019
    можно, пожалуйста, подробнее если это про групповые ранки?
  • https://t.me/clickhouse_ru
    Denny Crane [not a Yandex bot] in ClickHouse не тормозит

    create table xrollup(metric Int64, b date, v Int64 ) engine=MergeTree partition by tuple() order by tuple(); insert into xrollup values (1,'2018-01-01', 1), (1,'2018-01-02', 1), (1,'2018-02-01', 1), (1,'2017-03-01', 1); insert into xrollup values (2,'2018-01-01', 1), (2,'2018-02-02', 1); SELECT metric, toYear(b) y, toYYYYMM(b) m, SUM(v) AS val FROM xrollup GROUP BY metric, y, m with ROLLUP ORDER BY metric, y, m ┌─metric ─┬────y ─┬──────m ─┬─val ─┐ │ 0 │ 0 │ 0 │ 6 │ всего по всем метрикам │ 1 │ 0 │ 0 │ 4 │ всего по метрике 1 │ 1 │ 2017 │ 0 │ 1 │ всего по метрике 1 за 2017 │ 1 │ 2017 │ 201703 │ 1 │ всего по метрике 1 за март 2017 │ 1 │ 2018 │ 0 │ 3 │ │ 1 │ 2018 │ 201801 │ 2 │ │ 1 │ 2018 │ 201802 │ 1 │ │ 2 │ 0 │ 0 │ 2 │ │ 2 │ 2018 │ 0 │ 2 │ │ 2 │ 2018 │ 201801 │ 1 │ │ 2 │ 2018 │ 201802 │ 1 │ └────────┴──────┴────────┴─────┘

  • @lexasa ↶ Reply to #107903 #107904 07:36 PM, 07 Jul 2019
    Спасибо! То что нужно! В документации GROUP BY только с TOTAL описан
  • https://t.me/clickhouse_ru
    В общем надо было сразу написать что внизу результат. Нифига не очевидно.

    Кроме rollup есть ещё cube. На гитхабе есть и в тестах и в тикетах примеры.
  • @lexasa ↶ Reply to #107905 #107906 08:05 PM, 07 Jul 2019
    ROLLUP, CUBE and GROUPING SETS · Issue #322 · yandex/ClickHouse

    When I use [WITH TOTALS](https://clickhouse.yandex/reference_en.html#WITH TOTALS) modifier with GROUP BY I got an aggregate statistics for ALL rows. Feature: when I do query with several GROUP BY, ...

  • @kistkin_pavel #107907 08:07 PM, 07 Jul 2019
    Joined.
  • у меня вот так работает (в URL):

    jdbc:clickhouse://your-hostname.mdb.yandexcloud.net:8443/your_database?ssl=1&sslmode=strict&sslrootcert=/usr/local/share/ca-certificates/Yandex/YandexInternalRootCA.crt
  • https://t.me/clickhouse_ru
    @biochemicalcake #107909 08:35 PM, 07 Jul 2019
    Всем привет! А подскажите пожалуйста какая настройка отвечает за подробность логов? На девелопе кх работает в контейнере и в логах вообще все в кучу - trace, debug, info, error. Можно как то настроить уровень логгирования?
  • https://t.me/clickhouse_ru
    @270358043 #107910 08:41 PM, 07 Jul 2019
    /usr/bin/clickhouse: Operation not permitted не знаю что это значит
  • https://t.me/clickhouse_ru
    @270358043 #107911 08:41 PM, 07 Jul 2019
    capsysadmin хочет или еще что?
  • да юрий спасибо, уже нарыл тоже 🙂 ….
  • https://t.me/clickhouse_ru
    При старте? В докере? Официальный с докерхаба?

    Тупо нет x?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    внутри systemd-nspawn. Официальные deb пакеты. Если запустить с --capability=all все работает
  • https://t.me/clickhouse_ru
    @270358043 #107916 10:20 PM, 07 Jul 2019
    кажется это переповторение старого бага
  • https://t.me/clickhouse_ru
    @270358043 #107917 10:22 PM, 07 Jul 2019
    https://github.com/yandex/ClickHouse/issues/4095 вот этого в иной реинкарнации
    18.16.1 Operation not permitted · Issue #4095 · yandex/ClickHouse

    Hello! Deb package version 18.16.1 from Yandex repository gives errors: clickhouse-extract-from-config: Operation not permitted Need to emphasis what clickhouse deployed inside systemd-nspawn conta...

  • https://t.me/clickhouse_ru
    Спасибо!
  • 08 July 2019 (168 messages)
  • https://t.me/clickhouse_ru
    @nvartolomei #107919 03:48 AM, 08 Jul 2019
    is there a way to change table settings on the fly without detaching and attaching again? ie min_merge_bytes_to_use_direct_io
  • @terrifilch #107920 04:49 AM, 08 Jul 2019
    добрый день

    Может есть свежее гайд по миграции данных из mysql to clickhouse ?
    MySQL to ClickHouse data migration and replication

    Altinity has developed an open source clickhouse-mysql tool that helps to migrate existing MySQL table to ClickHouse and setup realtime replication of changes (INSERTS only). Here we review necessary steps using a simple example.

  • https://t.me/clickhouse_ru
    @cyalat3r #107921 05:04 AM, 08 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @cyalat3r #107922 05:35 AM, 08 Jul 2019
    Привет всем. Поставил clickhouse, запустил clickhouse-server. При запуске clickhouse-client столкнулся с проблемой:
    Code: 194. DB::Exception: Received from localhost:9000, ::1. DB::Exception: Password required for user default.

    Погуглив не нашел однозначного ответа. У этого человека ошибка точь в точь как у меня:
    https://blog.csdn.net/zhangpeterx/article/details/94863499

    Пишет что нужно зайти с паролем, но пароль для юзера default я не устанавливал. В users.xml пароль не задан. Создание пароля не помогает, ошибка та же самая.
    Кто нибудь сталкивался с подобным? Заранее спасибо.
  • https://t.me/clickhouse_ru
    @suxxorz #107923 05:37 AM, 08 Jul 2019
    там есть файлик с default_password.xml
  • https://t.me/clickhouse_ru
    Спасибо!
  • https://t.me/clickhouse_ru
    @cyalat3r #107925 05:39 AM, 08 Jul 2019
    Почему то подхватил рутовый пароль. Видимо я бестолковый как то вбил и не заметил.
  • https://t.me/clickhouse_ru
    @suxxorz #107926 05:40 AM, 08 Jul 2019
    Не не, он вроде как сам вставляет
  • он спрашивает при установке, если жмакнуть ок и не писать пароль, то пароль будет отсутствовать
  • https://t.me/clickhouse_ru
    Было такое, да.
  • https://t.me/clickhouse_ru
    @emakarov #107929 06:12 AM, 08 Jul 2019
    можно еще вот так при установке сделать, чтоб он не спрашивал
    echo "clickhouse-server clickhouse-server/default-password password my_password_for_default_user" | debconf-set-selections
    export DEBIAN_FRONTEND=noninteractive
  • @pookieShmukie #107930 06:13 AM, 08 Jul 2019
    Всем доброго утра! :)

    Ребята, кто сталкивался с Coordination::Exception. Coordination::Exception: Connection loss. ? Возникает при попытке запустить мутацию на удаление данных. Причем какие-то мутации работают, а какие-то нет.
  • @pavel_maksimow #107931 06:22 AM, 08 Jul 2019
    Всем привет. Какой странное поведение в КХ, замечено при вставке и удаления данных почти одновременно. КХ в какой-то момент перестает отвечать, потребляет много ресурсов и все, и ничего не происходит. Помогает перезапуск. Думаю, что связанно с опреацией удаления данных.

    UPD: скорее всего это возникает, когда поступают несколько заданий на удаление данных в одной партиции
  • Теоретически, удаление работает в фоне и новые данные не затрагивает
  • @Aleksander_Kuleshov #107933 06:55 AM, 08 Jul 2019
    Всем привет!
    Как в словаре задать отрицательные значения в качестве ключа?
  • @pavel_maksimow #107934 07:24 AM, 08 Jul 2019
    Всем привет. Какой странное поведение в КХ, замечено при вставке и удаления данных почти одновременно. КХ в какой-то момент перестает отвечать, потребляет много ресурсов и все, и ничего не происходит. Помогает перезапуск. Думаю, что связанно с опреацией удаления данных.

    UPD: скорее всего это возникает, когда поступают несколько заданий на удаление данных в одной партиции

    UPD: добавил скрин состояния мутаций, после чего эт возникает

    При попытке вставить новые данные после этго возникает ошибкка:
    Cannot mmap 64.00 MiB., errno: 12, strerror: Cannot allocate memory
  • @pavel_maksimow #107935 07:33 AM, 08 Jul 2019
    а после перезапуска КХ, эти мутации сразу выполняются, а значение в parts_to_do меняется на ноль
  • Может ли это возникнуть при зависании процесса мержа партов по тем партам, которые были удалены/очищены параллельным процессом?
  • @Ivanuska #107937 08:05 AM, 08 Jul 2019
    Добрый день, есть вопрос - нужно сделать семплирование по 2-м колонкам, как лучше сделать? сейчас сделал так, но есть подозрение что это не очень правильно:

    ENGINE
    ReplicatedMergeTree('table_name', '{hostname}')
    PARTITION BY
    toYYYYMM(event_date)
    ORDER BY
    (..., browser, domain, tuple(browser, domain), ...)
    PRIMARY KEY
    (..., browser, domain, tuple(browser, domain))
    SAMPLE BY
    (tuple(browser, domain))
  • https://t.me/clickhouse_ru
    @mobilesfinks #107938 08:08 AM, 08 Jul 2019
    @prll
    https://github.com/yandex/ClickHouse/issues/5883
  • https://t.me/clickhouse_ru
    В SAMPLE нужно кортеж (browser, domain) обернуть в что-то типа cityHash
    И добавить это выражение в список колонок таблицы
  • https://t.me/clickhouse_ru
    @andrey_konyaev #107940 08:09 AM, 08 Jul 2019
    Коллеги, как сменить пользователя под которым engine HDFS лезет в hdfs. По умолчанию это пользователь clickhouse. Можно ли это поменять?
  • https://t.me/clickhouse_ru
    @vlkolobaev #107941 08:12 AM, 08 Jul 2019
    Ребят, а где можно почитать changelog для stabel версии v19.9.3.31-stable?
  • https://t.me/clickhouse_ru
    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
    это точно changelog которого мы заслужили?
  • https://t.me/clickhouse_ru
    @blind_oracle #107944 08:14 AM, 08 Jul 2019
    Это единственный который есть
  • https://t.me/clickhouse_ru
    @Alesapin #107945 08:15 AM, 08 Jul 2019
    На данный момент. Человекочитаемый скоро будет.
  • @orlan_sar #107946 08:15 AM, 08 Jul 2019
    Привет. Есть поле1 с секундами(тип Uint64), есть поле2 с датой и временем(DateTime). Хочу отнять с поле2 поле1(поле2-поле1). Как проеобразовать поле1 в времянной тип ? toSecond не работает
  • https://t.me/clickhouse_ru
    toDateTime(поле1)
  • https://t.me/clickhouse_ru
    @vlkolobaev #107948 08:17 AM, 08 Jul 2019
    Там есть ещё ветка 19.11, а можно где-то прочитать чем 19.7 отличается от 19.9/19.11 ? А то они все стабильные и все выходят практически одновременно
  • https://t.me/clickhouse_ru
    человекочитаемый ченджлог пока написан только для 19.7, @Alesapin обещает выше что скоро обновят :)
  • https://t.me/clickhouse_ru
    @blind_oracle #107950 08:19 AM, 08 Jul 2019
    2020 | Документация ClickHouse

    ClickHouse release 20.9 ClickHouse release v20.9.2.20-stable, 2020-09-22 New Feature Added column transformers EXCEPT, R

  • https://t.me/clickhouse_ru
    Можно посмотреть коммиты и их описания зачастую достаточно если прям сильно надо
  • https://t.me/clickhouse_ru
    @metikovvadim #107952 08:52 AM, 08 Jul 2019
    Привет всем!
    в логе при старте версии 18.14.18.1 54409 :
    <Information> Application: It looks like the process has no CAP_NET_ADMIN capability, 'taskstats' performance statistics will be disabled. It could happen due to incorrect ClickHouse package installation. You could resolve the problem manually with 'sudo setcap cap_net_admin=+ep /usr/bin/clickhouse'. Note that it will not work on 'nosuid' mounted filesystems. It also doesn't work if you run clickhouse-server inside network namespace as it happens in some containers.

    что это ? зачем нужна такая статистика
  • @orlan_sar #107953 09:14 AM, 08 Jul 2019
    Создаю словарь и не знаю что(0 или ничего) проставить в строке null_value для атрибута с типом date. Подскажите?
  • @dmitriy_negreev #107954 09:15 AM, 08 Jul 2019
    Всем привет!
    Можно ли выполнить мутацию один запросом обновив историчную таблицу данными из буферной (в vertica или oracle это можно сделать оператором merge)?
  • https://t.me/clickhouse_ru
    Для профилирования работы КХ.
  • Какое дефолтное значение тебе надо возвращать, если в словаре не будет данных? Его и пиши.
  • https://t.me/clickhouse_ru
    @hagen1778 #107957 09:46 AM, 08 Jul 2019
    Вопрос по clickhouse-copier.
    Я пытаюсь расшардировать таблицу на два шарда. Будет ли clickhouse-copier работать быстрее чем решардинг путем вставки в distributed таблицу?
  • https://t.me/clickhouse_ru
    В КХ есть планировщик запросов, учитиывющий эту статистику или это для людей инфа ?
  • https://t.me/clickhouse_ru
    Это нужно для счетчиков в system.events. Напрямую КХ их не использует насколько я знаю, но могу ошибаться.
  • https://t.me/clickhouse_ru
    Нашел ответ в блоге Алтинити:
    As the conclusion, we can see that performance of clickhouse-copier is similar to SELECT … INSERT statements but when it gets to a distributed database it gets more efficient because it uses the most of parallel resources
  • @pavel_maksimow #107961 10:40 AM, 08 Jul 2019
    подскажите, модно ли посмотреть, на что кликхаус тратит в данный момент ресурсы, на какие операции. Не делаю запросов, а КХ занимает много ресурсов.
  • https://t.me/clickhouse_ru
    @cassej #107962 10:51 AM, 08 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    Каких ресурсов? Если процессор, то мержит парты скорее всего. Смотри в system.merges
  • оперативку
  • https://t.me/clickhouse_ru
    @blind_oracle #107965 10:59 AM, 08 Jul 2019
    сколько? там кеш марков до 5гб может кушать по дефолту
  • https://t.me/clickhouse_ru
    Нету.
  • https://t.me/clickhouse_ru
    В логе кх какие ошибки? В логе зукипера? Подозреваю что у вас в таблице лесятки тысяч партиций, на таких таблицах мутации не работают.
  • Да, там под 6000 партиций в таблице ( Это кроме как изменить ключ партиционирования никак не лечится?
  • @pookieShmukie #107969 11:29 AM, 08 Jul 2019
    Может в ЗК поднять лимиты на размер батчей в логах?
  • https://t.me/clickhouse_ru
    complex.. словари позволяют задать ключ из одного поля любого типа и потом передавать тип через тупл tuple(-333)
  • @Aleksander_Kuleshov #107971 11:33 AM, 08 Jul 2019
    Спасибо😊
  • https://t.me/clickhouse_ru
    Нет, не лечится.
    какая у вас версия кх? Где-то внутри кх повышали максимальный размер транзакции зк пару месяцев назад.
  • У нас 18.14.18 версия. Черт, придется менять ключ партиционирования ( Спасибо за помощь! Так бы долго бились с проблемой!
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    0 или что тоже самое 1970-01-01
  • https://t.me/clickhouse_ru
    Движок replacing и обычный insert
  • https://t.me/clickhouse_ru
    Зачем вам мутации? Вам drop partition нужен или ttl
  • @novikov_tema #107978 12:22 PM, 08 Jul 2019
    dictGet* в качестве имени словаря требует константу и, похоже, нет способа собрать имя на лету - concat не подходит. Или я не прав? Почему оно так?
  • https://t.me/clickhouse_ru
    @sl_aleksandr #107979 12:24 PM, 08 Jul 2019
    Всем привет! Подскажите пожалуйста, грузим с firebase события в КХ, но параметры события у нас приходят json-строкой, например так: "[{"key":"item_id","value":{"string_value":"701"}},{"key":"firebase_screen_class","value":{"string_value":"RootActivity"}},{"key":"link","value":{"string_value":"https:\/\russia\/sochi\/"}},{"key":"screen_name","value":{"string_value":"DealsFragment"}},{"key":"firebase_event_origin","value":{"string_value":"app"}},{"key":"firebase_screen_id","value":{"int_value":"-1930814127147257036"}}]". Можно ли как-то это распарсить как массив, чтоб каждая пара key-value была отдельным элементом, а потом уже использовать arrayJoin для фильтрации нужных элементов?
  • Выше ваш мессадж про argMax. Сейчас использую In (select max), чтобы получить последний срез профилей сущностей в таблице (10 столбцов, сущностей 70 млн, по матвью ReplacingMergeTree по дате заливке). Вопрос: argMax на 10 полей подряд будет легче, селект ин?
  • https://t.me/clickhouse_ru
    так сделали в Я, им не надо было не константу.
  • https://t.me/clickhouse_ru
    1. строго говоря результат будет разный. argmax вернет одну строку (любую для одинаковых max)
    2. надо тестить, перфоманс будет разный в зависимости от наличия и возможности использовать индекс и в зависимости от кол-ва дубликатов по ключу.
  • @milovidov_an #107983 01:08 PM, 08 Jul 2019
    Опубликовали статью про анализ производительности запросов: https://habr.com/en/company/yandex/blog/459198/
  • None
  • Судя по документации - это не гарантированная дедубликация, и как можно узнать когда он все процессы дедубликации завершит?
  • https://t.me/clickhouse_ru
    @den_crane #107986 01:18 PM, 08 Jul 2019
    Кстати, я тут столкнулся с интересной штукой.
    Мне дали сервер в железным раид 10 ( PERC H730 Mini LSI) 12 hdd.
    Я померил скорость fio direct write / read 200 ГБ файла. И скорость селектов в КХ.

    Затем рейд переключили в HBA mode. Cделали раид 10 far2 (теже диски).
    Скорость по fio ухудшилась. Скорость селектов выросла от 2 до 10 раз.

    Вопрос. Каким профилем fio тестить диски под КХ ?
  • https://t.me/clickhouse_ru
    никак, может никогда не завершить, тоже самое будет с мутациями (update)
    Делать запросы так чтобы возвращалась нужная ("последняя") запись
  • Если говорить о гарантированном результате, то аналогов смержить 2 таблицы больше нет?
  • https://t.me/clickhouse_ru
    нет, точнее можно можно с помощью aggregating merge tree, но это тоже самое
  • https://t.me/clickhouse_ru
    А эксперимент точно чистый? кеши ос и т.п. сбрасывались перед проверкой КХ?
  • @solhov ↶ Reply to #107986 #107991 01:21 PM, 08 Jul 2019
    а теперь нужно в hba режиме поставить фрю и zfs и прогнать еще раз, подозреваю что все может улучшится
  • https://t.me/clickhouse_ru
    sync; echo 2 > /proc/sys/vm/drop_caches
    system drop mark cache

    по перфомансу было видно что сброс влияет
  • @solhov #107993 01:23 PM, 08 Jul 2019
    и для интереса еще не с zfs а с gmiror. в линухе зеркало очень своеобразное просто.
  • https://t.me/clickhouse_ru
    не знаю что такое zfs, вопрос умеет ли он far
  • https://t.me/clickhouse_ru
    raid10 делался md? или силами hba?
  • @solhov #107996 01:24 PM, 08 Jul 2019
    только near
  • https://t.me/clickhouse_ru
    @blind_oracle #107997 01:25 PM, 08 Jul 2019
    я к тому что некоторый хба умеют в простенькие рейды вроде 1\0\10
  • https://t.me/clickhouse_ru
    mdadm --create --verbose /dev/md0 --raid-devices=10 --level=10 --layout=f2 --chunk=1M --bitmap=internal --bitmap-chunk=128M /dev/sda2 /dev/sdb2 /dev/sdc2 /dev/sdd2 /dev/sde2 /dev/sdf2 /dev/sdg2 /dev/sdh2 /
    dev/sdi2 /dev/sdj2
  • https://t.me/clickhouse_ru
    @blind_oracle #107999 01:26 PM, 08 Jul 2019
    думается надо смотреть в сторону глубины очереди рейд контроллера, скорее всего при чтении паралелльных колюмнов mdraid лучше это дело распараллеливает по дискам
  • https://t.me/clickhouse_ru
    @blind_oracle #108000 01:27 PM, 08 Jul 2019
    или что-то в таком духе
  • https://t.me/clickhouse_ru
    таже карточка в обоих случаях PERC H730 Mini (LSI чип), но в raid mode vs hba mode
  • @solhov #108002 01:28 PM, 08 Jul 2019
    как говорят mdadm не умеет балансировать нагрузку. запрос передается всегда на диск у которого головки ближе всего к нужному блоку. как результат -- последовательное чтение будет всегда идти с одного диска. случайное -- уже усть варианты
  • https://t.me/clickhouse_ru
    @den_crane #108003 01:28 PM, 08 Jul 2019
    еще раз, мне насрать на железные рейды, они все говно, если карточка стоит дешевле $1000

    Вопрос. Каким профилем fio тестить диски под КХ ?
  • https://t.me/clickhouse_ru
    попробуй тредов прибавить в fio
  • https://t.me/clickhouse_ru
    т.е. то что far на последовательном чтении выдает в два раза больше, это неправда?
  • @solhov #108006 01:32 PM, 08 Jul 2019
    не понимаю что ты тут спросил. причем тут far? в два раза больше чего и на чем? и сколько в абсолютных цифрах? и что правда или неправда?
  • https://t.me/clickhouse_ru
    http://www.ilsistemista.net/index.php/linux-a-unix/35-linux-software-raid-10-layouts-performance-near-far-and-offset-benchmark-analysis.html?start=1

    The first graph depicts a RAID10 NEAR layout:
    2x sequential read speed (sequential read access can be striped only over disks with different data)

    Now it is the turn of FAR layout:
    4x sequential read
  • @solhov #108008 01:41 PM, 08 Jul 2019
    вероятно да, там написанны устаревшие сведения.
  • @solhov #108009 01:41 PM, 08 Jul 2019
    2012 год однако.
  • @solhov #108010 01:48 PM, 08 Jul 2019
    возможно far вариант и даст большую производительность если удастся подобрать такие параметры разбиения что бы срабатывал префетч (паралельный) при последовательном чтении.
  • https://t.me/clickhouse_ru
    @den_crane #108011 01:51 PM, 08 Jul 2019
    ну КХ читает max_read_buffer_size, по дефолту 1048576 , и я делал раид по КХ доке --chunk=1M
  • @solhov #108012 01:56 PM, 08 Jul 2019
    ну тогда скорее всего никакой паралельности не будет.
  • А битмап вам зачем? Он очень сильно снижает производительность. Ведь в случае вылета диска у вас все равно будет полный ресинк
  • https://t.me/clickhouse_ru
    спонтанные ребуты
  • Ну рейд не должен ломаться при спонтанных ребутах, если конечно вы спонтанно диски не дергайте туда сюда
  • https://t.me/clickhouse_ru
    вы это, сделайте рейд без битмапа на 10ТБ дисках, а потом вытащите его из розетки, и все поймете.
    конечно он не сломается, просто будет тормозить первые 12/20 часов
  • https://t.me/clickhouse_ru
    @den_crane #108017 02:27 PM, 08 Jul 2019
    битмап же тупая отметка что запись прошла она диска зеркала
  • https://t.me/clickhouse_ru
    @den_crane #108018 02:27 PM, 08 Jul 2019
    если его нет, то надо проверить что оба диска в зеркале синхронны
  • https://t.me/clickhouse_ru
    @den_crane #108019 02:28 PM, 08 Jul 2019
    в моем случае надо прочитать 120ТБ
  • https://t.me/clickhouse_ru
    Просто любопытно, какого рода инфа в таких объёмах?
  • https://t.me/clickhouse_ru
    я без понятия наверное скооллы мышки у нескольких сотен миллионов юзеров.
    тут у половины людей кластера из 400 нод. Мне туда еще расти и расти.
  • @ppcosnt #108022 02:42 PM, 08 Jul 2019
    Всем привет. Кто-нибудь сталкивался с проблемами с временными зонами. На сервере стоит Europe/Moscow, в консоли (clickhouse-client) делаю select now() возвращяет правильное время +3, делаю тоже самое на клиенте (локалхост или нет) показывает +0. Из-за чего проскакивает такая хрень
  • @ppcosnt #108025 02:43 PM, 08 Jul 2019
    клиент php. Там временные зоны тоже корректно настроены и на самом сервере тоже
  • https://t.me/clickhouse_ru
    @bambaleeyo #108026 02:44 PM, 08 Jul 2019
    а в конфиге самого КХ какая таймзона прописана?
  • @ppcosnt #108027 02:44 PM, 08 Jul 2019
    Europe/Moscow
  • @ppcosnt #108028 02:56 PM, 08 Jul 2019
    Нашел в настройках (system.settings) use_client_time_zone = 0
  • @ppcosnt #108029 03:17 PM, 08 Jul 2019
    Видимо не отрабатывает параметр use_server_time_zone
  • офигеть просто
  • https://t.me/clickhouse_ru
    wut? это восхищение кликхаузом или что?
  • yep
  • @sr_maks1 #108033 03:22 PM, 08 Jul 2019
    просто я пропустил данную фичу
  • @ppcosnt #108034 03:42 PM, 08 Jul 2019
    В общем имеем такую проблему, как мне кажется.
  • @profile_undefined #108035 04:14 PM, 08 Jul 2019
    подскажите, пожалуйста, в кликхаусе важен порядок объявления полей, что бы он соответствовал ключу сортировки?

    допустим, ключ сортировки (а, б, с), а поля объявлены в последовательности б, а, с...
  • https://t.me/clickhouse_ru
    не важен
  • @profile_undefined #108037 04:16 PM, 08 Jul 2019
    спасибо
  • https://t.me/clickhouse_ru
    @122870188 #108038 04:23 PM, 08 Jul 2019
    Господа, подскажите, а настройку timezone КХ не релоадит на лету?
  • https://t.me/clickhouse_ru
    @shevchenkokolya #108039 04:27 PM, 08 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    это jdbc? datagrip?
  • https://t.me/clickhouse_ru
    нет. А что кто-то релоадит? у меня тут rsyslog пишет время(TZ) трехлетней давности (rsyslog 3 года не рестартили)
  • https://t.me/clickhouse_ru
    у.меня в датагрип воспроизводится
  • https://t.me/clickhouse_ru
    @shevchenkokolya #108043 04:29 PM, 08 Jul 2019
    Привет, не подскажете, может у кого была такая проблема.
    Строю график в графане. Выводит только одну точку и все, в инспекторе запроса все 100 записей, а на графике только одна первая точка. ( группировку делаю)
    В tabix все выводит, запрос верный
  • https://t.me/clickhouse_ru
    там проблема в самом jdbc
  • https://t.me/clickhouse_ru
    я в config.xml поменял timezone, но КХ не среагировал
  • https://t.me/clickhouse_ru
    @122870188 #108046 04:30 PM, 08 Jul 2019
    на самом деле у меня более общий вопрос, как заставить КХ не применять timezone,  так как даты мы сами пишем уже с учетом зоны
  • https://t.me/clickhouse_ru
    @den_crane #108047 04:31 PM, 08 Jul 2019
    я делаю в jdbc так, чтобы увидеть серверное UTC

    use_time_zone Canada/Atlantic
    use_server_time_zone_for_dates false
    use_server_time_zone false
    https://github.com/yandex/clickhouse-jdbc/issues/202
  • Php storm. JDBC. По http аналогично
  • Пробовал в шторме, никаких изменений
  • https://t.me/clickhouse_ru
    в чем ваша проблема я вообще не понял.

    покажите

    select toTypeName(now()),toTypeName(toDateTime(now()))

    с сервера и с клиента
  • Покажу чуть позже. Проблема в том, что гружу данные в кх через пхп по http и проблема имеет иесто быть
  • https://t.me/clickhouse_ru
    я понял что проблема есть, я не понял какая.
  • @ppcosnt #108053 04:43 PM, 08 Jul 2019
    Даты ставлю в виде строки и они парсятся на +0 из-за этот даты не соответствуют тем которые туда пишу. Придется вручную +3 ставить пепел вставкой
  • https://t.me/clickhouse_ru
    у меня похожая проблема
  • https://t.me/clickhouse_ru
    @artilligence #108055 04:54 PM, 08 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @designerfromsanpaulo #108056 05:06 PM, 08 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @den_crane #108057 05:24 PM, 08 Jul 2019
    <!-- Server time zone could be set here.

    Time zone is used when converting between String and DateTime types,
    when printing DateTime in text formats and parsing DateTime from text,
    it is used in date and time related functions, if specific time zone was not passed as an argument.

    т.е. если TZ у линукса UTC, а в конфиге <timezone>Europe/Moscow</timezone> КХ будет конвертировать строки в из Moscow в UTC, точнее все несколько сложнее потому что можно сделать поле в таблице A DateTime('Europe/Moscow').
  • @ppcosnt #108060 05:33 PM, 08 Jul 2019
    ls -l /etc/localtime
    /etc/localtime -> /usr/share/zoneinfo/Europe/Moscow
  • https://t.me/clickhouse_ru
    т.е. по логике если TZ в Линуксе и КХ одинаковый то он не должен трогать даты?
  • https://t.me/clickhouse_ru
    а в конфиге КХ ?
  • @ppcosnt #108063 05:36 PM, 08 Jul 2019
    grep -r timezone config.xml
    <timezone>Europe/Moscow</timezone>
  • https://t.me/clickhouse_ru
    да, но jdbc будет конвертить в tz jvm
  • https://t.me/clickhouse_ru
    ну во что-то не похоже, у меня сейчас и clickhouse-client конвертит, хотя и в Линуксе и в кх стоит Europe/Moscow
  • https://t.me/clickhouse_ru
    @122870188 #108066 05:40 PM, 08 Jul 2019
    а он считает что в таблице UTC и накидывает 3ч
  • https://t.me/clickhouse_ru
    т.е. если

    create table tzz(A DateTime) engine=Log;
    insert into tzz values('2010-01-01 00:00:00');
    то select покажет другое время?
  • https://t.me/clickhouse_ru
    попробую
  • @ppcosnt #108069 05:45 PM, 08 Jul 2019
    Если это проблема jdbc, то и при отображении будет не правильно?
  • @ppcosnt #108070 05:46 PM, 08 Jul 2019
    Завтра проверю что на самом деле пишется при работе по http
  • @ppcosnt #108071 05:46 PM, 08 Jul 2019
    Локально по http норм все отработало
    $ curl "http://localhost:8123/?query=select%20now(),toTimeZone(now(),'Europe/Moscow')"
    2019-07-08 20:44:04 2019-07-08 20:44:04
  • https://t.me/clickhouse_ru
    эээ, это не совсем проблема jdbc.
    тут вот в чем штука, если на сервере UTC и в config.xml UTC , то jvm сконвертит в TZ moscow если у нас на ноуте московское время
  • @ppcosnt #108073 05:48 PM, 08 Jul 2019
    Ага! Но на ноуте у нас не московское, а местное.
  • https://t.me/clickhouse_ru
    чтобы JVM не конвертило я делаю

    use_time_zone Canada/Atlantic
    use_server_time_zone_for_dates false
    use_server_time_zone false

    на ноуте Canada/Atlantic (на сервере UTC)
    в этом случае JDBC считает что он с сервера КХ загружает время в TZ Canada/Atlantic и конвертирует из Canada/Atlantic в Canada/Atlantic и таким образом я вижу что было на сервере в UTC
  • Попробую. Спасибо
  • https://t.me/clickhouse_ru
    @sergebezborodov #108076 05:57 PM, 08 Jul 2019
    коллеги, привествую!
    как задать MergeTree таблицу чтобы была одна партиция?
  • https://t.me/clickhouse_ru
    Partition by tuple()
  • https://t.me/clickhouse_ru
    @sergebezborodov #108078 05:58 PM, 08 Jul 2019
    спасибо большое!
  • https://t.me/clickhouse_ru
    create table M ( ...) Engine=MergeTree order by ...
    либо опустить секцию partition by
    что ровно тоже самое что Partition by tuple()
  • https://t.me/clickhouse_ru
    время одно и тоже
  • https://t.me/clickhouse_ru
    @122870188 #108081 06:01 PM, 08 Jul 2019
    хотя в соседней таблице прибавляет 3ч
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    либо туда было записано при других настройках и конвертнулось при записи в UTC либо туда кто-то так пишет.
  • https://t.me/clickhouse_ru
    спасибо, буду проверять
  • https://t.me/clickhouse_ru
    @stovm #108087 08:40 PM, 08 Jul 2019
    Странно так. Снёс буферную таблицу, изменил интервал сброса на:
    Buffer(local, views_local, 2, 60, 60, 10000000, 10000000, 100000000, 100000000)
    Причём работает как надо раз в 60 секунд +-…
    Но в system.tables в engine_full почему-то по-прежнему
    Buffer(local, views_local, 2, 10, 10, 10000000, 10000000, 100000000, 100000000)
  • @Jamba7 #108088 09:45 PM, 08 Jul 2019
    Joined.
  • 09 July 2019 (197 messages)
  • https://t.me/clickhouse_ru
    @AleksandrVassiliev #108089 03:23 AM, 09 Jul 2019
    Добрый день! Подскажите, пожалуйста, как сгруппировать две строки у которых одинаковый ключ и вторым столбцов идет массив. Причем в одной из строк он пустой, а в другой необходимо сохранить порядок элементов:
    т е из выборки вида
    key []
    key [2,4,6]
    нужно получить
    key [2,4,6]
    есть ли агрегатная ф-ция которая накапливает аргументы-массивы (но с учетом того что у меня будет только в одной строке не пустой масив, то порядок в нем должен сохраниться)?
    Спасибо!
  • https://t.me/clickhouse_ru
    @AleksandrVassiliev #108090 03:27 AM, 09 Jul 2019
    Ну или как еще можно "развернуть" строки-массивы в столбцы
    у меня
    key ['a','b','c']
    key ['a1','b1','c1']
    а нужно получить
    key ['a','b','c'] ['a1','b1','c1']
  • https://t.me/clickhouse_ru
    @den_crane #108091 03:39 AM, 09 Jul 2019
    select k, groupArray(v) from (
    select 1 k, [7,8,1] v union all select 1 k, [] v union all select 2 k, [1,2,3] v
    ) group by k
    ┌─k─┬─groupArray(v)─┐
    │ 1 │ [[7,8,1],[]] │
    │ 2 │ [[1,2,3]] │
    └───┴───────────────┘
  • https://t.me/clickhouse_ru
    @den_crane #108092 03:39 AM, 09 Jul 2019
    select k, flatten(groupArray(v)) from (
    select 1 k, [7,8,1] v union all select 1 k, [] v union all select 2 k, [1,2,3] v
    ) group by k
    ┌─k─┬─flatten(groupArray(v))─┐
    │ 1 │ [7,8,1] │
    │ 2 │ [1,2,3] │
    └───┴────────────────────────┘
  • https://t.me/clickhouse_ru
    @AleksandrVassiliev #108093 03:41 AM, 09 Jul 2019
    спасибо!
  • https://t.me/clickhouse_ru
    @den_crane #108094 03:46 AM, 09 Jul 2019
    а, да, еще groupArrayArray

    select k, groupArrayArray(v) from (
    select 1 k, [7,8,1] v union all select 1 k, [] v union all select 2 k, [1,2,3] v union all select 1 k, [3,9,7]
    ) group by k

    ┌─k─┬─groupArrayArray(v)─┐
    │ 1 │ [7,8,1,3,9,7] │
    │ 2 │ [1,2,3] │
    └───┴────────────────────┘
  • https://t.me/clickhouse_ru
    @AleksandrVassiliev #108095 03:47 AM, 09 Jul 2019
    круто!)
  • @dmitry_shepelev #108096 05:25 AM, 09 Jul 2019
    Коллеги, а можно как-то выделить временные подпоследовательности из таблицы, отсортированные по времени?
  • @aopetrov86 #108097 05:34 AM, 09 Jul 2019
    А что значит временные последовательности? Серии подряд идущих дат? А выделить в каком виде надо? Из каких данных?
  • @dmitry_shepelev #108098 05:41 AM, 09 Jul 2019
    например, есть таблица посещения сайта с веб-аналитикой по пользователям. Пользователь использует сайт и отправляются эвенты. То есть в таблице имеется нечто такое:
    user_uuid, ts_event, site
    Хотелось бы вытащить время посещения сайта пользователем в формате user_uuid, site, ts_start, ts_end
  • https://t.me/clickhouse_ru
    min(ts_event) as start, max(ts_event) as end?
  • У тебя пользователь может заходить на сайт в течение дня, допустим, каждые 30 минут, но это не значит, что пользователь на сайте был сутки
  • https://t.me/clickhouse_ru
    я же не знаю по каким ивентам ты считаешь где пользователь зашел и где вышел
  • @dmitry_shepelev #108102 06:47 AM, 09 Jul 2019
    Нужна информация о каждом посещении пользователя
  • для генерации сессий нужна дополнительная логика (и не всегда она тривиальная)
  • https://t.me/clickhouse_ru
    ну так и выберай каждое)
  • Когда пользователь поменял сайт, где также трекаются ивенты
  • https://t.me/clickhouse_ru
    скорее всего нужно внедрять дополнительную логику на беке
  • https://t.me/clickhouse_ru
    а выборку делать в стиле select usr_id, site, groupArray(ts_event) group by usr_id, site
  • а разные интервалы ты как выберешь?
  • https://t.me/clickhouse_ru
    смотри, даже по другому можешь сделать, select usr_id, groupArray(site), groupArray(ts_event), если сайт 1 тогда забераешь крайние границы в времени, если сайта два, тогда уже на беке проходишь массивы и смотришь где у тебя пользователь последний раз был на сайт1 и перешол на сайт2, просто если этот переход это не частый случай, тогда и проверок нужно будет не много, если же частый, можно еще поробовать объединить это два groupArray с помощью arrayMap и лямбды, но я в них не особо, так что тут уже не помогу
  • а если сайтов 100+?
  • @dmitry_shepelev #108111 07:02 AM, 09 Jul 2019
    разве использования бека нельзя такой запрос сделать
  • https://t.me/clickhouse_ru
    я думаю что можно, только более чательно узичить функции кликхауса, но в моей практике пока таких заданий не было, поэтому не помогу
  • https://t.me/clickhouse_ru
    @RomanBulakh #108113 07:16 AM, 09 Jul 2019
    Привет. А кто может подсказать по TTL или же подсказать где вменяемая дока по ним? Никак не могу понять принцип его работы, он вроде должен удалять данные после определенного времени, а по факту это не происходит...
  • Сделал такую штуку. Не помогло. Также проверил данные по http и они оказались корректны. То есть при отобржении они ломаются. В случае jvm. Однако интересный момент: Если данные уже записаны в КХ, то при получении данных они получаются "битым", а если это же поле обернуть в toDateTime() то оно возвращается корректно. В свою очередь, если делать запрос вида select toDateTime('') без указания часового пояса, оно всегда будет не корректно потому, что происходит конвертация.
  • https://t.me/clickhouse_ru
    Таблица была создана с ттл или он потом прикручен?
  • https://t.me/clickhouse_ru
    Сразу создавал с TTL
  • https://t.me/clickhouse_ru
    Попробуй optimize final на нее. Но по идее таблицам с ттл делается периодический внеплановый мерж чтобы удалить старые данные.
  • https://t.me/clickhouse_ru
    Так работает. Получается постоянно нужно будет запускать optimize?
  • https://t.me/clickhouse_ru
    Попробуй посмотреть параметр merge_with_ttl_timeout, по идее это периодичность мержей для ттл
  • https://t.me/clickhouse_ru
    @RomanBulakh #108127 07:39 AM, 09 Jul 2019
    Спасибо, сейчас гляну.
  • https://t.me/clickhouse_ru
    Таки да, очень похоже на то что проблема в этом.
    merge_with_ttl_timeout — Minimal time in seconds, when merge with TTL can be repeated. Default value: 86400 (1 day).
    А я тестировал с часовыми интервалами.
  • А можно как-то пронумеровать строки через переменную, которую не на каждой строке нужно инкрементить?
  • https://t.me/clickhouse_ru
    не совсем понял, можно детальнее?
  • Можно ли пронумеровать интервалы посещения через case
  • Есть ли в КХ поддержка использования переменных, как в sql
  • https://t.me/clickhouse_ru
    @studnev #108133 07:58 AM, 09 Jul 2019
    кто то пробовал писать запросы к BigQuery через драйвер Clickhouse ?
  • https://t.me/clickhouse_ru
    @Mike_Er #108134 08:33 AM, 09 Jul 2019
    Коллеги, добрый день, пробую собрать 19.9.3.31 стэйбл - ошибкой падает
    https://pastebin.com/Pzres096
    собдираю под центось7, devtoolset8
  • https://t.me/clickhouse_ru
    @Alesapin #108135 08:39 AM, 09 Jul 2019
    а сабмодули в порядке? git submodule sync; git submodule update --init --recursive
  • https://t.me/clickhouse_ru
    да, все забирается
  • https://t.me/clickhouse_ru
    19.9.2.4 там тоже не собирается
  • https://t.me/clickhouse_ru
    clickhouse-debuginfo-19.9.2.4-1.el7.x86_64
    clickhouse-server-19.9.2.4-1.el7.x86_64
    clickhouse-cpp-rpm-1.2-2894.el7.x86_64
    clickhouse-server-common-19.9.2.4-1.el7.x86_64
    clickhouse-common-static-19.9.2.4-1.el7.x86_64
    clickhouse-client-19.9.2.4-1.el7.x86_64
    clickhouse-compressor-1.1.54378-3.el7.x86_64
    Отлично себя чувствуют, кстати.
  • https://t.me/clickhouse_ru
    это из репки алтинити или сам собирал?
    я только что проверил на центос7 + девтулсет8 и 3.31 и 2.4 не собираются с одной и той же ошибкой.
  • https://t.me/clickhouse_ru
    скриптами альтитнити сам собираю
  • https://t.me/clickhouse_ru
    @Alesapin #108142 09:25 AM, 09 Jul 2019
    У нас релиз gcc-8 собирается, на каждый комит тоже сборки есть.
  • https://t.me/clickhouse_ru
    @Alesapin #108143 09:25 AM, 09 Jul 2019
    странно
  • https://t.me/clickhouse_ru
    @Mike_Er #108144 09:26 AM, 09 Jul 2019
    Обещали свой родной теплый ламповый rpm -репо :) Ждем
  • https://t.me/clickhouse_ru
    девтулсет-8 обновился с неделю назад. возможно это сломало
  • https://t.me/clickhouse_ru
    @nivelium #108146 09:31 AM, 09 Jul 2019
    Всем привет! Кто-нибудь пробовал реализовывать хранилище anchor modellong/DV на ClickHouse?
  • @tyunyakov #108147 09:59 AM, 09 Jul 2019
    Всем привет! Столкнулись с тем, что данные в Matview(engine=ReplicatedSummingMergeTree) расходятся с теми, что лежат в основной таблице(engine=ReplicatedCollapsingMergeTree) (обе таблицы реплицируемые).
    Воспроизвести локально не получается.
    На проде, через какое-то время часть строк в matview суммируются в нули.
    Поэтому два вопроса:
    1. Подскажите, чем может быть вызвано расхождение? (Думали, что запрос в основную таблицу выполняется успешно, но падает в matview, но в логах ошибок нет)
    2. Если перевставить данные, то проблема уходит. Есть ли способ совершить "перевставку" данных из основной таблицы в matview только по определённым ключам, не пересоздавая её?

    Определения обеих таблиц могу скинуть в упрощённом варианте
  • https://t.me/clickhouse_ru
    @605181722 #108148 10:05 AM, 09 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @Sablast #108149 10:05 AM, 09 Jul 2019
    я не уверен, но ведь по идее у вас данные в матвью могут попадать не схлопнутыми, не может быть в этом проблемы?
  • https://t.me/clickhouse_ru
    @605181722 #108150 10:09 AM, 09 Jul 2019
    Салют парни).. Такой вопрос: пытаюсь запилить сбор сообщений из Kafka в КХ. У брокера самоподписанный серт, expired к тому же). Пытаюсь в конфиге КХ сделать: <enable_ssl_certificate_verification>false - вообще тишина в логах. Может кто сталкивался?
  • https://t.me/clickhouse_ru
    Помогло, спасибо.
  • https://t.me/clickhouse_ru
    Девтулсет откатите на одну ступеньку - все соберется
  • https://t.me/clickhouse_ru
    Они в Я всё на убунте собирают 😁
  • https://t.me/clickhouse_ru
    Да тут речь про сборку на центоси вроде был
  • @vstakhov #108155 10:36 AM, 09 Jul 2019
    а есть ли перевод статьи в топике на английском языке?
  • https://t.me/clickhouse_ru
    Не, тов. Сапин из разработчиков КХ и говорил про их CI внутренний
  • Хорошая идея, но мы суммируем данные при добавлении
    CREATE MATERIALIZED VIEW campaign_statistics (
    date Date,
    campaign_id String
    ) ENGINE = ReplicatedSummingMergeTree(
    '/clickhouse/tables/cluster/database/campaign_statistics',
    '{replica}',
    date,
    (date, provider_id, connection_id, campaign_id),
    8192
    ) AS
    SELECT date, campaign_id,
    sum(sign * impressions) AS impressions,
    sum(sign * clicks) AS clicks,
    FROM statistics
    WHERE (adgroup_id = 0)
    AND (ad_id = 0)
    AND (keyword_id = 0)
    GROUP BY date, campaign_id
  • Если запрос с SELECT вызывается ТОЛЬКО на ту порцию, которую мы вставляем, тогда да, проблема в этом
  • https://t.me/clickhouse_ru
    @Sablast #108159 10:41 AM, 09 Jul 2019
    А вставка в реплицированную таблицу идёт через дистриб?
  • https://t.me/clickhouse_ru
    @Sablast #108160 10:42 AM, 09 Jul 2019
    Нет там нигде проблемы что ключ партицирования задан неудачно?
  • Исходя из доки A SELECT query can contain DISTINCT, GROUP BY, ORDER BY, LIMIT... Note that the corresponding conversions are performed independently on each block of inserted data. For example, if GROUP BY is set, data is aggregated during insertion, but only within a single packet of inserted data. The data won't be further aggregated

    Видимо, при вставке идёт GROUP BY только на ту часть, которую мы вставляем. Не очень понятно, что такое each block of inserted data
  • https://t.me/clickhouse_ru
    Блок это по дефолту ~миллион строк. Любой инсерт больше этого это несколько блоков
  • Нет
  • Спасибо, проверим
  • @J0hnSmitt #108165 11:37 AM, 09 Jul 2019
    подскажите, как правильно переместить реплику с одного сервера на другой?
    конфигурация 2 шарда по 2 реплики, нужно у одного из шардов переместить одну реплику на другую машинку
  • https://t.me/clickhouse_ru
    MV & replicated deduplication · Issue #5274 · yandex/ClickHouse

    When I upload unique rows they are deduplicated because MV query calculates them into the same rows. CREATE TABLE testNull (date Date,id String) ENGINE = Null; CREATE TABLE testNoAggregate (date Da...

  • https://t.me/clickhouse_ru
    Сделать как еще одну реплику.

    Создать таблицы на новом сервере. Данные реплицирует кх. Обновить описание кластера. Затем на удаляемой реплике дропнуть таблицы.
  • https://t.me/clickhouse_ru
    @den_crane #108168 11:45 AM, 09 Jul 2019
    Если реполикейтид с зукипером таблицы.
  • https://t.me/clickhouse_ru
    Можно удалить эту реплику и создать пустую таблицу на новой машинке. Возможно, можно как-то быстрее.
  • https://t.me/clickhouse_ru
    @111093495 #108170 11:54 AM, 09 Jul 2019
    Подскажите пожалуйста, как лучше:
    есть ~50 таблиц в mysql (500+ колонок), которые относятся к одному домену, и могут быть распрямлены в одну таблицу...

    Как лучше их сохранить в КХ?

    1. Тоже 50 таблиц?
    2. В одну большую таблицу с много колонок?
    3. В одну таблицу с типом и key/value массивами?

    или может ещё какой способ есть?
    Данные потом нужны для анализа и вприницпе могут понадобится все, какие именно зарание не известно.

    (+ возможны частые изменения, на добавление новых колонок)
  • https://t.me/clickhouse_ru
    2
  • https://t.me/clickhouse_ru
    @111093495 #108172 11:58 AM, 09 Jul 2019
    а не будет проблем, с тем что слишком много колонок, если больше 1000 потом будет?
    если не ошибаюсь там же по 2 файла на колонку, отводится, и много null полей на самом деле.

    насколько 3тий вариант хуже?
    просто он сразу позволяет не заморачиватся насчёт не всех данных, и добавления новых колонок
  • https://t.me/clickhouse_ru
    Ну если больше 500 колонок то можно начать неосновные складывать в массивы. Массивы медленнее чем просто колонки.
  • https://t.me/clickhouse_ru
    @111093495 #108174 12:11 PM, 09 Jul 2019
    ну я так и думал в 3тем варианте.. Немного опишу юз кейс.
    У нас есть кредитная политика, и в её рамках выполняется различное количество разных экшенов для получения решения о десижене(в зависимости от условий каждый раз разный набор). Сейчас результаты всех экшенов разбиваются на cp_* таблицы.

    Ну а в КХ я думал промежуточные результаты этих экшенов скидывать в к/v массивы.
  • https://t.me/clickhouse_ru
    @111093495 #108175 12:21 PM, 09 Jul 2019
    а скажите пожалуйста, чем плохо 50 таблиц?
  • https://t.me/clickhouse_ru
    @blinkovivan #108176 12:36 PM, 09 Jul 2019
    Не упустите последнюю возможность зарегистрироваться на ClickHouse митап в Минске послезавтра: https://yandex.ru/promo/metrica/clickhouse-minsk
    Link

    Приглашаем технических специалистов на митап по ClickHouse. Разработчики системы расскажут о новых функциях и планах, а пользователи — о собственном опыте.

  • https://t.me/clickhouse_ru
    None
  • https://t.me/clickhouse_ru
    просто в 50 раз больше партиции и zk трафика. Может вам и нормально, у вас наверное не будет 1млрд ивентов в час.
  • https://t.me/clickhouse_ru
    @111093495 #108179 01:10 PM, 09 Jul 2019
    спасиба
  • https://t.me/clickhouse_ru
    @massimovs #108180 01:47 PM, 09 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @ployd #108181 01:47 PM, 09 Jul 2019
    Господа, а TTL с replacing MT правильно работает?

    Может ли быть такое, что сначала удалится новая строка, а старая (со старой, но подходящей датой) — останется?
  • https://t.me/clickhouse_ru
    @zahnik #108182 01:49 PM, 09 Jul 2019
    Всем привет. Есть параметр max_memory_usage. Что делать, если запускается одновременно несколько запросов, которые не превышают значение этого параметра по отедльности, но вместе забивают всю оперативу и убивают сервак?
  • https://t.me/clickhouse_ru
    max_memory_usage_for_all_queries
  • https://t.me/clickhouse_ru
    @zahnik #108184 01:51 PM, 09 Jul 2019
    Такое все-таки есть?
  • https://t.me/clickhouse_ru
    @zahnik #108185 01:51 PM, 09 Jul 2019
    Указывается там же где и max_memory_usage?
  • https://t.me/clickhouse_ru
    @zahnik #108186 01:52 PM, 09 Jul 2019
    Нужно КХ рестартить после изменения параметра?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    нет
  • https://t.me/clickhouse_ru
    @zahnik #108189 01:57 PM, 09 Jul 2019
    Спасибо
  • большое спасибо, это наш кейс 👍
  • https://t.me/clickhouse_ru
    @Demelor_Shebr #108191 02:22 PM, 09 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @Demelor_Shebr #108192 02:38 PM, 09 Jul 2019
    Привет! Подскажите, как в отдельный столбец разместить размер итоговой выборки (обычно делается через count(*) в классических базах).
    Нужно для реализации пагинации на клиенте. Пробую по-привычке сделать - ругается на отсутствие группировок.
  • https://t.me/clickhouse_ru
    @AlexAkulov #108193 02:41 PM, 09 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @AlexAkulov #108194 02:44 PM, 09 Jul 2019
    Всем привет! Сегодня заметил у себя в папках detached партиции с префиксами unexpected_ и ignored_
    Подскажите, что это означает? Как они у меня появились?
  • https://t.me/clickhouse_ru
    никак, и в классических базах тоже никак. Вы что-то путаете.

    можно сделать with но это смертельно для перфоманса
    with (select count() from t) as c select *, c from t limit 10
    ну и пагинация вообще не про КХ
  • https://t.me/clickhouse_ru
    @Demelor_Shebr #108196 02:44 PM, 09 Jul 2019
    Ок, спасибо
  • https://t.me/clickhouse_ru
    ...ignore это вообще нормально -- это парты которые были смержены в более крупные, помечены inactive, ожидание 8 минут перед удалением + спонтанный ребут КХ, нашли крупный парт, проверили, нашли мелкий -- уже покрыт смерженным хорошим крупным-> mv _ignore

    unexpected_ это хуже надо искать в логе КХ сообщения про эти парты. Есть в парте dict файл? Есть в таблице LowCardinality поля?
  • @ShiawasenaHoshi #108198 02:55 PM, 09 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @AlexAkulov #108199 02:56 PM, 09 Jul 2019
    dick файл не вижу, а LowCardinality есть
  • https://t.me/clickhouse_ru
    @AlexAkulov #108200 02:56 PM, 09 Jul 2019
    У меня на одной реплике всё ок, а на второй куча unexpected_
  • https://t.me/clickhouse_ru
    без сообщений в логах можно только гадать, вы проверьте у вас кол-во партов на репликах совпадает или нет, возможно вот этих unexpected_ не хватает и их надо сфетчить с реплики

    возможно случается вот это https://github.com/yandex/ClickHouse/issues/5790
    и сразу как последствие вот это https://github.com/yandex/ClickHouse/issues/5789
  • https://t.me/clickhouse_ru
    @AlexAkulov #108203 03:08 PM, 09 Jul 2019
    А как сфетчить с реплики? Скопировать и сделать ATTACH? Или есть другой способ?
  • https://t.me/clickhouse_ru
    @Vsevolodlukovsky #108204 03:28 PM, 09 Jul 2019
    Всем привет. Кто-нибудь знает, как работать с результатами, получаемыми модификатором [with totals]?
  • https://t.me/clickhouse_ru
    @madm1ke #108205 03:33 PM, 09 Jul 2019
    Привет!

    А как работает дедупликация в MergeTree, если вставка исходно идет в Distributed-таблицу, а не напрямую в MergeTree? Есть ли разница, или нюансы какие-то? Что если в Ditributed-таблицу на разных серверах сделать несколько вставок при неработающем ZK? Есть непроверенное подозрение, что это приводит к игнорированию проверки хешей блоков.
  • https://t.me/clickhouse_ru
    @massimovs #108206 03:40 PM, 09 Jul 2019
    всем привет. А почему где-то есть InsertQuery, а где-то нет? в обоих случаях инсерты есть
    SELECT event FROM system.events where event = 'InsertQuery'
  • https://t.me/clickhouse_ru
    @katofon #108207 03:41 PM, 09 Jul 2019
    Всем привет. Может быть кто-то подскажет по следующему вопросу. Есть гигансткая (2 000 000 000 записей) таблица с данными ReplicatedMergeTree и три репликации кликхауса. Как правильно создать материальное представление для этой таблицы?
    Если делаю через populate, то данные дублируются и в материальном представлении их становится больше, чем в основной таблице.
    Пробовала еще создавать без populate таблицы, а потом на одной из реплик делать select из основной таблицы и insert в материальное представление - в итоге получаю ошибку
    Code: 76. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Cannot open file /tmp/tmp24358hjpfba, errno: 24, strerror: Too many open files
  • @181568392 #108208 03:42 PM, 09 Jul 2019
    ЕСТЬ МАНУАЛ КАК ПОДНЯТЬ КЛИКХАУС????
  • https://t.me/clickhouse_ru
    ClickHouse DBMS

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

  • @181568392 #108210 03:43 PM, 09 Jul 2019
    На русском языке есть?
  • @181568392 #108211 03:43 PM, 09 Jul 2019
    Это же рф продукт
  • https://t.me/clickhouse_ru
    @Vsevolodlukovsky #108212 03:43 PM, 09 Jul 2019
    язык там поменять можно
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    сложно тебе будет в it...
  • я понимаю что в it все н англ, но как может российский продукт иметь только мануал на англ языке
  • @181568392 #108216 03:46 PM, 09 Jul 2019
    очень странно
  • https://t.me/clickhouse_ru
    Почему нет?
  • https://t.me/clickhouse_ru
    странное заявление
  • https://t.me/clickhouse_ru
    причём здесь тоже отсуствует InsertQuery
    https://clickhouse.yandex/docs/en/operations/system_tables/#system_tables-events
  • https://t.me/clickhouse_ru
    Если продукт ориентирован на всех, а не только на Россию (что нередко в IT), и ресурсы разработчиков ограничены (они всегда ограничены), то логично выбрать только один язык для документации и это обычно английский, т.к. он наиболее распространен в мире. Но, безусловно, приятно, когда документация есть и на русском, хотя, по моим наблюдениям, документация у ClickHouse на английском содержит меньше неточностей :)
  • https://t.me/clickhouse_ru
    я тоже считаю что российский продукт должен быть написан на русском языке. Например на Фокале или Драконе. А то развели понимаешь, исходный код на англ.
  • https://t.me/clickhouse_ru
    @nicname #108223 04:04 PM, 09 Jul 2019
    есть же 1С, зачем Фокал
  • изыйди
  • https://t.me/clickhouse_ru
    дедупликиция только для replicated движков. Естественно Distributed должна посылать одно и тоже и в таком-же батче в тот-же шард, поэтому например rand как ключ шардирования использовать нельзя.
  • https://t.me/clickhouse_ru
    Прекратите отрицать всё новое!
  • фокал и 1с - это изык демонов, потому нет
  • https://t.me/clickhouse_ru
    поддерживаю
  • https://t.me/clickhouse_ru
    где-то? это о чем?
  • https://t.me/clickhouse_ru
    @vitroot #108230 04:08 PM, 09 Jul 2019
    наизобретали ненужных велосипедов и страдают
  • https://t.me/clickhouse_ru
    на кластере из трёх реплик, на двух нодах есть, на одной отсуствует
  • https://t.me/clickhouse_ru
    нет, а зачем? возьмите rollup https://t.me/clickhouse_ru/66894
  • https://t.me/clickhouse_ru
    а инсерты туда идут в ту одну?
  • https://t.me/clickhouse_ru
    @massimovs #108234 04:10 PM, 09 Jul 2019
    да
  • https://t.me/clickhouse_ru
    ❤️ спасибо!
  • https://t.me/clickhouse_ru
    @vmoshikov #108236 04:11 PM, 09 Jul 2019
    А я могу создать MV на основе двух других MV?
  • https://t.me/clickhouse_ru
    Естественно, ключ фиксированный.
    Но вот я смотрю стату - и вижу иногда дубли. Причем есть опять же неподтвержденное ощущение, что иногда отправка на один шард (видимо, когда данные уходят в локальную реплику) из Distributed - проходит, а на остальные - нет.

    То есть, сейчас три шарда. Обычно - на всех трех данные правильные. Иногда возникают дубли сразу на всех трех шарда. А иногда (чуть реже) - дубли только на двух шардах из трех. Найти сходу кейс, когда проблемный только один шард из трех - не получилось вообще.
  • https://t.me/clickhouse_ru
    detach table / attach table скачивает недостающие куски, еще есть system sync replica -- но я не пользовался.
  • https://t.me/clickhouse_ru
    как вы повторяете insert при ошибке?
  • https://t.me/clickhouse_ru
    @madm1ke #108240 04:20 PM, 09 Jul 2019
    вставка в Distributed таблицу следующей по списку ноды. Запрос вроде в точности одинаковый - http’шный интерфейс используется.
  • https://t.me/clickhouse_ru
    вроде -- это хорошо.
  • https://t.me/clickhouse_ru
    @madm1ke #108242 04:22 PM, 09 Jul 2019
    записи сверяли - соответствуют в точности, все столбцы.
  • https://t.me/clickhouse_ru
    @madm1ke #108243 04:22 PM, 09 Jul 2019
    тело запроса генерится один раз, при ошибке оно же отправляется на другую машинку.
  • https://t.me/clickhouse_ru
    нет. MV не каскадируются. Вешайте все MV на исходную таблицу.
  • https://t.me/clickhouse_ru
    а заливка в несколько потоков? может больше 100 партов создается между повторами? Какой у таблицы partition by ?
  • https://t.me/clickhouse_ru
    один запрос с одной исх машинки в минуту. Шард для запроса выбирается случайно. Машинок - пара десятков. Количество запросов сверяли, все как задумано.
    PARTITION BY toMonday(event_date)
    SETTINGS replicated_deduplication_window = 1000, replicated_deduplication_window_seconds = 864000, index_granularity = 8192
  • https://t.me/clickhouse_ru
    @madm1ke #108247 04:29 PM, 09 Jul 2019
    Повтор на следующую ноду при ошибке - без паузы. Соответственно, в реальности это пара секунд на выполнение запроса.
  • https://t.me/clickhouse_ru
    зачем вам MV ? Вы его хотите сделать на всех 3х репликах?
    populate вам не подойдет наверное.

    У вас есть какая-то date или datetime в таблице. Сделайте MV where date >= '2019-07-10' завтра туда начнут попадать новые данные, затем начинайте доливать в MV старые данные вручную insert-м маленькими порциями (по дню/по часу).
  • https://t.me/clickhouse_ru
    каждый запрос меньше 1M строк - меньше одного блока. С учетом distr - это примерно 60 блоков в минуту. в dedup window укладывается с огромным запасом.
  • https://t.me/clickhouse_ru
    3 шарда и пара десятков машинок? таблица репликейтид?
  • https://t.me/clickhouse_ru
    @madm1ke #108251 04:35 PM, 09 Jul 2019
    пара десятков машинок исходного сервиса, который пишет логи
  • https://t.me/clickhouse_ru
    @madm1ke #108252 04:35 PM, 09 Jul 2019
    а так - 3 шарда по 2 реплики, все одинаковые.
  • https://t.me/clickhouse_ru
    таблица репликейтид?
  • https://t.me/clickhouse_ru
    @madm1ke #108254 04:36 PM, 09 Jul 2019
    конечно
  • https://t.me/clickhouse_ru
    я бы создал копии таблиц и попробовал бы заливать тестовые данные повторяя одно и тоже и посмотрел есть сообщения already exists; ignoring it.
  • https://t.me/clickhouse_ru
    @madm1ke #108256 04:38 PM, 09 Jul 2019
    Репликация через ReplicatedMergeTree. В настройках кластера internal_replication=true
  • https://t.me/clickhouse_ru
    @madm1ke #108257 04:40 PM, 09 Jul 2019
    это поделаем, да.
    Проблемы явно происходят в момент недоступности ZK - по крайней мере, почти всегда при дублях - были проблемы с ZK. Странно, что я сразу этого не указал.
  • https://t.me/clickhouse_ru
    @den_crane #108258 04:41 PM, 09 Jul 2019
    я не очень понимаю как distibuted пилит insert на куски, и я видел странные штуки, когда distibuted разбивала insert на 1000 мелких кусочков, возможно в этом проблема
  • https://t.me/clickhouse_ru
    @madm1ke #108259 04:42 PM, 09 Jul 2019
    проверял. У меня идентифицируются исходные блоки. Все строго - либо блок, попавший на конкретный шард - задублировался целиком, либо записался правильно. Никаких частичных дублей.
  • https://t.me/clickhouse_ru
    @madm1ke #108260 04:43 PM, 09 Jul 2019
    значит вряд ли бьется на мелкие части, и потом сходит с ума.
  • https://t.me/clickhouse_ru
    ну distibuted пытается в другую реплику запихать в этом случае, надо читать лог что там происходит.
  • https://t.me/clickhouse_ru
    @madm1ke #108262 04:45 PM, 09 Jul 2019
    я вижу в query_log результатом insert’а в distributed таблицу - ошибку table in read only mode, например. И теперь неясно, данные-то в Distributed ушли, и потом попробуют вставиться, или нет. Пока кажется - что ушли, и потом, с учетом того, что они же оказались в другой distributed-таблице, и все они потом одновременно «включились», когда ZK стал доступен - не проверились на дубли.
    Такой race condition.
  • https://t.me/clickhouse_ru
    Спасибо! Поняла
  • https://t.me/clickhouse_ru
    В общем, кажеся это случлось из-за того, что у париций изменились пермишены.
    Посоны, никогда не меняйте пермишены в /var/lib/clickhouse/backup, потому-что там хранятся хардлинки, а разные хардлинки не могут иметь разные пермишены.
  • https://t.me/clickhouse_ru
    @den_crane #108265 05:04 PM, 09 Jul 2019
    Inodes store information about files and directories (folders), such as file ownership, access mode (read, write, execute permissions), and file type
  • https://t.me/clickhouse_ru
    @AlexAkulov #108266 05:09 PM, 09 Jul 2019
    ну теперь я тоже об этом знаю)
  • https://t.me/clickhouse_ru
    @den_crane #108267 05:11 PM, 09 Jul 2019
    ну и мы мониторим detached заббиксом и я начинаю разбираться сразу как-только прокукарекает
  • https://t.me/clickhouse_ru
    @den_crane #108268 05:12 PM, 09 Jul 2019
    Daniel in ClickHouse не тормозит

    может, кому-то пригодится #!/bin/bash dtched=$(find /var/lib/clickhouse/data/click/*/detached/* -type d 2> /dev/null | wc -l) echo $dtched

  • https://t.me/clickhouse_ru
    @AlexAkulov #108269 05:17 PM, 09 Jul 2019
    Ну не ставить же заббикс ради этого) Может в КХ такую метрику будет полезно добавить?
  • https://t.me/clickhouse_ru
    @den_crane #108270 05:19 PM, 09 Jul 2019
    system.detached_parts
  • https://t.me/clickhouse_ru
    @AlexAkulov #108271 05:20 PM, 09 Jul 2019
    👍спс!
  • https://t.me/clickhouse_ru
    @Antava #108272 05:48 PM, 09 Jul 2019
    Добрый вечер всем. Есть две таблицы идентичные по структуре, в первой таблице 2,5млрд записей во второй 10млн, пытаюсь сделать ANY LEFT JOIN по колонке указанной в ORDER BY, не могу заставить запрос использовать индекс, что делаю не так?
  • https://t.me/clickhouse_ru
    CH умеет только один тип join - HashJoin. HashJoin не использует индексы. И правая таблица при HashJoin целиком помещается в память.

    MergeJoin -- обе таблицы отсортированы по ключу объединения запланирован на.
  • https://t.me/clickhouse_ru
    @Antava ↶ Reply to #108273 #108274 06:21 PM, 09 Jul 2019
    Спасибо, тогда остается IN c 10 млн ключей (
  • https://t.me/clickhouse_ru
    @den_crane #108275 06:25 PM, 09 Jul 2019
    ну 10млн. может и немного для join. У меня бывает и 400млн. джойнится только долго и памяти два вагона нужно.
    in умеет по индексу, но не будет при 10млн., там после 100тыс начинается хеш.
  • https://t.me/clickhouse_ru
    @mynever #108276 06:27 PM, 09 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @Antava #108277 06:29 PM, 09 Jul 2019
    У меня только IN за приемлемое время отрабатывает.
  • https://t.me/clickhouse_ru
    @den_crane #108278 06:48 PM, 09 Jul 2019
    зависит от версии КХ, возможно вам надо поля ограничить запросом

    вместо a join b using x
    написать a join (select x,f1,f2 from b) using x
  • @51775822 #108279 09:01 PM, 09 Jul 2019
    Доброй ночи. Обнаружил неожиданный стектрейс при вставке.
    Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = Assertion violation: std::char_traits<char>::length(rPath.data()) == rPath.size() in file "../contrib/poco/Foundation/src/File.cpp", line 46 (version 19.9.2.4 (official build))Уменьшил размер вставляемой группы с 900 000 до 400 000 элементов - не помогло. Уменьшил до 100 000 - помогло.
  • @51775822 #108280 09:03 PM, 09 Jul 2019
    В месте падения происходит со стороны, вроде, безобидная проверка: poco_assert(std::char_traits<char>::length(rPath.data()) == rPath.size());
  • @639450053 #108281 09:22 PM, 09 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    есть поля CODEC(Delta ?

    https://github.com/yandex/ClickHouse/issues/5847
  • Поля со сжатием?
  • https://t.me/clickhouse_ru
    show create table покажите
  • @51775822 #108285 09:32 PM, 09 Jul 2019
    Delta, Lz4
  • https://t.me/clickhouse_ru
    короче уберите Delta у Date и других Int16, Int8

    https://github.com/yandex/ClickHouse/issues/5756#issuecomment-506649391
    https://github.com/yandex/ClickHouse/issues/5847
  • @51775822 #108287 09:45 PM, 09 Jul 2019
    Спасибо, посмотрю в эту сторону. Если правильно помню, то сжимаю только тип UInt32. Могу, конечно, ошибиться. Перепроверю. Даже не рассчитывал получить ответ среди ночи. Ещё раз спасибо.
  • https://t.me/clickhouse_ru
    @vmoshikov #108289 09:51 PM, 09 Jul 2019
    /spam
  • @den_crane @Demelor cross join (select count () from t) намного производительнее, чем with count()
  • https://t.me/clickhouse_ru
    с чего бы вдруг? with один раз вычисляется в константу в КХ
  • @ViacheslavNefedov #108295 10:08 PM, 09 Jul 2019
    With разве не отдельно на каждую строку будет считаться?
  • https://t.me/clickhouse_ru
    @den_crane #108296 10:12 PM, 09 Jul 2019
    КХ не умеет коррелировать, и with не умеет cte. И вычисляется в константу
  • @ViacheslavNefedov #108297 10:45 PM, 09 Jul 2019
    Фигово. А я думал, что вчера нашел хороший способ делать промежуточные вычисления не выводя их результаты...
  • 10 July 2019 (240 messages)
  • https://t.me/clickhouse_ru
    /spam
  • @Ru6aKa #108301 06:10 AM, 10 Jul 2019
    добрый день, подскажите как в КХ вставить много данных у которых одно поле растет серией, типа как в постгресе
    INSERT INTO bins (id)
    SELECT g.id
    FROM generate_series(1, 10000) AS g (id) ;
  • https://t.me/clickhouse_ru
    Select * from system.numbers
  • https://t.me/clickhouse_ru
    @suxxorz #108303 06:23 AM, 10 Jul 2019
    Привет, возможно такой глупый вопрос, но каким клиентом для Kafka кто пользуется или там без клиента можно обойтись?
  • https://t.me/clickhouse_ru
    @suxxorz #108304 06:31 AM, 10 Jul 2019
    Вообщем, кто-нить использует такую связку PHP+Kafka+CH?
  • https://t.me/clickhouse_ru
    Использует
  • @Ru6aKa #108306 06:36 AM, 10 Jul 2019
    а как сгенирировать например серию от 345627 до 5324563
  • https://t.me/clickhouse_ru
    @suxxorz #108307 06:36 AM, 10 Jul 2019
    @stokwel Не поделитесь архитектурой этой связки?

    В моем случае, уже есть сервер на PHP старенький для статистики был, использовать Node, Go не вариант. Я сделал так:

    1. Сервер: получает запросы от пользователей, обрабатывает и валидирует.
    2. Сервер: здесь находится Kafka
    3. Сервер: здесь находится КХ

    PHP, точнее первый сервер не может обработать запросы, крашится с socket unavailable ()Resource temporarily unavailable) while connecting to upstream).
    Как можно правильно собрать все это?

    З.Ы. в качестве клиентской библиотечки используется: https://github.com/weiboad/kafka-php
    GitHub - weiboad/kafka-php: kafka php client

    kafka php client. Contribute to weiboad/kafka-php development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    select number from numbers(345627, toUInt64(5324563 - 345627));
  • @Ru6aKa #108309 06:43 AM, 10 Jul 2019
    спасибо
  • https://t.me/clickhouse_ru
    У нас используется https://github.com/arnaud-lb/php-rdkafka
    GitHub - arnaud-lb/php-rdkafka: Production-ready, stable Kafka client for PHP

    Production-ready, stable Kafka client for PHP. Contribute to arnaud-lb/php-rdkafka development by creating an account on GitHub.

  • @okarasev #108311 07:46 AM, 10 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @Mike_Er #108312 08:19 AM, 10 Jul 2019
    Коллеги, доброе утро. Пытаюсь потестировать 19.9.3.31-stable под центосью - не запускается вообще. Детали и бектрэйсы кор https://pastebin.com/rBgqb55p
  • https://t.me/clickhouse_ru
    @vbuttermaan #108313 08:28 AM, 10 Jul 2019
    Доброе утро, коллеги!
    Как всегда к вам за советом, с клиническим случаем: сливал 36 таблиц в одну, движок ReplicatedReplacingMergeTree, структура у всех одинакова, партиции по часам, одинаковый набор, слив делал через FETCH PARTITION/ATTACH PARTITION, в итоге ~ 150млрд строк.
    Собственно проблема: по завершению в system.replication_queue скопилось 13 сообщений вида:
    last_exception: Code: 49, e.displayText() = DB::Exception: Part 792e8294a0838cb07c6732e893c2149c_24_36_1 intersects next part 792e8294a0838cb07c6732e893c2149c_29_29_0_778 (state Committed). It is a bug. (version 19.5.4.22 (official build))
    postpone_reason: Not executing log entry for part 792e8294a0838cb07c6732e893c2149c_24_36_1 because source parts size (894.32 MiB) is greater than the current maximum (391.92 MiB)
    Или
    last_exception: Code: 49, e.displayText() = DB::Exception: Part 3e99e9aefcded98aa1ae5bcc1cd79c6b_0_12_1 intersects next part 3e99e9aefcded98aa1ae5bcc1cd79c6b_5_5_0_1096 (state Committed). It is a bug. (version 19.5.4.22 (official build))
    postpone_reason: Not executing log entry for part 3e99e9aefcded98aa1ae5bcc1cd79c6b_0_12_1 because source parts size (1.72 GiB) is greater than the current maximum (1.70 GiB).
    Пробовал делать DETACH/ATTACH таблицы — все те же ошибки вернулись.
    Подскажите, что можно сделать чтобы исправить?
    Селект из таблицы работает, но мерджи постоянно повторяют попытки слить и LA существено прыгает.
  • https://t.me/clickhouse_ru
    Не выдерживают PHP FPM socket-ы, топик создается, данные не летят, как вы с этим справлялись?
  • https://t.me/clickhouse_ru
    @Antava #108315 08:46 AM, 10 Jul 2019
    Доброго дня всем, туплю, подскажите можно каким-то оброзом сослаться в MV на кусок вставляемых данных. Типо NEW.column ?
  • https://t.me/clickhouse_ru
    Так в МВ ты только вставляемые и видишь
  • https://t.me/clickhouse_ru
    @Antava #108318 08:49 AM, 10 Jul 2019
    это понятно, как к примеру сделать join вставляемых данных и данных из таблицы куда всталяется ?
  • https://t.me/clickhouse_ru
    @Antava #108319 08:50 AM, 10 Jul 2019
    не могу сообразить
  • https://t.me/clickhouse_ru
    @Dobroff #108320 08:56 AM, 10 Jul 2019
    Joined.
  • @sergey_golovorez #108321 08:56 AM, 10 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @alexonrails #108322 08:59 AM, 10 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @alexonrails #108323 09:02 AM, 10 Jul 2019
    Добрый день. никто не пробовал вставлять данные в CH через pandas to_sql? интересует сценарий когда таблица еще не заведена. для psql/mysql/etc to_sql сам создает таблицу если ее нет, а в случае с CH происходит:
    sqlalchemy.exc.CompileError: No engine for table
    очевидный рецепт просто создать таблицу заранее, но как-то не элегантно
  • https://t.me/clickhouse_ru
    Мне кажется это так себе идея
  • https://t.me/clickhouse_ru
    @Antava ↶ Reply to #108324 #108325 09:07 AM, 10 Jul 2019
    хочу проверить что бы MV вставила только уникальные записи, для основной таблицы уникальность не важна
  • https://t.me/clickhouse_ru
    Делай MV на ReplacingMergeTree и выбирай из нее с учетом того что дубликаты могут быть.
    Других способов обеспечить уникальность в КХ насколько я знаю нет.
  • https://t.me/clickhouse_ru
    Видимо не такой у нас поток данных, высокая нагрузка у нас на go
  • https://t.me/clickhouse_ru
    @kmarenov #108328 09:24 AM, 10 Jul 2019
    Подскажите, пожалуйста, какая версия наиболее стабильная сейчас? Собираемся обновляться с 18.14.15
  • https://t.me/clickhouse_ru
    19.9.2.4 работает хорошо у нас
  • https://t.me/clickhouse_ru
    @kmarenov #108330 09:30 AM, 10 Jul 2019
    Спасибо
  • https://t.me/clickhouse_ru
    @alexander_trofimov #108331 09:31 AM, 10 Jul 2019
    А есть ли какое-то общее правило по выбору версии?
    Какая версия используется на серверах Яндекса и какая в платном облаке?
    Когда планируется следующий стабильный релиз?
  • https://t.me/clickhouse_ru
    @newink #108332 09:32 AM, 10 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    мы берем стабильные версии, собриаем и прогоняем на своих тестах и вычислениях. Если все ок - запускаем в боевое окружение. В основном - если в релизе есть какие-то новые интересные фичи либо закрываются баги, с которыми все же столкнулись. Скорее всего это не лучший кейс по использованию клика)
  • https://t.me/clickhouse_ru
    Спасибо! 🙂
  • https://t.me/clickhouse_ru
    @alexander_trofimov #108335 09:35 AM, 10 Jul 2019
    Суперинтересно было бы еще комментарий от авторов КХ из Яндекса услышать, конечно 🙂
  • https://t.me/clickhouse_ru
    @artilligence #108336 09:44 AM, 10 Jul 2019
    Коллеги, всем доброго времени суток. Прежде всего, хочу выразить благодарность всем, кто занимается разработкой этого инструмента, а так же тратит свое время на помощь сообществу.

    Нагуглил про относительно недавнюю возможность clickhouse - задавать строке тип LowCardinality. К сожалению, не нашел в доке описания данного типа.
    Кто может сказать, какое количество уникальных значений максимально для данного типа, позволяющее дать более выгодную оптимизацию, чем подключение внешнего словаря или использование обычной строки?
  • @mboitsov #108337 09:50 AM, 10 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    тут эмпирически вывели след. формулу
    если вы сможете на память сказать как минимум 50% уникальных записей, то LowCardinality даст преимущество над String
  • https://t.me/clickhouse_ru
    @artilligence #108339 09:54 AM, 10 Jul 2019
    зависит сильно от памяти конкретного человека =)
    Если более конкретно, до 20 значений допустимо? или до 50, например?
  • https://t.me/clickhouse_ru
    вроде как до 1к считается ок на большом кол-ве данных. (Но я не проверял)
  • https://t.me/clickhouse_ru
    @artilligence #108341 09:56 AM, 10 Jul 2019
    Понял вас, спасибо!
  • https://t.me/clickhouse_ru
    @andrew_kole #108342 10:08 AM, 10 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @vmoshikov #108344 10:55 AM, 10 Jul 2019
    Немного продвинулся и вопрос немного проще (возможно)

    В первой таблице есть 3 вариации (по параметрам) строки из первой таблицы.

    1) parm1.example.com/path_url
    2) example.com/param2/path_url
    3) https://example.com/path_url

    Во второй табличке хранится path_url и его ID

    Я хочу связать данные из первой табличики (предварительно провести группировки) со второй (добавить ID) и положить в MV, из которой я буду забирать данные по ID (быстрее же)
  • https://t.me/clickhouse_ru
    В презентащии от Я были цифры до 1-10 миллионов.
    У меня успешно работает с ~1млн уникальных значений
  • https://t.me/clickhouse_ru
    @blind_oracle #108346 10:59 AM, 10 Jul 2019
    В Apache Kudu, которая очень отдаленно напоминает КХ, словарный кодек вообще дефолтный для стрингов и автоматом откатывается на обычный если очень много уникальных значений.
    КХ вроде идет в ту же сторону.
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #108347 11:00 AM, 10 Jul 2019
    подскажите, а как правильно сделать партиционирование по часам?
  • https://t.me/clickhouse_ru
    @blind_oracle #108348 11:03 AM, 10 Jul 2019
    toStartOfHour(...)
  • https://t.me/clickhouse_ru
    Апну
  • https://t.me/clickhouse_ru
    @Randomazer #108350 11:05 AM, 10 Jul 2019
    Привет, можно ли на лету сделать временную таблицу и туда сохранить данные запроса и потом использовать его в другом JOIN?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Та же фигня в т.ч. при сборке gcc-9.1 после ручного фикса проблем с gcc-8.3.1+
    Есть подозрение что этот коммит поломал: https://github.com/yandex/ClickHouse/commit/edc0db3367111b857d273bb4282bd9b05636f418
    Merge pull request #5828 from yandex/date-lut-fix-uct · yandex/ClickHouse@edc0db3

    Fix wrong resolution of time zone name. (cherry picked from commit dc59b245f10e69330ddf45f08308e26ee48524f3)

  • https://t.me/clickhouse_ru
    все так. путь к файлу с tz неверный
  • https://t.me/clickhouse_ru
    проблема в относительных симлинках.
    /etc/localtime в редхатах указывает на ../usr/share/...
    если сделать абсолютный симлинк - то взлетает.
  • https://t.me/clickhouse_ru
    Оказывается в мастере это уже пофикшено.

    https://github.com/yandex/ClickHouse/commit/74b245cfd4001375db48958c853a250d4e082407#diff-6592c12822391e0d13272bbaf9e1a6ff
  • https://t.me/clickhouse_ru
    @blind_oracle #108356 11:47 AM, 10 Jul 2019
    @Alesapin Товарищи, а вы не могли бы этот ☝️коммит бэкпортнуть в 19.9 бранч и выпустить хотфикс релиз?
  • https://t.me/clickhouse_ru
    @blind_oracle #108357 11:47 AM, 10 Jul 2019
    а то по сути 19.9.3 на всех редхатах сейчас неюзабелен по умолчанию
  • https://t.me/clickhouse_ru
    через rsyslog полет нормальный, только как решение, нормальное?
  • https://t.me/clickhouse_ru
    Сейчас посмотрю
  • https://t.me/clickhouse_ru
    Спасибо!
  • https://t.me/clickhouse_ru
    спасибо, будем ждать фикс
  • https://t.me/clickhouse_ru
    @zaigraeff #108365 12:23 PM, 10 Jul 2019
    Привет! Друзья, подскажите, пожалуйста, куда копать.
    Хочу органиовать в кликхаусе храненые сырых данных из логов с пользовательскими метриками.
    У разных событий разное число полей с данными, проблема очень похожа на то, что решали баду в этом докладе https://habr.com/ru/company/oleg-bunin/blog/442616/ (хранение данных в такой в структуре: есть поле с вектором названий событий и поле с вектором даных по этим названиям), но, если верно понял, немного теряется суть самого кликхауса, как колоночной БД. Как правильно организовывать хранение сырых данных в кликхаус в таких условиях?
  • https://t.me/clickhouse_ru
    @zaigraeff #108366 12:23 PM, 10 Jul 2019
    Сейчас как хранилище использую постгрес, сырые данные в json храню. Пока такое решение устраивает, но хочется большего :)
  • @djondon #108367 12:32 PM, 10 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @artilligence #108368 12:46 PM, 10 Jul 2019
    Если число всех метрик конечное, можно создать колонки под все метрики и заполнять только те, которые присутствуют по факту. Если число метрик условно бесконечное, тогда лучше использовать вектор и определять его состав по какому- то типу пользователя, например.

    Смысл кликхауса не теряется, поскольку у него есть огромное количество функций для работы с массивами
  • https://t.me/clickhouse_ru
    @temamagic #108369 12:47 PM, 10 Jul 2019
    Joined.
  • @YaroslavMakarov #108370 12:47 PM, 10 Jul 2019
    Коллеги, добрый день.
    Подскажите, как работает max_parts_in_total? Он не дает насоздавать кучу мелких part-ов?
    У нас просто была проблема, когда начали вставлять через Distributed - ClickHouse плодил много мелких кусков и ругался, что не успевает их мерджить. Ключ шардирования был (account_name, toStartOfHour(time_local))
    Спасет ли max_parts_in_total от этого?
  • https://t.me/clickhouse_ru
    Понял, спасибо. Попробую повторить и погонять решение от баду, на первый взгляд оно мне вполне подходит
  • @anchousishka #108372 12:58 PM, 10 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    Куча партов - плохо. Параметр просто не дает убить базу совсем.
    Ты не путаешь шардирование и партиционирование?
  • Нет, ключ шардирования же указываем в Distributed для вставки
  • https://t.me/clickhouse_ru
    @blind_oracle #108375 01:14 PM, 10 Jul 2019
    Да. При этом к партиционированию он не имеет отношения никакого.
  • https://t.me/clickhouse_ru
    @blind_oracle #108376 01:14 PM, 10 Jul 2019
    Этот ключ просто выбирает на какую реплику что класть
  • https://t.me/clickhouse_ru
    если написать

    source_table join mv_storage_table
    сджойнится только вставляемые записи потому что source_table === NEW

    но вам лучше сделать через not in
    select
    from source_table
    where key not in (select key from mv_storage_table)

    или https://gist.github.com/den-crane/fb1108e4843250a71bac7528a79700c2 не уверен правда что в MV так можно
  • https://t.me/clickhouse_ru
    @newink #108378 01:19 PM, 10 Jul 2019
    Добрый день, пытаюсь решить следующую задачу, необходимо посчитать время проведенное в конкретном режиме, часть таблицы представляет собой таймстемп - режим (режим - енам).
    1562764534000 | F1
    1562764534000 | F1
    1562764534000 | F1
    1562764534000 | F2
    1562764534000 | F4
    1562764534000 | F3
    1562764534000 | F1
    1562764534000 | F5

    Получить необходимо время в мс проведенное в каждом из режимов. Была попытка написать через running_difference, но результат не был достигнут. В классических рдбмс можно было бы применить lag() и lead() функции, но их тут пока нет, может быть кто то уже сталкивался с подобной задачей?
  • https://t.me/clickhouse_ru
    либо engine Memory либо temporary table (что тоже самое engine Memory, но дропнется по завершению сессии, т.е. нужна сессия).
  • https://t.me/clickhouse_ru
    да это просто защита от дурака, не позволяющая сделать много партиций в облаке.
    наверное вам надо вставлять в Distributed пачками в которых уже предсортировано по account_name toStartOfHour(time_local)
  • https://t.me/clickhouse_ru
    @blind_oracle #108381 01:24 PM, 10 Jul 2019
    а лучше вообще вставлять в сами шарды
  • https://t.me/clickhouse_ru
    @111093495 #108382 01:28 PM, 10 Jul 2019
    скажите пожалуйста, есть какой-нибудь db migration tools для КХ?
    (типа flyway/Liquibase)
  • https://t.me/clickhouse_ru
    @Antava ↶ Reply to #108377 #108383 01:31 PM, 10 Jul 2019
    Не понимаю, наверно не правильно описал задачу.

    t2 = таблица (2,5млрд) на которую вешается MV
    t3 = MV
    вставляется пачками по 200k в таблицу t2
    CREATE MATERIALIZED VIEW IF NOT EXISTS t3(c1 UUID, c2 UUID, c3 String, date_created Date )
    ENGINE = MergeTree()
    PARTITION BY tracking_uuid
    ORDER BY date_created
    AS
    SELECT c1 , c2, c3, toDate(date_created) AS date_created
    FROM(
    SELECT c1,
    c2,
    c3,
    toDate(date_created) AS date_created,
    isNull(tb1.h) AS flag,
    h
    FROM t3 ANY LEFT JOIN
    (SELECT DISTINCT h
    FROM t2 insert_data
    WHERE h IN(SELECT DISTINCT h FROM t3)
    ) AS tb1 USING h
    WHERE flag = 1
    ORDER BY flag DESC);
  • https://t.me/clickhouse_ru
    Загнать в массив и делать через arraymap и enumerate
  • https://t.me/clickhouse_ru
    @newink ↶ Reply to #108384 #108386 01:37 PM, 10 Jul 2019
    Заняло некоторое время что бы понять что сообщение не мне 😄
  • https://stackoverflow.com/questions/51856397/clickhouse-running-diff-with-grouping
    Но зависит от количества значений. Нам, увы, не подошло, памяти не хватило.
    Clickhouse running diff with grouping

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

  • https://t.me/clickhouse_ru
    @newink ↶ Reply to #108387 #108388 01:40 PM, 10 Jul 2019
    А насколько не подошло? Сильно ограничены?
  • https://t.me/clickhouse_ru
    видимо не туда ткнул, прошу прощения.
  • https://t.me/clickhouse_ru
    там кстати не разбиение на интервалы
  • https://t.me/clickhouse_ru
    @den_crane #108391 01:43 PM, 10 Jul 2019
    КМК разбиение на интервалы нельзя сделать с помощью массивов
  • https://t.me/clickhouse_ru
    @den_crane #108392 01:43 PM, 10 Jul 2019
    потому что у массива тоже самое кол-во элементов на выходе
  • https://t.me/clickhouse_ru
    @newink #108393 01:44 PM, 10 Jul 2019
    В разбиении на интервалы нет необходимости, если я все верно понимаю, нужно просто посчитать суммарное время в режиме
  • Подробности уже не помню, кликхаус вроде бы сразу после начала выполнения запроса ругался, что нужно больше памяти, просил сотни гигабайт. У нас на каждый ключ группировки были тысячи значений, по которым надо было посчитать runningDiff'ы и потом их сагрегировать.
  • https://t.me/clickhouse_ru
    @newink #108395 01:49 PM, 10 Jul 2019
    И как в итоге вышли из положения?
  • https://t.me/clickhouse_ru
    @newink #108396 01:50 PM, 10 Jul 2019
    Спасибо за ответы, попытаюсь что нибудь сделать со всем этим
    У нас этих значений могут быть миллионы на ключ в зависимости от интервала запроса
  • @nbusorgin #108397 01:51 PM, 10 Jul 2019
    У нас исходные данные считались в флинке, записывались в кафку и оттуда читались кликхаусом. Поэтому просто добавили в флинк расчёт runningDifference.
  • @nbusorgin #108398 01:51 PM, 10 Jul 2019
    Как решить только на стороне КХ не придумали
  • https://t.me/clickhouse_ru
    @AndrewEfimenko #108401 02:06 PM, 10 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @MaximStanovov #108402 02:11 PM, 10 Jul 2019
    Привет, помогите разобраться:

    Хочу в MAT VIEW SummingМergeТree (t2) получать количество строк из исходной таблицы МergeТree (t1).

    t2 забирает данные из t1 так:
    SELECT
    floor((xxx / 100) * 2, 2) AS xxx,
    1 AS yyy
    FROM t1

    Ожидаю, что инсерт каждой строчки в t1, будет скопирован в t2, и выражения будут равны:
    1. sum(t1.xxx) == sum(t2.xxx)
    2. count(t1) == sum(t2.yyy)

    Однако сходится только 1, а 2 - нет.
    Кто-то может пояснить, почему так?
  • https://t.me/clickhouse_ru
    @den_crane #108403 02:13 PM, 10 Jul 2019
    toUInt64(1) AS yyy
  • https://t.me/clickhouse_ru
    @den_crane #108404 02:13 PM, 10 Jul 2019
    у вас через 1 байт оверфлоатится
  • https://t.me/clickhouse_ru
    @MaximStanovov #108405 02:15 PM, 10 Jul 2019
    Спасибо, попробую с кастом
  • https://t.me/clickhouse_ru
    @vipmaax #108406 02:17 PM, 10 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    в общем-то desc t2 покажет типа поля у yyy и там наверняка Int8
  • https://t.me/clickhouse_ru
    Да, так и есть, переделал с кастом - теперь ок, спасибо
  • @832792551 #108409 02:30 PM, 10 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @kmarenov #108410 02:53 PM, 10 Jul 2019
    На версии 18.14.15 после вставки по http, получали респонс от сервера, с text/plain в заголовке content-type, после обновления до 19.7.3.9 сервер стал возвращать в этом заголовке text/tab-separated-values, и, по видимому, из-за этого теперь возникает ошибка при использовании библиотеки @apla/clickhouse

    С чем связано это изменение? Можно ли это поведение как-то настроить?
  • https://t.me/clickhouse_ru
    @AleksandrVassiliev #108411 02:57 PM, 10 Jul 2019
    Добрый вечер! Подскажите, пожалуйста как подсчитать арифметическое среднее трёх чисел. Но не агрегатную avg, а простое арифметическое среднее над несколькими числами (внутри лямбды). Спасибо.
  • https://t.me/clickhouse_ru
    @orantius #108412 03:15 PM, 10 Jul 2019
    сумму поделить на количество?
  • https://t.me/clickhouse_ru
    (a+b+c)/3 ?
  • https://t.me/clickhouse_ru
    У меня динамическое число аргументов, получается сложное выражение
  • https://t.me/clickhouse_ru
    @orantius #108415 03:42 PM, 10 Jul 2019
    и как вы динамическое число аргументов селектите?
  • https://t.me/clickhouse_ru
    @AleksandrVassiliev #108416 03:42 PM, 10 Jul 2019
    Может можно закатать их в массив и найти среднее из массива?
  • https://t.me/clickhouse_ru
    @studnev #108417 03:43 PM, 10 Jul 2019
    arrayMap(a,b,c -> (a+b+c)/3, rr1, arr2, arr3 )
  • https://t.me/clickhouse_ru
    Я бегу по массиву и внутри лямбды в зависимости от условия решаю должно ли число попадать в выражении среднего или его нужно пропустить
  • https://t.me/clickhouse_ru
    @AleksandrVassiliev #108419 03:45 PM, 10 Jul 2019
    Точнее не так
  • https://t.me/clickhouse_ru
    @AleksandrVassiliev #108420 03:47 PM, 10 Jul 2019
    Бегу по массиву и в зависимости от условий лезу в другие массиы, тяну оттуда числа и хочу найти по ним среднее
  • https://t.me/clickhouse_ru
    @orantius #108421 03:47 PM, 10 Jul 2019
    WITH [1, 2, 3] AS x
    SELECT arraySum(x) / length(x) AS y
    ┌─y─┐
    │ 2 │
    └───┘
  • https://t.me/clickhouse_ru
    Да, так подойдёт, спасибо
  • https://t.me/clickhouse_ru
    @den_crane #108423 03:50 PM, 10 Jul 2019
    select arraySum( arrayFilter(x-> x%2, z) as f) / length(f)
    from (select [1,2,3,4,5,6] z)
  • https://t.me/clickhouse_ru
    Спасибо!
  • https://t.me/clickhouse_ru
    @vmoshikov #108426 04:26 PM, 10 Jul 2019
    Наберусь наглости и апну свой вопрос https://t.me/clickhouse_ru/108344
    Чет мой мозг отказыаается выдавать решение
    Владислав Мошиков in ClickHouse не тормозит

    Немного продвинулся и вопрос немного проще (возможно) В первой таблице есть 3 вариации (по параметрам) строки из первой таблицы. 1) parm1.example.com/path_url 2) example.com/param2/path_url 3) https://example.com/path_url Во второй табличке хранится path_url и его ID Я хочу связать данные из первой табличики (предварительно провести группировки) со второй (добавить ID) и положить в MV, из которой я буду забирать данные по ID (быстрее же)

  • @robbydrive #108427 04:39 PM, 10 Jul 2019
    Добрый день.

    Тестирую синхронную вставку через Distributed-таблицу, собрал для этого в докере схему из 2 шардов по 2 реплики. В целях тестирования отключил обе реплики одного из шардов и при попытке вставки логично получаю следующее сообщение:

    <Error> HTTPHandler: Code: 279, e.displayText() = DB::NetException: All connection tries failed. Log:
    Code: 210, e.displayText() = DB::NetException: Connection refused (shard12:9000, 172.29.0.4)
    Code: 210, e.displayText() = DB::NetException: Connection refused (shard11:9000, 172.29.0.5)
    ...
    : Insertion status:
    Wrote 0 blocks and 0 rows on shard 0 replica 0, shard11:9000 (average 3 ms per block)
    Wrote 1 blocks and 1899 rows on shard 1 replica 0, shard21:9000 (average 3 ms per block)

    Проводил этот тест полгода назад (с версией 18.14), и тогда эти 1899 строк вставлялись на реплику второго шарда и были видны при select-ах в таблице под Distributed. Сейчас (с версией 19.4) эти 1899 строк не видны - count(*) возвращает 0 (после восстановления первого шарда все данные и тогда, и сейчас корректно вставляются). В changelog-е не увидел связанных с этим изменений...

    Были ли какие-то изменения в сервере, из-за которых поведение изменилось? Если нет, то в сторону каких настроек смотреть?
  • https://t.me/clickhouse_ru
    @ployd #108429 04:57 PM, 10 Jul 2019
    Почему при мутациях может проблема с There is no query возникать?
  • https://t.me/clickhouse_ru
    @ployd #108430 04:58 PM, 10 Jul 2019
    Причём, две таблицы, абсолютно одинаковые. На одной возникает, на другой — нет
  • https://t.me/clickhouse_ru
    @ployd #108431 05:00 PM, 10 Jul 2019
    По коду странное что-то
  • https://t.me/clickhouse_ru
    тут задача на 30 сек, можно тупо в первую таблицу колонку с id добавить и посчитать ее через словарь

    path_url и его ID -- их ведь не много
    делаем словарь на основе второй таблицы, через dictGet будем выбирать id
  • https://t.me/clickhouse_ru
    Я вот со словарями не подружился
  • https://t.me/clickhouse_ru
    сколько строк во второй таблце?
  • https://t.me/clickhouse_ru
    В первой таблице не могу подкинуть колонку. Это сырые данные из метрики
  • https://t.me/clickhouse_ru
    детский сад.
    Ладно и все таки сколько строк во второй таблце? С точностью до 100 миллионов?
  • https://t.me/clickhouse_ru
    @vmoshikov #108437 05:07 PM, 10 Jul 2019
    1лям
  • https://t.me/clickhouse_ru
    @den_crane #108438 05:14 PM, 10 Jul 2019
    предположим вторая таблица t2 (url String, id UInt64)

    словарь
    <?xml version="1.0"?>
    <dictionaries>
    <dictionary>
    <name>t2</name>
    <source>
    <clickhouse>
    <host>localhost</host>
    <port>9000</port>
    <user>default</user>
    <password/>
    <db>default</db>
    <table>t2</table>
    </clickhouse>
    </source>
    <lifetime>300</lifetime>
    <layout>
    <complex_key_hashed/>
    </layout>
    <structure>
    <key>
    <attribute>
    <name>url</name>
    <type>String</type>
    </attribute>
    </key>
    <attribute>
    <name>id</name>
    <type>UInt64</type>
    <null_value>0</null_value>
    </attribute>
    </structure>
    </dictionary>
    </dictionaries>
  • https://t.me/clickhouse_ru
    @den_crane #108439 05:15 PM, 10 Jul 2019
    к такому словарю можно ходить dictGetUInt64('t2', 'id', tuple('path_url'))
  • https://t.me/clickhouse_ru
    @den_crane #108440 05:16 PM, 10 Jul 2019
    делаем MV

    create mat .. view
    as select count(), dictGetUInt64('t2', 'id', tuple( extractPath ...(url) )) id
    from t1
    group by id
  • https://t.me/clickhouse_ru
    на самом деле я думаю что зависит от того в какой шард Distributed пошлет первым. В КХ нет транзакций откатить вставку нельзя.
  • @J0hnSmitt #108442 05:32 PM, 10 Jul 2019
    добрый день, попытался переместить реплику (кластер 2х2) но что-то пошло не так, в итоге у меня теперь один шард имеет одну пустую реплику...🤷‍♂
    подскажите, по шагам, что нужно сделать, чтобы восстановить данные этой реплики...
  • https://t.me/clickhouse_ru
    >один шард имеет одну пустую реплику..
    так а вторая реплика в этом шарде не пустая?
  • первый шард первая - ок, вторая пустая
    второй шард обе ок
  • https://t.me/clickhouse_ru
    Пошел читать по каждой функции. Спасибо
  • https://t.me/clickhouse_ru
    проверьте show create table что zk путь совпадает, что макросы подстановки номера шарда правильные (system.marcros) и в конфиге
    на обоих серверах посмотрите system.replication_queue
  • пути совпадают, очереди пустые(
    можно внести еще одну реплику, чтобы на нее восстановить?
  • https://t.me/clickhouse_ru
    что в system.marcros
  • @J0hnSmitt #108450 05:46 PM, 10 Jul 2019
    новые данные в эту реплику дописываются, а вот старых нет(
  • https://t.me/clickhouse_ru
    у вас таблица replicated ?
  • @J0hnSmitt #108452 05:48 PM, 10 Jul 2019
    да, все таблицы replicated
  • https://t.me/clickhouse_ru
    что на второй реплике в system.marcros
  • @J0hnSmitt #108455 05:50 PM, 10 Jul 2019
    на втором шарде соответственно layer 01,02 и шард 02
  • https://t.me/clickhouse_ru
    @den_crane #108456 05:52 PM, 10 Jul 2019
    select * from system.replicas where table = .... на обоих серверах

    вы неправильно понимаете что такое layer, у вас он точно есть в zk path у таблицы?
  • создаются все таблицы так:
    '/clickhouse/tables/{layer}-{shard}/db/table'
  • https://t.me/clickhouse_ru
    @den_crane #108458 05:55 PM, 10 Jul 2019
    аааа жуть. Даже понятно как это все исправить за пару rename. писец, кто вам вообще рассказал про layer.
  • https://t.me/clickhouse_ru
    @den_crane #108459 05:56 PM, 10 Jul 2019
    у вас явно куски данных разные, у вас нет реплик
  • упс... и как быть тогда?(
  • https://t.me/clickhouse_ru
    @den_crane #108461 05:59 PM, 10 Jul 2019
    на сервере где нет данных

    останвливаете заливку
    create table ....._2
    ....
    '/clickhouse/tables/1-{shard}/db/table'

    проверяете что данных которые для layer 02 нет в другой реплике
    переливаете из таблицы layer2 в новую create table ....._2
    drop table layer2
    rename table ....._2 to ...
  • https://clickhouse.yandex/docs/ru/operations/table_engines/replication/ тут вроде именно такой пример создания реплицируемой таблицы...
  • https://t.me/clickhouse_ru
    layer это двух уровневый шардинг, для тех у кого 400 серверов
  • https://t.me/clickhouse_ru
    @tailsRoot #108464 06:02 PM, 10 Jul 2019
    Подскажите есть ли альтернатива функции COL_LENGTH
  • https://t.me/clickhouse_ru
    @tailsRoot #108465 06:03 PM, 10 Jul 2019
    Пример запроса "IF COL_LENGTH(seq,keys) IS NULL BEGIN ALTER TABLE seq ADD keys String END""
  • а можете объяснить, что это за манипуляции и для чего они?
    данные, как я понимаю не восстановить?
  • https://t.me/clickhouse_ru
    в каком смысле не восстановить, они все на месте, я как раз написал как все починить, не потеряв.

    смысл в том что layer лишь задает путь фактически layer2 и layer1 это две разные таблицы, два разных шарда.

    у вас есть одна реплика ch1 / layer1 === '/clickhouse/tables/1-{shard}/db/table'
    надо сделать на ch2 таблицу с другим именем и путем '/clickhouse/tables/1-{shard}/db/table'
  • https://t.me/clickhouse_ru
    @den_crane #108468 06:07 PM, 10 Jul 2019
    туда реплицируются данные
  • https://t.me/clickhouse_ru
    @den_crane #108469 06:07 PM, 10 Jul 2019
    остановить заливку на ch2 или вообще остановить
  • https://t.me/clickhouse_ru
    @den_crane #108470 06:08 PM, 10 Jul 2019
    проверить что "новые" данные в ch2 которые залились в layer2 отсутсвуют в layer1
  • https://t.me/clickhouse_ru
    @den_crane #108471 06:09 PM, 10 Jul 2019
    перелить insert select из layer2 в layer1
  • https://t.me/clickhouse_ru
    @den_crane #108472 06:09 PM, 10 Jul 2019
    дропнуть layer2 таблицу
  • https://t.me/clickhouse_ru
    @den_crane #108473 06:09 PM, 10 Jul 2019
    переименовать layer1 таблицу
  • https://t.me/clickhouse_ru
    @den_crane #108474 06:10 PM, 10 Jul 2019
    '/clickhouse/tables/1-{shard}/db/table' <-- 1 будет захардкожена, не используя макрос
  • https://t.me/clickhouse_ru
    что она вообще делает? это mysql ?
  • https://t.me/clickhouse_ru
    @tailsRoot #108476 06:11 PM, 10 Jul 2019
    возвращает длину столбца в байтах
  • т.е. репликация должна быть однослойной, правильно?
    у меня второй шард по такому же принципу собран...
  • https://t.me/clickhouse_ru
    @tailsRoot #108478 06:12 PM, 10 Jul 2019
    я просто хочу добавить столбец в таблицу если его не существует
  • https://t.me/clickhouse_ru
    ALTER TABLE alter_test ADD COLUMN IF NOT EXISTS Added0 UInt32;
  • https://t.me/clickhouse_ru
    да однослойный шардинг. Как вообще кластер описан? Заливка через distributed ? <internal_replication>true</internal_replication> ?
  • https://t.me/clickhouse_ru
    thanks )
  • Заливка через distributed
    <yandex>
    <remote_servers>
    <clickhouse_shards>
    <!-- shard 01 -->
    <shard>
    <replica>
    <host>ch1</host>
    </replica>
    <replica>
    <host>ch2</host>
    </replica>
    </shard>
    <!-- shard 02 -->
    <shard>
    <replica>
    <host>ch3</host>

    </replica>
    <replica>
    <host>ch4</host>
    </replica>
    </shard>
    </clickhouse_shards>
    </remote_servers>
    </yandex>
  • @J0hnSmitt #108483 06:22 PM, 10 Jul 2019
    <internal_replication>true</internal_replication> не прописан
  • https://t.me/clickhouse_ru
    https://github.com/yandex/ClickHouse/blob/0eed697623afd251c1908073c4a2850a9bfc9cdc/dbms/tests/integration/test_distributed_ddl/configs/config.d/clusters.xml

    нужен
    <internal_replication>true</internal_replication>

    льете как? через дистрибьютид? она вам тогда и делает у вас репликацию, у вас фактически не используется replicated
  • да, заливаю через distributed.
    table -ReplicatedMergeTree('/clickhouse/tables/{layer}-{shard}/db/table', '{replica}')
    select count() from table
    выдает следующее:
    ch1 - 342036875
    ch2 - 4555253
    ch3 - 342081025
    ch4 - 339250416

    table_all - Distributed(clickhouse_shards, db, table ,rand());
    select count() from table_all
    ch1 - 684179367
    ch2 - 343867136
    ch3 - 684179367
    ch4 - 681348758

    это нормальный результат?
  • @J0hnSmitt #108486 06:38 PM, 10 Jul 2019
    "льете как? через дистрибьютид? она вам тогда и делает у вас репликацию, у вас фактически не используется replicated"
    как переконфигурировать кх не потеряв данные? ваш вышеописанный способ подходит?
    мне на каждой ноде где layer - 2 нужно создать layer 1, как вы описали?
  • https://t.me/clickhouse_ru
    @den_crane #108487 06:39 PM, 10 Jul 2019
    скорее всего что вам таблица ch2 - 4555253 не нужна и ее можно просто дропнуть не переливая из нее данные в новую, потому что дистрибьютид их записала в ch1 и они реплицируются в новую таблицу
  • https://t.me/clickhouse_ru
    @den_crane #108488 06:39 PM, 10 Jul 2019
    >мне на каждой ноде где layer - 2 нужно создать layer 1, как вы описали?
    да
  • а 3 и 4 нужно переливать, правильно?
    конфик сервера в какой момент править? после того, как всё перелью?
  • точнее 4 сделать layer 1
  • В первую очередь стоит посмотреть, насколько скорость последовательного чтения отличается от расчётной. Для неплохих hdd должно получаться в районе 1.5 GByte/sec на массив из 12 дисков.
  • https://t.me/clickhouse_ru
    даже можно сделать проще

    у вас ch1 - 342036875 ch3 - 342081025 содержат правильные данные и полные.
    вам надо дропуть или переименовать таблицу на ch2 и ch4, поменять layer на layer1 в макросе и создать таблицу, данные реплицуруются

    таким образом у вас будет везде layer1
    и сделайте обязательно true</internal_replication до включения заливки
  • @CodeProger #108493 06:44 PM, 10 Jul 2019
    Joined.
  • а что делать с distributed таблицами?
  • https://t.me/clickhouse_ru
    ничего, с ними и так все ок
  • @J0hnSmitt #108496 06:50 PM, 10 Jul 2019
    по действиям:
    1. стопаю заливку
    2. переименовываю таблицы на ch2 и сh4
    3. создаю новые таблицы с layer1
    4. internal_replication -> true
    5. профит
    6. включаю заливку
    всё правильно?)
  • https://t.me/clickhouse_ru
    попробую, тут проблема похоже в том что КХ читает через кеш линукса во много потоков и надо как-то подобрать профиль fio чтобы чтение получалось примерно такое же.
    а то fio direct=1 получается сильно оторванный от реальности
  • заливка потом так же через distributed?
  • https://t.me/clickhouse_ru
    все правильно,
    > создаю новые таблицы с layer1
    это можно сделать через макрос
  • https://t.me/clickhouse_ru
    да
  • https://t.me/clickhouse_ru
    а хотя у вас уже есть старые таблицы заданные через макрос, да тут лучше сначала захардкодить 1
  • я как раз собирался переносить ch2 и ch4, я же могу поднять ещё две реплики и настроить их через макросы как layer 1? пока без удаления ch2 и ch4? и добавить их в конфиг? или так лучше не делать?
  • Можно вообще не указывать partition by.
  • https://t.me/clickhouse_ru
    да можно
  • @J0hnSmitt #108505 07:20 PM, 10 Jul 2019
    @den_crane ещё вопрос: получается, что пути в зоо будут одинаковые у каждого шарда?
    т.е. для первого будет /ch/tables/1-1/db/tablename ?
    tablename одинаковое или для каждой реплики шарда своё имя?
    т.е. для таблицы tablename так:
    /ch/tables/1-1/db/tablename1
    /ch/tables/1-1/db/tablename2
    /ch/tables/1-2/db/tablename3
    /ch/tables/1-2/db/tablename4
  • https://t.me/clickhouse_ru
    '/clickhouse/tables/{layer}-{shard}/db/table', {replica}
    раскроется в

    shard 1 / layer 1
    '/clickhouse/tables/1-1/db/table' , ch1
    '/clickhouse/tables/1-1/db/table' , ch2

    shard 2 / layer 1
    '/clickhouse/tables/1-2/db/table', ch3
    '/clickhouse/tables/1-2/db/table', ch4
  • благодарю!) спасибо за помощь и разъяснения)
  • https://t.me/clickhouse_ru
    @gtkuler #108508 07:37 PM, 10 Jul 2019
    Привет, подскажите, можно как-то сгрупировать как-то по нескольким интервалам? например дням недели, месяцам, кварталам, годам? это вроде date_part в других СУБД
  • https://t.me/clickhouse_ru
    GROUP BY toYYYMMMMDD(date column) - по дням
  • group by toStartOfFiveMinute(EventTime) ?

    https://clickhouse.yandex/docs/ru/query_language/functions/date_time_functions/#tostartoffiveminute
    тут описание есть
  • https://t.me/clickhouse_ru
    @tailsRoot #108511 07:40 PM, 10 Jul 2019
    Подскажите пожалуйста как обновить поле которое находится в nullable(string) ?
    ALTER TABLE security_logs UPDATE key=value WHERE key= ?
  • https://t.me/clickhouse_ru
    key=value это что? другая таблица?
  • https://t.me/clickhouse_ru
    key = название стоблца value = значение в нём
  • https://t.me/clickhouse_ru
    и что не работает?

    ALTER TABLE security_logs UPDATE key='value' WHERE key= 'another value'
  • @githubreleases_bot #108515 b o t 07:43 PM, 10 Jul 2019
    yandex/ClickHouse tagged: v19.9.4.34-stable
    Link: https://github.com/yandex/ClickHouse/releases/tag/v19.9.4.34-stable
    Release notes:
    v19.9.4.34-stable
    ClickHouse/ClickHouse

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

  • https://t.me/clickhouse_ru
    @tailsRoot #108516 07:43 PM, 10 Jul 2019
    там поле пустое, а как по документацию смотрел там пишут что нужно возращаемое значение Uint8
  • https://t.me/clickhouse_ru
    Надо доку чтоль поправить, вы уже не первый
  • https://t.me/clickhouse_ru
    UInt8 это boolean = where key is null
  • https://t.me/clickhouse_ru
    @den_crane #108519 07:45 PM, 10 Jul 2019
    или key = 'aaaa'
  • https://t.me/clickhouse_ru
    @tailsRoot #108520 07:45 PM, 10 Jul 2019
    при key is null я уже пробывал ошибка " Syntax error: failed at position 46: 30 08:42:04 WHERE msgtime is null. Expected one of: NOT, LIKE, WHERE, AND,..."
  • https://t.me/clickhouse_ru
    @den_crane #108521 07:46 PM, 10 Jul 2019
    isNull(key)
  • https://t.me/clickhouse_ru
    @den_crane #108522 07:47 PM, 10 Jul 2019
    SELECT isNull(NULL)

    ┌─isNull(NULL)─┐
    │ 1 │
    └──────────────┘
  • https://t.me/clickhouse_ru
    тоже самое выдаёт, пробывал также с empty(key)=1
  • https://t.me/clickhouse_ru
    случайно не знаете на сколько оно быстрое?) скажем в сравнении с UNION ALL, где в каждом содержится BETWEEN между интервалом (в разрезе дня недели/месяца/квартала/года, всегда какой-то один интервал в запросе учавствует), либо еще вариант в подзапросе сгенерить несколько интервалов и потом по ним джойнить.

    З.Ы. Больше 7 интервалов не бывает в одном запросе
  • https://t.me/clickhouse_ru
    @tailsRoot #108525 07:48 PM, 10 Jul 2019
    просто я создаю поля если их нету в таблице и пытаюсь заполнить данными
  • https://t.me/clickhouse_ru
    не знаю видимо уже поправлено

    ALTER TABLE ZZZ
    UPDATE A = 'a' WHERE isNull(A)

    Ok.
  • https://t.me/clickhouse_ru
    оно это кто? сама функция не стоит ничего, это просто округление до начала интервала.
    а груп бай.. ну тут сложно сказать что вы считаете быстрым.
  • https://t.me/clickhouse_ru
    решение) ладно, будем пробовать, видел эту функцию, но не подумал что при помощи нее можно группировать. спасибо
  • https://t.me/clickhouse_ru
    Группировать можно по любому expression насколько я знаю.
    Главное чтобы памяти хватило :)
  • https://t.me/clickhouse_ru
    окей, ну меня все-таки интересует стоимость, что лучше сгруппировать по какому-то интервалу, либо выбирать до 7 диапазонов отдельными запросами и объеденять при помощи UNION ALL? прошу не пинать за такой вопрос, под рукой большой базы нет, проверить стоимость того или иного решения нет, поэтому спрошу на всякий у комьюнити, чтобы не эксперементировать на проде
  • https://t.me/clickhouse_ru
    Выбирать по диапазонам дешевле т.к. не нужно хранить промежуточный результат в памяти как при груп бае
  • https://t.me/clickhouse_ru
    так промежуточный результат в случае отдельных запросов тоже же будет?

    на примере наверное лучше показать, я сравниваю:

    SELECT ContentID, t, count(*)
    FROM tracks
    WHERE StartTime BETWEEN '2019-07-05 00:00:00' AND '2019-07-05 02:59:59'
    GROUP BY ContentID, toStartOfInterval(StartTime, INTERVAL 3 HOUR) as t

    UNION ALL

    SELECT ContentID, t, count(*)
    FROM tracks
    WHERE StartTime BETWEEN '2019-07-05 03:00:00' AND '2019-07-05 05:59:59'
    GROUP BY ContentID, toStartOfInterval(StartTime, INTERVAL 3 HOUR) as t

    UNION ALL

    SELECT ContentID, t, count(*)
    FROM tracks
    WHERE StartTime BETWEEN '2019-07-05 06:00:00' AND '2019-07-05 06:59:59'
    GROUP BY tracks.ContentID, toStartOfInterval(StartTime, INTERVAL 3 HOUR) as t;
    ….

    и это:

    SELECT ContentID, toStartOfInterval(StartTime, INTERVAL 3 HOUR) as t, count()
    FROM tracks
    WHERE StartTime BETWEEN '2019-07-05 00:00:00' AND '2019-07-05 29:59:59'
    GROUP BY ContentID, t;
  • https://t.me/clickhouse_ru
    Не очень понятно зачем в первом запросе группировать если там и так 3-часовые интервалы?
  • https://t.me/clickhouse_ru
    @gtkuler #108534 08:23 PM, 10 Jul 2019
    а, там лишнее, да
  • https://t.me/clickhouse_ru
    @gtkuler #108535 08:23 PM, 10 Jul 2019
    там просто any наверное можно использовать для даты
  • https://t.me/clickhouse_ru
    дату можно выбирать так же toStartOfInterval() просто не группировать по ней
  • https://t.me/clickhouse_ru
    в первом запросе не будет буфферизации т.к. все три пойдут скорее всего в параллельных тредах и сразу стримятся на клиента.
  • https://t.me/clickhouse_ru
    а во втором груп бай и если в этих 24 часах слишком много строк то память кончится и ой
  • https://t.me/clickhouse_ru
    в group by идет агрегация еще по одному полю, а toStartOfInterval не агрегационная функция
  • https://t.me/clickhouse_ru
    если ее из групбая вынести в селект как во втором запросе то мешать не будет
  • https://t.me/clickhouse_ru
    тогда, наверное, UNION буду юзать, ибо у меня есть агрецация еще по кварталам года)) там точно память можеть кончится
  • https://t.me/clickhouse_ru
    ну тут проблема в том что квартал это как раз неплохо. плохо когда короткие интервалы.
  • https://t.me/clickhouse_ru
    @blind_oracle #108543 08:33 PM, 10 Jul 2019
    ибо чем больше интервалов - тем больше вариантов и больше нужно памяти
  • https://t.me/clickhouse_ru
    @blind_oracle #108544 08:33 PM, 10 Jul 2019
    т.е. грубо говоря использование памяти пропорционально произведению количества уникальных значений полей в GROUP BY
  • https://t.me/clickhouse_ru
    а есть разница?
  • https://t.me/clickhouse_ru
    это я тупанул, если ее вынести то запрос не взлетит. можно как ты правильно предложил ее в any обернуть.
  • https://t.me/clickhouse_ru
    @blind_oracle #108547 08:37 PM, 10 Jul 2019
    или вообще выкинуть т.к. интервал тебе и так известен
  • https://t.me/clickhouse_ru
    а, понял. спасибо большое! буду пробовать
  • @bashlykevich #108549 09:26 PM, 10 Jul 2019
    Joined.
  • 11 July 2019 (233 messages)
  • @akalagur #108550 04:14 AM, 11 Jul 2019
    Всем привет! Столкнулся с такой задачкой. Есть таблица 'table-name' БД в MySql. В этой таблице 30+ млн записей. В день приходит 12 тыс insert, 50 тыс update. Данную таблицу хочу реплицировать в clickhouse. Репликацию осуществил при помощи ProxySQL, переписывая mysql-запросы в clickhouse-запросы (insert в replacing_merge_tree). Так вот если с update проблем нет, то с insert все сложнее. В mysql запрос приходит без уникального идентификатора, а в clickhouse автоинкремент не реализован. И я решил эту проблему таким образом:

    insert into tablech SELECT * from mysql('host:3306', 'db-name', 'table-name', 'user-name', 'password') WHERE id = (select max(id) + 1 from tablech);

    Что оказывается достаточно тяжело при наличии 30+млн строк в таблице 'tablech' (каждый поиск max(id) длится 5 секунд). Каким образом можно решить данную проблему? Понимаю, что решение мегаколхозное, но может как-то из коробки clickhouse можно получать max(id) быстрее 5 сек?
    P.S. Железо намеренно слабое.
  • https://t.me/clickhouse_ru
    @den_crane #108551 04:52 AM, 11 Jul 2019
    А зачем нужен уникальный id в olap базе?
    generateUUIDv4()
  • @akalagur #108552 04:58 AM, 11 Jul 2019
    Так как я буду делать update строки этой? Если на вход приходит id из OLTP
  • https://t.me/clickhouse_ru
    Если есть неизменяемая дата, можно ее добавить к условию tablech, что сильно упростит выполнение запроса:
    date > today() - 2
  • @416785344 #108554 05:52 AM, 11 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @suxxorz #108555 05:59 AM, 11 Jul 2019
    Всем привет! Подскажите, пожалуйста, по каким причинам КХ может не забирать данные с кафки. Все делал как обычно, но теперь не хочет собирать. На сервере кафки смотрю через netstat стоит 1 соединение с КХ, но данные не хочет забирать...
  • @nbusorgin #108556 06:01 AM, 11 Jul 2019
    Что в логах КХ? Может быть не может распарсить кривое сообщение, поэтому остановился?
  • https://t.me/clickhouse_ru
    @ployd ↶ Reply to #108550 #108557 06:08 AM, 11 Jul 2019
    1. Можно сделать MV на ReplacingMergeTree с одной записью, куда пишется последний Id, откуда из подзапроса и выбирать.

    2. Если Id - ключ, то можно подождать влития оптимизации по выборке max/min по ключу
  • https://t.me/clickhouse_ru
    @ployd #108558 06:09 AM, 11 Jul 2019
    Вообще странно выглядит запрос. Там точно не Id > max, чтоб все новые забрать?
  • https://t.me/clickhouse_ru
    @ployd ↶ Reply to #108551 #108559 06:13 AM, 11 Jul 2019
    Откуда любовь к uuid такая? Большой, немонотонный (как следствие, индексы не накрутить), ну и риск совпадения все равно есть.

    Может, это все неважно, когда КХ для аналитики используется, но это же не всегда так)
  • https://t.me/clickhouse_ru
    2019.07.11 09:12:57.035516 [ 41 ] {b871dca3-082b-4f58-a6df-0492e77f67f4} <Information> executeQuery: Read 25 rows, 973.00 B in 0.001 sec., 36883 rows/sec., 1.37 MiB/sec.
    2019.07.11 09:12:57.035534 [ 41 ] {b871dca3-082b-4f58-a6df-0492e77f67f4} <Debug> MemoryTracker: Peak memory usage (for query): 1.02 MiB.
    2019.07.11 09:12:57.035573 [ 41 ] {b871dca3-082b-4f58-a6df-0492e77f67f4} <Debug> MemoryTracker: Peak memory usage (total): 1.02 MiB.
    2019.07.11 09:12:57.035591 [ 41 ] {b871dca3-082b-4f58-a6df-0492e77f67f4} <Information> TCPHandler: Processed in 0.001 sec.
    2019.07.11 09:12:57.035828 [ 41 ] {} <Information> TCPHandler: Done processing connection.
    2019.07.11 09:12:57.498066 [ 18 ] {} <Trace> StorageKafka (queue): Polled batch of 0 messages
    2019.07.11 09:12:57.496002 [ 1 ] {} <Information> : Starting ClickHouse 19.7.3.9 with revision 54419
    2019.07.11 09:12:57.500317 [ 1 ] {} <Information> Application: starting up
    2019.07.11 09:12:57.503067 [ 1 ] {} <Information> StatusFile: Status file /sql/clickhouse/status already exists - unclean restart. Contents:
    PID: 21718
    Started at: 2019-07-11 08:29:06
    Revision: 54419

    еще настраивал zabbix

    19.07.11 09:12:55.778825 [ 41 ] {29ec7227-5cc3-4f64-a9bb-accd8ca122ce} <Information> executeQuery: Read 36 rows, 3.96 KiB in 0.001 sec., 56114 rows/sec., 6.02 MiB/sec.
    2019.07.11 09:12:55.778836 [ 41 ] {29ec7227-5cc3-4f64-a9bb-accd8ca122ce} <Debug> MemoryTracker: Peak memory usage (for query): 1.02 MiB.
    2019.07.11 09:12:55.778863 [ 41 ] {29ec7227-5cc3-4f64-a9bb-accd8ca122ce} <Debug> MemoryTracker: Peak memory usage (total): 1.02 MiB.
    2019.07.11 09:12:55.778875 [ 41 ] {29ec7227-5cc3-4f64-a9bb-accd8ca122ce} <Information> TCPHandler: Processed in 0.001 sec.
    2019.07.11 09:12:55.779083 [ 41 ] {} <Information> TCPHandler: Done processing connection.
    2019.07.11 09:12:55.997221 [ 18 ] {} <Debug> StorageKafka (queue): Started streaming to 1 attached views
    2019.07.11 09:12:56.497644 [ 18 ] {} <Trace> StorageKafka (queue): Polled batch of 0 messages
    2019.07.11 09:12:56.861906 [ 43 ] {} <Trace> TCPHandlerFactory: TCP Request. Address: [::1]:42024
    2019.07.11 09:12:56.861982 [ 43 ] {} <Debug> TCPHandler: Connected ClickHouse client version 19.7.0, revision: 54419, database: system, user: zbxreadonly.
    2019.07.11 09:12:56.866371 [ 43 ] {} <Information> TCPHandler: Done processing connection.
    2019.07.11 09:12:56.997875 [ 18 ] {} <Trace> StorageKafka (queue): Polled batch of 0 messages
    2019.07.11 09:12:57.029170 [ 41 ] {} <Trace> TCPHandlerFactory: TCP Request. Address: [::1]:42026
    2019.07.11 09:12:57.029245 [ 41 ] {} <Debug> TCPHandler: Connected ClickHouse client version 19.7.0, revision: 54419, database: system, user: zbxreadonly.
    2019.07.11 09:12:57.034792 [ 41 ] {b871dca3-082b-4f58-a6df-0492e77f67f4} <Debug> executeQuery: (from [::1]:42026, user: zbxreadonly) SELECT value FROM system.asynchronous_metrics WHERE metric = 'MaxPartCountForPartition'
    2019.07.11 09:12:57.035201 [ 41 ] {b871dca3-082b-4f58-a6df-0492e77f67f4} <Trace> InterpreterSelectQuery: FetchColumns -> Complete
    2019.07.11 09:12:57.035252 [ 41 ] {b871dca3-082b-4f58-a6df-0492e77f67f4} <Debug> executeQuery: Query pipeline:
    Expression
    Expression
    Filter
    One
  • https://t.me/clickhouse_ru
    Сообщение такое же (т.е. работало), обычно если криво он ругался
  • @nbusorgin #108562 06:17 AM, 11 Jul 2019
    А если указать другую consumer-group при создании Kafka Engine?
  • https://t.me/clickhouse_ru
    @suxxorz #108563 06:18 AM, 11 Jul 2019
    Сейчас
  • https://t.me/clickhouse_ru
    @suxxorz #108564 06:20 AM, 11 Jul 2019
    2019.07.11 09:20:12.532568 [ 41 ] {6b9199d1-5146-454d-9f2e-f4596f5cd58d} <Information> executeQuery: Read 42 rows, 5.82 KiB in 0.001 sec., 60246 rows/sec., 8.16 MiB/sec.
    2019.07.11 09:20:12.532580 [ 41 ] {6b9199d1-5146-454d-9f2e-f4596f5cd58d} <Debug> MemoryTracker: Peak memory usage (for query): 1.03 MiB.
    2019.07.11 09:20:12.532608 [ 41 ] {6b9199d1-5146-454d-9f2e-f4596f5cd58d} <Debug> MemoryTracker: Peak memory usage (total): 1.03 MiB.
    2019.07.11 09:20:12.532621 [ 41 ] {6b9199d1-5146-454d-9f2e-f4596f5cd58d} <Information> TCPHandler: Processed in 0.001 sec.
    2019.07.11 09:20:12.532805 [ 41 ] {} <Information> TCPHandler: Done processing connection.
    2019.07.11 09:20:12.755295 [ 14 ] {} <Debug> StorageKafka (queue): Started streaming to 1 attached views
    2019.07.11 09:20:13.255709 [ 14 ] {} <Trace> StorageKafka (queue): Polled batch of 0 messages
    2019.07.11 09:20:13.755898 [ 14 ] {} <Trace> StorageKafka (queue): Polled batch of 0 messages
    2019.07.11 09:20:14.256048 [ 14 ] {} <Trace> StorageKafka (queue): Polled batch of 0 messages
    2019.07.11 09:20:14.756198 [ 14 ] {} <Trace> StorageKafka (queue): Polled batch of 0 messages
    2019.07.11 09:20:15.256443 [ 14 ] {} <Trace> StorageKafka (queue): Polled batch of 0 messages
    2019.07.11 09:20:15.256653 [ 14 ] {} <Trace> StorageKafka (queue): Execution took 2501 ms.
    2019.07.11 09:20:15.757162 [ 15 ] {} <Debug> StorageKafka (queue): Started streaming to 1 attached views
    2019.07.11 09:20:16.257630 [ 15 ] {} <Trace> StorageKafka (queue): Polled batch of 0 messages
    2019.07.11 09:20:16.757829 [ 15 ] {} <Trace> StorageKafka (queue): Polled batch of 0 messages
    2019.07.11 09:20:17.257978 [ 15 ] {} <Trace> StorageKafka (queue): Polled batch of 0 messages
    2019.07.11 09:20:17.758169 [ 15 ] {} <Trace> StorageKafka (queue): Polled batch of 0 messages
    2019.07.11 09:20:18.258330 [ 15 ] {} <Trace> StorageKafka (queue): Polled batch of 0 messages
    2019.07.11 09:20:18.258649 [ 15 ] {} <Trace> StorageKafka (queue): Execution took 2501 ms.
    2019.07.11 09:20:18.758754 [ 17 ] {} <Debug> StorageKafka (queue): Started streaming to 1 attached views
    2019.07.11 09:20:19.259160 [ 17 ] {} <Trace> StorageKafka (queue): Polled batch of 0 messages
    2019.07.11 09:20:19.759347 [ 17 ] {} <Trace> StorageKafka (queue): Polled batch of 0 messages
    2019.07.11 09:20:20.259497 [ 17 ] {} <Trace> StorageKafka (queue): Polled batch of 0 messages
    2019.07.11 09:20:20.759644 [ 17 ] {} <Trace> StorageKafka (queue): Polled batch of 0 messages
    2019.07.11 09:20:20.978326 [ 43 ] {} <Trace> TCPHandlerFactory: TCP Request. Address: [::1]:42650
    2019.07.11 09:20:20.978417 [ 43 ] {} <Debug> TCPHandler: Connected ClickHouse client version 19.7.0, revision: 54419, database: system, user: zbxreadonly.
    2019.07.11 09:20:20.983454 [ 43 ] {6ba46812-2637-45b1-8e42-e87eaf2450d6} <Debug> executeQuery: (from [::1]:42650, user: zbxreadonly) SELECT value FROM system.metrics WHERE metric = 'DelayedInserts'
    2019.07.11 09:20:20.983795 [ 43 ] {6ba46812-2637-45b1-8e42-e87eaf2450d6} <Trace> InterpreterSelectQuery: FetchColumns -> Complete
    2019.07.11 09:20:20.983834 [ 43 ] {6ba46812-2637-45b1-8e42-e87eaf2450d6} <Debug> executeQuery: Query pipeline:
    Expression
    Expression
    Filter
    One
  • https://t.me/clickhouse_ru
    @suxxorz #108565 06:21 AM, 11 Jul 2019
    почему 0 messages, я смотрел там больше миллиона сейчас
  • @nbusorgin #108566 06:25 AM, 11 Jul 2019
    Покажите ещё результат вывода kafka-consumer-groups --bootstrap-server kafka-broker:9092 --group consumer-group-из-кликхауса --describe
  • https://t.me/clickhouse_ru
    @suxxorz #108567 06:29 AM, 11 Jul 2019
    я правильно понимаю groups - это то что я указывал group1 и newgroup1 в ENGINE = Kafka('kafkahost:9092', 'statopic001', 'newgroup1', 'JSONEachRow') - если да , то ошибка "does not exist"
  • @nbusorgin #108568 06:30 AM, 11 Jul 2019
    Правильно. Но если кафка не знает о кликхаусе, то откуда он тогда poll'ит сообщения?
  • @nbusorgin #108569 06:32 AM, 11 Jul 2019
    В clickhouse-server.err.log ошибок нет?
  • https://t.me/clickhouse_ru
    @suxxorz #108570 06:33 AM, 11 Jul 2019
    неа, нету
  • https://t.me/clickhouse_ru
    а вот эти группы, они же не от балды, МБ их нужно где-то до этого учитывать?
  • https://t.me/clickhouse_ru
    @suxxorz #108572 06:47 AM, 11 Jul 2019
    Ибо до этого я их особо-то и не настраивал, создавал сразу в ENGINE и все работало
  • https://t.me/clickhouse_ru
    @He11sin9 #108573 06:51 AM, 11 Jul 2019
    Joined.
  • От балды. Кафка автоматически балансирует партиции топика между консьюмерами из одной консьюмер-группы, руками группу нигде регистрировать не надо.
  • https://t.me/clickhouse_ru
    Словарь создал, но совсем не понял этот запрос 🤯
  • https://t.me/clickhouse_ru
    Так у вас с мускуле есть id или нет?
  • https://t.me/clickhouse_ru
    @122870188 #108577 07:15 AM, 11 Jul 2019
    господа, кто знает можно ли lowcardinality поле в первичный ключ?
  • https://t.me/clickhouse_ru
    Понял, тогда почему он не может увидеть группу?
  • https://t.me/clickhouse_ru
    Можно
  • https://t.me/clickhouse_ru
    @vlkolobaev #108580 07:37 AM, 11 Jul 2019
    Ребят, подскажите плз, можно ли в КХ, сделать "системного" пользователя, через которого будет работать репликация и шардирование, но под которым нельзя будет авторизоваться через кли/апи?
  • https://t.me/clickhouse_ru
    Спасибо
  • https://t.me/clickhouse_ru
    @ilevd #108582 08:02 AM, 11 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @OrNixx #108583 08:23 AM, 11 Jul 2019
    всем доброго утра. подскажите, что не так с макросами?
    $ cat /etc/clickhouse-server/config.d/macros.xml
    <macros>
    <shard>01</shard>
    <replica>fmedia-test</replica>
    </macros>

    2019.07.10 17:28:25.208143 [ 37 ] {} <Error> ConfigReloader: void DB::ConfigReloader::run(): Poco::Exception. Code: 1000, e.code() = 2, e.displayText() = File not found: /etc/clickhouse-server/config.d/.#macros.xml (version 19.7.3.1)
  • https://t.me/clickhouse_ru
    @149051052 #108585 08:48 AM, 11 Jul 2019
    Как можно одну БД рамзестить на другом диске на том же сервере?
  • https://t.me/clickhouse_ru
    @artilligence #108586 08:57 AM, 11 Jul 2019
    Господа, доброго времени суток! В документации есть пример данных с использованием схемы «звезда». В ней разово мержатся все таблицы в одну денормализованную.
    Скажите, пожалуйста, есть ли механизм, который позволяет автоматически вставлять в денормализованную таблицу данные каждый раз, когда добавляются данные в одну из нормализованных таблиц?
    Если да, так как быстро запись появится в денормализованной таблице с момента записи в одну из нормализованных таблиц?
  • перенести и сделать симлинк
  • https://t.me/clickhouse_ru
    Перенес, сделал, пишет нет доступа (Access denied)
  • проверяйте имеет ли пользователь, с которого запускается кх, необходимые права на директорию
  • https://t.me/clickhouse_ru
    @153320011 #108590 09:09 AM, 11 Jul 2019
    Привет, уперся в лимит Max query size exceeded, при запросе where in. На 33000. Подскажите как решить
  • https://t.me/clickhouse_ru
    Увеличить значение Max query size.
    Например: SETTINGS max_query_size = 104857600
  • https://t.me/clickhouse_ru
    @153320011 #108592 09:11 AM, 11 Jul 2019
    Это в config.xml? Есть какой-то потолок?
  • @AlexanderMillin #108593 09:11 AM, 11 Jul 2019
    SET max_query_size = {значение}
  • https://t.me/clickhouse_ru
    @153320011 #108594 09:11 AM, 11 Jul 2019
    А можно узнать какое сейчас?
  • https://t.me/clickhouse_ru
    @149051052 #108595 09:12 AM, 11 Jul 2019
    users.xml
  • @AlexanderMillin #108596 09:12 AM, 11 Jul 2019
    SELECT value FROM system.settings WHERE name = 'max_query_size'
  • https://t.me/clickhouse_ru
    Прописал, но после входа в клиент. Значение возвращается на предыдущее
  • @Zubrsan #108598 09:23 AM, 11 Jul 2019
    Joined.
  • Там же 1 по всем записям лежит? А все агрегаты кх итак в Uint64 считает. Почему поле с единственным значением не может быть меньшего типа?
  • Выше вопрос про этот пост
  • @odainic #108601 09:26 AM, 11 Jul 2019
    Всем привет. Чет мой вопрос остался без ответа, можно подниму еще разок:
    Есть ли в Clickhouse какой-нить конвеер, типа GO в MSSQL чтобы в одном запросе сделать например и создание View и потом из него таблицу?
  • SET устанавливает значение для текущей сессии. Если прописать в users.xml, изменение будет постоянным.
  • https://t.me/clickhouse_ru
    А есть лимит максимальный?
  • Конвейера нет. Есть create table ttt as vvv, где vvv - может быть вьюхой.
  • Мне просто надо создать таблицу и сразу забрать из нее одним запросом)
  • @odainic #108606 09:40 AM, 11 Jul 2019
    Может это можно решить подзапросом?
    Типа SELECT * FROM (CREATE TABLE еее as vw)?
  • Я использую summing merge tree. Вставляю из каждой только те поля, какие есть в исходных, а читаю через вьюху с группировкой.
  • Зачем?
  • Точнее тут. Зачем?
  • Нет доступа на сервак( И надо сейчас обновить в табло данные( А по View не работает. И соответственно единственный инструмент только Custom SQL из интерфейса табло(
  • @odainic #108611 09:42 AM, 11 Jul 2019
    подзапрос не работает(
  • https://t.me/clickhouse_ru
    @ikostukovski #108612 09:43 AM, 11 Jul 2019
    Есть один свободный инвайт на сегодня на митап в Минске(один из сотрудников не смог пойти). Если кому надо - пишите )
  • Create table as select спасёт отца русской демократии?
  • @odainic #108614 09:45 AM, 11 Jul 2019
    неа. Create Table отдает результат в виде лога выполнения)
    А мне данные нужны
  • @odainic #108615 09:46 AM, 11 Jul 2019
    в общем надо Создать таблицу из view и получить именно из неё данные в одном запросе)
  • @ramun25 #108616 09:46 AM, 11 Jul 2019
    Как табло узнает, что передним таблица, а не вью?
  • https://t.me/clickhouse_ru
    Спасибо большое за ответ. То есть, по каким- то признакам он потом мержит эти данные в одной таблице?
  • Да, подробнее в доке про движки MergeTree. Там после вставки с одной таблицы, в результирующей будут заполнены вставляемые поля, а остальные 0. И т.д. Потом группируете и получаете одну портянку. Summing MergeTree погруппирует за вас в фоне, чтобы меньше места на диске занимало
  • https://t.me/clickhouse_ru
    Небольшое уточнение. У меня есть 2 характеристики сущности во времени: изменение статуса, изменение местоположения. То есть, мне очень важно в правильном порядке делать этот join, чтобы сущность всегда честно была в определенной локации в определенном статусе в определенный момент времени. Используя ваш подход я смогу этого добиться?
  • https://t.me/clickhouse_ru
    Как часто выполняется фоновая группировка и как быстро?
  • Как я вас понял, у вас несколько таблиц с данными, которые вам надо объединить в одну портянку по общим ключам. Как сгруппируете, то и получите.
  • По таймауту драйвера ODBC) Если не получаются долго данные, падает по таймауту. А из таблицы оно сразу начинает строчки получать. Запрос во вьюхе тяжелый(
  • https://t.me/clickhouse_ru
    Да, мне нужно из n таблиц, строка каждой из которых пркдоставляет определенную характеристику одной сущности в момент времени. Мне нужно из этого собрать одно денормализованное представление, в котором каждая строка будет сразу все n характеристик предоставлять на каждый момент времени
  • Таймаут драйвера тоже поправить не могу( Нет доступа(
  • https://t.me/clickhouse_ru
    @artilligence #108626 09:55 AM, 11 Jul 2019
    В общем, буду копать в сторону summing merge tree, спасибо!
  • В общем, что вы хотите в кх нет. Оптимизируйте запрос, увеличивайте таймаут или внешним собственным процессом играйтесь с временными таблицами. Но временные таблицы - слабая сторона кх, у меня подобный процесс до сих пор косячит - а няньчусь с ним уже порядочно.
  • @odainic #108628 09:58 AM, 11 Jul 2019
    😔 Спасибо!
  • @J0hnSmitt #108629 10:00 AM, 11 Jul 2019
    подскажите, в чем может быть проблема:
    кластер 2х2, перестала реплицироваться одна нода, в логах Connection refused...
  • https://t.me/clickhouse_ru
    Спасибо
  • куда смотреть?(
  • https://t.me/clickhouse_ru
    interserver_http_host задан? на порту КХ слушает? файрвол разраешает ходить по этому ip/порту?
  • ничего не менял, не настраивал. подключение к этой реплике работает.
  • https://t.me/clickhouse_ru
    @Mike_Er #108634 10:04 AM, 11 Jul 2019
    клиентом?
  • https://t.me/clickhouse_ru
    @Mike_Er #108635 10:04 AM, 11 Jul 2019
    с другого хоста попробуйте подклключиться к этой реплике clickhouse-client -h проблемный хост
  • стандартное значение стоит <interserver_http_port>9009</interserver_http_port>
    клиентом на 9000 и по http тоже подключаюсь
  • @Kshnyakin #108637 10:06 AM, 11 Jul 2019
    Случаем, не на 127.0.0.1 listen получился?
  • https://t.me/clickhouse_ru
    хост какой? netstat сделайте посмотрите какие интерфейсы слушают 9009
  • https://t.me/clickhouse_ru
    @suxxorz #108639 10:08 AM, 11 Jul 2019
    Это нормально то, что КХ пулит по 9, 10 сообщений?

    2019.07.11 13:07:56.069456 [ 43 ] {} <Information> TCPHandler: Done processing connection.
    2019.07.11 13:07:56.155418 [ 22 ] {} <Trace> StorageKafka (queue): Polled batch of 10 messages
    2019.07.11 13:07:56.155509 [ 22 ] {} <Trace> StorageKafka (queue): Committing message with offset 91570
    2019.07.11 13:07:56.655646 [ 22 ] {} <Trace> StorageKafka (queue): Polled batch of 9 messages
    2019.07.11 13:07:56.655738 [ 22 ] {} <Trace> StorageKafka (queue): Committing message with offset 91579
    2019.07.11 13:07:57.156228 [ 22 ] {} <Trace> StorageKafka (queue): Polled batch of 10 messages
    2019.07.11 13:07:57.156309 [ 22 ] {} <Trace> StorageKafka (queue): Committing message with offset 91589
    2019.07.11 13:07:57.308640 [ 41 ] {} <Trace> TCPHandlerFactory: TCP Request. Address: [::1]:33692
    One
  • https://t.me/clickhouse_ru
    @vbuttermaan #108640 10:23 AM, 11 Jul 2019
    Добрый день, коллеги! Подскажите пожалуйста, можно както увеличить параметр parts_to_throw_insert без перезагрузки сервера?
  • <listen_host>::</listen_host>

    с другого хоста подключение есть, между репликами в шарде тоже клиент работает. вот только очередь растет
    queue_size: 531
    inserts_in_queue: 413
    merges_in_queue: 118
  • @n431m #108642 10:28 AM, 11 Jul 2019
    Joined.
  • netstat -at
    tcp6 0 0 [::]:8123 [::]:* LISTEN
    tcp6 0 0 [::]:9000 [::]:* LISTEN
    tcp6 0 0 [::]:9009 [::]:* LISTEN
  • https://t.me/clickhouse_ru
    @newsettler #108644 10:33 AM, 11 Jul 2019
    Подскажите, для разнесения баз по разным дискам можно просто примонтировать раздел в нужную точку для нужной базы, или есть опция базы, предписывающая КХ, где её размещать?
  • https://t.me/clickhouse_ru
    у вас по ipv6 только работает клик?
  • https://t.me/clickhouse_ru
    interserver_http_host параметр в конфиге нужен.
  • https://t.me/clickhouse_ru
    @vmoshikov #108647 10:56 AM, 11 Jul 2019
    Помогите разобраться с dictGetUInt64
    В https://t.me/clickhouse_ru/108440 @den_crane рекомендует исрользовать dictGetUInt64 для получения ID

    я не понимаю конструкцию запроса dictGetUInt64('t2', 'id', tuple( extractPath ...(url) )) id а именно, что происходит внутри tuple
    Denny Crane in ClickHouse не тормозит

    делаем MV create mat .. view as select count(), dictGetUInt64('t2', 'id', tuple( extractPath ...(url) )) id from t1 group by id

  • нет
  • https://t.me/clickhouse_ru
    ваш нетстат говорит, что ipv4 нет
  • https://t.me/clickhouse_ru
    когда нетстат показывает ipv6, это значит там v6 + v4
  • https://t.me/clickhouse_ru
    Принял, не знал
  • в доке сказано, что не нужен, если хост можно определить через hostname -f
  • https://t.me/clickhouse_ru
    @sergebezborodov #108653 11:23 AM, 11 Jul 2019
    Колеги приветствую!
    есть ли существенная разница в плане производительности и потребления ресурсов между запросами:

    select url, count() as cnt
    from logs
    group by url
    having cnt > 10
    limit 100

    и

    select url, cnt
    from (
    select url, count() as cnt
    from logs
    group by url
    ) where cnt > 10
    limit 100

    или внутри все равно будет приведено +- к одному?
  • https://t.me/clickhouse_ru
    @metikovvadim #108655 11:52 AM, 11 Jul 2019
    Привет всем!
    Кто решал на CentOS 7
    Application: It looks like the process has no CAP_NET_ADMIN capability, 'taskstats' performance statistics will be disabled. It could happen due to incorrect ClickHou
    se package installation. You could resolve the problem manually with 'sudo setcap cap_net_admin=+ep /usr/bin
    /clickhouse'. Note that it will not work on 'nosuid' mounted filesystems. It also doesn't work if you run cl
    ickhouse-server inside network namespace as it happens in some containers.

    ?
  • https://t.me/clickhouse_ru
    @metikovvadim #108656 11:53 AM, 11 Jul 2019
    Устанавливаю в service-файле:
    [SERVICE]
    CapabilityBoundingSet=CAP_NET_ADMIN
    не помогает
  • https://t.me/clickhouse_ru
    никакой любви нет. Я не пользуюсь. Да и очень медленно генерация. Просто за неимением лучшего.
  • https://t.me/clickhouse_ru
    А что должно быть в mv? Урлы отпарсили?
  • https://t.me/clickhouse_ru
    Я делаю этим пользвателем default оставляю его без пароля как изначально было и разрешаю ему ходить только с айпи адресов других кх нод кластера.
  • https://t.me/clickhouse_ru
    Не хватает тега <yandex> и не надо больше ничего в других конфигах писать.
  • https://t.me/clickhouse_ru
    Идеальная MV для меня - отфильтрованная t1 (метрика) с несколькими стобцами из словаря или t2

    Фильтрую для того, что бы исключить дубли в данных метрики
  • https://t.me/clickhouse_ru
    Это невозможно.
  • https://t.me/clickhouse_ru
    @OrNixx ↶ Reply to #108660 #108663 12:00 PM, 11 Jul 2019
    Разобрался, спасибо
  • https://t.me/clickhouse_ru
    Там движок summing он единички складвает .
  • https://t.me/clickhouse_ru
    Через detach table поправить sql на диске attach, что в принципе тоже самое что и ребут
  • https://t.me/clickhouse_ru
    В доке кх описана масса функций как парсить урл. Ищите которая вам подходит что бы отрезать домен как вам надо.
  • https://t.me/clickhouse_ru
    @stovm #108667 12:13 PM, 11 Jul 2019
    Подскажите, пожалуйста, как правильно работать с tuple?
    Я создал таблицу с tup Array(Tuple(Int32, Int32))
    По факту в таблице 2 поля:
    tup.1 Array(Int32),
    tup.2 Array(Int32)
    Вопроса 2:
    как из них читать?
    как сделать insert в поле tup ?
  • https://t.me/clickhouse_ru
    @stovm #108668 12:18 PM, 11 Jul 2019
    Уже час бьюсь, не могу победить =/
  • https://t.me/clickhouse_ru
    Писать как в два массива [0],[1]
  • https://t.me/clickhouse_ru
    @stovm #108670 12:19 PM, 11 Jul 2019
    Ну то есть работать как с Nested?
  • https://t.me/clickhouse_ru
    Ну да.
  • https://t.me/clickhouse_ru
    @stovm #108672 12:31 PM, 11 Jul 2019
    Ясно, спасибо. Думал, всё же можно продолжать работать с кортежами
  • @pavel_maksimow #108673 01:03 PM, 11 Jul 2019
    Всем привет. Почему при использовании нового синтаксиса джойна, результат отличается от старого синтаксиса

    новый синтаксис такой:
    FROM inner.finance_blank_with_amount_lst as t1
    LEFT JOIN inner.gds_bonus_with_fact_factor_lst AS t2 ON t1.TicketID = t2.TicketID

    не совпадет результат, если использовать старый
    ANY LEFT JOIN(
    SELECT TicketID
    FROM inner.gds_bonus_with_fact_factor_lst
    ) USING TicketID
  • может дело в ANY ?
  • а какой аналог его в новом синтаксисе? отличается?
  • так же ANY LEFT JOIN ... ON ..
  • спасибо 🙏
  • https://t.me/clickhouse_ru
    Та с функциями то все понятно. Я стучусь в словарь URLы должны совпадать. Но я на месте post_id всегда получаю 0
    SELECT count(), dictGetUInt64('posts', 'post_id', tuple(path(URL))) AS post_id
    FROM (
    SELECT path(URL)
    FROM (
    SELECT CounterID, ClientID, Date, URL, any(LastTrafficSource) AS TrafficSource
    FROM row_hits
    WHERE like(URL, concat('%', 'https://example.ru/', '%'))
    GROUP BY CounterID, ClientID, Date, URL
    )
    )
    GROUP BY post_id
  • https://t.me/clickhouse_ru
    @uncletimmy3 #108679 01:57 PM, 11 Jul 2019
    Joined.
  • @894720087 #108680 02:02 PM, 11 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @botanic_kitty #108681 02:16 PM, 11 Jul 2019
    /3
  • @profile_undefined #108682 02:18 PM, 11 Jul 2019
    Ребят, подскажите, для того, что бы создать мат. вью без хранения в ней данных, достаточно просто не описывать схему а указать таблицу, которая принимает данные?
  • матвью без хранения это же просто вью
  • @profile_undefined #108685 02:19 PM, 11 Jul 2019
    нет, мне нужна мат вью, как триггер на вставку в другую таблицу. Данные должны попадать в конечную таблицу, которая указывается после 'TO'; в самой же мат. вью не должно быть данных.
  • https://t.me/clickhouse_ru
    @AJleksei008 #108686 02:23 PM, 11 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    если TO указано то вью будет посылать данные туда
  • https://t.me/clickhouse_ru
    @den_crane #108688 02:25 PM, 11 Jul 2019
    если TO не указано MV создаст свою собственную таблицу и будет писать в нее
  • Она туда посылает данные, но так же эти данные попадают в саму мат.вью
  • @profile_undefined #108690 02:26 PM, 11 Jul 2019
    Тоесть, задачу по переправке данных в другую таблицу она выполняет
  • @profile_undefined #108691 02:26 PM, 11 Jul 2019
    Но в ней так же данные лежат
  • https://t.me/clickhouse_ru
    @den_crane #108692 02:27 PM, 11 Jul 2019
    собственная таблица (неявная) называется .inner.mvname
  • @profile_undefined #108693 02:27 PM, 11 Jul 2019
    да, она создается, если ТО не указать
  • https://t.me/clickhouse_ru
    @den_crane #108694 02:27 PM, 11 Jul 2019
    когда вы делаяете запрос к MV она читает либо TO либо .inner.mvname
  • @profile_undefined #108695 02:29 PM, 11 Jul 2019
    странно, я указываю ТО, .inner.mvname не создается, данные попадают в конечную таблицу. Но когда делаю запрос к самой мат вью select count(*), то кликхаус говорит, что там лежат какие-то записи
  • @profile_undefined #108696 02:29 PM, 11 Jul 2019
    @den_crane
  • https://t.me/clickhouse_ru
    когда вы делаяете запрос к MV она читает либо TO либо .inner.mvname
  • Понятно. Спасибо. Я думал в ней лежат тоже какие-то данные, которые могут занимать лишнее место
  • https://t.me/clickhouse_ru
    сделайте тест и напишите truncate table которая to и увидите что в MV тоже все пропадет
  • @profile_undefined #108700 02:30 PM, 11 Jul 2019
    @den_crane хорошо, спасибо!)
  • https://t.me/clickhouse_ru
    покажите
    select dictGetUInt64('posts', 'post_id', tuple(путь написанный вручную))
    select dictGetUInt64('posts', 'post_id', tuple(path(урл написанный вручную)))
  • https://t.me/clickhouse_ru
    @den_crane #108702 02:32 PM, 11 Jul 2019
    потом select * from таблица на которую смотрит dict where xxxx = путь написанный вручную
  • https://t.me/clickhouse_ru
    @nivelium #108703 02:34 PM, 11 Jul 2019
    Всем привет, насколько я понял виртуальные поля _topic, _offset, _key таблицы с engine = kafka доступны только с версии 19.11, на докерхабе я видел только клик версии 19.9, кто-нибудь знает, когда примерно 19.11 будет в докерхабе, или как получить доступ к этим полям в 19.9?
  • https://t.me/clickhouse_ru
    Оба 'select dictGetUInt64' - возвращают 0

    В таблице на которую смотри dist - запись есть
  • https://t.me/clickhouse_ru
    сделайте create database dict Engine=Dictionary
  • https://t.me/clickhouse_ru
    @den_crane #108706 02:47 PM, 11 Jul 2019
    тогда в базе dict появится таблица posts
  • https://t.me/clickhouse_ru
    @den_crane #108707 02:47 PM, 11 Jul 2019
    отображение словаря
  • https://t.me/clickhouse_ru
    @den_crane #108708 02:47 PM, 11 Jul 2019
    и проверьте что в ней
  • https://t.me/clickhouse_ru
    Плная таблица, нужный URL тоже в ней
  • https://t.me/clickhouse_ru
    почему урл-то? там путь вроде в таблице хранится
  • https://t.me/clickhouse_ru
    Я залил туда урлы. И функцией достаю путь
  • https://t.me/clickhouse_ru
    речь была про t1 - урлы, t2 - пути и id путей, словарь делаем на t2 ? не ?
  • https://t.me/clickhouse_ru
    Словарь делаем на t2 чтобы к урлам t1 добавить id
  • https://t.me/clickhouse_ru
    ОК и как понимать эту фразу тогда?

    >Плная таблица, нужный URL тоже в ней
  • https://t.me/clickhouse_ru
    @den_crane #108717 03:01 PM, 11 Jul 2019
    откуда там урлы?
  • https://t.me/clickhouse_ru
    В словаре есть колонка id и url
  • https://t.me/clickhouse_ru
    @vmoshikov #108719 03:05 PM, 11 Jul 2019
    У меня в t1 урлы с разными доменами, но path совпадает
  • https://t.me/clickhouse_ru
    словарь это K/V , по K возвращает V . Естественно ваш K это путь. Каким образом в t2 попали урлы и зачем, я осознать не могу. Извенити.
  • https://t.me/clickhouse_ru
    @vmoshikov #108721 03:09 PM, 11 Jul 2019
    Ну я же поле из словаря прошоняю через path
  • https://t.me/clickhouse_ru
    еще раз словарь -- это K/V
    например есть табличка

    вася | петя | 16
    таня | тася | 42

    словарь может вернуть петя или 16 по ключу вася. Почему у вас в словаре не вася, а что-то другое это вне моего понимания.
  • https://t.me/clickhouse_ru
    @den_crane #108723 03:26 PM, 11 Jul 2019
    т.е. нафига там урлы?
  • https://t.me/clickhouse_ru
    @den_crane #108724 03:27 PM, 11 Jul 2019
    ну и нет никакой проблемы их обрезать и сделать ключом, а сам урл положить в другое поле
  • https://t.me/clickhouse_ru
    @den_crane #108725 03:27 PM, 11 Jul 2019
    это можно сделать даже на уровне виртуальных полей alias / materialized
  • https://t.me/clickhouse_ru
    Так и сделаю
  • https://t.me/clickhouse_ru
    @frankegoesdown #108727 03:36 PM, 11 Jul 2019
    Коллеги добрый день. В документации говорится, что в движке AggregatingMergeTree строки с одинковым первичным ключом заменяются на одну, а что проиходит в случае, если у нас таблица состоит из 5 колонок и первичный ключ только на первых 3х, то все строки с одинаковым ключом схлопнутся в одну не смотря на остальные 2 колонки?
  • https://t.me/clickhouse_ru
    в двух колонках будет any -- любое значение из этих колонок схлопнутых строк
  • https://t.me/clickhouse_ru
    @frankegoesdown #108729 03:37 PM, 11 Jul 2019
    @den_crane спасибо
  • https://t.me/clickhouse_ru
    @den_crane #108730 03:39 PM, 11 Jul 2019
    ну можно их вычислить всякими maxState argMaxState и положить например что-то разумное
  • @ramun25 #108731 03:45 PM, 11 Jul 2019
    В общем, хелп. Есть тяжёлые запросы на distributed таблицах. И они зависают. Причём намертво. Может на одной ноде памяти не хватает, может одна года по сети моргнула- хз. Но ошибок нет и висит. Куда смотреть?
  • https://t.me/clickhouse_ru
    Метрики нод и логи?
  • https://t.me/clickhouse_ru
    если это началось после апгрейда, даунгредится назад
  • @fsanaulla #108734 03:50 PM, 11 Jul 2019
    Joined.
  • в табло к сожалению нет Initial SQL для драйвера Generic ODBC (есть только для некоторых -- не всех -- конкретных СУБД, в хелпе можно найти каких именно, погуглив **Initial SQL**). а другого варианта не придумаю. даже CTE не получится выполнить -- Custom SQL должен начинаться с SELECT
  • @fsanaulla #108736 04:00 PM, 11 Jul 2019
    Всем привет, почему нельзя сделать: ALTER TABLE x MODIFY COLUMN x String DEFAULT ‘’ для (x Nullable(String)) ?
    Спасибо!
  • В логах ни за что глаз не цепляется. Ошибки если и есть, то по недоступности узла по сети. Причём я в параллели подключён клиентом на "недоступный" сервак- меня не выкидывает. Количество открытых сессий меньше ограничений, увеличили ограничения на количество одновременных запросов. Но кардинально не изменилось. Что в метриках? Вижу сколько памяти, сколько запросов - причину зависания там не видно (мне).
  • @laBA11ENA #108738 04:10 PM, 11 Jul 2019
    Joined.
  • Апгрейд не делали. Были другие проблемы, которые сами себе выкопали, а потом закапывали. Теперь дошли до проблемы, у которой не видим причин (или путей обхода)
  • https://t.me/clickhouse_ru
    а какие таймауты поменяны от дефолтных? Может тупо инициатор ждет 10500 минут а нода ничего не пришлет?
    Или после такого зависания все остальные тоже виснут?
  • Таймаут все дефолтные. Там вообще почти все параметры дефолтные. Увеличили количество одновременно выполняемых запросов и количество партов в партиции. Количество партов немного, увеличивали чтобы данные перелить
  • https://t.me/clickhouse_ru
    create table XX (x Nullable(String)) engine=MergeTree order by tuple();
    ALTER TABLE XX MODIFY COLUMN x String DEFAULT ''
    Ok.
  • https://t.me/clickhouse_ru
    зависает один на котором сбойнуло или все?
  • @ramun25 #108744 04:21 PM, 11 Jul 2019
    По очереди, кто-то чаще, кто-то меньше. Но зависает не тот, который по сети временно не доступен. Зависает тот на котором селект на кластер. Точнее инсерт селект на вьюху, в которой селект на кластер.
  • @ramun25 #108745 04:25 PM, 11 Jul 2019
    Но приоритетнее наверно выяснить, почему по сети узел временно не доступен, чем то что инсерт зависает.
  • https://t.me/clickhouse_ru
    @ployd #108746 04:28 PM, 11 Jul 2019
    Можно ли как-нибудь в SELECT в MATERIALIZED VIEW сделать фейковое поле, чтобы в HAVING заиспользовать, при этом в саму таблицу не класть?
    CREATE MATERIALIZED VIEW ... TO ...
    AS SELECT
    argMin(..., ...) AS _some_tmp_field
    FROM ...
    GROUP BY ..
    HAVING _some_tmp_field != 0
  • @IvanZhiltsov #108747 04:40 PM, 11 Jul 2019
    а написать HAVING argMin(...)!=0 нельзя что-ли?
  • https://t.me/clickhouse_ru
    @ployd ↶ Reply to #108747 #108748 04:44 PM, 11 Jul 2019
    Можно. Но там условие сложное, хочется названия дать
  • Обернуть в еще один SELECT без этого поля, если проблема в несоответствии количества столбцов
  • create table XXX (x Nullable(String), y String) engine=MergeTree order by tuple();
    Ok.
    insert into XXX (y) values (‘a’);
    Ok.
    ALTER TABLE XXX MODIFY COLUMN x String DEFAULT ‘’;

    Code: 349. DB::Exception: Received from clickhouse-server:9000, 172.17.0.2. DB::Exception: Cannot convert NULL value to non-Nullable type.
  • https://t.me/clickhouse_ru
    @ployd ↶ Reply to #108749 #108751 05:13 PM, 11 Jul 2019
    Разве можно в MV обернуть?
  • https://t.me/clickhouse_ru
    @ployd #108752 05:13 PM, 11 Jul 2019
    Я так понимаю в From подзапрос не засунуть
  • CREATE MATERIALIZED VIEW ... TO ...
    AS SELECT col1, col2,... FROM (SELECT
    argMin(..., ...) AS _some_tmp_field
    FROM ...
    GROUP BY ..
    HAVING _some_tmp_field != 0)
  • @AlexanderMillin #108754 05:18 PM, 11 Jul 2019
    У меня есть такие в бою
  • https://t.me/clickhouse_ru
    @ployd #108756 05:19 PM, 11 Jul 2019
    Хм. Не думал, что так работать будет. Спасибо
  • https://t.me/clickhouse_ru
    @Treno11 #108758 05:19 PM, 11 Jul 2019
    Добрый вечер всем! Не могу придумать, как сделать topk(N) запрос с трешолдом от 5 допустим. Тоесть group by X having count(Y) >= Z limit N где Z = 5
  • @a_ksn #108759 05:20 PM, 11 Jul 2019
    Joined.
  • Только не забывайте, что GROUP BY в MV работает только в рамках одного блока INSERT в исходную таблицу
  • https://t.me/clickhouse_ru
    ALTER TABLE XXX MODIFY COLUMN x Nullable(String) DEFAULT '';
  • https://t.me/clickhouse_ru
    @ployd ↶ Reply to #108760 #108762 05:31 PM, 11 Jul 2019
    Наоборот, максимально этим пользуюсь)
  • https://t.me/clickhouse_ru
    в смысле это же поле / его часть используется в select ? можно сделать промежуточный alias

    select max....( length( arrayMap ( ...) as X0) as X1) as X
    having X1 >0
  • https://t.me/clickhouse_ru
    @430572334 #108765 05:40 PM, 11 Jul 2019
    😅
  • https://t.me/clickhouse_ru
    @ployd ↶ Reply to #108764 #108766 05:42 PM, 11 Jul 2019
    Не используется xd
  • https://t.me/clickhouse_ru
    @ployd #108767 05:42 PM, 11 Jul 2019
    Ну да ладно
  • Прости, возможно я неправильно выразился. Мой вопрос относительно смены типа.
  • https://t.me/clickhouse_ru
    наверное баг или просто еще не сделали, никто не натыкался.
    можно попробовать проапдейтить сначала
  • После
    alter table XXX update x='' where isNull(x) ничего не меняется
  • https://t.me/clickhouse_ru
    a select count() from XXX where isNull(x) ?
  • @fsanaulla #108772 06:20 PM, 11 Jul 2019
    Возвращает 0
  • @fsanaulla #108773 06:20 PM, 11 Jul 2019
    Но всё также падает
  • @thx_durov #108774 07:50 PM, 11 Jul 2019
    Joined.
  • @SWx5YQ #108775 07:50 PM, 11 Jul 2019
    Ребята, большое спасибо за сегодняшний митап!
    Было оч круто и полезно!
  • А можно где-то достать слайды митапа или запись? Очень понравилась, спасибо!
  • https://t.me/clickhouse_ru
    Alter table update отрабатывает не мгновенно, а при следующем мердже. Вероятно еще не успел заапдейтить, если таблица большая. Принудительный merge может помочь, но это может быть больно.
  • https://t.me/clickhouse_ru
    там реально не работает, видимо вообще не реализовано, дело не в update
  • https://t.me/clickhouse_ru
    @andrei_tupitcyn #108779 08:28 PM, 11 Jul 2019
    Ещё можно добавть новую колонку alter table xxx add column y String default x; Потом удалить default через alter, дропнуть x и переименовать y -> x
  • https://t.me/clickhouse_ru
    @vstepankov #108780 08:28 PM, 11 Jul 2019
    переименование уже сделали?
  • https://t.me/clickhouse_ru
    @den_crane #108781 08:29 PM, 11 Jul 2019
    переименовать колонку только нельзя
  • https://t.me/clickhouse_ru
    @andrei_tupitcyn #108782 08:29 PM, 11 Jul 2019
    Можно - таким же хаком через default)
  • https://t.me/clickhouse_ru
    @den_crane #108783 08:31 PM, 11 Jul 2019
    >Можно - таким же хаком через default)
    для default x, проблема в том что надо дождаться полного мержа, или сделать optimize final
    поэтому сильно дешевле или два update или перелить все в новую таблицу
  • https://t.me/clickhouse_ru
    @andrei_tupitcyn #108784 08:33 PM, 11 Jul 2019
    Ну да, я и писал, что может быть больно, апдейт по сути тоже самое, просто более человечечким лицом
  • https://t.me/clickhouse_ru
    yandex/clickhouse-presentations

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

  • https://t.me/clickhouse_ru
    @606215749 #108786 09:56 PM, 11 Jul 2019
    Спасибо большое за митап!
  • @728205186 #108787 09:59 PM, 11 Jul 2019
    +1
  • @andrey45263 #108788 10:08 PM, 11 Jul 2019
    +1. Спасибо всем огромное за митап!
  • @kinzarra #108789 10:44 PM, 11 Jul 2019
    кто-нибудь через питон забирал 50 млн строк в массив?
  • https://t.me/clickhouse_ru
    @tailsRoot #108790 11:53 PM, 11 Jul 2019
    Могу ли узнать если есть уже ранее заготовленные столбцы то может ли кликхаус входящий json раскидать по ключу и значнию ?
  • 12 July 2019 (227 messages)
  • https://t.me/clickhouse_ru
    @den_crane #108791 12:03 AM, 12 Jul 2019
    КХ понимает подмножество json -- JSONEachRow

    select 1 a, 2 b format JSONEachRow
    {"a":1,"b":2}

    Он не понимает массивы в виде К/V но понимает

    select [1,2,3] k, [3,4,5] v format JSONEachRow
    {"k":[1,2,3],"v":[3,4,5]}
  • https://t.me/clickhouse_ru
    да я уже разобрался вот только думаю теперь как передать это в prepare
  • https://t.me/clickhouse_ru
    mdraid (hba)

    dd if=/dev/zero of=test oflag=direct bs=100M count=1000
    104857600000 bytes (105 GB, 98 GiB) copied, 236.313 s, 444 MB/s

    dd if=test of=/dev/null iflag=direct bs=100M
    104857600000 bytes (105 GB, 98 GiB) copied, 64.3187 s, 1.6 GB/s

    fio --name=test1 --filename=fio --rw=read --bs=10M --direct=1 --ioengine=libaio --iodepth=32 --size=100G --numjobs=1
    read: IOPS=177, BW=1864MB/s

    таже карточка но рейд железный

    dd if=/dev/zero of=test oflag=direct bs=100M count=1000
    104857600000 bytes (105 GB, 98 GiB) copied, 230.426 s, 455 MB/s

    dd if=test of=/dev/null iflag=direct bs=100M
    104857600000 bytes (105 GB, 98 GiB) copied, 167.755 s, 625 MB/s

    fio --name=test1 --filename=fio --rw=read --bs=10M --direct=1 --ioengine=libaio --iodepth=32 --size=100G --numjobs=1
    read: IOPS=63, BW=654MB/s

    mdraid
    dd if=/dev/zero of=test oflag=direct bs=1M count=100000
    104857600000 bytes (105 GB, 98 GiB) copied, 367.762 s, 285 MB/s

    dd if=test of=/dev/null iflag=direct bs=1M
    5214568448 bytes (5.2 GB, 4.9 GiB) copied, 26.7059 s, 195 MB/s

    dd if=test of=/dev/null iflag=direct bs=10M
    18245222400 bytes (18 GB, 17 GiB) copied, 17.5792 s, 1.0 GB/s
  • https://t.me/clickhouse_ru
    @kiserp #108797 03:50 AM, 12 Jul 2019
    Всем привет, тут хотят у нас в ISP Hadoop + Spark разворачивать и в него закидывать всю инфу из разных баз (Postgres, биллинг самописный, логи, Jira, Сетевое оборудование, логи чатов и проч). Я раньше погляжывал на Spark, но потом появился CH. Читал на Percona сравнение систем, там CH победил, учитывая появение ML функций появился еще один аргумент за. Подскажите еще чего-нибудь на тему холивара, может кто из личного опыта подскажет?
  • @238773844 #108798 03:51 AM, 12 Jul 2019
    задача то какая?
  • @238773844 #108799 03:52 AM, 12 Jul 2019
    записываь можно куда угодно, вопрос что с этим собираетесь делать =)
  • https://t.me/clickhouse_ru
    @kiserp #108800 03:56 AM, 12 Jul 2019
    А, пардон, не указал, глобально сохранить и привлечь клиентов, за меньшие деньги. Конкретно №1 - проанализировать причины ухода, предсказание оттока и его предотвращение. Пример: 1)были ошибки на порту + звонок в ТП + отсутствие трафика = абон недоволен - надо ему позвонить и поговорить. 2) был визит инженера + звонок в ТП + непополняется баланс = проблема.
  • @238773844 #108801 04:02 AM, 12 Jul 2019
    Я со своей колокольни тоько могу судить - оработал в ISP(комстар регионы в НН) , если бы эту инфу грузить с моей сторой работы - колтчество данных в день для CH было бы очень маленокое, даже если бы я грузил все трапы со всех свиечй достпупа (ИМХО вся магия в этой задаче присходили бы на жтапе ETL + ML(не знаю как ML работает в CH и можно ли обойтись только CH). вполне возможно что вам нужен будет и CH и Spark
  • @238773844 #108802 04:03 AM, 12 Jul 2019
    Spark - ETL + ML , CH - сторадж + аналитика
  • @238773844 #108803 04:06 AM, 12 Jul 2019
    вообще инетересно как делают ML на клике
  • https://t.me/clickhouse_ru
    @kiserp #108804 04:08 AM, 12 Jul 2019
    @milovidov_an на митапе говорил, что добавили функции базовые в последнем релизе и можно realtime предсказания делать.
  • @238773844 #108805 04:11 AM, 12 Jul 2019
    Для себя я вот такую картину вижу (как я бы начинал делать, может и не правильный подход) - CH - сырые данные и подготовка данных для ML модели, сам ML на python
  • @238773844 #108806 04:24 AM, 12 Jul 2019
    Интересна задача - но опять же есть ощущение что ml вам придется делать на этапе etl , перед тем как вставлять данные в кх: анализ чата и выставление меток, анализ тикетов и классификация.
  • Да
  • @dmitriy_negreev #108808 06:03 AM, 12 Jul 2019
    где можно посмотреть прогресс слияния ReplacingMergeTree?
  • https://t.me/clickhouse_ru
    select * from system.merges как обычно
  • Не лагало? Можно как-то оптимизировать?какая либа?
  • https://t.me/clickhouse_ru
    @uncletimmy3 #108811 06:33 AM, 12 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @uncletimmy3 #108812 06:47 AM, 12 Jul 2019
    привет, подскажите, хочу поменять ip, нужно ли после смены ip выполнить SYSTEM DROP DNS CACHE или само обнвоится?
  • Либа https://github.com/kszucs/pandahouse. Юзаем старую версию КХ 1.54390. Даже очень совсем неоптимизированный запрос с JOIN и агрегатными функциями на очень неудачной схеме справляется за 3 минуты и вытягивает 45 МЛН записей без каких либо вопросов
    GitHub - kszucs/pandahouse: Pandas interface for Clickhouse database

    Pandas interface for Clickhouse database. Contribute to kszucs/pandahouse development by creating an account on GitHub.

  • насколько помню, если КХ через пару попыток обращения понимает что IP не валидный , то он сам сбрасывает кеш и все должно будет работать . Главное не заюзать старый IP в другом или рядом стоящем кластере :)

    *Не уверен*, просто на подумать и поискать ответ: Возможно будет важно чтобы у вас в конфигах имена были вместо IP, это на случай реплицирования через zk. Не знаю есть ли у него кеш, и посмотрите что у него записано , нет ли там IP вместо доменных имен.
  • https://t.me/clickhouse_ru
    @Wanty #108815 07:21 AM, 12 Jul 2019
    Joined.
  • Спасибо
  • https://t.me/clickhouse_ru
    в remote_servers имена, в создании таблиц использовали макросы, в макросах тоже имена, в зукипере по пути /tables/../replicas/.../host тоже имена
    еще где-то посмотреть ?
  • в таком случае похоже что проблем быть не должно.
  • @bovops #108822 09:08 AM, 12 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @alexmirtoff #108823 09:10 AM, 12 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @nightguide #108824 09:12 AM, 12 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @nightguide #108825 09:12 AM, 12 Jul 2019
    Коллеги, всем привет))))
  • https://t.me/clickhouse_ru
    @149051052 #108826 09:13 AM, 12 Jul 2019
    Привет!
    Нужно перегнать терабайт данных из одной таблицы в другую (разная структура).
    Запрос выполняется около часа, потом отваливается с сообщением "Code: 394, e.displayText() = DB::Exception: Query was cancelled (version 19.9.3.31 (official build))"

    Нужно поменять какую-то настройку?
  • https://t.me/clickhouse_ru
    @nightguide #108827 09:13 AM, 12 Jul 2019
    Подскажите, пожалуйста, есть ли для Clickhouse законченное решение для просмотра логов , типо как решение loghouse , но оно заточено под k8s , а хочется чтото под standalone
  • https://t.me/clickhouse_ru
    @nightguide #108828 09:14 AM, 12 Jul 2019
    Кароч нужно что-то типа ELK , но на clickhouse )
  • https://t.me/clickhouse_ru
    @nightguide #108829 09:14 AM, 12 Jul 2019
    tabbix и прочие клиентские приложения для clickhouse не предлагать )
  • https://t.me/clickhouse_ru
    @rhcsa #108830 09:15 AM, 12 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    Добрый день :)
    В этом чате работает бот который следит за тем чтобы люди не спамили, поэтому будет лучше если вы будете задавать вопрос одним сообщением. Да и для остальных, я думаю, это будет очень удобно.
    Заранее спасибо. ;)
  • https://t.me/clickhouse_ru
    @nightguide #108832 09:17 AM, 12 Jul 2019
    Прошу прощения ) больше так не буду )
  • @sss56783456 #108833 09:18 AM, 12 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @kbychkov #108834 09:19 AM, 12 Jul 2019
    Joined.
  • @wha1happened #108835 09:21 AM, 12 Jul 2019
    Joined.
  • @ilyas_pro #108836 09:24 AM, 12 Jul 2019
    Подскажите, как проще всего переименовать неключевую колонку в mergeTree таблице?
    Ренейма же вроде нет?
  • https://t.me/clickhouse_ru
    вчера обсуждали https://t.me/clickhouse_ru/108779 и вниз
    Andrei Tupitcyn in ClickHouse не тормозит

    Ещё можно добавть новую колонку alter table xxx add column y String default x; Потом удалить default через alter, дропнуть x и переименовать y -> x

  • @ilyas_pro #108838 09:34 AM, 12 Jul 2019
    Спасибо!
    Тогда несколько вопросов про мутациям вцелом и про update в частности:
    1. мутации до сих пор в бете?
    2. в документации сказано что при выполнении мутации таблица в старом формате конвертируется в новый формат. О каком формате идёт речь?
    3. чем может быть чревата обратная несовместимость этих форматов?
    4. обновление формата - это тяжёлая операция? От объёма данных и размера кластера это зависит или нет?
  • https://t.me/clickhouse_ru
    2. Новый формат хранения на диске
    3. Тем что при откате КХ на старую версию таблица не заведется
    4. Любая мутация это, по сути, переливание всех данных из старых столбцов в новые. В какой формат их переливать особой разницы нет.
  • https://t.me/clickhouse_ru
    redash?
  • https://t.me/clickhouse_ru
    @ojowoo #108841 09:40 AM, 12 Jul 2019
    А есть ли планы или уже какие-то инструменты для анонимизации (не для тестирования) в CH? Что-то в духе https://aircloak.com/wp-content/uploads/Diffix-High-Utility-Database-Anonymization.pdf
  • https://t.me/clickhouse_ru
    Обфускация данных для тестов производительности

    Пользователи ClickHouse знают, что его главное преимущество — высокая скорость обработки аналитических запросов. Но как мы можем выдвигать такие утверждения? Это должно подтверждаться тестами...

  • https://t.me/clickhouse_ru
    @ojowoo #108843 09:41 AM, 12 Jul 2019
    спасибо :) это я нагуглил и поэтому написал "не для тестирования"
  • https://t.me/clickhouse_ru
    @blind_oracle #108844 09:41 AM, 12 Jul 2019
    а в чем разница?
  • https://t.me/clickhouse_ru
    @ojowoo #108845 09:42 AM, 12 Jul 2019
    а для соответствия GDPR например
  • https://t.me/clickhouse_ru
    @blind_oracle #108846 09:42 AM, 12 Jul 2019
    ну для чего вы обфускатор использовать будете это уже ваше дело :)
  • https://t.me/clickhouse_ru
    @blind_oracle #108847 09:42 AM, 12 Jul 2019
    для тестов или гдпр
  • https://t.me/clickhouse_ru
    Ну это же вроде тоже не то, больше для графиков ))) а мне нужно для удобного фильтра по логам
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #108849 09:46 AM, 12 Jul 2019
    сам ищу :(
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #108850 09:46 AM, 12 Jul 2019
    думал расковырять логхаус
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #108851 09:46 AM, 12 Jul 2019
    но он плохо расковыривается
  • То есть update на старой таблице не легче чем трюк с дефолтным значением и optimize partition - оба способа будут переналивать данные.
    А на новых таблицах update затрагивает только целевой столбец, а остальные данные не ворочает.
    Я правильно понимаю?
  • https://t.me/clickhouse_ru
    @ojowoo ↶ Reply to #108846 #108853 09:48 AM, 12 Jul 2019
    в PDF по ссылке описана разница между обфускацией и анонимизацией, не претендую на звание эксперта в этой области, но, видимо, а) там всё не просто б) спрос есть и будет расти
  • https://t.me/clickhouse_ru
    @blinkovivan #108854 09:50 AM, 12 Jul 2019
    Live merge of "processors" branch

    Slides: http://clickhouse.yandex/presentations/meetup24/5.%20Clickhouse%20query%20execution%20pipeline%20changes/ Processors description: https://github.com/...

  • https://t.me/clickhouse_ru
    еще от вк была поделка, но она не такая клевая :( https://github.com/VKCOM/lighthouse
    GitHub - VKCOM/lighthouse: Lightweight interface for ClickHouse

    Lightweight interface for ClickHouse. Contribute to VKCOM/lighthouse development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    Т.к. парты в КХ по сути immutable то любое их изменение вызывает цикл декомпрессия-изменение-сжатие обратно.
    В доках пишут что любые мутации полностью переколбашивают весь парт, а не только отдельные столбцы.
  • https://t.me/clickhouse_ru
    Не читал, многабукаф, но по моей практике GDPR-комплаенса до таких низкоуровневых вещей никто не опускается. Обфускации и замены user id каким-нить хешем от него вполне достаточно. Возможно это изменится в будущем если регуляторы начнут дрючить сильнее.
  • https://t.me/clickhouse_ru
    loghouse от flant более менее вменяемый но его надо напильником пройтись для того чтобы он не только под k8s работал )))) там они используют кастомный плагин для fluented
  • @profile_undefined #108859 09:56 AM, 12 Jul 2019
    Все привет. В кликхаусе можно как-то переименовать БД?
  • А как-то можно понять в каком формате таблица, будет ли она вообще конвертироваться если выполнить миграцию? В system.tables не вижу чего-то похожего.
  • https://t.me/clickhouse_ru
    Мутации появились в 1.1.54388 - если таблицы создавались в версиях новее то формат новый
  • @ilyas_pro #108862 10:00 AM, 12 Jul 2019
    А если я не уверен, никак не узнать? Кто-то мог какую-то мутацию выполнить уже, например.
  • https://t.me/clickhouse_ru
    ну я из него хочу вырвать только интерфейс, поставка в кликхаус уже есть.
  • https://t.me/clickhouse_ru
    Похоже про формат я наврал. Текущие версии КХ делают format_version = 1 (можно увидеть в /var/lib/clickhouse/data/<database>/<table>/format_version.txt
    При этом в исходниках есть как минимум еще 2, 3 и 4.
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #108865 10:09 AM, 12 Jul 2019
    подскажите пожалуйста, а как работает TTL на табличку? я создал табличку, в ней partition by toStartOfHour(_timestamp) TTL _timestamp + INTERVAL 12 hour, смотрю на партиции и вижу заполненные таблички у которых интервал явно больше 12 часов. Что я делаю не так?
  • https://t.me/clickhouse_ru
    Саму БД нет. Затея так себе. Можно сделать новую БД и отренеймить в нее все таблицы, потом дропнуть старую БД.
    Надо учесть, что ренейм матвьюх не поддерживатся, надо пересоздавать. + Merge, Distributed, Buffer имеют в create прямое указание БД которое останется старым и их надо пересоздать. В replicated путь в зукипере останется тот же...
    Вообщем только руками по одной таблице и вьюшке смотря в CREATE.
  • Выполнение могло прерваться по таймауту max-execution-time, но там другое сообщение должно быть. В логе было что-то еще?
  • смотрели SeekTable, там есть flat table где можно быстро фильтровать в search-стиле. Для более сложных фильтров можно настроить параметры.
  • 😂
  • https://t.me/clickhouse_ru
    @vbuttermaan #108875 10:19 AM, 12 Jul 2019
    Структура сильно разная? доальтерить исходную таблицу до конечной и использовать clickhouse-copier нелья?
  • https://t.me/clickhouse_ru
    Структура сильно разная? доальтерить исходную таблицу до конечной и использовать clickhouse-copier нелья?
  • https://t.me/clickhouse_ru
    Практически такая же, ORDER BY другой
    После выполнения скрипта во второй таблице данные есть, но не все
  • https://t.me/clickhouse_ru
    Смотрел ошибки в логах? там должны быть грабли - too many parts(300)
  • https://t.me/clickhouse_ru
    0. /usr/bin/clickhouse-server(StackTrace::StackTrace()+0x16) [0x72868b6]
    1. /usr/bin/clickhouse-server(DB::Exception::Exception(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)+0x22) [0x39a9032]
    2. /usr/bin/clickhouse-server(DB::IBlockInputStream::isCancelledOrThrowIfKilled() const+0x90) [0x658eac0]
  • https://t.me/clickhouse_ru
    Вобщем я пришел только к одному вменяемому способу сделать другой ORDER BY в новой таблице и перегнать данные - clickhouse-copier
    Во всех других при большой вставке > 100млрд строк (32 колонки) я ловлю too many parts и данные вставляемые в эти партиции дропаются.
    использовал в вариантах 1 таблица — 2я таблица другой порядок в ORDER BY и 1 таблица 1партиция — кластер 10 шард, 100 партиций
  • https://t.me/clickhouse_ru
    @149051052 #108881 10:29 AM, 12 Jul 2019
    Подумал, может быть процесс закрывается спустя время, по какой-то настройке
  • https://t.me/clickhouse_ru
    @149051052 #108882 10:30 AM, 12 Jul 2019
    Спасибо
  • https://t.me/clickhouse_ru
    Такая ошибка там будет <Error> executeQuery: Code: 252, e.displayText() = DB::Exception: Too many parts (303). Merges are processing significantly slower than inserts
  • https://t.me/clickhouse_ru
    @149051052 #108884 10:32 AM, 12 Jul 2019
    У меня такой не видно
  • https://t.me/clickhouse_ru
    Попробуй тогда перед запросом сделать set max_execution_time = 99999; и попробовать еще раз
  • https://t.me/clickhouse_ru
    Да, это сделано
  • @githubreleases_bot #108887 b o t 10:53 AM, 12 Jul 2019
    yandex/ClickHouse tagged: v19.10.1.5-stable
    Link: https://github.com/yandex/ClickHouse/releases/tag/v19.10.1.5-stable
    Release notes:
    v19.10.1.5-stable
    yandex/ClickHouse

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

  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    None
  • https://t.me/clickhouse_ru
    Там хард линки создаются это очень легкая операция
  • @Dalmaneo #108892 11:59 AM, 12 Jul 2019
    Joined.
  • @profile_undefined #108893 11:59 AM, 12 Jul 2019
    ребят, можно ли как-то переименовать название базы данных в кликхаус?
  • https://t.me/clickhouse_ru
    если так - то хорошо. в доках об этом ничего как обычно :)
  • Так в итоге на старых таблицах переименование колонки выгоднее через update сделать чем через optimize или нет разницы?
  • @ilyas_pro #108896 12:08 PM, 12 Jul 2019
    Попробовал на небольшой таблице у которой format_version.txt = 0 сделать update - format_version.txt так и остался 0
  • https://t.me/clickhouse_ru
    Через апдейт если колонок больше 3.
  • https://t.me/clickhouse_ru
    в доке не про этот формат, а про версию парта.
    Но там папки после мутации по другому назваются и старые кх(не умеющие мутации) такие папки не поймут.
  • https://t.me/clickhouse_ru
    Раз в сутки интервал проверки ттл (по умолчанию)
  • https://t.me/clickhouse_ru
    так На видео автор все рассказал
  • А, вижу, номер мутации в конце имени добавился
  • https://t.me/clickhouse_ru
    @slava_pinchuk #108902 12:26 PM, 12 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    @slava_pinchuk #108903 12:27 PM, 12 Jul 2019
    при инсерте даты можно взять стрингу и обернуть toDate(?)
  • https://t.me/clickhouse_ru
    @slava_pinchuk #108904 12:27 PM, 12 Jul 2019
    тогда почему
    'clickhouse: Code: 27, e.displayText() = DB::Exception: Cannot parse input: expected [ before: {}: (at row 1)
  • https://t.me/clickhouse_ru
    @galyamrusl #108905 12:30 PM, 12 Jul 2019
    Joined.
  • https://t.me/clickhouse_ru
    но не нужно
  • https://t.me/clickhouse_ru
    В каком формате строка?
  • https://t.me/clickhouse_ru
    @slava_pinchuk #108909 12:34 PM, 12 Jul 2019
    The Go Play Space

    Alternative Go (Golang) Playground with syntax highlighting, turtle graphics and more

  • https://t.me/clickhouse_ru
    @slava_pinchuk #108910 12:34 PM, 12 Jul 2019
    функция на го
  • https://t.me/clickhouse_ru
    @slava_pinchuk #108911 12:34 PM, 12 Jul 2019
    пишем запрос как строку и аргументы как ?
  • https://t.me/clickhouse_ru
    @slava_pinchuk #108912 12:35 PM, 12 Jul 2019
    10 11 ему не нравится (
  • https://t.me/clickhouse_ru
    @slava_pinchuk #108913 12:35 PM, 12 Jul 2019
    Я так понимаю
  • https://t.me/clickhouse_ru
    @den_crane #108914 12:37 PM, 12 Jul 2019
    Вы sql в виде текста можете посмотреть? У вас там дата в виде числа секунд?
  • https://t.me/clickhouse_ru
    @slava_pinchuk #108915 12:37 PM, 12 Jul 2019
    createTableImpressions = `CREATE TABLE impressions (
    EventDate Date,
  • https://t.me/clickhouse_ru
    Нельзя в value при INSERT функции использовать
  • https://t.me/clickhouse_ru
    @slava_pinchuk #108917 12:37 PM, 12 Jul 2019
    дата в го просто строка
  • https://t.me/clickhouse_ru
    @slava_pinchuk #108918 12:38 PM, 12 Jul 2019
    потом отправляем его в строку запроса кликхауса
    там только год месяц и день
  • https://t.me/clickhouse_ru
    @slava_pinchuk #108919 12:38 PM, 12 Jul 2019
    EventDate: "2019-06-05",
  • https://t.me/clickhouse_ru
    для второго дня с кликхаус вообще неплохо думаю )))
    А КАК ?
  • https://t.me/clickhouse_ru
    @kshvakov #108921 12:39 PM, 12 Jul 2019
    B pq.Array вы в КХ зачем пихаете?
  • https://t.me/clickhouse_ru
    @slava_pinchuk #108922 12:39 PM, 12 Jul 2019
    потому что там слайс значений
  • https://t.me/clickhouse_ru
    @slava_pinchuk #108923 12:39 PM, 12 Jul 2019
    поле структуры слайс
  • https://t.me/clickhouse_ru
    @kshvakov #108924 12:39 PM, 12 Jul 2019
    Их и пишите
  • https://t.me/clickhouse_ru
    @slava_pinchuk #108925 12:39 PM, 12 Jul 2019
    при чем тут валью ?
  • https://t.me/clickhouse_ru
    @slava_pinchuk #108926 12:39 PM, 12 Jul 2019
    это поле
  • https://t.me/clickhouse_ru
    @slava_pinchuk #108927 12:39 PM, 12 Jul 2019
    а полей много
  • https://t.me/clickhouse_ru
    @slava_pinchuk #108928 12:39 PM, 12 Jul 2019
    Я не понял о чем Вы
  • @NormandFR #108929 12:40 PM, 12 Jul 2019
    ВСем привет!
    есть сервер источник данных, генерирует стату… и есть сервер с ClickHouse отдельно выделенным под него. Как правильно слать данные на ClickHouse?
    варианты рассмотренные нами:
    - сначала собираем данные на локальном сервере MYSQL, и после кроном пушим через HTTP-интерфейс на ClickHouse сервер.
    Проблемы: недолетело, как контролировать. Долетело но что то пошло не так и данные трасформировались, и вставка прошла с ошибками…
    Решение проблемы: на ClickHouse сервере сделать небольшой php прокси, кторый будет стоять перед входом в ClickHouse HTTP-интерфейсом и брать два поля: хешь строки кторуюя я буду передвать и саму строку. Все принимаем дальше локально вставляем. Но тоже криво ка кто.

    - Просто пушить по одной строке, но долго

    Есть ли рашение проблемы моей с очередью.
    Спасибо!
  • https://t.me/clickhouse_ru
    Все что вы пишите после VALUE в INSERT не имеет значения
  • https://t.me/clickhouse_ru
    @slava_pinchuk #108931 12:40 PM, 12 Jul 2019
    это я уже понял а что писать вместо валью ?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @slava_pinchuk #108933 12:41 PM, 12 Jul 2019
    здесь пишут
  • https://t.me/clickhouse_ru
    @slava_pinchuk #108934 12:41 PM, 12 Jul 2019
    и ничего
  • https://t.me/clickhouse_ru
    @slava_pinchuk #108935 12:41 PM, 12 Jul 2019
    INSERT INTO test VALUES (1464364942,1464364942);
  • https://t.me/clickhouse_ru
    Примерно по этой причине LightHouse и был написан :).
  • https://t.me/clickhouse_ru
    Ничего можно не писать и pq уберите еще
  • https://t.me/clickhouse_ru
    а оно по партициям дропает?
  • https://t.me/clickhouse_ru
    clickhouse-client разбирает запрос и пишет как надо, гошные клиенты нет )
  • https://t.me/clickhouse_ru
    @slava_pinchuk #108940 12:42 PM, 12 Jul 2019
    UserHosts: []string{},
  • https://t.me/clickhouse_ru
    @slava_pinchuk #108941 12:42 PM, 12 Jul 2019
    ща опять ошибк абудет лезть что не может распарсить масив )
  • https://t.me/clickhouse_ru
    Нет. типа мутирует.
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #108943 12:43 PM, 12 Jul 2019
    ух, это ж дорого не?
  • https://t.me/clickhouse_ru
    Да.
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #108945 12:44 PM, 12 Jul 2019
    а нету ишуя что бы килять тупо партиции там где можно? у меня часовые партиции, храню данные 12 часов, я ожидал что оно просто старые партиции мне по таймеру убьет и ня
  • https://t.me/clickhouse_ru
    Скрипт из трех строк на баше
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #108947 12:44 PM, 12 Jul 2019
    я ленивы 😑
  • https://t.me/clickhouse_ru
    Наймите программистов
  • https://t.me/clickhouse_ru
    ( toDate('2019-06-05'), '9b196164-baa3-4e9d-9213-38570f46bca2', '', '5c2cc12a96e0af27db36870f', '5a69e8952c30531d56f36d31', '305146268183', '5b4375a4b0ee6b000e6. Expected one of: FORMAT, VALUES, SELECT'
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #108950 12:45 PM, 12 Jul 2019
    и мне кажется это хорошая оптимизация для хорошей фичи
  • https://t.me/clickhouse_ru
    я вроде как и есть програмист 😂
  • https://t.me/clickhouse_ru
    😂
  • @vstakhov #108953 12:46 PM, 12 Jul 2019
    других программистов у нас для вас нет...
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #108954 12:46 PM, 12 Jul 2019
    Add MergeTree Option to automaticly drop old partition · Issue #4119 · yandex/ClickHouse

    while be useful to add MergeTree engine option to automatically drop old partition based on criteria on the partition key. in that way table are automaticly purged without extrenal script/program...

  • https://t.me/clickhouse_ru
    @andrei_tserakhau #108955 12:46 PM, 12 Jul 2019
    о!
  • https://t.me/clickhouse_ru
    Я не понимаю что вы делаете, приведите весь код что вы понаписали )
  • https://t.me/clickhouse_ru
    @slava_pinchuk #108957 12:48 PM, 12 Jul 2019
    The Go Play Space

    Alternative Go (Golang) Playground with syntax highlighting, turtle graphics and more

  • https://t.me/clickhouse_ru
    @blinkovivan #108958 01:02 PM, 12 Jul 2019
    планируем следующий митап в Санкт-Петербурге через две недели, есть желающие выступить?
  • https://t.me/clickhouse_ru
    @artilligence #108959 01:13 PM, 12 Jul 2019
    Господа, подскажите, пожалуйста, как использовать ASOF join? пример из документации не работает
  • https://t.me/clickhouse_ru
    как именно не работает?
  • https://t.me/clickhouse_ru
    @artilligence #108961 01:17 PM, 12 Jul 2019
    секунду
  • https://t.me/clickhouse_ru
    @galyamrusl #108962 01:23 PM, 12 Jul 2019
    Добрый день

    Имеется группировка на postgres

    "week" => "to_char(to_timestamp(created_at),'YYYY-WW')",
    "month" => "to_char(to_timestamp(created_at),'YYYY-MM')",
    "quarter" => "to_char(to_timestamp(created_at),'YYYY-Q')",
    "year" => "to_char(to_timestamp(created_at),'YYYY')",

    не подскажите, как можно то же самое написать для clickhouse? спасибо
  • https://t.me/clickhouse_ru
    смотри на функции toStartOfInterval и компанию (toYYYYMM, ...)
  • https://t.me/clickhouse_ru
    @artilligence #108964 01:25 PM, 12 Jul 2019
    select entity_id, cur_state, cur_timestamp, db.location_states.timestamp
    from db.entity_states asof join db.location_states using (entity_id, timestamp)
    limit 1;

    Code: 10, e.displayText() = DB::Exception: Not found column timestamp in block. There are only columns: entity_id, cur_state, cur_timestamp (version 19.9.3.31 (official build))
  • https://t.me/clickhouse_ru
    @galyamrusl #108965 01:26 PM, 12 Jul 2019
    "to_char(to_timestamp(created_at),'YYYY-WW')"
  • https://t.me/clickhouse_ru
    @galyamrusl #108966 01:26 PM, 12 Jul 2019
    а можно пример для этого выражения?
  • https://t.me/clickhouse_ru
    выглядит как-будто в db.entity_states колонка называется cur_timestamp вместо timestamp, т.е. надо на ON вместо USING переписать
  • https://t.me/clickhouse_ru
    судя по доке обязательно должно быть using, чтобы asof колонка последней была в данной секции
  • https://t.me/clickhouse_ru
    toYearWeek()
  • https://t.me/clickhouse_ru
    если правда так, то в подзапросе переименовывать чтобы одинаково назывались
  • https://t.me/clickhouse_ru
    @artilligence #108971 01:28 PM, 12 Jul 2019
    ок попробую спасибо
  • https://t.me/clickhouse_ru
    @galyamrusl #108972 01:28 PM, 12 Jul 2019
    DB::Exception: Unknown function toYearWeek, e.what() = DB::Exception
  • https://t.me/clickhouse_ru
    старая версия КХ судя по всему
  • https://t.me/clickhouse_ru
    @galyamrusl #108974 01:34 PM, 12 Jul 2019
    Connected to ClickHouse server version 1.1.54380
  • https://t.me/clickhouse_ru
    Старый. Хотя и в моем 19.9 тоже этой функции еще нет.
    Можешь попробовать toStartOfWeek() по сути это то же самое
  • https://t.me/clickhouse_ru
    @galyamrusl #108976 01:36 PM, 12 Jul 2019
    там нет года
  • https://t.me/clickhouse_ru
    Оно возвращает полную дату с округлением до недели вниз
  • к нашим костылям придумали вот что. Поднимаем локальную базу ClickHouse на сервере с CRM, и настриваем репликацию ее с сторонним сервером. Тем самым убираем все свои костыли, что придумали. НО вопрос. КОгда идет инсерт в основную базу, паралельно идет репликация? Потмоу что я вставляю данные при рендирнге страницы, когда собираю стату, и будет ли это являеться задержкой рендринга. Может кто то помочь с этим вопросом?
    спасибо!
  • https://t.me/clickhouse_ru
    @suxxorz #108979 01:39 PM, 12 Jul 2019
    Не подскажете как долго Kafka хранит данные, это параметр log.retention.hours=168?
  • What is Kafka Retention Period? - CloudKarafka, Apache Kafka Message streaming as a Service

    Frequently Asked Apache Kafka Question: What is Apache Kafka retention period? This article explains what the Apache Kafka Retention Period is and how it can be adjusted.

  • @ycharnyy #108981 02:29 PM, 12 Jul 2019
    Поделитесь опытом, как вы храните источники сессий в клике и кто как по ним строит аналитику в клике?
    Вопрос вот в чем: Клик используется как хранилище событий (date,user_id, event_id, url, etc).
    Допустим я могу взять из первого события в сессии url и распарсить его на метки, в итоге получу date,user_id - utm1, utm2.

    Как мне дальше лучше использовать эти данные, через join? Это нормальная практика или есть вариант по изящнее?
  • https://t.me/clickhouse_ru
    сначала редис и джава, потом попадает в кассандру и джаву, потом КХ as datalake, потом джава, спарк, джава, го, и вот тут уже попадает в КХ в готовом виде со всеми атрибутами подклеенными из предыдущих ивентов.
  • То есть в итоговом варианте для аналитиокв на каждом эвенте уже есть источники(utm), так?
  • https://t.me/clickhouse_ru
    да. КХ не key/value стор. Нельзя оттуда выбрать все предыдущие ивенты юзера, чтобы обогатить новый, это надо делать до КХ
  • https://t.me/clickhouse_ru
    @gtkuler #108985 02:41 PM, 12 Jul 2019
    Коллеги, подскажите, как-то можно выборку из VALUES реализовать как например в постгре или mssql?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @gtkuler #108987 02:42 PM, 12 Jul 2019
    Нашел способ только через array и tuple
  • https://t.me/clickhouse_ru
    да, только так
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @gtkuler #108990 02:43 PM, 12 Jul 2019
    блин, ну ок)
  • https://t.me/clickhouse_ru
    вчера как раз тот же самый вопрос задавали в en чате и в итоге https://github.com/yandex/ClickHouse/issues/5984
  • https://t.me/clickhouse_ru
    @den_crane #108992 02:44 PM, 12 Jul 2019
    select a.1,a.2 from (select [(1,'a'),(2,'b'),(3,'c')] a) array join a
  • https://t.me/clickhouse_ru
    @gtkuler #108993 02:52 PM, 12 Jul 2019
    понял, спасибо!
  • @profile_undefined #108994 03:14 PM, 12 Jul 2019
    добрый день, drop database зависает и через какое-то время происходит "cancelling query".

    как можно принудительно удалить базу данных с большим количеством данных?
  • https://t.me/clickhouse_ru
    а сообщение об ошибке полностью? какая причина cancelling query. И база наверное все равно дропнется
  • https://t.me/clickhouse_ru
    @voldaycev #108996 03:50 PM, 12 Jul 2019
    в кликхаусе можно базу переименовать?
  • https://t.me/clickhouse_ru
    @stovm #108997 03:54 PM, 12 Jul 2019
    У кого-нибудь есть идея, как хорошо «размазать» геолокацию на уровне ClickHouse. Хочу сдвинуть в случайную сторону на случайную величину в диапазоне
  • https://t.me/clickhouse_ru
    @orantius #108998 03:54 PM, 12 Jul 2019
    кого куда сдвинуть
  • https://t.me/clickhouse_ru
    @stovm #108999 03:55 PM, 12 Jul 2019
    Хочу зашумить геолокацию
  • https://t.me/clickhouse_ru
    @stovm #109000 03:55 PM, 12 Jul 2019
    типа +-((rand() % 400) - 200) / 100000
  • https://t.me/clickhouse_ru
    @orantius #109001 03:56 PM, 12 Jul 2019
    а это должно быть дифференцируемое в обе стороны преобразование S2?
  • @den_crane извините за беспокойство. была проблема с сервером.