• 01 April 2022 (329 messages)
  • https://t.me/clickhouse_ru
    Иногда для работы с clickhouse надо иметь нормальное психическое здоровье. Может это джун?
  • https://t.me/clickhouse_ru
    Прошло больше суток, без optimize final никаких неожиданностей.
    Данные старше 30 дней пишутся в arch00 с дефолтным кодеком, пережимаются и остаются на месте.
    Часть данных сделал move partition в arch00, пережались и остались там же.
    В общем, резюмируя, работает.
    TTL toDate(start_time) + toIntervalDay(1) RECOMPRESS CODEC(ZSTD(6)), toDate(start_time) + toIntervalDay(30) TO VOLUME 'arch00'
    SETTINGS storage_policy = 'tiered00'
    select version();
    21.11.5.33
  • https://t.me/clickhouse_ru
    @Dimaqul #263547 05:30 AM, 01 Apr 2022
    💸ОБУЧАЮ ЗАРАБОТКУ ОТ 100К В МЕСЯЦ💸

    🏆РАБОТАЕМ с Партнеркой Перфлюенс

    🏆ОБУЧАЮ полностью работе на пп, все способы заработка

    ✅В наличии ВСЕ пруфы(выплат на пп, зачислений на карту)

    💎МОЯ Помощь по всем вопросам💎

    💰СТОИМОСТЬ 7500₽
    ❗ПУСТОСЛОВЫ, БЕЗ ДЕНЕГ НЕ ПИСАТЬ❗
    📝 Связь: @Mantekaccc
    🎩 Гарант: @scrooge_garantbot⁠⁠⁠⁠⁠⁠⁠⁠⁠
  • https://t.me/clickhouse_ru
    Мне набери - +74999937334
  • @vmpol #263549 05:45 AM, 01 Apr 2022
    100k надеюсь это в валюте
  • https://t.me/clickhouse_ru
    Ага в час
  • @vmpol ↶ Reply to #263550 #263551 05:47 AM, 01 Apr 2022
    Ну как-то 100к рублей в месяц это вроде не много совсем
  • https://t.me/clickhouse_ru
    Для регионов - космические зарплаты
  • https://t.me/clickhouse_ru
    @Alexey_037 #263553 05:48 AM, 01 Apr 2022
    это стартовая цена, видать :)
  • @vmpol ↶ Reply to #263553 #263554 05:49 AM, 01 Apr 2022
    Ну справедливости ради там ОТ. Может таки 400-500 будет.
  • https://t.me/clickhouse_ru
    @chocosnat #263555 06:22 AM, 01 Apr 2022
    Для регионов? Рязань, программисты 100+ еще в 2003-2004 в паре местных контор. Не понимала смысла уезжать в мск на 80, получать проблемы со съемной квартирой из своей зп, если тут можно зарабатывать. Правда 1 выходной в неделю, работа 24/7 и подработки только из рук шефа с % ему
  • https://t.me/clickhouse_ru
    @chocosnat #263556 06:23 AM, 01 Apr 2022
    Сейчас в этой конторе в Рязани говорят топы из 1000 выходят ) И в мск полно хороших пацанов из техсаппорта, которые могут быть админами вполне, и сидят в пределах 150
  • В Московской области в 2008 получал примерно 35-40. Работа не то что бы была 8*5, скорее 12*5...
  • @irusin ↶ Reply to #263541 #263558 06:37 AM, 01 Apr 2022
    Оффтоп либо опасная ссылка
  • https://t.me/clickhouse_ru
    @KuzNikAl #263561 07:21 AM, 01 Apr 2022
    как ввести многострочный запрос в консоль кликхауса?
    ctrl-c ctrl-v текста больше одной строки выполняет каждую строку отдельно(
  • https://t.me/clickhouse_ru
    запустить клиент с ключом -m
    https://clickhouse.com/docs/ru/interfaces/cli/#command-line-options
  • https://t.me/clickhouse_ru
    два чая этому господину!
  • https://t.me/clickhouse_ru
    @ActionNum #263565 07:45 AM, 01 Apr 2022
    Всем привет. Обновили кластер CH с версии 20.12 до 22.01. При этом заметил странное поведение консьмеров Kafka. Мы используем MV и Kafka таблицы для чтения данных в Protobuf формате. Ничего не меняли, при этом скорость чтения топиков стала неравномерной какой то, красным подеркнут на скрине график количества прочитанных сообщений до обновления. Далее после, куда копать не пойму, так как ошибок ни в кафке ни в CH нет. Подскажите может кто сталкивался
  • Создать файл с текстом запроса и с ключем --queries-file или -qf выполнять
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #263565 #263567 07:54 AM, 01 Apr 2022
    У нас после обновления с 20.8 на 21.11 сильно упала скорость вычитки из кафки. После всех раскопок выяснилось, что кафка-таблицы с параметром kafka_thread_per_consumer = 0 (по умолчанию) стали читать всегда со скоростью одного консьюмера вне зависимости от значения параметра kafka_num_consumers.
    Немного не ваша ситуация, но вдруг поможет.
  • https://t.me/clickhouse_ru
    ENGINE = Kafka
    SETTINGS kafka_broker_list = 'убрал', kafka_topic_list = 'prod.Trackers_s01_v1', kafka_group_name = 'TrackersGroup_s01_v1', kafka_format = 'Protobuf', kafka_schema = 'logentries_v1:TrackerLogRecord', kafka_max_block_size = 1048576, kafka_num_consumers = 5
    Вполне возможно у нас до этого было было в каждом топике 9 партиций и два CH в кластере (с одним шардом и репликами) каждый читал один топик с одной и той же консьюмер группой у одного kafka_num_consumers = 5 у другого kafka_num_consumers = 4 Всем все хватает аттачится и активный консьмер потребляет
  • https://t.me/clickhouse_ru
    @ActionNum #263569 07:58 AM, 01 Apr 2022
    Думаешь kafka_thread_per_consumer поставить = 1 ? Или сделать теперь kafka_num_consumers а потоков по 5?
  • https://t.me/clickhouse_ru
    @SvPupok #263570 07:59 AM, 01 Apr 2022
    Добрый день. подскажите пожалуйста, в system.replicas кластера время от времени получаю ошибку типа
    Code: 999. Coordination::Exception: Session expired (Session expired). (KEEPER_EXCEPTION) (version 21.11.4.14 (official build))
    в какую сторону можно посмотреть?
  • https://t.me/clickhouse_ru
    Возможно ZK и коннекты с ним. Посмотри что в его логаг, нет ли проблем с выбором лидера.
  • https://t.me/clickhouse_ru
    @ActionNum #263572 08:02 AM, 01 Apr 2022
    За репликацию именно он отвечает.
  • Ставьте kafka_thread_per_consumer = 1 и kafka_num_consumers равное числу партиций в топике. Возможно ещё background_message_broker_schedule_pool_size надо увеличить, если суммарное число консюмеров во всех кафка таблицах больше пула
  • https://t.me/clickhouse_ru
    Спасибо, уже наблюдаю за эффектом. А где глянуть текущее суммарное число консьюмеров ?
  • текущее значение
    select * from system.metrics where metric = 'BackgroundMessageBrokerSchedulePoolTask'

    system.metric_log - история

    Но вообще просто суммируете kafka_num_consumers из каждой Kafka таблицы и получаете значение ниже которого пул лучше не ставить
  • https://t.me/clickhouse_ru
    Принял, спасибо огромное. Благодарю. 👍
  • https://t.me/clickhouse_ru
    И вам спасибо огромное. Благодарю. 👍
  • https://t.me/clickhouse_ru
    @zzhanabek #263578 08:43 AM, 01 Apr 2022
    Привет, всем

    Можете, пожалуйста, описать работу скрипта?

    clickhouse-client --format=TSVRaw -q"select 'ALTER TABLE ' || database || '.' || table || ' ATTACH PARTITION '|| partition_id ||' ;\n' from system.detached_parts group by database, table, partition_id order by database, table, partition_id;" | clickhouse-client -mn

    Не могу понять часть запроса:
    "select 'ALTER TABLE ' || database || '.' || table || ' ATTACH PARTITION '|| partition_id ||' ;\n'

    Что означает || и как сущности внутри || работают
  • https://t.me/clickhouse_ru
    @zzhanabek #263579 08:43 AM, 01 Apr 2022
    спасибо
  • отвечаю на свой же вопрос (может кому полезно будет): set optimize_aggregation_in_order = 1 вроде помогло

    https://clickhouse.com/docs/en/operations/settings/settings/#optimize_aggregation_in_order
    Settings | ClickHouse Documentation

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

  • https://t.me/clickhouse_ru
    || - это конкатенация строк. https://clickhouse.com/docs/en/sql-reference/operators/#concatenation-operator

    сначала исполняется запрос чтобы сделать результирующий запрос, который передаётся на исполнение
    Operators | ClickHouse Documentation

    Operators ClickHouse transforms operators to their corresponding functions at the query parsing stage according to their

  • https://t.me/clickhouse_ru
    спасибо
  • https://t.me/clickhouse_ru
    @mikezsin #263583 09:12 AM, 01 Apr 2022
    Привет, а у clickhouse keeper есть. cli? чтобы удалить и или посмотреть что-то, или zkcli юзать для этого?
  • https://t.me/clickhouse_ru
    или как такое после кривого дропа побороть можно? REPLICA_IS_ALREADY_EXIST
  • https://t.me/clickhouse_ru
    @SvPupok #263585 09:31 AM, 01 Apr 2022
    коллеги, вопрос по обновлению ch в кластере
    согласно документации, достаточно сделать
    $ sudo apt-get update
    $ sudo apt-get install clickhouse-client clickhouse-server
    $ sudo service clickhouse-server restart

    это можно сделать последовательно на всех нодах кластера? или планировать downtime все таки? Кластер из 3х нод
  • https://t.me/clickhouse_ru
    @konnectrl #263586 09:32 AM, 01 Apr 2022
    Можно последовательно
  • https://t.me/clickhouse_ru
    @Yarpen #263587 09:32 AM, 01 Apr 2022
    мы делали последовательно на всех нодах без даунтайма
  • https://t.me/clickhouse_ru
    @konnectrl #263588 09:33 AM, 01 Apr 2022
    Главное не с 19 версии до 22
  • https://t.me/clickhouse_ru
    @SvPupok #263589 09:33 AM, 01 Apr 2022
    c 21 на 22)
  • https://t.me/clickhouse_ru
    @konnectrl #263590 09:34 AM, 01 Apr 2022
    По идее не должно быть проблем
  • https://t.me/clickhouse_ru
    @Yarpen #263591 09:35 AM, 01 Apr 2022
    только у нас в инструкции еще вывод ноды из кластера перед обновлением и ввод обратно после
  • @396887717 #263593 09:55 AM, 01 Apr 2022
    Всем привет! Правильно ли я понимаю, что в КликХауз нет триггеров нет и нет возможности что-то запускать по расписанию и например инсертить из хайвтаблицы в локальную таблицу. И ещё вопрос распространяется ли материализация постгри на гринплам (скорее всего нет, но лучше уточнить 😁)
  • https://t.me/clickhouse_ru
    в клике есть MV https://clickhouse.com/docs/en/engines/table-engines/special/materializedview/ это вполне себе триггер, крутить вертеть это можно по разному с разными движками для достижения нужных результатов. для запуска по расписанию - пишите скрипты, кидайте в крон)
    MaterializedView | ClickHouse Documentation

    MaterializedView Table Engine Used for implementing materialized views (for more information, see CREATE VIEW). For stor

  • https://t.me/clickhouse_ru
    ну и по традиции
  • https://t.me/clickhouse_ru
    @Alexey_037 #263596 10:14 AM, 01 Apr 2022
    🤣🤣
  • https://t.me/clickhouse_ru
    @konnectrl #263597 10:16 AM, 01 Apr 2022
    👍
  • https://t.me/clickhouse_ru
    вопрос снят
  • https://t.me/clickhouse_ru
    @ivozyba #263599 10:24 AM, 01 Apr 2022
    Привет! Нужен совет...

    Есть запрос условно на подсчет уникальных значений и там есть несколько условий. Но нужно сделать этот запрос с болшим кол-вом разных временных промежутков таймстэмпов. Все таймстэмпы есть в экселе, могу из них сделать отделную таблицу в клике.

    Кто знает, как перебрать все промежутки таймстэмпов автоматически, а не руками каждый раз менять запрос? Условие таймстэмпа пишу так: where ts berween 1 and 2. Можно ли, как то это быстро сделать в клике? куда смотреть что читать..
  • https://t.me/clickhouse_ru
    А сколько промежутков времени ?
  • https://t.me/clickhouse_ru
    @ivozyba #263601 10:26 AM, 01 Apr 2022
    110
  • https://t.me/clickhouse_ru
    @konnectrl #263602 10:27 AM, 01 Apr 2022
    Нету такого функционала, если вы конечно руками не пропишите для каждого столбца условиями. Но лучше бы это реализовать через python и pandas
  • https://t.me/clickhouse_ru
    @konnectrl #263603 10:28 AM, 01 Apr 2022
    uniqIf(user_id, c_date = '21323')
  • https://t.me/clickhouse_ru
    @konnectrl #263604 10:28 AM, 01 Apr 2022
    Например как то так
  • https://t.me/clickhouse_ru
    @ivozyba #263605 10:29 AM, 01 Apr 2022
    ок спасибо
  • @timurmuya #263606 10:35 AM, 01 Apr 2022
    всем привет, может кто сталкивался - обновили clickhouse c версии 20.3 до 21.10 и очень выросла нагрузка на диск, с чем может быть связано?
    в клике консьюмеры, которые читают кафку, обрабатываются в матвью и пишутся в таргет-табличку
  • https://t.me/clickhouse_ru
    @romul87 #263607 11:20 AM, 01 Apr 2022
    Всем привет!
    Ситуация такая наплодили кучу alter через on cluster которые долго выполняются по времени, все это дело висит в zookeeper task_queue/ddl. Как можно почистить задачи пока они не начали выполняться ?
  • Это все читал и смотрел, mv вроде не может триггериться на вставку в хайв например из спарка или я что-то пропустил? А крон для моей задачи не вариант, либо нативно либо что-то типа dbt
  • @ArgoTerra #263609 12:33 PM, 01 Apr 2022
    Всем привет!
    Может кто сталкивался, делаю вью для вставки в таблицу, и есть там поле с типом Array(String), а сама вью делает этот массив из строки.
    пытаюсь так:
    cast(coalesce(splitByString('", "', replaceRegexpAll(некое_строковае_поле, '\[\"|\"\]', '')), []) as Array(String))
    и даже так не хочет - пишет Nested type Array(String) cannot be inside Nullable type
    хотя Nullable здесь ну никак не может получиться.
    как побороть?
  • @globgor #263610 01:16 PM, 01 Apr 2022
    будет ли работать materialized view навешенный на materialized my postgresql таблицу при ее обновлении?
  • https://t.me/clickhouse_ru
    что в строке?
  • а "некое строковое поле" у вас типа String или Nullable(String)? я сейчас воспроизвел ошибку для nullable типа
  • @valeriysimonov #263614 01:24 PM, 01 Apr 2022
    Всем привет!

    Есть запрос, получаю график из топ пяти пар общающихся адресов. Как мне добавить ещё пару other, где будет сумма всех остальных значений заданного интервала?
    SELECT
    toStartOfInterval(toDateTime(TimeReceived), INTERVAL 5 second) as time,
    SrcIP,
    DstIP,
    sum(Bytes * SamplingRate) AS Bytes
    FROM flows
    WHERE TimeReceived >= '1648808461' AND TimeReceived <= '1648819261'
    GROUP BY time, SrcIP, DstIP
    ORDER BY Bytes DESC
    LIMIT 5
  • @valeriysimonov #263615 01:26 PM, 01 Apr 2022
    можно и не пару, достаточно будет и запроса по одному srcip, например
  • https://t.me/clickhouse_ru
  • типа такого '["1","2","3"]'
  • Nullable
  • вернее, еще пробелы после запятых есть '["1", "2", "3"]'
  • спасибо!
  • вот на это, похоже, и ругается: не на Null значение, а на то, что получаемое Not Null значение имеет тип Nullable(String). потому что с типом просто String код работает
  • да, похоже
  • https://t.me/clickhouse_ru
    SELECT flatten(extractAllGroupsVertical(ifNull(a, ''), '"(\\d+)"'))
    FROM
    (
    SELECT arrayJoin([CAST(NULL, 'Nullable(String)'), '["1", "2", "3"]']) AS a
    )

    Query id: 1f7bb473-98ab-406e-95bf-3202df2d0458

    ┌─arrayFlatten(extractAllGroupsVertical(ifNull(a, ''), '"(\\d+)"'))─┐
    │ [] │
    │ ['1','2','3'] │
    └───────────────────────────────────────────────────────────────────┘
  • спасибо, подумаю как выкрутиться
  • https://t.me/clickhouse_ru
    @danilaco #263625 01:44 PM, 01 Apr 2022
    ​​Кликхаус — классная база данных и главный опенсорс проект родом из Яндекса выпустил зявление о войне.

    Они «осуждают агрессивную войну с Украиной, которую ведет Путин».

    Говорят, что ничего с Россией их не связывает, кроме русских инженеров, которые сидят в Амстердаме. Публикуют обращение сейчас, когда закончили эвакуацию инженеров и их семей из России.

    Такие дела.

    https://clickhouse.com/blog/we-stand-with-ukraine/
  • https://t.me/clickhouse_ru
    @Yarpen #263626 01:45 PM, 01 Apr 2022
    Т.е. теперь Клик тоже надо проверять на закладки и обновляться очень осторожно?
  • https://t.me/clickhouse_ru
    @danilaco #263627 01:46 PM, 01 Apr 2022
    Я не знаю, я не понимаю политизированных разработчиков
  • https://t.me/clickhouse_ru
    @mgavrikov #263628 01:46 PM, 01 Apr 2022
    да удалят данные и будут просить биткоины
  • https://t.me/clickhouse_ru
    причем здесь политика, сейчас либо ты осуждаешь кровавуюбаню, либо закрываешься, никто у тебя ничего покупать не будет
  • https://t.me/clickhouse_ru
    @Yarpen ↶ Reply to #263629 #263630 01:49 PM, 01 Apr 2022
    А это случаем не политизированное заявление?
  • https://t.me/clickhouse_ru
    Повестка именно такая, как вы говорите, однако я предпочитаю лозунг “работаем дальше”
  • https://t.me/clickhouse_ru
    не я вкинул сообщение, вообще могу вернутся в админы и устроить бан всем
  • https://t.me/clickhouse_ru
    @alexanderzaitsev #263634 01:53 PM, 01 Apr 2022
    Демократично устроить бан всем, кто не осуждает? :) Давайте работать дальше, Кликхаус-чатики вне политики.
  • https://t.me/clickhouse_ru
    @danilaco #263635 01:55 PM, 01 Apr 2022
    Я переслал только чтобы не я один был в курсе
  • https://t.me/clickhouse_ru
    @No1zzz #263636 01:58 PM, 01 Apr 2022
    во инженеры в спб ‘обрадовались’ сейчас, их то не релоцировали
  • @dmvi_k ↶ Reply to #263625 #263639 02:03 PM, 01 Apr 2022
    Пи*дец
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Почему?
  • @dmvi_k ↶ Reply to #263640 #263642 02:04 PM, 01 Apr 2022
    Они в мозг долбятся ?
    Нормально же всё было, чё произошло я ни пойму((((
  • https://t.me/clickhouse_ru
    аргументация 🔥
  • https://t.me/clickhouse_ru
    Согласен
  • @dmvi_k #263645 02:06 PM, 01 Apr 2022
    Я тоже теперь давайте на всех своих проектах буду писать, что рот долбил Порошенко, Зеленского, Йоденского и ещё когонить, чё за шлак ?
    Зачем это написали и самое главное кто ?
  • @beebeeep #263646 02:07 PM, 01 Apr 2022
    Забаньте фашиста чтоль
  • https://t.me/clickhouse_ru
    я без идей как вам помочь с вашей проблемой ¯\_(ツ)_/¯
  • вам кто-то мешает?
  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #263625 #263650 02:08 PM, 01 Apr 2022
    А мне интересно, ребята которые родом из России и являются разработчиками\соавторами ClickHouse тоже разделяют эту точку зрения ?
    Или это в очередной раз попытка "пройтись по верхам" и выдать мнение меньшинства за мнение большинства ?
  • @dmvi_k ↶ Reply to #263649 #263651 02:09 PM, 01 Apr 2022
    Наличие разума в организме.
  • https://t.me/clickhouse_ru
    @nietzschebrod #263652 02:09 PM, 01 Apr 2022
    у вас серьёзно чатов для вот этого всего недостаточно?
  • https://t.me/clickhouse_ru
    это "ку" пацаков на планете чатлан
  • Не заметно, раз вы думаете что они сделали что-то плохое) У них не будет клиентов если не сделать такое заявление
  • @softbot_xxl #263655 02:15 PM, 01 Apr 2022
    Не понимаю надрыва и проблемы, clickhouse.com выразил позицию компании. Все несогласные с ней могут найти другого работодателя согласно убеждениям.
  • а кого кто кинул?
  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #263630 #263659 02:17 PM, 01 Apr 2022
    Да мы как раз здесь недавно обсуждали политизированную рекламу площадки на которой размещался сайт документации python clickhouse_driver'а, и Костя кстати как я понял проплатил (нашёл как это сделать в условиях отключённого Visa\MC), как раз что-бы этой рекламы не было, и это по крайней мере в меня вселило уверенность, что хотя-бы ClickHouse не будет политизирован...
    А тут вон какая новость, да ещё и на сайте clickhouse.com... Сказать, что я в шоке - ничего не сказать.
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #263658 #263660 02:20 PM, 01 Apr 2022
    А что у них с поддержкой случилось?
  • Ну санкции это не шуточки, нарушить их - нарушить закон.
  • https://t.me/clickhouse_ru
    Ну просите манибек
    Не ясно как это связано с позицией компании по данному вопросу
  • https://t.me/clickhouse_ru
    Санкции -- это экономика, а не политика. Мы бесплатно поможем тут
  • Чуть наверное не так.
    Санкции - это реакция цивилизованного мира. А экономика - следствие. Или нет?
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #263665 #263668 02:28 PM, 01 Apr 2022
    А политика, как завещал Ленин, есть концентрированное выражение экономики. :)

    Но вообще вроде всем понятно, что будь ты хоть тысячу раз аполитичен, живём и работаем мы не в сферическом вакууме. В этом плане спасибо КХ, что ограничились просто заявлением.
  • https://t.me/clickhouse_ru
    @87050700 #263672 02:30 PM, 01 Apr 2022
    - Нас кинули, осуждаю
    - А вы кто?
    - Не уполномочен обсуждать
  • https://t.me/clickhouse_ru
    @dbalashov #263673 02:31 PM, 01 Apr 2022
    ботоферму и сюда запустили...
  • https://t.me/clickhouse_ru
    Александр, как я помню один из основателей Altinity :)
  • @softbot_xxl #263675 02:31 PM, 01 Apr 2022
    Если у Альтинити есть юрист, то контракт на поддержку обязательно включает пункт о непреодолимой силе. Да и в любом случае это обычные коммерческие отношения.
  • https://t.me/clickhouse_ru
    @konnectrl #263676 02:32 PM, 01 Apr 2022
    @den_crane Почисти пожалуйста
  • https://t.me/clickhouse_ru
    китайские товарищи не в счёт?
  • @orantius бан?
  • https://t.me/clickhouse_ru
    они под санкциями уже много лет
  • https://t.me/clickhouse_ru
    @dmitriynvkv #263681 02:35 PM, 01 Apr 2022
    уровень дискурса в чатике резко
  • https://t.me/clickhouse_ru
    @dmitriynvkv #263682 02:35 PM, 01 Apr 2022
  • @dmvi_k ↶ Reply to #263634 #263683 02:37 PM, 01 Apr 2022
    Ага, вне политики)))) Вон одного уже похоже забанили, кто следующий "не согласный" на очереди
  • @subotic0 #263685 02:51 PM, 01 Apr 2022
    Добрый день, каким образом можно в кх реализовать подобие
    https://support.google.com/docs/answer/3094249
    этой фукцнии? simpleLinearRegression не подходит, интересует 6ти мерная (к примеру)
    LINEST - Docs Editors Help

    Given partial data about a linear trend, calculates various parameters about the ideal linear trend using the least-squares method. Sample Usage LINEST(B2:B10, A2:A10) LINEST(B2:B10, A2:A10, FALSE,

  • https://t.me/clickhouse_ru
    Получилось?
  • https://t.me/clickhouse_ru
    @ActionNum #263689 03:17 PM, 01 Apr 2022
    После обновления ClickHouse с 20.12 версии до 22.12 получаем такую ошибку [1002] ClickHouse exception, message: Code: 271. DB::Exception: Data compressed with different methods, given method byte 0x3d, previous method byte 0x82: (while reading column user_keywords): (while reading from part /home/clickhouse/data/data/develop/Impressions/20220401-14_1483_2232_4/ from mark 1516 with max_rows_to_read = 752): While executing MergeTreeReverse. (CANNOT_DECOMPRESS) (version 22.1.3.7 (official build))
  • Вы очень смелый на два года прыгать )
  • https://t.me/clickhouse_ru
    22.12 ?
  • https://t.me/clickhouse_ru
    @ActionNum #263692 03:28 PM, 01 Apr 2022
    Извиняюсь 22.1.3.7
  • @dj_mixer #263693 03:32 PM, 01 Apr 2022
    если после отката все работает, скорее всего баг с обратной совместимостью. лучше залить парт + DDL в гитхаб с тикетом...
  • https://t.me/clickhouse_ru
    Data compressed with different methods (CANNOT_DECOMPRESS) · Issue #35181 · ClickHouse/ClickHouse

    I have 3 ch servers with replication (without sharding) - 2 main ch servers + 1 for experiments with encryption. Main servers 22.2.2.1, encrypted 22.2.3.1. Storage config for encrypted server &...

  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @ActionNum #263696 03:40 PM, 01 Apr 2022
    Похоже, но мы не отписывали. Подключусь к обсуждению там. Спасибо
  • https://t.me/clickhouse_ru
    не надо.

    открывайте свое ишью, у вас абсолютно другое
  • Их позиция давно была всем понятна. Так что ничего нового.
  • https://t.me/clickhouse_ru
    @apanasevich_d #263699 04:05 PM, 01 Apr 2022
    Правильно я понимаю, что идиоматически правильно вставлять значения типа столбца по умолчанию, вместо null?
    т.е. если где-то из внешней системы приходит null, то лучше вставлять через toInt32OrDefault чем toInt32OrNull ?
  • https://t.me/clickhouse_ru
    да. Избегайте Nullable типов, они занимают больше места и медленее работают
  • https://t.me/clickhouse_ru
    Лучше проектировать таблицы с типом default '' или default 0 и т.д., чем потом с Nullable разбираться. Как исключение - даты, там это бывает необходимо...
  • https://t.me/clickhouse_ru
    @den_crane #263703 04:23 PM, 01 Apr 2022
    даты не проблема, положить 1970-01-01
  • https://t.me/clickhouse_ru
    @den_crane #263704 04:23 PM, 01 Apr 2022
    вот температура например уже сложнее, приходилось -10000 градусов хранить
  • https://t.me/clickhouse_ru
    @Alexey_037 #263705 04:24 PM, 01 Apr 2022
    а что делать, если в БД тысячи дней рождения с такой датой? :)
  • https://t.me/clickhouse_ru
    дни рождения не надо хранить датой, зачем они, строка и все
  • https://t.me/clickhouse_ru
    @Alexey_037 #263707 04:25 PM, 01 Apr 2022
    ну это в случае с кликом и его ограничениями с датами в 1970 и 1925 есть такие нюансы. В других то БД таких нюансов нет.
  • https://t.me/clickhouse_ru
    @den_crane #263708 04:25 PM, 01 Apr 2022
    в других базах и с null проблем нет
  • https://t.me/clickhouse_ru
    @Alexey_037 #263709 04:25 PM, 01 Apr 2022
    Ну тоже верно )
  • https://t.me/clickhouse_ru
    @den_crane #263710 04:26 PM, 01 Apr 2022
    вон оракл вообще не хранит null если колонки в конце таблицы
  • чтобы потом не было возможности, например, удобно найти тех, у кого ДР на предстоящей неделе?
  • https://t.me/clickhouse_ru
    нахер это надо в КХ ? CRM нету?
  • https://t.me/clickhouse_ru
    @Alexey_037 #263713 04:27 PM, 01 Apr 2022
    Намечается баттл? :)
  • то есть вы сразу отсекаете от КХ его потенциальное применение, где такое может понадобиться?
  • https://t.me/clickhouse_ru
    @Alexey_037 #263715 04:28 PM, 01 Apr 2022
    Дата это дата. Не надо её приводить в тонну разных типов, если есть возможность этого не делать. С каждым типом данных удобно работать в зависимости от его типа.
  • https://t.me/clickhouse_ru
    Ну, могу сходу придумать кейс, компания, которая юзерам скидки на др делает или рассылку какую то. Им, думаю, может такое потребоваться и встречается нередко
  • https://t.me/clickhouse_ru
    @den_crane #263717 04:28 PM, 01 Apr 2022
    просто смешно слышать нытье про 1925, как дети, рассказывают бред про математику с датами и про 1925 год
  • https://t.me/clickhouse_ru
    да
  • https://t.me/clickhouse_ru
    @php_dev4_hr54 #263719 04:29 PM, 01 Apr 2022
    Хотя другой вопрос, зачем это хранить именно в клике
  • https://t.me/clickhouse_ru
    @Alexey_037 #263720 04:29 PM, 01 Apr 2022
    При чем тут нытье то? Нормальный разговор про типы данных :)
  • https://t.me/clickhouse_ru
    @den_crane #263721 04:29 PM, 01 Apr 2022
    ну вы упомянули 1925, не я
  • https://t.me/clickhouse_ru
    @Alexey_037 #263722 04:30 PM, 01 Apr 2022
    я лишь привел пример, что приведение к 1970-* не самый лучший вариант. :)
  • https://t.me/clickhouse_ru
    @Alexey_037 #263723 04:31 PM, 01 Apr 2022
    и мне иногда лучше иметь null в дате, чем 1970. Так надежней. Да, чуть медленней, но надежней.
  • https://t.me/clickhouse_ru
    ну отлично у вас куча людей родилось 01 01 1970. Вы не можете использовать эту дату, расскажите что вы делаете с теми кто родился 1969
  • https://t.me/clickhouse_ru
    @Alexey_037 #263726 04:31 PM, 01 Apr 2022
    И это касается только дат. В остальных случаях Null всегда можно заменить на default что то там.
  • https://t.me/clickhouse_ru
    @aleksebel #263727 04:32 PM, 01 Apr 2022
    Всем привет. Извините за нубский вопрос, в доке не смог найти четкий ответ

    Работает ли функция uniqExact в связке с оконной функцией?
  • https://t.me/clickhouse_ru
    да
  • https://t.me/clickhouse_ru
    Да что ж вы так нервничаете то :) Я же предложил вариант, а не говорил, что мое решение априори единственное верное )
  • https://t.me/clickhouse_ru
    Ну как минимум DateTime64. Тут уже 1925 год.
  • https://t.me/clickhouse_ru
    Спасибо!
  • https://t.me/clickhouse_ru
    create table data (user int, items int) Engine = Memory;
    insert into data values (1, 9)(2, 8)(3, 7)(4, 2);
    insert into data values (11, 9)(12, 8)(13, 7)(14, 2);
    insert into data values (111, 9)(112, 8);

    --slow

    SELECT
    items,
    uniqExactMerge(s) OVER (ORDER BY items DESC Rows BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS _uniq
    FROM
    (
    SELECT
    items,
    uniqExactState(user) AS s
    FROM data
    GROUP BY items
    )
    ┌─items─┬─_uniq─┐
    │ 9 │ 3 │
    │ 8 │ 6 │
    │ 7 │ 8 │
    │ 2 │ 10 │
    └───────┴───────┘
  • https://t.me/clickhouse_ru
    я вам больше скажу есть Date32
  • https://t.me/clickhouse_ru
    я не нервничаю, просто говорю что Nullable можно избежать, и для дат предлагается использовать 1970
  • https://t.me/clickhouse_ru
    это OLTP / CRM , ну никак не аналитика

    или это анализ сколько человек получат скидку?
  • @globgor #263736 04:39 PM, 01 Apr 2022
    привет всем, вопрос, в materialized postgresql репликация это инсерт? можно ли на нее матвью повесить?
  • https://t.me/clickhouse_ru
    это инсерт, в одной презентации говорили что можно, я не проверял
  • В Delphi нулевой датой в своё время взяли 30-12-1899, и люди натыкались на проблемы с ДР людей, родившихся в 19 веке. Как вообще после всех этих проблем Y2K, 32 битных таймеров с 01-01-1970, и прочих подобных, можно было в новой СУБД брать за нулевую дату менее чем 120 лет назад?
  • https://t.me/clickhouse_ru
    для того что бы поместиться в int32 и в int16 , таким образом яндекс съекономил десятки или сотни тысяч долларов
    для кликстрима int16 вполне достаточно
  • https://t.me/clickhouse_ru
    @rjs45 ↶ Reply to #263738 #263740 04:41 PM, 01 Apr 2022
    В MS SQL самая маленькая дата - где-то в 1500х годах. Попался когда переливали с ms sql в клику
  • https://t.me/clickhouse_ru
    @Alexey_037 #263741 04:42 PM, 01 Apr 2022
    Речь не про экономическую выгоду, а про реальные методы выхода из ситуации, когда нельзя применять не Nullable значения. :)
  • https://t.me/clickhouse_ru
    если не получается не использовать Nullable, используйте
  • https://t.me/clickhouse_ru
    @rjs45 #263743 04:44 PM, 01 Apr 2022
    Проблема когда в стримах есть, например даты рождения
  • https://t.me/clickhouse_ru
    @den_crane #263744 04:49 PM, 01 Apr 2022
    1925 это глупость, надо было брать пролептический календарь
  • @chipsy_crisp #263745 04:49 PM, 01 Apr 2022
    А что мешает хранить 3 колонки: год, день, месяц в виде интов и потом группировать и трансформировать как вам удобно?
  • Можно в UInt32 хранить дату либо в виде количества дней с выбранной даты в 19 веке, либо сдвигами или умножением складывать YYYYMMDD в число.
  • @chipsy_crisp #263747 04:50 PM, 01 Apr 2022
    Дата рождения не нуждается в часах
  • https://t.me/clickhouse_ru
    @Alexey_037 #263748 04:52 PM, 01 Apr 2022
    Да можно тонну кейсов придумать с датой. Но это как танец с бубном. Речь о том, что гораздо проще использовать дату по назначению, чем танцевать с кучей доп. столбцов, приводя их к ДД ММ ГГГГ и так далее.
  • @chipsy_crisp #263749 04:54 PM, 01 Apr 2022
    Если вы используете ch, значит вы принимаете парадигму «всё ради скорости» и готовы мириться с кастылями.
  • @chipsy_crisp #263750 04:54 PM, 01 Apr 2022
    Для всех остальных случаев есть другие бд
  • https://t.me/clickhouse_ru
    @Alexey_037 #263751 04:56 PM, 01 Apr 2022
    Ну ради честности, в 80% случаев расширение памяти хранения дат в привычном для всех виде, то есть менее 1970 или 1925 - не сильно то и уменьшило бы скорость...
  • @chipsy_crisp #263752 04:57 PM, 01 Apr 2022
    Ну это уже внедрение нового формата хранения, который не считатется в секундах с момента начала эпохи unix
  • @chipsy_crisp #263753 04:58 PM, 01 Apr 2022
    А например в днях
  • @chipsy_crisp #263754 04:58 PM, 01 Apr 2022
    Готовы ли на это разработчики? Как это будет совместимо в системами, получающими данные от кх?
  • @chipsy_crisp #263755 04:59 PM, 01 Apr 2022
    Или введение формата datetime 128 или 256
  • @chipsy_crisp #263756 04:59 PM, 01 Apr 2022
  • https://t.me/clickhouse_ru
    @Alexey_037 #263757 05:01 PM, 01 Apr 2022
    Ну скажем так, ограничение с датами, было введено именно в клике. Все остальные БД тоже имели ограничения с датами, но они были очень отдаленными, типа 1900 года, и не было проблем с датами рождения тех людей, что до сих пор живы с 1925-го и тем более с 1970-го...
  • https://t.me/clickhouse_ru
    т.е. вы не в курсе почему именно 1925 год?
    и что календарь в КХ это статическая таблица рассчитанная на каждый день
  • https://t.me/clickhouse_ru
    Меня мало волнует статистика, когда мои данные в работе используют даты, где дата меньше 1925 используется очень часто.....
  • @infisamk #263760 05:02 PM, 01 Apr 2022
    Кстати, не всегда удобно хранить дату 1970-01-0 вместо null. Например, есть дата действия какого-то значения в пределах dateFrom и dateTo. Если dateTo не задано, это подразумевает отсутствие даты окончания. И логично хранить в этом случае в виде null. Если же там будет не null, а 1970-01-01, то нужно будет учитывать это. С другой стороны between также между датой и null вернет null, а не 1, как бы хотелось. То есть тогда нужно будет явно смотреть на значение. А вот в MySQL можно использовать 9999-12-31 и спокойно использовать between без лишних телодвижений.
  • https://t.me/clickhouse_ru
    все ради быстрого between хранят спец. даты для начала и конца.
  • https://t.me/clickhouse_ru
    @Alexey_037 #263763 05:05 PM, 01 Apr 2022
    Denny, я уже понял, что у вас есть своя точка зрения, которая не меняется ни при каком раскладе. Попробуйте посмотреть на разные вариации, возникающие у специалистов :)
  • Да. Можно хранить просто максимально возможное значение. Но очень хочется эффективный null :))
  • https://t.me/clickhouse_ru
    нет. Я же говорю избегайте Nullable типов пока это возможно
  • https://t.me/clickhouse_ru
    @Alexey_037 #263766 05:05 PM, 01 Apr 2022
    Так я же с этого и начал ))
  • https://t.me/clickhouse_ru
    @Alexey_037 #263767 05:06 PM, 01 Apr 2022
    И уточнил, что именно в датах это наиболее часто нужно )
  • https://t.me/clickhouse_ru
    у меня проблема с температурой, с датами проблем нет
  • https://t.me/clickhouse_ru
    @Alexey_037 #263769 05:07 PM, 01 Apr 2022
    Так расскажите, в чем проблема, попробуем подумать и решить
  • https://t.me/clickhouse_ru
    что использовать в поле Float когда температура неизвестна 🙂
  • https://t.me/clickhouse_ru
    @den_crane #263771 05:08 PM, 01 Apr 2022
    а хотя Nan есть
  • https://t.me/clickhouse_ru
    @Alexey_037 #263772 05:08 PM, 01 Apr 2022
    default -1000.000 ?
  • https://t.me/clickhouse_ru
    @den_crane #263773 05:08 PM, 01 Apr 2022
    про Nan я забыл
  • https://t.me/clickhouse_ru
    @Alexey_037 #263774 05:09 PM, 01 Apr 2022
    уж -1000 точно не будет ) Ну или nan )))
  • https://t.me/clickhouse_ru
    C Nan придется отдельно обрабатывать при агрегации

    SELECT sum(arrayJoin([nan, 0.1]))

    Query id: 7edf06dd-71c1-4af2-9c4a-54acefc5e487

    ┌─sum(arrayJoin([nan, 0.1]))─┐
    │ nan │
    └────────────────────────────┘
  • https://t.me/clickhouse_ru
    @Alexey_037 #263776 05:13 PM, 01 Apr 2022
    Если уж на то пошло, то можно в default задать температуру абсолютного минимума в -273,16 по Кельвину как константу. И дальше все как обычно.. Не вижу проблем с температурой....
  • https://t.me/clickhouse_ru
    ну с -1000 складывать тоже смысла нет и с Null тоже
  • а ешё на них sparse_serialization фича не работает.
    Это задумано или не доделано?
  • https://t.me/clickhouse_ru
    я думаю забыли
  • https://t.me/clickhouse_ru
    Ну с Null агрегатные работают
  • https://t.me/clickhouse_ru
    Забыли да
  • извините не сдержался 😉

    A chemist froze himself at -273.15°C, everyone said he was crazy but he was 0K.
  • https://t.me/clickhouse_ru
    @Alexey_037 #263783 05:17 PM, 01 Apr 2022
    :)))))))))))))))
  • без нуллабл плохо когда надо avg считать, avgIf будет давать NaN если везде default значение, и очень много геморроя хватали уже
  • https://t.me/clickhouse_ru
    @den_crane #263785 05:29 PM, 01 Apr 2022
    Очень большое и важное дело сделали ребята из Clickhouse — написали свою позицию по поводу Украины. И я уверен, им было очень сложно, потому что половина компании — россияне, потому что важнейшая часть продукта была создана еще в Яндексе. Но посмотрите, как кристально четко и честно они написали. Большое спасибо вам, ребята, я даже что-то расчувствовался.

    https://clickhouse.com/blog/we-stand-with-ukraine/
    ClickHouse - We Stand With Ukraine

    ClickHouse is vehemently opposed to and condemns the war of aggression in Ukraine waged by Vladimir Putin and his regime.…

  • https://t.me/clickhouse_ru
    @graid2030 #263786 05:40 PM, 01 Apr 2022
    Можно и в закреп,одно не понятно какие отношение дальше будут у CH c Yandex. Я конечно понимаю что от него отошли, но не будет ли попыток давить на яндекс чтобы давить на CH
  • https://t.me/clickhouse_ru
    @graid2030 #263787 05:40 PM, 01 Apr 2022
    Я не в России, и у нас с беспокойством смотрят на CH
  • https://t.me/clickhouse_ru
    а какая причина?
  • https://t.me/clickhouse_ru
    @critskiy #263789 05:44 PM, 01 Apr 2022
    из-за инвестиций яндекса?
  • Давить на CH чтобы что?
  • https://t.me/clickhouse_ru
    И за-то знают что CH родом из яндекса, и знают что яндекс подвержен влиянию гос структур.
  • https://t.me/clickhouse_ru
    мммм, вроде бы в блоге они указали на то, что КХ контингент был вывезен из России. Втоорое, - если их смущают корни CH, то тогда стоит направить письмо или в альтинити, или в кх от бизнеса с вопросом более политкорректным относительно того, будут ли данные safe'n'sound, имхо
  • https://t.me/clickhouse_ru
    Тут никто не гадает, беспокойства бывает достаточно чтобы пересесть. Как минимум у нас в компании ведется секьюрити аудит отдельной компанией, кторой это может не понравится.
  • https://t.me/clickhouse_ru
    @poiskrepetitorov #263796 05:48 PM, 01 Apr 2022
    Всем привет! Кто может помочь создать пару табличек в КХ и посчитать несколько элементов за ₽?
  • https://t.me/clickhouse_ru
    и необходимо, чтобы письмо направила отдельная компания, ИМХО
  • https://t.me/clickhouse_ru
    @critskiy #263798 05:48 PM, 01 Apr 2022
    которая в вашем случае и проводит аудит
  • https://t.me/clickhouse_ru
    Я обычный разраб, меня никто не спросит
  • https://t.me/clickhouse_ru
    доведите это до вашего топа
  • https://t.me/clickhouse_ru
    @critskiy #263801 05:50 PM, 01 Apr 2022
    или тимлида, или EM слова
  • https://t.me/clickhouse_ru
    что ему нужно написать письмо?
  • Так и не надо голову себе забивать ненужными вопросами. Для этого есть другие люди с большими головами - они пусть и думают
  • https://t.me/clickhouse_ru
    а то что туда китайцы много коммитят это ок?
  • https://t.me/clickhouse_ru
    да, ему необходимо будет обратиться в компанию, проводящую аудит, на мой взгляд, запрос на то, чтобы именно ОНИ (помимо него), удостоверились в целостности данных в случае использования КХ
  • https://t.me/clickhouse_ru
    @critskiy #263806 05:51 PM, 01 Apr 2022
    и то, что нет уязвимостей, позволяющих воспользоваться получением данных вашей компании
  • https://t.me/clickhouse_ru
    Пока это не на слуху да
  • https://t.me/clickhouse_ru
    Каскадные мВ перестали работать с 19 версии примерно, где то даже был issue на гитхабе
  • https://t.me/clickhouse_ru
    К сожалению тут проще сменитьтехнологию чем кому-то чтото доказывать.
  • https://t.me/clickhouse_ru
    вам не надо доказывать, вам надо лишь проявить инициативу и узнать о дальнейших действиях EM и аудит-компании
  • https://t.me/clickhouse_ru
    @graid2030 #263811 05:54 PM, 01 Apr 2022
    Я все к тому-что чем большая ясность в том что нет влияния яндекса и тем меньше вероятность что кто-то скажет свое фи
  • https://t.me/clickhouse_ru
    здесь не в фи дело, а дело в том, что они не знают, стоит ли доверять компании, чьи корни лежат в компании, чья часть активов (?) принадлежит госу
  • https://t.me/clickhouse_ru
    @critskiy #263813 05:56 PM, 01 Apr 2022
    в данном случае мною б на месте вашего EM было бы отправлено письмо в компанию-аудитор с просьбой уточнить текущее состояние
  • https://t.me/clickhouse_ru
    Это не понял к чему, но похоже на перевод на русский моих слов.
  • https://t.me/clickhouse_ru
    Заранее точно этого не хочу, тогда можно вообще обратить их внимание на это лишний раз
  • https://t.me/clickhouse_ru
    они не перестали, просто поменялось поведение как их создавать.
    и materializedpostgresql это не matview
  • https://t.me/clickhouse_ru
    @den_crane @alexanderzaitsev @milovidov_an я понимаю, что я немного DBA и не имею никакого отношения к вашим компаниям, но может, вы поможете человеку прояснить ситуацию?
  • https://t.me/clickhouse_ru
    Infinite ещё можно
  • https://t.me/clickhouse_ru
    там нет влияния яндекса, голандский яндекс там просто акционер
    на сайте же видно кто CEO, кто президент и можно погуглить где они и где яндекс
  • https://t.me/clickhouse_ru
    Просветите как сделать мв поверх мв? Можно ссылку на Доку?
  • https://t.me/clickhouse_ru
    @Hardstep83 #263822 06:05 PM, 01 Apr 2022
    Кстати по датам - можно ещё хранить в виде Int64
  • @dj_mixer #263823 06:05 PM, 01 Apr 2022
    никто не ставил ещё 22.3ЛТС? насколько он забагован пока ещё? а то из-за этого бага неясно что ставить на он-премис...

    https://t.me/clickhouse_ru/262997
    【D】【J】 in ClickHouse не тормозит

    https://github.com/ClickHouse/ClickHouse/issues/35709 в общем как-то так, если у кого подобные проблемы просим поддержать )

  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    у меня стейджах стоит, проблем нет, у клиентов Альтинити есть и в стейджах и в проде.
  • прямо вот так 22.3.2 и работает?
  • @dj_mixer #263827 06:08 PM, 01 Apr 2022
    обычно ниже а.б.5-6 вообще сходу не получалось завести
  • https://t.me/clickhouse_ru
    на самом деле CI с каждым днем все больше и больше случаев покрывает тестами, поэтому каждый новый релиз получается стабильнее
  • @dj_mixer #263829 06:17 PM, 01 Apr 2022
    да прямо вообще по сути и багов то почти нет..
    https://github.com/ClickHouse/ClickHouse/issues?q=label%3Av22.3-affected+
  • https://t.me/clickhouse_ru
    То есть делаю таблицу, указываю в матвью to table, и следующую матвью вешаю на эту таблицу? Круто, попробую
  • https://t.me/clickhouse_ru
    вообще если вы никогда не видели этот документ и не смотрели видео, то рекомендую посмотреть
  • https://t.me/clickhouse_ru
    Вот только прочитал
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @den_crane #263834 06:21 PM, 01 Apr 2022
    но на русском
  • https://t.me/clickhouse_ru
    только надо читать changelog там backward incompatible дофига между 21.3 и 22.3

    в 21.6 поменяли uniq(от UIID) и сломали всем агрегаты
  • https://t.me/clickhouse_ru
    Спасибо большое, я смутно догадывался что примерно так нужно))
  • @milovidov_an #263840 08:03 PM, 01 Apr 2022
    Building a Paste Service With ClickHouse
    https://clickhouse.com/blog/building-a-paste-service-with-clickhouse/
    ClickHouse - Building a Paste Service With ClickHouse

    Building a paste service with ClickHouse - or exploring “anti-patterns” in building and deploying a user facing service

  • может есть исходники на гитхабе в открытом доступе?) Было бы удобно в одном месте всё посмотреть
  • дальше ClickGram или ClickTube? )
  • GitHub - ClickHouse/pastila: Paste toy-service on top of ClickHouse

    Paste toy-service on top of ClickHouse. Contribute to ClickHouse/pastila development by creating an account on GitHub.

  • ClickChan
  • https://t.me/clickhouse_ru
    @drookie #263846 09:43 PM, 01 Apr 2022
    очередной тупой вопрос: берем CH последней GA-версии с коробочными конфигами, пытаемся влить три терабайта данных, и он в логах пишет что нужно еще 2 петабайта памяти. читаем в коммьюнити, что нужно понижать дефолтные max_block_size/max_threads/min_insert_block_size_rows с 10^60 до 2*10^3, и действительно, вливается гораздо больше до одиозных заявлений что 64 гигов памяти недостаточно. а вот теперь сам вопрос - это нужно на клиенте править, или на сервере ? потому что остаётся призрачная надежда, что если поправить на клиенте, то, возможно, при каких-то условиях без жёстких лимитов память имеет шансы расходоваться эффективнее, но формальная логика говорит о том, что править нужно таки на сервере.
  • https://t.me/clickhouse_ru
    Вы неправильно держите
  • https://t.me/clickhouse_ru
    @drookie #263848 09:44 PM, 01 Apr 2022
    а научите
  • https://t.me/clickhouse_ru
    clarify пытаемся влить три терабайта данных
  • https://t.me/clickhouse_ru
    @den_crane #263850 09:46 PM, 01 Apr 2022
    т.е. clickhouse способен все делать в stream manner, памяти много для инсертов не нужно, если не делать 50 тыс. колонок.
  • https://t.me/clickhouse_ru
    @drookie #263851 09:46 PM, 01 Apr 2022
    а все просто, у меня есть Yandex managed CH, который тюнили бойцы вон г-на Миловидова, там хранится десяток терабайт данных, и я пытаюсь отъехать в Хэтцнер, а как мы все тут знаем, ООО NDA не позволяет вставить репликой внешний кластер. поэтому я тупо выгрузил эти данные и пытаюсь влить в CPE-кластер что я поставил самостоятельно
  • https://t.me/clickhouse_ru
    выгрузил во что? в файл? TSV ?
  • https://t.me/clickhouse_ru
    @drookie #263853 09:47 PM, 01 Apr 2022
    в CSV конечно пожатые
  • https://t.me/clickhouse_ru
    @yourock88 #263854 09:47 PM, 01 Apr 2022
    - Неправильно: вставлять три терабайта данных одним INSERT'ом
    - Правильно: вставлять батчами по ~1 миллиону строк, не забывая про существование партиций (желательно чтобы каждый батч затрагивал мало партиций, например одну)
  • https://t.me/clickhouse_ru
    и как грузите эти CSV ?
  • https://t.me/clickhouse_ru
    я понимаю (примерно, если честно) о чем Вы, но с этого места нужен пример
  • https://t.me/clickhouse_ru
    с чего-бы ? и так получится по миллиону max_insert_block_size
  • https://t.me/clickhouse_ru
    не буду делать умное лицо - вот прямо беру и pv ${table}.csv.gz | gzcat | clickhouse-client --query="INSERT INTO ${table} FORMAT CSV"
  • https://t.me/clickhouse_ru
    @drookie #263859 09:49 PM, 01 Apr 2022
    (а как правильно ?)
  • https://t.me/clickhouse_ru
    Ну я утрированный пример привел, как я себе представляю, как можно делать совсем неправильно и совсем хорошо
  • https://t.me/clickhouse_ru
    попробуйте выключить input_format_parallel_parsing возможно баг, с проездом по памяти

    pv ${table}.csv.gz | gzcat | clickhouse-client --query="INSERT INTO ${table} FORMAT CSV" --input_format_parallel_parsing=0
  • https://t.me/clickhouse_ru
    @drookie #263862 09:50 PM, 01 Apr 2022
    спасибо !
  • https://t.me/clickhouse_ru
    Если этот CSV это и есть все 3 Тб, то наверное по-другому и не получится :)
  • https://t.me/clickhouse_ru
    @yourock88 #263864 09:50 PM, 01 Apr 2022
    Но я бы вставлял по возможности в одну партицию за раз
  • https://t.me/clickhouse_ru
    он и есть. спасибо (ну мало ли, я когда не знаю, так и говорю что "не знаю" :))
  • https://t.me/clickhouse_ru
    а в чем проблема с 3TB файлом?
  • https://t.me/clickhouse_ru
    Если вставятся первые 2.5 Тб и отвалится что-нибудь (например, сеть, или место там от мержей временно закончится), то не перезалить только нужную часть
  • https://t.me/clickhouse_ru
    @yourock88 #263868 09:52 PM, 01 Apr 2022
    Вернее, можно, но тяжко
  • https://t.me/clickhouse_ru
    спасибо, я попробую осмыслить
  • https://t.me/clickhouse_ru
    это понятно, я про то что с памятью проблем быть не должно
  • https://t.me/clickhouse_ru
    @yourock88 #263871 09:52 PM, 01 Apr 2022
    Аналогично с партициями: вставка в одну партицию требует от сервера минимум усилий
  • https://t.me/clickhouse_ru
    ну вот так и происходит, да.
  • https://t.me/clickhouse_ru
    ошибку лучше покажите
  • https://t.me/clickhouse_ru
    @yourock88 #263874 09:53 PM, 01 Apr 2022
    Когда льем очень очень много, то это становится важно для стабильности и предсказуемости результата
  • https://t.me/clickhouse_ru
    и версию КХ
  • https://t.me/clickhouse_ru
    ClickHouse server version 22.1.3 revision 54455.

    2022.03.29 22:40:24.999821 [ 235764 ] {} <Error> void DB::MergeTreeBackgroundExecutor<DB::MergeMutateRuntimeQueue>::routine(DB::TaskRuntimeDataPtr) [Queue = DB::MergeMutateRuntimeQueue]: Code: 241. DB::Exception: Memory limit (total) exceeded: would use 133.45 TiB (attempt to allocate chunk of 4291680 bytes), maximum: 64.00 GiB. (MEMORY_LIMIT_EXCEEDED), Stack trace (when copying this message, always include the lines below): (а дальше бинарь пострипанный, только смещения показывает, и bt бессмысленен без символов)
  • https://t.me/clickhouse_ru
    >а дальше бинарь пострипанный, только смещения показывает, и bt бессмысленен без символов)

    что? у вас КХ неофициальный?
    там должен быть нормальный стектейс
  • https://t.me/clickhouse_ru
    @drookie #263878 09:57 PM, 01 Apr 2022
    ну почему неофициальный, FreeBSD 13.0, databases/clickhouse
  • https://t.me/clickhouse_ru
    а ну все ясно. расходимся
  • https://t.me/clickhouse_ru
    @drookie #263880 09:58 PM, 01 Apr 2022
    а что именно вам ясно ?
  • https://t.me/clickhouse_ru
    @drookie #263881 09:58 PM, 01 Apr 2022
    Алексей не подписал порты своей кровью ?
  • https://t.me/clickhouse_ru
    [PATCH] MemoryTracking FreeBSD support · Issue #13859 · ClickHouse/ClickHouse

    Clickhouse for FreeBSD updating no memory usage stats. In the case build without NDEBUG, allocator use 4KB chunk, those dont account when freeing and MemoryTracking metric grow up to ~6TB, after th...

  • https://t.me/clickhouse_ru
    @drookie #263883 09:58 PM, 01 Apr 2022
    gmake при сборке не упоминает Линуса Торвальдса ?
  • https://t.me/clickhouse_ru
    @den_crane #263884 09:59 PM, 01 Apr 2022
    да не работает оно на FreeBSD
  • https://t.me/clickhouse_ru
    @drookie #263885 09:59 PM, 01 Apr 2022
    я не очень понимаю то что автор тикета считает английским
  • https://t.me/clickhouse_ru
    @drookie #263886 10:01 PM, 01 Apr 2022
    ну и это было 2 года назад
  • https://t.me/clickhouse_ru
    и что вы думаете оно само заработало что ли?
  • https://t.me/clickhouse_ru
    @drookie #263888 10:03 PM, 01 Apr 2022
    не знаю, причина закрытия может означать все что угодно
  • https://t.me/clickhouse_ru
    @drookie #263889 10:03 PM, 01 Apr 2022
    например то что этого блока кода уже не существует
  • https://t.me/clickhouse_ru
    @drookie #263890 10:03 PM, 01 Apr 2022
    я думаю можно попробовать спросить у самого Алексея, ток он чо-т не тажится
  • https://t.me/clickhouse_ru
    давайте вы попробуете залить в линксе и потом мы поговорим
  • https://t.me/clickhouse_ru
    @milovidov_an а нельзя ли пожалуйста попросить пролить свет на то как там нынче в FreeBSD дела и по реабилитирующим основаниям или нет был закрыт этот тикет ? :)
  • https://t.me/clickhouse_ru
    очень сложно заливать три терабайта в консольный браузер
  • https://t.me/clickhouse_ru
    @drookie #263894 10:06 PM, 01 Apr 2022
    я думаю он не вывезет больше десятка гигабайт
  • https://t.me/clickhouse_ru
    @drookie #263895 10:07 PM, 01 Apr 2022
    это раз; два - я эти терабайты-то уже залил, вопрос про другое был (и никто не ответил)
  • https://t.me/clickhouse_ru
    @drookie #263896 10:09 PM, 01 Apr 2022
    про заливку партициями - ну ок, принято; логично. а вот про то где снижать эти параметры раз это помогает так и осталось неясным.
  • https://t.me/clickhouse_ru
    Объяснение очень простое. Для линукс и интел и арм есть тесты которые миллионы cpu часов накручивают, для фри нету.
  • https://t.me/clickhouse_ru
    @drookie #263898 10:14 PM, 01 Apr 2022
    что за тесты такие ?
  • https://t.me/clickhouse_ru
    @drookie #263899 10:15 PM, 01 Apr 2022
    патч-то кстати так и накатывается в портах из тикета что вы показали. и судя по отсутствию ошибок - накатывается успешно.
  • https://t.me/clickhouse_ru
    @drookie #263900 10:15 PM, 01 Apr 2022
    только от беды что я показал не помогает.
  • https://t.me/clickhouse_ru
    @drookie #263901 10:16 PM, 01 Apr 2022
    как от неё помогают некие тесты по миллиону часов - не совсем ясно.
  • https://t.me/clickhouse_ru
    @drookie #263902 10:20 PM, 01 Apr 2022
    да и в общем проверять заливку десятка терабайт на линуксе трудоёмко. в коммьюнити где я обогатился скиллом радикального снижения упомянутых выше параметров, к слову, счастливые обладатели сервера тоже на линуксе его запускали
  • Для FreeBSD более-менее нормальная сборка:

    fetch 'https://builds.clickhouse.com/master/freebsd/clickhouse'
    chmod a+x ./clickhouse
    su -m root -c './clickhouse install'

    (Quick Start на https://clickhouse.com/)

    В ней не должно быть таких ужасных проблем, как у сборки из портов.
    ClickHouse - Fast Open-Source OLAP DBMS

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

  • https://t.me/clickhouse_ru
    огромное спасибо
  • 02 April 2022 (170 messages)
  • ClickChain
  • https://t.me/clickhouse_ru
    Вам не стыдно вообще такие заявления делать, вы конечно против режима и все такое , но лично Вы Алексей подписались под этим заявлением о том, что оказывается вы в Нидерландская фирма и оказывается вообще никакого отношения к РФ не имеете. И ладно бы вы сделали пресс релиз , но вы на офф сайт это все сделали, и ваше имя там стоит из тех кто подписался. Вы можете быть против режима и всей ситуации , но выждать месяц и только потом уже учесть интересы - обычная проституция. Программирование не место политике, но в заявлении ваше имя стоит. Лично вы получите и доход и все остальное , и даже ваши ведущие разработчики тоже, но компания Яндекс выжила только благодаря протекционизму режима. Идите вы в хуй с такими заявлениями, что вы к РФ никакого отношения не имеете, богатым проще и комфортным, но вы безродные. Вы даж какфка коннектор с бесплатной версии поправить не можете , а с тех 250 миллионов половину походу на штаб квартиру потратили
    https://clickhouse.com/blog/we-stand-with-ukraine/
    ClickHouse - We Stand With Ukraine

    ClickHouse is vehemently opposed to and condemns the war of aggression in Ukraine waged by Vladimir Putin and his regime.…

  • https://t.me/clickhouse_ru
    @krivdathetriewe #263907 02:53 AM, 02 Apr 2022
    Больше не комментирую, но про кенсел калчар Я понимаю
  • https://t.me/clickhouse_ru
    чисто исследовательские вопросы. вы в коде/запросе:
    - тоже фигачите где-то одинарные, а где-то двойные пробелы?
    - операторы (в данном случае запятая) иногда оформляете спереди пробелами, а иногда нет?
  • https://t.me/clickhouse_ru
    У меня просто тройка по русскому была , и ещё обидно , что нет пробела перед запятой , словно не самостоятельная единица
  • https://t.me/clickhouse_ru
    @krivdathetriewe #263910 03:30 AM, 02 Apr 2022
    Но спасибо за замечание
  • https://t.me/clickhouse_ru
    Поправка от Дэниел Крейга ⬇, изменился тип взаимодействия с ними
  • https://t.me/clickhouse_ru
    Нахуй кх. Го все в гринплам.
  • https://t.me/clickhouse_ru
    @ivymike_b #263915 07:28 AM, 02 Apr 2022
    We have no infrastructure, servers or people in Russia. The original engineering team successfully moved out of Russia and are now working in our Amsterdam office.

    Чет противненько после таких заявлений.
  • https://t.me/clickhouse_ru
    @tron_wai #263916 07:33 AM, 02 Apr 2022
    Хочется верить, что это бизнес, инвесторы, ответственность перед ними и пользователями, требуют этого всего, а не искренняя личная позиция.
  • https://t.me/clickhouse_ru
    @cmbcksrl #263917 07:41 AM, 02 Apr 2022
    ждем, когда кх уйдет из рф)))
  • Дима, чего ты завелся-то? Коллеги сделали то, что формально должны были сделать. Inc для того видимо и выделяли в отдельную компанию и рубили все юридические связи с РФ, чтобы она могла нормально развиваться на международном рынке без рисков санкций.
    Есть формальные приседания, которые должны быть сделаны, в независимости от того, кто что думает на самом деле. Не надо все воспринимать буквально и дословно, особенно из официальных пресс-релизов
  • https://t.me/clickhouse_ru
    Вы прямо сегодня можете удалить у себя все инсталляции КХ, тем самым проявив гражданскую позицию. В противном случае вы идете по пути экономической целесообразности за счет своих убеждений и не вам кого-то после этого осуждать.
  • https://t.me/clickhouse_ru
    @rjs45 ↶ Reply to #263916 #263920 08:00 AM, 02 Apr 2022
    Хочется верить, что это искренняя позиция, а не продиктованная бизнесом необходимость.

    Спасибо команде Clickhouse за позицию и смелость заявить обе этом
  • @GeorgySt #263921 08:01 AM, 02 Apr 2022
    Коллеги, КХ , как техническое решение - прекрасен. Давайте в этом ключе и продолжать. А все прочие дискуссии не имеют отношения к технике и хард скилла. И имхо им не место в этом чатике.
  • https://t.me/clickhouse_ru
    Иногда можно просто поиметь яйца и просто промолчать
  • Вот как просто попасть в палачи,
    вот как просто попасть в первачи,
    вот как просто попасть в богачи:
    Промолчи, Промолчи, Промолчи (с)
  • https://t.me/clickhouse_ru
    Очень странно, почему они про это написали только 31.03.2022🤔
  • https://t.me/clickhouse_ru
    @rjs45 ↶ Reply to #263926 #263927 08:49 AM, 02 Apr 2022
    В тексте объясняется почему
  • https://t.me/clickhouse_ru
    Так себе отговорка😐
  • https://t.me/clickhouse_ru
    @critskiy #263929 08:53 AM, 02 Apr 2022
    Послушайте, вы сейчас разводите горячую дискуссию на пустом месте по причине, что заявление было сделано вчера, а не раньше. Вот факт, - заявление сделано. Давайте мы оставим словесные баталии и займемся уже тем, что получается в этом чате лучше всего, - поддержкой пользователей, где и при каких бы обстоятельствах они не находились.
  • https://t.me/clickhouse_ru
    @m1khal3v #263930 08:57 AM, 02 Apr 2022
    только не чат кликхауса, господи, пожалуйста, нет 🙏
  • https://t.me/clickhouse_ru
    @m1khal3v #263931 08:57 AM, 02 Apr 2022
    лучше давайте ещё про FreeBSD поговорим
  • https://t.me/clickhouse_ru
    А давайте
  • https://t.me/clickhouse_ru
    Здравствуйте, это канал о кликхаусе?)
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Как пропатчить KDE2 под FreeBSD?
  • https://t.me/clickhouse_ru
    @enclaved #263937 09:06 AM, 02 Apr 2022
    кажется, шутку не поняли
  • https://t.me/clickhouse_ru
    @enclaved #263938 09:06 AM, 02 Apr 2022
    в оригинале ответ должен быть "да"
  • https://t.me/clickhouse_ru
    да
  • https://t.me/clickhouse_ru
    зумерский вариант будет)
  • @chipsy_crisp #263941 09:07 AM, 02 Apr 2022
    Есть вопрос как раз по теме канала. Периодически падает 1001 ошибка, когда делаю запросы из Postgres движка. Может кто сталкивался и знает как лечить?
  • https://t.me/clickhouse_ru
    @windoozatnick #263942 09:07 AM, 02 Apr 2022
    переиграем давайте
  • https://t.me/clickhouse_ru
    Без понятия, я не админ, а всего лишь разработчик
  • https://t.me/clickhouse_ru
    @windoozatnick #263944 09:07 AM, 02 Apr 2022
    эххх... старики мы, получается. те, кто поняли. пойду за пенсией схожу
  • https://t.me/clickhouse_ru
    @105390624 #263945 09:07 AM, 02 Apr 2022
    Не флудите.😒
  • https://t.me/clickhouse_ru
    @abashkeev #263946 09:08 AM, 02 Apr 2022
    ься
  • https://t.me/clickhouse_ru
    Ошибка какая, конвертации типов?
  • @chipsy_crisp #263948 09:09 AM, 02 Apr 2022
    Нет, просто кх говорит, что удаленный сервер недоступен
  • @chipsy_crisp #263949 09:09 AM, 02 Apr 2022
    И так через один запрос
  • @chipsy_crisp #263950 09:09 AM, 02 Apr 2022
    Думали, что пгбаунсер шалит, но бнз него всё тоже самое
  • @chipsy_crisp #263951 09:10 AM, 02 Apr 2022
    Даже пропатчились до версии, в которой есть переподключение в случае разрыва соединения с пг
  • https://t.me/clickhouse_ru
    А можно полный текст ошибки?
  • @chipsy_crisp #263953 09:13 AM, 02 Apr 2022
    Code: 1001.
    DB::Exception: pqxx::broken_connection: Lost connection to the database server.. Stack trace:

    0. std::runtime_error::runtime_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) @ 0x1b4107cd in ?
    1. pqxx::connection::make_result(pg_result*, std::__1::shared_ptr<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&, std::__1::basic_string_view<char, std::__1::char_traits<char> >) @ 0x1b190575 in /usr/bin/clickhouse
    2. pqxx::connection::exec(std::__1::shared_ptr<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::basic_string_view<char, std::__1::char_traits<char> >) @ 0x1b1936b2 in /usr/bin/clickhouse
  • @chipsy_crisp #263956 09:13 AM, 02 Apr 2022
    Простите
  • https://t.me/clickhouse_ru
    Алексей между прочим для таких целей запилил https://pastila.nl/
  • https://t.me/clickhouse_ru
    Бывает. Попробуйте сделать в pg простую таблицу с 2-3 столбцами и простыми типами наподобие текст, число. И посмотрите будет ли падать, у меня было похожее что-то на типах данных int2[], КХ не мог преобразовать.
  • Есть отдельная бд, где нет массивов и я сам все настраиваю. Там всё окей. Но продовскую бд не могу трогать.
  • @chipsy_crisp #263960 09:20 AM, 02 Apr 2022
    Получается проблема в ПГ
  • https://t.me/clickhouse_ru
    Погодите, есть ещё лайфхак, не знаю поможет ли.
  • https://t.me/clickhouse_ru
    @Hardstep83 #263962 09:25 AM, 02 Apr 2022
    PostgreSQL | Документация ClickHouse
    https://clickhouse.com/docs/ru/engines/table-engines/integrations/postgresql/
    PostgreSQL | Документация ClickHouse

    PostgreSQL Движок PostgreSQL позволяет выполнять запросы SELECT и INSERT для таблиц на удаленном сервере PostgreSQL. Соз

  • https://t.me/clickhouse_ru
    Попробуйте создать в КХ таблицу с движком PostgreSQL
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #263957 #263964 09:25 AM, 02 Apr 2022
    Да, хорошая первоапрельская статья получилась. И красивый минималистичный сервис. Не хватает только R/O режима, чтобы после публикации текстик не завандалили. Наверное надо добавить установку и проверку куки владельца :)
  • Так я этой штукой и пользуюсь
  • @chipsy_crisp #263966 09:26 AM, 02 Apr 2022
    Через нее и падает ошибка
  • @chipsy_crisp #263967 09:28 AM, 02 Apr 2022
    Аааа, я же бд создаю, понял/принял. Спасибо за совет!
  • https://t.me/clickhouse_ru
    Отпишитесь помогло или нет :)
  • Возможно не сегодня, но обязательно!
  • https://t.me/clickhouse_ru
    Удачи)
  • @chipsy_crisp #263971 09:30 AM, 02 Apr 2022
    🤝
  • https://t.me/clickhouse_ru
    Всмысле, если изменяешь текст, то новая ссылка уже
  • с хтмл, кстати прикольно, можно свои мини прилажки хостить

    https://pastila.nl/?034f252e/2b083ebec0e7cf2edc890448ae700687.html

    https://pastila.nl/?019ef7d4/2c9feca200eb2d5a24136b36bf5c8071.html

    https://pastila.nl/?02327033/51170b4af71835aec13d19b5e8c70c80.html
  • https://t.me/clickhouse_ru
    Это заявление чревато тем, что КХ не зайдет в те места, где мог бы занять свою нишу. Я до прошлого года не использовал КХ, до сих пор сторонник PG и транзакций, но необходимо заметить, что КХ в некоторых случаях весьма и весьма к месту.
  • https://t.me/clickhouse_ru
    На рынке уже есть немало форков ClickHouse
    Даже в РФ есть аренадата с ее QuickMarts и думаю кол-во будет расти.

    Плюс экспертиза по кликхаусу в РФ достаточно сильная, так что почему не зайдет?
  • https://t.me/clickhouse_ru
    Если на это так смотреть, то зайдёт туда, куда не зашёл бы без чёткой позиции
  • https://t.me/clickhouse_ru
    Потому что. ClickHouse Inc. мимо пройдет однозначно, форки - это здорово до определенного момента. Сколько у них дивизий?
  • https://t.me/clickhouse_ru
    Я так понимаю, что потому и было сделано.
  • https://t.me/clickhouse_ru
    Вполне себе достаточно, внешние контрибьютеры принесли немало функционала в 2021 году.
    Китайцы еще активно контрибьютят.
  • https://t.me/clickhouse_ru
    Я бы еще по поводу экспертизы уточнил, что Вы под экспертизой понимаете. Одно дело - налить в БД петабайт и называть себя экспертом, другое - с той же ESB обеспечить интеграцию.
  • https://t.me/clickhouse_ru
    Китайцы - это вообще отдельная тема, с GaussDB не сталкивались? Huawei ее пользует, не особо известна, наверное, но местами интересна.
  • https://t.me/clickhouse_ru
    > другое - с той же ESB обеспечить интеграцию.

    ClickHouse Inc строит ClickFlake, платного саппорта у них емнип пока еще нет.
    Так в чем вопрос?

    По поводу всяких ESB и интеграций, думаю у ареныдаты как интегратора с этим опыта будет побольше
  • https://t.me/clickhouse_ru
    Я к тому, что у ClickHouse достаточно большое и международное коммьюнити, а не только одна ClickHouse Inc
  • https://t.me/clickhouse_ru
    Возможно, что Вы правы. Однако, стоить отметить, что кровавый ентерпрайз ищет в первую очередь саппорт, который много кто чего ентерпрайзу показал, во вторую специалистов с опытом и хоть какими-то бумажками а-ля сертификатов.
  • @infisamk #263985 11:49 AM, 02 Apr 2022
    А о чем спор, собственно? Я так понимаю, в современных реалиях западные компании будут выбирать поддержку у западных компаний, а российские компании будут выбирать поддержку у российских компаний. Контрибьютить, скорее всего, будут все подряд. Да, со временем образуются устойчивые форки со своим комьюнити, контрибьютерами и компаниями поддержки, а-ля MariaDB и Percona та же.
    Про сотрудничество западных компаний с российскими на ближайшее время можем забыть, так как в любом случае будет с обеих сторон давление (с западной больше). Для госкомпаний КХ прямо вряд ли будет использоваться даже с платной поддержкой, так как им нужна надежность и безопасность, которую может обеспечить только форк с соответствующей сертификацией и "правильной" компанией поддержки.
    Помешает ли это развитию КХ? Скорее нет, чем да.
  • Да никак это не повлияет. КХ уже давно и успешно используется и в кровавом энтерпрайсе и госухе и поддерживает его там далеко не Яндекс или тем более Inc. Тут ситуация ничем принципиально не отличается от того же Хадупа. Большинство сервисов развивает в основном Клаудера, но это же никак не влияет на степень его распространения в РФ.
    Так что не надо заниматься гаданиями на кофейной гуще. По факту вся эта история яйца выеденного не стоит. Лучше вернуться к обсуждению самого продукта.
  • https://t.me/clickhouse_ru
    @artemhnilov #263989 12:11 PM, 02 Apr 2022
    Привет. В версии 22.3 обещали полноценную поддержку ARM. Можно ли уже как-то установить CH на ARM-сервер через apt get?
  • https://t.me/clickhouse_ru
    Не совсем так, примите, что "наше" теперь превалирует над "не наше". В универы, вроде как уже ушел заказ на... .
  • https://t.me/clickhouse_ru
    Нельзя жить в обществе и быть оторваным от общества. (С)
  • https://t.me/clickhouse_ru
    Заказ на что?

    Если postgresql (pro) считается импортозамещением, то что говорить о ClickHouse где корней российских больше.
  • Во-во! Это точно! 👍
  • https://t.me/clickhouse_ru
    @unamedrus #263994 12:20 PM, 02 Apr 2022
    Кстати, про универы и студентов. Немало фичей в кх запилены этими самыми студентами в рамках дипломов или курсовых.

    Некоторые из них доводились до финала кор тимой, но тем не менее.
  • https://t.me/clickhouse_ru
    Ой-вэй, в ПГ есть CoC, изгоним? Вот как раз пгпро есть, чем хвостом вильнуть.
    А кто такие разрабы кроме Миловидова и компании? Я, честно, не в курсе, если есть что, расскажите.
  • https://t.me/clickhouse_ru
    Как минимум arenadata что втащила авторизацию связанную с хадупом и еще было что то
  • https://t.me/clickhouse_ru
    Да, я читал пару работ, хз, не впечатлен, но даже абзац скопировал себе, на предмет то ли dremio, то ли чего-то подобного.
  • https://t.me/clickhouse_ru
    Constraints for optimization by nikvas0 · Pull Request #18787 · ClickHouse/ClickHouse

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

  • https://t.me/clickhouse_ru
    Я когда это читаю, музыка их Hacker с молодой Анжелкой в голове.
  • https://t.me/clickhouse_ru
    @1695040889 #264001 12:39 PM, 02 Apr 2022
    Так же бессмысленно, на первый взгляд, как включение противопожарной системы.
  • https://t.me/clickhouse_ru
    @unamedrus #264002 12:43 PM, 02 Apr 2022
    Ну вот вы как, а я вижу решение очень большой головной боли с написанием сложного оптимизатора запросов.

    Убер вот статью написали, как решали эту проблему
    https://eng.uber.com/logging/
    Fast and Reliable Schema-Agnostic Log Analytics Platform

    At Uber, we provide a centralized, reliable, and interactive logging platform that empowers engineers to work quickly and confidently at scale. The logs are tag

  • https://t.me/clickhouse_ru
    Ок, 5 сек.
  • https://t.me/clickhouse_ru
    @1695040889 #264004 12:48 PM, 02 Apr 2022
    explain analyze select * from siebel.control_load order by index_date desc limit 10;
    QUERY PLAN
    ════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
    Limit (cost=0.28..0.56 rows=10 width=24) (actual time=0.017..0.022 rows=10 loops=1)
    -> Index Scan Backward using control_load_pkey on control_load (cost=0.28..27.63 rows=945 width=24) (actual time=0.016..0.020 rows=10 loops=1)
    Planning Time: 0.074 ms
    Execution Time: 0.036 ms

    камрад, это ACID
  • https://t.me/clickhouse_ru
    @1695040889 #264005 12:51 PM, 02 Apr 2022
    свежий запрос
    2022-04-02 15:51:00 127.0.0.1:5432 postgres@mqr=# explain analyze select * from siebel.control_load order by index_date desc limit 10;
    QUERY PLAN
    ═════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
    Limit (cost=0.28..0.54 rows=10 width=24) (actual time=0.028..0.032 rows=10 loops=1)
    -> Index Scan Backward using control_load_pkey on control_load (cost=0.28..55.87 rows=2179 width=24) (actual time=0.026..0.029 rows=10 loops=1)
    Planning Time: 0.116 ms
    Execution Time: 0.051 ms
    (4 rows)
  • https://t.me/clickhouse_ru
    В чем вопрос?
  • https://t.me/clickhouse_ru
    @1695040889 #264007 12:55 PM, 02 Apr 2022
    Вопрос в КХ, он всегда вычитывает данные целиком.
  • https://t.me/clickhouse_ru
    У меня такой же кх и он не вычитывает? Может не в кх проблема?
  • https://t.me/clickhouse_ru
    Само собой, про индексы я хнаю и умею применять.
  • https://t.me/clickhouse_ru
    Может быть.
  • https://t.me/clickhouse_ru
    Я даже допускаю возможность случая, когда нам источник данных дал неверную информацию о том, как данные будут организованы.
    Соответственно, мы хотим и данные сколько-то там десятков ТБ сохранить, и на новую схему перейти.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    стрес и фаззи тесты много часов тестируют почти каждый пул реквест
  • https://t.me/clickhouse_ru
    а сколько латенси до pg и сколько времени запрос в pg выполняется?
  • https://t.me/clickhouse_ru
    там мне кажется на каждое изменение новый урл
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #263989 #264016 02:22 PM, 02 Apr 2022
    на oracle cloud дают always free ARM размером 4CPU 24Gb RAM 150Gb . Clickhouse ставится без проблем и довольно шустро работает. А на стартовые $250 можно и нехилый кластер запустить.
  • https://t.me/clickhouse_ru
    @nikitosiusis #264017 02:23 PM, 02 Apr 2022
    русским больше не дают)
  • https://t.me/clickhouse_ru
    Я там и использую. Только хотелось бы обновлять цивилизованно.
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #264017 #264019 02:25 PM, 02 Apr 2022
    вы ещё не сделали себе пластиковую карточку белого человека? В Москве уже во всю продают недорогие туры в солнечный узбекистан. С пловом, архитектурой и заходом в банк.
  • https://t.me/clickhouse_ru
    @nikitosiusis #264020 02:26 PM, 02 Apr 2022
    я жду чью-нибудь саксесс стори в этом вопросе) продают сейчас много чего это правда
    но оракл не по карточкам блочил, а по стране, тут другой картой не обойтись
  • https://t.me/clickhouse_ru
    Так даже тур не нужен.

    Телефон с esim и симка через приложение теле2 казахстан
  • https://t.me/clickhouse_ru
    @unamedrus #264022 02:28 PM, 02 Apr 2022
    А там киви кошелек на эту симку
  • Запрос происходит минут 5 и это разные датаценнтры.
  • @chipsy_crisp #264024 02:35 PM, 02 Apr 2022
    Думаете, что КХ не может дождаться ответа?
  • https://t.me/clickhouse_ru
    так а через psql нормально без ошибок работает с КХ сервера?
    может просто сеть рвется за 5 минут?
  • https://t.me/clickhouse_ru
    в целом да, у КХ могут маленькие receive timeout
  • @chipsy_crisp #264027 02:37 PM, 02 Apr 2022
    Проверю, спасибо за наводку!
  • https://t.me/clickhouse_ru
    По умолчанию 50 ms
  • Есть какая-то наводка, где этот параметр искать? Гугл не помогает.
  • @chipsy_crisp #264030 03:00 PM, 02 Apr 2022
    http_receive_timeout?
  • https://t.me/clickhouse_ru
    @1695040889 #264031 03:17 PM, 02 Apr 2022
    Мде, то, что тут некоторые из ОПСОС, пофиг.
  • https://t.me/clickhouse_ru
    Нифига непонятно, Вы получали массив в строку, еще и меня спросили, это будет отдельно стоить
  • Откуда инфа?
  • @chipsy_crisp #264035 03:37 PM, 02 Apr 2022
    В запросах не было задействованно ни одной колонки с массивами.
  • https://t.me/clickhouse_ru
    @andrewk0077 #264037 04:18 PM, 02 Apr 2022
    Всем привет!

    Подскажите, а как вы решили\решаете случай, когда надо делать часто мутацию таблицы ( alter table delete where ) … на огромных таблицах ( под сотню гб ) ? может какой-то уровень абстракции-таблицы в которую вносятся “исключения” и уже при выборке из большой таблицы делается WHERE ‘date’ NOT IN (…) ?
  • https://t.me/clickhouse_ru
    А зачем вы делаете delete? Какой в этом бизнес смысл?

    Можно делать update колонки типа uint8 is_deleted. И скрыть удаленные записи либо прямо в селект в where либо через row policy. И например раз в неделю делать delete where is_deleted
  • https://t.me/clickhouse_ru
    на тему колонки - хорошая мысль, мне казалось что это тоже мутации.
    про row policy - не знаю, буду читать сейчас.


    Зачем просят удалять — ну например, производят удаление ошибочной истории по контрагенту … что-то там такое далеко менеджерское, чтобы там ноль с единицей сошлись и получились красивые циферки — удаляют неактуальную\мертвую информацию
  • https://t.me/clickhouse_ru
    @andrewk0077 #264040 04:35 PM, 02 Apr 2022
    и раньше раз в месяц такое было, что больновато выходило.. то сейчас чуть ли не каждый день, и конечно можно было сказать: “мы это не делаем, вот вам счёты, считайте сами”, но надо искать решение прежде всего
  • https://t.me/clickhouse_ru
    Я спрашиваю потому что хочу подобрать наилучшее решение. Вариантов море.
  • https://t.me/clickhouse_ru
    @andrewk0077 #264042 04:37 PM, 02 Apr 2022
    да я понимаю, да)
  • https://t.me/clickhouse_ru
    @andrewk0077 #264043 04:38 PM, 02 Apr 2022
    короче, для подвода статистики… удаление просходит за опр. день и по ID клиента, записей под удаление - десяток лямов
  • https://t.me/clickhouse_ru
    Update тоже мутация, но есть нюанс. Delete перезаписывает весь парт все колонки, это могут гигабайты, update uint8 перезаписывает микроскопическую колонку которая может весить меньше мегабайта
  • https://t.me/clickhouse_ru
    @andrewk0077 #264045 04:41 PM, 02 Apr 2022
    Л - логично, да. А потом с TTL эти записи удалятся через месяц
  • https://t.me/clickhouse_ru
    Update проще, чем delete ?
  • https://t.me/clickhouse_ru
    @andrewk0077 #264047 04:52 PM, 02 Apr 2022
    ну delete как минимум связан с освобождением места, а значит надо пустоты заполнять
  • https://t.me/clickhouse_ru
    что непонятно во втором предложении?
  • https://t.me/clickhouse_ru
    @den_crane #264049 04:53 PM, 02 Apr 2022
    легко весные delete которые сейчас в разработке, тоже будут помечать удаленные записи, но в невидимой колонке
  • https://t.me/clickhouse_ru
    Да, забыл сказать: Спасибо! буду думать)
  • https://t.me/clickhouse_ru
    какие еще пустоты. Просто все записи из парта читаются и записываются в новый парт, кроме удаленных.
    если парт размером 100ГБ, значит надо прочитать 100ГБ, декомпрессировать, зажать, записать
  • https://t.me/clickhouse_ru
    @den_crane #264052 04:56 PM, 02 Apr 2022
    Из-за колоночной архитектуры и блочной компресии по другому никак.
  • https://t.me/clickhouse_ru
    @konnectrl #264053 04:56 PM, 02 Apr 2022
    Ну чтобы быстро работал поиск по новой колонки разве её не надо будет в order by ?. А если её добавят, то будет пересортировка по логике, нет ?
  • https://t.me/clickhouse_ru
    нет, нет.
  • https://t.me/clickhouse_ru
    я могу ошибаться)

    Просто представил как в ЯП производить удаление элемента из списка\массива)
  • https://t.me/clickhouse_ru
    @konnectrl #264056 04:57 PM, 02 Apr 2022
    А если колонка находится в ORDER BY при UPDATE, разве не происходит пересортировка ?
  • https://t.me/clickhouse_ru
    хаха. Нет, в колоночных базах все совсем не так. Нету доступа к одной записи.
  • https://t.me/clickhouse_ru
    а какая колонка находится в ORDER BY?
  • https://t.me/clickhouse_ru
    @konnectrl #264059 04:58 PM, 02 Apr 2022
    Я уже не про пример Андрея, а вообще
  • https://t.me/clickhouse_ru
    нельзя колонки в order апдейтить
  • https://t.me/clickhouse_ru
    вообще нельзя, никак.
  • https://t.me/clickhouse_ru
    @konnectrl #264062 04:59 PM, 02 Apr 2022
    😂, я просто не использовал UPDATE никогда ещё в Clickhouse
  • @chipsy_crisp #264063 05:07 PM, 02 Apr 2022
    Проводили кучу экспериментов, как обновлять данные и удалять. Решили, что ничего не удаляем и не апдейтим - просто перешли на ReplacingMergeTree, как тип движка для нас по умолчанию. А в ордер запихнули побольше колонок для уникальности, так как нет уникального идентификатора строки.
  • @chipsy_crisp #264064 05:08 PM, 02 Apr 2022
    Просто что надо обновить инсертиш и наслождаешься.
  • https://t.me/clickhouse_ru
    @den_crane #264065 05:15 PM, 02 Apr 2022
    ReplacingMergeTree или CollapsingMergeTree естественное и более надежное решение для модификации данных.
    Но по сути update маленькой колонки должен быть легче чем мержи.
  • У вас бесконечные диски, с которых вообще никогда ничего не надо удалять? У нас ради скорости далеко не бесконечные NVME SSD, так что приходится и TTL и мутации для удаления использовать в разных таблицах, например, есть как раз ReplacingMergeTree с TTL, из которых в довольно ленивом режиме удаляются данные, которые несколько месяцев не обновлялись, а потому считаются более не актуальными.
  • У нас такие же диски, но с запасом лет на 5. Потом старые партиции будем или удалять (GDPR), или сэплировать.
  • @chipsy_crisp #264068 05:45 PM, 02 Apr 2022
    Удалить целую партицию - но проблем
  • https://t.me/clickhouse_ru
    @konnectrl #264069 05:48 PM, 02 Apr 2022
    А почему просто не добавить обычные диски ? И скидывать данные которые старше 90 дней например на них ?
  • @chipsy_crisp #264070 05:49 PM, 02 Apr 2022
    Тоже идея
  • Зависит от специфики задач. У меня в проекте, например, такие старые данные в одних случаях вообще не нужны, потеряв актуальность, а в других нужны с тем же временем доступа, что и свежие, т.к. критерием их ненужности является вовсе не время.
  • https://t.me/clickhouse_ru
    @wXhexo ↶ Reply to #264071 #264072 05:58 PM, 02 Apr 2022
    Насчёт времени доступа с хардов - можно компенсировать процессорами и сильным сжатием (подбирать индивидуально к вашим данным)
  • https://t.me/clickhouse_ru
    @pxlvgg #264074 07:09 PM, 02 Apr 2022
    ReplacingMergeTree сильно бьёт по нагрузке?
  • @1055150698 #264075 07:09 PM, 02 Apr 2022
    Всем привет!
    Тестирую скорость выполнения запросов к кликхаусу синхронно и асинхронно. Если выполнять простой запрос, то скорость выполнения асинхронно ожидаемо гораздо быстрее. Если выполняю тяжелый запрос с джоинами и тд, то скорость выполнения запросов асинхронно процентов на 40% больше чем синхронно, в чем может быть проблема?
  • https://t.me/clickhouse_ru
    На чтении нет ;)

    Запись, как я понимаю, тоже не сильно отличается от обычной (MergeTree): вся магия происходит при merge, а это отделено по времени и в любом случае необходимо.
  • @dj_mixer #264077 08:32 PM, 02 Apr 2022
    Ура, меня тоже начали лайкать боты. Хоть что-то...
  • Если много партов и частые вставки/мерджи влияет, так как каждый раз надо ходить в зк.
  • https://t.me/clickhouse_ru
    Фу таким быть. Если меньше десятков миллионов, не нужен КХ.
  • https://t.me/clickhouse_ru
    @1695040889 #264080 08:39 PM, 02 Apr 2022
    Впрочем, могу поделиться деталями. Сейчас стоит задача 300-350-400 тысяч записей в секундц обогащать
  • https://t.me/clickhouse_ru
    А что-то я не подумавши сказал, у мну задача стоит на КХ это перевести попробовать, второй и далее джойн КХ раком ставит...
  • https://t.me/clickhouse_ru
    КХ не умеет асинхронно выполнять запросы, вы про какую-то либу javascript спрашиваете?
  • С aiochclient питоновской тестил
  • https://t.me/clickhouse_ru
    Ого :) я тут со своими 5к рпс совсем дитё
  • https://t.me/clickhouse_ru
    😳😳
  • https://t.me/clickhouse_ru
    @dmitriynvkv #264087 11:06 PM, 02 Apr 2022
    нихрена себе) прсоитет
  • https://t.me/clickhouse_ru
    @dmitriynvkv #264088 11:06 PM, 02 Apr 2022
    я конечно читал про badoo с их 2млн, н овсе таки Not bad
  • 03 April 2022 (147 messages)
  • @pp31415 #264089 12:02 AM, 03 Apr 2022
    коллеги, в большинстве статей описаны только кейсы с большой нагрузкой на запись и редкими чтениями

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

    например:

    rps: 50k
    records to read per query: 10-20k
  • https://t.me/clickhouse_ru
    @m1kc_telegram #264090 12:05 AM, 03 Apr 2022
    Ну это OLAP база вообще-то
  • @pp31415 #264091 12:06 AM, 03 Apr 2022
    верно - мне нужна олап с частыми запросами на чтение
  • @5177353209 #264093 01:29 AM, 03 Apr 2022
    BНИМAHИЕ ΓEЙMΕРЫ И MAЙHЕPЫ!!!
    Чёpный pынoⲕ κитайсⲕиⲭ видеoκарт
    - Рабoта нaпрямyю с фaбpиⲕoй ⲃ Γуанчжoy
    - Зaводсⲕo𝚎 ⲕaчecтⲃо
    - Оригинaльный GPU
    - Никaких ƃ/У κарт
    - Bозможнocть н𝚎лeгально вын𝚎сти любyю видeокapтy
    - Шиpoкий аcсоpтимент под закaз
    - Дocтaⲃκа пo ⲃc𝚎й Рoccии и СHГ
    - Цены в paзы ниже любoго pесypca ⲃ Китaе

    📝 Cⲃязь: @ChinaGPU_manager
    🎩 ƃoт для поκупκи @ChinaGPU_bot⁠⁠⁠⁠⁠⁠⁠⁠⁠
  • https://t.me/clickhouse_ru
    @Hardstep83 #264094 02:51 AM, 03 Apr 2022
    Всём доброе утро, день, вечер ) коллеги подскажите что можно сделать: есть относительно небольшая таблица 100+ млн строк, 30-40 столбцов. В ней нужно удалять раз в сутки старые записи, ttl не подходит поскольку то что нужно удалить - вычисляемое множество. Иногда выдаёт memory limit error - видно в логах мутаций. Что можно сделать, мб уменьшить кол-во обработчиков фоновых процессов?
  • Если вычисляемое множество, то и выборка мутации подозреваю тоже по нему работает рассчитывая на лету. Соответственно по памяти падает потому что запрос слишком сложный/долгий. И ответ из этого, материализуейте вычисляемое множество в реальную колонку, и удаляйте по ней хоть в ttl
  • https://t.me/clickhouse_ru
    По ttl всё равно не получится. Может я не точно выразился, попробую перефразировать: из таблицы выбираются те id, что уже неактуальны и это не критерий времени, далее удаляются всё эти id. Запрос там достаточно простой, без джойнов. Потому могу предположить что просто выборка не влезает в память, хм, может выборку тупо лимитом ограничить
  • https://t.me/clickhouse_ru
    покажите запрос.
    сколько мутаций одновременно запускается?
  • https://t.me/clickhouse_ru
    Alter table... Delete where id in (select id from... Where...) ;

    Падало на 1 мутации с количеством parts_to_do 300+
  • @trublast #264099 04:50 AM, 03 Apr 2022
    Привет. Подскажите по репликации и detach/attach, есть сомнения и я делаю что-то незаконное

    Есть шардированная таблица, допустим 2 шарда, на серверах А и В, шард по rand. Хочу сделать реплицированную на тех же серверах, чтобы было 2 реплики, и на A и B лежали копии
    Создаю новую реплицированную таблицу с такими же полями в кластере
    На старой таблице делаю детач всех партов
    Потом перемещаю файлы из detached старой в detached новой
    И делаю аттач
    На тестовых данных выглядит что все ок, с сервера А все реплицируется на сервер В, с В реплицируется на А. В итоге получается, что на каждом сервере лежит копия соседнего. Причем "сумма" данных обоих шардов
    Но мне непонятен механизм, как кликхаус различает, что партиции с одинаковым неймингом (к примеру 202203_0_0_0 при партиционировании по дате), которые были на А и на В на самом деле содержат разные данные (в каждой грубо половина данных) и объединяет их, поэтому реальные данные переносить как-то побаиваюсь
    Или не объединяет и у меня тест случайно показал что все ок?
  • https://t.me/clickhouse_ru
    речь про запись, и не в секунду, а про пакетную, и 400к - это средняя, а не пиковая
  • https://t.me/clickhouse_ru
    Нет, не может. Рассматривайте ее как OLAP - запросов в час.
  • https://t.me/clickhouse_ru
    Я бы на дверь показал, а когда пришел разбираться тот, кто на работу взял, СБ вызвал.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @1695040889 #264104 05:21 AM, 03 Apr 2022
    Борис, ты крепись!
  • Теоретически можно сделать, но придётся тюнить.
    1. Оптимизация схемы и запросов, смотрите clickhouse in the storm, тюнинг конфигурации КХ
    2. Высокий фактор репликации для увеличения qps
    3. Шардирование данных по ключу, выполнение запроса в пределах шарда как идеал

    Ну и конечно много хорошего железа под это дело
  • @softbot_xxl #264106 07:18 AM, 03 Apr 2022
    Давайте посчитаем, допустим мы делаем 10 шардов с прицелом на 5к QPS на шард. В пределах шарда сделаем фактор репликации 10, т.е. 500 запросов на ноду. Если нормальный сервер, то у него будет порядка 48 виртуальных ядер/потоков. Т.к. объем данных мал, то при условии одного потока на запрос, он должен выполнятся за ~100ms, чтобы нода смогла держать 500 запросов в секунду.
  • Первое, что приходит в голову, это делать delete in partition - находишь партиции, которые будут изменены, и по ним по отдельности делаешь удаление
    Ещё можешь найти партиции, которые будешь менять, создать временную таблицу (полноценную копию оригинала), через insert вставить в неё строки из изменяемых партиций с фильтром и потом через replace partition вставить в оригинальную таблицу
  • спасибо
  • если запросы не тяжелые. ограничить запросы max_threads=1 и много ядер. Просто в КХ нет кеша запросов/statement cache и прочего, поэтому наверное не стоит. если есть повторяющиеся запросы лучше сделать свой кеш. Прямо вот полный ad-hoc с высоким qps будет сложно.
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #264089 #264110 07:55 AM, 03 Apr 2022
    50k rps в КХ? Хорошая тема для первоапрельской статьи про антипаттерны. Оно и для mysql/postgress уже как-то на грани получается.
    Там у вас большое разнообразие запросов? Может закешировать получится? Redis?
  • https://t.me/clickhouse_ru
    Реалистично больше пары тысяч QPS (с учетом max_threads=1 на запрос и прочих приседаний) я бы не расчитывал. Все-таки ClickHouse предназначен больше для того, чтобы пару миллиардов строк за запрос прошерстить и как-нибудь по-хитрому сгруппировать, чем для точечных запросов
  • спасибо
  • https://t.me/clickhouse_ru
    Я бы на меньше 1к реально смотрел. Пробуйте.
  • https://t.me/clickhouse_ru
    Вы о чем вообще?
  • https://t.me/clickhouse_ru
    @1695040889 #264117 08:21 AM, 03 Apr 2022
    Я о ДБА, для них КХ - очередная БД, со своими шахматами и поетэссами.
  • https://t.me/clickhouse_ru
    Конечно все можно, я думаю в Яндекс метрики и больше запросов, только сколько миллиардов уйдет 👍
  • https://t.me/clickhouse_ru
    Я бы переформулировал, "сколько Вы готовы заплатить, что бы БД без транзакций начала себя вести именно так, как Вы хотите?"
  • https://t.me/clickhouse_ru
    Можно попробовать, спасибо
  • https://t.me/clickhouse_ru
    Что-то вы какой-то раздражённый, всем едкие комментарии раздаёте... Есть что по существу сказать - хорошо, а если нет то лучше промолчите
  • раз в день удалять надо именно через мутации (желательно IN PARTITION но автоматический прунинг тоже есть давно уже).

    мутации по памяти вообще не должны падать. у вас какие-то сложные условия в where?
  • https://t.me/clickhouse_ru
    мутации могут падать, если их не через словарь делают а через сложный запрос
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    В условии отобрать все id которых нет в словаре, словарь содержит актуальные записи. Словарь 30+ млн строк и 2 столбца. В памяти занимает 4 Гб.
  • https://t.me/clickhouse_ru
    Спасибо почитаю
  • ну, поэтому и спросил про "что там в WHERE"
    коллега удаляет, не обновляет... но мало ли что там в WHERE
  • WHERE dictHas() ?
  • Вообще, это не самое правильное использование кликхауса, удаление данных мутациями, это последнее что надо делать. Это не MySQL, и для ваших данных возможно правильнее использовать его, а для аналитики уже переливать из MySQL в кликхаус (есть даже движок подходящий)

    Прочитайте про разницу между OLAP и OLTP.

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

    Я бы пересмотрел архитектуру и способ хранения данных. Или как другую костыльную альтернативу использовал VersionedCollapsingMergeTree или ReplacingMergeTree для "обнуления" нужных вам строк, а не удаления
  • если дело не в том, что критически нужно высвобождать место, а просто "отключать" ненужные id, для меня выглядит логичнее сделать это через колонку is_active или is_deleted (на ваш вкус) и поверх таблицы просто прикрутить вью, которая по этой колонке фильтрует. потом на старых cold партициях где-нибудь в 3 утра запускать физическое удаление таких строк.
  • https://t.me/clickhouse_ru
    и даже в system.mutations не появляется?
    на тест скорее всего просто данных нет которые вам нужны
  • https://t.me/clickhouse_ru
    @r33ru #264133 10:10 AM, 03 Apr 2022
    Всем привет. Нужен совет ребят. Есть ли толк в использовании других файловых систем, отличных от ext4 под клик?
  • https://t.me/clickhouse_ru
    Толка нет
  • https://t.me/clickhouse_ru
    @r33ru ↶ Reply to #264134 #264135 10:14 AM, 03 Apr 2022
    Понял. Спасибо. Значит ковыряем дальше
  • @Aheadrox #264136 10:14 AM, 03 Apr 2022
    Приветствую! Подскажите... Если ли возможность при INSERT или MATERIALIZED VIEW c ENGINE = Kafka указать KEY или PARTITION? Я так понимаю, что виртуальные столбцы _key, _partition только для чтения. Clickhouse крайне не равномерно распределяет сообщения по портициям.
  • https://t.me/clickhouse_ru
    Не логичней, ведь тогда придётся делать апдейт этой колонки, когда id станет неактуальным - что тоже будет тяжело для КХ.
  • бесспорно, но вроде как апдейты по логике должны быть гораздо легче "физически" для системы, чем удаления
  • https://t.me/clickhouse_ru
    Where dictGet(dictionary, dict. Attribute, table.Key) = table. Attribute что-то вроде латерального запроса к справочнику в памяти
  • как минимум если колонок в таблице больше, чем одна)
  • https://t.me/clickhouse_ru
    Почему? И там и там насколько я понял читая статью на Хабре происходит клонирование куска, вычищение лишнего из куска или обновление в нём данных и потом замена новым куском - старого?
  • нет такого...
  • @dj_mixer #264143 10:31 AM, 03 Apr 2022
    или вы про мутирование ограниченного числа колонок?
  • @dj_mixer #264144 10:31 AM, 03 Apr 2022
    тогда да, вы правы, я что то даже не подумал
  • так как система колоночная, то (как я понимаю), чтобы сделать апдейт нужно обработать один "файл-колонку", а для удаления — столько же, сколько столбцов в таблице
  • https://t.me/clickhouse_ru
    @Hardstep83 #264146 10:32 AM, 03 Apr 2022
    Апдейт по логике как раз тяжелее, ведь он затрагивает может больше 1 столбца, а удаление просто удаляет всю строку при нахождении?
  • у вас перебор, так нельзя
    вы удаляете по двум полям? если так делайте словарь с композитным ключем на два поля...
  • так вы перезапишете все столбца при удалении
  • но данные лежат не строками)
    "вся строка" — это много колоночных файлов на диске
  • https://t.me/clickhouse_ru
    Всё осознал
  • https://t.me/clickhouse_ru
    Почему нельзя? Работает же, и причём быстро достаточно...
  • хотя да, так тоже будет быстро... но память есть не должен совсем. может память кто-то другой съедает? у вас словарь не автообновляемый?
  • @dj_mixer #264153 10:37 AM, 03 Apr 2022
    посмотрите без мутаций у вас сколько памяти свободно
  • @dj_mixer #264154 10:38 AM, 03 Apr 2022
    + layout какой?
  • https://t.me/clickhouse_ru
    Вы либо обновляете минимальный файл с uint8 изменяя 0 или 1. Либо удаляет и пересобираете парт в партиции по всем столбцам, вроде вывод очевиден
  • https://t.me/clickhouse_ru
    complex_key_hashed
  • https://t.me/clickhouse_ru
    Авто обновляемый, может кто то другой - этот вариант я тоже прорабатываю
  • https://t.me/clickhouse_ru
    Примерно 60 Гб
  • @dj_mixer #264160 11:00 AM, 03 Apr 2022
    что то не то, не должно умирать по памяти ещё и на 100 млн строк. а какая ошибка полная?
  • словарь перед началом работы уже LOADED в system.dictionaries? может он пытается загрузиться и умирает.
  • https://t.me/clickhouse_ru
    Loaded, тут всё норм
  • https://t.me/clickhouse_ru
    В понедельник посмотрю)
  • https://t.me/clickhouse_ru
    @daniel_byta #264165 12:01 PM, 03 Apr 2022
    Добрый день! Вопрос)
    У меня time-series таблица
    Я беру остатки товаров, после чего по динамике остатков вычисляю заказы
    Проблема этого запроса в том, что не учитывается разница остатков между днями, хотя это необходимо

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

    Но, к сожалению, не очень понимаю, как это сделать
    Как-то это возможно?
  • https://t.me/clickhouse_ru
    То есть у вас есть остатки за каждый день ?
  • https://t.me/clickhouse_ru
    @daniel_byta #264167 12:04 PM, 03 Apr 2022
    да
  • https://t.me/clickhouse_ru
    @daniel_byta #264168 12:04 PM, 03 Apr 2022
    за один день много записей об остатке товара
  • https://t.me/clickhouse_ru
    @konnectrl #264169 12:06 PM, 03 Apr 2022
    Я бы отсортировал по времени и товару и брал бы neigbor -1
  • https://t.me/clickhouse_ru
    @konnectrl #264170 12:06 PM, 03 Apr 2022
    Например
  • SELECT _key as pk …. PARTITION BY pk на сколько помню
  • а внутри одного дня тут возможны multiple записи, как я вижу?
  • @1382671541 #264173 12:11 PM, 03 Apr 2022
    и для обеих записей внутри одного дня должно стоять одинаковое значение из прошлого дня?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @daniel_byta #264175 12:11 PM, 03 Apr 2022
    вот так это выглядит
  • строчки 1 и 2 должны в новой колонке иметь значение 5869 из строчки 0?
  • https://t.me/clickhouse_ru
    а что за нули, может знаете?
  • https://t.me/clickhouse_ru
    верно
  • https://t.me/clickhouse_ru
    @konnectrl #264179 12:14 PM, 03 Apr 2022
    Ну если был бы один 0
  • https://t.me/clickhouse_ru
    @konnectrl #264180 12:14 PM, 03 Apr 2022
    То сказал бы
  • https://t.me/clickhouse_ru
    @konnectrl #264181 12:14 PM, 03 Apr 2022
    А 2 не знаю
  • тогда neighbor не подходит, он считает на уровне строки, а не на уровне дня в вашем случае
  • https://t.me/clickhouse_ru
    @daniel_byta #264183 12:16 PM, 03 Apr 2022
    мне кажется, что это связано с партициями
  • https://t.me/clickhouse_ru
    @daniel_byta #264184 12:17 PM, 03 Apr 2022
    взял neighbor из подзапроса и нолики ушли, остался только первый ноль
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @daniel_byta #264186 12:17 PM, 03 Apr 2022
    спасибо, о функции neighbor не знал)
  • https://t.me/clickhouse_ru
    @konnectrl #264187 12:19 PM, 03 Apr 2022
    Ещё с помощью оконных функций можно это делать, но я не знаю. Clickhouse полностью поддерживает весь синтаксис их из других БД.
  • neighbor на уровне блоков работает (например по 65к строк). между блоками данные будут неправильные, имейте ввиду...

    если надо правильно то вам оконки
  • нужно что-то типа новой calculated колонки toDate( ваш dateTime) as tdate, и поверх всего этого argMax(stockSum, dateTime) over (order by date range unbounded preceding)
    не факт, что правильно, нет под рукой компа, чтобы проверить)
  • https://t.me/clickhouse_ru
    @daniel_byta #264192 12:32 PM, 03 Apr 2022
    это про запрос или про DDL?
  • про select запрос
  • Я не про выборку а про вставку данных в kafka таблицу. Что-то должно было бы получиться INSERT INTO kafkatable (_key, payload) VALUES ...
  • то есть весь список отсортируется по дням, потом для каждой строки построится окно из всех строк, в которых день был меньше текущего (поэтому нужен range вместо rows) и в этом окне возьмется значение для максимального (последнего) dateTime
  • @1382671541 #264196 12:40 PM, 03 Apr 2022
    но это надо проверять)
  • https://t.me/clickhouse_ru
    @daniel_byta #264197 12:48 PM, 03 Apr 2022
    есть пока что вот такая рабочая реализация
  • https://t.me/clickhouse_ru
    попробую еще вот это проверить
  • https://t.me/clickhouse_ru
    @daniel_byta #264199 12:49 PM, 03 Apr 2022
    запрос просто исключает строки, где нули
    значит точность не стопроцентная
  • Вставка данных в кафка таблицу идет из кафки. И никак иначе. Дальше с помощью матвью оно попадает в другие таблицы
  • https://t.me/clickhouse_ru
    @msg_kurt #264202 01:45 PM, 03 Apr 2022
    Привет. подскажите пожалуйста, можно ли как-то одним запросом решить такую проблему: рисую чарт в metabase на основании селекта типа
    SELECT
    Value,
    Timestamp
    FROM table

    но на чарт мне надо нанести еще квантили
    quantileExact(0.07)(Value) as lowerQuantile,
    quantileExact(0.93)(Value) as higherQuantile
    как это провернуть одним запросом?
  • https://t.me/clickhouse_ru
    @konnectrl #264203 01:49 PM, 03 Apr 2022
    SELECT
    Value,
    Timestamp,
    quantileExact(0.07)(Value) as lowerQuantile,
    quantileExact(0.93)(Value) as higherQuantile
    FROM table
    Ну так сделайте так, в чём проблема ?
  • а по какому признаку вы группируете? квантиль каких значений будет считаться?
  • https://t.me/clickhouse_ru
    там без группировки. рисуется линия цены. и я хочу считать квантили и рисовать по ним коридор, типа такого (там руками просто указаны значения для горизонтальных линий коридора):
  • Clickhouse поддерживает вставку в таблицу на движке Kafka. Сейчас у меня так и работает. Две таблицы на движке Kafka и матвью берет данные из одной и пишет в другую. Некий такой ETL. Так вот продюсеры изначально пишут с key и Kafka разделяет соответсвенно на партиции. А вот clickhouse пишет в партиции random. И это ломает дальнейшую обработку сообщений. Я пытаюсь выяснить как можно повлиять на запись данных в Kafka в Clickhouse.
  • https://t.me/clickhouse_ru
    в том что Code: 215. DB::Exception: Column Timestamp is not under aggregate function and not in GROUP BY
  • https://t.me/clickhouse_ru
    @rjs45 ↶ Reply to #264206 #264208 01:58 PM, 03 Apr 2022
    А зачем так усложнять? Есть же Kafka streams или KSQL
  • Я думаю тут врятли у вас что либо выйдет нормального. Попробуйте ksqldb или kafka streams
  • До этого использовали siddhi.io.
  • https://t.me/clickhouse_ru
    @rjs45 ↶ Reply to #264210 #264211 01:59 PM, 03 Apr 2022
    Сохранил, почитаю. Спасибо
  • Там проблема. Они перестали поддерживать open sources проект. И весь проект ушёл в WSO2. Поэтому было решено обрабатывать в Clickhouse.
  • @111010502 #264213 02:01 PM, 03 Apr 2022
    А вам просто перекладывать надо данные и менять их формат/содержание? Или вы как то с кх еще докидываете данных?
  • https://t.me/clickhouse_ru
    @rjs45 ↶ Reply to #264212 #264214 02:02 PM, 03 Apr 2022
    Ну значит для общего развития :)
  • @Aheadrox #264215 02:02 PM, 03 Apr 2022
    Докидаем данные. И данные уже хранятся к Clickhouse
  • @111010502 #264216 02:02 PM, 03 Apr 2022
    Много данных?
  • @Aheadrox #264217 02:03 PM, 03 Apr 2022
    Сейчас около 200 сообщений в секунду. Но продуктов будет около 10000 сообщений в секунду.
  • @111010502 #264218 02:04 PM, 03 Apr 2022
    Я имею ввиду которыми вы дополняете сообщения
  • Сейчас 306 записей. В дальнейшем около 20000
  • Ksqldb. Там есть таблицы тоже, наполняйте их через кафку и допинывайте данные там. Партицирование на выходе так же управляемое
  • https://t.me/clickhouse_ru
    @rjs45 #264221 02:07 PM, 03 Apr 2022
    Вопрос в том - вы просто перекладываете данные из одного топика в другой, или донасыщаете данные из других таблиц в клике перед тем как положить в конечный топик
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #264205 #264222 02:07 PM, 03 Apr 2022
    значит группировка всех данных в таблице. Тогда так:
    with (SELECT (quantileExact(0.07)(Value),quantileExact(0.93)(Value)) from table) as q
    SELECT Value, Timestamp,
    q.1 as lowerQuantile,
    q.2 as higherQuantile
    FROM table
  • https://t.me/clickhouse_ru
    @rjs45 ↶ Reply to #264220 #264223 02:07 PM, 03 Apr 2022
    С KTable единственное - на больших таблицах не пробовал. Когда прям много данных очень. Не знаю потяни ли
  • https://t.me/clickhouse_ru
    WITH (SELECT quantileExact(0.5)(number) as qy FROM numbers(10)) as quan

    SELECT number, quan from numbers(10)
  • Они по кластеру размазываются тоже. В принципе решаемо (кэш там на rocksdb и на ссд летает хорошо)
  • Второй вариант. Идёт донасыщение из других таблиц. С применением словарей.
  • Да. Рассматривал KSQL. Вероятно придётся использовать тоже.
  • Хотя думали что отделаемся Clickhouse )
  • https://t.me/clickhouse_ru
    @5061305630 #264233 06:40 PM, 03 Apr 2022
    🚨 Surfshark изменит ваш IP-адрес, защитит вас от общедоступного Wi-Fi и многое другое.

    🔹https://bit.ly/3qksEis
    🔹https://t.me/surfsharkapp
  • https://t.me/clickhouse_ru
    @dream_of_silence #264234 06:49 PM, 03 Apr 2022
    Всем привет. Подскажите, пожалуйста, как дополнять вложенные таблицы по мат. вью при добавлении строк в таблице-источнике, чтобы в итоге получилась таблица с несколькими ключевыми полями и полем - вложенной таблице с остальными данными для этих ключевых полей?
  • https://t.me/clickhouse_ru
    значения надо суммировать или конкатенировать?

    sumMap или groupArrayArray
    SimpleAggregateFunction/AggregateFunction groupArrayArray / groupUniqArray.
  • https://t.me/clickhouse_ru
    не надо суммировать, просто увеличивать кол-во строк во вложенной таблице
  • https://t.me/clickhouse_ru
    SimpleAggregateFunction/AggregateFunction groupArrayArray / groupUniqArray.

    могу написать пример или дать ссылку, если вы предоставите create table из трех полей, + insert, + и что нужно на выходе
  • https://t.me/clickhouse_ru
    вот я с AggregateFunction щас эксперементирую, я полагаю должно быть поле nested_fied Nested (field1 AggregateFunction(groupArrayArray))?
  • https://t.me/clickhouse_ru
    так это же замечательно, отделаемся от КХ, одним головняком меньше
  • https://t.me/clickhouse_ru
    Nested это бесмысленный syntax sugar, который мешает в этом случае
  • https://t.me/clickhouse_ru
    то есть проще просто поля массивы создавать? а потом работать, как-будто с вложенной структурой?
  • https://t.me/clickhouse_ru
    нет никакой вложенной структуры. Есть только массивы.

    Nested это syntax sugar, который существует только в момент create_table (почти, не будем упомимать flatten_nested).
  • https://t.me/clickhouse_ru
    А выборку потом как делать, она же с nested через array join делается?
  • https://t.me/clickhouse_ru
    @dream_of_silence #264244 07:41 PM, 03 Apr 2022
    А тут, если без структуры как равномерно развернуть все массивы в строки, когда это понадобится?
  • https://t.me/clickhouse_ru
    @orantius #264245 07:43 PM, 03 Apr 2022
    from table array join xs as x, ys as y
  • https://t.me/clickhouse_ru
    Понял, попробую, всем спасибо.
  • https://t.me/clickhouse_ru
    могу написать пример или дать ссылку, если вы предоставите create table из трех полей, + insert, + и что нужно на выходе
  • https://t.me/clickhouse_ru
    У меня, вроде, получилось, как мне надо без Nested, просто поля SimpleFunction(grouparrayarray). И select выдал, что нужно, завтра всю структуру замучу с мат вью. Если будут еще вопросы, предоставлю пример. Спасибо!)
  • 04 April 2022 (102 messages)
  • https://t.me/clickhouse_ru
    Всем спасибо за помощь в вопросе, в итоге переспал) с вашими идеями ночь и придумал свой вариант.
    - удаляю материализованный столбец если он есть is_actual - 9 секунд. (alter table ... drop column if exists)
    - Создаю материализованный столбец в основной таблице is_actual в котором из словаря сразу рассчитываю его актуальность. 1-3 секунды (alter table ... add column if not exists ...)
    - далее делаю alter table ... delete where is_actual = 0 and date_modify < today() — чтобы не зацепить те данные что в процессе укладки (допущение, но не планируется запускать такую чистку сразу в начале дня, часа в 3 ночи - там уже все будет уложено точно. date_modify - дата вставки строки в таблицу - дефолт на стороне КХ)
    - жду 15-30 секунд - мутация успешно завершена.
    - профит.
  • https://t.me/clickhouse_ru
    @ActionNum #264252 06:37 AM, 04 Apr 2022
    Доброе утро. Подскажите пожалуйста по настройкам clickhouse-copier. При копировании некоторых партиций упераюсь в лимит по памяти и партиция не может приатачится и соответсвенно помечается как dirty. Не пойму что нужно подкрутить, чтобы не было этих ошибок:
    https://pastebin.com/1kKT36MQ
    <Error> Application: An error occurred during copying, partition will be marked - Pastebin.com

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

  • @allokdog #264254 06:42 AM, 04 Apr 2022
    Всем привет. Подскажите, как задать значение log_queries_min_query_duration_ms ?
  • https://t.me/clickhouse_ru
    @lex_zen #264255 07:39 AM, 04 Apr 2022
    Коллеги, вопрос касательно агрегации.
    У меня есть две таблицы, в одной хранятся временные ряды (product_id, timecode, value), в другой ключ-значение (product_id, agg_time) - значение требуемой гранулярности для конкретного продукта.
    Я хочу сделать запрос, который возьмет все данные из таблицы с рядами, съагрегирует данные по каждому продукту с требуемой гранулярностью. Типа у продукта 1 гранулярность 5 минут, у продукта 2 гранулярность 30 минут и т.д.
    Похожий запрос должен выполнять требуемое
    SELECT product_id,
    toStartOfInterval(timecode, INTERVAL agg_time MINUTE) as timecode,
    avg(value) as value
    FROM timeseries ts
    JOIN (
    SELECT product_id, agg_time
    FROM keyvalue
    ) kv ON ts.product_id = kv.product_id
    GROUP BY product_id, timecode;
    Но есть ограничение Argument at index 1 for function toStartOfInterval must be constant.
    Подскажите, как его обойти, пожалуйста.
  • если набор гранулярностей финальный и известный, то можно попробовать рассчитать все возможные варианты, а потом достать нужный через multiIf(agg_time = , ...)
  • https://t.me/clickhouse_ru
    не очень красивое решение, но рабочее, спасибо
  • думаю, стоит подождать, сейчас народ проснется, и может, предложит что-то более изящное. потому что да, это костыль, который сломается, как только в keyvalue прилетит что-то неожиданное)
  • https://t.me/clickhouse_ru
    @Alexey_037 #264259 08:02 AM, 04 Apr 2022
    А вторая часть , та что в join - больших размеров? Надо учитывать, что она будет разворачиваться в памяти полностью, не будет ли out of memory в итоге?
  • https://t.me/clickhouse_ru
    @Alexey_037 #264260 08:03 AM, 04 Apr 2022
    Это все таки, как мне кажется, задача больше для БД наподобие Postgres, нет?
  • https://t.me/clickhouse_ru
    @Sablast #264261 08:13 AM, 04 Apr 2022
    подскажите, пожалуйста, попытались перевести словари на DDL (server 21.11.8.4), отказывается работать без явного указания бд. как то можно глобально задать, чтобы не переписывать скрипты?

    сейчас приходится писать SELECT dictGet('db_name.dict_name',...), а хочется как раньше SELECT dictGet('dict_name',...)
  • @s4851 ↶ Reply to #264261 #264262 08:17 AM, 04 Apr 2022
    А вы указываете БД по умолчанию про коннекте?
  • https://t.me/clickhouse_ru
    обычно это default, но могут быть и другие схемы при подключении
  • https://t.me/clickhouse_ru
    @Sablast #264264 08:21 AM, 04 Apr 2022
    словари хранятся в схеме dictionaries
  • если в той же схеме будет работать ок.
  • https://t.me/clickhouse_ru
    в той же схеме да, но получается что через DDL добиться такого же поведения как раньше нельзя?
  • как по вашему оно должно работать если в разных схемах создать словари с одинаковым именем
  • https://t.me/clickhouse_ru
    я надеялся что можно например указать параметр схемы для словарей по дефолту, чтобы если база не указана то идет искать туда
  • https://t.me/clickhouse_ru
    небольшая 8-12 значений
  • https://t.me/clickhouse_ru
    Сделайте константу с типом map, вместо джойнов или словарей
  • https://t.me/clickhouse_ru
    Прошу прощения, я неправильно понял слова Алексея. Эта таблица keyvalue в действительности представляет собой view, которая при обращении формирует пары key-value. Количество этих пар может быть как 0 так и тысячи, зависит от количества продуктов. Поэтому map не подходит.
    Значений аргумента agg_time 8-12 штук.
  • https://t.me/clickhouse_ru
    Ну тогда словарь сделайте, ключ то уникален хоть? Value Сагрегируйте если там многие к одному
  • @lpankov #264276 10:11 AM, 04 Apr 2022
    Ребят всем привет, может кто-то сталкивался

    Есть таблица, партиции по createdAt (datetime без указания таймзоны), сейчас нужно явно указать UTC (т.к. берёт серверное по умолчанию), но выдаёт ошибку
    Code: 44, e.displayText() = DB::Exception: Trying to ALTER key column createdAt (version 20.3.21.2 (official build))

    Кто-то менял partition based поля?
  • Похоже что поле в ключе сортировки и поменять можно только переливкой данных в новую таблицу
  • https://t.me/clickhouse_ru
    @koshakm5 #264278 10:34 AM, 04 Apr 2022
    привет, кто-нибудь делал SYSTEM DROP REPLICA 'replica_name' FROM DATABASE database; ?
    https://clickhouse.com/docs/en/sql-reference/statements/system/#query_language-system-drop-replica
    SYSTEM | ClickHouse Documentation

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

  • https://t.me/clickhouse_ru
    @koshakm5 #264279 10:35 AM, 04 Apr 2022
    у меня с первого раза не вышло, возможно есть какие-то условия, типа запуска с соседней реплики того же шарда?
  • https://t.me/clickhouse_ru
    @koshakm5 #264280 10:36 AM, 04 Apr 2022
    со второго раза с соседней реплики получилось, хочу разобраться почему не получилось с первого раза
  • https://t.me/clickhouse_ru
    @andorey #264281 10:46 AM, 04 Apr 2022
    Коллеги, кто успешно переехал на CH поделитесь опытом. Мне нужно расходы из директа и конверсии из метрики соединить на одном дашборде. И что-то начал настраивать ClickHouse и что-то поник. Какая-то сложная схема выстраивается для передачи данных.

    Может я что-то неверное делаю?
    Прокомментируйте схему, пожалуйста
  • https://t.me/clickhouse_ru
    @Dimaqul #264282 10:59 AM, 04 Apr 2022
    💸ОБУЧАЮ ЗАРАБОТКУ ОТ 100К В МЕСЯЦ💸

    🏆РАБОТАЕМ с Партнеркой Перфлюенс

    🏆ОБУЧАЮ полностью работе на пп, все способы заработка

    ✅В наличии ВСЕ пруфы(выплат на пп, зачислений на карту)

    💎МОЯ Помощь по всем вопросам💎

    💰СТОИМОСТЬ 7500₽
    ❗ПУСТОСЛОВЫ, БЕЗ ДЕНЕГ НЕ ПИСАТЬ❗
    📝 Связь: @Mantekaccc
    🎩 Гарант: @scrooge_garantbot
  • @da_vin4i #264283 10:59 AM, 04 Apr 2022
    что это за херня? выкиньте его нахер отсюда с концами
  • https://t.me/clickhouse_ru
    Я думаю, что почти все в этом чате получают > 100 R
  • @da_vin4i #264285 11:00 AM, 04 Apr 2022
    немного не там идиотов ищет=)
  • https://t.me/clickhouse_ru
    @Pershin_Artem_spb #264286 11:01 AM, 04 Apr 2022
    кто-нибудь знает чем можно заменить ClickHouseExternalData? Из старого jdbc-драйвера (ru.yandex.clickhouse.jdbc) в новом (com.clickhouse.jdbc)? почему-то удалили этот тип.
  • https://t.me/clickhouse_ru
    @Pershin_Artem_spb #264287 11:02 AM, 04 Apr 2022
    Есть ли какая-то разница в производительности между использованием ExternalData и прямым запихиванием огромной строки в IN-предикат?
  • https://t.me/clickhouse_ru
    Никто не отменяет размер запроса + скорее всего ExternalData сжимается на клиенте
  • https://t.me/clickhouse_ru
    @Vitaly_Ivanov #264290 11:27 AM, 04 Apr 2022
    Коллеги, подскажите:
    SHOW CREATE TABLE mydb.mytable;
    показывает запрос создания таблицы в одну строку, можно ли как-то вывести этот запрос в человеко-читаемом виде с отступами?
  • @AlexeyLemeshevski #264291 11:34 AM, 04 Apr 2022
    всем привет! а кто-нибудь знает, почему при попытке написать show processlist вылезает вот такое сообщение про ipv6 и сервер бросает соединение (просит заново ввести пароль):
  • @AlexeyLemeshevski #264292 11:35 AM, 04 Apr 2022
    ipv6 при подключении не задействован. Подключаюсь указывая ipv4 обычный
  • https://t.me/clickhouse_ru
    проверил на 21.12 - выводит отформатированно. Какая версия КХ/клиента?
  • https://t.me/clickhouse_ru
    Версия клиента с сервером не различается случайно? Выглядит как будто клиент не поддерживает тип, который ему вернул сервер?
  • https://t.me/clickhouse_ru
    ой старая) 19.чего-то там…
  • Оооо ) да, различается ) клиент 18.16.1 (через apt-get скорее всего ставилась), а сервер 21.9.2 revision 54449.

    Для меня было очень не очевидно подумать в эту сторону ) Спасибо огромное!!!!
  • https://t.me/clickhouse_ru
    Установка | Документация ClickHouse

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

  • https://t.me/clickhouse_ru
    Думаю это было одно из улучшений - выводить в отформатированном виде. Поэтому врядли чем-то можно помочь (можно посоветовать только использовать какой-нибудь DataGrip/DBeaver , etc. У них есть функция форматирования.
  • https://t.me/clickhouse_ru
    все не JDBC штуки переехали в java clickhouse-client
  • https://t.me/clickhouse_ru
    есть, иногда большая, зависит от размера external data
  • https://t.me/clickhouse_ru
    я вроде нашел что-то подобное, кажется то, что нужно?
    try (ClickHouseConnection conn = newConnection(new Properties());
    PreparedStatement stmt = conn.prepareStatement(
    "SELECT bitmapContains(my_bitmap, toUInt32(1)) as v1, bitmapContains(my_bitmap, toUInt32(2)) as v2 from {tt 'ext_table'}")) {
    stmt.setObject(1, ClickHouseExternalTable.builder().name("ext_table")
    .columns("my_bitmap AggregateFunction(groupBitmap,UInt32)").format(ClickHouseFormat.RowBinary)
    .content(new ByteArrayInputStream(ClickHouseBitmap.wrap(1, 3, 5).toBytes()))
    .asTempTable()
    .build());
    ResultSet rs = stmt.executeQuery();
    }

    Извините за джаву тут)
  • https://t.me/clickhouse_ru
    @Pershin_Artem_spb #264304 12:11 PM, 04 Apr 2022
    Видимо сейчас нужно создавать как темповую табличку явно, а не прозрачно, как раньше через ExtrernalData
  • https://t.me/clickhouse_ru
    @Pershin_Artem_spb #264305 12:24 PM, 04 Apr 2022
    Или лучше такие "не-стандартные-для-jdbc" запросы делать через ClickHouseClient в стиле:
    ClickHouseNode server = getServer(ClickHouseProtocol.HTTP);
    try (ClickHouseClient client = ClickHouseClient.newInstance();
    ClickHouseResponse resp = client.connect(server).format(ClickHouseFormat.RowBinaryWithNamesAndTypes)
    .query("select toString(number) as query_id from numbers(100) where query_id not in (select query_id from ext_table) limit 10")
    .external(ClickHouseExternalTable.builder().name("ext_table")
    .columns("query_id String, a_num Nullable(Int32)").format(ClickHouseFormat.CSV)
    .content(new ByteArrayInputStream("\"1,2,3\",\\N\n2,333".getBytes())).build())
    .execute().get()) {
    for (ClickHouseRecord r : resp.records()) {
    Assert.assertNotNull(r);
    }
    }
  • https://t.me/clickhouse_ru
    @OrNixx #264306 12:25 PM, 04 Apr 2022
    Добрый день. Как обеспечиваете кросс-ДЦ репликацию данных в КХ, если между ДЦ имеют место быть ощутимые задержки? В первую очередь интересует зукипер, насколько я знаю, он очень не любит задержки между нодами
  • если записи в одном из ДЦ, держать ЗК кластер в нем
  • между океанами норм вроде, главное не делать слишком частых вставок/мерджей
  • https://t.me/clickhouse_ru
    @OrNixx ↶ Reply to #264307 #264309 12:29 PM, 04 Apr 2022
    какая задержка вообще в первую очередь имеет значение? между КХ и ZK или между нодами ZK ?
  • между нодами ЗК, и между пишущими нодами КХ к ЗК
  • https://t.me/clickhouse_ru
    @OrNixx ↶ Reply to #264308 #264312 12:48 PM, 04 Apr 2022
    а если всё же вставка довольно иненсивная, есть ещё какие-нибудь типовые советы? Про весь ЗК в "пишущем" ДЦ понял.
  • ну в главном ДЦ вставляйте на здоровье...
  • @dj_mixer #264314 12:49 PM, 04 Apr 2022
    если черезчур интенсивная можете получить проблему и без второго ДЦ. На каждый созданный парт в ЗК идет запись.
  • https://t.me/clickhouse_ru
    А если дц с зукипером придёт пушистый зверёк?
  • https://t.me/clickhouse_ru
    там похоже баг сейчас в jdbc. Я завел issue
  • https://t.me/clickhouse_ru
    @OrNixx ↶ Reply to #264315 #264317 01:08 PM, 04 Apr 2022
    да, этот же вопрос вертится
  • https://t.me/clickhouse_ru
    read only станут таблицы
  • https://t.me/clickhouse_ru
    Как это всё восстанавливать, если он с концами ушёл? Просто новый кластер зукипера поднять, что-то мне подсказывает, не подойдёт
  • https://t.me/clickhouse_ru
    почему? просто потом SYSTEM restore replica
  • https://t.me/clickhouse_ru
    @den_crane #264321 01:10 PM, 04 Apr 2022
    и можно иметь observer в далеком ДЦ
  • https://t.me/clickhouse_ru
    А вы хотите именно все данные реплецировать? Может рассмотреть варианты держать два кластера не зависимо со своим ZK и писать и читать локально сырые данные, а агрегированные через дистребьютед таблицы держать в двух копиях?
  • https://t.me/clickhouse_ru
    @OrNixx ↶ Reply to #264321 #264323 01:12 PM, 04 Apr 2022
    а вот это уже интересно. пасибо
  • можно сделать обсервер кластер в удаленном - но вставлять вы туда все равно не сможете без ручного фейловера.

    если нужен ручной фейловер - делаете обсервер кластер. и после зверька меняете на не обсервер.
  • https://t.me/clickhouse_ru
    @den_crane #264325 01:12 PM, 04 Apr 2022
    observer надо будет промоутить после потери основного кластера, но я бы не стал даже обсервер делать,

    SYSTEM restore replica
  • https://t.me/clickhouse_ru
    @OrNixx ↶ Reply to #264325 #264326 01:13 PM, 04 Apr 2022
    то есть переключить запасной КХ на локальный чистый зукипер?
  • https://t.me/clickhouse_ru
    @OrNixx #264327 01:14 PM, 04 Apr 2022
    SYSTEM restore replica разворачивает реплику вспять?
  • ух ты, все так просто оказывается
  • https://t.me/clickhouse_ru
    Кстати, а как дела с этим у clickhouse keeper? Его вообще уже стоит в прод ставить?
  • на митапе сказали что можно.
    observer режима в конфигах не наблюдается
  • https://t.me/clickhouse_ru
    да, создает всю инфу в голом зукипере
  • https://t.me/clickhouse_ru
    @OrNixx #264332 01:19 PM, 04 Apr 2022
    спасибо, весьма ценные советы.
  • https://t.me/clickhouse_ru
    clickhouse keeper ничем в этом плане не отличается от ЗК
  • https://t.me/clickhouse_ru
    Да, я тоже воспроизвел Ваш код из issue, думал небольшое исправление поможет, но нет. Больше всего меня удивляет, что это код из тестов самого репозитория clickhouse-jdbc, который по идее должен запускаться регулярно и проходить...
  • https://t.me/clickhouse_ru
    @Valenvaryon #264336 03:50 PM, 04 Apr 2022
    а Кликхаусная дока развалилась чтоли?
    https://clickhouse.com/en/sql-reference/
  • https://t.me/clickhouse_ru
    What Is ClickHouse? | ClickHouse Docs

    ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).

  • https://t.me/clickhouse_ru
    @nyoroon #264338 03:52 PM, 04 Apr 2022
    как будто переделали
  • https://t.me/clickhouse_ru
    в Сафари весь css развалился, да и свою ссылку я нашел с этой страницы
  • https://t.me/clickhouse_ru
    @nyoroon #264340 03:52 PM, 04 Apr 2022
    потеряли тёмную тему :(
  • https://t.me/clickhouse_ru
    там пробел надо убрать оказывается {tt 'table1' }
  • https://t.me/clickhouse_ru
    Ага, и нигде не описано, что tt - это особый плейсхолдер типа ? для парсера.
  • https://t.me/clickhouse_ru
    на русском доку тоже потеряли походу
  • https://t.me/clickhouse_ru
    @Shabashev #264348 04:32 PM, 04 Apr 2022
    и поиск не работает
  • https://t.me/clickhouse_ru
    Поиск вроде норм
  • https://t.me/clickhouse_ru
    @Shabashev #264350 04:35 PM, 04 Apr 2022
    судя по нетворку перед тем как поиск заработает, он делает запрос на https://clickhouse.com/docs/lunr-index-1649086858170.json который мне отдавался 2 минуты
  • https://t.me/clickhouse_ru
    @nyoroon #264353 04:37 PM, 04 Apr 2022
    Уф
  • https://t.me/clickhouse_ru
    @Shabashev #264354 04:37 PM, 04 Apr 2022
    походу он это грузит и потом поиск локальный
  • у меня 2.7 МЬ
  • и перерисовали все в хипстерском скетч стиле ... капитализм победил =)

    теперь нельзя перейти в исходники хелпа (((
  • @dj_mixer #264358 08:16 PM, 04 Apr 2022
    гифки забыли правда, на английской quickstart странице русские гифки

    https://clickhouse.com/docs/assets/images/column-oriented-b992c529fa4085b63b57452fbbeb27ba.gif#

    пример не читается + можно б упростить
  • @BruceWayne_100 #264359 09:14 PM, 04 Apr 2022
    всем привет, как в кх работает row_number() over mycolumn? Я что-то делаю не так?
  • https://t.me/clickhouse_ru
    over чта?
  • Ну произвольная колонка
  • а что вы делаете?
  • https://t.me/clickhouse_ru
    Денис, доброй ночи. Подскажите пожалуйста вы когда вычитываете kafka через CH сильно тюните от дефолтных настроек и кафку и CH если нагрузка на кафку примерно такая по трем основным топикам:
    сообщений в минуту. Суть проблемы в том, что случается иногда ребалансировка топиков и в сообщениях CH вижу ворнинги что он не может приасайнится к партиции либо такой
    Consumer group session timed out (in join-state steady) after 312742 ms without a successful response from the group coordinator (broker 2, last error was Broker: Unknown member): revoking assignment and rejoining group
  • https://t.me/clickhouse_ru
    select x, number, row_number() over ( partition by x ) from (select number%3 x, number from numbers(10));
    ┌─x─┬─number─┬─row_number() OVER (PARTITION BY x)─┐
    │ 0 │ 0 │ 1 │
    │ 0 │ 3 │ 2 │
    │ 0 │ 6 │ 3 │
    │ 0 │ 9 │ 4 │
    │ 1 │ 1 │ 1 │
    │ 1 │ 4 │ 2 │
    │ 1 │ 7 │ 3 │
    │ 2 │ 2 │ 1 │
    │ 2 │ 5 │ 2 │
    │ 2 │ 8 │ 3 │
    └───┴────────┴────────────────────────────────────┘
  • https://t.me/clickhouse_ru
    @den_crane #264365 09:55 PM, 04 Apr 2022
    select x, number, row_number() over ( partition by x order by number) from (select number%3 x, number from numbers(10)) order by x, number desc;
    ┌─x─┬─number─┬─row_number() OVER (PARTITION BY x ORDER BY number ASC)─┐
    │ 0 │ 9 │ 4 │
    │ 0 │ 6 │ 3 │
    │ 0 │ 3 │ 2 │
    │ 0 │ 0 │ 1 │
    │ 1 │ 7 │ 3 │
    │ 1 │ 4 │ 2 │
    │ 1 │ 1 │ 1 │
    │ 2 │ 8 │ 3 │
    │ 2 │ 5 │ 2 │
    │ 2 │ 2 │ 1 │
    └───┴────────┴────────────────────────────────────────────────────────┘
  • https://t.me/clickhouse_ru
    зависит от жирности сообщений, сообщения бывают 3 поля, а бывают 600 полей.
    у вас либо летенси до брокера, либо брокеры тормозят.
  • https://t.me/clickhouse_ru
    @ActionNum #264367 10:00 PM, 04 Apr 2022
    Ну да вот не понятно, может сетка в ДЦ полагала, и сейчас отпустило
  • https://t.me/clickhouse_ru
  • 05 April 2022 (205 messages)
  • https://t.me/clickhouse_ru
    @Hardstep83 #264369 04:07 AM, 05 Apr 2022
    А что с русской документацией на офф сайте, кто-нибудь в курсе?
  • https://t.me/clickhouse_ru
    @konnectrl #264370 04:10 AM, 05 Apr 2022
    Вчера всё сломали
  • https://t.me/clickhouse_ru
    А починят?
  • https://t.me/clickhouse_ru
    Я думаю, это переход на новый дизайн документации, и кажись будет только английский язык
  • Не знаю, люди опен сорсили 5-6 языков док, думаю добавят. Новая документация очень шустро работает кстати, lunrjs ок. Надеюсь документацию по сборке документ сервера тоже выложат.
  • https://t.me/clickhouse_ru
    @1695040889 #264374 04:34 AM, 05 Apr 2022
    Поиск по слову "русский" не выдает ничего, по "russian" - аж 5 вхождений, одно из них - "chilled 100° Russian vodka". Поиск пока там не шибко работает.
  • https://t.me/clickhouse_ru
    @1695040889 #264375 04:35 AM, 05 Apr 2022
    Обзор | Документация ClickHouse

    Что такое ClickHouse ClickHouse - столбцовая система управления базами данных (СУБД) для онлайн обработки аналитических

  • Так языки остальные еще не подъехали. Французского, китайского и всех остальных тоже нет
  • https://t.me/clickhouse_ru
    @1695040889 #264377 04:36 AM, 05 Apr 2022
    Подождем.
  • @dj_mixer #264378 04:37 AM, 05 Apr 2022
    Ну старый док сервер со всеми страницами есть в гитхабе пока, там и гайд как собирать.
  • https://t.me/clickhouse_ru
    @1695040889 #264379 04:37 AM, 05 Apr 2022
    Но переключателя уже нет.
  • https://t.me/clickhouse_ru
    @1695040889 #264380 04:38 AM, 05 Apr 2022
    Впрочем, у меня en_US раньше ru_RU запрашивается, я не сильно много потерял 😂
  • @dj_mixer #264381 04:38 AM, 05 Apr 2022
    Там весь фреймворк другой, спа какой то.

    Раньше еще хорошая фича была можно было одной страницей всю доку открыть ( браузер умирает правда), но искать удобно.
  • https://t.me/clickhouse_ru
    @1695040889 #264382 04:39 AM, 05 Apr 2022
    Да, кстати, у меня где-то валяется в виде pdf.
  • @dj_mixer #264383 04:40 AM, 05 Apr 2022
    Да, а еще раньше было переключение между релизами )) но это уже давно выпилено.
  • https://t.me/clickhouse_ru
    @1695040889 #264384 04:40 AM, 05 Apr 2022
    С какой скоростью фичи добавляются, документировать некогда :)
  • @dj_mixer #264385 04:42 AM, 05 Apr 2022
    Да, так как доку запиливали сильно позже смысла это имело мало )
  • https://t.me/clickhouse_ru
    @Hardstep83 #264386 04:49 AM, 05 Apr 2022
    Общий синтаксис - Документация ClickHouse
    https://test.clickhouse.tech/docs/ru/query_language/syntax/
  • https://t.me/clickhouse_ru
    @Hardstep83 #264387 04:49 AM, 05 Apr 2022
    Тут осталось что-то)
  • От 20.1 😂
    Старовато
  • https://github.com/ClickHouse/ClickHouse/tree/master/docs/tools

    ну можно самому сгенерить себе html... если оно ещё работает
    ClickHouse/docs/tools at master · 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
    У меня свалилось с ошибкой, но может это я криворук, ещё смотрю
  • @AndyAMikhaylov #264393 07:02 AM, 05 Apr 2022
    Коллеги, "у вас вся спина белая" : с прошедшим 1 апреля
    ВОПРОС к ГУРУ: правильно я догадываюсь, что ? :
    1) поиск по 3-м полям таблицы МОЖЕТ (при наличии ресурсов) делаться 3-мя потоками
    2) поиск по Array-полю с 3-мя элементами БУДЕТ делаться 1-м потоком
    даже скорее вопрос не о поиске, а об извлечении данных
  • https://t.me/clickhouse_ru
    Как я знаю, clickhouse по умолчанию читает и пишит в 8 потоков.
  • @AndyAMikhaylov #264396 07:14 AM, 05 Apr 2022
    спс
    т.е. 1 поле может читаться в 8 потоков ?
  • А какая разница сколько полей искать? 1 или 100? Всегда будет мнонопоточно искать, каждый поток будет искать по своей части данных. Обычно число потоков = половине ядер
  • @AndyAMikhaylov #264398 07:15 AM, 05 Apr 2022
    спс
    Вы проверяли это в исходниках ?
  • Нет, только на практике
  • @AndyAMikhaylov #264400 07:17 AM, 05 Apr 2022
    гут - это и хотел узнать
    еще раз спс
  • @AndyAMikhaylov #264401 07:20 AM, 05 Apr 2022
    в продолжение - еще вопрос, если позволите
    после поиска : сбор данных и простое агрегирование (sum, avg ... ) на 1-м единственном сервере (нет шардинга) идет тоже многопоточно ?
    т.е. типа агрегация по 1-му полю = 1 поток ?
    если нужно агрегировать 3 поля - 3 потока ...
  • Да, агрегация тоже многопоточна, КХ MPP система, почти все операции кроме финального слияния результатов делаются многопоточно
  • @AndyAMikhaylov #264403 07:30 AM, 05 Apr 2022
    еще минутку внимания
    из-за чего увеличение числа argMax() в запросе по 1-й таблице драматически увеличивает время его выполнения ,
    в то время как число sum() и т.п. - не увеличивает ?
  • https://t.me/clickhouse_ru
    Ребята, подскажите по условиям в JSON_QUERY? Есть вообще такая функциональность у этой функции?
  • https://t.me/clickhouse_ru
    @ValarMorghuliis #264406 07:46 AM, 05 Apr 2022
    Всем привет! В логах есть повторяющая ошибка вида

    <Error> db.table.DirectoryMonitor .. DB::Exception: Column date is not under aggregate function and not in GROUP BY

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

    Хочу спросить, может ли быть так, что КХ (версия 22.1.3.7) в логах крутит какие-то старые ошибки постоянно, или это исключено? Или может есть советы, куда можно также посмотреть?
  • Я бы наверное для начала посмотрел сколько памяти уходит, не начинает ли использоваться диск
  • В query_log не смотрели? Там должна быть сохранена эта ошибка
  • https://t.me/clickhouse_ru
    Да пока даже запросов не уходит в кластер, а ошибка эта постоянно появляется. В query_log посмотрю, спс
  • https://t.me/clickhouse_ru
    initial_query_start_time: 2022-01-31 10:24:07
    initial_query_start_time_microseconds: 2022-01-31 10:24:07.613998

    вот что в логах. Все таки получается запрос был очень давно инициирован и КХ его сам переотправляет? Такое может как-то регулируется в настройках?
  • После небольших тестов выяснилось: Clickhouse работает с виртуальными полями _key, _partition
    По крайне мере с движком Kafka в них можно писать. Есть только один недостаток: при объявлении таблицы нужно явно указывать эти поля (например _key) и они потом обязательно попадут в сообщение. Для сериализации в JSON все работает корректно.
    У нас же использовался protobuf - уже требуется изменить схему.
    Пример:
    CREATE DATABASE sandbox;

    CREATE TABLE sandbox.sandbox_data
    (
    payload String,
    _key String
    ) ENGINE = Kafka()
    SETTINGS
    kafka_broker_list = 'kafka:9092',
    kafka_topic_list = 'sandbox_data',
    kafka_group_name = 'clickdec-101',
    kafka_format = 'RawBLOB',
    kafka_num_consumers = 1,
    kafka_commit_every_batch = 1,
    kafka_thread_per_consumer = 1;

    INSERT INTO sandbox.sandbox_data (payload,_key) VALUES ('go','ok1');
    Сообщение Kafka
    {"topic":"sandbox_data","payload":"gook1","_kafka":{"offset":12,"partition":0,"highWaterOffset":13,"key":"ok1"},"_msgid":"dc833e08f6401f05"}
  • 1) нет, может делаться хоть 100 потоками (max_threads). Нет привязки. Они там по блокам компрессии и дальше блокам данных обрабатываются...
    2) нет, если строк много будет хоть 100 потоками (max_threads). Конкретный массив будет обрабатываться одним потоком
  • нет такого... settings max_threads=x
    x потоков
  • @dj_mixer #264414 08:21 AM, 05 Apr 2022
    есть ограничения, типа недоделанных window function, неуспевание чтения с диска (можно делать разное кол-во потоков на чтение и обработку)... но это тонкости
  • https://t.me/clickhouse_ru
    Я не нашёл в гугле, чтобы JSON_QUERY имеел такую возможность в SQL, но нашёл что он умеет так делать в JS. Скорей всего вы не туда смотрите.
  • https://t.me/clickhouse_ru
    SELECT * FROM system.settings
    WHERE name like '%max_threads%'
  • да, можно задать на запрос, на сессию, как угодно.
    цифра 8 это если стоит по умолчанию и на ноде 16 cpu/vcpu
  • https://t.me/clickhouse_ru
    Понял, спасибо
  • Так а запрос сам как выглядит?) Случайно не мутация?
  • https://t.me/clickhouse_ru
    INSERT там, то есть на мат вью ругался. Но суть в том, что это было раньше, 3 месяца назад и сейчас это не актуально, а вот в логи срет. Что-то с этим можно сделать?
  • у вас где то по пути distributed скорее всего. удалите кривую вставку...
  • https://t.me/clickhouse_ru
    в том и вопрос, что это уже не воспроизвоится, но в логах ошибки есть и постоянно появляются. initial_query_start_time как раз и говорит о том, что ошибка была еще 3 месяца назад
  • https://t.me/clickhouse_ru
    @minto_o #264423 09:20 AM, 05 Apr 2022
    Вопрос как КХ хранит данные одинаковые данные в партах.
    У него же есть оптимизация, что дублирующиеся значения хранятся как одно (100 одинаковы строк будут весить как одна)
    Это работает с value-type по типу int8, int16, int32?

    Делаю две таблицы Marker1 и Marker2.
    Что выгоднее две таблы или одну но партом по MarkerId будет одно то же по месту на диске?
    или в одной таблице они будут чуть экономнее храниться?
  • почитайте тут про вставку в дистрибьютед https://t.me/clickhouse_ru/258138

    может найдёте косяк
    Konstantin Ilchenko in ClickHouse не тормозит

    Вставка в distributed идёт асинхронно, на ноде через которую была вставка в папке с дистрибьютед таблицой создаются bin файлы с данными, они потом пытаются отправиться на нужный шард. Из-за того что ошибка в данных они не могут отправиться и пытаются заново отправиться, можете их удалить чтобы в логах не было ошибок в /var/lib/clickhouse/data/db_name/distributed_table_name/...shardN/*.bin если база атомик то путь будет немного другой

  • файл у вас в дистрибютед папке... он будет пытаться вставиться до бесконечности
  • @PavelPavlov39 #264427 09:38 AM, 05 Apr 2022
    Всем привет!
    Подскажите по переименованию реплицируемой таблицы, возможно ли и как правильно выполнить.
    Есть таблица, создавалась с использованием макросов в пути ZK (в том числе и имя таблицы). Сейчас возникла необходимость переименовать таблицу. Но в этом случае получится, что Clickhouse, после переименования таблицы, начнет искать метаданные таблицы в ZK по новому пути, которого не существует. Что приведет к ее неработоспособности. Поправьте, если что-то неверно.
    Сам вопрос - возможно ли как-то выполнить переименование таблицы в такой ситуации, не нарушив ее работоспособности?
  • не будет, путь ZK остается навечно.

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

    но у вас проблем не будет.
  • Но дока говорит обратное:
    https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/replication
  • https://t.me/clickhouse_ru
    @OrNixx #264430 10:00 AM, 05 Apr 2022
    <Information> TablesLoader: 39.86013986013986%
    это неизбежная норма, что на 3 ТБ КХ стартует очень долго?
  • {table} and {database} macro in ReplicatedMergeTree vs RENAME TABLE · Issue #6917 · ClickHouse/ClickHouse

    If table was created with {database} and {table} macros in zookeeper path, then RENAME operation makes it stop working. Probably those macros should be unfold at the moment of table creation.

  • https://t.me/clickhouse_ru
    Долго это сколько?

    Вообще вам такое может помочь
    https://github.com/ClickHouse/ClickHouse/pull/32928
    Speed up parts loading process of MergeTree by metadata cache by taiyang-li · Pull Request #32928 · ClickHouse/ClickHouse

    Changelog category (leave one): Performance Improvement Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md): Speed up parts loading process of MergeTree t...

  • https://t.me/clickhouse_ru
    @OrNixx ↶ Reply to #264432 #264433 10:11 AM, 05 Apr 2022
    до 10 мин
  • https://t.me/clickhouse_ru
    Многовато, у вас медленные диски?
  • зависит не от размера, зависит от кол-ва таблиц x партов
  • китайцы молодцы, наконец...
  • https://t.me/clickhouse_ru
    ага
  • этого ещё нет в релизах получается?
  • https://t.me/clickhouse_ru
    @OrNixx ↶ Reply to #264434 #264439 10:18 AM, 05 Apr 2022
    SATA WD 14 TB, 7200 оборотов. Медленные, но неужели настолько?
  • https://t.me/clickhouse_ru
    Кликхаус трогает все файлы партов при загрузке, что бы метадату подтянуть, так что вполне
  • https://t.me/clickhouse_ru
    @OrNixx ↶ Reply to #264432 #264441 10:26 AM, 05 Apr 2022
    поглядел. я не очень смыслю в цикле разработке. Этот коммит уже приняли в мастер, как я понял? То есть будет в одном из следующих релизов?
  • https://t.me/clickhouse_ru
    Да, в 22.4 думаю
  • https://t.me/clickhouse_ru
    @unikoid #264445 10:35 AM, 05 Apr 2022
    Всем привет. Документация не раскрывает ответы на вопросы, мб кто-то сможет подсказать:
    Вопросы про команду ALTER ... MOVE PARTITION TO TABLE
    1. Правда ли, что она работает на уровне метаданных и не может привести к копированию данных?
    2. Правда ли, что она применяется на всем кластере? Нужно ли по аналогии с DETACH PARTITION применять ее обязательно на leader replica или можно на любой?
    3. Правда ли, что если я указываю партицию по ID и у нескольких партиций в system.parts одинаковое значение partition_id - перенесутся только активные?
  • https://t.me/clickhouse_ru
    @unikoid #264446 10:36 AM, 05 Apr 2022
    Также есть вопрос про движки: если планируется один раз залить данные в таблицу, дедуплицировать их и использовать без последующего долива - есть ли смысл использовать ReplacingMergeTree? Или в таком сценарии разницы (например по скорости заливки) с обычным MergeTree + OPTIMIZE ... FINAL DEDUPLICATE BY.. по окончанию заливки не будет? Дубликатов на входе - не более 10%.
  • https://t.me/clickhouse_ru
    @KiLEXst #264447 10:36 AM, 05 Apr 2022
    Если вдруг кому то надо - сделал докерфайл для сборки документации на русском

    FROM ubuntu:latest as base

    ARG DEBIAN_FRONTEND=noninteractive
    RUN apt-get update && apt-get install -y git npm pip
    RUN TZ=Etc/UTC apt-get -y install tzdata
    RUN npm install -g purify-css amphtml-validator
    RUN git clone --branch 22.3 https://github.com/ClickHouse/ClickHouse.git
    WORKDIR /ClickHouse/docs/tools
    RUN sed -i s/^pymdown-extensions==.*/pymdown-extensions==9.0/ requirements.txt
    RUN sed -i s/^MarkupSafe==.*/MarkupSafe==2.0/ requirements.txt
    RUN sed -i s/^mkdocs==.*/mkdocs==1.2.4/ requirements.txt
    RUN echo "mkdocs-material==8.2.6" >> requirements.txt
    RUN pip install -r requirements.txt
    RUN ./build.py --lang=ru,en --skip-amp --skip-single-page --output-dir=/docs

    FROM nginx:latest
    COPY --from=base /docs/ /usr/share/nginx/html/
  • https://t.me/clickhouse_ru
    @rukavkov #264451 10:52 AM, 05 Apr 2022
    Подскажите, пожалуйста, можно ли импортировать в format_schema_path через клиент clickhouse? А не через физическое создание файлов?
  • https://t.me/clickhouse_ru
    Осталось заргрузить это в https://pastila.nl/
  • 1. правда, причем почти во всех ДБ.
    2. должно реплицироваться но не пробовал. (мы всегда тупо пишем ON CLUSTER если много шардов)
    3. непонятно как вы добились duplicate ID в пределах одной таблицы...
  • можно mergetree + optimize
  • https://t.me/clickhouse_ru
    @725845313 #264455 10:56 AM, 05 Apr 2022
    А локализацию доков-то на сайте зачем убрали? Балин. Мешала?
  • новый фреймворк же явно, SPA, красиво, стильно, молодежно. языки думаю позже подъедут
  • https://t.me/clickhouse_ru
    может санкции, может ошибка.
  • https://t.me/clickhouse_ru
    Спасибо.
    Насчет 3. Создаю ReplacingMergeTree без явного ключа партиционирования, делаю 2 вставки. Получаю два активных парта с partition_id=all у обоих. Если выполнить optimize - эти два станут неактивными, появится третий активный c id=all
  • это парты. в одном партишне может быть n партов. перенесутся все.
  • https://t.me/clickhouse_ru
    это ожидаемое поведение, id=all это не id это префикс партиции в названии каталога парта, если PARTITION BY нет, то он просто all по умолчанию и как выше заметили перенесутся все парты в партишене, партишен у вас один
  • Спасибо!
  • @plompus #264463 11:06 AM, 05 Apr 2022
    Всем привет,

    Есть такой запрос:
    SELECT A,
    any(B) AS B
    FROM table
    GROUP BY A

    И ошибка:
    Exception: Not found column any(B) in block. There are only columns: A, B, C

    Кто-нибудь знает, в чем ошибка?
  • https://t.me/clickhouse_ru
    лучше AS any_B
    и что то не помню откуда взялась функция any
    вроде была только anyLast

    SELECT * FROM system.functions
    посмотрите?
  • В документации есть функция такая - https://clickhouse.com/docs/en/sql-reference/aggregate-functions/reference/any
    any | ClickHouse Docs

    agg_function-any}

  • а версия какая? раньше было подобное, но очень давно
  • Не могу посмотреть, база не моя
  • Да, с другим названием прокатывает. Ладно, обходным путем решу, всем спасибо )
  • Видимо тогда из-за старой версии БД
  • @evgenyanother #264472 11:33 AM, 05 Apr 2022
    добрый день. у меня бекап из google cloud storage в формате parquet в архиве gzip
    данный бекап загружен в яндекс сторадж. как мне из этих файлов развернуть таблицу в клик хаусе?
    что-то вроде этого - https://clickhouse.com/docs/en/engines/table-engines/integrations/s3/
  • @valeriysimonov #264475 12:00 PM, 05 Apr 2022
    Всем привет! Ситуация: обращаюсь в кх из графаны через grafana-clickhouse-datasource. Поставил таймаут 180 секунд. Почему-то долгие запросы прерываются ровно через 30 секунд с ошибкой - "driver: bad connection: Could not process SQL results". Может уже кто-то наступал на такие грабли?
  • select version()
  • https://t.me/clickhouse_ru
    @mezhekov #264477 12:04 PM, 05 Apr 2022
    Добрый день! Подскажите пожалуйста, есть кластер на 21.3.12 хочу обновить до 22.3-lts, какие могут возникнуть проблемы, обновлять хочу без отключения кластера по 1 ноде в каждом шарде, zookeeper планирую оставить?
  • https://t.me/clickhouse_ru
    @shakhov #264478 12:09 PM, 05 Apr 2022
    Всем привет... Столкнулся с проблемой. не пойму в чем дело...
    Добавляю колонку:
    ALTER TABLE test.user_counter ADD COLUMN `n` UInt64 DEFAULT (row_number() OVER (PARTITION BY uid ORDER BY d ASC)) AFTER oid
    При этом возникает ошибка:
    Code: 47. DB::Exception: Unknown identifier: row_number() OVER (PARTITION BY uid ORDER BY d ASC); there are columns: uid, d: While processing _CAST(row_number() OVER (PARTITION BY uid ORDER BY d ASC) AS n_tmp_alter2331953492248545715, 'UInt64') AS n: default expression and column type are incompatible. (UNKNOWN_IDENTIFIER)
    В чем может быть дело?
  • https://t.me/clickhouse_ru
    а как это вообще должно работать? на каждую вставку должна пересчитываться вся таблица?
  • https://t.me/clickhouse_ru
    ну было бы здорово)
  • https://t.me/clickhouse_ru/263835
    ну например вот
    Denny Crane [Starship Captain at Altinity (NB,Canada)] in ClickHouse не тормозит

    только надо читать changelog там backward incompatible дофига между 21.3 и 22.3 в 21.6 поменяли uniq(от UIID) и сломали всем агрегаты

  • есть у нас баг в 21.8, но вы через него "перепрыгнете", поэтому ок
  • https://t.me/clickhouse_ru
    @cmbcksrl #264486 02:15 PM, 05 Apr 2022
    у меня у одного документация на русском не открывается, 404 выдает?
  • @270827469 #264487 02:17 PM, 05 Apr 2022
    И до Кликхауса добрались
  • https://t.me/clickhouse_ru
    @nbykov #264488 02:19 PM, 05 Apr 2022
    Ждём clickhouse+
  • https://t.me/clickhouse_ru
    @No1zzz ↶ Reply to #264486 #264489 02:21 PM, 05 Apr 2022
    Удалили :)
  • https://t.me/clickhouse_ru
    @cmbcksrl #264490 02:21 PM, 05 Apr 2022
    закенселили, получается(
  • https://t.me/clickhouse_ru
    внезапно)
  • https://t.me/clickhouse_ru
    @rasstr0en #264492 02:24 PM, 05 Apr 2022
    Утром писали
  • https://t.me/clickhouse_ru
    @rasstr0en #264493 02:24 PM, 05 Apr 2022
    Новый движок
  • https://t.me/clickhouse_ru
    @rasstr0en #264494 02:24 PM, 05 Apr 2022
    Языки пропали
  • https://t.me/clickhouse_ru
    @rasstr0en #264495 02:24 PM, 05 Apr 2022
    Добавят потом
  • https://t.me/clickhouse_ru
    @rasstr0en #264496 02:25 PM, 05 Apr 2022
    А так пусть что угодно делают, чтобы кх жил)
  • https://t.me/clickhouse_ru
    @cmbcksrl #264497 02:27 PM, 05 Apr 2022
    а окей
  • https://t.me/clickhouse_ru
    ну молодцы, что смогли вывезти команду. Вполне ожидаемо)
  • https://t.me/clickhouse_ru
    @s_ageev #264499 02:42 PM, 05 Apr 2022
    Всем привет!
    Есть табличка ReplicatedReplacingMergeTree которая содержит примерно 100 лярдов событий.
    События могут обновляться в течении 2х последних месяцев.
    Для исключения дубликатов мы используем запросы с агрегацией и функцией argMax().

    Если не использовать argMax() то запросы отрабатывают примерно в 5 раз быстрее, но содержат не верный результат из-за дублей.

    Собственно вопрос, можно как-то оптимизировать запросы, убрать дубли и функцию argMax? )
  • можно сторнировать если колонки тривиальные.
  • @i_kid_you_not #264501 02:55 PM, 05 Apr 2022
    Добрый день! Подскажите, пожалуйста, можно ли как-то указать имена столбцов для untuple?
  • https://t.me/clickhouse_ru
    можно пример?)
  • https://t.me/clickhouse_ru
    LIMIT 1 BY <поля в ORDER BY>
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Спасибо! Покурю этот вариант
  • https://t.me/clickhouse_ru
    @cmbcksrl #264508 03:04 PM, 05 Apr 2022
    посмотрите в ссылке, там примеры со всеми вариантами финализации

    мое личное наблюдение limit 1 by быстрее всех отрабатывает
  • https://t.me/clickhouse_ru
    Это довольно неожиданно (для меня), но может у вас данные такие особенные :)
  • https://t.me/clickhouse_ru
    @cmbcksrl #264510 03:07 PM, 05 Apr 2022
    наверное, я для конкретного примера тестил, там превосходство было не очень большое
  • https://t.me/clickhouse_ru
    Да, уже смотрю. Спасибо за наводку!
  • https://t.me/clickhouse_ru
    @cmbcksrl #264512 03:10 PM, 05 Apr 2022
    пожалуйста
  • правильно понимаю, что этот метод не гарантирует, что будет выбрана именно последняя вставленная строка для значения ключа ORDER BY?
  • https://t.me/clickhouse_ru
    @cmbcksrl #264514 03:12 PM, 05 Apr 2022
    на самом деле да, там ORDER BY бахнуть для 100% гарантий надо
  • https://t.me/clickhouse_ru/217761
    только вставку надо менять... можно без replacing, это больше для коллапсинг (но можно и два раза replace-нуть)
    Denny Crane [Starship Captain at Altinity (NB,Canada)] in ClickHouse не тормозит

    ну никак не сделать с mv. Либо посылать значения сначала с минусом (сторнировать) Первый инсерт 10 Надо обновить пишем -10. Пишем новое значение 11

  • https://t.me/clickhouse_ru
    Понял, спасибо!
  • https://t.me/clickhouse_ru
    @sach3000 #264518 03:37 PM, 05 Apr 2022
    Приветствую, а кто сможет пояснить, почему тут есть деб пакетики с последним v22.3.2.2-lts
    https://github.com/ClickHouse/ClickHouse/releases
    а тут нет
    https://repo.yandex.ru/clickhouse/deb/stable/main/
    Releases · 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
    репозиторий переехал:
    deb https://packages.clickhouse.com/deb stable main
  • https://t.me/clickhouse_ru
    оу. спасиб
  • https://t.me/clickhouse_ru
    DirectoryMonitor это монитор Distributed db.table таблицы, там завис инсерт который не может протолкнутся в шард.

    ошибка странная, скорее всего в mat view причина

    можно просто удалить этот инсерт (файл.bin)
  • https://t.me/clickhouse_ru
    @StadnikD #264523 04:21 PM, 05 Apr 2022
    как узнать какой объем данных получен при выполнении запроса ? туплю чет
  • https://t.me/clickhouse_ru
    а, вот оно что, застряло там, это похоже на правду, можно просто удалить файлик получается?

    /data/clickhouse/store/cc7/cc704f24-3ca1-4d39-a1d4-aa867605bc37/shard2_all_replicas/1.bin

    не поломается ж продакшн? :) Это вот в логе такое:

    : While sending /data/clickhouse/store/cc7/cc704f24-3ca1-4d39-a1d4-aa867605bc37/shard2_all_replicas/1.bin. (NOT_AN_AGGREGATE), Stack trace (when copying this message, always include the lines below):
  • https://t.me/clickhouse_ru
    просто удалить, ничего не сломается
  • https://t.me/clickhouse_ru
    Спасибо большое!
  • https://t.me/clickhouse_ru
    @EnAstr #264527 04:25 PM, 05 Apr 2022
    Прошу прощения, а документация на русском не пропала?

    upd.: разобрался, жду восстановления
  • https://t.me/clickhouse_ru
    можно очень широко трактовать термин получен. Получен из S3? Из шардов? Из диска? Из финальной группировки?

    смотрите в profile events в system.processes или в query_log
  • https://t.me/clickhouse_ru
    а где ключик gpg для него взять подскажите ?
  • https://t.me/clickhouse_ru
    ClickHouse - Fast Open-Source OLAP DBMS

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

  • https://t.me/clickhouse_ru
    Installation | ClickHouse Documentation

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

  • https://t.me/clickhouse_ru
    это старое
  • @214612813 #264533 04:33 PM, 05 Apr 2022
    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 8919F6BD2B48D754
  • @214612813 #264534 04:33 PM, 05 Apr 2022
    по ссылк от Ивана выше
  • https://t.me/clickhouse_ru
    Кхм, в старой версии было новое на русском,а в новой всё плохо
  • https://t.me/clickhouse_ru
    вот здесь норм. спасибо.. как-то бы выравнять все эти туториалы
  • https://t.me/clickhouse_ru
    Кто бы вернул нормальную доку 🤔
  • Aleksey Barabanov in ClickHouse не тормозит

    Если вдруг кому то надо - сделал докерфайл для сборки документации на русском FROM ubuntu:latest as base ARG DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install -y git npm pip RUN TZ=Etc/UTC apt-get -y install tzdata RUN npm install -g purify-css amphtml-validator RUN git clone --branch 22.3 https://github.com/ClickHouse/ClickHouse.git WORKDIR /ClickHouse/docs/tools RUN sed -i s/^pymdown-extensions==.*/pymdown-extensions==9.0/ requirements.txt RUN sed -i s/^MarkupSafe==.*/MarkupSafe==2.0/ requirements.txt RUN sed -i s/^mkdocs==.*/mkdocs==1.2.4/ requirements.txt RUN echo "mkdocs-material==8.2.6" >> requirements.txt RUN pip install -r requirements.txt RUN ./build.py --lang=ru,en --skip-amp --skip-single-page --output-dir=/docs FROM nginx:latest COPY --from=base /docs/ /usr/share/nginx/html/

  • https://t.me/clickhouse_ru
    @brbrbr #264539 04:57 PM, 05 Apr 2022
    Есть кластер из двух шардов по 2 реплики, базы - атомик. Настроили сегодня выгрузку кучи данных из кафки средствами KafkaEngine + MV в Distributed таблицы.
    И тут заметил, что в какой-то момент на двух серверах одного шарда уверенно стала расти метрика DistributedFilesToInsert (уже под 5000), хотя на втором - по нулям.

    В доке про метрику написано: shows the total number of files in filesystem that are selected to send to remote servers by Distributed tables.

    Где-то криво настроены распределённые таблицы? Что это может быть? Куда смотреть?
  • https://t.me/clickhouse_ru
    system.distribution_queue
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #264540 #264541 05:03 PM, 05 Apr 2022
    Table is in readonly mode на одном из серверов второго кластера (где очереди нет)
  • https://t.me/clickhouse_ru
    select FQDN() h, count() from clusterAllReplicas('', system.replicas) where is_readonly group by h
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #264542 #264543 05:11 PM, 05 Apr 2022
    Пусто (имя кластера подставил). На всякий случай проверил system.replicas локально на каждом сервере - нигде нет ничего в ридонли.
  • https://t.me/clickhouse_ru
    @DellvinBlack #264544 05:22 PM, 05 Apr 2022
    Всем привет, копаюсь в доке и не понимаю вот этого примера, кто нибудь может объяснить почему так?

    arrayReduce('maxIf', [3, 5], [1, 0]) == 3
    почему?

    https://clickhouse.com/docs/en/sql-reference/functions/array-functions#arrayreduce
    Arrays | ClickHouse Documentation

    Array Functions empty Checks whether the input array is empty. Syntax empty([x]) An array is considered empty if it does

  • https://t.me/clickhouse_ru
    условием If из maxIf выступает второй массив [1,0] в котором удовлетворяющим условию является 1, которая находится на позиции 1, а позиции 1 из целевого массива [3,5] будет 3, а max(3) = 3
  • https://t.me/clickhouse_ru
    @Sablast #264546 05:26 PM, 05 Apr 2022
    сравните результат выполнения с arrayReduce('maxIf', [3, 5], [1, 1]) мб станет полегче)
  • https://t.me/clickhouse_ru
    здесь будет 5, так ведь?
  • https://t.me/clickhouse_ru
    @Sablast #264548 05:27 PM, 05 Apr 2022
    да
  • https://t.me/clickhouse_ru
    @Sablast #264549 05:27 PM, 05 Apr 2022
    т.к. будет поиск max уже между обоими элементами 3 и 5
  • https://t.me/clickhouse_ru
    @DellvinBlack #264550 05:27 PM, 05 Apr 2022
    а в arrayReduce('maxIf', [3, 5, 4], [1, 0, 1]) результат соответственно 4
  • https://t.me/clickhouse_ru
    понял, спасибо большое!
  • https://t.me/clickhouse_ru
    ver 21.11.4.14
    ;
    --таблица источник для мат. вью - компании
    CREATE OR REPLACE TABLE Test.Company
    (
    concern String,
    branch Int32,
    company String,
    inn String
    )
    ENGINE = MergeTree
    ORDER BY (concern, branch)
    ;
    --таблица, аггрегирующая данные компаний по концернам и веткам во вложенную структуру
    CREATE OR REPLACE TABLE Test.Concern
    (
    concern String,
    branch Int32,
    company SimpleAggregateFunction(groupArrayArray, Array(String)),
    inn SimpleAggregateFunction(groupArrayArray, Array(String))
    )
    ENGINE = AggregatingMergeTree
    ORDER BY (concern, branch)
    ;
    INSERT INTO Test.Company (concern, branch, company, inn)
    VALUES('concern1', 1, 'company1', '1234')
    ;
    INSERT INTO Test.Company (concern, branch, company, inn)
    VALUES('concern1', 1, 'company2', '2345')
    ;
    --при прямой вставке данных в аггрегирующую таблицу Test.Company из Test.Company массивы заполняются, как надо
    INSERT INTO Test.Concern (concern, branch, company, inn)
    SELECT concern, branch, array(company), array(inn)
    FROM Test.Company
    ;
    concern branch company inn
    concern1 1 ['company1','company2'] ['1234','2345']
    ;
    SELECT concern, branch, company, inn FROM Test.Company
    ;
    SELECT concern, branch, company, inn FROM Test.Concern
    ;
    SELECT concern, branch, company, inn, inn_dif FROM Test.Concern ARRAY JOIN inn as inn_dif
    ;
    DROP TABLE Test.mv_Concern
    ;
    ------ИСПОЛЬЗОВАНИЕ МАТ. ВЬЮ
    --мат. вью вариант 1
    CREATE MATERIALIZED VIEW Test.mv_Concern TO Test.Concern
    AS
    SELECT concern, branch, array(company), array(inn)
    FROM Test.Company
    ;
    --мат. вью вариант 2
    CREATE MATERIALIZED VIEW Test.mv_Concern TO Test.Concern
    AS
    SELECT concern, branch, groupArray(company), groupArray(inn)
    FROM Test.Company
    GROUP BY concern, branch
    ;
    -- при вставке данных в таблицу - источник для мат. вью Test.Company, массивы в Test.Concern пустые
    concern branch company inn
    concern1 1 [] []
    concern1 1 [] []
  • https://t.me/clickhouse_ru
    в общем, с мат.вью, почему-то не получилось, в коде выше все описано
  • https://t.me/clickhouse_ru
    Я бы сказал, что это ожидаемое поведение. И почему это не выходит на первом слайде https://www.youtube.com/watch?v=1LVJ_WcLgF8&list=PLO3lfQbpDVI-hyw4MyqxEk3rDHw95SzxJ&t=7597s
  • @dnltln ↶ Reply to #257825 #264556 05:39 PM, 05 Apr 2022
    получилось выяснить в чем была проблема?
  • https://t.me/clickhouse_ru
    Нет, вроде как само исчезло
  • https://t.me/clickhouse_ru
    @GenRockeR #264558 05:47 PM, 05 Apr 2022
    Коллеги, а кто знает как зашейпить и ограничить скорость у kafka engine? Чтобы не весь vpn туннель ел
  • https://t.me/clickhouse_ru
    я понимаю, что вставляются в указанную в мат.вью не из таблицы источника, а вставляется блок и в целевую таблицу и в мат. вью, но он же содержит нужные данные, но я, все равно не поняла, почему он эти данные не может превратить в массив, можно для идиотов на пальцах? о_О
    и, есть ли, все-таки, вариант накапливать данные во вложенных структурах внутри Clickhouse, без работы внешних сервисов?
  • https://t.me/clickhouse_ru
    Ещё раз посмотрите видео, вы не поняли. Каждая вставка разбивается на несколько десятков потоков, и каждый поток отдельно обрабатывает MV
  • https://t.me/clickhouse_ru
    @konnectrl #264561 06:00 PM, 05 Apr 2022
    Честно, я не знаю как это решить в Clickhouse, но у Denny гораздо больше опыта и возможно он предложит решение
  • https://t.me/clickhouse_ru
    а где вы нашли Table is in readonly mode тогда ? покажите
  • https://t.me/clickhouse_ru
    я идиота кусок, дело в алиасах в запросе в мат. вью, вопрос снимается, но если есть предложения сделать это лучше, буду рада!
  • https://t.me/clickhouse_ru
    дело в алиасах было
  • https://t.me/clickhouse_ru
    лучше не сделать.

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

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

    наверное надо тестировать какой вариант быстрее
  • https://t.me/clickhouse_ru
    понял, я просто еще думала, может с Nested удасться это провернуть, чтобы потом в select делать array join с одним полем - вложенная структура, а не с каждым, которое просто массив
  • https://t.me/clickhouse_ru
    в любом случае, спасибо, буду тестировать оба варианта мат.вью
  • https://t.me/clickhouse_ru
    @daniel_byta #264568 07:43 PM, 05 Apr 2022
    У кого-то была проблема, что на больших объемах строки на вставку клик теряет строки?
  • https://t.me/clickhouse_ru
    @daniel_byta #264569 07:44 PM, 05 Apr 2022
    то есть вставил X строк, сохранилось Y, при этом X > Y и проблем с дубликатами нет
  • https://t.me/clickhouse_ru
    В таблицу с каким движком вставляете? Какой клиент? Завершается ли вставка успехом?
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #264562 #264571 07:50 PM, 05 Apr 2022
    Я сделал
    select FQDN(), * from clusterAllReplicas('fdp-cluster', system.distribution_queue) t where t.data_files > 0;
    И увидел две ноды из второго шарда, у которых для распределённой таблицы Events data_files под 7000 и в поле last_exception написано:
    Code: 242. DB::Exception: Received from chi-clickhouse-replicated-0-0:9000. DB::Exception: Table is in readonly mode (zookeeper path: /clickhouse/tables/fdp/Events_local/shard1).

    Значения в data_files медленно растут, в system.replicas с признаком is_readonly=1 по-прежнему ничего нет.

    В какой-то момент мониторинг показал событие init ZK, после чего график по метрике DistributedFilesToInsert пошёл вниз, но вскоре снова начал расти.
  • https://t.me/clickhouse_ru
    @madiken_habr #264572 07:56 PM, 05 Apr 2022
    Добрый день, при подключении к кликхаусу питоном 3.8. выдает ошибку NetworkError: Code: 210. [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1131) (10.52.119.36:8123)

    Библиотеки подключила вот такие

    from clickhouse_driver import Client, connection
    import clickhouse_driver
    import clickhouse_sqlalchemy

    Надо еще такие подключить или не из-за этого?

    import socket, ssl, time, select
    from OpenSSL import SSL
    ?
  • https://t.me/clickhouse_ru
    @madiken_habr #264573 07:56 PM, 05 Apr 2022
    Failed to connect to xx.xx.xx.xx:8123
    Traceback (most recent call last):
    File "/home/idi/jupyter/environment/lib/python3.8/site-packages/clickhouse_driver/connection.py", line 325, in connect
    return self._init_connection(host, port)
    File "/home/idi/jupyter/environment/lib/python3.8/site-packages/clickhouse_driver/connection.py", line 289, in _init_connection
    self.socket = self._create_socket(host, port)
    File "/home/idi/jupyter/environment/lib/python3.8/site-packages/clickhouse_driver/connection.py", line 261, in _create_socket
    raise err
    File "/home/idi/jupyter/environment/lib/python3.8/site-packages/clickhouse_driver/connection.py", line 252, in _create_socket
    sock.connect(sa)
    File "/usr/lib/python3.8/ssl.py", line 1342, in connect
    self._real_connect(addr, False)
    File "/usr/lib/python3.8/ssl.py", line 1333, in _real_connect
    self.do_handshake()
    File "/usr/lib/python3.8/ssl.py", line 1309, in do_handshake
    self._sslobj.do_handshake()
    ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1131)
    ---------------------------------------------------------------------------
    NetworkError Traceback (most recent call last)
    /tmp/ipykernel_2239789/373079967.py in <module>
    10 print("не получилось")
    11
    ---> 12 result1 = client.execute("SELECT * from d_division")

    /home/idi/jupyter/environment/lib/python3.8/site-packages/clickhouse_driver/client.py in execute(self, query, params, with_column_types, external_tables, query_id, settings, types_check, columnar)
    282 start_time = time()
    283
    --> 284 with self.disconnect_on_error(query, settings):
    285 # INSERT queries can use list/tuple/generator of list/tuples/dicts.
    286 # For SELECT parameters can be passed in only in dict right now.

    /usr/lib/python3.8/contextlib.py in __enter__(self)
    111 del self.args, self.kwds, self.func
    112 try:
    --> 113 return next(self.gen)
    114 except StopIteration:
    115 raise RuntimeError("generator didn't yield") from None

    /home/idi/jupyter/environment/lib/python3.8/site-packages/clickhouse_driver/client.py in disconnect_on_error(self, query, settings)
    225
    226 try:
    --> 227 self.connection.force_connect()
    228 self.last_query = QueryInfo()
    229

    /home/idi/jupyter/environment/lib/python3.8/site-packages/clickhouse_driver/connection.py in force_connect(self)
    217
    218 if not self.connected:
    --> 219 self.connect()
    220
    221 elif not self.ping():

    /home/idi/jupyter/environment/lib/python3.8/site-packages/clickhouse_driver/connection.py in connect(self)
    344
    345 if err is not None:
    --> 346 raise err
    347
    348 def reset_state(self):

    NetworkError: Code: 210. [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1131) (10.52.119.36:8123)
  • https://t.me/clickhouse_ru
    @daniel_byta #264574 08:20 PM, 05 Apr 2022
    еще вопрос
    можно ли создать таблицу, у которой первичный ключ содержит больше колонок, чем order by?
  • https://t.me/clickhouse_ru
    @daniel_byta #264575 08:21 PM, 05 Apr 2022
    например, primary key brand, supplier, article, size
    order by article, date
  • Нельзя, primary key это префикс от order by. Например

    Primary key article, date order by article, date, brand, supplier
  • https://t.me/clickhouse_ru
    @daniel_byta #264577 08:25 PM, 05 Apr 2022
    а что делать, если нужно задать уникальность для большего количества колонок, чем в order by?
  • https://t.me/clickhouse_ru
    @daniel_byta #264578 08:25 PM, 05 Apr 2022
    только расширять order by?
  • https://t.me/clickhouse_ru
    Первичный ключ не гарантирует уникальность
  • Да, можно добавлять колонки в конец order by если добавляется новая колонка. Если колонка уже есть в таблице то её нельзя будет добавить. Ну и уникальность работает для Replacingmergetree, не для обычных mergetree
  • https://t.me/clickhouse_ru
    @nyoroon #264581 08:30 PM, 05 Apr 2022
    Замена в replacingmergetree идёт по order by, а не первичному ключу
  • https://t.me/clickhouse_ru
    @daniel_byta #264582 08:30 PM, 05 Apr 2022
    да, просто у меня есть колонка товар и колонка размер
    если добавить размеры товару, то при текущем ключе order by размеры дедублицируются
  • https://t.me/clickhouse_ru
    @daniel_byta #264583 08:30 PM, 05 Apr 2022
    заменяются
  • https://t.me/clickhouse_ru
    @daniel_byta #264584 08:30 PM, 05 Apr 2022
    то есть вставил 5 строк, осталась одна)
  • https://t.me/clickhouse_ru
    @daniel_byta #264585 08:31 PM, 05 Apr 2022
    а при добавлении размера в order by скорость запросов сильно проседает
  • https://t.me/clickhouse_ru
    чтож вы все никак не хотите понять про синтаксический сахар.
    Там же просто колонки в таблице надо с точкой назвать типа A.a, A.b это тоже самое что и A Nested (a .., b..)
  • https://t.me/clickhouse_ru
    в логе КХ того который chi-clickhouse-replicated-0-0 надо смотреть
  • https://t.me/clickhouse_ru
    первое: 8123 это HTTP не секурный
    второе: clickhouse_driver работает через TCP
    третье: TCP бывает секурный и нет.
    четвертое: когда подключаетесь надо указывать в свойствах коннекта secure=1
  • https://t.me/clickhouse_ru
    Спасибо большое!
  • https://t.me/clickhouse_ru
    что? как это?
    типа запрос с final?
  • https://t.me/clickhouse_ru
    у меня таблица с названиями с точкой f.concern, f.branch не создается - ошибка
  • https://t.me/clickhouse_ru
    мне из канады не видно ошибку, очень далеко.

    подозреваю что вы не указываете кавычки вокруг имен, либо двойные ", либо бэктики `

    типа
    `A.a` Int64,
    `A.b` String
  • https://t.me/clickhouse_ru
    CREATE OR REPLACE TABLE Test.Concern
    (
    concern String,
    branch Int32,
    f.company SimpleAggregateFunction(groupArrayArray, Array(String)),
    f.inn SimpleAggregateFunction(groupArrayArray, Array(String))
    )
    ENGINE = AggregatingMergeTree
    ORDER BY (concern, branch)

    Code: 62. DB::Exception: Syntax error: failed at position 237 ('.') (line 6, col 3): .company SimpleAggregateFunction(groupArrayArray, Array(String)),
    f.inn SimpleAggregateFunction(groupArrayArray, Array(String))
    )
    ENGINE = AggregatingMer. Expected one of: nested table, ALIAS, identifier, DEFAULT, data type, MATERIALIZED. (SYNTAX_ERROR) (version 21.11.4.14 (official build))
  • https://t.me/clickhouse_ru
    все, через "" получилось, и работает, спасибо!
  • @milovidov_an #264597 10:45 PM, 05 Apr 2022
    FYI Мы сделали ошибку при выкладке документации, из-за чего последние полтора дня была сломана русская и китайская документация, а также страницы с бенчмарками.

    Сейчас я откатил все изменения до исправления ошибок. Если что-то не отображается, нажмите Ctrl+F5 в браузере.
  • None
  • 06 April 2022 (204 messages)
  • https://t.me/clickhouse_ru
    @texnix #264600 05:48 AM, 06 Apr 2022
    типа починили?
  • https://t.me/clickhouse_ru
    @KiLEXst #264601 05:48 AM, 06 Apr 2022
    ну редиректа теперь нет =))))
  • https://t.me/clickhouse_ru
    @texnix #264602 05:49 AM, 06 Apr 2022
    а главная страница ещё жоще
  • @infisamk #264603 05:52 AM, 06 Apr 2022
    Ну забыли стили положить и некоторую статику...
  • https://t.me/clickhouse_ru
    блин у уменя собралось лучше через докер =) даже сайт работает
    может вамшему девопсу помощь нужна?
    https://t.me/clickhouse_ru/264447
    Aleksey Barabanov in ClickHouse не тормозит

    Если вдруг кому то надо - сделал докерфайл для сборки документации на русском FROM ubuntu:latest as base ARG DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install -y git npm pip RUN TZ=Etc/UTC apt-get -y install tzdata RUN npm install -g purify-css amphtml-validator RUN git clone --branch 22.3 https://github.com/ClickHouse/ClickHouse.git WORKDIR /ClickHouse/docs/tools RUN sed -i s/^pymdown-extensions==.*/pymdown-extensions==9.0/ requirements.txt RUN sed -i s/^MarkupSafe==.*/MarkupSafe==2.0/ requirements.txt RUN sed -i s/^mkdocs==.*/mkdocs==1.2.4/ requirements.txt RUN echo "mkdocs-material==8.2.6" >> requirements.txt RUN pip install -r requirements.txt RUN ./build.py --lang=ru,en --skip-amp --skip-single-page --output-dir=/docs FROM nginx:latest COPY --from=base /docs/ /usr/share/nginx/html/

  • https://t.me/clickhouse_ru
    @texnix ↶ Reply to #264604 #264605 05:55 AM, 06 Apr 2022
    а как под винду в докере это собрать? создаёшь пустой докер и вводишь эти команды?
  • https://t.me/clickhouse_ru
    да там всё само собирается, просто в репе неактуальные зависимости, ощущение что собирают не из репы билдом а гдето на ноуте чьемто
  • https://t.me/clickhouse_ru
    это докерфайл) создайте файл Dockerfile с таким содержимым, затем в этой папке запустите
    docker build . -t clickdoc

    после сборки (у меня гдето пара минут) запустите контейнер
    docker run -d -p 9999:80 clickdoc:latest

    ну и через браузер заходите на http://localhost:9999
    на винде не проверял, но проблем не вижу
  • Собирают по памяти :)))
  • https://t.me/clickhouse_ru
    @php_dev4_hr54 #264609 06:04 AM, 06 Apr 2022
    Чёт вспомнил это сообщение из канала Алексея)
  • https://t.me/clickhouse_ru
    @php_dev4_hr54 #264610 06:04 AM, 06 Apr 2022
    3.3. Исправить идиотский поиск по документации.
    Не делает Иван Б., и есть подозрения, что он не в состоянии выполнить эту задачу. Сам сайт документации основан на треш-технологиях, которые трудно исправить.
  • https://t.me/clickhouse_ru
    @php_dev4_hr54 #264611 06:04 AM, 06 Apr 2022
    Видимо, технологии прям действительно полный треш
  • https://t.me/clickhouse_ru
    @KiLEXst #264612 06:06 AM, 06 Apr 2022
    там сайт в самом деле целиком собирается вместе с документацией, с блогом. технологии конечно не свежие, но рабочие если использовать докервей
  • @denis_sda #264613 06:08 AM, 06 Apr 2022
    А какие свежие тулзы для документации рекомендуете?
  • https://t.me/clickhouse_ru
    @texnix ↶ Reply to #264607 #264614 06:12 AM, 06 Apr 2022
    зпасисбо, вот этого в инструкции и не хватало, про билд )))
  • https://t.me/clickhouse_ru
    @texnix #264615 06:33 AM, 06 Apr 2022
    только непонятно, почему так называется докер. вроде в тексте докерфайла нет ничего подобного. откуда подтянулось?
  • https://t.me/clickhouse_ru
    Докер сам сгенерил, это нормально
  • https://t.me/clickhouse_ru
    @texnix #264617 06:35 AM, 06 Apr 2022
    ʿIlm Аль-Kalām, обычно укорачивается до Kalām , а иногда называемого "Исламского схоластической теологии" или "спекулятивной теологии", является изучение исламской доктрины
  • https://t.me/clickhouse_ru
    @texnix #264618 06:35 AM, 06 Apr 2022
    чо, докер-исламист?
  • https://t.me/clickhouse_ru
    аллах акбар =)
  • https://t.me/clickhouse_ru
    ммм, исламская доктрина, звучит как какая-то этническая ORM
  • https://t.me/clickhouse_ru
    Если из бесплатных - bookstack ничего так
  • https://t.me/clickhouse_ru
    Она удалит нечестивые файлы с твоего компьютера
  • https://t.me/clickhouse_ru
    Думается мне, что с naughty_kalam все наоборот)
  • https://t.me/clickhouse_ru
    @YalkunM #264624 07:24 AM, 06 Apr 2022
    халал девопс
  • в incognito зайдите, все ок
  • а нет, главная в жопе в инкогнито тоже, ходите по самим страницам... бывает
  • @dj_mixer #264627 07:37 AM, 06 Apr 2022
    у меня опять русская пропала...
  • @milovidov_an #264628 07:40 AM, 06 Apr 2022
    Ctrl+shift+R помогает?
  • @dj_mixer #264629 07:41 AM, 06 Apr 2022
    нет, все вернулось в JS based documentation опять
  • https://t.me/clickhouse_ru
  • да как то так
  • @dj_mixer #264632 07:43 AM, 06 Apr 2022
    ну и английская тоже не работает нормально
  • если заходить непосредственно с корня... при открытии напрямую страниц дальше навигация ок
  • https://t.me/clickhouse_ru
    @rjs45 #264634 07:45 AM, 06 Apr 2022
    https://clickhouse.com/docs/en/
    в сафари вот так
  • https://t.me/clickhouse_ru
    @konnectrl #264635 07:46 AM, 06 Apr 2022
    https://clickhouse.com/docs/ru/ Ру топчик :)
    Обзор | Документация ClickHouse

    Что такое ClickHouse ClickHouse - столбцовая система управления базами данных (СУБД) для онлайн обработки аналитических

  • https://t.me/clickhouse_ru
    отрисовка разная, с русского IP - ломается вёрстка, с немецкого - всё нормально
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
  • думаю у вас кеш, после рефреша или инкогнито у меня 404
  • https://t.me/clickhouse_ru
    @rjs45 ↶ Reply to #264641 #264642 07:53 AM, 06 Apr 2022
    таки да. ctrl+shift+R вылечил
  • саммари:

    https://clickhouse.com/docs/ru/ - 404

    https://clickhouse.com/docs/ru/whats-new/changelog/ redirecting to https://clickhouse.com/docs/en/whats-new/changelog/
    - все работает (на англ JS SPA)

    https://clickhouse.com/docs/en/ - битая верстка

    прямые ссылки на анг документацию + интро (https://clickhouse.com/docs/intro/ ) ок.

    из плюсов - в этом английском СПА поиск человеческий и релевантный, мне очень зашел... предыдущий был убогим.
  • навегда выпилили русскую документацию?
  • https://t.me/clickhouse_ru
    @OrNixx ↶ Reply to #262785 #264646 08:19 AM, 06 Apr 2022
    доброго утра. Делаю по вашей рекомендации и возник вопрос: а если мне не важен дифф последних N минут данных, можно обойтись без остановки живого КХ? Или данные, по которым долго делается рсинк с живого будут в неконсистентном состоянии и доливка после остановки обязательна?
  • Alexey Milovidov in ClickHouse не тормозит

    FYI Мы сделали ошибку при выкладке документации, из-за чего последние полтора дня была сломана русская и китайская документация, а также страницы с бенчмарками. Сейчас я откатил все изменения до исправления ошибок. Если что-то не отображается, нажмите Ctrl+F5 в браузере.

  • https://t.me/clickhouse_ru
    @SvPupok #264648 08:27 AM, 06 Apr 2022
    коллеги, подскажите плз, если мы используем bloom_filter индексы, мы не можем в CH их делать составнми? по нескольким полям? просто есть ряд запросов по полям с нихкой кардинальностью данных, которые не добавлены в ключ сортировки
  • можно на expression/tuple делать
  • спасибо, не заметил сообщение
  • но если ваш запрос не такой же, например,
    вместо
    where (a,b) in (3,4)
    будет
    where a=3 and b=4
    , есть вероятность что использоваться индекс не будет
  • Только что сломали по второму разу, сейчас верну, как было.
  • @480131917 #264653 08:40 AM, 06 Apr 2022
    Привет, подскажите какие настройки кликов можно поправить, чтобы снизить iowait сейчас скачет, из-за этого чтение периодически тормозит?
  • @Lts_hg #264654 08:54 AM, 06 Apr 2022
    Привет, подскажите как подключить к greatexpectations clickhouse
  • до загрузки проверяйте файлы ge, потом грузите
  • https://t.me/clickhouse_ru
    @texnix ↶ Reply to #264652 #264656 09:02 AM, 06 Apr 2022
    диверсанты?
  • @Lts_hg ↶ Reply to #264655 #264657 09:03 AM, 06 Apr 2022
    так а как сделать подключение
  • глянь цей PR
    https://github.com/great-expectations/great_expectations/pull/4389
    [BUGFIX] Fix clickhouse same-alias issue by serg-music · Pull Request #4389 · great-expectations/great_expectations

    Please annotate your PR title to describe what the PR does, then give a brief bulleted description of your PR below. PR titles should begin with [BUGFIX], [FEATURE], [DOCS], or [MAINTENANCE]. If a...

  • https://t.me/clickhouse_ru
    @zhiraslan_shedzhem #264660 09:25 AM, 06 Apr 2022
    Привет!
    Можете скинуть какой-нибудь онлайн-компилятор для ClickHouse, чтобы тестить функционал
    Не смог в сети найти
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Не понимаю, откуда здесь авторизация, нет без паролей ничего?
  • @scheparukhin #264663 09:29 AM, 06 Apr 2022
    здесь только пользователь, без пароля
  • https://t.me/clickhouse_ru
    @konnectrl #264664 09:29 AM, 06 Apr 2022
    По дефолту не правильный пользователь, стоит. Я исправил ссылку
  • @scheparukhin #264665 09:30 AM, 06 Apr 2022
    Playground | Документация ClickHouse

    ClickHouse Playground ClickHouse Playground allows people to experiment with ClickHouse by running queries instantly, wi

  • https://t.me/clickhouse_ru
    Спасибо!
  • https://t.me/clickhouse_ru
    Спасибо!
  • @480131917 #264668 09:31 AM, 06 Apr 2022
    Привет, подскажите какие настройки кликов можно поправить, чтобы снизить iowait ?
  • https://t.me/clickhouse_ru
    @dmitriynvkv #264670 09:36 AM, 06 Apr 2022
    Всем привет, ловлю странный баг, движок RabbitMQ, при чтении не читает последний символ, у меня там обычно скобочка ] или } и вот её пропускает... кто тосталкивался с этим?

    Код создания таблицы

    create table rabbitmq
    (
    json String
    )
    engine = RabbitMQ SETTINGS rabbitmq_host_port = 'rabbitmq:5672', rabbitmq_exchange_name = 'clickhouse', rabbitmq_queue_base = 'stream', rabbitmq_format = 'LineAsString', rabbitmq_num_consumers = 1, rabbitmq_exchange_type = 'fanout';
  • LineAsString раньше работал плохо, надо обновить до 22.3.
  • https://t.me/clickhouse_ru
    спасибо
  • https://t.me/clickhouse_ru
    @daniel_byta #264674 11:58 AM, 06 Apr 2022
    можно ли в arrayMap как-то работать с индексами элементов?
  • https://t.me/clickhouse_ru
    @orantius #264675 11:58 AM, 06 Apr 2022
    если их туда передать
  • https://t.me/clickhouse_ru
    @Alexey_037 #264676 11:58 AM, 06 Apr 2022
    arrayEnumerate(поле)
  • https://t.me/clickhouse_ru
    @daniel_byta #264677 11:58 AM, 06 Apr 2022
    а как передать?
  • https://t.me/clickhouse_ru
    @Sablast #264678 12:00 PM, 06 Apr 2022
    как и любой другой массив
  • https://t.me/clickhouse_ru
    @daniel_byta #264679 12:00 PM, 06 Apr 2022
    понял
  • https://t.me/clickhouse_ru
    arrayMap может работать с двумя массивами одновременно
  • https://t.me/clickhouse_ru
    @konnectrl #264681 12:01 PM, 06 Apr 2022
    Через запятую их передавать
  • https://t.me/clickhouse_ru
    @daniel_byta #264683 12:02 PM, 06 Apr 2022
    понял
  • @5272136899 #264684 12:06 PM, 06 Apr 2022
    Добрый день. Подскажите: В поле нужно хранить направление ( прямой или обратное), никак не могу определиться с типом. Какое будет эффективнее : Uint8 -> писать 0 или 1, или же FixedString(1). Ну или извратиться и Lowcardinality(String) ???
  • https://t.me/clickhouse_ru
    Я бы выбрал Uint8
  • https://t.me/clickhouse_ru
    почему не enum?
  • https://t.me/clickhouse_ru
    доливка обязательна
  • https://t.me/clickhouse_ru
    @OrNixx ↶ Reply to #264687 #264688 12:32 PM, 06 Apr 2022
    принял. спасибо
  • https://t.me/clickhouse_ru
    будет
  • https://t.me/clickhouse_ru
    @daniel_byta #264690 12:44 PM, 06 Apr 2022
    возможно ли как-то такую структуру привести к виду
    строка = article, sizeOrigName, data, inderDaysOrder, dayOrder?
  • https://t.me/clickhouse_ru
    @konnectrl #264691 12:47 PM, 06 Apr 2022
    ARRAY JOIN ?
  • bloom filter же не совсем minmax, он разве не хеширует весь expression несколько раз? или КХ оптимизирует where a=3 and b=4 ?
  • https://t.me/clickhouse_ru
    а как сделать arrayjoin для тупла?
  • https://t.me/clickhouse_ru
    Вы можете взять только один элемент из tuple. Например так array.1
  • https://t.me/clickhouse_ru
    Все равно е получается client = Client('xx.xx.xx.xx', user='dev', password='1', secure=1, verify=True, database='dwh_dev', port='9000')
    ругается, что не та версия ssl NetworkError: Code: 210. [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1131) (xx.xx.xxx.xx:9000)
  • https://t.me/clickhouse_ru
    @v_kalinin #264696 12:53 PM, 06 Apr 2022
    Всем доброго дня. Подскажите, у меня сомнения. Пишем данные в ch через спарк, в 4 потока в таблицу. Данных много. Насколько это скажется на производительности ch? Сдается мне, писать в параллель - не верное решение.
  • https://t.me/clickhouse_ru
    не нужно указывать порт, если он не менялся в настройках сервера. драйвер сам знает нужный. вы же говорите ему идти на обычный 9000, который без шифрования, с шифрованием
  • https://t.me/clickhouse_ru
    @KitegGrad #264698 01:02 PM, 06 Apr 2022
    Добрый вечер
    Не подскажете как можно группировать данные по изменениям в Speed поле?
    Т.е. должно получиться 4 куска (1-2, 3-5, 6-8, 9-10)
  • https://t.me/clickhouse_ru
    @madiken_habr #264699 01:08 PM, 06 Apr 2022
    Ура, заработало!!!!🥰
  • Без джойнов?)
  • https://t.me/clickhouse_ru
    Желательно)
    Вообще цель - получать периоды в которые машина двигалась, а в какие нет (соответствеено время начала и конца движения)
  • @291948808 #264702 01:13 PM, 06 Apr 2022
    А данных много?
  • @mazzy_kgd #264703 01:15 PM, 06 Apr 2022
    Товарищи, ку! есть внешняя база Mysql примонтированная в клик. в ней делаются долгие запросы и коннект бывает отваливается, подскажите пжл, какой из таймаутов лучше подкрутить ? смотрю на external_storage_rw_timeout_sec ...
  • Сколько ни крути - всегда будет возникать "а вот надо ещё покрутить". Имхо надо решать задачу подругому. А синхронно какнибудь.
  • самое главное - какнибудь ))
  • Этим какнибудь дойдёт до часовых таймаутов. Боюсь воркфлоу себе сломаете.:) Всетаки советую пересмотреть подход.)
  • https://t.me/clickhouse_ru
    Много
  • идём к реорганизации, но пока нужно перелить данные.
  • Для перелить надо етльтулзы юзать, а не БД насиловать. Имхо.
  • Без джойнов вряд ли обойдётся. С джойнами легко.
  • базовый insert/select , просто и сердито
  • Пачками забирайте.
  • @291948808 #264713 01:24 PM, 06 Apr 2022
    Тоже просто и сердито.
  • https://t.me/clickhouse_ru
    Хреново
    А на джойнах это примерно как выглядеть может?
  • это понятно, так и забираю
  • Джойнить боижайшую справа топ 1 строку где спиды не равны. Это для нулей. Для отличных от нулей соответственно искать справа ноль. Со строки берете дату. По ней группируете. Для последней группы можно текущую заюзать.
  • @291948808 #264717 01:27 PM, 06 Apr 2022
    Вообще правильнее конечно искать строку перед той в которой изменилс спд.
  • @291948808 #264718 01:28 PM, 06 Apr 2022
    Вот по её дате и производить дальнейшие операции.
  • https://t.me/clickhouse_ru
    @KitegGrad #264719 01:28 PM, 06 Apr 2022
    Спасибо, подумаю
    Может через оконные функции ещё чё получится
  • WITH prev AS
    (
    SELECT
    time,
    speed,
    lagInFrame(speed) OVER (ORDER BY time) AS prev_speed
    FROM t
    )
    SELECT
    time,
    speed,
    sum(abs(speed - prev_speed)) OVER (ORDER BY time) AS group
    FROM prev;

    ┌────────────────time─┬─speed─┬─group─┐
    │ 2022-04-06 16:22:44 │ 1 │ 1 │
    │ 2022-04-06 16:22:45 │ 1 │ 1 │
    │ 2022-04-06 16:22:46 │ 0 │ 2 │
    │ 2022-04-06 16:22:47 │ 0 │ 2 │
    │ 2022-04-06 16:22:48 │ 0 │ 2 │
    │ 2022-04-06 16:22:49 │ 1 │ 3 │
    │ 2022-04-06 16:22:50 │ 1 │ 3 │
    │ 2022-04-06 16:22:51 │ 1 │ 3 │
    │ 2022-04-06 16:22:52 │ 0 │ 4 │
    │ 2022-04-06 16:22:53 │ 0 │ 4 │
    └─────────────────────┴───────┴───────┘
  • Тоесть на этом примере идентификатор групп будут 29:15,30:45,32:15,now()
  • https://t.me/clickhouse_ru
    КМК в skip индексах все поля отдельно кодируются. Т.е. фактически skip индекс по двум полям равен двум скип индексам. Но есть ньюанс https://github.com/ClickHouse/ClickHouse/issues/8168#issuecomment-574385187
  • https://t.me/clickhouse_ru
    верное если у вас достаточно CPU
  • https://t.me/clickhouse_ru
    на stack overflow множество примеров в разделе КХ, искать по gaps and islands
  • https://t.me/clickhouse_ru
    Спасибо
  • https://t.me/clickhouse_ru
    на самом деле это надо делать до заливки в КХ.
    КХ это MPP у вас задача не решается в параллель, надо последовательно строки обрабатывать
  • https://t.me/clickhouse_ru
    через 5 минут отваливается? или все время разный таймаут?
  • https://t.me/clickhouse_ru
    Там прикол в том что телематика вразнобой приходит
    Тут или из бд на уровне запроса это делать, или при обработке постоянно ходить в бд и смотреть нужно ли границы периода раздвигать
  • https://t.me/clickhouse_ru
    ну а зачем вам заливать половину данных в КХ?
    ну задержите заливку на час в ETL
  • 5 мин , не меньше,. Думаю вставить в лог время и сравнить с значениями, чтобы понять в какой упирается. Скрипт пока работает)
  • https://t.me/clickhouse_ru
    Данные могут приходить вразнобой вплоть до недели (тут не предскажешь)
  • https://t.me/clickhouse_ru
    ну если часть данных задержалась на неделю как вы доверяете резултатам запросов? Они же по части данных работают?
  • https://t.me/clickhouse_ru
    На неделю - редко, разве что если машина в гараже стояла.
    В основном в течении дня всё прилетает.
  • https://t.me/clickhouse_ru
    @den_crane #264735 01:54 PM, 06 Apr 2022
    в общем быстрее всего работает вариант с arraysplit
    https://stackoverflow.com/search?q=%5Bclickhouse%5Darraysplit
    Human verification

    Stack Overflow | The World’s Largest Online Community for Developers

  • https://t.me/clickhouse_ru
    @den_crane #264736 01:56 PM, 06 Apr 2022
    groupArray положить все массив, arrayDifference найти границы переходов состояний, arraysplit порезать по границам
  • https://t.me/clickhouse_ru
    @zagirnur #264737 02:49 PM, 06 Apr 2022
    При попытке удалить индекс запрос зависает, с чем это может быть связано?
    alter table my_table drop index my_idx;

    Создавал так
    alter table my_table add index my_idx(text) type ngrambf_v1(2, 1024, 2, 0) GRANULARITY 8192;
  • https://t.me/clickhouse_ru
    таблица replicated ?

    возможно merge идет и блокирует
    select * from system.merges
  • https://t.me/clickhouse_ru
    Добрый день, после удаления все равно вот такие ошибки есть в логах "<Error> executeQuery: Code: 215. DB::Exception: Column date is not under aggregate function and not in GROUP BY:", правда ошибки про файлик .bin пропали, может стоит еще бутнуть ноды или еще откуда-то вычистить старые данные, которые не могут протолкнуться?

    В логах c "initial_query_start_time=today() AND type='ExceptionBeforeStart'" пусто, хотя в clickhouse-server.err.log продолжается то, что выше :(
  • https://t.me/clickhouse_ru
    а полностью ошибку, целиком со стеком покажите
  • https://t.me/clickhouse_ru
    @semensafronov #264741 03:07 PM, 06 Apr 2022
    всем привет! а есть ли возможность в ClickHouse создавать вьюху с CTE внутри? У меня при создании такой вьюхи ошибку пишет Table default.web_stat doesn't exist
  • может от версии зависеть, я сам когда то заводил ишьюсы для create statements с cte, один давно, другой недавно но там были create table и create mat view, они их фиксили, но с обычными вьюхами вроде работало на последней версии
  • https://t.me/clickhouse_ru
    @tratatataass #264745 03:57 PM, 06 Apr 2022
    Подкажите пожалуйста.
    Почему
    SELECT toDateTime('0') падает с ошибкой парсинга
    SELECT toDateTime(0) не падает?
  • https://t.me/clickhouse_ru
    Во втором выходит 1970-01-01 ?
  • https://t.me/clickhouse_ru
    да
  • https://t.me/clickhouse_ru
    @nbykovskij #264748 03:59 PM, 06 Apr 2022
    Всем привет, есть такой вопрос с кликом:

    Ессли выбираю с вьюхи все поля (select * from table) то показывает все, если выбираю поля атрибут | метрика (0) то нифига не показывает
  • https://t.me/clickhouse_ru
    Тогда при получение int считает, что это время в unix timestamp
  • https://t.me/clickhouse_ru
    Не replicated, MergeTree
  • https://t.me/clickhouse_ru
    SELECT toDateTime('10000') вот так не падает и тоже считает что unix timestamp
  • https://t.me/clickhouse_ru
    Мб встречался кто с таким мракобесием?
  • https://t.me/clickhouse_ru
    при чем SELECT toDateTime('9999') упадет. А 5 символов уже работает. Но суть понятна, буду кастовать к int'у
  • https://t.me/clickhouse_ru
    Ну кстати, возможно за 4 символа считает, как год, а дальше понимает, что unix
  • https://t.me/clickhouse_ru
    тоже так подумал, но SELECT toDateTime('2001') не работает
  • https://t.me/clickhouse_ru
    потому что ожидается строка в формате yyyy-mm-dd hh:mi:ss
  • https://t.me/clickhouse_ru
    да, был такой баг. Во вьюхе у вас есть union/ distinct ?
  • https://t.me/clickhouse_ru
    так и есть
  • https://t.me/clickhouse_ru
    так и не должно. На самом деле, вы делаете какую фигню, если надо чтобы КХ при SELECT func('2001') делал 2001-01-01 00:00:00 то есть такая функция parseDateTimeBestEffort
  • https://t.me/clickhouse_ru
    @den_crane #264761 04:11 PM, 06 Apr 2022
    SELECT parseDateTimeBestEffort('2001')
    ─parseDateTimeBestEffort('2001')─┐
    │ 2001-01-01 00:00:00 │
    └─────────────────────────────────┘
  • https://t.me/clickhouse_ru
    это я экспериментировал, что бы понять как работает функция. Но вопрос решил явным кастом к UInt'у
    Спасибо за ответы
  • https://t.me/clickhouse_ru
    Вот create table точно работает, а create view чет не хочет)
  • а какая версия?

    у меня на 22.3.2.1 работает:
    create view v as
    with cte as (select * from numbers(10))
    select * from cte;

    select * from v;

    ┌─number─┐
    │ 0 │
    │ 1 │
    │ 2 │
    │ 3 │
    │ 4 │
    │ 5 │
    │ 6 │
    │ 7 │
    │ 8 │
    │ 9 │
    └────────┘
  • https://t.me/clickhouse_ru
    @ActionNum #264767 04:42 PM, 06 Apr 2022
    Всем привет, кто ставил ODBC для ClickHouse чтобы к PostgreSQL коннектится. На одном сервере поставил все как описано в доке, вроде работает, на другом выдает ошибку что файла нет.
    Code: 86. DB::Exception: Received error from remote server /schema_allowed?connection_string=DSN%3Dhprofits_prod. HTTP status code: 500 Internal Server Error, body: Error getting schema usage from ODBC 'std::exception. Code: 1001, type: nanodbc::database_error, e.what() = ../contrib/nanodbc/nanodbc/nanodbc.cpp:1046: 0100: [unixODBC][Driver Manager]Can't open lib '/usr/lib/x86_64-linux-gnu/odbc/psqlodbcw.so' : file not found (version 22.1.3.7 (official build))' . (RECEIVED_ERROR_FROM_REMOTE_IO_SERVER) (version 22.1.3.7 (official build)) Хотя лежит на файловой системе
  • https://t.me/clickhouse_ru
    Кхм, а зачем ODBC, если сам Clickhouse поддерживает подключение к PG ?
  • https://t.me/clickhouse_ru
    Linux - SO file not found

    I have a program which requires liblog4cpp installed to run. Now, I want the program to run on another machine without liblog4cpp. So I just find the log4cpp.so and move it to the same directory ...

  • https://t.me/clickhouse_ru
    Может мы отстали в этом вопросе, используем для DSN подключений словарей, которые лежат в PG
  • https://t.me/clickhouse_ru
    @ActionNum #264771 04:49 PM, 06 Apr 2022
    GitHub - ClickHouse/clickhouse-odbc: ODBC driver for ClickHouse

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

  • https://t.me/clickhouse_ru
    Я тестил недавно словари от PG, и даже в доке было написано, что не работает с PG, по итогу работал. Мне кажется работа напрямую из Clickhouse, будет быстрей чем через ODBC
  • @stas_sl #264773 04:55 PM, 06 Apr 2022
    подскажите, у кого-нить еще datagrip так медленно простые запросы выполняет? причем вот справа видно, что они вроде как быстрее выполняются, чем показывает бегущий таймер слева, хотя и 100ms для таких запросов как-то долговато. ну т.е. в clickhouse-client оно мгновенно все.
  • https://t.me/clickhouse_ru
    https://pastebin.com/nn2EE0BX вот, там много, выложил отдельно
  • https://t.me/clickhouse_ru
    Не, нет такого. Ток group by есть
  • https://t.me/clickhouse_ru
    Скорей всего у вас пинг до сервера большой
  • вроде не настолько
  • https://t.me/clickhouse_ru
    Не знаю почему именно в этом примере так, но импорт данных датагрип идёт через одиночные инсерты в КХ :(
  • https://t.me/clickhouse_ru
    когда вы ставили pg odbc драйвер, вы использовали какую команду? (скорее всего не стоит либа icu)
  • https://t.me/clickhouse_ru
    Named connections | ClickHouse Documentation

    Storing details for connecting to external sources in configuration files Details for connecting to external sources (di

  • https://t.me/clickhouse_ru
    летенси? vpn
  • Из PhpStorm работает медленно. Даже с локальными ресурсами.
  • https://t.me/clickhouse_ru
    а греп лога по d1ffe709-029d-4a50-9082-19504a8ce1f7 что выдает?
  • ну я вот скинул выше, пинг в среднем 80ms. коннекчусь через ssh tunnel, http интерфейс
  • https://t.me/clickhouse_ru
    Попробуйте с курлом сравнить
  • https://t.me/clickhouse_ru
    можно кстати одним инсертом все строки вставить
  • ну эт я понимаю, это для демонстрации
  • https://t.me/clickhouse_ru
    Действительно она не поставилась
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    https://pastebin.com/ZA8YTzsT две строчки только. Но блин, это старые запросы, они просто в логах сыпяться и все
  • https://t.me/clickhouse_ru
    у меня с пингом 4-5, этот же пример за ~8ms вставляет.

    У вас пинг 80+ и вставка 160

    Выглядит как будто так и должно быть
  • https://t.me/clickhouse_ru
    да, все из-за этого, она нужна. Что за дистрибутив ? debian 11 ?

    кстати вам верно говорят, что odbc не нужен
  • ну вот я из браузера пробую через ...:8123/play

    получается похоже на те цифры что справа (100-200мс), хотя через раз получается и меньше 100 мс, что я бы и ожидал при пинге 80мс
  • https://t.me/clickhouse_ru
    так это посылает 10.164.0.28
    там тоже файлик в Distributed таблице поди
  • https://t.me/clickhouse_ru
    Лучше использовать то что вы посоветовали? По ссылке https://clickhouse.com/docs/en/operations/named-collections/#named-connections-for-accessing-postgresql-database
    Named connections | ClickHouse Documentation

    Storing details for connecting to external sources in configuration files Details for connecting to external sources (di

  • https://t.me/clickhouse_ru
    я советую потому что вы упомянули DSN

    named-collections это просто путь как скрыть пароли
  • https://t.me/clickhouse_ru
    @den_crane #264799 05:32 PM, 06 Apr 2022
    Хранение реквизитов для подключения к внешним источникам в конфигурационных файлах

    Реквизиты для подключения к внешним источникам (словарям, таблицам, табличным функциям) можно сохранить
    в конфигурационных файлах и таким образом упростить создание объектов и скрыть реквизиты (пароли)
    от пользователей, имеющих только SQL доступ.
  • пинг 80мс - это же туда и обратно, правильно? почему получается в 2 раза больше? но это бы еще ладно, на самом деле в реальности (таймер слева) получается чуть ли не по секунде на каждый запрос)
  • https://t.me/clickhouse_ru
    @ActionNum #264801 05:33 PM, 06 Apr 2022
    А словари смогут использовать это подключение?
  • https://t.me/clickhouse_ru
    Дистрибутив Ubuntu 20.04
  • https://t.me/clickhouse_ru
    да

    source/>
    <postgresql>
    <name>mypg
  • https://t.me/clickhouse_ru
    вот блин, спасибо. Логи читать надо уметь 😔
  • https://t.me/clickhouse_ru
    Спасибо, пробую.
  • https://t.me/clickhouse_ru
    Надо ли рестартить сервер после создания named_collections в config.xml?
  • https://t.me/clickhouse_ru
    @pic_Nick77 #264807 06:25 PM, 06 Apr 2022
    Подскажите, в чём проблема? err.log сервера забит вот такими ошибками:
    2022.04.06 21:22:15.398114 [ 100597 ] {} <Error> void DB::SystemLog<DB::QueryLogElement>::flushImpl(const std::vector<LogElement> &, uint64_t) [LogElement = DB::QueryLogElement]: Code: 49. DB::Exception: Invalid number of columns in chunk pushed to OutputPort. Expected 44, found 65
    Header: - дальше идёт перечисление типов колонок
  • https://t.me/clickhouse_ru
    Да
  • https://t.me/clickhouse_ru
    Rename table system.query_log to system.query_log_old
  • https://t.me/clickhouse_ru
    я пробовал. создалась новая, но ошибки продолжают сыпаться в логе
  • https://t.me/clickhouse_ru
    вернее, я её дропал
  • https://t.me/clickhouse_ru
    А сколько колонок в ней?
  • https://t.me/clickhouse_ru
    69
  • https://t.me/clickhouse_ru
    @pic_Nick77 #264816 06:35 PM, 06 Apr 2022
    и записи новые в ней постоянно появляются
  • https://t.me/clickhouse_ru
    Сейчас попробовал rename на другой ноде, там новая таблица создалась с 46-ю колонками. Версия 21.12.4.1 везде.
  • https://t.me/clickhouse_ru
    @nikiplatonov #264820 09:53 PM, 06 Apr 2022
    Привет ребята, хочу поделиться классным сервисом (http://jobs.talentservice.com/?utm_source=tg_free&utm_medium=relocate) по трудоустройству IT-специалистов. Там публикуются вакансии от Американских и Европейских компаний и есть программа по релокации. Можете не благодарить 🙌
    Open jobs for software developers, QA engineers, and data scientists

    Work for an American or European company remotely or relocate to work abroad! Find your perfect job match with Talent Service

  • https://t.me/clickhouse_ru
    @2066430761 #264821 09:56 PM, 06 Apr 2022
    𝙔𝙤𝙪 𝙘𝙖𝙣 𝙞𝙣𝙫𝙚𝙨𝙩 𝙖𝙣𝙙 𝙢𝙖𝙠𝙚 𝙞𝙣𝙘𝙤𝙢𝙚 𝙖𝙨𝙞𝙙𝙚 𝙥𝙖𝙮𝙘𝙝𝙚𝙘𝙠 𝙬𝙞𝙩𝙝 𝙚𝙭𝙥𝙚𝙧𝙩 𝙜𝙪𝙞𝙙𝙚 𝙄 𝙝𝙖𝙫𝙚 𝙚𝙖𝙧𝙣𝙚𝙙 $98,000 𝙨𝙤 𝙛𝙖𝙧 𝙛𝙧𝙤𝙢 𝙢𝙮 $6000 𝙞𝙣𝙫𝙚𝙨𝙩𝙢𝙚𝙣𝙩 𝙞𝙣 𝙁𝙤𝙧𝙚𝙭 𝙩𝙧𝙖𝙙𝙚. 𝘾𝙤𝙣𝙩𝙖𝙘𝙩 𝙝𝙞𝙢, 𝙞𝙛 𝙮𝙤𝙪'𝙧𝙚 𝙞𝙣𝙩𝙚𝙧𝙚𝙨𝙩𝙚𝙙 𝙖𝙣𝙙 𝙨𝙩𝙖𝙧𝙩 𝙢𝙖𝙠𝙞𝙣𝙜 𝙖𝙢𝙖𝙯𝙞𝙣𝙜 𝙛𝙞𝙜𝙪𝙧𝙚𝙨 𝙬𝙚𝙚𝙠𝙡𝙮
    👇👇👇
    https://t.me/joinchat/9QTYf9xzwUIwNjhh
  • 07 April 2022 (113 messages)
  • https://t.me/clickhouse_ru
    @st0p777 #264828 07:17 AM, 07 Apr 2022
    Подскажите как исправить, пожалуйста
    alter table tutorial.visits_v2c delete where StartDate != min(StartDate)
    DB::Exception: Aggregate function min(StartDate) is found in WHERE in query: While processing min(StartDate). (ILLEGAL_AGGREGATION)
  • https://t.me/clickhouse_ru
    У вас логика такая:
    если минимальное время, то удали
    То есть нужно удалить все строчки где время минимально ? Но оно же будет изменяться, то есть вы удалили например все строчки со временем 2001-01-01, то потом минимальным станет 2001-01-02 и т.д.
  • https://t.me/clickhouse_ru
    @st0p777 #264830 07:24 AM, 07 Apr 2022
    это обучалка
  • https://t.me/clickhouse_ru
    @st0p777 #264831 07:24 AM, 07 Apr 2022
    тут конкретные примеры, и надо выполнить конкретные задачи, это не прод
  • https://t.me/clickhouse_ru
    @sibbarb #264833 07:25 AM, 07 Apr 2022
    нупский вопрос , можно ли поменять ключ партицирования ? думаю ответ нет , но мало ли
  • https://t.me/clickhouse_ru
    Можно скопировать в другую таблицу данные при этом поменяв ключ, clickhouse-copier умеет это
  • https://t.me/clickhouse_ru
    @sibbarb #264835 07:31 AM, 07 Apr 2022
    Спасибо
  • @a_beloglazov #264836 07:33 AM, 07 Apr 2022
    Всем привет!
    Пытаемся добавить колонку к Tuple:

    column Tuple(a1 string, a2 UInt32)

    ALTER TABLE table MODIFY COLUMN column Tuple(a1 string, a2 UInt32, a3 string) /// error, not allowed

    получаем ошибку:

    DB::Exception: CAST AS Tuple can only be performed between tuple types with the same number of elements or from String

    Существует ли какая-нибудь возможность добавить поле в Tuple? Или тут только пересоздание таблицы и перезаливка данных?
  • @supersurfer #264837 07:34 AM, 07 Apr 2022
    Привет! Не возвращает строки через функцию remote с сервера А на сервер В. remote из соседней таблички с идентичной структурой сервера В работает(то есть права на remote у юзера есть). Как можно узнать ограничения для remote для таблички?
  • https://t.me/clickhouse_ru
    То есть у вас есть 3 колонки уже ? И вы хотите чтобы они были в Tuple ?
  • Спасибо за отклик,
    У нас есть колонка, которая объявлена как Tuple, там несколько полей, мы хотим добавить к этому Tuple еще одно поле типа String
  • @Alex_I_z_h #264841 07:53 AM, 07 Apr 2022
    добрый день всем, есть ли возможность помочь с синтаксисом в config.xml....
    Первый вариант
    <yandex>
    <query_log>
    <database>system</database>
    <table>query_log</table>
    <engine>ENGINE = MergeTree PARTITION BY (event_date)
    ORDER BY (event_time)
    TTL event_date + INTERVAL 14 DAY DELETE
    SETTINGS ttl_only_drop_parts=1
    </engine>
    Второй вариант
    <yandex>
    <query_log>
    <database>system</database>
    <table>query_log</table>
    <partition_by>event_date</partition_by>
    <ttl>event_date + INTERVAL 14 DAY DELETE</ttl>

    Вопрос у меня в том - можно ли в таком же формате задать настройку:
    <settings>ttl_only_drop_parts=1</settings>
    или параметр ttl_only_drop_parts=1 можно задать только как в первом варианте через секцию <engine>, спасибо.....
  • @pbaturin #264842 07:56 AM, 07 Apr 2022
    Коллеги, кто-то использует движок rabbimq? Интесует конфиг для большого количества сообщений в rabbit(>500000\s). Если не сложность сбросьте пожалуйста.
  • https://t.me/clickhouse_ru
    @st0p777 #264843 08:10 AM, 07 Apr 2022
    как копировать все данные из одной таблицы в другую? а то конкретного примера запроса не нашел
  • CREATE AS SELECT?
  • https://t.me/clickhouse_ru
    insert from select же
  • https://t.me/clickhouse_ru
    insert куда from откуда select *?
  • @270827469 #264848 08:20 AM, 07 Apr 2022
    insert into db.table select * from db.table
  • https://t.me/clickhouse_ru
    @st0p777 #264849 08:20 AM, 07 Apr 2022
    спасибо
  • https://t.me/clickhouse_ru
    Придумал только так
    CREATE TABLE test_tuple
    (
    t1 Tuple(a1 String,a2 UInt32),
    asdad UInt8
    )
    ENGINE = MergeTree()
    ORDER BY tuple()
    ;

    INSERT INTO test_tuple VALUES (('asdadsa',1),12);
    INSERT INTO test_tuple VALUES (('asdad',2),13);
    INSERT INTO test_tuple VALUES (('asdaasddsa',3),21);
    INSERT INTO test_tuple VALUES (('asdasdas',14),12);
    INSERT INTO test_tuple VALUES (('asdaasdasddsa',5),12);

    ALTER TABLE test_tuple MODIFY COLUMN t1 String;
    ALTER TABLE test_tuple UPDATE t1 = tuple(untuple(CAST(t1,'Tuple(a1 String,a2 UInt32)')),'') WHERE 1
    ALTER TABLE test_tuple MODIFY COLUMN t1 Tuple(a1 String,a2 UInt32,a3 String);
  • https://t.me/clickhouse_ru
    @May_Bear_Complex #264851 08:25 AM, 07 Apr 2022
    А есть какая нибудь интерактивная обучалка по кликхаусу?
  • https://t.me/clickhouse_ru
    Не видел
  • https://t.me/clickhouse_ru
    Там есть конструкция экспорта insert multirow
  • https://t.me/clickhouse_ru
    Я про импорт. Не вижу там настроек таких
  • https://t.me/clickhouse_ru
    Импорт сделайте через insert - размер батча регулируйте сами. Ну или через клиента и там любые удобные форматы используйте
  • https://t.me/clickhouse_ru
    Я именно про дефолтную функцию datagrip "Import data from File"
  • @Igor_74 #264862 09:28 AM, 07 Apr 2022
    Добрый день, коллеги. Подскажите, пожалуйста, можно ли в ClickHouseInstallation (Altinity clickhouse-operator) описать дополнения в макросы индивидуально для каждой реплики. Например, для реплики s01 мне необходимо добавить <new_cluster_shard>01</new_cluster_shard>, для реплики s02 - <new_cluster_shard>02</new_cluster_shard> и т.п.
  • создаёте новую колонку в нужном формате и заполняете данными из старой, дальше дроп старой и переименование
  • Спасибо, сейчас попробую
  • Тоже вариант, а как перенести одну колонку в другую?
  • Можно например через default, когда данные заполнятся убрать его
    ADD COLUMN col2 Tuple(…) DEFAULT CAST((col1.1, col1.2, ‘asd’), ‘Tuple(…)’)
    MATERIALIZE COLUMN
    MODIFY COLUMN REMOVE DEFAULT
  • @rgalin #264871 10:50 AM, 07 Apr 2022
    Rbkkth)*0928
  • https://t.me/clickhouse_ru
    Не надо кидать сюда пароли
  • https://t.me/clickhouse_ru
    "А я не видел 😢" (С)
    Может, человек хотел, что бы добрые люди зашли, сделали, сами себе благодарность выписали?
  • https://t.me/clickhouse_ru
    @satilin #264878 12:22 PM, 07 Apr 2022
    Всем добрый день. У меня при помощи Debezium данные с Postgres грузятся в топики Kafka. И мне нужно эти данные выгрузить в Clickhouse при помощи jdbc. Но как бы я не закидывал jar-ник и какой-бы sink не прописывал, итог один (см. фото). Заранее спасибо
  • https://t.me/clickhouse_ru
    А почему стандартным путем не пойти, через движок таблицы Kafka ?
  • https://t.me/clickhouse_ru
    а почему jdbc?
  • https://t.me/clickhouse_ru
    @satilin #264881 12:26 PM, 07 Apr 2022
    Данные должны грузиться не только в clichouse, но и в другие колоночные бд. И в них уже настроено соединения с топиками. А как я понял для Clickhouse важно, чтобы json был не вложенным, а максимально простым.
  • https://t.me/clickhouse_ru
    Ну если вы кладете Json в String то ему без разнице
  • https://t.me/clickhouse_ru
    JSONEachRow, наверное?
  • https://t.me/clickhouse_ru
    предлагаете передавать строку, а потом ее парсить? Или к чему это
  • https://t.me/clickhouse_ru
    КХ умеет сам из кафки данные читать во множестве форматов, найди совместимый
  • https://t.me/clickhouse_ru
    @satilin #264886 12:29 PM, 07 Apr 2022
    т.е. jdbc здесь вообще не в почете и лучше думать над table engine kafka?
  • https://t.me/clickhouse_ru
    Это как граблями яму копать ....
  • https://t.me/clickhouse_ru
    здесь - это где? в чате? спрашивают, отвечают.
    как подмена движка кафка - да, не стоит
  • https://t.me/clickhouse_ru
    @satilin #264889 12:31 PM, 07 Apr 2022
    Кстати, что с документацией? Буквально вчера изучал разные способы здесь, а сегодня уже пусто
  • https://t.me/clickhouse_ru
    @satilin #264890 12:31 PM, 07 Apr 2022
    Choosing an option | ClickHouse Docs

    The most common approaches for integrating Kafka with ClickHouse

  • https://t.me/clickhouse_ru
    Kafka | ClickHouse Documentation

    Kafka This engine works with Apache Kafka. Kafka lets you: Publish or subscribe to data flows. Organize fault-tolerant s

  • https://t.me/clickhouse_ru
    @1695040889 #264892 12:32 PM, 07 Apr 2022
    От Миловидова смотрите сообщения, что-то они там переработали
  • https://t.me/clickhouse_ru
    @1695040889 #264893 12:33 PM, 07 Apr 2022
    с мимнимальной защитой от куки/js/прочей хрени это не работает
  • https://t.me/clickhouse_ru
    Это немного не то, там именно были расписаны все способы коннекта с kafka и по-моему даже на русском
  • https://t.me/clickhouse_ru
    @satilin #264895 12:34 PM, 07 Apr 2022
    Ладно, понял, всем спасибо
  • https://t.me/clickhouse_ru
    @1695040889 #264896 12:35 PM, 07 Apr 2022
    ClickHouse Kafka Engine Tutorial

    Our colleague Mikhail Filimonov just published an excellent ClickHouse Kafka Engine FAQ. It provides users with answers to common questions about using stable versions, configuration parameters, standard SQL definitions, and many other topics. Even experienced users are likely to learn something new. But what if you are getting started and need help setting up Kafka and ClickHouse for the first time? Good news! This article is for you.

  • https://t.me/clickhouse_ru
    @satilin #264897 12:39 PM, 07 Apr 2022
    Я, кстати, пробовал engine kafka, таблица создавалась, но при селкте из нее, вылетала ошибка: ErrorCodes::QUERY_NOT_ALLOWED, "Direct select is not allowed. To enable use setting `stream_like_engine_allow_direct_select`"
  • https://t.me/clickhouse_ru
    Да, нужен materialized view
  • https://t.me/clickhouse_ru
    @satilin #264899 12:41 PM, 07 Apr 2022
    т.е. мне нужно было сделать вьюху и все заработало-бы?
  • https://t.me/clickhouse_ru
    @1695040889 #264900 12:41 PM, 07 Apr 2022
    kafka_reader => mv => table
  • https://t.me/clickhouse_ru
    @satilin #264901 12:41 PM, 07 Apr 2022
    хм, сейчас попробую, спасибо
  • https://t.me/clickhouse_ru
    Судя по вопросу, сразу вряд ли, но да.
  • Там во вьюхе еже можете поменять структуру данных вставляемых
  • https://t.me/clickhouse_ru
    Извините, не удержался. А можете менять 😂
  • https://t.me/clickhouse_ru
    @Valenvaryon #264905 12:57 PM, 07 Apr 2022
    а дока кликхауса в Safari все так же переломана?
  • https://t.me/clickhouse_ru
    @Valenvaryon #264906 12:57 PM, 07 Apr 2022
    а не, после рефреша заработало
  • может кому будет полезно, разобрался в чем проблема. оказывается на каждый мой запрос DataGrip неявно отсылает еще пачку, в сумме получается 6 запросов, ну и набегает та самая секунда. я тут в тикете описал детали https://youtrack.jetbrains.com/issue/DBE-15125, ну и еще похожий тикет 2 месяца назад созданный https://youtrack.jetbrains.com/issue/DBE-15015
    и спасибо @RaBiDka за полезные советы в поиске причины )
    datagrip queries are very, very slow : DBE-15125

    The total query took nearly 9 seconds, but the actual execution time of clickhouse's server was only 80ms. Compared with dbeaver, the speed difference is also very obvious. dbeaver returned the result in 162ms, but datagrip takes 9 seconds. By the way, the database connection method uses ssh to connect, not a direct connection. 优效截图20220302112611.png…

  • @softbot_xxl #264909 01:53 PM, 07 Apr 2022
    Как выполнить system restart replica db.table на всем кластере?
  • https://t.me/clickhouse_ru
    system restart replica ... on cluster '{cluster}'
  • system restart replica on cluster 'data'

    Syntax error: failed at position 28 ('cluster'):

    system restart replica on cluster 'data'

    21.3.13.9
  • https://t.me/clickhouse_ru
    две команды разные

    system restart replicas

    system restart replica db.table
  • https://t.me/clickhouse_ru
    @den_crane #264913 02:09 PM, 07 Apr 2022
    >system restart replica ... on cluster '{cluster}'
    предполагалось что ... будут заменены на имя таблицы

    system restart replica db.table on cluster 'data'
  • @softbot_xxl #264914 02:09 PM, 07 Apr 2022
    Я тоже пробовал, не работало.
  • @softbot_xxl #264915 02:09 PM, 07 Apr 2022
    system restart replicas on cluster 'data'

    Syntax error: failed at position 26 ('on'):

    system restart replicas on cluster 'data'

    Expected one of: START TTL MERGES, RELOAD CONFIG, RELOAD DICTIONARY, STOP FETCHES, end of query, FLUSH LOGS, RELOAD EMBEDDED DICTIONARIES, STOP DISTRIBUTED SENDS, STOP TTL MERGES, STOP REPLICATED SENDS, RELOAD SYMBOLS, STOP MOVES, START MOVES, STOP REPLICATION QUEUES, RESTART REPLICA, START DISTRIBUTED SENDS, SYNC REPLICA, STOP MERGES, START REPLICATED SENDS, START MERGES, DROP REPLICA, START FETCHES, START REPLICATION QUEUES, FLUSH DISTRIBUTED, RELOAD DICTIONARIES
  • https://t.me/clickhouse_ru
    @den_crane #264916 02:11 PM, 07 Apr 2022
    ну может и не было 21.3
  • https://t.me/clickhouse_ru
    Столкнулась с такой же проблемой. Раньше с такими симптомами бывало, что закрался косяк в определение локальных таблиц - перепутаны зеркала и реплики на нодах, поэтому результат возвращается с первой доступной реплики и потому нестабильный.
    Но сейчас все ddl корректны, а ситуация максимально загадочна. Вам удалось разобраться в чем причина?

    На версии КХ 21.3.4.25 всё отрабатывает корректно, а при переносе DDL на 22.2.2.1 - поломалось.
  • https://t.me/clickhouse_ru
    @minto_o #264919 02:50 PM, 07 Apr 2022
    КХ кэширует селекты?
    Если да, то можно как-то отключить для тестов?
  • https://t.me/clickhouse_ru
    @baikulov #264920 02:52 PM, 07 Apr 2022
    Добрый день, знающие люди, подскажите пожалуйста, в CH запросы типа
    Case WHEN row_number() over THEN как-то можно реализовать?
  • можно. так как вы написали
  • case when row_number() OVER (ORDER BY xxx ASC) >4 then 344 end
  • https://t.me/clickhouse_ru
    А я ошибку получаю "Unknown identifier"
  • https://t.me/clickhouse_ru
    @baikulov #264924 02:57 PM, 07 Apr 2022
    Я просто логику из BQ переношу в СН. Внутри штук 10 таблиц через CTE из одной базовой таблицы с nested полями.
  • у нас по неизвестной причине со второго шарда читались только данные за один час (почему именно час, непонятно, партиции-то по дням)
    опытным путем было выявлено, что баг возникал из-за использования в where выражения с multiIf (один из фильтров для наших репортов). переписал его через CASE WHEN, и засунул как вычисляемую колонку в код самой вьюхи, баг исчез. но на всякий случай прикрутил alert, который сравнивает количество строк в таблице и вьюхе)
  • а ну КХ переделывает кейс в multiIf, а там нельзя, вообще это б надо починить
  • https://t.me/clickhouse_ru
    If, multiIf
  • походу подзапрос...
  • @dj_mixer #264929 03:01 PM, 07 Apr 2022
    КХ по ходу не разрешает использовать window function внутри выражений
  • Denny Crane [Starship Captain at Altinity (NB,Canada)] in ClickHouse не тормозит

    https://github.com/ClickHouse/ClickHouse/issues/32513 SQL Compatibility Improvements / Allow to use window functions inside expressions.

  • попробуйте сделать row_number в подзапросе
  • или подзапрос, или ждите
  • https://t.me/clickhouse_ru
    Так и придётся делать видимо.
  • https://t.me/clickhouse_ru
    в гитхаб, ишью
  • https://t.me/clickhouse_ru
    не кеширует. Диск кешируется файловым кешем линукса.
  • https://t.me/clickhouse_ru
    не доделано, только оборачивать в еще один запрос
  • https://t.me/clickhouse_ru
    Что не доделано?)?
  • https://t.me/clickhouse_ru
    SUM(col) / SUM(SUM(col)) OVER (PARTITION BY col2) aggregate function over WINDOW is not supported. · Issue #19857 · ClickHouse/ClickHouse

    How to reproduce SELECT sum(number) / sum(sum(number)) OVER (PARTITION BY (number % 10)) FROM numbers(10000) GROUP BY number % 10 Query id: 76ed1093-b378-45c2-b644-1de44783734a 0 rows in set. Elaps...

  • Около 10 колонок, ORDER BY включает 8 колонок, кроме двух, по которым собирается аггрегация. PRIMARY KEY строю по DateTime и IPv4 (тип колонки).
    Исходные данные забираю из "большой" таблицы на 35 колонок, которая MergeTree.
  • https://t.me/clickhouse_ru
    т.е. вы выстрелили себе в ногу положив DateTime первым в индекс?
  • Спасибо! Попробовал, все получилось!
  • И этот тоже способ работает. Спасибо!
  • https://t.me/clickhouse_ru
    @adsrun #264946 05:27 PM, 07 Apr 2022
    Приветствую.
    Можно ли на ОДНУ таблицу DB3 навешивать несколько MV ?
    Чтобы инсерты в DB3 сразу по разным параметрам улетали в нужные таблицы.

    CREATE MATERIALIZED VIEW default.BD1 TO default.logs_to_DB2
    ... FROM BD3
    CREATE MATERIALIZED VIEW default.BD1_1 TO default.logs_to_DB3
    ... FROM BD3
  • https://t.me/clickhouse_ru
    Ну конечно можно
  • https://t.me/clickhouse_ru
    @sibbarb #264949 05:55 PM, 07 Apr 2022
    Всем привет, имеется бд кликхауса, куда сливаются ивенты и много ещё каких сырых данных, сейчас приходится считать по сырым данным , запросы иногда выполняются минуты. Попросил создать матвью, скинул запросы разрабам 2 недели назад , они только сегодня сделали, от них требовалось просто запустить код в ide. Мне никто не дает(и не даст) права на create. Ждать каждый раз по тыщу лет не хочется, поэтому у меня такой вопрос . Могу ли я развернуть у себя кликхаус, и сделать средствами кликхауса чтобы все ивенты и транзакции из оригинального кликхауса летели и ко мне сразу Чтобы я там был царь и бог , и мог создавать что хочу
  • @softbot_xxl #264950 06:02 PM, 07 Apr 2022
    Доступ к Зукиперу есть со своего компа? Доступ к кластеру КХ есть? Это конечно пи-ц с точки зрения организации процессов, но работать будет 😄 Более того, ты сможешь у себя вставлять и реплицировать в прод.
  • @softbot_xxl #264951 06:02 PM, 07 Apr 2022
    Надо только схему создать правильно, но вроде такой проблемы нету 😄
  • @infisamk #264952 06:03 PM, 07 Apr 2022
    Я так понимаю, нужна своя БД без возможности изменения прода. Иначе можно случайно сделать больно
  • https://t.me/clickhouse_ru
    @sibbarb #264953 06:03 PM, 07 Apr 2022
    Да , что то типа репликации из одного кликахуса в другой без кронов)
  • @softbot_xxl #264954 06:04 PM, 07 Apr 2022
    Блуждающая реплика.
  • А нет возможности заполучить поток этих сырых данных в параллели с продом?
  • @softbot_xxl #264956 06:07 PM, 07 Apr 2022
    С юзерами/паролями может быть проблема, если там не default.
  • https://t.me/clickhouse_ru
    можно
  • https://t.me/clickhouse_ru
    @1695040889 #264960 07:33 PM, 07 Apr 2022
    а вот как бы сделать обновление внешней таблицы для разных полей по одному ключу?
  • https://t.me/clickhouse_ru
    @adsrun ↶ Reply to #264959 #264962 07:44 PM, 07 Apr 2022
    А то какая то коллизия не понятно где.. эти MV идут в одну таблицу на remote_host в таблицу SummingMergeTree
  • https://t.me/clickhouse_ru
    Вы бы показали, что не работает
  • https://t.me/clickhouse_ru
    @minto_o #264964 11:35 PM, 07 Apr 2022
    а есть какая-то возможность выполнить запросы с proto под win10 и в C#?
    пробовал хотя бы в power shell и curl вытащить, но файл пустой
    curl -o proto.bin 'http://clickhouse.com/' --data-binary "SELECT * FROM test FORMAT Protobuf SETTINGS format_schema = 'schema:test'"
  • https://t.me/clickhouse_ru
    @EmilyCl92119826 #264966 11:51 PM, 07 Apr 2022
    всем привет
  • 08 April 2022 (160 messages)
  • https://t.me/clickhouse_ru
    нет, только в WSL2, КХ проверяет наличие /bin/sh и в случае отсутствия все файлы будут пустыми 😂😜🙈
  • https://t.me/clickhouse_ru
    @1695040889 #264968 04:20 AM, 08 Apr 2022
    /@milovidov_an кстати, а поддержка schema registry для kafka protobuf и json фоматов планируется?
  • https://t.me/clickhouse_ru
    @1695040889 #264969 04:21 AM, 08 Apr 2022
    фак, короче, Миловидову вопрос, надеюсь, увидит
  • Курлом можно конечно. В винде вроде синтаксис был другой, точно не понмю. Проверьте что вы и как отправляете, csv работает или нет? где то ошибка.
  • Wsl не причем. вопрос про курл, ps или c# вообще...
  • https://t.me/clickhouse_ru
    Иногда сарказм...
  • https://t.me/clickhouse_ru
    Тут весь смысл скрывается в format_schema = 'schema:test'
  • https://t.me/clickhouse_ru
    @Groove_autopost #264975 05:19 AM, 08 Apr 2022
    🔥🔥Πлaчy 3000₽ за каждогo пpиведённогo ⲃaми ч𝚎лoⲃеⲕа, котоpый устpoится кyрьеpoм в Delivery. 🔥🔥

    ⚡𝖮плaтa послe 10 выпoлненныⲭ закaзoⲃ!⚡
    (Oбязательно ⲃ тeчeнии 30 дней. Можнo сделать и зa oдин д𝚎нь)

    🎁Зa вторoго пpиⲃeдённoго денежные бoнуcы! 🎁⁠⁠⁠⁠⁠⁠⁠⁠⁠
  • для HTTP протокола, вам надо на сервере иметь схему... с клиента не получиться отдать

    Если для ввода/вывода данных используется HTTP-интерфейс, то файл со схемой должен располагаться на сервере в каталоге,
    указанном в параметре format_schema_path конфигурации сервера.
    https://clickhouse.com/docs/ru/interfaces/formats/#formatschema
    Форматы входных и выходных данных | Документация ClickHouse

    Форматы входных и выходных данных ClickHouse может принимать (INSERT) и отдавать (SELECT) данные в различных форматах. П

  • https://t.me/clickhouse_ru
    А можно утром деньги, а человеки вечером? Завтра.
  • https://t.me/clickhouse_ru
    @baikulov #264979 05:36 AM, 08 Apr 2022
    Коллеги, всем бодрого пятничного утра!

    Подскажите, пожалуйста, немолодому и неопытному, могу я решить вот такую задачку в одно действие в CH?

    В BQ я такое через last_value(col IGNORE NULLS) делал. А тут не могу найти решения
  • lagInFrame ?
  • https://t.me/clickhouse_ru
    Скорей всего тут найдёте ответ https://kb.altinity.com/altinity-kb-queries-and-syntax/lag-lead/
  • https://t.me/clickhouse_ru
    Посмотрю, спасибо!
  • https://t.me/clickhouse_ru
    @kostya_morales #264987 06:14 AM, 08 Apr 2022
    Всем привет!
    Хочу сделать подобный запрос, но использовать where in ((), (), ())
    SELECT *
    FROM table
    WHERE filename = '{filename}' and
    partner = {partner} and
    upload_start > '{value1}' and
    upload_start < '{value2}'
    не пойму как указать с > и <
    SELECT *
    FROM table
    WHERE (filename, partner) in {tuples}
    как оставшиеся 2 поля туда включить с их условиями?
    помогите плз
  • https://t.me/clickhouse_ru
    вы хотите передавать несколько периодов для выборок ?
  • https://t.me/clickhouse_ru
    @kostya_morales #264989 06:16 AM, 08 Apr 2022
    список например из 1000 кортежей в которых передам эти 4 значения
  • https://t.me/clickhouse_ru
    @kostya_morales #264990 06:16 AM, 08 Apr 2022
    чтоб не делать 1000 запросов, а сделать одним
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #264987 #264991 06:30 AM, 08 Apr 2022
    нет, так не получится. Для оператора IN строится хеш, а потом проверяется на вхождение в него. <> тут некуда применять. Поэтому filename/partner - можно, а время (или что у вас там) - нет. Если границы интервалов относительно стабильные (или их можно предсказать заранее), то можно попробовать применить range_hashed словарь.
  • https://t.me/clickhouse_ru
    спасибо, сейчас почитаю
  • @AndyAMikhaylov #264994 06:54 AM, 08 Apr 2022
    Коллеги из yandex | altinity , привествую
    Есть в планах добавить упрощение синтакса типа
    AND -> &&
    OR -> ||

    типа как в mariadb ?
  • https://t.me/clickhouse_ru
    @724279396 #264995 07:01 AM, 08 Apr 2022
    Всем привет!
    У меня есть таблица со стадиями продажи различных продуктов (у каждого продукта свой id). Мне нужно отобрать такие id_продукта, у которых не было некоторых стадий (1,2,29), но была 3 стадия.
    Простой фильтр where тут не поможет явно.
    Благодарю за любую помощь!
  • https://t.me/clickhouse_ru
    первое, что пришло в голову

    через
    groupArray(<стадия>) AS arr создать массив для каждого id, в котором лежат все его стадии, естественно GROUP BY id
    , тут же написать
    HAVING NOT hasAny(groupArray(<стадия>), Array(<стадии, которых быть не должно>)) AND has(groupArray(<стадия>) ,3)
  • https://t.me/clickhouse_ru
    || это уже оператор конкатенации, имхо это только усложнит (мимокрокодил)
  • на мой взгляд значки кванторов ( a-la C ) смотрятся в выражении лучше чем слова
  • когда пришел со своим уставом в монастырь SQL )
  • любой [sq]L в конечном итоге - C :)
  • https://t.me/clickhouse_ru
    😂😂😂😂 Императивный vs декларативный.
  • спс - буду пробовать
  • https://t.me/clickhouse_ru
    кстати, || уже занят, это конкатенация
  • https://t.me/clickhouse_ru
    Схему положил, куда надо место
  • ну и все будет работать...
  • https://t.me/clickhouse_ru
    @apanasevich_d #265007 08:11 AM, 08 Apr 2022
    Такой вопрос по интеграции с Кафкой.

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

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

    DROP TABLE my_mv;

    CREATE MATERIALIZED VIEW my_mv ...

    Как правильно поменять MV под новую структуру без потери данных?
  • https://t.me/clickhouse_ru
    @1695040889 #265008 08:21 AM, 08 Apr 2022
    Тоже вопрос волнует, exchange по документации работает для table|dictionary
  • @kpotehin #265009 08:27 AM, 08 Apr 2022
    всем привет! а кто какую BI использует для отображения данных из ClickHouse? сейчас используем DataLens, но хочется другие решения узнать, где больше сорсов есть и можно джоинить разные сорсы друг с другом. Пробовали superset, но он не работает с replacing* движком.
  • https://t.me/clickhouse_ru
    @Sablast #265010 08:28 AM, 08 Apr 2022
    tableau
  • https://t.me/clickhouse_ru
    а что значит не работает?) какая ему разница?
  • у нас вполне работает. а как именно у вас проблема проявляется?
  • https://t.me/clickhouse_ru
    поскольку только что кто-то спасибо сказал, тему продолжу

    <tiered00>
    <volumes>
    <fast00>
    <disk>fast00</disk>
    </fast00>
    <arch00>
    <disk>arch00</disk>
    </arch00>
    <default>
    <disk>default</disk>
    </default>
    </volumes>
    <move_factor>0.01</move_factor>
    </tiered00>
    наличие volume default позволяет делать для существующих таблиц
    alter table db.table modify settings storage_policy = 'tiered00';
    писал по памяти, прошу больно не тыкать
    select version();
    22.2.2.1
  • мы вот эти ошибки ловим

    https://github.com/apache/superset/issues/16982
    https://github.com/xzkostyan/clickhouse-sqlalchemy/issues/164
    Does not work with clickhouse source. Cannot create a dataset · Issue #16982 · apache/superset

    Updated as stated here https://superset.apache.org/docs/databases/clickhouse How to reproduce the bug Followed instructions. Connected to database succesfully Was able to connect and get dataset fr...

  • https://t.me/clickhouse_ru
    Да что же повадились сегодня пароли выкладывать?
  • а если сделать Virtual dataset вместо Physical?
  • https://t.me/clickhouse_ru
    @1695040889 #265017 08:36 AM, 08 Apr 2022
    что выдает curl?
    "http://127.0.0.1:53755/tablemodelview/list/?pageIndex=0&sortColumn=changed_on_delta_humanized&sortOrder=desc"
  • и второе: как я вижу, падает на get_column_type? у вас там есть LowCardinality типы колонок?
  • https://t.me/clickhouse_ru
    @1695040889 #265019 08:37 AM, 08 Apr 2022
    500 Internal Server Error, судя по тикету?
  • https://t.me/clickhouse_ru
    @1695040889 #265020 08:39 AM, 08 Apr 2022
    Invalid enum member name: 127.0.0.1
  • https://t.me/clickhouse_ru
    а если использовать SQLAlchemy URI просто clickhouse:// без native?
  • https://t.me/clickhouse_ru
    @xtwdgnuuqp #265023 08:48 AM, 08 Apr 2022
    всем привет. юзаю clickhouse_driver и когда коннекшусь к локальной бд все норм и отвечает на запросы, а когда к серваку и прошу SHOW DATABASES он просто не отвечает ничего не выдает.
    как быть?
  • https://t.me/clickhouse_ru
    Хотя бы пример привести заполнения вами Client
  • https://t.me/clickhouse_ru
    client = Client(host='<ip>', port='<port>', user='<юзернейм>', password='<пароль>')
  • смотреть права пользователя, с которым вы подключаетесь к серверу. по моим наблюдениям, show databases показывает только список баз, на таблицы из которых у вас есть право хотя бы на select
  • https://t.me/clickhouse_ru
    Сделайте select 1
  • https://t.me/clickhouse_ru
    тоже самое
  • https://t.me/clickhouse_ru
    да вроде мне доступ дали только на одну таблицу, щас чекну
  • https://t.me/clickhouse_ru
    @xtwdgnuuqp #265030 08:58 AM, 08 Apr 2022
    блин когда через tabix делаю все норм а здесь ничего может я экзекьют неправильно делаю?

    client.execute("""SELECT item_id,sentiment,created_at
    FROM project_items
    WHERE type = 1
    AND project_id =10051
    AND created_at >= '2022-04-06 00:00:00'
    AND date>='2022-04-06 00:00:00'
    ORDER BY created_at ASC limit 10""")
  • https://t.me/clickhouse_ru
    у вас стандартный порт ? 9000 ?
  • https://t.me/clickhouse_ru
    нет
  • https://t.me/clickhouse_ru
    @konnectrl #265033 09:00 AM, 08 Apr 2022
    8123 ?
  • https://t.me/clickhouse_ru
    @xtwdgnuuqp #265034 09:00 AM, 08 Apr 2022
    да
  • https://t.me/clickhouse_ru
    @konnectrl #265035 09:00 AM, 08 Apr 2022
    Вместо 8123 -> 9000
  • https://t.me/clickhouse_ru
    @xtwdgnuuqp #265036 09:01 AM, 08 Apr 2022
    о, щас хотяб ошибки выдает
  • https://t.me/clickhouse_ru
    @xtwdgnuuqp #265037 09:03 AM, 08 Apr 2022
    спасибо всем!
  • https://t.me/clickhouse_ru
    А можете уточнить, чем это плохо?
  • https://t.me/clickhouse_ru
    @OrNixx #265040 09:30 AM, 08 Apr 2022
    clickhouse-bulk ведь селекты через себя не пропускает?
  • https://t.me/clickhouse_ru
    Тем, что у вас идёт фулл скан таблицы при любом запросе
  • https://t.me/clickhouse_ru
    либо явно указывать рамки, чтобы сканил только одну партицию?
  • https://t.me/clickhouse_ru
    Я ошибся, фулл скан партиций в которые попадает WHERE dateTime
  • https://t.me/clickhouse_ru
    а это будет в свежих версиях КХ поправлено? 😱
  • https://t.me/clickhouse_ru
    @konnectrl #265045 09:46 AM, 08 Apr 2022
    Это не проблема КХ, это проблема тех людей кто ставить DateTime первой в PK и ORDER BY
  • https://t.me/clickhouse_ru
    спс, кое где накосячили. сейчас спасаемся, что сканим явно одну партицию
  • https://t.me/clickhouse_ru
    @konnectrl #265047 09:47 AM, 08 Apr 2022
    Лучше DateTime ставить в конец
  • https://t.me/clickhouse_ru
    у нас запросы в основном на время заточены. Но есть нюанс, такая таблица была создана, чтобы на нее повешать кучу MV, напрямую к табле приложение не обращается. все в MV на основе нее
  • https://t.me/clickhouse_ru
    @konnectrl #265049 09:49 AM, 08 Apr 2022
    Нужно соблюсти грань использования в WHERE и кардинальности данных и тогда будет работать всё быстро
  • Если у Вас в пределах одной даты-время огромное количество записей, то имеет смысл добавлять в индекс DateTime первым или где-то в начале. Если же Вы в выборке используете какие-то другие критерии, которые объединяют множество записей с одинаковым DateTime, то DateTime лучше уносить в конец, если вообще использовать в PK или ORDER BY. Если используются партиции по датам, то они и без PK и ORDER BY будут подтягиваться по используемым датам.
    А в общем случае нужно всегда идти от большего к меньшему. То есть, например, сначала <clientId>, затем <resourceId>, затем <eventType> и так далее. Порядок можно менять, это просто пример, если у клиента есть много ресурсов, содержащих много записей с разными типами событий.
    А вот в пределах одной секунды вряд ли у Вас будет много записей. В итоге просто теряется смысл в упорядочивании хранения, так как для выборки нужных значений по периоду будут выбираться почти все записи из партиции за этот период, а затем будут практически прямым перебором выбираться записи по другим критериям. Вот и получился фулскан партиции.
  • @october31 #265053 10:16 AM, 08 Apr 2022
    Каким преобразованием возможно достать время из бд в формате 24 часа ? если в клике оно хранится с форматом AM/PM
  • https://t.me/clickhouse_ru
    toHour
  • @october31 #265055 10:19 AM, 08 Apr 2022
    всёровно возьмет 10 вместо 22
  • https://t.me/clickhouse_ru
    Какая версия кликхауса ?
  • https://t.me/clickhouse_ru
    @konnectrl #265057 10:23 AM, 08 Apr 2022
    Попробуйте сначала перевести в 24 часа время - parseDateTimeBestEffort , а потом взять часы
  • @396887717 #265058 10:44 AM, 08 Apr 2022
    Доброго дня, какое ограничение на длинну скл запроса в байтах или символах?
  • select * from system.settings where name like 'max_query_size';
    set max_query_size=xxxxxx;
  • @396887717 #265060 10:48 AM, 08 Apr 2022
    Спасибо!
  • https://t.me/clickhouse_ru
    @narmishnarmish #265061 11:01 AM, 08 Apr 2022
    привет! у меня такая проблема: фильтрую данные через where ... in и подзапрос, выдает пустой результат, а если делать через global inner join аналогичную операцию, то все нормально, не empty. что может быть не так ?
    случилось после обновления кликхауса, раньше все нормально работало
  • https://t.me/clickhouse_ru
    @narmishnarmish #265062 11:01 AM, 08 Apr 2022
    может там settings какой-нибудь есть чтобы добавить и все было окей ?
  • https://t.me/clickhouse_ru
    Таблица distributed ?
  • https://t.me/clickhouse_ru
    global in?
  • https://t.me/clickhouse_ru
    тоже пустой результат дает (
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @konnectrl #265069 11:09 AM, 08 Apr 2022
    Обращаетесь в эту же таблицу или в другую ?
  • https://t.me/clickhouse_ru
    @konnectrl #265070 11:10 AM, 08 Apr 2022
    Вообщем, скорей всего таблицы в которых данные совпадают лежат на разных шардах
  • https://t.me/clickhouse_ru
    @konnectrl #265071 11:10 AM, 08 Apr 2022
    Вот и всё
  • https://t.me/clickhouse_ru
    глобал должен был бы решить эту проблему
  • https://t.me/clickhouse_ru
    по факту global join и global in одинаковые операции
  • https://t.me/clickhouse_ru
    @konnectrl #265074 11:12 AM, 08 Apr 2022
    в этом кейсе
  • https://t.me/clickhouse_ru
    @Sablast #265075 11:12 AM, 08 Apr 2022
    да, но как видим почему то не помогло
  • https://t.me/clickhouse_ru
    другую, да
  • https://t.me/clickhouse_ru
    @konnectrl #265077 11:12 AM, 08 Apr 2022
    Запросы не видели, может проблема в них
  • https://t.me/clickhouse_ru
    @konnectrl #265078 11:13 AM, 08 Apr 2022
    А так создавайте issue описывайте проблему.
  • https://t.me/clickhouse_ru
    @im_yuri_kim #265079 11:14 AM, 08 Apr 2022
    Всем привет, если я создам MV TO, как данные из исходной таблицы быстро в таблицу которая под MV положить ?
  • https://t.me/clickhouse_ru
    @konnectrl #265080 11:14 AM, 08 Apr 2022
    Ну тем же запросом, что и в MV
  • https://t.me/clickhouse_ru
    @im_yuri_kim #265081 11:15 AM, 08 Apr 2022
    Insert делать в mv?
  • https://t.me/clickhouse_ru
    Делать в таблицу TO
  • https://t.me/clickhouse_ru
    @im_yuri_kim #265083 11:15 AM, 08 Apr 2022
    Окау, спасибо. Попробую
  • https://t.me/clickhouse_ru
    @im_yuri_kim #265084 11:15 AM, 08 Apr 2022
    Я в mv пробовал, ошибка была с какой то настройкой
  • https://t.me/clickhouse_ru
    @nyoroon #265087 12:51 PM, 08 Apr 2022
    добрый день! подскажите, какой ручкой можно увеличить connection timeout для http словарей?
    Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = Timeout: connect timed out: xxx:80 (version 21.8.15.7)
    кажется что http_connection_timeout = 0 не помогает
  • А там DateTime с 10-минутными интервалами, то есть в одно такое значение DateTime мы получаем несколько млн строк, поэтому он и в индексе.
    Я не пойму, почему кликхаус в выборку берёт слишком много строк, индекс по DateTime-то есть.
  • https://t.me/clickhouse_ru
    @zhiraslan_shedzhem #265089 01:29 PM, 08 Apr 2022
    Привет!
    Подскажите, пожалуйста, по какой причине 2 одинаковых числа воспринимаются как разные?
    При селекете использую округление:
    round(li.found_quantity, 3) = round(fli.quantity, 3) as is_equal,
    round(li.found_quantity, 3) - round(fli.quantity, 3) as diff
  • почитайте про Float vs Decimal
  • @1382671541 #265093 01:35 PM, 08 Apr 2022
    "не совсем", у вас числа в Decimal?
  • https://t.me/clickhouse_ru
    там все очень тупо и надежно работает и там все очевидно.
    но всплепую, без конкретики это не объяснить
  • https://t.me/clickhouse_ru
    Хотел написать, что не совсем понял
  • https://t.me/clickhouse_ru
    @zhiraslan_shedzhem #265096 01:41 PM, 08 Apr 2022
    Потом решил почитать
    И теперь точно не понял😅
  • https://t.me/clickhouse_ru
    @zhiraslan_shedzhem #265097 01:41 PM, 08 Apr 2022
    Перевел в Decimal64, ничего не изменилось
  • вы оригинальные числа перевели или результат округления в Decimal64(3)?
  • https://t.me/clickhouse_ru
    @zhiraslan_shedzhem #265099 01:44 PM, 08 Apr 2022
    Реальные
  • @1382671541 #265100 01:44 PM, 08 Apr 2022
    а scale какой?
  • https://t.me/clickhouse_ru
    @zhiraslan_shedzhem #265101 01:44 PM, 08 Apr 2022
    3
  • https://t.me/clickhouse_ru
    @zhiraslan_shedzhem #265102 01:47 PM, 08 Apr 2022
    Поменял на 10, заработало
    Но смущает, что только сейчас вылезла подобная ошибка
    Ранее не сталкивался с подобным
  • https://t.me/clickhouse_ru
    @zhiraslan_shedzhem #265103 01:48 PM, 08 Apr 2022
    Хотя на 3 тоже работает
  • https://t.me/clickhouse_ru
    например

    select sum(0.2) from numbers_mt(100000000);
    --
    20000000.00000213

    0.2 это бесконечная периодическая дробь в 2й системе

    select sum(0.2::Decimal64(3)) from numbers_mt(100000000);
    --
    20000000
  • https://t.me/clickhouse_ru
    60 cекунд ? или 180,
  • https://t.me/clickhouse_ru
    через 1 секунду отваливается
  • https://t.me/clickhouse_ru
    @nyoroon #265107 02:02 PM, 08 Apr 2022
    похоже на дефолт:
    SELECT value
    FROM system.settings
    WHERE name = 'http_connection_timeout'
    FORMAT TSVRaw

    1
  • https://t.me/clickhouse_ru
    скорее всего http_connection_timeout
    но применяется при перезагрузке из-за пула коннектов

    а почему у вас 1 секунда таймаутит? Через спутник коннект? По оптике вокруг земли 1 сек латенси тяжело получить.
  • https://t.me/clickhouse_ru
    под сотню шардов и все одновременно идут в словарь. запросы попадают в tcp listen queue похоже. это тоже ковыряю
  • А где можно почитать про работу индексов подробнее?
  • @olehdudkin #265115 03:57 PM, 08 Apr 2022
    Доброго времени суток, коллеги. Есть таблица 100м записей. В нее нужно добавить колонку и перенести данные из легаси MySQL таблицы. Какие есть варианты?
  • @olehdudkin #265116 03:57 PM, 08 Apr 2022
    * перенести только данные этой колонки. Остальные уже есть
  • https://t.me/clickhouse_ru
    @Sablast #265117 04:01 PM, 08 Apr 2022
    100м не так много, кажется проще и быстрее будет сделать полный дамп таблицы
  • @olehdudkin #265118 04:02 PM, 08 Apr 2022
    Как это сделать не прерывая продакшн?
  • @molchanovdp #265119 04:03 PM, 08 Apr 2022
    Всем привет!
    А кто-то уже пробовал поработать с Object('JSON') ?

    Пробую прогнать тест:
    CREATE TABLE t_json_2(id UInt64, data Object('JSON'))
    ENGINE = MergeTree ORDER BY tuple()
    SETTINGS min_bytes_for_wide_part = 0;

    INSERT INTO t_json_2 FORMAT JSONEachRow {"id": 1, "data": {"k1": 1, "k2" : 2}} {"id": 2, "data": {"k2": 3, "k3" : 4}};

    SELECT id, data.k1, data.k2, data.k3 FROM t_json_2 ORDER BY id;

    Select падает с ошибкой:

    Missing columns: 'data.k2' 'data.k3' 'data.k1' while processing query: 'SELECT id, data.k1, data.k2, data.k3 FROM t_json_2 ORDER BY id ASC', required columns: 'id' 'data.k1' 'data.k3' 'data.k2', maybe you meant: ['id']. (UNKNOWN_IDENTIFIER) (version 22.3.3.44 (official build))
  • @olehdudkin #265120 04:03 PM, 08 Apr 2022
    Это нужно как-то сделать без потери данных.
    Пока мы только придумали запихнуть колонку во временную джоин таблицу, и ALTER TABLE UPDATE
  • https://t.me/clickhouse_ru
    Ну вы так спрашиваете...)) сдедайте ренейм, лейте прод в другую таблицу, поднимите другой кх, создайте другую таблицу а потом подмените
  • https://t.me/clickhouse_ru
    @Sablast #265122 04:04 PM, 08 Apr 2022
    Вариантов много
  • https://t.me/clickhouse_ru
    Если у вас туда нонстопом льётся то я хз сколько будет выполняться апдейт на 100млн
  • @olehdudkin #265124 04:05 PM, 08 Apr 2022
    Мы не пробовали такой апдейт еще на боевых таблицах... есть опыт в этом*
  • @olehdudkin #265125 04:05 PM, 08 Apr 2022
    ?
  • @olehdudkin #265126 04:05 PM, 08 Apr 2022
    если например кусками апдейтить
  • https://t.me/clickhouse_ru
    У нас нет таблиц с непрерывной заливкой, мы архитектурно можем остановить вставку на любое время. Мб кто ещё подскажет
  • @olehdudkin #265128 04:10 PM, 08 Apr 2022
    А для чего вы, если не секрет, используете CH? Думалось, что основной юзкейс это как раз лить туда данные нон-стоп
  • работает ваш пример, какая версия клиента у вас?

    SELECT
    id,
    data.k1,
    data.k2,
    data.k3
    FROM t_json_2
    ORDER BY id ASC

    Query id: 81e0a14f-1cc6-4bdf-a6c7-f798438f82e6

    ┌─id─┬─data.k1─┬─data.k2─┬─data.k3─┐
    │ 1 │ 1 │ 2 │ 0 │
    │ 2 │ 0 │ 3 │ 4 │
    └────┴─────────┴─────────┴─────────┘
  • https://t.me/clickhouse_ru
    Для аналитики всего) льем кликстрим и хиты видеосмотрения. В моем опыте довольно необычно делать без предварительного накопителя в виде кафки или файлов хотябы
  • 22.3.3.44
  • Оно у нас в редисе хранится, так что вы правы, теоретически мы можем остановить это временно.
  • дополнительные данные в словарь -> alter table ... add column col default dictGet(...) -> alter table ... materialize column col -> alter table ... MODIFY col REMOVE DEFAULT
  • Спасибо!
    Маленький вопрос
    А если колонка уже есть и там есть какие-то данные для новых записей. А старые нужно залить
  • Вы сможете отличить старые данные от новых? Если сможете, то можно DEFAULT выражение с if написать
  • @2070273164 #265136 04:40 PM, 08 Apr 2022
    возможно, что придётся новую колонку сделать, а потом старую дропнуть
  • @olehdudkin #265137 04:40 PM, 08 Apr 2022
    т.е. я могу просто скопировать колонку и сделать default который проверяет
  • @olehdudkin #265138 04:40 PM, 08 Apr 2022
    да
  • да, в default берёте либо из колонки, либо из словаря через if
  • @olehdudkin #265140 04:42 PM, 08 Apr 2022
    шикарно, спасибо
  • А у вас какая?
  • тоже самое

    ClickHouse client version 22.3.3.44 (official build).
    Connected to ClickHouse server version 22.3.3 revision 54455.
  • https://t.me/clickhouse_ru
    @bedakurov #265143 07:51 PM, 08 Apr 2022
    Всем привет! ✋
    Пробую в ClickHouse (развернут в облаке) выполнить простой запрос вставки данные из одной таблицы ClickHouse в другую таблицу ClickHouse:
    у каждой ENGINE = MergeTree(date, date, 8192)
    insert into data.table1 select * from data.table2

    Периодически всплывает ошибка DB::Exception: ServerException: Code: 241. Memory limit (total) exceeded <число>: While executing MergeTreeInOrder

    Подскажите, пожалуйста, какой наилучший способ выполнить запрос, чтобы избежать этой ошибки. Возможно, есть стримминг, который память не нагружает (пробовал через python
    from clickhouse_driver import Client через client.execute_iter с settings = {'max_block_size': iter_size} - работает, но не помогло - периодически тоже ошибка вылетает). Конкретного решения пока не обнаружил.

    Если нужно что-то на сервере выставить, то что именно поможет? Вот параметры:
    https://clickhouse.com/docs/ru/operations/server-configuration-parameters/settings/#max_server_memory_usage_to_ram_ratio

    Заранее большое спасибо🙏
    Конфигурационные параметры сервера | Документация ClickHouse

    Конфигурационные параметры сервера builtin_dictionaries_reload_interval Интервал (в секундах) перезагрузки встроенных сл

  • https://t.me/clickhouse_ru
    а сколько памяти? <число> ?

    insert into data.table1 select * from data.table2
    Этот запрос и так стримается и батчит и ипользует лимитированное кол-во памяти, но можно подкрутить
  • https://t.me/clickhouse_ru
    Сократил немного для наглядности:
    Memory limit (total) exceeded: would use 3.02 GiB
    (attempt to allocate chunk of 4446613 bytes),
    maximum: 3.00 GiB:
    (while reading column category_name):
    (while reading from part /var/lib/clickhouse/store/.../
    from mark 0 with max_rows_to_read = 212407): While executing MergeTreeInOrder.
  • https://t.me/clickhouse_ru
    3.00 GiB
    тут надо понимать что чудес ждать не стоит https://clickhouse.com/docs/en/operations/tips/#ram
    изначально никто не рассчитывал что КХ будут запускать на железках с меньше чем 32ГБ
    и соответвенно КХ хавает память гигабайтами.

    попробуйте
    insert into data.table1 select * from data.table2 settings max_threads=1, max_block_size=10000, max_insert_block_size=10000, min_insert_block_size_rows=10000
  • https://t.me/clickhouse_ru
    Спасибо вам большое, попробую 🍀
  • https://t.me/clickhouse_ru
    @daniel_byta #265149 11:33 PM, 08 Apr 2022
    Как сделать так, чтобы запрос INSERT INTO SELECT _ FROM не падал по памяти?
  • 09 April 2022 (25 messages)
  • Смотреть сколько ест селект через трейс
  • max_threads=1
    max_block_size/max_insert_block_size уменьшить.
  • На пару сообщений выше пример есть, кстати
  • https://t.me/clickhouse_ru
    @daniel_byta #265158 01:54 PM, 09 Apr 2022
    Есть кейсы работы кликхауса с реббитом?
    Не понимаю вот что
    Клик в принципе может работать с большим количеством простых запросов
    У меня такой кейс
    Кубер 20 подов, каждый из которых параллельно обрабатывает 50 задач, в которой происходят запросы в клик

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

    Со вставкой проблем нет

    Проблема в том, что такая конфигурация упирается во что-то и запросы, которые выполняются за 50-150мс выполняются за 1-1,5с, иногда запросы ловят таймаут и иногда клик сам дропает запросы

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

    Клик работает с таким железом: 8 ядерный проц, 32гб оперативы и ssd
  • https://t.me/clickhouse_ru
    Я не сильно в курсе, наш програмер на кролика жаловался, есть там где-то затык
  • Попробуй создать буферную таблицу и вставлять в неё

    https://clickhouse.com/docs/en/engines/table-engines/special/buffer/
    Buffer | ClickHouse Documentation

    Buffer Table Engine Buffers the data to write in RAM, periodically flushing it to another table. During the read operati

  • https://t.me/clickhouse_ru
    А вот фиг там, именно работа с параллельной обработкой очередей
  • https://t.me/clickhouse_ru
    @daniel_byta #265162 02:08 PM, 09 Apr 2022
    проблема в запросах на чтение
  • @msmk_cn #265163 02:08 PM, 09 Apr 2022
    А, я не так прочитал значит. Приношу свои извинения
  • https://t.me/clickhouse_ru
    @1695040889 #265164 02:09 PM, 09 Apr 2022
    у нас, кажется, с записью проблемы были
    я попробую спросить, но выходной...
  • https://t.me/clickhouse_ru
    @daniel_byta #265165 02:10 PM, 09 Apr 2022
    у нас супер распараллеленная архитектура и клик в стоке не справляется с объемом запросов, но при этом нагрузка на проц не очень большая)
  • https://t.me/clickhouse_ru
    спасибо)
  • https://t.me/clickhouse_ru
    Нифига я неправильно помню, проблема в развалах кластера. Теоретических. Хз. В общем, мы сейчас nats пробуем, хз, что это.
  • https://t.me/clickhouse_ru
    >Как заставить клик обрабатывать много маленьких запросов параллельно
    мухаха,
    как заставить карьерный экскаватор делать маленькие ямки быстро

    посмотрите на зукипер, скорее у вас зукипер упирается в диски
  • @olehdudkin #265169 03:12 PM, 09 Apr 2022
    Что-то вы не то делаете. Вам скорее всего нужно найти способ сагрегировать запросы, со сложными групбаями. А не 60миллионгв маленьких делать
  • @olehdudkin #265170 03:13 PM, 09 Apr 2022
    Помните про гранулярность данных. Он у вас 8000 раз повторяет чтение одних и тех же данных, и скорее всего вразнобой. Поэтому приходится перечитывать с диска
  • https://t.me/clickhouse_ru
    исходная таблица состоит из данных с dateTime
    есть колонка, у которой 800_000 уникальных значений
    я с помощью стрима получаю список этих значений и после с помощью дополнительных индексов получаю данные отдельно для этого ключа сортировки
    повторений быть не должно
    клик должен по насечкам быстро такие запросы резолвить
  • @olehdudkin #265173 06:04 PM, 09 Apr 2022
    А что вам мешает пачками данные получать?
  • https://t.me/clickhouse_ru
    Кхм, поймите что индекс в кликхаусе, и индексы в OLTP базах, это абсолютно разные вещи. Как вам уже ответили, кликхаус это вещь которая перерабатывает 1 огромный запрос с миллиардами строк, а не миллиард запрос с 1 строкой. Он просто не предназначен для этого
  • https://t.me/clickhouse_ru
    @pxlvgg #265176 07:06 PM, 09 Apr 2022
    тип mergetree можно поменять не пересоздавая таблицу?
  • Нет
  • https://t.me/clickhouse_ru
    покажите что ли свои запросы и индексы, наверняка можно сделать лучше, ну и для таблиц с меньше чем 10млрд. строк наверное можно уменьшить index_granularity чтобы ускорить/уменьшить стоимость для мелких запросов
  • https://t.me/clickhouse_ru
    да, если partition by и order by не меняются, то движок поменять можно, способ зависит от того Replicated таблица или нет.
    в общем случае есть способ attach partition from
    парты устроены одинаково во всех движках MergeTree и вообще все MergeTree движки это один движок/единый код, различается только код мержа.
  • https://t.me/clickhouse_ru
    @den_crane #265180 07:54 PM, 09 Apr 2022
    да всегда был.

    create table S (A Int64, D date) Engine=MergeTree partition by D order by A;
    insert into S values(1, '2020-01-01');

    create table D (A Int64, D date) Engine=ReplacingMergeTree partition by D order by A;
    alter table D attach partition '2020-01-01' from S;

    select * from D
    ┌─A─┬──────────D─┐
    │ 1 │ 2020-01-01 │
    └───┴────────────┘

    rename table S to old_s, D to S;

    show create table S;
    ....
    ENGINE = ReplacingMergeTree
  • https://t.me/clickhouse_ru
    Добрый вечер.
    Попробовал эти настройки. Плюс менял их по разному - в большую и меньшую сторону. Результат всегда один:
    DB::Exception: Memory limit (total) exceeded.

    Решил проблему через python, используя в clickhouse_driver для insert обертку backoff - для восстановления подключения с места raise exception.

    Лог выглядит так, когда появляется ошибка:
    09.04.22 23:01:01 - [INFO] - __main__ - (clickhouse_defs.py).clickhouse_count_rows(8) - Количество строк для обновления: 1318903
    09.04.22 23:01:04 - [INFO] - __main__ - (clickhouse_defs.py).clickhouse_insert_internal_data(49) - DB::Exception: Memory limit (total) exceeded
    09.04.22 23:01:04 - [INFO] - __main__ - (backoff.py).retry_connect(30) - Попытка подключения...
    09.04.22 23:01:07 - [INFO] - __main__ - (clickhouse_defs.py).clickhouse_insert_internal_data(49) - DB::Exception: Memory limit (total) exceeded
    09.04.22 23:01:07 - [INFO] - __main__ - (backoff.py).sleep_func(17) - Ожидание подключения: 0.8
    09.04.22 23:01:08 - [INFO] - __main__ - (backoff.py).retry_connect(30) - Попытка подключения...
    09.04.22 23:01:16 - [INFO] - __main__ - (clickhouse_defs.py).clickhouse_insert_internal_data(47) - Затраченное время на вставку данных, сек.: 8.803952693939209
    09.04.22 23:01:18 - [INFO] - __main__ - (start_clickhouse.py).<module>(55) - Итого затраченное время, сек.: 18.04178261756897
    В итоге, все ОК👍
  • 10 April 2022 (377 messages)
  • @Daniil_Xen #265183 12:22 AM, 10 Apr 2022
    Всем привет!
    Подскажите почему может такое быть
    Делаю запрос
    ALTER TABLE events ADD COLUMN traf UInt8 DEFAULT 0 AFTER traf_test;
    Получаю следующее:
    0 rows in set. Elapsed: 0.002 sec.

    Received exception from server (version 21.4.3):
    Code: 47. DB::Exception: Received from localhost:9000. DB::Exception: Missing columns: 'traf' while processing query:

    Что можно сделать, что получилось добавить столбец?
  • https://t.me/clickhouse_ru
    @nyoroon #265184 12:26 AM, 10 Apr 2022
    21.4 не поддерживается уже
  • @Daniil_Xen #265185 12:30 AM, 10 Apr 2022
    нет возможности бд обновить(
  • @Daniil_Xen #265186 01:17 AM, 10 Apr 2022
    почему при выполнении запроса на добавление столбца появляется ошибка по совершенно другому запросу? Там вообще SELECT в эксепшене.
    SHOW PROCESSLIST ничего не показывает. Где-то селект привис в котором как раз не хватает этого столбца, да?
  • @Daniil_Xen #265187 01:41 AM, 10 Apr 2022
    решил сам, переименовал таблицу и в ней получилось создать столбец. потом вернул все обратно)
  • https://t.me/clickhouse_ru
    вот есть у КХ одна проблема. Отсутствие толковой документации и комьюнити с опытом. Что бы начать использовать storage_policies нужно всякие телодвижения делать, что как бы не есть хорошо. И нифига непотнятно местами.
  • https://t.me/clickhouse_ru
    @1695040889 #265189 05:03 AM, 10 Apr 2022
    Я с КХ меньше года, опыт использования того же BRIN индекса играет злую шутку иногда. Это же минмакс? Да. Наверное, если отбросить предвзятость, оно как-то так же работает. Индейское народное жилище.
  • https://t.me/clickhouse_ru
    @ilia_vo #265190 05:15 AM, 10 Apr 2022
    Где-то (кроме как в исходниках) можно почитать про различия работы в движках Dictionary и Memory с точки зрения последовательного чтения (типа select * from dict/memory)

    Суть нашего кейса -- есть кластер на 40 нод, на которых создается словарь
    Этот словарь пробуем заполнять с одной другой ноды NODE1 (то есть на 40 нодах создается словарь с SOURCE(CLICKHOUSE(NODE1))). сам источник для словарей на 40 нодах находится на NODE1 и
    - если таблица с движком на NODE1 Memory все отлично отрабатывает
    - если же эти данные положить в Dictionary с COMPLEX_KEY_HASHED_ARRAY layout, то NODE1 (на ней 64гб RAM) падает с OOM при обновлении словаря одновременно на 40 нодах

    данных не так много -- всего 300к записей и сами данные занимают 2гб в Memory движке
    данные для словаря собираются достаточно долго и дорого, поэтому и хотелось его один раз создать на NODE1 и чтобы остальные ноды периодически опрашивали словарь на NODE1 и забирали с него данные

    в моем понимании Dictionary это по сути дела тот же HashMap, который должен быстро обходиться и отдаваться тому, кто запрашивает из него все данные, но, похоже, КХ пытается его сначала весь к себе в память прочитать, а потом уже отдать по сети (поэтому и ООМ)

    Спасибо
  • https://t.me/clickhouse_ru
    Это одна из проблем КХ, одновременное чтение из 2ГБ таблицы потребует x*2ГБ оперативы
  • https://t.me/clickhouse_ru
    @1695040889 #265192 05:20 AM, 10 Apr 2022
    + накладные расходы
  • https://t.me/clickhouse_ru
    @1695040889 #265193 05:23 AM, 10 Apr 2022
    Dictionary это по сути дела тот же HashMap
    учитывайте, что можно неудачно HashMap создать и потерять часть данных 😜
  • https://t.me/clickhouse_ru
    А я тут при чем? Я контрибучу в документацию по мере сил, в свое личное время.
  • https://t.me/clickhouse_ru
    Словарь не предназначен для select. Каждый атрибут лежит в своей хештаблице. Читать это селектами супермедленно и суперзтратно. Я как-то показывал тест что словарь на селект в 5000 раз медленее чем mergetree.

    Мы для этой задачи используем ReplicatedReplacingMergeTree, просто создаете таблицу без макроса shard, получаете 100 копий, менять можно на любой ноде, словари читают локальный источник.
  • https://t.me/clickhouse_ru
    спасибо большое

    я просто думал, что COMPLEX_KEY_HASHED_ARRAY фактически содержит одну HashMap для всех аттрибутов (то есть образно говоря key -> List<fields>), т.к. как понимаю раньше в обычном (COMPLEX_KEY_HASHED) был как раз List<key -> field>

    ReplicatedReplacingMergeTree, просто создаете таблицу без макроса shard
    хитро 😁

    и фактически вставляя всего лишь на одной ноде в эту таблицу данные будут обновлены на всех нодах через репликацию?
  • https://t.me/clickhouse_ru
    @den_crane #265197 07:30 AM, 10 Apr 2022
    в яндексе любят скорость, поэтому словари сделали множеством хештаблиц. Каждый атрибут словваря отдельно, или отдельный хеш или массив.
  • https://t.me/clickhouse_ru
    >и фактически вставляя всего лишь на одной ноде
    > в эту таблицу данные будут обновлены на всех
    >нодах через репликацию?
    Да.
  • https://t.me/clickhouse_ru
    @ilia_vo #265199 07:32 AM, 10 Apr 2022
    еще раз спасибо большое!
  • https://t.me/clickhouse_ru
    @den_crane #265200 07:38 AM, 10 Apr 2022
    Я использую этот трюк и для маленьких агрегатов (получаается что часть запросов можно обслуживать любой одной нодой кх)
    и для маленьких таблиц-дименшинов с которыми делается джойн (если словарь не подходит).

    (кстати мопед не мой, придумали это все мои предшественники еще лет шесть назад)
  • @DenisGee #265201 08:18 AM, 10 Apr 2022
    Доброго времени суток, поскажите пожалуйста по небольшому вопросу -
    Есть несколько кластеров, у которых разная директория в зукипере (зукипер один), и для каждого свой ACL, есть потребность делать запросы ON CLUSTER с одного кластера на другой, соответственно нужна одна директория ddl_path, но с ACL будет проблема, при создании подобного запроса будет проблема с доступом к зноде(запросу он кластер), у кластера принимающего запрос. Кто как выходил из такой ситуации, неужели у всех должен быть один ACL?
  • https://t.me/clickhouse_ru
    А к Вам претензий нет, я просто в сообщении выразил свое мнение, если на свой счет восприняли, прошу прощения.
  • https://t.me/clickhouse_ru
    а что Вам мешает начать контрибутить в документацию?
  • https://t.me/clickhouse_ru
    Я весьма критично отношусь к себе. Думаю, не дорос пока.
  • https://t.me/clickhouse_ru
    @kemsa ↶ Reply to #265204 #265205 09:05 AM, 10 Apr 2022
    Ох уж этот синдром самозванца. Можешь кому-то дать полезную информацию - значит дорос же?)
  • https://t.me/clickhouse_ru
    ХЗ, завтра собеседование , чисто себя проверить. Может и правда что-то их себя представляю.
  • https://t.me/clickhouse_ru
    @1695040889 #265207 09:08 AM, 10 Apr 2022
    А может быть и правда, 400тыр - это 400тыр.
  • https://t.me/clickhouse_ru
    @ivanbrrr #265208 09:12 AM, 10 Apr 2022
    Добрый день.
    Подскажите как лучше перетащить данные размером ~1тб c одного хоста на другой?
  • https://t.me/clickhouse_ru
    @ivanbrrr #265209 09:13 AM, 10 Apr 2022
    БД КХ в смысле )
  • https://t.me/clickhouse_ru
    Мне вот rsync нравится. Каков вопрос, таков ответ.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Возможно неправильно сформировал вопрос. Как лучше снять дамп с кликхауса и развернуть его на другом хосте?
    Или же просто в архив все внутренности и всё?))
  • https://t.me/clickhouse_ru
    clickhouse-copier - возможно то что Вам надо
  • https://t.me/clickhouse_ru
    1ТБ - это не так уж и много, если таблиц не много, быстрее через пайп селект и инсерт
  • https://t.me/clickhouse_ru
    таблиц немного. Объемных буквально 2, остальные мелкие
  • https://t.me/clickhouse_ru
    @1695040889 #265225 09:50 AM, 10 Apr 2022
    вот и сравните время изучения сторонних механизмов vs скорость чтения/вставки
  • https://t.me/clickhouse_ru
    или clickhouse-copier, или руками через скрипт, или через buffer+distributed попробовать.
  • @yury_semenov #265227 10:04 AM, 10 Apr 2022
    Подскажите Clickhouse-client — secure, автоматически будет стучаться на https port стучаться, при раскомментированной строке в конфиге?
  • Клиент работает по нативному протоколу, а не по http(s). По умолчанию порт 9440 для SSL режима.
  • Малость перепутал. Я к тому что команда clickhouse-client — secure, ломится на 9000 порт. А я не понимаю, надо какие то ещё доп настройки произвести или что то сломалось.
  • @lekysey #265232 10:37 AM, 10 Apr 2022
    всем привет!
    переехал с 19.x на ласт версию (22.3.3.44)
    использую аккамулятор в роли https://github.com/nikepan/clickhouse-bulk

    встречаю следующее:

    DynamicQueryHandler: Code: 27. DB::ParsingException: Cannot parse input: expected 'eof' before: '{"fingerId":"XXX","userId":"XX","url":"","referrer":"XXX","ip":"XXX","userAgent":"XXX': While executing ParallelParsingBlockInputFormat. (CANNOT_PARSE_INPUT_ASSERTION_FAILED), Stack trace (when copying this message, always include the lines below)

    0. DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, bool) @ 0xb3712fa in /usr/bin/clickhouse
    1. DB::throwAtAssertionFailed(char const*, DB::ReadBuffer&) @ 0xb3c718d in /usr/bin/clickhouse
    2. DB::JSONEachRowRowInputFormat::readSuffix() @ 0x169ca284 in /usr/bin/clickhouse
    3. DB::IRowInputFormat::generate() @ 0x1696ccce in /usr/bin/clickhouse
    4. DB::ISource::tryGenerate() @ 0x168fc2b5 in /usr/bin/clickhouse
    5. DB::ISource::work() @ 0x168fbe7a in /usr/bin/clickhouse
    6. DB::ParallelParsingInputFormat::InternalParser::getChunk() @ 0x169f1aac in /usr/bin/clickhouse
    7. DB::ParallelParsingInputFormat::parserThreadFunction(std::__1::shared_ptr<DB::ThreadGroupStatus>, unsigned long) @ 0x169f108b in /usr/bin/clickhouse
    8. ThreadPoolImpl<ThreadFromGlobalPool>::worker(std::__1::__list_iterator<ThreadFromGlobalPool, void*>) @ 0xb41b38a in /usr/bin/clickhouse
    9. ThreadFromGlobalPool::ThreadFromGlobalPool<void ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda0'()>(void&&, void ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda0'()&&...)::'lambda'()::operator()() @ 0xb41d524 in /usr/bin/clickhouse
    10. ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0xb418757 in /usr/bin/clickhouse
    11. ? @ 0xb41c2dd in /usr/bin/clickhouse
    12. ? @ 0x7f44afc4e609 in ?
    13. __clone @ 0x7f44afb75293 in ?
    (version 22.3.3.44 (official build))

    не нашел решения
    в какую сторону глядеть?
    опыт с КХ достаточно мал
    GitHub - nikepan/clickhouse-bulk: Collects many small inserts to ClickHouse and send in big inserts

    Collects many small inserts to ClickHouse and send in big inserts - GitHub - nikepan/clickhouse-bulk: Collects many small inserts to ClickHouse and send in big inserts

  • https://t.me/clickhouse_ru
    @Kirill_Bulatov #265233 10:38 AM, 10 Apr 2022
    https://clickhouse.com/company/events/getting-started-with-clickhouse-webinar/ 404 выдает, надо как-то регистрироваться? На ютуб тоже не нашел записи вебинара. Есть какие то хорошие курсы для быстрого вхождения в тему? посоветуйте пожалуйста.
  • https://t.me/clickhouse_ru
    @1695040889 #265234 10:51 AM, 10 Apr 2022
    '{"fingerId":"XXX","userId":"XX","url":"","referrer":"XXX","ip":"XXX","userAgent":"XXX': While executing
    Тут, кмк, не совсем корректный JSON
  • об этом также думал
    думал может просто лог урезан
    возможно проблема у сервиса https://github.com/nikepan/clickhouse-bulk
    но там также ласт версия
    и никаких issue по моей теме
    GitHub - nikepan/clickhouse-bulk: Collects many small inserts to ClickHouse and send in big inserts

    Collects many small inserts to ClickHouse and send in big inserts - GitHub - nikepan/clickhouse-bulk: Collects many small inserts to ClickHouse and send in big inserts

  • https://t.me/clickhouse_ru
    Видел в логах офигеть какие длинные запросы, типа in ( bla-bla-bla ). Сомневаюсь. Я бы предположил, что Вы вместо запроса JSON пытаетесь обработать, то, что он некорректный - это вопрос уже другой.
  • @olehdudkin #265238 11:17 AM, 10 Apr 2022
    Вопрос по частым инсертам. В доках указано что рекомендуется не чаще чем 1 раз в секунду, это для каждого сервера или для каждой таблицы?
  • Свежая установка последней stable версии. вот результат.

    user@node1:~$ clickhouse-client --secure
    ClickHouse client version 22.2.2.1.
    Connecting to localhost:9000 as user default.
    Code: 210. DB::NetException: SSL Exception: error:100000f7:SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER (localhost:9000). (NETWORK_ERROR)
  • https://t.me/clickhouse_ru
    @1695040889 #265241 11:48 AM, 10 Apr 2022
    фигасе, это что было? какой-то массовый лайк?
  • @dj_mixer #265242 11:50 AM, 10 Apr 2022
    ban @TGtraffic2022 нужен...
  • @dj_mixer #265243 11:54 AM, 10 Apr 2022
    @milovidov_an а можно опять отключить реакции в группе? а то нет возможности игнорировать уведомления в ТГ пока что...
    выше люди тож просили...
    https://t.me/clickhouse_ru/263114
    https://t.me/clickhouse_ru/262275
    Ivan Terekhov in ClickHouse не тормозит

    А реально ли забанить в этом чате бота этого? Постоянные висящие непрочитанные реакции раздражают. Телега ещё плохо обрабатывает лайки на старые сообщения

  • Присоединяюсь к просьбе
  • https://t.me/clickhouse_ru
    @1695040889 #265245 11:57 AM, 10 Apr 2022
    Света, звезда м-а?
  • @olehdudkin #265246 11:58 AM, 10 Apr 2022
    Давайте не отклоняться от темы :)
  • https://t.me/clickhouse_ru
    @1695040889 #265247 11:59 AM, 10 Apr 2022
    Ну, с учетом того, как клиент тормозить иногда начинает, вролне себе тема для обсуждения.
  • @olehdudkin #265248 12:01 PM, 10 Apr 2022
    Не вижу, как предполагаемые навыки предполагаемой светы могут в этом помочь
  • @olehdudkin #265249 12:01 PM, 10 Apr 2022
    а по поводу банов - да, пожалуйста, кого попросить нужно?
  • бан само собой, но он не сразу прилетает. А вот реакции все это время раздражают... так как ТГ дает уведомление..
  • @olehdudkin #265251 12:02 PM, 10 Apr 2022
    Да, и притормаживает
  • https://t.me/clickhouse_ru
    А, сорян, прошу не обращать внимания.
  • да не особо, Read all reactions - и все ок
  • request: "INSERT INTO logsFpPair FORMAT JSONEachRow\n{\"userId\":\"userId_6\",\"fingerId\":\"fingerId_6\",\"date\":\"2022-04-10\",\"dateTime\":\"2022-04-10 15:03:50\"};\n{\"userId\":\"userId_2\",\"fingerId\":\"fingerId_2\",\"date\":\"2022-04-10\",\"dateTime\":\"2022-04-10 15:03:50\"};\n{\"userId\":\"userId_5\",\"fingerId\":\"fingerId_5\",\"date\":\"2022-04-10\",\"dateTime\":\"2022-04-10 15:03:50\"};\n{\"userId\":\"userId_3\",\"fingerId\":\"fingerId_3\",\"date\":\"2022-04-10\",\"dateTime\":\"2022-04-10 15:03:50\"};\n{\"userId\":\"userId_8\",\"fingerId\":\"fingerId_8\",\"date\":\"2022-04-10\",\"dateTime\":\"2022-04-10 15:03:50\"};\n{\"userId\":\"userId_0\",\"fingerId\":\"fingerId_0\",\"date\":\"2022-04-10\",\"dateTime\":\"2022-04-10 15:03:50\"};\n{\"userId\":\"userId_9\",\"fingerId\":\"fingerId_9\",\"date\":\"2022-04-10\",\"dateTime\":\"2022-04-10 15:03:50\"};\n{\"userId\":\"userId_7\",\"fingerId\":\"fingerId_7\",\"date\":\"2022-04-10\",\"dateTime\":\"2022-04-10 15:03:50\"};\n{\"userId\":\"userId_1\",\"fingerId\":\"fingerId_1\",\"date\":\"2022-04-10\",\"dateTime\":\"2022-04-10 15:03:50\"};\n{\"userId\":\"userId_4\",\"fingerId\":\"fingerId_4\",\"date\":\"2022-04-10\",\"dateTime\":\"2022-04-10 15:03:50\"};"; response Code: 27. DB::ParsingException: Cannot parse input: expected 'eof' before: '{"userId":"userId_2","fingerId":"fingerId_2","date":"2022-04-10","dateTime":"2022-04-10 15:03:50"};\n{"userId":"userId_5","fingerId":"fingerId_5","date":"2022-04': While executing JSONEachRowRowInputFormat. (CANNOT_PARSE_INPUT_ASSERTION_FAILED) (version 22.3.3.44 (official build))
  • уже что-то
    видимо есть проблемы с eof (\n)
  • https://t.me/clickhouse_ru
    @1695040889 #265256 12:05 PM, 10 Apr 2022
    eol тогда уж
  • @olehdudkin #265257 12:05 PM, 10 Apr 2022
    Думаю, что там дело в ;
  • @olehdudkin #265258 12:06 PM, 10 Apr 2022
    видимо она терминирует парсинг
  • https://t.me/clickhouse_ru
    @1695040889 #265259 12:07 PM, 10 Apr 2022
    да, очень похоже
    "};\n{\"
  • @lekysey #265260 12:08 PM, 10 Apr 2022
    вопрос как решается данная проблема
    в сети ничего
    в issue у clickhouse-bulk (https://github.com/nikepan/clickhouse-bulk) ничего ровным счетом
    в старой версии 19.x проблема отсутствует
    в новой 22.3.3.44 проблема есть
    возможно есть параметры какие-нибудь?
    GitHub - nikepan/clickhouse-bulk: Collects many small inserts to ClickHouse and send in big inserts

    Collects many small inserts to ClickHouse and send in big inserts - GitHub - nikepan/clickhouse-bulk: Collects many small inserts to ClickHouse and send in big inserts

  • https://t.me/clickhouse_ru
    @Alexey_037 #265261 12:14 PM, 10 Apr 2022
    Коллеги, общий вопрос.
    Как бы вы решали и какими движками момент, когда ваши данные должны требовать обновления/удаления за любой промежуток времени? Допустим, что размер таблицы не превышает 1 млрд. строк.
    Необходимо - обеспечить максимальную производительность запросов (выбрать всё, сделать какую либо агрегацию и т.д.) и более-менее допустимую актуальность данных?
  • @olehdudkin #265262 12:15 PM, 10 Apr 2022
    Я бы постарался выяснить откуда такое требование
  • @olehdudkin #265263 12:15 PM, 10 Apr 2022
    про удаление понятно
  • @olehdudkin #265264 12:15 PM, 10 Apr 2022
    а вот обновления рандомных данных в миллиарте строк - это странно
  • @olehdudkin #265265 12:15 PM, 10 Apr 2022
    Можете CollapsingMergeTree попробовать
  • @olehdudkin #265266 12:16 PM, 10 Apr 2022
    Но про обновление - тут что-то очень странное
  • https://t.me/clickhouse_ru
    @Alexey_037 #265267 12:16 PM, 10 Apr 2022
    Ну такая бизнес логика, что поделать...
  • @olehdudkin #265268 12:17 PM, 10 Apr 2022
    Еще раз пообщаться с продакт менеджером?
  • @olehdudkin #265269 12:17 PM, 10 Apr 2022
    можете юзкейс описать?
  • @olehdudkin #265270 12:17 PM, 10 Apr 2022
    Почему вы в сторону CH смотрете?
  • @olehdudkin #265271 12:17 PM, 10 Apr 2022
    А не Postgress например?
  • разбить на партиции по какому нибудь признаку чтобы группировать обновления, и обновлять спокойно через collapsingMT
  • https://t.me/clickhouse_ru
    @Alexey_037 #265273 12:18 PM, 10 Apr 2022
    Чтобы было понятней - есть, к примеру, мед. карта, наша с вами. Приходит пакет данных, в котором описано всё, имеющее отношение к пациенту. Пакет занимает, например, 10 записей. Через день приходит новый пакет, который уточняет сведения. Следовательно, предыдущие данные надо обновить.
  • https://t.me/clickhouse_ru
    @minto_o #265274 12:19 PM, 10 Apr 2022
    Можно задать excat index или order by.
    Нужно сохранить данные точно отсортированными,
    чтобы потом достать их через LIMIT OFFSET (не сработало даже на обычном Int32 ид) а хотелось бы индекс посложнее
    если вызывать дополнительно ORDER BY как-то долго получается
  • https://t.me/clickhouse_ru
    Потому что PG на select count (distinct ...) просто умирает на таких объъемах
  • @olehdudkin #265276 12:20 PM, 10 Apr 2022
    Значит храните count distinct отдельно?
  • https://t.me/clickhouse_ru
    @Alexey_037 #265277 12:20 PM, 10 Apr 2022
    а когда надо сделать помимо отбора уникальных значений, еще и доп. агрегации, то PG нервно курит
  • @olehdudkin #265278 12:21 PM, 10 Apr 2022
    Ну тогда то, что вам посоветовали
  • @olehdudkin #265279 12:21 PM, 10 Apr 2022
    или хитрый финт с argMax
  • @olehdudkin #265280 12:21 PM, 10 Apr 2022
    и не делать никаки апдейтов
  • https://t.me/clickhouse_ru
    @Alexey_037 #265281 12:22 PM, 10 Apr 2022
    Выборки слишком разнообразные..... В этом вся беда...
  • https://t.me/clickhouse_ru
    Вы точно не любите кошек? Может быть Вы их просто готовить не умеете?
  • https://t.me/clickhouse_ru
    Если вы сможете сделать count distinct на postgres на 150 000 000 данных за 1 секунду, то подскажите )))
  • https://t.me/clickhouse_ru
    @Alexey_037 #265284 12:23 PM, 10 Apr 2022
    это же лишь 1 пример )
  • https://t.me/clickhouse_ru
    Точно не умеете.
  • https://t.me/clickhouse_ru
    @Alexey_037 #265286 12:23 PM, 10 Apr 2022
    ну так я и говорю, подскажите )
  • https://t.me/clickhouse_ru
    @1695040889 #265287 12:23 PM, 10 Apr 2022
    Даже вопрос задать нормально не можете.
  • https://t.me/clickhouse_ru
    @1695040889 #265288 12:24 PM, 10 Apr 2022
    На каких типах вы хотите 150 миллионов дистинкта почситать?
  • https://t.me/clickhouse_ru
    @Alexey_037 #265289 12:24 PM, 10 Apr 2022
    На разных. От UInt 16 до строки. Все зависит от задачи.
  • https://t.me/clickhouse_ru
    @1695040889 #265290 12:25 PM, 10 Apr 2022
    Начнем с того, что ПГ не умеет в unsigned из коробки.
  • https://t.me/clickhouse_ru
    Я задал общий вопрос, и вроде бы даже обозначил это в вопросе.
  • https://t.me/clickhouse_ru
    Я про КХ.
  • https://t.me/clickhouse_ru
    @1695040889 #265293 12:26 PM, 10 Apr 2022
    КХ - это вообще отдельная тема, можно, например, количество шардов в кластере упомянуть.
  • https://t.me/clickhouse_ru
    @Alexey_037 #265294 12:27 PM, 10 Apr 2022
    Я понимаю, что у вас может быть более богатый опыт. Но я для того и задал вопрос в этом чате, чтобы мне подсказали направление...
  • несколько разных БД с асинхронной репликацией между ними. постгрес для мастер данных и клик для аналитических запросов, например.
  • https://t.me/clickhouse_ru
    При чем тут шарды, кластеры? Представим, что у нас 1 сервер без кластеризации и прочее. ПРосто тупо 1 сервер и описанная выше задача.
  • https://t.me/clickhouse_ru
    Именно для аналитики КХ и используется.
  • @olehdudkin #265298 12:28 PM, 10 Apr 2022
    так у вас есть технические констрейнты?
  • @olehdudkin #265299 12:29 PM, 10 Apr 2022
    то, что вы описали
  • @olehdudkin #265300 12:29 PM, 10 Apr 2022
    это не аналитика
  • звучит, как будто атрибуты пациента нужно вынести в отдельную таблицу, и ее поддерживать через scd 1 / scd 2, а в таблицу метрик просто добавлять новые строки с нужным id пациента
  • @olehdudkin #265302 12:30 PM, 10 Apr 2022
    Тут попытка решить две задачи одной таблицей
  • @olehdudkin #265303 12:30 PM, 10 Apr 2022
    чего делать не стоит
  • @olehdudkin #265304 12:31 PM, 10 Apr 2022
    Вам нужно
    1) Хранить данные пациентов (видимо в нескольки таблицах)
    2) Хранить OLAP данные для аналитики
  • @olehdudkin #265305 12:31 PM, 10 Apr 2022
    это могут быт ьразные сервера, и разные базы данных
  • @olehdudkin #265306 12:31 PM, 10 Apr 2022
    как вариант PG + CH
  • https://t.me/clickhouse_ru
    Ну, Вы понимаете, что для UInt16 и String со средней длинной в пару сотен байт потребуются совершенно разные объемы памяти?
  • @olehdudkin #265308 12:32 PM, 10 Apr 2022
    И в CH - String не такой как у остальных
  • @olehdudkin #265309 12:32 PM, 10 Apr 2022
    вам нужно понимать кардинальность самому
  • @sergey_alaev #265310 12:32 PM, 10 Apr 2022
    @Alexey_037 вам, наверное, нужно уточнить вопрос
  • @olehdudkin #265311 12:33 PM, 10 Apr 2022
    Еще есть Redis - если совсем не получается через базу, именно, чтобы считать
  • https://t.me/clickhouse_ru
    Изначально так и есть, данные хранятся в PG в куче таблиц. Затем они сливаются в 1 таблицу в КХ по некоторым алгоритмам. В итоге получаем широкую таблицу, позволяющую производить вычисления в разных разрезах, не прибегая к JOIN разных справочников и других таблиц.
  • @olehdudkin #265314 12:34 PM, 10 Apr 2022
    так подождите, если у вас оно уже есть, в чем вопрос?
  • https://t.me/clickhouse_ru
    @rasstr0en #265315 12:34 PM, 10 Apr 2022
    Кому бот полайкал посты легче всего выйти войти
  • https://t.me/clickhouse_ru
    @Alexey_037 #265316 12:35 PM, 10 Apr 2022
    Вопрос в скорости. Сейчас, чтобы обеспечить актуальность данных + реализовать псевдо операции с удалением/изменением, используется придуманная схема. ЧТо то вроде такого.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Long tap на лайк и прочитать всё
  • Вы очень абстрактно задаете вопрос. Нужны более конкретные запросы с более конкретной структурой данных
  • @olehdudkin #265320 12:40 PM, 10 Apr 2022
    Скорость чего? uniq()? uniqExact()? Какие требования к точности? к лагу в данных?
  • @olehdudkin #265321 12:40 PM, 10 Apr 2022
    можно ли ждать Collapse или нет?
  • @olehdudkin #265322 12:41 PM, 10 Apr 2022
    если это для аналитики - то подразумевается, что вам не нужна 100% точность, и если что, можно подождать пока данные схлопнутся
  • https://t.me/clickhouse_ru
    Именно. Это и было посылом к вопросу. Попробую сейчас расписать более конкретно.
  • https://t.me/clickhouse_ru
    @Alexey_037 #265324 12:48 PM, 10 Apr 2022
    Вводные данные:
    1 сервер. Без реплик, шардов и т.д.
    Таблица примерно на 150-200 млн. записей (пока). Около 200 столбцов.
    Запросы - самые разнообразные, по любому набору столбцов. Отсюда минус - сложное партиционирование, не всегда возможно сделать оптимальное.
    Требования - выводить результаты агрегационных запросов (sum, uniqExact) в нужных разрезах и, самое главное, за время, не превышающее 1-3 секунд.
    Дополнительный минус - данные требуют обновлений/удалений. Удаления редки, но обновления могут быть частыми.

    В итоге требуется - иметь более-менее приемлемую актуальность данных в каждый момент времени + указанную выше скорость выполнения запросов.
  • https://t.me/clickhouse_ru
    @websitelytics #265325 12:48 PM, 10 Apr 2022
    Кто нибудь работает с object(json)? Можно ли динамическую колонку сделать nullable?
  • https://t.me/clickhouse_ru
    ну, уже хорошо, что о милисекундах речь не идет
  • https://t.me/clickhouse_ru
    @Alexey_037 #265327 12:50 PM, 10 Apr 2022
    не не, речь не про милисекунды. Допустимо отставание вплоть до часа/дня.
  • https://t.me/clickhouse_ru
    @1695040889 #265328 12:51 PM, 10 Apr 2022
    а как же 1-3 секунды?
  • https://t.me/clickhouse_ru
    @Alexey_037 #265329 12:51 PM, 10 Apr 2022
    я про лаги в актуальности данных, не про время запроса )
  • https://t.me/clickhouse_ru
    @1695040889 #265330 12:52 PM, 10 Apr 2022
    а, так Вам еще и из пг в кх надо в рилтайме передавать?
  • https://t.me/clickhouse_ru
    @Alexey_037 #265331 12:53 PM, 10 Apr 2022
    не, про передачу из ПГ в КХ речь не идет, считаем по умолчанию, что данные поступают нормально.
  • https://t.me/clickhouse_ru
    @1695040889 #265332 12:54 PM, 10 Apr 2022
    Не понимаю, так о какой задержке мы говорим?
  • https://t.me/clickhouse_ru
    @Alexey_037 #265333 12:54 PM, 10 Apr 2022
    Там целая система обработки данных в ПГ/Kafka и т.п. и потом система укладывает данные в клик батчами.
  • @olehdudkin #265334 12:55 PM, 10 Apr 2022
    Ну вообщем делайте Collapsing Merge tree и радуйтесь
  • https://t.me/clickhouse_ru
    @1695040889 #265335 12:55 PM, 10 Apr 2022
    Вероятно, можно применить projections. Но точного ответа никто не даст, поскольку непонятно, что именно вы делаете и где проблема.
  • https://t.me/clickhouse_ru
    @Alexey_037 #265336 12:56 PM, 10 Apr 2022
    Проекции пробовали. Увы, прироста скорости не дало...
  • @olehdudkin #265337 12:56 PM, 10 Apr 2022
    А какая сейчас скорость?
  • @olehdudkin #265338 12:56 PM, 10 Apr 2022
    и можете дать пример запроса?
  • https://t.me/clickhouse_ru
    Тоже пробовали. Получаем очень плохую актуальность данных. Пока идут мержи, прям совсем неактуально получается :(
  • https://t.me/clickhouse_ru
    Минуту
  • @olehdudkin #265341 12:57 PM, 10 Apr 2022
    Так, мы ж про это говорили, что если аналитика - то терпимо
  • @olehdudkin #265342 12:58 PM, 10 Apr 2022
    Можете сделать крон который форсит коллапс
  • @olehdudkin #265343 12:58 PM, 10 Apr 2022
    Если совсем тяжко - SELECT FINAL
  • @olehdudkin #265344 12:58 PM, 10 Apr 2022
    но это прям безысходность когда
  • https://t.me/clickhouse_ru
    FINAL сильно сервер грузит. крон помогает, но опять же дикая нагрузка...
  • @olehdudkin #265346 12:59 PM, 10 Apr 2022
    Так вы хотите, чтобы сервер простаивал и при этом быстро отрабатывал?
  • https://t.me/clickhouse_ru
    Так может быть запретить мержи после определенного объема? Или СХД другую выбрать?
  • @olehdudkin #265348 01:00 PM, 10 Apr 2022
    горизонтально масштабируйте, репликация, кэш, предаггрегация, в конце концов :)
  • @olehdudkin #265349 01:00 PM, 10 Apr 2022
    Покажите хоть один запрос :)
  • https://t.me/clickhouse_ru
    Сдается мне, что троллинг это :(
  • https://t.me/clickhouse_ru
    @Alexey_037 #265351 01:01 PM, 10 Apr 2022
    Запросы примерно такие
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @1695040889 #265353 01:01 PM, 10 Apr 2022
    Быстро, качественно, недорого.
  • https://t.me/clickhouse_ru
    Алексей, я не потроллить пришел, а спросить совета. Может, вы мне тупо ткнете в какое то место и я увижу причину своих проблем. На троллинг у меня нет времени.
  • @olehdudkin #265355 01:02 PM, 10 Apr 2022
    А вы уверены, что вам uniqExact нужен?
  • @olehdudkin #265356 01:02 PM, 10 Apr 2022
    какой развал схождение без него?
  • https://t.me/clickhouse_ru
    @Alexey_037 #265357 01:02 PM, 10 Apr 2022
    да
  • @olehdudkin #265358 01:03 PM, 10 Apr 2022
    это был риторический вопрос, ответ скорее всего "нет"
  • @olehdudkin #265359 01:03 PM, 10 Apr 2022
    если у вас лаг в данных
  • https://t.me/clickhouse_ru
    Вам же предложили горизонтальное масштабирование и про смену СХД подумать.
  • @olehdudkin #265361 01:03 PM, 10 Apr 2022
    о каком экзакте может идти речь?
  • https://t.me/clickhouse_ru
    огромный. Таблицы денормализованы, и дублей строк в определенных разрезах очень много
  • https://t.me/clickhouse_ru
    @Alexey_037 #265363 01:04 PM, 10 Apr 2022
    Коллеги, если бы всё было так просто, я бы не обратился в сообщество за советом )
  • @olehdudkin #265364 01:04 PM, 10 Apr 2022
    Слуашйте, а вы их всегда одним запросом получаете?
  • @olehdudkin #265365 01:05 PM, 10 Apr 2022
    или отдельно тестировали?
  • https://t.me/clickhouse_ru
    Прежде чем делать масштабирование, надо изучить проблему от и до. Можно любую проблему размазать по куче серверов и получить хорошее время отклика запросов. Но надо сначала на минимуме выжать максимум производительности и потом уже расширяться...
  • https://t.me/clickhouse_ru
    Вот только не нужно меня в этом убеждать, я вообще сторонник выжать все до процента производительности. А потом мне рассказывают о том, что нагрузка выше 60% есть следствие неверного выбора КТС.
  • @olehdudkin #265368 01:08 PM, 10 Apr 2022
    как у вас GROUP By выглядит
  • @olehdudkin #265369 01:08 PM, 10 Apr 2022
    Вы что-то явно не то делаете, судя по запросу
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Это как раз пример предагрегата, весь запрос выполняется примерно за 15 секунд...
  • @olehdudkin #265372 01:11 PM, 10 Apr 2022
    А что такое vmcl_array?
  • https://t.me/clickhouse_ru
    Так я и не убеждаю же ) Я пытаюсь найти решение проблемы, не уходя в сторону масштабирования серверов. Возможно, есть ошибки, их то я и пытаюсь найти..
  • @olehdudkin #265374 01:12 PM, 10 Apr 2022
    вы можете методом исключение определить какая колонка в groupBY больше всех проблем создает?
  • https://t.me/clickhouse_ru
    Это одно из полей (Array(UInt32)), по которому нужна группировка.
  • https://t.me/clickhouse_ru
    Да, это требуется для вывода неких "счетчиков" на экран..
  • @olehdudkin #265377 01:14 PM, 10 Apr 2022
    А чей-то у вас where нету?
  • https://t.me/clickhouse_ru
    они в IF условиях в uniqExact
  • @olehdudkin #265379 01:15 PM, 10 Apr 2022
    т.е. вы сделали 15 запросов в одном и удивляетесь почему он отрабатывает 15 секунд?
  • https://t.me/clickhouse_ru
    Беда в том, что даже 1 запрос вида
    uniqExactIf(sender_message_id, ((sender_message_vmcl = 1))) AND (sender_message_client_datetime IS NOT NULL))
    отрабатывает за 4 секунды.
    И я пытаюсь найти проблему, из-за чего это может быть.
  • @olehdudkin #265381 01:17 PM, 10 Apr 2022
    тут грустный ответ - изза всего. Array поля чего только стоят
  • проблема в uniqExact) используйте uniq и будет вам счастье
  • https://t.me/clickhouse_ru
    Матвьюхи
  • @olehdudkin #265384 01:17 PM, 10 Apr 2022
    У вас индексы есть?
  • https://t.me/clickhouse_ru
    uniq это слишком приближенно, к сожалению...
  • @olehdudkin #265386 01:18 PM, 10 Apr 2022
    Тот факт, что вы пересчитываете все каждый раз, нет никаких границ по дате и все одним запросом, с группировкой по Array полю...
  • @olehdudkin #265387 01:18 PM, 10 Apr 2022
    Что там с индексами?
  • обычно точность в районе 99.5%
  • https://t.me/clickhouse_ru
    Есть. Как те, что в order by таблицы, так и доп. созданные.
  • https://t.me/clickhouse_ru
    @Alexey_037 #265390 01:19 PM, 10 Apr 2022
    сейчас проверю скорость запрос и результаты с uniqExact и просто uniq... Минутку
  • @olehdudkin #265391 01:22 PM, 10 Apr 2022
    Вообще, конечно, есть вариант решения - выбрать массивы айдишников по каждому отдельному условию, и посчитать arrayUniq по их пересечениям и объединениям поубирав ваши AND и OR
  • с uniqExact вам проекции/мат вью особо не помогут, надо будет в любом случае хранить все данные.
  • https://t.me/clickhouse_ru
    Не особо помогает...
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @minto_o #265395 01:25 PM, 10 Apr 2022
    как можно быстро вытягивать данные из КХ если идет обращение к одной той же таблице?
    есть таблица на 500 миллионов, нужно вытянуть с нее кусками данные по 10
    SELECT * FROM aggregation
    ORDER BY id, type, offer, codes
    LIMIT 10_000_000 OFFSET 10_000_000;
    на графике трафик с БД. Видно, что ждем данные из-за выполнения запроса

    в DDL таблице ORDER BY на эти же поля есть
    Уточнение, данные хочу получить в C#. Net Framework 4.8
  • @olehdudkin #265396 01:25 PM, 10 Apr 2022
    Падаждите, а айдишниуки у вас строки чтоли?
  • https://t.me/clickhouse_ru
    UUID
  • https://t.me/clickhouse_ru
    вам наверное хоть что-то скрывать, что у вас на скринах

    вдруг что-то от Минздрава увидим
  • https://t.me/clickhouse_ru
    @Alexey_037 #265399 01:27 PM, 10 Apr 2022
    Не увидите, не переживайте ))
  • а запросы всегда по полной таблице? Без фильтров?
  • https://t.me/clickhouse_ru
    Увы. Но так....
  • @olehdudkin #265402 01:28 PM, 10 Apr 2022
    3 гига - это только массив айдишников
  • https://t.me/clickhouse_ru
    show create table покажете?
  • https://t.me/clickhouse_ru
    @Alexey_037 #265404 01:29 PM, 10 Apr 2022
    Столбцы показывать?
  • https://t.me/clickhouse_ru
    @Alexey_037 #265405 01:29 PM, 10 Apr 2022
    там просто их тонна
  • https://t.me/clickhouse_ru
    @1695040889 #265406 01:30 PM, 10 Apr 2022
    Просто интересно, скольку у Вас nullable столбцов
  • https://t.me/clickhouse_ru
    если кратко то так
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @Alexey_037 #265409 01:30 PM, 10 Apr 2022
    nullable Только даты
  • https://t.me/clickhouse_ru
    @Alexey_037 #265410 01:31 PM, 10 Apr 2022
    CREATE TABLE pg_analitic.semd_connection_vimis
    (
    `sender_message_vmcl_array` Array(UInt16) DEFAULT [] COMMENT 'Направления оказания медицинской помощи в сообщении',
    `sender_nmrc` UInt8 COMMENT 'Признак контрагентов являющихся НМИЦ',
    `sender_message_id` UUID COMMENT 'Уникальный идентификатор принятого сообщения',
    `sender_system_code` String COMMENT 'Код контрагента',
    `sender_system_name` String COMMENT 'Наименование контрагента',
    `sender_territory_tree_id` LowCardinality(String) COMMENT 'Текущая иерархия территории контрагента',
    `sender_territory_tree_name` LowCardinality(String) COMMENT 'Наименование территории контрагента',
    `sender_doc_type_code` UInt16 COMMENT 'Код типа документа в сообщение',
    `sender_doc_type_name` LowCardinality(String) COMMENT 'Наименование типа документа в сообщении',
    `sender_message_client_datetime` DateTime64(3) COMMENT 'Дата и время приема сообщения в UTC',
    `sender_message_status` Enum8('Receive_Ok' = 1, 'XSD_Ok' = 2, 'FLK_Ok' = 3, 'SaveToDB_Ok' = 4, 'XSD_Err' = 5, 'FLK_Err' = 6, 'SaveToDB_Err' = 7) COMMENT 'Состояние обработки сообщения',
    `sender_stage_description` String DEFAULT '' COMMENT 'Детализация по состоянию обработки сообщения',
    `sender_stage_description_alias` String DEFAULT '' COMMENT 'Детализация по состоянию обработки сообщения (алиас)',
    `sender_mo_id` UInt64 DEFAULT 0 COMMENT 'ID МО в СЭМД из EHR',
    `sender_mo_oid` String DEFAULT '' COMMENT 'OID МО из sms_log.income_message',
    `sender_mo_name_short` String DEFAULT '' COMMENT 'Cокращенное наименование МО в СЭМД из EHR',
    `sender_mo_delete_date` Nullable(DateTime64(3)) COMMENT 'Дата удаления МО в ФРМО',
    `sender_mo_mcl` Array(UInt16) DEFAULT [] COMMENT 'Признак профиля',
    `sender_mo_mcl_subline` Array(UInt16) DEFAULT [] COMMENT 'Код профиля ОПМ',
    `sender_mo_mcl_subline_name` LowCardinality(String) DEFAULT '' COMMENT 'Ключ - код профиля ОМП, значение - наименование',
    `sender_mo_mcl_subline_filter_code` Array(Array(UInt16)) DEFAULT [] COMMENT 'Код фильтра профиля ОПМ',
    `sender_mo_territory_tree_id` LowCardinality(String) DEFAULT '' COMMENT 'Иерархия территории МО',
    `sender_mo_region_territory_tree_id` LowCardinality(String) DEFAULT '' COMMENT 'Идентификатор региона МО',
    `sender_mo_region_territory_tree_code` LowCardinality(String) DEFAULT '' COMMENT 'Код региона МО',
    `sender_mo_region_territory_tree_name` LowCardinality(String) DEFAULT '' COMMENT 'Наименование региона МО',
    `sender_mo_fd_territory_tree_id` LowCardinality(String) DEFAULT '' COMMENT 'Идентификатор федерального округа МО',
    `sender_mo_fd_territory_tree_code` LowCardinality(String) DEFAULT '' COMMENT 'Код федерального округа МО',
    `sender_mo_fd_territory_tree_name` LowCardinality(String) DEFAULT '' COMMENT 'Наименование федерального округа МО',
    `semd_doc_ehr_id` UInt64 DEFAULT 0 COMMENT 'Уникальный идентификатор СЭМД из EHR',
    `semd_doc_type_code` UInt64 DEFAULT 0 COMMENT 'Код типа документа СЭМД из EHR',
    `semd_doc_type_name` LowCardinality(String) DEFAULT '' COMMENT 'Наименование типа документа СЭМД из EHR',
    `semd_mo_id` UInt64 DEFAULT 0 COMMENT 'ID МО в СЭМД из EHR',
    `semd_mo_oid` String DEFAULT '' COMMENT 'OID МО в СЭМД из EHR',
    `semd_mo_name_short` String DEFAULT '' COMMENT 'Cокращенное наименование МО в СЭМД из EHR',
    `semd_mo_delete_date` DateTime64(3) COMMENT 'Дата удаления МО в ФРМО',
    `semd_mo_mcl` Array(UInt16) DEFAULT [] COMMENT 'Признак профиля',
    `semd_mo_mcl_subline` Array(UInt16) DEFAULT [] COMMENT 'Код профиля ОПМ',
    `semd_mo_mcl_subline_name` LowCardinality(String) DEFAULT '' COMMENT 'Ключ - код профиля ОМП, значение - наименование',
    `semd_mo_mcl_subline_filter_code` Array(Array(UInt16)) DEFAULT [] COMMENT 'Код фильтра профиля ОПМ',
    `semd_mo_territory_tree_id` LowCardinality(String) DEFAULT '' COMMENT 'Иерархия территории МО',
    `semd_mo_region_territory_tree_id` LowCardinality(String) DEFAULT '' COMMENT 'Идентификатор региона МО',
  • https://t.me/clickhouse_ru
    @Alexey_037 #265411 01:31 PM, 10 Apr 2022

    `semd_mo_region_territory_tree_code` LowCardinality(String) DEFAULT '' COMMENT 'Код региона МО',
    `semd_mo_region_territory_tree_name` LowCardinality(String) DEFAULT '' COMMENT 'Наименование региона МО',
    `semd_mo_fd_territory_tree_id` LowCardinality(String) DEFAULT '' COMMENT 'Идентификатор федерального округа МО',
    `semd_mo_fd_territory_tree_code` LowCardinality(String) DEFAULT '' COMMENT 'Код федерального округа МО',
    `semd_mo_fd_territory_tree_name` LowCardinality(String) DEFAULT '' COMMENT 'Наименование федерального округа МО',
    `semd_first_mo` UInt8 DEFAULT 0 COMMENT 'Признак первого сообщения от МО в EHR (СЭМД успешно принят)',
    `semd_first_version` UInt8 DEFAULT 0 COMMENT 'Признак первой версии сообщения в EHR (СЭМД успешно принят)',
    `semd_version` String DEFAULT '' COMMENT 'Версия СЭМД в EHR',
    `semd_date` Nullable(DateTime64(3)) COMMENT 'Дата и время СЭМД в ВИМИС в EHR',
    `semd_patient_id` UInt64 DEFAULT 0 COMMENT 'ID пациента в СЭМД в EHR',
    `semd_patient_info_id` UInt64 DEFAULT 0 COMMENT 'ID пациента из МП',
    `semd_first_patient` UInt8 DEFAULT 0 COMMENT 'Признак первого СЭМД по пациенту в EHR (СЭМД успешно принят)',
    `semd_patient_status_mcl` Array(UInt16) DEFAULT [] COMMENT 'Направление ВИМИС для пациента',
    `semd_patient_status_mcl_name` Array(LowCardinality(String)) DEFAULT [] COMMENT 'Наименование направления ВИМИС для пациента',
    `semd_patient_status_submcl` Array(Array(LowCardinality(UInt16))) DEFAULT [] COMMENT 'Профиль ОМП ВИМИС для пациента',
    `semd_patient_status_submcl_name` Array(Array(LowCardinality(String))) DEFAULT [] COMMENT 'Наименование профиля ОМП ВИМИС для пациента',
    `semd_patient_status_submcl_date_begin` Nullable(DateTime64(3)) COMMENT 'Дата начала действия профиля ОМП ВИМИС для пациента',
    `semd_patient_status_submcl_date_end` Nullable(DateTime64(3)) COMMENT 'Дата окончания действия профиля ОМП ВИМИС для пациента',
    `semd_patient_registration_tree_id_code` LowCardinality(String) DEFAULT '' COMMENT 'Иерархия территории постоянной регистрации',
    `semd_patient_registration_tree_name` LowCardinality(String) DEFAULT '' COMMENT 'Наименование территории постоянной регистрации',
    `sender_message_vmcl` UInt16 DEFAULT 0 COMMENT 'Направления оказания медицинской помощи в сообщении (одно значение)',
    `tx_id` UInt64 DEFAULT toUInt64(now64()) COMMENT 'Столбец с ID транзакции, ссылка на pg_analitic.onko_construct_disease_events',
    `raw_id` UUID MATERIALIZED generateUUIDv4() COMMENT 'Идентификатор строки',
    `date_modify` DateTime64(3) MATERIALIZED now64() COMMENT 'Дата создания или изменения записи',
    `hash_date` String DEFAULT '' COMMENT 'Хэш даты',
    `sender_mo_mcl_subline_filter_name` Array(Array(LowCardinality(String))) DEFAULT [] COMMENT 'Ключ - код фильтра профиля ОМП, значение - наименование',
    `semd_mo_mcl_subline_filter_name` Array(Array(LowCardinality(String))) DEFAULT [] COMMENT 'Ключ - код фильтра профиля ОМП, значение - наименование',
    `semd_mo_dept_code` LowCardinality(String) DEFAULT '' COMMENT 'Код ведомственной принадлежности МО',
    `semd_mo_dept_name` LowCardinality(String) DEFAULT '' COMMENT 'Ведомственная принадлежность МО',
    `semd_mo_organization_type_code` LowCardinality(String) DEFAULT '' COMMENT 'Код типа МО',
    `semd_mo_organization_type_name` LowCardinality(String) DEFAULT '' COMMENT 'Наименование типа МО',
    `semd_mo_agency_kind_code` LowCardinality(String) DEFAULT '' COMMENT 'Идентификатор вида деятельности МО',
    `semd_mo_agency_kind_name` LowCardinality(String) DEFAULT '' COMMENT 'Наименование вида деятельности МО',
    `semd_mo_agency_kind_code_spec` String DEFAULT '' COMMENT 'Идентификатор вида деятельности МО по спецгруппировке',
    `semd_mo_agency_kind_name_spec` String DEFAULT '' COMMENT 'Наименование вида деятельности МО по спецгруппировке',
    `semd_mo_agency_profile_code` LowCardinality(String) DEFAULT '' COMMENT 'Идентификатор профиля деятельности МО',
    `semd_mo_agency_profile_name` LowCardinality(String) DEFAULT '' COMMENT 'Наименование профиля деятельности МО',
  • https://t.me/clickhouse_ru
    @Alexey_037 #265412 01:31 PM, 10 Apr 2022

    `semd_mo_level_code` LowCardinality(String) DEFAULT '' COMMENT 'Идентификатор уровня МО',
    `semd_mo_level_name` LowCardinality(String) DEFAULT '' COMMENT 'Наименование уровня МО',
    `semd_mo_territory_code` LowCardinality(String) DEFAULT '' COMMENT 'Идентификатор территориального признака МО',
    `semd_mo_territory_name` LowCardinality(String) DEFAULT '' COMMENT 'Наименование территориального признака МО',
    `semd_ehr_vmcl_array` Array(UInt16) DEFAULT [] COMMENT 'Направление определенное в EHR ВИМИС',
    `error_code_materialized` String MATERIALIZED multiIf((sender_message_status IN (5)) AND sender_nmrc AND (semd_doc_ehr_id = 0), 'XSD_NMIC', (sender_message_status IN (6, 7)) AND sender_nmrc AND (semd_doc_ehr_id = 0), 'FLK_NMIC', (sender_message_status IN (5)) AND (NOT sender_nmrc) AND (semd_doc_ehr_id = 0), 'XSD', (sender_message_status IN (6, 7)) AND (NOT sender_nmrc) AND (semd_doc_ehr_id = 0), 'FLK', ''),
    `error_name_materialized` String MATERIALIZED multiIf((sender_message_status IN (5)) AND sender_nmrc AND (semd_doc_ehr_id = 0), 'Ошибка валидации по XSD схеме переданных НМИЦ', (sender_message_status IN (6, 7)) AND sender_nmrc AND (semd_doc_ehr_id = 0), 'Форматно-логический контроль переданных НМИЦ', (sender_message_status IN (5)) AND (NOT sender_nmrc) AND (semd_doc_ehr_id = 0), 'Ошибка валидации по XSD схеме переданных регионами', (sender_message_status IN (6, 7)) AND (NOT sender_nmrc) AND (semd_doc_ehr_id = 0), 'Форматно-логический контроль переданных регионами', '')
    )
    ENGINE = MergeTree
    PARTITION BY sender_territory_tree_id
    ORDER BY (sender_mo_fd_territory_tree_id, sender_territory_tree_id, sender_mo_territory_tree_id, semd_mo_territory_tree_id, semd_patient_id, sender_message_id)
    SETTINGS index_granularity = 8192
  • https://t.me/clickhouse_ru
    @Alexey_037 #265413 01:31 PM, 10 Apr 2022
    заспамил чат...
  • @olehdudkin #265414 01:32 PM, 10 Apr 2022
    Как часто этот запрос отрабатывает?
  • https://t.me/clickhouse_ru
    @Alexey_037 #265415 01:33 PM, 10 Apr 2022
    в максимальном варианте - хоть ежесекундно... Зависит от количества пользователей..
  • https://t.me/clickhouse_ru
    @1695040889 #265416 01:34 PM, 10 Apr 2022
    А Array(Array(LowCardinality(String))) как работает? Реально как LowCardinality?
  • @olehdudkin #265417 01:34 PM, 10 Apr 2022
    сорян, но я не верю в ваш юзкейс. Не вижу как такой групбай может где-то понядобится, еще и одним запросом
  • @olehdudkin #265418 01:34 PM, 10 Apr 2022
    либо вы хотите все приложение в один запрос захреначить
  • @olehdudkin #265419 01:35 PM, 10 Apr 2022
    либо я че-то не понимаю
  • https://t.me/clickhouse_ru
    @1695040889 #265420 01:36 PM, 10 Apr 2022
    Отсутствие возможности по дате фильтровать тоже как-то совсем странно выглядит.
  • https://t.me/clickhouse_ru
    Да. В LowCardinality участвуют данные, не имеющие более 100 уникальных значений
  • https://t.me/clickhouse_ru
    @1695040889 #265422 01:38 PM, 10 Apr 2022
    Вся история напоминает "я хочу странного, у меня не получается, помогите" или качественный троллинг.
  • @olehdudkin #265423 01:39 PM, 10 Apr 2022
    да, согласен
  • @olehdudkin #265424 01:39 PM, 10 Apr 2022
    чем дальше - тем больше это на троллинг похоже
  • @olehdudkin #265425 01:39 PM, 10 Apr 2022
    или где-то дырка между бизнесом и разработкой
  • @olehdudkin #265426 01:39 PM, 10 Apr 2022
    и кто-то чего-то не понял
  • @olehdudkin #265427 01:40 PM, 10 Apr 2022
    или не решился возразить ввиду хорошего финансирования :)
  • @olehdudkin #265428 01:40 PM, 10 Apr 2022
    юскейс непонятен от слова совсем
  • https://t.me/clickhouse_ru
    вообще это странное требование "потребность делать запросы ON CLUSTER с одного кластера на другой"

    но в принципе в чем проблема выдать права двум ACL на одну и туже ноду?
  • @olehdudkin #265430 01:40 PM, 10 Apr 2022
    и главное - он сем дальше. тем меньше похож на юзкейс для CH
  • https://t.me/clickhouse_ru
    бекап - рестор?
  • @olehdudkin #265432 01:42 PM, 10 Apr 2022
    @Alexey_037 Если вы все-таки не тролль, то уберите UUID - и замените н аром айдишники
  • @olehdudkin #265433 01:42 PM, 10 Apr 2022
    если будет мало - просто поставьте Redis - загоните все в битмапы
  • @olehdudkin #265434 01:43 PM, 10 Apr 2022
    и получите производительность меньше секунды
  • https://t.me/clickhouse_ru
    Блин, да что ж вы меня троллем то считаете )
    Есть глобальная всероссийская система. Она шлет в нашу систему XML документы. У нее в качестве ID используется UUID - уникальный идентификатор документа. Таких документов сотни миллионов и более. Физически невозможно присвоить им иные идентификаторы в виде простых числовых...
  • https://t.me/clickhouse_ru
    @Alexey_037 #265436 01:46 PM, 10 Apr 2022
    Мы обязаны хранить и использовать эти идентификаторы...
  • @olehdudkin #265437 01:46 PM, 10 Apr 2022
    Ничего подобного - сделайте словарь между UUID
  • @olehdudkin #265438 01:46 PM, 10 Apr 2022
    пока у вас там UUID - чуда не будет
  • @olehdudkin #265439 01:47 PM, 10 Apr 2022
    постгрес вам с удовольствием заменит эту приблуду на айдишники
  • @olehdudkin #265440 01:47 PM, 10 Apr 2022
    на этапе запихивания данных - подменяйте
  • @olehdudkin #265441 01:48 PM, 10 Apr 2022
    или вообще доверьте это кафке
  • https://t.me/clickhouse_ru
    @1695040889 #265442 01:48 PM, 10 Apr 2022
    today_date, today_date + toIntervalDay(-1)
  • @olehdudkin #265443 01:48 PM, 10 Apr 2022
    ага
  • @olehdudkin #265444 01:48 PM, 10 Apr 2022
    улыбнуло
  • https://t.me/clickhouse_ru
    @Alexey_037 #265445 01:49 PM, 10 Apr 2022
    Так, ладно, с UUID я принял в оборот, завтра будет обсуждать. Но что делать с кучей апдейтов? Брать CollapsingMergeTree и забить на актуальность данных?
  • https://t.me/clickhouse_ru
    Да, тут требуется вычислить данные за сегодня + вчера.
  • https://t.me/clickhouse_ru
    У меня тоже куча вопросов к разработчикам СМЭВ, только я это не тащу на всеобщее обозрение.
  • https://t.me/clickhouse_ru
    А при чем здесь это?
  • https://t.me/clickhouse_ru
    @Alexey_037 #265449 01:51 PM, 10 Apr 2022
    Здесь не всеобщее обозрение, а просьба помочь в решении проблемы. Часть я уже увидел, за что большое спасибо.
  • https://t.me/clickhouse_ru
    глобальная всероссийская система
    XML документы
    ID используется UUID
  • @olehdudkin #265451 01:52 PM, 10 Apr 2022
    Стоп, так у вас есть поле по дате?
  • https://t.me/clickhouse_ru
    Это не СМЭВ )) Я с ней тоже работал, но это не оно.
  • @olehdudkin #265453 01:52 PM, 10 Apr 2022
    Так а почему оно у вас не в Where?
  • https://t.me/clickhouse_ru
    Я в курсе
  • @olehdudkin #265455 01:52 PM, 10 Apr 2022
    И почему не под order by
  • https://t.me/clickhouse_ru
    Есть. Но в 99% случаев нужен отбор за все данные в БД.
  • https://t.me/clickhouse_ru
    @Alexey_037 #265457 01:53 PM, 10 Apr 2022
    Добавлял в order by - разницы в скорости выполнении запросов - 0.
  • @olehdudkin #265458 01:53 PM, 10 Apr 2022
    Какая-то трипота грибная, если честно. :)
  • https://t.me/clickhouse_ru
    я бы начал с отключения фичи
    input_format_parallel_parsing arg Enable parallel parsing for some data formats.
  • https://t.me/clickhouse_ru
    @Alexey_037 #265460 01:53 PM, 10 Apr 2022
    Не спорю )
  • @olehdudkin #265461 01:54 PM, 10 Apr 2022
    Хорошо, по самому UUID есть индекс?
  • @olehdudkin #265462 01:55 PM, 10 Apr 2022
    Попробуйте ради хохмы - сделать этот запрос только на половине айдищников
  • @olehdudkin #265463 01:55 PM, 10 Apr 2022
    и посмотрите - если прирост скоросе больше чем в 2 раза (а так должно быть), значит два запроса отдельно - быстрее чем один большой
  • https://t.me/clickhouse_ru
    @rasstr0en #265464 01:55 PM, 10 Apr 2022
    @TGtraffic2022 забаньте плиз
  • @olehdudkin #265465 01:55 PM, 10 Apr 2022
    делим на два до получения максимального эффекта
  • https://t.me/clickhouse_ru
    @Alexey_037 #265466 01:56 PM, 10 Apr 2022
    Индекс есть
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    последняя stable 23.3
    это какой баг у вас, возможно 22.2 сломана
    clickhouse-client -s
    Connection refused (localhost:9440)

    кстати у клиента и сервера абсолютно разные конфиги, то что вы меняете конфиг сервера никак не влияет на клиент.
    в конфиге клиента можно задать порт
  • @olehdudkin #265469 01:58 PM, 10 Apr 2022
    От такого индеса толку мало. Сколько реально уникальных пациентов?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @Alexey_037 #265471 02:00 PM, 10 Apr 2022
    Более 50%
  • При установке v21 clickhouse-client — secure идет корректно на 9440
  • https://t.me/clickhouse_ru
    replacingMergeTree + принудительный optimize + все запросы с final +optimize_skip_merged_partitions do_not_merge_across_partitions_select_final
  • https://t.me/clickhouse_ru
    а не будет final давать чрезмерную нагрузку, в случае ежесекундных обращений? КХ вроде как не рекомендует его использовать на больших таблицах...
  • https://t.me/clickhouse_ru
    а я правлильно понимаю у вас есть возможность данные заливать раз в час или раз в сутки, потом делать optimize final и после этого запросы без final?

    --do_not_merge_across_partitions_select_final arg Merge parts only in one partition in select final
  • https://t.me/clickhouse_ru
    @Alexey_037 #265476 02:06 PM, 10 Apr 2022
    Да, раз в час - допустимо вполне
  • @olehdudkin #265477 02:07 PM, 10 Apr 2022
    Так а зачем вам тогда запросы раз в секунду, если данные раз в час обновляются
  • https://t.me/clickhouse_ru
    @Alexey_037 #265478 02:07 PM, 10 Apr 2022
    Ну точнее как - данные то заливаются постоянно. Но иметь временной лаг в актуальности из-за мутаций при мержах - допустимо.
  • https://t.me/clickhouse_ru
    @r33ru #265479 02:07 PM, 10 Apr 2022
    Всем привет.

    Нужен совет. Что можно покрутить в конфиге, чтобы ускорить merge партиций на движке MergeTree.
    Замена дисков на ССД пока не принимается к сожалению.
  • https://t.me/clickhouse_ru
    Выше ответил
  • @olehdudkin #265481 02:08 PM, 10 Apr 2022
    Наверное я пропустил,
  • @olehdudkin #265482 02:08 PM, 10 Apr 2022
    не вижу где
  • https://t.me/clickhouse_ru
    вот
  • @olehdudkin #265484 02:13 PM, 10 Apr 2022
    Непонятно... а в чем отличается лаг в заливке от лага в коллапсе?
  • @olehdudkin #265485 02:14 PM, 10 Apr 2022
    в итоге у вас каунты
  • @olehdudkin #265486 02:14 PM, 10 Apr 2022
    не все ли равно по какой причине они неточные
  • https://t.me/clickhouse_ru
    @derlafff #265487 02:16 PM, 10 Apr 2022
    блин, телеграм-спамеры начали лайкать комментарии все подряд в этом чате, раздражает
  • https://t.me/clickhouse_ru
  • а точно "SELECT *" нужен?
    просто так как система колоночная, то если нужно вытащить три-четыре колонки в таблице из 100 колонок, то лучше их явно указать
  • https://t.me/clickhouse_ru
    Там всего 5 колонок, нужны все
  • вы их для чего вытаскиваете?
  • @olehdudkin #265495 02:46 PM, 10 Apr 2022
    Это одноразовая акция, или вы хотите это дело регулярно повторять?
  • https://t.me/clickhouse_ru
    @minto_o #265496 02:50 PM, 10 Apr 2022
    Нужно потом сделать групп бай на колонки search, type, offer, codes
    Получить словарь key (search, type, offer, codes), value (agency, rule_id)[]
    Или массив search, type, offer, codes, (agency, rule_id)[]
    Это сериализовать и в редиску

    Акция 3-4 раза в день, когда исходная таблица полностью обновляется
  • https://t.me/clickhouse_ru
    @ddver0137 #265498 02:57 PM, 10 Apr 2022
    /stat@combot
  • https://t.me/clickhouse_ru
    @combot #265499 b o t 02:57 PM, 10 Apr 2022
    Total messages: 265498
  • https://t.me/clickhouse_ru
    @ddver0137 #265500 02:57 PM, 10 Apr 2022
    Привет
  • https://t.me/clickhouse_ru
    @ddver0137 #265501 02:58 PM, 10 Apr 2022
    Лохи
  • https://t.me/clickhouse_ru
    @ddver0137 #265502 02:58 PM, 10 Apr 2022
    Долго пупсы
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @am_moskalenko #265504 03:00 PM, 10 Apr 2022
    Посоветуйте легкий батчинг в клик. Данных приростает примерно 500 млн строк за месяц.
  • https://t.me/clickhouse_ru
    @am_moskalenko #265505 03:03 PM, 10 Apr 2022
    Сейчас юзается ассинхронная всавка.
  • https://t.me/clickhouse_ru
    Текущий процесс
    1. Тянем все данные в не отсортированном виде List<(search, type, offer, codes, agency, rule_Id)>
    2. Создаем из этого в Dictionary<(search, type, offer, codes), (agency, rule_id)[]>
    3. Словарь кастим в List<(search, type, offer, codes, (agency, rule_id)[]>.
    4. Лист сериализуем кусками и в редиску

    Хочу поменять на
    1. Тянем данные кусками отсортированные по ключу (search, type, offer, codes)
    2. Т.к. данные отсортированы, складываем сразу в List<(search, type, offer, codes, (agency, rule_id)[]>
    Если прочитанная строка равна предыдущей, то нужно добавить значение в (agency, rule_id)[]
    Иначе добавялем в лист новую запись (search, type, offer, codes, (agency, rule_id)[]
    3. Когда прочитали какое-то заданное кол-во строк, то сериализуем весь List, кроме последнего элемента
  • @olehdudkin #265507 03:09 PM, 10 Apr 2022
    так.... а зачем?
  • https://t.me/clickhouse_ru
    @minto_o #265508 03:17 PM, 10 Apr 2022
    бинарные куски потом грузятся на 6 серверов, там в инмемори кэш.
    подготовка и потом загрузка бинарников значительно быстрее, чем на 6 серверах дергать БД 6 раз
  • Это больше хотелка, для удобства, в случае добавления на ноду прав, один кластер будет создавать запрос со своим acl, а у другого кластера на запрос не будет прав, то есть создавать on cluster запросы смогут все, но прочитать не получится
  • https://t.me/clickhouse_ru
    + приложение может упасть или деплой идет.
    оно эти бинарные куски потом локально хранит
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #265395 #265511 03:37 PM, 10 Apr 2022
    не нужно пользоваться LIMIT/OFFSET. Нужно пользоваться where id between 10000 and 10100. При условии что у вас order by id
  • https://t.me/clickhouse_ru
    @daniel_byta #265512 03:37 PM, 10 Apr 2022
    Добрый день. Существуют ли какие-то подводные камни при обновлении с 21.3 на 22.3?
  • https://t.me/clickhouse_ru
    с ORDER BY rule_id проблем нет.

    немного не корректно написал исходный вопрос.
    SQL правильный так выглядит, нужно 4 полям ордер
    SELECT * FROM aggregation
    ORDER BY search, type, offer, codes
    LIMIT 10_000_000 OFFSET 10_000_000;
  • https://t.me/clickhouse_ru
    можно в чейнжлоге посмотреть под заголовками Backward Incompatible Change
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #265513 #265515 03:41 PM, 10 Apr 2022
    я имел в виду order by/primary key таблицы - её первичный индекс. limit/offset вам не поможет, он фильтрует на выходе, после того как данные уже прочитаны (по крайней мере их начало). У вас каждый раз считывается вся таблица с начала, какой бы offset вы не поставили. Отсюда и такой профиль нагрузки
  • https://t.me/clickhouse_ru
    DLL таблицы
    engine = MergeTree ORDER BY (search, type, offer, codes)
    если делать селект на кусок данных через LIMIT OFFSET без order by (search, type, offer, codes),
    то данные могут прийти не сортированные

    Это не подходит
    where id between 10000 and 10100.
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #265516 #265517 03:50 PM, 10 Apr 2022
    search строковый что-ли? Тогда можно фрагменты для выборки и по буквам сформировать.
    order by (search, type, offer, codes) в запросе - оставляйте, если хотите чтобы сортировку делал КХ (но может и память сожрать свех меры)
    там при таком подходе иная проблема - пока вы частями вычитываете, могут прийти новые данные, и вы их не получите.
    Но все равно не очень понятно - для чего вы делите запрос на фрагменты, а не получаете его целиком?
    Если памяти хватает отсортировать все, то выгребайте целиком, без лимита. КХ будет вам стримить - только принимайте.
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #265516 #265518 03:56 PM, 10 Apr 2022
    не заметил сразу, что у вас order by таблицы и запроса совпадают. Тогда проблемы с сортировкой нет вобще - КХ все отсортирует на вставках/мерджах. Вам нужен сеттинг правильный - https://clickhouse.com/docs/en/sql-reference/statements/select/order-by/#optimize_read_in_order
    Будет работать быстро - читать с диска и кормить ваше приложение. Главное чтобы оно приняло. Не нужен вам limit/offset - забудьте про него. Он тут почти не работает при несовпадении order by. Но у вас совпадает.
  • https://t.me/clickhouse_ru
    У хоста есть 64 ГБ оперативы, но я пытаюсь сделать потоковое формирование бинарников
    Хост за раз не справляется, там до 500 миллионов исходных правил.

    Типы (search, type, offer, codes) short, byte, short, string

    Поглядываю также в сторону Nested
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #265520 #265521 04:02 PM, 10 Apr 2022
    какая версия КХ? Почитайте changelog про этот optimize_read_in_order. Там пишут что что-то меняли в 22.2, и у меня есть воспоминание, что раньше оно было выключено.
    Но если вы сможете добиться, чтобы КХ не сортировал все в памяти, а стримил вам напрямую с диска, то ваше приложение может само делить на удобные вам батчи и распределять по многочисленным редисам.
  • Оставить реакции в группе или отключить?

    Оставить - ставьте реакцию 👍
    Отключить - ставьте реакцию 😢
  • None
  • https://t.me/clickhouse_ru
    @kemsa #265524 04:12 PM, 10 Apr 2022
    спамят же(
  • @milovidov_an #265525 04:14 PM, 10 Apr 2022
    Отключение реакций победило.
  • https://t.me/clickhouse_ru
    @pxlvgg #265526 04:20 PM, 10 Apr 2022
    их кикать можно было просто
  • https://t.me/clickhouse_ru
    @pxlvgg #265527 04:21 PM, 10 Apr 2022
    если описание профиля вроде «Ищу мужчину для здоровья», то сразу бан в чате
  • https://t.me/clickhouse_ru
    @pxlvgg #265528 04:22 PM, 10 Apr 2022
    и кстати, не могу придумать как оптимизировать расход цпу кликхауса — у меня всего одна нода, на которой расположено всё, иногда нагрузка 20%, а иногда кликхаус грузит процессор в сотку
  • https://t.me/clickhouse_ru
    @pxlvgg #265529 04:22 PM, 10 Apr 2022
    вставляю записи каждые 5 минут, примерно по 10к записей
  • Эту бы демократию да на рассмотр FRов )))
  • https://t.me/clickhouse_ru
    @kemsa ↶ Reply to #265530 #265531 04:39 PM, 10 Apr 2022
    настолько же быструю? Так она есть. Ты просто не успеваешь заметить)
  • А у вас запросы идут во время 100%нагрузки? Просто кх заточен на то чтоб все сожрать, и если у вас 2 параллельных запроса, при настройках по умолчанию - будет 100% cpu.
  • Настолько же демократичную, голосовалкой ) я не могу быть настолько слоупоком
  • https://t.me/clickhouse_ru
    @pxlvgg ↶ Reply to #265532 #265534 04:56 PM, 10 Apr 2022
    да, запросы вне зависимости от нагрузки идут каждые 5 минут
  • https://t.me/clickhouse_ru
    @pxlvgg #265535 04:57 PM, 10 Apr 2022
    24/7
  • https://t.me/clickhouse_ru
    @pxlvgg #265536 04:57 PM, 10 Apr 2022
    очень грустно такую нагрузку видеть (кликхаус не отключался), стата за 12 часов
  • https://t.me/clickhouse_ru
    @pxlvgg #265537 04:58 PM, 10 Apr 2022
    в идеале было бы как-то сместить приоритет нагрузки на ночь, чтобы хотя бы днём и вечером не грузило в 100%
  • @molchanovdp #265538 05:09 PM, 10 Apr 2022
    Добрый вечер!
    Подскажите, при использовании Object(JSON) есть ли какие-то ограничения на количество ключей?
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #265536 #265539 05:23 PM, 10 Apr 2022
    а логи-метрики вы ведь уже отключили? https://kb.altinity.com/altinity-kb-setup-and-maintenance/altinity-kb-settings-to-adjust/
  • Вам стоит посмотреть, может запросы не оптимизированы
  • https://t.me/clickhouse_ru
    optimize_read_in_order включено по умолчанию после 19.16
  • https://t.me/clickhouse_ru
    @enclaved #265542 06:47 PM, 10 Apr 2022
    господа, порекомендуйте надежный сервис managed clickhouse, в идеале где-нибудь в европе
  • https://t.me/clickhouse_ru
    @pxlvgg ↶ Reply to #265539 #265543 06:47 PM, 10 Apr 2022
    перепроверю и отвечу
  • https://t.me/clickhouse_ru
    @pxlvgg #265544 06:48 PM, 10 Apr 2022
    может да, может нет) если да, то давно наверняка
  • https://t.me/clickhouse_ru
    @pxlvgg ↶ Reply to #265540 #265545 06:48 PM, 10 Apr 2022
    запросы INSERT?
  • https://t.me/clickhouse_ru
    @pxlvgg #265546 06:48 PM, 10 Apr 2022
    я SELECT не так часто вызываю, чтобы грузить им хост целыми днями
  • Тогда прочерьте парт лог. Может у вас слишком мнлкие вставки
  • https://t.me/clickhouse_ru
    @pxlvgg #265548 06:50 PM, 10 Apr 2022
    ну.. 10к в среднем вставка
  • https://t.me/clickhouse_ru
    @pxlvgg #265549 06:51 PM, 10 Apr 2022
    даже 12к сейчас
  • @dj_mixer #265550 06:51 PM, 10 Apr 2022
    10k это что? Как часто? Есть ли мв?
  • https://t.me/clickhouse_ru
    @pxlvgg #265551 06:51 PM, 10 Apr 2022
    это по system.part_log
  • https://t.me/clickhouse_ru
    @pxlvgg ↶ Reply to #265550 #265552 06:51 PM, 10 Apr 2022
    10к записей каждые 5 минут примерно
  • https://t.me/clickhouse_ru
    @pxlvgg #265553 06:52 PM, 10 Apr 2022
    и что за мв
  • https://t.me/clickhouse_ru
    Матвью
  • https://t.me/clickhouse_ru
    @pxlvgg #265555 06:52 PM, 10 Apr 2022
    нет, такого нет
  • Сколько партов в секунду появляется?
  • https://t.me/clickhouse_ru
    @pxlvgg ↶ Reply to #265556 #265557 06:53 PM, 10 Apr 2022
    как посмотреть?
  • https://t.me/clickhouse_ru
    @pxlvgg #265558 06:53 PM, 10 Apr 2022
    вот кидали сюда такой запрос
  • @dj_mixer #265559 06:53 PM, 10 Apr 2022
    Part.log
  • https://t.me/clickhouse_ru
    @pxlvgg ↶ Reply to #265558 #265560 06:53 PM, 10 Apr 2022
    по нему ориентируюсь
  • Ну и сколько партов новых? Сколько мерджей? В среднем?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Yandex Cloud 🥺

    Не совсем Европа, правда)
  • мало за день то. проверьте в system.merges, system.mutations, system.processes
  • ну и сколько процессоров в системе, и какие настройки пулов

    ну и метрики (system.asynchronous_metrics)
    BackgroundPoolTask
    BackgroundMovePoolTask
    BackgroundSchedulePoolTask
    BackgroundBufferFlushSchedulePoolTask
    BackgroundDistributedSchedulePoolTask
  • https://t.me/clickhouse_ru
    @good_developer #265567 07:07 PM, 10 Apr 2022
    Сейчас окажется что там виртуалка на пару ядер с кучей дисков 😂
  • спойлеры!
  • https://t.me/clickhouse_ru
    https://altinity.com/cloud-database/
    https://clickhouse.com/cloud/
    https://double.cloud/
    Altinity.Cloud

    A fully-managed ClickHouse service, Altinity.Cloud runs in any AWS and GCP region. Sign up and launch production-ready ClickHouse clusters today!

  • 11 April 2022 (136 messages)
  • https://t.me/clickhouse_ru
    @daniel_byta #265570 01:29 AM, 11 Apr 2022
    Из-за чего может появляться ошибка хоста?
    Клик дропает входящие tcp реквесты?
    Как можно лечить?
  • https://t.me/clickhouse_ru
    @daniel_byta #265571 01:39 AM, 11 Apr 2022
    Еще вопрос
    request duration: 61ms
    getArticleUrlTrees { elapsed: 0.000937145, rows_read: 8192, bytes_read: 369965 }
    Неужели tcp съедает так много времени от запроса?)
    1мс работы базы превращается в 61мс запроса
  • https://t.me/clickhouse_ru
    Скорее TLS. Далеко клиент от сервера?
  • https://t.me/clickhouse_ru
    это не клик дропает это у вас DNS не резолвит endpoint яндекса
  • https://t.me/clickhouse_ru
    ping до сервера какой?

    TCP syn / ack + TLS (если есть) + передача 300 килобайт по сети

    протокол какой ? Native или HTTP?
    если HTTP формат передачи данных какой?
  • @valeriysimonov #265575 06:42 AM, 11 Apr 2022
    привет! долгий запрос вылетает после пяти минут работы. как мне заставить дождаться его окончания? receive_timeout ставлю 900, всё равно ругается на таймаут через 300 секунд
  • выглядит вот так:
    e1fb58c47b4e :) SELECT * FROM system.settings WHERE name ='receive_timeout'

    SELECT *
    FROM system.settings
    WHERE name = 'receive_timeout'

    Query id: b657e911-83f8-4099-bb06-66b31a8864c7

    ┌─name────────────┬─value─┬─changed─┬─description─┬─min──┬─max──┬─readonly─┬─type────┐
    │ receive_timeout │ 900 │ 1 │ │ ᴺᵁᴸᴸ │ ᴺᵁᴸᴸ │ 0 │ Seconds │
    └─────────────────┴───────┴─────────┴─────────────┴──────┴──────┴──────────┴─────────┘

    1 rows in set. Elapsed: 0.006 sec.

    e1fb58c47b4e :) ALTER TABLE sometable MODIFY TTL somecolumn + INTERVAL 2 MONTH;

    ALTER TABLE sometable
    MODIFY TTL somecolumn + toIntervalMonth(2)

    Query id: 29506dce-de17-4b64-829d-67b7edf9bd4b

    Timeout exceeded while receiving data from server. Waited for 300 seconds, timeout is 300 seconds.
    Cancelling query.
  • https://t.me/clickhouse_ru
    Ну так он не отменяется на стороне кликхауса ( как я помню). А настройка на время ожидание ответа устанавливается на клиенте вроде как
  • https://t.me/clickhouse_ru
    clickhouse-client --receive_timeout=3600 -q "SELECT .. " если из CLI запускаете

    в других клиентах тоже timeout настройте
  • вот так работает, да, спасибо!
    clickhouse-client --receive_timeout 3600 --host db -q 'ALTER TABLE somtable MODIFY TTL somecolumn + INTERVAL 2 MONTH'

    а через SET внутри клиента, получается, этот параметр не задаётся?
  • @Nvarchar495 #265581 07:58 AM, 11 Apr 2022
    Салют!
    Подскажите пожалуйста а есть инструкция как из 1 нодовой сделать, кластер?
    Как я понимаю установку нужно clichousekeeper
    Нашел только такую инструкцию
    https://cloud.yandex.ru/docs/managed-clickhouse/operations/cluster-create
    Документация Yandex Cloud | Yandex Managed Service for ClickHouse | Создание ClickHouse-кластера

    ClickHouse-кластер — это один или несколько хостов базы данных, между которыми можно настроить репликацию.

  • https://t.me/clickhouse_ru
    @ilejn ↶ Reply to #265581 #265583 08:13 AM, 11 Apr 2022
    Уточните, что такое кластер в вашем понимании.
    Если вам нужно просто несколько шард, то clickhouse keeper для этого не необходим, например.
  • @supersurfer #265584 08:21 AM, 11 Apr 2022
    Коллеги, добрый день. Есть 2 кликхауса:
    1) Один шард одна реплика
    2) Кластер из двух шардов по одной реплике на каждом.

    Задача: джойнить данные из второго кликхауса с данными с первого. Пытался сделать это через remote. Но именно из той таблицы, откуда необходима информация с первого кликхауса не возвращает строки, совсем. Думаю, что там слишком много строк для функции remote (30 млрд). Это моё предположение. Есть ещё какие-то способы взять данные с двух кликхаусов. Может существует более эффективное решение, чем использование remote?
  • 3 шарда 3 реплики как в хадупе )
  • https://t.me/clickhouse_ru
    @ilejn ↶ Reply to #265584 #265586 08:27 AM, 11 Apr 2022
    Если у вас join простой (определенно inner), то можно смотреть сюда https://clickhouse.com/docs/ru/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-sources/#dicts-external_dicts_dict_sources-clickhouse
    Ну а если сложный, то вам вообще мало что поможет. Разве что репликация этой таблицы из второго кликхауса в первый.
    Источники внешних словарей | Документация ClickHouse

    Источники внешних словарей Внешний словарь можно подключить из множества источников. Общий вид XML-конфигурации: <clickh

  • https://t.me/clickhouse_ru
    @ilejn ↶ Reply to #265585 #265587 08:29 AM, 11 Apr 2022
    Не знаю текста, который покрывает ваш вопрос, но вот сюда посмотрите https://kb.altinity.com/altinity-kb-setup-and-maintenance/altinity-kb-converting-mergetree-to-replicated/ , например.
  • спасибо. посмотрю
  • Ок, если на пальцах )
    Есть у меня клоудера. Там есть консолька, я говорю вот тебе 10 нод, 1,2 мастер ,3-9 дата

    В кх я поднимаю серевер кх на 10 нодах? А потом как их подружить?
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #265584 #265590 08:33 AM, 11 Apr 2022
    я правильно понимаю, что вы пытаетесь через select * вытянуть 30B записей с другого сервера и как-то их поджойнить? Нет, так оно не работает. Нужно эти 30B сгрупировать до 1M и вот этот миллион уже можно переслать. Покажите лучше свои селекты, без особой детализации колонок.
  • https://t.me/clickhouse_ru
    @ilejn ↶ Reply to #265589 #265591 08:40 AM, 11 Apr 2022
    Идея рассказать клоудере (кто бы это ни был) про наличие в CH мастер- и дата- нод выглядит подозрительно, потому что в самом CH таикх понятий нет, хотя они могут появляться на каком-то логическом уровне.

    Почитайте про кластеры и про репликацию в официальной доке и на сайте Альтинити, посмотрите какие-нибудь видео про то же. Скорее всего, станет понятно, что такое кластер в CH.
  • в КХ кластер "одноранговый", вся метадата должна быть сконфигурирована на серверах используется зукипер для синхронизации и репликации.

    т.е. вы можете сами сказать, 4 шарда каждый по 2 реплики - 8 нод.
    и в каждом сконфигурировать информацию о кластере.
    Потом надо переделать merge tree в replicated merge tree.
    есть куча скриптов как переделать merge tree в replicated merge tree...
  • А это в писать конфигах каждой ноды?
  • да.
    https://kb.altinity.com/altinity-kb-setup-and-maintenance/cluster-production-configuration-guide/cluster-configuration-process/
  • еще недавно сделали автодискавери, но я не пробовал
    https://github.com/ClickHouse/ClickHouse/pull/31442
    Cluster discovery via Zoo/Keeper by vdimir · Pull Request #31442 · ClickHouse/ClickHouse

    Changelog category (leave one): New Feature Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md): Automatic cluster discovery via Zoo/Keeper Detailed: Cl...

  • ни в коем случае не собирался тянуть 30B строк. запросы будут иметь подобный вид:
    select *
    from remote('host.clickhouse.com', database.table, 'user', 'password')
    where 1=1
    and app_id = 'some_app_id'
    and user_id = '1642101002427-9134274996651573612'
    and toDate(event_time) = '2022-01-15';

    вот такой запрос непосредственно на host.clickhouse.com занимает секунду и возвращает 15 строк. но через remote возвращает 0 строк. на host.clickhouse.com есть таблица database.table_1 , в которой 9B строк и там находятся частично строки из основной таблицы. оттуда без проблем возвращает нужные 15 строк. быть может где-то сидит ограничение для remote функции? мой юзер в row policy точно имеет доступ к этим строкам
  • https://t.me/clickhouse_ru
    @ilejn ↶ Reply to #265596 #265598 09:11 AM, 11 Apr 2022
    Странно, что не работает remote. Вроде нет квот, в которые здесь можно было бы упереться. Но совет все равно один - почитайте логи. Скорее на host.clickhouse.com.
    Можно попробовать использовать таблицу Distributed, это чуть правильнее, чем remote.
  • https://t.me/clickhouse_ru
    ну это по идее параметр соединения, он до передачи самой query должен быть известен, чтобы параметры сокета задать, не знаю попробуйте
  • пробовал, не работает. с этого вопрос и начался
  • https://t.me/clickhouse_ru
    @shakhov #265601 09:28 AM, 11 Apr 2022
    Всем добрый день. Делаю insert select по ODBC. 18 млн строк, 5 Гб. Оперативки, судя по графикам более чем достаточно. Но получаю ошибку:
    DB::Exception: Attempt to read after eof: While executing BinaryRowInputFormat: While executing ODBC.
    В чем может быть проблема?
  • https://t.me/clickhouse_ru
    @shakhov #265602 09:29 AM, 11 Apr 2022
    Установил
    set max_insert_threads=32;
    но не помогло
  • @softbot_xxl #265603 09:32 AM, 11 Apr 2022
    Похоже на таймаут.
  • https://t.me/clickhouse_ru
    проблема в ODBC source

    SELECT ... FROM odbc(...) LIMIT 10
    нормально работает?

    какая субд в качестве источника?

    max_insert_threads это паралельность вставок
  • https://t.me/clickhouse_ru
    MSSQL
  • https://t.me/clickhouse_ru
    драйвера какие FreeTDS или официальные драйвера?
  • https://t.me/clickhouse_ru
    @shakhov #265607 09:34 AM, 11 Apr 2022
    официальные. до этого уже работало.
  • https://t.me/clickhouse_ru
    @artyba #265608 09:35 AM, 11 Apr 2022
    Добрый день.
    Странный баг. В ю таблице atable есть 2 колонки X,Y UInt64.

    Делаю запрос вида INSERT INTO btable SELECT X, Y, ... WHERE...
    Работает нормально.

    Делаю запрос вида INSERT INTO btable SELECT X, X, ... WHERE...
    Т.е. вставляю в 2 колонки того же типа одно значение - выполняется в 10-15 раз дольше.

    Отчего так?
  • можете дать доку на такое использование? или пример? хочу изучить. пока мои знания distributed ограничиваются созданием таблички с таким движком на шардированном кликхаусе для распределения данных по ключу шардирования. было бы круто это использовать и для извлечения данных с двух хостов кликхауса. заранее спасибо
  • https://t.me/clickhouse_ru
    @satilin #265611 09:46 AM, 11 Apr 2022
    Кто-нибудь использовал движок Kafka для AvroConfluent с реестром схем от apicurio?
  • https://t.me/clickhouse_ru
    стектрейс надо бы посмотреть
    какая версия clickhouse?
  • https://t.me/clickhouse_ru
    @MakeReady #265613 09:49 AM, 11 Apr 2022
    Добрый день! Нет ли функции для совмещения like и in?
  • https://t.me/clickhouse_ru
    22.3.2.1
    А вот со стек-трейсами не помогу((
  • https://t.me/clickhouse_ru
    multiSearchAny ?
  • https://t.me/clickhouse_ru
    @MakeReady #265616 09:54 AM, 11 Apr 2022
    а не multiMatchAny?
  • https://t.me/clickhouse_ru
    match это re2 выражения
  • https://t.me/clickhouse_ru
    @m1khal3v #265618 09:55 AM, 11 Apr 2022
    зависит от задачи
  • https://t.me/clickhouse_ru
    @MakeReady #265619 09:56 AM, 11 Apr 2022
    да просто вместо Name like ‘Вас%’ or Name like ‘Пет%’
  • https://t.me/clickhouse_ru
    это можно через arrayFirst и startsWith/like/match/position или через multiMatchAny, в зависимости от объёмов можно попробовать разные варианты на скорость
  • https://t.me/clickhouse_ru
    ну найдите того кто поможет
    /var/log/clickhouse-server/clickhouse-server.err.log
    вот в этот файл надо смотреть

    или в
    SELECT * FROM system.query_log WHERE query NOT IN ('QueryStart','QueryFinish') AND event_date=today() AND query ILIKE 'odbc' FORMAT Vertical

    еще можно вместо табличной функции odbc
    пробовать табличку ENGINE=ODBC(...) или VIEW SELECT ... FROM odbc(...) сделать
  • Похоже это очередной фуфломицин от ClickHouse.
    Поле типа Date может хранить только с 1970-01-01, и только до 2106 года. Типы данных Date32, DateTime, DateTime64 - примерно тоже самое.
    https://clickhouse.com/docs/ru/sql-reference/data-types/date/

    Так что, видимо, придется Вам делать колонку типа целое число, как бывает принять в аналитических базах: просто число 19460805. Поиск по дате, за период дат работает как с датами, но придется отдельно самому писать функции для определения года, месяца, дня недели, разница между датами в днях и т.п. Это будет весьма непросто, так как придется самому учитывать високосные даты.
    Date | Документация ClickHouse

    Date Дата. Хранится в двух байтах в виде (беззнакового) числа дней, прошедших от 1970-01-01. Позволяет хранить значения

  • https://t.me/clickhouse_ru
    Спасибо!
  • https://t.me/clickhouse_ru
    Сейчас сделал на стороне MSSQL представление, в котором все поля перегнал в varchar. На стороне Кликхауса все заработало. Видимо есть какой-то косяк парсинга в дровах.
  • https://t.me/clickhouse_ru
    @rukavkov #265625 10:11 AM, 11 Apr 2022
    Почему то после удаления партиции место не освобождается. Может ли быть связано с тем, что с партиции сделан бекап и ch думает что есть какие то связи?
  • https://t.me/clickhouse_ru
    @Gulshan5k #265626 10:21 AM, 11 Apr 2022
    Добрый день! Подскажите, пожалуйста, из-за чего периодически может зависать clickhouse-odbc-bridge, помогает только киляние процесса
  • https://t.me/clickhouse_ru
    Около 8 минут должно пройти, как удалятся данные физически
  • https://t.me/clickhouse_ru
    @ValarMorghuliis #265628 10:29 AM, 11 Apr 2022
    Всем привет, вижу вот в логах, что ошибки ExceptionBeforeStart идут только на дефолтную БД, current_database=default, хотя в DSN при вставке мы прописываем все.

    Может кто-нибудь с таким сталкивался? Просто ошибка возникает Column date is not under aggregate function and not in GROUP BY в мат вьюхах, хотя запросы верные, группировка отдельно отрабатывает, странная хрень 🧐 Версия 22.1
  • https://t.me/clickhouse_ru
    Вы при подключение указываете БД ?
  • https://t.me/clickhouse_ru
    вот такая стринга

    tcp://ch1sh1r1:9000,ch1sh1r2:9000,ch1sh2r1:9000,ch1sh2r2:9000,ch1sh3r1:9000,ch1sh3r2:9000/statistics

    драйвер вот этот https://github.com/ClickHouse/clickhouse-go#dsn

    Причем некоторые то данные вставляются, не все идут с такими ошибками. Магия какая-то
  • https://t.me/clickhouse_ru
    @satilin #265631 11:22 AM, 11 Apr 2022
    Как понять в какое место файла нужно помещать данный конфиг?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    либо в дровах либо в том как из clickhouse вычитываются данные из того что возвращает ODBC, как нибудь не так приведение типов на низком уровне работает или еще чего...

    будет круто если поропбуете по одному поля убирать
    и понять на каком именно столбце ошибка
  • https://t.me/clickhouse_ru
    у вас Native или HTTP протокол?

    это настройки профиля
    можно в /etc/clickhouse-server/users.d/avod.xml
    <yandex><profiles><default><format_avro_schema_registry_url>...</format_avro_schema_registry_url></default></profiles></yandex>

    для Native
    можно через SETTINGS format_avro_schema_registry_url=...
    для HTTP
    через query string
    ?format_avro_schema_registry_url=
  • https://t.me/clickhouse_ru
    @proBAKyyM #265636 11:37 AM, 11 Apr 2022
    /stat@combot
  • https://t.me/clickhouse_ru
    @combot #265637 b o t 11:37 AM, 11 Apr 2022
    Total messages: 265636
  • https://t.me/clickhouse_ru
    @ilejn ↶ Reply to #265609 #265638 12:26 PM, 11 Apr 2022
    Нет такой доки (или я ее не знаю).
    Ну и не очень понятно, что в ней можно написать, потому что в CH понятие "cluster" эфемерное и мало к чему обязывающее.
    Никто не мешает для некоторых Distributed таблиц описать отдельный, только им одним ведомый кластер, состоящий из части нод.
    Типичный паттерн - наряду с "настоящим" кластером, в котором есть шарды, описать кластер, в котором все ноды кластера описаны как реплики; это позволяет иметь какие-то данные на всех узлах кластера.
    Ну а ключ шардирования не нужен, если таблицы используются для чтения. По умолчанию Distributed не полагается на знание, где что лежит, а обращается ко всем таблицам, над которыми она создана.
  • спасибо
  • https://t.me/clickhouse_ru
    @kuzvladd #265641 01:06 PM, 11 Apr 2022
    Добрый день! Очень хочется разобраться, возможно ли как-нибудь задать счётчик квот на весь кластер? Создаю квоту на чтение только 2 строк в минуту, для пользователя, у которого есть права только на чтение. Делаю запрос из двух нод на чтение из-под пользователя с правами только на чтение. Квоту read_rows установил на 3. Делаю запрос в первой ноды, читаю 2 строки, затем делаю запрос из второй ноды и тоже читаю 2 строки и запрос успешно выполняется. Делаю запрос в Distributed таблице.

    create quota test on cluster test for interval 60 second max read_rows = 2 to user_reader;

    Подскажите пожалуйста, возможно что-то неправильно сконфигурировано или неправильно создана квота?
  • https://t.me/clickhouse_ru
    @brbrbr #265642 01:08 PM, 11 Apr 2022
    Подскажите, пожалуйста, а как можно почистить очередь system.distribution_queue?

    Одна нода кластера не успевает мерджить всё что к ней прилетает. Отключили все прямые вставки и вставки в распределённые таблицы, чтобы пришла в себя, но там ещё 250к вставок в очереди distribution_queue. Хочется их тоже удалить.
  • https://t.me/clickhouse_ru
    @yaeblan #265644 01:58 PM, 11 Apr 2022
    Здравствуйте, возникла проблема с фильтрацией. Требуется агрегировать у юзеров определенные поля вместе с фильтрацией. Проблема в том, что если ни один из юзеров не попал под фильтры. то агрегация становится невозможной даже null-данными, т.к. нету колонки для агрегация.. Есть ли возможность агрегировать юзеров null данными, если ни один юзер не попал под фильтры по дате?

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

    sql: https://pastebin.com/M7RTbERa
  • @olehdudkin #265645 02:31 PM, 11 Apr 2022
    во-первых вам там distinct не нужен
    во-вторых: среднее по процентам не так считается - вам нужно сумму делителей на сумму знаменателей делить (если я правильно понял, что вы делаете)
    в-третьих: чтобы сделать что вы хотите нужен хитрый кроссджоин со списком юзеров
  • @semchalex #265646 03:32 PM, 11 Apr 2022
    Всем привет, а я правильно понимаю что для обновления данных доступны следующие варианты:
    1. Мутации ALTER UPDATE и ALTER DELETE - нежелательны для регулярного обновления
    2. Replacing(/Collapsing)MergeTree + вызывать OPTIMIZE (долго) и/или делать view со словом FINAL (запросы выполняются дольше)
    3. ALTER TABLE DROP PARTITION + вставка новых данных
    Есть еще какие-то способы?
  • https://t.me/clickhouse_ru
    В п.2 можно юзать HAVING SUM(sign) = 1 для CollapsingMergeTree и argMax(column, version) для ReplacingMergeTree
  • https://t.me/clickhouse_ru
    @skrainov #265649 03:47 PM, 11 Apr 2022
    Добрый вечер! подскажите плз, с чем связана такая ошибка

    Code: 241. DB::Exception: Memory limit (for query) exceeded: would use 9.31 GiB (attempt to allocate chunk of 4211808 bytes), maximum: 9.31 GiB: (while reading column log_file_path): (while reading from part /var/lib/clickhouse/store/f94/f948f5e0-a70e-4eb9-b948-f5e0a70e6eb9/202203_1_251033_10162/ from mark 720 with max_rows_to_read = 8192): While executing MergeTreeThread. (MEMORY_LIMIT_EXCEEDED) (version 21.11.11.1 (official build))

    делаю такой запрос
    ```
    select * from transactions tx
    join nginx_logs n on tx.order = n.order
    where tx.order ='e93bde37-ea6f-7743-b7bd-562e47ba714a'
    order by n.time_local;
    ```

    в тоже время если выполняю данный запрос отдельно по каждой таблице, то все выполняется хорошо . в одной таблице 1 запись, в другой 20.
  • @a_beloglazov #265650 03:49 PM, 11 Apr 2022
    Привет всем! У меня есть запрос который считает аггрегаты по 5 минутным бакетам. Дело в том что некоторые бакеты пустые, и они просто пропущены в выборке. Я хочу сгенерировать для заданного интервала список 5 минутных бакетов (время когда начинается 5 минутный интервал) и сделать LEFT JOIN с результатов аггрегаций.
    Каким образом можно сгенерить таблицу состоящую из 5 минутных интервалов?
  • https://t.me/clickhouse_ru
    попробуйте where перенести в подзапрос
  • https://t.me/clickhouse_ru
    @skrainov #265652 03:49 PM, 11 Apr 2022
    тоже самое
  • @olehdudkin #265653 03:50 PM, 11 Apr 2022
    Вы уверены, что у вас 20 звписей?
  • https://t.me/clickhouse_ru
    @skrainov #265654 03:50 PM, 11 Apr 2022
    ```
    select * from transactions tx
    join nginx_logs n on tx.order = n.order and tx.mdorder ='e93bde37-ea6f-7743-b7bd-562e47ba714a'
    order by n.time_local;
    ```
  • @olehdudkin #265655 03:50 PM, 11 Apr 2022
    нет
  • https://t.me/clickhouse_ru
    в подазпрос а не ON )
  • @olehdudkin #265657 03:50 PM, 11 Apr 2022
    вам нужен subselect
  • @olehdudkin #265658 03:51 PM, 11 Apr 2022
    SELECT
    FROM
    JOIN (SELECT FROM WHERE) ON
  • @olehdudkin #265659 03:52 PM, 11 Apr 2022
    но вы судя по всему используете Ch как MySQL
  • @olehdudkin #265660 03:52 PM, 11 Apr 2022
    У вас и SELECT * и JOIN
  • https://t.me/clickhouse_ru
    @skrainov #265661 03:53 PM, 11 Apr 2022
    понял, спасибо!
  • @olehdudkin #265662 03:54 PM, 11 Apr 2022
    а у вас там нет случаем полей с запросом и ответом?
  • @olehdudkin #265663 03:54 PM, 11 Apr 2022
    название nginx_logs очень настораживает :)
  • https://t.me/clickhouse_ru
    @skrainov #265664 03:55 PM, 11 Apr 2022
    ну я да, просто обычный join делал, это я так для дебага. вместо * добавил определенное поле, все быстро вернулось.
  • https://t.me/clickhouse_ru
    @mgavrikov #265665 03:56 PM, 11 Apr 2022
    Коллеги, подскажите пожалуйста есть ли возможнсть выполнить 2 запроса(один с лимитом, второй с каунтом) но за «один» проход по данным

    то есть у меня есть 2 запроса
    1) select a, b, c from my_table where my_fitler_expr order by c limit 100
    2) select count(*) from my_table where my_fitler_expr

    (понятное дело, что в пределе 1ый запрос без доп сортировок требуем чтения всех данных попадающих под условие)

    хочется как-то за один проход по данным получить и 1 и 2
    а не делать 2 запроса и ждать в два раза дольше
  • https://t.me/clickhouse_ru
    select a, b, c from my_table where my_fitler_expr order by c limit 100 FORMAT JSON
  • https://t.me/clickhouse_ru
    @m1khal3v #265667 03:57 PM, 11 Apr 2022
    "rows_before_limit_at_least": XXX,
  • Не использовтаь кликхаус для данных требующих пагинации
  • https://t.me/clickhouse_ru
    @m1khal3v #265669 03:58 PM, 11 Apr 2022
    но он может выдавать не совсем точные данные, лечим дефолтной сортировкой
  • @olehdudkin #265670 03:59 PM, 11 Apr 2022
    вы очевидно потом надеетесь offsetиспользовать
  • @olehdudkin #265671 03:59 PM, 11 Apr 2022
    И это может плохо закончиться. Вам тогда уже следует просить данные большими кусками
  • @olehdudkin #265672 03:59 PM, 11 Apr 2022
    и кешировать
  • @olehdudkin #265673 03:59 PM, 11 Apr 2022
    и потом отдавать порциями клиенту
  • https://t.me/clickhouse_ru
    @mgavrikov #265674 04:04 PM, 11 Apr 2022
    вот, с оффсетами пока нету проблем, на «вторую» то страницу кликают крайне редко
  • https://t.me/clickhouse_ru
    типа при любой сортировке будет верный каунт, а без не верный? так получается?
  • https://t.me/clickhouse_ru
    иногда и без сортировки верный, в некоторых запросах без сортировки замечали что скачет постоянно. есть кстати PR который должен это полечить https://github.com/ClickHouse/ClickHouse/pull/25333
    add setting exact_rows_before_limit by MaxWk · Pull Request #25333 · ClickHouse/ClickHouse

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

  • ORDER BY | ClickHouse Documentation

    ORDER BY Clause The ORDER BY clause contains a list of expressions, which can each be attributed with DESC (descending)

  • Спасибо!
  • @olehdudkin #265679 04:14 PM, 11 Apr 2022
    А он разве не просто дропнет неколлапснутые строки?
  • Спасибо! Попробовал, но что-то ему тип STEP не нравится, хотя документация говорит что поддерживается INTERVAL
    ORDER BY time_bucket ASC WITH FILL FROM now() - toIntervalHour(24) TO now() STEP toIntervalMinute(5)
    ...
    DB::Exception: Illegal type IntervalMinute of WITH FILL expression, must be numeric type.
  • Так Вам же и сообщают, что должен быть числовой тип, а Вы ему подсовываете тип Interval
  • @a_beloglazov #265682 04:43 PM, 11 Apr 2022
    When STEP const_numeric_expr defined then const_numeric_expr interprets as is for numeric types, as days for Date type, as seconds for DateTime type. It also supports INTERVAL data type representing time and date intervals.
  • @a_beloglazov #265683 04:44 PM, 11 Apr 2022
    так вроде принимает же INTERVAL
  • FILL STEP INTERVAL 5 MINUTE - как-то так, наверное
  • @a_beloglazov #265685 04:45 PM, 11 Apr 2022
    INTERVAL 5 MINUTE - это сахар, он конвертируется в toIntervalMinute(5)
  • @a_beloglazov #265686 04:45 PM, 11 Apr 2022
    и так и так выдает одну и туже ошибку
  • @olehdudkin #265687 04:50 PM, 11 Apr 2022
    а просто в секундах?
  • @a_beloglazov #265689 04:52 PM, 11 Apr 2022
    да, просто STEP 300 работает
  • @a_beloglazov #265690 04:52 PM, 11 Apr 2022
    а как now() выровнять к началу минуты
  • https://t.me/clickhouse_ru
    Date Trunc
  • https://t.me/clickhouse_ru
    toStartOfMinute()
  • а версия КХ какая?
  • @a_beloglazov #265694 04:53 PM, 11 Apr 2022
    21.3.13.9
  • интервал в 21.12 добавили
  • https://t.me/clickhouse_ru
    @sibbarb #265696 04:56 PM, 11 Apr 2022
    Всем привет , сегодня узнал что с кликхаусом не работает фишка df.to_sql() . Вначале нужно создать табличку , а уже потом в неё инсертить. А вот если у тебя датафрейм на 100 столбцов , то это уже как то и неохота делать) можно ли обойти как то создание таблички ?
  • понял, спасибо
  • https://t.me/clickhouse_ru
    самому написать) взять схему из датафрейма) ну и преобразователь типов
  • https://t.me/clickhouse_ru
    @sibbarb #265699 05:02 PM, 11 Apr 2022
    ясно , спаисбо
  • Экспорт в CSV,и из него импорт в CH
  • https://t.me/clickhouse_ru
    типы сам проставит ?
  • @olehdudkin #265702 05:08 PM, 11 Apr 2022
    GitHub - kszucs/pandahouse: Pandas interface for Clickhouse database

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

  • https://t.me/clickhouse_ru
    @beepiamjeep #265704 05:18 PM, 11 Apr 2022
    Добрый вечер. В таблице есть колонка с типом данных "Nested", каким-то образом она превратилась в тип Array. Изменений в структуре таблицы не производилось. Подскажите, пожалуйста, из-за чего такое может происходить?
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #265704 #265705 06:49 PM, 11 Apr 2022
    Nested - это и есть Array. Точнее несколько массивов одинаковой длинны. С именем соединенным точкой. Так просто удобнее объявлять типы колонок. Но можно и руками в несколько массивов - разницы нет. Но есть нюансы. Если вам интересно углубиться в эту тему, то можно почитать тут - https://clickhouse.com/docs/ru/operations/settings/settings/#flatten-nested
  • @adinvadim #265706 06:55 PM, 11 Apr 2022
    Ребят проектируем сервис аналитики, подскажите как лучше выбрать бд для «заявок». В теории CH идеально подходит для такого типа данных, много стобдцов, без нужды UPDATE, но с другой стороны строить бизнес логику поверх CH, кажется неудобным.

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

    Как обычно поступают? Как лучше. Сейчас в самом начале и есть возможность спроектировать грамотно.
  • https://t.me/clickhouse_ru
    Обычно второй вариант
  • https://t.me/clickhouse_ru
    Что есть заявка, какой их планируемый объем и какие массовые операции планируются над ними. Ответив на эти вопросы можно понять нужен ли вообще КХ.
    Но как верно замечено даже если нужен, как первичное хранилище КХ редко когда подходит для таких вещей и скорей второй вариант.
  • ^^^. Делаете классическую базу для бизнес-логики. оттуда потоком через редис или кафку или что угодно в CH для аналитики максимально ненормализированным образом
  • @msmk_cn #265710 07:03 PM, 11 Apr 2022
    Кстати, насколько правильно использовать CH как базу данных для отдачи каких-то данных НЕ аналитикам? Например, отдавать статистику по игрокам самим же игрокам
  • https://t.me/clickhouse_ru
    Бывают такие варианты, но там ещё кэш между игроками и кликом будет
  • @adinvadim #265712 07:24 PM, 11 Apr 2022
    Понял, спасибо большое!
  • https://t.me/clickhouse_ru
    @ValarMorghuliis #265713 07:24 PM, 11 Apr 2022
    Блин, не могу победить ошибку

    DB::Exception: Column date is not under aggregate function and not in GROUP BY: While processing date, timeSlot(created_at) AS time_slot, advertiser_id, publisher_id, campaign_id, sub1, sub2, sub3, sub4, sub5, sub6, sub7, sub8, adv_sub1, adv_sub2, adv_sub3, adv_sub4, currency, count() AS clicks, sum(unique) AS hosts, sum(payouts) AS payouts.

    это на мат вью такая ошибка, но сам запрос от мат вью работает, если его отдельно вызывать, а вот при вставке такая шляпа. А может быть это оттого, что date дефолтное значение в основной таблице, с которой вызывается AS SELECT .. GROUP BY? Вот так указано

    `date` Date DEFAULT toDate(now())
  • @vmakulov #265715 10:28 PM, 11 Apr 2022
    /proc
  • 12 April 2022 (165 messages)
  • https://t.me/clickhouse_ru
    https://clickhouse.com/docs/en/introduction/performance/amp/
    > we recommend expecting a maximum of 100 queries per second
    Performance | ClickHouse Documentation

    Performance ClickHouse shows the best performance (both the highest throughput for long queries and the lowest latency o

  • @2145241442 #265718 12:54 AM, 12 Apr 2022
    Hello https://t.me/oSPKNHPVBX82249bot?start=21261
    Only with us you can earn fast
    NeW PRO BNB bot

    Automation reinvest: 10% from Withdrawal

  • https://t.me/clickhouse_ru
    Проблема как раз в названии колонок и есть. Изначально создается таблица с типом данных Nested, но через какой-то промежуток времени происходит смена типа и названия колонки.
  • https://t.me/clickhouse_ru
    @beepiamjeep #265721 06:56 AM, 12 Apr 2022
    Изначально созданная таблица
  • https://t.me/clickhouse_ru
    @beepiamjeep #265722 06:56 AM, 12 Apr 2022
    Вот что происходит потом
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #265720 #265723 07:03 AM, 12 Apr 2022
    это ничему не мешает. ещё раз говорю - нет такого типа данных как Nested. Это синтаксический сахар. У вас есть колонка `debuginfo.pipelined` Array(String)
    Nested - только для удобства описания в create table. Можно вобще не пользоваться, если смущает.
  • https://t.me/clickhouse_ru
    @beepiamjeep #265724 07:07 AM, 12 Apr 2022
    На запись данных это влияет. В таком формате происходит запись данных при Nested 'debugInfo': [{'pipelineId': '58aafec494b5a9af5b2ad28e6f195c13'}], но при смене типа уже выдается ошибка, потому что колонки с именем debugInfo нет - " 'error': KeyError('debugInfo.pipelineId') "
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #265724 #265725 07:09 AM, 12 Apr 2022
    разумеется у вас нет колонки debugInfo, но есть колонка debugInfo.pipelineId. Вот в нее и вставляйте.
  • https://t.me/clickhouse_ru
    @beepiamjeep #265726 07:13 AM, 12 Apr 2022
    Вопрос в другом. Почему происходит такая замена?
  • https://t.me/clickhouse_ru
    В таком случае надо пересобирать вставляемый пакет данных
  • https://t.me/clickhouse_ru
    Попробуйте по делать такой запрос через clickhouse-client. Возможно драйвер по-другому представляет данные вот и все
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #265726 #265729 07:16 AM, 12 Apr 2022
    вероятно ваш визуальный инструмент вас обманывает. попробуйте в clickhouse-client спросить show create table - там все прозрачно.
  • https://t.me/clickhouse_ru
    При таком запросе выдает всё нормально - debugInfo Nested(pipelineId Nullable(String)). Тот же просмотр таблицы через веб-интерфейс яндекса рисует другую картинку
  • https://t.me/clickhouse_ru
    @beepiamjeep #265732 07:28 AM, 12 Apr 2022
    Сейчас создал по изначальному запросу новую таблицу и она выглядит по-другому
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @beepiamjeep #265734 07:31 AM, 12 Apr 2022
    При создании таблицы устанавливаю параметр формата данных. SET flatten_nested = 0; При добавлении данных этот параметр не использую. Может ли он влиять на такое поведение?
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #265734 #265735 07:38 AM, 12 Apr 2022
    не знаю. может яндексное облако чудит. Может в КХ что-то интересное есть. Я использовал flatten_nested = 0 только однажды, когда понадобилось сделать 5 (или 4?) уровня вложенности. Зачем это вам сейчас - непонятно. Оставьте 1 по умолчанию и пишите имена колонок через точку. Не ищите приключений - вы же не тестингом КХ занимаетесь.
  • https://t.me/clickhouse_ru
    @JonyBPlaya #265736 07:42 AM, 12 Apr 2022
    Коллеги, привет. Могу ли я в КХ агрегировать значения так что бы строки собирались в массивы.
    Например
    1 а
    1 б
    1 в
    собрать в cтроку: 1, ['а','б','в']
  • https://t.me/clickhouse_ru
    group by, groupArray
  • https://t.me/clickhouse_ru
    У меня есть таблицы с 4 уровнем вложенности. А механизм на создание таблицы и добавление данных сделан универсальным. Эта таблица с одним уровнем вложенности и для наглядности проблематики указал. С большой таблицей аналогичная история.
  • https://t.me/clickhouse_ru
    @kaktotat #265741 07:57 AM, 12 Apr 2022
    Всем привет. Есть ...СТРОКИ... сканы док, в наличии много стран.
    Full- Info-Bizness (USA)-Info/szn/dop/dl !!! Кому нужны Обращайтесь!!!!
  • @evgenyanother #265742 07:59 AM, 12 Apr 2022
    всем привет
    Я правильно понимаю, что кх не поддерживает оконные функции (first value, row number..) внутри конструкций типа if ?
  • @Dalmaneo #265743 08:09 AM, 12 Apr 2022
    Всем привет!
    Подскажите пожалуйста, есть ли способ изменить lifetime словаря не пересоздавая?
  • https://t.me/clickhouse_ru
    благодарю
  • Нашёл здесь ответ https://github.com/ClickHouse/ClickHouse/issues/8205

    Replace dictionary, но это для atomic
    ALTER DICTIONARY support · Issue #8205 · ClickHouse/ClickHouse

    Need to implement support of ALTER DICTIONARY queries for external dictionaries: Attributes Primary key Layout Source Lifetime Range for range_hashed dictionaries

  • https://t.me/clickhouse_ru
    Во всех последних версиях база данных atomic
  • К сожалению, не все используют последние версии :)
  • https://t.me/clickhouse_ru
    19 версия ?
  • @danquimby #265750 08:44 AM, 12 Apr 2022
    ДОброе утро, подскажите мне для аналитиков нужно брать метрику (за этот день записей для id было меньше 10)
    как лучше сделать или через materialized view или через select по базе ? и возможно ли materialized view изменять значения к примеру потом с 10 записей поменять на 20 или там все "прибито" гвоздями
  • Изначально была, да. Но при переезде на новую, переехало и все, что было в старой.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru