• 01 March 2022 (167 messages)
  • https://t.me/clickhouse_ru
    @id13941816 #259874 01:33 AM, 01 Mar 2022
    💚💚💚
  • https://t.me/clickhouse_ru
    там xml error жэ
  • узнать какая конкретно таблица падает надо узнав откуда идет линк на эту папку (в engine-atomic все таблицы хранятся в ууид папках с указателями):
    ls -l /data/clickhouse/store/adf/adf01457-dd13-4c93-90b0-afb1a022254c

    в вашем случае это метрик лог судя по колонке.
    выключите metric_log в конфиге и удалите sql... на 4ГБ включать такое перебор наверно.

    убираем в конфиге
    https://github.com/ClickHouse/ClickHouse/issues/17735#issuecomment-737404868

    (удаляем метадату)
    rm /data/clickhouse/data/metadata/system/metric_log*

    я бы и part_log, query_thread_log тоже убрал, либо выставил агрессивные TTL.
  • @196211497 #259878 04:22 AM, 01 Mar 2022
    Вопрос про ch-keeper. Как заставить его слушать внутренние соединения на ipv4 вместо ipv6?
    listen_host=0.0.0.0 меняет только адрес для внешних соединений :2181, а :9444 он продолжает слушать на ::1
  • https://t.me/clickhouse_ru
    спасибо за разъяснения! Пока добавили памяти до 8Гб на каждой ноде - СН всё разобрал, ошибки ушли. Хотя по графику наоборот потребление памяти упало после добавления. Наверно, 4Гб действительно мало даже для ненагруженного экземпляра
  • покопался в исходниках, по-видимому нет такой возможности. В CoordinationSettings.h описан параметр enable_ipv6, только он по умолчанию true и ниоткуда не читается, ни с командной строки, ни из конфига. Печально.
  • @196211497 #259881 05:41 AM, 01 Mar 2022
    Может проблема даже не в этом. Почему ch-keeper может не принимать соединения от одного из хостов? На другие порты соединения работают, а на :9444 connection refused. Это не фаервол, потому что там пакеты бы просто дропались и не было бы моментального ответа connection refused.
    В обратную сторону тоже всё хорошо.
  • https://t.me/clickhouse_ru
    @konnectrl #259882 05:42 AM, 01 Mar 2022
    9444 это SSL ?
  • @196211497 #259883 05:42 AM, 01 Mar 2022
    Нет, это нешифрованый IPC для экземпляров ch-keeper
  • https://t.me/clickhouse_ru
    Только от одного хоста не можете подключиться ?
  • @196211497 #259885 05:44 AM, 01 Mar 2022
    да, он даже pre_vote не может пройти, а остальные серверы образуют кворум нормально
  • @196211497 #259887 05:45 AM, 01 Mar 2022
    идёт. и telnet на 22 порт тоже ок. и даже на 2181 ок (его слушает тот же keeper)
  • @196211497 #259888 05:46 AM, 01 Mar 2022
    разница только в том, что:
    tcp 0 0 0.0.0.0:2181 0.0.0.0:* LISTEN 963540/clickhouse-k
    tcp6 0 0 :::9444 :::* LISTEN 963540/clickhouse-k
  • https://t.me/clickhouse_ru
    @konnectrl #259889 05:47 AM, 01 Mar 2022
    Как то всё странно
  • https://t.me/clickhouse_ru
    @konnectrl #259890 05:47 AM, 01 Mar 2022
    А те машины которые могут подключиться к 9444 могут подключиться к 2181 ?
  • @196211497 #259891 05:49 AM, 01 Mar 2022
    да, могут
  • https://t.me/clickhouse_ru
    @konnectrl #259892 05:49 AM, 01 Mar 2022
    А на них тоже ipv4 ?
  • @196211497 #259893 05:50 AM, 01 Mar 2022
    tcp 0 0 127.0.0.1:2181 0.0.0.0:* LISTEN 939417/clickhouse-k
    tcp6 0 0 ::1:2181 :::* LISTEN 939417/clickhouse-k
    tcp6 0 0 :::4999 :::* LISTEN 939417/clickhouse-k
  • @196211497 #259894 05:51 AM, 01 Mar 2022
    то же самое фактически. там listen_host не указан поэтому кипер слушает 2181 как попало. но это пока что не интересно
  • https://t.me/clickhouse_ru
    @konnectrl #259895 05:51 AM, 01 Mar 2022
    Я думаю проблема в каком-то механизме на машине которая не может подключиться ( Я не знаю глубоко как это работает) но предполагаю, что ipv6 порт не преобразуется или не строит типа nat при подключение на ipv4
  • https://t.me/clickhouse_ru
    @konnectrl #259896 05:51 AM, 01 Mar 2022
    и получается дичь ....
  • https://t.me/clickhouse_ru
    @konnectrl #259897 05:52 AM, 01 Mar 2022
    Это как предположение
  • @196211497 #259898 05:52 AM, 01 Mar 2022
    так нету там ни nat ни чего другого, они к одной сети подключены.
  • @196211497 #259899 05:52 AM, 01 Mar 2022
    видимо придётся переделать эту машину, т.к. на первых двух ubuntu, а на этой debian
  • https://t.me/clickhouse_ru
    @1695040889 #259900 06:02 AM, 01 Mar 2022
    ::1:2181 - это ipv6 only адрес, а :::4999 - оба, v4 и v6
  • https://t.me/clickhouse_ru
    @1695040889 #259901 06:02 AM, 01 Mar 2022
    т.е. zookeeper слушает только ipv6
  • @196211497 #259902 06:03 AM, 01 Mar 2022
    я только про порт 4999 сейчас спрашиваю, он везде на :::4999 слушается
  • https://t.me/clickhouse_ru
    @oksana_ds #259903 06:46 AM, 01 Mar 2022
    Надеюсь, вам там со спокойным сердцем работается, пока ваши хуесосы убивают наших детей! А знаете в чем разница у нас безоружные бтр останавливают, а у вас толпа бежит от ОДНОГО.
  • /report
  • https://t.me/clickhouse_ru
    @runRudy #259905 06:48 AM, 01 Mar 2022
    в пизду такое коммьюнити, посмотрим на чем будет держаться клик по мере выхода из строя инфраструктуры. долбоящеры
  • https://t.me/clickhouse_ru
    @oksana_ds #259906 06:48 AM, 01 Mar 2022
    Ну по ходу не со спокойным , раз уж репортите
  • https://t.me/clickhouse_ru
    @critskiy #259907 06:49 AM, 01 Mar 2022
    @kshvakov @Alesapin delete pls
  • /report
  • харе политоту разводить просто... для этого есть отдельные флудилки! а тут технический чат
  • https://t.me/clickhouse_ru
    @oksana_ds #259911 06:52 AM, 01 Mar 2022
    Я бы пользовалась этим чатом как ранее делала как техническим. Но , к сожалению у меня нет такой возможности, просто считала, что люди, которые развивались хоть немного с незамыленым взглядом!
  • https://t.me/clickhouse_ru
    Вот это зарепорти блядина
  • Да утомили вы со своей политикой, идите в другой чат, оставьте это для обсуждения КликХаусу
  • /report
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @critskiy #259918 06:54 AM, 01 Mar 2022
    уважаемая Оксана, нам понятны ваши страхи и неуверенность в вашем дне, но понимаете, что мы находимся точно в таком же положении моральном как и вы, пытаясь сейчас сделать одно - выжить любой ценой
    поэтому давайте отставьте весь этот буллшит :)
  • если не хочется пользоваться чатом, как техническим и все тут замыленные и тд, как ты считаешь - обычно люди просто выходят из чатов
  • @eperesadka #259920 06:54 AM, 01 Mar 2022
    clickhouse as service есть у кого-то вне России, кто-то в курсе?
  • https://t.me/clickhouse_ru
    @OneLuckyShoot #259921 06:55 AM, 01 Mar 2022
    Просто надо закрывать группу и оставлять вступление в неё по предварительной верификации (например).
  • https://t.me/clickhouse_ru
    @critskiy #259922 06:55 AM, 01 Mar 2022
    @Alesapin @kshvakov админы, удалите пожалуйста все несвязанное тут с тематикой чата
  • /report
  • https://t.me/clickhouse_ru
    И сделать полноценный форум, по которому удобнее искать решения
  • @196211497 #259925 06:57 AM, 01 Mar 2022
    Технический вопрос: как удалить узел из ch-keeper? В конфиге я его закомментировал, но сервис после рестарта всё равно на него пытается ломиться, похоже он в снапшотах/логах записан
  • https://t.me/clickhouse_ru
    В Ваши города летят ракеты? В таком случае сочувствую
  • https://t.me/clickhouse_ru
    к моим родственникам по оба фронта летят ракеты, вам так станет легче?:)
  • https://t.me/clickhouse_ru
    Не интересно абсолютно, у вас есть в распоряжении тысяча групп, где вы можете выражать свое мнение об этом. Но явно не тут.
  • @infisamk #259929 07:00 AM, 01 Mar 2022
    Да не отвечайте им. Они не поймут. Это же другое.
  • @kiosaku #259942 07:08 AM, 01 Mar 2022
    вопрос по теме: где-бы посмотреть по вопросу тонкостей при 512GB RAM на узле?
  • @kiosaku #259943 07:08 AM, 01 Mar 2022
    вангую, что что-то можно выкрутить ...
  • @Svetel #259946 07:09 AM, 01 Mar 2022
    Люди разучившиеся гуглить
  • @kiosaku #259947 07:09 AM, 01 Mar 2022
    на 128GB регулярно oom приходил ...
  • https://t.me/clickhouse_ru
    @alexge ↶ Reply to #259947 #259948 07:10 AM, 01 Mar 2022
    Нужно начинать оптимизировать планировщик запросов под 128кб
  • https://t.me/clickhouse_ru
    @No1zzz ↶ Reply to #259920 #259949 07:10 AM, 01 Mar 2022
    не видел такого добра
  • фиг знает, там данных за терабайты, а запросов много и сразу …
  • @kiosaku #259953 07:13 AM, 01 Mar 2022
    ну и всякая фигня в виде реплик/шардов + replicatedmergetree
  • У AWS есть какой-то проект, я уже забыл совместно с какой-то дочкой яши. На мощностях AWS. И Alibaba cloud.
  • спасибо, глянем
  • @196211497 #259957 07:18 AM, 01 Mar 2022
    Повторюсь, а то за политотой осталось без ответа: как удалить узел из ch-keeper? В конфиге я его закомментировал, но сервис после рестарта всё равно на него пытается ломиться, похоже он в снапшотах/логах записан
  • @196211497 #259961 07:24 AM, 01 Mar 2022
    Ну или как мигрировать метаданные из ch-keeper в zookeeper?
  • https://t.me/clickhouse_ru
    Люди могут высказываться, в том числе и в технических чатах и где угодно. Это моя позиция, а не ClickHouse Inc к которой я не имею никакого отношения, если что.

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

    Да, сдержанность и холодную голову сейчас иметь стоит, и сидя на диване это проще - факт.

    Могу сказать одно - выводы еще очень рано делать.
  • https://t.me/clickhouse_ru
    Это много запросов одновременных?
  • https://t.me/clickhouse_ru
    @rasstr0en #259964 07:28 AM, 01 Mar 2022
    Я 60г только при переливках в 3 потока видел, больше кх не получилось по памяти нагрузить
  • @namelessmatt #259966 07:47 AM, 01 Mar 2022
    Привет, как чинить ClickHouse shard version is older than ClickHouse initiator version. It may lack support for new features. и следующее за ним Code: 261, e.displayText() = DB::Exception: Unknown BlockInfo field number: 5: While sending /var/lib/clickhouse/data/....? В директории с шардом накопилось много застрявших блоков, как их "протолкнуть"?
  • это данных много перелопачивает
  • @kiosaku #259968 07:48 AM, 01 Mar 2022
    btw, вот прямо сейчас один шард впал в ступор, вплоть до неработоспособности, пришлось прибивать 🙁 по логам ничего нет 🙁
  • https://t.me/clickhouse_ru
    А у вас настройка на ограничение group by стоит ?
  • @kiosaku #259970 07:50 AM, 01 Mar 2022
    скорее нет, чем да. но память всю не выжирал, oom-а не было
  • https://t.me/clickhouse_ru
    Ограничения на сложность запроса | Документация ClickHouse

    Ограничения на сложность запроса Ограничения на сложность запроса - часть настроек. Используются, чтобы обеспечить более

  • выключен, если речь про max_bytes_before_external_group_by
  • https://t.me/clickhouse_ru
    Ну кажись пора включить, а не добавлять оперативной памяти
  • https://t.me/clickhouse_ru
    @konnectrl #259975 07:53 AM, 01 Mar 2022
    А то завидно 🙈
  • @kiosaku #259976 07:53 AM, 01 Mar 2022
    увы, несмотря на ssd, хотелось бы ещё быстрее считать 🙁
  • @kiosaku #259977 07:54 AM, 01 Mar 2022
    имхо, новые проблемы полезли как раз после досыпки памяти
  • @kiosaku #259978 07:54 AM, 01 Mar 2022
    покурю логи пока-что …
  • https://t.me/clickhouse_ru
    Ну тогда смотреть запросы которые приходят, и как они работают с PK
  • просто много запросов сразу и разных. вот память и заканчивалась постоянно 🙁
  • @kiosaku #259981 07:59 AM, 01 Mar 2022
    разве что принудительно “размазывать” клиентов по всем узлам …
  • тысячи их....
    https://altinity.com/cloud-database/
    https://bytehouse.cloud/
    https://www.alibabacloud.com/product/clickhouse (eto hz)
    https://opensee.io/solutions/
  • сильно зависит от запросов... если разнородные лучше разделить на пользователей и дать разные ограничения в профилях (кол-во потоков итд)
  • это будет сложно. код (и пользователь) один и тот же, а запросы - разные
  • @kiosaku #259986 09:03 AM, 01 Mar 2022
    это всё переписывать надо тогда … 🙁
  • @kiosaku #259987 09:04 AM, 01 Mar 2022
    есть возможность динамического назначения профилей в зависимости от запроса?
  • https://t.me/clickhouse_ru
    С Уверенностью на 90%, нет
  • @kiosaku #259989 09:08 AM, 01 Mar 2022
    печалька ...
  • ну мы делаем проще, мы делаем в коде settings по типам запроса
  • и по мере плохих запросов чиним, добавляем "типы"
  • да это-то понятно, несколько пользователей. если код так умеет, конечно ...
  • @dj_mixer #259994 09:59 AM, 01 Mar 2022
    ну когда пользователи сами пишут ещё проще.
  • https://t.me/clickhouse_ru
    @edyya #259995 10:01 AM, 01 Mar 2022
    Колеги, а есть ли возможность обновлять конфиг для кафки без перезапуска сервера? (постоянно добавляются новые топики со своими секретами)
  • вроде там что на лету можно менять, а что-то требует жёсткого рестарта
  • https://t.me/clickhouse_ru
    @edyya ↶ Reply to #259997 #259999 10:24 AM, 01 Mar 2022
    ну вот. Добавление нового топика с секретом требует рестарта, что очень не удобно, если инстанс большой. Хочется понять есть ли возможность обойтись без рестарта
  • https://t.me/clickhouse_ru
    @KirillVSokolov #260001 10:32 AM, 01 Mar 2022
    Привет!
    Подскажите пжлст, почему могут не работать оконные функции?
    Версия 20.9.7.11
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #260001 #260002 10:42 AM, 01 Mar 2022
    потому что в этой версии их нет. Переходите на 21.8
  • https://t.me/clickhouse_ru
    Супер, доходчиво. Спасибо! =)
    Пойду просить обновлений
  • https://t.me/clickhouse_ru
    @norguhtar #260005 10:57 AM, 01 Mar 2022
    Добрый день. Подсажите как мне описать таблицу для получения данных из kafka при условии что данные приходят в формате protobuf? Я попробовал подключить движок как описано тут https://clickhouse.com/docs/ru/engines/table-engines/integrations/kafka/ но не вижу ничего. Ни ошибок ни данных
    Kafka | Документация ClickHouse

    Kafka Движок работает с Apache Kafka. Kafka позволяет: Публиковать/подписываться на потоки данных. Организовать отказоус

  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #260005 #260006 11:26 AM, 01 Mar 2022
    вряд ли вам кто-то поможет при таком способе задания вопроса. Ссылки на документацию обычно дают при ответе, а задавая вопрос вам стоит писать как конкретно вы делаете create table and create materialized view. версия сервера, формат протобуфа - все может оказаться важным.
  • https://t.me/clickhouse_ru
    @norguhtar #260007 11:27 AM, 01 Mar 2022
    Из документации как раз и не понятно, каким образом мне вынуть данные из топика в протобуфе
  • https://t.me/clickhouse_ru
    @norguhtar #260008 11:27 AM, 01 Mar 2022
    Если бы из нее было это понятно, я бы не задавал вопрос
  • https://t.me/clickhouse_ru
    @norguhtar #260009 11:27 AM, 01 Mar 2022
    Там пример приведен, только для JSONEachRow
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #260007 #260010 11:29 AM, 01 Mar 2022
    непонятно что непонятно.
    Делаете table engine = kafka, указываете Protobuf вместо JSONEachRow, как описано на странице формата, накрываете сверху MV с подходящим селектом. На каком этапе возникают проблемы?
  • https://t.me/clickhouse_ru
    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
  • https://t.me/clickhouse_ru
    Тоже самое написано в той самой документации что приведено выше
  • https://t.me/clickhouse_ru
    @Gena12M #260015 11:33 AM, 01 Mar 2022
    Всем привет
    Поделитесь пошаговой инструкцие по разворачиванию кластера? однонодовые научился ставить))) теперь бы кластер научиться)
  • https://t.me/clickhouse_ru
    Вы не правильно задаёте вопрос .... Как будто мы должны знать как ваши данные из кафки идут в clickhouse ... что за данные ... дайте хоть чучуть конкретики ... Что вы уже сделали ?
  • https://t.me/clickhouse_ru
    GitHub - tetafro/clickhouse-cluster: Simple clickhouse cluster with docker-compose

    Simple clickhouse cluster with docker-compose. Contribute to tetafro/clickhouse-cluster development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    так это в контейнейре ) мне бы на сервере обычным
  • @eudgeni #260019 11:34 AM, 01 Mar 2022
    кто подскажет, можно ли както в функции multiFuzzyMatchAny настраивать веса для расстояния Левинштайна?
  • https://t.me/clickhouse_ru
    @Gena12M #260020 11:35 AM, 01 Mar 2022
    но если другого мануала нет - попробую из ямла вытянуть конфиги)
  • https://t.me/clickhouse_ru
    @Gena12M #260021 11:35 AM, 01 Mar 2022
    Спасибо
  • https://t.me/clickhouse_ru
    Вот то как я это туда помещаю
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @norguhtar #260025 11:35 AM, 01 Mar 2022
    Вижу я на выходе что? Ничего
  • https://t.me/clickhouse_ru
    Tutorial | Документация ClickHouse

    ClickHouse Tutorial What to Expect from This Tutorial? By going through this tutorial, you’ll learn how to set up a simp

  • https://t.me/clickhouse_ru
    ну это мы уже читали)) я вот неделю кликхаус учу и могу сказать что документация крайне ужасная у неё))
  • https://t.me/clickhouse_ru
    @norguhtar #260028 11:37 AM, 01 Mar 2022
    В кафку данные пакуются в протобуф. Я хочу их поймать и переложить в таблицу. Сначала делал как описано в документации с VIEW оно все срабатывает ошибок не дает, просто нет данных пусто и все
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    что то новое) спасибо)))
  • @drg12345678 #260031 11:38 AM, 01 Mar 2022
    всем привет. прикручиваю кликхаус для хранения таймсерий с возможностью апдейта и пытаюсь понять, сколько нужно будет ресурсов для деплоймента.

    сделал materialized view для хранения

    ...
    SELECT a,
    b,
    c,
    d,
    e,
    maxState(updated_millis) as updated_millis_state,
    argMaxState(metric_value, updated_millis) as metric_value_state
    ...

    пытаюсь забэкфиллить этот MV из исходной таблицы, где сейчас 1B значений при помощи
    insert into metric_readings_deduped
    select a, b, c, d, e, maxMerge(updated_millis_state) AS updated_millis, argMaxMerge(metric_value_state) as metric_value
    from metric_readings
    group by a,b,c,d,e

    и локально у меня эта агрегация не проходит по памяти. вроде логично, данных много, но есть странное ощущение, что если metric_readings уже отсортирована по a,b,c,d,e то агрегация должна быть возможна в стиле mergeSort без выделения большого количества дополнительной памяти.

    я правильно понимаю, что кликхаус этого не делает (пока)?
  • https://t.me/clickhouse_ru
    Заглядывайте сюда ещё https://kb.altinity.com/, многое описано подробно
  • https://t.me/clickhouse_ru
    угу
    спасибо)
  • https://t.me/clickhouse_ru
    А где MV ?
  • https://t.me/clickhouse_ru
    Я для начала пытаюсь просто прочитать из таблицы, добавляю специальную опцию в документации написано что можно
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #260023 #260036 11:42 AM, 01 Mar 2022
    похоже что вот тут у вас ошибка:
    kafka_format = 'test:Operation',
    тут нужно ставить имя формата. в вашем случае Protobuf. А описание схемы в format_schema, как указано тут - https://clickhouse.com/docs/ru/interfaces/formats/#protobuf
  • https://t.me/clickhouse_ru
    Так указано в мануале что выше стоит
  • https://t.me/clickhouse_ru
    @norguhtar #260038 11:42 AM, 01 Mar 2022
    CREATE TABLE queue (
    timestamp UInt64,
    level String,
    message String
    ) ENGINE = Kafka('localhost:9092', 'topic', 'group1', 'JSONEachRow');
  • https://t.me/clickhouse_ru
    @norguhtar #260039 11:43 AM, 01 Mar 2022
    в документации стоит так
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #260037 #260040 11:43 AM, 01 Mar 2022
    ??
    kafka_format — формат сообщений. Названия форматов должны быть теми же, что можно использовать в секции FORMAT, например, JSONEachRow. Подробнее читайте в разделе Форматы.
  • https://t.me/clickhouse_ru
    @norguhtar #260041 11:43 AM, 01 Mar 2022
    Я и говорю что в документации не хватает примеров
  • https://t.me/clickhouse_ru
    Допустим. Но куда класть settings и как они там выглядят? SELECT * FROM test.table FORMAT Protobuf SETTINGS format_schema = 'schemafile:MessageType'
  • https://t.me/clickhouse_ru
    @norguhtar #260043 11:45 AM, 01 Mar 2022
    И надо ли это туда класть?
  • https://t.me/clickhouse_ru
    @norguhtar #260044 11:46 AM, 01 Mar 2022
    В kafka_schema?
  • https://t.me/clickhouse_ru
    @norguhtar #260045 11:47 AM, 01 Mar 2022
    CREATE TABLE IF NOT EXISTS clickhouse.kafka_ops
    (
    account_number String, -- 40702810310000887003
    operation_type String, -- debit
    operation_status String, -- transaction
    rrn String -- 123456789012
    ) ENGINE = Kafka()
    SETTINGS
    kafka_broker_list = 'kafka:9092',
    kafka_topic_list = 'ops',
    kafka_group_name = 'test',
    kafka_format = 'Protobuf'
    kafka_schema = 'test:Operation',
    kafka_num_consumers = 4;
  • https://t.me/clickhouse_ru
    @norguhtar #260046 11:47 AM, 01 Mar 2022
    К примеру так?
  • Тоже, кстати, интересен этот вопрос. Может кто знает?
  • да там всё просто (когда разобрался) 🙂
  • @kiosaku #260049 01:24 PM, 01 Mar 2022
    тебе с шардированием или с реплицированием? или и то и другое?
  • https://t.me/clickhouse_ru
    Та я учу пока) все варианты нужно знать)
  • @kiosaku #260051 01:25 PM, 01 Mar 2022
    ну, гугл в помощь
  • https://t.me/clickhouse_ru
    @Gena12M #260052 01:25 PM, 01 Mar 2022
    Угу)))
  • @kiosaku #260053 01:25 PM, 01 Mar 2022
    а так - стоит вон 3/2 (3 nodes/shards + replicaiton factor 2)
  • https://t.me/clickhouse_ru
    @ihard #260057 07:20 PM, 01 Mar 2022
    Подскажите есть ли возможность запустить OPTIMIZE TABLE FULL на большую таблицу для которой CH по умолчанию не может выполнить мерж тк ему не хватает x2 места невзирая на последствия (возможно изменением какой то опции или оператором в sql)?
    В логе сообщение - (MergerMutator): Won't merge parts from 202112_0_131470_13 to 202112_1779791_1779791_0 because not enough free space.
  • https://t.me/clickhouse_ru
    Он мержит в новый файл, то есть место ему в любом случае нужно
  • https://t.me/clickhouse_ru
    @rasstr0en #260060 08:48 PM, 01 Mar 2022
    Можно поставить zstd и сэкономить чутка места если не стоит
  • https://t.me/clickhouse_ru
    @rasstr0en #260061 08:50 PM, 01 Mar 2022
    Или детачнуть что-то большое, унести, помержить, принести обратно и аттачнуть (но я не пробовал)
  • https://t.me/clickhouse_ru
    @rasstr0en #260062 08:51 PM, 01 Mar 2022
    Или погрепать detached и прочий мусор, возможно можно найти что потереть чтобы освободить место
  • https://t.me/clickhouse_ru
    @ihard ↶ Reply to #260059 #260063 09:04 PM, 01 Mar 2022
    Там таблица graphitemergetree с rollup правилами которые схлопывают метрики - ни разу не видел чтобы на графике места на разделе с базой реально использовалось x2 места от партиции при мерже
  • https://t.me/clickhouse_ru
    Так а зачем тебе финалтзировать всю таблицу целиком? Финализируй по партициям. Они же у тебя по месяцам. Скорее всего 1 такая финализация 1 такой месячной партиции займет где то сутки.
  • https://t.me/clickhouse_ru
    @ihard ↶ Reply to #260064 #260065 09:08 PM, 01 Mar 2022
    Так я и не могу запуститить финализацию одной партиции за декабрь 202112 - метрик насыпало
  • https://t.me/clickhouse_ru
    А, ну тогда тут вариантов на самом деле несколько:
    1. Мы когда то давно, патчили исходники КХ, и там меняли х2 требуемого места до х1.1, после чего ставили нашу версию на 1 инстанс реплики КХ, и делали финализация партиции. Возможно сейчас это можно сделать параметром в конфиге КХ. Но я честно говоря хз.
  • https://t.me/clickhouse_ru
    @vlkolobaev #260067 09:13 PM, 01 Mar 2022
    2. Берешь старые партиции, отцепляешь их (detach), переносишь на соседний сервер, освобождая место на текущем кластере, и запускаешь финализацию. После того как она закончится, возвращаешь партицию.
  • https://t.me/clickhouse_ru
    @ihard #260068 09:16 PM, 01 Mar 2022
    Ну мой вопрос то как раз был в том есть такая опция или нет, добавить дисков переносить партиции это все да можно, но хотелось избежать
  • https://t.me/clickhouse_ru
    @vlkolobaev #260069 09:16 PM, 01 Mar 2022
    3. Берешь ещё 1-2 сервака с hdd на 50Тб++, добавляешь их в существующий кластер КХ, и мигрируешь все исторические партиции (fetch+attach) на эти новые сервера. Таким образом ты создаёшь холодное хранилище исторических данных
  • https://t.me/clickhouse_ru
    Скорее всего ты скоро упрешся в место так, что этот параметр тебя больше не спасет, и нужно принимать более решительные меры.
  • https://t.me/clickhouse_ru
    @ihard #260071 09:18 PM, 01 Mar 2022
    Метрики уже почистили и следующие партиции меньше раза в 3 а после мержа они ещё меньше тч места на диске достаточно
  • https://t.me/clickhouse_ru
    Возможно ответ тут: https://github.com/ClickHouse/ClickHouse/issues/7047
    Force ignore the free space check in OPTIMIZE TABLE · Issue #7047 · ClickHouse/ClickHouse

    Use case I've got a 500GB table on a 1.5TB volume. It has 20 partitions. I ran OPTIMIZE TABLE my_table; and it returned immediately, doing nothing. I looked at the server logs and saw 2019....

  • https://t.me/clickhouse_ru
    Возможно, что никак. Создайте вопрос в гитхабе
  • https://t.me/clickhouse_ru
    Никак
  • @VMerechin #260075 10:52 PM, 01 Mar 2022
    Привет, подскажите на счёт движка hdfs:
    1. Если на hdfs лежат файлы (parquet) создать таблу с данным движком будет ли деградация в скорости работы с данной таблицей по сравнению с mergetree?
    2. При удалении/добавлении файлов данные подтягиваются сразу при селекте или через какое то время?

    3. Разумно ли вообще использовать данный движок для больших объёмов (~4млрд)?
  • 1. Будет намного медленнее
    2. Данные будут доступны сразу, кэширования нет
    3. Если есть возможность использовать нативный формат с мержтри, то нет смысла.
  • 02 March 2022 (136 messages)
  • Ну уж нет, я от этого поделия в итоге отказался, уж очень нетривиальная настройка у него + баги, баги, баги. Zk действительно ставится и работает в формате "apt install, пять строчек в конфиге, забыл о нём на года"
  • @196211497 #260079 03:30 AM, 02 Mar 2022
    Да, в итоге приходится пересодавать кластер с нуля и перекачивать данные заново, но могу себе позволить :).
  • https://t.me/clickhouse_ru
    @Fromnoplace #260080 05:29 AM, 02 Mar 2022
    @kshvakov, @milovidov_an Коллеги, есть необычный вопрос:
    - Мы используем CH в европейском продукте
    - Консультанты пока неофициально попросили изучить вопрос вероятных альтернатив

    Мне CH очень нравиться. И сам он и как он развивается и какие идеи закладываются.

    Знаю, вы отделились в европейское Юр.лицо.
    Изучаете ли вы эту проблему и есть ли какие-то рекомендации?

    ВАЖНО: предлагаю политическую часть оставить за скобками и больше сфокусироваться на самой тех.угрозе...
  • если вы используете opensource продукт, не клауд услугу, проблем нет нигде. т.е. он ничем от Постгрес не отличается.
    ну и юр-лицо у них американское теперь.
  • @Nikita_bgd #260082 05:53 AM, 02 Mar 2022
    Кто-нибудь сталкивался с ошибками при сборке такого вида?
    /src/Storages/PostgreSQL/StorageMaterializedPostgreSQL.cpp:355:25: error: redundant move in return statement [-Werror=redundant-move]
    собираю на убунте 20.04 версию 22.2.3.5-stable по инструкции отсюда https://clickhouse.com/docs/en/development/build/
    clang-14 поставил
    есть ли какие-то ключи компилятора, не указаннные в инструкции, которые нужно установить?
    Build on Linux | ClickHouse Documentation

    How to Build ClickHouse on Linux Supported platforms: x86_64 AArch64 Power9 (experimental) Normal Build for Development

  • https://t.me/clickhouse_ru
    @Fromnoplace #260083 05:54 AM, 02 Mar 2022
    @dj_mixer О, поверьте, со стороны аудиторов это выглядит ни так...

    Любая технология, в независимости от ее лицензирования, является частью инфраструктуры компании...
    К томуже к Postgre тоже часто немало вопросов - но это уже другая история...
  • Да, там есть третьесторонние проверки. Это нормально. Т.е. вам надо найти тех кто оценит
  • @dj_mixer #260085 05:59 AM, 02 Mar 2022
    Я к тому, что вряд ли у вас один КХ такой... Все равно 20-30 компонентов проверять на риски итд
  • Мы в конечном итоге не смогли пользоваться никаким облачным CH, так как в хранимом присутствуют ПД. А использование облачного провайдера = передача ПД третьим организациям. Единственный вариант был развёртывание аутсорс кластера в нашем аккаунте AWS, но та организация, которая собиралась предоставлять такие услуги (через AWS Marketplace) сказала что модель bring-your-own-account не реализован и в планах на конец 2022 года. Так что если у вас ПД и вы скованы своими EULA/TOS в части их передачи, то только своими силами.
  • https://t.me/clickhouse_ru
    @Fromnoplace #260087 06:03 AM, 02 Mar 2022
    @dj_mixer при всем уважении, или вы не сталкивались с этим или не правильно поняли вопрос (тогда я плохо выразился)...

    В больших компаниях аудит проходит вся система. 20 там компонентов или 120.
    Заключение выдаётся не в 1 фразу ок/неок. Вопрос не на пустом месте.

    Как я и сказал, я очень хочу остаться на этой технологии.
    Но что бы понимать саму эту проблему, с ней нужно сначала столкнуться ..
  • https://t.me/clickhouse_ru
    @Fromnoplace #260088 06:06 AM, 02 Mar 2022
    Andrey, мы это и так делаем своими силами. Эту проблему обошли, создав внутренний штат. Хотя ваши поинты хорошие - возьму на заметку...

    Вопрос другого характера.
    Я к сожалению не могу его полностью развернуть не создав лишнего коммуникационного слоя.

    Надеюсь что тут есть ребята, кто столкнулся с этой проблемой и у них есть идеи...
  • Мы сталкивались но не с кх. Решалось заказом дополнительного аудита. Но конечно уровень регуляторов у всех свой. Ну и облак не было. Он премис.
  • @196211497 #260090 06:08 AM, 02 Mar 2022
    Ещё проблемка с ПД - локализация данных. Сейчас мы данные наших EU клиентов гоним в US, и их это вообще не радует. Но, конечно, не настолько как в парах RU, EU и RU, US 😁
  • @196211497 #260091 06:10 AM, 02 Mar 2022
    Отбрёхиваемся только тем что энд-юзеры, ПД которых и хранится, сами согласились их отдать и должны были прочитать privacy policy, где всё написано (я надеюсь, т.к. сам эту портянку не читал, конечно же)
  • https://t.me/clickhouse_ru
    @Fromnoplace #260092 06:26 AM, 02 Mar 2022
    Перепрыгивать с CH - нешуточное и нежеланные развлечение...
    Поэтому и написал сюда. Понимаю что это opensource, но мир пошатывает и отношение к технологиям тоже...
    А тут у нас тех.сообщество - есть кого спросить...
  • https://t.me/clickhouse_ru
    @Fromnoplace #260093 06:26 AM, 02 Mar 2022
    Пока изучаем вопрос, как на что-то наткнемся, поделюсь...
  • https://t.me/clickhouse_ru
    Попробуйте с https://altinity.com/ связаться
    ClickHouse Software And Services — Altinity

    Deploy and operate ClickHouse, a lightning fast, open source SQL data warehouse for real-time analytics, time series, and log analysis.

  • https://t.me/clickhouse_ru
    @Fromnoplace #260095 06:30 AM, 02 Mar 2022
    @kshvakov как вы думаете, они смогут оказать консультацию такого рода не клиенту?
  • https://t.me/clickhouse_ru
    @kshvakov #260096 06:31 AM, 02 Mar 2022
    Там вменяемые люди сидят, напишите им
  • https://t.me/clickhouse_ru
    Ну мы вряд ли можем сказать что-то больше, чем общеизвестные факты. ClickHouse и права на все, что с ним связано, принадлежат Американской компании. Сообщество международное. Основные разработчики в Амстердаме
  • https://t.me/clickhouse_ru
    @alexanderzaitsev #260098 06:45 AM, 02 Mar 2022
    Альтинити тоже американская компания, команда из разных стран.
  • https://t.me/clickhouse_ru
    @alexanderzaitsev #260099 06:46 AM, 02 Mar 2022
    Альтернатив ClickHouse-у нет :)
  • ну вот сейчас где то огорчились люди из hpe/microfocus vertica :)
  • @111010502 #260101 07:18 AM, 02 Mar 2022
    Синглстор тоже где то плачет)
  • @sklepych #260102 07:18 AM, 02 Mar 2022
    моя бывшая компания переехала с вертицы на снежинку (вобщем по стоимости плюс минус то на то) но плюс снежинки в том, что там все необходимые комплаенсы есть уже
  • https://t.me/clickhouse_ru
    @Fromnoplace #260103 07:18 AM, 02 Mar 2022
    Альтернативы есть. Но список их минусов длиннее чем хотелось бы :)))
  • вертика оказалась сильно медленнее кликсы при тестировании на одинаковом железе. база где-то под миллион чтоль позиций
  • “снежинка” ?
  • https://t.me/clickhouse_ru
    @Fromnoplace #260106 07:19 AM, 02 Mar 2022
    Я так понимаю Snowflake..
  • @sklepych #260107 07:19 AM, 02 Mar 2022
    сноуфлейк
  • https://t.me/clickhouse_ru
    snowflake наверное
  • из облачных решений да, вполне...
  • @kiosaku #260110 07:20 AM, 02 Mar 2022
    thx
  • ну то, что вы его тестировали подтверждает то, что это именно альтернатива.
    там плюсы тоже есть свои, смотря что ищется...
  • https://t.me/clickhouse_ru
    Вот сделают Вертику опенсорсной — тогда не будут огорчаться )
  • @sklepych #260113 07:25 AM, 02 Mar 2022
    ну надо отметить что в свое время вертицу мне приходилось периодически подкручивать и подвинчивать, а вот как переехал в снежинку то я перестал ее админить вообще, дата инженеры сами ковырялися более менее успешно
  • @sklepych #260114 07:25 AM, 02 Mar 2022
    это есть плюс
  • @sklepych #260115 07:27 AM, 02 Mar 2022
    клик кстати круто, я тогда таскал людей своих в 1.1.1.1 показать, на встречу с Миловидовым и там презентовали тогда решение как раз от клаудфлеры, но наши решили что еще пока продукт детский и мало кто даже пошел, даже жалею что не смог их убедить тогда.
  • @kiosaku #260116 07:46 AM, 02 Mar 2022
    Overhead Command Shared Object
    64.33% QueryPipelineEx clickhouse
    19.11% QueryPipelineEx [kernel]
  • @kiosaku #260117 07:47 AM, 02 Mar 2022
    сильно взлетели system interrupts - грузят данные в кликсу. где покопаться можно на предмет оптимизации?
  • @kiosaku #260118 07:47 AM, 02 Mar 2022
    48 ядер в полочку …
  • @kiosaku #260119 07:50 AM, 02 Mar 2022
    CPU | sys 840% | user 3215% | irq 24%
  • у вас же запросы тормозят нет?
    может идет запрос в таблицу которая сильно партиционирована а в запросе не указан partition key в where clause
  • посмотрите в лог файлах какие запросы идут и в query log долгие запросы
    select * from system.query_log ql where query_duration_ms >2000; -- change time
  • @kiosaku #260122 07:58 AM, 02 Mar 2022
    спасибо, буду смотреть
  • аккуратнее
    добавье фильтр по event_date/event_time
    а то будете сканить всю таблицу
  • да, привычка что у нас TTL низкий...
  • @kiosaku #260125 08:07 AM, 02 Mar 2022
    да … 5 штук длительной более минуты … thx, пошёл нахлобучивать виновных 🙂
  • https://t.me/clickhouse_ru
    @konnectrl #260126 08:11 AM, 02 Mar 2022
    Мда щас кто то получит люлей .... 😱
  • у нас есть запросы по 10 мин, ессно тут надо смотреть как оно должно отрабатывать вс как на самом деле... но да, кривым запросом КХ тормознуть на раз два (тот же select * на таблице с тыс колонок и парой тыс партиций - всякие ОРМ такое любят)
  • @7699150 #260128 09:41 AM, 02 Mar 2022
    Ребят, привет!
    Я уже больше двух лет нахожусь в комьюнити ClickHuose. Являюсь активным евангелистом КХ во всех компаниях, где я работал. Вы могли ранее видеть много моих сообщений здесь. Я жил в Донецке. В 2014м из-за войны переехл в Кеив. Живу и работаю в Киеве и сейчас у моей страны настало очень тяжелое время. Российская артилерия и ракеты бомбят мой город, как и много других городов Украины.
    Этот чат — это одно из очень немногих мест с талантливой и умной российской аудиторией, к которому у меня есть доступ.
    Я вас очень прошу не оставаться в сторонее и хотя бы с помощью видео или просто постом в своих соцсетях высказать ноту протеста войне, которую российская армия развязала у меня в стране.

    Знаю что этот чат не для политики, поэтому обещаю больше сюда не писать такие сообщения.

    Напоследок прошу посмотреть видеообращения к российским айти специалистам нашего министра цифровой трансформации:
  • @7699150 #260129 09:42 AM, 02 Mar 2022
    Обращаюсь к российским айтишникам. У вас забирают лучшие года жизни.
  • https://t.me/clickhouse_ru
    @996024619 #260130 09:43 AM, 02 Mar 2022
    👍
  • https://t.me/clickhouse_ru
    @ElijahCrane #260131 09:44 AM, 02 Mar 2022
    Годы жизни и внимания всё-таки отняла Украина, с этим постоянным курсом "Украина-Антироссия"
  • у меня клиент остановил контракт на неопределенное время, у него денег нет. я вчера написал в группу 'ИТ канада' что потерял работу, ищу. мож кому нужен C# Net Core прогер. там украинцы начали радоваться мол так тебе и надо. мол ты виноват в нападении вот разгребай. а потом один укр гандон говорит мне А ты скажи чей крым?, не бойся не забаню. я говорю А что мне боятся. Крым русский, за него бились Екатерина и Колчак. они мне отключили возможность писать в группу. ну я вышел с группы
    я за них переживаю тут но не выхожу на улицу, бездействую, а они сука радуются что у меня плохо дела и действуют.
  • https://t.me/clickhouse_ru
    @YuriKurilenko #260133 09:46 AM, 02 Mar 2022
    политика так и работает... поссорились 2 дядьки, а страдают 40 млн
  • https://t.me/clickhouse_ru
    @YuriKurilenko #260134 09:46 AM, 02 Mar 2022
    подчистите, пожалуйста, чат.
  • @da_vin4i #260136 09:52 AM, 02 Mar 2022
    ну если тебя не волновало, то не надо говорить за всех. А вообще это чат для кооперации по рабочим вопросам, не превращайте его в херню
  • @da_vin4i #260137 09:52 AM, 02 Mar 2022
    для этого уже есть linkedIn =)
  • @kiosaku #260138 09:52 AM, 02 Mar 2022
    ау в телеге есть?
  • @270827469 #260139 09:52 AM, 02 Mar 2022
    Давайте без политике в этом чате
  • @kiosaku #260140 09:53 AM, 02 Mar 2022
    btw, у кого-то есть опыт сравнения профита от переезда ssd -> nvme ?
  • Если здесь давать высказываться на политические темы, то так или иначе участники разделятся по сути на два лагеря. Поэтому лучше вообще не допускать здесь какие-либо политически публикации. Они разобщают людей.
  • https://t.me/clickhouse_ru
    200
  • поэтому лучше про nvme 🙂
  • @simpl1g #260145 10:04 AM, 02 Mar 2022
    Ребята адепты мантры “8 лет молчали”, можете писать мне в личку, могу простым языком объяснить что это чистой воды росийская пропаганда(наврятли конечно это вас переубедит, потому что в такое тяжело поверить и ваш мир может рухнуть). Я из Беларуси если что.
  • https://t.me/clickhouse_ru
    Думаю, что запреты на диалог между людьми разобщают больше. Если мы говорим о правах - вот они и вместе с ними ответственность и последствия. Мы уже начали жить в новом мире и начинать с запретов и цензуры не стоит - этого сейчас хватает в СМИ. Фейк ньюс и горе SMM хватает везде (тут оно будет чиститься), так что давайте научимся слушать и слышать других, даже если это не приятно или идет в разрез убеждениями или еще чем-то.

    Regardless of your feelings about war, never hate the warrior.
  • https://t.me/clickhouse_ru
    @tron_wai #260147 10:06 AM, 02 Mar 2022
    Пожалуйста, прекратите это virtue signaling тут.
  • @MaximFN #260148 10:07 AM, 02 Mar 2022
    Проблема всей истории с обсуждением политики в беседе для обсуждения технологии в том, что в конечном итоге все поругаются и перестанут друг другу помогать именно с тем, ради чего все здесь - беседа загнется и все будет потеряно. Пожалуйста, создавайте другие беседы, обсуждайте - это важно очень, но не здесь...
  • Вопрос не в обсуждении как таковом. К тому же для этого есть площадки. Я считаю, что должен быть нейтралитет, который должен поддерживаться всеми участниками. Ни одно политическое обсуждение не даёт правдивой информации. То есть это лишь отражение пропаганды или просто мнения большинства, которые никак не являются объективными. Тут нет ни одного человека, который бы был за войну. Но вот причины конфликта у всех различаются. Также, как и методы решения этого конфликта. И да, все мы за мир. Но как это меняет ненависть или нетерпимость друг к другу, которая при достаточном количестве сюда политических вбросов станет в итоге превалировать?
  • у нас непосредственно переезда не было, но есть разные системы на разных.
    В общем КХ заточен под большие sequential reads (если смотрим только классическое использование для тяжелых нечастых запросов), NVMe диски в целом имеют этот показатель на порядок лучше (паралеллизм + хороший queue depth) + NVMe диски.

    SATA SSD vs NVME - будет значительный выигрыш (в 4-5 раз мин)

    SAS SSD vs NVME - будет выигрыш но не такой значительный (но с SAS можно делать нормальный HW raid with hot replacement + writeback cache, который имеет свой плюс).

    но лучше все равно рассматривать в контексте производительности самих дисков/подсистемы.
    ну и опять таки КХ чаще упирается в CPU при сканировании. Если хотите использовать всю мощь массива NVMe дисков придется иногда выключать компрессию и терять в месте на диске.
  • @infisamk #260151 10:20 AM, 02 Mar 2022
    @kshvakov Реальные цели политических публикаций здесь - не получение поддержки, а выявление инакомыслящих или просто заставить всех переругаться. Или есть другие цели? Может быть я не правильно понимаю тех, кто сюда скидывает политику?
  • https://clickhouse.com/benchmark/hardware/#
    можете тут попробовать сравнить сопоставимые системы
    Performance comparison of ClickHouse on various hardware

    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
    @akomiagin #260153 10:28 AM, 02 Mar 2022
    Админы, удалите политические сообщения из чата, пожалуйста!
  • https://t.me/clickhouse_ru
    @rjs45 ↶ Reply to #260151 #260154 10:30 AM, 02 Mar 2022
    Этотбыло обращение минцифры Украины. Он грамотный мужик, много чего сделал за время пребывания н посту. В нем нет призывов, нет ненависти. Он обращается к айтишникам, как к умным, думающим людям. Не к тем, кто живет в глубинке на минималку и даже не пойиюмет что случилось, а к тем кто реально ощутит. И просит задуматься.

    Я за сохранение чата чисто по тематике. Но, к сожалению, молчать иногда бывает сложно.

    Больше не буду задевать эту тему
  • https://t.me/clickhouse_ru
    @kshvakov #260155 10:32 AM, 02 Mar 2022
    Вот и разобрались, дальше можно по делу;)
  • @infisamk #260156 10:35 AM, 02 Mar 2022
    Ок. Не хотел высказываться прямо, но придется. Допустим, я русский и выскажусь против действий России на Украине. В этом случае я автоматически становлюсь преступником (госизмена). Но вдруг я украинец, и также выскажусь против войны с Россией. И я точно также автоматически становлюсь преступником (госизмена). Идем дальше. Я русский и выступаю за действия России на территории Украины - я враг и преступник Украины. Я украинец и выступаю за действия против России - я враг и преступник России.
    Возникает вопрос. А надо ли устраивать на чисто технической площадке бои и выяснения отношений? К чему подталкиваете народ? Чтобы они становились преступниками в собственных странах или врагами в чужих?
  • https://t.me/clickhouse_ru
    @kshvakov #260157 10:36 AM, 02 Mar 2022
    @infisamk сам же просил завязывать. Так что прекращай
  • @Enjoyq #260158 10:37 AM, 02 Mar 2022
    Всем привет, у меня после обновления до 22.2.2.1 перестали работать запросы в mysql (from mysql ('host...))
    Но не все, а те, которые длиннее (на мои ощущения) 10 секунд.
    Выпадают с такой ошибкой
    DB::Exception: mysqlxx::ConnectionLost: Lost connection to MySQL server during query (HOST).

    Вопрос такой, как это поправить, а если никак, то как можно сделать безопасный даунгрейд? Сервер один, без шардов и тд.
  • вот тут не совсем понятно: “NVMe диски в целом имеют этот показатель на порядок лучше (паралеллизм + хороший queue depth) + NVMe диски.”

    видимо, в первом случае не nvme имелось в виду?
  • https://t.me/clickhouse_ru
    Hot swap доступен и на nvme, writeback cache крайне сомнителен на больших массивах и хороших дисках - большинство контроллеров не способно переварить производительность 4х ссд, что уж говорить в сравнении с nvme
  • я вчера делал downgrade 22.2.2.1 -> 22.1.3.7. ничего не пропало, поднялось сразу
  • @Enjoyq ↶ Reply to #260161 #260162 10:38 AM, 02 Mar 2022
    а можешь расписать как делал плз?
  • 1. остановил сервисы
    2. выполнил downgrade
    3. запустил сервисы
  • @Enjoyq #260164 10:39 AM, 02 Mar 2022
    я бы вообще на 21.8.14.5 откатился, но переживаю, что могут быть проблемы
  • https://t.me/clickhouse_ru
    Надо мерять на вашей нагрузке. Смотрите что с нагрузкой и очередью на диск.

    Недавно мерял лейтенси с виртуализацией и без (под OLTP в 1 поток)
    nvme ~20-30-us
    ssd ~30-50us (контроллер в pass thru, иначе лейтенси растет)
    kvm+ssd ~180+ us

    Если используется виртуализация, то заметить разницу почти невозможно, как и утилизировать диски из 1VM c одной OLTP-базы. Если на голом железе - смотрите по текущей нагрузке, у нас CH большую часть запросов обслуживает из кеша (по горячим данным), io на чтение минимально, можно хоть на hdd
  • да, по sequential reads если CPU тянут - NVMe на порядок лучше чем SATA, и просто лучше чем SAS.
    но опять таки смотрите на ваши нагрузки. у нас например сервера 192 ядер и упираются в них а не в массив из SAS SSD.
  • с помощью fio есть возможность померять?
  • @softbot_xxl #260170 12:11 PM, 02 Mar 2022
    Как вставить с json прямо в клиенте? Типа insert into table format JSONEachRow ‘{}’ , сча оно ругается.
  • Для начала можно сделать SELECT ... FORMAT JSONEachRow, чтобы понять какой формат JSON нужен
  • Ну json он и есть json, тем более в примере выше он вообще пустой. Ругается на

    Code: 62, e.displayText() = DB::Exception: Syntax error: failed at position 128 ('insert') (line 8, col 1): insert into test format JSONEachRow '{"string.names.0": ["name"],"string.values.0": ["value"]}' FORMAT JSON. Expected one of: DoubleColon, LIKE, GLOBAL NOT IN, PRIMARY KEY, end of query, AS, DIV, IS, INTO OUTFILE, OVER, OR, QuestionMark, BETWEEN, NOT LIKE, MOD, AND, TTL, SETTINGS, PARTITION BY, IN, SAMPLE BY, ILIKE, FORMAT, NOT ILIKE, NOT, COMMENT, token, NOT IN, GLOBAL IN (version 21.8.14.5 (official build))
  • @softbot_xxl #260173 12:20 PM, 02 Mar 2022
    Ок я понял, надо по сырому передавать.
  • @softbot_xxl #260174 12:20 PM, 02 Mar 2022
    insert into table format JSONEachRow {}
  • https://t.me/clickhouse_ru
    @Natalia_Sowa #260176 01:24 PM, 02 Mar 2022
    Ребята, привет) Я дико извиняюсь, что вторгаюсь в вашу группу, но у меня только одно сообщениеи и больше не буду ни к кому приставать, честное слово 😊 Мне сейчас очень нужен Presales-архитектор Clickhouse для российского разработчика платформы управления данными, поэтому если это может заинтересовать вас или кого-то из знакомых, с удовольствием расскажу подробнее. Еще раз извините за наглость, всем спокойного дня)
  • https://t.me/clickhouse_ru
    @krigar1184 #260178 01:58 PM, 02 Mar 2022
    Всем привет. Кластер из двух нод, 4 таблицы ReplicatedMergeTree. В system.errors примерно раз в минуту прилетает ошибка KEEPER_EXCEPTION: Transaction failed (Node exists). С чем может быть связано?
  • https://t.me/clickhouse_ru
    мерял fio --rw=randwrite --ioengine=sync --fdatasync=1 --directory=./test-data --size=16g --bs=16k --iodepth=1 --name=mytest, но измерения не были связаны с CH а были под OLTP базу (мелкие wr+fsync)

    Скорее рекомендовал бы собрать метрики с имеющейся инсталляции CH с реальной нагрузкой - то, что есть в iostat -kx 10 (util, w/s, r/s, и прочие байты-иопсы-лейтенси) а также CPU за какой-то период времени и на этом основании принимать решение, есть ли смысл менять hdd/ssd/nvme. У меня ощущение, что в куче кейсов разницы ssd/nvme нет.
  • https://t.me/clickhouse_ru
    system.macros проверьте
    replica должен быть разный на всех сервереах

    SELECT hostName(), * FROM clusterAllReplicas('your-cluser',system.macros)
  • https://t.me/clickhouse_ru
    Спасибо, проверил, replica разный
  • https://t.me/clickhouse_ru
    посмотрите /var/log/clickhouse-server/clickhouse-server.err.log
    на предмет вашего Node exists
    может там будет имя ноды и будет чуть понятнее... но не факт

    у вас zookeeper или clickhouse-keeper ?
  • https://t.me/clickhouse_ru
    zookeeper
  • https://t.me/clickhouse_ru
    @sibbarb #260187 03:55 PM, 02 Mar 2022
    Всем привет , прикол).
    UNION is not supported for MATERIALIZED VIEW
    Как можно обойти ?? Без юниона тут вообще никак
  • А расскажите какая цель? Что хотите сделать?
  • https://t.me/clickhouse_ru
    @sibbarb #260190 03:59 PM, 02 Mar 2022
    Агрегат по дню создать
    Условно есть 3 разные таблички.
    В одной транзакции пользователя по одному продукту
    В другой по другому.
    И хочу получить таблицу день,юзер , какая то стата...
    Джойном по дате не получится , ибо юзер мог не совершать чего-то в какой то день
  • @beleychev #260191 04:00 PM, 02 Mar 2022
    FULL JOIN едрён батон
  • https://t.me/clickhouse_ru
    @sibbarb #260192 04:02 PM, 02 Mar 2022
    Ну да так то можно попробовать
  • https://t.me/clickhouse_ru
    можно попробовать еще логи zookeeper посмотреть
  • https://t.me/clickhouse_ru
    Сделайте 2 матвью поверх обеих таблиц которые будут вставлять в 1 целевую
  • https://t.me/clickhouse_ru
    @logast #260196 04:42 PM, 02 Mar 2022
    Привет, такой вопрос. В какой-то версии добавили чистку сатрых mutations+log в zookeeper? Я просто смотрю у меня 2020 года висят DataNode по 256КБ с огромной выборкой блоков в мутации, которые едят ram как часть снапшота.
  • https://t.me/clickhouse_ru
    Оно чистится по штукам, а не времени. Сделали почти сразу с появлением мутаций.
  • https://t.me/clickhouse_ru
    ZooKeeper Installation and Configuration

    How to configure Zookeeper to work best with ClickHouse

  • https://t.me/clickhouse_ru
    Спасибо, гляну
  • https://t.me/clickhouse_ru
    @logast ↶ Reply to #260197 #260200 04:46 PM, 02 Mar 2022
    Т.е она поломалась, раз еще висит в самом zk?
  • https://t.me/clickhouse_ru
    Почему? Там по дефолту штук 100 последних чтоли хранится.
  • https://t.me/clickhouse_ru
    @logast ↶ Reply to #260201 #260203 04:58 PM, 02 Mar 2022
    У меня конечно версия очень старая, но 22к записей об слияниях только по 1 таблице висят. [2/03/22 7:56:00] ~/Desktop cat znode-export-2022-03-02T16_54_04.582Z | jq | grep '/log/log-' | wc -l
    22973
  • https://t.me/clickhouse_ru
    @zenoleg #260204 04:59 PM, 02 Mar 2022
    Привет!

    На проекте по бизнес задаче нужно совершать апдейт одной колонки.

    Условно, в КХ храню список кликов и юзаю движок AggregatingMergeTree.

    Я вижу 2 варианта:
    1. Делать SELECT записей, которые хочу обновить, и сделать их INSERT с обновленным значением столбца. (но х2 по памяти до оптимайза меня сильно смущает, плюс поддерживать консистентность данных после фейла кажется сложным)
    2. ALTER TABLE UPDATE, что явно более тяжелая операция для диска, но исполняется асинхронно и ее можно отслеживать

    У кого была похожая задача? В какую сторону можно покурить?
  • https://t.me/clickhouse_ru
    Это никак не связано с мутациями
  • https://t.me/clickhouse_ru
    @logast ↶ Reply to #260205 #260206 05:02 PM, 02 Mar 2022
    Т.е сами логи копятся с момента старта таблицы до упора?
  • https://t.me/clickhouse_ru
    Конечно нет, просто реплика какая-то у вас не выполняет ничего
  • https://t.me/clickhouse_ru
    @logast ↶ Reply to #260207 #260208 05:17 PM, 02 Mar 2022
    Понял, буду смотреть. Спасибо.
  • https://t.me/clickhouse_ru
    @sibbarb #260210 06:18 PM, 02 Mar 2022
    Может кто нибудь наставить на путь истинный ?
    Почему у меня создаётся пустая таблица ???
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @Diroman #260214 06:20 PM, 02 Mar 2022
    Потому что Матвью не так работает🙂
  • а вы вставляли что-то в исходную таблицу? Это же просто триггер на инсерт
  • https://t.me/clickhouse_ru
    @Diroman #260216 06:20 PM, 02 Mar 2022
    При создании она не достает данные
  • https://t.me/clickhouse_ru
    сначала создать матвью потом инсертить в основную
  • https://t.me/clickhouse_ru
    @rasstr0en #260218 06:21 PM, 02 Mar 2022
    исторические данные если нужны - надо отдельно инсертить
  • https://t.me/clickhouse_ru
    @rasstr0en #260219 06:21 PM, 02 Mar 2022
    при вставке в основную триггером вставляется в матвьюшку
  • https://t.me/clickhouse_ru
    @sibbarb #260220 06:22 PM, 02 Mar 2022
    Спасибо большое вам
  • и лучше сразу используйте TO нотацию чтобы избежать гемороя в будущем, тут хорошо объяснено и это лучший гайд по работе с мат вью

    https://youtu.be/1LVJ_WcLgF8?list=PLO3lfQbpDVI-hyw4MyqxEk3rDHw95SzxJ&t=7597
    https://den-crane.github.io/Everything_you_should_know_about_materialized_views_commented.pdf
  • https://t.me/clickhouse_ru
    можно и не инсертить, есть возможность сгенерировать историчность. POPULATE кажется
  • да там есть тонкость что если делать populate в момент вставки эти данные не доедут
  • посмотрите почитайте ссылки выше почему так делать не стоит
  • https://t.me/clickhouse_ru
    зависит от ситуации, возможность такая в целом есть
  • https://t.me/clickhouse_ru
    @rasstr0en #260226 06:33 PM, 02 Mar 2022
    Я инсерчу по дню бывает, чтобы не убить сервера, если данных тьма
  • https://t.me/clickhouse_ru
    @rasstr0en #260227 06:34 PM, 02 Mar 2022
    Если и есть такое чтобы сразу всё, не рискнул бы на больших данных) так что лучше сразу понять как оно работает (мержи в агрегированных таблицах тоже происходят и данные хранятся отдельно в своих файликах)
  • ALTER TABLE ADD COLUMN column_new + default + materialize
    ALTER TABLE DROP COLUMN column_old
    ALTER TABLE RENAME COLUMN column_new column_old
  • 03 March 2022 (73 messages)
  • @Lts_hg #260230 05:55 AM, 03 Mar 2022
    Привет, подскажите пожалуйста как можно создать CREATE MATERIALIZED VIEW test.basic
    ENGINE = AggregatingMergeTree()
    но так же указать to чтоб она писала в постоянную таблицу
  • @196211497 #260231 06:01 AM, 03 Mar 2022
    Либо ENGINE либо TO, в документации об этом сказано.
  • @196211497 #260232 06:01 AM, 03 Mar 2022
    ENGINE указывает движок для таблицы, которая создаётся автоматически, поэтому в нём нет смысла если указан TO (т.е. таблица уже существует)
  • https://t.me/clickhouse_ru
    Пожалуй вам нужно посмотреть этот ролик. Он поможет в понимание https://youtu.be/1LVJ_WcLgF8?list=PLO3lfQbpDVI-hyw4MyqxEk3rDHw95SzxJ&t=7597
  • @Lts_hg #260234 06:07 AM, 03 Mar 2022
    Спасибо большое
  • https://t.me/clickhouse_ru
    @sibbarb #260236 06:26 AM, 03 Mar 2022
    Супер крутой доклад от Дениса, ответил на все вопросы мои. Но я все же хочу уточнить.
    Если у меня в матвью имеются джйоны , то он будет обновляться , только при поступлении данных в from таблицу ?
  • https://t.me/clickhouse_ru
    Что такое "обновляться" ?
  • https://t.me/clickhouse_ru
    @sibbarb #260238 06:29 AM, 03 Mar 2022
    Ну пересчитываться будет , движок mergesumtree
  • https://t.me/clickhouse_ru
    @konnectrl #260239 06:30 AM, 03 Mar 2022
    Мат вью триггер на вставку, вы указываете как триггер таблицу в from
  • @ngkam ↶ Reply to #260236 #260240 06:30 AM, 03 Mar 2022
    Только по левой части join если что-то справо вставляется - матвью не тригерится
  • https://t.me/clickhouse_ru
    @sibbarb #260241 06:31 AM, 03 Mar 2022
    Спасибо
  • @ngkam #260242 06:32 AM, 03 Mar 2022
    Но учтите, что чем больше матвью на одну таблицу тем медленнее вставка и больше нагрузка.
  • https://t.me/clickhouse_ru
    @picachulovesyou #260243 07:16 AM, 03 Mar 2022
    Привет, подскажите, кто знает, в клике ещё нет возможности заливки нулевой даты? При заливке нулевых значений для колонки типа Date проставляется 1970-01-01 . Явного значения нул нет?
  • @196211497 #260244 07:21 AM, 03 Mar 2022
    Nullable тип же есть, который оборачивает всё что угодно
  • Вообще-то это и есть нуль для time epoch 😀
  • https://t.me/clickhouse_ru
    Спасибо, помогло
  • https://t.me/clickhouse_ru
    Использовать Null в кликхаусе, это как надеть обувь на размер меньше .... Вроде идти можешь, но больно что то .....
  • Это не так. Все таки есть разница между тем, есть ли данные, или нет.
  • А в чем проблема? У меня есть такие поля, в которых может отсутствовать что-то. А вместо отсутствующих данных подставлять что-то левое будет неправильно.
  • В том то и дело что этот тип изначально не может быть нулем,поэтом или использовать Nullable или изменить тип на Uint32/64 и обернуть в DateFunc
  • https://t.me/clickhouse_ru
    Проблема в том, что вместо 2 файлов, хранится в 4 файлах один столбец ( как я помню )
  • https://t.me/clickhouse_ru
    @m1khal3v #260252 07:51 AM, 03 Mar 2022
    Если даты будут использоваться свежее 1970-01-01, то лучше проверять на "пустое значение" так

    WITH toDate('1970-01-01') AS date
    SELECT date = toDate(0)

    Query id: 26b73082-d009-4837-969b-f7c80fb92ae7

    ┌─equals(date, toDate(0))─┐
    │ 1 │
    └─────────────────────────┘
  • @infisamk #260253 07:51 AM, 03 Mar 2022
    С чего бы это не может быть null? Допустим, у меня есть период действия. При этом начальная дата известна, а конечная не известна. И что тогда я должен вбивать в поле конечной даты? В моем понимании null - это не установлено. Если бы это было число timestamp, например, то 0 также не является корректным, потому что при проверке вхождения диапазона будет неверное условие.
  • По хранению не знаю. Если это так, то да, не хорошо
  • https://t.me/clickhouse_ru
    @m1khal3v #260255 07:53 AM, 03 Mar 2022
    ну или так, если в дальнейшем будет удобнее работать с NULL

    WITH toDate('1970-01-01') AS date
    SELECT nullIf(date, toDate(0))

    Query id: 00fcbc64-c879-45bf-9636-ba7fe200eebf

    ┌─nullIf(date, toDate(0))─┐
    │ ᴺᵁᴸᴸ │
    └─────────────────────────┘

    1 rows in set. Elapsed: 0.158 sec.
  • https://t.me/clickhouse_ru
    Ну это же даст эффект на систему только на сильно больших данных?
  • https://t.me/clickhouse_ru
    а если данные не сильно большие то зачем тогда кликхауз?)
  • https://t.me/clickhouse_ru
    Так решила история до меня)
  • @infisamk #260259 08:00 AM, 03 Mar 2022
    На нескольких миллиардах записей КХ лучше любой реляционной СУБД, наверное.
  • @infisamk #260260 08:00 AM, 03 Mar 2022
    А несколько миллиардов - это далеко не самые большие данные
  • Любая колоночная на нескольких миллиардах будет лучше реляционной для аналитических запросов
  • Вот именно. Поэтому его и начали использовать компании даже на сравнительно небольших объемах. Просто банальное суммирование может быть в сотни раз быстрее.
  • @infisamk #260263 08:02 AM, 03 Mar 2022
    У нас сейчас все на MySQL, но на миллиардах записей даже простые агрегации уже сильно тормозят.
  • https://t.me/clickhouse_ru
    Я не знаю. Всё скорей всего зависит от данных. Я спрашивал в чатике про Null ранее, мне сказали делать без него. Я сделал без него.
  • https://t.me/clickhouse_ru
  • Вот я опробовал колоночный таблицы на бесплатном MariaDB+columnstore - в целом работать можно. Правда сжатие в два раза хуже, чем в MS SQL, который у меня пока лидируют по удобству, универсальности и отсутствию детских болезней и ограничений как в КХ
  • Nullable(Date) с соответствующими тормозами. На больших данных лучше поменять логику приложения использовать -If (sumIf, avgIf, etc) для конкретного невалидного значения нежели Nullable.
  • https://t.me/clickhouse_ru
    @rinat_safarov #260268 08:05 AM, 03 Mar 2022
    всем привет)
    А как в clickhouse-client можно получить список баз, схем, таблиц?
  • https://t.me/clickhouse_ru
    По исследованием Дена, Null это пиздец :)
  • куча способов...
    show tables;
    show databases;

    либо
    select * from system.tables/system.databases
  • это не пиздец, нормально все, пользуемся ок в одном из продуктов. Просто есть "тонкости" (например иногда надо кастить + доп тормоза). Без nullable в сложной аналитике когда запросы "генерируются" тоже сложно очень...
  • https://t.me/clickhouse_ru
    Select * from system.[databases, tables…]
  • У нас объем данных стремительно растет. Поэтому дальше насиловать MySQL не хочется. Да и сложная агрегация - там вообще у MySQL всё грустно
  • MariaDB с columnstore попробуйте, может и переписывать ничего не придется.
    https://hub.docker.com/r/mariadb/columnstore
  • Мне нравится функционал по массивам и вообще разные фишки КХ. Так что я, всё-таки, настроен на КХ
  • https://t.me/clickhouse_ru
    Спасибо)
  • https://t.me/clickhouse_ru
    @Artemsafiyulin #260278 09:39 AM, 03 Mar 2022
    Всем привет! Подскажите можно как то в лог клика логировать коннекты к базе? кто, когда, откуда подключился?
  • ну HTTP запросы вроде и так логируются (собственно там нет понятия "подключился").
    по клиенту/tcp не скажу но тож должно быть в логах
  • @maksspaceworld #260280 09:49 AM, 03 Mar 2022
    Всем привет) ребят а кто знает как подключиться к mongodb реплике из clickhouse?
  • @maksspaceworld #260281 09:49 AM, 03 Mar 2022
    MongoDB | ClickHouse Documentation

    MongoDB MongoDB engine is read-only table engine which allows to read data (SELECT queries) from remote MongoDB collecti

  • @PavelPavlov39 #260282 09:52 AM, 03 Mar 2022
    Всем привет! Настроили интеграцию с AD для аутентификации доменных пользователей и после этого начали сыпаться такие ошибки:
    "TCPHandler: Code: 492. DB::Exception: ID(72e72b16-2fa5-dea3-b799-4afb80b7ff70) not found in user directories. (ACCESS_ENTITY_NOT_FOUND)"
    ID всегда один и тот же. Аутентификация и мапинг ролей работает ожидаемо, без проблем.
    По логу совершенно ничего понять не получается. Интернет тоже ничего не выдает.
    Может кто-то сталкивался с таким?
  • https://t.me/clickhouse_ru
    @konnectrl #260283 10:39 AM, 03 Mar 2022
    User_dn_detection does not work for role mapping in AD · Issue #33589 · ClickHouse/ClickHouse

    My test stand Clickhouse 21.12.2.17 Active Directory LDS: company.com User_DN CN=ldap user,CN=users,CN=test,DC=company,DC=com Role mapping group CN=clickhouse_role1,CN=groups,CN=test,DC=company,DC=...

  • https://t.me/clickhouse_ru
    Вроде об этом же
  • Не, это другая ошибка.
  • https://t.me/clickhouse_ru
    @altlinux #260286 11:23 AM, 03 Mar 2022
    Коллеги, добрый день! Пытаемся попробовать перейти с последней LTS версии на 22.2 и вылезла странная проблема, как мне кажется с оптимизатором запросов:
    Вот такой вариант с тремя WITH и обращениями к данным предыдущих уходит в бесконечный цикл на строне CH:
    WITH
    (
    SELECT max(pkgset_date)
    FROM static_last_packages
    WHERE pkgset_name = 'sisyphus'
    ) AS last_repo_date,
    (
    SELECT toUInt32(pkgset_kv.v[indexOf(pkgset_kv.k, 'task')])
    FROM PackageSetName
    WHERE pkgset_nodename = 'sisyphus' AND pkgset_date = last_repo_date
    ) AS last_repo_task,
    (
    SELECT max(task_changed)
    FROM TaskStates
    WHERE (task_state = 'DONE') AND task_id = last_repo_task
    ) AS last_repo_task_changed
    SELECT task_id
    FROM TaskStates
    WHERE task_state = 'DONE'
    AND task_changed > last_repo_task_changed
    AND task_id IN (SELECT task_id FROM Tasks WHERE task_repo = 'sisyphus')
    ORDER BY task_changed DESC
  • https://t.me/clickhouse_ru
    @altlinux #260287 11:23 AM, 03 Mar 2022
    В итоге падает в аллокаторе
  • https://t.me/clickhouse_ru
    @altlinux #260288 11:24 AM, 03 Mar 2022
    022.03.03 11:16:09.661650 [ 73629 ] {433aa863-3334-4128-a156-5d74ad1e4786} <Error> executeQuery: Code: 306. DB::Exception: Stack size too large.
  • https://t.me/clickhouse_ru
    @altlinux #260289 11:25 AM, 03 Mar 2022
    а сам запрос в логах становится огромным и примерно таким:
    2022.03.03 11:16:09.661650 [ 73629 ] {433aa863-3334-4128-a156-5d74ad1e4786} <Error> executeQuery: Code: 306. DB::Exception: Stack size too large. Stack address: 0x7fd6f1415000, frame address: 0x7fd6f1813ea0, stack size: 4198752, maximum stack size: 8388608: While processing (WITH (WITH (WITH (WITH (WITH (WITH (SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date, (WITH (WITH (WITH (WITH (WITH (WITH (WITH (WITH (WITH (WITH (WITH (WITH (WITH (WITH (WITH (WITH (WITH (WITH (WITH (WITH (SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT toUInt32(pkgset_kv.v[indexOf(pkgset_kv.k, 'task')]) FROM PackageSetName WHERE (pkgset_nodename = 'sisyphus') AND (pkgset_date = last_repo_date)) AS last_repo_task SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date: While processing (WITH (WITH (WITH (WITH (WITH (WITH (WITH (SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date,
  • https://t.me/clickhouse_ru
    @altlinux #260290 11:25 AM, 03 Mar 2022
    (WITH (WITH (WITH (WITH (WITH (WITH (WITH (WITH (WITH (WITH (WITH (WITH (WITH (WITH (WITH (WITH (WITH (WITH (WITH (WITH (SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date SELECT max(pkgset_date) FROM static_last_packages WHERE pkgset_name = 'sisyphus') AS last_repo_date
  • https://t.me/clickhouse_ru
    @sach3000 #260291 11:32 AM, 03 Mar 2022
    Pastebin.com - #1 paste tool since 2002!

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

  • https://t.me/clickhouse_ru
    @altlinux #260292 11:50 AM, 03 Mar 2022
    забыл про него, спасибо что напомнили.
  • https://t.me/clickhouse_ru
    @mark_frost #260295 01:47 PM, 03 Mar 2022
    Привет. А подскажите запуск апдейта на 20млн записей это ок?
  • https://t.me/clickhouse_ru
    @mark_frost #260296 01:47 PM, 03 Mar 2022
    Я просто смотрю у меня уже мутация минут 30 висит
  • https://t.me/clickhouse_ru
    @mark_frost #260297 01:48 PM, 03 Mar 2022
    и как лучше обновить такое кол-во записей
  • https://t.me/clickhouse_ru
    @mark_frost #260298 01:48 PM, 03 Mar 2022
    нужно для всех этих записей поменять значение одного поля
  • https://t.me/clickhouse_ru
    @StadnikD #260299 01:49 PM, 03 Mar 2022
    Можно вытащить несколько значений по разным ключам из json, методом ExtractJsonRaw?
  • https://t.me/clickhouse_ru
    по очереди по одной партиции, с предварительным отключением нагрузки на таблицы (чтение/запись)
  • https://t.me/clickhouse_ru
    @mark_frost #260301 01:49 PM, 03 Mar 2022
    а если нет возможности отключить нагрузку?
  • https://t.me/clickhouse_ru
    @naorlov #260302 01:52 PM, 03 Mar 2022
    и обязательно мониторить лог репликации
  • https://t.me/clickhouse_ru
    тогда ждать и надеяться, что все будет хорошо
  • https://t.me/clickhouse_ru
    JSON_QUERY есть
  • https://t.me/clickhouse_ru
    @adwski #260307 02:54 PM, 03 Mar 2022
    А какая у клика макс длина юзернейма?
  • https://t.me/clickhouse_ru
    @graid2030 #260312 10:38 PM, 03 Mar 2022
    Коллеги подскажите
    Как вствлять данные в мапу через csv
    Это же не json, свой энкодер писать?
  • 04 March 2022 (96 messages)
  • https://t.me/clickhouse_ru
    @Artemsafiyulin #260316 08:09 AM, 04 Mar 2022
    Всем привет! Подскажите, изменение уровня логирования в конфигах требует рестарта сервера? В файле /var/lib/clickhouse/preprocessed_configs/config.xml изменения отображаются, но уровень логирования новый при этом все равно не применился. Версия 21.8.5.7
    Нашел issue что такое поведение намеренно введено в версии v20.1.2.4. Может кто то уточнить, насколько актуально для моей версии?
    Configuration of server log is not applied until restart · Issue #10438 · ClickHouse/ClickHouse

    Describe the bug It seems configuration changes made to /etc/clickhouse-server/config.xml are not respected until clickhouse-server is restarted. How to reproduce Which ClickHouse server version to...

  • @5299838755 #260317 09:59 AM, 04 Mar 2022
    Подскажите пожалуйста, куда смотреть. Есть кластер 30 шардов, 2 реплики, 3 ноды зукипера.
    Работает нормльно неделю или несколько дней, потом в один момент все ноды кликхауса упираются в лимит одновременных подключений (сначала 500, потом поднял до 1000 - аналогично). Подсоединиться к серверу кликхауса не получается ни на одной ноде. Рестарт машин - все оживает и работа кластера почти нормализована.
    Почти - потому что огромное число таблиц вываливается в ридонли или реплики не онлайн, ругаясь на /clickhouse/tables/dbanme/tablepath/replicas/s0/log_pointer: node doesn't exist (No node). (KEEPER_EXCEPTION) (version 22.1.3.7 (official build))
    Нагрузка весьма умеренная (обычно ЛА5 на 16 ядерном сервере не выше 5), вставок довольно много, но большими пачками или через буферные таблицы.
    С сетью вроеде все хорошо, но ситуация повторялась уже с десяток раз и я в полном унынии и непонимании, куда смотреть и на что обращать внимание.
    В логах зукипера (на лидере) поток сообщений следующего вида, даже когда кластер себя хорошо чувствует и все работает без проблем со стороны приложения
    INFO [ProcessThread(sid:1 cport:-1)::PrepRequestProcessor@653] - Got user-level KeeperException when processing sessionid:0x2005a7265a80068 type:delete cxid:0x7487552 zxid:0x11572c0d7d txntype:-1 reqpath:n/a Error Path:/clickhouse/task_queue/ddl/query-00000516
    На что обратить внимание, какие метрики могут пролить свет на ситуацию?
  • @theo_inside #260318 10:03 AM, 04 Mar 2022
    Всем привет.
    В Clickhouse есть две опции при записи данных:
    - запись в таблицу типа Null с последующим приведением типов, агрегацией и т.п. через Materialized View
    - запись в таблицу типа Buffer для временного хранения данных в оперативной памяти
    В каких случаях следует прибегать к каждой из этих опций?
    Есть ли случаи, когда стоит использовать их одновременно?
  • https://t.me/clickhouse_ru
    @Sablast #260320 10:06 AM, 04 Mar 2022
    а еще можно сразу писать в целевую таблицу 🤷‍♂️
  • буфер - это по сути костыль на случай, если вы вынуждены делать одиночные вставки. Матвью - в случае, если вам надо как то переложить, продублировать или преобразовать входные данные
  • Неужели никто не сталкивался с таким? я один счастливчик? :)
  • Конфигурировали ЗК по рекомендации https://clickhouse.com/docs/en/operations/tips/#zookeeper ?
    Usage Recommendations | ClickHouse Documentation

    Usage Recommendations CPU Scaling Governor Always use the performance scaling governor. The on-demand scaling governor w

  • Как бы да, но не совсем - версия 3.4.13, из репозитария, поэтому часть конфига из JVM не применимо вроде как
  • @5299838755 #260326 11:31 AM, 04 Mar 2022
    Я уже на панике совсем :) зукипер грузит диски на 80-90%, это нвме, есть ли способы облегчить ему жизнь конфигами? Или только снижение частоты вставок?
  • @5299838755 #260327 11:32 AM, 04 Mar 2022
    и параллельно - кажется, что все мои проблемы растут именно из ЗК, и есть шальная мысль удалить его и настроить заново с чистого листа. Это совсем глупость или в этом есть хоть толика разумности? в случае, если все же да, то как восстановить метаданные кликхауса в новом зукипере?
  • https://t.me/clickhouse_ru
    Искренне жаль вас, но большинство работает с меньшими данными 😞
  • @5299838755 #260329 11:35 AM, 04 Mar 2022
    по какой то совершенно не ясной мне причине часть таблиц вылетают из репликации с ошибкой Can't get data for node /clickhouse/tables/..../replicas/s1/log_pointer: node doesn't exist (No node). (KEEPER_EXCEPTION) (version 22.1.3.7 (official build))
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #260326 #260330 11:35 AM, 04 Mar 2022
    а какая все-таки у вас частота вставок? Приемлемая - раз в секунду, хорошая - раз в 7-10 секунд.
  • https://t.me/clickhouse_ru
    3 годы зукипера у меня на 3 шарда
  • https://t.me/clickhouse_ru
    @rasstr0en #260332 11:36 AM, 04 Mar 2022
    Советуют 5
  • https://t.me/clickhouse_ru
    @rasstr0en #260333 11:36 AM, 04 Mar 2022
    А для такого кол-ва шардов может накинуть зукиперов поболе?
  • @5299838755 #260334 11:37 AM, 04 Mar 2022
    теста ради разворачивал 5 зукиперов и как то не увидел снижения нагрузки на диски, решил, что это избыточно и вывел их из группы
  • https://t.me/clickhouse_ru
    После появление проблем ?
  • @softbot_xxl #260336 11:38 AM, 04 Mar 2022
    Откуда у ЗК нагрузка на диски? Я чего-то не понимаю.
  • впервые эта проблема появилась месяц назад наверно, примерно спустя две недели после переезда на этот новый кластер. До этого шардов было 5 по 2 реплики, но на сильно более жирных машинах. Собственно после переезда началась это странное поведение - то два раза за день, то раз за неделю кластер превращается в тыкву
  • @softbot_xxl #260338 11:40 AM, 04 Mar 2022
    Может там какой-нибудь fsync где-то сконфигурен?
  • @softbot_xxl #260339 11:40 AM, 04 Mar 2022
    Я смотрю свои топовые зк и не вижу там I/O больше нескольких мег в секунду.
  • https://t.me/clickhouse_ru
    @rasstr0en #260340 11:40 AM, 04 Mar 2022
    Прилетает запрос убийца мб
  • https://t.me/clickhouse_ru
    @rasstr0en #260341 11:41 AM, 04 Mar 2022
    Replication_queue может растёт сильно
  • https://t.me/clickhouse_ru
    Чем больше нод в кластере ZK тем больше нагрузки, так как им надо состояние синкать. Поэтому 3 - это всегда ОК
  • https://t.me/clickhouse_ru
    То есть лучше накидать ресурсов в зк вместо добавления новых
  • https://t.me/clickhouse_ru
    @rasstr0en #260344 11:43 AM, 04 Mar 2022
    Пасяб, запомню
  • https://t.me/clickhouse_ru
    @kshvakov #260345 11:43 AM, 04 Mar 2022
    Или настроить его
  • как это проверить? на зукиперовых машинках графана показывает скорость рид-врайт около 10-15 мбпс, утилизация IO порядка 75-100%...
  • Наверное это неактуально. Какая конфигурация машин с ЗК? Это контейнеры, какие у них ресурсы? Там рядом что-нибудь бегает?
  • https://t.me/clickhouse_ru
    @paulineoskolkoff #260348 11:48 AM, 04 Mar 2022
    Добрый день! Подскажите, пожалуйста, есть запрос, который работал до недавнего времени. Сегодня вдруг возникает ошибка Error running query: Code: 44. DB::Exception: Cannot convert column multiply(FrcAmount, Prc) because it is non constant in source stream but must be constant in result. (ILLEGAL_COLUMN) (version 21.12.4.1 (official build)). Админ утверждает, что в базе ничего не меняли, апгрейды не ставили, я погуглила, сходу ничего не нашла(( К сожалению не могу сейчас упрощенный запрос выложить, тк долго преобразовывать, но вдруг кто-то быстро подскажет, в какую сторону смотреть? Через час презентация(( пока поняла, что проблема возникает с null значениями и видимо на преобразовании типов. Спасибо большое!
  • xeon e3-2236 (6*3,4gh), 32gb ram, 2*480 ssd, на них только ХК и нодэкспортер
  • @5299838755 #260350 11:49 AM, 04 Mar 2022
    обманул на счет нвме, все же ссд...
  • https://t.me/clickhouse_ru
    Если так то сделайте проверку до преобразования на null
  • @softbot_xxl #260352 11:50 AM, 04 Mar 2022
    > на них только ХК
    Там КХ тоже стоит?
  • @5299838755 #260353 11:50 AM, 04 Mar 2022
    вообще установлен, но сервера кх опущены, т.е. это изолированные сервера
  • https://t.me/clickhouse_ru
    Спасибо, сча гляну!
  • https://t.me/clickhouse_ru
    Да, проверила, это точно связано с null, до преобразования все ок, если преобразуется в null, то выдает ошибку.. не понимаю, почему вдруг так случилось, если раньше работало(( посмотрю еще, спасибо!
  • если раньше работало, а сейчас не работает - то или родились данные, которые ломают
  • или родились руки, которые сломали
  • https://t.me/clickhouse_ru
    @paulineoskolkoff #260358 12:02 PM, 04 Mar 2022
    😄, точно, спасибо!
  • https://t.me/clickhouse_ru
    А сделайте выборку за прошлые даты
  • https://t.me/clickhouse_ru
    @rasstr0en #260360 12:43 PM, 04 Mar 2022
    Можно найти, за какие даты сломалось
  • https://t.me/clickhouse_ru
    @skrainov #260361 12:49 PM, 04 Mar 2022
    Добрый день! не подскажете, как преобразовать DateTime64 в дату, которую воспринимает yandex datalens? Так как если просто делать select этого поля, то ругается.
  • https://t.me/clickhouse_ru
    Ну попытайтесь в toDateTime32 или вообще toDateTime
  • @1063161973 #260363 01:04 PM, 04 Mar 2022
    Добрый день.
    При попытке подключения драйвера КХ в DBeaver ошибка получения сертификата.
    Это лечится в текущих условиях ? Текст ошибки:

    Network unavailable:
    javax.net.ssl.SSLHandshakeException:PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    Network unavailable:
    javax.net.ssl.SSLHandshakeException:PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
  • @1063161973 #260364 01:05 PM, 04 Mar 2022
    Can't create driver instance
    Error creating driver 'ClickHouse' instance.
    Most likely required jar files are missing.
    You should configure jars in driver settings.

    Reason: can't load driver class 'com.clickhouse.jdbc.ClickHouseDriver'
    Error creating driver 'ClickHouse' instance.
    Most likely required jar files are missing.
    You should configure jars in driver settings.

    Reason: can't load driver class 'com.clickhouse.jdbc.ClickHouseDriver'
    com.clickhouse.jdbc.ClickHouseDriver
    com.clickhouse.jdbc.ClickHouseDriver
  • https://t.me/clickhouse_ru
    @ployd #260365 01:11 PM, 04 Mar 2022
    Коллеги, кто-нибудь сталкивался с тем, что при включении allow_experimental_database_replicated в users и перехода на Replicated базу, почему-то перестают опции allow_experimental_live_view/allow_nondeterministic_mutations, передаваемые через query параметры HTTP работать.

    Не пойму, это ошибка при мёрже опций на стороне КХ или эти фичи перестают работать в Replicated?
  • @viphunter_real #260366 01:32 PM, 04 Mar 2022
    А что яндекс уже всё? Что с КХ? Перейдет к альтинити?
  • https://t.me/clickhouse_ru
    кх с недавних пор отдельная организация
  • @viphunter_real #260368 01:33 PM, 04 Mar 2022
    Ну и отлично
  • https://t.me/clickhouse_ru
    @nyoroon #260369 01:33 PM, 04 Mar 2022
    ClickHouse - Introducing ClickHouse, Inc.

    Today I’m happy to announce ClickHouse Inc., the new home of ClickHouse. The development team has moved from Yandex and joined ClickHouse Inc. to…

  • версия DBeaver’а?
  • https://t.me/clickhouse_ru
    Спасибо за идею, поищу!
  • 21.3.5, последняя на текущий момент
  • и делаете новый коннект Clickhouse (НЕ Legacy)?
  • https://t.me/clickhouse_ru
    @ne_atmo #260376 02:50 PM, 04 Mar 2022
    Добрый день!
    Подскажите, пожалуйста, что можно сделать в ситуации, когда раньше убили мутацию, которая меняла тип колонки Int8 -> Int16, а теперь агрегация по этой колонке не работает с ошибкой DB::Exception: Invalid number of rows in Chunk column Int16 position 1: expected 65505, got 50812 ? Не работает только на некоторых партициях.
  • Да. Новый компьютер, на него загрузил DBeaver и пытаюсь подключиться к существующей базе КХ. На других компьютерах DBeaver был установлен ранее и работает успешно (в т.ч. после обновления версии)
  • https://t.me/clickhouse_ru
    А селекты из партиций нормально работают?
  • https://t.me/clickhouse_ru
    @rasstr0en #260379 03:00 PM, 04 Mar 2022
    Если да, можно аттачнуть эти партиции во временную таблицу рядом, детачнуть из оригинальной и залить заново через insert select
  • https://t.me/clickhouse_ru
    селекты без агрегатных функций нормально.
    Спасибо!
  • крыжик
    Скачать принудительно / Перезаписать
    не помогает?
  • Нет, второе окно (с выделенным рамкой текстом) модальное. При нажатии на кнопку ОК закрываются оба окна
  • https://t.me/clickhouse_ru
    еще вопрос: а если нельзя делать detach, то поможет перезалить просто через delete/insert?
  • а открываются как — тоже сразу оба окна? или надо на первом кнопку Скачать надавить, чтобы второе окно выскочило?
  • https://t.me/clickhouse_ru
    @AlexAdventure #260386 03:27 PM, 04 Mar 2022
    Привет! Меня зовут Алексей, работаю маркетологом в
    компании, которая занимается развитием экспертов в онлайн

    👍 Сейчас мы проводим серию бесплатных консультаций, на которых:

    - делаем диагностику нынешней ситуации в блоге, разбор ошибок

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

    Кому актуально, пишите в личку 'ХОЧУ БК', я предложу время
  • https://t.me/clickhouse_ru
    если еще раз перезалить задублируются данные
  • https://t.me/clickhouse_ru
    @rasstr0en #260388 03:36 PM, 04 Mar 2022
    у нас тоже ломались таблички, в итоге делали так - рядом создается таблица не replicated как копия поломанной, alter table newTable attach partition 202112 from oldTable, проверяем что данные в новой таблице есть, alter table oldTable detach partition 202112 (после проверки что мы скопировали данные в новую) и insert into oldTable select * from newTable
  • https://t.me/clickhouse_ru
    @rasstr0en #260389 03:37 PM, 04 Mar 2022
    тогда проблемы с партами уже не будет - мы заливаем заново и мержи заново отрабатывают и сохраняют всё как надо
  • https://t.me/clickhouse_ru
    спасибо за подробное объяснение!
    Дело в том, что detach ломает отправку событий, поэтому я уточняю, если мы создадим временную таблицу newTable, через insert положим туда данные сломанных партиций из oldTable, потом удалим данные из oldTable и инсертним из newTable, то это тоже поможет? Дубликатов вроде быть не должно
  • https://t.me/clickhouse_ru
    Мы так старые чинили, в которые уже ничего не писалось - детач к отсутствию данных за определенный период временному приводил только
  • https://t.me/clickhouse_ru
    @rasstr0en #260392 04:10 PM, 04 Mar 2022
    Можно и удалять, alter table delete where ... Но когда у нас ломалось делеты мы не пробовали ещё
  • https://t.me/clickhouse_ru
    @rasstr0en #260393 04:13 PM, 04 Mar 2022
    Главное проверить что копия данных есть во временной
  • https://t.me/clickhouse_ru
    @val357 #260394 04:25 PM, 04 Mar 2022
    Всем привет.
    Мне нужно выгрузить данные за год, но проблема в том, что запрос падает по памяти и можно выгружать только за день, а иногда вообще только за часть дня. Вопрос: существует ли способ задать последовательное выполнение одного и того же запроса с перебором дат? Или может есть другие способы сократить обезьяний труд?
  • сколько у вас памяти?
  • https://t.me/clickhouse_ru
    @val357 ↶ Reply to #260395 #260396 04:26 PM, 04 Mar 2022
    9,3Гига
  • пробуйте set max_threads=1
    если используете группировку, то можно добавить max_bytes_before_external_group_by
  • https://t.me/clickhouse_ru
    @val357 ↶ Reply to #260397 #260398 04:34 PM, 04 Mar 2022
    Видимо вендор блокирует настройки драйвера. Cannot modify 'max_threads' setting in readonly mode
  • видимо, у вас маловато прав(
  • https://t.me/clickhouse_ru
    @val357 ↶ Reply to #260399 #260401 04:38 PM, 04 Mar 2022
    Согласен. А кроме управления памятью других вариантов последовательной обработки запроса нет?
  • врядли получится что-то адекватное написать(
  • https://t.me/clickhouse_ru
    Можно сделать матвью с маленьким кровом полей и группировкой сразу по дню или неделе, заполнить его обезьяньим трудом, а потом делать выборки из него
  • https://t.me/clickhouse_ru
    @rasstr0en #260404 04:51 PM, 04 Mar 2022
    Вдруг влезет по памяти
  • https://t.me/clickhouse_ru
    @val357 ↶ Reply to #260403 #260405 04:53 PM, 04 Mar 2022
    Спасибо, но мне потребуется переводчик😂
  • https://t.me/clickhouse_ru
    Представление | Документация ClickHouse

    CREATE VIEW Создаёт представление. Представления бывают обычные, материализованные (MATERIALIZED) и LIVE. Обычные предст

  • https://t.me/clickhouse_ru
    @rasstr0en #260407 04:54 PM, 04 Mar 2022
    Если вкратце, есть табличка с полными данными, а под нее можно положить ту что хранит агрегированные данные
  • https://t.me/clickhouse_ru
    @rasstr0en #260408 04:55 PM, 04 Mar 2022
    У нас такие весят 1гб при исходной 11Тб например
  • https://t.me/clickhouse_ru
    @rasstr0en #260409 04:55 PM, 04 Mar 2022
    Но заполнять её будет всё равно очень долго
  • https://t.me/clickhouse_ru
    @val357 ↶ Reply to #260406 #260410 04:56 PM, 04 Mar 2022
    Спасибо, буду разбираться и пробовать 👍
  • )))
  • @EvgeneyP #260415 06:53 PM, 04 Mar 2022
    мы спасены
  • https://t.me/clickhouse_ru
    Сейчас начнется что-то:)
  • Открываются сразу оба, второе активное окно модальное. И закрываются сразу оба. Если нет доступа к ресурсу с сертификатом, то не подключиться к базам КХ.
  • я у себя на маке не могу воспроизвести — у меня открывается без модалки и сразу отображает метаданные для загрузки из maven (это если почистить уже загруженное)
  • щас схожу в Parallels
  • установил с чистого листа, создаю коннект — то же самое (одно окно без модалки).
  • 05 March 2022 (19 messages)
  • @theo_inside #260427 11:13 AM, 05 Mar 2022
    Привет.
    Есть вопрос.
    В Clickhouse есть много вариантов для использования внешнего источника как словаря, но я не могу найти документации о том, как сделать словарь из таблицы, которая уже хранится в базе.
    Так нельзя делать, это какая-то плохая практика либо это делать бессмысленно?
    Или есть какой-то путь это реализовать?
  • источник Clickhouse
  • Источники внешних словарей | Документация ClickHouse

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

  • https://t.me/clickhouse_ru
    @brbrbr #260430 12:49 PM, 05 Mar 2022
    На новом сервере CH 21.11 создал новую и пока единственную связку Kafka -> MV -> MT на 9 консьюмеров (по количеству партиций в топике) - получаю подозрительно низкую скорость вычитки порядка 11к записей в секунду. Уменьшаю (через пересоздание) в Kafka-таблице количество консьюмеров с 9 до 3 - скорость вычитки остаётся прежней, уменьшаю с 3 до 1 - скорость вычитки остаётся прежней!
    Помнится, на 20.8 скорость росла практически пропорционально количеству консьюмеров.

    В какую сторону копать? Что крутить?
  • https://t.me/clickhouse_ru
    Пробуйте пересоздать MV с kafka_num_consumers = 1, kafka_max_block_size = 500000
    +
    https://altinity.com/blog/clickhouse-kafka-engine-faq
    ClickHouse Kafka Engine FAQ

    Kafka is a popular way to stream data into ClickHouse. ClickHouse has a built-in connector for this purpose -- the Kafka engine. This article collects typical questions that we get in our support cases regarding the Kafka engine usage. We hope that our recommendations will help to avoid common problems.

  • https://t.me/clickhouse_ru
    @purple_hood #260433 01:05 PM, 05 Mar 2022
    всем привет! может кто-то работал с геоданными
    где можно найти более менее корректные данные территориальных границ Российской Федерации (полигоны/мультиполигоны)
    нужно сделать справочник на клике для проверки вхождения точки в полигон
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #260432 #260434 01:06 PM, 05 Mar 2022
    Увы, ничего не поменялось. Доку эту я читал, да и кафка движки раньше настраивал. Но либо я чего-то упускаю, либо в 21.11 оно иначе работать стало.
  • А в том же OSM разве нет таких данных? Или они там не точные?
  • После обновления на 21.11 у нас стало медленнее консьмить. Помогло kafka_thread_per_consumer = 1 и увеличение background_message_broker_schedule_pool_size. Ещё смотреть stream_flush_interval_ms и размер блока на вставку
  • https://t.me/clickhouse_ru
    Может быть проблема с производительностью вставки?
    Данные в одну партицию летят? на ZK в io не уперлись?
    PS: на свежее пока не обновлялся
  • https://t.me/clickhouse_ru
    Увеличивать нужно кол-во консьмеров. Тестовым способом достиг максимальной производительности у себя при 9 консюмерах, при том что топик был с 6ю партициями
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #260437 #260441 02:51 PM, 05 Mar 2022
    Про один тред на одного консьюмера думал, но не успел попробовать. Флаш тоже попробую, спасибо.
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #260438 #260442 02:55 PM, 05 Mar 2022
    Там всего одна партиция, вставка пачками по 65-131к с общей скоростью 11к/сек, запас по выставке должен быть огромный.
    ЗК тоже в порядке, т.к. эта таблица даже не реплицируемая.
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #260439 #260443 02:56 PM, 05 Mar 2022
    Так тут проблема как раз в том, что количество консьюмеров никак не влияет на скорость. Она составляет около 11к записей в секунду что для 1, что для 9 консьюмеров на топик из 9 партиций.
  • https://t.me/clickhouse_ru
    Может стоит подождать, а то розширяться будете?
  • Решил проблему.
    1. Удалил последнюю версию DBeaver
    2. Установил версию 21.0.0
    3. Подключился к серверу КХ (драйвер успешно установился)
    4. Обновил DBeaver до последней версии
  • https://t.me/clickhouse_ru
    Если 1 партиция со стороны кафки, то больше 1 конзумера нет смысла, или меняйте кол-во партиций в кафке.
    Я имел в виду то, как партицирована таблица и как это соотносится с потоком данных, если в 1 батче из кафки запись в 100 партиций таблицы (PARTITION BY), то будет медленно.
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #260447 #260448 03:42 PM, 05 Mar 2022
    Да, я понял ваш вопрос. В кафке 9 партиций, в таблице кх - одна партиция (т.е. все данные пишутся в одну партицию). И скорость вычитки не зависит от количества консьюмеров почему-то.
    Надо будет ещё попробовать в Null таблицу писать.
  • https://t.me/clickhouse_ru
    @aksimemor #260449 05:28 PM, 05 Mar 2022
    Добрый вечер.

    Подскажите, сталкивался ли кто с такой ошибкой при работе через метод s3 с бакетами на google storage?

    Code: 354, e.displayText() = DB::Exception: inflateReset failed: data error: While executing S3 (version 21.8.13.1.altinitystable (altinity build))

    0. DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, bool) @ 0x8fe7c9a in /usr/bin/clickhouse
    1. DB::Exception::Exception<char const*>(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, char const*&&) @ 0xe4cc952 in /usr/bin/clickhouse
    2. DB::ZlibInflatingReadBuffer::nextImpl() @ 0xe4cc88f in /usr/bin/clickhouse
    3. DB::LineAsStringRowInputFormat::readRow(std::__1::vector<COW<DB::IColumn>::mutable_ptr<DB::IColumn>, std::__1::allocator<COW<DB::IColumn>::mutable_ptr<DB::IColumn> > >&, DB::RowReadExtension&) @ 0x111c506d in /usr/bin/clickhouse
    4. DB::IRowInputFormat::generate() @ 0x11180d28 in /usr/bin/clickhouse
    5. DB::ISource::tryGenerate() @ 0x1110a735 in /usr/bin/clickhouse
    6. DB::ISource::work() @ 0x1110a31a in /usr/bin/clickhouse
    7. DB::InputStreamFromInputFormat::readImpl() @ 0xe4a9fbf in /usr/bin/clickhouse
    8. DB::IBlockInputStream::read() @ 0xfe5ca27 in /usr/bin/clickhouse
    9. DB::StorageS3Source::generate() @ 0x10bcfc56 in /usr/bin/clickhouse
    10. DB::ISource::tryGenerate() @ 0x1110a735 in /usr/bin/clickhouse
    11. DB::ISource::work() @ 0x1110a31a in /usr/bin/clickhouse
    12. DB::SourceWithProgress::work() @ 0x112dcf3b in /usr/bin/clickhouse
    13. ? @ 0x1114503d in /usr/bin/clickhouse
    14. DB::PipelineExecutor::executeStepImpl(unsigned long, unsigned long, std::__1::atomic<bool>*) @ 0x11141bd1 in /usr/bin/clickhouse
    15. ? @ 0x11146676 in /usr/bin/clickhouse
    16. ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0x902891f in /usr/bin/clickhouse
    17. ? @ 0x902c203 in /usr/bin/clickhouse
    18. start_thread @ 0x9609 in /usr/lib/x86_64-linux-gnu/libpthread-2.31.so
    19. clone @ 0x122293 in /usr/lib/x86_64-linux-gnu/libc-2.31.so
  • 06 March 2022 (40 messages)
  • https://t.me/clickhouse_ru
    возможно дело не в GCS

    а в том что у вас со сжатием что-то напутано, ожидается gzip сжатие и формат LineAsString

    а у вас как фалы пожаты?
  • https://t.me/clickhouse_ru
    @700793887 #260452 06:59 AM, 06 Mar 2022
    Может кто подскажет, настроил шардирование с реплецированием, шарда два, при вставке данных, вставляется часть данных на основной, на других не появляются данные, в логах вот такая ошибка "DB::Exception: Received from keeper3:9000. DB::Exception: default: Authentication failed: password DB::Exception: Received from keeper3:9000. DB::Exception: default: Authentication failed: password" где копать?
  • https://t.me/clickhouse_ru
    Ну так пароль не правильный
  • https://t.me/clickhouse_ru
    @konnectrl #260454 07:25 AM, 06 Mar 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
    Разобрался. Файлы имели расширение .gz, но пофакту не являлись сжатыми.
  • https://t.me/clickhouse_ru
    @aksimemor #260464 10:38 AM, 06 Mar 2022
    Подскажите, если я делаю

    insert into table1 (col_1,col2) select * from table2.

    но при этом в table2 колонки идут в обратном порядке: col2, col1.

    В таком случае кликхаус вставим по позициям, или по названию колонок?
  • @196211497 #260465 10:42 AM, 06 Mar 2022
    по позициям. только при вставке в MV вроде бы по названию колонок это делается. Для безопасности лучше не select * а select col_1,col2 написать
  • https://t.me/clickhouse_ru
    @yakubovsky_rom #260466 10:43 AM, 06 Mar 2022
    Коллеги, добрый день. Прошу не закидывать камнями за нелепый вопрос, но может кто то знает, почему простой запрос через http падает с ошибкой 400, запрос на получение данных норм, на простые запросы норм, а вот создание таблиц ошибка, полагаю не хватает прав или может кластер не так создал, в чем может быть причина? http://skrinshoter.ru/s/060322/OwXQSVjY?a

    import requests

    query = """CREATE DATABASE test;"""
    clickhouse_host = f"https://{host}.mdb.yandexcloud.net:8443/?query={query}"
    clickhouse_login = ""
    clickhouse_password = ""
    auth = {'X-ClickHouse-User': clickhouse_login,
    'X-ClickHouse-Key': clickhouse_password}

    response = requests.post(
    url=clickhouse_host,
    # query=query,
    headers=auth,
    verify='/usr/local/share/ca-certificates/Yandex/YandexInternalRootCA.crt')
    response.raise_for_status()
    print(response.text, "Hello")

    Если делать просто через консоль в clickhouse client то все отлично создает: http://skrinshoter.ru/s/060322/ZamiRLm0?a

    Когда выхожу из clickhouse client и выполняю запрос SHOW DATABASES он мне не выводит эти новые базы, которые я сейчас создавал через консоль http://skrinshoter.ru/s/060322/F9is3Dq5?a
  • @196211497 #260467 10:44 AM, 06 Mar 2022
    А в логах сервера ничего подозрительного нет?
  • @196211497 #260468 10:47 AM, 06 Mar 2022
    Ну и в порядке бреда: в http запросе адрес КХ в яндексоблаке, а в консоли какие-то локалхосты. Может это реально разные серверы?
  • https://t.me/clickhouse_ru
    в кластере нельзя создавать бд через SQL если явно не включена опция "управление БД через SQL"
  • https://t.me/clickhouse_ru
    это посмотрю, отфильтрую по ошибкам, вижу что то есть примерно в то время когда выполнял, сча повторю и проверю будет ли таже ошмбка в логах
  • https://t.me/clickhouse_ru
    да, до этого уже дошел, это включал, захожу через пользователя admin
  • https://t.me/clickhouse_ru
    вот меня смущает что он в итоге показывает разный набор датасетов
  • Это конктретно в яндекс облаке?
  • @196211497 #260474 10:53 AM, 06 Mar 2022
    Я в своём кластере спокойно создаю через create database on cluster
  • https://t.me/clickhouse_ru
    да
  • https://t.me/clickhouse_ru
    без текста ошибки не понятно в чём проблема
  • https://t.me/clickhouse_ru
    @yakubovsky_rom #260477 10:55 AM, 06 Mar 2022
    так, невероятно, но факт, он создал, я правильно понимаю что не допускается символ "-" в названии?
  • https://t.me/clickhouse_ru
    названия с - надо в бектики оборачивать
  • https://t.me/clickhouse_ru
    @yakubovsky_rom #260479 10:56 AM, 06 Mar 2022
    я видел нельзя использовать default как название, слово test можно использовать? он не дал создать название такое, видимо потому что оно уже есть в списке датасетов, вопрос почему через клиента я вижу такой датасет, а через http он его не показывает
  • @196211497 #260480 10:57 AM, 06 Mar 2022
    test можно. default это БД по умолчанию, она создана всега
  • https://t.me/clickhouse_ru
    спасибо
  • @196211497 #260482 10:57 AM, 06 Mar 2022
    и system ещё нельзя :)
  • https://t.me/clickhouse_ru
    @yakubovsky_rom #260483 11:01 AM, 06 Mar 2022
    в общем я так и не понял что случилось, но спустя 2 дня борьбы, он все же сдался, хотя я очевидно ничего такого не делал, что могло бы повлиять)) всегда так, как только начинаю писать от безысходности в чат, сразу начинает работать. Всем спасибо
  • @247351032 #260486 02:07 PM, 06 Mar 2022
    Всем доброго дня. Приключилась беда - после перезагрузки КХ рухнул и не встает... (version 21.8.5.7 (official build))
    2022.03.06 16:39:07.996593 [ 322031 ] {} <Error> Application: DB::Exception: Suspiciously many (34) broken parts to remove.: Cannot attach table noc.raw_ping from metadata file /var/lib/clickhouse/store/ca2/ca26a92f-7fb9-487e-8a26-a92f7fb9e87e/raw_ping.sql from query ATTACH TABLE noc.raw_ping UUID 'cb6560f6-f5ed-4d91-8b65-60f6f5eded91' (date Date, ts DateTime, metric_type String, managed_object UInt64, labels Array(LowCardinality(String)), attempts UInt16, rtt UInt32) ENGINE = MergeTree PARTITION BY toYYYYMM(date) PRIMARY KEY (managed_object, date) ORDER BY (managed_object, date) SETTINGS index_granularity = 8192: while loading database noc from path /var/lib/clickhouse/metadata/noc
  • @247351032 #260487 02:07 PM, 06 Mar 2022
    как полечить эту беду
  • @247351032 #260488 02:07 PM, 06 Mar 2022
    место на винте до жопы...
  • https://t.me/clickhouse_ru
    Есть настройка про suspicious, это реплика?
  • А где это посмотреть? Есть такой проект NOC, там эта штука работает.... с какими настройками или параметрами - х.з. Вот сервер лег и беда....
  • https://t.me/clickhouse_ru
    @rasstr0en #260493 02:25 PM, 06 Mar 2022
    <yandex> <merge_tree> <max_suspicious_broken_parts>50</max_suspicious_broken_parts> </merge_tree> </yandex>
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @rasstr0en #260495 02:26 PM, 06 Mar 2022
    Если это реплицируемая табличка, можно смело задрать настройку и по реплике данные обратно залетят
  • Спасибо тебе добрый человек.... Ты меня спас.... все заработало
  • 07 March 2022 (24 messages)
  • https://t.me/clickhouse_ru
    @yakubovsky_rom #260502 07:33 AM, 07 Mar 2022
    Доброе утро, у кого то есть ссылка на хорошую статью, как подключиться к clickhouse развернутого в Яндекс облаке с домашнего компа на windows?
  • https://t.me/clickhouse_ru
    @yakubovsky_rom #260504 08:38 AM, 07 Mar 2022
    Вот тут я уже был, но что то у меня не срослось. Почему то ошибка вот такая получается
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Выглядит как будто хост не открыт наружу
  • https://t.me/clickhouse_ru
    @nyoroon #260507 08:39 AM, 07 Mar 2022
    Это при создании хоста надо включать
  • https://t.me/clickhouse_ru
    @yakubovsky_rom #260508 08:43 AM, 07 Mar 2022
    Сча перепроверю ещё раз, спасибо. Пересоздавал кластер, может там забыл открыть
  • https://t.me/clickhouse_ru
    @700793887 #260509 11:42 AM, 07 Mar 2022
    Подскажите у КХ keeper есть такое понятие как Master an Slave?
  • https://t.me/clickhouse_ru
    @i1smetana #260510 11:58 AM, 07 Mar 2022
    добрый день. Подскажите, как можно добавить в ключ сортировки столбец, не изменяя при этом старые партиции?
  • alter table modify order by ...
    но там были ограничения, можно вроде было добавить только новые столбцы и только к конец списка ключа
  • https://t.me/clickhouse_ru
    @i1smetana #260512 12:18 PM, 07 Mar 2022
    Ага, там только новые, а мне надо существующий добавить
  • Если добавлять в конец ключа, то проблем не должно быть.
  • там вроде raft, поэтому есть 1 лидер и фолловеры.
  • https://t.me/clickhouse_ru
    @700793887 #260517 01:32 PM, 07 Mar 2022
    А если репликатор подключаешь в существующий кластер, новый, то данные на него руками копировать?
  • https://t.me/clickhouse_ru
    @bezumen #260525 08:11 PM, 07 Mar 2022
    Подскажите или дайте ссылку на чтиво про производительность map? Это более типо "замена" столбцов таблицы в КХ или это нечто большее и тормозное?
  • Пока это просто сахар вроде.
  • https://t.me/clickhouse_ru
    то есть там раскукоживается в колонки под капотом?
  • Да
  • https://t.me/clickhouse_ru
    @bezumen #260529 08:19 PM, 07 Mar 2022
    теперь очень интереснен механизм . ключ одна колонка, значение другая колонка и как-то связаны...
  • это два массива
  • т.е. keys, values.
    т.е. если будете прям тысячи мапов хранить и по ним лукапить - будет тормозить
  • Если вы добавляете новую реплику после того, как таблица на других репликах уже содержит некоторые данные, то после выполнения запроса, данные на новую реплику будут скачаны с других реплик. То есть, новая реплика синхронизирует себя с остальными.

    https://clickhouse.com/docs/ru/engines/table-engines/mergetree-family/replication/
    Репликация данных | Документация ClickHouse

    Репликация данных Репликация поддерживается только для таблиц семейства MergeTree: ReplicatedMergeTree ReplicatedSumming

  • @kazansky85 #260533 11:33 PM, 07 Mar 2022
    Немного странный вопрос: можно ли, в зависимости от выбранного диапазона timestamp, обеспечить условную гранулярность по времени?
    То есть, при запросе за один час, выдавать результат в виде 30-секундных суммирований (агрегаций), при запросе одних суток (24 часа) выдавать гранулярностью по 5 минут. Это нужно, чтобы график в графане не рендерился на клиентском браузере слишком долго, и за условный месяц мы не получили бы тысячи точек на одном графике, при количестве графиков в десятке.
  • в плагине Grafana для ClickHouse есть переменные $from, $to, $interval. если вам функционала $interval недостаточно, сделайте свою переменную, которая в зависимости от select datediff($from, $to) будет генерить выражение колонки для "Group By ..." и засуньте ее в запрос Grafana
  • 08 March 2022 (95 messages)
  • https://t.me/clickhouse_ru
    в query options вроде на граф панели можно кол-во точек на графике задать
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @700793887 #260538 06:25 AM, 08 Mar 2022
    Доброе утро, подскажите, имеется 5 шардов, в каждом по три реплики, вопрос, как лучше организовать запись данных и считывание, если ж все делать на одном каком то сервере, то нагрузка будет большой? Заранее благодарен!
  • https://t.me/clickhouse_ru
    если полностью контроллируете процесс то шардируйте и сортируйте данные перед вставкой
    запись делайте непосредственно в ReplicatedMergeTree таблицы
    данные читайте из Distributed
    это наиболее быстрый вариант
  • https://t.me/clickhouse_ru
    а считывать данные, тоже контролировать с какого сервера лучше?
  • https://t.me/clickhouse_ru
    нет, там просто можно round robin выбирать любую ноду
    можно chproxy для чтения поставить или nginx перед кластером

    там у вас на схеме непонятные стрелки между шардами черные, не ясно что они значат
  • https://t.me/clickhouse_ru
    Да это я для себя связь обнозначил, один кластер
  • https://t.me/clickhouse_ru
    то есть получается отказ от автоматического шардирования
  • https://t.me/clickhouse_ru
    ну можно вставлять в distributed
    но тогда надо следить когда данные доедут до ReplicatedMergeTree и получаете в итоге записи в два раза больше
    сначала .bin файлы для Distributed создаются
    а потом они на destination nodes в ReplicatedMergeTree уже пишутся
  • https://t.me/clickhouse_ru
    @5103346390 #260548 11:24 AM, 08 Mar 2022
    Hi
  • https://t.me/clickhouse_ru
    @700793887 #260551 01:40 PM, 08 Mar 2022
    еще вопросик, а где то можно посмотреть, какой ключ на каком шарде записан?
  • https://t.me/clickhouse_ru
    Смотреть в создание дистрибьютед таблицу
  • https://t.me/clickhouse_ru
    я имею ввиду можно ли определить, какой ключ на какой шард попадет?
  • https://t.me/clickhouse_ru
    Можно
  • https://t.me/clickhouse_ru
    @konnectrl #260555 01:59 PM, 08 Mar 2022
    Distributed | Документация ClickHouse
    https://clickhouse.com/docs/ru/engines/table-engines/special/distributed/
    Distributed | Документация ClickHouse

    Distributed Движок Distributed не хранит данные самостоятельно, а позволяет обрабатывать запросы распределённо, на неско

  • https://t.me/clickhouse_ru
    @ph1lipp #260556 02:20 PM, 08 Mar 2022
    Почему он пытается сделать toYYYYMM(env)?
    CREATE TABLE positions (
    env String,
    timestamp String,
    sequence_id Int32,
    legal_entity String,
    symbol_id Nullable(String),
    currency String,
    account_id String,
    type String
    ) ENGINE = ReplacingMergeTree(env, (env, account_id, symbol_id, currency), 8192);

    Code: 43. DB::Exception: Illegal type String of argument of function toYYYYMM. Should be a date or a date with time: While processing toYYYYMM(env)
  • https://t.me/clickhouse_ru
    @orantius #260557 02:25 PM, 08 Mar 2022
    потому что он хочет сделать партиционирование по месяцам по первой колонке ключа
  • @196211497 #260558 02:25 PM, 08 Mar 2022
    Может потому что строка не может быть ключом партиционирования? Там по-видимому требуется что-то Int-представимое, или float, если allow_floating_point_partition_key=1
  • https://t.me/clickhouse_ru
    лучше не использовать старый синтаксис создания таблицы
    https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/mergetree/#table_engine-mergetree-creating-a-table
    MergeTree | ClickHouse Documentation

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

  • https://t.me/clickhouse_ru
    @naimson #260560 02:34 PM, 08 Mar 2022
    коллеги почему выдается такая ошибка

    Missing columns: 'UserID' 'EventDate' 'CounterID' while processing query: 'CounterID, EventDate, intHash32(UserID)', required columns: 'CounterID' 'EventDate' 'UserID' 'CounterID' 'EventDate' 'UserID'. (UNKNOWN_IDENTIFIER)


    сама таблица
    CREATE TABLE a_cluster
    (
    hash String,
    tt String,
    date Date,
    timestamp UInt64,
    h UInt64,
    from Nullable(String),
    to Nullable(String),
    transaction_hash String,
    value UInt256
    )
    ENGINE = ReplicatedReplacingMergeTree('/clickhouse/tables/{shard}/table_name', '{replica}', date)
    PARTITION BY toYYYYMM(date)
    ORDER BY (date, intHash32(date))
    SAMPLE BY intHash32(date)
  • https://t.me/clickhouse_ru
    а запрос какой
  • https://t.me/clickhouse_ru
    @Ali_rzv76 #260564 03:23 PM, 08 Mar 2022
    Hi
    I have this problem with clickhouse in k8s

    Liveness probe failed: Get "http://*******:8123/ping": dial tcp **:8123: connect: connection refused

    can anyone help me please

    Thanks
  • https://t.me/clickhouse_ru
    я сейчас переделал , ибо увидел очепятку тупую (( , сейчас дает такую ошибку
    DB::Exception: Primary key must be a prefix of the sorting key, but the column in the position 0 is date, not height. (BAD_ARGUMENTS) (version 22.2.2.1)

    сам запрос

    CREATE TABLE a_cluster ON CLUSTER chain_cluster_3_nodes
    (
    hash String,
    tt String,
    date Date,
    timestamp UInt64,
    h UInt64,
    from Nullable(String),
    to Nullable(String),
    transaction_hash String,
    value UInt256
    )
    ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/table_name', '{replica}', date)
    PARTITION BY toYYYYMM(date)
    ORDER BY (date, intHash32(date))
    SAMPLE BY intHash32(date)
  • https://t.me/clickhouse_ru
    does docker container started ? what is output of open ports netstat -atpn ?
    iptables-save ?
  • https://t.me/clickhouse_ru
    @Ali_rzv76 #260567 03:51 PM, 08 Mar 2022
    yes pods started and running but after for example 1h they get CrashLoopBackoff
  • https://t.me/clickhouse_ru
    .
  • https://t.me/clickhouse_ru
    Seems that problem of memory exhaust ,need to see a pod logs
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Check some secret logs under /var/log/clickhouse-server/.
  • https://t.me/clickhouse_ru
    @dev0urer #260573 04:03 PM, 08 Mar 2022
    Especially clickhouse-server.err.log.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @Ali_rzv76 #260575 04:18 PM, 08 Mar 2022
    Can i disable health check?
    I deploy with kind: "ClickHouseInstallation"
  • https://t.me/clickhouse_ru
    @Ali_rzv76 #260576 04:19 PM, 08 Mar 2022
    apiVersion: "clickhouse.altinity.com/v1"
    kind: "ClickHouseInstallation"

    metadata:
    name: "repl-05"

    spec:
    defaults:
    templates:
    dataVolumeClaimTemplate: default
    podTemplate: clickhouse:20.7

    configuration:
    zookeeper:
    nodes:
    - host: zookeeper.rezvani-prom.svc.cluster.local
    port: 2181
    clusters:
    - name: replicated
    layout:
    type: Standard
    shardsCount: 2
    replicasCount: 2

    templates:
    volumeClaimTemplates:
    - name: default
    spec:
    accessModes:
    - ReadWriteOnce
    resources:
    requests:
    storage: 500Mi
    storageClassName: rook-cephfs
    podTemplates:
    - name: clickhouse:20.7
    spec:
    containers:
    - name: clickhouse-pod
    image: yandex/clickhouse-server:20.7
    resources:
    requests:
    memory: "1Gi"
    cpu: "1"
    limits:
    memory: "1Gi"
    cpu: "1"
  • https://t.me/clickhouse_ru
    I would recommend look up for memory utilization metrics, as so namespace events and do not disable health checks.

    Btw maybe clickhouse operator logs clarify your issue.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @Ali_rzv76 #260579 04:31 PM, 08 Mar 2022
    i have resource qouta so it came from it?
  • https://t.me/clickhouse_ru
    If it sets memory limits, I guess so. Looks like clickhouse pod got killed by OOM.
  • https://t.me/clickhouse_ru
    @Ali_rzv76 #260581 04:43 PM, 08 Mar 2022
    Thank you, @dev0urer @naimson
    i will check it tommorow
  • https://t.me/clickhouse_ru
    You are welcome , I am also try to learn farsi sado
  • ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/table_name', '{replica}', date)

    у вас лишний параметр - date ? или там раньше был ReplicatedReplacingMergeTree?
  • https://t.me/clickhouse_ru
    Раньше было replicated replacing , как дома буду посмотрю
  • https://t.me/clickhouse_ru
    фиксанул, но там все равно новую ошибку zookeeper дает (

    DB::Exception: There was an error on [162.55.2.54:9000]: Code: 342. DB::Exception: Existing table metadata in ZooKeeper differs in mode of merge operation. Stored in ZooKeeper: 5, local: 0. (METADATA_MISMATCH) (version 22.2.2.1). (METADATA_MISMATCH)
  • смените путь в ЗК, у вас там не пусто...
    например так
    ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/a_cluster', '{replica}', date)
  • https://t.me/clickhouse_ru
    а старый как удалить ?
  • @dj_mixer #260588 06:44 PM, 08 Mar 2022
    zkCli
  • @dj_mixer #260589 06:44 PM, 08 Mar 2022
    скорее всего там другая таблица
  • @dj_mixer #260590 06:44 PM, 08 Mar 2022
    если вы везде писали тот же путь
  • проверьте что у вас там...
    select * from system.replicas r ;
  • https://t.me/clickhouse_ru
    @tempnx #260593 06:55 PM, 08 Mar 2022
    Привет всем. Кто углублялся в тему RAM-дисков? Ищу решение, которое способно развивать скорость от 50 гб/с и выше на передачу файлов (чтение/запись). Мне надо знать хотя бы, что нужно для таких скоростей? Что влияет на скорости оперативной памяти? Тайминги? Частота? Кол-во ядер процессора? На обычных современных компьютерах скорость примерно 10-15 гб/с на чтение и запись. Да, тут ещё и программно многое что зависит, но хотелось бы узнать сначала про аппаратную часть. Вот максимально какое решение можно сделать по скоростям? Скажите что кэш процессора, да, соглашусь, он быстрее чем RAM-диск, но надо объём от 4 гб.
  • @softbot_xxl #260594 07:02 PM, 08 Mar 2022
    А что вы пытаетесь сделать?
  • https://t.me/clickhouse_ru
    @good_developer #260595 07:02 PM, 08 Mar 2022
    Передачу куда? Вы раньше столкнётесь с проблемами при передаче такого объема через сеть, скорее.
    В чём вообще проблема? Используйте себе shm на здоровье
  • да нет ограничений в принципе - просто делите задачу на несколько параллельных и всё. сетевые устройства сейчас продаются infiniband даже БУшные на 40 Гб/с за копейки относительно
  • https://t.me/clickhouse_ru
    @tempnx ↶ Reply to #260594 #260597 07:06 PM, 08 Mar 2022
    Имеется архив на 3 ГБ примерно. В этом архиве 2 миллиона файлов, которые очень мало весят, по пару КБ. Этот архив надо распаковать с этими файлами. На SSD это крайне долго, про HDD вообще молчу. На RAM диске уже быстрее. Нужна максимальная скорость или другое альтернативное решение для этой задачи.
    Распаковать все файлы, далее их отсортировать их (сделать по ним поиск, это .txt файлы, поиск по словам), и далее переместить найденные .txt файлы в другую папку на RAM диске, ну и потом их объединить в 1 файл. Всё это крайне долго занимает даже на RAM диске.
  • @1002712185 #260598 07:08 PM, 08 Mar 2022
    а какой бюджет то? :)
  • не уверен что в тему, но 2кк файлов в одной папке - очень плохо. почти все FS будут тормозить. попробуйте на уровне распаковки разложить их по папкам, не более 10к в каждой. но find & etc всё равно будут тормозить
  • @GeorgySt #260600 07:09 PM, 08 Mar 2022
    а 3 ГБ и так в кеш в ОЗУ помещаются
  • https://t.me/clickhouse_ru
    я удалил путь, но на одном узле выдает ошибку такого рода (

    An error occured before execution: Code: 62, e.displayText() = DB::Exception: Syntax error: failed at position 34: UUID '660774a1-da81-429f-b6f4-6df6420bbc02' ON CLUSTER chain_cluster_3_nodes (hash String, tt String, date Date, timestamp UInt64, h UInt64, from Nu. Expected one of: storage definition, token, OpeningRoundBracket, ENGINE, ON, AS, e.what() = DB::Exception
  • Так может вам взять обычную какую-нибудь k/v БД типа кассандры?
  • https://t.me/clickhouse_ru
    @tempnx ↶ Reply to #260598 #260603 07:09 PM, 08 Mar 2022
    Если даже и найдётся готовое решение - то в любом случае только аренда. Мне на постоянную работу не нужно это.
  • https://t.me/clickhouse_ru
    может в сжатом виде попробуете https://www.kernel.org/doc/html/latest/admin-guide/blockdev/zram.html
  • попробуйте в облаке амазон просто последний АМД арендовать если там такой есть - и то же самое из оперативки
  • https://t.me/clickhouse_ru
    @tempnx ↶ Reply to #260604 #260606 07:11 PM, 08 Mar 2022
    А разве сжатие оперативной памяти прибавляет ей скорость? Разве что, только увеличивая её объём
  • https://t.me/clickhouse_ru
    @tempnx ↶ Reply to #260605 #260607 07:12 PM, 08 Mar 2022
    Так конфиг надо сначала собрать, собственно вопрос у меня и в этом. Что надо конкретно для максимальной скорости RAM диска? Может там надо 7000+ мгц для него. Или что-то другое
  • https://t.me/clickhouse_ru
    ты попробуй, вообще если множество маленьких файлов то поэкспериментируй с BTRFS и Reiser
  • https://t.me/clickhouse_ru
    @1695040889 #260609 07:13 PM, 08 Mar 2022
    А просто читать архив, грепать файлы и нужные вытаскивать - не вариант?
  • А что с файлом собираетесь делать? Нужен ли этот большой файл?
  • https://t.me/clickhouse_ru
    @tempnx ↶ Reply to #260610 #260611 07:15 PM, 08 Mar 2022
    Файл чего? Я же написал ранее что я собираюсь делать. Сейчас у меня архив только с собой.
  • > далее переместить найденные .txt файлы в другую папку на RAM диске, ну и потом их объединить в 1 файл. Всё это крайне долго занимает даже на RAM диске.
  • https://t.me/clickhouse_ru
    @tempnx ↶ Reply to #260610 #260613 07:17 PM, 08 Mar 2022
    Это всё время занимает довольно продолжительное. И надо ещё уточнить где именно выполнять эти операции. Может на HDD имелось ввиду вообще. Я за этим сюда и пришёл, чтобы узнать что быстрее RAM-диска для моей задачи. Или же как ускорить RAM-диск.
  • https://t.me/clickhouse_ru
    Перемещение как раз будет быстрым, скорее всего
  • https://t.me/clickhouse_ru
    @tempnx ↶ Reply to #260612 #260615 07:17 PM, 08 Mar 2022
    Объединение мелких .txt файлов которые весят пару МБ, пусть даже и сотни тысяч, этот большой файл максимум будет весить под 100 МБ.
  • https://t.me/clickhouse_ru
    @1695040889 #260616 07:18 PM, 08 Mar 2022
    Быстрее всего - не совершать ненужных операций. Прочитали контент, проверили, если нужно - выгрузили.
  • https://t.me/clickhouse_ru
    @tempnx #260617 07:18 PM, 08 Mar 2022
    Кстати ещё некоторые могут думать об индексации, сразу говорю что нет, потому что постоянно разные файлы у меня будут с разными именами и т.д
  • https://t.me/clickhouse_ru
    @tempnx ↶ Reply to #260616 #260618 07:19 PM, 08 Mar 2022
    Да, соглашусь, но опять же, смотря где это всё делать. Или же на скоростном ssd диске, или же на старом HDD. Это разные вещи, где будут выполняться операции.
  • https://t.me/clickhouse_ru
    Не совсем понятно в чём проблема разных имен, ну да не суть.
    Основной затык который я вижу - поиск фразы в тексте и он будет упираться не в скорость рам диска, а в ЦПУ. Это нужно хорошо паралелить
  • https://t.me/clickhouse_ru
    @1695040889 #260620 07:20 PM, 08 Mar 2022
    чтение архива, даже с ротационного диска, если без фрагментации - сотни МБ/с
  • https://t.me/clickhouse_ru
    @1695040889 #260621 07:20 PM, 08 Mar 2022
    распаковка в оперативе - ГБ/с
  • нужно больше шин памяти и материнку с 4мя процессорами
  • https://t.me/clickhouse_ru
    @1695040889 #260623 07:21 PM, 08 Mar 2022
    архив 3ГБ - даже смешно, я ежедневно так сотни ГБ обрабатываю
  • https://t.me/clickhouse_ru
    А вот это уже начинает становится сомнительной идеей - нума может сожрать весь пруфит
  • да и нужно определить где сейчас узкой место - в процессоре или скорости чтения записи
  • https://t.me/clickhouse_ru
    @tempnx ↶ Reply to #260623 #260626 07:21 PM, 08 Mar 2022
    Смешно не его размер, и размер файлов в нём, а их количество в архиве
  • https://t.me/clickhouse_ru
    @1695040889 #260627 07:22 PM, 08 Mar 2022
    тип архива?
  • https://t.me/clickhouse_ru
    @tempnx ↶ Reply to #260627 #260628 07:22 PM, 08 Mar 2022
    rar
  • https://t.me/clickhouse_ru
    @1695040889 #260629 07:25 PM, 08 Mar 2022
    архив плоский? без вложенных директорий?
  • https://t.me/clickhouse_ru
    @tempnx ↶ Reply to #260629 #260630 07:26 PM, 08 Mar 2022
    В архиве есть папки, в этих папках от 50к файлов
  • https://t.me/clickhouse_ru
    @good_developer #260631 07:27 PM, 08 Mar 2022
    А с какой проблемой Вы собственно столкнулись? Что у вас при переборе нагружено?
  • https://t.me/clickhouse_ru
    @tempnx ↶ Reply to #260631 #260632 07:30 PM, 08 Mar 2022
    Ну например на Windows только чтобы открыть архив занимает около часа времени на SSD быстром. Winrar не отвечает просто. Тут только чтобы прочитать эти 2 млн файлов, требуются часы времени. А их ещё надо и распаковать, и выполнить поиск по ним. На HDD/SSD - бесполезно просто.
  • https://t.me/clickhouse_ru
    @good_developer #260633 07:31 PM, 08 Mar 2022
    Всё, забудьте, быстрее не будет
  • https://t.me/clickhouse_ru
    @1695040889 #260634 07:31 PM, 08 Mar 2022
    Не нужно использовать WinRar, он наверняка читает весь архив сначала, а потом еще в GUI это отрисовывает
  • https://t.me/clickhouse_ru
    @tempnx ↶ Reply to #260633 #260635 07:31 PM, 08 Mar 2022
    Хороший ответ. Спасибо большое.
  • https://t.me/clickhouse_ru
    @good_developer #260636 07:31 PM, 08 Mar 2022
    Rar паралельно Вы не вычитаете
  • https://t.me/clickhouse_ru
    @tempnx ↶ Reply to #260634 #260637 07:31 PM, 08 Mar 2022
    Да
  • https://t.me/clickhouse_ru
    ??? если не solid, то можно попробовать
  • 09 March 2022 (60 messages)
  • @214612813 #260644 08:16 AM, 09 Mar 2022
    Приветствую, сталиквался ли кто-то со следующей задачей:
    Есть поле UInt64 нужно посчитать сколько раз встречается каждый бит этого пол вы выборке, то есть бит в позиции 0 -> 100 записей, бит в позиции 1 -> 20 ... бит в позиции 63 -> N записей?
  • @vadim_tatarnitsev #260645 08:29 AM, 09 Mar 2022
    Здравствуйте! в запросе использую round(x,2) колонка x имеет тип float. В результате получаю для некоторых значений два знака после запятой, а для некоторых больше двух.
    Как исправить?
    X - nullable , если это важно.
  • @MaksBalashov #260646 08:32 AM, 09 Mar 2022
    Ребят, подскажите что я делаю не так: пытаюсь сделать бекап clickhouse с помощью clickhouse-backup, программа отрабатывает, но сохраняте только метаданные в json но не создает sql файлы с данными. Может кто подсказать в чем затык?
  • можно как то так

    SELECT
    pos,
    countIf(bit = '0') AS zero_bit,
    countIf(bit = '1') AS one_bit
    FROM
    (
    SELECT
    bin(number) AS res,
    splitByString('', res) AS arr,
    bit,
    pos
    FROM numbers(10)
    ARRAY JOIN
    arr AS bit,
    arrayEnumerate(arr) AS pos
    )
    GROUP BY pos

    Query id: 5af511ca-8441-43db-8239-0c1618dab6cf

    ┌─pos─┬─zero_bit─┬─one_bit─┐
    │ 4 │ 10 │ 0 │
    │ 3 │ 10 │ 0 │
    │ 2 │ 10 │ 0 │
    │ 5 │ 8 │ 2 │
    │ 1 │ 10 │ 0 │
    │ 6 │ 6 │ 4 │
    │ 7 │ 6 │ 4 │
    │ 8 │ 5 │ 5 │
  • https://t.me/clickhouse_ru
    Есть же нормальный bitTest
  • https://t.me/clickhouse_ru
    WITH toUInt64(100) AS input
    SELECT
    sum(bitTest(toUInt64(number), 1) = bitTest(input, 1)) AS count1,
    sum(bitTest(toUInt64(number), 2) = bitTest(input, 2)) AS count2,
    sum(bitTest(toUInt64(number), 64) = bitTest(input, 64)) AS count64
    FROM numbers(100)

    Query id: b85434b9-dd54-4582-a23b-b8c34ecc48ce

    ┌─count1─┬─count2─┬─count64─┐
    │ 50 │ 48 │ 100 │
    └────────┴────────┴─────────┘
  • @214612813 #260650 08:40 AM, 09 Mar 2022
    спасибо за варианты, мои мысли вокруг этого и крутятся, ещё размышляю о bitPositionsToArray
  • https://t.me/clickhouse_ru
    @RT_1_98 #260651 08:40 AM, 09 Mar 2022
    На версии сервера 22.2.3 сломались запросы в которых используется несколько подзапросов в WITH

    серевер впадает в рекурсию с огромной портянкой в логе

    TOO_DEEP_RECURSION

    на LTS 21.8.14 всё работает
  • https://t.me/clickhouse_ru
    @RT_1_98 #260652 08:41 AM, 09 Mar 2022
    в багтрекере похожих репортов не нашёл
  • select (arrayJoin(arrayZip(range(1,64),sumForEach(arrayMap((x) -> bitTest(inputval,toUInt64(x)), range(0,63))))) as res).1 as bitNum, res.2 as bitSetFlag
    from (
    select cityHash64(number) as inputval from numbers(10)
    )
    чтоб по битно не писать.
  • попробуем и так, уже увидел что вариант с bitTest работает очень даже шустро:
    1 rows in set. Elapsed: 0.108 sec. Processed 88.60 million rows, 1.86 GB (816.77 million rows/s., 17.15 GB/s.)
    тестировал 40 бит кластер 4 машины
  • c range промахнулся, исправил
  • спастибо
  • там нечему тормозить
  • @214612813 #260658 09:03 AM, 09 Mar 2022
    всегда есть тени сомнений )
  • https://t.me/clickhouse_ru
    @Ali_rzv76 #260659 10:38 AM, 09 Mar 2022
    How can i create table or insert some data in specific table on just one shard of cluster?
    with mergetree or distributed engine
  • пробовали конвертацию в decimal(n, 2) в селекте?
  • https://t.me/clickhouse_ru
    @xakzdn #260662 11:46 AM, 09 Mar 2022
    Ребята, а я что-то не понял, разве ClickHouse - это не Российская разработка ?
  • https://t.me/clickhouse_ru
    @S_Dimitry #260663 11:47 AM, 09 Mar 2022
    Яндекс, вообще, зареган в Нидерландах) разрабы наши
  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #260663 #260664 11:48 AM, 09 Mar 2022
    Тогда какого лешего в документации про политику !?
  • https://t.me/clickhouse_ru
    Изначально разработка Yandex, в сентябре прошлого года была выдела отдельная компания ClickHouse Inc (в штатах?)

    А так там уже порядочно кода со всего мира.
  • https://t.me/clickhouse_ru
    Офис то в рф)
  • https://t.me/clickhouse_ru
    @S_Dimitry #260667 11:48 AM, 09 Mar 2022
    да хороший офис, и бар там хороший
  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #260666 #260668 11:49 AM, 09 Mar 2022
    Кто там главный ? Дайте контакт пожалуйста.
  • https://t.me/clickhouse_ru
    Хз... на странице яндекса поищите
  • https://t.me/clickhouse_ru
    Да вроде не было?
  • @softbot_xxl #260671 11:51 AM, 09 Mar 2022
    где написано?
  • 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
    промахнулись, пингую
  • сорри
  • @AntonVedeneev #260676 12:55 PM, 09 Mar 2022
    спасибо
  • @AntonVedeneev #260677 12:55 PM, 09 Mar 2022
    удалилось?
  • https://t.me/clickhouse_ru
    со всеми бывает
    да, удалилось
  • https://t.me/clickhouse_ru
    @Makasinov #260679 01:48 PM, 09 Mar 2022
    Всем привет, подскажите кто уже обновлялся с 21.6.6.X до последней версии кликхауса? С какими проблемами может сталкивались и как чинили, какие не откатные вещи есть? ПС читаю также ченджлог, но интересно услышать фидбеки от людей если есть. Если всё прошло окей поставьте плиз 👍
  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #260671 #260680 01:55 PM, 09 Mar 2022
    Пардон, это Python'овский clickhouse-driver в политику вдарился в доке...
  • Если у вас в именах полей есть точки, можете нарваться на обратную несовместимость.
  • @softbot_xxl #260682 01:57 PM, 09 Mar 2022
    Разница в поведении есть между 21.3 и 21.8, точнее я не выяснял
  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #260681 #260683 01:58 PM, 09 Mar 2022
    Но она ведь и не заявлена нигде... Или нет ?
  • @softbot_xxl #260684 01:58 PM, 09 Mar 2022
    Не заявлена, насколько я помню.
  • @softbot_xxl #260685 01:59 PM, 09 Mar 2022
    Но я не копал, только в коде смотрел как оно сейчас.
  • @softbot_xxl #260686 01:59 PM, 09 Mar 2022
    Проблемы будут с чтением данных (checksums.txt) и с валидацией при вставке.
  • @softbot_xxl #260687 01:59 PM, 09 Mar 2022
    Или не будут, зависит от данных.
  • @softbot_xxl #260688 01:59 PM, 09 Mar 2022
    У меня были 🙂
  • https://t.me/clickhouse_ru
    Имеется ввиду сломается таблица или просто откатиться будет сложно (невозможно?)?
  • @softbot_xxl #260690 02:02 PM, 09 Mar 2022
    Откатиться можно, ничего не сломается. Кликхаус после апгрейда будет дохнуть из-за превышения лимита сломаных партов. Это можно обойти через force_restore_data флаг, но тогда он начнет ломаться при вставке данных из-за новой валидации.
  • @softbot_xxl #260691 02:03 PM, 09 Mar 2022
    CREATE TABLE test1
    (
    `string.names.0` Array(LowCardinality(String)),
    `string.values.0` Array(String),
    `string.names.1` Array(LowCardinality(String))
    )
    ENGINE = MergeTree
    ORDER BY tuple()
    SETTINGS index_granularity = 8192

    # 20.12.4.5
    insert into test1 format JSONEachRow {"string.names.0": ["name"]}

    Ok.

    # 21.3.13.9

    insert into test1 format JSONEachRow {"string.names.0": ["hello"]}

    Ok.

    # 21.8.13.1.altinitystable (latest stable)

    insert into test1 format JSONEachRow {"string.names.0": ["hello"]}

    Received exception from server (version 21.8.13):
    Code: 190. DB::Exception: Received from 0:25604. DB::Exception: Elements 'string.names.0' and 'string.values.0' of Nested data structure 'string' (Array columns) have different array sizes..
  • https://t.me/clickhouse_ru
    @Makasinov #260692 02:05 PM, 09 Mar 2022
    Ага, спасибо, посмотрю таблицы на предмет точек в названиях. А чинили случайно не пересозданием?
  • @softbot_xxl #260693 02:06 PM, 09 Mar 2022
    Ну чтобы починить, надо выбрасывать точки миграцией схемы, а потом апгрейдить.
  • https://t.me/clickhouse_ru
    @1158922143 #260695 02:28 PM, 09 Mar 2022
    коллеги, приветствую
    подскажите, возможно ли использовать postgres_fdw в PostgreSQL для доступа к таблицам ClickHouse по 9005 порту?
    если да, то где можно почитать как правильно настроить сервер/промапить юзера/создать таблицу в PostgreSQL для этого?
    спасибо
  • https://t.me/clickhouse_ru
    Решили вопрос
  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #260696 #260697 03:17 PM, 09 Mar 2022
    Спасибо!
  • https://t.me/clickhouse_ru
    @1695040889 #260698 05:11 PM, 09 Mar 2022
    postgres_fdw - это для подключения к PG. КХ умеет по протоколу PG отдавать подключения? В смысле, обслуживать подключения.
  • https://t.me/clickhouse_ru
    @387452444 #260699 05:14 PM, 09 Mar 2022
    Server Settings | ClickHouse Documentation

    Server Settings builtin_dictionaries_reload_interval The interval in seconds before reloading built-in dictionaries. Cli

  • https://t.me/clickhouse_ru
    @387452444 #260700 05:16 PM, 09 Mar 2022
    странно что в доках нет до сих пор в integrations
  • https://t.me/clickhouse_ru
    Ой-вэй, слона то я и не заметил. Спасибо огромное!
  • https://t.me/clickhouse_ru
    @1695040889 #260702 05:19 PM, 09 Mar 2022
    Блин, а я все думал, чего все fdw к КХ забросили, через ODBC подключался. Век живи, век учись.
  • https://t.me/clickhouse_ru
    @1695040889 #260703 05:42 PM, 09 Mar 2022
    мде, не работает postgres_fdw
    <Error> PostgreSQLHandler: DB::Exception: Syntax error: failed at position 19 ('pg_catalog'): pg_catalog. Expected one of: number, literal, NULL, FALSE, TRUE, string literal
  • https://t.me/clickhouse_ru
    clickhouse поддерживает протокол передачи данных но не поддерживает все внутренности postgresql и через этот протококол не поддерживает Posgtres SQL диалект

    вам надо внутри Postgres получить данные из clickhouse? какие и зачем ?
  • https://t.me/clickhouse_ru
    @1695040889 #260705 06:23 PM, 09 Mar 2022
    просто проверял работоспособность postgres_fdw
    сам клиент работает, вопросов нет, но для fdw нужны структуры внутренние, в общем, я не удивлен
  • https://t.me/clickhouse_ru
    @5137929189 #260708 11:05 PM, 09 Mar 2022
    Hi
  • 10 March 2022 (55 messages)
  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #260700 #260709 02:12 AM, 10 Mar 2022
    И про now64 тоже ничего нет))
  • @danquimby #260712 07:39 AM, 10 Mar 2022
    Добрый день. У меня проблема.
    есть докер контейнер clickhouse/clickhouse-server:22.2.2.1
    при перегрузке контейнера у меня удаляется база которая внутри докер.
    Подскажите как мне лучше перегружать базу КХ. Или киньте ссылочку
  • https://t.me/clickhouse_ru
    ClickHouse/README.md 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
    @alex_spiridonov #260715 09:45 AM, 10 Mar 2022
    всем привет!
    течёт память на серверах
    два кластера (боевой и тестовый) по две ноды.
    в каждом кластере на одной из нод настроен забор данных из кафки через связку engine=Kafka + mv
    в остальном на нодах - одни и те же replicated таблицы и mv

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

    в запросах с этой страницы https://kb.altinity.com/altinity-kb-setup-and-maintenance/altinity-kb-who-ate-my-memory/

    что-то похожее на значимое показывают только первых два запроса. В первом тотал, похожий на то, что на графиках, во втором много записей (за каждую секунду) вида:
    │ 2022-03-10 12:33:16 │ CompiledExpressionCacheBytes │ 114688 │ 112.00 KiB │
    (на обеих нодах)

    сомневаюсь, что здесь кто-то что-то посоветует, скорее просто держу в курсе
    получается, что под подозрением engine=kafka, но как проверить это пока не знаю
  • @softbot_xxl #260716 09:46 AM, 10 Mar 2022
    Вроде был такой лик, погуглите. Он падает с ООМ?
  • https://t.me/clickhouse_ru
    @alex_spiridonov #260717 09:48 AM, 10 Mar 2022
    в конце концов прекращает обработку запросов и отгрузку данных
    на проде версия: 22.1.3.7
    на тестовом: 22.2.2.1
  • https://t.me/clickhouse_ru
    @alex_spiridonov #260718 09:48 AM, 10 Mar 2022
    не падает, но и не работает
  • https://t.me/clickhouse_ru
    @phpcode83 #260720 10:10 AM, 10 Mar 2022
    Добрый день.
    Подскажите кирилица кликхаусом нормально обрабатывается?
    все работало идеально до момента пока в поле string не отправилась кириллица. запрос на создание поля не прошел.
  • https://t.me/clickhouse_ru
    @phpcode83 #260721 10:13 AM, 10 Mar 2022
    сообщение кликхауса Cannot parse expression of type String here:
  • @478887670 #260722 10:15 AM, 10 Mar 2022
    Здравствуйте, подскажите как получить разницу между соседними строками?
    Мне нужно получить разницу метрик по дням, сгруппированных по дименшенам
  • https://t.me/clickhouse_ru
    Попробуйте русское имя в двойных кавычках
  • https://t.me/clickhouse_ru
    neighbor ?
  • https://t.me/clickhouse_ru
    @Caside ↶ Reply to #260724 #260725 10:22 AM, 10 Mar 2022
    Именно нейбор и имеется в виду. Просто кейс такой, что помимо колонки с датой и числом, дневной прирост которого мы хотим считать, есть другие колонки с айдишниками. Например dim_id.

    Как реализовать нейбор, чтобы для каждого значения dim_id мы выводили дневной прирост числовой колонки?
  • оконная функция lag / lead, dim_id добавьте в partition by
    https://altinity.com/blog/clickhouse-window-functions-current-state-of-the-art
    ClickHouse Window Functions -- Current State of the Art

    Window functions are available in ClickHouse! Learn about this long-awaited feature and how it works, based on extensive QA work at Altinity.

  • @iburobin #260727 11:24 AM, 10 Mar 2022
    Всем привет, вопрос не про CH... просто здесь самые адекватные люди имхо. Нужна быстрая СУБД для хранения и SELECT-запросов по множеству таблиц вида key-value, такая чтобы поддерживала JOIN и работала с этим всем JOIN в mpp-подходе (то есть чтобы можно было масштабировать). Есть ли такая вообще и что можно рассматривать?
  • https://t.me/clickhouse_ru
    @Alexey_037 #260728 11:25 AM, 10 Mar 2022
    чем тот же Postgres не подходит? При хорошем проектировании она и JOIN спокойно держит и скорость адекватная
  • @ChernyshovAnton #260729 11:27 AM, 10 Mar 2022
    и вроде для ch много join в одном SQL не так чтобы хорошо
  • @iburobin #260730 11:27 AM, 10 Mar 2022
    Таблиц вида key-value могут быть тысячи, запросы с десятком Join, я не уверен что Postgres сможет это обрабатывать быстро.
  • @ChernyshovAnton #260731 11:27 AM, 10 Mar 2022
    для pg вроде сильно лучше
  • Это называется HTAP - Hybrid Transactional Analytical Processing. Из опенсорса можно взглянуть на TiDB, там КХ в качестве аналитического плагина. Из платного какой-нибудь MemSQL, решения Tableu (они купили Hyper), либо строить пайплайны самому из OLTP в OLAP.
  • @softbot_xxl #260733 11:28 AM, 10 Mar 2022
    В любом случае надо тестировать на ваших сценариях и иметь кого-нибудь, кто хорошо понимает как это работает.
  • https://t.me/clickhouse_ru
    Десятки join для PG - не проблема, если, опять же, верно настроена БД, индексы и т.п. Все таки надо чуть больше вводных данных )
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #260727 #260735 11:30 AM, 10 Mar 2022
    если таки говорить о КХ, то эти ваши KV таблицы тут называются словарями. Их может быть много, они живут преимущественно в памяти и быстро делают примерно то, что вы называете JOIN.
    Выбирая инструмент, лучше говорить в терминах задачи, а не предполагаемого решения.
  • @iburobin #260736 11:32 AM, 10 Mar 2022
    Задача – хранение произвольных данных для выполнения аналитических запросов.
  • https://t.me/clickhouse_ru
    @rvkggwp #260737 11:32 AM, 10 Mar 2022
    Ну можно вспомнить опыт компании lingualeo. Где они рассказывают как они переехали на pg и у них есть только какие-то id по которым они находят данные, а сами данные лежат в JSONB. И скорость получения данных огромная. Можно почитать на habr и посмотреть в youtube канал ru postgres.
  • @iburobin #260738 11:32 AM, 10 Mar 2022
    Сейчас перебираю технологии и варианты того что существует
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #260736 #260739 11:34 AM, 10 Mar 2022
    насколько велики ваши KV словари? Как часто изменяются? У вас там уже сложилось с измерениями/фактами по кимбалу или что-то иное?
  • @iburobin #260740 11:34 AM, 10 Mar 2022
    Задача – хранение произвольных данных для выполнения аналитических запросов. Здесь я имею в виду что система сама создает таблицы, индексы и другие сущности исходя из данных. То есть этим не разработчик занимается а она сама думает о том как хранить, разработчик работает лишь с прикладным слоем. Словари от 1к до 500м строк
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #260740 #260741 11:36 AM, 10 Mar 2022
    "этим не разработчик занимается а она сама думает" - тогда смело вычеркивайте КХ. Тут все ровно наоборот - разработчик думает головой. NoSQL подход. Возможности оптимизатора запросов минимальны.
  • @iburobin #260742 11:36 AM, 10 Mar 2022
    Да, clickhouse я вычеркнул сразу. просто здесь самый адекватный чат по аналитическим хранилищам))
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #260742 #260743 11:37 AM, 10 Mar 2022
    т.е. вот так - с явным умыслом занимаетесь оффтопиком? Нехорошо....
  • @iburobin #260744 11:38 AM, 10 Mar 2022
    Да, виновен. Извините 😊
  • мы на КХ делаем, в принципе ОК, главное join-ить объемы влезающие в память...
  • но разработчику надо много думать над запросами...
  • вам может гринплам лучше подойдет
  • @dj_mixer #260748 11:59 AM, 10 Mar 2022
    там есть как минимум оптимизатор...
  • @undercover50 #260750 01:56 PM, 10 Mar 2022
    Привет! Почему-то любой пользователь, кроме default, при попытке просмотреть словари получает пустой ответ. Default получает все данные нормально. Пробовал rbac пользователя создать и явно дать доступ к таблице, тот же результат. По другим системным таблицам селект отрабатывает нормально, проблема исключительно со словарями. Может кто-нибудь сталкивался с такой проблемой?

    select * from system.dictionaries

    SELECT *
    FROM system.dictionaries

    Query id: 2ec91bbf-9951-4c97-bd48-4220b2d577f6

    Ok.
  • https://t.me/clickhouse_ru
    @Alexey_037 #260751 01:58 PM, 10 Mar 2022
    Что в правах на другого пользователя прописано?
  • @undercover50 #260752 01:59 PM, 10 Mar 2022
    выполнял это

    CREATE user rbac_test
    GRANT SELECT ON system.dictionaries TO rbac_test WITH GRANT OPTION
  • https://t.me/clickhouse_ru
    @Alexey_037 #260753 02:01 PM, 10 Mar 2022
    Выполните SHOW ACCESS , проанализируйте разницу между пользователем default и новым
  • @undercover50 #260754 02:01 PM, 10 Mar 2022
    спасибо за совет) посмотрю
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #260750 #260755 02:05 PM, 10 Mar 2022
    там есть пермишн dictGet
  • https://t.me/clickhouse_ru
    @Alexey_037 #260756 02:07 PM, 10 Mar 2022
    Скорее всего, поможет
    CREATE USER rbac_test IDENTIFIED WITH plaintext_password SETTINGS PROFILE readonly
    GRANT ALL ON *.* TO rbac_test WITH GRANT OPTION;

    Будет доступ только на чтение для пользователя.
  • @undercover50 #260757 02:10 PM, 10 Mar 2022
    Сработало, так словари видит, большое спасибо!
  • https://t.me/clickhouse_ru
    @Alexey_037 #260758 02:11 PM, 10 Mar 2022
    Обращайтесь )
  • https://t.me/clickhouse_ru
    @725845313 #260759 03:51 PM, 10 Mar 2022
    Кто-нибудь юзал Исполняемые пользовательские функции? https://clickhouse.com/docs/ru/sql-reference/functions/
    Пример из доки не работает (

    SELECT test_function_python(toUInt64(2))

    Query id: bf2b5401-d664-4f80-8f38-c8cd83475568

    0 rows in set. Elapsed: 0.002 sec.

    Received exception from server (version 22.2.2):
    Code: 75. DB::Exception: Received from localhost:9000. DB::Exception: Cannot write into pipe , errno: 32, strerror: Broken pipe: While executing TabSeparatedRowOutputFormat: While processing test_function_python(toUInt64(2)). (CANNOT_WRITE_TO_FILE_DESCRIPTOR)
    Введение | Документация ClickHouse

    Функции Функции бывают как минимум* двух видов - обычные функции (называются просто, функциями) и агрегатные функции. Эт

  • https://t.me/clickhouse_ru
    Посмотри

    https://github.com/ClickHouse/ClickHouse/issues/34604#event-6114388762
    Executable UDF: read / write other data formats than TabSeparated · Issue #34604 · ClickHouse/ClickHouse

    Hi, I'm trying to figure out how read / write some data formats that are not TabSeparated (e.g. Native or JSONEachRow) in my EUDF - C++ script. Context: I already succeed to implement some ...

  • https://t.me/clickhouse_ru
    спасибо. Запопробую на сях
  • https://t.me/clickhouse_ru
    @unamedrus #260763 04:14 PM, 10 Mar 2022
    Да там и на питоне не сложно
  • https://t.me/clickhouse_ru
    @5257964479 #260768 06:28 PM, 10 Mar 2022
    ttps://t.me/black_hub
    https://t.me/

    Менеджер Destrov, [08.03.2022, 16:54]
    OrNeverMaaan
    https://t.me/likeconcentrat
    https://t.me/prophp7
    https://t.me/litegroup
    @confayazkzn
    https://t.me/zdorovoz
    https://t.me/optchinaUARU
    https://t.me/dimavolkovnostradamus
    https://t.me/telbtc
    https://t.me/odeepwebchat
    @mskstroika
    https://t.me/thepalatalordov
    https://t.me/okolohookah_chat
    https://t.me/musicandit
    https://t.me/dejawe
    https://t.me/blackmss
    https://t.me/git_ru
    https://t.me/trikotage
    https://t.me/postcoinrussia
    https://t.me/golos_io
    https://t.me/OPGtelega
    https://t.me/otkrytyy
    https://t.me/rusmmchat
    https://t.me/New_GoodStory
    https://t.me/yoba_ch
    @avtochatodessa
    https://t.me/cpabet
    https://t.me/firmodelmarket
    @agencytravelua
    https://t.me/topchattop
    https://t.me/BAZASNG]
    https://t.me/ylubka
    https://t.me/dnrtg
    https://t.me/bestalkota
    https://t.me/Dark_Rblnok
    https://t.me/str0yka
    https://t.me/kievchat
    https://t.me/konsaltinggroup
    https://t.me/samuichat
    https://t.me/blackmarket_chat
    https://t.me/workoninternet
    @baraholka_zah_buy
    https://t.me/ru_philosophy
    https://t.me/DarkCourtCha
    https://t.me/business_as_it_is
    https://t.me/rsgey777
    https://t.me/shumibl
    @B1LACKMARKET
    https://t.me/supergoodadvice
    https://t.me/higher_math
    https://t.me/business_in_Uk
    https://t.me/biznes_chat0
    https://t.me/AstraChat
    https://t.me/chessconf
    https://t.me/linuxcoders
    https://t.me/augmoscow
    https://t.me/clickhouse_ru
    https://t.me/ukrasell
    @legko_bank_msk
    https://t.me/techat
    https://t.me/chernyy_rynok_ukr
    @xarcharingrussia
    https://t.me/coinmarket1
    https://t.me/welcome_to_sprite
    https://t.me/xmade
    https://t.me/devall
    https://t.me/etozhechat
    https://t.me/provizorua
    https://t.me/glpi_ru
    https://t.me/myjobit
    @uabar
    https://t.me/

    Главный Модератор, [04.03.2022, 21:45]
    🔱💰@GradientShop_bot💰🔱
    ✅СВЯЗКИ под МФО♦
    ✅BTC_BANKER с балансом♦
    ✅Чистые госы со сканом♦
    ✅Еу сканы паспортов♦
    ✅Физ.номера♦
    ✅Физ. Номера Теле2 (от 1 года,активные)♦
    ✅Прокси♦
    ✅Мануалы и обучения♦
    ✅МЕГАПАК♦
    ✅Аккаунты БК с фрибетом♦
    ✅ДЕАНОН♦
    ✅Взлом телеграм аккаунта♦
    ✅Верифицированные аккаунты Авито♦
    ✅АВТОПОСТИНГ♦
    ✅СОФТЫ♦
    ✅Создание ботов любой сложности под ключ 🔑 ♦
    ✅Приватные ПАРСЕРЫ♦

    🔰И многое другое только тут:
    ➡️@GradientShop_bot⬅️

    ▫️Гарант ☑
    ▫️Отзывы📣

    Главный Модератор, [06.03.2022, 23:52]
    🔥🔥ЕСЛИ НАЙДЕТЕ ДЕШЕВЛЕ ОТДАДИМ ВАМ ТОВАР БЕСПЛАТНО🔥🔥
    🔱💰@GradientShop_bot💰🔱

    ✅Qiwi кошельки с БАЛАНСОМ
    ✅СВЯЗКИ под МФО
    ✅BTC_BANKER с балансом
    ✅Чистые госы со сканом
    ✅Еу сканы паспортов
    ✅Физ.номера
    ✅Физ. Номера Теле2 (от 1 года,активные)
    ✅Прокси
    ✅Мануалы и обучения
    ✅МЕГАПАК
    ✅Аккаунты БК с фрибетом
    ✅ДЕАНОН
    ✅Взлом телеграм аккаунта
    ✅Верифицированные аккаунты Авито
    ✅АВТОПОСТИНГ
    ✅СОФТЫ
    ✅Создание ботов любой сложности под ключ 🔑
    ✅Приватные ПАРСЕР
    ////////////////////////////////////////////////
    🔥ОБУЧЕНИЕ ЕУ МФО
    🔥ОБУЧЕНИЕ РУ МФО
    🔥ОБУЧЕНИЕ АБУЗУ БК
    🔥ОБУЧЕНИЕ "ДОХОД НА ПАСИВЕ ОТ 2к-4к"

    🔰И МНОГОЕ ДРУГОЕ ТОЛЬКО ТУТ:
    🔜🔜➡️@GradientShop_bot⬅️🔙🔙
    ////////////////////////////////////////////////
    ▫️ЕСТЬ РЕПУТАЦИЕЙ НА ИЗВЕСТНЫХ ФОРУМАХ
    ▫️ГАРАНТ☑
    ▫️ОТЗЫВЫ📣
    ////////////////////////////////////////////////
    ❗ЕСЛИ НАЙДЕТЕ ДЕШЕВЛЕ ,ОТДАДИМ ВАМ ТОВАР БЕСПЛАТНО

    Главный Модератор, [06.03.2022, 23:56]
    @ChatsOfScrooge_bot
    @DWDCHAT
    https://t.me/joinchat/8Z3XQFaOAVBmMjcy
    https://t.me/+BlVn14bn5982YThi
    https://t.me/+Twqz1HrHOEkyZjcy
    https://t.me/+oit_W0md08lkMGUy
    https://t.me/+HivpiNaYhxFiZWI6
    https://t.me/joinchat/BXIMqpRjU8JhNWEy
    https://t.me/joinchat/erE-Bfnt9Sc3ZGE6

    Главный Модератор, [07.03.2022, 21:52]
    Чаты для рассылок: https://t.me/darksidechat
    https://t.me/DarkDeals2
    https://t.me/LolzUslugi
    https://t.me/saves_cash_chat
    https://t.me/joinchat/8Z3XQFaOAVBmMjcy
    https://t.me/joinchat/-BDhsbihf3oxYTMy
    https://t.me/lztguardbot
    https://t.me/ScroogeProjects
    https://t.me/DWDCHAT
    https://t.me/joinchat/pfZV3mfA6JE0ZWE6
    https://t.me/joinchat/hOoGbNlhE0ZmNzcy
    https://t.me/joinchat/gPvxPPVS4XxiZTFi
    https://t.me/joinchat/M4p0EE6np1KFaHWModY9Fw
    https://t.me/joinchat/GbHGDcNiZVM2MGNi
    https://t.me/darknetlook
    https://t.me/BuffettChatt
    https://t.me/sonictv77
    https://t.me/joinchat/BlVn14bn5982YThi
    https://t.me/
    PHP

    Группа про современный PHP. Обсуждаем ООП, TDD, BDD, DDD, SOLID, GRASP и прочие крутые базворды Для ознакомления: https://gist.github.com/mkusher/711bd46f0b62fbae851182e6fb3b1839 Группа PHP для новичков @phpGeeksJunior Вакансии: https://t.me/fordev

  • https://t.me/clickhouse_ru
    @5257964479 #260769 06:44 PM, 10 Mar 2022
    ttps://t.me/black_hub
    https://t.me/

    Менеджер Destrov, [08.03.2022, 16:54]
    OrNeverMaaan
    https://t.me/likeconcentrat
    https://t.me/prophp7
    https://t.me/litegroup
    @confayazkzn
    https://t.me/zdorovoz
    https://t.me/optchinaUARU
    https://t.me/dimavolkovnostradamus
    https://t.me/telbtc
    https://t.me/odeepwebchat
    @mskstroika
    https://t.me/thepalatalordov
    https://t.me/okolohookah_chat
    https://t.me/musicandit
    https://t.me/dejawe
    https://t.me/blackmss
    https://t.me/git_ru
    https://t.me/trikotage
    https://t.me/postcoinrussia
    https://t.me/golos_io
    https://t.me/OPGtelega
    https://t.me/otkrytyy
    https://t.me/rusmmchat
    https://t.me/New_GoodStory
    https://t.me/yoba_ch
    @avtochatodessa
    https://t.me/cpabet
    https://t.me/firmodelmarket
    @agencytravelua
    https://t.me/topchattop
    https://t.me/BAZASNG]
    https://t.me/ylubka
    https://t.me/dnrtg
    https://t.me/bestalkota
    https://t.me/Dark_Rblnok
    https://t.me/str0yka
    https://t.me/kievchat
    https://t.me/konsaltinggroup
    https://t.me/samuichat
    https://t.me/blackmarket_chat
    https://t.me/workoninternet
    @baraholka_zah_buy
    https://t.me/ru_philosophy
    https://t.me/DarkCourtCha
    https://t.me/business_as_it_is
    https://t.me/rsgey777
    https://t.me/shumibl
    @B1LACKMARKET
    https://t.me/supergoodadvice
    https://t.me/higher_math
    https://t.me/business_in_Uk
    https://t.me/biznes_chat0
    https://t.me/AstraChat
    https://t.me/chessconf
    https://t.me/linuxcoders
    https://t.me/augmoscow
    https://t.me/clickhouse_ru
    https://t.me/ukrasell
    @legko_bank_msk
    https://t.me/techat
    https://t.me/chernyy_rynok_ukr
    @xarcharingrussia
    https://t.me/coinmarket1
    https://t.me/welcome_to_sprite
    https://t.me/xmade
    https://t.me/devall
    https://t.me/etozhechat
    https://t.me/provizorua
    https://t.me/glpi_ru
    https://t.me/myjobit
    @uabar
    https://t.me/

    Главный Модератор, [04.03.2022, 21:45]
    🔱💰@GradientShop_bot💰🔱
    ✅СВЯЗКИ под МФО♦
    ✅BTC_BANKER с балансом♦
    ✅Чистые госы со сканом♦
    ✅Еу сканы паспортов♦
    ✅Физ.номера♦
    ✅Физ. Номера Теле2 (от 1 года,активные)♦
    ✅Прокси♦
    ✅Мануалы и обучения♦
    ✅МЕГАПАК♦
    ✅Аккаунты БК с фрибетом♦
    ✅ДЕАНОН♦
    ✅Взлом телеграм аккаунта♦
    ✅Верифицированные аккаунты Авито♦
    ✅АВТОПОСТИНГ♦
    ✅СОФТЫ♦
    ✅Создание ботов любой сложности под ключ 🔑 ♦
    ✅Приватные ПАРСЕРЫ♦

    🔰И многое другое только тут:
    ➡️@GradientShop_bot⬅️

    ▫️Гарант ☑
    ▫️Отзывы📣

    Главный Модератор, [06.03.2022, 23:52]
    🔥🔥ЕСЛИ НАЙДЕТЕ ДЕШЕВЛЕ ОТДАДИМ ВАМ ТОВАР БЕСПЛАТНО🔥🔥
    🔱💰@GradientShop_bot💰🔱

    ✅Qiwi кошельки с БАЛАНСОМ
    ✅СВЯЗКИ под МФО
    ✅BTC_BANKER с балансом
    ✅Чистые госы со сканом
    ✅Еу сканы паспортов
    ✅Физ.номера
    ✅Физ. Номера Теле2 (от 1 года,активные)
    ✅Прокси
    ✅Мануалы и обучения
    ✅МЕГАПАК
    ✅Аккаунты БК с фрибетом
    ✅ДЕАНОН
    ✅Взлом телеграм аккаунта
    ✅Верифицированные аккаунты Авито
    ✅АВТОПОСТИНГ
    ✅СОФТЫ
    ✅Создание ботов любой сложности под ключ 🔑
    ✅Приватные ПАРСЕР
    ////////////////////////////////////////////////
    🔥ОБУЧЕНИЕ ЕУ МФО
    🔥ОБУЧЕНИЕ РУ МФО
    🔥ОБУЧЕНИЕ АБУЗУ БК
    🔥ОБУЧЕНИЕ "ДОХОД НА ПАСИВЕ ОТ 2к-4к"

    🔰И МНОГОЕ ДРУГОЕ ТОЛЬКО ТУТ:
    🔜🔜➡️@GradientShop_bot⬅️🔙🔙
    ////////////////////////////////////////////////
    ▫️ЕСТЬ РЕПУТАЦИЕЙ НА ИЗВЕСТНЫХ ФОРУМАХ
    ▫️ГАРАНТ☑
    ▫️ОТЗЫВЫ📣
    ////////////////////////////////////////////////
    ❗ЕСЛИ НАЙДЕТЕ ДЕШЕВЛЕ ,ОТДАДИМ ВАМ ТОВАР БЕСПЛАТНО

    Главный Модератор, [06.03.2022, 23:56]
    @ChatsOfScrooge_bot
    @DWDCHAT
    https://t.me/joinchat/8Z3XQFaOAVBmMjcy
    https://t.me/+BlVn14bn5982YThi
    https://t.me/+Twqz1HrHOEkyZjcy
    https://t.me/+oit_W0md08lkMGUy
    https://t.me/+HivpiNaYhxFiZWI6
    https://t.me/joinchat/BXIMqpRjU8JhNWEy
    https://t.me/joinchat/erE-Bfnt9Sc3ZGE6

    Главный Модератор, [07.03.2022, 21:52]
    Чаты для рассылок: https://t.me/darksidechat
    https://t.me/DarkDeals2
    https://t.me/LolzUslugi
    https://t.me/saves_cash_chat
    https://t.me/joinchat/8Z3XQFaOAVBmMjcy
    https://t.me/joinchat/-BDhsbihf3oxYTMy
    https://t.me/lztguardbot
    https://t.me/ScroogeProjects
    https://t.me/DWDCHAT
    https://t.me/joinchat/pfZV3mfA6JE0ZWE6
    https://t.me/joinchat/hOoGbNlhE0ZmNzcy
    https://t.me/joinchat/gPvxPPVS4XxiZTFi
    https://t.me/joinchat/M4p0EE6np1KFaHWModY9Fw
    https://t.me/joinchat/GbHGDcNiZVM2MGNi
    https://t.me/darknetlook
    https://t.me/BuffettChatt
    https://t.me/sonictv77
    https://t.me/joinchat/BlVn14bn5982YThi
    https://t.me/
    PHP

    Группа про современный PHP. Обсуждаем ООП, TDD, BDD, DDD, SOLID, GRASP и прочие крутые базворды Для ознакомления: https://gist.github.com/mkusher/711bd46f0b62fbae851182e6fb3b1839 Группа PHP для новичков @phpGeeksJunior Вакансии: https://t.me/fordev

  • https://t.me/clickhouse_ru
    @orantius
  • https://t.me/clickhouse_ru
    да, на гошке успешно обошли неумение клика работать с динамическими регулярными выражениями. с чтением из stdin там действительно много мороки
  • https://t.me/clickhouse_ru
    @m1khal3v #260774 07:56 PM, 10 Mar 2022
    рекомендую заюзать возможность получать первой строкой кол-во строк которые будут получены следом, так сильно проще
  • 11 March 2022 (78 messages)
  • https://t.me/clickhouse_ru
    @picachulovesyou #260776 04:59 AM, 11 Mar 2022
    Всем привет, кто-нибудь может подсказать ссылки на какие-нибудь статьи , исследования про связь количества джоинов и производительности клика. Насколько я помню скорость селектов сильно проседает из-за этого. Это также работает для view и количества джоинов в нем используемых?
  • https://t.me/clickhouse_ru
    тут скорее правило, что JOIN это плохо, если у вас нет Очень много оперативной памяти. Правая табла джойна уходит в RAM , а там она хранится в расжатом виде и поэтому ваши 500 метров таблицы превращаются в 5 Гб примерно. Джойны хорошо работают, но на маленьких объемах. Но это мой опыт на 21.8 версии
  • https://t.me/clickhouse_ru
    @php_dev4_hr54 #260778 05:28 AM, 11 Mar 2022
    Добрый день всем. Насколько негативно влияет добавление ключей партицирования и нескольких столбцов в primary key на скорость вставки?
    Каков вообще примерный объем строк, который клик может обрабатывать для вставки вне зависимости от количества индексов и ключей партицирования?
  • https://t.me/clickhouse_ru
    Спасибо!
  • https://t.me/clickhouse_ru
    @ne_atmo #260781 08:42 AM, 11 Mar 2022
    Добрый день!
    Подскажите, пожалуйста, что можно сделать в ситуации, когда раньше убили мутацию, которая меняла тип колонки Int8 -> Int16, а теперь агрегация по этой колонке не работает с ошибкой DB::Exception: Invalid number of rows in Chunk column Int16 position 1: expected 65505, got 50812 ? Не работает только на некоторых партициях.
    Мне уже помогли здесь следующим вариантом решения: залить сломанные партиции во временную таблицу, удалить их из исходной, потом из временной залить заново в исходную, чтобы мерджи еще раз отработали. Но проблема в том (что я выяснила уже после) , что на некоторых сломанных партициях обычные селекты без агрегаций тоже не работают. То есть я не могу сделать insert в другую таблицу по той же ошибке.
    Может кто-то сталкивался с подобным и решал эту проблему?
  • https://t.me/clickhouse_ru
    @Reineke_fuchs #260782 08:59 AM, 11 Mar 2022
    Добрый день! При создании базы данных на движке MaterializedPostgreSQL в CH появляется база но вообще без таблицы.
    Делаю вот так:
    CREATE DATABASE demodb
    ENGINE = MaterializedPostgreSQL('postgres1:5432', 'postgres_database', 'postgres_user', 'postgres_password')
    SETTINGS
    materialized_postgresql_tables_list = 'table1,table2,table3';
    PK в таблице есть, пользователь Postgre с правами Superuser и Replication.
    Кто-нибудь сталкивался с этим, подскажите пожалуйста, как это можно решить?
  • https://t.me/clickhouse_ru
    Я как помню там какой то определённый тип репликации требуется.
  • https://t.me/clickhouse_ru
    MaterializedPostgreSQL | Документация ClickHouse

    [экспериментальный] MaterializedPostgreSQL Создает базу данных ClickHouse с исходным дампом данных таблиц PostgreSQL и з

  • https://t.me/clickhouse_ru
    Да
  • https://t.me/clickhouse_ru
    @Mike_Er #260788 10:31 AM, 11 Mar 2022
    Добрый день, 2 реплики одного шарда начали разъезжаться по заниманиемому месту. Реплика, которая стала больше "жрать" в лог сыпет ошибками (структуру не меняли очень давно)
    2022.03.11 13:28:37.800477 [ 116465 ] {} <Error> ladnl.dnl_log_local: auto DB::StorageReplicatedMergeTree::processQueueEntry(ReplicatedMergeTreeQueue::SelectedEntryPtr)::(anonymous class)::operator()(DB::StorageReplicatedMergeTree::LogEntryPtr &) const: Code: 49, e.displayText() = DB::Exception: Unexpected merged part 3895_19197_24304_103_24336 intersecting drop range 3895_20969_21725_999999999_24336, 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) @ 0x8b5e67a in /usr/bin/clickhouse
    1. DB::Exception::Exception<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&&) @ 0xda7ad7e in /usr/bin/clickhouse
    2. DB::MergeTreeData::removePartsInRangeFromWorkingSet(DB::MergeTreePartInfo const&, bool, std::__1::unique_lock<std::__1::mutex>&) @ 0x100ef0ff in /usr/bin/clickhouse
    3. DB::StorageReplicatedMergeTree::executeDropRange(DB::ReplicatedMergeTreeLogEntry const&) @ 0xfea66be in /usr/bin/clickhouse
    4. DB::StorageReplicatedMergeTree::executeLogEntry(DB::ReplicatedMergeTreeLogEntry&) @ 0xfea47ed in /usr/bin/clickhouse
    5. ? @ 0xff2887f in /usr/bin/clickhouse
    6. DB::ReplicatedMergeTreeQueue::processEntry(std::__1::function<std::__1::shared_ptr<zkutil::ZooKeeper> ()>, std::__1::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&, std::__1::function<bool (std::__1::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&)>) @ 0x102a996c in /usr/bin/clickhouse
    7. DB::StorageReplicatedMergeTree::processQueueEntry(std::__1::shared_ptr<DB::ReplicatedMergeTreeQueue::SelectedEntry>) @ 0xfed86dd in /usr/bin/clickhouse
    8. ? @ 0x1006eab7 in /usr/bin/clickhouse
    9. ThreadPoolImpl<ThreadFromGlobalPool>::worker(std::__1::__list_iterator<ThreadFromGlobalPool, void*>) @ 0x8ba1458 in /usr/bin/clickhouse
    10. ThreadFromGlobalPool::ThreadFromGlobalPool<void ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda1'()>(void&&, void ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda1'()&&...)::'lambda'()::operator()() @ 0x8ba2e1f in /usr/bin/clickhouse
    11. ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0x8b9e99f in /usr/bin/clickhouse
    12. ? @ 0x8ba1ec3 in /usr/bin/clickhouse
    13. start_thread @ 0x7ea5 in /usr/lib64/libpthread-2.17.so
    14. __clone @ 0xfe9fd in /usr/lib64/libc-2.17.so
    (version 21.6.4.26 (official build))
    Подскажите, что посмотреть, чтобы починить?
  • @401005630 #260789 10:34 AM, 11 Mar 2022
    Добрый день, подскажите пожалуйста, как можно сделать COUNT(DISTINCT `field`) в семействе движков CollapsingMergeTree без FINAL ?
  • https://t.me/clickhouse_ru
    @316527246 #260790 11:16 AM, 11 Mar 2022
    Всем привет, кто-нибудь сталкивался с проблемами при переходе со старой версии КХ на более новую?

    У нас стоят 19.15.2.2 и 20.8.19.4
    Хотим перейти на 22.2.2.1
    Какие вообще есть риски обновления текущего инстанса, не создавая копию? Миграция данных может прилично времени и памяти отнять (
  • https://t.me/clickhouse_ru
    а тестовый такой же у вас есть?
  • @vmihailenco #260793 11:23 AM, 11 Mar 2022
    а что можно сделать с таблицами типа system.asynchronous_metric_log_9 и system.query_thread_log_3 и т.д.? их у меня почему-то десятки и они занимают они 10+gb...
  • https://t.me/clickhouse_ru
    Вы часто обновляли кликхаус ?
  • @vmihailenco #260795 11:24 AM, 11 Mar 2022
    ну за пару лет наверное 10+ раз набежало
  • https://t.me/clickhouse_ru
    @konnectrl #260796 11:24 AM, 11 Mar 2022
    Ну вот, по идее можете отсавить только с максимальной цифрой лог
  • https://t.me/clickhouse_ru
    @konnectrl #260797 11:24 AM, 11 Mar 2022
    И то если он вам нужен, можете удалить вроде как и кликхаус сам пересоздаст
  • ок, спасибо
    я думал может команда какая-то есть - руками это тяжело чистить...
  • https://t.me/clickhouse_ru
    DELETE TABLE и всё
  • @vmihailenco #260801 11:26 AM, 11 Mar 2022
    ну да, пару десяток раз... :)
  • https://t.me/clickhouse_ru
    @Ankalim #260802 11:28 AM, 11 Mar 2022
    Всем привет! Пытаюсь запустить клиент на C++. Всё успешно компилится но не работает ( запрос строки должен возвращать.
    подробнее проблему описал тут.
    https://stackoverflow.com/questions/71420049/dont-run-program-with-successful-compilation-c
    Может кто подскажет или поделится своим проект на плюсах? Я не чень в них погружен. Заранее спасибо!
    don't run program with successful compilation c++

    I try execute this code. #include <clickhouse/client.h> #include <iostream> using namespace clickhouse; int main(){ /// Initialize client connection. ClientOptions settings =

  • https://t.me/clickhouse_ru
    Нету
    Еще полгода назад создавали тестовый инстанс, и проверили по нему часть данных, всё было ок, но всех данных так не проверить

    Какие в целом есть риски такого обновления? В худшем сценарии бд не может заблокироваться совсем например?
  • https://t.me/clickhouse_ru
    Я бы вам рекомендовал обновлятсья по lts версиям. Проблемы могут быть из-за разных баз данных в 19/22 версии. Так же будут не совпадать checksum для столбцов из-за изменений хранения информации.
  • @179984270 #260805 11:41 AM, 11 Mar 2022
    Коллеги, добрый день! Подскажите, можно ли и если можно то как (какой должен быть тип индекса) создать индекс для существующей таблицы. В ней скажем 10 столбцов и я хочу создать 2 индекса, по 2 столбцам. В order by уже указаны не интересующие меня столбцы.

    Например для индексированного поиска по столбцу column1 можем попробовать так:
    Alter table MYTABLE add index MYINDEX (column1) type minmax;

    Но насколько я понимаю, минмакс тут совершенно вставлен не корректно.
  • https://t.me/clickhouse_ru
    В кликхаусе нету "обычных" индексов, сейчас есть order by и skip-index. Уже в зависимости от данных выбирать тип индексов.
  • https://t.me/clickhouse_ru
    Спасибо за совет!
    Видимо без копии не обойтись
  • @mminaev #260808 11:54 AM, 11 Mar 2022
    привет, подскажите пожалуйста, есть replicatedmergetree табличка. Вчера в ней поменял ttl с 2 месяцев до 4 месяцев. И почему то КХ активно начал качать данные внутри 1 шарда(по сути переливать с 1 реплилки на другую). Почему такое могло произойти? Вервсия 22.1
  • https://t.me/clickhouse_ru
    А какие данные он качает ?
  • партици таблицы которая и так у него есть
  • @401005630 #260812 12:55 PM, 11 Mar 2022
    Добрый день, подскажите пожалуйста, как можно сделать COUNT(DISTINCT `field`) в семействе движков CollapsingMergeTree без FINAL ?
  • https://t.me/clickhouse_ru
    @apanasevich_d #260813 01:24 PM, 11 Mar 2022
    Привет!

    Подскажите пжл по интеграции с Kafka. Попробовал узнать на SO, но там пока без ответа https://stackoverflow.com/questions/71426336/clickhouse-kafka-engine-on-cluster

    Продублирую сюда:
    Запускаю кластер кх и кафку в докер-компоуз https://github.com/apanasevich/clickhouse-etl-cluster под Win10

    Создаю реплицируемую таблицу, таблицу кафки и вью:

    CREATE TABLE tmp ON CLUSTER cluster
    (
    `event_timestamp` DateTime64(3, 'Europe/Moscow'),
    `account_id` Int32,
    `session` String,
    `type` Int16
    )
    ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/etl/tmp', '{replica}')
    PARTITION BY toMonday(event_timestamp)
    ORDER BY (account_id, event_timestamp)
    TTL toDateTime(event_timestamp) + toIntervalDay(90);

    CREATE TABLE tmp_kafka_datasource
    (
    `topic_data` String
    )
    ENGINE = Kafka
    SETTINGS kafka_broker_list = 'kafka:29092', kafka_topic_list = 'Tmp',
    kafka_group_name = 'clickhouse_etl_group', kafka_format = 'JSONAsString', kafka_num_consumers = 1;

    CREATE MATERIALIZED VIEW tmp_consumer TO tmp
    (
    `event_timestamp` DateTime64(3),
    `account_id` Int32,
    `session` String,
    `type` Int16
    ) AS
    SELECT
    fromUnixTimestamp64Milli(JSONExtract(topic_data, 'time', 'Int64')) AS event_timestamp,
    toInt32(JSON_VALUE(topic_data, '$.data.accountId')) AS account_id,
    JSON_VALUE(topic_data, '$.data.session') AS session,
    toInt16(JSON_VALUE(topic_data, '$.data.type')) AS type
    FROM tmp_kafka_datasource;

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

    Если сделать insert в реплицируемую таблицу, то данные вставляются и реплицируются.
    Если создавать таблицу как не реплицируемую (ENGINE=MergeTree), то вся схема интеграции работает тоже.

    Что не так сделано?

    В логах только это:

    2022.03.11 07:39:54.519652 [ 1 ] {} <Warning> Application: Listen [::]:9005 failed: Poco::Exception. Code: 1000, e.code() = 0, DNS error: EAI: Address family for hostname not supported (version 21.11.4.14 (official build)). If it is an IPv6 or IPv4 address and your host has disabled IPv6 or IPv4, then consider to specify not disabled IPv4 or IPv6 address to listen in <listen_host> element of configuration file. Example for disabled IPv6: <listen_host>0.0.0.0</listen_host> . Example for disabled IPv4: <listen_host>::</listen_host>
    2022.03.11 07:39:54.641049 [ 249 ] {} <Error> virtual bool DB::DDLWorker::initializeMainThread(): Code: 999. Coordination::Exception: All connection tries failed while connecting to ZooKeeper. nodes: 172.27.0.2:2181
    Poco::Exception. Code: 1000, e.code() = 111, Connection refused (version 21.11.4.14 (official build)), 172.27.0.2:2181
    Poco::Exception. Code: 1000, e.code() = 111, Connection refused (version 21.11.4.14 (official build)), 172.27.0.2:2181
    Poco::Exception. Code: 1000, e.code() = 111, Connection refused (version 21.11.4.14 (official build)), 172.27.0.2:2181
    (Connection loss). (KEEPER_EXCEPTION), Stack trace (when copying this message, always include the lines below):
    Clickhouse Kafka engine on cluster

    I'm playing with Kafka engine on ClickHouse cluster. At the moment ClickHouse 22.1 cluster and Kafka are run in Docker. Here are configurations: https://github.com/apanasevich/clickhouse-etl-cluste...

  • https://t.me/clickhouse_ru
    @apanasevich_d #260814 01:24 PM, 11 Mar 2022


    0. DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, bool) @ 0x9b605d4 in /usr/bin/clickhouse
    1. Coordination::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Coordination::Error, int) @ 0x134a60d5 in /usr/bin/clickhouse
    2. Coordination::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Coordination::Error) @ 0x134a6416 in /usr/bin/clickhouse
    3. Coordination::ZooKeeper::connect(std::__1::vector<Coordination::ZooKeeper::Node, std::__1::allocator<Coordination::ZooKeeper::Node> > const&, Poco::Timespan) @ 0x134e6202 in /usr/bin/clickhouse
    4. Coordination::ZooKeeper::ZooKeeper(std::__1::vector<Coordination::ZooKeeper::Node, std::__1::allocator<Coordination::ZooKeeper::Node> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Poco::Timespan, Poco::Timespan, Poco::Timespan, std::__1::shared_ptr<DB::ZooKeeperLog>) @ 0x134e475c in /usr/bin/clickhouse
    5. zkutil::ZooKeeper::init(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) @ 0x134a89e1 in /usr/bin/clickhouse
    6. zkutil::ZooKeeper::ZooKeeper(Poco::Util::AbstractConfiguration const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::shared_ptr<DB::ZooKeeperLog>) @ 0x134ab12d in /usr/bin/clickhouse
    7. void std::__1::allocator<zkutil::ZooKeeper>::construct<zkutil::ZooKeeper, Poco::Util::AbstractConfiguration const&, char const (&) [10], std::__1::shared_ptr<DB::ZooKeeperLog> >(zkutil::ZooKeeper*, Poco::Util::AbstractConfiguration const&, char const (&) [10], std::__1::shared_ptr<DB::ZooKeeperLog>&&) @ 0x11ea3abb in /usr/bin/clickhouse
    8. DB::Context::getZooKeeper() const @ 0x11e83856 in /usr/bin/clickhouse
    9. DB::DDLWorker::getAndSetZooKeeper() @ 0x11ed5e6c in /usr/bin/clickhouse
    10. DB::DDLWorker::initializeMainThread() @ 0x11ee746c in /usr/bin/clickhouse
    11. DB::DDLWorker::runMainThread() @ 0x11ed38f4 in /usr/bin/clickhouse
    12. ThreadFromGlobalPool::ThreadFromGlobalPool<void (DB::DDLWorker::*)(), DB::DDLWorker*>(void (DB::DDLWorker::*&&)(), DB::DDLWorker*&&)::'lambda'()::operator()() @ 0x11ee847a in /usr/bin/clickhouse
    13. ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0x9ba2697 in /usr/bin/clickhouse
    14. ? @ 0x9ba609d in /usr/bin/clickhouse
    15. start_thread @ 0x9609 in /usr/lib/x86_64-linux-gnu/libpthread-2.31.so
    16. clone @ 0x122293 in /usr/lib/x86_64-linux-gnu/libc-2.31.so
    (version 21.11.4.14 (official build))

    2022.03.11 07:42:23.082220 [ 249 ] {eef27851-f848-4b5a-8a95-cf568951cf75} <Warning> etl.tmp (3eb29f08-e712-4705-beb2-9f08e712c705): It looks like the table /clickhouse/tables/01/etl/tmp was created by another server at the same moment, will retry
  • https://t.me/clickhouse_ru
    @5125451640 #260816 01:37 PM, 11 Mar 2022
    Hi
  • hello!
  • Можете тогда, пожалуйста, прояснить ситуацию? Как лучше поступить, если скажем в таблице из 10 столбцов по каким-то 3 (по каждой отдельно, а не вместе) из них нужно частенько делать поиск? Если просто перечислить из в group by, то поиск уже по второй колонке (не говоря про третью) будет сравним с фулсканом, разве нет?
  • https://t.me/clickhouse_ru
    если кому надо, ошибка была в правах доступа к скрипту. Всё заработало после chmod 755 md5binary.py
  • Наверное, проще всего будет держать 3 таблицы с разным ПК.
  • В идеале, возможно. Но это в дальнейшем вызовет проблемы, так как все данные нужно будет всё равно агрегировать, например джойном
  • Так таблицы будут по сути одинаковые, просто иметь разный ПК. Зачем их джойнить?
  • Предлагаете создать 3 копии таблицы с сортировкой по разным полям?
  • @401005630 #260824 02:40 PM, 11 Mar 2022
    Добрый день, подскажите пожалуйста, как можно сделать COUNT(DISTINCT `field`) в семействе движков CollapsingMergeTree без FINAL ? Если нету, то так и скажите, я пойму
  • https://t.me/clickhouse_ru
    Кажется, тут кафка не причём. Поэкспериментируйте просто с replicated таблицей. Как-будто с зукипером не может сн соединиться, соответственно не может проводить репликацию
  • Если предполагается частый поиск и невозможно построить общий индекс, то, вероятно, это будет единственным вариантом. Хотя по идее можно и проекции для этого использовать. Но я с проекциями не возился. Попробуйте.
  • https://t.me/clickhouse_ru
    Проекции в релизе же в последних версиях
  • Да. Я уже вспомнил о них :)
  • может uniq(field) и его модификации
    вместо COUNT(DISTINCT field)
  • https://t.me/clickhouse_ru
    А какие у вас в ORDER BY столбцы ? Может можно опимизировать его ?
  • Это всё три столбца, содержащие разные контрольные суммы (md2 md4 md5). Суть поиска в том, что нам бывает необходимо сверить какой либо из этих хешей с тем, что лежит в базе. Поэтому я не уверен, насчёт оптимизации
  • @179984270 #260832 02:51 PM, 11 Mar 2022
    Про проекции не знал, буду изучать
  • https://t.me/clickhouse_ru
    @monashev #260833 02:53 PM, 11 Mar 2022
    Привет.
    Кто-то знает, как настроить putty, чтобы он сделал туннель до удалённого хоста с кликхаусом?
  • https://t.me/clickhouse_ru
    Создание SSH-туннелей с помощью PuTTY

    В данной статье будет описано как строить SSH-туннели с помощью PuTTY. Рассмотрим следующую ситуацию. Мы находимся внутри корпоративной сети, у нашего компьютера доступ во внешний мир полностью закрыт. Влиять на политику ограничения доступа у нас возможности нет, но зато есть SSH–доступ на один из серверов с маршрутизируемым IP-адресом.

  • https://t.me/clickhouse_ru
    пробую, но не работает почему-то...
  • https://t.me/clickhouse_ru
    @monashev #260836 03:01 PM, 11 Mar 2022
    например тут http://ui.tabix.io/#!/login не могу подключиться к удалённому кликхаусу, указывая локальный хост и порт
  • https://t.me/clickhouse_ru
    @ondanna #260837 03:03 PM, 11 Mar 2022
    а чем-то кроме табикса получается проверить что патти пробросила порт?
  • https://t.me/clickhouse_ru
    @monashev #260838 03:03 PM, 11 Mar 2022
    браузер пишет CORS error , если посмотреть в DevTools браузера
  • https://t.me/clickhouse_ru
    Да, с кафкой всё ок. Для обычной MergeTree таблицы всё работает. А для реплицируемой - не работает вставка из MV, а вот вставка insert-ом работает. Пробовал другие реплицируемые таблицы создавать и делать там insert - тоже работает.

    Что ещё можно проверить?
  • Кто-то видит подводные камни в попытке посчитать количество уникальных записей через
    uniqExact(field, sign) - (uniqExact(field, sign) - uniqExact(field)) ?
  • @217133785 #260841 03:33 PM, 11 Mar 2022
    Подскажите как создать несколько словарей с источником SOURCE(MYSQL(...)) без дублирования параметров доступа к БД?
    Создаю словари через SQL (DDL). Не хотелось бы делать copy-paste одинаковых параметров (db, host, user, password).
    В случае создания словаря через XML конфигурацию, можно параметры доступа к MySQL вынести в <include_from>/etc/metrika.xml</include_from>.
    Возможно ли подобное с SQL (DDL)?
  • @serlex777 #260842 03:45 PM, 11 Mar 2022
    ALTER TABLE DELETE, висит мутация и ничего не происходит, как можно понять в чем дело? спасибо
  • https://t.me/clickhouse_ru
    Ну только если по ошибке какой то висит
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #260841 #260844 04:15 PM, 11 Mar 2022
    https://github.com/ClickHouse/ClickHouse/issues/28367
    <named_collections>
    <my_conn_name>
    <user>emelya</user>
    <password>pikefish</password>
    <host>mysql.example.com</host>
    <port>3306</port>
    <database>stove</database>
    </my_conn_name>
    ...
    </named_collections>
    SELECT ... FROM mysql(my_conn_name, table = 'northwind');
    CREATE TABLE ... ENGINE = PostgreSQL(my_conn_name, table = 'northwind');
    CREATE DICTIONARY ... SOURCE(MYSQL(NAME my_conn_name TABLE 'northwind'));
    CREATE DATABASE ... ENGINE = PostgreSQL(my_conn_name, table = 'northwind');
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #260813 #260845 04:26 PM, 11 Mar 2022
    а зачем вы дублируете описание tmp таблицы внутри MV? Не думаю что проблема тут, но я так обычно не делаю - это просто избыточно и некрасиво. Но может и ломается что-то.
  • https://t.me/clickhouse_ru
    а что вам мешает хранить все хеши в одной колонке? или у вас часто бывает что искать надо по нескольким хешам сразу? ну или проекции как вариант... если будет поиск по второй и третьей колонках в order by он тоже будет побыстрее чем фулскан, но не так быстро как если первая колонка была включена в условие
  • Такая логика работы, что не могу объединить три столбца в один. По поводу фулскана, да, согласен, немного всё таки быстрее) а про проекции, как я и говорил, я был не в курсе, сейчас вот изучаю
  • @179984270 #260848 04:35 PM, 11 Mar 2022
    Всем спасибо, кто ответил)
  • спасибо.
    не нашёл в документации упоминания о named_collections

    можно named_collections добавлять через SQL (DDL) ?

    в случае с yndex.cloud не нашёл прямого доступа к конфигам.
  • https://t.me/clickhouse_ru
    Я дико извиняюсь, за своевременный ответ, не могли бы вы подсказать, как вы сгенерировали таблицу? Хочу сравнить данные
    у меня получается по такому же запросу из моей таблицы
    query_duration_ms: 14 732
    result_rows: 17 627 581
    memory_usage: 4 304 970 671

    при том что результат на запрос
    select
    count(*)
    from
    (
    select
    policy_id,
    toDate(start_date) AS s,
    toDate(end_date) AS e,
    arrayJoin(arrayMap(x -> (s + x), range(assumeNotNull(toUInt16(e - s))))) AS days
    from
    policies_test p
    )
    выдает - 2 595 716 571
  • https://t.me/clickhouse_ru
    Там нет дублирования. Разбирается JSON с вложенными структурами на части-столбцы
  • https://t.me/clickhouse_ru
    @konstantin_ptr #260852 05:07 PM, 11 Mar 2022
    Как посчитать количество записей которые идут строго друг за другом?
  • https://t.me/clickhouse_ru
    про генерацию не уловил, я просто взял таблицу из постгре в которой 20млн записей ну и скрипт выше
  • https://t.me/clickhouse_ru
    sequenceMatch / sequenceCount ?
  • 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
    @Ankalim #260861 11:01 PM, 11 Mar 2022
    Всем привет! Пытаюсь запустить клиент на C++. Всё успешно компилится но не работает ( запрос строки должен возвращать.
    подробнее проблему описал тут.
    https://stackoverflow.com/questions/71420049/dont-run-program-with-successful-compilation-c
    Может кто подскажет или поделится своим проект на плюсах? Я не чень в них погружен. Заранее спасибо!
    don't run program with successful compilation c++

    I try execute this code. #include <clickhouse/client.h> #include <iostream> using namespace clickhouse; int main(){ /// Initialize client connection. ClientOptions settings =

  • 12 March 2022 (33 messages)
  • https://t.me/clickhouse_ru
    @combot #260863 b o t 05:51 AM, 12 Mar 2022
    Total messages: 260862
  • @examplesuka #260864 06:58 AM, 12 Mar 2022
    Всем привет!
    Кто-нибудь знает, почему это всё время происходит? Клик естественно не в работе
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #260864 #260865 06:59 AM, 12 Mar 2022
    лог посмотрите. он пишет что делает
  • В мониторинге или кликхаусе? У него где логи вообще глянуть
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #260866 #260867 07:14 AM, 12 Mar 2022
    /var/log/clickhouse-server/
  • @examplesuka #260869 07:28 AM, 12 Mar 2022
    Он просто вон куда пишет всё
    /opt/homebrew/var/log/clickhouse-server/stdout.log
    /opt/homebrew/var/log/clickhouse-server/stderr.log
    /opt/homebrew/var/log/clickhouse-server/clickhouse-server.log
    /opt/homebrew/var/log/clickhouse-server/clickhouse-server.err.log
    /opt/homebrew/var/run/clickhouse-server/clickhouse-server.pid
    /opt/homebrew/var/lib/clickhouse/status
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #260868 #260870 07:30 AM, 12 Mar 2022
    вы не стесняйтесь - смотрите внутри. сломать ничего не получится. Может что-то интересное увидите. Почитайте про логи в линуксе, если тут что-то непривычное. Начать стоит с файла clickhouse-server.log
  • Хорошо, гляну )
  • https://t.me/clickhouse_ru
    @malyshevd #260872 12:17 PM, 12 Mar 2022
    Существует ли аналог функции toStartOfInterval, чтобы округление было в большую сторону? Задача — получить конец временого интервала?
  • https://t.me/clickhouse_ru
    toStartOfInterval() + 1? не прям так но идея вроде понятна должна быть
  • Если честно не совсем понятно, что там искать
  • https://t.me/clickhouse_ru
    идея какая, нужно получить начало дня / недели / месяца / года и конец, не затрагивая следующий интервал.

    Например, есть дата:
    2022-03-12 15:22:10

    Если сделать:
    SELECT toStartOfInterval(toDate('2022-03-12 15:22:10'), INTERVAL 1 day)

    то получим 2022-03-12 03:00:00.000

    И вот теперь нужно получить 2022-03-13 02:59:59.999 — то есть временную метку конца интервала.

    При этом, интервал может быть разным часы / дни / недели / года.
  • https://t.me/clickhouse_ru
    select toDateTime(ceil(toUnixTimestamp(now())/300)*300)
  • https://t.me/clickhouse_ru
    Спасибо, но получается, что все равно попадает в следующий интервал. Можно отнять секунду (это много), но мне нужно отнимать миллисекунду, чтобы оставаться в текущем интервале.
  • А какая цель получения конца интервала? Если нужно проверить вхождение в интервал, то достаточно проверять "меньше" начала следующего интервала, а не "меньше либо равно" конца текущего интервала.
  • https://t.me/clickhouse_ru
    Цель — вернуть из выборки по мимо агрегированных данных, еще и начало и конец интервала, который базируется на дате каждой записи в таблице.

    Можно, конечно, не запариваться и на уровне кода потом уже учитывать, что сравнение конца интервала должно быть по оператору "меньше", но что-то будто бы так себе решение.
  • https://t.me/clickhouse_ru
    наоборот, в вашем случае "конец" интервала будет то 23:59, то 23:59.999, то еще какая странная конструкция просто потому что вы открытое множество эмулируете замкнутым.
  • https://t.me/clickhouse_ru
    @orantius #260882 01:04 PM, 12 Mar 2022
    если будет >= 00:00 and < 00:00 , то хотя бы можно будет этим не заниматься.
  • https://t.me/clickhouse_ru
    @BMF_RU #260884 01:09 PM, 12 Mar 2022
    Добрый день!
    Интересует возможность INSERT INTO ... FROM INFILE ... FORMAT ... с Windows сервера
    Например, на стороне OLTP системы хотим запустить задание по выгрузке данных в ClickHouse с использованием пакетной загрузки. Это возможно?
    Если я правильно понял документацию, то Вставка данных из файла поддерживается клиентом командной строки и clickhouse-local.
    Клиент командной строки для Windows не существует.
    Что такое clickhouse-local? Есть ли он для Windows?
  • https://t.me/clickhouse_ru
    У меня был похожий кейс, я делал так: храним дату в таймстемпе, делалаем toStartOfInterval() + 1 interval - 1

    Но в конечно итоге перешёл к дополнительным столбцам с годом, месяцем, неделей, днем и часом
  • https://t.me/clickhouse_ru
    clickhouse-local это вещь для анализа данных с помощью синтексиса кликхауса, без сервера. Скорей всего нету по windows. В вашем случае наверное ставить докер контейнер и туда устанавливать клиент и монтировать файлы которые хотите загрузить. Либо с помощью любого языка программирования
  • https://t.me/clickhouse_ru
    @BMF_RU #260888 01:42 PM, 12 Mar 2022
    Да я примерно к такому выводу пришел. Файлы выкладывать через самбу на сервер, а там запускать задание, которое с интервалом 1 минут будет перемещать файлы в бд
  • https://t.me/clickhouse_ru
    @BMF_RU #260889 01:44 PM, 12 Mar 2022
    Команде Яндекса стоит посмотреть на Sybase IQ, там пакетная загрузка удобно сделана, да и клент под Windows есть )
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @Ilya_Akulov #260893 05:15 PM, 12 Mar 2022
    Всем привет! Подскажите, пожалуйста, есть ли возможность в запрос передать названия столбцов, которые хранятся в другой таблице?
    Пример части таблицы из которой я хочу получить столбцы и пример того какие столбцы хочу выбрать из большой таблице, заранее огромное спасибо
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Select name from ststem.columns ?
  • https://t.me/clickhouse_ru
    Так я получу название столбцов, а могу ли я их передать в другой запрос, чтобы по ним уже выдалась необходимая информация? Например, под мое условие подходит столбец IRKT, могу ли я его(ответ первого запроса) передать в качестве названия столбца во второй? В данном примере мне необходимы все значения внутри столбца IRKT
  • https://t.me/clickhouse_ru
    Сегодня свежим взглядом посмотрел и понял о чём вы: да, это явно лишнее. Взгляд уже замылился, поэтому не сразу понял замечание. Если убрать, то да: работает! Странно только, что для обычного MergeTree оно работало и так. Спасибо большое за подсказку!
  • https://t.me/clickhouse_ru
    @apanasevich_d #260898 06:18 PM, 12 Mar 2022
    Подскажите, пожалуйста, такой момент использования ClickHouse : интегрирую данные из Kafka в MergeTree и часть топиков ненагружена, допустим, десяток записей в минуту. Чем это грозит ? Такие масштабы - не совсем профиль кх, я понимаю, но и разделять нагруженные и ненагруженные топики по разным СУБД некрасиво.
  • Подписываюсь на вопрос, также интересны последствия. И ещё хотел бы уточнить: а что такое «топик»?
  • https://t.me/clickhouse_ru
    @apanasevich_d #260900 06:26 PM, 12 Mar 2022
    Топик - это понятие из Kafka, в данном вопросе достаточно просто считать, что это некий источник записей для кх. В моём сценарии есть топики нагруженные по несколько тысяч записей в секунду, но есть и ненагруженные. Вот для последних интересны последствия вставки редких записей из них в кх: вырастет потребление диска под data parts?
  • 13 March 2022 (47 messages)
  • https://t.me/clickhouse_ru
    @BMF_RU ↶ Reply to #260890 #260902 07:57 AM, 13 Mar 2022
    Благодарю! Еще бы в этой документации был пример загрузки локального файла...
  • https://t.me/clickhouse_ru
    @BMF_RU #260903 08:31 AM, 13 Mar 2022
    static void checkForCarriageReturn(ReadBuffer & in)
    {
    if (!in.eof() && (in.position()[0] == '\r' || (in.position() != in.buffer().begin() && in.position()[-1] == '\r')))
    throw Exception("\nYou have carriage return (\\r, 0x0D, ASCII 13) at end of first row."
    "\nIt's like your input data has DOS/Windows style line separators, that are illegal in TabSeparated format."
    " You must transform your file to Unix format."
    "\nBut if you really need carriage return at end of string value of last column, you need to escape it as \\r.",
    ErrorCodes::INCORRECT_DATA);
    }
  • https://t.me/clickhouse_ru
    @BMF_RU #260904 08:31 AM, 13 Mar 2022
    Все для людей )))
  • https://t.me/clickhouse_ru
    @ivanbrrr #260906 02:07 PM, 13 Mar 2022
    Товарищи, помогите вновь пожалуйста.
    Есть таблица с 15 кк записей
    в таблице примерно 200 полей

    запрос типа select id from table where id = 'пример id' выполняется за нормальное время.
    а вот select * from table where id = 'пример id'
    выполняется в 6-7 раз дольше и это сильно бьёт по перфомансу
  • https://t.me/clickhouse_ru
    @ivanbrrr #260907 02:08 PM, 13 Mar 2022
    куда можно покопать?
  • https://t.me/clickhouse_ru
    @felix_neko #260908 02:13 PM, 13 Mar 2022
    Братцы, а что почитать по быстродействию Clickhouse относительно Spark SQL?

    Хочу убедить своих боссов, чтобы поставили нам CH на кластер, экспериментов для...
  • так особо никуда не покопать, вам надо в 200 раз больше файлов прочитать, конечно всё будет намного медленее. Колоночные базы не предназначены чтобы делать select *
  • @179984270 #260910 02:26 PM, 13 Mar 2022
    Коллеги, Добрый день! Не подскажите, как принудительно заставить кликхаус удалять с диска данные дропнутой таблицы?
  • https://t.me/clickhouse_ru
    храните все 200 колонок дополнительно в одной общей, как это делает эластик с его _source. неидеально по многим причинам, но сильно лучше чем читать из 200 колонок
  • https://t.me/clickhouse_ru
    я ещё по ним филтрую. Боюсь это может быть ещё больнее
  • https://t.me/clickhouse_ru
    так и продолжайте фильтровать по ним. у вас будет 201 колонка, 200 какие есть и 201-я в которой все 200 еще раз продублированы чтобы вы не select * а select 201-я колонка
  • @azzaazaa #260914 02:39 PM, 13 Mar 2022
    Попробуйте превратить ваши 200 колонок в 3, через EAV подобное решение. Может что-то изменится.
  • https://t.me/clickhouse_ru
    @ivanbrrr #260915 02:39 PM, 13 Mar 2022
    хм
  • https://t.me/clickhouse_ru
    @387452444 #260916 02:40 PM, 13 Mar 2022
    конечно будет плохо сжиматься и занимать много места, но тут или шашечки или ехать
  • https://t.me/clickhouse_ru
    интересно, спасибо. Только вот я этот запрос делаю, для того, чтобы заинсёртить с sign = -1 и закрыть запись в collapsingMergeTree
  • https://t.me/clickhouse_ru
    @387452444 #260918 02:43 PM, 13 Mar 2022
    если только для этого случая то тогда конечно так как я сказал делать не надо ))
  • https://t.me/clickhouse_ru
    @387452444 #260919 02:47 PM, 13 Mar 2022
    то есть получается что вы не знаете в момент вставки значения 200 полей и нужно взять текущие значения из клика?
  • @examplesuka #260920 03:06 PM, 13 Mar 2022
    Всем привет!
    Кто-нибудь знает как надо правильно вставлять результат get запроса в клик?
  • https://t.me/clickhouse_ru
    Вы интересный вопрос задали, на который можно ответить 1000+ способами. Может вы уточните язык, и что вы хотите вставить?
  • Да, простите )
    Хочу вставлять в бд (клик или постгрес не суть) данные с сайта используя апишку, если результат не в tsv представлять то результат такая json штука:

    {'motd': {'msg': 'If you or your company use this project or like what we doing, please consider backing us so we can continue maintaining and evolving this project.', 'url': 'https://exchangerate.host/#/donate'}, 'success': True, 'query': {'from': 'BTC', 'to': 'USD', 'amount': 1}, 'info': {'rate': 38975.285714}, 'historical': False, 'date': '2022-03-13', 'result': 38975.285714}

    А в бд должны быть колонки для записи BTC, USD, 38975.285714, 2022-03-13. Ну откуда, куда, курс и дата
    Работать всё должно в airflow, но это не проблема, сначала подумал класть результаты запроса в файлик в каком-нибудь tsv формате, выглядет оно так:

    rom to amount rate date result
    BTC USD 1 38975,285714 2022-03-13 38975,285714

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

    import requests
    url = 'https://api.exchangerate.host/convert'
    response = requests.get(url, params={'from': 'BTC', 'to': 'USD'})
    print(response.json())
    Exchangerate.host - Unlimited & Free foreign, crypto exchange rates with currency conversion & EU VAT rates API

    Exchange rates API is a free service for current and historical foreign exchange rates & crypto exchange rates & EU vat rates published by the many public sources.

  • https://t.me/clickhouse_ru
    Есть clickhouse_driver, в который можете просто скормить эти данные
  • https://t.me/clickhouse_ru
  • Да, надо глянуть, а не подскажите как из этого чудища:

    {'motd': {'msg': 'If you or your company use this project or like what we doing, please consider backing us so we can continue maintaining and evolving this project.', 'url': 'https://exchangerate.host/#/donate'}, 'success': True, 'query': {'from': 'BTC', 'to': 'USD', 'amount': 1}, 'info': {'rate': 38975.285714}, 'historical': False, 'date': '2022-03-13', 'result': 38975.285714}

    Сделать:

    [{'from': 'BTC', 'to': 'USD', 'date': '2022-03-13', 'result': 38975.285714}]

    Который должен судя по документации через client.execute ложиться в базу
  • https://t.me/clickhouse_ru
    это можно сделать на питоне

    преобразовать тот же response.json, который является питон - словарём
  • Спасибо, попробую )
  • @anttoon #260928 08:55 PM, 13 Mar 2022
    Подскажите пожалуйста, есть ли готовая функция в ClickHouse для получения разности массивов?
    есть столбец с массивами

    [956,1,1,0]
    [955,1,1,0]
    [954,1,1,0]
    [953,1,0,0]

    надо получить
    [3, 0, 1, 0]
  • https://t.me/clickhouse_ru
    @1695040889 #260929 09:02 PM, 13 Mar 2022
    а [3, 0, 1, 0] почему?
  • https://t.me/clickhouse_ru
    @windoozatnick #260930 09:03 PM, 13 Mar 2022
    это uniq по n-ому элементу в каждом массиве?
  • https://t.me/clickhouse_ru
    @windoozatnick #260931 09:03 PM, 13 Mar 2022
    типа, берем из всех массивов первый элемент, и делаем uniq?
  • Разница каждого элемента массива
  • https://t.me/clickhouse_ru
    @windoozatnick #260933 09:03 PM, 13 Mar 2022
    потом второй, и по нему тоже uniq, да?
  • https://t.me/clickhouse_ru
    так не очень понятно
  • https://t.me/clickhouse_ru
    @windoozatnick #260935 09:04 PM, 13 Mar 2022
    кажется, вы хотите посчитать кол-во уникальных, и потом вычесть 1
  • https://t.me/clickhouse_ru
    тоже будет массивом
    макс - мин?
  • 956 - 953 =3
    И так далее
  • https://t.me/clickhouse_ru
    аааа, прикол
  • https://t.me/clickhouse_ru
    @1695040889 #260939 09:05 PM, 13 Mar 2022
    CTE в помощь
  • https://t.me/clickhouse_ru
    @kurahh ↶ Reply to #260928 #260940 09:08 PM, 13 Mar 2022
    arrayDifference ?
  • Да, но сначала надо groupArray применить для каждого индекса и уже потом применять arrayDifference на каждый сгруппированный массив

    Думал может что-то есть готовое
  • https://t.me/clickhouse_ru
    Для чего готовое? diff? sliding? average?
  • diff
    Сумма diff значений
  • https://t.me/clickhouse_ru
    @1695040889 #260944 09:36 PM, 13 Mar 2022
    [956,-3,1,0]
    [955,1,1,0]
    [954,1,1,0]
    [953,5,0,-12]

    надо получить?
  • Хуже. Ему нужно получить по каждому столбцу разницу между минимальным и максимальным значением.
  • https://t.me/clickhouse_ru
    Хм, а что сложного
  • https://t.me/clickhouse_ru
    @unamedrus #260947 10:00 PM, 13 Mar 2022
    arrayMap( ,minForEach, maxForEach)
  • Автору вопроса требуется "Думал может что-то есть готовое"
  • https://t.me/clickhouse_ru
    ^
  • 14 March 2022 (159 messages)
  • https://t.me/clickhouse_ru
    @minto_o #260951 01:14 AM, 14 Mar 2022
    подкиньте идей, как можно агрегировать в MV уникальные записи.
    Есть таблица (примерная)
    CREATE TABLE test1 (
    id UInt16,
    tp UInt16,
    ag UInt16,
    date DateTime
    ) ENGINE = MergeTree()
    PARTITION BY toStartOfInterval(date, INTERVAL 4 HOUR)
    ORDER BY (id, tp, ag);
    При вставке хочу агрегировать с нее данные в view1, чтобы оставлять только уникальные строки по секции ORDER BY,
    также хочу иметь возможность дропнуть данные с MV, по партиции. Таблица на миллионы записей, FINAL для Replace не до конца убирает дубликаты.

    Идеи, которые пришли в голову
    -- v1
    CREATE MATERIALIZED VIEW t1_agg ENGINE = AggregatingMergeTree()
    PARTITION BY toStartOfInterval(result_date_utc, INTERVAL 4 HOUR)
    ORDER BY (id, tp, ag) POPULATE
    AS SELECT
    id, tp, ag,
    result_date_utc
    FROM T1
    GROUP BY id, tp, ag, toStartOfInterval(result_date_utc, INTERVAL 4 HOUR) as result_date_utc;

    -- v2
    CREATE MATERIALIZED VIEW t1_agg_max ENGINE = AggregatingMergeTree()
    PARTITION BY toStartOfInterval(result_date_utc, INTERVAL 4 HOUR)
    ORDER BY (id, tp, ag) POPULATE
    AS SELECT
    id, tp, ag,
    max(result_date_utc) as result_date_utc
    FROM T1
    GROUP BY id, tp, ag;

    -- v3
    CREATE MATERIALIZED VIEW t1_agg_max_state ENGINE = AggregatingMergeTree()
    ORDER BY (id, tp, ag) POPULATE
    AS SELECT
    id, tp, ag,
    maxState(result_date_utc) as result_date_utc
    FROM T1
    GROUP BY id, tp, ag;
    Из-за особенностей вставки данных ощутимой разницы между v1 и v2 не будет.
    Возможно небольшое изменение процесса, тогда v2 будет лучше в агрегации, но менее точен при дропе партиций (из-за мах берем самую большую дату, которая может оказаться через несколько партиций от минимальной)

    Можно ли как-то в v3 запихнуть state еще в PARTION? Пока идея только при селекте добавить where на поле. и хранить все что есть
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #260951 #260953 06:15 AM, 14 Mar 2022
    если коротко, то никак. Окончательная дедубликация всегда в финальном запросе. Будет это какой-нибудь group by или final - зависит от конкретных данных и их потоков.
    Идея сделать дедубликацию в MV - порочна изначально, т.к. MV работает с блоками поступающих данных, а не со всей таблицей.
  • https://t.me/clickhouse_ru
    @ne_atmo #260954 06:46 AM, 14 Mar 2022
    Привет!
    Подскажите, пожалуйста, что можно сделать в ситуации, когда раньше убили мутацию, которая меняла тип колонки Int8 -> Int16, а теперь агрегация по этой колонке не работает с ошибкой DB::Exception: Invalid number of rows in Chunk column Int16 position 1: expected 65505, got 50812 ? Не работает только на некоторых партициях.
    Мне уже помогли здесь следующим вариантом решения: залить сломанные партиции во временную таблицу, удалить их из исходной, потом из временной залить заново в исходную, чтобы мерджи еще раз отработали. Но проблема в том (что я выяснила уже после) , что на некоторых сломанных партициях обычные селекты тоже не работают. То есть я не могу сделать insert в другую таблицу по той же ошибке.
    Может кто-то сталкивался с подобным?
  • https://t.me/clickhouse_ru
    Хммм, я бы предложил детач аттач сделать к другой таблице, но вряд-ли селект заработает, возможно на новой таблице запустить мутацию на int8 или на 16 и тогда заработает
  • https://t.me/clickhouse_ru
    Спасибо!
    Мне как раз здесь предлагали сделать детач и аттач, но проблема в том, что детач нам ломает отправку событий.
  • https://t.me/clickhouse_ru
    а делать дедупликацию на основе Replacing MV тоже не правильно?
    может есть какие-то особенности вызовы FINAL к DISTRIBUTED?
    Это запрос с FINAL, но данные все равно дублируются
  • https://t.me/clickhouse_ru
    @webdizi #260960 08:10 AM, 14 Mar 2022
    Парни, если в таблице колонка типа Array(IPv6) а я хочу в запросе поискать функцией isIPAddressInRange по этому полю как быть? Ведь функция требует String на вход
  • https://t.me/clickhouse_ru
    Ну наверное самое прозаичное решение привести к string, IPv6 ? Через arraymap
  • https://t.me/clickhouse_ru
    @webdizi #260963 08:21 AM, 14 Mar 2022
    Тогда не понятно зачем хранить в ipv6 формате. Когда можно сразу в строке. Для чего нужен ipv6 если нет оптимального поиска по такому типу)
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #260959 #260965 08:24 AM, 14 Mar 2022
    да, final with ReplacingMV with Distributed - это проблема. Distributed соберет вместе результаты нескольких FINAL, но дубликаты между шардами удалять не будет.
    Поэтому ваш путь - argMax/group by.
  • https://t.me/clickhouse_ru
    Я не особо знаток исходников Clickhouse, но кадись он строку превращает обратно в формат данных ipv6 https://github.com/ClickHouse/ClickHouse/pull/21329/files
    Add a function isIPAddressInRange() by depressed-pho · Pull Request #21329 · ClickHouse/ClickHouse

    This function takes an IP address and a CIDR network prefix, and determines if the address is contained in the network. It supports both IPv4 and IPv6 addresses, and expects arguments to be strings...

  • https://t.me/clickhouse_ru
    @dshakhv #260968 08:37 AM, 14 Mar 2022
    Коллеги, у вас сбой в работе clickhouse не наблюдается?
  • https://t.me/clickhouse_ru
    Вы так спрашиваете, будто бы CH - централизованный сервис. У кого-то, вероятно, наблюдается, у кого-то нет. У всех же свои инстансы
  • https://t.me/clickhouse_ru
    На всякий случай, вдруг вы из Яндекса, это не чатик Яндекса.
  • https://t.me/clickhouse_ru
    мб у него managed clickhouse в облаке?
  • Тогда тем более поддержка в помощь, или мониторинг
  • https://t.me/clickhouse_ru
    @BMF_RU #260974 08:46 AM, 14 Mar 2022
    Планируется клиент под Windows?
  • https://t.me/clickhouse_ru
    @Alexey_037 #260975 08:46 AM, 14 Mar 2022
    Коллеги, такой вопрос. Есть stand-alone сервер, 70 GB RAM, таблица с ~70 млн. записей. Запрос uniqExact(id) по таблице может занимать до 2 секунд, независимо от количества условий в WHERE.
    Есть ли какой-нибудь потолок в скорости вычислений в CH в расчете на 1 сервер, без кластеров, шардов и т.д.? Никто не проводил такого тестирования?
  • https://t.me/clickhouse_ru
    По крайне мере в Roadmap на 2022 нету. https://github.com/ClickHouse/ClickHouse/issues/32513
    Roadmap 2022 (discussion) · Issue #32513 · ClickHouse/ClickHouse

    This is ClickHouse open-source roadmap 2022. Descriptions and links to be filled. This roadmap does not cover the tasks related to infrastructure, orchestration, documentation, marketing, integrati...

  • https://t.me/clickhouse_ru
    Извиняюсь, впредь буду внимательнее
  • https://t.me/clickhouse_ru
    Я бы сказал, что если не меняется время выполнения функции от разных where, то у вас построен PK не правильно. Либо вы запрос where не по индексам делаете
  • https://t.me/clickhouse_ru
    @Alexey_037 #260979 08:49 AM, 14 Mar 2022
    можно исключить вообще where. Просто select uniqExact(id) from table... 2 секунды...
  • https://t.me/clickhouse_ru
    @Reineke_fuchs #260980 08:50 AM, 14 Mar 2022
    Добрый день!
    Подскажите пожалуйста, как можно вытащить данные одного значения из json
    Мне нужно вытащить все услуги что идут после "Name":{Value:
    данные храняться вот так:
    ["Консультации врачей",{"Number":{"IsVisible":false,"Value":1},"Name":{"IsVisible":true,"Value":"Прием (осмотр, консультация) невролога повторный"},"Code":{"IsVisible":true,"Value":"01.17.02"},"Count": "IsVisible":true,"Value":1},"Price":{"IsVisible":false,"Value":0.0},"Sum":{"IsVisible":true,"Value":0.0}},{"Number":{"IsVisible":false,"Value":2},"Name":{"IsVisible":true,"Value":"Прием (осмотр, консультация) невролога первичный"},"Code":{"IsVisible":true,"Value":"01.17.01"},"Count":{"IsVisible":true,"Value":1},"Price":{"IsVisible":false,"Value":0.0},"Sum":{"IsVisible":true,"Value":0.0}},"Лабораторная диагностика",{"Number":{"IsVisible":false,"Value":3},"Name":{"IsVisible":true,"Value":"Общий белок"},"Code":{"IsVisible":true,"Value":"23.05.01.06"},"Count":{"IsVisible":true,"Value":1},"Price":{"IsVisible":false,"Value":0.0},"Sum":{"IsVisible":true,"Value":0.0}},{"Number":{"IsVisible":false,"Value":4},"Name":{"IsVisible":true,"Value":"Мочевая кислота"},"Code":{"IsVisible":true,"Value":"23.05.01.05"},"Count":{"IsVisible":true,"Value":1},"Price":{"IsVisible":false,"Value":0.0},"Sum":{"IsVisible":true,"Value":0.0}}
  • https://t.me/clickhouse_ru
    Наверное с помощью JSON_QUERY
  • https://t.me/clickhouse_ru
    Честно не знаю, нету такой маленькой таблицы для тестов. Скорей всего вам не нужна точность прям в 99,9999% и будет достаточно просто uniq
  • https://t.me/clickhouse_ru
    А сколько занимает 70 млн записей места не в сжатом виде по версии кликхауса ? На ваших данных
  • https://t.me/clickhouse_ru
    В том то и дело, что нужна.
  • какой тип данных у вас лежит в поле id?
  • https://t.me/clickhouse_ru
    @Alexey_037 #260986 08:58 AM, 14 Mar 2022
    Минуту
  • https://t.me/clickhouse_ru
    UInt64
  • https://t.me/clickhouse_ru
    JSON_QUERY выдает пустое значение
  • https://t.me/clickhouse_ru
    А у вас правильный json ?
  • https://t.me/clickhouse_ru
  • а как вы считаете что он выполняется 2 секунды? через консоль? проверяете query_log?
  • https://t.me/clickhouse_ru
    @Alexey_037 #260992 09:02 AM, 14 Mar 2022
    Ну на самом деле 2 секунды это даже хорошо. Бывает и по 5-10 секунд. Запросы проверяю в DBeaver и WebStorm. На других таблицах скорость обычно не превышает 400-600 мс.
  • @danquimby #260993 09:03 AM, 14 Mar 2022
    Добрый день, скажите возможно "поймать" ошибку insert при использовании engine Rabbitmq
  • https://t.me/clickhouse_ru
    А как понять правильный он или нет?
  • https://t.me/clickhouse_ru
    Ну я бы сказал, что это врямя с погрешностью на драйве jdbc посмотрите в clickhouse-client
  • https://t.me/clickhouse_ru
    @Reineke_fuchs #260996 09:05 AM, 14 Mar 2022
    мало опыта работы с json
  • https://t.me/clickhouse_ru
    JSON | Документация ClickHouse

    Функции для работы с JSON В Яндекс.Метрике пользователями передаётся JSON в качестве параметров визитов. Для работы с та

  • https://t.me/clickhouse_ru
    Если взять поле типа UUID, то еще дольше. Это уже тяжело списать на погрешность )
  • https://jsonformatter.org/
    хороший валидатор jon
    Best JSON Formatter and JSON Validator: Online JSON Formatter

    Online JSON Formatter / Beautifier and JSON Validator will format JSON data, and helps to validate, convert JSON to XML, JSON to CSV. Save and Share JSON

  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #260998 #261000 09:09 AM, 14 Mar 2022
    зато легко списать на медленную дисковую систему. Сколько места занимает столбец? Его надо полностью прочитать. Сколько ядер? Сколько тредов работает при запросе? Какая все-таки задержка по сети? Не очень хорошо измерять время в DBeaver, лучше в clickhouse-client прямо на хосте. Заметим, что DataGrip показывает две цифры - общую и самого запроса.
  • https://t.me/clickhouse_ru
    Валидный
  • https://t.me/clickhouse_ru
    Хм. Спасибо, протестирую все эти моменты...
  • https://t.me/clickhouse_ru
    Ну тогда вы не правильно пишите запрос для JSON_QUERY
  • https://t.me/clickhouse_ru
    @Reineke_fuchs #261004 09:13 AM, 14 Mar 2022
    понял, спасибо
  • https://t.me/clickhouse_ru
    JSON | Документация ClickHouse

    Функции для работы с JSON В Яндекс.Метрике пользователями передаётся JSON в качестве параметров визитов. Для работы с та

  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @dmitry_lukyanov #261008 09:52 AM, 14 Mar 2022
    Коллеги, а подскажите, есть ли какой-то механизм, как сделать подключение из Oracle в Clickhouse через DBlink?
  • https://t.me/clickhouse_ru
    @dmitry_lukyanov #261009 09:53 AM, 14 Mar 2022
    В какую сторону гуглить?
  • https://t.me/clickhouse_ru
    В сторону Click House jdbc driver
  • https://t.me/clickhouse_ru
    Может, odbc? Причём тут jdbc?
  • https://t.me/clickhouse_ru
    О, так вы лучше меня ответ знаете ))
  • https://t.me/clickhouse_ru
    @Yarpen ↶ Reply to #261008 #261014 10:19 AM, 14 Mar 2022
    Как говорит наш главархитектор, ДБЛинки - зло, гетерогенные дблинки - двойное зло 😁
  • https://t.me/clickhouse_ru
    Ну, тут я с ним согласен. Сам не люблю их. Просто задачка прилетела. Хочу исследовать вопрос. Вижу, что есть clickhouse-odbc драйвер. По идее его можно прикрутить в качестве гетерогенного сервиса.
    Кто-нибудь пользовался?

    https://github.com/ClickHouse/clickhouse-odbc
    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
    @StadnikD #261016 10:28 AM, 14 Mar 2022
    привет. Есть ли возможность в кликхаус ,переводить как-то датувремя с часовым поясом, основанным на другой колнке с наименованием города ?
  • https://t.me/clickhouse_ru
    @vlkolobaev #261017 10:31 AM, 14 Mar 2022
    Всем привет! У меня есть несколько серверов. на которых лежат финализированные парты. Я их переношу на архивные-сервера и там начинаются процессы мержей этих данных которые идут очень долги и зачастую падают с ошибками. Мне эти парты не нужно переМерживать! Как сказать конкретным нодам КХ чтобы он для конкретных таблиц отключил мерж данных ?
  • https://t.me/clickhouse_ru
    Думаю, что такого нету, только если через if прописывать самому, либо сделать словарь в котором будет +от UTC и город и потом как то соединять
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261017 #261019 10:33 AM, 14 Mar 2022
    SYSTEM STOP MERGES [ON VOLUME <volume_name> | [db.]merge_tree_family_table_name]
  • https://t.me/clickhouse_ru
    я правильно понимаю что мержи включаться после перезагрузки сервера?
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261020 #261021 10:36 AM, 14 Mar 2022
    да. и даже DETACH / ATTACH как указано в документации - https://clickhouse.com/docs/ru/sql-reference/statements/system/#query_language-system-stop-merges
  • https://t.me/clickhouse_ru
    как отключить Merges для указанно таблицы вообще на всегда или до явного включения?
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261022 #261030 10:49 AM, 14 Mar 2022
    можно попробовать поискать подходящий сеттинг при создании таблицы. max_bytes_to_merge_at_max_space_in_pool - выглядит обещающе, но я не пробовал.
  • https://t.me/clickhouse_ru
    Можно глобально по размеру парта в конфиге запретить мержить парты больше определенного размера, если на бакапном сервере мержи не предполагаются - вариант
  • https://t.me/clickhouse_ru
    А что за настройка конфига
  • https://t.me/clickhouse_ru
    Оказывается, оно на табличку
    https://clickhouse.com/docs/ru/operations/settings/merge-tree-settings/#max-bytes-to-merge-at-max-space-in-pool
    Настройки MergeTree таблиц | Документация ClickHouse

    Настройки MergeTree таблиц Значения настроек всех MergeTree таблиц собраны в таблице system.merge_tree_settings. Их можн

  • https://t.me/clickhouse_ru
    @BMF_RU #261036 11:55 AM, 14 Mar 2022
    как поменять десятичный разделитель?
  • Спасибо, похоже на то, что нужно. Похоже есть зависимость от версии клиента - не все клиенты понимают эту конструкцию.
  • @vadim_tatarnitsev #261038 12:05 PM, 14 Mar 2022
    Создал view на remote таблицу. Выбор из этой view отдаёт лишь малую часть данных, причём каждый раз разное количество.
    Если просто сделать запрос к remote таблице, то данные получаю все, которые нужны.
    Почему view на remote таблицу так себя ведёт?
  • https://t.me/clickhouse_ru
    @BMF_RU #261039 12:06 PM, 14 Mar 2022
    есть что-то вроде NLS_SETTINGS для сессии?
  • https://t.me/clickhouse_ru
    То есть на Distibuted таблицу ? Сделали view ?
  • @vadim_tatarnitsev #261042 12:26 PM, 14 Mar 2022
    Да
  • @vadim_tatarnitsev #261043 12:26 PM, 14 Mar 2022
    Чтобы не светить учетную запись и пароль.
  • @vadim_tatarnitsev #261044 12:28 PM, 14 Mar 2022
    View на remote view, которая смотрит на distributed таблицу работает нормально.
  • https://t.me/clickhouse_ru
    @BMF_RU #261045 12:31 PM, 14 Mar 2022
    Для операционный системы locale:
    decimal_point="."
    thousands_sep=","
    grouping=3;3
    Проблема при загрузке CSV файла с DECIMAL 13,145.89
    Кто сталкивался? кроме как убрать точку из CSV никак не решается?
  • https://t.me/clickhouse_ru
    Подождите, у вас разделитель у CSV какой ? Запятая или точка ?
  • https://t.me/clickhouse_ru
    @konnectrl #261047 12:33 PM, 14 Mar 2022
    Настройки | Документация ClickHouse

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

  • https://t.me/clickhouse_ru
    @konnectrl #261048 12:33 PM, 14 Mar 2022
    есть такая настройка
  • https://t.me/clickhouse_ru
    @BMF_RU ↶ Reply to #261048 #261049 12:33 PM, 14 Mar 2022
    SET format_csv_delimiter = ';'
  • https://t.me/clickhouse_ru
    @BMF_RU #261050 12:34 PM, 14 Mar 2022
    точку с запятой делаю, но он почему-то продолжает на , реагировать...
  • https://t.me/clickhouse_ru
    @konnectrl #261051 12:34 PM, 14 Mar 2022
    Покажите запрос
  • https://t.me/clickhouse_ru
    @BMF_RU ↶ Reply to #261051 #261052 12:36 PM, 14 Mar 2022
    INSERT INTO <имя таблицы> (<список полей>) FROM INFILE <имя файла> FORMAT CSVWithNames;
  • https://t.me/clickhouse_ru
    @BMF_RU #261053 12:37 PM, 14 Mar 2022
    или нужно конструкцию SET format_csv_delimiter = ';' как то в этот INSERT вставлять?
  • https://t.me/clickhouse_ru
    @konnectrl #261054 12:37 PM, 14 Mar 2022
    INSERT INTO <имя таблицы> (<список полей>) FROM INFILE <имя файла> SETTINGS format_csv_delimiter = ';' FORMAT CSVWithNames;
  • https://t.me/clickhouse_ru
    @konnectrl #261055 12:37 PM, 14 Mar 2022
    Попробуйте так
  • https://t.me/clickhouse_ru
    @BMF_RU #261056 12:43 PM, 14 Mar 2022
    Expected end of query
  • https://t.me/clickhouse_ru
    @BMF_RU #261057 12:43 PM, 14 Mar 2022
    SETTINGS format_csv_delimiter = ';' в конце получилось
  • https://t.me/clickhouse_ru
    @BMF_RU #261058 12:44 PM, 14 Mar 2022
    INSERT INTO <имя таблицы> (<список полей>) FROM INFILE <имя файла> FORMAT CSVWithNames SETTINGS format_csv_delimiter = ';';
  • https://t.me/clickhouse_ru
    @BMF_RU #261059 12:45 PM, 14 Mar 2022
    в смысле команда выполнилась, но данные не загрузились
  • https://t.me/clickhouse_ru
    @BMF_RU #261060 12:45 PM, 14 Mar 2022
    ERROR: garbage after Decimal(18, 9): ",361.05;38"
    Число 13,361.05
  • @179984270 #261061 12:45 PM, 14 Mar 2022
    Добрый день. Подскажите пожалуйста суть параметра гранулярности minmax скипиндекса, выставленного в 1. Разве смысл параметра гранулярности не в том, для скольки подряд идущих строчек ищутся мин и макс? Ведь если так, то как понять единичную гранулярность вторичного минмакс индекса?
  • Просто видел такой пример на стеке
  • Гранулярность индекса это сколько гранул данных будет в индексе, а не строк. По умолчанию в 1 грануле данных 8192 строк
  • Вероятно вы правы, спасибо)
  • https://t.me/clickhouse_ru
    @Makasinov #261065 12:59 PM, 14 Mar 2022
    Всем привет, после обновления кластера начали сыпаться ошибки в таком духе
    Code: 210. DB::NetException: Connection reset by peer, while writing to socket (10.200.0.7:49192)
    Кто нибудь сталкивался?
  • https://t.me/clickhouse_ru
    Сорри, тогда я в тупике
  • https://t.me/clickhouse_ru
    Запросы проходят через chproxy. Кластер 4 шарда, две реплики, проблема на всех нодах куда не ткнётся chproxy
  • https://t.me/clickhouse_ru
    @Makasinov #261071 01:43 PM, 14 Mar 2022
    Покопался, увидел что открыто много коннектов к другим кликхаусам. Обычно это число составляет ~70 tcp на сервере, а сейчас их аж 250+. Есть какие то настройки как их можно урезать и понять что это за коннекты вообще?
  • @yaltabaoth #261072 01:55 PM, 14 Mar 2022
    Приветствую! Столкнулся со странным поведением Kafka движка в версии 22.1.3.7.
    Таблица вида:
    Create table table_kafka_out
    (
    field1 String,
    field2 String,
    field3 String
    ) engine = Kafka
    SETTINGS kafka_broker_list = ‘broker’, kafka_topic_list = ‘topic’, kafka_group_name = ‘group’, kafka_format = ‘JSONEachRow’

    Топик на 5 партиций, replication-factor = 1.

    При INSERT в таблицу ожидаемое поведение - равномерно размазанные по партициям сообщения. Реальное поведение - 90% сообщений уходит в первую партицию, остальные неравномерно размазываются по оставшимся четырём.

    Пробовал читать из клика и своим продюсером кидать в тот же топик - распределяет равномерно.

    На версии 21.х(уже точно не помню) таких проблем не замечал.

    Может я не знаю каких-то настроек? Такое ощущение, что используется не round-robin распределение, а что-то другое.
  • https://t.me/clickhouse_ru
    @webdizi #261073 01:58 PM, 14 Mar 2022
    Ребят, почему SELECT isIPAddressInRange('::ffff:92.182.32.1', '::ffff:192.168.100.0/24’); возвращает 1 ?
  • https://t.me/clickhouse_ru
    потому что /24 в ipv6 это очень много триллионов адресов
  • https://t.me/clickhouse_ru
    @nyoroon #261075 02:08 PM, 14 Mar 2022
    попробуй SELECT isIPAddressInRange('::ffff:92.182.32.1', '::ffff:192.168.100.0/120');
  • https://t.me/clickhouse_ru
    а есть возможность как то проверять соответствие с CIDR если в первом аргументе поле IPv6 и в него могут попадать IPv4 адреса которые будут к IPv6 приводиться
  • https://t.me/clickhouse_ru
    маску подкрутить и норм будет
  • https://t.me/clickhouse_ru
    @nyoroon #261078 02:09 PM, 14 Mar 2022
    например /120 вместо /24
  • https://t.me/clickhouse_ru
    Спасибо, буду пробовать
  • https://t.me/clickhouse_ru
    Прошу прощения, что вопросом на вопрос, но разве этот движок ClickHouse умеет писать в Kafka?
  • https://t.me/clickhouse_ru
    умеет
  • Умеет.
  • https://t.me/clickhouse_ru
    @apanasevich_d #261083 02:29 PM, 14 Mar 2022
    А где почитать подробнее про запись? Что будет записано в кач-ве ключа топика? Или там запись без ключа, поэтому вы ожидаете раунд-робин?
  • Явно ключ точно нигде не указывается. До обновления клика на 22.х (с целью получить хранимые функции) распределение было round-robin. Во всяком случае за год использования никогда с такими проблемами не приходилось сталкиваться.
    Подробнее официальной документации я ничего не нашёл.
  • https://t.me/clickhouse_ru
    @BMF_RU #261085 02:37 PM, 14 Mar 2022
    в Click House нет настройки чтобы текст SQL запросов можно было писать в любом регистре?
  • https://t.me/clickhouse_ru
    @php_dev4_hr54 #261086 02:39 PM, 14 Mar 2022
    так вроде бы и так можно, через clickhouse-client, как минимум, запросы принимаются в любом регистре
  • https://t.me/clickhouse_ru
    @BMF_RU #261087 02:39 PM, 14 Mar 2022
    забыл уточнить: через ODBC/JDBC
  • https://t.me/clickhouse_ru
    @Gena12M #261089 02:45 PM, 14 Mar 2022
    Всем привет) а как проверить какая из нод упала? никак не могу найти селектик
  • https://t.me/clickhouse_ru
    Ясно. В кафке три варианта партиционирования:
    1) кастомная стратегия - явно мимо
    2) раунт-робин, если без ключа
    3) по ключу

    Может попробовать посмотреть в ключи топика, может там непусто?
  • @hmanity #261091 02:50 PM, 14 Mar 2022
  • https://t.me/clickhouse_ru
    @baikulov #261092 02:56 PM, 14 Mar 2022
    Добрый вечер, коллеги! Помогите, пожалуйста с вопросом?!

    Задача собрать 600-700 таблиц с названиями
    from db.table_20200101

    В одну. Как это лучше сделать и вообще можно ли это сделать синтаксисом SQL в CH
  • Пусто. Судя по ui кафки.
  • https://t.me/clickhouse_ru
    Сейчас они в кликхаусе или в какой то другой бд ?
  • https://t.me/clickhouse_ru
    уже в CH, движок MergeTree. Приехали из шардированных BQ
  • https://t.me/clickhouse_ru
    Merge | Документация ClickHouse

    Merge Движок Merge (не путайте с движком MergeTree) не хранит данные самостоятельно, а позволяет читать одновременно из

  • https://t.me/clickhouse_ru
    Интересно выходит, можно например сделать dettach партицию и аттач к другой таблице, и это всё автоматизировать каким-нибудь питоном. А так кроме merge нету ничего
  • https://t.me/clickhouse_ru
    Спасибо! Пошёл пробовать merge. Подключать для этих задач что-то сторонее не хотелось бы.

    Ps. А если id в этих таблицах нет? Его можно указать как concat_key?
  • https://t.me/clickhouse_ru
    @BMF_RU #261099 03:20 PM, 14 Mar 2022
    COUNT, AVG учитывают NULL значение как я понял, можно это как-то исправить?
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261099 #261100 03:25 PM, 14 Mar 2022
    с чего вы так решили?
    create table t1 (a UInt32, b Nullable(UInt32)) engine MergeTree order by a;
    insert into t1 select number, if(number % 2 = 0, number, NULL) from numbers(20);
    select count(a),count(b),avg(b) from t1;
  • не встречал такого поведения в CH (за исключением avgState с одним из обновлений). в любом случае, затюнить поведение функций можно через countIf, avgIf
  • https://t.me/clickhouse_ru
    @BMF_RU ↶ Reply to #261101 #261102 03:27 PM, 14 Mar 2022
    да, не разобрался, текстовое поле, там не NULL, а ''
    соответственно COUNT(DISTINCT FNAME) учитывает это значение
  • https://t.me/clickhouse_ru
    @BMF_RU #261103 03:32 PM, 14 Mar 2022
    А как удалять данные из таблицы? что-то не видно команды DELETE
  • https://t.me/clickhouse_ru
    @BMF_RU #261104 03:33 PM, 14 Mar 2022
    нашел )
    ALTER TABLE [db.]table [ON CLUSTER cluster] DELETE WHERE filter_expr
  • https://t.me/clickhouse_ru
    @BMF_RU #261105 03:35 PM, 14 Mar 2022
    Есть best practices как лучше организовать перезапись открытого периода в таблице фактов?
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261105 #261106 03:39 PM, 14 Mar 2022
    да вы в самом начале пути. Если коротко, то DELETE отсутствует (пока). есть alter table ... delete, но он про другое и для другого. В вашем случае надо писать ещё одну запись с тем-же id и дедублицировать при выборке. Ищите по архиву многочисленные дискуссии про дедублицацию, argMax & FINAL.
    Или тут - https://kb.altinity.com/engines/mergetree-table-engine-family/replacingmergetree/
  • https://t.me/clickhouse_ru
    @BMF_RU #261107 03:41 PM, 14 Mar 2022
    да 2 день всего смотрю на CH как альтернативу Sybase IQ...
  • https://t.me/clickhouse_ru
    @BMF_RU #261108 03:44 PM, 14 Mar 2022
    ALTER TABLE table_name DROP PARTITION|PART partition_expr
    Эту конструкцию никто не использует?
  • @softbot_xxl #261109 03:46 PM, 14 Mar 2022
    Используем.
  • https://t.me/clickhouse_ru
    @bezumen #261110 03:57 PM, 14 Mar 2022
    Потребовалось в графану записи вывести из CH в log панельку. а там нужно перечислить колонки в виде одной строки status=403 http_host=xxx.yyy http_uri=/path ... и так несколько десятков колонок. где status, http_host, http_uri и тд обычные колонки в таблице.
    В CH есть что-то что может закукожить так все колонки в строку или хотя бы как-то похожее на это? или придётся-таки писать функцию?
  • https://t.me/clickhouse_ru
    Есть же кликхаус расширение для Grafana
  • https://t.me/clickhouse_ru
    ну да, datasource, но для log панельки нужно возвращать в нужном виде данные. я про эту панельку https://play.grafana.org/d/6NmftOxZz/logs-panel?orgId=1 (Logs)
  • https://t.me/clickhouse_ru
    так-то всё завелось, но перечислять каждый раз все колонки довольно геморно, если их несколько десятков
  • https://t.me/clickhouse_ru
    Сделайте view один раз и отправляйте
  • https://t.me/clickhouse_ru
    а разве это не прибъёт WHERE гвоздями к view? к тому что из графаны уже не пофильтровать будет
  • https://t.me/clickhouse_ru
    Я не знаю, но наверное можно сделать where по view
  • @danquimby #261117 04:53 PM, 14 Mar 2022
    Народ кто нить курил движок интеграций Rabbitmq ?? не могу понять как возможно отловить ошибки если в очередь кролика шлю не те колонки, нашел только в системных таблицах error но там просто счетчик и все . А в логи самого КХ ошибка не попадает. (попадает если я делаю инстерт не верных колонок)
  • @amnesiacus #261119 05:44 PM, 14 Mar 2022
    Всем Привет! Скажите плиз кто пробовал подключать hdfs как external table к CH , когда клик читает паркет файл или ORC он инициирует какую то джобу на хадупе или сам через свой какой то внутренний механизм ?
  • @amnesiacus #261120 05:48 PM, 14 Mar 2022
    Хотим сделать слой быстрого доступа к данных на клике поверх хадупе , нормальный ли вариант это делать через подключение hdfs как внешние таблицы к клику
  • https://t.me/clickhouse_ru
    Hdfs-клиент. Джобов нет
  • Это какой-то кликовый hdfs клиент ?
  • https://t.me/clickhouse_ru
    Libhdfs (библиотека на C), насколько я помню.
  • https://t.me/clickhouse_ru
    @Krashuevina #261124 06:01 PM, 14 Mar 2022
    Доступ к данным будет быстрее чем через hive, но медленнее чем в самом клике
  • https://t.me/clickhouse_ru
    @eigrad #261125 06:01 PM, 14 Mar 2022
    О, всем привет. Имей ввиду что клик всё в память грузит за раз.
  • https://t.me/clickhouse_ru
    @eigrad #261126 06:01 PM, 14 Mar 2022
    А так я на вашем хадупе это юзал, работало хорошо :-).
  • https://t.me/clickhouse_ru
    @387452444 #261127 06:13 PM, 14 Mar 2022
    в смысле всё в память грузит? а как же тогда работает S3/HDFS storage для mergeTree таблиц?
  • https://t.me/clickhouse_ru
    @387452444 #261128 06:17 PM, 14 Mar 2022
    или вы про прочитать один раз из файлов? Я не проверял если честно, но удивлюсь если для паркета он читает весь файл а не только запрашиваемые колонки ну и фильтровать можно не читая все в память наверно...
  • как минимум два года назад он читал весь файл, даже если нужно было выбрать из него несколько колонок. поэтому приходилось специально файл перед записью в паркет сортировать по нужным колонкам, чтобы компрессия лучше работала и файл получался меньшего размера
  • https://t.me/clickhouse_ru
    @387452444 #261130 06:27 PM, 14 Mar 2022
    ага спасибо, надо будет посмотреть изменилось ли чего
  • https://t.me/clickhouse_ru
    @387452444 #261131 06:30 PM, 14 Mar 2022
    https://github.com/ClickHouse/ClickHouse/pull/30936 вроде как починили но совсем недавно
    Reduce memory usage for some formats when reading with s3/url/hdfs by kssenii · Pull Request #30936 · ClickHouse/ClickHouse

    Changelog category (leave one): Improvement Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md): Reduce memory usage when reading with s3 / url / hdfs for...

  • https://t.me/clickhouse_ru
    добрый вечер, вам удалось выгрузить?
  • https://t.me/clickhouse_ru
    о, огонь-огонь, сами пробовали из bigquery выгружать напрямую в КХ ?

    чёт настроил odbc, подключаюсь через tsql, но вот КХ клиент в упор не хочет , не пойму что ему не нравится
  • 15 March 2022 (185 messages)
  • @huskydev
  • https://t.me/clickhouse_ru
    @BMF_RU #261138 05:28 AM, 15 Mar 2022
    Не успел толком в CH разобраться, Яндекс выпустил Greenplum...
    Кто смотрел/сравнивал? для задачи построения DWH что лучше использовать?
  • @s4851 ↶ Reply to #261138 #261139 05:30 AM, 15 Mar 2022
    ch != DWH
    так как в DWH нужны частые update и изменение уже записанных данных. Те в классической постановки ch не будет оптимально работать как DWH
  • @s4851 #261140 05:31 AM, 15 Mar 2022
    Greenplum это постгресс который поддерживает стандартный плюшки стандартной БД(транзакции, update, delete). В ch нет классического update и вообще нет транзакций
  • https://t.me/clickhouse_ru
    @BMF_RU ↶ Reply to #261139 #261141 05:32 AM, 15 Mar 2022
    да перезапись открытого периода та еще задача, но во первых есть надежда что команда Яндекс что-то предложит,
    во вторых пока решил делать пересоздание партиции открытого периода...
  • @s4851 ↶ Reply to #261141 #261142 05:33 AM, 15 Mar 2022
    ch !=яндекс )
  • https://t.me/clickhouse_ru
    @BMF_RU ↶ Reply to #261140 #261143 05:35 AM, 15 Mar 2022
    да читаю сейчас...
    В DWH по большому счету транзакции не сильно то и нужны...
    Для меня пока эталон СУБД для DWH это IQ, ничего удобнее не видел. Там тебе и INSERT/UPDATE/DELETE, потоковая загрузка, даже возможность писать процедуры/функции.
  • https://t.me/clickhouse_ru
    @BMF_RU #261144 05:36 AM, 15 Mar 2022
    Вопрос как Greenplum будет справляться с запросами к большому объему данных, агрегацией и т. д.
    Наверное есть смысл протестировать в том числе и его...
    CH очень неплохо справляется с агрегациями различными на больших объемах, по крайней мере в рамках моих скромных тестов.
  • https://t.me/clickhouse_ru
    Вообще, имя greenplum уже занято ребятами, которые на постгресе подобную задачу решают
  • https://t.me/clickhouse_ru
    @1695040889 #261146 05:40 AM, 15 Mar 2022
    Поторопился, так и написано. "Сервис для управления кластерами популярной массивно-параллельной СУБД Greenplum® в инфраструктуре Yandex Cloud."
  • @aeseleznev #261148 05:56 AM, 15 Mar 2022
    всем привет! вопрос по оф.доке https://clickhouse.com/docs/ru/sql-reference/statements/alter/column/#alter_modify-column
    судя по ней, можно поменять позицию колонки через ALTER TABLE t MODIFY COLUMN c AFTER another_c;

    но это не работает. Версия 20.3.21.2
    Обновиться надо или я что-то не так делаю, или это бага?
    Манипуляции со столбцами | Документация ClickHouse

    Манипуляции со столбцами Набор действий, позволяющих изменять структуру таблицы. Синтаксис: ALTER TABLE [db].name [ON CL

  • https://t.me/clickhouse_ru
    Хмм, ну по логу изменений надо посмотреть за 22, 21 и 20 год, добавляли или изменяли что то
  • вот сходу не нашёл ничего про это в ченджлогах. Обновляться сразу чтоб проверить - слишком много телодвижений, поэтому решил сначала спросить, вдруг кто в курсе)
  • https://t.me/clickhouse_ru
    Укажите тип колонки в альтере (такой же как сейчас)
  • уже пробовал, не работает
  • https://t.me/clickhouse_ru
    @1695040889 #261154 06:43 AM, 15 Mar 2022
    а что пишет? у КХ парсер с блекджеком и девицами
  • @aeseleznev #261155 06:51 AM, 15 Mar 2022
    вот запрос:
    alter table factsByDate modify column addressesResource Array(String) AFTER addresseesContacts;

    e.displayText() = DB::Exception: Syntax error: failed at position 71: AFTER addresseesContacts. Expected one of: DEFAULT, MATERIALIZED, ALIAS, COMMENT, CODEC, TTL, token, SETTINGS, FORMAT, Comma, INTO OUTFILE (version 20.3.21.2)
  • https://t.me/clickhouse_ru
    @Ali_rzv76 #261156 07:08 AM, 15 Mar 2022
    Hi
    Can we have 1 shared replica for 2 shards?
  • https://t.me/clickhouse_ru
    @ActionNum #261157 07:22 AM, 15 Mar 2022
    Всем привет подскажите пожалуйста от чего зависит количество частей в одной партиции при копировании данных через insert from select в рамках одного кластера? Просто немного странно, что у одной партиции в рамках одного кластере в старой таблице 8 частей, а в новой 191 часть.
  • https://t.me/clickhouse_ru
    Yes
  • https://t.me/clickhouse_ru
    ClickHouse

    ClickHouse DBMS discuss and help

  • https://t.me/clickhouse_ru
    А вы смотрели сразу после вставке ? Попробуйте запустить OPTIMIZE TABLE . И по идее должно стать 8
  • https://t.me/clickhouse_ru
    Да наверно вопрос отпал, мерж еще не сделался на тот момент. Спасибо.
    Просто очень медленно эта операция у меня в рамках одного кластера делается, не пойму какие параметры или настройки ОС подпарвить. Вроде кластер на NVMe дисках с 300Gb RAM а данные из одной таблицы в другую не больше 500Gb в сутки переносится.
  • https://t.me/clickhouse_ru
    а через isql ODBC коннект к bigquery работает?
    вы ODBC в какой OS настроили?
    ну он ошибку обычно говорит и показывает что ему надо
  • https://t.me/clickhouse_ru
    Ну вообще все зависит от версии GA. Если это UA, то вам только експорт из API поможет. Если GA4, то достаточно в интерфейс GA настроить экспорт и данные будут копироваться ещё и в BQ.

    Как копировать из BQ в CH я не знаю, не пробовал. Но если копировать из UA API в CH, то надо сперва со схмеой данных определиться. Какие поля забирать и как их валидировать. Ибо По сути мы тянем не то, что собралось, а то что внутри UA было обработано

    P.s. и неплохо было бы всю эту схему данных обогатить идентификаторами. Хита как минимум.
  • https://t.me/clickhouse_ru
    Спасибо за ответ 😁
    Проблеме уже почти год и кое-как я ее решил в то время 🙂
  • https://t.me/clickhouse_ru
    Упс. Я просто прошёлся по ответам на тему выгрузки из BQ и наткнулся=)
  • https://t.me/clickhouse_ru
    isql работает
    ОС - ubuntu

    может я не правильно обращюсь из КХ клиента? есть ли у Вас пример?
  • https://t.me/clickhouse_ru
    @huskydev #261167 07:57 AM, 15 Mar 2022
    srv1.ftt.local :) SELECT * FROM odbc('DSN=BigQuery', 'product-analytics.test.ya3')

    Received exception from server (version 22.1.3):
    Code: 86. DB::Exception: Received from localhost:9000. DB::Exception: Received error from remote server /columns_info?connection_string=......
    HTTP status code: 500 Internal Server Error, body: Error getting columns from ODBC 'std::exception. Code: 1001, type: nanodbc::database_error, e.what() = ../contrib/nanodbc/nanodbc/nanodbc.cpp:1046: HY00: [Simba][ODBC] (11560) Unable to locate SQLGetPrivateProfileString function: [Simba][DSI] An error occurred while attempting to retrieve the error message for key 'LibsLoadErr' with message parameters ['""'] and component ID 3: Message not found in file "/opt/SimbaODBCDriverforGoogleBigQuery_2.4.3.1012-Linux/lib/en-US/ODBCMessages.xml" (version 22.1.3.7 (official build))'
    . (RECEIVED_ERROR_FROM_REMOTE_IO_SERVER)
  • https://t.me/clickhouse_ru
    @huskydev #261168 07:58 AM, 15 Mar 2022
    то есть также жалуется на nanodbc :/
  • https://t.me/clickhouse_ru
    Ну написано же, что синтаксис неверный.
  • https://t.me/clickhouse_ru
    @Ali_rzv76 #261170 08:32 AM, 15 Mar 2022
    I want test stability and HA of ClickHouse cluster so i remove one of my pods with its persistentVolumeClaim and after that when my pod created again, it doesnt sync with its replica and tables aren't present in database
    i try to create table but i face to this Exception

    │ chi-repl-05-replicated-0-0 │ 9000 │ 253 │ Code: 253, e.displayText() = DB::Exception: Replica /clickhouse/replicated/default/tables/events_local/0/replicas/chi-repl-05-replicated-0-0 already exists. (version 20.7.4.11 (official build))

    chi-repl-05-replicated-0-1 │ 9000 │ 57 │ Code: 57, e.displayText() = DB::Exception: Table default.events_local already exists. (version 20.7.4.11 (official build))
  • https://t.me/clickhouse_ru
    It is a CH problem, just wait for CH initiated zookeeper records deletion.
  • https://t.me/clickhouse_ru
    In future please not talk non Russian in Russia channels.
  • Лондон из зе кэпитал оф зе грейт британ.
  • https://t.me/clickhouse_ru
    @1695040889 #261174 08:45 AM, 15 Mar 2022
    точно
    https://www.youtube.com/watch?v=ML_IjppR_SU
    RT: как работает «кремлёвская пропаганда», или Симоньян, медведь и бобровый сок

    Маргарита Симоньян наконец рассказала всю правду об RT. #пропаганда #МаргаритаСимоньян #бобры Подписывайтесь на RT Russian - http://www.youtube.com/subscription_center?add_user=rtrussian RT на русском - http://russian.rt.com/ Vkontakte - http://vk.com/rt_russian Facebook - http://www.facebook.com/RTRussian Twitter - http://twitter.com/RT_russian Livejournal - http://rt-russian.livejournal.com/

  • https://t.me/clickhouse_ru
    @1695040889 #261175 08:47 AM, 15 Mar 2022
    не люблю ее, с другой стороны и Путина не люблю
    Путина не люблю потому, что он слишком мало Путин
  • @infisamk #261176 08:48 AM, 15 Mar 2022
    Политика детектед!
  • https://t.me/clickhouse_ru
    @1695040889 #261178 08:49 AM, 15 Mar 2022
    Не-не-не. "Лондон из зе кэпитал оф зе грейт британ" это отсюдя
  • https://t.me/clickhouse_ru
    /report
  • https://t.me/clickhouse_ru
    @1695040889 #261180 08:50 AM, 15 Mar 2022
    И это не политика, если подвал не считать :)
  • https://t.me/clickhouse_ru
    тут не тот чат где хотелось бы это обсуждать. Даже в юмористическом контексте
  • https://t.me/clickhouse_ru
    @critskiy #261182 08:52 AM, 15 Mar 2022
    удалите пожалуйста сообщения, не связанные с тематикой чата
  • https://t.me/clickhouse_ru
    @1695040889 #261183 08:52 AM, 15 Mar 2022
    Прошу прощения; удалите записи, я не хотел политоту разводить
  • https://t.me/clickhouse_ru
    вы можете и сами удалить спокойно без вмешательства админов
  • https://t.me/clickhouse_ru
    @1695040889 #261185 08:53 AM, 15 Mar 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
    odbc(connection_settings, external_database, external_table) - забыли БД указать
  • https://t.me/clickhouse_ru
    @Hardstep83 #261193 08:59 AM, 15 Mar 2022
    odbc | Документация ClickHouse

    odbc Возвращает таблицу, подключенную через ODBC. odbc(connection_settings, external_database, external_table) Параметры

  • https://t.me/clickhouse_ru
    пробовал и так тоже, всё равно ошибка
    srv1.ftt.local :) select * from odbc('DSN=BigQuery;databaseName=product-analytics', 'db_tha', 'day_results')

    Received exception from server (version 22.1.3):
    Code: 86. DB::Exception: Received from localhost:9000. DB::Exception: Received error from remote server /columns_info?connection_string=DSN%3DBigQuery%3BdatabaseName%3Dproduct-analytics&schema=db_tha&table=day_results&external_table_functions_use_nulls=true. HTTP status code: 500 Internal Server Error, body: Error getting columns from ODBC 'std::exception. Code: 1001, type: nanodbc::database_error, e.what() = ../contrib/nanodbc/nanodbc/nanodbc.cpp:1046: HY00: [Simba][ODBC] (11560) Unable to locate SQLGetPrivateProfileString function: [Simba][DSI] An error occurred while attempting to retrieve the error message for key 'LibsLoadErr' with message parameters ['""'] and component ID 3: Message not found in file "/opt/SimbaODBCDriverforGoogleBigQuery_2.4.3.1012-Linux/lib/en-US/ODBCMessages.xml" (version 22.1.3.7 (official build))'
    . (RECEIVED_ERROR_FROM_REMOTE_IO_SERVER)
  • https://t.me/clickhouse_ru
    @huskydev #261195 09:08 AM, 15 Mar 2022
    root@srv1:/home/azamat# ll /opt/SimbaODBCDriverforGoogleBigQuery_2.4.3.1012-Linux/lib/en-US/ODBCMessages.xml
    -rwxr-xr-x 1 root root 87356 Nov 30 17:06 /opt/SimbaODBCDriverforGoogleBigQuery_2.4.3.1012-Linux/lib/en-US/ODBCMessages.xml*
  • @rgalin #261196 09:08 AM, 15 Mar 2022
    С связи политикой, подскажите насчет чистоты лицензии ClickHouse, нет ли угроз отзыва или иных геноцид, вроде российская и apache, но clickhouse.com зареген непонятно где. Прошу без сарказма и злых нападок. Спасибо
  • Так как код открытый, а обновление производится в любом случае руками, то не думаю, что будут какие-либо проблемы.
  • https://t.me/clickhouse_ru
    А коннективность вообще проверяли, работает с командной строки ? isql <DSN> <user name> <password>
  • https://t.me/clickhouse_ru
    Проблема была в параметре prefer_column_name_to_alias, поставил 1 и завелось. Запрос начал отрабатывать на distributed таблице первые несколько секунд, отдавал ошибку и резал коннект. На локальной таблице всё работает что странно.
    Не самая богатая на информативность ошибка конечно, еле докопался
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261196 #261201 09:30 AM, 15 Mar 2022
    дело же не в доменах, а в лицензиях. Лицензия тут - https://github.com/ClickHouse/ClickHouse/blob/master/LICENSE
    Команда располагается в SF & Ams, и работает по роадмапу - https://github.com/ClickHouse/ClickHouse/issues/32513
    Пока интернет есть - пользуйтесь на здоровье, а когда отключат - вам уже будет уже все равно.
  • @rgalin #261202 09:31 AM, 15 Mar 2022
    Спасибо, все ясно
  • https://t.me/clickhouse_ru
    жалуется на сам ODBC драйвер
    не могут найти функцию
    SQLGetPrivateProfileString

    https://stackoverflow.com/questions/65336260/simba-athena-odbc-unable-to-use-sqlgetprivateprofilestring-functions
    Simba Athena ODBC: unable to use SQLGetPrivateProfileString functions

    This is very strange, I want to setup a connection from RStudio to my instance in AWS Athena. I am using unixodbc as the driver manager, and succeded by testing the connection using isql -v 'Simba ...

  • https://t.me/clickhouse_ru
    а в чем преимущество argMax?
    я вообще сделал через DISCTINCT, работает быстрее GROUP BY
    2-3 с, против 7-8
  • https://t.me/clickhouse_ru
    @XasturX #261210 09:57 AM, 15 Mar 2022
    Добрый день. Подскажите какие есть существующие решения ошибки "Memory limit (total) exceeded: would use 6.93 GiB (attempt to allocate chunk of 4219540 bytes), maximum: 6.93 GiB". В данный момент запрос на основе system.query_log занимает 13mb на 75 строк. Причем ошибка появляется не часто, т.е запросы идут и она иногда появляется (около 1-2 раз на 10к строк). Если увеличить запись до 200 строк за раз, то ошибки сыпятся почти на каждую вставку. Может есть какие-то способы дебага данной ошибки?
  • https://t.me/clickhouse_ru
    explain и explain estimate
  • @BruceWayne_100 #261214 09:58 AM, 15 Mar 2022
    ребята привет, а кто-нибудь подключал кх к редаш, в каком виде нужно урл указывать?
  • @sergey_alaev #261218 10:03 AM, 15 Mar 2022
    Можете подсказать, почему запросы в кликхаус падают с out of memory из-зи order by в конце? Кликхаус умеет же сортировать результаты через диск?
  • https://t.me/clickhouse_ru
    @soloduev #261220 10:04 AM, 15 Mar 2022
    Всем привет. Важный вопрос к знатокам КХ.
    Имеется относительно большой по объему набор из 4 партов ReplicatedReplacingMergeTree.
    В сумме 150 млрд записей.

    1) Сколько займет по времени изменение строки на массив во всех записях?
    alter table db.SomeTable on cluster ch_cluster modify column Some Array(String)

    2) А до изменения типа столбца нужно еще сделать 4 млрд. реплейсов:
    alter table db.SomeTable on cluster ch_cluster update Some = concat('[''', Some,''']') where length(Some) > 0
    alter table db.SomeTable on cluster ch_cluster update Some = '[]' where length(Some) = 0

    У меня есть мысль, что все это очень плохо и в боевое окружение я это не пропущу и предлагаю просто завести новый столбец SomeList нужного типа.
    Сможет кто-нибудь меня разубедить в обратном, сказать что КХ не торомозит и дать мне гарантии того, что мол, смело реплейсь и изменяй тип колонки?
  • https://t.me/clickhouse_ru
    подключал
    обычный URL указывал
    http://10.0.1.221:18898
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261204 #261222 10:11 AM, 15 Mar 2022
    argMax - это один из механизмов дедубликации. Не всегда просто посчитать uniq по данным, среди которых есть дубликаты. Особенно если требуется полная точность (uniqExact).
    Разговор изначально был про distributed конфигурацию и дубликатами рассыпанными по разным шардам. Простой distinct тут не особо поможет, если нужна полная точность. Но лучше закатать губу и считать какой-нибудь uniqHLL12 - он ещё быстрее, но не гарантирует полной точности.
  • https://t.me/clickhouse_ru
    Почему DISCTINCT не может? Если выполню его на distributed
    SELECT DISTINCT s_id, o_id, a_id, codes FROM data_mv_Replacing FINAL;
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261223 #261225 10:16 AM, 15 Mar 2022
    почитайте изначальный вопрос (не мой). У человека этот final обрабатывался на шардах, а после сборки вместе получалось больше чем нужно, потому как final дубликаты между шардами не поборет.
  • а если он ругается что invalid schema?
  • https://t.me/clickhouse_ru
    Это был мой вопрос )
    FINAL чистит дубликаты на шардах (их 2),
    DISCTINCT в данных, что пришли с шадрдов, грубо говоря
    Или это не совсем так работает?

    Мне нужно совсем без дубликатов
  • https://t.me/clickhouse_ru
    да, работает
  • https://t.me/clickhouse_ru
    http виде
  • https://t.me/clickhouse_ru
    Если у вас используется group by в запросе и включена настройка на использования жёсткого диска, то он будет делать на жёстком диске group by
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261228 #261233 10:25 AM, 15 Mar 2022
    если ключ шардирования сделан так что дубликаты получаются (и разрешаются) внутри шардов, то проблемы нет. Если вы считаете distinct по единственному id в order by (где происходит дедубликация) - проблем нет. Но в других случаях есть риск получить неточность - значения из "лишних" строк, которые были на разных шардах и не смогли дедублицироваться попадут в хеш-таблицу дистинкта.
  • @chamaeleon_rex #261234 10:25 AM, 15 Mar 2022
    Привет. Напомните, пожалуйста, есть ли синтаксис в КХ, позволяющий делать селект из колонки если она существует в таблице, а если нет, то возвращать условный 0?
  • https://t.me/clickhouse_ru
  • При чем тут group by? у меня order by
  • https://t.me/clickhouse_ru
    max_bytes_before_external_sort для order by настройка
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261228 #261238 10:38 AM, 15 Mar 2022
    я бы ещё внимательно прочитал https://clickhouse.com/docs/en/operations/settings/settings/#optimize-distributed-group-by-sharding-key и попробовал применить.
    Settings | ClickHouse Documentation

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

  • https://t.me/clickhouse_ru
    @1695040889 #261239 10:39 AM, 15 Mar 2022
    odbc - это вообще интеренсая тема, там pushdown никакой не проходит
  • https://t.me/clickhouse_ru
    @1695040889 #261241 10:41 AM, 15 Mar 2022
    нужно учитывать, что запрос сам проваливается
  • https://t.me/clickhouse_ru
    @1695040889 #261242 10:42 AM, 15 Mar 2022
    т.е. я могу сделать правильный запрос, но odbc всегда вернет все строки
  • @BruceWayne_100 #261243 10:55 AM, 15 Mar 2022
    вем привет, а как подучить в кх текущее значение минус предыдущее?
  • @BruceWayne_100 #261244 10:55 AM, 15 Mar 2022
    lead lag аналог
  • @BruceWayne_100 #261245 10:56 AM, 15 Mar 2022
    neighbor(column, offset[, default_value])?
  • https://t.me/clickhouse_ru
  • any(column) over (partition by ... order by .. rows between 1 preceding and 1 preceding)
  • Expected one of: end of query, GROUPS, ClosingRoundBracket, ORDER BY, PARTITION BY, BY, ROWS, RANGE, token. (SYNTAX_ERROR) (version 21.11.5.33 (official build))
  • @BruceWayne_100 #261250 11:00 AM, 15 Mar 2022
    heuftncz(
  • перейдите по ссылке от Boris, там примеры использования этой оконной функции. что-то где-то вы неправильно написали у себя, так как ругается на синтаксис
  • @BruceWayne_100 #261255 11:10 AM, 15 Mar 2022
    спасибо большое
  • https://t.me/clickhouse_ru
    @z0omal1 #261256 11:32 AM, 15 Mar 2022
    коллеги, доброго дня
  • https://t.me/clickhouse_ru
    @z0omal1 #261257 11:34 AM, 15 Mar 2022
    подскажите, пожалуйста, какой самый правильный способ удалить старые данные из таблицы? alter table <table> drop partition <partition> сгодится, или надо как-то иначе это делать
  • https://t.me/clickhouse_ru
    Я бы сказал, что сгодится
  • https://t.me/clickhouse_ru
    то есть соответственно для кластера с репликой, могу такое же просто on cluster <cluster> выполнить и всё?
  • https://t.me/clickhouse_ru
    Вроде не рекомендуется делать on cluster, там же ещё может быть какой-нибудь подводный каменть с ZooKeeper
  • https://t.me/clickhouse_ru
    @konnectrl #261261 11:38 AM, 15 Mar 2022
    Я им не пользовался никогда, у нас всё без реплик просто шарды ....
  • https://t.me/clickhouse_ru
    @z0omal1 #261262 11:38 AM, 15 Mar 2022
    кхм, ладненько, спасибо в любом случае
  • Какой?
  • https://t.me/clickhouse_ru
    @logi_egi #261264 12:11 PM, 15 Mar 2022
    Всем привет! Может тут есть спецы с опытом работы с chproxy и django? Нужно реализовать распределение вычислительной нагрузки по 3 серверам и связать с django проектом. Если у кого есть опыт и интересна проектная работа, пишите в лс)
  • https://t.me/clickhouse_ru
    да, можно запустить ON CLUSTER

    если у вас zookeeper работает
  • https://t.me/clickhouse_ru
    @z0omal1 #261266 12:14 PM, 15 Mar 2022
    спасибо
  • https://t.me/clickhouse_ru
    @floxard #261267 12:28 PM, 15 Mar 2022
    а кто в теме, вот это то что в доке ещё актуально?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @floxard #261269 12:29 PM, 15 Mar 2022
    и если да то когда уже
  • @fredi_jon #261271 12:52 PM, 15 Mar 2022
    Joined.
  • @fredi_jon #261272 01:03 PM, 15 Mar 2022
    Добрый день! Прошу помощи, служба поддержки отвечать не хочет. У меня есть несколько десятков сервер машин, на которых я использую CH, на трех из них внезапно начались ошибки, CH падает в логах вот такая ошиюка "<Error> Application: Caught exception while loading metadata: Code: 231. DB::Exception: Suspiciously many (34) broken parts to remove.: Cannot attach table".
    1) Переустановка не помогла, CH сразу вывалился в эту ошибку.
    2) sudo -u clickhouse touch /var/lib/clickhouse/flags/force_restore_data, хватает буквально на сутки и после CH опять умирает.
    3) Сервера(в смысле ПО) везде одинаковое.
    4) Жесткие диски проверял на жизнеспособность, все ок.
    Подскажите, возможно ли как-то определить в чем ошибка, почему это происходит.
    Или каким то образом сделать так, чтобы CH не валился за сутки?
    Спасибо.
  • Умирает на одной машине или разных? Что за поддержка, вы в облаке?
  • @vmihailenco #261274 01:12 PM, 15 Mar 2022
    Добрый день,
    Что можно настроить чтобы уменьшить кол-во активных мерджей? Настроил profiles>default>background_pool_size = 4, но в system.merges бывает 5-6 записей...
  • @fredi_jon #261275 01:12 PM, 15 Mar 2022
    Нет, писал в Службу поддержки самого CH, нет не облако, сервера, на Windows машинах с Ubuntu Hyper-V
  • @inscaven #261276 01:13 PM, 15 Mar 2022
    имею проблему с query_log и query_thread_log
    они создаются, через время от нескольких секунд до пары минут в логе появляется сообщение
    Existing table system.query_log for system log has obsolete or different structure. Renaming it to query_log_5.
    он создает новый query_log, и с ним такая же беда
    в итоге за день он несколько десятков тысяч этих таблиц может наделать, все пустые
    как исправить это?
  • Ну если у вас на всех машинах такая фигня, то наверное что-то не то виртулизацией. Сложно сказать.
  • @softbot_xxl #261278 01:23 PM, 15 Mar 2022
    По сути корраптится диск, чексуммы не совпадают.
  • Я же говорю, что появилось по очереди на трех из 20 штук
  • @fredi_jon #261280 01:24 PM, 15 Mar 2022
    Не на всех машинах
  • https://t.me/clickhouse_ru
    @deadeternity666 #261281 01:27 PM, 15 Mar 2022
    Добрый день, подскажите по доке, пожалуйста:
    https://clickhouse.com/docs/en/operations/backup/#filesystem-snapshots
    Написано, что можно сделать реплики на зфс, например, и "исключить их из Distributed таблицы". Вот как "исключить реплику из Distributed" я что-то не могу найти.
    Data Backup | ClickHouse Documentation

    Data Backup While replication provides protection from hardware failures, it does not protect against human errors: acci

  • @aprytkov #261282 01:36 PM, 15 Mar 2022
    Добрый день! Подскажите в чем может быть проблема: у меня есть запрос вида

    SELECT
    rrrbo.date AS date,
    co.date_order,
    ...

    Когда делаю из него select всё работает. Пытаюсь сделать из него представление командой

    CREATE VIEW detailed_reserves AS
    SELECT
    rrrbo.date AS date,
    co.date_order,
    ...

    Появляется ошибка Unknown column name 'rrrbo.date'
  • https://t.me/clickhouse_ru
    Укажите в From database.table
  • Спасибо, помогло
  • @vmihailenco #261285 02:01 PM, 15 Mar 2022
    Добрый день,
    Что можно настроить чтобы уменьшить кол-во активных мерджей? Настроил profiles>default>background_pool_size = 4, но в system.merges бывает 5-6 записей...
  • https://t.me/clickhouse_ru
    @vavilon169 #261288 03:37 PM, 15 Mar 2022
    Привет всем. Запустил в докере кликхаус. Пишу туда строчки в таблицу с движком merge tree. Вставляю пачками по 10к записей. Примерно через 1,5 миллиона строк загрузка диска уходит в потолок и вставка в кликхаус перестаёт работать. Подскажите, как это победить ?
  • https://t.me/clickhouse_ru
    volumes в /var/lib/clickhouse пробросили?
  • https://t.me/clickhouse_ru
    @vavilon169 #261290 03:39 PM, 15 Mar 2022
    Нет. В этом случае сразу начинает работать через раз
  • https://t.me/clickhouse_ru
    какая host OS? Mac OS? Linux ? Windows WSL
  • https://t.me/clickhouse_ru
    @vavilon169 #261292 03:39 PM, 15 Mar 2022
    Windows
  • https://t.me/clickhouse_ru
    какой виндовс? 10?

    докер какой? docker-desktop ?
  • https://t.me/clickhouse_ru
    @vavilon169 #261294 03:40 PM, 15 Mar 2022
    Да
  • https://t.me/clickhouse_ru
    @vavilon169 #261295 03:40 PM, 15 Mar 2022
    Да
  • https://t.me/clickhouse_ru
    @BloodJazMan #261296 03:42 PM, 15 Mar 2022
    попробуйте уйти на WSL2 и запускать docker внутри linux

    проблема скорее всего с clickhouse не связана, а связана с docker desktop
  • https://t.me/clickhouse_ru
    @vavilon169 #261297 03:42 PM, 15 Mar 2022
    Попробую, спасибо
  • https://t.me/clickhouse_ru
    и еще попробуйте Widows Defender отключить... и место проверьте C: может кончилось?
  • https://t.me/clickhouse_ru
    Место есть, попробую
  • https://t.me/clickhouse_ru
    @alexadr_anisimov #261301 04:19 PM, 15 Mar 2022
    Всем привет!
    После рестарта не дает подключиться
    Code: 210. DB::NetException: Connection refused (127.0.0.1:9000). (NETWORK_ERROR
    в логах только Too many parts на system.metric_log; Это может быть взаимосвязано? Или причину отсутствия подключения искать в другом месте? И можно ли безопасно почистить system.metric_log на диске ?
  • Help me
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261302 #261303 04:44 PM, 15 Mar 2022
    clickhouse на нескольких десятках Windows машин с Ubuntu Hyper-V - это очень необычное решение. У вас есть возможность удалить Windows хотя бы с одного сервера и посмотреть что получается? Наверное надо искать проблемы не в КХ и дисках, а вот в этой необычной виртуализации и запрашивать платную поддержку у майкрософт и её партнеров.
  • https://t.me/clickhouse_ru
    Вам настройку max_broken_parts в mergetree_settings нужно выставить , в таком случае битые парты перенесуться и кликхаус запустится.
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261304 #261305 04:49 PM, 15 Mar 2022
    если там действительно повышенное количество битых партов случается на десятках машин всего за 1 сутки, то "всю систему надо менять", а не пытаться запустить хоть что-то.
  • https://t.me/clickhouse_ru
    Вам же не известна вся инфраструктура и цели использования кх, возможно такой вариант человека вполне устроит.
  • @msmk_cn #261309 05:14 PM, 15 Mar 2022
    Друзья, ранее задавался вопрос про последствия вставки не по 100-500 тысяч, а гораздо меньшими группами (100-200 записей в одной вставке). Так может кто-то объяснить чем это грозит и какие отрицательные последствия у этого?
  • https://t.me/clickhouse_ru
    @Igess #261310 05:17 PM, 15 Mar 2022
    Одна вставка - один парт. Много партов - много мерджей - нагрузка на диски
    А так же есть ограничение на общее количество партов. Если новые будут порождаться быстрее чем идёт мердж, то быстро дойдёте до лимита и тогда инсерты начнут отфутболиваться.
  • А как в таком случае действовать, если записей не настолько много чтобы копить их группами по 100 тысяч и вставлять? Поможет ли использование буферной таблицы?
  • а как часто вы планируете вставлять эти 200 строк?
  • https://t.me/clickhouse_ru
    @Igess #261314 05:20 PM, 15 Mar 2022
    Необходимо отталкиваться от вашей архитектуры: количество пишущих процессов, количество шардов в кластере и прочее.

    Вариантов может быть очень много. Буферная табла - один из вариантов
  • Я думаю в пиках не чаще, чем раз в минуту
  • https://t.me/clickhouse_ru
    @Igess #261316 05:22 PM, 15 Mar 2022
    Вы можете попробовать уменьшить количество шардов или пишущих процессов и тогда увеличится гранула вставки.

    Или если у вас не система реального времени, то делать слив данных раз в Х минут (и тут уже сколько накопится - столько накопится)
  • https://t.me/clickhouse_ru
    @Igess #261317 05:23 PM, 15 Mar 2022
    В целом периодичность в 10 минут чаще всего не смертельна. Не всегда есть необходимости в максимально оперативной вставке
  • @msmk_cn #261318 05:23 PM, 15 Mar 2022
    Понял, спасибо за наставления на путь истинный
  • https://t.me/clickhouse_ru
    200 строк раз в минуту, ничего не сломается
  • https://t.me/clickhouse_ru
    Повторю свой вопрос
  • Добавьте новую колонку в которой default будет преобразование старой в массив, потом делаете materialize column и переименовываете. Будет намного быстрее чем update
  • https://t.me/clickhouse_ru
    Скорее, записать что-то нужно.
  • https://t.me/clickhouse_ru
    @zhiraslan_shedzhem #261327 08:12 PM, 15 Mar 2022
    Привет!
    Подскажите, пожалуйста, почему при сравнении левая дата оказывается больше правой?
  • https://t.me/clickhouse_ru
    @orantius #261328 08:14 PM, 15 Mar 2022
    потому что это не дата
  • https://t.me/clickhouse_ru
    А какая та?
  • https://t.me/clickhouse_ru
    @zhiraslan_shedzhem #261330 08:16 PM, 15 Mar 2022
    Как может быть не та, по псевдониму разве нельзя сказать, что та?
  • https://t.me/clickhouse_ru
    @zhiraslan_shedzhem #261331 08:19 PM, 15 Mar 2022
    Если первую дату тоже привести к местному часовому поясу, все равно остается больше
  • https://t.me/clickhouse_ru
    @orantius #261332 08:19 PM, 15 Mar 2022
    такая же нога
    SELECT
    toDateTime('2022-03-06 22:37:00') AS date1,
    toMonday(toDate(now(), 'Europe/Moscow')) - toIntervalWeek(1) AS big_date,
    date1 > big_date AS is_greater

    ┌───────────────date1─┬───big_date─┬─is_greater─┐
    │ 2022-03-06 22:37:00 │ 2022-03-07 │ 0 │
    └─────────────────────┴────────────┴────────────┘
  • https://t.me/clickhouse_ru
    @zhiraslan_shedzhem #261333 08:19 PM, 15 Mar 2022
    Похоже на бред какой-то
  • https://t.me/clickhouse_ru
    @orantius #261334 08:21 PM, 15 Mar 2022
    а почему у вас у даты вообще есть 24:00
  • https://t.me/clickhouse_ru
    🙃 Как такое возможно
  • https://t.me/clickhouse_ru
    Это то же, что 00:00
  • https://t.me/clickhouse_ru
    @orantius #261337 08:22 PM, 15 Mar 2022
    откуда у даты вообще 00:00
  • https://t.me/clickhouse_ru
    @orantius #261338 08:22 PM, 15 Mar 2022
    не говоря о том, что я бы не был так уверен что это то же что и 24:00
  • https://t.me/clickhouse_ru
    Если минуту добавить, видно
  • https://t.me/clickhouse_ru
    @zhiraslan_shedzhem #261340 08:24 PM, 15 Mar 2022
    Что интересно, ваш запрос мне выдает корректный 0
  • https://t.me/clickhouse_ru
    @zhiraslan_shedzhem #261341 08:25 PM, 15 Mar 2022
    Но мой собственный запрос оставляет 1😅
  • https://t.me/clickhouse_ru
    @orantius #261342 08:25 PM, 15 Mar 2022
    ну теперь меняйте мой запрос, пока не получится ваш
  • https://t.me/clickhouse_ru
    @orantius #261343 08:25 PM, 15 Mar 2022
    какие типы у колонок?
  • https://t.me/clickhouse_ru
    @orantius #261344 08:26 PM, 15 Mar 2022
    и в чем вы их смотрите, clickhouse-client - лучший вариант, там нет 24:00
  • https://t.me/clickhouse_ru
    @zhiraslan_shedzhem #261345 08:26 PM, 15 Mar 2022
    У date1 - DateTime
  • https://t.me/clickhouse_ru
    @zhiraslan_shedzhem #261346 08:27 PM, 15 Mar 2022
    А где смотрю - этого уже не знаю, честно
  • https://t.me/clickhouse_ru
    Обернул big_date в toDateTime, получил 0
  • https://t.me/clickhouse_ru
    @zhiraslan_shedzhem #261348 08:31 PM, 15 Mar 2022
    Как будто DateTime > Date при равных именно датах
  • @1382671541 #261349 08:31 PM, 15 Mar 2022
    а что показывают timeZoneOf оригинальной колонки и date_diff между колонками, которые сравниваете?
  • https://t.me/clickhouse_ru
    @zhiraslan_shedzhem #261350 08:31 PM, 15 Mar 2022
    Хотя даты не равные - 6 и 7 числа
  • https://t.me/clickhouse_ru
    У первой была Москва, у второго UTC
    Перевел вторую на Москву, стало:
  • @1382671541 #261353 08:47 PM, 15 Mar 2022
    а select timezone() на сервере что показывает?
  • @antonsafronov #261354 09:21 PM, 15 Mar 2022
    Подскажите, кто какой dashboard использует для работы с ch?
  • Dashboard для чего? Показать данные или мониторинг самого кх?
  • https://t.me/clickhouse_ru
    @stovm #261358 10:30 PM, 15 Mar 2022
    Привет! А есть у кого-нибудь идеи, куда копать с такой ошибкой в system.replication_queue?
    num_tries: 183106
    last_exception: Code: 49, e.displayText() = DB::Exception: Incomplete granules are not allowed while blocks are granules size. Mark number 346 (rows 8192), rows written in last mark 0, rows to write in last mark from block 1 (from row 8192), total marks currently 347 (version 21.2.4.6 (official build))
  • 16 March 2022 (97 messages)
  • https://t.me/clickhouse_ru
    Бред какой-то.
  • Данные
  • https://t.me/clickhouse_ru
    Что такое по-вашему "dashboard "?
  • @antonsafronov #261363 06:20 AM, 16 Mar 2022
    ClickHouse, Power Bi , Metabase и т.д.
  • https://t.me/clickhouse_ru
    В чем тогда вопрос? Все что перечислили используется. Еще Tableau, redash, superset, что угодно
  • @antonsafronov #261365 06:24 AM, 16 Mar 2022
    Список что угодно не так широк, в целом интересен open source
  • https://t.me/clickhouse_ru
    Ну так Metabase Redash Superset
  • https://t.me/clickhouse_ru
    Какой вопрос, такой ответ 🤷‍♂
    Вы вообще с вопросом про дашборды зашли - можно хоть через excel подключиться и рисовать
  • Вопрос наиболее удачные инструменты для аналитике при работе с ClickHouse
  • https://t.me/clickhouse_ru
    @Sablast #261369 06:33 AM, 16 Mar 2022
    clickhouse-client & python
  • @antonsafronov #261370 06:33 AM, 16 Mar 2022
    Может есть чумовые сравнительные статьи у кого нибудь в загашнике, почитать
  • https://t.me/clickhouse_ru
    CH 😂
  • https://t.me/clickhouse_ru
    а контекст задачи какой?
  • https://t.me/clickhouse_ru
    @Sablast #261373 06:34 AM, 16 Mar 2022
    Из open source выше 3 описали. Но это по факту не то чтобы инструменты анализа. Это визуализаторы
  • Нам для бизнес пользователей
  • @antonsafronov #261375 06:34 AM, 16 Mar 2022
    Без тех бэкграунда
  • https://t.me/clickhouse_ru
    Есть ещё Tabix, его обещали завести новый
  • https://t.me/clickhouse_ru
    если для бизнес задач - дашни можно те же, или иными словами витрины, построить в Grafana. В контексте более ничего такого не особо надо
  • https://t.me/clickhouse_ru
    Self service нужен?
  • Есть, она скорее чисто для оперативнее аналитике, ретроспективную делать не удобно
  • https://t.me/clickhouse_ru
    ну, самый простой вариант, - взять уже имеющийся инструмент для построения дашбордов на проекте, если есть
  • https://t.me/clickhouse_ru
    с учетом того, что вы вопрос вообще задали, обратитесь к своим ДБА
  • https://t.me/clickhouse_ru
    @critskiy #261382 06:36 AM, 16 Mar 2022
    а если нет, то взять самое простое
  • @antonsafronov #261383 06:37 AM, 16 Mar 2022
    Я не бизнес, но область для меня новая и при работе с новой задачей, стоит ещё раз посмотреть вокруг, вдруг что то новое интересное подъехало
  • https://t.me/clickhouse_ru
    @Sablast #261384 06:37 AM, 16 Mar 2022
    Спросите пользователей с чем они вообще работали когда либо
  • @antonsafronov #261385 06:37 AM, 16 Mar 2022
    В целом понятно, всем спасибо
  • Ни с чем
  • @antonsafronov #261387 06:37 AM, 16 Mar 2022
    Excel :)
  • https://t.me/clickhouse_ru
    jupiter notebook попробуйте
  • Не думал, интересно
  • https://t.me/clickhouse_ru
    @Sablast #261390 06:38 AM, 16 Mar 2022
    Тогда уж zeppelin хотябы
  • https://t.me/clickhouse_ru
    @1695040889 #261391 06:38 AM, 16 Mar 2022
    только топам не показывайте
  • Если уж на то пошло, то бизнес-пользователи любят просто смотреть на красивые графики и таблички, а не строить их сами. Строить при этом их можно в чем угодно. Главное понимать, что генерация этих графиков и табличек ляжет на того, кто и будет уже выбирать инструмент для работы. В чем ему будет удобнее и понятнее работать, то он и выберет. Возможно, ему будет проще самому нарисовать свой дешборд, а не использовать готовые платформы для этого.
  • https://t.me/clickhouse_ru
    @oorisch #261394 06:55 AM, 16 Mar 2022
    Добрый день
    Поискал, не нашел инфы. Кто-то сталкивался с какими-то проблемами из-за последних событий и санкций? У нас на днях будет выпуск продукта, вроде все нормально работает, но какое-то опасение есть
  • Чисто теоретически, пока есть интернет, всегда можно скачать последнюю версию и использовать её. Если интернета не будет, то останутся флешки :)
  • https://t.me/clickhouse_ru
    @oorisch #261396 06:58 AM, 16 Mar 2022
    Это понятно. Хорошо. Тогда еще такой вопрос - можно настроить CH не на яндекс диске без сильной потери производительности?
  • https://t.me/clickhouse_ru
    Скажем так, дураков я среди знакомых мне людей, которых можно к топам отнести, не видел. Пробовали посмотреть на вопрос с другой стороны? "Леха, а я вот так делаю, а получается вот так"?
  • Объясните мне, дураку, свой комментарий. Я не совсем его понял.
  • https://t.me/clickhouse_ru
    @1695040889 #261399 07:09 AM, 16 Mar 2022
    Ну, блин, кого первого спросят, если не получается что-то? Того, кто предложил.
  • Ох... Вас иногда очень сложно понять
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261396 #261401 07:12 AM, 16 Mar 2022
    можно, если есть свои сервера. Поскорее покупайте или арендуйте. Если аренда, то с годовым контрактом. И нанимайте админов и DBA, которые вам это будут поддерживать вместо облачных сотрудников яндекса.
  • https://t.me/clickhouse_ru
    Я не специально :(
  • @infisamk #261403 07:14 AM, 16 Mar 2022
    Кстати, насчет своих серверов и облака. Цены на облака сейчас уже не так разительно отличаются от цен на сервера.
  • https://t.me/clickhouse_ru
    @oorisch #261404 07:15 AM, 16 Mar 2022
    В какой-то момент бизнесу цена не так важна, как страховка рисков
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261403 #261405 07:15 AM, 16 Mar 2022
    так вопрос же не про цены. Конечно со своими админами и дба будет дороже
  • Просто сейчас можно уже и облаком пользоваться, а свои сервера только для резерва держать. Раньше облака по цене сильно проигрывали своему железу.
  • https://t.me/clickhouse_ru
    @1695040889 #261407 07:16 AM, 16 Mar 2022
    С учетом того, что вендоры даже оплаченную гарантию выполнять отказываются, вопрос открытый
  • если у кого будет такая же проблема, решил обновлением КХ (был 21.12, сейчас 22.2 - все ок)
  • https://t.me/clickhouse_ru
    Yandex DataLens
  • https://t.me/clickhouse_ru
    @tcandrei #261411 07:34 AM, 16 Mar 2022
    Привет, столкнулся со странным поведением. Подскажите пожалуйста как это работает?
    Есть Kafka таблица, которая читает JSON из кафки:
    CREATE TABLE IF NOT EXISTS queue ON CLUSTER '{cluster}'
    (
    eventTimestamp DateTime64,
    parameter_boolean Int8 DEFAULT toInt8(-1)
    ) ENGINE = Kafka
    SETTINGS
    kafka_broker_list = 'kafka_broker_list',
    kafka_topic_list = 'kafka_topic_list',
    kafka_group_name = 'kafka_group_name',
    kafka_format = 'JSONEachRow',
    kafka_skip_broken_messages = '0'

    Есть целевая таблица с событиями:
    CREATE TABLE IF NOT EXISTS events ON CLUSTER '{cluster}'
    (
    eventTimestamp DateTime64,
    parameter_boolean Int8 DEFAULT toInt8(-1)
    ) ENGINE = ReplicatedReplacingMergeTree('/clickhouse/tables/{cluster}/{shard}/{database}/{table}', '{replica}')
    PARTITION BY toYYYYMM(eventTimestamp)
    ORDER BY (Какой-то ордер)

    Есть MV, которое перекладывает эти сообщения:
    CREATE MATERIALIZED VIEW events_consumer TO events
    (
    eventTimestamp DateTime64,
    parameter_boolean Int8 DEFAULT toInt8(-1)
    ) AS SELECT * FROM events_queue

    В настройках включены опции:
    input_format_defaults_for_omitted_fields=1
    insert_null_as_default=1

    В чем проблема?
    Когда кликхаус подключается к кафке и начинает читать сообщения, то в сообщениях кафки, где отсутствует поле parameter_boolean для него не применяется выражение DEFAULT и проставляется 0 вместо -1.
    Это ожидаемое поведение? И если да, то как тогда проставлять правильно
    дефолты в отсутствующие поля?
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261411 #261412 08:00 AM, 16 Mar 2022
    зачем вы повторно описываете поля?
    CREATE MATERIALIZED VIEW events_consumer TO events
    (
    eventTimestamp DateTime64,
    parameter_boolean Int8 DEFAULT toInt8(-1)
    ) AS SELECT * FROM events_queue
    Там выше по чату была подобная ситуация, когда это ненужное описание приводило к странным последствиям.
  • https://t.me/clickhouse_ru
    Даже если в MATERIALIZED VIEW не описывать секцию DEFAULT, то секция DEFAULT не выполняется в KAFKA таблице.
    А можно ссылочку плиз на то обсуждение?)
  • https://t.me/clickhouse_ru
    @tcandrei #261414 08:04 AM, 16 Mar 2022
    А только нашел похожее обсуждение в англоязычном чатике с подобной проблемой https://t.me/clickhouse_en/32237 , но из него не понятно как эту проблемку решить. Пишут, что это возможно баг Kafka таблиц
    Slach [altinity] in ClickHouse

    looks little bit strange, maybe it bug of kafka engine could you try to use DEFAULT value inside MATERIALIZED VIEW which get data FROM your kafka table Kafka engine itself doesn't store data

  • https://t.me/clickhouse_ru
    да нет там ничего особенного. я тоже почему-то повторил описание таблиы-реципиента и у меня не работала интеграция с кафкой для Replicated таблиц. Борис выше всё, в принципе, написал уже
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261413 #261416 08:06 AM, 16 Mar 2022
    Dmitrii Apanasevich in ClickHouse не тормозит

    Привет! Подскажите пжл по интеграции с Kafka. Попробовал узнать на SO, но там пока без ответа https://stackoverflow.com/questions/71426336/clickhouse-kafka-engine-on-cluster Продублирую сюда: Запускаю кластер кх и кафку в докер-компоуз https://github.com/apanasevich/clickhouse-etl-cluster под Win10 Создаю реплицируемую таблицу, таблицу кафки и вью: CREATE TABLE tmp ON CLUSTER cluster ( `event_timestamp` DateTime64(3, 'Europe/Moscow'), `account_id` Int32, `session` String, `type` Int16 ) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/etl/tmp', '{replica}') PARTITION BY toMonday(event_timestamp) ORDER BY (account_id, event_timestamp) TTL toDateTime(event_timestamp) + toIntervalDay(90); CREATE TABLE tmp_kafka_datasource ( `topic_data` String ) ENGINE = Kafka SETTINGS kafka_broker_list = 'kafka:29092', kafka_topic_list = 'Tmp', kafka_group_name = 'clickhouse_etl_group', kafka_format = 'JSONAsString', kafka_num_consumers = 1; CREATE MATERIALIZED VIEW tmp_consumer TO tmp ( …

  • https://t.me/clickhouse_ru
    Спасибо я посмотрю)
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261413 #261418 08:10 AM, 16 Mar 2022
    если баг, то воркараундом я бы попробовал ставить правильный дефолт прямо в селекте.
    CREATE MATERIALIZED VIEW events_consumer TO events
    AS SELECT eventTimestamp, ifNull(parameter_boolean,-1,parameter_boolean) FROM events_queue,
    ну или вобще использовать формат LineAsString, разобрать JSON в селекте и сделать как надо. Вариантов масса.
  • https://t.me/clickhouse_ru
    @BMF_RU #261419 08:23 AM, 16 Mar 2022
    при использовании ODBC десятичный разделитель точка, можно поменять на запятую?
    Проблема при использовании ODBC в Excel...
  • https://t.me/clickhouse_ru
    Да, это хорошая идея) Спасибо за помощь. Хотелось обойтись выражениями с DEFAULT, казалось, что это должно быть проще)
  • https://t.me/clickhouse_ru
    @Ankalim #261422 08:32 AM, 16 Mar 2022
    ребят, кто то внедрял clickhouse-cpp?
  • https://t.me/clickhouse_ru
    @Ankalim #261423 08:33 AM, 16 Mar 2022
    на с++
  • @lexa_work #261426 09:11 AM, 16 Mar 2022
    Коллеги, кто-то в курсе, в RabbitMQ Engine параметр rabbitmq_address c какой версии появился и что может означать ошибка
    details: code: 36, message: There was an error on [chi-ch-infra-0-1:9000]: Code: 36. DB::Exception: Empty address passed to function parseAddress. (BAD_ARGUMENTS) (version 22.2.3.1)
    для
    rabbitmq_address = 'amqp://ch_reader:ch_reader@192.168.51.30/nvms'
  • https://t.me/clickhouse_ru
    @No1zzz ↶ Reply to #261426 #261427 09:13 AM, 16 Mar 2022
    Он наверное не может отрезолвить такое имя?
  • ip адрес?
  • https://t.me/clickhouse_ru
    @No1zzz ↶ Reply to #261428 #261429 09:14 AM, 16 Mar 2022
    chi-ch-infraчтототам
  • ага... сейчас подумаю про это...
  • @lexa_work #261431 09:16 AM, 16 Mar 2022
    нет вряд ли. На этом pod-e выполняется команда через exec и и команда то выполняется
  • https://t.me/clickhouse_ru
    @YanaTen #261433 09:17 AM, 16 Mar 2022
    Венчурный фонд MyVentures принимает заявки от стартапов на инвестирование 2022 года.
    Мы заинтересованы в технологичных проектах на стадиях pre-seed, seed, pre-round A, round A.

    Подавай заявку на сайте!
    Fortis fortuna adiuvat!

    Статья на vc.ru
    СМИ о нас
    На венчурном рынке СНГ появился новый крупный игрок — Промо на vc.ru

    Он инвестирует в ИТ-стартапы 20 млн долларов

  • @7699150 #261434 09:35 AM, 16 Mar 2022
    Ребят, после перезагрузки кликхауса оживает ddl_entry запрос на truncate table и зависает
    как его можно прибить?
  • https://t.me/clickhouse_ru
    Напишу сюда. Мало ли кому-то пригодится мой опыт.
    Итого: Я попробовал все варианты с секцией DEFAULT. В кафка таблице, в целевой, в MV. Вместе и по отдельности. Это не сработало. Как будто для Kafka таблиц эта секция не учитывается. Возможно по вот этой причине:
    Important part: MV never reads the source table (except for the populate stage). And the source table can have any Engine.
    Engine type does not matter. It can even be Engine Null or Kafka. They both don't store data themselves.
    Я воспользовался вокрараундом, который предложил Борис. Он показался мне для моей ситуации максимально простым. В Kafka таблице делаем нужное поле Nullable(parameter_boolean), а в Materialized View в секции SELECT делаем проверку на NULL и проставляем нужный дефолт ifNull(parameter_boolean, -1) as parameter_boolean. Done.
  • Доброго дня, изучаю сабж - "застрял" на подключении metabase (корпоративная BI, изменить не могу) с помощью clickhouse-driver к инстансу в yandex cloud (к self-hosted инстансам проблем нет, но хочется использовать saas). Драйвер не позволяет указывать дополнительные параметры подключения, такие как sslrootcert, а без этого не подключается. Кто уже имеет положительный опыт такого подключения (или есть ссылка)?
  • https://t.me/clickhouse_ru
    @webdizi #261439 12:32 PM, 16 Mar 2022
    Ребят, а как сделать ADD COLUMN в MaterializedView?
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #261439 #261440 12:33 PM, 16 Mar 2022
    1. Добавить колонку в целевую таблицу (куда MV переливает данные)
    2. Пересоздать MV, не забыв поменять запрос внутри неё
  • https://t.me/clickhouse_ru
    @webdizi #261441 12:33 PM, 16 Mar 2022
    Т.е. ALTER TABLE mv MODIFY QUERY сделать получилось, а колонку то как добавить?
  • https://t.me/clickhouse_ru
    Ну вы некропостер) 2.5 года прошло)
  • Ага, нашел близкий по теме пост поиском по чату :). Похоже воз и ныне там. Или нет? :)
  • https://t.me/clickhouse_ru
    Так а данные в MV у вас ?
  • https://t.me/clickhouse_ru
    нет в TO таблице
  • https://t.me/clickhouse_ru
    Ну тогда ALTER TABLE ADD COLUMN
  • https://t.me/clickhouse_ru
    Ну в саму таблицу я добавил колонку. Но когда делаешь: SHOW CREATE TABLE mv нет колонки
  • А в рамках "additional JDBC connection string" нет такой возможности? Правда, эти опции в метабазе у меня вообще пропали начиная где-то с 40й версии. Пытался здесь выяснить причины, но молчат.
  • @alexklklkl #261449 12:42 PM, 16 Mar 2022
    Нету additional... You're on version v0.42.2. Убрали похоже, говорят раньше было...
  • https://t.me/clickhouse_ru
    @kobzevvv #261450 02:42 PM, 16 Mar 2022
    подскажите, есть groupArray() а как сделать по аналогии map? то есть из пар элементов скомпоновать?
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261450 #261451 03:07 PM, 16 Mar 2022
    create table t1 (a UInt32, b Nullable(UInt32)) engine MergeTree order by a;
    insert into t1 select number, number+1 from numbers(20);
    select cast((groupArray(a),groupArray(b)),'Map(UInt32,UInt32)') from t1;
    {0:1,1:2,2:3,3:4,4:5,5:6,6:7,7:8,8:9,9:10,10:11,11:12,12:13,13:14,14:15,15:16,16:17,17:18,18:19,19:20}
  • https://t.me/clickhouse_ru
    а порядок нормально будет соблюдатся? не перепутаются пары?
  • https://t.me/clickhouse_ru
    @kobzevvv #261453 03:08 PM, 16 Mar 2022
    ну щас попробуем да, я переживал что такой способ при группировке будет путать пары
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261452 #261454 03:09 PM, 16 Mar 2022
    с чего бы это? тут все прямолинейно и логично. Никаких паралельных выполнений с перепутываниями при окончательных мерджах.
  • Пока нашел решение "через задний проход" - поднял nginx, который тупо

    "proxy_pass https://<clickhouse на yandex cloud>:8443" с
    "proxy_ssl_trusted_certificate /usr/local/share/ca-certificates/Yandex/YandexInternalRootCA.crt;".

    Вдруг есть решение лучше, буду благодарен за подсказку.
  • https://t.me/clickhouse_ru
    @akislyuk #261458 04:40 PM, 16 Mar 2022
    Всем привет, подскажите плиз, а где можно размеры вторичных индексов таблиц посмотреть?
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261458 #261459 05:05 PM, 16 Mar 2022
    в system.parts есть колонки про secondary_indices*
  • https://t.me/clickhouse_ru
    system.data_skipping_indices
  • https://t.me/clickhouse_ru
    @akislyuk #261462 06:37 PM, 16 Mar 2022
    спасибо
  • https://t.me/clickhouse_ru
    @BLACKtoBACK #261466 11:15 PM, 16 Mar 2022
    Коллеги, доброе время суток
    Знаю, что в clickhouse нет оконных функций.
    Но мб кто то пробовал пронумеровать строки в запросе мб, кто знает какой костыль???
  • https://t.me/clickhouse_ru
    Есть уже оконные функции, обновитесь на современную версию
  • https://t.me/clickhouse_ru
    row_number работает?))))
  • https://t.me/clickhouse_ru
    д
  • https://t.me/clickhouse_ru
    Спасибо, буду завтра спрашивать своих админов)))
  • 17 March 2022 (137 messages)
  • https://t.me/clickhouse_ru
    @kobzevvv #261471 01:53 AM, 17 Mar 2022
    с массивами работает arrayConcat, а вот для map() ничего такого нету да?
  • https://t.me/clickhouse_ru
    а что за map() ?
  • https://t.me/clickhouse_ru
    тип данных кликхауса очен удобный https://clickhouse.com/docs/en/sql-reference/functions/tuple-map-functions/#function-mapadd
    Working with maps | ClickHouse Documentation

    Functions for maps map Arranges key:value pairs into Map(key, value) data type. Syntax map(key1, value1[, key2, value2,

  • https://t.me/clickhouse_ru
    @1695040889 #261475 05:38 AM, 17 Mar 2022
    здорово на KV похоже
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261471 #261476 05:40 AM, 17 Mar 2022
    а в чем вопрос? Чем вам mapAdd не угодил?
  • https://t.me/clickhouse_ru
    mapAdd не добавляет элементы а суммирует. это арифметическая операция.

    аналога arrayConcat нету :(
  • https://t.me/clickhouse_ru
    @kobzevvv #261478 05:42 AM, 17 Mar 2022
    ну да, по сути разработчики натупили неправильно назвали функцю mapAdd нужно было назвать mapSum или как-то еще но не add
  • https://t.me/clickhouse_ru
    @bvt123 #261479 05:42 AM, 17 Mar 2022
    а как? Что делать со значениями у которых одинаковый ключ?
  • https://t.me/clickhouse_ru
    ну миллион решений. можно assume_that_everything_is_ok, можно ошибку обрабатывать.

    ну и когда ты мапу из массивов собираешь такая же проблема может быть и то есть это не новая ситуация. можно просто повторить поведение какое было там
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261480 #261481 05:46 AM, 17 Mar 2022
    если миллион, то попробуйте применить комбинатор -Map. Например groupArrayMap или maxMap или avgMap
  • https://t.me/clickhouse_ru
    у меня задача две мапы сцепить в одну. я попробовал комбинаторы и чето не решилось :(
  • https://t.me/clickhouse_ru
    @bvt123 #261483 05:48 AM, 17 Mar 2022
    что такое "сцепить"? Какой тип у value? Строковый?
  • https://t.me/clickhouse_ru
    @1695040889 #261484 05:48 AM, 17 Mar 2022
    есть что-то вроде toTypeOf, может там типы разные?
  • @serlex777 #261486 06:54 AM, 17 Mar 2022
    Подскажите, матвью в дистрибутивную таблицу на двух репликах будет дублировать данные?
  • https://t.me/clickhouse_ru
    ключ строка, значение datetime. ну из мапы в 3 значений и друго в 2 значения сделать одну в 5 значений
  • 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
    @1695040889 #261492 07:09 AM, 17 Mar 2022
    без вида исходных данных - никакую
  • вот к сожалениею с дистрибутивной таблицей это похоже не так. Если таблица с двумя репликами, на каждой реплике матвью со вставкой в дистрибутивную таблицу. Туда куда идет вставка, данные задублированы.
  • https://t.me/clickhouse_ru
    Убедитесь, что кластер верно создан
  • https://t.me/clickhouse_ru
    @BMF_RU #261495 07:18 AM, 17 Mar 2022
    как изменить десятичный разделитель, locale поменял, все равно возвращает с точкой результат
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261487 #261496 07:20 AM, 17 Mar 2022
    в мапах ключи не могут повторяться. вот вы берете {a:1,b:2} + {a:11,c:13,d:14} что должно получиться в результате? 5 пар точно не не будет. Будет 4. Какое значение будет у ключа a?
    Вам нужна какая-та аггрегирующая функция. Для чисел это относительно просто - sum/max/avg. Для дат сложнее, хотя если вас устроит max/min, то можно.
  • https://t.me/clickhouse_ru
    ну это нелогично. ведь вот такая штука работает:

    cast((groupArray(10)(run_state_message_type),
    groupArray(10)(sla_event_log_publish_time)),
    'Map(String,Datetime)'
    )
  • https://t.me/clickhouse_ru
    @kobzevvv #261498 07:23 AM, 17 Mar 2022
    выглядит как просто или забыли добавить функцию в документацию или из-за путаницы имен забыли что такаф функция нужна. так как была с похожим названием mapAdd
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261497 #261499 07:23 AM, 17 Mar 2022
    как работает? попробуйте дать в первом массиве повторяющиеся ключи - посмотрите что получится.
  • https://t.me/clickhouse_ru
    а зачем её ломать? она работает же. по аналогии с assumeNotNull

    ровно так же можно и две мапы контатинировать. полагаясь на пользователя
  • https://t.me/clickhouse_ru
    @Humboldt155 #261502 07:27 AM, 17 Mar 2022
    Всем бодрейшего!
    Есть задача запрятать креды соединения с базой postgres в конфиг-файл, используя named_collections (пробовал двумя способами, как на скриншоте). Сервер кликхауса перезапускал после этого. При этом, при попытке подключиться к этому соединению, например, engine = PostgreSQL('pg_conn'), всегда получаю ошибку
    Storage PostgreSQL requires from 5 to 6 parameters: PostgreSQL('host:port', 'database', 'table', 'username', 'password' [, 'schema'] (version 21.8.12.29 (official build))
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261502 #261504 07:32 AM, 17 Mar 2022
    21.8 - статовата для этого.
    https://github.com/ClickHouse/ClickHouse/pull/28577
    конец сентября, наверное 21.10 должна быть
  • https://t.me/clickhouse_ru
    @Krisantis #261505 07:33 AM, 17 Mar 2022
    Приветствую всех,
    подскажите как развернуть массив туплей в колонки?
    WITH [('col_1', 1),('col_2', 2),('col_3', 3)] as arr
    SELECT ...
    чтобы получилось что-то такое ↑
  • Он запрашивает 6 обязательных параметра. У вас в конфиге 5 параметров да ещё вопрос к формату host:port
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261505 #261508 07:37 AM, 17 Mar 2022
    WITH [('col_1', 1),('col_2', 2),('col_3', 3)] as arr
    SELECT untuple(arrayJoin(arr));
    (спасибо за правильно поставленный вопрос с исходными данными)
  • https://t.me/clickhouse_ru
    а он их в строки ведь разворачивает, а мне нужно в столбцы
  • https://t.me/clickhouse_ru
    Ну он вроде как просит от 5 до 6 параметров. Вероятно, действительно, версия старовата
  • https://t.me/clickhouse_ru
    @svobodsky #261511 07:41 AM, 17 Mar 2022
    Добрый день. Есть вопрос по materialized view.
    1. Есть базовая таблица stat_event, куда довольно нагруженно пишутся события (~20 млн/день).
    2. Довольно часто требуется анализ этих событий за большой период в разрезе сессий.
    3. Для сбора информации по сессии требуется группировка некоторого количества строк, в том числе есть события, по которым требуется не min/max/count, а конкретные значения (access_token)
    3. Написанный запрос выбирает корректные данные, но упирается в память на больших объёмах
    4. Для анализа сессий было создано MV с группировкой сессионных данных на основе того же запроса.
    5. MV отображает корректные данные при вставке в тестовую таблицу значительного количества строк при помощи INSERT SELECT из "боевой" таблицы в консоли (TCP-соединение).
    6. MV отображало некорректные данные при вставке в тестовую таблицу значительного количества строк при помощи INSERT SELECT из "боевой" таблицы в IDE (http соединение). После обновления сервера воспроизвести не получается.
    7. Переписали боевое использование под TCP-соединение.
    8. В настоящий момент MV всё равно отображает некорректные данные при реальном использовании:
    - не все события учитываются в MV (видно по значению поля event_count)
    - периодически появляется несколько строк с одним PK и всё равно суммарно меньшим, чем должно быть значением event_count.

    Подозреваю, что проблема не в CH, а просто я создаю MV с неправильными параметрами или, возможно, неправильно понимаю что-то ещё. Что поправить, чтобы избежать этой ошибки? Ссылки приветствуются.
    Спасибо!
    CREATE MATERIALIZED VIEW metrics_v3.stat_event_sessionENGINE = AggregatingMerg - Pastebin.com

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

  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261509 #261512 07:43 AM, 17 Mar 2022
    столбцы - это как переменные в компилируемом языке. Тут вам не питон, а что-то типа C++, поэтому динамического порождения столбцов из данных не получится сделать.
  • https://t.me/clickhouse_ru
    т.е. чего-то обратного к tupleToNameValuePairs не существует?)
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261511 #261514 07:53 AM, 17 Mar 2022
    MV не работает с данными из таблицы. Указанный вами запрос получает только один блок данных, который вставляется в таблицу прямо сейчас.
    Вам нужно пройтись по архиву чата и найти бесчисленные ссылки на статью Денни и видео от Миловидова про работу MV.
  • https://t.me/clickhouse_ru
    @Kha_And #261515 07:56 AM, 17 Mar 2022
    Привет, подскажите, пожалуйста, как можно залить json/csv из s3 построчно в clickhouse (в одни столбец), есть ли варианты использования SQL? вся развернуто в я облаке
  • https://t.me/clickhouse_ru
    Миловидова смотрел, но видимо, не всё, буду искать, спасибо. А Дэнни - это Denis Zhuravlev?
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261516 #261517 07:58 AM, 17 Mar 2022
    Denny Crane [Starship Captain at Altinity (NB,Canada)] in ClickHouse не тормозит

    https://youtu.be/1LVJ_WcLgF8?list=PLO3lfQbpDVI-hyw4MyqxEk3rDHw95SzxJ&t=7597 https://den-crane.github.io/Everything_you_should_know_about_materialized_views_commented.pdf потому что mat view это не то что вы думаете

  • https://t.me/clickhouse_ru
    Да, ее и нашёл, еще раз спасибо, буду разбираться...
  • среди его обязательных параметро есть например table. А у вас она не определена. И еще раз он вот хочет параметр вида host:port. Возможно он задается не отдельными host и port, а как host_port (видел такое например для RabbitMQ engine)
  • https://t.me/clickhouse_ru
    Я просто здесь не указал, я пробовал указывать table, schema и другие параметры. Попробую указать host:port, спасибо!
  • вы добивались работы когда все указывали в DDL без использования named_collection?
    Я например в named_collection вынес только username/password остальное оставил в DDL - т.к. это гибче для меня было
  • https://t.me/clickhouse_ru
    Да, без named_collection все работает, если просто креды засунуть в DDL. Думаю, дело действительно в версии Ch, подожду пока девопсы обновят, перепроверю
  • так попробуйте повторить, только убрав один креды в named_collection. Все остальное в DDL
  • @lexa_work #261524 08:07 AM, 17 Mar 2022
    судя по тексту ошибки всеж похоже поддержа named_collection есть уже, хотя не исключена какая-то бага конечно
  • https://t.me/clickhouse_ru
    Хорошо, попробую поднять локально CH и потестировать, спасибо
  • https://t.me/clickhouse_ru
    @DKolesova #261527 08:42 AM, 17 Mar 2022
    Всем привет!)
    Есть задача - динамически создавать таблицы в ClickHouse из JSONString, с условием, что в JSONString будет лежать схема.
    Что-то не могу найти примеры, как можно в ClickHouse выполнить запрос с динамическими параметрами (а-ля EXECUTE query в постгре, где query это какая-то стринга-команда с динамическими параметрами).
    То есть план был такой:
    1. Прилетает JSONString в таблицу в ClickHouse
    2. Юзерская функция смотрит на строку, выбирает оттуда часть со схемой, преобразует в DDL, сравнивает есть таблица или нет, сравнивает изменился DDL или нет
    3. Парсит часть с данными в той же JSONString строке и вставляет в таблицу из п.2

    Понимаю, что это может быть не самый оптимальный вариант, цель именно протестировать и сравнивать скорости.
  • https://t.me/clickhouse_ru
    @brbrbr #261529 09:02 AM, 17 Mar 2022
    Подскажите, пожалуйста, а какой пул используется для удаления старых партов по TTL? Какую настройку количества тредов подкручивать, если растёт количество просроченных партов?
  • https://t.me/clickhouse_ru
    @nbykovskij #261531 09:05 AM, 17 Mar 2022
    Всем привет!

    Есть задача настроить стриминг событий из ga в клик, был бы благодарен если подскажете в какую сторону рыть, а то по прямым запросам выдает в основном платные сервисы 🙂
  • https://t.me/clickhouse_ru
    @zhiraslan_shedzhem #261533 09:19 AM, 17 Mar 2022
    Привет!
    Подскажите, пожалуйста, почему даты-время по по разным часовым поясам совпадают?
    Это же бред...
  • возможно ваш клиент принудительно переводит все
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #261533 #261535 09:26 AM, 17 Mar 2022
    А если выполнить этот же запрос в родном клиенте? Могут быть настройки клиента, согласно которым он приводит все даты к местному часовому поясу.

    Вот пример, у меня нормально работает:
    select
    toDateTime('2001-02-03 04:05:06', 'Asia/Yakutsk') as ts0
    , toDateTime(ts0, 'Europe/Moscow') as ts1
    , toDateTime(ts0, 'UTC') as ts2
    ;
  • https://t.me/clickhouse_ru
    @zhiraslan_shedzhem #261536 09:28 AM, 17 Mar 2022
    А как тогда объяснить этот вывод?
    Здесь проблема в том, что my_date оказывается больше, чем second
  • https://t.me/clickhouse_ru
    @zhiraslan_shedzhem #261537 09:31 AM, 17 Mar 2022
    Я здесь сам привожу все даты к местному, почему тогда сравнение происходит неправильно?
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #261536 #261538 09:38 AM, 17 Mar 2022
    Мне кажется, у вас тут чётное количество проблем. :)

    1. Клиент у вас отображает Date как DateTime, причём ставит странное время (24:00 - это 00:00 следующего дня? если так, то это некорректно, ибо toDateTime(toDate(now())) - это 2022.03.17 00:00:00)
    2. Клиент у вас скорее всего принудительно приводит DateTime к какой-то своей таймзоне, поэтому проверять сравнение на основе _отображаемой_ в клиенте даты - неправильно.

    Я бы посоветовал повторить сравнения, выводя дату, приведённую через toInt32() к числу. А ещё лучше - через родной clickhouse-client (или через стандартный веб-клиент КХ).
    Как вариант можете проверить вызывающие у вас вопросы сравнения и тестовые примеры (например тот, что я выше кидал) у себя, а потом на открытом веб-клиенте тестового сервера КХ https://play.clickhouse.com/
  • https://t.me/clickhouse_ru
    @zhiraslan_shedzhem #261540 09:41 AM, 17 Mar 2022
    1 - 24:00 то же, что и 00:00 (например, 17 марта 24:00 это 00:00 17 марта);
    2 - да, действительно, приводит в UTC
  • https://t.me/clickhouse_ru
    Я попробую переводить даты в числа, спасибо!
  • https://t.me/clickhouse_ru
    Что такое ga
  • https://t.me/clickhouse_ru
    @dev0urer #261543 09:57 AM, 17 Mar 2022
    Google Analytics, наверное.
  • https://t.me/clickhouse_ru
    @nbykovskij #261544 10:00 AM, 17 Mar 2022
    да, google analytics 4
  • https://t.me/clickhouse_ru
    @StadnikD #261545 10:09 AM, 17 Mar 2022
    можно ли в функцию кликхауса toDatetime() вставить таймзону, которая хранится в другом столбце?
  • https://t.me/clickhouse_ru
    @StadnikD #261546 10:09 AM, 17 Mar 2022
    или только константа?
  • А это не последние версии метабэйза случайно?
    Последний драйвер клика некорректно работает с таймзонами. Есть issue.
    Clickhouse timezone query is not effective · Issue #81 · enqueue/metabase-clickhouse-driver

    metabase version: 0.41.2 metabase clickhouse driver version: 0.8.0 metabase REPORT TIMEZONE set Asia/Shanghai using clickhouse CLI query is normal

  • https://t.me/clickhouse_ru
    @ActionNum #261548 10:20 AM, 17 Mar 2022
    Всем привет. Подскажите пожалуйста при переносе одной партиции через clickhouse-copier количество данных отличается в большую сторону, как такое возможно? К примеру: перенес партицию за 2022-02-01 в новый кластер, делаю запрос:
    SELECT date, sum(count) from develop.TrackersAggregated where date='2022-02-01' group by date order by date desc;
    Получаю
    543452167 - в новом
    497858799 - в старом

    Не понимаю как такое может произоти. В новом кластере более свежая версия CH (22001003) в старом 20012008
  • https://t.me/clickhouse_ru
    @mgavrikov #261549 10:25 AM, 17 Mar 2022
    всем привет подскажите пожалуйста как правильно менять формат хранения данных?

    есть таблица, в ней много колонок, подобрал более оптимальный способ хранить данные (поправил сжатие)

    могу ли я в существующей таблице сделать просто ALTER TABLE и указать новый тип сжатия? при этом запросы к таблице все будут работать как надо? и со временем все данные переедут на новый тип сжатия? или надо заведомо делать две копии данных и полностью переливать?
    можно ли делать постепенно? перелить одну партицию в новый формат а потом сделать exchange partition?
  • https://t.me/clickhouse_ru
    Один шард две реплики. Вроде все корректно
  • https://t.me/clickhouse_ru
    если просто сжатие поменять, то можно. новое сжатие будет применяться только к новым данным. пережатие старых надо отдельно запускать
  • https://t.me/clickhouse_ru
    4 ноды на одном шарде, и при этом две реплики?
  • https://t.me/clickhouse_ru
    ну и новым мержам ес-но
  • https://t.me/clickhouse_ru
    у нас два кластера и в каждом по одному шарду с двумя репликами
  • https://t.me/clickhouse_ru
    а exchange partition будет тоже корректно работать? если отличия между таблицами только в сжатие?
  • https://t.me/clickhouse_ru
    А инстансов клика 2 или 4?
  • https://t.me/clickhouse_ru
    @enclaved #261558 10:53 AM, 17 Mar 2022
    при вставке Decimal из текстовой формы как проще всего отбросить дальние деления после запятой? toDecimal32OrZero(4) парсит 1.0001, но не парсит 1.0001111
  • https://t.me/clickhouse_ru
    @daniel_byta #261559 11:20 AM, 17 Mar 2022
    Добрый день, подскажите, пожалуйста, что делать, когда при селект запросе выскакивает ошибка Response entity too large?
  • https://t.me/clickhouse_ru
    Это что же там за такой огромный запрос?
  • https://t.me/clickhouse_ru
    @Alexey_037 #261562 11:39 AM, 17 Mar 2022
    Ошибка HTTP 413 (Request Entity Too Large Error) означает, что клиент отправил слишком большой запрос на сервер. В Nginx максимальный размер запроса регулируется параметром client_max_body_size. Не ваш случай?
  • https://t.me/clickhouse_ru
    @700793887 #261563 11:40 AM, 17 Mar 2022
    не нашел, но вдруг кто нить знает, можно ли с одного сервера, на другой аттачить, без копирования данных? типа Attach FROM Remote()?
  • Не "Request", а 'Response". То есть ответ не может быть обработан.
  • https://t.me/clickhouse_ru
    @sibbarb #261566 12:20 PM, 17 Mar 2022
    Всем привет
    нашёл аналог group_concat в кликхаусе groupArray() , но он выдает список , а как мне получить строку ????
  • https://t.me/clickhouse_ru
    @ilia_vo #261567 12:26 PM, 17 Mar 2022
    arrayStringConcat
  • https://t.me/clickhouse_ru
    что-то около 500к строк в ответе
  • Я так понимаю, клиент, которым Вы пользуетесь, просто не может получить такой большой ответ и его обработать. Тогда либо найти клиента, который сможет, либо разбить результат на части с помощью LIMIT.
  • https://t.me/clickhouse_ru
    не то , у меня выходит ['aa,'aab'] а надо ('aa,'aab') ошибся нужна не строка , а тупл(кортеж)
  • https://t.me/clickhouse_ru
    тупл -- это типизированный объект, известный до момента выполнения запроса
    поэтому либо (arr[1], arr[2],. ..., arr[N]) либо никак не преобразовать массив в тупл
  • https://t.me/clickhouse_ru
    @sibbarb #261572 12:43 PM, 17 Mar 2022
    да шо за приколы , вы хотите скзать в кликхаусе нельзя из вот этого
    id name
    1 a
    1 b
    получить это
    id name
    1 ('a','b')
  • https://t.me/clickhouse_ru
    А почему хочется это делать прямо на уровне кликхауса? Мб лучше отдельный какой-нибудь сервис для такого запилить, который будет читать сообщеньки из очереди со схемами, парсить в DDL, и выполнять в Clickhouse уже готовые query?
  • https://t.me/clickhouse_ru
    Вот как раз хотела сравнить разницу в скорости парсинга и разложения по таблицам:
    КХ
    Флинк
    Спарк
  • https://t.me/clickhouse_ru
    Вам необходимо будет писать скрипт, не припоминаю возможности динамического создания таблиц в КХ.
  • https://t.me/clickhouse_ru
    Я не уверен, что в клике есть что-то типа eval или EXECUTE :) Но проверить как быстро парсятся JSON'ки вполне можно при помощи функций для JSON. https://clickhouse.com/docs/en/sql-reference/functions/json-functions/
    JSON | ClickHouse Documentation

    Functions for Working with JSON ClickHouse has special functions for working with this JSON. The visitParam functions ma

  • https://t.me/clickhouse_ru
    Как вариант, вы можете с помощью clickhouse-local вначале посмотреть структуру JSON, разложенную в таблицу, и уже смотреть оттуда, но структура вашего JSON неизвестна
  • https://t.me/clickhouse_ru
    Вот и я не нашла)
    Видела возможность написать на питоне функцию и ее использовать, но вот это уж мне точно кажется медленнее спарка или флинка)
  • https://t.me/clickhouse_ru
    Парсить - да)))
    Я хотела create/alter table ещё динамически писать))
  • https://t.me/clickhouse_ru
    Ну, ClickHouse это не подобие, а уж тем паче и не альтернатива спарка или флинка, это разные инструменты, если мне опять же не изменяет моя память.
  • https://t.me/clickhouse_ru
    @critskiy #261581 01:12 PM, 17 Mar 2022
    ClickHouse это все-таки OLAP DBMS в первую очередь
  • https://t.me/clickhouse_ru
    @Hero_of_Comix #261582 01:13 PM, 17 Mar 2022
    Всем привет! Может кто-то подскажет, пожалуйста, есть CH сервер версии 21.4.6.55 в котором нормально создается бд с engine postgresql
    CREATE DATABASE b2b ENGINE = PostgreSQL('10.10.17.2:6432', 'b2b', 'login', 'password', 1)
    но на версии сервера 21.10.2.15 выдает ошибку (собственно такую ошибку словил при обновлении на эту версию) вот что в логах:

    2022.03.17 15:57:50.538248 [ 2485308 ] {616fbfcc-dc7d-4bfc-9379-10661b8c7967} <Error> TCPHandler: Code: 170. DB::Exception: Bad get: has UInt64, requested String. (BAD_GET), Stack trace (when copying th
    is 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) @ 0x944bdda in /usr/bin/clickhouse
    1. auto& DB::Field::safeGet<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >() @ 0x95458f6 in /usr/bin/clickhouse
    2. ? @ 0x109e293c in /usr/bin/clickhouse
    3. DB::DatabaseFactory::getImpl(DB::ASTCreateQuery const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::shared_ptr<DB::Context const>) @ 0x109e
    1529 in /usr/bin/clickhouse
    4. DB::DatabaseFactory::get(DB::ASTCreateQuery const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::shared_ptr<DB::Context const>) @ 0x109df118
    in /usr/bin/clickhouse
    5. DB::InterpreterCreateQuery::createDatabase(DB::ASTCreateQuery&) @ 0x109c60f9 in /usr/bin/clickhouse
    6. DB::InterpreterCreateQuery::execute() @ 0x109da46c in /usr/bin/clickhouse
    7. ? @ 0x110732e1 in /usr/bin/clickhouse
    8. DB::executeQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::shared_ptr<DB::Context>, bool, DB::QueryProcessingStage::Enum, bool) @ 0x11071
    1a3 in /usr/bin/clickhouse
    9. DB::TCPHandler::runImpl() @ 0x1195ea24 in /usr/bin/clickhouse
    10. DB::TCPHandler::run() @ 0x11971b19 in /usr/bin/clickhouse
    11. Poco::Net::TCPServerConnection::start() @ 0x1453bf2f in /usr/bin/clickhouse
    12. Poco::Net::TCPServerDispatcher::run() @ 0x1453d9ba in /usr/bin/clickhouse
    13. Poco::PooledThread::run() @ 0x1466fdf9 in /usr/bin/clickhouse
    14. Poco::ThreadImpl::runnableEntry(void*) @ 0x1466c08a in /usr/bin/clickhouse
    15. start_thread @ 0x817a in /usr/lib64/libpthread-2.28.so
    16. __clone @ 0xfcdc3 in /usr/lib64/libc-2.28.so
    может кто-то подскажет, пожалуйста, что с этим можно сделать или куда копать?
  • https://t.me/clickhouse_ru
    Можно на чем угодно написать так-то. Гошка, плюсы. На мой взгляд для такой задачи будет больше контроля и легче всякие ошибочки будет отлавливать в собственном коде, а не в бд искать в логах что не так
  • https://t.me/clickhouse_ru
    +
  • https://t.me/clickhouse_ru
    Поддерживаю, хотела у общества уточнить тоже))
    Спасибо)
  • https://t.me/clickhouse_ru
    PARTITION | ClickHouse Documentation

    Manipulating Partitions and Parts The following operations with partitions are available: DETACH PARTITION — Moves a par

  • https://t.me/clickhouse_ru
    обновитесь еще, может уже починено
  • https://t.me/clickhouse_ru
    попробовал сейчас с версией 22.2.2, тоже самое(
    2022.03.17 16:39:28.016678 [ 2576399 ] {6d63377f-22fc-4f9b-bb0b-a505bbdf46a7} <Error> executeQuery: Code: 170. DB::Exception: Bad get: has UInt64, requested String. (BAD_GET) (version 22.2.2.1) (from 12
    7.0.0.1:61682) (in query: CREATE DATABASE b2b ENGINE = PostgreSQL('10.10.17.2:6432', 'b2b', 'login', 'password', 1)), 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) @ 0xaebed1a in /usr/bin/clickhouse
    1. DB::Exception::Exception<std::__1::basic_string_view<char, std::__1::char_traits<char> >, DB::Field::Types::Which const&>(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allo
    cator<char> > const&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&&, DB::Field::Types::Which const&) @ 0xafdf5a0 in /usr/bin/clickhouse
    2. auto& DB::Field::safeGet<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >() @ 0xba85663 in /usr/bin/clickhouse
    3. ? @ 0x14bcd930 in /usr/bin/clickhouse
    4. DB::DatabaseFactory::getImpl(DB::ASTCreateQuery const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::shared_ptr<DB::Context const>) @ 0x14bc
    b7eb in /usr/bin/clickhouse
    5. DB::DatabaseFactory::get(DB::ASTCreateQuery const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::shared_ptr<DB::Context const>) @ 0x14bc8f47
    in /usr/bin/clickhouse
    6. DB::InterpreterCreateQuery::createDatabase(DB::ASTCreateQuery&) @ 0x14bb0237 in /usr/bin/clickhouse
    7. DB::InterpreterCreateQuery::execute() @ 0x14bc5e1b in /usr/bin/clickhouse
    8. ? @ 0x14ee8a79 in /usr/bin/clickhouse
    9. DB::executeQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::shared_ptr<DB::Context>, bool, DB::QueryProcessingStage::Enum) @ 0x14ee65f5 in
    /usr/bin/clickhouse
    10. DB::TCPHandler::runImpl() @ 0x159ef43a in /usr/bin/clickhouse
    11. DB::TCPHandler::run() @ 0x15a03419 in /usr/bin/clickhouse
    12. Poco::Net::TCPServerConnection::start() @ 0x18667a0f in /usr/bin/clickhouse
    13. Poco::Net::TCPServerDispatcher::run() @ 0x18669e61 in /usr/bin/clickhouse
    14. Poco::PooledThread::run() @ 0x1881a549 in /usr/bin/clickhouse
    15. Poco::ThreadImpl::runnableEntry(void*) @ 0x18817c40 in /usr/bin/clickhouse
    16. start_thread @ 0x817a in /usr/lib64/libpthread-2.28.so
    17. __clone @ 0xfcdc3 in /usr/lib64/libc-2.28.so
  • https://t.me/clickhouse_ru
    @nbeletsky #261590 02:24 PM, 17 Mar 2022
    https://thehackernews.com/2022/03/multiple-flaws-uncovered-in-clickhouse.html
    А подскажите, в последнем LTS эти уязвимости исправлены? Который 21.3.20.1?
  • https://t.me/clickhouse_ru
    насколько мне не изменяет, уязвимость не было в версии точно в 21.10
  • https://t.me/clickhouse_ru
    @critskiy #261592 02:26 PM, 17 Mar 2022
    и сами jfrog советуют в своей статье обновиться до версии 21.10: https://jfrog.com/blog/7-rce-and-dos-vulnerabilities-found-in-clickhouse-dbms/
    Security Vulnerabilities Found in ClickHouse Open-Source Software

    JFrog’s Security Research team discovered 7 vulnerabilities in the ClickHouse database management software. Learn about the issues and how to mitigate the risks.

  • https://t.me/clickhouse_ru
    @critskiy #261593 02:27 PM, 17 Mar 2022
    предлагаю также проверить вам смотрят ли порты 9000 и 8123 наружу в случае, если апгрейд будет невозможен
  • https://t.me/clickhouse_ru
    @nbeletsky #261594 02:29 PM, 17 Mar 2022
    У нас не смотрят наружу, но у нас Clickhouse часть нашего продукта. Окей, спасибо, тогда будем думать и смотреть. Правда детали уязвимостей как я понимаю пока не раскрыты
  • https://t.me/clickhouse_ru
    @nbeletsky #261595 02:29 PM, 17 Mar 2022
    А нет вижу, в вашей статье раскрыты. Спасибо
  • https://t.me/clickhouse_ru
    @mib32 #261597 03:27 PM, 17 Mar 2022
    Как работает движок postgres? В какой момент образуется соединение к постгре, в момент запроса к таблице? Или оно создаётся параллельно с соединением к клику и всегда держится открытым?
  • https://t.me/clickhouse_ru
    @brbrbr #261598 03:34 PM, 17 Mar 2022
    Запустил пачку запросов drop table/create table с директивой on cluster - все упали по таймауту. В system.distributed_ddl_queue они висят со статусом Inactive. Таблицы новые, никем не используются.

    Как интерпретировать статус Inactive и почему вообще так может быть?
  • https://t.me/clickhouse_ru
    д
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @gmaslovg #261602 03:36 PM, 17 Mar 2022
    Всем привет.
    version 21.8.13.1.altinitystable (altinity build).
    Пишу данные по http в кх из сжатого файла:

    curl -T "файл.gz" -X POST "хост_прокси:порт/?query=insert+into+база+.+таблица+format+TabSeparated" -H 'Content-Encoding: gzip' -H 'X-ClickHouse-User: юзер' -H 'X-ClickHouse-Key: пароль'

    Команда в консоли спустя нек-е время падает на curl: (55) Send failure: Connection reset by peer.
    Ошибка в кх (из query_log): Code: 354, e.displayText() = DB::Exception: inflateReset failed: buffer error

    Тот же самый curl при указании хоста самого кликхауса а не прокси отрабатывает успешно.
    В качетсве прокси используется chproxy.
    Кто-то встречал? Какой воркараунд?
  • Увеличить таймаут в chproxy пробовали?
  • https://t.me/clickhouse_ru
    Нет ещё, передам инфу
  • https://t.me/clickhouse_ru
    Ещё раз спасибо! Очень помогло понять, в какую сторону думать и что искать. До нужного "прямща" уровня разобрался, лишний раз убедился, насколько интересный продукт!
  • @n317fe8129y #261607 03:53 PM, 17 Mar 2022
    Добрый день,

    Выбираем для хранения детального слоя (3NF) движок, остановились на Greenplum и ClickHouse.
    Количество данных ~ 15TB.

    Что можете посоветовать со своей стороны?
  • https://t.me/clickhouse_ru
    @ilejn #261608 03:56 PM, 17 Mar 2022
    "3NF" - это третья нормальная форма?
    Если да, то разумно предположить обилие джойнов в запросах, с чем GP справляется лучше, чем CH.
  • https://t.me/clickhouse_ru
    Пока нет возможности увеличить но сообщают что текущие настройки такие

    read_timeout: 5m
    idle_timeout: 20m
    write_timeout: 60m

    Есть смысл пробовать с увеличенными read_timeout и idle_timeout?
  • а вы замеряли через сколько запрос отваливается? я бы сначала посмотрел на это время для пониманимая, ещё смотрел бы на эту настройку - max_execution_time, задана у вас или нет
  • https://t.me/clickhouse_ru
    Я правильно понимаю что в обычном кликхаусе тоже есть это исправление не только в вашем дистрибутиве?
  • https://t.me/clickhouse_ru
    д
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Там определенно есть куда расти ещё.
  • @softbot_xxl #261615 04:57 PM, 17 Mar 2022
    Что с ним сейчас не (до конца) так?
  • https://t.me/clickhouse_ru
    Например никак не доделаем отдельный пакет, перфоманс можно ещё улучшать и улучшать. Возможно добавим какие-то более интересные команды чем в ZK. А так
    зависит от ваших целей. Если вы планируете поверх него какую-то высконагруженную систему построить, где вы постоянно будете добавлять и убирать ноды кипера, то там всё не до конца проверенно. Если вы его планируете как замену зукипера использовать, то всё в порядке.
  • Понятно, спасибо, пусть тогда еще у кого-нибудь еще поработает 🙂
  • https://t.me/clickhouse_ru
    Имхо запускать keeper внутри процесса кх щас смысла мало, тк рестарт сервера для настроек в случае если это лидер приведет к потере кворума.
  • https://t.me/clickhouse_ru
    @Alesapin #261619 05:04 PM, 17 Mar 2022
    Ну и за последний месяц я такое количество мисконфигураций видел, что уже устал sanity-check'и добавлять.
  • https://t.me/clickhouse_ru
    ну переизберётся, что такого)
  • https://t.me/clickhouse_ru
    Люди не любят и боятся table in readonly :)

    Так что отдельный кластер clickhouse-keeper самый оптимальный вариант кмк на сейчас.
  • @githubreleases_bot #261622 b o t 05:28 PM, 17 Mar 2022
    ClickHouse/ClickHouse description changed: v22.3.2.2-lts
    Link: https://github.com/ClickHouse/ClickHouse/releases/tag/v22.3.2.2-lts
    Release notes:
    Release v22.3.2.2-lts
  • @milovidov_an #261623 08:47 PM, 17 Mar 2022
    Release 22.3, видео:
    https://www.youtube.com/watch?v=GzeANZzPras
    Презентация:
    https://presentations.clickhouse.com/release_22.3/
  • None
  • 18 March 2022 (142 messages)
  • https://t.me/clickhouse_ru
    @I_Korsakov #261625 02:30 AM, 18 Mar 2022
    Всем добрый день.

    Есть такой вопрос: нужно переделать отчёт, который строится сейчас на PostgreSQL.

    Суть в том, что используется функция crosstab подробнее тут

    Есть ли в ClickHouse подобный функционал? Чтобы сделать некое подобие сводной таблицы?

    Возможно это сделать как-то через массивы?
  • @examplesuka #261627 04:01 AM, 18 Mar 2022
    Всем привет!
    Кто-то может подсказать как делать оптимизацию запроса в кх? С чего начинать, на что обратить внимание, какие инструменты можно использовать?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Спасибо. Гляну.
  • https://t.me/clickhouse_ru
    Secrets of ClickHouse Query Performance

    Here's the link to the updated webinar: https://youtu.be/1TGGCIr6dMY #ClickHouse is famous for speed. That said, you can almost always make it faster! In this webinar (September 2019), Robert Hodges and Altinity Engineering Team use examples to teach you how to deduce what queries are actually doing by reading the system log and system tables. We then explore standard ways to increase Query Speed: Data types and encodings, filtering, join reordering, skip indexes, materialized views, session parameters, to name just a few. In each case, we circle back to query plans and system metrics to demonstrate changes in ClickHouse behavior that explain the boost in #performance. We hope you enjoy the first step to becoming a ClickHouse performance guru! If you have any questions or suggestions, email us at info@altinity.com. #DataManagement ----------------- Enjoy more value-packed Altinity webinars here: https://www.altinity.com/webinarspage Or check out ClickHouse community events here: https://www.altinity.com/events ----------------- Learn more about Altinity! Site: https://www.altinity.com LinkedIn: https://www.linkedin.com/company/altinity/ Twitter: https://twitter.com/AltinityDB Join us on Slack: https://bit.ly/34vnPLs

  • Спасибо, а какие нибудь короткие советы есть?)
  • https://t.me/clickhouse_ru
    Использовать PRIMARY KEY в where. Отслеживать запросы как работают через tracer log в clickhouse-client
  • А план запроса или explain как в постгре?
  • https://t.me/clickhouse_ru
    EXPLAIN | Документация ClickHouse

    EXPLAIN Выводит план выполнения запроса. Синтаксис: EXPLAIN [AST | SYNTAX | PLAN | PIPELINE] [setting = value, ...] SELE

  • Видел, но вы не упомянули, насколько это применимо? В отличии от постгреса он кажется только с планом работает
  • https://t.me/clickhouse_ru
    Я не использую. Думаю не использую потому что не понимаю что там написано.
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261627 #261638 06:12 AM, 18 Mar 2022
    если вы пришли с какой-то OLTP базы типа постгреса, то оптимизировать надо в первую очередь не запросы, а схему данных. Она выглядит совсем иначе. Вместо пачки связанных реляциями таблиц у вас будет 1-2-3 широких таблицы с вложенностями (Nested) с тщательно продуманными primary key/partition by. Плюс словари в памяти. Плюс трюки с материализованными агрегациями. Итд.
    Оптимизация отдельного запроса обычно не дает значимого эффекта.
  • А что по удобству работы, что лучше, несколько столбцов одинаковой длинны или Nested? Накладывает ли Nested какие-то ограничения?
  • @214612813 #261640 06:25 AM, 18 Mar 2022
    Будет ли какие-то избыточное чтение если берутся лишь пару столбцов из Nested?
  • @214612813 #261641 06:29 AM, 18 Mar 2022
    Что смущает в ручном хранении столбцов в виде массивов одинаковой длинны - это возня с arrayZip, arrayJoin и untuple
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261639 #261642 06:31 AM, 18 Mar 2022
    > что лучше, несколько столбцов одинаковой длинны или Nested
    это одно и тоже, просто Nested - удобнее
  • @214612813 #261643 06:32 AM, 18 Mar 2022
    Уже почитал, спасибо Boris
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261639 #261644 06:34 AM, 18 Mar 2022
    > Будет ли какие-то избыточное чтение если берутся лишь пару столбцов из Nested
    это отдельные независимые столбцы.
    > arrayZip, arrayJoin и untuple
    untuple тут не при чем, это другое
    arrayJoin - прекрасен, но надо его прочуствовать, и вобще любить функциональное программирование :)
  • @214612813 #261645 06:35 AM, 18 Mar 2022
    arrayJoin крут, не спорю
  • @PavelPavlov39 #261646 06:37 AM, 18 Mar 2022
    Добрый день.
    Помогите понять как работают индексы пропуска в СН. Документацию уже несколько раз перечитал, но понимание происходящего так и не пришло.
    Для тестов использую простую таблицу из 3-х колонок - id (int32), value (int32), dt (datetime). Для чистоты эксперимента таблица создана без ключа сортировки. Естественно, любой запрос к такой таблице выполняет фул-скан. Дальше создаю индекс пропуска на колонку value, материализую его и пробую сделать какой-то запрос с условием на равенство по этой колонке. В результате СН в статистике запроса выводит информацию, что были просмотрены все строки, то есть выполнен фул-скан.
    Если выполнить EXPLAIN indexes=1, то сообщается, что будут использованы все парты, но лишь 1/10 часть гранул.
    Что не так с созданным мной индексом? Почему сообщается что просмотрены все строки? Почему наличие индекса никак не влияет на это и на скорость выполнения?
  • @214612813 #261647 06:39 AM, 18 Mar 2022
    Ну так если таблица не партиционирована все парты и будут использованы. А 1/10 это уже очень хороший результат для клика
  • @214612813 #261648 06:44 AM, 18 Mar 2022
    В кх другой поход, хранить данные отсортировав по ключам выборки. Зачастую приходится несколько таких копий иметь отсортированных по разным ключам, ну или проекций.
  • https://t.me/clickhouse_ru
    @sach3000 #261649 06:46 AM, 18 Mar 2022
    Приветствую. Правильно ли я понял, что в 22.3 с data JSON можно создавать гибкую схему данных таблицы ?
  • https://t.me/clickhouse_ru
    Попробуйте сначала создать индекс, а потом залить данные .
  • https://t.me/clickhouse_ru
    Да, экспериментальная функция
  • @examplesuka #261652 06:50 AM, 18 Mar 2022
    Вот кстати про оптимизацию
    https://habr.com/ru/company/yandex/blog/459198/
    Анализ производительности запросов в ClickHouse. Доклад Яндекса

    Что делать, если ваш запрос к базе выполняется недостаточно быстро? Как узнать, оптимально ли запрос использует вычислительные ресурсы или его можно ускорить? На последней конференции HighLoad++ в...

  • Это я понимаю. И понимаю как хранятся данные. Но не могу понять ценность дополнительных индексов (индексов пропуска данных). Ведь, если верить статистике запроса, эти индексы вообще не влияют на то, как происходит чтение данных и сокращение количества гранул, отображаемых в EXPLAIN, по факту также ни на что не оказывает влияния.
    В каких случаях целесообразно использовать такие дополнительные индексы?
  • Это не всегда возможно. Да и для создания индекса по уже существующим данным должно быть достаточно выполнить MATERIALIZE INDEX, который как раз выполнит его построение. Но ради эксперимента попробую и так
  • https://t.me/clickhouse_ru
    Skip индексы точно будут применяться для новых патров/партиций, а вот для старых. Я не уверен
  • Я сейчас попробовал создать таблицу, навесить на нее индекс и после заполнить данными - результат тот же - выполнен фул-скан
  • https://t.me/clickhouse_ru
    насколько я понял, это зависит от разряженности данных в партах и собственно их кол-ва на диске?
  • https://t.me/clickhouse_ru
    Ну там есть настройка Granularity, которая отвечает как часто ставить отметки в мета данных столбцов
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261653 #261659 07:13 AM, 18 Mar 2022
    у вас прочиталось 1/10 гранул - это хороший результат. Значит индекс работает. Не всем так везет с данными. Бывает и 1/2. Вы не пугайтесь фразы про фулскан, смотрите на гранулы - это важно.
    Любой запрос изначально хочет прочитать все гранулы. Но можно и не все через отсечки по:
    - первичный ключ
    - партиции
    - скип индексы
  • При создании таблицы используется дефолтная гранулярность и отсутствие какой-либо сортировки, то есть данные сохраняются в порядке их поступления гранулами по 8192 записи.
    Индекс создается с гранулярностью 10.
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261660 #261661 07:16 AM, 18 Mar 2022
    Ваша задача уменьшить нагрузку на диск. Если у вас достаточно RAM и не петабайты данных - уменьшайте размер гранулы. Можно и 256 поставить. И коэффициент 2-3 для индекса. Пока не упретесь в размер памяти (индексы там) можно и не повышать.
  • Сейчас все это тестируется на тестовой таблице с искусственно созданными данными.
    Я понимаю, что делать с первичным ключем и партициями.
    Но в упор не пойму что дают индексы пропуска.
    Да, explain сообщает что количество используемых гранул становится меньше, но итоговое время запроса и количество обработанных строк вообще никак не меняются, что с индексом, что без индекса.
    Вот как понять, когда этот индекс работает на самом деле, а когда не оказывает никакого эффекта?
  • Да, правильно, стремимся снизить нагрузку на диск. Правильно ли понимаю, что если в первичном ключе не используются колонки, по которым строится индекс пропуска, то этот индекс не будет работать?
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261662 #261664 07:20 AM, 18 Mar 2022
    разумеется смотреть надо на время запроса. скип индексы - так себе инструмент, не возлагайте на него больших надежд.
    Более перспективным является дублирование данных с другим order by через проекции. Ну или сделать обратный индекс в отдельной табличке. Я так делал полнотекстовый поиск.
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261663 #261665 07:26 AM, 18 Mar 2022
    неправильно. первичный индекс сам по себе, а дополнительные индексы пропуска - на то они и дополнительные, работают отдельно. Но правильно настроить их под конкретные данные - непросто. У меня получалось некоторое ускорение - полнотекст по википедии работал за 5 сек. Лучше чем ничего, но.....
  • Если в транзакционных БД есть первичный ключ, который смотрит на конкретное смещение данных в файле и на него (на первичный индекс) уже указывают вторичные индексы, то как это работает с индексами пропуска в СН?
    Если мы не указываем при создании таблицы ключ сортировки и данные у нас храняться разрозненно, то при создании индекса пропуска как он будет связываться с данными?
    При наличии первичного ключа, в котором есть колонка, используемая в индексе пропуска, можно привязаться к этому индексу и по нему уже ориентироваться. Но как оно на самом деле?
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261666 #261667 07:35 AM, 18 Mar 2022
    конечно тут совсем не те индексы, которые в транзакционных БД. Это четко сказано в документации. Тут скип индексы.
    Если брать блум, то это некоторое подобие хешей с большой долей коллизий. Т.е. если вы не попали в первичный индекс и получили фуллскан, то по сохраненным в памяти "типа хешам" можно принять решение что вот эту конкретную гранулу читать не надо - там ничего точно не найти. Но обратное неверно - может и прочитает, но все равно не найдет.
  • Знаю, что по другому. Но может можете подсказать, как именно индексы пропуска ссылаются на данные на диске, особенно если говорить про тип minmax, как самые простые (как мне кажется)? Если правильно понял, то minmax полностю аналогичен по структуре первичным индексам. И есть ожидания, что будет работать аналогично.
  • https://t.me/clickhouse_ru
    minmax индекс пропуска так работает - в ренже данных гранулярность индекса * гранулярность таблицы такой-то минимум и максимум
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261668 #261670 07:47 AM, 18 Mar 2022
    первичный индекс основан на сортировке данных на диске. Имея в руках подходящее значение сразу понятно куда делать seek и какую гранулу читать. С вторичным иначе - перед чтением гранулы принимается решение - читать её или нет. В случае minmax в индексе прописаны верхние-нижние значения для конкретной группы гранул.
  • https://t.me/clickhouse_ru
    @vasbum #261671 07:56 AM, 18 Mar 2022
    Коллеги, подскажите кто сталкивался с настройкой CHProxy?

    Чтение у нас проходит нормально
    А вот с записью беда, не можем разобраться

    Может кто-то подсказать или может формат консультации за деньги возможен?

    Спасибо!
  • @PavelPavlov39 #261672 07:58 AM, 18 Mar 2022
    Тогда не пойму такого поведения:
    Таблица:
    CREATE TABLE skip_idx
    (
    `value` UInt32, `id` UInt32, `ts` DateTime
    )
    ENGINE = MergeTree
    PARTITION BY toYYYYMM(ts)
    ORDER BY tuple();

    Добавляю индекс:
    ALTER TABLE skip_idx ADD INDEX test_idx `value` TYPE minmax GRANULARITY 1;
    ALTER TABLE skip_idx MATERIALIZE INDEX test_idx;

    Заполняю данными:
    INSERT INTO skip_idx SELECT
    rand(), number, now() + intDiv(number, 10)
    FROM numbers(1000000000);

    Делаю поиск по ключу value:
    SELECT count() FROM skip_idx WHERE value = 214678225
    Результат:
    1 rows in set. Elapsed: 0.191 sec. Processed 1.00 billion rows, 4.00 GB (5.25 billion rows/s., 20.99 GB/s.)

    Почему при имеющемся индексе, выполняется просмотр всех данных таблицы?
    А также почему при гранулярности 1, выполняется просмотр всех гранул, а не остановка после первого вхождения, ведь дальше должны идти значения заведомо больше искомого:

    Expression ((Projection + Before ORDER BY)) │
    │ Aggregating │
    │ Expression (Before GROUP BY) │
    │ Filter (WHERE) │
    │ SettingQuotaAndLimits │
    │ ReadFromMergeTree │
    │ Indexes: │
    │ MinMax │
    │ Condition: true │
    │ Parts: 232/232 │
    │ Granules: 122097/122097 │
    │ Partition │
    │ Condition: true │
    │ Parts: 232/232 │
    │ Granules: 122097/122097 │
    │ Skip │
    │ Name: id_idx │
    │ Description: minmax GRANULARITY 1 │
    │ Parts: 232/232 │
    │ Granules: 122097/122097 │
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261672 #261673 08:02 AM, 18 Mar 2022
    >А также почему при гранулярности 1, выполняется просмотр всех гранул, а не остановка после первого вхождения, ведь дальше должны идти значения заведомо больше искомого

    Там нет никакой последовательности. Данные у вас никак не отсортированы. Гранулы идут в случайном порядке, поэтому нужно проверять minmax для всех.
  • Так во время построения индекса это условие и должно проверяться и сохраняться в индексе. А после, при поиске значения в индексе и его обнаружении, брать из него положение этих данных, например номер куска и смещение в нем, и читать. Или как-то иначе?
  • https://t.me/clickhouse_ru
    Какое условие?
  • https://t.me/clickhouse_ru
    @nyoroon #261676 08:13 AM, 18 Mar 2022
    Скип индексы не проверяют и не гарантируют уникальности и упорядоченности
  • https://t.me/clickhouse_ru
    @Artemsafiyulin #261677 08:13 AM, 18 Mar 2022
    Всем привет! Никто не сталкивался с такой ситуацией с правами:
    выдаю права командой grant ALL ON database.* TO user
    а в выводе show access у этого пользователя вот такой набор прав:
    GRANT SHOW, SELECT, INSERT, ALTER, CREATE DATABASE, CREATE TABLE, CREATE VIEW, CREATE DICTIONARY, DROP DATABASE, DROP TABLE, DROP VIEW, DROP DICTIONARY, TRUNCATE, OPTIMIZE, CREATE ROW POLICY, ALTER ROW POLICY, DROP ROW POLICY, SHOW ROW POLICIES, SYSTEM MERGES, SYSTEM TTL MERGES, SYSTEM FETCHES, SYSTEM MOVES, SYSTEM SENDS, SYSTEM REPLICATION QUEUES, SYSTEM DROP REPLICA, SYSTEM SYNC REPLICA, SYSTEM RESTART REPLICA, SYSTEM RESTORE REPLICA, SYSTEM FLUSH DISTRIBUTED, dictGet ON database.* TO user

    почему такой набор вместо ALL? в этом наборе просто не хватает нужных мне прав, в частности SOURCE
  • https://t.me/clickhouse_ru
    Нет, он про то что вроде каждой грануле было сказано, какое максимальное, а какое минимальное число, в ней и они должны быть отсечены
  • https://t.me/clickhouse_ru
    @nyoroon #261679 08:16 AM, 18 Mar 2022
    Если числа рандомные, то вполне вероятно что минимум и максимум были меньше и больше соотв. нужного числа
  • При построении индекса minmax должен формироваться упорядоченный список значений колонок по которым этот индекс строится. Соответственно, если делать запрос с использованием этого индекса на равенство, то при совпадении, даже если просто просматривать весь индекс, поиск должен заканчиваться при первом большем, чем запрошенное, значении.
    Этого не происходит в примере, что я скинул.
  • Гранулярность используется - 1. Одна запись в индексе равна одной записи в таблице.
  • https://t.me/clickhouse_ru
    Гранулярность 1 это значит что гранула равна одной грануле таблицы, это 8192 строки по-умолчанию
  • О, спасибо за такое уточнение
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261680 #261684 08:18 AM, 18 Mar 2022
    Нет. В этом ваше заблуждение, идущее корнями к индексам постгреса. Тут не так, мы про это сказали уже не раз. Попробуйте от него отказаться.
  • Так вот я и пытаюсь понять фундаментальные отличия, на которые можно будет опираться при планировании индексов.
    Но так и или иначе, любой индекс должен на что-то ссылаться. На что ссылается индекс пропуска, как он адресует искомые данные?
  • https://t.me/clickhouse_ru
    Ренж гранул
  • https://t.me/clickhouse_ru
    MergeTree | Документация ClickHouse

    MergeTree Движок MergeTree, а также другие движки этого семейства (*MergeTree) — это наиболее функциональные движки табл

  • https://t.me/clickhouse_ru
    @konnectrl #261688 08:23 AM, 18 Mar 2022
    Читайте и поймите основы MergeTree хранения
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261685 #261689 08:24 AM, 18 Mar 2022
    Записи индекса пропуска ни на что не ссылаются. В них есть информация, которую можно проверить и принять решение о пропуске набора гранул.
  • Не так просто читать в поисках чего-то, чего не увидел за, неверно, 10-ок раз прочтения этой страницы.
  • @PavelPavlov39 #261691 08:26 AM, 18 Mar 2022
    Спасибо всем огромное за разъяснения! :)
  • https://t.me/clickhouse_ru
    @Aleksey_Shornikov #261692 08:37 AM, 18 Mar 2022
    Подскажите, сделал интеграцию с ад, юзеров и пароли тянет. А мапинг ролей не проходит, может быть связано с тем что путь до юзеров и групп с русскими буквами?
  • @1063161973 #261694 08:48 AM, 18 Mar 2022
    Добрый день. Мелкая ошибка в КХ:
    SELECT toDate('2022-02-31')
    возвращает
    2022-03-03
    Последний день месяца не контролируется при преобразовании строки в дату
  • https://t.me/clickhouse_ru
    Хммм ну то есть у вас неправильная дата, а виноват КХ ? что не понял что вы имеете ввиду ?
  • При преобразовании строки в дату должен быть контроль корректности.
    Например SELECT toDate('2022-02-32') возвращает дату 1970-01-01 и это правильно, т.к. строка не соответствует дате. Поведение должно быть одинаковым при задании неверного значения даты строкой.
    Почему SELECT toDate('2022-02-32') возвращает 1970-01-01,
    а SELECT toDate('2022-02-31') - 2022-03-03 ?
    Можно, конечно, и на прикладном уровне контролировать, но большинство систем делает это самостоятельно
  • @1063161973 #261697 09:27 AM, 18 Mar 2022
    В любом случае о таком поведении системы нужно знать. Для меня это было новостью
  • https://t.me/clickhouse_ru
    @desio05 #261699 09:53 AM, 18 Mar 2022
    Всем привет, пытаюсь выкачать данные из монги через встроенный енджин
    CREATE TABLE test.mongo_table
    (
    _id String
    ) ENGINE = MongoDB('mongodb:27017', 'test', 'currency', '', '');

    Такой запрос возвращает строки
    select * from test.mongo_table;

    Дальше хочу выкачать сами данные в кликхаус
    CREATE TABLE IF NOT EXISTS test.currency_rates AS test.mongo_table
    ENGINE MergeTree()
    PARTITION BY _id
    ORDER BY _id
    SETTINGS index_granularity = 8192;

    CREATE MATERIALIZED VIEW IF NOT EXISTS test.currency_rates_mv TO test.currency_rates AS
    SELECT *
    FROM test.mongo_table;

    Но сама таблица test.currency_rates пустая
    select * from test.currency_rates;

    В логах вижу только ошибки DB::Exception: default: Not enough privileges. To execute this query it's necessary to have grant SHOW ROLES ON *.*. (ACCESS_DENIED), кажется это не относится к mv
    Что может быть не так? кликхаус и монгу запускаю в докер компоузе
  • @fanymagnet #261700 09:58 AM, 18 Mar 2022
    Подскажите когда ждать билд 22.3 на докерхабе?
  • https://t.me/clickhouse_ru
    Ну я предположу, что движок это просто прокси, для передачи запросов в монго ( не пользовался никогда). То есть сам кликхаус не знает как вставляются данные в монго, ну и то есть MV не будет работать априори
  • https://t.me/clickhouse_ru
    Вы на каком смотрите ?
  • https://t.me/clickhouse_ru
    @desio05 #261703 09:59 AM, 18 Mar 2022
    Такая же схема engine=kafka + mv работает
  • https://t.me/clickhouse_ru
    Он переехал после создание компании сюда https://hub.docker.com/r/clickhouse/clickhouse-server/tags
  • https://t.me/clickhouse_ru
    Движок таблиц MongoDB позволяет читать данные из коллекций СУБД MongoDB. В таблицах допустимы только плоские (не вложенные) типы данных. Запись (INSERT-запросы) не поддерживается.
  • Ух, спасибо большое
  • https://t.me/clickhouse_ru
    Kafka позволяет:

    Публиковать/подписываться на потоки данных.
    Организовать отказоустойчивое хранилище.
    Обрабатывать потоки по мере их появления.
  • https://t.me/clickhouse_ru
    @konnectrl #261709 10:02 AM, 18 Mar 2022
    Вроде в первом предложение заметна разница, не ?
  • https://t.me/clickhouse_ru
    у меня нет вложенных структур + я не пытаюсь делать insert
    все что мне нужно - чтобы данные из монги скопировались в кликхаус таблицу as is
  • https://t.me/clickhouse_ru
    @konnectrl #261711 10:03 AM, 18 Mar 2022
    INSER INTO table SELECT * FROM mongo ну так сделайте так ?
  • https://t.me/clickhouse_ru
    @desio05 #261714 10:26 AM, 18 Mar 2022
    подходит, но мне нужно подтягивать новые данные
    То есть materialized view вообще никак использовать не могу? Выставить какой-нибудь период, чтобы данные подтягивались в кликхаусную таблицу
  • https://t.me/clickhouse_ru
    @desio05 #261715 10:28 AM, 18 Mar 2022
    Вижу еще keyword POPULATE, пока вчитываюсь что именно оно делает
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Сделайте ETL
  • https://t.me/clickhouse_ru
    @Krisantis #261720 11:08 AM, 18 Mar 2022
    Подскажите, есть какая-то настройка для ReplacingMergeTree относительно операции дедубликации.
    или есть хоть какая-то оценка, когда должна пройти финализация?
    дубликаты висят уже минут 30, а там всего-то две строки на пробу
  • https://t.me/clickhouse_ru
    может никогда не пройти
  • https://t.me/clickhouse_ru
    а в чём прикол? зачем тогда движок этот
  • https://t.me/clickhouse_ru
    это фича. дедупликация происходит только при мерже партов.
  • https://t.me/clickhouse_ru
    @nyoroon #261724 11:12 AM, 18 Mar 2022
    можно использовать SELECT FINAL
  • https://t.me/clickhouse_ru
    @beepiamjeep #261725 11:12 AM, 18 Mar 2022
    В документации есть движок для интеграции S3. Подскажите, пожалуйста, можно ли забирать напрямую из бакета яндекса json в CH?
  • https://t.me/clickhouse_ru
    я не понимаю логики, везде написано не использовать final
  • https://t.me/clickhouse_ru
    мб там про OPTIMIZE FINAL?
  • https://t.me/clickhouse_ru
    Оно должно быть, ага
  • https://t.me/clickhouse_ru
    т.е. SELECT FINAL будет работать круто и быстро? Я просто не понимаю, нафига тогда этот движок
  • https://t.me/clickhouse_ru
    Две строки могут в одном куске быть. Вставить ещё пару и посмотреть, что будет. Или OPTIMIZE сделать
  • https://t.me/clickhouse_ru
    помогло увеличние read_timeout, спасибо!
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261729 #261732 11:22 AM, 18 Mar 2022
    вам же пояснили уже что "дедупликация происходит только при мерже партов". А последний мердж партов может произойти "никогда", потому что у КХ нет задачи домердживать парты до конца - они ему нужны отдельные, чтобы загружать разные ядра процессора (MPP - massively parallel processing)
    Или не пишите дубликаты в таблицу, или используйте Replaced/FINAL. Если ваш запрос не точечный, а аналитический (длинный), то замедление не такое уж и ужасное.
  • https://t.me/clickhouse_ru
    всё понял, спасибо
  • https://t.me/clickhouse_ru
    @StadnikD #261734 11:23 AM, 18 Mar 2022
    как на клиенте активировать оконные функции? прописал вот так - не работает ```SETTINGS allow_experimental_window_funciton = 1```
  • https://t.me/clickhouse_ru
    set allow_experimental_window_funciton = 1;
  • https://t.me/clickhouse_ru
    Setting allow_experimental_window_function is neither a built in setting not started with the prefix 'custom_' registered for user-defined settings
  • https://t.me/clickhouse_ru
    А версия какая у вас ?
  • https://t.me/clickhouse_ru
    21.3.20.1
  • https://t.me/clickhouse_ru
    @nndii #261739 11:30 AM, 18 Mar 2022
    Добрый день.
    Есть такая функция file, которая в подобной конструкции
    SELECT * FROM file(...) не будет работать без гранта TEMPORARY TABLE и FILE.
    Но при этом:
    SELECT file(...) работать будет и без гранта, и любой юзер может читать файлы из user_files_path

    Вопрос:
    Есть ли какой-то способ и во втором случае юзеру запретить так делать?
  • https://t.me/clickhouse_ru
    Дак они вроде в 5 появились как эксперементальные
  • https://t.me/clickhouse_ru
    @StadnikD #261741 11:31 AM, 18 Mar 2022
    Благодарю
  • https://t.me/clickhouse_ru
    А нет вру в 21.3
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @konnectrl #261744 11:34 AM, 18 Mar 2022
    Получается что в конце любого запроса добавлять SETTINGS allow_experimental_window_funciton = 1 и всё будет работать
  • https://t.me/clickhouse_ru
    @308618636 #261745 11:49 AM, 18 Mar 2022
    Есть ли в словарях возможность использовать тип данных DateTime?(словарь к PostgreSQL если это важно, не ODBC) В описаниях такого нет, те на первый взгляд поле д. быть string если дата типа "2022-03-18 00:00:00". Но говорится, что есть тэг expression для модификации . Может быть, кто -то его использовал для превращения строки в дату - или в int64 для unix datetime?
  • https://t.me/clickhouse_ru
    Ну вот не хочет почему-то
  • https://t.me/clickhouse_ru
    о, проверила. есть DateTime и dictGetDateTime к ней. А в доке нет..
  • Этот движок предназначен для автоматической оптимизации дискового пространства для хранения данных и уменьшения количества строк.
  • @dj_mixer #261751 01:39 PM, 18 Mar 2022
    вопрос такой. а по Aggregate UDF есть какие-то горизонты когда оно планируется?
  • https://t.me/clickhouse_ru
    @rmntrvn #261752 01:44 PM, 18 Mar 2022
    всем привет. К графане подключен кликхаус и нужно, чтобы в поле сервис были уникальные значения service_name в зависимости от поля Folder, даже если в Folder выбраны несколько значений. Сейчас если в Folder ставлю Multi-value, то в Service отображается None, если Multi-value убрать, то показывает нормально, но для одного Фолдера. Как сделать, чтобы в service был уникальный список сервисов при множественном выборе Folder?
    Для service запрос такой
    SELECT DISTINCT service_name
    FROM billing
    WHERE
    (billing_account_name = '${billing_account}')
    AND (cloud_name = '${cloud_name}')
    AND (folder_name = '${folder}')
    для Folder такой
    SELECT DISTINCT service_name
    FROM billing
    WHERE
    (billing_account_name = '${billing_account}')
    AND (cloud_name = '${cloud_name}')
    AND (folder_name = '${folder}')

    SELECT DISTINCT folder_name
    FROM billing
    WHERE
    (billing_account_name = '${billing_account}')
    AND (cloud_name = '${cloud_name}')
    ORDER BY REPLACE(folder_name, 'fx', '');
  • https://t.me/clickhouse_ru
    @mikezsin #261753 01:55 PM, 18 Mar 2022
    Привет, а кто-нибудь clickhouse_keeper в проде использует? проблем с ним нет? хочу с нуля кластер на нем поднять, без конвертов из зк
  • https://t.me/clickhouse_ru
    @mike_kopev #261754 01:55 PM, 18 Mar 2022
    Добрый день!

    Исходные данные:
    Есть кластер Clickhouse, 6 нод.
    На каждой ноде кластера есть MergeTree-таблица и поверх неё Distributed-таблица для запросов со всего кластера.
    Авторизация в Clickhouse осуществляется через AD. Юзеры успешно входят по AD учеткам, роли мапятся.

    Проблема:
    Юзер заходит на ноду-1, делает Select * from Distributed-table и выпадает ошибка "Authentification failed...".
    Ошибка из-за того, что гранты проливаются только на ту ноду, куда юзер зашел (это видно через SHOW ACCESS).
    Т.е. для того чтобы юзер мог выполнять запрос со всего кластера, ему нужно авторизоваться на каждой ноде.
    Есть ли к-н решение, чтобы этого не делать?
  • а в полном тексте ошибки CH ругается на доступ к локальным таблицам, на которые distributed смотрит?
  • @1382671541 #261756 02:04 PM, 18 Mar 2022
    если да, то GRANT ON CLUSTER <cluster> SELECT ON <local table> TO .. должен помочь
  • https://t.me/clickhouse_ru
    Если запустить запрос от дефолтного пользователя
  • https://t.me/clickhouse_ru
    @konnectrl #261759 02:11 PM, 18 Mar 2022
    Все будет работать?
  • https://t.me/clickhouse_ru
    Вывод SHOW ACCESS:

    CREATE ROLE appusers
    GRANT SELECT ON *.* TO appusers
    CREATE USER ad_user IDENTIFIED WITH ldap SERVER 'ad-server'
    GRANT appusers TO ad_user
  • https://t.me/clickhouse_ru
    От дефолтного работает. Но нужно от AD-шного
  • @1382671541 #261762 02:12 PM, 18 Mar 2022
    я как понимаю, это на той ноде, на которой запущен запрос (и на которой, видимо, права и назначались)
  • https://t.me/clickhouse_ru
    На остальных нодах (где ad-user ещё не входил) следующий SHOW ACCESS:

    CREATE ROLE appusers
    GRANT SELECT ON *.* TO appusers
  • @1382671541 #261764 02:15 PM, 18 Mar 2022
    значит, нужен CREATE USER ON CLUSTER
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261753 #261765 02:18 PM, 18 Mar 2022
    Вчера вечером вышла 22.3 где Миловидов торжественно объявил его в production ready. Но см. дисскуссию чуть выше. Есть разные мнения.
    В любом случае если вы поставите на маленькую инсталяцию и расскажете нам - будет весьма любопытно.
  • https://t.me/clickhouse_ru
    Это решение для заранее известных учеток.
    Clickhouse же не знает, какой юзер зайдет из AD, в этом суть авторизации через внешний каталог LDAP
  • @IvanTheFourth #261771 04:03 PM, 18 Mar 2022
    Подскажите пожалуйста что может быть такое. Был кластер, был ребут двух серверов подряд, теперь пишет в логах вот такое -
    Table is in readonly mode (zookeepe
    r path: /clickhouse/monitoring/vsphere_mon/vsphere_cluster_cpu/01). (TABLE_IS_READ_ONLY),

    при этом в самом zookeeper есть только вот такой путь -
    /clickhouse/monitoring/vsphere_mon/vsphere_cluster_cpu/1

    Хотелось бы понять как поднять обратно
  • Был измен макрос для создания реплик. Не заметил этого в конфигах. Проблема решена.
  • https://t.me/clickhouse_ru
    @nndii ↶ Reply to #261739 #261773 04:43 PM, 18 Mar 2022
    Повторю свой вопрос
  • https://t.me/clickhouse_ru
    потому что functionS. settings allow_experimental_window_functions = 1
  • https://t.me/clickhouse_ru
    folder_name in (${folder})
  • @anttoon #261776 09:19 PM, 18 Mar 2022
    Здравствуйте, arrayDifference странно работает
    на массиве [6,6,5,5,5,5,5,5,5,5]
    результат [0,0,4294967295,0,0,0,0,0,0,0]
    а ожидаю [0,0,-1,0,0,0,0,0,0,0]

    CREATE TABLE test_diffs
    (
    `event_date` Date,
    `event_datetime` DateTime,
    `tm` UInt64,
    `num` UInt64,
    `events` UInt32
    )
    ENGINE = ReplacingMergeTree
    PARTITION BY toYYYYMM(event_date)
    ORDER BY (event_date, event_datetime, tm, num)
    SETTINGS index_granularity = 8192;

    INSERT INTO test_diffs FORMAT JSONEachRow
    {"event_date":"2021-07-01","event_datetime":"2021-07-01 16:09:54","tm":"1","num":"1","events":6}
    {"event_date":"2021-07-01","event_datetime":"2021-07-01 19:14:57","tm":"1","num":"1","events":6}
    {"event_date":"2021-07-02","event_datetime":"2021-07-02 08:12:32","tm":"1","num":"1","events":5}
    {"event_date":"2021-07-02","event_datetime":"2021-07-02 12:10:19","tm":"1","num":"1","events":5}
    {"event_date":"2021-07-02","event_datetime":"2021-07-02 16:14:55","tm":"1","num":"1","events":5}
    {"event_date":"2021-07-02","event_datetime":"2021-07-02 19:12:19","tm":"1","num":"1","events":5}
    {"event_date":"2021-07-03","event_datetime":"2021-07-03 08:11:55","tm":"1","num":"1","events":5}
    {"event_date":"2021-07-03","event_datetime":"2021-07-03 12:12:27","tm":"1","num":"1","events":5}
    {"event_date":"2021-07-03","event_datetime":"2021-07-03 16:12:10","tm":"1","num":"1","events":5}
    {"event_date":"2021-07-03","event_datetime":"2021-07-03 19:15:10","tm":"1","num":"1","events":5}

    SELECT num
    , groupArray(events) as events_data
    , arrayDifference(events_data) as diffs
    FROM test_diffs
    GROUP BY num;
  • https://t.me/clickhouse_ru
    @orantius #261777 09:20 PM, 18 Mar 2022
    видимо массив из uint и производная к uint приводится
  • точно
    спасибо)
  • @vhsmacabre #261780 11:43 PM, 18 Mar 2022
    Здравствуйте! CH не хочет есть параметры max_server_memory_usage* из переменных окружения, так и должно быть?

    $ cat custom_config.xml
    <yandex>
    <max_server_memory_usage from_env="CH_MAX_MEMORY_USAGE" />
    </yandex>
    ...
    $ export CH_MAX_MEMORY_USAGE=100
    ...
    $ clickhouse-server
    [ 50 ] {} <Error> Application: Syntax error: Not a valid unsigned integer

    При этом не работает также для max_server_memory_usage_to_ram_ratio, но работает для max_memory_usage.

    Если задавать в том же конфиге руками, а не из переменных — всё тоже работает.
  • https://t.me/clickhouse_ru
    Попробуйте в экспорт переменной добавить кавычки ='100'
    Не сталкивался с такой проблемой, просто как идея, вдруг поможет...
  • Не помогло. А для max_memory_usage работает и без кавычек, что смущает больше всего)
  • 19 March 2022 (33 messages)
  • @291948808 #261785 03:37 AM, 19 Mar 2022
    Попробуйте тогда 100.0 :)
  • @Lts_hg #261786 05:35 AM, 19 Mar 2022
    Всё привет есть кто-нибудь кто писал оплату для сайта через крипту BUSD в сити BSC
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261780 #261787 06:39 AM, 19 Mar 2022
    что вы хотели сказать, когда указали 100 для max_memory_usage? Там указывается в байтах. Добавьте 9 нулей или напишите '100G'
  • Показать, что не работает, не нагружая сообщение нулями. Думаете, я не проверял на нормальных значениях?)
  • https://t.me/clickhouse_ru
    То есть 100G не работает ?
  • Не работает. Даже если вообще не задавать переменную, всё равно будет абстрактное Not a valid unsigned integer. Зато если не задавать её для max_memory_usage — то будет адекватное Attempt to read after eof: while parsing value '' for setting 'max_memory_usage'
  • https://t.me/clickhouse_ru
    @KitegGrad #261793 08:27 AM, 19 Mar 2022
    Добрый день!
    Недавно наша компания начала пытаться в кликхаус.
    И у меня возник вопрос - а правильно ли мы его используем?
    Суть такова:
    (упрощённо) У нас есть рейсы по заказам с мунициаплитетом и назначенными на них машинами (municipality_uuid -> order_uuid -> run_uuid -> vehicle_uuid)
    vehicle_uuid может меняться.
    Мы создали таблицу с сырыми данными по изменениям order_runs_raw с полями municipality_uuid, order_uuid, run_uuid, vehicle_uuid, updated_at
    Для этой таблицы матвьюху order_runs с полями municipality_uuid, order_uuid, run_uuid, argMaxState(vehicle_uuid, order_runs_raw.updated_at), maxState(updated_at) ORDER BY municipality_uuid, order_uuid, run_uuid
    для того чтобы иметь актуальный vehicle_uuid для каждого рейса в соответствии с последними изменениями

    Далее возникла задача выводить изменения по разным часам
    матвьюха order_runs_hourly с полями municipality_uuid, order_uuid, run_uuid, toStartOfHour(updated_at) as updated_at_hour, argMaxState(vehicle_uuid, order_runs_raw.updated_at), maxState(updated_at) ORDER BY municipality_uuid, order_uuid, run_uuid, updated_at_hour

    Далее необходимо для различных уровней агрегации выводить список используемых в рейсах за час машин (при чём за последний updated_at в часу, а не все машины вместе с заменёнными)
    Т.е. нужна матвьюха типа municipality_uuid, order_uuid, updated_at_hour, массивМашин ORDER BY municipality_uuid, order_uuid, updated_at_hour

    Не могу понять как реализовать последнюю вьюху да и правильный ли вообще подход
  • https://t.me/clickhouse_ru
    > (упрощённо) У нас есть рейсы по заказам с мунициаплитетом и назначенными на них машинами (municipality_uuid -> order_uuid -> run_uuid -> vehicle_uuid)

    Вы обеспечиваете рейсами муниципалитеты небольшой галактики?) если вам необходимо использовать 16 байтовый айди?

    > для того чтобы иметь актуальный vehicle_uuid для каждого рейса в соответствии с последними изменениями

    Почему не replacingMergeTree

    И сколько у вас вообще строк в таблице?
  • https://t.me/clickhouse_ru
    юиды с легаси пошли
    replacingMergeTree если я правильно понимаю - удаляет записи в фоне, а не сразу. Таким образом можем получить дубликаты, что не подходит учитывая что по этой табличке будем потом составлять отчёты и машины которые были заменены на рейсе не должны попасть в пересчёт
  • https://t.me/clickhouse_ru
    MV и тд это тоже просто insert trigger и удаляет в фоне

    https://kb.altinity.com/altinity-kb-schema-design/materialized-views/
  • https://t.me/clickhouse_ru
    выбирайте последние данные всегда, и у вас не будет дубликатов
  • https://t.me/clickhouse_ru
    используйте SELECT ... FINAL
    дубликаты будут удаляться из результатов выборки
  • https://t.me/clickhouse_ru
    а FINAL сильно влияет на производительность запроса ?
  • https://t.me/clickhouse_ru
    а сколько строк у вас в таблице? может вам clickhouse вообще не нужен?
  • https://t.me/clickhouse_ru
    https://kb.altinity.com/altinity-kb-queries-and-syntax/altinity-kb-final-clause-speed/

    https://kb.altinity.com/engines/mergetree-table-engine-family/replacingmergetree/

    Зависит от обстоятельств
  • https://t.me/clickhouse_ru
    от нескольких сотен до пара тысяч ордеров в день, в каждом из них по сотне рейсов
  • https://t.me/clickhouse_ru
    у меня около трёх миллиардов, но вопрос не про меня. Я тоже использую MV у которых данные схлопываются. и почему-то FINAL не использую, хотя наверное можно было бы попробовать.
  • https://t.me/clickhouse_ru
    спасибо, проверим на наших кейсах после обновления до свежей lts
  • https://t.me/clickhouse_ru
    я не про MV я про ReplacingMergeTree
    выборка из этой таблицы если у вас возможны дубликаты в разных вставках, должна быть с FINAL
    либо всякие там any, argMin , argMax функции использовать
  • https://t.me/clickhouse_ru
    да, я как раз использую argMax.
  • https://t.me/clickhouse_ru
    @KitegGrad #261807 09:01 AM, 19 Mar 2022
    В моём случае проблема в том что запросы для вьюх работают в рамках вставляемых данных, т.е. если у меня есть вьюха с массивом машин для ордера - в него будут попадать все изменения по vehicle_uuid
  • https://t.me/clickhouse_ru
    @KitegGrad #261808 09:01 AM, 19 Mar 2022
    А нужно чтобы попадали только последние по updated_at
  • https://t.me/clickhouse_ru
    @KitegGrad #261809 09:03 AM, 19 Mar 2022
    т.е. сначала нужно argMaxState(vehicle_uuid, updated_at) GROUP BY order_uuid, run_uuid и результаты этого в массив groupUniqArrayMerge(vehicle_uuid) GROUP BY order_uuid
  • https://t.me/clickhouse_ru
    @KitegGrad #261810 09:03 AM, 19 Mar 2022
    что-то типа такого
  • https://t.me/clickhouse_ru
    А чем собственно может помочь ReplacingMergeTree?
    Из-за того что запрос во вьюхах выполняется только в рамках вставляемых данных - в массив во вьюхе будут попадать все значения, т.к. массив то сам из себя старые значения удалять не будет
  • @AndyAMikhaylov #261814 02:37 PM, 19 Mar 2022
    Коллеги, приветствую
    Мб невнятно сформулирую - прошу строго не судить
    ВОПРОС: как сформировать запрос по переменному числу полей таблицы в зависимости от значения полей этой таблицы
    типа (фантазирую):
    SELECT a_1, a_2 , ..., а_{TOT}, TOT from T where TOT<5
  • @1382671541 #261815 02:40 PM, 19 Mar 2022
    может, эта функция поможет
    https://clickhouse.com/docs/en/sql-reference/statements/select/#columns-expression
    SELECT Query

    SELECT Query SELECT queries perform data retrieval. By default, the requested data is returned to the client, while in c

  • @AndyAMikhaylov #261816 02:45 PM, 19 Mar 2022
    спс большое - буду пробовать
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261814 #261817 03:07 PM, 19 Mar 2022
    ага, в результате такого запроса вы получите разное количество столбцов в разных строках. Нет, так оно не работает.
    Все операторы вычисления колонок (columns, untuple, etc) - работают при компиляции запроса, как будто вы компилируете программу на C++ с её классами, структурами и директивами препроцессора. Во время выполнения запроса вычисляются строки, а набор колонок уже не меняется.
  • можно все колонки собрать в array, а потом для каждой строки передать значение TOT в arrayResize
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261818 #261819 03:30 PM, 19 Mar 2022
    да, массивы - верный путь. Они полностью динамичны, можно слайсить, ресайзить, объединять, разделять, и вобще делать все что угодно :)
  • @garikanet #261821 07:55 PM, 19 Mar 2022
    Для пользователей tabix.io, сейчас домен может работать не стабильно.
    Reg.Ru сейчас его разделегировал без внятных объяснений.
  • 20 March 2022 (17 messages)
  • https://t.me/clickhouse_ru
    @DBusAI #261828 10:49 AM, 20 Mar 2022
    Всем привет. А расскажите плиз что с SQLGraph (прототипы от Amos Bird) в CH ? Есть ли планы добавить в main?
  • https://t.me/clickhouse_ru
    @eonae_white #261830 01:27 PM, 20 Mar 2022
    Коллеги, подскажите пожалуйста, что делаю не так:
  • https://t.me/clickhouse_ru
    @eonae_white #261831 01:28 PM, 20 Mar 2022
    к кролику приконнектился, вроде всё норм. Из доки следует, что после создания мат. представления данные должны потечь из кролика в таблицу api_requests, но этого не происходит
  • https://t.me/clickhouse_ru
    @eonae_white #261832 01:29 PM, 20 Mar 2022
    в очередь сообщения идут, консюмер есть. Но сообщения копятся
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @pborisovich94 #261836 02:25 PM, 20 Mar 2022
    Всем привет!
    Подскажите пожалуйста, есть-ли ещё какие-нибудь операторы или способы для управления операциями (запросами) кроме KILL QUERY/MUTATION?
    Спасибо!
  • https://t.me/clickhouse_ru
    UPDATE: посмотрел логи clickhouse, увидел ошибку формата. Поменял на JSONEachRow, данные пошли. Теперь новая проблема. Любой SELECT выдаёт всегда ровно 9 записей..
  • А каким образом хотите влиять на запросы? Kill query не так сильно влияет
  • https://t.me/clickhouse_ru
    На данный момент больше интересует именно остановка текущих и запланированных (если есть) запросов, мутаций. Возможно есть какое-то изменение действий "на ходу".
  • Kill query не обязательно убьёт запрос(
    Не на всех этапах выполнения запроса он может остановиться
  • https://t.me/clickhouse_ru
    В документации этого не описано. Где можно подробнее почитать об этом? А какой способ гарантированно "убьёт" запрос?
  • Только рестарт сервера гарантированно убъёт запрос)
  • https://t.me/clickhouse_ru
    Ага понял, но не в случае KILL MUTATION, так?) Судя по документации, даже после рестарта он продолжит выполнение)
  • Если сделать kill mutation + рестарт, в теории не должно продолжить, но я с таким ещё не сталкивался в реальности. Только kill query не работающий видел)
  • https://t.me/clickhouse_ru
    Понял, спасибо!)
  • @lexandrop #261847 03:23 PM, 20 Mar 2022
    Привет. Обратил внимание, что на ноде CH начало расти занятое место на диске. Обнаружил, что максимальный размер (35Гб+) имеет /var/lib/clickhouse/store/1c5/1c5c7529-7891-4ea1-b091-96c89353e5ff

    В самом CH:
    SELECT database,name,data_paths,total_bytes FROM system.tables WHERE has(data_paths,'/var/lib/clickhouse/store/1c5/1c5c7529-7891-4ea1-b091-96c89353e5ff/') FORMAT Vertical;
    ...
    Row 1:
    ──────
    database: system
    name: trace_log
    data_paths: ['/var/lib/clickhouse/store/1c5/1c5c7529-7891-4ea1-b091-96c89353e5ff/']
    total_bytes: 19907854

    1 rows in set.

    То есть, если я правильно понимаю - упомянутая директория используется только для данных таблицы system.trace_log, на диске она занимает 35Гб, а CH размер таблицы видит как ~ 20 Мб.

    Вопросы:
    1. Правильно ли я трактую те данные, что вижу?
    2. Если да - могу ли я исправить эту проблему без перезапуска CH?
  • https://t.me/clickhouse_ru
    UPDATE: никакой мистики, просто там реально было только 9 сообщений. Смутило то, что они всё выбирались в разном порядке - создало иллюзию движения
  • 21 March 2022 (71 messages)
  • https://t.me/clickhouse_ru
    Select from columns('a\_[0-5]) from t
  • https://t.me/clickhouse_ru
    @picachulovesyou #261852 05:56 AM, 21 Mar 2022
    Всем привет, есть ли возможность конвертировать string в название колонки? Или как нибудь использовать string как название колонки?
  • https://t.me/clickhouse_ru
    columns
  • https://t.me/clickhouse_ru
    Спасибо
  • @evgenyanother #261855 06:43 AM, 21 Mar 2022
    Всем привет, пытаюсь выгрузить данные из логс апи в ch (в облаке). использую это решение: https://github.com/yndx-metrika/logs_api_integration/blob/master/README_RU.md

    на этапе запуска программы сразу вылетает такая ошибка:
    'import sitecustomize' failed; use -v for traceback
    Traceback (most recent call last):
    File "metrica_logs_api.py", line 2, in <module>
    import logs_api
    File "/home/jupyter/work/resources/logs_api_integration/logs_api.py", line 4, in <module>
    import requests
    ImportError: No module named requests

    С чем это может быть связано?
    logs_api_integration/README_RU.md at master · yndx-metrika/logs_api_integration

    Script for integration with Logs API. Contribute to yndx-metrika/logs_api_integration development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @NTMoni ↶ Reply to #261855 #261856 06:50 AM, 21 Mar 2022
    Добрый день, требуется установить модуль requests
  • https://t.me/clickhouse_ru
    @shakhov #261857 06:54 AM, 21 Mar 2022
    Добрый день. Настраиваем проброс данных из MSSQL в CH. Наладили ODBC драйвер и создали несколько словарей, которые берут данные из запросов в MSSQL.
    Таблицы в источнике большие, поэтому словари сделали только для подтягивания GUID-ов, а сбор данных, по задумке, должен был быть в материализованном представлении по джойна табличной функции ODBC и значений словаря, содержащим те же GUID-ы из той же таблицы.

    В итоге видим: словари обновляются, а материализованное представление не реагирует на пополнение таблиц на движке Dictionary и потому не обогащается новыми данными из MSSQL.

    Что не так? В чем мы просчитались? Может что-то забыли?
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261857 #261858 06:57 AM, 21 Mar 2022
    не очень понятный вопрос. чтобы не гадать - лучше покажите как вы создаете MV
  • https://t.me/clickhouse_ru
    Если не изменяет память, матвью реагирует на инсерт только в самом кликхаусе. А у вас внешний источник, который подключен как Dictionary.
  • @barmalei07 #261861 07:04 AM, 21 Mar 2022
    Привет! Ребят, подскажите, пожалуйста, какой интерфейс лучше всего установливать для кликхауса? И какой визуализотор(для графиков) используете?
  • Если у вас источник, то он не будет реагировать, mv: after insert trigger
  • redash
  • благодарю
  • https://t.me/clickhouse_ru
    CREATE MATERIALIZED VIEW thanatos.OrderHeadersAzure2V2

    ENGINE = ReplacingMergeTree
    PARTITION BY toYYYYMM(OrderTime)
    ORDER BY
    (***)
    SETTINGS index_granularity = 8192 AS
    SELECT
    ***
    FROM
    thanatos.Orders_SERVICE_DICT AS o --это словарь, который обновляется
    INNER JOIN odbc('DSN=Thanatos;Uid=***;Pwd=***',
    'Documents',
    'OrderHeadersAzure2V2') AS oha ON
    toUUIDOrZero(oha.OrderId) = o.OrderId
  • https://t.me/clickhouse_ru
    но ведь словарь обновляется и это видно в таблице sysnem.dictionary. Или тут по-другому работает?
  • https://t.me/clickhouse_ru
    прошу прощения, не понимаю. Можно чуть подробней?
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261865 #261868 07:14 AM, 21 Mar 2022
    вам правильно сказали - первая таблица в MV/select - должна быть нормальной таблицей, куда идут обычные инсерты. MV работает над строками в одном инсерте, а вовсе не данными из таблицы. Смотрите выше по чату мильен вопросов и ответов что такое MV и как оно работает
  • https://t.me/clickhouse_ru
    ну, смотрите в SELECT count(), active system.parts WHERE table='trace_log' GROUP BY active
    может там старые данные какие то которые скоро удаляться сми
    \
  • https://t.me/clickhouse_ru
    Насколько я знаю, представление словаря в виде таблице Dictionary это что-то вроде синтаксического сахара. Обычно со словарем работают через dictget. У вас данные обновляются во внешнем источнике, вставки в самом кликхаусе не было, именно поэтому триггер не срабатывает.
  • https://t.me/clickhouse_ru
    правильно ли я понимаю, что мне никак не получится автоматизировать этот процесс (добавление данных из MSSQL) внутри кликхауса, не прибегая к внешним скриптам?
  • https://t.me/clickhouse_ru
    Точно не знаю состояние дел в новых версия, но в 21.8 - нельзя.
  • Только, если Вы будете данные из MSSQL сами добавлять в CH. А через словари CH может только читать данные, кешируя их на своей стороне для более быстрого доступа к ним через словарные функции.
  • https://t.me/clickhouse_ru
    @bralbral @bvt123 @vvvjhaq Спасибо.
  • https://t.me/clickhouse_ru
    @nndii ↶ Reply to #261739 #261875 07:33 AM, 21 Mar 2022
    Может кто-то знает сегодня? 👉🏻👈🏿
  • https://t.me/clickhouse_ru
    думаю стоит написать Issue на гитхаб о неконсистентном поведении и привести минимально воспроизводимый SQL
  • https://t.me/clickhouse_ru
    @BobrD #261877 07:59 AM, 21 Mar 2022
    Может кто-нибудь дать статью и видео по построению HA (High Availability) кластера Clickhouse. В документации я нашёл только описание репликации, да и то не для всех движков таблиц. Те несколько первых статей что я сходу нашёл в инете, опять же описывают настройку репликации. Но репликация - это не HA.
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261877 #261878 08:15 AM, 21 Mar 2022
    репликация - это значимая часть HA.
    У вас есть привычный всем haproxy, keepalived и репликация - чего ещё не хватает?
  • спасибо, а вот это сообщение можно понимать, как факт успешной установки модуля?
  • @evgenyanother #261880 08:25 AM, 21 Mar 2022
    программу выполнить не дает все равно
  • https://t.me/clickhouse_ru
    @BobrD ↶ Reply to #261878 #261881 08:26 AM, 21 Mar 2022
    всего хватает, но хотелось бы готовую инструкцию поиметь, которую быстрее под себя подогнать, чем с нуля разбиратся, т.к. репликацию на Clickhouse я никогда не настраивал, всё что до этого ставил , обычный standalone А еще может быть есть какие-то другие интересные варианты, не haproxy, keepalived
  • https://t.me/clickhouse_ru
    @NTMoni ↶ Reply to #261879 #261882 08:31 AM, 21 Mar 2022
    Я бы попробовал установить реквест сразу в Анаконду.
    В "Anaconda Prompt" установить через pip
  • Я в облаке через datasphere, там вроде так не получится
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #261881 #261886 09:09 AM, 21 Mar 2022
    материалов в интернете навалом. Начиная с документации. Если любите видео можно попробовать тут - https://www.youtube.com/watch?v=4DlQ6sVKQaA
    Introduction to the Mysteries of ClickHouse Replication

    Built-in replication is a powerful #ClickHouse feature that helps scale #DataWarehouse performance as well as ensure high availability. In this webinar (July 31, 2019), Robert Hodges and Altinity Engineering Team introduce how replication works internally, explain the configuration of clusters with replicas, and show you how to set up and manage #ZooKeeper, which is necessary for replication to function. We finish off by showing useful replication tricks, such as utilizing replication to migrate data between hosts. Join us to become an expert on this important subject! Speaker Bio: Robert Hodges is CEO of Altinity, which offers enterprise support for ClickHouse. He has over three decades of experience in #DataManagement spanning 20 different #DBMS types. ClickHouse is his current favorite. ;) Presentation slides for this webinar can be found here: https://bit.ly/2KO9lIY #OpenSource ----------------- Enjoy more value-packed Altinity webinars here: https://www.altinity.com/webinarspage Or check out ClickHouse community events here: https://www.altinity.com/events ----------------- Learn more about Altinity! Site: https://www.altinity.com LinkedIn: https://www.linkedin.com/company/altinity/ Twitter: https://twitter.com/AltinityDB

  • https://t.me/clickhouse_ru
    @ARyndin #261887 09:35 AM, 21 Mar 2022
    Добрый день. Подскажите, когда можно ожидать релиз 22.3 в https://repo.yandex.ru/clickhouse/? На гитхабе уже есть :)
  • https://t.me/clickhouse_ru
    никогда
    теперь все на https://packages.clickhouse.com/
    переехали на jfrog artifactory
  • https://t.me/clickhouse_ru
    благодарочка! вот этого вообще не знал
  • https://t.me/clickhouse_ru
    https://clickhouse.com/docs/en/getting-started/install/

    заодно и образы docker переехали на https;//hub.docker.com/r/clickhouse/clickhouse-server
    Installation | ClickHouse Documentation

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

  • @BruceWayne_100 #261892 09:50 AM, 21 Mar 2022
    Всем привет, у меня есть набор триггеров (скажем, выручка упала на 30%), я хочу чтобы по этому триггеру и ему подобным информация вида - дата, значение и описание триггера сыпалась в другую таблицу кх, как это сделать?
  • @kazansky85 #261895 10:09 AM, 21 Mar 2022
    Подскажите, как можно ускорить выборку из SummingMergeTree? В сутки примерно +1 млрд записей в таблицу. ORDER BY достаточно большой, поэтому задал PRIMARY KEY по первым двум полям (типы DateTime и IPv4), т.к. выборка по ним идёт больше всего.
    Знаю, что можно добавить индексов в таблицу, но не особо помогают. Может, я их неправильно готовлю, не пойму.
    В среднем, запросы выполняются от 4-5 секунд, в зависимости от выбранного интервала времени. Почему грешу на индекс - вижу в SELECT count(), что вытаскивается 150 тысяч строк, а в запросе Processed 5.21 million rows, т.е. индекс явно не используется.
  • нужны детали, например ДДЛ таблицы и запрос
  • https://t.me/clickhouse_ru
    @dmitriynvkv #261897 10:15 AM, 21 Mar 2022
    Всем привет, кто то пользовался tablum или holistics как bi для CH? Что устраивает что нет?
  • Тут вопрос в том, как Вы будете определять, что какое-то событие наступило? Если по какому-то срезу уже имеющихся данных в таблице, то средствами CH сделать не получится.
  • В питоне
  • @BruceWayne_100 #261901 10:19 AM, 21 Mar 2022
    Просто с помощью проверки условия
  • Тогда в чем вопрос? Получаете нужные данные из одной таблицы и заливаете нужные данные в другую таблицу.
  • @BruceWayne_100 #261903 10:20 AM, 21 Mar 2022
    Ну как корректно создавать и класть данные в питон через кх
  • ClickHouse and Python: Getting to Know the Clickhouse-driver Client

    Python is a force in the world of analytics due to powerful libraries like numpy along with a host of machine learning frameworks. ClickHouse is an increasingly popular store of data. As a Python data scientist you may wonder how to connect them. This post contains a review of the clickhouse-driver client.  It’s a solidly engineered module that is easy to use and integrates easily with standard tools like Jupyter Notebooks and Anaconda.  Clickhouse-driver is a great way to jump into ClickHouse Python connectivity.

  • И тут еще гляньте ссылки на клиентские библиотеки - https://clickhouse.com/docs/ru/interfaces/third-party/client-libraries/
    Клиентские библиотеки от сторонних разработчиков | Документация ClickHouse

    Клиентские библиотеки от сторонних разработчиков Disclaimer Яндекс не поддерживает перечисленные ниже библиотеки и не пр

  • @BruceWayne_100 #261906 10:27 AM, 21 Mar 2022
    Спасибо большое!
  • https://t.me/clickhouse_ru
    @vladenisov #261907 11:00 AM, 21 Mar 2022
    Привет!

    Подскажите, пожалуйста, как безопасно обновить Enum колонку? Схема такая: Distributed -> Buffer -> ReplicatedMergeTree. Пытался обновлять сначала Buffer, потом Replicated и наоборот – ловил кучу ошибок из-за неконстистентности данных, и помогал только рестарт сервера, чтобы сбросить Buffer.
  • https://t.me/clickhouse_ru
    @Hardstep83 #261909 11:17 AM, 21 Mar 2022
    Коллеги есть кейс:
    Существует некая таблица (engine = MergeTree), куда мы записываем все события приходящих сообщений и их атрибутный состав. Таблица 85 столбцов. Данные могут обновляться не инкрементно, ввиду этого для каждой строки выделен tx_id числовой идентификатор сессии в рамках которой была вставлена строка И есть отдельная таблица с 2мя столбцами - сущность 1ой таблицы и актуальный идентификатор сессии tx_id (таблица событий).
    Над таблицей событий словарь в памяти (автообновление выставлено - в целом тянет).
    При выборке из основной таблицы неактуальные строки отфильтровываются при неявном соединении со словарем событий (dictGet по ключу - сущности основной витрины, где tx_id - атрибут).

    Проблемы:
    - Поскольку данные могут быть обновлены/удалены, по существующей в таблице сущности, просто дописывать данные в таблицу нельзя.
    - Поскольку точечные обновления и удаления данных тяжелая операция, + асинхронная операция - тяжело поддерживать с таким механизмом консистентность данных
    - При размере словаря 34 млн+ значений и схеме хранения complex_key_hashed, поскольку ключ UUID наблюдается задержка 3-4 секунды на стадии фильтрации.
    - Смена ключей сортировки и партиционирования основной таблицы (+ индексы по ключевым полям) результата не дало, поскольку кейс использования - выбрать все, изредка фильтрация по территориям.
    - Более быстрой Схемы без словаря событий пока не придумал.

    Что можете посоветовать по способам обновления таблицы?
  • @rikkir #261911 12:09 PM, 21 Mar 2022
    2022.03.21 14:05:23.728342 [ 883 ] {} <Error> void DB::MergeTreeBackgroundExecutor<DB::MergeMutateRuntimeQueue>::routine(DB::TaskRuntimeDataPtr) [Queue = DB::MergeMutateRuntimeQueue]: Code: 76. DB::ErrnoException: Cannot open file /data/fast/store/367/367d6e41-2e10-4abb-814b-14e01734da21/tmp_merge_20220318_46336_50378_112/sumahodekiruphp ... и тут длинное название файла

    errno: 36, strerror: File name too long. (CANNOT_OPEN_FILE), Stack trace (when copying this message, always include the lines below):

    уточните плз как убить этот запрос ?
  • https://t.me/clickhouse_ru
    @manukek #261915 02:34 PM, 21 Mar 2022
    Joined.
  • @dj_mixer #261916 03:07 PM, 21 Mar 2022
    добрый день, у кого есть идеи, как можно применить аггрегатные функции с двумя аргументами используя синтаксис COLUMNS() APPLY()
    ?
    что можно написать в APPLY?

    например для spark_bar

    https://github.com/ClickHouse/ClickHouse/blob/e835671c881438ab37d619d04e07b40edc6c05bf/tests/queries/0_stateless/02016_aggregation_spark_bar.sql
  • https://t.me/clickhouse_ru
    Там же можно лямбду передать
  • с версии 21.10 можно через лямбду
    WITH number DIV 50 AS k, number % 50 AS value SELECT k, COLUMNS(value) APPLY x -> sparkbar(50, 0, 99)(number, x) FROM numbers(100) GROUP BY k ORDER BY k;
  • спасибо ) век живи век учись!
  • https://t.me/clickhouse_ru
    @AlexTheDolphin #261921 04:12 PM, 21 Mar 2022
    Коллеги, подскажите. Вижу в system таблицы (metric|query|query_thread)_log_0.
    Откуда берутся таблицы с суффиксом "_0"?
  • https://t.me/clickhouse_ru
    после апдейта версии кх
  • https://t.me/clickhouse_ru
    Получается, при смене схемы таблицы она так ротируется?
  • https://t.me/clickhouse_ru
    После каждого обновления всем системным таблицам подписывается _число и больше не используются они, кроме последней цифры
  • https://t.me/clickhouse_ru
    @AlexTheDolphin #261925 04:20 PM, 21 Mar 2022
    @rasstr0en @konnectrl - спасибо!
  • @examplesuka #261927 07:55 PM, 21 Mar 2022
    С технической точки зрения почему кликхаус не любит джоины?
  • https://t.me/clickhouse_ru
    не было CBO, тк это тяжелая и сложная задача.

    Но уже сделали некий задел под ней
  • @examplesuka #261929 07:57 PM, 21 Mar 2022
    Только из-за этого?
  • https://t.me/clickhouse_ru
    Во многом.
    даже банальная перестановка таблиц в JOIN требует сбора статистики.

    Плюс раньше оптимизации делали на переписывании AST дерева, что было сложным делом и создавало кучу корнер кейсов
  • ну ещё реализация joinа пока только базовый хеш join заточенный
    только на скорость и кушащий много памяти. в этом случае он очень любит join.
    partition-wise join /grace hash join нет.
    merge join нет

    там много всего делать... а сделать правильно ещё и сложно...
  • https://t.me/clickhouse_ru
    @kurahh #261932 09:41 PM, 21 Mar 2022
    Всем привет!
    Подскажите, пожалуйста, как написать функцию, чтобы оставить только те кортежи в example, до которых был кортеж, первый элемент которого равен 1?
  • https://t.me/clickhouse_ru
    arrayFilter(x -> x.1=1)
  • https://t.me/clickhouse_ru
    WITH [(1, 3), (1, 4), (2, 3), (2, 4)] AS ex
    SELECT arrayFilter((x, i) -> (((ex[i - 1]).1) = 1), ex, arrayEnumerate(ex))

    Query id: d2ccaf3f-7018-401e-a4c5-318c8d652b01

    ┌─arrayFilter(lambda(tuple(x, i), equals(tupleElement(arrayElement(ex, minus(i, 1)), 1), 1)), ex, arrayEnumerate(ex))─┐
    │ [(1,4),(2,3)] │
    └─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
  • https://t.me/clickhouse_ru
    @kurahh ↶ Reply to #261934 #261935 09:46 PM, 21 Mar 2022
    Спасибо большое!
  • 22 March 2022 (130 messages)
  • https://t.me/clickhouse_ru
    @sergey_from_riders #261937 01:33 AM, 22 Mar 2022
    Всем привет.
    Расскажите плиз, как в докере сделать команду, чтобы развернуть клихаус на другом порту. у меня 9000 уже php-fpm занят
  • https://t.me/clickhouse_ru
    @sergey_from_riders #261938 01:33 AM, 22 Mar 2022
    docker run -d --name clickhouse_1 --ulimit nofile=262144:262144 -v /opt/clickhouse/log:/var/log/clickhouse-server -v /opt/clickhouse/data:/var/lib/clickhouse yandex/clickhouse-server -p 9008:9000
  • https://t.me/clickhouse_ru
    @sergey_from_riders #261939 01:33 AM, 22 Mar 2022
    не але. просто ничего не запускает
  • https://t.me/clickhouse_ru
    @sergey_from_riders #261940 01:37 AM, 22 Mar 2022
    exitCode=2, image=yandex/clickhouse-server, name=clickhouse_1
  • @vshyshkov #261941 01:49 AM, 22 Mar 2022
    Всем привет
    Одновременное выполнение ALTER TABLE system.query_log MODIFY TTL event_date + INTERVAL 7 DAY; на всех нодах положило весь клайстер ClickHouse, Chproxy отвалился с connection timeout.
    Чтобы можно переконфигурить, чтобы такого больше не было при одновременной чистке логов?
  • https://t.me/clickhouse_ru
    @pxlvgg #261942 02:39 AM, 22 Mar 2022
    хочу отключить вывод логов в /var/log/clickhouse-server
  • https://t.me/clickhouse_ru
    @pxlvgg #261943 02:39 AM, 22 Mar 2022
    как это сделать?
  • how to disable logging in clickhouse?

    I want disable logging in clickhouse. I tried disable sections query_log and query_thread_log in config.xml, but it didn't help me. I tried run sql query: ALTER TABLE system.settings UPDATE log_qu...

  • https://t.me/clickhouse_ru
    @pxlvgg #261945 02:41 AM, 22 Mar 2022
    да я была там, всё равно продолжает выводить
  • https://t.me/clickhouse_ru
    @pxlvgg #261946 02:45 AM, 22 Mar 2022
    Конфигурационные параметры сервера | Документация ClickHouse

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

  • https://t.me/clickhouse_ru
    какая версия clickhouse?
    ALTER TABLE ... MODIFY TTL SETTING materialize_ttl_after_modify=0

    доступно с версии 20.5
    судя по тому что у вас поперло все старые парты обновлять само, то это более раняя версия?
  • @dimaelsky #261948 04:35 AM, 22 Mar 2022
    Всем привет , может немного оффтоп , никто не юзал яндекс танк ? чем сгенерить ammo для теста ?
  • https://t.me/clickhouse_ru
    сильно оффтоп

    но там вроде тесты прямо на питоне можно писать

    https://yandextank.readthedocs.io/en/latest/core_and_modules.html#bfg

    лично я предпочитаю locust.io
    там как то понятнее как тесты пишутся
  • спасибо !🙏
  • @evgenyanother #261951 05:18 AM, 22 Mar 2022
    привет
    при попытке создать таблицу с ch (из logs api метрики) вылетает ошибка:
    OverflowError: string longer than 2147483647 bytes

    что мне можно указать в settings, чтобы, например, исключать такие строки из формирования целевой таблицы
  • https://t.me/clickhouse_ru
    @BMF_RU #261953 07:42 AM, 22 Mar 2022
    Приветствую!
    из командной строки на сервере запускаю команду:

    clickhouse-client --user default --password default --query="insert into DWH.TEST (TEST) FROM INFILE '/etc/clickhouse-client/temp/TEST.CSV' FORMAT TabSeparatedWithNames;" > /etc/clickhouse-client/temp/TEST.LOG

    Ожидал, что в лог попадет результат выполнения команды, или ошибка, если данные не вставлены.
    По факту TEST.LOG пустой. Как перенаправить результата выполнения команды в TEST.LOG?
  • https://t.me/clickhouse_ru
    При вставке чтобы ответ дал ? А он даёт какой то ответ в консоль ?
  • https://t.me/clickhouse_ru
    @BMF_RU ↶ Reply to #261954 #261955 07:46 AM, 22 Mar 2022
    в консоль выводит сколько записей вставлено и время выполнения,
    либо содержимое строки с ошибкой и сообщение об ошибке (в случае ошибки)
  • https://t.me/clickhouse_ru
    может вы не в том формате грузите?
    вам не кажется странным что у вас строка в 2 гигабайта длинной?
  • https://t.me/clickhouse_ru
    &>/log.log

    чтобы все потоки переводились а не только stdout
  • это урл, тип string
  • https://t.me/clickhouse_ru
    и что? действительно 2 гигабайта внутри строки?
  • ну получается что так, данные из логс апи же, значит так записалось (возможно как-то цели аффектят, в 1 строке вижу: "goal://url..." например )
  • поле ym:pv:URL
  • https://t.me/clickhouse_ru
    @BMF_RU ↶ Reply to #261957 #261963 07:57 AM, 22 Mar 2022
    данные вставлены, лог пустой
  • https://t.me/clickhouse_ru
    ну скачайте данные из Logs api и проверьте
  • https://t.me/clickhouse_ru
    --verbose добавьте в параметры
    или
    --progress
  • @vladz_alch #261966 08:11 AM, 22 Mar 2022
    Привет.
    Столкнулся с тем что clickhouse постоянно подъедает память - за месяц вырос с 6Гб до 15 как понять в чем причина такого поведения ? Скоро сожрет вся память на сервере ...
  • https://t.me/clickhouse_ru
    @BMF_RU ↶ Reply to #261965 #261967 08:12 AM, 22 Mar 2022
    не хочет
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @BMF_RU #261969 08:14 AM, 22 Mar 2022
    хм он и без вывода в лог ничего не выводит:
    clickhouse-client --user default --password default --query="insert into DWH.TEST (TEST) FROM INFILE '/etc/clickhouse-client/temp/TEST.CSV' FORMAT TabSeparatedWithNames;"
    просто вставляет строки и все...
  • https://t.me/clickhouse_ru
    @BMF_RU ↶ Reply to #261965 #261970 08:16 AM, 22 Mar 2022
    не работает ни одна из них...
  • https://t.me/clickhouse_ru
    @BMF_RU #261971 08:18 AM, 22 Mar 2022
    сейчас попробую внести ошибку в файл и --stacktrace...
  • https://t.me/clickhouse_ru
    Ну вот я об этом вас сразу и спросил, потому что как я помню clickhouse-client ничего не выводил в консоль у меня ....
  • https://t.me/clickhouse_ru
    @BMF_RU ↶ Reply to #261972 #261973 08:22 AM, 22 Mar 2022
    работает без пробелов сразу после --stacktrace:
    &>/etc/clickhouse-client/temp/TEST.LOG
    Еще бы в случае успеха научится кол-во вставленных записей выводить...
  • https://t.me/clickhouse_ru
    @BMF_RU #261974 08:25 AM, 22 Mar 2022
    судя по документации можно выводить только время выполнения или сообщение об ошибке в случае исключения:
  • https://t.me/clickhouse_ru
    @BMF_RU ↶ Reply to #261965 #261975 08:25 AM, 22 Mar 2022
    этих параметров нет в документации...
  • https://t.me/clickhouse_ru
    @konnectrl #261976 08:28 AM, 22 Mar 2022
    --print-profile-events
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @konnectrl #261978 08:29 AM, 22 Mar 2022
    На английской версии доки больше написано
  • https://t.me/clickhouse_ru
    @shakhov #261979 08:39 AM, 22 Mar 2022
    Добрый день. Может кто знает...
    Вылезает ошибка:
    DB::Exception: Alter of type 'MODIFY_QUERY' is not supported by storage MaterializedView. (NOT_IMPLEMENTED) (version 22.1.3.7 (official build))
    Хотя в документации явно указано что запрос должен работать для материализованных представлений. В чем может быть дело? Заранее спасибо.
  • https://t.me/clickhouse_ru
    @desio05 #261980 08:39 AM, 22 Mar 2022
    Всем привет
    Я правильно понимаю что из-за того как формируется mongodb uri, нет возможности подключаться к кластеру монги
    Получаю ошибку когда указывают список серверов
    Code: 36. DB::Exception: Illegal port passed to function parseAddress: 27017,mongo2:27017,mongo3:27017. (BAD_ARGUMENTS) (version 22.1.2.2 (official build))
    https://github.com/ClickHouse/ClickHouse/blob/master/src/Storages/StorageMongoDB.cpp#L48
    ClickHouse/StorageMongoDB.cpp 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
    Используйте его если при создании материализованного представления не использовалась секция TO [db.]name. Настройка allow_experimental_alter_materialized_view_structure должна быть включена.
  • https://t.me/clickhouse_ru
    clickhouse-client --help
    это документация?
  • https://t.me/clickhouse_ru
    @Khajiit256 #261983 08:53 AM, 22 Mar 2022
    Добрый день.
    Эксплуатируем КХ в lxc-контейнере под управлением Proxmox 6.2 (5.4.44-2-pve) на zfs
    Настройки контейнера:
    * отдельный маунт для /var/lib/clickhouse (30% used)
    * cores: 8
    * memory: 32G
    * swap: 2G
    Версия КХ: version 21.3.2.5 (official build)
    На хосте установлено 196G RAM
    В логах:
    2022.03.21 13:25:10.204986 [ 246 ] {} <Information> Application: Setting max_server_memory_usage was set to 169.72 GiB (188.58 GiB available * 0.90 max_server_memory_usage_to_ram_ratio)

    <…>

    2022.03.21 13:25:10.255529 [ 247 ] {} <Trace> BaseDaemon: Received signal 11

    В конфиге:
    root@at-clickhouse1-main:~# grep -nRH mem /etc/clickhouse-server/
    <…>
    /etc/clickhouse-server/config.xml:250: <max_server_memory_usage>0</max_server_memory_usage>

    Я правильно понимаю что КХ неверно определяет объем памяти и падает при попытке откусить больше, чем разрешено?
  • https://t.me/clickhouse_ru
    Ну вы указали 0, обычно это означает бесконенчость
  • https://t.me/clickhouse_ru
    @konnectrl #261985 08:57 AM, 22 Mar 2022
    Например укажите 20G
  • https://t.me/clickhouse_ru
    Это конфиг дефолтный, наши правки в config.d/
    Спасибо
  • https://t.me/clickhouse_ru
    2022.03.21 13:25:10.255529 [ 247 ] {} <Trace> BaseDaemon: Received signal 11
    это вообще с памятью доступной не связано, это сегфолт, когда процесс пытается обратиться по адресу, который процессу не принадлежит

    там дальше в логе stacktrace
    покажите его полностью
  • https://t.me/clickhouse_ru
    2022.03.21 13:25:10.255529 [ 247 ] {} <Trace> BaseDaemon: Received signal 11
    2022.03.21 13:25:10.262745 [ 364 ] {} <Fatal> BaseDaemon: ########################################
    2022.03.21 13:25:10.262828 [ 364 ] {} <Fatal> BaseDaemon: (version 21.3.2.5 (official build), build id: 179BDBBF228667883DFCD900B8CD498272FC044F) (from thread 344) (no query) Received signal Segmentation fault (11)
    2022.03.21 13:25:10.264261 [ 364 ] {} <Fatal> BaseDaemon: Address: 0x7f1400007f24 Access: read. Address not mapped to object.
    2022.03.21 13:25:10.264305 [ 364 ] {} <Fatal> BaseDaemon: Stack trace: 0xf6063e3 0xf605fd7 0xf6057f6 0xf5d13f5 0xf5cd510 0xf393478 0xf7c05ad 0xf30d849 0xe9cfd96 0xe9cef21 0x8652408 0x86543bf 0x864f9df 0x8653473 0x7f14c0c1bfa3 0x7f14c0b4c4cf
    2022.03.21 13:25:10.264961 [ 364 ] {} <Fatal> BaseDaemon: 1. boost::multi_index::detail::ordered_index_impl<boost::multi_index::global_fun<std::__1::shared_ptr<DB::IMergeTreeDataPart const> const&, DB::MergeTreePartInfo const&, &(DB::MergeTreeData::dataPartPtrToInfo(std::__1::shared_ptr<DB::IMergeTreeDataPart const> const&))>, std::__1::less<DB::MergeTreePartInfo const>, boost::multi_index::detail::nth_layer<1, std::__1::shared_ptr<DB::IMergeTreeDataPart const>, boost::multi_index::indexed_by<boost::multi_index::ordered_unique<boost::multi_index::tag<DB::MergeTreeData::TagByInfo, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::multi_index::global_fun<std::__1::shared_ptr<DB::IMergeTreeDataPart const> const&, DB::MergeTreePartInfo const&, &(DB::MergeTreeData::dataPartPtrToInfo(std::__1::shared_ptr<DB::IMergeTreeDataPart const> const&))>, mpl_::na>, boost::multi_index::ordered_unique<boost::multi_index::tag<DB::MergeTreeData::TagByStateAndInfo, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::multi_index::global_fun<std::__1::shared_ptr<DB::IMergeTreeDataPart const> const&, DB::MergeTreeData::DataPartStateAndInfo, &(DB::MergeTreeData::dataPartPtrToStateAndInfo(std::__1::shared_ptr<DB::IMergeTreeDataPart const> const&))>, DB::MergeTreeData::LessStateDataPart>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, std::__1::allocator<std::__1::shared_ptr<DB::IMergeTreeDataPart const> > >, boost::mpl::v_item<DB::MergeTreeData::TagByInfo, boost::mpl::vector0<mpl_::na>, 0>, boost::multi_index::detail::ordered_unique_tag, boost::multi_index::detail::null_augment_policy>::in_place(std::__1::shared_ptr<DB::IMergeTreeDataPart const> const&, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<std::__1::shared_ptr<DB::IMergeTreeDataPart const>, std::__1::allocator<std::__1::shared_ptr<DB::IMergeTreeDataPart const> > > > >*, boost::multi_index::detail::ordered_unique_tag) const @ 0xf6063e3 in /usr/bin/clickhouse

    одним куском не вставляется, вставлю блоками
  • https://t.me/clickhouse_ru
    @Khajiit256 #261990 09:05 AM, 22 Mar 2022
    2022.03.21 13:25:10.265074 [ 364 ] {} <Fatal> BaseDaemon: 2. boost::multi_index::detail::ordered_index_impl<boost::multi_index::global_fun<std::__1::shared_ptr<DB::IMergeTreeDataPart const> const&, DB::MergeTreePartInfo const&, &(DB::MergeTreeData::dataPartPtrToInfo(std::__1::shared_ptr<DB::IMergeTreeDataPart const> const&))>, std::__1::less<DB::MergeTreePartInfo const>, boost::multi_index::detail::nth_layer<1, std::__1::shared_ptr<DB::IMergeTreeDataPart const>, boost::multi_index::indexed_by<boost::multi_index::ordered_unique<boost::multi_index::tag<DB::MergeTreeData::TagByInfo, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::multi_index::global_fun<std::__1::shared_ptr<DB::IMergeTreeDataPart const> const&, DB::MergeTreePartInfo const&, &(DB::MergeTreeData::dataPartPtrToInfo(std::__1::shared_ptr<DB::IMergeTreeDataPart const> const&))>, mpl_::na>, boost::multi_index::ordered_unique<boost::multi_index::tag<DB::MergeTreeData::TagByStateAndInfo, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::multi_index::global_fun<std::__1::shared_ptr<DB::IMergeTreeDataPart const> const&, DB::MergeTreeData::DataPartStateAndInfo, &(DB::MergeTreeData::dataPartPtrToStateAndInfo(std::__1::shared_ptr<DB::IMergeTreeDataPart const> const&))>, DB::MergeTreeData::LessStateDataPart>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, std::__1::allocator<std::__1::shared_ptr<DB::IMergeTreeDataPart const> > >, boost::mpl::v_item<DB::MergeTreeData::TagByInfo, boost::mpl::vector0<mpl_::na>, 0>, boost::multi_index::detail::ordered_unique_tag, boost::multi_index::detail::null_augment_policy>::modify_(boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<std::__1::shared_ptr<DB::IMergeTreeDataPart const>, std::__1::allocator<std::__1::shared_ptr<DB::IMergeTreeDataPart const> > > > >*) @ 0xf605fd7 in /usr/bin/clickhouse
  • https://t.me/clickhouse_ru
    @Khajiit256 #261991 09:06 AM, 22 Mar 2022
    2022.03.21 13:25:10.265127 [ 364 ] {} <Fatal> BaseDaemon: 3. bool boost::multi_index::multi_index_container<std::__1::shared_ptr<DB::IMergeTreeDataPart const>, boost::multi_index::indexed_by<boost::multi_index::ordered_unique<boost::multi_index::tag<DB::MergeTreeData::TagByInfo, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::multi_index::global_fun<std::__1::shared_ptr<DB::IMergeTreeDataPart const> const&, DB::MergeTreePartInfo const&, &(DB::MergeTreeData::dataPartPtrToInfo(std::__1::shared_ptr<DB::IMergeTreeDataPart const> const&))>, mpl_::na>, boost::multi_index::ordered_unique<boost::multi_index::tag<DB::MergeTreeData::TagByStateAndInfo, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::multi_index::global_fun<std::__1::shared_ptr<DB::IMergeTreeDataPart const> const&, DB::MergeTreeData::DataPartStateAndInfo, &(DB::MergeTreeData::dataPartPtrToStateAndInfo(std::__1::shared_ptr<DB::IMergeTreeDataPart const> const&))>, DB::MergeTreeData::LessStateDataPart>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, std::__1::allocator<std::__1::shared_ptr<DB::IMergeTreeDataPart const> > >::modify_<DB::MergeTreeData::getStateModifier(DB::IMergeTreeDataPart::State)::'lambda'(std::__1::shared_ptr<DB::IMergeTreeDataPart const> const&)>(DB::MergeTreeData::getStateModifier(DB::IMergeTreeDataPart::State)::'lambda'(std::__1::shared_ptr<DB::IMergeTreeDataPart const> const&)&, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<std::__1::shared_ptr<DB::IMergeTreeDataPart const>, std::__1::allocator<std::__1::shared_ptr<DB::IMergeTreeDataPart const> > > > >*) @ 0xf6057f6 in /usr/bin/clickhouse
  • https://t.me/clickhouse_ru
    @Khajiit256 #261992 09:06 AM, 22 Mar 2022
    2022.03.21 13:25:10.265127 [ 364 ] {} <Fatal> BaseDaemon: 3. bool boost::multi_index::multi_index_container<std::__1::shared_ptr<DB::IMergeTreeDataPart const>, boost::multi_index::indexed_by<boost::multi_index::ordered_unique<boost::multi_index::tag<DB::MergeTreeData::TagByInfo, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::multi_index::global_fun<std::__1::shared_ptr<DB::IMergeTreeDataPart const> const&, DB::MergeTreePartInfo const&, &(DB::MergeTreeData::dataPartPtrToInfo(std::__1::shared_ptr<DB::IMergeTreeDataPart const> const&))>, mpl_::na>, boost::multi_index::ordered_unique<boost::multi_index::tag<DB::MergeTreeData::TagByStateAndInfo, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::multi_index::global_fun<std::__1::shared_ptr<DB::IMergeTreeDataPart const> const&, DB::MergeTreeData::DataPartStateAndInfo, &(DB::MergeTreeData::dataPartPtrToStateAndInfo(std::__1::shared_ptr<DB::IMergeTreeDataPart const> const&))>, DB::MergeTreeData::LessStateDataPart>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, std::__1::allocator<std::__1::shared_ptr<DB::IMergeTreeDataPart const> > >::modify_<DB::MergeTreeData::getStateModifier(DB::IMergeTreeDataPart::State)::'lambda'(std::__1::shared_ptr<DB::IMergeTreeDataPart const> const&)>(DB::MergeTreeData::getStateModifier(DB::IMergeTreeDataPart::State)::'lambda'(std::__1::shared_ptr<DB::IMergeTreeDataPart const> const&)&, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<std::__1::shared_ptr<DB::IMergeTreeDataPart const>, std::__1::allocator<std::__1::shared_ptr<DB::IMergeTreeDataPart const> > > > >*) @ 0xf6057f6 in /usr/bin/clickhouse
    2022.03.21 13:25:10.265173 [ 364 ] {} <Fatal> BaseDaemon: 4. DB::MergeTreeData::modifyPartState(boost::multi_index::detail::bidir_node_iterator<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<std::__1::shared_ptr<DB::IMergeTreeDataPart const>, std::__1::allocator<std::__1::shared_ptr<DB::IMergeTreeDataPart const> > > > >, DB::IMergeTreeDataPart::State) @ 0xf5d13f5 in /usr/bin/clickhouse
  • https://t.me/clickhouse_ru
    @Khajiit256 #261993 09:06 AM, 22 Mar 2022
    2022.03.21 13:25:10.265641 [ 364 ] {} <Fatal> BaseDaemon: 5. DB::MergeTreeData::loadDataParts(bool) @ 0xf5cd510 in /usr/bin/clickhouse
    2022.03.21 13:25:10.265696 [ 364 ] {} <Fatal> BaseDaemon: 6. DB::StorageMergeTree::StorageMergeTree(DB::StorageID const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, DB::StorageInMemoryMetadata const&, bool, DB::Context&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, DB::MergeTreeData::MergingParams const&, std::__1::unique_ptr<DB::MergeTreeSettings, std::__1::default_delete<DB::MergeTreeSettings> >, bool) @ 0xf393478 in /usr/bin/clickhouse
    2022.03.21 13:25:10.265731 [ 364 ] {} <Fatal> BaseDaemon: 7. ? @ 0xf7c05ad in /usr/bin/clickhouse
    2022.03.21 13:25:10.265780 [ 364 ] {} <Fatal> BaseDaemon: 8. DB::StorageFactory::get(DB::ASTCreateQuery const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, DB::Context&, DB::Context&, DB::ColumnsDescription const&, DB::ConstraintsDescription const&, bool) const @ 0xf30d849 in /usr/bin/clickhouse
    2022.03.21 13:25:10.265829 [ 364 ] {} <Fatal> BaseDaemon: 9. DB::createTableFromAST(DB::ASTCreateQuery, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, DB::Context&, bool) @ 0xe9cfd96 in /usr/bin/clickhouse
    2022.03.21 13:25:10.265852 [ 364 ] {} <Fatal> BaseDaemon: 10. ? @ 0xe9cef21 in /usr/bin/clickhouse
    2022.03.21 13:25:10.265891 [ 364 ] {} <Fatal> BaseDaemon: 11. ThreadPoolImpl<ThreadFromGlobalPool>::worker(std::__1::__list_iterator<ThreadFromGlobalPool, void*>) @ 0x8652408 in /usr/bin/clickhouse
    2022.03.21 13:25:10.265936 [ 364 ] {} <Fatal> BaseDaemon: 12. ThreadFromGlobalPool::ThreadFromGlobalPool<void ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda1'()>(void&&, void ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda1'()&&...)::'lambda'()::operator()() @ 0x86543bf in /usr/bin/clickhouse
    2022.03.21 13:25:10.265962 [ 364 ] {} <Fatal> BaseDaemon: 13. ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0x864f9df in /usr/bin/clickhouse
    2022.03.21 13:25:10.265985 [ 364 ] {} <Fatal> BaseDaemon: 14. ? @ 0x8653473 in /usr/bin/clickhouse
    2022.03.21 13:25:10.266016 [ 364 ] {} <Fatal> BaseDaemon: 15. start_thread @ 0x7fa3 in /lib/x86_64-linux-gnu/libpthread-2.28.so
    2022.03.21 13:25:10.266053 [ 364 ] {} <Fatal> BaseDaemon: 16. clone @ 0xf94cf in /lib/x86_64-linux-gnu/libc-2.28.so
  • https://t.me/clickhouse_ru
    @Khajiit256 #261994 09:06 AM, 22 Mar 2022
    Все
  • https://t.me/clickhouse_ru
    для этого есть pastebin.com, на будущее
  • https://t.me/clickhouse_ru
    Забыл про него, каюс.

    В clickhouse.err.log дополнительно есть такое:
    2022.03.21 13:25:10.198344 [ 246 ] {} <Warning> Application: Failed mlock: errno: 12, strerror: Cannot allocate memory
    2022.03.21 13:25:10.262745 [ 364 ] {} <Fatal> BaseDaemon: ########################################
    2022.03.21 13:25:10.262828 [ 364 ] {} <Fatal> BaseDaemon: (version 21.3.2.5 (official build), build id: 179BDBBF228667883DFCD900B8CD498272FC044F) (from thread 344) (no query) Received signal Segmentation fault (11)
    2022.03.21 13:25:10.264261 [ 364 ] {} <Fatal> BaseDaemon: Address: 0x7f1400007f24 Access: read. Address not mapped to object.
    2022.03.21 13:25:10.264305 [ 364 ] {} <Fatal> BaseDaemon: Stack trace: 0xf6063e3 0xf605fd7 0xf6057f6 0xf5d13f5 0xf5cd510 0xf393478 0xf7c05ad 0xf30d849 0xe9cfd96 0xe9cef21 0x8652408 0x86543bf 0x864f9df 0x8653473 0x7f14c0c1bfa3 0x7f14c0b4c4cf
  • https://t.me/clickhouse_ru
    @Khajiit256 #261997 09:13 AM, 22 Mar 2022
    И дальше очень пожее на простынку из основногог лога
  • https://t.me/clickhouse_ru
    сервер создает какую то таблицу таблицы
    9. DB::createTableFromAST

    потом начинает читать данные
    5. DB::MergeTreeData::loadDataParts

    у вас что-то с данными
    4. DB::MergeTreeData::modifyPartState

    проверьте dmesg
    диски точно впорядке?

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

    как вариант если таблиц не очень много

    то переносите файлы из /var/lib/clickhouse/metadata/<ваша_бд>/имя_таблицы.sql
    по одной и пытайтесь запустить сервер
    как запустится будет понятно что за таблица сломана

    дальше пытайтесь эти sql файлы через
    clickhouse-client --database=имя_бд < /tmp/имя_таблицы.sql исполнить
  • https://t.me/clickhouse_ru
    @konnectrl #262000 09:55 AM, 22 Mar 2022
    Приветствую, как сделать, чтобы сначала выполнялся WHERE, а только потом обращения к PostgreSQL
    К примеру мне нужно взять 100 id'шников из базы PostgreSQL, телефон и т.д, которые упоминаются в таблице clickhouse.
    SELECT id, phone FROM postgresql() WHERE id in (SELECT id_user FROM clickhouse_table)
    Такой запрос отправляется в PostgreSQL и пытается выгрести всю таблицу, а потом сделать WHERE
    Если сделать такой запрос:
    SELECT id,phone FROM postgresql() where id in (10,12,15,78842342,123123)
    То он не пытается выгрузить, он сразу передаёт запрос с where.
    Я попытался через WITH, но не получилось.
  • https://t.me/clickhouse_ru
    @mixanik070113 #262001 10:00 AM, 22 Mar 2022
    Имеется таблица pg_stats на движке PostgreSQL.

    Задача сливать данные из ClickHouse в таблицу PostgreSQL, в агрегированном виде.
    Сырые данные в ClickHouse в течение дня пополняются, поэтому записи в PostgreSQL нужно апдейтить при возникновении ON CONFLICT при инсерте.

    Вопрос: Есть ли возможность сделать ON CONFLICT DO UPDATE при инсерте в таблицу на движке PostgreSQL из ClickHouse? Или может быть есть какие-нибудь другие решения для такой задачи?

    Ниже SQL который хотелось бы чтобы работал:
    INSERT INTO pg_stats (
    stream_id,
    date_day,
    request,
    response,
    show,
    click
    ) SELECT
    stream_id,
    date_day,
    sum(request) as request,
    sum(response) as response,
    sum(show) as show,
    sum(click) as click
    FROM stats
    GROUP BY stream_id, date_day
    ON CONFLICT (stream_id, date_day) DO UPDATE
    SET
    request = request + sum(request),
    response = response + sum(response),
    show = show + sum(show),
    click = click + sum(click);
  • https://t.me/clickhouse_ru
    dmesg на диски/контроллер не жалуется
    zpool scrub завершился успешно

    Меня смущает то, что с тем же таймстемпом оно таки говорит Application: Failed mlock: errno: 12, strerror: Cannot allocate memory.

    Сделал клона, клон стартует нормально.

    Таблица ровно одна в default базе
  • https://t.me/clickhouse_ru
    @Krisantis #262005 10:15 AM, 22 Mar 2022
    Всех приветствую, подскажите как сделать двойной перебор вложенных массивов Array(Array(Int16))?
    что-то типа:
    WITH [[-1,2,-3],[-4,5,6]] as d_arr
    SELECT
    arrayFilter( (for y in d_arr) -> y > 0,
    d_arr) as res_arr
    arrayJoin - не предлагать
  • https://t.me/clickhouse_ru
    А тебе обязательно сохранить вложенность массивов?
  • https://t.me/clickhouse_ru
    да
  • https://t.me/clickhouse_ru
    Ну можно тогда сделать arrayMap + arrayFilter внутри него, но это не очень эффективно
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    map к сожалению не получится. Я немног оупросил пример, на самом деле там вот такой массив: Array(Tuple( String, String, Array(Tuple( Nullable(String), Nullable(String), Nullable(String)))))
    как вы видите мне нужно перебирать вложенный массив
  • https://t.me/clickhouse_ru
    В смысле не получится? Тебе нужно мутировать список, в котором лежат списки. Суть мутации - фильтрация вложенных списков.

    map
    (\subArray -> filter predicate subArray)
    arrayWithSubArrays
  • https://t.me/clickhouse_ru
    при чтении какого то парта в /var/lib/clickhouse/data/default/table/
    происходит косяк
  • https://t.me/clickhouse_ru
    Список, вложенный в кортеж из списков?
  • https://t.me/clickhouse_ru
    @ARyndin #262015 10:30 AM, 22 Mar 2022
    Добрый день. А можно ли принудительно включить read-only в кликхаусе?
  • https://t.me/clickhouse_ru
    Это не небольшое упрощение, это буквально две разные задачи.

    Но тут надо брать напрямую через мап по основному списку обращаться к элементу кортежа и его фильтровать с предикатом
  • https://t.me/clickhouse_ru
    Что-то вроде:
    map
    (\tuple ->
    filter
    predicate
    (getArrayFromTuple tuple)
    )
    arrayWithTupleWithArray
  • для кого, роли или юзера?
  • https://t.me/clickhouse_ru
    вот что-то не так делаю
    JSONExtract(_airbyte_data, 'changelog', 'histories',
    'Array(
    Tuple(
    author String,
    created String,
    items Array(
    Tuple(
    field Nullable(String),
    fromString Nullable(String),
    toString Nullable(String) ))))') as histories,
    arrayMap( (x) ->
    Tuple(
    author x.author,
    created x.created,
    items arrayFilter( (y) ->
    y.field = 'status',
    x.items)),
    histories) as res_arr
  • https://t.me/clickhouse_ru
    целиком :) для всех партиций
  • @BruceWayne_100 #262022 10:51 AM, 22 Mar 2022
    всем привет, такой вопрос хочу в питоне делать так чтобы записи поадали в табличку кх, но для этого её надо создать, как на каждом этапе проверять есть ли эта табличка и если нет (для первой итерации) то создать?
  • https://t.me/clickhouse_ru
    Сложно читать и тем более синтаксический разбор делать - не работал с этим в клике. Это паттерн матчинг такой? Логически ход мысли правильный
  • https://t.me/clickhouse_ru
    типа того,
    ок, очевидно это слишком наверченно, нужно упростить всё. Потом фиг разберёшься, если сломается
  • либо заглянуть в system.tables, либо CREATE TABLE IF NOT EXISTS
  • https://t.me/clickhouse_ru
    А что вообще в этом json'е нужно? Почему не распарить его в строчки и со столбиками отдельно работать?
  • https://t.me/clickhouse_ru
    это changelog жиротаски. Хотел сделать массив изменения статусов таски. Гранулярность таблицы: таска. Не хотелось делать лишние развороты в строки. Т.к. это будет уже другая размерность (хотя можно через cte оформить и потом приджойнить по ключу таски)
  • @krisssssssf #262029 11:47 AM, 22 Mar 2022
    Зарядка для мозку ⚡️⚡️⚡️

    Цікавий канал для тих хто любить перевірити свої знання ,та для розвитку вашого інтелекту @Y_o_u_BOX та до менеджера @Kapitan_dopomoga

  • @trublast #262030 11:48 AM, 22 Mar 2022
    Привет. Вопрос про clickhouse-copier
    Есть у меня кластер 1 реплика 4 шарда
    Хочу сделать 2 реплики 2 шарда, параллельно для новых таблиц поменяв сторадж полиси и указав TTL вытеснения на медленный сторадж
    Сделал новую таблицу table_new ReplicatedMergeTree и дистрибьютед для нее distributed_table_new
    Для относительно мелких таблиц (десятки Гб) делал insert into distributed_table_new from select distributed_table_old , в принципе все проходило успешно, потом подливал данные которые успели записаться в старую (по дате) и переименовывал дистрбьютед таблицы чтобы запросы смотрели в "новые" данные

    На больших таблицах (5-10Тб) этот способ не очень хорош, так как тянет все данные на один из 4 серверов и потом раскидывает обратно. Можно было бы как-то пережить, но есть еще таймауты и разрывы соединения, так что insert from select через какое-то время обрывается с ошибками

    Вот как раз для этого придумали clickhouse-copier подумал я. Сделал таску и ... сутки стоит вынимая список партишнов и копирование не начинается
    Checking shard N1 (having a replica 1.1.1.1:9000, pull table store.keywords of cluster keywords for partition (201911,'gb','iphone') piece 2 existence, executing query:
    SELECT 1 FROM _local.`.read_shard_0.cluster.store.keywords_new` WHERE ((toYYYYMM(date), location, type) = ((201911,'gb','iphone') AS partition_key)) AND (cityHash64(`id`, `keyword`, `date`) % 3 = 2 ) LIMIT 1
    Partition (202002,'de','iphone') piece number 0 is PRESENT on shard N4 (having a replica 1.1.1.1:9000, pull table store.keywords of cluster keywords
    Ранее не пользовался копиром, не понятно почему так долго. Это нормально?

    Перенес копиром табличку поменьше, Checking прошел естественно намного быстрее и данные скопировались

    Сутки на Checking shard для таблицы мне кажется очень много. Или это нормально? А сколько в таком случае копирование займет? Или я делаю что-то не так? rsync-ом я за сутки-полтора весь клихаус переливал
  • https://t.me/clickhouse_ru
    @a1s_333444 #262031 11:51 AM, 22 Mar 2022
    Всем привет, всегда удалял бекапы с помощью rm. А тут вот чего завезли. https://github.com/ClickHouse/ClickHouse/pull/21142
    Может кто подсказать что значит 'propely' в этом контексте?
    Add ALTER TABLE UNFREEZE command. by Jokser · Pull Request #21142 · 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
    @derlafff #262033 12:08 PM, 22 Mar 2022
    у таблицы с TTL с несколькими условиями в TTL (TTL .. DELETE WHERE, ... DELETE WHERE, ...) они проверяются по порядку? будет ли считаться последняя без "WHERE" как "ELSE"?
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #262019 #262034 12:10 PM, 22 Mar 2022
    я по простому, без имен:
    with [('a1','c1',[('f11','fs11','ts11'),('status','fs12','ts12')]),('a2','c2',[('f21','fs21','ts21'),('fs22','fs22','ts22')])] as data
    select arrayFilter(z->length(z.3) > 0, arrayMap( x -> (x.1,x.2, arrayFilter(y->y.1 = 'status',x.3)), data));
  • https://t.me/clickhouse_ru
    @ARyndin #262035 12:13 PM, 22 Mar 2022
    А новое странное поведение cli в новом кликхаусе (22.3) это баг или фича?
    В частности — копипаста многострочных sql запросов ломает отображение,
    enter теперь переносит курсор на новую строку, вместо того чтобы разделить запрос на две части как бы (приглашение :-] больше не появляется)
  • @n1ght_f0x #262037 12:33 PM, 22 Mar 2022
    Всем привет, как узнать от какой кафка таблицы летят ошибки, если в самой ошибке нет этой информации?

    2022.03.22 12:30:23.723911 [ 91395 ] {} <Error> void DB::StorageKafka::threadFunc(): Code: 72, e.displayText() = DB::Exception: Unsigned type must not contain '-' symbol: (while read the value of key age): (at row 1)
    , Stack trace (when copying this message, always include the lines below):

    0. Poco::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x18bbe140 in /usr/bin/clickhouse
    1. DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0xe61432d in /usr/bin/clickhouse
    2. void DB::readIntTextImpl<char8_t, void, (DB::ReadIntTextCheckOverflow)0>(char8_t&, DB::ReadBuffer&) @ 0x1553f705 in /usr/bin/clickhouse
    3. DB::DataTypeNumberBase<char8_t>::deserializeTextJSON(DB::IColumn&, DB::ReadBuffer&, DB::FormatSettings const&) const @ 0x1554acf0 in /usr/bin/clickhouse
    4. DB::JSONEachRowRowInputFormat::readField(unsigned long, std::__1::vector<COW<DB::IColumn>::mutable_ptr<DB::IColumn>, std::__1::allocator<COW<DB::IColumn>::mutable_ptr<DB::IColumn> > >&) @ 0x163b795e in /usr/bin/clickhouse
    5. DB::JSONEachRowRowInputFormat::readJSONObject(std::__1::vector<COW<DB::IColumn>::mutable_ptr<DB::IColumn>, std::__1::allocator<COW<DB::IColumn>::mutable_ptr<DB::IColumn> > >&) @ 0x163b7b91 in /usr/bin/clickhouse
    6. DB::JSONEachRowRowInputFormat::readRow(std::__1::vector<COW<DB::IColumn>::mutable_ptr<DB::IColumn>, std::__1::allocator<COW<DB::IColumn>::mutable_ptr<DB::IColumn> > >&, DB::RowReadExtension&) @ 0x163b8bc6 in /usr/bin/clickhouse
    7. DB::IRowInputFormat::generate() @ 0x16358b21 in /usr/bin/clickhouse
    8. DB::ISource::work() @ 0x162d477b in /usr/bin/clickhouse
    9. ? @ 0x15f2534d in /usr/bin/clickhouse
    10. DB::KafkaBlockInputStream::readImpl() @ 0x15f264b4 in /usr/bin/clickhouse
    11. DB::IBlockInputStream::read() @ 0x1546d29d in /usr/bin/clickhouse
    12. DB::copyData(DB::IBlockInputStream&, DB::IBlockOutputStream&, std::__1::atomic<bool>*) @ 0x1549022e in /usr/bin/clickhouse
    13. DB::StorageKafka::streamToViews() @ 0x15f005b7 in /usr/bin/clickhouse
    14. DB::StorageKafka::threadFunc() @ 0x15f01049 in /usr/bin/clickhouse
    15. DB::BackgroundSchedulePoolTaskInfo::execute() @ 0x15623cf9 in /usr/bin/clickhouse
    16. DB::BackgroundSchedulePool::threadFunction() @ 0x15624182 in /usr/bin/clickhouse
    17. ? @ 0x156242b2 in /usr/bin/clickhouse
    18. ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0xe641b47 in /usr/bin/clickhouse
    19. ? @ 0xe640093 in /usr/bin/clickhouse
    20. start_thread @ 0x7ea5 in /usr/lib64/libpthread-2.17.so
    21. clone @ 0xfe8dd in /usr/lib64/libc-2.17.so
    (version 20.8.7.15 (official build))
  • @179984270 #262042 12:48 PM, 22 Mar 2022
    Коллеги, добрый день! Проясните, пожалуйста, момент. Иногда в кликхаус клиенте запускаю какой-нить запрос с несколькими полями для поиска, да ещё и с регулярками, и случается такая вот ситуация: ставлю лимит на выдачу например 100 строк, запрос начинает отрабатывать и уже вывел мне нужный результат, но какое-то время (несколько секунд) на чём-то раздупляется, никакой активности не происходит, но управление ещё не возвращено. несколько секунд проходит и без добавление чего бы то ни было к выдаче скрипт завершает работу и возвращает мне управление. У кого были похожие ситуации и кто разобрался, с чем такие "зависания" связаны?
  • clickhouse-client зависает?
  • выглядит как будто да, но по факту скорее всего он что-то "досчитывает"
  • @179984270 #262045 12:51 PM, 22 Mar 2022
    т.е. я могу его прервать и всё ок
  • @subotic0 #262046 12:51 PM, 22 Mar 2022
    Добрый день,
    select dateDiff('day', toDateTime64('1969-12-31 00:00:00', 0), toDateTime64('1970-01-01 00:00:00', 0))
    выдает -65535, есть какой-то обходной маневр для получения верного значения?
  • https://t.me/clickhouse_ru
    можно узнать комментарий по монге?
  • @supersurfer #262048 12:53 PM, 22 Mar 2022
    привет. не подскажете, как ограничить количество активных запросов от одного юзера?
  • возможно есть более изящный вариант, но можно сдвинуть точку отсчёта и просто прибавить к каждой дате интервал в 100 лет )
  • https://t.me/clickhouse_ru
    @Alexey_037 #262050 01:08 PM, 22 Mar 2022
    А по другому никак. 1970 - минимальный год )
  • https://t.me/clickhouse_ru
    не для datetime64 (там 1925)
  • https://t.me/clickhouse_ru
    @Alexey_037 #262052 01:11 PM, 22 Mar 2022
    Да, но все равно приведение вернет -65535.
    Но с интервалом прокатит
    select dateDiff('day', cast ('1969-12-31' as DateTime64)+interval 10 year, cast('1970-01-01' as DateTime64)+interval 10 year)
    вернет 1
  • с 10 годами есть вероятность сдвинуться между годами високосными, так что может выдать неправильный результат для других дат
  • https://t.me/clickhouse_ru
    Большое спасибо, все работает
  • https://t.me/clickhouse_ru
    @Krisantis #262055 01:59 PM, 22 Mar 2022
    подскажите, а JSON_QUERY поддерживает фильтрацию?
    судя по документации самого JSON_QUERY синтаксис должен выглядеть как-то так:
    JSON_QUERY(jsonex, '$.histories[*].items[*][?field==`status`]') as items
    но так не работает.
    ———пример———--
    with '{"histories": [
    {
    "items": [
    {
    "field": "Story Points",
    "fieldtype": "custom"
    }
    ]
    },
    {
    "items": [
    {
    "field": "resolution",
    "fieldtype": "jira"
    },
    {
    "field": "status",
    "fieldtype": "jira"
    }
    ]
    }
    ]}' as jsonex
    SELECT
    JSON_QUERY(jsonex, '$.histories[*].items[*][?field==`status`]') as items
  • https://t.me/clickhouse_ru
    @apanasevich_d #262056 02:11 PM, 22 Mar 2022
    Подскажите пжл, можно ли как-то использовать макросы при выполнении распределённого DDL?

    Например, вместо

    CREATE DATABASE test ON CLUSTER my_cluster_name;

    хотелось бы написать что-то вроде

    CREATE DATABASE test ON CLUSTER {cluster};
  • CREATE DATABASE test ON CLUSTER ‘{cluster}’;
  • @Grimly_r #262058 02:41 PM, 22 Mar 2022
    привет, подскажите пожалуйста, как лучше решить задачу?
    Есть табличка, где 2 столбца домен и дата размещения. Домены могут повторяться, нужно добавить столбец, где ставить 1, если ранее этот домен не появлялся и 0 если домен уже был ранее. За одну дату может быть несколько раз встрачаться один домен, нужно поставить 1 только у одного
  • сделать вьюху с row_number over (partition by domain order by publucationDate)
    и создать вторую колонку, которая равна 1, если этот row_number равен 1
    только тут перформанс придется смотреть, как быстро на лету сможет такая колонка считаться
  • @Grimly_r #262060 02:51 PM, 22 Mar 2022
    табличка совсем небольшая, перфоманс не критичен
  • @Grimly_r #262061 02:51 PM, 22 Mar 2022
    пока решил так, насколько это коряво?
    with t as (select
    domain (link) d,
    arraySort(groupArray((publicashionDate, title, category, link))) ardata
    from MedialogyRaw mr
    group by d)
    select
    d,
    if(num=1,1,0) as firstAccurience,
    ardata[num].1 publicashionDate,
    ardata[num].2 title,
    ardata[num].3 category,
    ardata[num].4 link
    FROM t
    array join arrayEnumerate (ardata) as num
    order by publicashionDate
  • https://t.me/clickhouse_ru
    Можно к секундам привести 2 даты и вычесть
  • https://t.me/clickhouse_ru
    @Krisantis #262063 03:04 PM, 22 Mar 2022
    как посчитать разницу между элементами в массиве Date/DateTime?
    with today() as today,
    yesterday() as yesterday,
    [today, yesterday] as arr
    select arrayDifference(arr)
  • https://t.me/clickhouse_ru
    with today() as today,
    yesterday() as yesterday,
    [today, yesterday] as arr
    select arrayDifference(arrayMap(x -> toUInt64(x), arr))
  • https://t.me/clickhouse_ru
    @miptgirl #262065 03:05 PM, 22 Mar 2022
    Для Dates разница будет в днях, для DateTimes - в секундах
  • @infisamk #262066 03:56 PM, 22 Mar 2022
    Всем привет! А как кто выкручивается для хранения дат в CH? Допустим, нужно хранить дату рождения. При этом иногда попадаются долгожители, которым 100 и даже более лет. Минимальная дата в CH - это 1925-01-01 (для типа Date32). Ждать, пока умрут долгожители - не вариант. Хранить в числовом виде практически бесполезно, так как при преобразовании опять упремся в ограниченный по низу диапазон. Остается только хранить в виде текста? Но в этом случае будет сложно посчитать, например, возраст или вообще произвести какие-либо расчеты с использованием таких дат.
  • https://t.me/clickhouse_ru
    Смотря что вы планируете считать, можно разделить дату на столбцы год, месяц, день. Можно хранить целочисленно в виде 19050131. Можно хранить дельту до 1970-01-01.
  • Например, нужно посчитать возраст. Также могут понадобиться разбивки людей по годам и месяцам, например. Или нужно посчитать всех, у кого через неделю день рождения. В общем во всех случаях посчитать можно и через пользовательскую функцию, но очень жаль, что штатные функции становятся бесполезными. Единственный простой вариант - хранение дат с добавлением 1 столетия. Это легко считается и обеспечивает корректность високосных лет.
  • https://t.me/clickhouse_ru
    Нахрена тут этот офтоп?
  • https://t.me/clickhouse_ru
    @obazna ↶ Reply to #262070 #262071 04:33 PM, 22 Mar 2022
    Сорри не туда бросил. Спасибо.
  • @da_vin4i #262075 04:51 PM, 22 Mar 2022
    но не удалил=)
  • @da_vin4i #262076 04:52 PM, 22 Mar 2022
  • https://t.me/clickhouse_ru
    @obazna ↶ Reply to #262075 #262077 04:52 PM, 22 Mar 2022
    Так удалил же, не?
  • https://t.me/clickhouse_ru
  • @da_vin4i #262079 04:52 PM, 22 Mar 2022
    походу только для себя)
  • @da_vin4i #262080 04:53 PM, 22 Mar 2022
    все, за тобой уже выехали, лучше беги)
  • https://t.me/clickhouse_ru
    @obazna ↶ Reply to #262079 #262081 04:53 PM, 22 Mar 2022
    Похоже нужно админа на помощь звать :) @miptgirl удали плиз не релевантный контент
  • https://t.me/clickhouse_ru
    @konnectrl #262082 04:56 PM, 22 Mar 2022
    Я не вижу его сообщения
  • Я не вижу. Значит, удалил.
  • @trublast #262084 06:48 PM, 22 Mar 2022
    есть таблица table1 2 реплики 2 шарда и дистрибьютед таблица d1 которая "смотрит" в эти таблички
    делаю копирование через clickhouse-copier из table1 в table2 тоже 2 реплики 2 шарда, прямо на этих же нодах
    дистрибьютед таблица d2 смотрит в таблицы table2

    select count() from d1 выдает одну цифру, например 64000000
    select count() from d2 выдает , например 59000000
    дропаю table2 on cluster и повторяю процедуру
    select count() from d2 выдает 63000000 (снова не 64000000)
    дропаю table2 on cluster и повторяю процедуру
    select count() from d2 выдает 58000000 (снова не 64000000)
    это нормальная ситуация , не должно быть воспроизводимости? или зависит от данных?
  • @trublast #262085 07:01 PM, 22 Mar 2022
    дропаю table2 on cluster и делаю INSERT INTO d2 * from d1
    select count() from d2 выдает 63981596 (снова не 64000000)

    нуу.... почти
  • 23 March 2022 (113 messages)
  • https://t.me/clickhouse_ru
    Константин, настройку в users.xml добавлял. Без изменений..(
  • @examplesuka #262088 05:50 AM, 23 Mar 2022
    Ребят а greenplum и vertica это же тоже МРР системы, но почему кликхаус всё равно быстрее в определённых местах?
  • https://t.me/clickhouse_ru
    просто заморочились с производительностью больше для основных кейсов, больше чем с функционалом

    ну например LZ4 сжатие в clickhouse свое
    сканирование String через Intel Vector - лучший на рынке движок
    много где старались сделать через SSE

    конвейер запуска переписали
    попробовали два разных подхода к SQL парсерам (парсер ANTLR вроде непонятно жив или нет сейчас)

    каркас в MergeTree действительно хорош и его стараются улучшить в 22.3 например улучшили скорость вставки за счет умной сортировки

    и в чем то clickhouse той же вертике может проигрывать
  • @examplesuka #262090 06:14 AM, 23 Mar 2022
    А какие у кликхауса основные минусы?
  • https://t.me/clickhouse_ru
    с чем сранивать если. если с big query то в том что это нужно самим поднимать базу и масштабировать руками
  • @examplesuka #262092 06:16 AM, 23 Mar 2022
    Ну сравнивать с гринпламом тем же например
  • https://t.me/clickhouse_ru
    У Greenplum ущербная архитектура поверх постгреса. С кликхаусом по скорости только вертика может конкурировать, да и то не всегда. Но по удобности для "конечного пользователя" , кликхаусу еще очень даже есть куда рости
  • https://t.me/clickhouse_ru
    @shakhov #262094 06:16 AM, 23 Mar 2022
    Всем привет. После обновления не получается подключиться к кликхаусу через dBeaver. Но сам сервер работает - можно отправлять запросы через консоль. http-подключение тоже отвалилось. Кто сталкивался? Что делать?
  • https://t.me/clickhouse_ru
    @konnectrl #262095 06:20 AM, 23 Mar 2022
    Как-нибудь можно использовать словарь cache для PostgreSQL ? https://clickhouse.com/docs/ru/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-layout/#cache
    Хранение словарей в памяти | Документация ClickHouse

    Хранение словарей в памяти Словари можно размещать в памяти множеством способов. Рекомендуем flat, hashed и complex_key_

  • https://t.me/clickhouse_ru
    Привет. Я обновил jdbc драйвер.
  • https://t.me/clickhouse_ru
    да вот не помогло. странно что http тоже отвалился
  • @petr_ryzhov #262098 06:25 AM, 23 Mar 2022
    привет
    https://play.clickhouse.com/?file=welcome планируют вернуть к жизни?
  • https://t.me/clickhouse_ru
    @shakhov #262099 06:25 AM, 23 Mar 2022
    еще вот это странно:
  • https://t.me/clickhouse_ru
    А можно раскрыть тезис про ущербную архитектуру гринплама поверх постгреса?
  • https://t.me/clickhouse_ru
    sudo apt-get install -y apt-transport-https ca-certificates dirmngr
    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 8919F6BD2B48D754

    echo "deb https://packages.clickhouse.com/deb stable main" | sudo tee \
    /etc/apt/sources.list.d/clickhouse.list
    sudo apt-get update

    sudo apt-get install -y clickhouse-server
    Потому что вам нужно сделать вот так вот
  • https://t.me/clickhouse_ru
    Ошибки почему-то. Не подскажете как быть?
  • Это зависит только от архитектуры? Тоесть почему именно кликхаус быстрее гринплама, а вертика почти такая же по скорости не очень понимаю
  • https://t.me/clickhouse_ru
    Introduction to Greenplum Architecture

    This is the first article of the Greenplum Kernel series. There are a total of ten articles in this series, which will explain in depth the different modules of Greenplum. Today I’m going to …

  • https://t.me/clickhouse_ru
    В первую очередь от системы хранения. Кликхаус и Вертика изначально разрабатывались как column store снизу до верху. И сразу оптимизировались для колоночного хранения. А гринпламовцам пришлось эмулировать column store средствами постргеса — в первых версиях они вообще только row-store поддерживали.
  • https://t.me/clickhouse_ru
    Собственно, там прям даже выделено в статье, которую я прислал:

    Greenplum is an open source distributed database based on Postgres. From the topological structure, it is a database cluster composed of stand-alone Postgres.
  • https://t.me/clickhouse_ru
    @nbeletsky #262107 06:50 AM, 23 Mar 2022
    Привет, а что с repo.clickhouse.tech? Он не отвечает, а у нас на нем завязано многое. Я вижу что в документации поменяли на .com, но сделайте хотя бы переадресацию :(
  • https://t.me/clickhouse_ru
    user=play надо добавлять в запрос
  • https://t.me/clickhouse_ru
    Ну гринплам изначально создавался как mpp система (поддерживающая редистрибуцию датасетов во время исполнения), чего в КХ нет до сих пор.
    Касательно эмуляции column store - тут не понятно, что вы имеете в виду. Колоночное расположение данных таблиц в гп реализовано физически как отдельная опция хранения. Единственное только, экзекъютор унаследован от постгреса и работает только со строками - почему ГП тормозит по сравнению с той же Вертикой. Но технически добавить векторный экзекъютор в ГП (или встроить какие-то его элементы) не представляется невозможным - вопрос в ресурсах на такой сдвиг, ибо править придётся ещё и планировщики, которых у гринплама два и оба cost-based.
    Т.е. можно заключить, что Гринплам не нативная column store СУБД, но про ущербность всей архитектуры в целом я бы не говорил, ибо не всё завязывается на эффективную обработку колонок.
  • https://t.me/clickhouse_ru
    +1
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #262109 #262112 07:23 AM, 23 Mar 2022
    Спасибо за развернутый ответ. Но вопрос топик стартера был не про колонки, а про MPP. Как сейчас MPP реализовано в гринплюм, учитывая указанные выше ограничения, пришедшие от постгреса?
    В КХ MPP в рамках одного сервера работает через чтение отдельных партов разными ядрами с финальным мерджем. Без лишнего оверхида на редистрибуцию данных.
  • спасибо
  • https://t.me/clickhouse_ru
    Извиняюсь, но я не увидел ни в треде, ни в статье по ссылке никакую критику в адрес постгреса со стороны MPP реализации гринплама. В целом, в статье неплохо объясняется, как происходит параллельный процессинг в гринпламе: общий план разбивается на части (слайсы), которые взаимодействуют между собой через узлы редистрибуции плана, каждый слайс выполняется в отдельном воркере на сегментах (шардах) и на координирующей ноде. Единственное, процесс генерации распределённого плана на постгресовом оптимизаторе кмк не совсем структурированный. Зато в другом планировщике ORCA это сделано по науке - как property enforcement стадия поверх memo структуры альтернатив физического локального плана.

    > В КХ MPP в рамках одного сервера работает через чтение отдельных партов разными ядрами с финальным мерджем. Без лишнего оверхида на редистрибуцию данных.

    Редистрибуция между сегментами нужна, если джоин (или group by) у нас происходит не по ключу джоина (или group by), чтобы добиться параллельности на сегментах и при этих операциях. В простейшем случае, конечно, вся дистрибуция сводится к заливке датасетов на координирующий узел и завершению операций там.
  • https://t.me/clickhouse_ru
    @konnectrl #262115 08:45 AM, 23 Mar 2022
    Как установить источник данных PostgreSQL для словаря типа cache ?
  • https://t.me/clickhouse_ru
    @hostadminonline #262117 08:54 AM, 23 Mar 2022
    Добрый день
    собственно вопрос
    у нас было 3 реплики кликхауса в шарде ... надо сделать 2
    1 реплику выключили
    на 2х других в конфигах прописали что теперь их 2
    но смотрим в таблицу system.replicas и там все равно показывается что их 3
    что нужно еще сделать чтобы они забыли про третью реплику ?
  • правильно было дропать ReplicatedMT на той 3-й реплике сначала
    теперь придется удалять её из ЗК
  • https://t.me/clickhouse_ru
    @hostadminonline #262119 09:05 AM, 23 Mar 2022
    ну в теории мы ее можем запустить
  • https://t.me/clickhouse_ru
    @hostadminonline #262120 09:05 AM, 23 Mar 2022
    а что значит дропнуть ReplicatedMT ?
  • https://t.me/clickhouse_ru
    @hostadminonline #262121 09:05 AM, 23 Mar 2022
    все таблицы дропать котоыре реплицируются ?
  • https://t.me/clickhouse_ru
    @hostadminonline #262122 09:05 AM, 23 Mar 2022
    просто их больше млн ..... как-то шибко муторно
  • drop table table1; (На 3-й реплике)
  • да
  • @dj_mixer #262125 09:06 AM, 23 Mar 2022
    Alexey Milovidov in ClickHouse не тормозит

    Если какой-то сервер исчез и не будет восстановлен, то запись о реплике потребуется удалить из ZK самостоятельно.

  • https://t.me/clickhouse_ru
    @hostadminonline #262126 09:06 AM, 23 Mar 2022
    жжжесть
  • @dj_mixer #262127 09:06 AM, 23 Mar 2022
    ну сделайте скрипт чтобы почистить ЗК.
    это тоже нормально
  • https://t.me/clickhouse_ru
    @hostadminonline #262128 09:07 AM, 23 Mar 2022
    как то не админфрендли (
  • https://t.me/clickhouse_ru
    @sach3000 #262129 09:07 AM, 23 Mar 2022
    интересно в clickhouse-keeper такое же поведение ?
  • это нормально. описание кластера может не совпадать на хостах, может случится беда, если нечаянно неверно сконфигурировать... а так - бронебойно. не сломать.
  • https://t.me/clickhouse_ru
    SYSTEM DROP REPLICA
  • а да ) виноват...
  • https://t.me/clickhouse_ru
    ну с одной стороны согласен, с другой стороны сейчас тратить на это кучку времени чтобы написать скрипт и кучу таблиц задропать .... причем в данной ситуации тоже ни как нельзя ошибится ... а то можно и косячнуть ... подцепится не к той реплике по случайке и т.д.
  • https://t.me/clickhouse_ru
    оопа
  • @dj_mixer #262135 09:11 AM, 23 Mar 2022
    вот админ френдли есть уже давно оказывается
  • https://t.me/clickhouse_ru
    спасибо добр ты челвоек
  • https://t.me/clickhouse_ru
    @hostadminonline #262137 09:12 AM, 23 Mar 2022
    самое забавное что я страницу где есть описание этой ыункции 5 раз пересмотрел и в упор не увидел ...
  • это аж 1.5 года как есть с 20.5 оказывается, надо обновлять "методички"...
  • https://t.me/clickhouse_ru
    +1
  • https://t.me/clickhouse_ru
    @Rainb0wD4sh #262142 09:43 AM, 23 Mar 2022
    я один или 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
    @Rainb0wD4sh #262144 09:44 AM, 23 Mar 2022
    спасибо, буду разбираться, в какой-то список попало наверно
  • https://t.me/clickhouse_ru
    @drookie #262147 10:15 AM, 23 Mar 2022
    а подскажите пожалста, как правильно снести таблицу с engine ReplicatedMergeTree, у которой неправильно указан id реплики ? там теперь этот ошибочный replica id в system.replicas болтается и на пересоздании таблиц не удаляется конечно
  • @anotherbugmaster #262149 10:38 AM, 23 Mar 2022
    Привет! Тестирую функцию s3Cluster на all-replicas кластере (1 шард, 3 реплики), в логах вижу, что запрос исполняется только на initiator ноде, так должно быть, или я что-то делаю неправильно?

    Запрос, который я выполняю:

    INSERT INTO <null_engine_table> SELECT * FROM s3Cluster('all-replicas', ...)
  • https://t.me/clickhouse_ru/262131
    так вот же, должно сработать...
  • если таблица сама есть, просто DROP TABLE xxx; (он чистит ЗК за собой)
  • https://t.me/clickhouse_ru
    @drookie #262152 10:44 AM, 23 Mar 2022
    спасибо
  • https://t.me/clickhouse_ru
    @Randomazer #262153 10:47 AM, 23 Mar 2022
    Коллеги, здравствуйте, как сделать в clickhouse? Дан массив чисел [2,5,1,4,9]. На выходе должен массив быть отсортирован + сохранен индекс элемента в старом массиве

    На входе

    [2,5,1,4,9]

    На выходе
    [[9,4], [5,1], [4,3],[2,0],[1,2]]
  • https://t.me/clickhouse_ru
    Да. там есть проблемы с INSERT INTO SELECT * FROM s3Cluster
    Вот ту мы их обходили
    https://altinity.com/blog/loading-100b-rows-in-minutes-in-altinity-cloud
    Loading 100B rows in minutes in Altinity.Cloud

    Inspired by SingleStore research, this benchmark shows how to scale data loading from S3 to a ClickHouse cluster and load 100B rows dataset in just 4 minutes.

  • https://t.me/clickhouse_ru
    SELECT
    [2, 5, 1, 4, 9] AS arr,
    arrayZip(arr, range(length(arr))) AS res,
    arrayReverseSort(x -> (x.1), res) AS d

    Query id: bca85383-a86b-45bf-aabc-c481e4a1fc8d

    ┌─arr─────────┬─res─────────────────────────────┬─d───────────────────────────────┐
    │ [2,5,1,4,9] │ [(2,0),(5,1),(1,2),(4,3),(9,4)] │ [(9,4),(5,1),(4,3),(2,0),(1,2)] │
    └─────────────┴─────────────────────────────────┴─────────────────────────────────┘
  • https://t.me/clickhouse_ru
    спасибо большое проверю
  • https://t.me/clickhouse_ru
    @mgavrikov #262158 11:27 AM, 23 Mar 2022
    Коллеги, добрый день, а есть ли способ с помощью clickhouse-local создавать файлы для native формата чтобы потом их быстрее загружать на сам сервер? (то есть по сути конвертировать из одного формата в native через clickhouse-local)?
  • DROP TABLE xxx SYNC вроде как чтобы сразу ЗК почистило, без SYNC данные в ЗК останутся
  • https://t.me/clickhouse_ru
    @gudinagutin #262160 12:03 PM, 23 Mar 2022
    Добрый день, подскажите по поводу поведения команды ATTACH PARTITION.
    Допустим, есть таблица, сначала выполнил команду DETACH PARTITION 20220323 (текущий день). При этом данные в эту таблицу продолжают писаться => создается новая attached партиция 20220323.
    Когда я выполню команду ATTACH PARTITION 20220323, то данные в таблице перезатрутся или объединятся?
    Спасибо!
  • attach partition - объединить
    replace partition - заменить
  • https://t.me/clickhouse_ru
    @gudinagutin #262162 12:06 PM, 23 Mar 2022
    спасибо!
  • https://t.me/clickhouse_ru
    https://kb.altinity.com/altinity-kb-setup-and-maintenance/precreate_parts_using_clickhouse_local.sh/

    Не совсем оно, но идею можно использовать
    Precreate parts using clickhouse-local

    Precreate parts using clickhouse-local.

  • https://t.me/clickhouse_ru
    @alex_spiridonov #262164 12:12 PM, 23 Mar 2022
    добрый день
    на сервере на одной из реплик остановился СН
    последние ошибки в журнале ошибок от вчерашнего дня: что-то там про то, что не может закоммитить смещение в кафку (на этой реплике идёт чтение из кафки, возможно, вчера были проблемы с кафкой, сейчас вроде всё ок)

    попытка рестарта кончается неудачно:
    systemctl status clickhouse-server
    ● clickhouse-server.service - ClickHouse Server (analytic DBMS for big data)
    Loaded: loaded (/etc/systemd/system/clickhouse-server.service; enabled; vendor preset: disabled)
    Active: activating (auto-restart) (Result: exit-code) since Wed 2022-03-23 15:06:43 MSK; 3s ago
    Process: 5630 ExecStart=/usr/bin/clickhouse-server --config=/etc/clickhouse-server/config.xml --pid-file=/run/clickhouse-server/clickhouse-server.pid (code=exited, status=233/RUNTIME_DIRECTORY)
    Main PID: 5630 (code=exited, status=233/RUNTIME_DIRECTORY)

    при этом в журнале ошибок новых сообщений не появляется. в обычном журнале тоже

    как провести диагностику проблемы, куда копать?
  • https://t.me/clickhouse_ru
    @alex_spiridonov #262165 12:23 PM, 23 Mar 2022
    "отмонтировался" диск с данными
  • https://t.me/clickhouse_ru
    Кроме всего прочего, что написали, в ГП больше уделяется внимания консистентности - синхронная wal-репликация и т.п.
  • @evgenyanother #262167 01:07 PM, 23 Mar 2022
    привет
    пытаюсь из логс апи залить данные в ch
    интересует вопрос настройки атрибуции - https://yandex.ru/dev/metrika/doc/api2/logs/param.html
    это актуальная дока? пробовал различные типы написания - каждый раз скрипт валится с ошибкой (без задротства с атрибуцией все отрабатывает норм)
    Параметризация. Справочник разработчика

    Logs API Метрики поддерживает механизм задания параметров — параметризацию. Возможность доступна для большинства полей.

  • @612200930 #262168 01:16 PM, 23 Mar 2022
    Всем здравия желаю!

    Есть таблица системная с перечнем всех функций system.functions
    А нет ли возможности получить не только перечень, но и список параметров функции ?
  • https://t.me/clickhouse_ru
    @sinedsem #262170 01:23 PM, 23 Mar 2022
    всем привет, не нашёл функции форматирования числа, чтобы добавлять ведущие нули или нули после запятой. неужели такой нет?
  • https://t.me/clickhouse_ru
    А попробуйте может привести к decimal ? и тогда вроде всегда будет указываться определённое количество чисел https://clickhouse.com/docs/ru/sql-reference/data-types/decimal/
    Decimal | Документация ClickHouse

    Decimal(P, S), Decimal32(S), Decimal64(S), Decimal128(S), Decimal256(S) Знаковые дробные числа с сохранением точности оп

  • https://t.me/clickhouse_ru
    мне нужно ещё слева нолики дописать(
  • https://t.me/clickhouse_ru
    @ivan_blohin #262174 01:59 PM, 23 Mar 2022
    Всем привет.
    Сегодня столкнулся с непонятной ситуацией.

    Есть подзапрос (не важно какой, он в экран не влезает) который прекрасно работает, но как только оборачивается в select COUNT(*) from (subquery) падает с ошибкой: Not found column sample_id in block

    Я не понимаю, что ему нужно. Подзапрос рабочий, почему он просто не может посчитать кол-во строк из подзапроса?
  • lpad/rpad
  • https://t.me/clickhouse_ru
    select * from subquery - там точно есть столбец sample_id в перечне?
  • https://t.me/clickhouse_ru
    да:
    ```
    select COUNT(*) FROM (
    SELECT *
    FROM (SELECT "id",
    "cpra",
    "sample_id",
    ```
  • https://t.me/clickhouse_ru
    у вас join таблиц, скорей всего и совпадают столбцы из-за этого их нету
  • https://t.me/clickhouse_ru
    Это не ответ ) Надо сделать select * и посмотреть на итоговые имена столбцов, иначе будет как Константин написал, совпадение столбцов.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    перепишите запрос, чтобы все подзапросы select были отдельными CTE выражениями через WITH, так же проще отладку проводить, можно каждый промежуточный результат отслеживать. Когда куча select from (select from (select from..))) - это же ужас для отладки )
  • https://t.me/clickhouse_ru
    Полностью согласен. Данная портянка генерируется через питон (pypika) и там все по уму.
    Просто для меня странно, что я не могу подсунуть все, что угодно в подзапрос для select count(*). Первый раз в подобной ситуации)
  • https://t.me/clickhouse_ru
    @Alexey_037 #262185 02:31 PM, 23 Mar 2022
    ну тут скорее всего именно подмена имен столбцов и итоговый результат непредсказуем...
  • https://t.me/clickhouse_ru
    @alex_vityazev #262187 02:40 PM, 23 Mar 2022
    всем добрый день
    может кто-то подсказать, может я не так что-то понимаю
    у меня есть задача, при каждой вставке в таблицу с сырыми данными обновлять материализованное представление данными, формируемыми запросом с большим кол-вом аггрегаций
    пробовал использовать движки aggregationMergeTree и ReplacingMergeTree, но есть ощущение, что данные, которые вставляются в mv формируются запросом на основе того единственного инсерта, который пришел, а не всего, что есть в таблице, из которой селектим
  • https://t.me/clickhouse_ru
    @Alexey_037 #262188 02:42 PM, 23 Mar 2022
    матвью обновляется по факту нечто вроде триггера after insert, так что да, на основе инсерта, что пришел.
  • https://t.me/clickhouse_ru
    @Alexey_037 #262189 02:43 PM, 23 Mar 2022
    поэтому если была какая то агрегация, то она "добавится" к mv, а не пересчитается все то, что было ДО.
  • https://t.me/clickhouse_ru
    @alex_vityazev #262190 02:43 PM, 23 Mar 2022
    а если мне надо с каждым инсертом брать все, что вот теперь есть в таблице, можно ли такое реализовать?
    или это проще обычную вьюху завести
  • https://t.me/clickhouse_ru
    @Alexey_037 #262191 02:44 PM, 23 Mar 2022
    тогда проще обычную вьюху, если она быстро отбирает данные агрегированные..
  • https://t.me/clickhouse_ru
    @alex_vityazev #262192 02:45 PM, 23 Mar 2022
    вечно она не будет отбирать их быстро
    нет ли способа в кх с каждым инсертом брать новые данные и где-то их складировать в уже готовом виде?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Ну с каждым инсертом это жестоко же )
  • @612200930 #262195 02:45 PM, 23 Mar 2022
    ага классный видос!
  • https://t.me/clickhouse_ru
    @Alexey_037 #262197 02:45 PM, 23 Mar 2022
    А если их 50 000 за минуту? :)
  • https://t.me/clickhouse_ru
    @alex_vityazev #262198 02:46 PM, 23 Mar 2022
    да, тут проблема есть, я согласен
  • https://t.me/clickhouse_ru
    @alex_vityazev #262199 02:46 PM, 23 Mar 2022
    скорее хочу саму задачу обозначить
  • https://t.me/clickhouse_ru
    @alex_vityazev #262200 02:46 PM, 23 Mar 2022
    нежели продвинуть именно это решение
  • https://t.me/clickhouse_ru
    @Alexey_037 #262201 02:46 PM, 23 Mar 2022
    Проще тогда сделать вьюху и над ней dictionary, если данных немного, и поставить время обновления раз в N минут... Все зависит от задачи и необходимости видеть реальные данные.
  • https://t.me/clickhouse_ru
    @alex_vityazev #262202 02:47 PM, 23 Mar 2022
    понял, спасибо
  • https://t.me/clickhouse_ru
    @vendroid #262204 04:00 PM, 23 Mar 2022
    Всем привет! Скажите, пожалуйста, почему запрос все равно выдает значения с шагом в одну секунду а не 18000 секунд? (ClickHouse 22.3.2.1)

    # timestamp Int64 -- unix timestamp
    SELECT timestamp, count() FROM table_name
    GROUP BY timestamp
    ORDER BY timestamp WITH FILL STEP 18000;
  • https://t.me/clickhouse_ru
    видимо, потому что там есть такие времена с шагом в одну секунду. with fill добавляет значения, если их нет, но не группирует имеющиеся. Если надо шаг крупнее имеющегося в таблице, то надо сам timestamp преобразовывать в нужные значения
  • https://t.me/clickhouse_ru
    @vendroid #262206 04:07 PM, 23 Mar 2022
    Согласен, спасибо.
  • https://t.me/clickhouse_ru
    @386851661 #262208 06:49 PM, 23 Mar 2022
    Добрый день. Подскажите, пожалуйста, как написать условие запроса, чтобы serviceId=1?