• 01 July 2022 (113 messages)
  • https://t.me/clickhouse_ru
    @majorovms #277239 04:57 AM, 01 Jul 2022
    Привет 🙂
    Начала вылетать ошибка при вставке в Clickhouse "Memory limit (total) exceeded: would use 13.82 GiB (attempt to allocate chunk of 4219444 bytes), maximum: 13.81 GiB (version 21.3.14.1 (official build))"
    Причем падает как на таблицах с 800 колонками ReplicatedAggregatingMergeTree, так и на других, где 300 колонок. Т.е. как будто бы не количестве колонок дело.
    И всегда нехватает прям чуток, т.е. всегда 13.82 GiB из 13.81 GiB, другие цифры в подобных ошибках не встречаются.
    Уже дропнул 100 не очень нужных колонок из 800 на одной таблице - ситуация никак не поменялась.
    Уменьшил вставляемые пачки, раньше порядка 10Мб улетало за раз, теперь <1Мб - тоже никакого эффекта.

    Не подскажете куда копать?
  • https://t.me/clickhouse_ru
    а если посмотреть в query_log запрос на вставку, сколько он потребляет памяти ?
  • https://t.me/clickhouse_ru
    ух ты, не знал про такой. Гляну.
  • https://t.me/clickhouse_ru
    да, нашел свалившийся insert
    ```
    +-------------------+-----------------+------------+-------------+-----------+------------+------------+----------+
    |query_start_time |query_duration_ms|written_rows|written_bytes|result_rows|result_bytes|memory_usage|query_kind|
    +-------------------+-----------------+------------+-------------+-----------+------------+------------+----------+
    |2022-07-01 01:04:08|0 |0 |0 |0 |0 |0 |Insert |
    |2022-07-01 01:04:08|688 |17290 |1521520 |17290 |1521520 |1453265509 |Insert |
    +-------------------+-----------------+------------+-------------+-----------+------------+------------+----------+

    insert into table_xxx (ind1, ind2, ind3, f1, f2, f3, f4, f5) FORMAT RowBinary
    ```
    всего 5 колонок на вставку, кроме 3-х индексных полей
  • https://t.me/clickhouse_ru
    @konnectrl #277243 05:29 AM, 01 Jul 2022
    А MV на таблице есть ?
  • https://t.me/clickhouse_ru
    фиг знает, минимальный пример для воспроизведения я привел

    вам надо на бинарном уровне проверить что передается в clickhouse-server
  • https://t.me/clickhouse_ru
    Неа. Но есть аггрегационные функции.

    сreate table well_data_504_witsml_sol_1179364155
    (
    ind1 UUID,
    ind2 String,
    ind3 DateTime64(3),
    created_at SimpleAggregateFunction(anyLast, DateTime64(3)) default now64(),
    f1 SimpleAggregateFunction(anyLast, Nullable(Float64)),
    f2 SimpleAggregateFunction(anyLast, Nullable(Float64)),
    f3 SimpleAggregateFunction(anyLast, Nullable(Float64)),
    ...
    ) engine = ReplicatedAggregatingMergeTree('path', 'replica_X')
    ORDER BY (ind1, ind2, ind3)
  • https://t.me/clickhouse_ru
    тут еще надо понимать
    что это не конкретно на вашхапрос лимит 13.81Gb
    а это на все текущие исполняемые запросы лимит 13.81Gb
    и ваш конкретный упавший запрос может просить всего лишь 100Kb
    но все равно падать
  • https://t.me/clickhouse_ru
    говорите там 800 колонок?
    но 800 колонок это 2 мегабайта буферов на колонку, 1.6Gb на вставку должно быть + сколько то на построение aggregation State
    только anyLast ? больше ничего?

    странно что 14 гигов жрет
    сам по себе anyLast много памяти жрать не должен
  • @s4851 ↶ Reply to #277242 #277248 05:38 AM, 01 Jul 2022
    Памяти же занято не 14гб на запрос, а 1.4гб. Или глаза меня подводят
  • https://t.me/clickhouse_ru
    все верно. 1.4гб. Прошелся по всем memory_usage за пару дней. Максимум 3.5гб.
  • https://t.me/clickhouse_ru
    @konnectrl #277250 05:47 AM, 01 Jul 2022
    Блин точно ... Ну тогда проблема в том, что Clickhouse у вас ещё чем то занят ....
  • https://t.me/clickhouse_ru
    да, нолик .лишний у меня, глазазамылиные
  • https://t.me/clickhouse_ru
    ок. тогда у вас несколько паралельных запросов... смотрите по пересечениям с запросом который в query_log отваливается по ошибке
  • https://t.me/clickhouse_ru
    больше ничего.
    Инсерты гребутся из кафки, в несколько потоков. Потоки ещё могу убавить, сейчас 9. Могу до 1 убавить.
    А вот с прилетевшими селектами пока наверное ничего не сделаю.
  • https://t.me/clickhouse_ru
    убавьте до 3
    1 мало слишком
  • https://t.me/clickhouse_ru
    @majorovms #277255 05:53 AM, 01 Jul 2022
    Ааа, вспомнил, что помимо инсертов от приложения в CH пихаются и сторонние логи.
    Пасибо большое!
    Буду смотреть кто что параллельно вставляет.
  • https://t.me/clickhouse_ru
    ну там можно посмотреть какие есть группировки и уменьшить
    max_bytes_before_external_group_by
    https://clickhouse.com/docs/en/operations/settings/query-complexity/#settings-max_bytes_before_external_group_by
    и сортировки
    max_bytes_before_external_sort

    но это может сильно замедлить и будет больше диска жрать
    Restrictions on Query Complexity | ClickHouse Docs

    Restrictions on query complexity are part of the settings.

  • https://t.me/clickhouse_ru
    ага, ознакомлюсь) Спасибо!
  • https://t.me/clickhouse_ru
    Спасибо большое за помощь 🙂
  • https://t.me/clickhouse_ru
    ClickHouse. Storage Policies. Do not use Path and Disk's Path in the same directory.

    ClickHouse. Using Multiple Block Devices for Data Storage. Do not use Path and Disk's Path in the same directory.

  • https://t.me/clickhouse_ru
    @kdnikish #277261 08:59 AM, 01 Jul 2022
    Всем привет! Подскажите, пожалуйста, как лучше всего в clickhouse решить следующую задачу:
    Есть некая таблица с потреблением ресурса, предположим, электричество.
    В столбце value находится кумулятивное значение потребленного ресурса
    id | resource | timestamp | value
    1 | electricity | 1234 | 10
    1 | electricity | 1235 | 14
    1 | electricity | 1236 | 16
    1 | electricity | 1237 | 17
    1 | electricity | 1238 | 21
    1 | electricity | 1239 | 22
    1 | electricity | 1240 | 25

    Нужно получить значения потребленного ресурса в промежуток времени от timestamp в одной строке до timestamp в другой.
    То есть, в приведенном примере, между 1234 и 1235, между 1235 и 1236 итд,
    Финальная структура должна выглядеть примерно так:

    id | resource | timestamp_start | timestamp_end | consumption
    1 | electricity | 1234 | 1235 | 4
    1 | electricity | 1235 | 1236 | 2
    1 | electricity | 1236 | 1237 | 1
    1 | electricity | 1237 | 1238 | 4
    1 | electricity | 1238 | 1239 | 1
    1 | electricity | 1239 | 1240 | 3
    1 | electricity | 1240 | null | null

    Сейчас в голове только следующий алгоритм:
    1) к первой таблице прикрепить row_number() over (partition by (id, resource) order by timestamp) as rn
    2) сделать join этой таблицы саму на себя on a.id = b.id and a.resource = b.resource and a.rn = b.rn+1
    3) получить consumption

    Сама по себе таблица достаточно большая и мне кажется используя данный алгоритм я сделаю clickhouse больно.
    Может быть кто-то сталкивался с подобной проблемой и может подсказать в какую сторону копать?
  • Через оконные функции LEAD или LAG
  • https://t.me/clickhouse_ru
    @igorshelove #277263 09:18 AM, 01 Jul 2022
    прям явно таких функций нет. Есть альтернатива в виде форточек
  • @PavelPavlov39 #277266 09:46 AM, 01 Jul 2022
    Всем привет!
    Подскажите, есть ли возможность назначить роль пользователю аутентифицированному через внешний пользовательский каталог?
    То есть, есть LDAP-каталог, в котором заведены пользователи, для которых в СН настроен маппинг ролей. Эта часть нормально работает, разрешения для схем корректно работают.
    Но возникла необходимость выдать такому пользователю права на определенную схему не через членство в группе, а запросом в самом СН. При этом при выполнении запроса GRANT падает ошибка:
    "Cannot update user user_name in ldap because this storage is readonly. (ACCESS_STORAGE_READONLY)". Можно что-то с этим сделать?
  • https://t.me/clickhouse_ru
    @surmenko_k #277267 09:54 AM, 01 Jul 2022
    Привет, есть шард с двумя репликами
    На репликах есть табличка (называется одинаково и с одинаковой структурой) и реплики объеденные в кластер
    на шарде создал Distributed таблицу которая должна ходить по тем табличкам в кластер с репликами.
    при запросе к distr таблице получаю данные из одной реплики (по переменно то из первой то из второй)
    Подскажите как сделать так чтоб данные были из 2+ реплик?
    Спасибо
  • https://t.me/clickhouse_ru
    увы... только со стороны LDAP править членство в группах...
  • Понял. Спасибо! :)
  • https://t.me/clickhouse_ru
    ну так на то и реплики, что предполагаются что внутри шарда данные одинаковые

    сделайте точно такой же кластер в remote_server но на два шарда в каждом по одной реплике

    ну или если вам не часто надо выбирать SELECT * FROM clusterAllReplicas('cluster_name',db.merge_tree_table_name)
  • https://t.me/clickhouse_ru
    Идея другая.
    Я хочу хранить на каждой из реплик кусок данных а через distr собирать все данные из всех реплик.
    Может есть идея как это организовать?
  • https://t.me/clickhouse_ru
    кусок данных это называется ШАРД
  • https://t.me/clickhouse_ru
    Почитайте, что такое Реплиация, что такое Шардирование. И скорей всего вы поймёте, что даже Зукипер под ваши задачи не нужен :)
  • https://t.me/clickhouse_ru
    @392734528 #277274 10:14 AM, 01 Jul 2022
    Ребят стоит клик с пандасом скрещивать или не выё - пользоваться запросами?
    чот читнул статейку не получил однозначного ответа.
  • https://t.me/clickhouse_ru
    А что такое скрещивать ?
  • https://t.me/clickhouse_ru
    @konnectrl #277276 10:17 AM, 01 Jul 2022
    Сортировать, груп бай, фильтровать ... Всё лучше на стороне Clickhouse
  • https://t.me/clickhouse_ru
    @392734528 #277277 10:17 AM, 01 Jul 2022
    через юпитер тянуть оттуда данные в датафреймы и по ним отчетность строить.
    или лучше запросами аналитику строить
  • https://t.me/clickhouse_ru
    О! вот это и хотел услышать.
  • https://t.me/clickhouse_ru
    Ну если у вас хватит места в оперативной памяти, чтобы получить все требуемые данные из CLickhouse, то может быть можно и в Pandas, но тогда вопрос, зачем вам вообще Clickhouse
  • https://t.me/clickhouse_ru
    Спасибо, большое)
  • https://t.me/clickhouse_ru
    Спасибо, большое)
  • https://t.me/clickhouse_ru
    не не не. у нас жопуа с памятью как раз.
  • @ArtFix13 #277284 10:27 AM, 01 Jul 2022
    Коллеги как «включить» виртуальные столбцы в таблицае движка Kafka
    _topic String
    _key String
    _offset UInt64
    _partition UInt64
  • https://t.me/clickhouse_ru
    @critskiy #277285 10:28 AM, 01 Jul 2022
    Привееет снова (у меня стоп-блок прост), можете напомнить пожалуйста, clickhouse-copier не позволяет же копировать с одного кластера на другой базы целиком, а еще без sharding key? (версия CH 20.5.4.40)
  • https://t.me/clickhouse_ru
    @sharp_0000ff #277287 10:31 AM, 01 Jul 2022
    Всем привет, кто-нибудь пытался работать с clickhouse через clickhouse-cpp или какой-нибудь драйвер? типа odbc
    Не могу понять, как мне заполнять таблицы данными через код С++
    clickhouse-cpp просто не запускается, ошибка с #incude int128.h, хотя в каталоге contrib она есть и в CMake прописано
    Помогите плиз, что я делаю не так
  • https://t.me/clickhouse_ru
    ну они там есть по умолчанию...
    если вам их надо материализовать. то просто в MATERIALIZED VIEWS добавляете столбцы с этими именами, должно работать
  • ЗК нужен если вы хотите, чтобы несколько КХ имели идентичные данные (репликация), чтобы не так страшно было потерять КХ.
  • https://t.me/clickhouse_ru
    нет не позволяет, там таблицы прямо в --task-file перечисляютсся в XML файле
  • https://t.me/clickhouse_ru
    не только
    если захочется CREATE TABLE .. ON CLUSTER
    то тоже ZK нужен
  • https://t.me/clickhouse_ru
    мммммммм, плохааа((((
    но спасиб
  • https://t.me/clickhouse_ru
    ну вы же можете всегда сгенерировать XML из данных SELECT * FROM system.tables ?
  • https://t.me/clickhouse_ru
    да можно...
  • А можно полюбопытствовать, вы в Альтинити используете on cluster для изменений схемы в продакшн?
  • @softbot_xxl #277296 10:44 AM, 01 Jul 2022
    У нас самописная система, которая заставляет ноды дрифтовать к нужной схеме самостоятельно, и мы уже наловили кучу “особенностей” КХ.
  • https://t.me/clickhouse_ru
    когда как, но да, используем в некоторых случаях
  • @konstantin_mitjurin #277298 10:46 AM, 01 Jul 2022
    всем привет, такая ситуация - понадобилось переместить данные КХ в 2 разные локации
  • @konstantin_mitjurin #277299 10:46 AM, 01 Jul 2022
    метаданные в 1 место, а store в другое
  • @konstantin_mitjurin #277300 10:46 AM, 01 Jul 2022
    вроде все ок
  • @konstantin_mitjurin #277301 10:46 AM, 01 Jul 2022
    но таблица default теперь пустая, все симлинки переделали
  • @konstantin_mitjurin #277302 10:47 AM, 01 Jul 2022
    куда смотреть?
  • @konstantin_mitjurin #277303 10:48 AM, 01 Jul 2022
    мы используем storage_policy
  • https://t.me/clickhouse_ru
    в смылсе вы разнесли path и metadata_path?

    что такое "таблица default" в какой базе ? или это база default?
  • @konstantin_mitjurin #277305 10:49 AM, 01 Jul 2022
    да, база default
  • https://t.me/clickhouse_ru
    /var/lib/clickhouse/store
    куда перенесли?

    и как это меняли в конфиге?

    /var/lib/clickhouse/data
    тут симлинки на store должны быть
  • https://t.me/clickhouse_ru
    @BloodJazMan #277307 10:50 AM, 01 Jul 2022
    /var/lib/clickhouse/metadata/default.sql
    куда перенесли?
  • перенсли на другой диск, путь прописали на диске в storage_policy
  • @konstantin_mitjurin #277309 10:51 AM, 01 Jul 2022
    перенесли папку store туда
  • @konstantin_mitjurin #277310 10:52 AM, 01 Jul 2022
    /var/lib/clickhouse/metadata/default.sql - остался на месте
  • https://t.me/clickhouse_ru
    ну так она на всех дисках должна быть
    дефолтный диск тоже поменяли?
  • @konstantin_mitjurin #277312 10:52 AM, 01 Jul 2022
    да
  • @konstantin_mitjurin #277313 10:52 AM, 01 Jul 2022
    и пути в конфиге переписали
  • @konstantin_mitjurin #277314 10:53 AM, 01 Jul 2022
    получается, что все кроме store - перенесли на новый дефолтный диск
  • @konstantin_mitjurin #277315 10:53 AM, 01 Jul 2022
    store - на другой диск
  • https://t.me/clickhouse_ru
    пути переписали только в storage_policies?

    или path тоже поменяли?

    ищите
    grep -r /var/lib/clickhouse /etc/clickhouse-server/
    и сравнивайте что не поменяли еще
  • @konstantin_mitjurin #277318 10:53 AM, 01 Jul 2022
    все симлинки поменяли, права выставили
  • все поменяли
  • @konstantin_mitjurin #277320 10:54 AM, 01 Jul 2022
    грепнул - все чисто
  • https://t.me/clickhouse_ru
    ну тогда чистите логи ребутайте сервер, и курите логи до просветления

    ну и еще
    SELECT * FROM system.tables FORMAT Vertical
    сделайте
    посмотрите куда metadata_path и data_path ведут
  • ок, сейчас посмотрю
  • @fps70 ↶ Reply to #277261 #277323 10:57 AM, 01 Jul 2022
    смотреть надо в сторону массивов через group by в подзапросе, а потом развернуть все через array join
    select
    id, resource,
    a_timestamps,
    timestamps_end,
    consumption
    from
    (
    select
    id, resource,
    arraySort((x)->x, groupArray(timestamp)) as a_timestamps,
    arraySort((x,y)->y, groupArray(value), groupArray(timestamp)) as a_value,
    arrayPushBack(arrayMap((x)->a_value[x+1]-a_value[x], arrayPopBack(arrayEnumerate(a_value))),0) as consumption,
    arrayPopFront(arrayPushBack(a_timestamps, toDateTime(0))) as timestamps_end
    from
    test
    group by
    id, resource
    )
    array join
    a_timestamps, timestamps_end, consumption
    ;
  • @1382671541 #277324 10:57 AM, 01 Jul 2022
    надо же, какая сложная реализация any(value) over(partition by id, resource order by timestamp rows between 1 preceding and 1 preceding)
  • @fps70 ↶ Reply to #277324 #277325 10:59 AM, 01 Jul 2022
    както привык в клике массивами пользоваться. Они нагляднее )
  • у нас с вами явно разные понятия о наглядности)
  • https://t.me/clickhouse_ru
    Спасибо, потестирую
  • @infisamk #277328 11:00 AM, 01 Jul 2022
    Ну не знаю. По мне LEAD для данной задачи проще будет
  • SELECT *
    FROM system.tables
    WHERE database = 'default'
    FORMAT Vertical

    Query id: 18e5a499-5303-41aa-b885-a9d821be34c0

    Ok.

    0 rows in set. Elapsed: 0.007 sec.
  • @infisamk #277330 11:00 AM, 01 Jul 2022
    Да и быстрее, скорее всего
  • https://t.me/clickhouse_ru
    Благодрю, тоже опробую)
  • @konstantin_mitjurin #277332 11:00 AM, 01 Jul 2022
    он вообще не видет базу default
  • лучше не надо
    тут всё есть. можете мою команду взять за образец
    https://kb.altinity.com/altinity-kb-queries-and-syntax/lag-lead/
  • разобрались, оказывается внутри store хранятся и метаданные, мы просто перекинули их в store который на дефолтном диске и все завелось
  • https://t.me/clickhouse_ru
    @kuzvladd #277335 11:21 AM, 01 Jul 2022
    Добрый день! Подскажите пожалуйста в какую сторону копать. Есть пользователь у которого установлена настройка профиля max_threads = 16. Я смотрю запросы в query_log и наблюдаю что один из запросов использовал 334 треда length(thread_ids). Почему так может происходить? Ещё такой вопрос: в чем разница между локал тредами и глобальными?
  • @fps70 ↶ Reply to #277333 #277338 12:00 PM, 01 Jul 2022
    почему нет? По ссылке точно такой же пример с массивами есть
  • не знаю как вы, но я не хотел бы, чтобы мне от предыдущего девелопера досталось полотно типа вашего (которое можно заменить одной строчкой стандартного sql кода), при всём уважении. считаю, что лучше человека сразу направить на то, чтобы юзать простые и общепринятые решения
  • https://t.me/clickhouse_ru
    хм, странно конечно, по умолчанию путь к метаданным /var/lib/clickhouse/metadata/
    он точно не внутри store
  • @asayahov #277341 12:15 PM, 01 Jul 2022
    добрый день!
    подскажите пожалуйста по шардингу, хочу поменять sharding_key с рандома на что-то более удобное.
    правильно ли понимаю, что можно просто создать новую Distributed таблицу с теми же шардинг таблицами, но другим sharding_key и подменить ей старую?
  • https://t.me/clickhouse_ru
    Да
  • https://t.me/clickhouse_ru
    @konnectrl #277343 12:22 PM, 01 Jul 2022
    Кликхаус в душе не знает где что лежит:)
  • @fps70 ↶ Reply to #277339 #277344 12:26 PM, 01 Jul 2022
    клик не совсем общепринятая база. И оконные функции не так давно появились. Но наверно вы правы, стандартные оконные функции в sql знакомы большему количеству людей.
  • только обратите внимание, что старые данные так и останутся лежать, где были
  • понял, спасибо)
  • @asayahov #277347 12:33 PM, 01 Jul 2022
    еще вопрос по шардинг, рядом, если у меня есть две Distributed таблицы с одинаковым распределением данных по sharding_key между ними, и мне нужно сделать join по ним, кликхаусу как-то можно объяснить что можно делать джоины локально в шардах и потом уже объядинять? или это так и работает по умолчанию?
  • https://t.me/clickhouse_ru
    @konnectrl #277348 12:53 PM, 01 Jul 2022
    Вы доку открывали перед тем, как сюда писать ?
  • хм, да, прошу прощения, перечитал, спасибо!
  • https://t.me/clickhouse_ru
    @catent #277351 02:31 PM, 01 Jul 2022
    какой лучший способ подмножество таблицы скопировать в другую таблицу?

    insert into foo (select * from bar where _some_condition)?
  • https://t.me/clickhouse_ru
    @catent ↶ Reply to #277351 #277352 02:32 PM, 01 Jul 2022
    clickhouse-copier наверное для больших табличек
  • https://t.me/clickhouse_ru
    @ultra_sladkii_bubaleh #277355 03:12 PM, 01 Jul 2022
    Всем привет!
    Выполняю запрос в клик через clickhouse-jdbc и ловлю ошибку 241 memory_limit_exceeded, но в блоке catch отлавливаю исключение и там код 1002 (unknown exception), а сам код 241 лежит в теле ошибки в cause. Можете подсказать, почему он оборачивает исключение в этот код и можно ли получить реальный код исключения не парся текст исключения?
  • https://t.me/clickhouse_ru
    Зависит от таблички. Если нужно перенести одну партицию, например, для этого лучше подойдёт REPLACE PARTITION.
    Если результат селекта не влезет в память, можно разбить на подгруппы и провести несколькими инсертами.
    Ну и хорошо, если есть сортировка по времени, разбивать на временные интервалы.
  • https://t.me/clickhouse_ru
    @good_developer #277358 06:23 PM, 01 Jul 2022
    Как keeper'у задать listen_ip? А то слушает raft на всех интерфейсах, а это не очень приятно взгляду
  • https://t.me/clickhouse_ru
    https://github.com/ClickHouse/ClickHouse/issues/38536

    Судя по изменениям моего тикета, они не считают багом игнор листен хоста
    Clickhouse keeper ignores listen_host for port 9234 · Issue #38536 · ClickHouse/ClickHouse

    Clickhouse keeper binding to :::9234 ignores <listen_host> from config How to reproduce Put keeper_config.xml into a local keeper directory and then mount it into a container <...

  • https://t.me/clickhouse_ru
    Composable protocols configuration of the server. · Issue #38411 · ClickHouse/ClickHouse

    The idea is to make the configuration of the protocols (TCP, HTTP, HTTPS, MySQL, etc) and the ports to listen more flexible. It should be possible to specify a custom list of listen_host and listen...

  • https://t.me/clickhouse_ru
    Это хороший и полезный тикет, согласен.
    Тем не менее на мой взгляд текущие поведение все таки - баг. Даже если он wont-fix
  • https://t.me/clickhouse_ru
    я не спорю, это скорее undefined behaviour / usability issue, починят когда-нибудь.

    в терминах ClickHouse проекта "баг" это то что делает использование КХ невозможным и нет воркэраунда, т.е. любая проблема с кипером это не баг, потому что кипер это не КХ.
  • https://t.me/clickhouse_ru
    А, понятно, спасибо за объяснение.
  • 02 July 2022 (28 messages)
  • Это должно работать https://github.com/ClickHouse/ClickHouse/blob/c2486f3637a08c582e110a249ac86485ea7499c3/programs/keeper/Keeper.cpp#L350 скорее всего этот listen_host вы положили где-то не там...
    ClickHouse/Keeper.cpp at c2486f3637a08c582e110a249ac86485ea7499c3 · 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
    Я специально в тикете сделал не стандартный ip чтобы показать что порт 9181 слушает именно его, а 9234 - всё
  • https://t.me/clickhouse_ru
    @Badbread #277370 06:49 AM, 02 Jul 2022
    Добрый день. А не подскажите насколько затратно отправлять в запросе большое количество элементов в WHERE .. IN (X,Y,Z) ? Скажем тысячу элементов. Это больше дефолтных значений max_query_size, max_ast_elements. Я пытаюсь понять насколько это влияет на производительность
  • https://t.me/clickhouse_ru
    100 это мало
    100 000 можно если пролечите по размеру
    Почитайте про external_data в документации
    Там очень много значений можно передать
  • https://t.me/clickhouse_ru
    Спасибо, почитаю. А что значит "пролечить по размеру"?
  • https://t.me/clickhouse_ru
    Пролезете по размеру запроса, думаю
  • https://t.me/clickhouse_ru
    понял) спасибо. Размер можно и увеличить, как я понимаю
  • https://t.me/clickhouse_ru
    @nordluf #277375 07:38 AM, 02 Jul 2022
    Ну да
  • https://t.me/clickhouse_ru
    да, с телефона писал "пролазить"

    1000 мало
    100 000 id вполне пролезают в дефолтные настройки вроде...
    лучше всего использовать https://clickhouse.com/docs/en/engines/table-engines/special/external-data/
    External Data for Query Processing | ClickHouse Docs

    ClickHouse allows sending a server the data that is needed for processing a query, together with a SELECT query. This data is put in a temporary table (see the section “Temporary tables”) and can be used in the query (for example, in IN operators).

  • https://t.me/clickhouse_ru
    @s_nikolajus #277382 10:33 AM, 02 Jul 2022
    Добрый день знатокам :) кто нибудь подскажет как «скрыть» реплицированную таблицу от юзера (приложение) чтобы он видел созданную поверх неё distributed таблицу, но не видел ту, что под ней? Очевидно, что revoke по таблицам снизу не даст делать select из distributed, что плохо. Цель скрыть эти таблицы от приложения и оставить только доступ к distributed таблицам.
  • https://t.me/clickhouse_ru
    Я наоборот Timestamp делал
  • https://t.me/clickhouse_ru
    Можно сделать реплицированную в другой дб, например
  • https://t.me/clickhouse_ru
    Как вариант, да, но требует реорганизации
  • https://t.me/clickhouse_ru
    @soyayaos #277421 12:12 PM, 02 Jul 2022
    Всем привет. Подскажите, если кто сталкивался, есть ли способ силами Кликхауса сделать либо а) выброс ошибки на весь импорт б) пропуск строк с несуществующей относительно года датой в) приведение даты не увеличивая значение вперёд, а оставляя её валидной для февраля выбранного года
  • https://t.me/clickhouse_ru
    @isrustam #277432 02:50 PM, 02 Jul 2022
    Всем привет!
    Буду очень признателен за совет. Собираем финансовые показатели акций и рассчитываем по ним различные метрики. Набор рассчитываемых метрик строго определен (около 100), но со временем он может и будет расширяться.

    Сейчас думаем сделать такую схему:
    Таблица1 - сюда ежедневно складываем финансовые показатели в формате:
    id_акции, id_показателя, значение, дата
    Таблица2 - материализованное представление с метриками по Таблица1:
    id_акции, метрика1, метрика2..., дата
    По идее, таким образом мы сможем задать формулы для каждой метрики, тем самым производить вычисления внутри кликхаус.

    Но, когда необходимо будет добавить новую метрику, нам придется переделывать материализованное представление, добавляя столбцы. На сколько это хорошая практика? Или сделать хранение всех рассчитываемых метрик в формате:
    id_акции, id_метрики, значение, дата
    ?
    Но тогда придется выносить расчет метрик за пределы кликхауса, и просто импортировать в виде значений, чего не хотелось бы.
  • https://t.me/clickhouse_ru
    Вы не сказали какое у вас железо и сколько данных у вас планируется ?
  • https://t.me/clickhouse_ru
    32Гб оперативки, 8 ядер
    Планируется собирать данные по 150 тыс. акций. Каждый день около 100 собираемых показателей и столько же расчетных
  • https://t.me/clickhouse_ru
    @ProffUst #277435 03:01 PM, 02 Jul 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
    норм практика, материализованное представление сделайте только с TO db.table выражением
    а то .inner таблицами неудобно управлять..

    ну и вы должны помнить что ваш SELECT в матвьюхе работает только с куском данных который приходит через INSERT в source таблицу а не со всей таблицей из SELECT
  • https://t.me/clickhouse_ru
    @gotmad #277442 04:19 PM, 02 Jul 2022
    ребята из Altinity, в связи с анонсом Altinity.Cloud Anywhere, вы можете рассказать о дальнейшей судьбе вашего clickhouse-operator?
  • https://t.me/clickhouse_ru
    Вроде бы говорили, о том что пишут новую версию
  • https://t.me/clickhouse_ru
    оператор продолжает развиваться, он является основным компонентом Altinity Cloud Anywhere
  • https://t.me/clickhouse_ru
    @Pershin_Artem_spb #277446 09:14 PM, 02 Jul 2022
    а как-нибудь можно настройку поставить, чтобы реплики участвовали в паралелльном group by , а не просто запрос уходил на одну из реплик полностью? например по месяцам если таблица партицирована, по два месяца на каждом шарде, 3 шарда и чтобы один месяц на каждой реплики процессился
  • 03 July 2022 (31 messages)
  • https://t.me/clickhouse_ru
    @5499291644 #277447 01:36 AM, 03 Jul 2022
    I'm a happy woman today , for being among the trading platform , i Invested $1000 and got $10,500 as my profit back earlier today at the exact time I Invested yesterday , thank you very !! I'm much grateful
    👇👇

    https://t.me/+xfYRN781ziEyMDZk
  • https://t.me/clickhouse_ru
    allow_experimental_parallel_reading_from_replicas=true в свойства профила поставьте
    и max_parallel_replicas=2 в SETINGS в query
    должно сработать
    https://github.com/ClickHouse/ClickHouse/pull/29279
    Parallel reading from replicas by nikitamikhaylov · Pull Request #29279 · 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
    @represented_2010 #277452 10:49 AM, 03 Jul 2022
    ​​Мистери боксы от Binance NFT🎁

    300 случайных участников, ответивших верно на вопросы в форме, получат по 1 мистери-боксу от Binance NFT, а это может быть не одна тысяча долларов...❗️

    Ответы:
    1. June 24
    2. TRUE

    3.
    ▪️ Preventing forgery
    ▪️ Lowers chances of loss or damage
    ▪️ Reduce costs and faster production
    ▪️ Ongoing revenue opportunities

    4. несколько ответов:
    ▪️ Evaluate their roadmap
    ▪️ Check the liquidity
    ▪️ Research the community and team

    5. несколько ответов:
    ▪️ Complete Identity Verification
    ▪️ Have at least 5 Followers on your Binance NFT User Profile
    ▪️ Have Sufficient BNB or ETH in Spot Wallet to cover minting fees

    📆Дедлайн: 3 июля | 10:00 (МСК)

    Для получения NFT нужно пройти KYC на Binance

    БОЛЬШЕ РОЗЫГРЫШЕЙ⤵️
    👇Не забудь подписаться👇
    ✅Связь со мной ✅Telegram канал ✅YouTube ✅AirDrop
  • https://t.me/clickhouse_ru
    UPD:
    Возможно кому-то будет полезно (поиском найдут пост), кто считает ЕМА для торговых графиков.

    что бы получить верные значение ЕМА у меня получилось так:

    exponentialMovingAverage( n / exp(1) )
    или
    exponentialTimeDecayedAvg(n/2)

    где n желаемая длина ЕМА, почему так пока не понял, но работает в точности, как на индикаторах разнообразных сервисов.
  • https://t.me/clickhouse_ru
    @ufaweb #277459 03:46 PM, 03 Jul 2022
    какая-то новая схема)
  • https://t.me/clickhouse_ru
    даже интересно стало, в чем она заключается
  • @azzaazaa #277461 03:52 PM, 03 Jul 2022
    Мб обучается на нас?
  • https://t.me/clickhouse_ru
    @serjnarbut #277464 04:02 PM, 03 Jul 2022
    Точно обучается
  • https://t.me/clickhouse_ru
    @ProffUst #277465 04:03 PM, 03 Jul 2022
    Везде уже написал, ага
  • https://t.me/clickhouse_ru
    спасибо, поставил allow_experimental_parallel_reading_from_replicas = 1 и max_parallel_replicas = 2 и почему-то просканило 42 млрд строк вместо 21 млрд из distributed таблички. Хуже стало получается. Как он вообще просканил в 2 раза больше строк, чем есть в таблице всего.
  • https://t.me/clickhouse_ru
    @Pershin_Artem_spb #277467 04:08 PM, 03 Jul 2022
    а где почитать в коде можно как allow_experimental_parallel_reading_from_replicas делит на чанки по репликам?
  • https://t.me/clickhouse_ru
    ну логично что получилось значение помноженное на max parallel replicas
  • https://t.me/clickhouse_ru
    я думал что в связке с allow_experimental_parallel_reading_from_replicas оно должно как то по партициям бить на реплики и сканить в сумме один раз. И ускорять запрос, а не замедлять его
  • https://t.me/clickhouse_ru
    берегитесь! скам! кошелек создан с multisig , сделано это чтобы человек который захочет перевести бабки со счета, он прежде всего закинет бабки для транзакции. А транзакцию создать не сможет
  • https://t.me/clickhouse_ru
    @vulgarnykarlson #277471 04:14 PM, 03 Jul 2022
    Но как вижу уже один лохонулся )) скинул ему трона на бакс :D
  • https://t.me/clickhouse_ru
    аа, так вот в чем схема, теперь ясно, спасибо
  • https://t.me/clickhouse_ru
    пойдешь пользоваться ?)
  • https://t.me/clickhouse_ru
    нет, мне релаьно было интересно, в чем подвох
  • https://t.me/clickhouse_ru
    @seeyouall #277475 04:17 PM, 03 Jul 2022
    уловки это ж как фокусы, всегда хочется узнать в чем секрет, в чем прикол
  • https://t.me/clickhouse_ru
    @vulgarnykarlson #277476 04:18 PM, 03 Jul 2022
    Ну это скорее уловка для "жадных", которые захотят своровать чужое и сами в итоге в капкане
  • https://t.me/clickhouse_ru
    ну это ясно, но неочевидно, в какой момент теряются деньги
  • https://t.me/clickhouse_ru
    @seeyouall #277478 04:18 PM, 03 Jul 2022
    теперь ясно 🙂 ty
  • https://t.me/clickhouse_ru
    @nordluf #277483 05:34 PM, 03 Jul 2022
    Подскажите, пожалуйста, что это за ошибка в кипере такая возникла?

    Code: 999. DB::Exception: Received from 10.121.1.3:9000. DB::Exception: Cannot allocate block number in ZooKeeper: Coordination::Exception: Connection loss. (KEEPER_EXCEPTION)

    кластер 22.6, копировал данные в дистрибьютед таблицу. Кипер 22.6 (внутри 22.4) на три ноды
  • https://t.me/clickhouse_ru
    в смысле clickhouse-keeper вместо zookeeper?
  • https://t.me/clickhouse_ru
    Ага
  • https://t.me/clickhouse_ru
    отдельно запущен или внутри clickhouse-server?
  • https://t.me/clickhouse_ru
    3 отдельные ноды
  • https://t.me/clickhouse_ru
    что-то не так с коннектом до этих keeper нод
    поищите в логах кипера за то же время ошибки
  • https://t.me/clickhouse_ru
    Там нет ничего криминального, и ничего связанного с сетью.
    Ок, если просто сеть моргнула - послежу.

    Спасибо
  • https://t.me/clickhouse_ru
    @LOUELLA_38OOA #277492 07:20 PM, 03 Jul 2022
    У "Дії" почалися перші виплати 6500 грн з "єПідтримки" для тих, хто через війну втратив роботу. Майже один мільйон українців вже отримали кошти – їх можна витрачати без обмежень.

    Приват Банк
    https://t.me/privatbank_help2
  • https://t.me/clickhouse_ru
    @Gagarin1979 #277493 07:29 PM, 03 Jul 2022
    /report
  • 04 July 2022 (191 messages)
  • https://t.me/clickhouse_ru
    @baikulov #277494 03:42 AM, 04 Jul 2022
    Утречко!

    Подскажите, пожалуйста, как решить задачу!
    Мне нужно взять определённый список таблиц, например с помощью SHOW TABLES и создать из него здоровенный запрос типо
    SELECT value
    FROM firts_table
    UNION ALL
    SELECT value
    FROM second_table
    UNION ALL
    SELECT value
    FROM third_table
    и т.д.

    Я могу это сделать только силами SQL?

    P.s. список SHOW TABLES постоянно будет меняться.
  • https://t.me/clickhouse_ru
    Силами SQL-врядли, а вот на баше это будет несколько строчек кода, или на питоне, например
  • https://t.me/clickhouse_ru
    Значит так и сделаю. Спасибо!
  • https://t.me/clickhouse_ru
    Joined.
  • https://t.me/clickhouse_ru
    @NTMoni #277498 06:12 AM, 04 Jul 2022
    Всем доброго дня! Подскажите пожалуйста.
    Если я не ошибаюсь, лучше избегать JOIN, где правая таблица очень большая. Т.к. она храниться в оперативной памяти.
    У меня стоит задача, работаю с сырыми данными из метрики :
    Левая таблица это Таблица визитов (300млн. строк), правая это Таблица просмотров (2млрд. строк).
    Я отфильтровал правую таблицу(hits) по определённым критериям, чтобы соединить с визитами по WatchID (25млн. строк). Наверное стоит отметить, что фильтрация была в CTE выражение.

    Теперь мне нужно сделать INNER JOIN визитов с отфильтрованной таблицей, но всё равно выходит за пределы Memory limit for query.
    Как можно провести такое соединение?
  • https://t.me/clickhouse_ru
    @Alexey_037 #277499 06:23 AM, 04 Jul 2022
    Select... From A where a.key in (select b.key from B)
  • https://t.me/clickhouse_ru
    Попытаться оставить в правой таблице, только нужные столбцы, либо через IN и для IN есть такой лайфхак
  • https://t.me/clickhouse_ru
    @NTMoni #277501 06:31 AM, 04 Jul 2022
    Спасибо за советы! буду пробовать
  • https://t.me/clickhouse_ru
    @392734528 #277502 07:16 AM, 04 Jul 2022
    Всем привет!
    подскажите а Клик с Касанрой совсем не умеет дружить?
  • https://t.me/clickhouse_ru
    @critskiy #277503 07:28 AM, 04 Jul 2022
    Всем привет, тут произошла у меня небольшая проблема. ClickHouse версия 20.5.4.40, по одной из схем были сделаны следующие шаги:
    1) были созданы таблицы ReplicatedMergeTree с суффиксом _replica(test_db.test_table_replica), и были исходные test_db.test_table, откуда данные были перезалиты в test_db.test_table_replica;
    2) мной были переименованы таблицы test_db.test_table_replica в test_db.test_table, а test_db.test_table стало test_db.test_table_old.
    Репликация успешно работала, пока на утро сегодня не обнаружилась ошибка:

    Code: 999, e.displayText() = Coordination::Exception: No node, path: /clickhouse/tables/(cluster_name)/test_db/test_table/log (version 20.5.4.40 (official build))

    При проверке на стороне zookeeper при команде

    zkCli.sh ls /clickhouse/tables/
    (cluster_name)/test_db

    отображаются старые названия вида таблиц на движке ReplicatedMergeTree вида test_table_replica. Что делать в таком случае? Версии и конфиги не трогались и не подвергались изменениям. Поступать ли мне так, как описано здесь:

    https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/replication/#recovery-after-failures
    Data Replication | ClickHouse Docs

    Replication is only supported for tables in the MergeTree family:

  • https://t.me/clickhouse_ru
    @Pengwin61 #277504 08:21 AM, 04 Jul 2022
    Joined.
  • https://t.me/clickhouse_ru
    @Pengwin61 #277505 08:25 AM, 04 Jul 2022
    Всем привет. Прошу сразу не кидаться тряпками, я только начал изучать Кликхаус, и нет должного опыта.
    -У меня проблема, сильно разрослись логи: query_thread_log (254 bg)
    query_log (159 gb)
    Я прочитал в документации, что нужно настроить TTL для этих логов <ttl>event_date + INTERVAL 30 DAY DELETE</ttl>
    Решил, что так будет оптимально.
    1) Вопрос: Накопившиеся логи он мне не отчистит?
    2) Как отчистить старые логи, место заканчивается?
  • https://t.me/clickhouse_ru
    нет не очистит
    ALTER TABLE system.query_thread_log MATERIALIZE TTL
    почистит старые принудительно в фоне...
  • https://t.me/clickhouse_ru
    а старые это какие? как у меня прописан в TTL ?
  • https://t.me/clickhouse_ru
    да
    статью почитайте по ссылке что вам скинули
  • https://t.me/clickhouse_ru
    ок спасибо
  • https://t.me/clickhouse_ru
    спасибо
  • @5432625493 #277513 09:15 AM, 04 Jul 2022
    Joined.
  • https://t.me/clickhouse_ru
    @dmitriynvkv #277515 09:26 AM, 04 Jul 2022
    Всем привет, а кто то юзал cube js для bi? Он умеет с помощью драг энд дропов json разбирать?
  • https://t.me/clickhouse_ru
    Вы точно про Clickhouse ?
  • https://t.me/clickhouse_ru
    В связке с КХ просто интересно
  • https://t.me/clickhouse_ru
    @dmitriynvkv #277518 09:28 AM, 04 Jul 2022
    Я просто ищу какуой то би который для рядового пользователя через драг энд дропы позволит наделать дашбордиков.
  • https://t.me/clickhouse_ru
    @konnectrl #277520 09:28 AM, 04 Jul 2022
    Есть metabase какой-нибудь
  • https://t.me/clickhouse_ru
    Он умеет с json работать?
  • https://t.me/clickhouse_ru
    Я думаю, вам придётся самим Json разбивать
  • https://t.me/clickhouse_ru
    😔😔 пнл спасибо
  • https://t.me/clickhouse_ru
    @Caside #277524 09:46 AM, 04 Jul 2022
    Есть ли пример использования <named_collections> из settings.xml для подключения к другому кластеру clickhouse?

    Есть вариант без диктов, memory а напрямую через запрос с указанием имени коннекшена и таблицы?
  • https://t.me/clickhouse_ru
    можно через merge функцию: select value from merge('database', 'first_table|second_table|etc')
  • https://t.me/clickhouse_ru
    А значения во втором аргументе для merge можно скормить из SHOW TABLES?
  • https://t.me/clickhouse_ru
    можешь попробовать, но мне кажется что там константный регексп нужен
  • https://t.me/clickhouse_ru
    Понял. Спасибо!
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @Caside ↶ Reply to #277529 #277530 10:17 AM, 04 Jul 2022
    Из доки создаются дикты или таблицы с экзотическими движками для доступа в другие базы.

    А как тогда подключаться к самому ch?
  • https://t.me/clickhouse_ru
    Всмысле сам к себе ?
  • https://t.me/clickhouse_ru
    @konnectrl #277532 10:18 AM, 04 Jul 2022
    SELECT * FROM remote(named_collections)
  • https://t.me/clickhouse_ru
    @konnectrl #277533 10:18 AM, 04 Jul 2022
    Или что вы имеете ввиду ?
  • https://t.me/clickhouse_ru
    @Caside ↶ Reply to #277532 #277534 10:19 AM, 04 Jul 2022
    именно, прошу уточнить синтаксис для использования remote и куда там именно подставлять имя коннекшена?
  • https://t.me/clickhouse_ru
    @Caside #277535 10:20 AM, 04 Jul 2022
    в доке по remote или remoteSequre указаны аргументы обязательные только хост, порт, таблица, юзер и т.д.
  • https://t.me/clickhouse_ru
    @konnectrl #277536 10:20 AM, 04 Jul 2022
    А что вот просто вместо mysql написать remote и должно работать.
  • https://t.me/clickhouse_ru
    @Caside ↶ Reply to #277536 #277537 10:20 AM, 04 Jul 2022
    спасибо, пробуем
  • https://t.me/clickhouse_ru
    Ну так это же просто макрос, который открывается, то есть вам так же нужно указать требуемые данные для подключения в конфиге.
  • https://t.me/clickhouse_ru
    @konnectrl #277539 10:21 AM, 04 Jul 2022
    host/password/port/address и т.д.
  • https://t.me/clickhouse_ru
    @Rinal_Galievich #277540 10:31 AM, 04 Jul 2022
    Joined.
  • https://t.me/clickhouse_ru
    @grigorie696 #277541 10:32 AM, 04 Jul 2022
    1). Не подскажите как создать колонку с nullable array?
    2). При попытке записи массива в колонку Array(string) ругается Array to string conversion хотя скармливаю массив
  • https://t.me/clickhouse_ru
    Не бывает nullable(arrar). Используется пустой массив - []

    Бывает Array ( Nullable(String) )
  • https://t.me/clickhouse_ru
    окей а про 2 вопрос не встречалось?
  • https://t.me/clickhouse_ru
    пример нужен того что вставляете
  • https://t.me/clickhouse_ru
    "objects__life__sports" => array:1 [
    0 => "Бег"
    ]
  • https://t.me/clickhouse_ru
    @grigorie696 #277546 10:37 AM, 04 Jul 2022
    вставляю соотвественно значение
  • https://t.me/clickhouse_ru
    Это чат про кликхауз. То что привели -- это не SQL.
  • https://t.me/clickhouse_ru
    @vanyasvl #277548 10:55 AM, 04 Jul 2022
    А подскажите пожалуйста, какую опцию оменять, чтобы долгие запросы типа OPTIMIZE выполнялись, сейчас такая ошибка
    Timeout exceeded while receiving data from server. Waited for 300 seconds, timeout is 300 seconds.
  • https://t.me/clickhouse_ru
    Если проверить запущенные процессы, то OPTIMIZE должен продолжать работать, хотя пользовательский запрос и отвалился по таймауту.
  • https://t.me/clickhouse_ru
    это клиент отвалился --receive_timeout=3600 скорее всего запрос в system.processes остался и работает

    вообще если вам надо регулярно выполнять OPTIMIZE то вы не правильно сделали архитектуру...
    в лучшем случае OPTIMIZE надо выполнять на каких то партициях, когда точно знаете что данные туда больше не попадут
  • https://t.me/clickhouse_ru
    да, так и есть, только на отдельных партициях надо сделать OPTIMIZE DEDUPLICATE т.к. там могли ошибочно задублироваться данные. Новые данные туда уже не попадут
  • https://t.me/clickhouse_ru
    @Pengwin61 #277552 11:56 AM, 04 Jul 2022
    Помогите плиз . При удалении system.query_thread_log
    Code: 359, e.displayText() = DB::Exception: Table or Partition in system.query_thread_log was not dropped.
    Reason:
    1. Size (273.98 GB) is greater than max_[table/partition]_size_to_drop (50.00 GB)
    2. File '/var/lib/clickhouse/flags/force_drop_table' intended to force DROP doesn't exist
    How to fix this:
    1. Either increase (or set to zero) max_[table/partition]_size_to_drop in server config
  • https://t.me/clickhouse_ru
    @tamikso #277553 12:04 PM, 04 Jul 2022
    Добрый день, в клике хинты работают, типа parallel?
  • https://t.me/clickhouse_ru
    в кликхаусе нет хинтов и из коробки и так всё работает параллельно насколько возможно
  • https://t.me/clickhouse_ru
    Типа помочь перевести? Гугл транслейт?
  • https://t.me/clickhouse_ru
    мерси
  • https://t.me/clickhouse_ru
    @nordluf #277557 12:35 PM, 04 Jul 2022
    Подскажите ПЛЗ. Есть две ноды (22.6) настроенные в репликацию, когда вставляю данные в одну из нод, на другой вместо данных появляется в логах Not found address of host хостнейм первой ноды. Хостнейм непонятно откуда берется - я не могу его найти в preprocessed_configs, в remote_servers он описан (и доступен) по другому хостнейму.

    Что делать чтобы хостнейм сервера не фигурировал при репликации?
  • https://t.me/clickhouse_ru
    @chAlx314 #277558 12:35 PM, 04 Jul 2022
    Всем привет.

    У меня есть Клик непервой свежести (20.5.2.7), но неплохо работающий. В нём понадобилось заменить несколько строк на другие. И оказалось, что старые строки не удаляются.

    alter table track delete where te_id=89602012;
    select te_id from track where te_id=89602012 format TSV;

    89602012

    1 rows in set.

    Тактическое выжидание, установка mutations_sync=2, OPTIMIZE не помогли.

    Поле te_id типа Int64, входит в ключ:
    ENGINE = ReplicatedReplacingMergeTree()
    PARTITION BY h_month
    ORDER BY (p_id, h_at, te_id)

    В system.mutations все записи is_done (на обеих репликах):
    mutation_id: 0000000011
    command: DELETE WHERE te_id = 89602012
    create_time: 2022-07-04 10:51:21
    block_numbers.partition_id: ['0','1283299200',..,'1680307200','1682899200','1685577600']
    block_numbers.number: [12,15,...,18,132,32]
    parts_to_do: 0
    is_done: 1
    latest_fail_time: 0000-00-00 00:00:00
    latest_fail_reason:

    В system.merges пусто.

    В чём может быть дело?
  • https://t.me/clickhouse_ru
    @ilevd #277559 12:40 PM, 04 Jul 2022
    А где-нибудь есть формальное описание грамматики SQL синтаксиса в BNF?
  • https://t.me/clickhouse_ru
    Когда Replicated таблица подключается к Зукиперу, она кладет в Зукипер имя своего хоста или значение настройки interserver_http_host из config.xml
    другие реплики этой таблицы ищут ее по тому аннонсированному в зукипере имени.

    remote_servers не ИСПОЛЬЗУЕТСЯ в РЕПЛИКАЦИИ
  • https://t.me/clickhouse_ru
    ClickHouse/utils/antlr 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
    @ilevd ↶ Reply to #277561 #277562 12:45 PM, 04 Jul 2022
    Спасибо
  • https://t.me/clickhouse_ru
    но там может быть не 100% покрытие
  • https://t.me/clickhouse_ru
    это баг, и даже хуже, скорее всего alter table портит таблицу. Вам надо апгрейдится хотя бы до 20.8
  • https://t.me/clickhouse_ru
    кстати как имена партов выглядели до мутации и после? (mutation_version)?
  • https://t.me/clickhouse_ru
    Неожиданно.
    Спасибо
  • https://t.me/clickhouse_ru
    Спасибо!
    (Не буду сылаться на "а раньше работало", баг есть баг.)
  • @was_av #277568 12:56 PM, 04 Jul 2022
    Всем привет
    Подскажи возможно ли указывать партицию динамические в запросе на оптимизацию

    Например: OPTIMIZE TABLE default.table_with_engine_replacing_merge_tree partition toYYYYMM(now()) FINAL
    Такой вариант к сожалению не работает, но возможно есть альтернативный?
  • https://t.me/clickhouse_ru
    Вроде, примерно такие же остались.
    Вот было в parts_to_do_names:
    '1546300800_251_251_0_256', '1546300800_252_252_0_256', '1546300800_254_254_0_256', ...
    Сейчас в system.parts:
    1546300800_0_0_0_17469
    1546300800_1_252_216_17469
    1546300800_254_254_0_258
    1546300800_259_259_0
    1546300800_260_260_0
    1546300800_261_261_0
    (и соответствующие data_version: 17469, 17469, 258, 259, 260, 261)
  • https://t.me/clickhouse_ru
    это Replicated таблица?
    вы делали attach partition ? или восстанавливали из бекапа?
    странно что разные версии
  • https://t.me/clickhouse_ru
    Да, таблица ReplicatedReplacingMergeTree. Восстанавливать её приходилось после обнуления Кипера. На одной реплике аттачить все парты, на другой удалять и ждать перезаливки.
    Но парты вроде как должны оставаться прежнеми сразу после этого.
  • https://t.me/clickhouse_ru
    Да, я хотел бы sql показать но я использую библиотеку bavix для laravel там нет к сожалению что-то типа toSql()

    Не подскажите а json отдельно нет такого типа данных? в доке не нашел
  • @5272136899 #277574 01:34 PM, 04 Jul 2022
    Добрый день. В Графане, используя плагин https://grafana.com/grafana/plugins/grafana-clickhouse-datasource/ при фильтрации в TimeRange каким-то образом можно обратиться к полю Date ?

    Дефолтно макрос на timestamp и datetime
    ClickHouse

    ClickHouse datasource plugin for Grafana

  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #277573 #277575 01:35 PM, 04 Jul 2022
    Поищите сгенерированный вашей библиотекой запрос в system.query_log - возможно, поймёте что с ним не так.
  • https://t.me/clickhouse_ru
    при attach не сбрасывается _version в 0 и теперь у вас мутации просто пропускают эти парты потому что mutation_id logpointer меньше чем _version.
    типа они заработают после того как вы сделаете alter table delete 17 тыс. раз. (_17469)

    https://github.com/ClickHouse/ClickHouse/issues/18804
    attach part does not reset mutation version on a part. · Issue #18804 · ClickHouse/ClickHouse

    Attach part does not reset mutation version on attached parts. So mutations (update/delete) do not work against parts restored from a backup, because their version is bigger than the version stored...

  • https://t.me/clickhouse_ru
    Хм, а селекты всё равно читают такие парты из будущего?
  • https://t.me/clickhouse_ru
    да. Version нужен только мутациям
  • https://t.me/clickhouse_ru
    Спасибо.
    Значит, всегда остаётся опция перелить в другую таблицу селектом.
  • https://t.me/clickhouse_ru
    Вручную можно в 0 переименовать до attach
  • @vladz_alch #277581 01:54 PM, 04 Jul 2022
    добрый день подскажите такой вопрос - есть 3 ноды clickhouse которые используют 1 ноду с zookeeper для синхронизации таблиц - хочу сделать отдельный кластер zookeper из 3 нод и перевести clickhouse на него. Вопрос - возможно при переключении какиелибо проблемы при рестарте сервисов на нодах clickhouse ?
  • https://t.me/clickhouse_ru
    Кипер разве умеет одной нодой работать?
  • @vladz_alch #277583 01:56 PM, 04 Jul 2022
    да
  • https://t.me/clickhouse_ru
    Да
  • https://t.me/clickhouse_ru
    Ну зависит от того как вы зукипер переделаете.
  • @vladz_alch #277586 01:59 PM, 04 Jul 2022
    на что обратить внимание нужно ?
  • https://t.me/clickhouse_ru
    поделись потом опытом как переедешь на кластер ЗК, в техдолге тоже задача висит
  • https://t.me/clickhouse_ru
    У меня есть 8 вариантов как это сделать. Вы примерно хотя бы понимаете как вы зукипер будете мигрировать?
  • https://t.me/clickhouse_ru
    @den_crane #277589 02:05 PM, 04 Jul 2022
    Вы две ноды добавляете?
  • https://t.me/clickhouse_ru
    @den_crane #277590 02:05 PM, 04 Jul 2022
    Или полностью надо переехать?
  • @vladz_alch #277591 02:06 PM, 04 Jul 2022
    полностью
  • https://t.me/clickhouse_ru
    @den_crane #277592 02:06 PM, 04 Jul 2022
    Доступ у новых нод есть к старой? Или вы файлы будете копировать?
  • @vladz_alch #277593 02:06 PM, 04 Jul 2022
    копировать
  • @vladz_alch #277594 02:06 PM, 04 Jul 2022
    вначале почищу до 1 дня для минимизации
  • https://t.me/clickhouse_ru
    Выключаете старый зукипер. В этот момент таблицы в кх станут ro. Копируете файлы снепшотов и логов зукипера на новые ноды(дублируете 3 раза). Делаете у всех зк разные id. Запускаете все 3 зукипера новых. Проверяете что один лидер и два фолловера. Проверяете что в зукипере данные на месте. Меняете конфиг зукипера в кх.
  • https://t.me/clickhouse_ru
    Так база зукипера крохотная. Какая разница
  • @vladz_alch #277597 02:11 PM, 04 Jul 2022
    вопрос в том вернутся ли таблицы после этого в rw ?
  • ну смысл есть поскольку после недели работы там 12гб лежит - после очистки 15кб
  • https://t.me/clickhouse_ru
    Зависит от версии кх. Новые версии подхватят новые адреса из конфигов. Старые версии кх надо рестартить
  • @vladz_alch #277600 02:13 PM, 04 Jul 2022
    22.1.3.7
  • https://t.me/clickhouse_ru
    Бред какой-то
  • @vladz_alch #277602 02:17 PM, 04 Jul 2022
    бред в чем ? в размере того чего лежит в зоо или в версии ?
  • https://t.me/clickhouse_ru
    @den_crane #277603 02:25 PM, 04 Jul 2022
    Не понимаю как размер может уменьшиться настолько. Вы про какие файлы и что вы чистите?
  • https://t.me/clickhouse_ru
    @r33ru #277604 02:49 PM, 04 Jul 2022
    Всем привет. Кто-нибудь пользовался облаком клика в яндексе? Дайте пожалуйста обратную связь, как работает, проблем не было?
  • https://t.me/clickhouse_ru
    Сложности с их самоподписанный сертификатом поначалу были (они снаружи не разрешают без него), но как наладили - нет вопросов. Работает быстрее, чем когда сами настраивали с такой же конфигурацией
  • https://t.me/clickhouse_ru
    @r33ru ↶ Reply to #277605 #277606 03:09 PM, 04 Jul 2022
    Отлично. Спасибо. Это и хотелось услышать
  • https://t.me/clickhouse_ru
    @Mpanius #277607 03:09 PM, 04 Jul 2022
    Сами сделали апгрейд на стабильную версию в выбранный проиежуток времени, предупредили заранее
  • https://t.me/clickhouse_ru
    @r33ru ↶ Reply to #277607 #277608 03:09 PM, 04 Jul 2022
    Круто
  • https://t.me/clickhouse_ru
    @Mpanius #277609 03:09 PM, 04 Jul 2022
    Можно было поменять время или отложить, но нас устроило, поэтому не меняли
  • https://t.me/clickhouse_ru
    @alex_spiridonov #277610 03:10 PM, 04 Jul 2022
    всем привет
    есть таблица:

    CREATE TABLE application_daily_summary_agg
    (
    app_id UInt32,
    type UInt8,
    start_date Date,
    quantile90 AggregateFunction(quantileIf(0.9), UInt32, UInt8) // <- подобных quantile-колонок в реальной таблице несколько, для простоты оставил одну
    // другие простые агрегирующие колонки типа sum, count опущены
    )
    ENGINE = ReplicatedAggregatingMergeTree('/clickhouse/tables/{shard}/{database}/{table}', '{replica}')
    PARTITION BY toYear(start_date)
    ORDER BY (app_id, type, start_date);

    она заполнятеся с помощью MV из таблицы, в которую вставляется 200m+ в день. Но в самой таблице application_daily_summary_agg всего ~130к строк

    CREATE MATERIALIZED VIEW application_daily_summary_mv TO application_daily_summary_agg
    (
    app_id UInt32,
    type UInt8,
    start_date Date,
    quantile90 AggregateFunction(quantileIf(0.9), UInt32, UInt8)
    ) AS
    SELECT
    app_id,
    type,
    toDate(toStartOfDay(start_date_utc, 'Europe/Moscow')) AS start_date,
    quantileIfState(0.9)(duration, is_error = 0) AS quantile90
    FROM source_table
    GROUP BY app_id, type, start_date;

    в какой-то момент мёржи по таблице application_daily_summary_agg стали требовать много ОЗУ (больше чем по большой source_table, да и вообще по всем другим) - делая селект по system.merges можно увидеть, что они требуют по 3Гб+, а в логах встречаются ошибки о нехватке памяти на мёрж. CPU стоит под сотку, память постоянно забита.

    Пошёл расследовать, посмотрел по system.columns, получилось, что quantile90 занимает относительно много места: 3.1Gb в несжатом виде и 1.07Gb. Подозреваю конструкцию AggregateFunction(quantileIf(0.9), UInt32, UInt8).

    Собственно, вопрос: посоветуйте что-нибудь, чтобы сократить хранимые (и, видимо, сливаемые) объемы для колонки quantile90 (в реальной колонке таких колонок несколько).
    По факту данные всегда вставляются для последних 24 часов, всё что глубже можно было бы как-нибудь "схлопнуть". Осталось придумать как. Вокруг TTL что-то ничего пока не придумал. Помогите, пожалуйста, советом
  • https://t.me/clickhouse_ru
    @r33ru #277611 03:10 PM, 04 Jul 2022
    А если тюнить, они сами занимаются или самим придётся?
  • https://t.me/clickhouse_ru
    У нас не такие запросы чтобы тюнить, думаю. Мы поставили компрессию дефолтную посильнее и все
  • https://t.me/clickhouse_ru
    @Mpanius #277615 03:16 PM, 04 Jul 2022
    А нет, туда
  • https://t.me/clickhouse_ru
    @r33ru ↶ Reply to #277612 #277616 03:17 PM, 04 Jul 2022
    А сколько вы объем данных там держите?
  • https://t.me/clickhouse_ru
    @Mpanius #277617 03:18 PM, 04 Jul 2022
    У нас 2 гб в день приходит примерно. Около 200 гигов держим на ссд, потом двигаем на хдд.
  • https://t.me/clickhouse_ru
    @Mpanius #277618 03:20 PM, 04 Jul 2022
    Это данные счётчика + ещё наши таблицы. Все таблицы что там держим mergetree + materialised views. Потребляем через metabase в нашей сети. Думаю если будет тупить то можно к ним перекинуть metabase
  • https://t.me/clickhouse_ru
    @Mpanius #277619 03:25 PM, 04 Jul 2022
    Конфиг близкий к минимальному, 2 ядра и 4 гигабайта. Единственное что хоть чуть тупило - когда лили напрямую без буферизации. Сделали буферизацию и вставку по 10к записей - стало ок. Заливка идёт через etl jitsu, напрямую
  • https://t.me/clickhouse_ru
    @Mpanius #277620 03:27 PM, 04 Jul 2022
    Крч, пока очень довольны, по цене вышло дешевле чем сервак, что под это арендовали (там конфиг был больше, но и гемор с настройкой/бэкапами и так далее).
  • https://t.me/clickhouse_ru
    @r33ru #277621 03:38 PM, 04 Jul 2022
    @Mpanius Отлично. Большое спасибо за отзыв.
  • https://t.me/clickhouse_ru
    А что подразумевается под тупило? Вставки долгие?
  • https://t.me/clickhouse_ru
    Как я помню по аватарке у вас 8гб оперативки или даже меньше, если не путаю ... Может просто увеличить память ?
  • https://t.me/clickhouse_ru
    Ну не хватало мощности. Процессоры и память были под 100%
  • https://t.me/clickhouse_ru
    Понял, спс
  • https://t.me/clickhouse_ru
    @Mpanius #277626 03:50 PM, 04 Jul 2022
    А, вот кстати так выглядит объява об апдейте
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @Mpanius #277629 03:52 PM, 04 Jul 2022
    Ну и самое приятное - вот такие вот графики и алерты в мониторинге
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @Mpanius #277631 03:54 PM, 04 Jul 2022
    Все прям наглядное, алерты есть, и так далее
  • попробовать другой кодек на колонке. правда, это чревато увеличением нагрузки на CPU, с которым у вас и так беда, как вы говорите
  • @dj_mixer #277633 03:58 PM, 04 Jul 2022
    @blinkovivan, есть вопрос. а куда можно по поводу офлайн митапа написать? а то я на tyler@domain написал, а там тишина. Спасибо.
  • https://t.me/clickhouse_ru
    Не слушайте про кодек. Вам надо мержить меньше строк в буфере. Есть mergetree сеттинг mergeblocksize или что-то такое.
  • https://t.me/clickhouse_ru
    @392734528 #277635 03:59 PM, 04 Jul 2022
    ребят как правильно запихать в клик поле типа list[json] ?
    через мап вроде нельзя так как он строго структурирован. а отдельного типа данных аля json чот не нашел.
  • https://t.me/clickhouse_ru
    Array(String)
  • https://t.me/clickhouse_ru
    @392734528 #277637 04:00 PM, 04 Jul 2022
    Блин )
  • https://t.me/clickhouse_ru
    спасибо )
  • https://t.me/clickhouse_ru
    Тайлер на больничном был недавно, возможно не добрался ещё, спрошу
  • https://t.me/clickhouse_ru
    Есть тип данных конечно Json, но честно не знаю как он работает, из-за это не советую :)
  • https://t.me/clickhouse_ru
    а как обработку такой структуры вести? через функции? Будет ли это эффективно если что то оттуда надо будет достать и групернуть?
  • https://t.me/clickhouse_ru
    @392734528 #277642 04:02 PM, 04 Jul 2022
    так то я сам не рад такой структуре, но что есть, как говорится )
  • Спасибо
  • https://t.me/clickhouse_ru
    Понятное дело, что это будет медленней чем просто колонка с данными.
  • https://t.me/clickhouse_ru
    @392734528 #277645 04:03 PM, 04 Jul 2022
    короч попробуем чо получится
  • https://t.me/clickhouse_ru
    Конечно, Clickhouse слишком вариативен, и всё чисто тестировать.
  • https://t.me/clickhouse_ru
    в нормальном режиме memory used держится в районе 2Гб из 8 на всех трёх нодах кластера. Т.е. как-будто и 8 с большим запасом.
    потихоньку течёт на ноде, которая читает из кафки, но это другая история.

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

    мы уже добавили до 12Гб
    две ноды "выздоровели", видимо, "прожевав" тяжёлые мёржи. А одна так остаётся в раше, увеличение ОЗУ ей не помогло

    поэтому и стал копать глубже. М.б. ещё партицирование по месяцу сделать для этой таблицы, не знаю. Блин, да в ней всего 130к записей
  • https://t.me/clickhouse_ru
    когда ноды не находятся в описанном раше и по CPU и по памяти всё спокойно
  • https://t.me/clickhouse_ru
    хм, спасибо, почитаю
  • https://t.me/clickhouse_ru
    Кхм, может реально ГОД это слишком большой промежуток для партции ... Но по идее MergeTree и без партции должна жить нормально
  • https://t.me/clickhouse_ru
    @konnectrl #277651 04:10 PM, 04 Jul 2022
    А сколько весит таблица ?
  • я как понял, ему нужно еще и сжать данные на диске. а настройка merge_max_block_size влияет по итогу на количество получаемых партов (и итоговую компрессию), или просто мердж идет "медленнее" с меньшим потребленим ОЗУ и тем же итоговым результатом?
  • /opt/bitnami/zookeeper/bin/zkCleanup.sh -n 10
    сейчас сделал - было 12 Гб стало 91 Мб
  • @oizgagin #277654 04:11 PM, 04 Jul 2022
    всем привет, есть replicatedmergetree с multi-tier стораджем ссд-хдд-с3

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

    подскажите плз:

    1. как почистить место в с3 (удалить то, что было смувлено на локальные диски)?

    2. как выключить такое поведение?
  • https://t.me/clickhouse_ru
    По TTL муваете ?
  • @oizgagin #277656 04:12 PM, 04 Jul 2022
    нет, руками
  • https://t.me/clickhouse_ru
    9Гб не в сжатом, и около 3.2Гб в сжатом виде. Опа, может для мёржа СН приходится всю таблицу в память поднимать?
  • https://t.me/clickhouse_ru
    Ну посмотрите сколько партов у таблицы
  • уехало в с3 из-за storage policy когда место стало заканчиваться, столкнулся с неочисткой места в с3 когда мувал нужное назад в быстрое хранлище
  • https://t.me/clickhouse_ru
    партов 12 на одну партицию (текущий год)
  • https://t.me/clickhouse_ru
    А вы старые данные льёте ?
  • https://t.me/clickhouse_ru
    Тот же результат. Не влияет она результат.
  • https://t.me/clickhouse_ru
    Так зачем вы мучаетесь. Прочитайте доку кх. Вам надо в зк автопурж настроить
  • https://t.me/clickhouse_ru
    1 ссд почистить? Или с3
  • не то чтобы мучаюсь на новом кластере настроил - просто сейчас опасаюсь ноду ЗК перезапускать для применения
  • @vladz_alch #277666 04:23 PM, 04 Jul 2022
    подскажите сейчс в моей версии 22.1.3.7 настройки в конфиге КХ подхватятся сразу без рестарта сервиса или же нужно будет его рестартовать ?
  • с3
  • https://t.me/clickhouse_ru
    Нет, это текущие данные. Забираем из кафки через kafkaengine. Старее суток данных не бывает (стоит ттл на топике в Кафке)
  • https://t.me/clickhouse_ru
    Может построить mv поверх этого _agg, которое схлопнет агрегацию квантиля до одного вычисленного значения и поджать ttl для таблицы _agg + партицирование для неё замельчить до месяца...
  • https://t.me/clickhouse_ru
    Не нужен рестарт кх.
  • https://t.me/clickhouse_ru
    Кстати. А в кх кипере это нужно настраивать?
  • не совсем ясен вопрос - кипер если не настроено пишет снапшоты и логи до упора
  • https://t.me/clickhouse_ru
    Да, именно об этом был вопрос. Ясно понятно, настрою. Спасибо
  • https://t.me/clickhouse_ru
    @392734528 #277678 07:06 PM, 04 Jul 2022
    Array(IPv4) cannot be inside Nullable type
    правильно я понимаю что поле типа Array(чего угодно) не может быть NULL ?
  • нет. вместо NULL там пустой массив
  • https://t.me/clickhouse_ru
    Не бывает nullable(array). Используется пустой массив - []

    Бывает Array ( Nullable(String) )
  • https://t.me/clickhouse_ru
    извиняюсь я про определение значения поля в блоке create table
    у мен] просто он ругнулся на все поля подобные.
    то есть я могу просто не указывать это в определении. Если подам на вход null то оно сохранится как пустой массив в поле. Верно?
  • https://t.me/clickhouse_ru
    О! Псиб!
  • нет, insert вроде должен будет поругаться, что не сможет Null сконвертить
  • https://t.me/clickhouse_ru
    учту. спасибо
  • https://t.me/clickhouse_ru
    @392734528 #277685 07:40 PM, 04 Jul 2022
    А как понять трейс. Я чот в юпитере какую то дич получаю
    Например
    client.execute(f"INSERT INTO DB.TBL FROM INFILE {DATA_DUMP} COMPRESSION BZ2 FORMAT JSONAsString;")

    ServerException: Code: 62.
    DB::Exception: Syntax error: failed at position 34 ('FROM'): FROM INFILE ..dumps/data_dump. Expected one of: WATCH, OpeningRoundBracket, SELECT, VALUES, FORMAT, WITH, token. Stack trace:
  • https://t.me/clickhouse_ru
    @392734528 #277686 07:40 PM, 04 Jul 2022
    и чего это значит?
  • https://t.me/clickhouse_ru
    Infile это фишка кх клиента. Она больше нигде не работает.
  • https://t.me/clickhouse_ru
    тьфу блин тоска печаль
  • https://t.me/clickhouse_ru
    @392734528 #277689 07:41 PM, 04 Jul 2022
    руками получается парсить...
  • https://t.me/clickhouse_ru
    @392734528 #277690 07:42 PM, 04 Jul 2022
    жээээсть
  • https://t.me/clickhouse_ru
    Нет. Просто request засылайте в сервер свои json
  • https://t.me/clickhouse_ru
    @392734528 #277692 07:43 PM, 04 Jul 2022
    извиняюсь за занудство, но слово "только" помогло бы понять написанное однозначно )
  • https://t.me/clickhouse_ru
    Это автоперевод с китайского
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @392734528 #277695 07:45 PM, 04 Jul 2022
    издеваетесь над маленькими )
  • 05 July 2022 (210 messages)
  • @Abrak98 #277698 12:11 AM, 05 Jul 2022
    Всем привет. Есть ли возможность для движка Dictionary добавить комментарии к столбцам?
  • https://t.me/clickhouse_ru
    нет
  • @Abrak98 #277700 12:21 AM, 05 Jul 2022
    Понял, спасибо
  • https://t.me/clickhouse_ru
    @majorovms #277703 06:58 AM, 05 Jul 2022
    Привет! Я борюсь с ошибками Memory limit в version 21.3.14.1 (official build).
    Все возможные параллельные вставки зарулил в 1 поток.
    Глянул system.query_log, там самый большой insert потребляет 3.5Гб.
    Таблиц с движками 'Memory','Set','Join' нет.

    ```
    select metric, formatReadableSize(value) size
    from system.asynchronous_metrics
    where asynchronous_metrics.metric ilike '%mem%';
    +------------------+----------+
    |metric |size |
    +------------------+----------+
    |MemoryVirtual |106.63 GiB|
    |MemoryCode |310.66 MiB|
    |MemoryResident |11.24 GiB |
    |MemoryShared |22.53 MiB |
    |MemoryDataAndStack|106.01 GiB|
    +------------------+----------+
    ```

    И причем по графикам видно, что память забита постоянно, почти не зависимо от того сколько запросов пришло.
    Как узнать, чем забита MemoryResident 11.24 GiB?
    Всего на сервере 16Гб.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    круть 👍, буду дальше исследовать
  • @10376120 #277706 07:20 AM, 05 Jul 2022
    Здравствуйте, планируется ли восстановить функцию argMax для AggregatedMergeTree? В настоящее время, как я могу сохранить последнее сообщенное значение в AggregatedMergeTree, если столбец имеет тип String?
  • А когда её сломали?
  • https://t.me/clickhouse_ru
    к сожалению ни за что не зацепился((
    все также, самые тяжелые запросы 3.13Гб, но они последовательные.
    А мержи и процессы тоже как будто бы едят не много, минут 5 следил за ними.
    ```
    select (select formatReadableSize(sum(memory_usage)) from system.merges) merges,
    (select formatReadableSize(sum(memory_usage)) from system.processes) processes,
    (select formatReadableSize(sum(primary_key_bytes_in_memory_allocated)) from system.parts) pkeys,
    (select formatReadableSize(sum(total_bytes)) from system.tables WHERE engine IN ('Memory', 'Set', 'Join')) temptabs,
    (select formatReadableSize(sum(bytes_allocated)) FROM system.dictionaries) dicts
    +--------+---------+---------+--------+------+
    |merges |processes|pkeys |temptabs|dicts |
    +--------+---------+---------+--------+------+
    |2.42 GiB|0.00 B |66.84 MiB|NULL |0.00 B|
    +--------+---------+---------+--------+------+
    ```

    А вот MemoryResident постоянно в потолок, 10-11Гб из 13.81Гб.
    Есть на что ещё обратить внимание?
  • https://t.me/clickhouse_ru
    @392734528 #277711 07:53 AM, 05 Jul 2022
    привет!
    при попытке заинсертить поле получаю варнинг:
    Cannot parse expression of type Array(String) here: , [{'data1’: ‘someData1’, ‘data’2: ‘some’data2, 'status': 'ok', 'warnings': []}, {'data1’: ‘some’Data1, ‘data2’: ‘somedata2’, 'status': 'ok', 'wa (version 21.3.20.1 (official build))

    Вроде ни в какие противоречия с форматом не вступаю. Хочу в колонку запихнуть массив json-ов в виде строк.
    Их нажеюсь не нужно из json в строки каждую конвертить перед. вставкой?
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #277711 #277712 07:58 AM, 05 Jul 2022
    Выглядит так, будто вы в Array(String) пытаетесь положить [{...}, {...}, ..., {...}], который нифига не массив строк.
  • https://t.me/clickhouse_ru
    @392734528 #277713 07:59 AM, 05 Jul 2022
    все верно. я вчера спрашивал в какой тип данных такое погрузить.
    получил ответ что в Array(String)
  • https://t.me/clickhouse_ru
    так в какой тип данных такое класть, подскажите пожалуйста.
  • Здесь было восстановлено:
    https://github.com/ClickHouse/ClickHouse/issues/23907
    "Unsupported aggregate function argMax" error when using it with SimpleAggregateFunction · Issue #23907 · ClickHouse/ClickHouse

    Describe the bug Documentation for function argMax suggest that is it helpful when used with SimpleAggregateFunction: Удобно использовать для работы с SimpleAggregateFunction. However an attempt to...

  • @cation73 #277718 08:44 AM, 05 Jul 2022
    Всем привет!
    Начал осваивать MV и возникла следующая проблема: не срабатывает триггер при вставке данных в исходную таблицу с сырыми данными. Попробовал сделать вью на тестовой таблице (сделал аналог исходной таблицы с сырыми данными и заинсертил туда 1 день), вьюха обновилась и на первый взгляд все сработало ок. Подскажите, пожалуйста, в чем может быть проблема? Код таблицы и вьюхи прикладываю ниже:
    https://pastebin.com/5hzgti4i
    clickhouse_mv - 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
    @xakzdn #277719 08:52 AM, 05 Jul 2022
    Делаем:
    INSERT INTO z.t (f)
    SELECT randomString(10) FROM numbers(50000200);
    INSERT INTO z.t (f)
    SELECT randomString(1) FROM numbers(50000200);

    Потом делаем:
    SELECT * FROM z.t OFFSET 50000000;

    Получаем:
    Cannot push block to port which already has data. (LOGICAL_ERROR).

    Никто не сталкивался с такой ошибкой ?
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #277714 #277720 08:54 AM, 05 Jul 2022
    Можно и в Array(String), но только класть надо тогда ['{...}', '{...}', ..., '{...}'].
    По идее должны завезти ещё тип данных JSON и, наверное, Array(JSON), но я их ещё не щупал.
  • https://t.me/clickhouse_ru
    в документации не увидел, вот и не трогал
    А как без него то завести? конвертить json в строки? люто сильно
  • https://t.me/clickhouse_ru
    ['json','json']
  • https://t.me/clickhouse_ru
    @konnectrl #277723 09:01 AM, 05 Jul 2022
    Надо чтобы было вот так вот
  • https://t.me/clickhouse_ru
    @392734528 #277724 09:01 AM, 05 Jul 2022
    ну эт я понял. чо то жозенько (
  • https://t.me/clickhouse_ru
    Вам пример вставки скинуть ?
  • https://t.me/clickhouse_ru
    если это не конвертация json в строку переж погрукой то да. был бы благодарен
  • https://t.me/clickhouse_ru
    @konnectrl #277727 09:05 AM, 05 Jul 2022
    Создаём таблицу
    CREATE or Replace TABLE test ( str_array Array(String)) Engine = Memory()

    Вставляем данные
    INSERT INTO test (str_array) VALUES (['{"asdasd":"1", "ets":"2", "kesas":"79350017"}'])

    Получаем

    SELECT *
    FROM test

    Query id: 68ca5466-aab0-437d-ac7a-19e7e7ffd0d8

    ┌─str_array─────────────────────────────────────────┐
    │ ['{"asdasd":"1", "ets":"2", "kesas":"79350017"}'] │
    └───────────────────────────────────────────────────┘
  • https://t.me/clickhouse_ru
    таблица которая в TO ... для MV
    она ReplicatedMergeTree?
  • https://t.me/clickhouse_ru
    пасибо! понял что придется конвертить перед вставкой.
  • она AggregatingMergeTree, её отдельно создавал перед созданием самой MV
  • https://t.me/clickhouse_ru
    посмотрите в SELECT * FROM system.part_log WHERE table='your_aggreated_mergetree_table_name' FORMAT Vertical какие события были по вашей целевой таблице

    ну и в логи посмотрите /var/log/clickhouse/clickhouse-server.err.log
    может там что нибудь при вставке сконвертироваться не может
  • https://t.me/clickhouse_ru
    Есть aggregatefunctions и есть simpleagregatefunctions. Первые поддерживают argmax и всегда поддерживали. Вторые нет и не должны.
  • https://t.me/clickhouse_ru
    @gelrench #277733 09:26 AM, 05 Jul 2022
    Добрый день!
    Подскажите, пожалуйста, как убрать NaN?
  • https://t.me/clickhouse_ru
    Где ?
  • https://t.me/clickhouse_ru
    21.3 все.
    Memorytracker правильно считает память с 21.9
  • https://t.me/clickhouse_ru
    При делении выводит NaN, если было деление на 0
  • https://t.me/clickhouse_ru
    @gelrench #277737 09:27 AM, 05 Jul 2022
    мне нужно его заменить на NULL
  • https://t.me/clickhouse_ru
    При делении NULL на 0 будет NULL. При делении NaN будет NaN. Делите Null и будет Null)
  • https://t.me/clickhouse_ru
    countState(DISTINCT clientID) count_client

    Это не будет работать. Mat.view это триггер. Вам надо использовать uniqState
  • Как я могу использовать argMax при создании таблицы AggregatingMergeTree?
  • по запросу результата нет (пустая таблица)
  • https://t.me/clickhouse_ru
    AggregatingMergeTree-event-enrichment

    AggregatingMergeTree-event-enrichment. GitHub Gist: instantly share code, notes, and snippets.

  • https://t.me/clickhouse_ru
    а в логах что? значит MV вставить не смог
    уверены что MV правильно объявлена TO aggregating_mergetree_table_name ?
  • https://t.me/clickhouse_ru
    Offset без limit ? А если с limit? Какая вермия кх?
  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #277744 #277745 09:36 AM, 05 Jul 2022
    А дело не в limit, а в randomString.
  • https://t.me/clickhouse_ru
    А почему вы написали что ошибка после select ?
  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #277746 #277747 09:37 AM, 05 Jul 2022
    Потому, что она после попытки выполнить select
  • https://t.me/clickhouse_ru
    if(isNaN( (x/y) as xy), null, xy)
  • Спасибо, не знал, что такую конструкцию нельзя использовать) Однако все равно непонятно, почему на тестовой таблице триггер сработал (код был одинаковый, за исключением того, что поменял таблицу во FROM)
  • к логам доступа нет, к сожалению
    Яндекс нашей компании предоставляет CH как коробку

    как пример: скидывал ссылку как формировал таблицу и MV (https://pastebin.com/5hzgti4i) и кажется, что нет ошибки
    clickhouse_mv - 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
    HIST.visits_raw1 vr

    Уберите vr -- алиасы таблиц вообще не работают во вью
    а insert в эту таблицу были?
  • да, инсерт происходит ежедневно - из метрики по логс апи
  • возможно ли такая история из-за того, что сырые данные заливаются чанками?
  • https://t.me/clickhouse_ru
    Возможно что у вас нет инсертов. Данные можно добавлять через attach
  • @was_av #277757 10:14 AM, 05 Jul 2022
    Всем привет
    Подскажи возможно ли указывать партицию динамические в запросе на оптимизацию

    Например: OPTIMIZE TABLE default.table_with_engine_replacing_merge_tree partition toYYYYMM(now()) FINAL
    Такой вариант к сожалению не работает, но возможно есть альтернативный?
  • https://t.me/clickhouse_ru
    ПОдскажи пожалуйста в чем разница квотирования?

    INSERT INTO test (str_array) VALUES (["{'asdasd':'1', 'ets':'2', 'kesas':'79350018'}", "{'qweqweqwe': 3, 'sec': '3', 'warnings: []'}"])
    DB::Exception: Missing columns:

    а если
    INSERT INTO test (str_array) VALUES (['{"asdasd":"1", "ets":"2", "kesas":"79350017"}'])

    то все норм.

    Догдался методом тыка. Может я что то не дочитал или это какой то высший пилотаж? )
  • https://t.me/clickhouse_ru
    А если так
    OPTIMIZE TABLE default.table_with_engine_replacing_merge_tree partition tuple(toYYYYMM(now())) FINAL
  • https://t.me/clickhouse_ru
    INSERT INTO test (str_array) VALUES (['{"asdasd":"1", "ets":"2", "kesas":"79350017"}','{"asdasd":"1", "ets":"2", "kesas":"79350017"}'])
  • @was_av ↶ Reply to #277759 #277761 10:16 AM, 05 Jul 2022
    Так работает, большое спасибо
  • https://t.me/clickhouse_ru
    не понял
  • https://t.me/clickhouse_ru
    @392734528 #277763 10:18 AM, 05 Jul 2022
    да так вставится норм. а если обратное квотирование сделать не вставится. то есть есть принцпиальная разнаци. нохрена она?
  • https://t.me/clickhouse_ru
    Я не знаю, у меня просто привычка так делать ковычки 🙃
  • https://t.me/clickhouse_ru
    ништяк привычка ) тут тока моё почтение )
  • данные добавляются через инсерты
  • https://t.me/clickhouse_ru
    Я думаю, тут проблема в том, что JSON стандарт через эти " ковычки https://ru.wikipedia.org/wiki/JSON
  • https://t.me/clickhouse_ru
    но тут фишка в том что мы вставляем массив мать его строк )
    и какая ему нахрен разница что там внутри строки погружено. Еслиб это был масси json вопросов бы не возникло.
  • https://t.me/clickhouse_ru
    Спасибо огромное, все сработало
  • @vvvjhaq #277770 10:49 AM, 05 Jul 2022
    Привет! Кто как удаляет в ReplacingMT, если две записи с одинаковым id, но разными dt, а в order by (id, dt)? Нужно удалить только те строки, где dt максимальна с одинаковыми id.
    Пример:
    id, dt
    1, 2022-01-01 00:00:00
    1, 2022-01-02 00:00:00

    Нужно удалять вторую строку. Удалить нужно один раз, но несколько сотен тысяч строк.
  • https://t.me/clickhouse_ru
    22.7.1.1054.

    create table t (f String, i UInt64) Engine=MergeTree order by i;
    INSERT INTO t (f) SELECT randomString(10) FROM numbers(50000200);
    INSERT INTO t (f) SELECT randomString(1) FROM numbers(50000200);
    SELECT * FROM t OFFSET 50000000;

    Showed first 10000.

    50000400 rows in set. Elapsed: 1.424 sec. Processed 100.00 million rows, 2.25 GB (70.24 million rows/s., 1.58 GB/s.)
  • https://t.me/clickhouse_ru
    @392734528 #277772 10:50 AM, 05 Jul 2022
    не понял
    INSERT INTO [db.]table [(c1, c2, c3)] VALUES (v11, v12, v13), (v21, v22, v23), ...

    почему нельзя список кортежей передавать?
    сказанож что нужно грузить брльшими кусками по 100к записей не менье.
  • https://t.me/clickhouse_ru
    > order by (id, dt)

    просто order by (id) ?
  • да, изначально неправильно сделали order by, и вставили дубликаты с разным dt, они не схлопываются естественно, и хотим удалить такое.
  • https://t.me/clickhouse_ru
    [ ] -- это соглашение документации, о том как помечать необязательные параметры
  • https://t.me/clickhouse_ru
    я бы выбрал и вставил в другую таблицу то что должно остаться, и потом удалил все из исходной и вставил туда из "другой"
  • а выкинуть из order by на ходу уже нельзя же?
  • https://t.me/clickhouse_ru
    нельзя
  • https://t.me/clickhouse_ru
    partition BY value_day
    так себе идея
    лучше
    PARTITION BY toYYYYMM(value_day)

    и лучше другую функцию
    AggregateFunction(uniqExact, UInt64))

    и
    uniqExactState(clientID) count_client
  • https://t.me/clickhouse_ru
    Но тогда не будет ускорение, нет ? если исползовать uniqExact
  • https://t.me/clickhouse_ru
    ускорения чего?

    countState(distinct

    надо посмотреть оно трансформируется в uniqExactState или нет...
  • https://t.me/clickhouse_ru
    Ааа там просто Дени рекомендова uniq :)
  • https://t.me/clickhouse_ru
    countState(distinct записывает просто числа, и они конечно неправильные
  • https://t.me/clickhouse_ru
    у вас просто структура AggregatingMergeTree и SELECT по структуре немного различаются
    countState(DISTINCT ...) и просто count в AggregatingMergeTree
  • https://t.me/clickhouse_ru
    AggregateFunction(COUNT, UInt64) и countState -- это ОК, просто считает чушь

    наличие DISTINCT не влияет
  • https://t.me/clickhouse_ru
    @den_crane #277787 11:16 AM, 05 Jul 2022
    AggregateFunction(uniqExact, UInt64)) конечно пользоваться невозможно, и медленно и падать по памяти будет
  • https://t.me/clickhouse_ru
    @392734528 #277788 11:24 AM, 05 Jul 2022
    client.execute('Create table test (x Int32(), y String) ENGINE=Memory')
    client.execute('INSERT INTO test (x, у) VALUES', [{'x': 1, 'y': 'One'}, {'x': 2, 'y': 'Two'}, {'x': 3, 'y': 'Three'}, {'x': 100, 'y': 'Sto'}])

    UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd1 in position 53: invalid continuation byte
  • https://t.me/clickhouse_ru
    @392734528 #277789 11:24 AM, 05 Jul 2022
    Да ну хорош блин
  • https://t.me/clickhouse_ru
    @392734528 #277791 11:24 AM, 05 Jul 2022
    тут то что не так?
  • тогда совсем непонятно, как можно собрать в MV количество уникальных visit_id в разрезе, например, городов, если та конструкция считает неверно, а uniqExact будет работать медленно
  • https://t.me/clickhouse_ru
    @392734528 #277793 11:27 AM, 05 Jul 2022
    Может кто подскажет как пачкой правильно данные клик положить?
    чот затрахался с этими капризами. то ему ковычки не те то кодировка не такая...
  • https://t.me/clickhouse_ru
    можно uniqCombinedState
    там меньше памяти считает быстрее...
    но точность не 100%
  • https://t.me/clickhouse_ru
    client.execute('INSERT INTO test_table (log_string) VALUES', ((line,) for line in data)) у меня data это list строк
  • https://t.me/clickhouse_ru
    пасиб. щас так попробую
  • https://t.me/clickhouse_ru
    я же сказал uniqState
  • https://t.me/clickhouse_ru
    Можно прям датафреймами вставлять из Pandas
  • https://t.me/clickhouse_ru
    в values можно передать много строк

    insert into .... values ( ) ( ) ( ) -- передаем три строки
  • https://t.me/clickhouse_ru
    не вариант мозгов не хватает на машине.
  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #277771 #277802 11:34 AM, 05 Jul 2022
    Если выполнять через client:
    │ =⚌0⚌A.Ò⚌ │
    I4پg │
    │ >]Pi⚌C⚌ │
    └─────────────────────────┘
    Showed first 10000.

    50000400 rows in set. Elapsed: 1.224 sec. Processed 100.00 million rows, 1.45 GB (81.68 million rows/s., 1.18 GB/s.)

    clickhouse-db :) xterm-256colorxterm-256colorxterm-256colorxterm-256colorxterm-256colorxterm-256...
    +DDL такая:
    CREATE TABLE z.t
    (
    f String
    )
    ENGINE = MergeTree
    ORDER BY f
    SETTINGS index_granularity = 8192;
  • https://t.me/clickhouse_ru
    https://clickhouse.com/docs/ru/sql-reference/functions/other-functions/#randomstring
    Генерирует бинарную строку заданной длины, заполненную случайными байтами (в том числе нулевыми).

    https://clickhouse.com/docs/ru/sql-reference/functions/other-functions/#randomascii
    Генерирует строку со случайным набором печатных символов ASCII.

    https://clickhouse.com/docs/ru/sql-reference/functions/other-functions/#randomstringutf8
    Генерирует строку заданной длины со случайными символами в кодировке UTF-8.
  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #277804 #277805 11:48 AM, 05 Jul 2022
    Это я видел, когда используешь IDE DBeaver и выполняешь запрос на select получаешь:
    'Cannot push block to port which already has data. (LOGICAL_ERROR).'
  • https://t.me/clickhouse_ru
    там написано DBException и номер?
  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #277806 #277807 11:49 AM, 05 Jul 2022
    SQL Error [49] [07000]: Code: 49. DB::Exception: Cannot push block to port which already has data. (LOGICAL_ERROR) (version 22.6.1.1985 (official build))
    , server ClickHouseNode(addr=http:ip:8123, db=default)@-718568384
  • https://t.me/clickhouse_ru
    да баг в КХ

    странно но не получается воспроизвести курлом
  • https://t.me/clickhouse_ru
    а в 22.6.2 воспроизводится?
  • https://t.me/clickhouse_ru
    @392734528 #277811 12:12 PM, 05 Jul 2022
    получилось через консоль затолкать вот это
    1655672463987, '',
    вот сюда
    time1 DateTime64(3, "Europe/Moscow") NOT NULL,
    time2 DateTime64(3, "Europe/Moscow") NULL,

    Легло без проблем

    пытюсь сдеать тоже самое через драйвер
    получаю AttributeError: 'str' object has no attribute 'tzinfo'
    других полей стаймхоной у меня в блоке нет поэтому предполагаю что агрится на второе значение которуе пустым летит.
    Как ему правильно null подать?
    "что сюда вернуть?" if data['time2'] is None else data['time2'],
  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #277810 #277813 12:15 PM, 05 Jul 2022
    Да.
    SQL Error [49] [07000]: Code: 49. DB::Exception: Cannot push block to port which already has data. (LOGICAL_ERROR) (version 22.6.2.12 (official build))
    , server ClickHouseNode(addr=http:ip_new:8123, db=default)@621939104
  • https://t.me/clickhouse_ru
    @nkalniyazov #277814 12:17 PM, 05 Jul 2022
    Всем привет! Помогите, пожалуйста, разобраться в обновлении материализованного представления.
    Код запроса во вложенном файле.
    Ожидание: что при инсерте в HIST.visits_raw1, представление будет обновлено. Но этого не происходит. Почему?
    И еще один вопрос: если в таблицу HIST.visits_raw1 инсерт происходит чанками по 100 шт за раз, то как в таком случае должно вести себя представление? Оно будет 100 раз обновляться за одну итерацию?
  • https://t.me/clickhouse_ru
    вы там скоординируйтесь что бы один и тот же вопрос не задавать @cation73
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @nkalniyazov #277820 12:34 PM, 05 Jul 2022
    забавная ситуация)) спасибо)
  • https://t.me/clickhouse_ru
    а как таблица создана? Create table ?

    можете ошибку на сервере посмотреть в /var/log/clickhouse-server/clickhouse-server.err.log

    нужен запрос (jdbc драйвер может запрашивать в разных форматах TSV/RowBinary) и стектрейс
  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #277821 #277822 12:40 PM, 05 Jul 2022
    CREATE TABLE z.t
    (
    f String
    )
    ENGINE = MergeTree
    ORDER BY f
    SETTINGS index_granularity = 8192;
  • https://t.me/clickhouse_ru
    @emanaev #277824 12:44 PM, 05 Jul 2022
    добрый день! подскажите, а есть рекомендации по сайзингу Клика?
  • https://t.me/clickhouse_ru
    @emanaev #277825 12:45 PM, 05 Jul 2022
    есть пониане по объемам данных и количеству пользователей, хотелось бы прикинуть конфигурацию
  • https://t.me/clickhouse_ru
    нету.

    делаете POC на 5% данных экстраполируете.

    У КХ очень много usecase. Можно использовать очень по разному.
  • https://t.me/clickhouse_ru
    типа линейно можно экстраполировать?
  • https://t.me/clickhouse_ru
    ну теоритически КХ может линейно масштабироваться (мне например понятно как этого добиться).
  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #277821 #277832 01:19 PM, 05 Jul 2022
    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) @ 0xb8a143a in /usr/bin/clickhouse
    1. DB::OffsetTransform::preparePair(DB::OffsetTransform::PortsData&) @ 0x17496b2a in /usr/bin/clickhouse
    2. ? @ 0x17495329 in /usr/bin/clickhouse
    3. DB::OffsetTransform::prepare(std::__1::vector<unsigned long, std::__1::allocator<unsigned long> > const&, std::__1::vector<unsigned long, std::__1::allocator<unsigned long> > const&) @ 0x1749526b in /usr/bin/clickhouse
    4. DB::ExecutingGraph::updateNode(unsigned long, std::__1::queue<DB::ExecutingGraph::Node*, std::__1::deque<DB::ExecutingGraph::Node*, std::__1::allocator<DB::ExecutingGraph::Node*> > >&, std::__1::queue<DB::ExecutingGraph::Node*, std::__1::deque<DB::ExecutingGraph::Node*, std::__1::allocator<DB::ExecutingGraph::Node*> > >&) @ 0x171a9a39 in /usr/bin/clickhouse
    5. DB::PipelineExecutor::executeStepImpl(unsigned long, std::__1::atomic<bool>*) @ 0x171a42eb in /usr/bin/clickhouse
    6. ? @ 0x171a60c4 in /usr/bin/clickhouse
    7. ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0xb94d077 in /usr/bin/clickhouse
    8. ? @ 0xb95049d in /usr/bin/clickhouse
    9. start_thread @ 0x7ea5 in /usr/lib64/libpthread-2.17.so
    10. __clone @ 0xfeb0d in /usr/lib64/libc-2.17.so
  • https://t.me/clickhouse_ru
    в запросе в конце JDBC дравер дописывает TabSeparatedWithNamesAndTypes или RowBinaryWithNamesAndTypes

    Т.е. интересно у вас кидает ошибку
    select * from z.t offset 50000000 format TabSeparatedWithNamesAndTypes
    или
    select * from z.t offset 50000000 format RowBinaryWithNamesAndTypes
  • https://t.me/clickhouse_ru
    @stangorch #277834 01:26 PM, 05 Jul 2022
    Ребят, недавно стал работать с CH и есть таблица, в которой есть какие-то данные по продажам и колонка version, которая datetime. Задача - выбрать данные по с самой свежей версией

    Сейчас запрос типа такого
    SELECT col1, col2, col3
    FROM db.table_name
    WHERE (date, version) IN (
    SELECT date, MAX(version)
    FROM db.table_name
    GROUP BY date
    )
    AND some other conds

    Проблема: если добавляю больше колонок, то время выполнения запроса начинает сильно расти. Может есть какие-то рекомендации, как это лучше делается?

    Версия CH: 18.10.3
  • https://t.me/clickhouse_ru
    Наваривать таблицу с актуальными версиями каждый день, и ней писать селекты?
  • https://t.me/clickhouse_ru
    не помню про 18.10 уже
    сейчас можно сделать order by date, version desc limit 1 by date
  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #277833 #277837 01:32 PM, 05 Jul 2022
    В обоих случаях скорей всего
  • https://t.me/clickhouse_ru
    у меня даже вопрос больше, почему такое может происходить, что время увеличивается? Так как я думал, что он должен брать маску фильтрации и применять ее к колонке или как-то это по-другому происходит?
  • https://t.me/clickhouse_ru
    Скорее всего читаются все запрашиваемые колонки ещё до фильтрации.
  • @ivanio11 #277840 02:12 PM, 05 Jul 2022
    Всем привет , кто то делал мат вьюхи с джойном таблицы на саму себя ?
    Вроде как нашёл странное поведение при таком кейсе.
    При инсерте строчек в таблицу payments , лефт джойн обращается не ко всей таблице payments(чтобы найти время первой транзакции и поставить соответствующий флаг) , а к только что вставленному бакету , и при каждой транзакции юзера ft_flag будет равен 1 , ибо база считает что других строчек нет и не было
    Как можно это обойти ?
  • https://t.me/clickhouse_ru
    Так всю жизнь было. Если очень надо, то например оберните таблицу в обычную вьюху и джойните уже её.
  • Обычная вьюха это CREATE VIEW ?
  • https://t.me/clickhouse_ru
    Ну да
  • Спасибо
  • https://t.me/clickhouse_ru
    @tratatataass #277845 02:26 PM, 05 Jul 2022
    привет. Кто-нибудь сталкивался с такое ошибкой при создании view?

    /var/lib/clickhouse/store/c42/c42812b4-0aca-46a6-8428-12b40aca56a6/TABLE_NAME.sql.tmp, errno: 17, strerror: File exists. (CANNOT_OPEN_FILE) (version 21.12.2.17 (official build))
  • @theo_inside #277847 02:52 PM, 05 Jul 2022
    Привет.
    Буду очень благодарен, если кто-нибудь подскажет, можно ли каким-то образом в запросе подключиться подключиться по HTTP(s) к источнику, для которого нужен header?
    Без header'а для этого достаточно табличной функции url.
  • https://t.me/clickhouse_ru
    словари умеют.
    вам надо запрос выполнить против данных которые в http или там справочник который надо приджойнить?
  • https://t.me/clickhouse_ru
    а хотя и url тоже уже умеет

    https://github.com/ClickHouse/ClickHouse/blob/5c6b84c398017256d47bc381dc7227371a522b6f/tests/config/config.d/named_collection.xml#L17
    https://github.com/ClickHouse/ClickHouse/blob/af2150a68d3d80403727b6e3bf35d0a1c7194f04/tests/queries/0_stateless/02244_url_engine_headers_test.sql#L1

    https://github.com/ClickHouse/ClickHouse/issues/38311
    ClickHouse/named_collection.xml at 5c6b84c398017256d47bc381dc7227371a522b6f · 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
    @ivymike_b #277851 03:03 PM, 05 Jul 2022
    всем привет!
    Это баг или что-то не то делаю?
    ```select arrayMap(x -> toUUID(x), ['3da1845d-166e-4ef9-bb52-69427858012a']);```
    ```java.lang.IllegalStateException
    at ru.yandex.clickhouse.response.ByteFragmentUtils.parseArray(ByteFragmentUtils.java:301)
    at ru.yandex.clickhouse.response.ByteFragmentUtils.parseArray(ByteFragmentUtils.java:156)
    at ru.yandex.clickhouse.response.ClickHouseResultSet.getArray(ClickHouseResultSet.java:353)```
  • https://t.me/clickhouse_ru
    JDBC не умеет Array(UUID).
  • https://t.me/clickhouse_ru
    @ivymike_b #277854 03:08 PM, 05 Jul 2022
    аа, т.е. проблема локальна и на питонячем драйвере будет ок?
  • @silentsokolov #277855 03:08 PM, 05 Jul 2022
    Подскажите, удалил большую таблицу, прошло уже больше часа, но место на диске так и не освободилось. В логах ошибок нет. Это нормальное поведение или что-то подвисло? (В документации говориться о 8 минутах, до того как будет физическое удалние)
  • https://t.me/clickhouse_ru
    я не знаю.

    я обычно в строку конвертирую toString(
    SELECT toString(arrayMap(x -> toUUID(x), ['3da1845d-166e-4ef9-bb52-69427858012a']))
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    хм.. а потом к массиву?
  • https://t.me/clickhouse_ru
    @filippsidorov #277859 03:13 PM, 05 Jul 2022
    Всем привет! Можно ли поменять SELECT в определнии Materialized View? Сначала делаю DETACH dbname.mvname, потом делаю ATTACH MATERIALIZED VIEW dbname.mvname и далее измененный DDL. Выдаёт ошибку: Code: 80. DB::Exception: Incorrect ATTACH TABLE query for Atomic database engine

    Пользовался этой докой Altinity: https://kb.altinity.com/altinity-kb-schema-design/materialized-views/
  • Да, но таблицы как бы уже нет в system.parts, то есть файли на диске есть, но КХ после DROP TABLE ее не видет
  • https://t.me/clickhouse_ru
    а если нужно значение в виде UUID'а?
  • https://t.me/clickhouse_ru
    https://clickhouse.com/docs/en/sql-reference/statements/alter/view/

    mat_view с TO ?

    https://den-crane.github.io/Everything_you_should_know_about_materialized_views_commented.pdf https://youtu.be/1LVJ_WcLgF8?list=PLO3lfQbpDVI-hyw4MyqxEk3rDHw95SzxJ&t=7597
    ALTER TABLE … MODIFY QUERY Statement | ClickHouse Docs

    You can modify SELECT query that was specified when a materialized view was created with the ALTER TABLE … MODIFY QUERY statement. Use it when the materialized view was created without the TO [db.]name clause. The allowexperimentalaltermaterializedview_structure setting must be enabled.

  • https://t.me/clickhouse_ru
    у вас массив, вам вообще массив нужен?
  • https://t.me/clickhouse_ru
    есть массив уидов в виде строки, надо массив, но не строковых типов
  • https://t.me/clickhouse_ru
    я использую toString чтобы обойти ограничения java
  • Если я правильно понял, в последней стабильной версии от Altinity этого ещё нет?
  • https://t.me/clickhouse_ru
    нет
  • https://t.me/clickhouse_ru
    так а потом куда с этой строкой? далее надо эти значения положить в таблицу, например. уиды легче
  • https://t.me/clickhouse_ru
    я вам объясняю как решить проблему ```java.lang.IllegalStateException
    которая не позволяет увидеть результат запроса SELECT toString(arrayMap(x -> toUUID(x) НА ЭКРАНЕ МОНИТОРА
  • https://t.me/clickhouse_ru
    без TO с Implicit table, спасибо за материалы!
  • https://t.me/clickhouse_ru
    да, не повезло вам.

    придется делать как деды делали в 2016, сделать DETACH dbname.mvname , потом отредактировать файл .sql и потом attach table.
  • Я пытался подключить источник как внешний словарь, но данные он отдаёт как json, не совпадающий с форматом, описанным в документации CH.
    Возможно ли использовать формат JSONEachRow или что бы то ни было ещё, чтобы подключить этот json хотя бы как словарь из одного элемента?
  • https://t.me/clickhouse_ru
    нет, невозможно
  • https://t.me/clickhouse_ru
    спасибо, только не понял почему .sql файл редактировать и почему attach table, а не attach materialize view + измененный запрос создания вьюхи
  • https://t.me/clickhouse_ru
    так потому что "Выдаёт ошибку: Code: 80. DB::Exception: Incorrect ATTACH TABLE query for Atomic database engine"
  • https://t.me/clickhouse_ru
    @wingrime #277877 04:10 PM, 05 Jul 2022
    привет! у меня почему то не работают простые агрегирующие функции

    sequenceMatch('(?1).*(?2)')(toUInt64(time), True, True) as m

    возвращает всегда 0
  • https://t.me/clickhouse_ru
    @wingrime #277878 04:11 PM, 05 Jul 2022
    я не на это напарываюсь? https://github.com/ClickHouse/ClickHouse/issues/37296
    sequenceMatch() and sequenceCount() return wrong results when run over a distributed table · Issue #37296 · ClickHouse/ClickHouse

    Describe what's wrong We have noticed that sequenceCount (and sequenceMatch as further tests have shown) behave in different ways when run against a distributed and local tables. Does it re...

  • @janatweety #277880 04:55 PM, 05 Jul 2022
    Всем привет! В ClickHouse есть оконные функции? Или может посоветуете что-то другое для моего примера, он ниже.

    Есть таблица со сменой статусов у задач в YT:
    issue_id,
    timestamp,
    removed_values,
    added_values

    Мне надо сделать группировку по issue_id, и посчитать сколько времени задача находилась в каждом из статусов.
  • https://t.me/clickhouse_ru
    есть
  • https://t.me/clickhouse_ru
    можно массивами, можно WF
  • @zhora9001 #277884 05:06 PM, 05 Jul 2022
    Добрый день! Документация сообщает, что рассчитывать на порядок элементов в массиве после groupArray нельзя (что логично, когда выполняем запрос в Distributed таблице). Однако, ручные тесты показывают, что запросы вида SELECT groupArray(t.item) FROM (SELECT item FROM table ORDER BY time) t имеют стабильный порядок (в соотвествии с ORDER BY во вложенном селекте), что, судя по всему, вызвано тем, что Dirtibuted таблица собирает записи в определенном порядке и отправляет в groupArray без какого-либо "перемешивания" – насколько это надежное предположение?

    P.S. groupArraySorted возвращаться не планирует?
  • https://t.me/clickhouse_ru
    А в чём проблема сделать arraySort(x->x.1, groupArray((time,item)))
  • ну вот только если таскать с собой поле для сортировки – а их может быть много, и ввиду специфики задачи хотелось бы этого избежать
  • https://t.me/clickhouse_ru
    @konnectrl #277887 05:09 PM, 05 Jul 2022
    Ну так не таскайте, оставьте только второй итем
  • https://t.me/clickhouse_ru
    на столько, что уже в следующей минорной версии это может поменяться, ведь все предупреждены, что гарантий нет
  • https://t.me/clickhouse_ru
    вообще все не так.

    никакого отношения к Distributed.

    КХ таблица возвращает строки в рандомном порядке, для стабилизации порядка используется order by, подзапросы КХ выдают строки в стабильном порядке, поэтому РЕКОМЕНДУМАЯ конструкция это сюрприз SELECT groupArray(t.item) FROM (SELECT item FROM table ORDER BY time)
  • то есть groupArray все же порядок сохраняет, рандомность получается из-за непредсказуемого порядка получения записей в общем случае?
  • https://t.me/clickhouse_ru
    рандомность из того что в groupArray строки прилетают в рандомном порядке, подзапросы с order by возвращают строки в стабильном порядке
  • https://t.me/clickhouse_ru
    а с чего не должна? Это ж обычный плюсовый вектор под капотом (я подозреваю)
  • @zhora9001 #277893 05:15 PM, 05 Jul 2022
    а, оказывается, в документации это прям упомянуто явно, каюсь, не дочитал (In some cases, you can still rely on the order of execution. This applies to cases when SELECT comes from a subquery that uses ORDER BY.)
  • спасибо, а что такое WF? Нашла еще такую runningDifference, но пока не поняла подходит ли она мне
  • https://t.me/clickhouse_ru
    window function
  • https://t.me/clickhouse_ru
    @s_nikolajus #277896 05:40 PM, 05 Jul 2022
    привет! Подскажите хорошие материалы по оптимизации запросов в clickhouse. С чего начать, на что смотреть, за чем следить, на что обращать внимание. Может у кого-то уже есть небольшая библиотека ссылок 🙂
  • https://t.me/clickhouse_ru
    Runningdifference и neighbor результат могут давать некорректный результат
  • https://t.me/clickhouse_ru
    @ph1lipp #277898 05:47 PM, 05 Jul 2022
    Привет
    Пытаюсь в kafka engine ( по мануалу) https://clickhouse.com/docs/ru/engines/table-engines/integrations/kafka/ , но матвьюха прилетает пустая.

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

    Пересоздаю очередь, создаю еще таблицу +матвью, но матвьюха в конце пуста. Что я делаю не так

    CREATE TABLE IF NOT EXISTS metals_queue
    (
    timestamp String,
    metal String,
    temp_celcius UInt64
    )
    ENGINE=Kafka SETTINGS
    kafka_broker_list = 'localhost:9092',
    kafka_topic_list = 'metals',
    kafka_group_name = 'group1',
    kafka_num_consumers = '1',
    kafka_format = 'JSONEachRow'

    CREATE TABLE metals
    (
    timestamp String,
    metal String,
    temp_celcius UInt64
    )
    Engine=ReplacingMergeTree()
    ORDER BY (timestamp, metal)
    PARTITION BY (toYYYYMMDD(parseDateTime32BestEffort(timestamp)), metal);

    CREATE MATERIALIZED VIEW metals_consumer
    TO metals
    AS SELECT timestamp, metal, temp_celcius
    FROM metals_queue;

    select * from metals_consumer limit 5;
  • https://t.me/clickhouse_ru
    @ActionNum #277899 05:48 PM, 05 Jul 2022
    Всем привет, подскажите плиз как понять почему CH столько ресурсов тратит, что может он делать в это время? Смотрю через pidstat и периодически ловлю такие пики утилизации ресурсов:
  • https://t.me/clickhouse_ru
    @ActionNum #277900 05:49 PM, 05 Jul 2022
    Или это нормально и если его никак не ограничивать по числу используемых процессов то он будет кушать много ядер в моменте?
  • https://t.me/clickhouse_ru
    select * from system.processes;
    там может быть много optimize table запросов например
  • https://t.me/clickhouse_ru/275978
    Та же ситуация, пробовал по разному, если смотреть в лог - внятной ошибки нет. Я так и не придумал, что с этим делать.
    Zaur Begiev in ClickHouse не тормозит

    Всем привет! Пытаюсь настроить тестовую интеграцию Kafka + Clickhouse. Пока не получается (данных в таблице нет). Сможете подсказать, что я делаю не так? Есть топик Kafka с тестовыми данными в виде плоского JSON с 2мя полями вида: {"EUR":0.9529,"RUB":53.844232} Для него создаю по шаблону из документации: CREATE TABLE IF NOT EXISTS currency_kafka ( RUB FLOAT, EUR FLOAT ) ENGINE = Kafka() SETTINGS kafka_broker_list = 'kafka1:19092', kafka_topic_list = 'currency', kafka_group_name = 'group1', kafka_format = 'JSONEachRow'; create table if not exists currency_data ( RUB FLOAT, EUR FLOAT ) ENGINE MergeTree() order by RUB; CREATE MATERIALIZED VIEW if not exists currency TO currency_data (RUB FLOAT, EUR FLOAT) AS SELECT * FROM currency_data; select * from currency Получаю пустой результат

  • https://t.me/clickhouse_ru
    Один запрос может использовать до половины всех ресурсов, те два спокойно могут выжрать все цпу, это нормально
  • https://t.me/clickhouse_ru
    пасиб. попробую с issue залететь к ним мб
  • https://t.me/clickhouse_ru
    Тут пока что толком нет запросов, только чтение данных из Kafka
  • https://t.me/clickhouse_ru
    @ActionNum #277906 05:52 PM, 05 Jul 2022
    Поэтому спрашиваю, у меня там job раз в час выполняется но это не тот случай.
  • https://t.me/clickhouse_ru
    @ActionNum #277907 05:53 PM, 05 Jul 2022
    Поэтому да какие то интересные внутренние штуки типо оптимизации таблицы или ее агрегации, но хотелось бы детальнее копнуть и как то это контролировать.
  • https://t.me/clickhouse_ru
    @ActionNum #277908 05:54 PM, 05 Jul 2022
    И в режиме Kernel иногда прям пугает процент использования процессора
  • https://t.me/clickhouse_ru
    У меня был кейс, где я запускал несколько optimize на одну таблицу одновременно, и цпу улетало в небеса
  • https://t.me/clickhouse_ru
    SELECT * FROM system.merges
  • https://t.me/clickhouse_ru
    @unamedrus #277911 05:55 PM, 05 Jul 2022
    Вы изменяли дефолтные настройки кафки таблицы, у вас какой поток данных там?
  • https://t.me/clickhouse_ru
    в логи КХ надо смотреть.

    кстати селектом из кафка engine вы забираете данные и двигаете офсет, поэтому эти данные во вью уже не попадут
  • https://t.me/clickhouse_ru
    @ActionNum #277913 05:57 PM, 05 Jul 2022
    Да изменял, сейчас скину параметры. Поток примерно 3,5 Mil сообщений в / 1 минуту
  • https://t.me/clickhouse_ru
    Спасибо. Селект я в первый раз заюзал в целях дебага. Потом уже убрал его(пересоздал все 3 обьекта). Так и быть, буду копать логи кх
  • https://t.me/clickhouse_ru
    в логе КХ с level=trace что пишется в эти моменты?
    сколько у вас таблиц?
  • https://t.me/clickhouse_ru
    2 кафка таблицы. Поток сказал какой.
    Настройки такие:
    kafka_format = 'Protobuf', kafka_schema = 'logentries_v1:ImpressionLogRecord', kafka_max_block_size = 1048576, kafka_thread_per_consumer = 1, kafka_num_consumers = 5
  • https://t.me/clickhouse_ru
    @ActionNum #277917 06:01 PM, 05 Jul 2022
    У меня 1 шард и две реплики, в одной 5 консюмеров в другой 4. Чтения хватает, Лаг маленький при такой записи.
  • https://t.me/clickhouse_ru
    не, я про кол-во mergeTree таблиц
  • https://t.me/clickhouse_ru
    там очевидная ошибка

    MATERIALIZED VIEW читает из неправильной таблицы

    CREATE MATERIALIZED VIEW if not exists currency
    TO currency_data
    (RUB FLOAT, EUR FLOAT)
    AS
    SELECT *
    FROM currency_data;

    должно быть from currency_kafka
  • https://t.me/clickhouse_ru
    7 таблиц c движком ReplicatedSummingMergeTree и такого объема они
  • https://t.me/clickhouse_ru
    проверьте в такой момент

    select table, elapsed*(1/progress)-elapsed ,elapsed, progress, is_mutation,(total_size_bytes_compressed) size, formatReadableSize(memory_usage) mem
    from system.merges order by progress desc
  • https://t.me/clickhouse_ru
    @ActionNum #277923 06:16 PM, 05 Jul 2022
  • https://t.me/clickhouse_ru
    @ActionNum #277924 06:16 PM, 05 Jul 2022
    Есть там таблица одна из перечисленных
  • https://t.me/clickhouse_ru
    @ActionNum #277925 06:22 PM, 05 Jul 2022
    elapsed - небольшой, значит периодически делается Merge данных? И это нормально типо?
  • Я понимаю, не суть, эта ошибка была исправлена чуть ниже в сообщениях)
  • https://t.me/clickhouse_ru
    1 мерж может загрузить 1 cpu максимум.
    т.е. у вас это не мержи, это что-то другое
  • https://t.me/clickhouse_ru
    @ActionNum #277929 07:16 PM, 05 Jul 2022
    Есть варианты понять что может быть?
  • https://t.me/clickhouse_ru
    в логе КХ что?

    что в system.processes ?
  • https://t.me/clickhouse_ru
    1. DB::ReadBufferFromPocoSocket::nextImpl() @ 0x1319839a in /usr/bin/clickhouse
    2. DB::TCPHandler::runImpl() @ 0x147efac2 in /usr/bin/clickhouse
    3. DB::TCPHandler::run() @ 0x14804259 in /usr/bin/clickhouse
    4. Poco::Net::TCPServerConnection::start() @ 0x1745e52f in /usr/bin/clickhouse
    5. Poco::Net::TCPServerDispatcher::run() @ 0x17460981 in /usr/bin/clickhouse
    6. Poco::PooledThread::run() @ 0x17611609 in /usr/bin/clickhouse
    7. Poco::ThreadImpl::runnableEntry(void*) @ 0x1760ed00 in /usr/bin/clickhouse
    8. ? @ 0x7fd863de6609 in ?
    9. __clone @ 0x7fd863d0d293 in ?
    (version 22.1.3.7 (official build))
    Это в логах.
    В system.processes
  • https://t.me/clickhouse_ru
    @ActionNum #277933 08:27 PM, 05 Jul 2022
    У нас используются Distributed движок, между двумя кластерами, может он столько кушает CPU?
  • https://t.me/clickhouse_ru
    select * from system.distribution_queue
  • подниму еще раз вопрос, может быть кто-то тоже сталкивался с таким поведением
  • https://t.me/clickhouse_ru
    Тут тоже все норм и очередь по метрикам у меня тоже сильно не копится
  • https://t.me/clickhouse_ru
  • 06 July 2022 (152 messages)
  • https://t.me/clickhouse_ru
    mv здесь просто механизм доставки данных из metals_queue в metals

    соответственно, надо проверять наличие данные в metals, а не в mv
    select * from metals

    если данных нет, читайте лог ошибок CH
    можно и со стороны кафки посмотреть: подключился ли consumer и читает ли он данные из топика
  • https://t.me/clickhouse_ru
    логи смотрите, скорее всего распарсить не может что-то
  • https://t.me/clickhouse_ru
    смотрите SELECT * system.parts WHERE table='table_name' AND active=0 AND disk_name='s3_disk_name' FORMAT Vertical

    если у вас Atomic то чистить будет только через 480 секунд, но я не уверен в ответе
  • @astrix8989 #277945 05:54 AM, 06 Jul 2022
    Доброго дня всем, а есть какой-нибудь аналог такой конструкции?
    SELECT ... GROUP_CONCAT(DISTINCT sl.title SEPARATOR ', ')
    ...
    FROM events as e
    LEFT JOIN services_list AS sl ON e.services & sl.bin_value
    ...
    GROUP BY
    e.services
  • https://t.me/clickhouse_ru
    arrayStringConcat(arrayUniq(groupArray(sl.title)), ', ') ...

    но не факт что у вас получится & сделать в JOIN
  • https://t.me/clickhouse_ru
    @Pershin_Artem_spb #277947 07:43 AM, 06 Jul 2022
    Здравствуйте, а почему group by с инсертом через мат вью может занимать сильно больше времени в aggregatingMergeTree, чем такой же инсерт стейтментом просто из таблицы-источника, на которой мат вьюха? Оно по блокам обрабатывается как то? Из-за этого?
  • https://t.me/clickhouse_ru
    aggregatingMergeTree не агрегирует сам по себе. либо когда-нибудь, либо через optimize
  • https://t.me/clickhouse_ru
    @ermakmkb #277949 08:00 AM, 06 Jul 2022
    aggregating, replacing - это просто алгоритм, что делать с кусками во время слияния. и делать ли вообще
  • https://t.me/clickhouse_ru
    Не, именно вставка в него один-в-один запросом когда мат вьюха срабатывает и просто голый запрос из таблицы на вставку с разными скоростями работают, разница в десятки раз. AggregatingMergeTree одно и то же
  • https://t.me/clickhouse_ru
    @kurahh #277951 08:02 AM, 06 Jul 2022
    Всем привет!

    У нас есть события, отсортированные по времени. Допустим есть событие "А", событие "Б", а другие события назовем "-".

    Внутри сессии события выглядят примерно так (см на картинке)

    Мне нужно для каждой сессии посчитать все последовательности событий А, прерываемые другими событиями в этой сессии. Если после А произошло событие Б, то 1, если любое другое, то 0.

    По примеру на картинке, я по итогу для этой сессии хочу знать, что всего последовательностей с событиями А было 3, среди которых 2 были прерваны событием Б

    Подскажите, пожалуйста, как такое реализовать?
  • https://t.me/clickhouse_ru
    @alex_spiridonov #277952 08:46 AM, 06 Jul 2022
    делюсь проблемой и решением:

    у нас была проблема: внезапно встала память под потолок, CPU туда же
    по логам: какие-то мержи упираются в нехватку памяти
    произошло одновременно на всех трёх нодах кластера.

    на двух из трёх нодах кластера помогло добавление памяти, на одном - не помогло

    (рядовое потребление памяти в районе 1.5-2Гб на ноде при доступных 12 (до добавления было 8))

    больше добавлять не стали, стали искать другие варианты

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

    починили через:
    system stop merges table1;
    (подождать пока table2 закончит мёржи)
    system start merges table1;

    и всё прошло: CPU к нулю, память к 1Гб - обычный уровень

    может кому-то сэкономит время в похожей ситуации
  • https://t.me/clickhouse_ru
    С помощью neighbor должно получиться
  • https://t.me/clickhouse_ru
    @kurahh ↶ Reply to #277953 #277954 08:52 AM, 06 Jul 2022
    Спасибо!
    Сделал с помощью groupBitOr
  • https://t.me/clickhouse_ru
    @danwinner #277955 08:59 AM, 06 Jul 2022
    Добрый день! Можно ли через sql посмотреть логи по таблице с движком kafka? Цель - не поступают данные в таблицу, выяснить в чем причина.
  • запрос ничего не возвращает, с момента перемещения из с3 уже прошло пару недель)
  • https://t.me/clickhouse_ru
    ATTACH TABLE dbname.mvname также выдал ошибку Atomic. Ещё кликхаус в Яндекс.Облаке и не вижу как поставить эксперементальную опцию редактирования mv. И из видео и мануала в pdf, не понял как редактировать напрямую sql представления, возможно ли это в Облаке? Походу дела надо переходить на Explicit метод создания MV. Спасибо, за помощь!
  • https://t.me/clickhouse_ru
    @OrNixx #277958 11:49 AM, 06 Jul 2022
    Поскажите, чтобы создание таблиц на всех репликах с одной точки работало через create table on cluster, надо настроить блок <remote_servers></remote_servers> ?
  • https://t.me/clickhouse_ru
    Всмысле у вас кластер есть ?
  • https://t.me/clickhouse_ru
    @konnectrl #277960 11:53 AM, 06 Jul 2022
    Вы указываете кластер и через зуукипер будет выполнять запросы
  • https://t.me/clickhouse_ru
    @OrNixx ↶ Reply to #277959 #277961 11:53 AM, 06 Jul 2022
    есть 2 сервера КХ, подключенные к кластеру ЗК
  • https://t.me/clickhouse_ru
    @OrNixx #277962 11:55 AM, 06 Jul 2022
    озадачился, как создавать таблицу в одном месте, чтобы на 2й реплике она тоже создавалась
  • https://t.me/clickhouse_ru
    спасибо, хороший кейс
  • https://t.me/clickhouse_ru
    CREATE TABLE ... ON CLUSTER 'cluster-name'

    почитайте в доке про distributed ddl
  • https://t.me/clickhouse_ru
    @OrNixx ↶ Reply to #277964 #277965 11:58 AM, 06 Jul 2022
    читал, но там небогато: In order to run these queries correctly, each host must have the same cluster definition
    в блоке <distributed_ddl> не увидел, как задать cluster-name
  • https://t.me/clickhouse_ru
    смотрим в доке по Engine=Distributed <remote_servers> и system.clusters
  • https://t.me/clickhouse_ru
    @OrNixx ↶ Reply to #277966 #277967 12:21 PM, 06 Jul 2022
    посмотрел, настроил, но видимо что-то не так

    create database test123 on cluster richy висит:
    ↖ Progress: 0.00 rows, 0.00 B (0.00 rows/s., 0.00 B/s.)
  • https://t.me/clickhouse_ru
    проверяем что правильно настроен <remote_servers>
    SELECT hostName() h, * FROM clusterAllReplicas('your-cluster-name',system.clusters) FORMAT Vertical

    проверяем что правильно настроили zookeeper
    SELECT hostName() h, * FROM clusterAllReplicas('your-cluster-name',system.zookeeper) WHERE path='/' FORMAT Vertical
  • https://t.me/clickhouse_ru
    У вас имена хостов и айпи совпадают между тем что на сервере и тем что в remote_servers?

    А то бывает что сервер сам про себя думает одно (localhost 127.0.0.1) а в конфиге он называется по нормальному и айпи у него нормальный.
  • https://t.me/clickhouse_ru
    @kuzvladd #277970 12:31 PM, 06 Jul 2022
    Добрый день! Подскажите пожалуйста в чем отличие GlobalThread, LocalThread и о чем говорят метрики RWLockActiveReaders, ContextLockWait? С чем может быть связан резкий рост RWLockActiveReaders?
  • https://t.me/clickhouse_ru
    @OrNixx ↶ Reply to #277969 #277971 12:35 PM, 06 Jul 2022
    я балбес. у меня порт не 9000, а в дефолтном конфиге 9000. всё заработало, спасибо
  • https://t.me/clickhouse_ru
    надо читать что в логе кх в это время
  • https://t.me/clickhouse_ru
    Занимаюсь, спасибо за помощь. Если что то накопаю дам знать.
  • https://t.me/clickhouse_ru
    max_insert_threads and materialized views performance degradation · Issue #37900 · ClickHouse/ClickHouse

    test DROP TABLE IF EXISTS t; DROP TABLE IF EXISTS t_mv; create table t (a UInt64) Engine = Null; create materialized view t_mv Engine = Null AS select now() as ts, max(a) from t group by ts; insert...

  • https://t.me/clickhouse_ru
    на стековерфлоу 500 примеров
    это задача gaps and islands, groupArray -> arraySplit
  • https://t.me/clickhouse_ru
    @Pershin_Artem_spb #277976 12:41 PM, 06 Jul 2022
    И ещё раз спрошу про деление работы на репликах. Все что предлагали с опциями не сработало, время наоборот увеличилось вдвое. Можно ли в итоге как то подключить реплики не как раунд Робин, куда уходит запрос полностью и вычисляется на одной, а делить работу между ними, если существует партицирование. И если это возможно, то где можно почитать в коде то, как реплики будут выбирать себе куски для обработки?
  • https://t.me/clickhouse_ru
    я не понял как может на s3 быть больше или меньше свободного места?

    там всегда бесконечно свободное место
  • https://t.me/clickhouse_ru
    мечты, мечты.

    у вас таблицы replicated? результат вообще правильный получился?

    сколько партов процессилось?
  • https://t.me/clickhouse_ru
    @392734528 #277981 12:44 PM, 06 Jul 2022
    ребят подскажите плиз как правльно итерировать списки строк

    В Array(string) запрятаны словари (json)
    типа ['{'key1': 1, 'key2': 'asdf'}', '{'key1': 2, 'key2': 'qzxc'}']
    Как правльно с этим работать?
    Нужно например выбрать 'key1' где длина массива > 1
    Вот запрос
    select field from table where length(field) > 1
    а как из field вычленивать key?

    ну и сотвественно как правильно агрегировать такие словари?
  • https://t.me/clickhouse_ru
    Не сверял правильность, таблицы реплекейтед, да, одна реплика, просканило в два раза больше строк с опцией allow_allow_experimental_parallel_reading_from_replicas
  • https://t.me/clickhouse_ru
    а зачем вы json положили в КХ? может предварительно распарсить и тогда все будет быстрее и проще?
  • https://t.me/clickhouse_ru
    я тут спрашивал как это сделать ) ничего умнее массива. строк не предложили )
  • https://t.me/clickhouse_ru
    ну т.е. вообще непонятно КХ понял что это реплики или нет. ОК
    версия-то какая у КХ ?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    вы спрашивали как JSON положить, все поняли что у вас в JSON может быть что угодно, а не данные с регулярной структурой.
  • у нас ceph, по графикам размера бакета вижу что место не освобождается
  • https://t.me/clickhouse_ru
    ну что то может структурировано, что то не может. сейчас вопрос о том как со стуктурированными даными работать ) Да и в целом какая разница?
  • https://t.me/clickhouse_ru
    @gotmad #277990 01:09 PM, 06 Jul 2022
    Добрый день. Подскажите, какой путь в zookeeper предпочтительнее для Replicated*Tree?
    ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/{database}/{uuid}', '{replica}')
    или
    ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/{database}/{table}', '{replica}')
    Насколько я понял из документации, первый вариант позволит переименовывать таблицы не ломая репликацию
  • https://t.me/clickhouse_ru
    sequenceCount
  • https://t.me/clickhouse_ru
    сейчас попробовал на 1м шарде с двумя репликами.
    короче в такой конфигурации всегда читает с локальной реплики, потому что все данные есть локально.
    работает если prefer_localhost_replica=0;

    set allow_experimental_parallel_reading_from_replicas=1, max_parallel_replicas=2, prefer_localhost_replica=0;
  • https://t.me/clickhouse_ru
    с этим проблема, вообще непонятно может ли КХ что-то удалять вообще в этом случае. Там используется специфический AWS функционал.
  • https://t.me/clickhouse_ru
    arrayMap(x->visitParamExcractString(x,'key_1'),array_json)
  • https://t.me/clickhouse_ru
    Да давай
  • https://t.me/clickhouse_ru
    первый.

    она в любом случае не ломается. Вы неправильно что-то поняли.
    (просто путь остается в ЗК как был и в таблице тоже)
  • https://t.me/clickhouse_ru
    А у вас как таблица партицирована? По 500к с каждой реплики прочитало?
  • https://t.me/clickhouse_ru
    @gotmad ↶ Reply to #277997 #277999 01:17 PM, 06 Jul 2022
    Я про этот фрагмент
    The path in ClickHouse Keeper cannot be changed, and when the table is renamed, the macros will expand into a different path, the table will refer to a path that does not exist in ClickHouse Keeper, and will go into read-only mode.
  • @Armadik #278000 01:18 PM, 06 Jul 2022
    Народ привет, создал бекап таблицы в одном ch, далее выгружаю его на другую инстанцию и пытаюсь восстановить. Все выполняю с помощью clickhouse-backup утилиты. При восстановлении ловлю can't create table. Это в целом должно работать?
  • понятно, спасибо, про это поподробнее где-то кроме исходников можно почитать?
  • https://t.me/clickhouse_ru
    в общем все там кривое и результаты кажется кривые
  • https://t.me/clickhouse_ru
    Жалко, ну видимо не зря экспериментал
  • https://t.me/clickhouse_ru
    в общем разработчики были в курсе, просто не доделано
  • https://t.me/clickhouse_ru
    это странная фраза.

    потому что macros раскрывается в момент create table (раньше было в момент attach)
  • https://t.me/clickhouse_ru
    долнжо, у вас свежий clickhouse-backup ?
  • https://t.me/clickhouse_ru
    show create table показывает макросы
    совсем недавно видела, но не помню, в какой версии
    видимо, фраза про attach как раз
  • https://t.me/clickhouse_ru
    @salttan #278008 01:57 PM, 06 Jul 2022
    а хотя это не {table} был
  • https://t.me/clickhouse_ru
    table и database уже пару лет как раскрываются в create
  • Похоже нашли проблему в разности шардов на кластерах, сейчас выравниваю, проверяю. Спасибо
  • https://t.me/clickhouse_ru
    и в Atomic и в Ordinary?
  • https://t.me/clickhouse_ru
    да
  • https://t.me/clickhouse_ru
    а вы понимаете под "раскрывается" что происходит подстановка? потому что у меня такое не происходит на 22.3.3.44-1 на проде, я вот недавно создавал таблицу на этой версии и у меня в metadata/база/таблица.sql все так же макросы
  • https://t.me/clickhouse_ru
    @floxard #278014 02:40 PM, 06 Jul 2022
    я не проверял для Atomic такое же поведение или нет, но на Ordinary на 22.3.3.44-1 у меня такое поведение
  • https://t.me/clickhouse_ru
    @floxard #278017 02:52 PM, 06 Jul 2022
    извиняюсь, ошибся, не тот кластер, этот 19.11.2
    ну да, вы правы, 19.11 ~ пару лет
    на 22.3.3.44-1 действительно работает как вы озвучили
  • @Shimiru #278018 02:55 PM, 06 Jul 2022
    Всем привет!
    В официальном докер образе (version 22.6.3) и на mac os, запущенного по инструкции с сайта (version 22.7.1), нет hive engine и hive function. Это действительно так или их как-то надо дополнительно включить?
    DB::Exception: Unknown table engine Hive. Maybe you meant: ['File']. (UNKNOWN_STORAGE)
    DB::Exception: Unknown table function hive. Maybe you meant: ['file']. (UNKNOWN_FUNCTION)
  • https://t.me/clickhouse_ru
    @gqpbar #278019 02:57 PM, 06 Jul 2022
    Всем привет. У меня кластер из 3х реплик. И сегодня они все вместе упали. В логах ошибка со скрина. Этого файла действительно нет, но не было и до этого. В чем может быть проблема и как ее можно определить кроме логов?
  • https://t.me/clickhouse_ru
    одна реплика

    select count() from rep_test1 prewhere S='a';
    0 rows in set. Elapsed: 19.412 sec. Processed 68.16 million rows, 70.17 GB (3.51 million rows/s., 3.61 GB/s.)

    8 реплик
    set allow_experimental_parallel_reading_from_replicas=1, max_parallel_replicas=8, prefer_localhost_replica=0, use_hedged_requests=0;

    select count() from rep_test1 prewhere S='a';
    0 rows in set. Elapsed: 3.988 sec. Processed 68.16 million rows, 70.17 GB (17.09 million rows/s., 17.60 GB/s.)
  • https://t.me/clickhouse_ru
    ну в 6 раз меньше время. но тут prewhere. интересно какой там алгоритм разбиения работы по рекликам и откуда оно знает что результат независим от кусков
  • https://t.me/clickhouse_ru
    Parallel processing on replicas, reworked. · Issue #26748 · ClickHouse/ClickHouse

    We want to parallelize data processing using multiple replicas of single shard. Every replica should process some split of data. There are the following considerations that makes the task non-trivi...

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

    вот без prewhere

    select uniqHLL12(S) from rep_test1_d;
    1 rows in set. Elapsed: 24.430 sec. Processed 68.16 million rows, 70.17 GB (2.79 million rows/s., 2.87 GB/s.)

    set allow_experimental_parallel_reading_from_replicas=1, max_parallel_replicas=8, prefer_localhost_replica=0, use_hedged_requests=0;
    select uniqHLL12(S) from rep_test1_d;
    1 rows in set. Elapsed: 4.720 sec. Processed 68.16 million rows, 70.17 GB (14.44 million rows/s., 14.86 GB/s.)

    это искусственно созданная идеальная таблица для allow_experimental_parallel_reading_from_replicas, в реальной жизни конечно это работать будет раз в году, при солнечной погоде.
  • https://t.me/clickhouse_ru
    хотя казалось бы group by по партицированной таблице идеально ложится в кейс. Даже не надо заморачиваться с тем что считать кол-во работы, просто тупо считать что в партициях равное кол-во работы и уже норм будет на большинстве кейсов
  • https://t.me/clickhouse_ru
    в реальной жизни финализация результата с шардов на инициаторе занимает примерно половину времени.
  • https://t.me/clickhouse_ru
    странно, если на входе сотни миллионов строк , а на выходе десятки тысяч
  • https://t.me/clickhouse_ru
    client.execute("""select arrayMap(x->visitParamExtractString(x,'key_1'),['{"key1": "1", "key2": 12}','{"key1": "2", "key2": 13}'])""")

    [(['', ''],)]

    чет не прокатило (
  • https://t.me/clickhouse_ru
    у вас другая реальность, у меня по жизни инициатор самое проблемное место.
  • https://t.me/clickhouse_ru
    видимо такое распределение данных, что дистрибьютед таблица дает ускорение в n раз, где n -кол-во шардов. Но я не замерял конечно сильно детально , на глаз)
  • https://t.me/clickhouse_ru
    key_1 на key1 заменить ?
  • https://t.me/clickhouse_ru
    сорян но тож самое
  • https://t.me/clickhouse_ru
    в общем оно работает только если prefer_localhost_replica=0, use_hedged_requests=0;
  • https://t.me/clickhouse_ru
    select arrayMap(x->visitParamExtractString(x,'key1'),array('{"key1":"1","key2": 12}','{"key1":"2","key2":13}'))
  • https://t.me/clickhouse_ru
    @konnectrl #278037 03:35 PM, 06 Jul 2022
    Пробелы после : надо убирать
  • https://t.me/clickhouse_ru
    @vasbum ↶ Reply to #278019 #278038 03:35 PM, 06 Jul 2022
    Я посмотрел кластер
    Выглядит он не очень... Примерно понятно что произошло: на серверах в 2 часа утра начала кончаться память и ядро раз за разом убивало процесс clickhouse, он восстанавливался и в 15.39 в результате очередного раунда побились данные.
    Не очень понятно: в нём или в его части которая эмулирует zookeep.

    Кто-то сталкивался с такой проблемой? Выживут данные?
  • https://t.me/clickhouse_ru
    ошибка в другом сообщении, до этого.
  • https://t.me/clickhouse_ru
    если keeper данные побились, то да, данные хранятся в другом месте
  • https://t.me/clickhouse_ru
    @den_crane #278042 03:45 PM, 06 Jul 2022
    интересно увидеть ошибки кипера и версию кипера. По идее кипер должен быть надежнее чем КХ, потому что он синкает свои данные на диск (в журнал).
  • https://t.me/clickhouse_ru
    @vasbum ↶ Reply to #278042 #278043 03:55 PM, 06 Jul 2022
    Версия кипера встроенная в КХ
    А КХ 22.22.22.1
  • https://t.me/clickhouse_ru
    @good_developer #278044 04:02 PM, 06 Jul 2022
    Какой-то replicated совсем экспериментальный, или это ожидаемое поведение?
    Создал базу на двух хостах, создал таблицу (T1), дропнул базу.
    Создал базу, попытался снова создать таблицу T1, получил Replica /clickhouse/tables/s1/DBNAME/T1/replicas/r2 already exists

    show tables естественно девственно чист
  • https://t.me/clickhouse_ru
    Drop table/database sync
  • https://t.me/clickhouse_ru
    @den_crane #278046 04:07 PM, 06 Jul 2022
    Без sync удаляется через 8 минут
  • https://t.me/clickhouse_ru
    @good_developer #278047 04:07 PM, 06 Jul 2022
    8 минут вроде прошло конечно, table грохнуть уже не даёт т.к. его "нет", сейчас попробую базу ещё раз стукнуть
  • https://t.me/clickhouse_ru
    22.2 ? Это уже история. После этого исправляли что то подобное в кипере
  • https://t.me/clickhouse_ru
    drop database sync не помог, +прошло уже с пол часа.
    Где должна хранится эта асинхронная задача? Статус её посмотреть мб какой-то
  • https://t.me/clickhouse_ru
    спасибо за наводку.
    но чо то мне все шаблоны порвало

    select isValidJSON('{"key1": "1","key2": 12}'). -> True
    select arrayMap(x->visitParamExtractString(x,'key1'),array('{"key1": "1","key2": 12}')) -> [([''],)]

    делаем replace(": ", ":") все работает.
    то есть это норм поведение? или я чего то опять не дочилал?
  • https://t.me/clickhouse_ru
    не очень понятно все же что вы делаете и почему у вас zk путь такой странный

    r1 CREATE DATABASE testdb ENGINE = Replicated('/clickhouse/test/x', '1', 'r1');
    r2 CREATE DATABASE testdb ENGINE = Replicated('/clickhouse/test/x', '1', 'r2');
    create table testdb.t1(A Int64) Engine=ReplicatedMergeTree() order by A;
    ┌─host─┬─status─┬─error─┬─num_hosts_remaining─┬─num_hosts_active─┐
    │ 1|r1 │ 0 │ │ 1 │ 1 │
    └──────┴────────┴───────┴─────────────────────┴──────────────────┘
    ┌─host─┬─status─┬─error─┬─num_hosts_remaining─┬─num_hosts_active─┐
    │ 1|r2 │ 0 │ │ 0 │ 0 │
    └──────┴────────┴───────┴─────────────────────┴──────────────────┘

    r2 drop database testdb sync;
    r2 CREATE DATABASE testdb ENGINE = Replicated('/clickhouse/test/x', '1', 'r2');
    r2 show tables from testdb;
    ┌─name─┐
    │ t1 │
    └──────┘
  • https://t.me/clickhouse_ru
    Вот так и с пробелами работает
    select arrayMap(x->JSONExtractString(x,'key1'),array('{"key1": "1","key2": 12}','{"key1": "2","key2": 13}'))
  • https://t.me/clickhouse_ru
    @vasbum ↶ Reply to #278048 #278053 04:44 PM, 06 Jul 2022
    А можете подсказать какого-то специалиста который может помочь решить эту задачу?
  • https://t.me/clickhouse_ru
    Я думаю, он вам и отвечает :)
  • https://t.me/clickhouse_ru
    А типа особенность функции. понял, спасибо!
  • https://t.me/clickhouse_ru
    Так как перед вставкой мы все данные читаем и заливаем ... Мы решили заменять пробел
  • https://t.me/clickhouse_ru
    подскажи пожалуйста а не сильно повлияет на агрегацию данных мой корявый формат погрузки array(String/json)?
  • https://t.me/clickhouse_ru
    @392734528 #278059 04:48 PM, 06 Jul 2022
    а то может пока еще не поздно переделать как то нормально
  • https://t.me/clickhouse_ru
    @konnectrl #278060 04:48 PM, 06 Jul 2022
    Какие у вас планируемые столбцы ?
  • https://t.me/clickhouse_ru
    @392734528 #278061 04:50 PM, 06 Jul 2022
    прям много столбцов формата
    Array(Json)
    Возможно (не успел исследовать но вроде да) вложенные json нормальные (с одинаковым кол-во полей)
  • https://t.me/clickhouse_ru
    @konnectrl #278062 04:50 PM, 06 Jul 2022
    а может было бы нормально расскрыть эти массивы в доп строчки ?
  • https://t.me/clickhouse_ru
    @konnectrl #278063 04:52 PM, 06 Jul 2022
    А что вы положили в ORDER BY ?
  • https://t.me/clickhouse_ru
    @Diroman #278064 04:52 PM, 06 Jul 2022
    привет
    стоит задача изменить тип столбца AggregateFunction(countIf, UInt8) -> AggregateFunction(countIf, UInt64)
    пытался добавлять новый столбец и модифицировать существующий, оба раза получал ошибку
    Illegal type UInt64 of last argument for aggregate function with If suffix
    что можно с этим сделать?
  • https://t.me/clickhouse_ru
    не знаю таких. Мы в Альтинити помогаем только бесплатно и публично.
  • https://t.me/clickhouse_ru
    у вас опечатка
    AggregateFunction(countIf, UInt8)
    AggregateFunction(countIf, UInt8)
  • https://t.me/clickhouse_ru
    поправил, в синтаксисе запроса всё ок
  • https://t.me/clickhouse_ru
    @vasbum ↶ Reply to #278065 #278068 04:56 PM, 06 Jul 2022
    Там сейчас проблема в том, что не запускается КХ и интегрированный зукипер
    Можете подсказать как попробовать решить этот вопрос? Может как-то отключить встроенный зукипер
  • https://t.me/clickhouse_ru
    так погодите

    desc ( select countIfState(x) from (select 1 x));
    AggregateFunction(countIf, UInt8)

    UInt8 -- это про If

    desc ( select countState() from (select 1 x));
    AggregateFunction(count)

    count хранится как LEB128 в AggregateFunction
  • https://t.me/clickhouse_ru
    в партицию таблицы дату метрик. по дням (на проде по месяцам сделаю как положено)
    ну и ордер по ней
  • https://t.me/clickhouse_ru
    Ну и как вам помочь, вы ничего не говорите .... Ну у нас короче будет много массивов и время
  • https://t.me/clickhouse_ru
    ?
    уберите из конфига КХ его описание

    ошибка какая? с незапуском?

    https://pastila.nl/ -- расшарьте логи
  • https://t.me/clickhouse_ru
    хммммм, точно
    запутался немного, спасибо
  • https://t.me/clickhouse_ru
    Да я прсто не понимаю что конкретно нужно сказать )
    вот например таблица
    CREATE TABLE data
    (
    id FixedString(36) NOT NULL,
    another_id FixedString(36) NOT NULL,
    time DateTime64(3, "Europe/Moscow") NOT NULL,
    sec_time DateTime64(3, "Europe/Moscow") NULL,
    canonical_id FixedString(264) NULL,
    old_ids Array(String),
    other_id FixedString(264) NULL,
    ips Array(IPv4),
    more_ips Array(IPv4),
    params Array(String),
    ip_data Array(String),
    urls Array(String),
    ips2 Array(String),
    score_results Array(String),
    url_counter Array(String),
    users Array(String)
    )
    ENGINE = MergeTree
    PARTITION BY toYYYYMMDD(time) ORDER BY (time)"""
    )
  • https://t.me/clickhouse_ru
    @392734528 #278075 05:03 PM, 06 Jul 2022
    в Array(String) я хапихал массив json-ов
  • https://t.me/clickhouse_ru
    @392734528 #278076 05:03 PM, 06 Jul 2022
    допустим каждый json строго типизирован в рамках своего поля.
  • https://t.me/clickhouse_ru
    @392734528 #278077 05:03 PM, 06 Jul 2022
    собственно больше нечего скрывать )
  • https://t.me/clickhouse_ru
    Дак если строго типизированный, может разложить по колонкам сразу ?
  • https://t.me/clickhouse_ru
    @konnectrl #278079 05:07 PM, 06 Jul 2022
    ORDER BY time ? Вы просто храните данные и не собираетесь к ним обращаться ? Может ещё какие-нибудь колонки положить туда ?
  • https://t.me/clickhouse_ru
    @konnectrl #278080 05:07 PM, 06 Jul 2022
    Возможно у вас есть колонки с маленькой кардинальностью ?
  • https://t.me/clickhouse_ru
    @konnectrl #278081 05:13 PM, 06 Jul 2022
    Так же кликхаус не любит NULL https://gist.github.com/den-crane/e43f8d0ad6f67ab9ffd09ea3e63d98aa
    NullableVsInt

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

  • @sr_maks1 #278082 05:21 PM, 06 Jul 2022
    Добрый день господа. Сегодня заметил странную весчь при мерже конфигурации.
    cat /etc/clickhouse-server/users.xml
    <?xml version="1.0"?>
    <yandex>
    <!-- Profiles of settings. -->
    <profiles>
    <!-- Default settings. -->
    <default>
    <!-- Maximum memory usage for processing single query, in bytes. -->
    <max_memory_usage>32212254720</max_memory_usage>
    <max_insert_block_size>5242880</max_insert_block_size>

    cat /etc/clickhouse-server/users.d/profile_default.xml
    <?xml version="1.0"?>
    <yandex>
    <clickhouse>
    <profiles>
    <default>
    <max_memory_usage>7212254720</max_memory_usage>
    <load_balancing>random</load_balancing>
    </default>
    </profiles>
    </clickhouse>
    </yandex>
    cat /var/lib/clickhouse/preprocessed_configs/users.xml

    <yandex>
    <!-- Profiles of settings. -->
    <profiles>
    <!-- Default settings. -->
    <default>
    <!-- Maximum memory usage for processing single query, in bytes. -->
    <max_memory_usage>32212254720</max_memory_usage>
    <max_insert_block_size>5242880</max_insert_block_size>
    --------
    и
    tail -n 20 /var/lib/clickhouse/preprocessed_configs/users.xml
    <clickhouse>
    <profiles>
    <default>
    <max_memory_usage>7212254720</max_memory_usage>
    <load_balancing>random</load_balancing>
    </default>
    </profiles>
    </clickhouse>

    Connected to ClickHouse server version 22.6.2 revision 54455.
    Собственно говоря блок с /etc/clickhouse-server/users.d/profile_default.xml не попадает в конфигурацию. Может что то не то делаю. PS изначально сервером рулил не я. PSPS пока просто поменял в users.xml
  • https://t.me/clickhouse_ru
    что-то вы намудлили
    у вас <clickhouse> вложен в <yandex>
    а это должен быть корневой тег...
  • хз. может и так. Попробую убрать.
  • https://t.me/clickhouse_ru
    подумаю над этим просто неудобно конвертировать. счестье из касандры лезет (
    а если декомпозировать то кол-во строк сильно возрастет. таблица припухнет. Или это не притично? или декомпозицию можно сделать на сторонние таблицы? Что лучше?

    к данным конечно собираюсь обращатсья для построения отчетности
    на счет маленькой кардинальности - не могу пока ответить.
  • https://t.me/clickhouse_ru
    @gqpbar ↶ Reply to #278072 #278086 05:29 PM, 06 Jul 2022
    https://pastebin.com/e2hpN5hD
    clickhouse-server.err.log

    https://pastebin.com/ZULuMqFi
    /var/log/clickhouse-server/clickhouse-server.log
    2022.07.06 20:13:42.897218 [ 2862073 ] {} <Warning> RaftInstance: peer (2) respo - Pastebin.com

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

  • https://t.me/clickhouse_ru
    Ну с таким ордер баем будет всегда фулл скан таблицы. Ну у вас и так будет пухнуть, только строка будет больше весить, и возможно плохо сжиматься, и возможно лучше сделать без массивов
  • https://t.me/clickhouse_ru
    @konnectrl #278088 05:31 PM, 06 Jul 2022
    На лету можете разбивать с помощью MV
  • https://t.me/clickhouse_ru
    @392734528 #278089 05:33 PM, 06 Jul 2022
    ОК тогда сделаю декомпозицию структуры
  • https://t.me/clickhouse_ru
    просил же pastila.nl там банеров нет

    https://kb.altinity.com/altinity-kb-setup-and-maintenance/suspiciously-many-broken-parts/
    Suspiciously many broken parts

    Suspiciously many broken parts error during the server startup.

  • https://t.me/clickhouse_ru
    Поймите какие вы будете писать запросы, добавьте в ORDER BY те столбцы по которым будете фильтровать данные. И после этого уже выбирайте структуру хранения, с помощью тестов через clickhouse-client с помощью level_log = 'trace' смотря как работают запросы
  • https://t.me/clickhouse_ru
    @tsparksh_bot #278092 05:43 PM, 06 Jul 2022
    всем привет! а какая пропускная способность у схемы кафка->mv->table? если много событий в кафке будет, как гарантировать, что они появятся не позже 10-60 сек в кликхаусе?
  • https://t.me/clickhouse_ru
    Эти столбцы в основном запрятаны в масивах в json. Поэтому, не имея плоской структуры я пока в раздумьях как правильно ее построить.
  • https://t.me/clickhouse_ru
    Ну тогда скорей всего выносить из массивов и из json
  • https://t.me/clickhouse_ru
    @konnectrl #278095 05:45 PM, 06 Jul 2022
    Иначе будет долго
  • https://t.me/clickhouse_ru
    @392734528 #278096 05:46 PM, 06 Jul 2022
    Пасиб. Тогда курс на декомпозицию намечен )
  • https://t.me/clickhouse_ru
    Вы лучше прочтите документацию, а не просто основываться на мои словах. Хотя бы как устроен доступ к данным MergeTree движке https://clickhouse.com/docs/ru/engines/table-engines/mergetree-family/mergetree
    MergeTree | ClickHouse Docs

    table_engines-mergetree}

  • https://t.me/clickhouse_ru
    Сильно зависит от железа, количества колонок и т.д. серебряной пули нету. Делайте нагрузочное тестирование.
  • https://t.me/clickhouse_ru
    @vasbum ↶ Reply to #278090 #278101 07:20 PM, 06 Jul 2022
    Спасибо вам огромное! Все получилось и все заработало!
    Спасибо что не оставили 1 на 1 с такой проблемой, а помогли ее решить
  • https://t.me/clickhouse_ru
    @daniel_byta #278103 09:19 PM, 06 Jul 2022
    Выполняю запрос alter table drop projection, а диск только растет в объеме. это как?)
  • https://t.me/clickhouse_ru
    @den_crane #278104 09:33 PM, 06 Jul 2022
    а долго работает drop projection ?
  • https://t.me/clickhouse_ru
    @daniel_byta #278105 09:43 PM, 06 Jul 2022
    да, вполне
  • https://t.me/clickhouse_ru
    @wonder_off_u #278107 10:15 PM, 06 Jul 2022
    Всем привет!
    Стояла старая версия CH (точно не помню ~ 2020 года) ошибок не было, после обновы до 22.1.1. Появляются постоянные ошибки на таблице с движком кафка (когда приходят данные) во view соответственно тоже ничего не приходит. Кафка полностью рабочая, топик пробовал пересоздавать.

    2022.07.06 16:17:38.484693 [ 14010 ] {} <Error> void DB::StorageKafka::threadFunc(size_t): Code: 32. DB::Exception: Attempt to read after eof: while parsing Kafka message (topic: ifTable, partition: 0, offset: 466482251)': While executing Kafka. (ATTEMPT_TO_READ_AFTER_EOF), 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::throwReadAfterEOF() @ 0xaed31bb in /usr/bin/clickhouse
    2. ? @ 0xaf0d6d4 in /usr/bin/clickhouse
    3. DB::SerializationString::deserializeTextCSV(DB::IColumn&, DB::ReadBuffer&, DB::FormatSettings const&) const @ 0x1445e13b in /usr/bin/clickhouse
    4. bool DB::SerializationNullable::deserializeTextCSVImpl<bool>(DB::IColumn&, DB::ReadBuffer&, DB::FormatSettings const&, std::__1::shared_ptr<DB::ISerialization const> const&) @ 0x1444dd76 in /usr/bin/clickhouse
    5. DB::RowInputFormatWithNamesAndTypes::readRow(std::__1::vector<COW<DB::IColumn>::mutable_ptr<DB::IColumn>, std::__1::allocator<COW<DB::IColumn>::mutable_ptr<DB::IColumn> > >&, DB::RowReadExtension&) @ 0x15abc285 in /usr/bin/clickhouse
    6. DB::IRowInputFormat::generate() @ 0x15aadff0 in /usr/bin/clickhouse
    7. DB::ISource::tryGenerate() @ 0x15a40dd5 in /usr/bin/clickhouse
    8. DB::ISource::work() @ 0x15a4099a in /usr/bin/clickhouse
    9. DB::StreamingFormatExecutor::execute() @ 0x15a69e82 in /usr/bin/clickhouse
    10. DB::KafkaSource::generateImpl() @ 0x145010cf in /usr/bin/clickhouse
    11. DB::KafkaSource::generate() @ 0x1450374f in /usr/bin/clickhouse
    12. DB::ISource::tryGenerate() @ 0x15a40dd5 in /usr/bin/clickhouse
    13. DB::ISource::work() @ 0x15a4099a in /usr/bin/clickhouse
    14. DB::SourceWithProgress::work() @ 0x15c92a62 in /usr/bin/clickhouse
    15. DB::ExecutionThreadContext::executeTask() @ 0x15a60ca3 in /usr/bin/clickhouse
    16. DB::PipelineExecutor::executeStepImpl(unsigned long, std::__1::atomic<bool>*) @ 0x15a54b7e in /usr/bin/clickhouse
    17. DB::PipelineExecutor::executeImpl(unsigned long) @ 0x15a53ddb in /usr/bin/clickhouse
    18. DB::PipelineExecutor::execute(unsigned long) @ 0x15a53718 in /usr/bin/clickhouse
    19. DB::CompletedPipelineExecutor::execute() @ 0x15a52244 in /usr/bin/clickhouse
    20. DB::StorageKafka::streamToViews() @ 0x144f6a9a in /usr/bin/clickhouse
    21. DB::StorageKafka::threadFunc(unsigned long) @ 0x144f49d8 in /usr/bin/clickhouse
    22. DB::BackgroundSchedulePoolTaskInfo::execute() @ 0x14147f2e in /usr/bin/clickhouse
    23. DB::BackgroundSchedulePool::threadFunction() @ 0x1414a8c7 in /usr/bin/clickhouse
    24. ? @ 0x1414b8f0 in /usr/bin/clickhouse
    25. ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0xaf62837 in /usr/bin/clickhouse
    26. ? @ 0xaf662fd in /usr/bin/clickhouse
    27. start_thread @ 0x7dc5 in /usr/lib64/libpthread-2.17.so
    28. clone @ 0xf6ced in /usr/lib64/libc-2.17.so
    (version 22.2.2.1).

    Таблица:

    CREATE TABLE cs.ifTable_kafka
    (

    ...
    )
    ENGINE = Kafka
    SETTINGS kafka_broker_list = 'localhost:9092',
    kafka_topic_list = 'ifTable',
    kafka_group_name = 'ifTable',
    kafka_format = 'CSV';
  • 07 July 2022 (167 messages)
  • https://t.me/clickhouse_ru
    лучше хотя бы до 22.3 LTS обновиться
    у вас не 22.1 а 22.2 судя по логам
  • https://t.me/clickhouse_ru
    @anyareuss #278114 06:30 AM, 07 Jul 2022
    ку
  • https://t.me/clickhouse_ru
    @tom_leto #278117 06:51 AM, 07 Jul 2022
    Как правильно из большой ReplacingMergeTree таблицы удалить несколько строк ?
  • @s4851 ↶ Reply to #278117 #278118 06:52 AM, 07 Jul 2022
    Alter table delete where
  • https://t.me/clickhouse_ru
    других вариантов нет?
  • @s4851 #278120 06:52 AM, 07 Jul 2022
    Но естественно есть нюансы если парт большого объёма
  • https://t.me/clickhouse_ru
    Дак а какой вариант ещё ?
  • @s4851 ↶ Reply to #278119 #278122 06:52 AM, 07 Jul 2022
    Удалить весь парт и залить его по новой без этих строк
  • https://t.me/clickhouse_ru
    @konnectrl #278123 06:53 AM, 07 Jul 2022
    Если у вас дубликаты, то можно и по-другому
  • https://t.me/clickhouse_ru
    @tom_leto #278124 06:54 AM, 07 Jul 2022
    т.е. ReplacingMergeTree помогает избавиться от апдейтов но не от дилитов?
  • для удалений есть CollapsingMergeTree
  • https://t.me/clickhouse_ru
    Мое почтени𝚎, гocпода , еcли y вac есть желaние подымaть ноpмальные дeньжата , пишитe мне ⲃ личκу , дам coⲃ𝚎т и бyдeт Baм счастье . oт 10 κ в день р𝚎aльно , нe напpягаясь , тратя 2-3 чaca нa pаботy⁠⁠⁠⁠⁠⁠⁠⁠⁠
  • https://t.me/clickhouse_ru
    поясните плиз как правильно сделать с CollapsingMergeTree такую операцию

    alter table dwh.sj_billing_hr_bill_ods delete
    where id not in (select id from dwh.sj_billing_hr_bill_id)
    SETTINGS mutations_sync = 2;

    т.е. мне нужно удалить из таблицы определенный список по select id из другой таблицы
  • /report
  • https://t.me/clickhouse_ru
    Вам один раз надо удалить ?
  • https://t.me/clickhouse_ru
    один раз в день для каждой таблицы (всего их 300)
  • https://t.me/clickhouse_ru
    @konnectrl #278131 07:22 AM, 07 Jul 2022
    АА да
  • https://t.me/clickhouse_ru
    @konnectrl #278132 07:23 AM, 07 Jul 2022
    Неплохое уточнение
  • https://t.me/clickhouse_ru
    @tom_leto #278133 07:23 AM, 07 Jul 2022
    когда 1 раз то можно delete
  • https://t.me/clickhouse_ru
    @konnectrl #278134 07:24 AM, 07 Jul 2022
    Просто чтобы использовать collapsing то надо помнить есть ли там данная строка или нет
  • https://t.me/clickhouse_ru
    @konnectrl #278135 07:24 AM, 07 Jul 2022
    А чтобы это сделать надо делать запрос для каждой строки (наверное)
  • https://t.me/clickhouse_ru
    @konnectrl #278136 07:25 AM, 07 Jul 2022
    Вообщем вам нужно знать, есть ли там уже строка, которую хотите удалить или нет
  • https://t.me/clickhouse_ru
    @tom_leto #278137 07:26 AM, 07 Jul 2022
    допустим есть
  • https://t.me/clickhouse_ru
    @konnectrl #278138 07:26 AM, 07 Jul 2022
    Кхм, а я вот щас подумал, если sign просто отправлять строчки с пометкой -1, и даже если там нету строчки, то что будет.
  • https://t.me/clickhouse_ru
    @tom_leto #278140 07:31 AM, 07 Jul 2022
    Можете привести пример кода как сделать с CollapsingMergeTree такую операцию

    alter table dwh.sj_billing_hr_bill_ods delete
    where id not in (select id from dwh.sj_billing_hr_bill_id)
    SETTINGS mutations_sync = 2;

    т.е. мне нужно удалить из таблицы определенный список по select id из другой таблицы.
    я о CollapsingMergeTree вревые сегодня прочитал

    нужно делать insert с sign = -1 для моего списка id
    а затем optimize table T final;

    ?
  • @5272136899 #278141 07:31 AM, 07 Jul 2022
    Добрый день. Данных уж слишком много, сервера не справляются. Подскажите, какие техники используете при прореживании данных ? например: нужна не каждая секунда (строка), а каждая 5-ая / 10-ая / etc. В голову приходит пока что в MV что-то накостылить.
  • https://t.me/clickhouse_ru
    Там нужна точная копия строки из ORDER BY
  • https://t.me/clickhouse_ru
    Ну вы можете агрегировать на вставке с помощью MV
  • Ну мне не совсем аггрегация нужна. Обсчитывать нечего. нужно взять каждую N-ую строку удовлетворяющих определенным условиям из входных данных. Или я вас неправильно понял?
  • https://t.me/clickhouse_ru
    ТИПА ТАКОГО
    insert into dwh.sj_billing_hr_bill_ods
    select *, -1 from dwh.sj_billing_hr_bill_ods
    where id not in (select id from dwh.sj_billing_hr_bill_id)

    затем optimize table dwh.sj_billing_hr_bill_ods final;
  • https://t.me/clickhouse_ru
    У вас что одинаковый order_by у этих таблиц ?
  • https://t.me/clickhouse_ru
    Вы просто хотите, чтобы было меньше данных ? Посмотрите на сэмплирование, но я сам не пользовался
  • https://t.me/clickhouse_ru
    Вы про dwh.sj_billing_hr_bill_ods И dwh.sj_billing_hr_bill_id
    пока допустим да
  • https://t.me/clickhouse_ru
    @konnectrl #278150 07:41 AM, 07 Jul 2022
    Мне кажется, у вас какой то ад в архитектуре.
  • https://t.me/clickhouse_ru
    @evildevme #278151 07:42 AM, 07 Jul 2022
    Доброго дня всем.
    Есть у меня вопросец по алгоритму:
    Выбираю по 1000 записей на таблице примерно в 51кк.
    Далее каждой записи обновляю поле уникальным значением через ALTER TABLE UPDATE синхронно.
    Сначала все идет хорошо, 10-20к записей, ресурсы сервера забиваются подчистую ( см. скрин ).
    Но в какой-то момент происходит высвобождение ресурсов с продолжением работы но запрос в этот момент обновляет одну строку от 13 и выше секунд.
  • https://t.me/clickhouse_ru
  • у вас SWAP используется, будет в любом случае медленно. Попробуйте со sudo swapoff -a
  • https://t.me/clickhouse_ru
    Я бы посоветовал, сначала разобраться с архитектурой таблиц в Clickhouse .Такое чувство, что у вас каждый человек в отдельной таблице
  • https://t.me/clickhouse_ru
    Свап судя по скринам никак не меняется
  • https://t.me/clickhouse_ru
    Пока не важна таблица с id
    Так я могу сделать ?

    insert into dwh.sj_billing_hr_bill_ods
    select *, -1 from dwh.sj_billing_hr_bill_ods
    where id in (1, 2, 3)

    затем optimize table dwh.sj_billing_hr_bill_ods final;
  • https://t.me/clickhouse_ru
    @kurahh #278161 08:53 AM, 07 Jul 2022
    Есть
    массив А = [1, 1, 1, 0, 1, 1, 1, 1, 1, 2, 1, 1, 0]
    массив B = [4, 10, 13], где хранятся индексы элементов А != 1

    Как с помощью arraySplit разделить массив на подмассивы, которые начинаются с 1 и заканчиваются не 1?

    То есть в финале хочется иметь массив [[1, 1, 1, 0], [1, 1, 1, 1, 1, 2], [1, 1, 0]]
  • https://t.me/clickhouse_ru
    @metelitsaa #278163 08:57 AM, 07 Jul 2022
    Всем привет!
    Получили рестарт сервера с необработанным эксепшеном CANNOT_WRITE_TO_OSTREAM после обычного селекта из DBeaver. Подскажите, куда копать?
    Версия: 21.9.5.16
    Лог:
    2022.07.07 06:45:42.605845 [ 999213 ] {60224a20-da60-4564-9103-7639256ab82b} <Information> executeQuery: Read 5055810389 rows, 94.70 GiB in 556.319322275 sec., 9087964 rows/sec., 174.31 MiB/sec.
    2022.07.07 06:45:42.611662 [ 878444 ] {} <Fatal> BaseDaemon: (version 21.9.5.16 (official build), build id: 3F0B96ECD2A2596F770F590C8B21D623BE199371) (from thread 999213) Terminate called for uncaught exception:
    2022.07.07 06:45:42.611740 [ 878444 ] {} <Fatal> BaseDaemon: Code: 24. DB::Exception: Cannot write to ostream at offset 212. (CANNOT_WRITE_TO_OSTREAM), Stack trace (when copying this message, always include the lines below):
    2022.07.07 06:45:42.611750 [ 878444 ] {} <Fatal> BaseDaemon:
    2022.07.07 06:45:42.611770 [ 878444 ] {} <Fatal> BaseDaemon: 0. DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, bool) @ 0x93a6a9a in /usr/bin/clickhouse
    2022.07.07 06:45:42.611787 [ 878444 ] {} <Fatal> BaseDaemon: 1. DB::WriteBufferFromOStream::nextImpl() @ 0x94a9452 in /usr/bin/clickhouse
    2022.07.07 06:45:42.611795 [ 878444 ] {} <Fatal> BaseDaemon: 2. DB::WriteBufferFromHTTPServerResponse::nextImpl() @ 0x1181270d in /usr/bin/clickhouse
    2022.07.07 06:45:42.611801 [ 878444 ] {} <Fatal> BaseDaemon: 3. DB::WriteBufferFromHTTPServerResponse::finalize() @ 0x11812d82 in /usr/bin/clickhouse
    2022.07.07 06:45:42.611821 [ 878444 ] {} <Fatal> BaseDaemon: 4. DB::WriteBufferFromHTTPServerResponse::~WriteBufferFromHTTPServerResponse() @ 0x11813425 in /usr/bin/clickhouse
    2022.07.07 06:45:42.611828 [ 878444 ] {} <Fatal> BaseDaemon: 5. DB::HTTPHandler::handleRequest(DB::HTTPServerRequest&, DB::HTTPServerResponse&) @ 0x11797bec in /usr/bin/clickhouse
    2022.07.07 06:45:42.611835 [ 878444 ] {} <Fatal> BaseDaemon: 6. DB::HTTPServerConnection::run() @ 0x1180c130 in /usr/bin/clickhouse
    2022.07.07 06:45:42.611842 [ 878444 ] {} <Fatal> BaseDaemon: 7. Poco::Net::TCPServerConnection::start() @ 0x143c2dcf in /usr/bin/clickhouse
    2022.07.07 06:45:42.611850 [ 878444 ] {} <Fatal> BaseDaemon: 8. Poco::Net::TCPServerDispatcher::run() @ 0x143c485a in /usr/bin/clickhouse
    2022.07.07 06:45:42.611856 [ 878444 ] {} <Fatal> BaseDaemon: 9. Poco::PooledThread::run() @ 0x144f6ad9 in /usr/bin/clickhouse
    2022.07.07 06:45:42.611863 [ 878444 ] {} <Fatal> BaseDaemon: 10. Poco::ThreadImpl::runnableEntry(void*) @ 0x144f2d6a in /usr/bin/clickhouse
    2022.07.07 06:45:42.611870 [ 878444 ] {} <Fatal> BaseDaemon: 11. start_thread @ 0x9609 in /usr/lib/x86_64-linux-gnu/libpthread-2.31.so
    2022.07.07 06:45:42.611877 [ 878444 ] {} <Fatal> BaseDaemon: 12. __clone @ 0x122263 in /usr/lib/x86_64-linux-gnu/libc-2.31.so
    2022.07.07 06:45:42.611884 [ 878444 ] {} <Fatal> BaseDaemon: (version 21.9.5.16 (official build))
    2022.07.07 06:45:42.612177 [ 1002284 ] {} <Fatal> BaseDaemon: ########################################
    2022.07.07 06:45:42.612238 [ 1002284 ] {} <Fatal> BaseDaemon: (version 21.9.5.16 (official build), build id: 3F0B96ECD2A2596F770F590C8B21D623BE199371) (from thread 999213) (query_id: 60224a20-da60-4564-9103-7639256ab82b) Received signal Aborted (6)
    2022.07.07 06:45:42.612259 [ 1002284 ] {} <Fatal> BaseDaemon:
    2022.07.07 06:45:42.612300 [ 1002284 ] {} <Fatal> BaseDaemon: Stack trace: 0x7f370ea1b15b 0x7f370e9fa859 0x10109448 0x1657c4c3 0x1657c42c 0x93a1e6b 0x1181357a 0x11797bec 0x1180c130 0x143c2dcf 0x143c485a 0x144f6ad9 0x144f2d6a 0x7f370ebe1609 0x7f370eaf7263
    2022.07.07 06:45:42.612341 [ 1002284 ] {} <Fatal> BaseDaemon: 1. raise @ 0x4615b in /usr/lib/x86_64-linux-gnu/libc-2.31.so
    2022.07.07 06:45:42.612357 [ 1002284 ] {} <Fatal> BaseDaemon: 2. abort @ 0x25859 in /usr/lib/x86_64-linux-gnu/libc-2.31.so
    2022.07.07 06:45:42.612384 [ 1002284 ] {} <Fatal> BaseDaemon: 3. ? @ 0x10109448 in /usr/bin/clickhouse
    2022.07.07 06:45:42.612400 [ 1002284 ] {} <Fatal> BaseDaemon: 4. ? @ 0x1657c4c3 in ?
  • https://t.me/clickhouse_ru
    @metelitsaa #278164 08:57 AM, 07 Jul 2022
    2022.07.07 06:45:42.612428 [ 1002284 ] {} <Fatal> BaseDaemon: 5. std::terminate() @ 0x1657c42c in ?
    2022.07.07 06:45:42.612442 [ 1002284 ] {} <Fatal> BaseDaemon: 6. ? @ 0x93a1e6b in /usr/bin/clickhouse
    2022.07.07 06:45:42.612455 [ 1002284 ] {} <Fatal> BaseDaemon: 7. ? @ 0x1181357a in /usr/bin/clickhouse
    2022.07.07 06:45:42.612475 [ 1002284 ] {} <Fatal> BaseDaemon: 8. DB::HTTPHandler::handleRequest(DB::HTTPServerRequest&, DB::HTTPServerResponse&) @ 0x11797bec in /usr/bin/clickhouse
    2022.07.07 06:45:42.612489 [ 1002284 ] {} <Fatal> BaseDaemon: 9. DB::HTTPServerConnection::run() @ 0x1180c130 in /usr/bin/clickhouse
    2022.07.07 06:45:42.612503 [ 1002284 ] {} <Fatal> BaseDaemon: 10. Poco::Net::TCPServerConnection::start() @ 0x143c2dcf in /usr/bin/clickhouse
    2022.07.07 06:45:42.612514 [ 1002284 ] {} <Fatal> BaseDaemon: 11. Poco::Net::TCPServerDispatcher::run() @ 0x143c485a in /usr/bin/clickhouse
    2022.07.07 06:45:42.612527 [ 1002284 ] {} <Fatal> BaseDaemon: 12. Poco::PooledThread::run() @ 0x144f6ad9 in /usr/bin/clickhouse
    2022.07.07 06:45:42.612540 [ 1002284 ] {} <Fatal> BaseDaemon: 13. Poco::ThreadImpl::runnableEntry(void*) @ 0x144f2d6a in /usr/bin/clickhouse
    2022.07.07 06:45:42.612556 [ 1002284 ] {} <Fatal> BaseDaemon: 14. start_thread @ 0x9609 in /usr/lib/x86_64-linux-gnu/libpthread-2.31.so
    2022.07.07 06:45:42.612568 [ 1002284 ] {} <Fatal> BaseDaemon: 15. __clone @ 0x122263 in /usr/lib/x86_64-linux-gnu/libc-2.31.so
    2022.07.07 06:45:42.872116 [ 1002284 ] {} <Fatal> BaseDaemon: Checksum of the binary: 43D25E0A3B86069D3EC976E7031988C0, integrity check passed.
    2022.07.07 06:45:42.872160 [ 1002284 ] {} <Information> SentryWriter: Not sending crash report
  • WITH
    [1, 1, 1, 0, 1, 1, 1, 1, 1, 2, 1, 1, 0] AS a,
    arrayEnumerate(a) AS enum,
    [4, 10, 13] AS b
    SELECT arrayReverseSplit((x, y) -> has(b, y), a, enum)

    ┌─arrayReverseSplit(lambda(tuple(x, y), has(b, y)), a, enum)─┐
    │ [[1,1,1,0],[1,1,1,1,1,2],[1,1,0]] │
    └────────────────────────────────────────────────────────────┘
  • https://t.me/clickhouse_ru
    Моe почтение, господа , еcли y вaс ecть ж𝚎лание пoдымaть ноpмaльны𝚎 дeньжата , пишит𝚎 мне в личⲕy , дaм coв𝚎т и будет Вам счастьe . от 10 к ⲃ день peально , не напpягaясь , тpатя 2-3 чacа на pабoту⁠⁠⁠⁠⁠⁠⁠⁠⁠
  • https://t.me/clickhouse_ru
    @MichaelMaestro #278167 09:07 AM, 07 Jul 2022
    Добрый день коллеги! Как можно сделать так чтобы LIVE VIEW не обновлялся при вставке данных в таблицу, а обновлялся только по таймауту. (Понимаю что функционал экспериментальный)
  • https://t.me/clickhouse_ru
    https://pastila.nl/ можно туда лог свой скидывать
  • https://t.me/clickhouse_ru
    спасибо!
  • https://t.me/clickhouse_ru
    Как то очень странно звучит, впервые за год здесь слышу о таком, может быть это просто совпадение ?
  • https://t.me/clickhouse_ru
    это уже третий раз за месяц, не уверен что просто совпадение
  • https://t.me/clickhouse_ru
    Мне почему то кажется, что этот запрос требовательный и у вас возможно техническая проблема на сервере ? Или сервер падает только при запросе из DBeaver ?
  • https://t.me/clickhouse_ru
    @konnectrl #278173 09:27 AM, 07 Jul 2022
    Если запрос требовательный может ООМ приходит и убивает Clickhouse ?
  • https://t.me/clickhouse_ru
    @konnectrl #278174 09:28 AM, 07 Jul 2022
    А что то пишется в crash_log ?
  • https://t.me/clickhouse_ru
    @metelitsaa #278175 09:29 AM, 07 Jul 2022
    Два раза был убит DBeaver, еще один раз JDBC клиентом. В логах никаких признаков OOM нет, но есть подозрение что нам поможет фикс https://github.com/ClickHouse/ClickHouse/pull/28604
    Proper buffer flush while handling HTTP queries (avoids std::terminate) by azat · Pull Request #28604 · ClickHouse/ClickHouse

    Changelog category (leave one): Not for changelog Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md): Proper buffer flush while handling HTTP queries (av...

  • https://t.me/clickhouse_ru
    такой таблицы нет, похоже что не была создана
  • @IlIlIlIlIlIllIl #278178 09:41 AM, 07 Jul 2022
    Привет ребята)
    как можно получить номер строки в группе, не прибегая к оконкам? (наша версия клика не поддерживает их)

    Нашёл что функция rowNumberInAllBlocks() даёт номер строки, но она делает это по всему массиву данных, без привязки к группе.

    Мне нужно условно говоря такое:
    x 0
    x 1
    y 0
    z 0
    a 0
    a 1
    a 2
  • @s4851 ↶ Reply to #278163 #278179 09:46 AM, 07 Jul 2022
    Советую обновить версию клика, у меня был рестарт сервера при запросе в случае агрегата по drcimal
    Возможно у вас что-то схожее
  • https://t.me/clickhouse_ru
    Нашел настройку ограничения в документации, но вопрос всё ещё актуален, можно ли отключить совсем?
  • https://t.me/clickhouse_ru
    @OrNixx #278181 09:57 AM, 07 Jul 2022
    каким инструментом проще всего локально скопировать db1 в db2? Руками-руками понятно, создать такие же таблицы и insert select. Но может что-то умеет автоматом это делать, как mysqldump ?
  • https://t.me/clickhouse_ru
    Юзайте гугл. Читайте документацию. Смотрите kb.
    clickhouse ttl group by
    https://kb.altinity.com/altinity-kb-queries-and-syntax/ttl/ttl-group-by-examples/
  • https://t.me/clickhouse_ru
    Можно попробовать две папки с данными и структурой скопировать прям на диске.
  • https://t.me/clickhouse_ru
    @OrNixx ↶ Reply to #278183 #278184 10:39 AM, 07 Jul 2022
    с новым движком не получится
  • https://t.me/clickhouse_ru
    select col1, rn-1 from (select col1, groupArray(col1) g, arrayEnumerate(g) n from (select arrayJoin(['x','x', 'y', 'z', 'a','a','a']) col1) group by col1) array join g as col1, n as rn;
    ┌─col1─┬─minus(rn, 1)─┐
    │ a │ 0 │
    │ a │ 1 │
    │ a │ 2 │
    │ z │ 0 │
    │ y │ 0 │
    │ x │ 0 │
    │ x │ 1 │
    └──────┴──────────────┘
  • аггрегация != прореживание
  • https://t.me/clickhouse_ru
    Это одно и тоже. Есть аггрегирующая функция any
  • https://t.me/clickhouse_ru
    Ну вы можете использовать функцию https://clickhouse.com/docs/ru/sql-reference/aggregate-functions/reference/argmax , any , anyLast, argmin, anyHeavy и тогда реально получится прореживание
    argMax | ClickHouse Docs

    agg-function-argmax}

  • https://t.me/clickhouse_ru
    Возможно вам подойдёт движок graphiteMT
  • https://t.me/clickhouse_ru
    А я и не писал про аггрегацию. Я писал про группировку. Группировка != аггрегация. Но как вам выше уже написали в данном контексте это один хрен.
  • @Yarykov #278196 12:25 PM, 07 Jul 2022
    Здравствуйте, можете подсказать, у меня есть подзапрос, который возвращает array, но он может быть пустым, соответственно возникает ошибка Scalar subquery returned empty result of type Array, можно как то в таком случае сделать, чтобы subquery возвращало пустой массив?
  • @Yuskovich #278197 12:26 PM, 07 Jul 2022
    Всем, привет! Посоветуйте, пожалуйста, дашбоард в Grafana для мониторинга производительности ClickHouse
  • https://t.me/clickhouse_ru
    подзапрос в секции select или в where ... in ...(подзапрос) ?
  • @Yarykov #278199 12:34 PM, 07 Jul 2022
    я вынес его в функцию отдельную и вызываю в select да
  • https://t.me/clickhouse_ru
    не понял
    в смысле у вас всегда константа получается? в КХ нет коррелированных подзапросов.
  • @Yarykov #278201 12:44 PM, 07 Jul 2022
    если в кратце сам запрос заходит в таблицу, там есть столбец с массивами, по условию берет из нужной строки данные с этого столбца, но не всегда условие проходит, то есть запрос ничего не возвращает, откуда в последствии и берется ошибка с Scalar subquery returned empty result of type Array. То есть когда условие не проходит, нужно чтобы возвращалось не ничего, а пустой массив
  • https://t.me/clickhouse_ru
    типа у вас

    select * where ['a'] = (select [''] where 0);
    DB::Exception: Scalar subquery returned empty result of type Array(String) which cannot be Nullable

    ?

    думаю либо select * where ['a'] = (select [''] where 0 union all select []);
    либо select * where toString(['a']) = (select toString(['a']) where 1);
  • @Yarykov #278203 12:49 PM, 07 Jul 2022
    create function foo as (bar) -> (select [] where bar);
    select foo(0)
  • https://t.me/clickhouse_ru
    думаю либо select * where ['a'] = (select [''] where 0 union all select []);
    либо select * where toString(['a']) = (select toString(['a']) where 1);
  • @Yarykov #278205 12:52 PM, 07 Jul 2022
    Спасибо помогло
  • огонь спасибо!
  • https://t.me/clickhouse_ru
    @artilligence #278208 01:25 PM, 07 Jul 2022
    Господа, добрый день! Подскажите, пожалуйста, кто уже в проде использует clickhouse-keeper. Насколько он production-ready? Есть какие- то проблемы критичные?
  • @kurbat #278209 01:36 PM, 07 Jul 2022
    Добрый день! Кто-нибудь сталкивался с вопросом замены ноды в шарде новым чистый сервером СН, используя CH-Keeper?
    Как подтянуть в него все базы с таблицами, при наличии конфигов со старой ноды?
  • https://t.me/clickhouse_ru
    @Romkart #278210 01:38 PM, 07 Jul 2022
    Received exception from server (version 22.3.6):
    Code: 289. DB::Exception: Received from 127.0.0.1:9000. DB::Exception: Replica doesn't have part 20220620_34356_34356_0 which was successfully written to quorum of other replicas

    вот только на этой таблице утановлено TTL event_date + toIntervalDay(5)

    естественно партиции почти месячной давности нигде нет, это бага в select_sequential_consistency или я чето делаю не так ?
  • https://t.me/clickhouse_ru
    ALTER TABLE xxx DROP PARTITION ID '20220620'
  • https://t.me/clickhouse_ru
    сейчас в system.parts нет тагкого id (partition_id = '20220620')
  • https://t.me/clickhouse_ru
    суть не про system.parts а про состояние в ZK
  • https://t.me/clickhouse_ru
    нудопустим, одну грохнул, но их там за каждый день меясца походу ,
  • https://t.me/clickhouse_ru
    а ClickHouse Keeper тут вообще ни при чем.
    базы и таблицы в sql файлах в /metadata
  • @kurbat #278216 01:48 PM, 07 Jul 2022
    Т.е. на новой ноде создать базы, со старой ноды стянуть метадату, и поправить в ней uuid'ы бд на новые?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    так что это бага ? неуж то я первый кто ttl + select_sequential_consistency
    использует
  • https://t.me/clickhouse_ru
    Бага,

    Бывает похожее, ток без select_sequential_consistency
    Просто парты в system.replication_queue висят вечно
  • https://t.me/clickhouse_ru
    replication_queue сейчас пустая
  • https://t.me/clickhouse_ru
    Parts consistency

    Check if there are blocks missing SELECT database, table, partition_id, ranges.1 AS previous_part, ranges.2 AS next_part, ranges.3 AS previous_block_number, ranges.4 AS next_block_number, range(toUInt64(previous_block_number + 1), toUInt64(next_block_number)) AS missing_block_numbers FROM ( WITH arrayPopFront(groupArray(min_block_number) AS min) AS min_adj, arrayPopBack(groupArray(max_block_number) AS max) AS max_adj, arrayFilter((x, y, z) -> (y != (z + 1)), arrayZip(arrayPopBack(groupArray(name) AS name_arr), arrayPopFront(name_arr), max_adj, min_adj), min_adj, max_adj) AS missing_ranges SELECT database, table, partition_id, missing_ranges FROM ( SELECT * FROM system.

  • https://t.me/clickhouse_ru
    0 rows in set.

    на обоих репликах
  • https://t.me/clickhouse_ru
    и это странно , сейчас запрос из таблицы все равно валится , но на очередной случайно партиции котооую я не удалил руками, я шутк 7 удалил, но там еще с десяток примерно должно остатсья по моим прикидкам
  • https://t.me/clickhouse_ru
    т.е. в system.parts таких партиций нет и в зукипере их тоже нет в replica_path,'/parts/' ?
  • https://t.me/clickhouse_ru
    я пытаюсь понять, может этот запрос почему то в моей конифгурации не подходит , сейчяас подумаю
  • https://t.me/clickhouse_ru
    select concat(path,'/',name) as p_path, ctime, mtime
    from system.zookeeper where path in (XXXX)

    говорит что последняя партиция от 20220703 , сегодя 7 число , 7 -5 ~ 3 (5 ttl )
  • @IlIlIlIlIlIllIl #278228 02:12 PM, 07 Jul 2022
    Подскажите, пожалуйста, как реализовать сумму по такому условию.
    Есть ряд недель и атрибут, который определяет было на этой неделе событие или не было (1 или 0).
    Так вот для каждой недели нужно посчитать как долго (т.е. сколько недель подряд) продолжается это событие. Этакая нарастающая сумма, с условием прерывания.
    На скрине немного понятнее отобразил.
    Смотрю в сторону функций работающих с array, но пока ничего работающего не обнаружил.

    Может кто-то уже решал подобную задачу?) решить нужно без использования оконок, наш клик их не поддерживает
  • https://t.me/clickhouse_ru
    все четко , записи полностью совпадают после дние две
    20220703_0_12328_3946
    20220703_12329_19516_1861

    в обоих источниках
  • https://t.me/clickhouse_ru
    пока падает вот от такого запроса
    DROP DATABASE IF EXISTS zookeeper_bench SYNC;
    CREATE DATABASE zookeeper_bench;
    CREATE TABLE zookeeper_bench.zookeeper_bench (p UInt64, x UInt64)
    ENGINE=ReplicatedSummingMergeTree('/clickhouse/tables/{database}/{table}', '{replica}' )
    ORDER BY tuple()
    PARTITION BY p
    SETTINGS in_memory_parts_enable_wal=0,
    min_bytes_for_wide_part=104857600,
    min_bytes_for_compact_part=10485760,
    parts_to_delay_insert=1000000,
    parts_to_throw_insert=1000000,
    max_parts_in_total=1000000;

    INSERT INTO zookeeper_bench.zookeeper_bench SELECT rand(1)%100, rand(2) FROM numbers(100000)
    SETTINGS max_block_size=1,
    min_insert_block_size_bytes=1,
    min_insert_block_size_rows=1,
    insert_deduplicate=0,
    max_threads=128,
    max_insert_threads=128;

    но я последний 22.6 не пробовал еще...
  • 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
    там еще /quorum есть
  • https://t.me/clickhouse_ru
    чуть поясни
  • https://t.me/clickhouse_ru
    ну тут получается что нигде нету информации про 20220620_34356_34356_0
    откуда КХ берет это?
    так вот в zk у таблицы есть подраздел /quorum и возможно там есть про 20220620_34356_34356_0 или в /replica/queueu
  • https://t.me/clickhouse_ru
    да , нашел упоминание в одном месте,
  • https://t.me/clickhouse_ru
    это я загнал зукипер в файл и поискал по тексту
    SELECT * FROM system.zookeeper INTO OUTFILE '/var/log/clickhouse-server/zz.json' FORMAT JSON SETTINGS allow_unrestricted_reads_from_keeper=1
  • https://t.me/clickhouse_ru
    Удачи)
  • https://t.me/clickhouse_ru
    @gqpbar #278244 03:02 PM, 07 Jul 2022
    Всем привет!
    У меня кластер из 3 х узлов. Каждая нода начала падать и снова запускаться из-за нехватки оперативной памяти, скорее всего это вызвано мутациями одной из таблиц. Пытался пофиксить такой командой: KILL MUTATION WHERE database = 'default' AND table = 'adv_company_stat', но запрос просто зависал, после нода крашилась.
    Еще утром удалили партицию в одной таблице, это вызвало ошибку(на срине), из-за нее ноды перестали запускаться.
    Эту ошибку пытался пофиксить по этому гайду: https://kb.altinity.com/altinity-kb-setup-and-maintenance/x-rows-of-y-total-rows-in-filesystem-are-suspicious/
    Первый шаг гайда при старте вызывал еще ошибки(один, два)

    Как можно восстановить кластер?
  • https://t.me/clickhouse_ru
    @hiko098L #278245 03:02 PM, 07 Jul 2022
    Др
  • https://t.me/clickhouse_ru
    @hiko098L #278246 03:03 PM, 07 Jul 2022
    друзья есть вопрос . вот у меня приходят логи от разных пользователей с датой мне надо получить только тех кто был за определенное время например за последние 7 дней
    SELECT me1.device_id AS device_id
    FROM ms_etl.log me1
    WHERE me1.created >= toDateTime('2022-06-30 00:00:00')
    AND me1.created < toDateTime('2022-07-07 00:00:00')
    GROUP BY me1.device_id
    LIMIT 10000;

    но мне надо еще отфильтровать тех кого небыло до этого времени и получить только новеньких, только тех кто первый раз за нужную неделю прислал лог
    как это правильно сделать ?
  • https://t.me/clickhouse_ru
    AND me1.device_id not in (SELECT me1.device_id FROM WHERE DATE(me1.created) < '2022-06-30' GROUP BY me1.device_id)
  • https://t.me/clickhouse_ru
    @hiko098L #278248 03:09 PM, 07 Jul 2022
    а вот у меня тогда вопрос. вот этот подзапросный select он ка кто оптимизируется в кликхаусе ? если допустим данных станет очень много ?
  • https://t.me/clickhouse_ru
    Пасибо большое , идею я понял
  • https://t.me/clickhouse_ru
    @ngorskii #278251 03:25 PM, 07 Jul 2022
    Кто знает, на какие цели КХ расходует ОЗУ в фоне?
  • https://t.me/clickhouse_ru
    @ngorskii #278252 03:27 PM, 07 Jul 2022
    ситуация вышла, что в фоне КХ съела 128 гб озу и один из запросов на апдейт её разложил и побил данные, до этого апдейтов не было, да и этот на 2к записей
  • https://t.me/clickhouse_ru
    мержи, мутации. словари
    primary.idx в памяти

    system.* таблички флашатся (но тут не много памяти) раз в 7.5 секунд

    https://kb.altinity.com/altinity-kb-setup-and-maintenance/altinity-kb-who-ate-my-memory/
  • https://t.me/clickhouse_ru
    @392734528 #278254 03:28 PM, 07 Jul 2022
    @konnectrl
    Привет!
    а чего мне никто не ткнул в Nested ?
    Этож по идее и есть решение с массивами json
    просто берем описываем JSONы как Nested структуры и парсим туда данные.
    А то я уже решил бить каждый json как отдельную таблицу и связывать все данные между собой сквозным идентификатором.
    Это тоже как бы решение, но можно все в одну таблицу запихать, откуда выборки будут дешевле стоить из-за отсуствия JOIN
  • https://t.me/clickhouse_ru
    @kizimenko #278255 03:39 PM, 07 Jul 2022
    А может кто встречал клиент под golang, который умеет в mTLS?
  • https://t.me/clickhouse_ru
    Nested это синтаксический сахар над массивами
  • https://t.me/clickhouse_ru
    IMHO mTLS это обычный TLS клиент просто с сертификатами и custom CA

    смотрим clickhouse-go tls настройки как прописываются
  • https://t.me/clickhouse_ru
    Стандартный клиент в хендшейке передает логин и пассворд, из-за этого авторизация фейлится
  • https://t.me/clickhouse_ru
    странно... вы хотели авторизоваться чреез <ssl_certificate> в <users> ?
  • https://t.me/clickhouse_ru
    Ага
  • https://t.me/clickhouse_ru
    а пустой логин и пароль пустой нельзя передать чтоли?
  • https://t.me/clickhouse_ru
    Можно, но не работает. Пробовали
  • https://t.me/clickhouse_ru
    тогда задайте вопрос к clickhouse-go
    покажите что стандартный clickhouse-client коннектится
    а сниппет golang кода нет

    там сейчас clickhouse.inc поддерживает этот клиент официально и есть мантейнер, так что должны ответить
  • https://t.me/clickhouse_ru
    @kizimenko #278264 03:52 PM, 07 Jul 2022
    Понял, так и сделаю
  • https://t.me/clickhouse_ru
    Ожидалось, что все кто здесь задаёт вопросы в документации прочитали хотя бы какие типы есть в кликхаусе и есть хотя бы базовое знание sql.
  • https://t.me/clickhouse_ru
    ну в моем случае это было бы решением ) просто не обратил внимание на этот тип сразу ( моя вина конечно
  • https://t.me/clickhouse_ru
    @konnectrl #278268 04:12 PM, 07 Jul 2022
    Я все таки решаю, это не решение вопроса
  • @githubreleases_bot #278269 b o t 04:48 PM, 07 Jul 2022
    ClickHouse/ClickHouse tagged: v22.3.8.39-lts
    Link: https://github.com/ClickHouse/ClickHouse/releases/tag/v22.3.8.39-lts
    Release notes:
    Release v22.3.8.39-lts
  • @ArtFix13 #278270 04:50 PM, 07 Jul 2022
    как можно настроить в ClickHouse engine Kafka() смещение группы консьюмеров на нужный offset?
  • https://t.me/clickhouse_ru
    @konnectrl #278271 04:51 PM, 07 Jul 2022
    А когда презентация будет 8 версии?
  • https://t.me/clickhouse_ru
    @konnectrl #278272 04:52 PM, 07 Jul 2022
    Блин, это 3.8
  • https://t.me/clickhouse_ru
    это в кафке делается. гуглите kafka move offset
  • https://t.me/clickhouse_ru
    а еще и тип Map есть, туда можно key/value сложить
  • @andrey45263 #278279 06:46 PM, 07 Jul 2022
    Добрый день. Проблема с макросом,
    select getMacro('s3_store'); —-> minio-01:9000
    но после выполнения след. DDL:

    CREATE TABLE IF NOT EXISTS dwh.s3_raw_events
    (
    json String
    ) ENGINE = S3('http://{s3_store}/events/*.gz', 'JSONAsString', 'gz');

    почему то этот адрес не провайдит и при вызове
    select * from dwh.s3_raw_events ;

    выдает
    SQL Error [499] [07000]: Code: 499. DB::Exception: Could not list objects in bucket 'events' with prefix '',
    S3 exception: ``, message: 'Invalid DNS Label found in URI host'. (S3_ERROR) (version 22.2.2.1)
    , server ClickHouseNode(addr=http:localhost:8123, db=default)@1720913860

    DOCKER image clickhouse/clickhouse-server:22.2.2.1
    macros.xml:
    <clickhouse>
    <macros>
    <s3_store from_env="S3_STORE_HOST_PORT"/>
    <replica from_env="REPLICA"/>
    <shard from_env="SHARD"/>
    </macros>
    </clickhouse>

    Благодарен всем за любые идеи куда копать.
  • https://t.me/clickhouse_ru
    там макросы не работают.

    в 22.6 можно сделать такой фокус через named_collections
  • не работают в s3 ?
    странно, в Kafka движке я такой фокус уже 2 года (наверно я тут наврал, скорее около года, раньше хардкод был) как использую.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @den_crane #278283 06:53 PM, 07 Jul 2022
    про кафку это странно
  • спасибо большое.
  • https://t.me/clickhouse_ru
    Уже заюзал, нашел подходящие данные чтобы туда засыпать. Спасибо )
  • @infisamk #278286 08:34 PM, 07 Jul 2022
    Ребята! Подскажите, пожалуйста, EXPLAIN ESTIMATE почему может не работать?
    Code: 62. DB::Exception: Syntax error: failed at position 25 ('TabSeparatedWithNamesAndTypes') (line 2, col 8): TabSeparatedWithNamesAndTypes. Expected one of: token, Dot, Equals. (SYNTAX_ERROR) (version 22.3.7.28 (official build))
  • https://t.me/clickhouse_ru
    из какого приложения?
  • @infisamk #278288 08:40 PM, 07 Jul 2022
    Из PhpStorm
  • Он работает через JDBC
  • https://t.me/clickhouse_ru
    такой запрос тоже ? EXPLAIN ESTIMATE select 1

    похоже что оно испортило запрос
  • Хм. А все остальные EXPLAIN при этом отрабатывают нормально...
  • Простой запрос проходит - EXPLAIN ESTIMATE select 1
  • @infisamk #278293 08:45 PM, 07 Jul 2022
    В клиенте та же ошибка. Чем-то ему мой запрос не нравится
  • @infisamk #278294 08:56 PM, 07 Jul 2022
    Вроде нашел, что ему не нравится. Нужно select сразу после ESTIMATE писать, а не со следующей строки.
  • @infisamk #278295 08:58 PM, 07 Jul 2022
    Но это только в IDE. В клиенте все таки нормально работает EXPLAIN. Получается, что баг IDE
  • https://t.me/clickhouse_ru
    возможно это баг в старом jdbc драйвере.
  • https://t.me/clickhouse_ru
    @392734528 #278297 09:51 PM, 07 Jul 2022
    Ребят а можно чуть подробностей что за экспериментальный формат? Вроде ничего криминального не прошу сделать.

    ServerException: Code: 44.
    DB::Exception: Cannot create table with column 'some_dict_field' which type is 'Map(String,Nullable(UInt32))' because experimental Map type is not allowed. Set 'allow_experimental_map_type = 1' setting to enable. Stack trace:
  • https://t.me/clickhouse_ru
    select version();
  • https://t.me/clickhouse_ru
    '21.3.20.1'
  • https://t.me/clickhouse_ru
    Старовата кляча, нужно новую запрягать :)
  • https://t.me/clickhouse_ru
    @392734528 #278302 09:59 PM, 07 Jul 2022
    неужто бедовый контейнер подняли (
    ОК завтра переделаем.
    Этот норм? 22.3.2.2 (17 марта 2022)
  • https://t.me/clickhouse_ru
    это глюкодром, берите 22.3.8.39
  • https://t.me/clickhouse_ru
    @392734528 #278304 10:01 PM, 07 Jul 2022
    благодарю
  • Не смог разобраться, как обновить версию драйвера в DataGrip, который используется в мой IDE. Придется жить со старой версией.
  • 08 July 2022 (185 messages)
  • https://t.me/clickhouse_ru
    @5495774903 #278308 05:01 AM, 08 Jul 2022
    👩🏽‍💻МОМЕНТАЛЬНОE ТPУДOУСТPОЙCТВО👨🏽‍💻

    💢PАБOТA C ЛУЧШИМИ 💢

    ⭕️Рабoтaя c нaми Вы полyчaетe:
    🔴Зapплaтa oт 50 000p в недeлю
    🔴Выплaты paз в 3 дня
    🔴Кaрьepный pocт
    🔴Индивидyaльный гpaфик
    🔴Бecплaтнoе обучeниe
    🔴Oплaчиваeмaя стaжиpoвкa
    🔴Помoщь с перeeздoм еcли нyждаeтеcь
    🔴Пoддeржка 24/7

    ⭕️Тpебoвaния:
    🔴Жeлание зapaбaтывать бoльшие дeньги
    🔴Имeть смapтфон для paботы

    ПOДРOБНEЕ ЛC или контакты смoтрите в моём прoфилe.
  • Забыли написать что зароботок в интрнете и картинку выслать с отрывными листами
  • https://t.me/clickhouse_ru
    @5495774903 #278310 05:06 AM, 08 Jul 2022
    👩🏽‍💻МOМЕНТAЛЬНОE ТPУДOУCТРОЙCТВО👨🏽‍💻

    💢PAБOТА C ЛУЧШИМИ 💢

    ⭕️Рaбoтая с нaми Вы полyчaетe:
    🔴Зapплaтa oт 50 000p в недeлю
    🔴Выплaты рaз в 3 дня
    🔴Кapьеpный pоcт
    🔴Индивидуaльный грaфик
    🔴Бeсплaтнoе обучeниe
    🔴Оплaчиваемaя стaжирoвка
    🔴Пoмoщь c пеpеeздoм еcли нyждaетеcь
    🔴Пoддepжкa 24/7

    ⭕️Трeбoвания:
    🔴Желaние зapaбатывaть бoльшие дeньги
    🔴Имeть cмapтфoн для рaбoты

    ПOДРOБНЕE ЛС или контaкты смотрите в моём профилe.
  • это бот, лочьте его
  • https://t.me/clickhouse_ru
    @Krisantis #278313 05:26 AM, 08 Jul 2022
    Подскажите, пожалуйста
    Если мне одну и ту же таблицу нужно приджойнить два раза по разным ключам, то я просто делаю два джойна? Нету никакого трюка для оптимизации памяти и времени?
  • https://t.me/clickhouse_ru
    Ну наверное можно сделать, это как-нибудь через массивы, но это не точно
  • https://t.me/clickhouse_ru
    А можно пример или намного раскрыть идею? Не совсем понял
  • https://t.me/clickhouse_ru
    Ну как я понял вы хотите с помощью разных выборок убрать данные
  • https://t.me/clickhouse_ru
    @konnectrl #278317 05:38 AM, 08 Jul 2022
    Вы можете это сделать собрав требуемые столбцы в массив тюплов groupArray((column_1,column_2, и т.д.)) и затем сделать на массив arraySort(x->x.1 = 10 , array)
  • https://t.me/clickhouse_ru
    А потом полученый результат массива, обратно превратить строчки через arrayJoin
  • https://t.me/clickhouse_ru
    Есть две таблица, первый раз я к t1 джойню t2 по col1, и в селект вывожу col2, а потом к полученному делать ещё раз джойн t2 по col3, и добавляю в селект col4
  • https://t.me/clickhouse_ru
    @konnectrl #278320 05:49 AM, 08 Jul 2022
    SELECT * FROM t2 WHERE t2.id not in (select t1.id FROM t1)
    AND t2.id_2 not in (select t2.id_2 from t2)
  • https://t.me/clickhouse_ru
    @konnectrl #278321 05:49 AM, 08 Jul 2022
    Вот так примерно, как я понял можно сделать
  • https://t.me/clickhouse_ru
    Мы не поняли друг друга, моя цель не фильтрация.
    Стандартно мой запрос выглядит так:
    select
    t1.*,
    t2_1.col_1,
    t2_2.col_2
    from
    table1 as t1
    left join
    table2 as t2_1
    on
    t1.a = t2_1.a
    left join
    table2 as t2_2
    on
    t1.b = t2_2.b
    Вопрос лишь в том, можно ли это оптимизировать?
  • https://t.me/clickhouse_ru
    @gqpbar #278324 06:05 AM, 08 Jul 2022
    Всем привет!
    У меня кластер из 3 х узлов. Каждая нода начала падать и снова запускаться из-за нехватки оперативной памяти, скорее всего это вызвано мутациями одной из таблиц. Пытался пофиксить такой командой: KILL MUTATION WHERE database = 'default' AND table = 'adv_company_stat', но запрос просто зависал, после нода крашилась.
    Еще утром удалили партицию в одной таблице, это вызвало ошибку(на срине), из-за нее ноды перестали запускаться.
    Эту ошибку пытался пофиксить по этому гайду: https://kb.altinity.com/altinity-kb-setup-and-maintenance/x-rows-of-y-total-rows-in-filesystem-are-suspicious/
    Первый шаг гайда при старте вызывал еще ошибки(один, два)

    Как можно восстановить кластер?
  • https://t.me/clickhouse_ru
    Для начала вернуть к жизни киперы
    Потому что согласно вашим логам, они у вас не работают
  • https://t.me/clickhouse_ru
    @gqpbar ↶ Reply to #278328 #278329 06:30 AM, 08 Jul 2022
    А как это можно сделать?
  • https://t.me/clickhouse_ru
    @lulu18889 #278331 07:17 AM, 08 Jul 2022
    There is no life that does not progress, only people who do not make progress!
  • https://t.me/clickhouse_ru
    @ployd #278333 07:42 AM, 08 Jul 2022
    У кого-то был опыт натягивания Distributed таблицы поверх system (например, system.parts)?
    Хочется получать инфу со всех нод в кластере (в графане), имея доступ только к одной из них.
  • https://t.me/clickhouse_ru
    /report
  • https://t.me/clickhouse_ru
    Я обычно делаю просто cluster([название кластера], system.*). Но это для разовых операций хорошо, на постоянное пользование в графане может не подойти.

    Если у вас кластер с репликацией, то для использования в энжине дистрибутед надо будет создать рядышком конфигурацию кластера без репликации, чтобы КХ правильно собирал данные.
  • https://t.me/clickhouse_ru
    @ployd ↶ Reply to #278337 #278338 07:55 AM, 08 Jul 2022
    Кластер с репликацией, но system таблицы без. Для чего нужен будет кластер без репликации?
    А за cluster(..., ...) спасибо, поиграюсь
  • Если кому интересно, нашёл решение без оконок

    with t as (
    select 202151 as yyyyww, 1 as foo
    union all select 202152 as yyyyww, 1 as foo
    union all select 202153 as yyyyww, 1 as foo
    union all select 202201 as yyyyww, 1 as foo
    union all select 202202 as yyyyww, 0 as foo
    union all select 202203 as yyyyww, 0 as foo
    union all select 202150 as yyyyww, 0 as foo
    )
    ,t1 as (
    select *, toInt64(rowNumberInAllBlocks())+1 as row_num
    from (select * from t order by yyyyww) tt
    order by yyyyww
    )
    select m.yyyyww, m.foo
    , if(m.foo = 1, max(case when t_min.foo = 1 then t_min.row_num else 0 end)- max(case when t_min.foo = 0 then t_min.row_num else 0 end) - 1, 0) as t
    from t1 as m
    , t1 as t_min
    where t_min.row_num <= m.row_num
    group by m.yyyyww, m.foo
    order by m.yyyyww
  • https://t.me/clickhouse_ru
    cluster суть то же, что distributed, просто коннекты могут неоптимально открываться.

    Если делать запросы к системным таблицам (которые не реплицированы, и на каждой ноде существуют в единственном экземпляре) с параметрами реплицированного кластера, то КХ будет путаться и выдавать нестабильные результаты, считая, что данные пришедшие с сервера-1 являются сразу же и зеркалом данных сервера-2 и ждать отклика уже не нужно.

    Т.к. уже есть конфиг реплицированного кластера, можно это самому увидеть, передав в параметры cluster и позапускав один и тот же какой-нибудь простой запрос несколько раз (10-20-30).
  • https://t.me/clickhouse_ru
    @ployd ↶ Reply to #278340 #278341 08:04 AM, 08 Jul 2022
    Ага, ну так есть clusterAllReplicas, он вроде путаться не должен.
  • https://t.me/clickhouse_ru
    Да, я про то, какой кластер использовать в энжине дистрибутед таблицы.
  • https://t.me/clickhouse_ru
    @zak1996lesn #278343 08:24 AM, 08 Jul 2022
    Ребят, привет! Возможно, вопрос лёгкий, но как мне в ClickHouse:
    Array(Array(String)) -> arrayConcat(Array(Array(String))) -> Array(String)
  • https://t.me/clickhouse_ru
    arrayFlatten ?
  • https://t.me/clickhouse_ru
    спасибо, извиняюсь, проглядел в доках
  • https://t.me/clickhouse_ru
    @A_Matyukhin #278347 08:36 AM, 08 Jul 2022
    Коллеги, добрый день. Использую engine = Kafka. Хочу получить виртуальные поля _offset , _partition, _timestamp_ms. Без проблем получил _offset , _partition, а вот с , _timestamp_ms проблема- поле null. Думал не правильный тип, пробовал загружать в DateTime, DateTime64, DateTime64(3), DateTime64(6), DateTime64(9), UInt64, всегда null. Прошу подсказать, куда смотреть, где искать. Спасибо
  • https://t.me/clickhouse_ru
    @ivozyba #278348 08:49 AM, 08 Jul 2022
    добрый день, кто нибудь знает как сделать substring для формата времени? (условно 2020-01-01 23:59:59 разделить по пробелу )
  • https://t.me/clickhouse_ru
    @ivozyba #278349 08:49 AM, 08 Jul 2022
    чтобы было только время
  • https://t.me/clickhouse_ru
    splitbychar(' ','2020-01-01 23:59:59')[-1] ?
  • https://t.me/clickhouse_ru
    @ivozyba #278351 08:53 AM, 08 Jul 2022
    splitByChar(' ', toDateTime(timestamp))
  • https://t.me/clickhouse_ru
    @ivozyba #278352 08:54 AM, 08 Jul 2022
    пытаюсь так сделать
    Exception: Illegal type DateTime of second argument of function splitByChar. Must be String
  • https://t.me/clickhouse_ru
    @AlexTru_1 #278353 08:55 AM, 08 Jul 2022
    Привет! подскажите плиз, после удаления колонки на кластерном кх получил ошибку

    SQL Error [1002]: ClickHouse exception, code: 1002, host: 10.8.2.222, port: 8123; Code: 517. DB::Exception: Metadata on replica is not up to date with common metadata in Zookeeper. It means that this replica still not applied some of previous alters. Probably too many alters executing concurrently (highly not recommended). You can retry this error. (CANNOT_ASSIGN_ALTER) (version 22.3.4.20 (official build))

    нужно править данные в зк?
  • для этого обычно используют formatDateTime
  • https://t.me/clickhouse_ru
    @nebaliidae_1950 #278355 09:01 AM, 08 Jul 2022
    Хотитe пoлучить новую профeссию?

    Стaнь дизaйнeрoм интеpьера c нуля дo экспepтa зa 7-12 мecяцeв и нaчни зapaбaтывaть oт 100.000₽!

    Наша Акaдeмия дизайна интеpьерa "MARSO ACADEMY" открывает запись нa бесплaтную пеpcoнaльную консультацию o пpoфеcсии👩🏻‍💻

    Этo будeт 100% пoлeзнo, ecли вы:
    → xотитe освоить востребованную профессию и зарабатывать на ней
    → будущий дизайнep интеpьeра, котoрый мeчтaет о твoрчecкoй каpьере, но cомнeваетcя в своих cилаx и не знает с чем начать
    → давно мечтаетe рaскрыть свой пoтенциал в дpугой cферe
    → хотите заниматься любимым делом и зарабатывать на этом

    Какoй рeзультат вы пoлучите?
    - отвeты на интepесующие вопpoсы o профeсcии, oбучении и пeрспективaх
    - поймете с чего начать и как реализовываться
    - поймете подходит ли вам эта профессия

    ⏳ Количеcтво меcт oгрaничeно! Зaпишитесь нa конcультaцию пpямo ceйчac и зaдайтe интересующие вопpocы o пpoфeссии ↓

    https://marsoclub.ru/
  • https://t.me/clickhouse_ru
    спасибо!
  • https://t.me/clickhouse_ru
    Всем привет!
    у меня такая же ошибка выходит, у вас получилось это решить?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @andreysenko #278362 09:59 AM, 08 Jul 2022
    здравствуйте.
    есть коллекция, в нее идут вставки,
    используя smi2/phpclickhouse
    и метод insertAssocBulk.

    примерно такой структуры:
    [
    {"data_id": 1, "sensor_a": 10, "sensor_b": 12},
    {"data_id": 2, "sensor_a": 14, "sensor_c": 87}
    ]

    обе строки вставляются, но приходит сообщение, что

    Fields not match: data_id,sensor_a,sensor_b and data_id,sensor_a,sensor_c on element 1

    все sensors_* - описаны Nullable(UInt8)

    все строки что, должны быть одинаковой структуры?..
  • @sergeyhortin #278364 10:13 AM, 08 Jul 2022
    Apache Superset BI

    Apache Superset BI - это современное корпоративное веб-приложение для бизнес-аналитики. Это быстрое, легкое, интуитивно понятное приложение с множеством опций, позволяющих пользователям с любым набором навыков легко исследовать и визуализировать данные.

  • https://t.me/clickhouse_ru
    @501846356 #278365 10:31 AM, 08 Jul 2022
    Добрый день! Подскажите пожалуйста, можно ли в моем случае обойтись без вложенных подзапросов? (Понимаю, что нет, но вдруг есть какая специфическая Кликовая фича, потому и беспокою)

    select
    column1,
    sum(column2) as smm2, max(smm2) / smm2 as result
    from
    table1
    group by
    column1;

    Спасибо заранее за ответ...
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    возможно ваш брокер такие сообщения создает, можно из кафки посмотреть
  • https://t.me/clickhouse_ru
    formatDateTime
  • https://t.me/clickhouse_ru
    Спасибо!
  • https://t.me/clickhouse_ru
    иногда помогает detach / attach table
  • https://t.me/clickhouse_ru
    а где тут подзапрос?
  • https://t.me/clickhouse_ru
    там типа нужен max(smm2)
  • https://t.me/clickhouse_ru
    так это всего лишь моя "хотелка", так оно естественно не работает
  • https://t.me/clickhouse_ru
    select g, sum(number) sm, max(sm) over () mx, max(sm) over() / sm res from (select number%5 g, number from numbers(10)) group by g;
    ┌─g─┬─sm─┬─mx─┬────────────────res─┐
    │ 0 │ 5 │ 13 │ 2.6 │
    │ 1 │ 7 │ 13 │ 1.8571428571428572 │
    │ 2 │ 9 │ 13 │ 1.4444444444444444 │
    │ 3 │ 11 │ 13 │ 1.1818181818181819 │
    │ 4 │ 13 │ 13 │ 1 │
    └───┴────┴────┴────────────────────┘

    проверял в суперсвежем КХ
    похоже будет 20 июля доступно
  • https://t.me/clickhouse_ru
    на моем version 20.3.10.75 Syntax error: failed at position...
  • Судя по коду класса, берется список полей из первой строки, а затем собирается массив строк со значениями. Поэтому нет, не получится так сделать
  • https://t.me/clickhouse_ru
    ну естественно, у вас вообще нет window functions, они появились в 21.4, вам можно через массивы сделать
    запрос в таком виде как я написал будет работать только в 22.7
  • https://t.me/clickhouse_ru
    @501846356 #278378 11:05 AM, 08 Jul 2022
    Понял, теперь все ясно :( Спасибо!!!
  • https://t.me/clickhouse_ru
    select g, sm, mx, res from (select groupArray( (g, sm) ) ga, max(sm) mx, arrayMap( i-> mx/i.2, ga) r from(select g, sum(number) sm from (select number%5 g, number from numbers(10)) group by g)) array Join ga.1 as g, ga.2 as sm, r as res;
    ┌─g─┬─sm─┬─mx─┬────────────────res─┐
    │ 0 │ 5 │ 13 │ 2.6 │
    │ 1 │ 7 │ 13 │ 1.8571428571428572 │
    │ 2 │ 9 │ 13 │ 1.4444444444444444 │
    │ 3 │ 11 │ 13 │ 1.1818181818181819 │
    │ 4 │ 13 │ 13 │ 1 │
    └───┴────┴────┴────────────────────┘
  • https://t.me/clickhouse_ru
    Спасибо.
  • https://t.me/clickhouse_ru
    @392734528 #278381 11:20 AM, 08 Jul 2022
    Извините чот не пойму что за галюцинации при вставке Nested?

    client.execute(
    """CREATE TABLE test(
    id FixedString(36) NOT NULL,
    time DateTime64(3, "Europe/Moscow") NOT NULL,
    data Nested(
    ip IPv4,
    name_en String,
    code String)
    )
    ENGINE = Memory
    """
    )
    client.execute("""
    Insert into test (id,
    time,
    data.ip,
    data.name_en,
    data.code)
    format Values""",
    ('00f0d86e-1234-12ed-1d11-40feb884ac00',
    1655672463987,
    ['192.168.0.1', 'Some name', 'KK', 999999, 'QWEEW'])
    )
    ValueError: Expected 5 columns, got 36
    Где оно 36 видит?
  • https://t.me/clickhouse_ru
    Попробуйте на примере из документации либо из тестов в GitHub
  • https://t.me/clickhouse_ru
    каждое поле nested задается как массив

    ['192.168.0.1', 'Some name', 'KK', 999999, 'QWEEW'] -- это неправильно

    36 это скорее всего питон во что-то странное все преобразовал
  • https://t.me/clickhouse_ru
    @dmatw #278385 11:43 AM, 08 Jul 2022
    что то я не понимаю с джоинами, подскажите что не так, порядок id совподает в 2 таблицах, но при соединение всем строкам кроме 1 добавляется группа new
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @dmatw #278388 11:44 AM, 08 Jul 2022
    вот результат
  • https://t.me/clickhouse_ru
    Insert into test Values
    ('00f0d86e-1234-12ed-1d11-40feb884ac00',
    1655672463987,
    ['192.168.0.1'], ['Some name'], ['KK'])

    select * from test;

    ┌─id───────────────────────────────────┬────────────────────time─┬─data.ip─────────┬─data.name_en──┬─data.code─┐
    │ 00f0d86e-1234-12ed-1d11-40feb884ac00 │ 2022-06-19 21:01:03.987 │ ['192.168.0.1'] │ ['Some name'] │ ['KK'] │
    └──────────────────────────────────────┴─────────────────────────┴─────────────────┴───────────────┴───────────┘
  • https://t.me/clickhouse_ru
    @dmatw #278390 11:44 AM, 08 Jul 2022
    а должно так
  • https://t.me/clickhouse_ru
    @dmatw #278391 11:44 AM, 08 Jul 2022
    подскажите пожалуйста в чем ошибка
  • https://t.me/clickhouse_ru
    @konnectrl #278393 11:46 AM, 08 Jul 2022
    Трудно понять, что вы хотели получить и что получили.
  • https://t.me/clickhouse_ru
    @dmatw ↶ Reply to #278393 #278395 11:51 AM, 08 Jul 2022
    Я хочу соединить 2 таблицы, по Id, в первой таблице информация по платежам, во второй инфа по группам Id
  • https://t.me/clickhouse_ru
    @dmatw #278396 11:51 AM, 08 Jul 2022
    Old new
  • https://t.me/clickhouse_ru
    @dmatw #278397 11:51 AM, 08 Jul 2022
    При соединении у меня ко всем строкам кроме верхний соединяется только группа new
  • почем должно так? у вас на 1 ключ много записей, как понять какую запись выбрать? никак. Приджойнилась первая попавшаяся, new
  • https://t.me/clickhouse_ru
    @dmatw #278399 11:52 AM, 08 Jul 2022
    А можете подсказать запросик
  • https://t.me/clickhouse_ru
    any присоединяет любую
  • https://t.me/clickhouse_ru
    @dmatw #278401 11:52 AM, 08 Jul 2022
    По которому можно соединить всю эту тему
  • https://t.me/clickhouse_ru
    any убрать?
  • https://t.me/clickhouse_ru
    @dmatw ↶ Reply to #278402 #278403 11:53 AM, 08 Jul 2022
    Тож самое
  • https://t.me/clickhouse_ru
    @dmatw #278404 11:54 AM, 08 Jul 2022
    Хотя я кажется понял
  • https://t.me/clickhouse_ru
    @dmatw #278405 11:54 AM, 08 Jul 2022
    Там есть ещё одна таблица
  • https://t.me/clickhouse_ru
    @dmatw #278406 11:54 AM, 08 Jul 2022
    По которой джоинятся группы
  • https://t.me/clickhouse_ru
    @dmatw ↶ Reply to #278398 #278407 11:54 AM, 08 Jul 2022
    Вот этот ответ мне помог
  • https://t.me/clickhouse_ru
    @dmatw #278408 11:54 AM, 08 Jul 2022
    Спасибо
  • https://t.me/clickhouse_ru
    @dmatw ↶ Reply to #278402 #278409 11:54 AM, 08 Jul 2022
    А any от декартов нас избавляет
  • https://t.me/clickhouse_ru
    Ок, а то я пример какой то нашел и там пихали массив как набор данных для нестед полей. Ок, щас попробуем
  • https://t.me/clickhouse_ru
    @ivanbrrr #278411 12:12 PM, 08 Jul 2022
    Вопрос, а не может ли запрос зациклится при таком инсёрте?

    insert into TABLE_ONE select * REPLACE(-1 as sign) from TABLE_ONE final where CREATED_DATE < now();
  • https://t.me/clickhouse_ru
    Вопрос отпал, я ошибся количеством порядков, в количестве записей всего
  • https://t.me/clickhouse_ru
    @ivanbrrr #278413 12:14 PM, 08 Jul 2022
    показалось, что в SHOW PROCESSLIST 11111 из 3333
    а на самом деле 1111
  • https://t.me/clickhouse_ru
    у mergetree таблиц select запоминает список партов (снепшот) которые надо обработать до выполнения запроса, и новые парты select не видит во время выполнения
    у других движков все иначе
  • https://t.me/clickhouse_ru
    ну это как раз replacingMergeTree, так что спасибо за ответ
  • https://t.me/clickhouse_ru
    @valerii_tsvetkov #278417 12:21 PM, 08 Jul 2022
    Всем доброго дня!
    Сломал всю голову. Хочу создать материализованное представление на движке CollapsedMergeTree поверх запроса к реплике pg таблицы (MaterializedPostgreSQL). Как только создаю представление, кликхаус начинает падать.

    Реализовать такую задумку вообще реально? Мотивировано тем, что:
    1) MaterializedPostgreSQL создает таблицы на движке ReplacingMergeTree и при удалении строк на источнике (в постгресе) они не "схлопываются" в реплике;
    2) Хочется "переложить" данные на сущность с другой метой - поменять order by и, возможно, добавить партиционирование - на реплике ничего не сделать кроме attach/detach.

    Если кто может подсказать что-то по теме, заранее благодарю!
  • https://t.me/clickhouse_ru
    MaterializedPostgreSQL вроде автоматически дописывает final и where not deleted и вы не должны видеть удаленных строк
  • https://t.me/clickhouse_ru
    Допустим (почему-то сейчас не работает - версия CH 22.1.3.7).
    Но если все равно требуется переложить данные в материализованное представление, применив другой движок/сортировку/расчет агрегата. Возможно ли тогда создать материализованное представление поверх MaterializedPostgreSQL? Есть ли какие-то требования для этого, может есть какая-то отдельная документация?
  • https://t.me/clickhouse_ru
    @gotmad #278420 12:28 PM, 08 Jul 2022
    народ, помогите понять
    в ReplicatedMergeTree таблице на несколько миллиардов строк есть test lowCardinality(String) колонка, у нее всего около 40 уникальных значений
    как быстро получить все ее уникальные значения?
    select distinct test from table перелопачивает все строки, хотя логика подсказывает, что при запросе достаточно вернуть все содержимое lowCardinality словаря
  • https://t.me/clickhouse_ru
    @sandix #278421 12:30 PM, 08 Jul 2022
    Всем привет. Подскажите пжл. по аномалии, которую я наблюдаю.
    Есть тестовый кластер из 3 нод. shard1(node1, node2), shard2(node3)
    На каждой ноде есть distributed таблица (все настроены одинаково) и шардированные с replicatedMergeTree

    Закидываю данные напрямую в шардированную таблицу (к примеру в node2)
    Произвожу select в distrbuted таблицу из разных node и получаю следующее:

    console_node_1: никогда не возвращаются данные. (может быть отставание по репликации??)
    console_node_2: всегда возвращаются данные. (наверное потому что хранятся на этой ноде)
    console_node_3: иногда возвращаются данные. (скорее всего потому что распределенный запрос попадает либо на 1, на 2-ую ноду, поэтому данные либо есть, либо нет)

    Как можно отследить/исправить подобного рода проблемы?
  • https://t.me/clickhouse_ru
    без понятния. Все эти Materialized движки -- это чемонад без ручки, никому не нужны (в смысле вам нужен чемодан, но вы просто еще не знаете что он без ручки и пользоваться им невозможно).
  • https://t.me/clickhouse_ru
    никак.

    можно получить некорое ускорение сделав `select test from table group by test`
    но просто в словарь заглянуть нельзя (я просил такое сделать, но не сделали, потому что это будет работать только для запросов без where)
  • https://t.me/clickhouse_ru
    @gotmad ↶ Reply to #278423 #278424 12:38 PM, 08 Jul 2022
    спасибо!
    а какой правильный способ иметь актуальный список этих уникальных значений где-то сбоку?
    matview с map колонкой?
  • https://t.me/clickhouse_ru
    а где проблема-то?
    что всегда ходит в реплику на node2 если делать запросы с node2 ? так это специально сделано, чтобы экономить сеть, можно отключить
  • https://t.me/clickhouse_ru
    @sandix ↶ Reply to #278425 #278426 12:39 PM, 08 Jul 2022
    я ожидаю всегда получать данные со всех nodes
    ну т.е. созданная вставка должна же засинкаться с node1. А тут почему-то этого не происходит, раз данные недоступны
  • https://t.me/clickhouse_ru
    так у вас 2 шарда. shard1(node1, node2)
    вы получаете данные с 2х шардов.
  • https://t.me/clickhouse_ru
    разберитесь сначала что репликация работает. Делайте запросы / проверяйте консистетность напрямую в replicatedMergeTree, отложите пока distrbuted
  • https://t.me/clickhouse_ru
    @sandix ↶ Reply to #278427 #278429 12:42 PM, 08 Jul 2022
    да. верно. Но при SELECT в распределенную таблицу, которая находится на node1 я ведь тоже должен получить результат, хоть изначально данные были записаны в node2?
    Я понимаю, что клик предпочитает ходить в локальный шард для экономии, но все равно.
  • https://t.me/clickhouse_ru
    отложите пока distrbuted
  • https://t.me/clickhouse_ru
    @sandix ↶ Reply to #278428 #278431 12:43 PM, 08 Jul 2022
    да. я опытным путем и пришел к тому, что поведение не то, что я ожидаю.
    Если делать запросы в шардированные таблицы, то на node2 данные есть, а на node1 их нет. Стало быть эти ноды в шарде не засинкались.
  • https://t.me/clickhouse_ru
    @sandix #278432 12:43 PM, 08 Jul 2022
    и все... тут я застрял)
  • https://t.me/clickhouse_ru
    Делайте запросы / проверяйте консистетность напрямую в replicatedMergeTree,
  • https://t.me/clickhouse_ru
    @sandix #278434 12:45 PM, 08 Jul 2022
    как раз выше и написал, что делал запросы напрямую. Возможно я не до конца понимаю, что вы имеете ввиду.
  • https://t.me/clickhouse_ru
    а подскажите подалуйста вот такой момент
    если nested это как бы таблица внутри таблицы, то по идее в один поток можно класть в нее несколько значений. Или я не прав?
    Если прав то подскажите плиз как это сделать.
  • https://t.me/clickhouse_ru
    у вас есть shard1(node1, node2) -- т.е. данные в replicatedMergeTree должны быть абсолютно одинаковые,

    ну сделайте select count() from вашаreplicatedMergeTreeтаблица на node1 и node2
  • https://t.me/clickhouse_ru
    @sandix ↶ Reply to #278436 #278437 12:47 PM, 08 Jul 2022
    так я и сделал)))
    на node1 данных нет, на node2 есть.
  • https://t.me/clickhouse_ru
    Insert into test Values
    ('00f0d86e-1234-12ed-1d11-40feb884ac00',
    1655672463987,
    ['192.168.0.1', '192.168.0.2', '192.168.0.3'], ['Some name', 'Some name1', 'Some name2'], ['KK', 'KK1', 'KK2'])
  • https://t.me/clickhouse_ru
    а где посмотреть? Нужны примеры по Nested таблицам ( очень (
  • https://t.me/clickhouse_ru
    вот, уже понятнее становится.

    select * from system.replication_queue на node1 и node2
  • https://t.me/clickhouse_ru
    ух ё моё.... конвертер лютый будет ) Спасибо
  • https://t.me/clickhouse_ru
    @sandix ↶ Reply to #278440 #278442 12:48 PM, 08 Jul 2022
    и там и там пусто.
  • https://t.me/clickhouse_ru
    вот, еще лучше, продвигаемся.

    теперь покажите zk путь который вы использовали в replicatedMergeTree
  • https://t.me/clickhouse_ru
    @sandix ↶ Reply to #278443 #278444 12:50 PM, 08 Jul 2022
    ReplicatedMergeTree('/clickhouse/tables/ddb6fcd0-dd77-40e4-9aa7-88573355e067/{shard}', '{replica}')
  • https://t.me/clickhouse_ru
    ок
    теперь
    select * from system.macros с обеих нод
  • https://t.me/clickhouse_ru
    @sandix ↶ Reply to #278445 #278446 12:53 PM, 08 Jul 2022
    node1:
    cluster: metrics
    replica: stgch-1-local.ru
    shard: shard1

    node2
    cluster: metrics
    replica: stgch-2-local.ru
    shard: shard1
  • https://t.me/clickhouse_ru
    интересно, а zk путь одинаковый на нодах в таблицах?
    /clickhouse/tables/ddb6fcd0-dd77-40e4-9aa7-88573355e067/{shard}
    ?
  • https://t.me/clickhouse_ru
    @sandix ↶ Reply to #278447 #278448 12:55 PM, 08 Jul 2022
    хм... нет. разные почему-то.
    uuid разные
  • https://t.me/clickhouse_ru
    дропните таблицу на node1 и создайте также как на node2
  • @AlessandrD #278450 01:00 PM, 08 Jul 2022
    Подскажите, как правильно сконфигурировать кликхаус под максимально агрессивное сжатие данных.

    Производительность запросов не так важна, как занимаемый объем, данные пишем через очередь (NATS, bulk insert).

    Кроме того, поддерживает ли клик хаус возможность хранить данные с разной степенью компрессии на разных серверах (где-то быстрые ссд, где-то медленные винчестеры)

    Если кто уже тестировал/есть бенчмарк, интересует сравнение с tdengine
  • https://t.me/clickhouse_ru
    @sandix ↶ Reply to #278449 #278451 01:01 PM, 08 Jul 2022
    да. думаю что в этом и есть проблема. определенно. Спасибо за наводку.

    А как можно умудриться так сделать? Всмысле что именно повлияло на то, что создались 2 разные таблицы.

    Обычно я создаю таблицы и не указываю параметры пути zk. Оставляю стандартно, а оно там по макросам само генерит где нужно.
    + использую конструкцию on cluster.
  • https://t.me/clickhouse_ru
    сложно сказать.
    возможно надо искать в system.query_log на всех нодах как делали create.

    как это вообще работает:
    вы пишете create table .... on cluster ... Engine=Replicated() ....
    on cluster генерит uuid и на ноды отсылает запрос create table .... UUID=xxxxx ... Engine=Replicated() .... , т.е. uuid не может быть разным.
    значит кто-то создал таблицу 2мя разными запросами
  • https://t.me/clickhouse_ru
    @sandix ↶ Reply to #278452 #278453 01:06 PM, 08 Jul 2022
    понял. спасибо большое.
  • @mixermf #278455 01:07 PM, 08 Jul 2022
    Привет!
    если запрос OPTIMIZE TABLE table final висит уже 20 минут, стоит волноваться?
  • думаю, если в system.merges всё это время есть записи для этой таблицы, то не стоит
  • https://t.me/clickhouse_ru
    @ivanbrrr #278458 01:49 PM, 08 Jul 2022
    А подскажите пожалуйста,
    insert into table select * replace('new_value' as field) from table where id=1;
    будет быстрее, чем
    выполнить селект, где-то чем-то поменять данные, и заинсёртить?
  • @sr_maks1 #278459 01:50 PM, 08 Jul 2022
    Привет! в named_collections можно несколько добавлять? А то виден только один.
    <clickhouse>
    <named_collections>
    <tz_db6_master>
    <host>192.168.0.80</host>
    <port>6432</port>
    <database>maindb</database>
    <user>user_jenkins</user>
    <password>1</password>
    </tz_db6_master>
    <tz_db4_slave>
    <host>192.168.0.10</host>
    <port>6432</port>
    <database>maindb</database>
    <user>user_jenkins</user>
    <password>1</password>
    </tz_db4_slave>
    <anl_ch_main_72>
    <host>192.168.0.72</host>
    <port>8123</port>
    <user>ro</user>
    <password>1</password>
    </anl_ch_main_72>
    </named_collections>
    </clickhouse>
  • где-то чем-то - это типа скачать в питон, сделать трансформ и потом инсерт?
  • https://t.me/clickhouse_ru
    ну да, но джавой
  • @snoopyin #278462 02:00 PM, 08 Jul 2022
    Добрый день! Подскажите в есть какой-нибудь более элегантный способ сделать:
    WHERE (t.id, true) IN tuples
    OR (t.id, false) IN tuples;

    tuples объявлен в CTE
  • https://t.me/clickhouse_ru
    @logi_egi #278463 02:02 PM, 08 Jul 2022
    Всем привет, у меня проблема. Не могу остановить выполнение мутаций, kill mutation не помогает сервер не отвечает, перезапуск сервера тоже не помогает, после него операции с мутациями снова начинают выполняться. И все падает из-за того, что заканчивается ОП. Кто-нибудь сталкивался с такой проблемой?
  • ни при каком раскладе это не может быть быстрее. Сеть, сериализация, десериализация - дикий оверхед
  • https://t.me/clickhouse_ru
    спасибо
  • а зачем true or false? Разве t.id IN () выдаст не тот же результат?
  • Не совсем понял вопроса. Нужно выбрать из большой таблицы t только те строки где колонка id имеет значения возвращаемые в первой позиции в тупле (Int, Bool) из CTE
  • https://t.me/clickhouse_ru
    @konnectrl #278468 02:13 PM, 08 Jul 2022
    tuple.1
  • https://t.me/clickhouse_ru
    @konnectrl #278469 02:13 PM, 08 Jul 2022
    И выдаст вам первый элемент в тюпле
  • WITH tuples AS (
    select (1, true)
    union all
    select (2, false)
    )
    SELECT t.*
    FROM (
    select 1 as id
    union all
    select 2 as id
    union all
    select 3 as id
    ) AS t
    WHERE (t.id, true) IN tuples
    OR (t.id, false) IN tuples

    Пример понятное дело условный, но суть вопроса должен передавать. В результате надо увидеть 2 строки (1 и 2)
  • WHERE t.id IN (SELECT col.1 FROM tuples)
  • @1382671541 #278472 02:44 PM, 08 Jul 2022
    где col — это имя колонки в cte
  • 👍
  • а почему вы сразу в cte не вытащите только айдишники?
  • https://t.me/clickhouse_ru
    @392734528 #278475 02:52 PM, 08 Jul 2022
    @den_crane
    Подскажи плиз, При вставке во вложенную структуру вложенной структуры, структура второго уровня воспринимается как целое поле а не набор.
    Нужны какие то спец указатели для субструктур?
    в синтетике вообще вылетел ValuesBlockInputFormat

    client.execute('DROP TABLE test')
    client.execute(
    """CREATE TABLE test(
    id FixedString(36) NOT NULL,
    time DateTime64(3, "Europe/Moscow") NOT NULL,
    data Nested(
    ip IPv4,
    name_en String,
    code String,
    subsrtuct Nested(
    sub_id UInt8,
    sub_string String
    ))
    )
    ENGINE = Memory
    """
    )
    client.execute("""Insert into test Values
    ('00f0d86e-1234-12ed-1d11-40feb884ac00',
    1655672463987,
    ['192.168.0.1', '192.168.0.2', '192.168.0.3'], ['Some name', 'Some name1', 'Some name2'], ['KK', 'KK1', 'KK2'],
    [12, 13, 14], ['Sub_string_value1', 'Sub_string_value2', 'Sub_string_value'])""")

    DB::Exception: Cannot parse expression of type Array(Nested(sub_id UInt8, sub_string String)) here: [12, 13, 14], ['Sub_string_value1', 'Sub_string_value2', 'Sub_string_value3']): While executing ValuesBlockInputFormat. Stack trace:
  • По второму элементу тупла есть аггрегация sumIf
  • https://t.me/clickhouse_ru
    [12, 13, 14], ['Sub_string_value1', 'Sub_string_value2', 'Sub_string_value'] -- Это что такое? у вас в таблице нету
  • https://t.me/clickhouse_ru
    типа вот эти поля хочу вставить
    subsrtuct Nested(
    sub_id UInt8,
    sub_string String
    ))
  • https://t.me/clickhouse_ru
    @gqpbar #278480 03:43 PM, 08 Jul 2022
    @den_crane
    Добрый вечер, подскажите, пожалуйста, с такой проблемой. Не могу остановить выполнение мутаций, kill mutation не помогает сервер не отвечает, перезапуск сервера тоже не помогает, после него операции с мутациями снова начинают выполняться. И все падает из-за того, что заканчивается ОП. Можно ли как-то убить эти мутации?
  • https://t.me/clickhouse_ru
    @Pershin_Artem_spb #278481 03:44 PM, 08 Jul 2022
    Здравствуйте, а как узнать на какой шард попадет запись , если знаешь sharding_key и кол-во нод? я думал остаток берется, но тут как-то хитрее
    create table test.test_month_distrib on cluster cluster (day_dt Date) engine = Distributed(cluster, test, test_month, (toMonth(day_dt) % 3 + 1));

    select day_dt, toMonth(day_dt) % 3 + 1, shardNum() from test.test_month_distrib;

    SELECT
    day_dt,
    (toMonth(day_dt) % 3) + 1,
    shardNum()
    FROM test.test_month_distrib

    Query id: 357835ab-90d7-40ae-99ea-7f117a1efafd

    ┌─────day_dt─┬─plus(modulo(toMonth(day_dt), 3), 1)─┬─shardNum()─┐
    │ 2022-05-01 │ 3 │ 1 │
    └────────────┴─────────────────────────────────────┴────────────┘
    ┌─────day_dt─┬─plus(modulo(toMonth(day_dt), 3), 1)─┬─shardNum()─┐
    │ 2022-06-01 │ 1 │ 2 │
    └────────────┴─────────────────────────────────────┴────────────┘
    ┌─────day_dt─┬─plus(modulo(toMonth(day_dt), 3), 1)─┬─shardNum()─┐
    │ 2022-07-02 │ 2 │ 3 │
    └────────────┴─────────────────────────────────────┴────────────┘
    ┌─────day_dt─┬─plus(modulo(toMonth(day_dt), 3), 1)─┬─shardNum()─┐
    │ 2022-07-01 │ 2 │ 3 │
    └────────────┴─────────────────────────────────────┴────────────┘

    4 rows in set. Elapsed: 0.048 sec.
  • https://t.me/clickhouse_ru
    Insert into test Values
    ('00f0d86e-1234-12ed-1d11-40feb884ac00',
    1655672463987,
    ['192.168.0.1', '192.168.0.2', '192.168.0.3'], ['Some name', 'Some name1', 'Some name2'], ['KK', 'KK1', 'KK2'],
    [[(12,'Sub_string_value1')],[(13,'Sub_string_value2')],[(14,'Sub_string_value3')]] )

    но тут есть проблема, из питона на самом деле надо делать инсерты по-другому
  • https://t.me/clickhouse_ru
    replicated таблицы?
  • https://t.me/clickhouse_ru
    @gqpbar ↶ Reply to #278483 #278484 03:46 PM, 08 Jul 2022
    Да
  • https://t.me/clickhouse_ru
    вручную удаляйте из зукипера мутации
  • https://t.me/clickhouse_ru
    а есть ли мануал какой покурить?
  • https://t.me/clickhouse_ru
    @gqpbar ↶ Reply to #278485 #278487 03:48 PM, 08 Jul 2022
    А где они лежат?
  • @vladislavsv0 #278488 03:50 PM, 08 Jul 2022
    Подскажите, а можно ли такой запрос как-то превратить в AggregatingMergeTree мат вью? Мне нужно чтобы при вставке в table1 пересчитывались оконные функции и distinct.

    select
    distinct
    date(TIMESTAMP) as date,
    hour(TIMESTAMP) as hour,
    KEY,
    first_value(<фнкуция1 от TIMESTAMP>) over
    (partition by date, hour, KEY order by (<фнкуция1 от TIMESTAMP>)) as fnc1,
    first_value(<фнкуция2 от TIMESTAMP>) over
    (partition by date, hour, KEY order by (<фнкуция1 от TIMESTAMP>, <фнкуция2 от TIMESTAMP>)) as fnc2
    from table1
  • https://t.me/clickhouse_ru
    Дока от кликзауса + kb от алтинити
  • https://t.me/clickhouse_ru
    Ну в доке явно нет про инсерты вложенных структур на питоне ) а что такое kb? Можно ссылку?
  • https://t.me/clickhouse_ru
    спросите в гитхабе у них
  • https://t.me/clickhouse_ru
    Гугл в помощь :)
  • https://t.me/clickhouse_ru
    @392734528 #278493 04:13 PM, 08 Jul 2022
    Ладно посмотрим там )
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    clickhouse-driver/test_nested.py at 9a8b4a0706d78ee9952737a9b277f448acf3eaf0 · mymarilyn/clickhouse-driver

    ClickHouse Python Driver with native interface support - clickhouse-driver/test_nested.py at 9a8b4a0706d78ee9952737a9b277f448acf3eaf0 · mymarilyn/clickhouse-driver

  • https://t.me/clickhouse_ru
    @gqpbar #278497 04:57 PM, 08 Jul 2022
    Всем привет
    Кто-нибудь знает как найти и удалить мутации в зукипере?
  • https://t.me/clickhouse_ru
    @Rendalina #278499 04:59 PM, 08 Jul 2022
    Подскажите, пожалуйста, по ситуации:
    Кластер, 1 шард, 3 ноды. Есть табличка с DDL вида

    CREATE TABLE mydb.mytable (
    `eventDate` DateTime64(3),
    `field1` String)
    ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/mydb/mytable_NEW', '{replica}')
    PARTITION BY toYYYYMM(eventDate)
    ORDER BY (field1, eventDate)
    SETTINGS index_granularity = 8192;

    Т.е. её раньше переименовывали и в БД она mytable, а в Zookeeeper видимо mytable_NEW.
    Вылезло это, когда не прошел ALTER TABLE ADD COLUMN ON CLUSTER.

    Как теперь это починить?
  • https://t.me/clickhouse_ru
    как подключится к зукиперу знаете?

    типа zk-shell localhost
    потом команды ls , cd , находите свою таблицу, шард, там есть mutations
    cd mutations
    ls
    rmr

    в zk-cli кажется deleteall вместо rmr
  • https://t.me/clickhouse_ru
    >CREATE TABLE mydb.mytable
    > /clickhouse/tables/{shard}/mydb/mytable_NEW'

    это абсолютно нормально!!!!!!

    > Т.е. её раньше переименовывали и в БД она mytable, а в Zookeeeper видимо mytable_NEW.
    это абсолютно нормально!!!!!!

    >Вылезло это, когда не прошел ALTER TABLE ADD COLUMN ON CLUSTER.
    куда вылезло, ошибка какая ? copy/paste пожалуйста
  • https://t.me/clickhouse_ru
    @gqpbar ↶ Reply to #278501 #278503 05:31 PM, 08 Jul 2022
    Мы используем Clickhouse keeper. Что в этом случае можно сделать?
  • https://t.me/clickhouse_ru
    так же. Никакой разницы, утилиты zk-shell ZkCli работают точно также как и с Zookeeper

    а кипер тоже лежит у вас?
  • https://t.me/clickhouse_ru
    @gqpbar ↶ Reply to #278504 #278506 05:41 PM, 08 Jul 2022
    Кипер поднимается вместе с кх, доходит до предела памяти и убивается
  • https://t.me/clickhouse_ru
    это скрипты на питоне https://www.google.com/search?client=firefox-b-d&q=zkshell+download

    надо запустить кипер без КХ sudo -u clickhouse clickhouse-keeper -c config.xml
  • https://t.me/clickhouse_ru
    @gqpbar ↶ Reply to #278507 #278508 05:52 PM, 08 Jul 2022
    Большое спасибо! попробуем
  • https://t.me/clickhouse_ru
    Прошу прощения, не все указала. Есть ещё view:
    CREATE VIEW mydb.mytable_last ON CLUSTER '{cluster}' AS
    SELECT
    max_eventDate AS eventDate,
    field1 AS field1
    FROM
    (SELECT
    max(eventDate) AS max_eventDate,
    field1
    FROM mydb.mytable
    GROUP BY field1);

    Надо было добавить колонку и в таблицу, и в эту view:
    ALTER TABLE mydb.mytable ON CLUSTER '{cluster}' ADD COLUMN IF NOT EXISTS field2 Nullable(DateTime64(3)) AFTER field1;

    CREATE OR REPLACE VIEW mydb.mytable_last ON CLUSTER perftest_1shards_3replicas AS
    SELECT
    max_eventDate AS eventDate,
    field1 AS field1,
    field2 AS field2
    FROM
    (SELECT
    max(eventDate) AS max_eventDate,
    field1,
    argMax(field2, eventDate) AS field2
    FROM mydb.mytable
    GROUP BY field1);

    При запуске скрипта с добавление колонки и вью (и ещё там были операции между ними) вылезла ругачка:
    [root@u00clickhouse01 ~]# cat update.sql | clickhouse-client --multiline -n
    u00clickhouse02 9000 0 2 2
    u00clickhouse03 9000 0 1 1
    u00clickhouse01 9000 0 0 0
    u00clickhouse01 9000 0 2 2
    u00clickhouse02 9000 0 1 1
    u00clickhouse03 9000 0 0 0
    u00clickhouse01 9000 0 2 0
    u00clickhouse02 9000 0 1 0
    u00clickhouse03 9000 0 0 0
    u00clickhouse01 9000 0 2 1
    u00clickhouse02 9000 0 1 1
    u00clickhouse03 9000 47 Code: 47, e.displayText() = DB::Exception: Missing columns: \'field2\' while processing query: \'SELECT max(eventDate) AS max_eventDate, field1, argMax(field2, eventDate) AS field2 FROM mydb.mytable GROUP BY field1\', required columns: \'eventDate\'
    \'field1\' \'field2\', source columns: \'field1\' \'eventDate\' (version 20.9.2.20 (official build)) 0 0
    Received exception from server (version 20.9.2)
  • https://t.me/clickhouse_ru
    @Rendalina #278510 06:33 PM, 08 Jul 2022
    Теперь если смотреть по нодам, то колонка field2 на всех нодах добавилась, а вью поменялась на двух нодах, а на третьей нет
    Также не выполнилась операция, которая была перед сменой вью на всех нодах, причем в
    select * from system.zookeeper z where path = '/clickhouse/task_queue/ddl/query-0000000226/finished';
    она стоит как finished на всех трех нодах. Но по факту изменений нет
    Там был detach table для materialized_view и attach view - вот он стоит как прошедший, но вроде бы и не прошел
  • https://t.me/clickhouse_ru
    @Rendalina #278511 06:34 PM, 08 Jul 2022
    Если запускать скрипт, то порядок выполнения операций на нодах будет как они попали в clickhouse/task_queue или может быть произвольным?
  • https://t.me/clickhouse_ru
    у вас CREATE OR REPLACE VIEW выполнилось до того как ALTER TABLE mydb.mytable случился на реплике
  • https://t.me/clickhouse_ru
    --replication_alter_partitions_sync arg Wait for actions to manipulate the partitions. 0 - do not wait, 1 - wait for execution only of itself, 2 - wait for everyone.
    --mutations_sync arg Wait for synchronous execution of ALTER TABLE UPDATE/DELETE queries (mutations). 0 - execute asynchronously. 1 - wait current server. 2 - wait all replicas if they exist.
  • https://t.me/clickhouse_ru
    @den_crane #278514 06:41 PM, 08 Jul 2022
    я бы просто select sleep(3) format Null вставил перед CREATE OR REPLACE VIEW
  • https://t.me/clickhouse_ru
    Хорошо, спасибо! Узнаю настройки на всякий случай и попробуем со sleep 🙂
  • https://t.me/clickhouse_ru
    в смысле

    clickhouse-client --multiline -n --mutations_sync=2
    но это не дает 100% гарантии
  • https://t.me/clickhouse_ru
    @den_crane #278517 07:02 PM, 08 Jul 2022
    в теории в этом случае ADD COLUMN должен возращать управление когда все реплики добавили столбец, на практике это не так (не всегда).
  • 09 July 2022 (2 messages)
  • https://t.me/clickhouse_ru
    @5544322032 #278524 06:28 AM, 09 Jul 2022
    Joined.
  • https://t.me/clickhouse_ru
    @PetrMatsegora #278525 07:41 AM, 09 Jul 2022
    Joined.
  • 10 July 2022 (18 messages)
  • @5467774274 #278532 05:37 AM, 10 Jul 2022
    Joined.
  • @5429567439 #278533 06:14 AM, 10 Jul 2022
    Joined.
  • @GrouthHacker #278534 06:18 AM, 10 Jul 2022
    Подскажите, как из КХ в YDB (яндексДБ) данные перегонять?
  • @vmakulov #278535 06:48 AM, 10 Jul 2022
    Возможно вопрос тривиальный, но ....
    Цель - замена всех шардов (3шт) одной из реплик на новые (апгрейд железа).
    Идея - "оффлайновое" копирование data/metadata со старого шарда на новый, останов старого, досинхронизация. Замена имен в ДНС на адреса нового (все только на днс-именах). Старт нового. (непродолжительный даунтайм шардов не критичен).
    Вопросы: можно так? не сломает ли это что-нибудь в зукипере? Не покарраптятся ли данные? Возможно это "плохой" способ и есть "более правильный" способ замены железяк на новые ?
  • https://t.me/clickhouse_ru
    Кстати, а почему бы просто реплику не делать? Добавили новую реплику, "восстановилось", удалили старую реплику.
    Получается, только метадату надо самому копировать, если не атомик конечно (при условии что я верно понял). И оффлайна не будет
  • @vmakulov #278547 07:16 AM, 10 Jul 2022
    Такой вариант рассматривали, но придётся все шарды поднимать, а тут вопрос скорее "замены по одному", да и было бы полезно для отработки решения при физическом отказе сервера (шарда)...
  • @5429567439 #278548 07:29 AM, 10 Jul 2022
    Добрый день!
    Предлагаю продвижение
    чатов и групп
    детали тут
  • Зачем все шарды? Добавляете новую реплику для 1 шарда, репликация все накатывает сама, тушите старую реплику 1 шарда. Повторяете для остальных шардов. Или я что-то не понял
  • https://t.me/clickhouse_ru
    @combot #278552 b o t 09:39 AM, 10 Jul 2022
    Total messages: 278551
  • А писатели, читатели из старой реплики ? Ходить во все сервисы и менять настройки придется.

    Перефразирую тогда. Как грамотно заменить шард.
  • https://t.me/clickhouse_ru
    Вы накопили данных на новом шарде, что мешает потом все настройки сети поменять на новом шарде ?
  • @vmakulov #278555 10:31 AM, 10 Jul 2022
    вот, уже ближе... при смене "новых" настроек, на "старые" например
    interserver_http_host зукиперу нормально будет? Как потом зукипер заставить "забыть" о перименованном?
    Давайте абстрагируемся и рассмотрим случай:
    1) Сервер умер, закали другой, новое железо, новые IP
  • @vmakulov #278556 10:32 AM, 10 Jul 2022
    Настройки сети поменять не представляется возможным.
  • https://t.me/clickhouse_ru
    @392734528 #278562 10:21 PM, 10 Jul 2022
    Толи лыжи толи я
    Версия 22.3.8.39
    UnknownTypeError: Code: 50. Unknown type Nested(name String, version UInt32)

    пример тупо с дукументации по драйверу.
    lient.execute('DROP TABLE default.test')
    client.execute("SET flatten_nested = 0")
    client.execute("""
    CREATE TABLE default.test
    (
    col Nested(name String, version UInt32)
    )
    ENGINE = Memory
    """)
    client.execute(
    'INSERT INTO default.test VALUES', [
    {'col': [
    {'name': 'a', 'version': 100},
    {'name': 'b', 'version': 200},
    {'name': 'c', 'version': 300}
    ]}
    ])

    Некоторые вариации вгоняют клик в ступор (не возвращает ничего тупо висит)
    типа вот
    client.execute("""Create table default.test (
    x Int32,
    y String,
    n Nested(
    id Int32,
    name String
    )
    ) ENGINE=Memory""")
    data = {'x': 1, 'y': 'asdasd', 'n': [{'id': 0, 'name': 'zero'},{'id': 1, 'name': 'one'}]}
    client.execute('INSERT INTO test VALUES',data)
    client.execute("Select * from default.test")
  • https://t.me/clickhouse_ru
    попробуйте напрямую без драйвера. если всё ок, то заводите баг в репе драйвера
  • https://t.me/clickhouse_ru
    @392734528 #278564 11:22 PM, 10 Jul 2022
    Понял, опись протокол завтра составлю и отправлю.
  • https://t.me/clickhouse_ru
    скорее всего у вас просто старый драйвер
  • https://t.me/clickhouse_ru
    @cmdwar #278566 11:50 PM, 10 Jul 2022
    Всем привет, есть гайд по кликхаусу?
  • 11 July 2022 (185 messages)
  • https://t.me/clickhouse_ru
    Неа, не существует, как и поисковых систем, в которых его можно было бы найти.
  • https://t.me/clickhouse_ru
    @cmdwar ↶ Reply to #278568 #278570 02:15 AM, 11 Jul 2022
    Идите на хуй, если не собираетесь помогать другим. Лицемер, ебучий, который когда-то пришёл в этот чат с таким же вопросом.
  • https://t.me/clickhouse_ru
    @ployd #278571 02:33 AM, 11 Jul 2022
    Воу-воу
  • @lexandrop #278572 02:43 AM, 11 Jul 2022
    бгг. грубо, громко, и, что самое главное, неправда, что легко проверяется поиском, который есть и в телеге тоже.
  • https://t.me/clickhouse_ru
    @Krisantis #278573 04:27 AM, 11 Jul 2022
    Всем привет. Подскажите как можно бороться с конкурентным доступом к таблице?
    WRITE locking attempt on "*****" has timed out! (120000ms) Possible deadlock avoided. Client should retry. (DEADLOCK_AVOIDED)
    Там ситуация в том, что клиенты селектят из таблицы, а я пытаюсь её пересоздать. Можно как-то через права мб сделать идли через настройки, чтобы клиенты отваливались, а я получал приоритетный доступ?
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #278573 #278574 04:42 AM, 11 Jul 2022
    вы делаете exchange tables?
  • https://t.me/clickhouse_ru
    там работает DBT и пересоздаёт таблицу. Как я понимаю это exchange tables
  • https://t.me/clickhouse_ru
    @cmdwar ↶ Reply to #278572 #278576 04:52 AM, 11 Jul 2022
    Что? То есть ни один человек тут не задавал того вопроса, которого нет в гугле? Ты такой же дурачок, как и он
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @socketpair #278578 04:56 AM, 11 Jul 2022
    Сорян за шакальную картинку, но вопрос, почему при наличии фсинков у меня брокенпарты в таком количестве ?
  • https://t.me/clickhouse_ru
    @socketpair #278579 04:56 AM, 11 Jul 2022
    ClickHouse server version 21.9.2.1.
  • https://t.me/clickhouse_ru
    официальный https://clickhouse.com/docs/ru гайд подойдёт?
  • @qwertyuiaz09 #278582 05:01 AM, 11 Jul 2022
    это нормально, что бульк инсертом в кликхаус базу данных 10к колонок из двух маленьких строк добавляются 8 секунд, а 1 миллион я так и не могу дождаться?)
    по мануалам делаю
  • @qwertyuiaz09 #278583 05:01 AM, 11 Jul 2022
    там еще батч сайз указать можно при бульк инсерте, он в мануале был 10к, а размер вставки 1кк
  • @qwertyuiaz09 #278584 05:03 AM, 11 Jul 2022
    кликхаус в докере десктоп на винде, обращаюсь к нему через clickhous.client из дотнета
  • https://t.me/clickhouse_ru
    @konnectrl #278585 05:04 AM, 11 Jul 2022
    Кажется, у вас что то не так ... Я спокойно разгонял вставку в кликхаус до 400 тысяч строк в секунду
  • https://t.me/clickhouse_ru
    @konnectrl #278586 05:04 AM, 11 Jul 2022
    На стандартных настройках, только с добавлением оперативной памяти
  • ну это обычная скорость для всех бд
  • https://t.me/clickhouse_ru
    @konnectrl #278588 05:05 AM, 11 Jul 2022
    А так очень мало вводных данных, чтобы вам что то сказать
  • как озу добавить?
  • @qwertyuiaz09 #278590 05:05 AM, 11 Jul 2022
    докер и так 3гб жрет
  • https://t.me/clickhouse_ru
    Всё ок. Кликхаус уже начали юзать даже домохозяйки, которые ещё не научились гуглить, но им уже надо.
  • https://t.me/clickhouse_ru
    max_memory_usage настройка в user.xml вроде добавляется
  • https://t.me/clickhouse_ru
    @Krisantis #278593 05:38 AM, 11 Jul 2022
    Посоветуйте что-нибудь, пожалуйста 😢
  • https://t.me/clickhouse_ru
    @Krisantis #278594 05:38 AM, 11 Jul 2022
    Всем привет. Подскажите как можно бороться с конкурентным доступом к таблице?
    WRITE locking attempt on "*****" has timed out! (120000ms) Possible deadlock avoided. Client should retry. (DEADLOCK_AVOIDED)
    Там ситуация в том, что клиенты селектят из таблицы, а я пытаюсь её пересоздать. Можно как-то через права мб сделать идли через настройки, чтобы клиенты отваливались, а я получал приоритетный доступ?
  • https://t.me/clickhouse_ru
    @Krisantis #278595 05:38 AM, 11 Jul 2022
    там работает DBT и пересоздаёт таблицу. Как я понимаю это exchange tables
  • Подпишусь под вашим вопросом
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #278594 #278597 06:15 AM, 11 Jul 2022
    Для начала я бы убедился через query_log, что ваша версия DBT действительно использует exchange tables. Но более интересно другое - а что это за такой рутинный процесс, в котором вы пересоздаете таблицы? Может как-то по другому? alter table? attach/detach?
  • https://t.me/clickhouse_ru
    Мб я тогда не до конца понимаю понятие exchange table. Dbt насколько я знаю всегда создаёт новую таблицу и удаляет старую (только если это не инкремантальная материализация)
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #278598 #278599 06:20 AM, 11 Jul 2022
    exchange tables почти атомарно меняет имена для двух существующих таблиц. создали новую и одним движением поменяли. потом старую (но уже с другим именем) через некоторое время можно удалить.
  • https://t.me/clickhouse_ru
    Где почитать?
  • https://t.me/clickhouse_ru
    @bvt123 #278601 06:22 AM, 11 Jul 2022
    так это - поиск в документации худо бедно но работает - https://clickhouse.com/docs/en/sql-reference/statements/exchange/
    EXCHANGE Statement | ClickHouse Docs

    Exchanges the names of two tables or dictionaries atomically.

  • https://t.me/clickhouse_ru
    @ikozlov1 #278602 06:44 AM, 11 Jul 2022
    Добрый день!
    Нужен совет. Есть база на postgre, пока не очень большая, но быстро растет. Центральная таблица около 10гб. Первисный ключ - строка из 21 цифры.
    85 процентов запросов - селекты. Индекс по первичному ключу весит 4гб.
    Очень много выборок where in (...) по этому ключу
  • https://t.me/clickhouse_ru
    @ikozlov1 #278603 06:46 AM, 11 Jul 2022
    у меня был опыт работы с кликхауз очень небольшой, для сохранения статисики и аггрегации по этом данным. там кликхауз себя показал отлично, но там упор был на даты и из за этого хорошо сегментировалось
  • https://t.me/clickhouse_ru
    @ikozlov1 #278604 06:48 AM, 11 Jul 2022
    Не могу приняь решения, каким путем идти. Либо партицирование этой таблицы в постгресе, либо придумывать что то иное. Например старые данные, которые не изменяются сгружать в кликхауз или что то еще.
  • "Например старые данные, которые не изменяются сгружать в кликхауз или что то еще."

    Я так понимаю, эта таблица по сути представляет из себя справочник. В этом случае не лучше ли её оставить в постгри? В противном случае придется заморачиваться апгрейдами изменяемых данных, что в КХ достаточно дорого и неудобно.
  • https://t.me/clickhouse_ru
    @ikozlov1 #278606 06:56 AM, 11 Jul 2022
    пока не понимаю как соптимизировать впринципе процесс. объем данных растет, ключ тяжелеет.
    выборка по where in (...)
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #278606 #278607 06:59 AM, 11 Jul 2022
    при чем тут выборка? с селектами, которых у вас 85% все будет хорошо, вопрос же про остальные 15%, которые вероятно update/upsert. Если вы пришли сюда, то про них и надо думать - как вы будете работать с изменяемыми данными. Поможет ли вам простой ReplacingMT with select final, или нужно что-то похитрее.
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #278606 #278608 07:01 AM, 11 Jul 2022
    И второй вопрос - точечные запросы. Если ваши селекты спрашивают 100 строк за раз, и их 100 в секунду, то лучше не уходить с постгреса.
  • https://t.me/clickhouse_ru
    понял. буду дальше изучать. спасибо
  • https://t.me/clickhouse_ru
    @mr_andrey_beliy #278610 07:44 AM, 11 Jul 2022
    Коллеги, привет. Подскажите пожалуйста правильный путь для бэкапа пользователей через clickhouse-backup? Я что то в доке этот момент не нашел, и не могу понять это надо делать руками отдельно или я что то не увидел
  • https://t.me/clickhouse_ru
    @konnectrl #278611 07:46 AM, 11 Jul 2022
    Clickhouse-backup - создан для того чтобы создавать бэкапы и отсылать на другие сервера , в чём проблема ?
  • https://t.me/clickhouse_ru
    Судя по всему у вас ключ это какое-то представление алгоритмов распределенного ключа. Как пример, есть алгоритм Snowflake ID, который хранит распределенный ключ в 64 битах (unsigned версия позволяет хранить 2^64-1 значения максимум, что приводит к 20 символам в числе). В данном алгоритме несколько бит отвечают за timestamp, то есть вы можете в итоге применить партицирование по датам
  • https://t.me/clickhouse_ru
    @esvalukhin #278613 07:47 AM, 11 Jul 2022
    но по идее если вы строковый ключ замените на битовое представление, то мне кажется что вам станет жить проще
  • https://t.me/clickhouse_ru
    Не обязательно на сервера же, он еще и в какой-нибкдь s3 его может положить. И из этого бэкапа потом хочется просто восстановить полный бэкап на свежий сервер включая всех пользователей и их настройки
  • https://t.me/clickhouse_ru
    @esvalukhin #278615 07:48 AM, 11 Jul 2022
    ну а 21 символ в ключе у вас наверное из-за того, что в строке последний символ - это символ конца строки
  • https://t.me/clickhouse_ru
    Тут же ключ 21 символ
  • https://t.me/clickhouse_ru
    Нет. Все числа. Шаблона нет
  • https://t.me/clickhouse_ru
    @esvalukhin #278618 07:49 AM, 11 Jul 2022
    то есть ключи рандомно у вас генерируются?
  • https://t.me/clickhouse_ru
    Не у меня. Приходит снаружи.
  • https://t.me/clickhouse_ru
    @ikozlov1 #278620 07:50 AM, 11 Jul 2022
    Длинна колеблится от 19 до 21 символа
  • https://t.me/clickhouse_ru
    @tedm24 ↶ Reply to #278610 #278621 08:19 AM, 11 Jul 2022
    Там вроде ключ есть для того чтобы пользователей сохранить, rbac кажется
  • https://t.me/clickhouse_ru
    Да, спасибо, кажется что оно, я даже не попробовал потому что в хелпе написано:
    Backup RBAC related objects only
  • https://t.me/clickhouse_ru
    @tedm24 ↶ Reply to #278622 #278623 08:22 AM, 11 Jul 2022
    Если не рбак, то /etc/clickhouse-server/users* наверное
  • @7699150 #278624 08:23 AM, 11 Jul 2022
    Всем привет!
    А кто-то использовал DBT кластерным с КХ с репликами и шарддами? Как он с ним работает?
  • https://t.me/clickhouse_ru
    https://t.me/dbt_users сюда обратитесь
    dbt_users

    DBT users group Взаимное уважение и без спама. Для вакансий тег #job Dual language: russian/english

  • https://t.me/clickhouse_ru
    @392734528 #278626 08:30 AM, 11 Jul 2022
    Ребят направьте плиз в нужную сторону )
    У меня на вход колонки типа DateTime64 в некоторых случаях летит строка.
    можно как то преде вставкой (без написания доп парсера)
    прокручивать данные через toDateTime64(str) ?

    Можно конечно засосать строкой и потом постобработку сделать, но блин. Где то в доках вроде это видел.
  • https://t.me/clickhouse_ru
    @392734528 #278627 08:30 AM, 11 Jul 2022
    там проблема в том что это вложенная структура 2го уровня )
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @unamedrus #278629 08:36 AM, 11 Jul 2022
    input | ClickHouse Docs

    input(structure) - table function that allows effectively convert and insert data sent to the

  • Спасибо
  • https://t.me/clickhouse_ru
    не вариант.

    Поле:
    n_field Nested (
    id FixedString(64),
    date1 DateTime64(3, "Europe/Moscow"),
    date2 DateTime64(3, "Europe/Moscow")
    )
    на вход подается
    [{n_field: [{‘id’: ‘dasd23eqadasdas’, ‘date1’ 1655672446520
    , ‘date2’: ‘2022-06-19 20:59:53.040000
    ’ }]}]

    Оно конечно не войдет ибо не совпадение типов.

    нужно как то в инсерте указать чтобы значение date2 приводить к DateTime64
    (функции приведения я знаю, вопрос в том можно ли так изъебнуться или парсер писать для входящего блока)
  • https://t.me/clickhouse_ru
    Попробуй поставить настройку

    date_time_input_format='best_effort'
  • https://t.me/clickhouse_ru
    @392734528 #278633 08:48 AM, 11 Jul 2022
    ок!
  • https://t.me/clickhouse_ru
    @alex_spiridonov #278634 09:02 AM, 11 Jul 2022
    хочу выполнить:

    insert into t1 select * from t2
    where toMonth(some_date_field) = 1; // <- условие, которое на все записи из одной партиции

    таблицы с одинаковой структурой, но разными order by

    падает с сообщением о нехватке памяти

    можно как-то узнать, сколько надо памяти надо на такой insert?
    нельзя ли как-нибудь провернуть, не поднимая всю таблицу t2 в память?
  • https://t.me/clickhouse_ru
    не прокатило
    AttributeError: 'str' object has no attribute 'tzinfo'
  • https://t.me/clickhouse_ru
    а полную ошибку?
  • https://t.me/clickhouse_ru
    это и есть она или прям весь трейс кинуть?
  • https://t.me/clickhouse_ru
    @Vladimir_Borisov #278638 09:14 AM, 11 Jul 2022
    Привет, ребят
    а есть для out формата TabSeparatedRawWithNames
    возможность указать quote для String полей ?
  • https://t.me/clickhouse_ru
    @392734528 #278639 09:29 AM, 11 Jul 2022
    А как по дефолту скормить пустой словарь? Можно ли )
    Nullable нельзя на мап накладывать как и на массив.

    create table test (dict_field MAP(String, Int8) DEFAULT {})
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    да все норм. на первоисточнике преределаем нормаьно.
    не хочу парсить )
  • @subotic0 #278642 09:43 AM, 11 Jul 2022
    Всем привет в mysql базе есть дата '1965-05-09' хочу забрать ее в кх и хранить в типе datetime64, кверю
    select date,
    toDateTime64(date, 3)
    from mysql()
    settings mysql_datatypes_support_level = 'datetime64';

    получаю даты 2144-10-13 2008-09-05 17:31:44, как можно получить верную 1965 год?
  • https://t.me/clickhouse_ru
    select toDateTime64('1965-05-09', 3, 'Europe/Moscow')
    оно?
  • https://t.me/clickhouse_ru
    @mnextel #278644 09:48 AM, 11 Jul 2022
    Добрый, есть простой вопрос
    при селкте получается 10 000 записей
    есть ли в клике какая то функция чтоб можно было получить ограниченное количество записей в зависимости от каунта в 1 запрос
    типа если я хочу 2 записи то он отдаст только 0 и 5000
    если хочу 10 то 0 1000 2000 итд?
    сейчас это делается в 2 запроса
    1. получаем каунт
    2. считаем с него шаг прореживая
    3. запрашиваем с с шагом
  • https://t.me/clickhouse_ru
    я еще думал чт овот так прокатит
    time DEFAULT toDateTime64(time, 3, 'Europe/Moscow')
    но не прокатило
  • https://t.me/clickhouse_ru
    DEFAULT вроде работает когда значения нет?
  • https://t.me/clickhouse_ru
    @392734528 #278647 09:53 AM, 11 Jul 2022
    ну типа да но ктож знает на ввернякак как он тут работает )))
  • Так я же хочу из mysql базы в кх достать столбец с датой, а не константную дату в кх сделать)
  • https://t.me/clickhouse_ru
    @Alexey_037 #278649 10:04 AM, 11 Jul 2022
    Вместо '1965-05-09' подставить date )
  • https://t.me/clickhouse_ru
    @kuzvladd #278650 10:06 AM, 11 Jul 2022
    Добрый день! В таблице system.query_log есть столбец thread_ids. Подскажите пожалуйста, потоки которые там указаны это все потоки который использовались для обработки запроса в части фильтрации, группировки и так далее, а также для выполнения распределённых запросов?
  • https://t.me/clickhouse_ru
    ну доставай и преобразовывай ) я просто показал что она конвертится нормально в 64
  • https://t.me/clickhouse_ru
    @392734528 #278652 10:13 AM, 11 Jul 2022
    Подскажите можно ли дефолтные поля типа MAP дефолтом обработать?
    пробую ругается Expected one of: token, Comma. Stack trace:
    data Map(String, Nullable(String)) DEFAULT {},

    вроде ничего криминального
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @daniel_byta #278656 10:27 AM, 11 Jul 2022
    Помогите понять, что значит такая ошибка
    Это баг?)
  • https://t.me/clickhouse_ru
    Всмысле, он говорит что такой таблицы нет
  • https://t.me/clickhouse_ru
    ServerException: Code: 62.
    DB::Exception: Syntax error: failed at position 723 ('DEFAULT') (line 20, col 45): DEFAULT Map('0', 0),
  • https://t.me/clickhouse_ru
    @daniel_byta #278660 10:30 AM, 11 Jul 2022
    insert into article_stocks select * from _dev_article_stocks where date(dateTime) >= '2022-07-06';
  • https://t.me/clickhouse_ru
    @daniel_byta #278661 10:30 AM, 11 Jul 2022
    DB::Exception: Table prod.article_stocks_test doesn't exist.
  • https://t.me/clickhouse_ru
    @daniel_byta #278662 10:30 AM, 11 Jul 2022
    я не запрашиваю таблицу с _test в конце))
  • https://t.me/clickhouse_ru
    А селект откуда идёт ? Не из view ?
  • https://t.me/clickhouse_ru
    @daniel_byta #278664 10:31 AM, 11 Jul 2022
    нет, это обычный MT
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @konnectrl #278666 10:31 AM, 11 Jul 2022
    А если указать БД, то он вставляет ?
  • https://t.me/clickhouse_ru
    @daniel_byta #278667 10:32 AM, 11 Jul 2022
    нет
  • https://t.me/clickhouse_ru
    @konnectrl #278668 10:33 AM, 11 Jul 2022
    А если SHOW TABLES
  • https://t.me/clickhouse_ru
    @konnectrl #278669 10:33 AM, 11 Jul 2022
    то там есть таблица test ?
  • https://t.me/clickhouse_ru
    @daniel_byta #278670 10:33 AM, 11 Jul 2022
    если поменять таблицы местами, то запрос выполняется
  • https://t.me/clickhouse_ru
    @konnectrl #278671 10:34 AM, 11 Jul 2022
    Ну скорей всего баг какой то
  • https://t.me/clickhouse_ru
    варик не прокатывает в Nested структуре (
  • https://t.me/clickhouse_ru
    Вы должны указать Defaul для всей Nested структуры наверное
  • https://t.me/clickhouse_ru
    хм... щас попробую но это не очень хорошая затея )
  • mat view не висит на вставляемой таблице?
  • https://t.me/clickhouse_ru
    @daniel_byta #278676 10:40 AM, 11 Jul 2022
    Да, висел mv, который при инсерте вставлял в несуществующую таблицу
    отсюда и ошибка
  • https://t.me/clickhouse_ru
    Это работет только если вся нестед сруктура прилетит как None
    Для внутренних полей это правило не распространяется.
    вылетает
    TypeError: object of type 'NoneType' has no len()
  • Получается совсем не то

    в mysql базе есть дата '1965-05-09' хочу забрать ее в кх и хранить в типе datetime64, кверю
    select date,
    toDateTime64(date, 3)
    from mysql()
    settings mysql_datatypes_support_level = 'datetime64';
    получаю даты 2144-10-13 2008-09-05 17:31:44, как можно получить верную 1965 год?
  • https://t.me/clickhouse_ru
    @daniel_byta #278679 10:57 AM, 11 Jul 2022
    так 1970 год минимальный
    1965 год = максимальный год - 5 => 2144
  • https://t.me/clickhouse_ru
    @daniel_byta #278681 11:00 AM, 11 Jul 2022
    выглядит так, что у тебя тип переполняется
    но клик все косячные даты приводит к ближайшему крайнему значению, то есть 1965 приведется к 1970, может где-то на стороне есть еще логика?
  • https://t.me/clickhouse_ru
    @critskiy #278682 11:01 AM, 11 Jul 2022
    Здравствуйте, а можно ручками удалить данные покоцанные из /var/lib/clickhouse/data и перезапустить кликхаус?

    Просто тут проблема на версии 20.5.4.40: после восстановления метаданных по Зукипер и попытке рестартануть на второй машине из кластера КХ, кликхаус не может стартануть. Окей, пришлось ручками перезаписать метаданные с ReplicatedMergeTree на MergeTree, но теперь КХ говорит о том, что не может ATTACH TABLE произвести, пишет примерно следующее:

    Application: DB::Exception: With extended storage definition syntax storage ReplicatedMergeTree requires 2 parameters:
    path in ZooKeeper,
    replica name

    Syntax for the MergeTree table engine:

    CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
    (
    name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1] [TTL expr1],
    name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2] [TTL expr2],
    ...
    INDEX index_name1 expr1 TYPE type1(...) GRANULARITY value1,
    INDEX index_name2 expr2 TYPE type2(...) GRANULARITY value2
    ) ENGINE = MergeTree()
    ORDER BY expr
    [PARTITION BY expr]
    [PRIMARY KEY expr]
    [SAMPLE BY expr]
    [TTL expr [DELETE|TO DISK 'xxx'|TO VOLUME 'xxx'], ...]
    [SETTINGS name=value, ...]
  • https://t.me/clickhouse_ru
    а, все, починил...
  • https://t.me/clickhouse_ru
    @pacan1337pro #278691 02:27 PM, 11 Jul 2022
    Всем привет.
    Пришел спросить совета мудрых.
    Делаю пейджинг по неключевому полю.
    Пробовал добавлять skipping index, но это не сильно помогло.
    Схема и запрос ниже.
    Предполагается, что строк будет 500млн.
    CREATE TABLE IF NOT EXISTS my_table_raw
    (
    id String,
    balance Decimal128(18),
    version UInt32
    )
    ENGINE = MergeTree
    ORDER BY (id)
    SETTINGS index_granularity = 8193;


    CREATE TABLE IF NOT EXISTS my_table
    (
    id String,
    balance Decimal128(18),
    version UInt32
    )
    ENGINE = ReplacingMergeTree(version)
    ORDER BY (id)
    SETTINGS index_granularity = 8193;


    CREATE MATERIALIZED VIEW IF NOT EXISTS my_table_mv
    TO my_table
    AS
    SELECT id AS id,
    argMax(sp.balance, sp.version) AS balance,
    max(version) AS version
    FROM my_table_raw
    GROUP BY id;


    SELECT *
    FROM my_table
    WHERE balance > 10000
    --AND spp.settled_balance < 11000
    ORDER BY balance
    LIMIT 100 --OFFSET
    10000
    ;
    ```
  • https://t.me/clickhouse_ru
    @pacan1337pro #278692 02:29 PM, 11 Jul 2022
    Забыл добавить. Запрос отрабатывает, но долго.
  • Что-то подсказывает мне, что проще поместить результат в какую-то временную таблицу и уже к ней обращаться, чем делать пейджинг сразу с агрегацией
  • https://t.me/clickhouse_ru
    1. запрос возвращает неправильный результат
    правильный запрос

    SELECT id, argMax(sp.balance, sp.version) balance, max(version) AS version
    FROM my_table
    group by id
    Having balance > 10000
    ORDER BY balance
    LIMIT 100 --OFFSET
    10000

    2. магии не существует
  • https://t.me/clickhouse_ru
    @Alexey_037 #278695 02:52 PM, 11 Jul 2022
    а зачем вообще order by на таком огромном массиве данных?
  • https://t.me/clickhouse_ru
    toDateTime64 умеет даты от 1925
  • https://t.me/clickhouse_ru
    1. да, Вы правильно подправили.
    2. думал, может кто-то догадался, как индекс на костылях замутить
  • https://t.me/clickhouse_ru
    тут не сделать индекс
    по той же самой причине что и 1.
  • https://t.me/clickhouse_ru
    задача такая, но возможно ее можно переиграть на блок where...
  • У нас есть тяжелые отчеты (не в КХ, но не суть). Мы результаты сохраняем во временные таблицы, а уже по ним делаем пейджинг
  • https://t.me/clickhouse_ru
    у нас часто меняются данные и пейджинг едет сразу на фронт
  • https://t.me/clickhouse_ru
    ну вы выводите полмиллиарда строк, и пытаетесь их отсортировать. Конечно, долго будет запрос выполняться. Если убрать order by, заметно ускорится?
  • Аналогично. Но все равно ведь существует некоторый лаг. Допустим, 1 час. Или как-то так
  • https://t.me/clickhouse_ru
    у нас допустимый лаг - 5 сек
  • Тогда ой
  • https://t.me/clickhouse_ru
    а без ордера оно и не нужно =)
  • Мне вот просто интересно, а есть необходимость смотреть данные именно на 578 странице?
  • https://t.me/clickhouse_ru
    Ну это просто пейджинг.
    По возрастанию, по убыванию кусочками.
  • Я к тому, что можно ведь просто ограничить количество выводимых строк. И уже по ним гонять лимитом. Может быть, это уменьшит время
  • https://t.me/clickhouse_ru
    да, Это одна из возможных оптимизаций.
  • https://t.me/clickhouse_ru
    КХ не преспособлен для таких реалтайм запросов (быстро+пейджинг, это не ОЛАП), это надо где-нибудь в PG делать.
  • @lexandrop #278712 03:36 PM, 11 Jul 2022
    Привет. Столкнулся с неожиданным для себя поведением при использовании WITH. Версия КХ 21.2.5.5 , мб дело в этом, конечно.

    1. Делаю: SELECT date FROM stats1.events6621 LIMIT 1; - получаю строку данных из своей таблицы, всё ок.
    2. Заворачиваю это в WITH: WITH q1 AS ( SELECT date FROM stats1.events6621 LIMIT 1 ) SELECT * FROM q1; - результат идентичен пункту 1, всё ок.
    3. Упрощаю WITH ещё больше, вообще убирая оттуда БД - WITH q1 AS ( SELECT 1 ) SELECT * FROM q1;- ловлю "1", всё ок.
    4. В WITH оставляю простой SELECT 1, а нужный мне запрос выношу наружу - WITH q1 AS ( SELECT 1 ) SELECT date FROM stats1.events6621 LIMIT 1; - и получаю:
    SQL Error [62]: ClickHouse exception, code: 62, host: <ip>, port: <port>; Code: 62, e.displayText() = DB::Exception: Received from <ip>:<port>. DB::Exception: Syntax error: failed at position 12: (SELECT 1) SELECT date FROM stats1.events6621 LIMIT 1. Expected identifier. (version 21.2.5.5 (official build))

    Эти запросы - это наиболее упрощённый вариант проявления проблемы, который я смог подобрать. Это "норма", что наличие подзапроса забирает у меня возможность делать запросы к БД? Или где именно у меня там ошибка в синтаксисе?
  • https://t.me/clickhouse_ru
    возможно из-за версии, на 22.2 все ок работает
  • https://t.me/clickhouse_ru
    в 21.2.5.5 with не доделан, ну и она уже год как не поддерживается.
  • @lexandrop #278715 03:44 PM, 11 Jul 2022
    грусть-печаль. спасибо @mordschlag @den_crane
  • https://t.me/clickhouse_ru
    show create database (у базы движок Atomic или Ordinary?)
  • https://t.me/clickhouse_ru
    Ordinary
  • https://t.me/clickhouse_ru
    @floxard #278718 03:55 PM, 11 Jul 2022
    а как перечитывать серты openssl в кх?
    версия 22.3.3.44

    в конфиге сервера, с обоих сторон
    <openSSL>
    <server>
    <certificateFile>серт</certificateFile>
    <privateKeyFile>ключ</privateKeyFile>
    <caConfig>ца</caConfig>
    <verificationMode>strict</verificationMode>
    <loadDefaultCAFile>true</loadDefaultCAFile>
    <cacheSessions>true</cacheSessions>
    <disableProtocols>sslv2,sslv3</disableProtocols>
    <preferServerCiphers>true</preferServerCiphers>
    </server>
    <client> то же самое что и в server </client>
    </openSSL>
    и в конфиге словаря
    <source>
    <clickhouse>
    ... теги host,port,user,password,db,table...
    <secure>1</secure>
    </clickhouse>
    </source>

    и я получаю в system.dictionaries в поле last_exception такую красоту:
    last_exception: Code: 279. DB::NetException: All connection tries failed. Log:

    Code: 210. DB::NetException: SSL Exception: error:10000415:SSL routines:OPENSSL_internal:SSLV3_ALERT_CERTIFICATE_EXPIRED, while reading from socket (хост:порт). (NETWORK_ERROR) (version 22.3.3.44 (official build))
    Code: 210. DB::NetException: SSL Exception: error:10000415:SSL routines:OPENSSL_internal:SSLV3_ALERT_CERTIFICATE_EXPIRED, while reading from socket (хост:порт). (NETWORK_ERROR) (version 22.3.3.44 (official build))
    Code: 210. DB::NetException: SSL Exception: error:10000415:SSL routines:OPENSSL_internal:SSLV3_ALERT_CERTIFICATE_EXPIRED, while reading from socket (хост:порт). (NETWORK_ERROR) (version 22.3.3.44 (official build))

    : While executing Remote. (ALL_CONNECTION_TRIES_FAILED) (version 22.3.3.44 (official build))

    я попробовал дать HUP кх-серверу, не помогло. дал рестарт заработало
  • @satanch #278719 04:05 PM, 11 Jul 2022
    добрый вечер!

    создаю materialized view в котором в select другой materialized view
    пытаюсь в AS SELECT сделать GROUP BY, но группировки не происходит, хотя при создании таблицы кх требует чтобы я сагрегировал все поля, то есть он понимает что будет группировка, а на выходе ее нет

    это связано с этим? текст из доки: For example, if GROUP BY is set, data is aggregated during insertion, but only within a single packet of inserted data. The data won’t be further aggregated.
  • @satanch #278720 04:07 PM, 11 Jul 2022
    это получается группировку мне придется проводить каждый раз в реалтайме, так как куски данных приходят в разное время?
  • https://t.me/clickhouse_ru
    @den_crane #278721 04:14 PM, 11 Jul 2022
    в atomic такой проблемы не будет.

    Ordinary уже все, его диприкейтяд

    https://kb.altinity.com/engines/altinity-kb-atomic-database-engine/
  • https://t.me/clickhouse_ru
    Да, всё именно так. А чтобы группировка была дешевле, можно в MV взять в качестве ENGINE таблицы какой нибудь AggregatingMergeTree или может Summing, что вам больше подходит в вашем случае.
  • да, сменил на AggregatingMergeTree уже минут 5 назад, ничего не поменялось)) усердно думаю дальше
  • https://t.me/clickhouse_ru
    должно работать https://github.com/ClickHouse/ClickHouse/pull/31257
    видимо для словарей не доделали, я бы issue завел
    Merge #15765 by FArthur-cmd · Pull Request #31257 · ClickHouse/ClickHouse

    Changelog category (leave one): Improvement Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md): Merge #15765 (Dynamic reload of server TLS certificates o...

  • https://t.me/clickhouse_ru
    materialized view группирует то что было в инсерте (буффер инсерта (может даже часть инсерта))
    дальше начинает работать engine -> summing/aggregating который в мержах тоже группирует
    и да финально надо группировать в select
  • https://t.me/clickhouse_ru
    AggregatingMergeTree не мержит до упора, нету такой цели.
  • @satanch #278727 04:26 PM, 11 Jul 2022
    У меня приходят в очередь события, которые объединяет id сессии, и валидными можно считать у которых был тип ‘end’ или у которых в последнем событии время больше чем таймаут (например 15 минут). Кроном и скриптами как то такое агрегировать не хочется. :(
  • https://t.me/clickhouse_ru
    "Dynamic reload of server TLS certificates on config reload" ...
    а config reload в КХ делается как везде, HUP сигналом?
  • https://t.me/clickhouse_ru
    это лучше до заливки в КХ решпть
  • https://t.me/clickhouse_ru
    КХ следит за xml/yaml файлами и каталогами своих конфигов через inotify, и моментально перегружает когда файлы меняются

    HUP он НЕ слушает.

    есть system reload config -- на случай debug или если inotify не работает
  • @satanch #278732 06:56 PM, 11 Jul 2022
    «CH does not support correlated subqueries. Use join or union all + group by»

    это еще актуально?
  • https://t.me/clickhouse_ru
    Да
  • @satanch #278734 07:00 PM, 11 Jul 2022
    мне требуется сделать сначала GROUP BY посчитав суммы, минимумы, каунтифы по ID, а потом еще раз просуммировать свернув данные посуточно, ума не приложу как применить UNION ALL
  • спасибо
  • @satanch #278736 07:00 PM, 11 Jul 2022
    в одном случае я группирую по айди, в другом по дате
  • https://t.me/clickhouse_ru
    Так тут вообще все просто. Сделайте пример из пары строк
  • https://t.me/clickhouse_ru
    Кх умеет grouping sets
  • @satanch #278740 07:04 PM, 11 Jul 2022
    SELECT toYYYYMMDD(MIN(createdAt)) as visitDate, sessionId,
    MIN(placementId) AS placementId,
    any(placementUid) AS placementUid,
    countIf(error = 1) AS errors
    FROM example_raw_stats GROUP BY sessionId
  • @satanch #278741 07:04 PM, 11 Jul 2022
    вот здесь я сгруппировал ивенты по sessionId, получил список всех сессий, м посчитанными стоблцами
  • @satanch #278742 07:05 PM, 11 Jul 2022
    а теперь все подсчитнанное по сессия мне нужно просуммировать
  • @satanch #278743 07:05 PM, 11 Jul 2022
    пример хапроса плохой секнду
  • @satanch #278744 07:05 PM, 11 Jul 2022
    теперь за каждые сутки хотелось бы посчитать errors
  • @satanch #278746 07:07 PM, 11 Jul 2022
    если бы были подзапросы я бы запросом основанном на результатах этого запроса просуммировал результаты
  • @satanch #278747 07:08 PM, 11 Jul 2022
    возможно, я не могу решить тривиальную задачу))
  • @satanch #278748 07:16 PM, 11 Jul 2022
    WITH AS работает видимо
  • не понял, а зачем вам нужен correlated subquery, если для того, чтобы подсчитать Select visitDate, sum(errors) from <ваш запрос> group by visitDate вполне хватает обычного subquery
  • @satanch #278751 07:26 PM, 11 Jul 2022
    есть сессия, в ней есть события, бывает достаточно одного истинного значения (1) ошибки в любом из событий, чтобы засчитать ошибку для всей сессии

    например внутри 1 сессии 60 ивентов ошибок, если я буду их суммировать получу 60 ошибок, а она одна
  • @satanch #278752 07:27 PM, 11 Jul 2022
    поэтому сначала я сворачиваю до показателей каждой сессий, потом сворачиваю их по суткам
  • так сделайте max(error) as errors
    будет одна строчка со значением 1 для сессии, если хотя бы одна ошибка была, и неважно сколько их было
  • @satanch #278754 07:29 PM, 11 Jul 2022
    вообще изначально я так и хотел сделать, но «не получается»
    когда задаю два поля группировки получаю ерунду, видимо не осознаю порядок аргументов для GROUP BY
  • какие два поля? у вас же во внешнем запросе будет group by по полю, вычисляемому в подзапросе
    select visitDate, sum(errors) from (select min(createdAt) as visitDate, ... group by session_id) group by visitDate
  • @satanch #278756 07:34 PM, 11 Jul 2022
    да спасибо, я близок к цели и примерно уже понимаю)
  • @satanch #278757 07:36 PM, 11 Jul 2022
    а если WITH calculatedData AS (SELECT …)

    SELECT * FROM calculatedData?
  • @satanch #278758 07:36 PM, 11 Jul 2022
    в чем соль и разница?
  • в синтаксисе
  • @satanch #278760 07:39 PM, 11 Jul 2022
    стоимость одинаковая будет при этом?
  • по логике да, движок просто подставит код CTE вместо него в основной select
    для всего остального есть ESTIMATE и query_log )
  • @satanch #278762 07:40 PM, 11 Jul 2022
    хорошо спасибо
  • я извиняюсь за нескромный вопрос, вы же поняли, что CliсkHouse не поддерживает только correlated subquery, а обычные подзапросы вполне поддерживает.
    просто вы что-то неочевидным путем изначально пошли в ситуации "надо сделать запрос поверх результатов другого запроса"
  • да, конечно, спасибо, изначально я проигнорировал слово correlated
  • отлично )
  • https://t.me/clickhouse_ru
    @good_developer #278769 08:44 PM, 11 Jul 2022
    <default>
    <volumes>
    <hot_volume>
    <disk>fast_1</disk>
    <disk>fast_2</disk>
    </hot_volume>
    <cold_volume>
    <disk>slow_1</disk>
    <disk>slow_Х</disk>
    <disk>slow_6</disk>
    </cold_volume>
    </volumes>
    <move_factor>0.2</move_factor>
    </default>

    Начал заполнять данными
    Итого: диски в hot_volume заполнены на 100%, вставка даёт ошибки а-ля:
    Code: 1001. DB::Exception: Received from localhost:9000. DB::Exception: std::1::fs::filesystem::filesystem_error: filesystem error: in create_directory: No such file or directory ["/srv/slow-2/store/c98/c98021f1-cc27-48bd-94ae-4693697ccdc8/shard1_replica2"]. (STD_EXCEPTION)

    Часть данных уехала в процессе наполнения данными на cold_volume, но собственно на сей момент стоит колом с забитыми hot_volume дисками и ничего не делает.
    Это ок?
  • @simpl1g #278770 09:41 PM, 11 Jul 2022
    Подскажите, какие варианты есть чтобы читать данные из Apache Iceberg таблиц в КХ? Кроме варианта писать нужные данные в КХ и там читать)
  • https://t.me/clickhouse_ru
    Вам вместо пейджинга нужно офсетный подход. Загуглите что-то типа paging vs offset. Ну и применительно к SQL нужно отказаться от OFFSET, а запоминать максимальное значение баланса и подставлять его на следующей странице в WHERE тогда при ORDER BY не будут дополнительно сортироваться строки с предыдущих страниц.
  • https://t.me/clickhouse_ru
    При желании можно и в кликхаус конечно запихнуть, но наверное только в embedded rocksdb.
  • 12 July 2022 (103 messages)
  • https://t.me/clickhouse_ru
    @zak1996lesn #278774 03:47 AM, 12 Jul 2022
    Всем, привет! Сходу не гуглится. Посоветуйте, пожалуйста, где можно почитать про блокировку select запросов на таблицу, во время выполнения insert в неё и т.п. ...

    Кейс такой:

    1. Рассчитываю данные во временную таблицу (temp)
    2. Очищаю основную (truncate main)
    3. Вставляю из временной в основную (temp -> main)

    Вставка ~3min. В это время не хочу, чтобы возможно было SELECT FROM main.
    Или это и не особо нужно?
  • https://t.me/clickhouse_ru
    Нету блокировок. Вам надо просто местами менять твблицы. Exchange tables a and b. И тогда не надо вставлять в main. Или attach/replace partition.
  • https://t.me/clickhouse_ru
    Спасибо
  • https://t.me/clickhouse_ru
    @Ruslan_Ganeev #278780 08:26 AM, 12 Jul 2022
    Всем привет, а можно КХ полностью ин мемори держать только?
  • @atzedi #278781 08:28 AM, 12 Jul 2022
    зачем?)
  • https://t.me/clickhouse_ru
    @DmitryBobryakov #278784 08:59 AM, 12 Jul 2022
    Привет, начал использовать Clickhouse вместе со Спрингом, есть вопросы
    1) Как выделять подключения/клиентов
    2) Нужен ли пул подключений
    3) Как управлять многопоточкой при нагрузке
    4) Надо ли проставлять @Transactional или там под капотом всё работает норм
  • https://t.me/clickhouse_ru
    @Makasinov #278787 09:16 AM, 12 Jul 2022
    Привет! Подскажите есть ли возможность колонку с каунтером aggregateFunction альтернуть чтоб их количество уменьшилось в два раза?
  • https://t.me/clickhouse_ru
    1) не понятно что имеется ввиду
    вы https://github.com/ClickHouse/clickhouse-jdbc доку читали ?

    2) IMHO не особо нужен, под капотом JDBC драйвера- обычный HTTP протокол и JDBC драйвер вроде имеет свой threadPool

    3) нагрузка на чтение или запись? что под "управлением" подразумевается? является ли JDBC драйвер thread safe? да...

    4) в clickhouse нет транзакций. так что аннотации про транзакции. роли не будут особо играть, вм это надо учитывать при написании кода
    GitHub - ClickHouse/clickhouse-jdbc: JDBC driver for ClickHouse

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

  • https://t.me/clickhouse_ru
    количество чего должно уменьшиться в два раза?
    количество колонок?
    если да
    ALTER TABLE ... DROP COLUMN ...
  • https://t.me/clickhouse_ru
    Значение какнтера в колонке в два раза. Переезжали на новые таблицы и задублировали вставку, думаем как порезать в два раза статистику обратно
  • https://t.me/clickhouse_ru
    ну попробовать сделать мутацию

    ALTER TABLE ... UPDATE column=column / 2
  • https://t.me/clickhouse_ru
    Оно разве сработает? Там же countState хранится
  • https://t.me/clickhouse_ru
    да, не сработает

    ну тогда только новая таблица
    INSERT INTO ... SELECT из исходной
  • https://t.me/clickhouse_ru
    я надеялся что вот так сработает
    CREATE TABLE t1 (name String, cnt AggregateFunction(count, UInt64))
    ENGINE AggregatingMergeTree() ORDER BY name;

    INSERT INTO t1 SELECT concat('name', toString(number % 10)) name, countState(number) FROM numbers(1000) GROUP BY name;

    SELECT name, countMerge(cnt) FROM t1 GROUP BY name;

    SET mutations_sync=2;

    ALTER TABLE t1 UPDATE cnt = countState(countMerge(cnt) / 2) WHERE 1=1;

    SELECT name, countMerge(cnt) FROM t1 GROUP BY name;

    но нет =(
  • https://t.me/clickhouse_ru
    Я вот о том же думал. Жжжаль
  • https://t.me/clickhouse_ru
    @Archonr #278797 10:19 AM, 12 Jul 2022
    Всем привет, такой вопрос, пытаюсь сделать пользователя с ограниченными правами для определенной таблицы как тут
    https://clickhouse.com/docs/en/operations/settings/settings-users/#user-namedatabases

    <users>
    <user1>
    <password>pass</password>
    <networks incl="networks">
    <ip>127.0.0.1</ip>
    </networks>
    <profile>user1</profile>
    <quota>user1</quota>
    <default_database>prod</default_database>
    <databases>
    <prod>
    <logs_real_raw>
    <filter>id != 0</filter>
    </logs_real_raw>
    </prod>
    </databases>
    </user1>
    </users>

    но почему то он все равно может делать выборку по всем таблицам, подскажите, пожалуйста, что не так?)
  • https://t.me/clickhouse_ru
    это не ограничивает доступ к другим таблицам
    просто задает условие выборки из таблицы logs_read_raw

    чтобы ограничить доступ только к одной базе надо

    <users>
    <user1>
    <allow_databases>
    <database>my_database</database>
    </allow_databases>
    </user1>
    </users>

    но тут аккуратнее, всякие clickhouse-client или datagrip хотят еще system базу чтобы метаданные собирать
  • https://t.me/clickhouse_ru
    @Archonr #278801 10:53 AM, 12 Jul 2022
    уже разобрался, ответ - никак, нужно использовать SQL юзеров, но спасибо
  • https://t.me/clickhouse_ru
    гхм. ну вы посмотрите конечно =) allow_databases просто хуже документирована
    но да, стандартный RBAC это более современный метод работы с правами пользователей чем XML
  • https://t.me/clickhouse_ru
    попробуйте замонтировать кусок памяти в /var/lib/clickhouse
  • https://t.me/clickhouse_ru
    если бы вы использовали SimpleAggregateFunction, то скорее всего проблем бы не возникло
  • https://t.me/clickhouse_ru
    ALTER TABLE t1 UPDATE cnt = initializeAggregation('countState',finalizeAggregation(cnt) / 2) WHERE 1=1;
  • https://t.me/clickhouse_ru
    @unamedrus #278807 11:19 AM, 12 Jul 2022
    @Makasinov ^
  • https://t.me/clickhouse_ru
    о. круто
  • https://t.me/clickhouse_ru
    и конечно это не работает

    select finalizeAggregation(initializeAggregation('countState', 13));
    --
    1

    и что самое плохое -- не должно
  • https://t.me/clickhouse_ru
    @den_crane #278810 11:39 AM, 12 Jul 2022
    select finalizeAggregation(arrayReduce('countState', range(113)));
    --
    113
  • https://t.me/clickhouse_ru
    @den_crane #278811 11:40 AM, 12 Jul 2022
    но вообще не надо просто использовать countState -- потому что это почти тоже самое что sum(1) + codec T64
    (countState хранится как LEB128)
  • https://t.me/clickhouse_ru
    Да, забыл. count у нас же особенный.
  • https://t.me/clickhouse_ru
    @cmbcksrl #278813 11:44 AM, 12 Jul 2022
    народ, подскажите, пожалуйста, как можно протестить другой кодек сжатия для колонки, которая попадает в ORDER BY

    делаю, как в инструкции на Altinity, когда прописываю команду ALTER TABLE test_table UPDATE column_a=column_a, column_new=column_new WHERE 1; для своей таблицы и для своего столбца появляется ошибка Code: 420, e.displayText() = DB::Exception: Cannot UPDATE key column
  • https://t.me/clickhouse_ru
    OPTIMIZE TABLE xxx FINAL, больше никак
  • https://t.me/clickhouse_ru
    @cmbcksrl #278815 11:45 AM, 12 Jul 2022
    окей, спасибо
  • https://t.me/clickhouse_ru
    @good_developer #278817 12:06 PM, 12 Jul 2022
    При интенсивной вставке вываливаются запросы
    <Error> executeQuery: std::exception. Code: 1001, type: std::__1::__fs::filesystem::filesystem_error, e.wh
    at() = filesystem error: in create_directory: No such file or directory ["/srv/slow-6/store/c98/c98021f1-cc27-48bd-94ae-4693697ccdc8/shard1_replica2"]
    Собственно, это всё что есть в логе в момент их выпадения.
    Куда смотреть?
  • https://t.me/clickhouse_ru
    как смонтирован /srv/slow-6 ?
    какое окружение? какая OS?
  • https://t.me/clickhouse_ru
    Oracle Linux 8
    clickhouse-server-22.6.2.12
    2 сервера (реплики, ReplicatedMergeTree), данные проходят через distributed таблицу, 3 штуки киперов
    Как смонтирован - вопрос не до конца понятный, но попробую ответить, вдруг отгадаю
    /dev/nvme0n1p6 /srv/fast-1 ext4 defaults
    /dev/sdf /srv/slow-6 ext4 defaults

    Это всё потом в
    <volumes>
    <hot_volume>
    <disk>fast_1</disk>
    <disk>fast_2</disk>
    </hot_volume>
    <cold_volume>
    <disk>slow_1</disk>
    <disk>slow_х</disk>
    <disk>slow_6</disk>
    </cold_volume>
    </volumes>
    <move_factor>0.2</move_factor>
  • https://t.me/clickhouse_ru
    без всяких там виртуалок и т.п.?
  • https://t.me/clickhouse_ru
    @good_developer #278821 12:16 PM, 12 Jul 2022
    Без всяких виртуалок.
  • https://t.me/clickhouse_ru
    это точно не все, там как минимум еще stacktrace есть ... и возможно query_id в логе...
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    SELECT * FROM system.query_log WHERE query_id='2c056c2d-531e-4414-83dd-8478df111340' FORMAT Vertical

    судя по стектрейсу
    DB::DistributedSink::writeAsyncImpl
    вставляете вы в Distributed таблицу...

    SHOW CREATE TABLE actions_index_test

    ls -la /srv/slow-6/
    какой owner и group ?
  • https://t.me/clickhouse_ru
    типа у Distributed таблицы указан storage ?

    или вы нахимичили с default storage policy ?

    но похоже на баг
  • https://t.me/clickhouse_ru
    Replcated, поверх него replicatedmergetree, поверх него distributed.
    И да, в дефолт сторедж полиси именно те волюмы что я выше писал
  • https://t.me/clickhouse_ru
    @good_developer #278827 12:37 PM, 12 Jul 2022
    В дефолт сторедж нельзя указывать несколько дисков? То, что использует оно только первый волюм для большинства родных таблиц я знаю
  • https://t.me/clickhouse_ru
    покажите весь конфиг со storage
  • https://t.me/clickhouse_ru
    можно, просто видимо вы наступили на баг
  • https://t.me/clickhouse_ru
    @good_developer #278830 12:38 PM, 12 Jul 2022
    Если что - стреляет не очень часто, но бесит:)
  • https://t.me/clickhouse_ru
    @den_crane #278831 12:38 PM, 12 Jul 2022
    >то, что использует оно только первый волюм для большинства родных таблиц я знаю
    какие-то новости, никогда такого не было
  • https://t.me/clickhouse_ru
    Подмена памяти :) Взглядом пробежался по логу, куском зрения зацепил пачку таких сообщений и подумал что там несколько таблиц, а там все условно одни и те же Distributed
    StorageDistributed (tablename): Storage policy for Distributed table has multiple volumes. Only hot_volume volume will be used to store data. Other will be ignored.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Должно работать
  • https://t.me/clickhouse_ru
    Ну оно как бы работает, но если запустить генератор по ~70 столбцам из numbers(1000000000) то иногда (не всегда) выбивает его посреди наполнения с той ошибкой что уже скидывал
  • https://t.me/clickhouse_ru
    Ну про Distributed таблицы, мб можете сделать issue на гитхае
  • https://t.me/clickhouse_ru
    вообще конечно мультидиск волумы это извращение если есть возможность сделать софтверный рейд, это просто жечь деньги.

    ну я бы создал волум из одного диска и пересоздал все distributed таблицы используя этот волум.
  • https://t.me/clickhouse_ru
    @den_crane #278839 12:54 PM, 12 Jul 2022
    и заведите гитхаб issue со ссылками на pastila
  • https://t.me/clickhouse_ru
    @good_developer #278841 12:55 PM, 12 Jul 2022
    >вообще конечно мультидиск волумы это извращение если есть возможность сделать софтверный рейд
    Частично потрогав их склонен согласится - уж очень косо данные распределяет. На одном 50 гб, на другом 500гб.
    Но очень подкупало отсутствие необходимости делать raid0 на инсталяциях в 20+ дисков, ибо весь сервер переливать потом с потерей одного диска :)
  • https://t.me/clickhouse_ru
    ну там новая policy есть -- писать инсерты на менее заполненный диск
  • https://t.me/clickhouse_ru
    @392734528 #278843 12:57 PM, 12 Jul 2022
    @unamedrus @den_crane @konnectrl - Ребят спасибо вам большое за помощь! Получилось затолкать данные во вложенные структуры. И это слоило того. Объём уменьшился более чем в 2 раза (по сравнению с укладкой json в виде строки) и не пришлось плодить доп сущности.

    Осталось научиться теперь правильно запросы строить, так что я вернусь ))))
  • https://t.me/clickhouse_ru
    А тут уже вопрос в "втором" волюме, холодный который у меня. На первом распределение +- ок, а как переносить начало - то беда
  • https://t.me/clickhouse_ru
    я не уверен, может least_used и в этом случае работает
    https://github.com/ClickHouse/ClickHouse/pull/36686
    Implement least_used load balancing algorithm for disks inside volume by azat · Pull Request #36686 · ClickHouse/ClickHouse

    Changelog category (leave one): Improvement Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md): Implement least_used load balancing algorithm for disks i...

  • https://t.me/clickhouse_ru
    Спасибо, а можно эту ошибку обойти каким то образом? Такое случается если использовать initializeAggregation
    Conversion from AggregateFunction(count, Float64) to AggregateFunction(count) is not supported
  • https://t.me/clickhouse_ru
    вы читайте чат дальше, это вообще неправильно все
    (ниже обсудили)
  • https://t.me/clickhouse_ru
    @ElijahCrane #278852 01:30 PM, 12 Jul 2022
    какие-то несексуальные бёдра, к тому же мужские
  • https://t.me/clickhouse_ru
    @nadirius #278853 01:31 PM, 12 Jul 2022
    Упс кнопки нажались )))
  • @billsaber123 #278854 01:32 PM, 12 Jul 2022
    Всем привет, я уже раньше обращался с подобным вопросом и даже создал тут issue - https://github.com/ClickHouse/ClickHouse/issues/38270, но что-то до конца я так и не понял верный алгоритм в моем кейсе.

    Кейс такой, изначально есть 4 clickhouse ноды (2 shard x 2 replica), на 3ех из них рядом с clickhouse работает clickhouse-keeper.
    Предположим, что по какой-то причине одна нода временно умерла (нода, где так же работал clickhouse keeper), кластер продолжает работать (2 кипера по прежнему живут).

    Дальше я хочу включить потухшую ноду в clickhouse cluster, а так же обратно добавить эту ноду в clickhouse keeper кластер. Предположим, нода после восстановления имеет новый ip адрес, соответственно мне нужно обновить конфигурацию у всех участников: <keeper_server>, <zookeeper>, <remote_servers> секции.

    Дальше пробую стартовать (clickhouse restart/start) на всех нодах:

    1. В логах вижу в целом причину, ноды стучаться в старый ip адрес, не могу понять почему не учитываются обновленные конфиги, где указал новый ip адрес?
    2. Так же нашел лог, который отчасти поясняет ситуацию
    Config will be ignored because a server with ID 1 is already present in the cluster on a different endpoint (old_instance_ip:9444). The endpoint of the current servers should not be changed. For servers on a new endpoint, please use a new ID.

    Выходит, если я хочу добавить нового участника с новым ip я должен так же изменить server_id в
    <clickhouse>
    <keeper_server>
    <server_id>new_server_id</server_id>
    </keeper_server>
    </clickhouse>?
    Clickhouse doesn't use actual clickhouse-keeper configuration · Issue #38270 · ClickHouse/ClickHouse

    Hey, guys At the moment I am setting up a CH cluster via clickhouse-keeper. Cluster consists of 4 nodes (EC2): 2 shards x 2 replicas. Thus, in general, I have 4 nodes, on 3 of which I also launch c...

  • https://t.me/clickhouse_ru
    > не могу понять почему не учитываются обновленные конфиги, где указал новый ip адрес?
    структура ансамбля хранится в базе кипера

    >Выходит, если я хочу добавить нового участника с новым ip я должен так же изменить server_id в
    кажется да @salttan ?
  • > конфиги, где указал новый ip адрес?
    да, конфиги с обновленным ip подкинул всем участникам, старый больше нигде не фигурирует с точки зрения настроек
  • https://t.me/clickhouse_ru
    @salttan #278857 01:38 PM, 12 Jul 2022
    Я не меняла набор серверов у кипера, не знаю.
    Но судя по сообщению, да, надо другой ID
  • https://t.me/clickhouse_ru
    @salttan #278858 01:39 PM, 12 Jul 2022
    В смысле, я не меняла один сервер на другой.
    Я добавляла новый.
  • @billsaber123 #278859 01:41 PM, 12 Jul 2022
    Спасибо @salttan, @den_crane
    Попробую просто новый ID подкидывать тогда.
  • https://t.me/clickhouse_ru
    @ablagov #278860 02:21 PM, 12 Jul 2022
    всем привет, есть clickhouse (22.1.3.7) из 3 реплик, zookeper кластер стоит отдельно и состоит из 3 серверов.

    на одной из реплик кх ночью отвалилась сессия с zk -
    last_queue_update_exception: Code: 999. Coordination::Exception: Session expired (Session expired). (KEEPER_EXCEPTION) (version 22.1.3.7 (official build))

    лог с zk -
    2022-07-11 22:54:03,374 [myid:2] - INFO [SessionTracker:ZooKeeperServer@398] - Expiring session 0x300000016650005, timeout of 30000ms exceeded
    2022-07-11 22:54:03,374 [myid:2] - INFO [SessionTracker:QuorumZooKeeperServer@157] - Submitting global closeSession request for session 0x300000016650005

    дальше сделал на ноде кх рестарт реплики таблицы (движок таблицы - ReplicatedCollapsingMergeTree) -
    system restart replica database.table;

    и вот уже 6 с половиной часов этот запрос выполняется, в system.replication_queue есть 12 строк с
    type: MERGE_PARTS
    которые не меняются все 6 часов.

    по запросу
    SELECT
    database,
    table,
    type,
    max(last_exception),
    max(postpone_reason),
    min(create_time),
    max(last_attempt_time),
    max(last_postpone_time),
    max(num_postponed) AS max_postponed,
    max(num_tries) AS max_tries,
    min(num_tries) AS min_tries,
    countIf(last_exception != '') AS count_err,
    countIf(num_postponed > 0) AS count_postponed,
    countIf(is_currently_executing) AS count_executing,
    count() AS count_all
    FROM system.replication_queue
    GROUP BY
    database,
    table,
    type
    ORDER BY count_all DESC
    FORMAT Vertical

    ответ такой -
    Row 1:
    ──────
    database: database
    table: table
    type: MERGE_PARTS
    max(last_exception):
    max(postpone_reason):
    min(create_time): 2022-03-25 11:50:15
    max(last_attempt_time): 2022-06-13 17:53:20
    max(last_postpone_time): 1970-01-01 03:00:00
    max_postponed: 0
    max_tries: 1
    min_tries: 1
    count_err: 0
    count_postponed: 0
    count_executing: 12
    count_all: 12

    мне дальше ждать или предпринимать какие-то действия?
  • https://t.me/clickhouse_ru
    а progress меняется ?
    select * from system.merges
  • https://t.me/clickhouse_ru
    я бы перезрузил КХ
    и я бы обновился до 22.3.8
  • https://t.me/clickhouse_ru
    зафиксировал текущие значения progress , проверю через несколько минут
  • https://t.me/clickhouse_ru
    перезагрузка на всех нодах? эта очередь в replication_queue на всех трёх одинаковая
  • https://t.me/clickhouse_ru
    select * from system.replication_queue
  • https://t.me/clickhouse_ru
    12 строк такого вида -
    database: database
    table: table
    replica_name: node1
    position: 11
    node_name: queue-0027499653
    type: MERGE_PARTS
    create_time: 2022-06-13 17:53:20
    required_quorum: 0
    source_replica: node3
    new_part_name: 202112_0_420933_299_530665
    parts_to_merge: ['202112_0_38524_157_530665','202112_38525_141124_203_530665','202112_141125_200161_179_530665','202112_200162_420933_298_530665']
    is_detach: 0
    is_currently_executing: 1
    num_tries: 1
    last_exception:
    last_attempt_time: 2022-06-13 17:53:20
    num_postponed: 0
    postpone_reason:
    last_postpone_time: 1970-01-01 03:00:00
    merge_type: REGULAR
  • https://t.me/clickhouse_ru
    прошло 25 минут, progress не изменился ни у кого
  • https://t.me/clickhouse_ru
    @ilya7k #278869 03:09 PM, 12 Jul 2022
    Привет, подскажите почему в clickhouse-client автоматически добавяется символ табуляции при вводе, это портит вывод в консоли
  • https://t.me/clickhouse_ru
    рестартуйте КХ
  • https://t.me/clickhouse_ru
    спасибо, пойду пробовать
  • https://t.me/clickhouse_ru
    в смысле в виндоус ?

    https://github.com/ClickHouse/ClickHouse/issues/35501
    CLI is broken starting with v22.3 · Issue #35501 · ClickHouse/ClickHouse

    Cli is broken starting with v22.3-lts: When I try to copy-paste multiline sql query, clickhouse-client (launched with -m flag ofc) goes insane and breaks query: CREATE TABLE test ( Date Date, user_...

  • https://t.me/clickhouse_ru
    помогло, реплика теперь в строю, но в system.merges
    остались те же записи, с теми же progress.

    Но видно что у таблицы ещё много дел для репликации -
    queue_size: 77
    inserts_in_queue: 65
    merges_in_queue: 12
  • https://t.me/clickhouse_ru
    https://pastila.nl/ надо со всех серверов merges и replication_queueu --> format Vertical
  • https://t.me/clickhouse_ru
    @ilya7k ↶ Reply to #278872 #278875 03:29 PM, 12 Jul 2022
    Поправил <prompt_by_server_display_name> в конфиге клинта, все заработало. Видимо как-то криво интерпретировались спец символы.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    т.е. мержи висят на 100% и не могут завершиться, грепайте лог КХ, я не видел/не понмю такого, скорее всего там ошибки про зукипер
  • https://t.me/clickhouse_ru
    @normalni_kadr #278882 04:25 PM, 12 Jul 2022
    Всем привет, подскажите, а когда будет поддержка синтаксиса рекурсии при подключении через драйвер MySQL
  • https://t.me/clickhouse_ru
    @normalni_kadr #278883 04:25 PM, 12 Jul 2022
    И планируется ли, такой функционал?
  • https://t.me/clickhouse_ru
    так нет такого синтаксиса. Про что вообще вопрос? recursive cte?
  • https://t.me/clickhouse_ru
    @normalni_kadr #278885 04:27 PM, 12 Jul 2022
    Wuth recurcive as cteTree
  • https://t.me/clickhouse_ru
    @normalni_kadr #278886 04:27 PM, 12 Jul 2022
    К примеру
  • https://t.me/clickhouse_ru
    планируется в далеком будущем, смысла <0 для OLAP
  • https://t.me/clickhouse_ru
    @normalni_kadr #278888 04:28 PM, 12 Jul 2022
    Понял, спасибо большое за ответ)
  • https://t.me/clickhouse_ru
    спасибо, после нескольких рестартов очередь пришла в прошлое состояние и реплика стала актуальной по данным.
    а те мержи, которые не могут завершиться, видимо, были ещё до поломки с зк
  • @s4851 #278896 07:55 PM, 12 Jul 2022
    Добрый вечер! Подскажите, хочу материализовать колонку в таблице на основе другой колонки
    Хочу использовать конструкцию ALTER TABLE table MATERIALIZE COLUMN col;
    Вопрос в том как написать выражение, чтобы из колонки в которой хранится url вида
    'api.service.ru/operations/sync?endpointId=project&operation=Offline.Authorize'
    В новую колонку хочу чтобы записалось Offline.Authorize
    С помощью функции extractURLParameters(url) получил
    ['endpointId=project','operation=Offline.Authorize']
    Но как написать конечную функцию?
  • https://t.me/clickhouse_ru
    колонка уже col уже есть?
    как она описана?
  • @s4851 #278898 08:18 PM, 12 Jul 2022
    ее нет
  • @s4851 #278899 08:19 PM, 12 Jul 2022
    предполагаю добавление новой и стобы она заполнилась для всех строк таблицы на основе другой колонки
  • @s4851 ↶ Reply to #278897 #278900 08:21 PM, 12 Jul 2022
    есть только колонка url которая содержит строку вида 'api.service.ru/operations/sync?endpointId=project&operation=Offline.Authorize'
  • https://t.me/clickhouse_ru
    типа надо

    SELECT
    'api.service.ru/operations/sync?endpointId=project&operation=Offline.Authorize' AS url,
    extract(extractURLParameters(url)[2], '.*=(.*)') AS x

    Query id: c1dc099e-a46d-4115-a77d-6776bb00e9b9

    Row 1:
    ──────
    url: api.service.ru/operations/sync?endpointId=project&operation=Offline.Authorize
    x: Offline.Authorize
  • @s4851 #278902 08:22 PM, 12 Jul 2022
    Выродил вот так
    operation String MATERIALIZED substr(arrayElement(extractURLParameters(resource),2),11)
    Но ваш вариант красивее
  • @zhora9001 #278903 08:25 PM, 12 Jul 2022
    Наверное, лучше смазать arrayFilter/arrayFirst по имени параметра, ведь поменяться порядок в урле может теоритически в новых записях
  • https://t.me/clickhouse_ru
    extractURLParameter(url, 'operation')
  • @s4851 ↶ Reply to #278905 #278906 08:37 PM, 12 Jul 2022
    Супер! Спасибо!
  • 13 July 2022 (252 messages)
  • @5253152590 #278907 03:51 AM, 13 Jul 2022
    🤩 New #listing

    ✨ $FOF(Future of Fintech) will be listed on LBank!
    @FOFCoin on Twitter

    FOF Coin by Ngel Partners Pte. Ltd., will be one of the most versatile cryptocurrency tokens.

    👉 Details: https://bit.ly/3IuWh8E

    📌 Twitter: https://twitter.com/LBank_Exchange/status/1545286581686345730?s=20&t=FaQauEIPNtqrSu1dYLHtaw

    💻 Registration: https://bit.ly/3wTznCx
    📱Android Mobile: https://bit.ly/LBankGooglePlay
    📱IOS Mobile: https://bit.ly/LBankappstore
    Link

    🤩 New #listing ✨ $FOF(Future of Fintech) will be listed on LBank! @FOFCoin FOF Coin by Ngel Partners Pte. Ltd., will be one of the most versatile cryptocurrency tokens. 👉 Details: https://t.co/J3ujbyBrqj

  • https://t.me/clickhouse_ru
    @Krisantis #278910 06:20 AM, 13 Jul 2022
    Всем здравствуйте, а подскажите мануал по смене движка бд с ordinary на atomic?
  • https://t.me/clickhouse_ru
    На сайте altinity есть
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    спасибо =)
  • @dolso #278916 07:18 AM, 13 Jul 2022
    Всем привет! После обновления clickohuse c версии 20.3.8.53 на 22.6.3.35 столкнулся с тем, что UUID всех партиций приравнялись к "00000000-0000-0000-0000-000000000000". Влияет ли это на корректную работоспособность вообще? Заранее спасибо!
  • https://t.me/clickhouse_ru
    @suxxoi #278919 09:25 AM, 13 Jul 2022
    Проблема:
    Не записывается часть кликов

    В сервис летят клики
    Используем async_insert
    На входе в сервис и графиках количество кликов правильное
    Специально даже паралельно сохраняю в postgres клики и туда все долетает
    Запрос в логи показывает тоже правильные цифры, что все клики прилетели
    SELECT count(*)
    FROM system.query_log
    WHERE type = 'QueryFinish'
    AND query_kind = 'Insert'
    AND tables = ['clicks']
    AND query_start_time > '2022-07-13 09:00:00';

    Но в таблице часть кликов не доехала

    Подскажите можно ли в где то посмотреть логи вставок в таблицу?
    Может в чем то другом дело?
  • https://t.me/clickhouse_ru
    @exproment #278921 09:27 AM, 13 Jul 2022
    Ребят, подскажите норм IDE под мак ? Чтоб можно было планы смотреть, тестить селектики и тп. Запарился в VS code на голимых расширениях.
  • https://t.me/clickhouse_ru
    @normalni_kadr #278922 09:27 AM, 13 Jul 2022
    Datagrip
  • https://t.me/clickhouse_ru
    DataGrip, dbeaver
  • https://t.me/clickhouse_ru
    @normalni_kadr #278924 09:27 AM, 13 Jul 2022
    Попробуй
  • https://t.me/clickhouse_ru
    @exproment #278925 09:28 AM, 13 Jul 2022
    норм, datagrip попробую. Спосебо)
  • https://t.me/clickhouse_ru
    @kernel_panic228 #278926 09:31 AM, 13 Jul 2022
    Всем привет! Имеется мини-кластер ClickHouse в Kubernetes - 2 реплики и 2 шарда. У одного шарда (у обоих реплик) полностью потерялись данные на дисках. Теперь не могу вернуть их в строй: при попытке восстановить данные через SYSTEM SYNC REPLICA test_table получаю ошибку, что таблицы не существует. и это правда. А при попытке создать эту таблицу получаю ошибку Cannot enqueue query on this replica, because it has replication lag of 60 queries. Try other replica.. (NOT_A_LEADER), причём ошибка одинаковая на обоих репликах, если пробую создать эти таблицы на "живых" хостах через ON CLUSTER, то получаю ошибку DB::Exception: There are two exactly the same ClickHouse instances test.local in cluster public. (INCONSISTENT_CLUSTER_DEFINITION). Подскажите, кто что знает.. Может есть какая-то развёрнутая инструкция..
    version 22.3.3.44 (official build)
  • https://t.me/clickhouse_ru
    Привет Егор ! Датагрип - норм. У дибивера есть проблемы с отображением массивов и кортежей. Ну и с таймзоной он как-то странно работает. Приходится конфиг самого дибивера править )))
  • @l_dar #278930 10:05 AM, 13 Jul 2022
    Здравствуйте, подскажите, как отследить Async Inserts. Как будто не работает
    Включил настройку, но кликхаус все равно пестрит

    <Error> AsynchronousInsertQueue: Failed insertion for query 'INSERT INTO rtb.request FORMAT JSONEachRow': Code: 252. DB::Exception: Too many parts (903). Merges are processing significantly slower than inserts. (TOO_MANY_PARTS), Stack trace (when copying this message, always include the lines below):
    executeQuery: Code: 252. DB::Exception: Too many parts (903). Merges are processing significantly slower than inserts: While executing WaitForAsyncInsert. (TOO_MANY_PARTS) (version 22.5.2.53 (official build))

    Настроил так:
    <async_insert>1</async_insert>
    <wait_for_async_insert>1</wait_for_async_insert>
    <async_insert_max_data_size>2000000</async_insert_max_data_size>
    <async_insert_busy_timeout_ms>4000</async_insert_busy_timeout_ms>

    На сколько понимаю асинхронная вставка должна была решить проблему.
    Или я во что то другое упираюсь
  • https://t.me/clickhouse_ru
    @konnectrl #278932 11:55 AM, 13 Jul 2022
    Приветствую, через clickhouse_dirver для Python'a хотим 900 тысяч значений положить в IN это возможно ? Просто у нас лимит в 15 тысяч значений
  • @1816315699 #278933 11:56 AM, 13 Jul 2022
    How about different columns of mergeState
  • https://t.me/clickhouse_ru
    ClickHouse

    ClickHouse DBMS discuss and help

  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Спасибо, что то забыл про такой механизм в КХ
  • https://t.me/clickhouse_ru
    так раньше их вообще не было.

    это из-за/для фичи, которая выключена по умолчанию, поэтому они 00000
    фича экспериментальная -- сделанная наполовину, позволяет перемещать парты между шардами.
  • https://t.me/clickhouse_ru
    а по какому протоколу вставляете то ?
    и где настроили в default профиле или еще в каком то месте?
  • @l_dar ↶ Reply to #278940 #278941 12:43 PM, 13 Jul 2022
    Вставляю по http
    Настроил да, в default.
    В таблице settings вижу настройки
  • https://t.me/clickhouse_ru
    <async_insert_busy_timeout_ms>4000</async_insert_busy_timeout_ms>
    а чего таймаут большой?
    хотите много коротких query чтобы 4 секунды ждали и типа побольше накопилось?

    проверьте насколько большими парты создаются
    SELECT quantiles(0.5,0.9)(rows), count() new_parts FROM system.part_log WHERE event_date=today() AND table='your_db.your_table' AND event_type='NEW_PART';
  • @dolso ↶ Reply to #278939 #278943 12:56 PM, 13 Jul 2022
    Спасибо большое за ответ!
  • https://t.me/clickhouse_ru
    есть такая штука как дедупликация вставки

    https://kb.altinity.com/altinity-kb-schema-design/insert_deduplication/
    Insert Deduplication / Insert idempotency

    Insert Deduplication / Insert idempotency , insert_deduplicate setting.

  • https://t.me/clickhouse_ru
    похоже диски потерялись?

    кубер или кубер + operator ?
  • https://t.me/clickhouse_ru
    половина этих настроек нуждается в рестарте КХ
  • https://t.me/clickhouse_ru
    @Margarita_3M #278947 01:06 PM, 13 Jul 2022
    Привет. Подскажите, какой есть воркэраунд для nth_value (это оконная функция)? Джойны таблицы самой с собой - не проходят, уже пробовала
  • https://t.me/clickhouse_ru
    @suxxoi ↶ Reply to #278944 #278948 01:07 PM, 13 Jul 2022
    Спасибо, но нашел проблему, спец символ попадал в строку
    (Code: 62. DB::Exception: Cannot parse expression of type LowCardinality(String) here: 'd'Azur')

    Но все равно вопрос, как смотреть такие логи для асинхронных вставок?

    Поменял в приложении запись построчно без async и эта ошибка записалась в system.query_log

    А вот при async_insert, не могу найти где такие ошибки пишутся
  • https://t.me/clickhouse_ru
    Так есть такая в кх
  • https://t.me/clickhouse_ru
    Да, данные на дисках двух нод потерялись.
    Кубер.
  • https://t.me/clickhouse_ru
    так не должен такой инсерт проходить даже асинхронный

    или у вас fire and forget ?
  • https://t.me/clickhouse_ru
    system.asynchronous_inserts ?
  • https://t.me/clickhouse_ru
    @suxxoi ↶ Reply to #278951 #278953 01:25 PM, 13 Jul 2022
    fire and forget нет

    Я про то что хочу видеть логи ошибок при асинхронной вставке
  • https://t.me/clickhouse_ru
    @suxxoi ↶ Reply to #278952 #278954 01:26 PM, 13 Jul 2022
    Там пусто, но наверное как то можно включить логи туда?
  • @l_dar ↶ Reply to #278942 #278955 01:48 PM, 13 Jul 2022
    Было 2000, ошибки так и сыпали, поставил 4000, ничего не изменилось.

    По поводу, part_log только включил, спустя 10 мин, вижу такой результат
    "[9113,17839]",17
  • @l_dar ↶ Reply to #278946 #278956 01:49 PM, 13 Jul 2022
    Ага, перезагружал. Все равно
  • https://t.me/clickhouse_ru
    ну вроде не по одной записи вставляете...
    непонятно почему мержиться не успевает...
  • https://t.me/clickhouse_ru
    ну вы по system.parts посмотрите сколько у вас сейчас партов
    и по part_log гляньте вообще сколько событий и какие event_type для таблицы регистрируются... может так проще будет
  • https://t.me/clickhouse_ru
    не воспроизводится

    echo "insert into insert_test values (1, 'aaa'a')"|curl 'http://localhost:8123?async_insert=1' --data-binary @-
    Code: 62. DB::Exception: Cannot parse expression of type LowCardinality(String) here: 'aaa'a')
    : While executing WaitForAsyncInsert. (SYNTAX_ERROR) (version 22.7.1.1054)

    echo "insert into insert_test values (1, 'aaa'a')"|curl 'http://localhost:8123?async_insert=1&wait_for_async_insert=0' --data-binary @-
  • @l_dar ↶ Reply to #278957 #278960 01:51 PM, 13 Jul 2022
    как будто после обновления такое произошло, но не уверен
  • @l_dar ↶ Reply to #278958 #278961 01:51 PM, 13 Jul 2022
    ок
  • https://t.me/clickhouse_ru
    @shakhov #278962 01:51 PM, 13 Jul 2022
    Всем добрый день. Возможно глупый вопрос... Есть ли настройка или что-то такое, чтобы запросы не съедали всю оперативку и, если ее не хватает, то приостанавливались и ждали своей очереди?
  • https://t.me/clickhouse_ru
    @Alexey_037 #278963 01:52 PM, 13 Jul 2022
    А почему они съедают? Как правило, неоптимальные запросы лопают очень много, ну и join часто )
  • https://t.me/clickhouse_ru
    а чем инсерты делаете?
  • https://t.me/clickhouse_ru
    нету такой фичи, в разработке
  • https://t.me/clickhouse_ru
    @shakhov #278966 01:52 PM, 13 Jul 2022
    сегодня приходится делать тяжелые запросы с внешним групбаем и распределением, но стоит какому-то скрипту отработать и сделать запрос, то все падает
  • @l_dar ↶ Reply to #278964 #278967 01:53 PM, 13 Jul 2022
    в php через Curl, там тоже немного буфферизирую запросы
  • https://t.me/clickhouse_ru
    будем надеяться: скоро выйдут
  • https://t.me/clickhouse_ru
    большие таблицы с сырыми данными, которые агрегируются
  • https://t.me/clickhouse_ru
    а инсерты зависают на 4 сек?

    JSONEachRow -- у вас набор полей в json одинаковые? Если разные, то такие инсерты не будут объединяться
  • https://t.me/clickhouse_ru
    У меня просто на днях был случай, когда arrayFilter над arrayMap отъедал 80 Гигов. Переделал на arrayFilter без arrayMap - перестал кушать память. Поэтому и спросил, действительно ли запросы тщательно оптимизированы.
  • https://t.me/clickhouse_ru
    ну по скриншоту выше я показал что запросы хоть и тяжелые, но память не жрут, потому как стоят ограничения. Но стоит прилететь какому-то запросу (какой-нибудь коллега зашел в DataLens, запустил "тяжелый график") и все падает
  • https://t.me/clickhouse_ru
    @ilejn ↶ Reply to #278965 #278973 01:59 PM, 13 Jul 2022
    Denny, можно ссылочку на pr или на какое-то обсуждение, если не сложно?
  • https://t.me/clickhouse_ru
    Memory overcommit: continue query execution if memory is available by novikd · Pull Request #35637 · ClickHouse/ClickHouse

    Changelog category (leave one): Improvement Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md): If the required amount of memory is available before the ...

  • https://t.me/clickhouse_ru
    @unamedrus #278975 02:12 PM, 13 Jul 2022
    Наверно эта
  • https://t.me/clickhouse_ru
    уже есть вот такое https://youtu.be/jkXmXrmjaKQ?t=1866
    насколько я понял это только начало
  • https://t.me/clickhouse_ru
    @suxxoi ↶ Reply to #278959 #278977 02:21 PM, 13 Jul 2022
    Удивительно, у меня все также не выдается

    Я пробую

    CREATE TABLE IF NOT EXISTS tests
    (
    id String,
    value LowCardinality(String),
    sign Int8,
    version UInt64
    )
    ENGINE = VersionedCollapsingMergeTree(sign, version)
    ORDER BY (id);

    echo "insert into tests values ('id1', 'aaa'a', 1, 443443)"|curl 'http://localhost:8123?async_insert=1&wait_for_async_insert=0' --data-binary @-
  • https://t.me/clickhouse_ru
    wait_for_async_insert=0 --- ?
  • https://t.me/clickhouse_ru
    @suxxoi ↶ Reply to #278979 #278980 02:26 PM, 13 Jul 2022
    Да, но сейчас пробую на самой свежей версии
    Была 22.3
  • https://t.me/clickhouse_ru
    нет, это так и задумано, чего вы хотите от wait_for_async_insert=0
    он сразу возвращает управление
    любой мусор можно инсертить
  • https://t.me/clickhouse_ru
    @suxxoi ↶ Reply to #278981 #278983 02:28 PM, 13 Jul 2022
    If true wait for processing of asynchronous insertion

    Ааа, получается надо наоборот 1 ставить
  • https://t.me/clickhouse_ru
    @nadirius #278984 02:29 PM, 13 Jul 2022
    подскажите где включить NLP функции в частности allow_experimental_nlp_functions = 1
  • https://t.me/clickhouse_ru
    @Humboldt155 #278985 02:41 PM, 13 Jul 2022
    Всем привет! Возможно, немного странный вопрос. У нас используется 3 реплики, и когда я создаю таблицу с движком ReplicatedMergeTree, должен ли я создавать таблицу отдельно на каждой из реплик?
  • https://t.me/clickhouse_ru
    если не используется create table .. on cluster или replicated движок таблицы, то придётся на каждой реплике отдельно
  • https://t.me/clickhouse_ru
    @suxxoi ↶ Reply to #278981 #278987 02:48 PM, 13 Jul 2022
    Да сейчас показывает, спасибо
  • @AstDoom #278988 02:50 PM, 13 Jul 2022
    подскажите плиз
    как обойти ошибку (Missing columns: 'object.test1') в Object('json')?

    create table events (
    object JSON
    )

    insert into events (object) format TSV {"test":"test"};

    select * from events
    where object.test1 = 'test'; -- mismatch (test1 -> test) or absent

    select * from events
    where object.test = 'test'; -- ok
  • https://t.me/clickhouse_ru
    Спасибо!
  • @milovidov_an #278991 04:08 PM, 13 Jul 2022
    Мы обновили бенчмарки для баз данных, теперь намного больше информации, и интересно исследовать разные результаты: https://benchmark.clickhouse.com/
  • None
  • @dj_mixer #278993 04:19 PM, 13 Jul 2022
    на минутку словил паник-аттак когда не увидел железные бенчмарки, а нет, просто спрятали =)
  • https://t.me/clickhouse_ru
    @387452444 #278994 04:33 PM, 13 Jul 2022
    прям EPYCчный бенчмарк получился )
  • https://t.me/clickhouse_ru
    @392734528 #278996 04:44 PM, 13 Jul 2022
    with data as (
    Select
    'id' as id,
    123 as count1,
    321 as count2
    )
    select
    field1,
    count(field2) as cnt,
    (select count1 from data),
    (select count2 from data)
    where id = (select id from data)

    Ребт можно ли в таком запросе на лету склеить в словарь все значения
    map(field1, count(field2) as cnt)
    чтобы на выходе мне 1 строка вернулась со все разблюдовкой.
  • https://t.me/clickhouse_ru
    круть. даже SingleStore добавили
  • @1295770065 #278999 04:58 PM, 13 Jul 2022
    Парни привет, подскажите пожалуйста, может есть под рукой clickhouse_remote_server.xml с настройкой перекрёстного кластера 2 шарда 2 реплики.
  • https://t.me/clickhouse_ru
    можно в 3 местах, прямо в запросе например дописав settings allow_experimental_nlp_functions=1 в конце
  • https://t.me/clickhouse_ru
    никак. Нету такой субколонки.
  • https://t.me/clickhouse_ru
    не бывает перекрёстного кластера, мы такое не одобряем
  • https://t.me/clickhouse_ru
    типа из

    'id' AS id, 123 AS count1, 321 AS count2

    надо получить?

    id 123 1
    id 321 1

    WITH data AS
    (
    SELECT
    'id' AS id,
    123 AS count1,
    321 AS count2
    )
    SELECT
    id,
    arrayJoin([count1, count2]) AS c,
    count()
    FROM data
    GROUP BY
    1,
    2

    ┌─id─┬───c─┬─count()─┐
    │ id │ 123 │ 1 │
    │ id │ 321 │ 1 │
    └────┴─────┴─────────┘
  • Ещё недавно у SingleStore была позорная ремарка о том, что делать бенчмарки нельзя. Но они её убрали недавно, и результаты получаются очень даже приличные.
  • @milovidov_an #279005 05:53 PM, 13 Jul 2022
    Из вендоров с позорными ремарками есть Vertica, Bigquery. Так что я их тоже добавил в сравнение, когда подготавливал результаты, но перед публикацией приходится убирать.
  • https://t.me/clickhouse_ru
    Я поэтому и обратил внимание. Тем не менее результаты у них хоть и хуже раз в 5, но всё же не настолько плохо, как можно было себе нафантазировать.
  • https://t.me/clickhouse_ru
    а можно опубликовать на стороннем ресурсе? Очень глянуть хочется в сравнении с вертикой )
  • https://t.me/clickhouse_ru
    Страшно представить, что там у вертики :)
  • Они всё-таки запрещают публикацию бенчмарков. Если честно, там результат не особо интересный. Всё на уровне, все запросы успешно выполнились... но кажется, хуже SingleStore.
  • @milovidov_an #279011 06:14 PM, 13 Jul 2022
    Больше поводом для беспокойства является то, что Vertica сейчас принадлежит компании Microfocus - то есть, если даже будет развиваться, то только мелкими поползновениями. То же самое касается и всего от Cloudera. И туда же, к сожалению, идёт Greenplum.
  • https://t.me/clickhouse_ru
    И на этом спасибо)
  • а databricks тоже запрещают? есть какие-то результаты?
  • https://t.me/clickhouse_ru
    @tatyana_rum #279014 06:20 PM, 13 Jul 2022
    Город и адрес офиса: Москва, МГУ
    Формат работы: возможна удаленка
    Занятость: полная или частичная (не менее 50% времени)
    #вакансия #fulltime #parttime #москва
    Описание вакансии: Администратор баз данных в научный проект МГУ.
    Поддержание и развитие высокопроизводительной платформы для агрегации результатов полногеномных исследований (GWAS-MAP).
    Платформа реализована на основе СУБД Clickhouse и PSQL на своих серверах.
    Основная таблица в Clickhouse занимает 8 Tb.
    PSQL используется как справочная БД.

    Задачи:
    - оптимизация процессов хранения и обработки информации
    - создание ТЗ на ПО для новых задач
    - внедрение ПО
    - консультации по работе с БД
    - координация и/или осуществление загрузки новых данных в БД

    Пожелания к кандидатам:
    - Опыт администрирования СУБД PostgreSQL и Clickhouse.
    - Навык оптимизации производительности СУБД.
    - Знания языка запросов SQL, опыт оптимизации SQL запросов.
    - Опыт администрирования ОС Linux.
    - Желательно знание языка программирования Python.
    Описание вакансии https://blastim.ru/job/4180/
    Контакт https://t.me/tatyana_rum
    Администратор баз данных Clickhouse и Postgresql - Бластим

    Бластим HR помогает найти грамотного и опытного администратора баз данных, который знает СУБД Clickhouse и Postgresql, для команды молодых, целеустремленных научных сотрудников и разработчиков. Один из текущих проектов – создание, развитие и наполнение высокопроизводительной платформы GWAS-MAP для сбора, хранения, анализа, визуализации и доступа к базе данных суммарных статистик полногеномных исследований ассоциаций. База данных на текущей

  • Databricks не запрещают. Её я не успел проверить. Надо добавить, и кстати, с этим можно помочь - надо просто сделать по аналогии с другими системами и добавить в репозиторий https://github.com/ClickHouse/ClickBench
    GitHub - ClickHouse/ClickBench: ClickBench: a Benchmark For Analytical Databases

    ClickBench: a Benchmark For Analytical Databases. Contribute to ClickHouse/ClickBench development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @387452444 #279016 06:25 PM, 13 Jul 2022
    Датабрикс интересно проверить Photon
  • https://t.me/clickhouse_ru
    не. Вот так хочу: в одну строку
    {field1,count(field2) as cnt } - тут все значения в кучу
    ,(select count1 from data), (select count2 from data)
  • @simpl1g #279018 07:13 PM, 13 Jul 2022
    @milovidov_an а пункт ClickHouse operating like "Athena" ещё просто не готов?

    Интересно было бы иметь поддержку чтения из delta lake/iceberg форматов
  • Ещё не готов, хотя можно пробовать clickhouse-local поверх кучи файлов parquet на s3. А вот Iceberg и Hudi не поддерживаются.
  • https://t.me/clickhouse_ru
    надо получить?

    id 123 1
    id 321 1
  • https://t.me/clickhouse_ru
    Посмотрел на роадмап YDB на год и пустил слезу. В кликхаусе в одном релизе больше фичей чем у них на год планируется. Очень медленная разработка и мало уделяется внимания скорости.
    Возьмите их под своё крыло и сделайте Single House :) денег у вас вроде хватает, а так будет куда расти.
  • https://t.me/clickhouse_ru
    Да я бы так не сказал, у них довольно много крупных задач там на самом деле.
  • К Roadmap надо относиться аккуратно, он может быть более или менее оптимистичным, а самые крутые фичи можно держать в рукаве. Нам удаётся выполнять свой собственный roadmap процентов на 70%.
  • https://t.me/clickhouse_ru
    В общем я понял, что singleHouse мне не видать. Пойду ещё раз пощупаю singleStore
  • https://t.me/clickhouse_ru
    А что из себя должен представлять singleHouse? Гибрид OLTP и OLAP? Такое уже есть, в каком-то виде, MariaDB ColumnStore есть в бенчмарках
  • https://t.me/clickhouse_ru
    Есть, но у неё слишком хреновые характеристики. Хочется лучшее из обоих миров и в одной коробке :)
  • @milovidov_an #279027 09:51 PM, 13 Jul 2022
    MariaDB ColumnStore - это не гибрид OLAP и OLTP. Это OLAP.
    А если в MariaDB создать две таблицы, одну ColumnStore, другую InnoDB, то будет не гибрид, а либо одно, либо другое.
  • https://t.me/clickhouse_ru
    Да, согласен. Однако такая возможность есть в рамках одной СУБД. Возможно даже с транзакциями между ними, я кстати не пробовал
  • https://t.me/clickhouse_ru
    Так а как это будет работать? Это тоже будет максимум просто два отдельных движка, которые может быть шарят между собой планировщик запросов (и то не факт) и хранилище
  • https://t.me/clickhouse_ru
    Ну SingleStore вот пытаются идти по этому пути емнип, можно почитать.
  • https://t.me/clickhouse_ru
    @yourock88 #279031 09:59 PM, 13 Jul 2022
    Ну и модель работы в кластере у YDB (ну и вообще у распределенных OLTP ACID баз) и у ClickHouse тоже сильно отличаются, ибо требования совершенно разные. А синхронизировать таблицы с мускулем и постгресом итак сейчас можно через MaterializedMySQL (если не ошибаюсь) таблицы
  • https://t.me/clickhouse_ru
    Ну MySQL - это не YDB, а поддержки ydb в кликхаусе нет. Как и YDB нет поддержки законектиться через mysql/postgres драйвер.
  • https://t.me/clickhouse_ru
    Есть что-то лучше, чем такие статьи :)? https://www.singlestore.com/blog/table-range-partitioning-is-a-crutch-heres-why-singlestore-doesnt-need-it/

    Здесь не описано даже примерно за счет чего у них такой быстрый DELETE, например, и как они без range partitioning могут быстро OLTP запросы выполнять, когда нужно дешево найти, на каких серверах находятся нужные строчки
    Table Range Partitioning Is a Crutch. Here’s Why SingleStore Doesn’t Need It

    Table range partitioning is a crutch used by legacy databases — one SingleStore doesn’t need. Read about our database features that speed up data lifecycles.

  • https://t.me/clickhouse_ru
    Нет. Яж нарисовал ) field1 и cnt это key:value для словаря. На выходе должна быть одна строка со значениями, одно из которых типа MAP
  • https://t.me/clickhouse_ru
    В этом плане согласен, но опять же, распределенные ACID базы данных устроены сильно сложнее традиционных СУБД, и у них вдобавок обычно есть тонны ограничений, которые делают задачи вроде change data capture сильно более сложными, если нет соответствующей функциональности встроенной в саму СУБД (возможно кстати в YDB оно есть)
  • https://t.me/clickhouse_ru
    А фиг знает, можно попробовать поискать статьи по memsql (они потом в singlestore переименовались)

    https://www.vldb.org/pvldb/vol9/p1401-chen.pdf
  • https://t.me/clickhouse_ru
    Ну у них и не опенсурс. Они держат свою магию в секрете :)
  • https://t.me/clickhouse_ru
    Ну здесь написано, что тоже два типа таблиц:

    MemSQL can store data in two formats: an in-memory row-oriented store and a disk-backed column-oriented store. Tables can be created in either rowstore or columnstore format, and queries can involve any combination of both types of tables.
  • Я так понял они хранят в ОЗУ данных по строкам, отсюда такая фича.

    Скорее всего алгоритм что-то вроде

    1) взять чанк/гранулу
    2) разжать
    3) сделать изменение
    4) обратно сжать
    5) записать на диск

    Интересно как там с рандомным чтением по диску и сжатием
  • https://t.me/clickhouse_ru
    Да, кажется так и есть, исходя из статьи выше
  • @AlessandrD #279041 10:14 PM, 13 Jul 2022
    Подскажите, стоит ли ожидать от кликхауса полнотекстовый поиск
  • Вопрос касательно рандомного доступа к диску остаётся открытым
  • https://t.me/clickhouse_ru
    Да, но оно снаружи это выглядит как одна таблица, те не нужно думать над типом таблицы.

    А хотя похоже вру, они так не умеют
  • https://t.me/clickhouse_ru
    В английской версии документации уже давно есть об этом статья.
  • https://t.me/clickhouse_ru
    Вы имеете в виду полнотекстовый индекс, как ElasticSearch? Если именно это нужно, то, насколько я знаю, только n-gram индексы есть
  • А, хорошо, спасибо
  • Посмотрю, спасибо.

    Сейчас выбор стоит между Manticore Columnar Storage и CH, сравниваем варианты
  • https://t.me/clickhouse_ru
    @yourock88 #279049 10:18 PM, 13 Jul 2022
    Насколько я могу судить, это все равно внешний полнотекстовый индекс получится: https://clickhouse.com/docs/en/guides/developer/full-text-search/
    Full-text search with ClickHouse and Quickwit | ClickHouse Docs

    If you are using ClickHouse and you end up in a situation wishing you had full

  • https://t.me/clickhouse_ru
    Лично я вот так запилил, только ещё фильтр Блума надо прикрутить, но руки не доходят.
    https://t.me/clickhouse_ru/277186
    Vladimir Goncharov in ClickHouse не тормозит

    по колонке с массивом делать индекс можно. вай нот то? полнотекст реализуется добавлением новой колонки например: words Array(String) DEFAULT arrayDistinct(arraySort(arrayMap(x -> stem('ru', x), arrayMap(x -> stem('en', x), splitByRegexp('[^a-zA-ZА-Яа-я0-9]+', lowerUTF8(message)))))) ну и потом в селекте просто указываем: WHERE hasAll(words, arrayMap(x -> stem('ru', x), arrayMap(x -> stem('en', x), splitByRegexp('[^a-zA-ZА-Яа-я0-9]+', lowerUTF8( :q ))))) по идее всю эту длинную строку можно запихнуть в UDF, чтобы запросы компакнее выглядели ну и добавить на массив words индекс, чтобы поиск быстрее работал. как-то так. если нужны подробности, какой индекс более оптимален, насколько быстрее ищет и т.д., то я с радостью вам предоставлю готовую информацию после небольшого, но не бесплатного ресёрча. в общем 500 евро и я сделаю всё за вас.

  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #279050 #279051 10:18 PM, 13 Jul 2022
    Другого нет
  • https://t.me/clickhouse_ru
    Чего другого нет? Извините не понял ваше сообщение.
  • https://t.me/clickhouse_ru
    Вообще тема инвертированных индексов начала активно подниматся, так что мб увидим их в будущем.

    https://github.com/ClickHouse/ClickHouse/issues/37216
    https://github.com/ClickHouse/ClickHouse/pull/38667
    Inverted Indices (RFC) · Issue #37216 · ClickHouse/ClickHouse

    We already have "data skipping" indices in ClickHouse. Data skipping index is a data structure (aggregation, data sketch, etc) that is created for every data granule (or every n g...

  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #279052 #279054 10:21 PM, 13 Jul 2022
    Варианта полнотекстового поиска.
    Есть ngram, про которые уже сказали, есть like, ilike если устраивает юзайте, нет ищите что-то другое, типа elasticsearch.
  • https://t.me/clickhouse_ru
    Слишком разные свойства у колоночного и у строчного хранения. В колоночные таблицы лучше вставлять сразу миллион строк, тогда как в строчные лучше относительно небольшими пачками (по крайней мере если есть индексы, которые нужно обновлять при вставке), и т.д.
  • https://t.me/clickhouse_ru
    Ааа, вы наверное промахнулись ответом и не смотрели мою ссылку про стеммеры в кликхаусе.
  • https://t.me/clickhouse_ru
    Ну так это никак не мешает держать недавние вставки в строчном хранилище а потом записывать их в колоночном.
  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #279056 #279058 10:23 PM, 13 Jul 2022
    Да, вы правы, пардон.
  • https://t.me/clickhouse_ru
    Ну так и в MariaDB наверняка можно триггер на вставку в ColumnStore таблицу сделать :)
  • https://t.me/clickhouse_ru
    @yourock88 #279060 10:24 PM, 13 Jul 2022
    И много ещё чего запилить. Но суть останется, это две разные системы
  • https://t.me/clickhouse_ru
    Я уже сижу такой и думаю, вот это я гениальное решение придумал, что других вариантов и нет :) но не тут-то было :)
  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #279061 #279062 10:24 PM, 13 Jul 2022
    😄 вот оно так всегда))
  • https://t.me/clickhouse_ru
    Ну так суть, что бы снаружи это выглядело и работало как одна таблица из коробки, а не навешивать десяток триггеров что бы поддержать все апдейты-делиты-инсерты.
  • https://t.me/clickhouse_ru
    Есть ещё моя статья на Хабре, где лично Алексей Миловидов пришел в комментарии и подсказал, что ClickHouse довольно быстр для того, чтобы по логам искать просто через like или регулярки
  • https://t.me/clickhouse_ru
    @xakzdn #279065 10:26 PM, 13 Jul 2022
    Быстро он только ищет, а вот когда дело дойдет до update, тогда ситуация меняется в корне
  • @AlessandrD #279066 10:26 PM, 13 Jul 2022
    Интересно, а сравнивал ли кто CH с TDEngine для time-series данных
  • https://t.me/clickhouse_ru
    Мне кажется, как только будет нужна хорошая производительность OLAP, все равно захочется потюнить это всё, и привет, всё равно нужно лезть внутрь, как это всё там устроено.
    А если не нужна, то и MySQL подойдет :)
  • https://t.me/clickhouse_ru
    ReplacingMergeTree же есть
  • https://t.me/clickhouse_ru
    Конечно, между MySQL и ClickHouse в плане производительности OLAP пропасть в 3 порядка по скорости, но это не так важно :))
  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #279068 #279070 10:28 PM, 13 Jul 2022
    И CollapsingMergeTree есть, а толку?))
  • https://t.me/clickhouse_ru
    С помощью ReplacingMergeTree можно обновлять данные без особой потери производительности
  • https://t.me/clickhouse_ru
    @yourock88 #279072 10:29 PM, 13 Jul 2022
    С другой стороны, текст логов обычно не меняется :)
  • https://t.me/clickhouse_ru
    Тока вчера на неё натыкался уже десятый раз наверное. Но зато в этот раз в выдаче была ещё и ссылка и английскую документацию, где прикрутили quickwit и ещё ссылка на гитхаб, где предлагают разные варианты понотекста и лёха отвечает, что они запилят всё с нуля. И английская версия документации, где я узнаю, что hasAll может использовать фильтр блума, чего я не нашёл в русской и пошёл создал пуллреквест :)
  • https://t.me/clickhouse_ru
    @yourock88 #279074 10:30 PM, 13 Jul 2022
    А если речь не про логи, то зачем ClickHouse тогда
  • У нас поток ивентов, и помимо данных для графиков, иногда нуждаемся в толковом полнотексте
  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #279071 #279076 10:31 PM, 13 Jul 2022
    Мутации которые порождаются в результате операций update накапливаются и начинают очень сильно влиять на производительность, просто кардинально.
    Да и если говорить про скорость то при HDD дисках выход только использовать движок memory.
  • https://t.me/clickhouse_ru
    Интересно, спасибо за ссылки
  • https://t.me/clickhouse_ru
    Так я же говорю, для мелких апдейтов предназначены движки вроде ReplacingMergeTree, которые превращают апдейты в инсерты по сути.
    ALTER TABLE ... UPDATE предназначены для массового обновления отдельных колонок, например если нужно исправить данные за целый день сразу
  • https://t.me/clickhouse_ru
    Для этого нужно всю строку перечитывать, а это неудобно. Приходится использовать Aggregation с nullable полями.
  • А зачем держать горячий кластер на хдд

    Вроде кликхаус умеет раскидывать данные по разным серверам по сроку давности записей
  • https://t.me/clickhouse_ru
    > Вроде кликхаус умеет раскидывать данные по разным серверам по сроку давности записей

    Вот чего нет, того нет
  • https://t.me/clickhouse_ru
    Не люблю эту фразу произносить, но Вы кажется просто что-то не то с ClickHouse пытаетесь делать :)
  • Хм, странно
  • https://t.me/clickhouse_ru
    Вроде только по разным дискам?
  • Мог с этим спутать, не уверен
  • https://t.me/clickhouse_ru
    Всё просто есть ивенты, а есть пользователи. Ивенты не изменяемый, пользователи - постоянно. Чтобы смотреть аналитику нужно джойнить ивенты на пользователей. Поэтому хранить пользователей в другой бд нельзя.
  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #279078 #279087 10:38 PM, 13 Jul 2022
    Ну а что делать если есть необходимость и быстро искать и быстро менять данные?
  • https://t.me/clickhouse_ru
    Мне кажется, Вы как раз идеальный сценарий для MaterializedMySQL таблиц описали, и там вроде как раз либо CollapsingMergeTree, либо ReplacingMergeTree и используется по умолчанию
  • https://t.me/clickhouse_ru
    Используйте ReplacingMergeTree и делайте GROUP BY при выборке, чтобы отсеять более старые записи, которые еще не схлопнулись (ну или использовать SELECT ... FINAL, но оно раньше было медленней чем ручной GROUP BY)
  • https://t.me/clickhouse_ru
    WITH data AS
    (
    SELECT
    'id' AS id,
    123 AS count1,
    321 AS count2
    )
    SELECT
    id,
    count(),
    sumMap(map('count1', count1, 'count2', count2)) AS r
    FROM data
    GROUP BY id

    Query id: d688c8a4-e785-4097-9e34-493dfa88acf3

    ┌─id─┬─count()─┬─r───────────────────────────┐
    │ id │ 1 │ {'count1':123,'count2':321} │
    └────┴─────────┴─────────────────────────────┘
  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #279089 #279091 10:42 PM, 13 Jul 2022
    И как это поможет?)
  • https://t.me/clickhouse_ru
    идеальный сценарий если бы не было AggregationMT + anyLast() :)
    а так всё и без mysql работает и нет рассинхрона между бд и т.д. и т.п.
  • https://t.me/clickhouse_ru
    Будет быстро и то и другое
  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #279089 #279094 10:43 PM, 13 Jul 2022
    Вы это сами пробовали где-то?
    Не поделитесь в какой задаче?
  • https://t.me/clickhouse_ru
    Я пробовал для реализации heartbeat от серверов в kittenhouse (серверов десятки тысяч, хартбиты раз в несколько секунд). Но мне достаточно было производительности SELECT ... FINAL. Работало очень хорошо.
  • https://t.me/clickhouse_ru
    @yourock88 #279096 10:45 PM, 13 Jul 2022
    Обновлялись все строки в таблице раз в несколько секунд по сути
  • https://t.me/clickhouse_ru
    Там недавно SELECT FINAL сделали параллельным в пределах партиции, так что x3-x4 от старой скорости можно сейчас легко иметь
  • https://t.me/clickhouse_ru
    @xakzdn #279098 10:45 PM, 13 Jul 2022
    Строки большие были?
  • https://t.me/clickhouse_ru
    Конкретно в моей задаче нет, не очень большие. Но зато самих апдейтов много
  • https://t.me/clickhouse_ru
    @yourock88 #279100 10:46 PM, 13 Jul 2022
    Это просто пример того, что оно реально работает так, как заявлено :)
  • https://t.me/clickhouse_ru
    @xakzdn #279101 10:46 PM, 13 Jul 2022
    У нас порядка 350 полей и это ещё не предел
  • https://t.me/clickhouse_ru
    Прикольно, не знал
  • https://t.me/clickhouse_ru
    Это не соревнование :). Вставляйте 350 полей
  • https://t.me/clickhouse_ru
    @yourock88 #279104 10:47 PM, 13 Jul 2022
    Суть не меняется от этого
  • https://t.me/clickhouse_ru
    More parallel execution for queries with `FINAL` by nickitat · Pull Request #36396 · ClickHouse/ClickHouse

    Changelog category (leave one): Performance Improvement Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md): Now we split data parts into layers and distr...

  • https://t.me/clickhouse_ru
    Выглядит, что и правда стало сильно быстрее

    311.49 billion rows, 13.44 TB (33.43 billion rows/s., 1.44 TB/s.)
  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #279103 #279108 10:49 PM, 13 Jul 2022
    Это я к тому, что тесты которые проводились (не помню на какой версии) с ReplacingMergeTree показывали реальную просадку по скорости уже на 10 запросе.
  • https://t.me/clickhouse_ru
    Покажите код или не было
  • https://t.me/clickhouse_ru
    @yourock88 #279110 10:50 PM, 13 Jul 2022
    (Я шучу. Наверное есть случаи, когда это не подходит, но всегда есть вариант разбить на две таблицы и делать JOIN, например)
  • https://t.me/clickhouse_ru
    @xakzdn #279111 10:51 PM, 13 Jul 2022
    Join очень дорогой по памяти ОЗУ
  • https://t.me/clickhouse_ru
    @yourock88 #279112 10:52 PM, 13 Jul 2022
    Не в смысле Join движок, можно джойнить данные из ReplacingMergeTree движка тоже
  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #279112 #279113 10:52 PM, 13 Jul 2022
    Я об этом же, это дорого
  • https://t.me/clickhouse_ru
    @yourock88 #279114 10:52 PM, 13 Jul 2022
    Можно использовать словари
  • https://t.me/clickhouse_ru
    @xakzdn #279115 10:53 PM, 13 Jul 2022
    То есть?
  • https://t.me/clickhouse_ru
    @yourock88 #279116 10:53 PM, 13 Jul 2022
    Я не знаю, что у Вас за задача, но полагаю, что как и у всех, есть какие-то события и есть данные пользователей, которые меняются
  • https://t.me/clickhouse_ru
    @yourock88 #279117 10:53 PM, 13 Jul 2022
    И Вы хотите их менять в материализованной таблице (что кстати идея так себе, ну да ладно)
  • https://t.me/clickhouse_ru
    @yourock88 #279118 10:54 PM, 13 Jul 2022
    Для такой задачи есть например возможность подключить тот же MySQL как внешний словарь с большим кешом, и забирать данные оттуда
  • https://t.me/clickhouse_ru
    @yourock88 #279119 10:55 PM, 13 Jul 2022
    В общем, есть много способов решить похожую проблему, но нет универсального ответа на все случаи жизни, к сожалению
  • https://t.me/clickhouse_ru
    @xakzdn #279120 10:55 PM, 13 Jul 2022
    Да всё это уже пробовали, только не mySQL конечно, а PostgresSQL, уже все по моему функции в том числе экспериментальные проверили, пока не найдено решение...
  • https://t.me/clickhouse_ru
    @xakzdn #279121 10:57 PM, 13 Jul 2022
    Это тупо долго.
    То есть поиск быстрый, но update в количестве более 10 начинает влиять на скорость запросов.
  • https://t.me/clickhouse_ru
    @den_crane #279122 11:00 PM, 13 Jul 2022
    вот же фантазеры, половиной функциональности невозможно пользоваться, core команда занимается построением облачного кх который вам не дадут, половина клиентов не может на 22 перейти из-за багов, а оне фантазируют. Закат КХ 2022.
  • https://t.me/clickhouse_ru
    В ClickHouse можно творить даже совершенно лютую дичь по меркам того же MySQL. Например, сделать таблицу с пользователями как MaterializedMySQL и делать запросы вида

    SELECT ... FROM events
    WHERE date = ... AND user_id IN (SELECT id FROM users FINAL WHERE age = 18 AND country = 'UK')
  • https://t.me/clickhouse_ru
    Не хватает таблички sarcasm
  • https://t.me/clickhouse_ru
    @yourock88 #279125 11:02 PM, 13 Jul 2022
    Впрочем, кто знает...
  • https://t.me/clickhouse_ru
    Не очень понимаю, что Вы все-таки понимаете под UPDATE
  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #279124 #279127 11:04 PM, 13 Jul 2022
    Багов в CH действительно много, я сильно выше писал об одном более подробно.
  • https://t.me/clickhouse_ru
    Да не работает он. И Алексей собирается его выпилить.
  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #279126 #279129 11:04 PM, 13 Jul 2022
    Да всё просто, есть данные их вставили в таблицу.
    Затем хотят изменить, эту операцию я и называю update'ом.
  • https://t.me/clickhouse_ru
    Когда ClickHouse только зарелизили, там было действительно очень много багов, впрочем ничего прямо совсем критичного
  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #279130 #279131 11:05 PM, 13 Jul 2022
    Вы не троль случаем?)
  • https://t.me/clickhouse_ru
    Так а как Вы данные меняете? По одной строчке вставляете в ReplacingMergeTree? ALTER UPDATE?
  • https://t.me/clickhouse_ru
    Я действительно использовал ClickHouse с первых версий :)
  • https://t.me/clickhouse_ru
    @yourock88 #279134 11:06 PM, 13 Jul 2022
    И да, я тролль немного
  • https://t.me/clickhouse_ru
    @yourock88 #279135 11:07 PM, 13 Jul 2022
    Но не больше тролль, чем Denny Crane, который по слухам вообще в Яндексе ClickHouse лично разрабатывал, но никому не признается
  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #279132 #279136 11:08 PM, 13 Jul 2022
    А вы за один update сразу вносите все изменения?)
  • https://t.me/clickhouse_ru
    Прям ножом режет. Я 30 лет мечтаю стать программистом. Не берут, даже жнуном. Приходится заниматься говном.
  • https://t.me/clickhouse_ru
    а зачем тут FINAL если для этого типа движка он на автомате подставляется?
    и кстати а если использовать JOIN users, то для этого движка тоже FINAL будет автоматом? но ведь FINAL в JOIN не работает... @den_crane
  • https://t.me/clickhouse_ru
    Движок для users будет ReplacingMergeTree или схожий
  • https://t.me/clickhouse_ru
    ненене, там же MaterializedMySQL
  • https://t.me/clickhouse_ru
    When working with the MaterializedMySQL database engine, ReplacingMergeTree tables are used with virtual _sign and _version columns.

    https://clickhouse.com/docs/en/engines/database-engines/materialized-mysql/
    ReplacingMergeTree | ClickHouse Docs

    The engine differs from MergeTree in that it removes duplicate entries with the same sorting key value (ORDER BY table section, not PRIMARY KEY).

  • https://t.me/clickhouse_ru
    ненене
    >If _version is not specified in the SELECT query, the FINAL modifier is used
  • https://t.me/clickhouse_ru
    Понял :). Этого не знал, спасибо
  • https://t.me/clickhouse_ru
    Все работает. Просто запросы надо писать правильно.
  • https://t.me/clickhouse_ru
    век живи - век ничего не знай :)
  • https://t.me/clickhouse_ru
    Ну просто это не update. В ClickHouse нет UPDATE как в MySQL.
    В ReplacingMergeTree тоже нужно вставлять большими батчами, в этом и суть
  • https://t.me/clickhouse_ru
    супер, была бы ещё такая опция для обычной ReplacingMT , чтобы авто финализировалсь данные по дефолту.
  • https://t.me/clickhouse_ru
    Как говорится, исходники открыты :))
  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #279146 #279149 11:18 PM, 13 Jul 2022
    Да бога ради, допустим были бы подготовлены пачки, и ?
  • https://t.me/clickhouse_ru
    я пхпешник :(
  • https://t.me/clickhouse_ru
    Звучит как простая фича для хактоберфеста
  • https://t.me/clickhouse_ru
    Я тоже на PHP 10 лет разрабатывал. Потом одумался все-таки
  • https://t.me/clickhouse_ru
    я писал экстеншен для пхп на си для работы с opencv и проклял всё на белом свете, не хочу одумываться :)
  • https://t.me/clickhouse_ru
    И тогда становится всё хорошо и быстро, и ничего не тормозит :)
  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #279154 #279155 11:20 PM, 13 Jul 2022
    Точно! (Нет)
  • https://t.me/clickhouse_ru
    Код ClickHouse на самом деле весьма легко читается, он не как исходники расширений PHP :). Да, там C++, но с хорошо продуманной архитектурой. Я как бывший пхпшник (и не C++ программист) говорю
  • https://t.me/clickhouse_ru
    используйте AggregationMT + anyLast() + Nullable() поля и тогда для апдейта не нужна вся строка, достаточно инсертить изменяемые данные
  • https://t.me/clickhouse_ru
    Ну, как говорится, сдуру можно и велосипед сломать :)
  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #279157 #279159 11:23 PM, 13 Jul 2022
    А вот это проверю, спасибо!
  • https://t.me/clickhouse_ru
    Словари тоже можете попробовать
  • https://t.me/clickhouse_ru
    @xakzdn ↶ Reply to #279160 #279161 11:24 PM, 13 Jul 2022
    У вас как-то словами не очень получается объяснять, попробуйте кодом)
  • https://t.me/clickhouse_ru
    я пока только пуллреквесты в доку отправляю, мне хватает :) всё остальное не так сильно мешает жить, чтобы прикладывать столько усилий.
    кстати мой одинадцатый пуллреквест пока не пролезает :) чувствую, что без дена как обычно не обойдётся
    Documentation: Functions hasAny and hasAll also can use a Bloom filter. by morozovsk · Pull Request #39188 · ClickHouse/ClickHouse

    Changelog category (leave one): Documentation (changelog entry is not required) Information about CI checks: https://clickhouse.com/docs/en/development/continuous-integration/

  • https://t.me/clickhouse_ru
    Можно сделать словарь с нужными колонками и с кешом из любого источника, например из MySQL

    https://clickhouse.com/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-layout/#cache
    Storing Dictionaries in Memory | ClickHouse Docs

    There are a variety of ways to store dictionaries in memory.

  • https://t.me/clickhouse_ru
    @yourock88 #279164 11:27 PM, 13 Jul 2022
    И использовать для выборки данных пользователей по user_id
  • https://t.me/clickhouse_ru
    Или использовать тот запрос, что я выше писал
  • https://t.me/clickhouse_ru
    мне в данном случае не нравится слово "кеш", хотелось бы, чтобы все данные были уже в кликхаусе. к тому же менеджеры постоянно строят аналитику и по самим пользователям.
  • https://t.me/clickhouse_ru
    Ну попробуйте также вариант с MaterializedMySQL движком, и запросом с user_id IN(...) или JOIN
  • https://t.me/clickhouse_ru
    По идее они должны быть эквивалентны, но я не уверен
  • https://t.me/clickhouse_ru
    меня пока всё устраивает со схемой AggregationMT + anyLast() + Nullable(). человека выше уже вроде тоже :)
    видимо мне пора ещё статьи на kb писать. интересно это могут делать не сотрудники altinity?
  • https://t.me/clickhouse_ru
    @yourock88 #279170 11:31 PM, 13 Jul 2022
    (Есть минусы, что даже для маленьких запросов будет вычитываться вся таблица юзеров, но обычно их немного, меньше миллиарда, и ClickHouse это быстро фильтрует)
  • https://t.me/clickhouse_ru
    Ну у человека аж целых 350 колонок и у него апдейты тормозят, так что может быть с AggregatingMergeTree будут те же проблемы
  • https://t.me/clickhouse_ru
    у него вроде тормоза из-за того что он делает ALTER UPDATE
  • https://t.me/clickhouse_ru
    @yourock88 #279173 11:35 PM, 13 Jul 2022
    На самом деле конечно печально всё это. Люди слышат маркетинг, что ClickHouse не тормозит, по бенчмаркам всё просто летает, и потом думают, что это означает, что можно из ClickHouse делать вообще что угодно и оно будет быстро :). Key-Value сторадж, полнотекстовый поиск, замену MySQL для одиночных строчек (впрочем, я так действительно делал, но там было типа миллион строк в секунду вставка и 1000 запросов в секунду на чтение по 5-10 строк, так можно делать).
  • https://t.me/clickhouse_ru
    @yourock88 #279174 11:36 PM, 13 Jul 2022
    Хотя всего-то нужно понять, что ClickHouse колоночный, поэтому вставлять надо побольше и пореже, и обновлять данные можно только путём вставки и повторного слияния колонок.
  • https://t.me/clickhouse_ru
    @yourock88 #279175 11:37 PM, 13 Jul 2022
    И что благодаря поколоночному и поблочному хранению ClickHouse может читать данные во много потоков и фильтровать и агрегировать их с применением векторных инструкций
  • https://t.me/clickhouse_ru
    @yourock88 #279176 11:38 PM, 13 Jul 2022
    Ну и хэш-таблицы быстрые. И это всё, достаточно эти вещи понять и сразу станет легко понять, когда ClickHouse подходит, а когда нет, и как его готовить.
  • https://t.me/clickhouse_ru
    Ну и очень много матана и мат статистики для быстрого приближенного вычисления всяких перцентилей, уников и прочего
  • https://t.me/clickhouse_ru
    @morozovsk #279178 11:43 PM, 13 Jul 2022
    это всё понятно. но в основном проблемы не из-за того что юзаешь кликхаус не для тех целей, для которых он не предназначен, а то когда для этих кривых целей пытаешься юзать кликхаус в лоб. вот тогда он начинает тормозить, а ты начинаешь жаловаться. но чуть копнуть и есть оказывается обходной путь и вуаля кликхауз не тормозит даже для твоих кривых целей :)
  • 14 July 2022 (150 messages)
  • https://t.me/clickhouse_ru
    Да. Обычный pr в гитхаб. Также как в кх. Пишут люди.
  • https://t.me/clickhouse_ru
    крутяк. спасибо. не знал
  • Ключ-значение на кх это вообще как такое могло случиться

    Тем не менее, мы рассмотриваем кх с использованием полнотекстового поиска, и мы не видим здесь чего-то скверного
  • https://t.me/clickhouse_ru
    что такое "перекрестный кластер"?

    в смысле два сервера
    на каждом сервере по одной реплике из каждого шарда?
    <remote_servers>
    <circular_shards>
    <shard>
    <internal_replication>true</internal_replication>
    <replica><host>host1</host></replica>
    <replica><host>host2</host></replica>
    </shard>
    <shard>
    <internal_replication>true</internal_replication>
    <replica><host>host2</host></replica>
    <replica><host>host1</host></replica>
    </shard>
    </circular_shards>
    </remote_servers>

    но это все особого смысла не имеет для двух нод
    потому что если под капотом ReplicatedMergeTree
    то вы все равно будете иметь две реплики в ZK на двух нодах...

    вот тут почитайте
    https://altinity.com/blog/2018/5/10/circular-replication-cluster-topology-in-clickhouse

    это не очень рекомендуемый подход
    манагерить сложно
    Circular Replication Cluster Topology in ClickHouse

    In some cases, there is a need to configure a distributed cluster with replication but there are not enough servers in order to place every replica on a separate node. It is better to have multiple replicas at the same nodes configured in a special way, that allows to continue executing queries even in the case of a node failure. Such replication configuration can be found in different distributed systems, it is often referred to as ‘circular’ or ‘ring’ replication. In this article, we will discuss how to set up circular replication in ClickHouse.

  • https://t.me/clickhouse_ru
    @olzh2701 #279185 06:01 AM, 14 Jul 2022
    Добрый день, господа
    хотел спросить, может ли работать Amazon MWAA(Airflow) с Clickhouse?
  • @l_dar ↶ Reply to #278970 #279186 06:03 AM, 14 Jul 2022
    Набор полей разный, сейчас группирую по другому, пока ошибок нет, спасибо
  • @l_dar ↶ Reply to #278958 #279188 06:04 AM, 14 Jul 2022
    Спасибо. Теперь знаю за что цепляться
  • Загружайте вместе с дагом clickhouse_driver и работайте
  • https://t.me/clickhouse_ru
    спасибо большое за ответ!
  • @petr_ryzhov #279191 06:06 AM, 14 Jul 2022
    Я конкретно с амазон не работал, но там где не было поддержки из коробки делал именно так
  • https://t.me/clickhouse_ru
    @skuligin #279193 07:17 AM, 14 Jul 2022
    Добрый день! Подскажите, сталкивался ли кто-то с подобным поведением: кластер из одного хоста, все максимально просто. 8гб оперативки, нагрузки большой нет. Версия 22.3
    На хосте потребляемая память монотонно увеличивается до предела и перезапускает хост – цикл между перезагрузками около 3 часов. Что может влиять на такой паттернт потребления памяти?
  • https://t.me/clickhouse_ru
    Мержи посмотри
  • https://t.me/clickhouse_ru
    @ProffUst #279195 07:24 AM, 14 Jul 2022
    И логи
  • https://t.me/clickhouse_ru
    @392734528 #279196 07:38 AM, 14 Jul 2022
    а оконных функций совсем нет?
  • https://t.me/clickhouse_ru
    neighbor
  • https://t.me/clickhouse_ru
    https://clickhouse.com/docs/en/sql-reference/window-functions/
    Некоторую поддержку ещё добавить в 22.7
    Window Functions | ClickHouse Docs

    ClickHouse supports the standard grammar for defining windows and window functions. The following features are currently supported:

  • https://t.me/clickhouse_ru
    да что то похожее но как так ловко данные из запроса в мап передать ?

    select
    map(nested.id, count(nested.id))
    from data
    ARRAY JOIN nested.id
    group by nested.id

    На выходе список кортежей со словарями
    хочу тполучить один единый словарь
    sumMap тут не прокатит.
  • https://t.me/clickhouse_ru
    @392734528 #279200 08:05 AM, 14 Jul 2022
    ну я слепил sumMap из подзапроса.
    просто думал что можно как то за один запрос это красиво сделать
  • https://t.me/clickhouse_ru
    @392734528 #279201 08:05 AM, 14 Jul 2022
    еще при склейке порядок сорторовки сбивается (
  • https://t.me/clickhouse_ru
    @ypuzyrev #279202 08:06 AM, 14 Jul 2022
    Добрый день. Подскажите пожалуйста. Есть 2 таблицы:
    payment_schedule на 200млн строк
    pay_fact на 63млн строк
    Обе отсортированы ORDER BY policy_id

    И есть запрос к ним:

    SELECT PAYMENT_DATE, CURRENCY, PLAN_SUM, SUM(FACT_PAY_SUM) as FACT_SUM
    FROM (SELECT PAYMENT_DATE, CURRENCY, PAY_SUM as PLAN_SUM, pf.paym_amnt as FACT_PAY_SUM
    FROM (
    SELECT PAYMENT_DATE, CURRENCY, PAY_SUM FROM payment_schedule pay_sched
    WHERE (endr_id, DDATE)
    IN (select top 1 endr_id, DDATE from payment_schedule ps where policy_id = 234765897 order by endr_id desc )
    ) ps
    LEFT OUTER JOIN
    (
    select distinct ppf.paym_amnt as paym_amnt, ppf.plan_dt as plan_dt, ppf.guid from
    (select guid, MAX(tech$load_id) as tech$load_id from pay_fact where policy_id = 135652768
    group by guid) pp,
    pay_fact ppf
    where ppf.tech$load_id = pp.tech$load_id
    and ppf.policy_id = 135652768
    and pp.guid=ppf.guid
    ) pf ON ps.PAYMENT_DATE = pf.plan_dt)
    GROUP BY PAYMENT_DATE, CURRENCY, PLAN_SUM order by PAYMENT_DATE

    Который сканирует при выполнении 63 млн строк из 263 но выполняется очень долго (больше 10 сек). Как можно его попробовать ускорить? По какому полю таблицы отсортировать или на что повесить индекс? Или тут вообще код переписывать?
  • https://t.me/clickhouse_ru
    @Alexey_037 #279203 08:12 AM, 14 Jul 2022
    У вас идёт join таблицы на 64 млн записей, то есть вся таблица разворачивается в оперативке плюс кучка order by. Попробуйте оптимизировать эти моменты.
  • https://t.me/clickhouse_ru
    Может вы имели ввиду group by? Не совсем понял про "кучка order by"
  • у вас в подзапросах ненужный order by
  • https://t.me/clickhouse_ru
    @392734528 #279206 08:46 AM, 14 Jul 2022
    подскажите а именованный подзапрос (в секции) 1 раз вычисляется?
  • в секции это что? если WITH то каждый раз вычисляется
  • https://t.me/clickhouse_ru
    @392734528 #279208 08:48 AM, 14 Jul 2022
    да речь про WITH
  • https://t.me/clickhouse_ru
    Почему? Их тут всего 2 и оба нужны, как мне кажется
  • если алиас то да, везде подставляется, но если это CTE то один раз вроде же?
  • order by в подзапросе не гарантирует порядок в финальной выборке... так что неважно есть он или нет
  • может в каких-то 22 версиях и так(но я такого не видел не слышал), но в 21.11 CTE каждый раз вычисляется
  • https://t.me/clickhouse_ru
    убрал "order by endr_id desc" - никак не повлияло на скорость
  • https://t.me/clickhouse_ru
    with (SELECT id FROM table LIMIT 1) as var_id , тоже будет каждый раз вычисляться ?
  • судя по логу 1 раз если скалярная величина
  • https://t.me/clickhouse_ru
    А как это понять ?
  • https://t.me/clickhouse_ru
    @konnectrl #279218 09:04 AM, 14 Jul 2022
    Ну точней где это можно посмотреть
  • https://t.me/clickhouse_ru
    @konnectrl #279219 09:04 AM, 14 Jul 2022
    в trace_log ?
  • https://t.me/clickhouse_ru
    че серьёзно? ) Так считается или нет? )
    у меня просто в нем возввращаются значения для запроса
    обсчет верзнего уровня и параметры для переваривания nested значений.
    Просто если каждый раз при обращении к поздапросу идет пересчет то это хрень какая то )

    WITH data as (
    Select field1, fild2 from table)

    Select
    (select field1 from data) as f1,
    field3
    from table where id = (select field2 from data)
  • set send_logs_level = 'trace'

    я так смотрю всегда

    пример накидал https://pastila.nl/?099543f0/7b4bcbdd4a72f8063616ecd20fe8c57e
  • https://t.me/clickhouse_ru
    Спасибо
  • 2 раза выполнится Select field1, fild2 from table
  • https://t.me/clickhouse_ru
    @392734528 #279224 09:18 AM, 14 Jul 2022
    а можно как то в 1 раз это все затолкать? )
  • https://t.me/clickhouse_ru
    Ну наверное в массив, а потом array join

    WITH (SELECT groupArray((number,number10))
    FROM (
    SELECT number, number / 10 as number10 FROM numbers(10)
    )) as tb1
    SELECT arrayJoin(tb1);
    Ну как тот так я думаю
  • а этот запрос у вас 1 строчку возвращает?
    Select field1, fild2 from table
  • https://t.me/clickhouse_ru
    да. наборр параметров для дальнейшено запроса
  • тогда вовращайте тупл, примерно так

    WITH (
    Select tuple(field1, fild2) from table
    ) AS data

    Select
    data.1 as f1,
    field3
    from table where id = data.2
  • https://t.me/clickhouse_ru
    я сразу так хотел сделать но мне ругается
    Missing columns: 'data.1' while processing query:
  • Должно работать, так всё ок, какая версия?

    WITH (
    SELECT (user_id, app_id)
    FROM dashboard_stats_shard
    LIMIT 1
    ) AS users
    SELECT
    app_id,
    user_id,
    users.1 AS x
    FROM impressions_log_shard_v1
    WHERE user_id = (users.1)
  • https://t.me/clickhouse_ru
    @392734528 #279231 09:45 AM, 14 Jul 2022
    [('22.3.8.39',)]
  • https://t.me/clickhouse_ru
    Основной тормоз, скорее всего - это left join. Выполните все подзапросы отдельно друг от друга и посмотрите на скорость отбора. Потом начните по 1 соединять подзапросы (проще всего в блок With вынести каждый подзапрос, так будет проще ими манипулировать), и выясните этап, где начинаются самые тормоза. От этого уже можно будет плясать.
  • на 22.3.4 всё ок, видимо с запросом у вас что-то не так
  • https://t.me/clickhouse_ru
    Спасибо
  • https://t.me/clickhouse_ru
    Также обязательно сравнивайте время выборки подзапросов с order by и без
  • https://t.me/clickhouse_ru
    понял.
    есть 2 момента
    1) Обращение не именованое а по нумерации
    2) Есть разница в написании
    WITH data AS () - так не катит
    WITH () as data
  • https://t.me/clickhouse_ru
    @critskiy #279237 10:12 AM, 14 Jul 2022
    Привет, а правильно ли я понимаю (потому что мне приходилось так делать), что для обновления доступов для пользователя в кх (версия 20.5.4.40) придется пересоздавать пользователя? То есть нет никакой возможности по типу чтобы была black magic внутри для автоматического обновления прав доступа?
    так-то сделано предоставление прав непосредственно пользователю, но хотелось бы иметь возможность, чтобы при обновлении прав доступа относительно ролей пользователь также обновлялся...
  • 1) можно сделать, но не особо красиво выглядит)

    select (1, 2)::Tuple(user_id UInt64, app_id UInt64) x, tupleElement(x, 'user_id')

    2) WITH data AS () - 2 запроса будет
    WITH () as data - 1 запрос
  • https://t.me/clickhouse_ru
    @cmbcksrl #279239 11:03 AM, 14 Jul 2022
    Народ, всем привет
    не могу разобраться, что не так делаю

    поднимаю кластер из контейнеров при помощи docker-compose: 1 ЗК, 2 КХ.

    создаю табличку на каждом КХ
    CREATE TABLE default.test_rep1
    (
    a UInt32,
    b UInt32,
    c UInt32
    )
    ENGINE = ReplicatedMergeTree('/clickhouse/tables/test_replicas/test_rep1', '{replica}')
    ORDER BY a;
    закидываю данные, репликация работает

    хочу также сделать, но при помощи команды ON CLUSTER, запускаю такой скрипт создания таблицы
    CREATE TABLE default.test_rep2 ON CLUSTER test_replicas
    (
    a UInt32,
    b UInt32,
    c UInt32
    )
    ENGINE = ReplicatedMergeTree('/clickhouse/tables/test_replicas/test_rep2', '{replica}')
    ORDER BY a;
    получаю такую ошибку
    Code: 159. DB::Exception: Received from localhost:9000. DB::Exception: Watching task /clickhouse/task_queue/ddl/query-0000000000 is executing longer than distributed_ddl_task_timeout (=180) seconds. There are 2 unfinished hosts (0 of them are currently active), they are going to execute the query in background.

    смотрел в таблицу system.clusters, обе реплики имеют 0 в столбце is_local, создается впечатление, что проблема именно в этом, не понимаю, как это можно поправить
  • https://t.me/clickhouse_ru
    Не берите мантикюру. Их кластер (на момент года назад) все ещё был неюзабельный
  • https://t.me/clickhouse_ru
    @kurahh #279241 11:13 AM, 14 Jul 2022
    Всем привет!
    У меня есть события, отсортированные по времени.

    Такой вопрос, как мне для каждого события PRODUCT_IMPRESSION поставить напротив событие SUGGEST_SELECTED ?

    Грубо говоря, мне нужно просимулировать работу функции LagInFrame(), но по всей цепочке событий
  • Добрый день, спасибо, да я видел эту статью, ещё была вот здесь https://medium.com/@merticariug/distributed-clickhouse-configuration-d412c211687c, по ней и настраивал. Почему выбран такой экстравагантный вариант - у заказчика есть прод, тест на них 4 сервера, все, как надо, но для дева выделено всего 2 и нужно на них реализовать схему четырёх. Добавить ещё 2 они не хотят. После всех изысканий сталкиваюсь с проблемой репликации. на первом сервере создаются данные 1 и второй шард, но они как-то криво реплицируются. Их нет на втором сервере, если пойти посмотреть таблицу shard.test (там пусто), как и в таблицу replica.test, а дистрибъют таблица на втором отдаёт всё, как надо. Но, если подать select *, hostName() from default.test; получаю данные только из первого сервера.
    Distributed and Replicated Clickhouse Configuration

    How to configure a distributed and replicated Clickhouse cluster.

  • https://t.me/clickhouse_ru
    вы в таблицу с каким движком вставляете?

    SHOW CREATE TABLE shard.test;
    SHOW CREATE TABLE replica.test;
  • https://t.me/clickhouse_ru
    То есть вы хотите чтобы оно стояло у каждого ?
  • https://t.me/clickhouse_ru
    @kurahh ↶ Reply to #279244 #279245 11:25 AM, 14 Jul 2022
    Да, если событиям PRODUCT_IMPRESSION предшествовало событие SUGGEST_SELECTED
  • @Enjoyq #279246 11:25 AM, 14 Jul 2022
    Всем привет, почему при вставке csv через ch client ch может вставить не все строки?
  • https://t.me/clickhouse_ru
    В какой движок вставляете ?
  • @Enjoyq #279248 11:26 AM, 14 Jul 2022
    Join
  • https://t.me/clickhouse_ru
    А разве это нельзя сделать с помощью оконных функций ?
  • дубли не вставляете?
  • @Enjoyq #279251 11:27 AM, 14 Jul 2022
    Нет
  • https://t.me/clickhouse_ru
    а чё в логах говорит?
  • https://t.me/clickhouse_ru
    @kurahh ↶ Reply to #279249 #279253 11:27 AM, 14 Jul 2022
    Пока не могу понять как
  • @Enjoyq ↶ Reply to #279252 #279254 11:27 AM, 14 Jul 2022
    А где можно это посмотреть?
  • https://t.me/clickhouse_ru
    @morozovsk #279255 11:28 AM, 14 Jul 2022
    в гугле
  • @Enjoyq #279256 11:28 AM, 14 Jul 2022
    Спс
  • @Enjoyq ↶ Reply to #279250 #279259 11:38 AM, 14 Jul 2022
    Действительно, в ключе был дубль, и ANY строгость, спс
  • https://t.me/clickhouse_ru
    не, гугл что-то дал сбой. сходу не находит то что нужно. к слову в доке почему-то тоже поиск не фонтан.
    в общем в в таблицу system.query_log и на диске /var/log/clickhouse-server
  • https://t.me/clickhouse_ru
    @nordluf #279261 11:45 AM, 14 Jul 2022
    А кто-то пользуется автоформатированием в датагрид? А какой пресет используете? А то мне так и не удалось подобрать нормальный формат
  • https://t.me/clickhouse_ru
    Ничего такого нет. возможно в 20.5 был бвг.
  • Шағын
  • https://t.me/clickhouse_ru
    Виртуалки или докеры. Просто запустите 4 кх хот на одном сервере.
  • https://t.me/clickhouse_ru
    ладно, спасибо, буду тогда предоставление прав доступа писать непосредственно для пользователя, не проблема, чисто любопытство съело :)
  • anyLastIf(query, event_type = 'SUGGEST_SELECTED') OVER (ORDER BY logged_at ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
  • https://t.me/clickhouse_ru
    @olzh2701 #279268 12:07 PM, 14 Jul 2022
    Ребята
    хотел уточнить, кто-нибудь устанаваливал провайдер для airflow?
    выходит данная ошибка, данные для подключения проверял
  • https://t.me/clickhouse_ru
    В distributed у вас сервер описан как-то. И сам этот сервер не понимает что он это он.
  • https://t.me/clickhouse_ru
    мы порт 8123 использовали
  • @inscaven #279271 12:24 PM, 14 Jul 2022
    кто подскажет, почему КХ создает новые таблицы query_log_XXX каждые примерно 10 сек?
    их так копится целая куча
    может у него где-то произошел сбой, и он постоянно думает, что существующая таблица какой-то старой версии, и создает новую?
    может ли это быть от того, что я в секцию конфига прописал
    <engine>ENGINE = MergeTree PARTITION BY (event_date)
    ORDER BY (event_time)
    TTL event_date + INTERVAL 10 day DELETE
    SETTINGS ttl_only_drop_parts=1
    </engine>
  • https://t.me/clickhouse_ru
    Бага, обновитесь
  • https://t.me/clickhouse_ru
    @politsin #279275 12:35 PM, 14 Jul 2022
    Подскажите, если я хочу использовать кликхаус для статистики (типа яндекс метрики) какой взять движок?

    (данных планируется много миллионов)
  • https://t.me/clickhouse_ru
    берите стандартный
  • MT/ReplicatedMT
  • https://t.me/clickhouse_ru
    MergeTree Engine Family | ClickHouse Docs

    Table engines from the MergeTree family are the core of ClickHouse data storage capabilities. They provide most features for resilience and high-performance data retrieval: columnar storage, custom partitioning, sparse primary index, secondary data-skipping indexes, etc.

  • https://t.me/clickhouse_ru
    @politsin #279279 12:36 PM, 14 Jul 2022
    спасибо
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    исправлен этот баг уже, из-за ttl_only_drop_parts
  • https://t.me/clickhouse_ru
    много миллионов? 3 миллиона это одно, 933 миллиона это другое, я бы советовал разные движки и подходы.
  • https://t.me/clickhouse_ru
    до лярда можно не париться :)
  • https://t.me/clickhouse_ru
    Десятки миллионов
  • https://t.me/clickhouse_ru
    ну если 900 млн. и один сервер и ширина таблицы 500 полей (суммарно 2-3 кб), то я бы не советовал ReplacingMT, и надеятся на схлапывание дубликатов
  • https://t.me/clickhouse_ru
    >хочу использовать кликхаус для статистики (типа яндекс метрики)
    ReplacingMT здесь вроде не в тему. ну только если имеется ввиду что будут там хранить ивенты и пользователей, но тогда пользователей при лярде событий будет всего миллионы и тогда и ReplacingMT справится. и это всё на виртуалке в хецнере.
  • https://t.me/clickhouse_ru
    да тут у половины чатика мечта, досылать обновления ивентов через час, типа мы хотим репортить в риалтайме, но вот эти атрибуты прилетают с опозданием на 3 часа из другого источника и мы хотим что бы ....
    и в общем они бесконечно воюют с ReplacingMT
  • https://t.me/clickhouse_ru
    не знал, что так яндекс метрика умеет, но да ладно...
    хз зачем так делают :) просто новые ивенты шлёшь, обновляешь только пользователей, которых на несколько порядков меньше.
  • https://t.me/clickhouse_ru
    я честно говоря не знаю что делает метрика, я про нее знаю что там КХ.

    Просто я сам работаю в ад. компании с кликстримом, и у меня 4-6 млрд. широких ивентов в день и примерно представляю все проблемы и возможные подходы.
  • подскажите, как атрибуцируете? вне КХ
  • https://t.me/clickhouse_ru
    там обычная, базовая аналитика. я поэтому и говорю, что до лярда можно вообще не париться. это вообще песочница. у взрослых дядей нагрузки в тысячи раз выше.
  • https://t.me/clickhouse_ru
    вот да, я смотрю в /etc/hosts там у localhost совсем другой ip, а как можно изменить этот ip, чтобы использовался именно тот ip, который сообщается в docker-compose?
  • https://t.me/clickhouse_ru
    @cmbcksrl #279294 01:09 PM, 14 Jul 2022
    я понимаю, что мои контейнеры не видят, что ip, которые я им в docker-compose указал, это их ip, но как это исправить я что-то догнать не могу
  • https://t.me/clickhouse_ru
    Кластер Кассандры в 6 раз больше чем кх. Плюс постгре и миллион строк на джава
  • https://t.me/clickhouse_ru
    зачем им IP в docker-compose указывать?

    есть же dns
    services:
    clickhouse1:
    image: clickhouse/clickhouse-server:latest
    links:
    - clickhouse2

    clickhouse2:
    image: clickhouse/clickhouse-server:latest
    links:
    - clickhouse1

    ну и дальше
    <remote_servers>
    <cluster_name>
    <shard>
    <replica>clickhouse1</replica>
    <replica>clickhouse2</replica>
    </shard>
    </cluster_name>
    </remote_servers>
  • https://t.me/clickhouse_ru
    ERROR: Circular dependency пишет, когда пытаюсь поднять
  • https://t.me/clickhouse_ru
    @nordluf #279298 01:26 PM, 14 Jul 2022
    Можно просто ввести их в одну сеть указав им имена
  • https://t.me/clickhouse_ru
    @cmbcksrl #279299 01:41 PM, 14 Jul 2022
    так я так и делаю, но у меня айпишники не присваиваются почему-то серверам и из-за этого не работает команда ON CLUSTER
    вот такой docker-compose.yml
    version: "3"

    networks:
    chcluster:
    driver: bridge
    ipam:
    driver: default
    config:
    - subnet: 172.18.1.0/16

    services:

    chserver1:
    image: yandex/clickhouse-server:21.3
    hostname: ch1
    volumes:
    - .\chserver1\config.xml:/etc/clickhouse-server/config.xml
    ports:
    - "8001:8123"
    - "9001:9000"
    networks:
    chcluster:
    ipv4_address: 172.18.1.1
    depends_on:
    - "zookeeper"

    chserver2:
    image: yandex/clickhouse-server:21.3
    hostname: ch2
    volumes:
    - .\chserver2\config.xml:/etc/clickhouse-server/config.xml
    ports:
    - "8002:8123"
    - "9002:9000"
    networks:
    chcluster:
    ipv4_address: 172.18.1.2
    depends_on:
    - "zookeeper"

    zookeeper:
    image: zookeeper:3.5
    hostname: zk
    volumes:
    - .\zk\zoo.cfg:/conf/zoo.cfg
    networks:
    chcluster:
    ipv4_address: 172.18.1.3
  • https://t.me/clickhouse_ru
    @dima_cepco #279303 02:00 PM, 14 Jul 2022
    Всем привет!,
    а
    кто-нибудь можем помочь с выгрузкой
    данных их Я. Метрики в Кликхаус ? 🙏

    и показать как это делается)
    за плату конечно)
  • https://t.me/clickhouse_ru
    вы бы примеры делали, create table / insert -> что должно быть на выходе.

    вообще ни черта не понять что вы пишете словами, хотя я понимаю получше многих, и занимаюсь подобной херней 24*7, и термины вы используете от потолка.
    " список кортежей со словарями" -- это просто набор букв. Никто в чатике этого понять не может.
  • https://t.me/clickhouse_ru
    @orantius #279311 02:51 PM, 14 Jul 2022
    "кортеж" - строка, это из языка людей, у которых "отношение" - таблица. словарь - видимо Map
  • https://t.me/clickhouse_ru
    @orantius #279312 02:52 PM, 14 Jul 2022
    а хочется видимо один большой агрегированный Map
  • https://t.me/clickhouse_ru
    @orantius #279313 02:53 PM, 14 Jul 2022
    впрочем, википедия возражает.
  • https://t.me/clickhouse_ru
    @den_crane #279315 03:00 PM, 14 Jul 2022
    в 20 лет назад, когда я использовал erwin, там было две слоя абстракции, логическая модель и физическая.
    сначала рисуешь логическую, и там отношения, кортежи, атрибуты, потом от нее переходишь в физическую модель и там отношения представлены одной или более таблицей, атрибуты становятся полями.
  • https://t.me/clickhouse_ru
    @Alexey_037 #279316 03:01 PM, 14 Jul 2022
    а я бы сказал, что кортеж это tuple, а словарь - Dictionary... Так что да, понять сложно )
  • https://t.me/clickhouse_ru
    @Omega515 #279317 03:06 PM, 14 Jul 2022
    добрый вечер - подскажите как выгружать данные из клика чанками?
  • https://t.me/clickhouse_ru
    в общем случаях никак. В частных случаях можно.

    проще всего просто выгружать одним куском, хоть 10млрд.

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

    можно жать на ходу и лить в файл или в s3
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @cmbcksrl #279326 03:22 PM, 14 Jul 2022
    а у меня именно репликация нормально работает, не работает (вылетает таймаут), когда команду ON CLUSTER при создании таблицы указываю
  • https://t.me/clickhouse_ru
    Если докер десктоп, то, вероятно, винда. Я знаю что внутри оно работает с изысками.
    А какие IP присвоились контейнерам в итоге?
  • @179984270 #279330 03:29 PM, 14 Jul 2022
    Коллеги, добрый день! Подскажите, пожалуйста, есть ли в клике штатный способ подавить при установке ввод пароля для дефолтного пользователя? Пишу скрипт автоматической установки и настройки и не хочу юзать всякие expect-подобные решения. Варианты с докером не подходят
  • https://t.me/clickhouse_ru
    а в чём сложность вводить в конфиг ?
  • https://t.me/clickhouse_ru
    DEBIAN_FRONTEND=noninteractive apt-get install
  • я не уверен, что он к этому моменту появляется. это же сразу после apt install запрашивается
  • https://t.me/clickhouse_ru
    @den_crane #279334 03:32 PM, 14 Jul 2022
    DEBIAN_FRONTEND=noninteractive уважается большинством deb пакетов, в том числе и КХ
    (это стандартный путь)
    https://github.com/ClickHouse/ClickHouse/search?q=DEBIAN_FRONTEND
  • супер! спасибо большое)
  • https://t.me/clickhouse_ru
    @konnectrl #279336 03:34 PM, 14 Jul 2022
    Аа я не так понял
  • https://t.me/clickhouse_ru
    @Gromnsk #279337 03:48 PM, 14 Jul 2022
    добрый день, коллеги, возникла проблема с развертыванием кликхауса в кубер на EFS, ничего лучше не придумал, чем задать в рамках одного диска каждому инстансу отдельную папку через конфиг, в итоге указал в config.xml атрибут from_env вида <path from_env="DATA_PATH"></path> и указал соответствующую энв переменную в манифесте
    но по непонятной мне причине исходя из логов данные из энв не берутся, но энв точно передается, он есть в поде, но не подставляется, либо иная причина, которая мне не ясна
    если зайти в под и вызвать clickhouse extract-from-config --key=path, то он отдает правильное значение для path, но вот непосредственно при запуске КХ значение path оказывается пустым
    возможно есть иной подход с решением проблемы использования EFS или быть может подскажете почему не работает from_env как ожидается?
  • https://t.me/clickhouse_ru
    потому что from_env сделан только для части настроек
  • https://t.me/clickhouse_ru
    гхм... разоритесь вы на EFS..
  • https://t.me/clickhouse_ru
    ясно, спасибо
  • https://t.me/clickhouse_ru
    EFS будет тормозом, зачем вам костыли вместо ног?
  • https://t.me/clickhouse_ru
    гиперскорости не требуются, а вот HIPAA compliance, который из коробки обеспечивает fargate нода требуется
  • https://t.me/clickhouse_ru
    а зачем один EFS На все инстансы кликхауса?
    не проще https://docs.aws.amazon.com/eks/latest/userguide/efs-csi.html
    и просто определить в chi.spec.templates.volumeClaimTemplates[]
    соответствующий storageClass ?
    и потом назначить этот темплейт name
    через chi.spec.defaults.templates.dataVolumeClaimTemplate ?
    Amazon EFS CSI driver - Amazon EKS

    The Amazon EFS Container Storage Interface (CSI) driver provides a CSI interface that allows Kubernetes clusters running on AWS to manage the lifecycle of Amazon EFS file systems.

  • https://t.me/clickhouse_ru
    еще и fargate ;)
    у вас видимо очень много денег
    с другой стороны у "цифровой медицины" , сейчас действительно денег дофига...
  • https://t.me/clickhouse_ru
    звучит очень странно, как связаны fargate и EFS ?
  • https://t.me/clickhouse_ru
    если я все правильно понял, то fargate только efs и поддерживает в рамках EKS
  • @dj_mixer #279348 04:17 PM, 14 Jul 2022
    вопрос на миллион. ch-keeper c Zk в одном кластере нормально работают? (2 x ChK +1 ZK)
  • https://t.me/clickhouse_ru
    @392734528 #279349 04:22 PM, 14 Jul 2022
    ребят а можно как то внутри результата функции sumMap() сделать сортировку по Value ?
  • ok, судя по всему нет... рафт все дела, порты другие и внутренние протоколы тоже
  • https://t.me/clickhouse_ru
    А зачем? Вроде от перемены мест слагаемых сумма не меняется.
  • https://t.me/clickhouse_ru
    вообще не работают, у кипера свой протокол между нодами кипера
  • @furstim #279355 10:44 PM, 14 Jul 2022
    Приветствую!
    Подскажите, пожалуйста, кто в курсе, насколько плохая идея читать из кх большой объем детальных данных без применения агрегаций? Например, 10ТБ и более?
    Есть ли рекомендуемый лимит на объем данных/кол-во строк который не стоит превышать при условном:
    SELECT column1, column2, column3 FROM large_table ?

    Из инфы нашел похожий вопрос с ответом от Den Crane, но вроде резкого мнения о том что так делать не стоит там не увидел, но очень сильно это подозреваю.
    https://stackoverflow.com/questions/59420334/is-that-possible-to-query-millions-of-row-back-with-clickhouse

    Заранее благодарю!
    Is that possible to query millions of row back with ClickHouse

    I know ClickHouse may be not the proper database to get millions of row (only a few columns) back with SQL like below: select col1, col2, .., date from table where col0='a1' and date >= 'start_...

  • 15 July 2022 (221 messages)
  • https://t.me/clickhouse_ru
    Ну это просто не цель кликхауса, а так я не вижу проблем
  • https://t.me/clickhouse_ru
    Я много лет использую кх как даталейк и храню/ читаю строки с json-ми просто с фильтрацией по индексу и без фильтрации, читаю правда по 10-20 гб, но много в параллель. Никогда не пробовал читать тб за запрос, сеть нужна быстрая и надежная.

    Почему не s3 и не просто файлы?
  • https://t.me/clickhouse_ru
    если нет ORDER BY и GROUP BY
    то аллоцироваться будут только буфера на чтение и декомпрессию колонок
    и результат будет стримиться в клиента
    и соответственно ваш клиент должен поддерживать стриминг результата, а не аллоцировать под него память

    ну и да, хочется заметить что clickhouse это некоторый final storage
    вы что потом с этими данными будете делать? в какую то другую систему положите?
    а для чего? может для этого usecase и ClickHouse сгодится?
  • https://t.me/clickhouse_ru
    @If9090 #279363 05:39 AM, 15 Jul 2022
    Привет, подскажите начинающему, где можно найти подробную документация для использования кликхауса на маке. Я про команды для терминала, их синтаксис отличается от синтаксиса для линукса, а почти везде прописаны только они
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @If9090 #279365 06:09 AM, 15 Jul 2022
    Спасибо, но тут далеко не все команды, искал, если конечно такая есть, полную документацию
  • https://t.me/clickhouse_ru
    О каких командах речь тогда речь?
  • @azzaazaa #279367 06:21 AM, 15 Jul 2022
    команда 'найди за меня, пожалуйста'
  • https://t.me/clickhouse_ru
    @If9090 ↶ Reply to #279364 #279369 06:36 AM, 15 Jul 2022
    В консоле, если открыть список, представлено большое колво команд, чем на сайте

    По этому понял что надо найти документацию для нормального использования, но сколько не искал найти не удалось. Потому и решил задать вопрос знающим людям
  • https://t.me/clickhouse_ru
    @konnectrl #279370 06:38 AM, 15 Jul 2022
    Каких команд ?
  • https://t.me/clickhouse_ru
    @If9090 ↶ Reply to #279370 #279372 06:42 AM, 15 Jul 2022
    Консольные в маке для работы с кликхаусом
  • @azzaazaa #279373 06:43 AM, 15 Jul 2022
    @If9090
    clickhouse client --help
    clickhouse keeper --help
    clickhouse server --help

    это разве не дока?
  • https://t.me/clickhouse_ru
    До сих пор ничего не понятно. Какую задачу вы хотите решить?
  • https://t.me/clickhouse_ru
    @igyakovlev #279375 07:02 AM, 15 Jul 2022
    Всем привет!
  • https://t.me/clickhouse_ru
    @igyakovlev #279376 07:04 AM, 15 Jul 2022
    Кто-нибудь сталкивался со следующим?

    когда подключаюсь через clickhouse-client

    Warnings:
    * Linux is not using a fast TSC clock source. Performance can be degraded. Check /sys/devices/system/clocksource/clocksource0/current_clocksource
    * Maximum number of threads is lower than 30000. There could be problems with handling a lot of simultaneous queries.

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

    cat /proc/sys/kernel/threads-max
    30818

    Операционка Ubuntu через KVM
  • https://t.me/clickhouse_ru
    @392734528 #279377 07:20 AM, 15 Jul 2022
    sumMap() отлично лепт данные но можно ли как то None в нем заменить на 0 нормальные?
    это надо в исходных данных сразу None как 0 записывать или можо как то изловчится?
  • https://t.me/clickhouse_ru
    @If9090 ↶ Reply to #279374 #279378 07:23 AM, 15 Jul 2022
    Если честно, банально найти документацию, что бы досконально разобраться как работать с clickhouse client
  • https://t.me/clickhouse_ru
    Какую документацию? О чем вы вообще? Вы запускаете клиент и дальше у ваc sql
  • https://t.me/clickhouse_ru
    Кхм, а там внутри ничем не отличается от linux скорей всего.
  • https://t.me/clickhouse_ru
    @Sablast #279381 07:24 AM, 15 Jul 2022
    Вообще ничего не отличается
  • https://t.me/clickhouse_ru
  • @simpl1g #279384 07:44 AM, 15 Jul 2022
    Подскажите, есть ли вариант запрос вида create table ditributed on cluster as select from s3() вставлять только на 1 шарде, а то получается данные на каждом шарде дублируются.
  • https://t.me/clickhouse_ru
    Наверное в distributed указать статический ключ шардирования
  • Статический ключ значит что данные будут всегда только на 1 шард вставляться , наверное не лучший вариант)
  • https://t.me/clickhouse_ru
    @konnectrl #279388 07:57 AM, 15 Jul 2022
    Подождите, вам не нужно это ? Ну тогда сделайте в ключ функцию rand() и всё
  • Запрос выполняет селект с С3 на каждом шарде. 6 шардов - данные задублируются 6 раз
  • @5297783960 #279390 08:03 AM, 15 Jul 2022
    Предлагаем следующие услуги для продвижения ваших ресурсов:
    1. Накрутка подписчиков, просмотров, лайков, комментариев, опросов во все Соц. Сети и сервисы. Цена от 18 руб / 1000 ш.
    2. Рассылка в Телеграм и ВК. Стоимость от 3000 руб.
    3. Комбайн для продвижения в Телеграм. Имеет полный спектр возможностей. Видео работы по запросу. Стоимость 3400 руб – навсегда + обновления
    4. База чатов телеграм. Сортирована на категории. Всего более 14000. Все чаты живые. Стоимость базы 1950 руб.

    По всем вопросам обращаться сюда: https://vk.cc/cez3BQ
  • https://t.me/clickhouse_ru
    @olzh2701 #279391 08:08 AM, 15 Jul 2022
    Добрый день
    не удалось подключить clickhouse к airflow
    хотелось бы уточнить возможно запускать sql файлы через clickhouse-driver?(не через библиотеку airflow-clickhouse)
  • https://t.me/clickhouse_ru
    @onarainydayillwinanyway #279392 08:10 AM, 15 Jul 2022
    Подскажите, а можно как-то сложить массивы при аггрегации по столбику?
    Предположим, что у меня есть столбец идентификаторов сессий sessionId и столбец с json'ами logs и я хочу что-то вроде такого
    WITH
    JSONExtract(logs, 'Array(Tuple(message String, timestamp Int64))') AS events,
    SELECT
    sessionId,
    sum(events)
    FROM myTable
    WHERE Date >= today()-7
    GROUP BY sessionId
  • groupArray(events) чтобы аггрегировать в массив
  • @5297783960 #279394 08:17 AM, 15 Jul 2022
    Предлагаем следующие услуги для продвижения ваших ресурсов:
    1. Накрутка подписчиков, просмотров, лайков, комментариев, опросов во все Соц. Сети и сервисы. Цена от 18 руб / 1000 ш.
    2. Рассылка в Телеграм и ВК. Стоимость от 3000 руб.
    3. Комбайн для продвижения в Телеграм. Имеет полный спектр возможностей. Видео работы по запросу. Стоимость 3400 руб – навсегда + обновления
    4. База чатов телеграм. Сортирована на категории. Всего более 14000. Все чаты живые. Стоимость базы 1950 руб.

    По всем вопросам обращаться сюда: https://vk.cc/cez3BQ
  • https://t.me/clickhouse_ru
    Аналогичный семантически запрос, который можно на system.tables прогонять - собрать пути с данными в разбивке по базам
    SELECT database, sum(data_paths)
    FROM system.tables
    GROUP BY database
  • https://t.me/clickhouse_ru
    Это не совсем то, но спасибо
    Оно собирает список списков, а мне бы все в однин сложить, чтобы потом можно было обходить. Попробую сейчас накинуть сверху какой-нибудь sumArray
  • если плоский надо -> groupArrayArray
  • @5297783960 #279398 08:25 AM, 15 Jul 2022
    Предлагаем следующие услуги для продвижения ваших ресурсов:
    1. Накрутка подписчиков, просмотров, лайков, комментариев, опросов во все Соц. Сети и сервисы. Цена от 18 руб / 1000 ш.
    2. Рассылка в Телеграм и ВК. Стоимость от 3000 руб.
    3. Комбайн для продвижения в Телеграм. Имеет полный спектр возможностей. Видео работы по запросу. Стоимость 3400 руб – навсегда + обновления
    4. База чатов телеграм. Сортирована на категории. Всего более 14000. Все чаты живые. Стоимость базы 1950 руб.

    По всем вопросам обращаться сюда: https://vk.cc/cez3BQ
  • https://t.me/clickhouse_ru
    Спасибо большое
  • можно ещё groupUniqArrayArray если дубли надо убрать
  • https://t.me/clickhouse_ru
    а присвоились на самом деле те, которые я и указывал в docker-compose
  • https://t.me/clickhouse_ru
    @cmbcksrl #279402 08:29 AM, 15 Jul 2022
    вот такой со стороны винды
  • https://t.me/clickhouse_ru
    @cmbcksrl #279403 08:29 AM, 15 Jul 2022
    внутри контейнера
  • https://t.me/clickhouse_ru
    @cmbcksrl #279404 08:30 AM, 15 Jul 2022
    либо я не туда смотрю(
  • https://t.me/clickhouse_ru
    Ну если присвоились те что нужно, тогда проблемы нет, получается?
  • https://t.me/clickhouse_ru
    @cmbcksrl #279406 08:31 AM, 15 Jul 2022
    ну у меня изначальная проблема была в том, что CREATE TABLE ON CLUSTER не работает, валится с таймаутом, хотя сама по себе репликация (CREATE TABLE внутри каждого контейнера) работает

    вот с ON CLUSTER я и не могу разобраться
  • https://t.me/clickhouse_ru
    агась, спасибо, потом может пригодиться
  • https://t.me/clickhouse_ru
    Посмотрите логи кх, какие там ошибки? Попробуйте изнутри контейнеров по описанным хостам:портам телнетом постучаться
  • https://t.me/clickhouse_ru
    @nordluf #279409 08:35 AM, 15 Jul 2022
    Если вы поднимаете все одновременно, то может случиться так что кипер не успеет подняться и тогда не поднимается одна из нод - и на ней не выполняется онкластер
  • https://t.me/clickhouse_ru
    @cmbcksrl #279410 08:36 AM, 15 Jul 2022
    не должно подниматься одновременно, я указывал для каждого КХ контейнера
    depends_on:
    - "zookeeper"
  • https://t.me/clickhouse_ru
    @cmbcksrl #279411 08:37 AM, 15 Jul 2022
    просто я не могу понять, почему именно DDL не работают, контейнеры общаются, все славно
  • https://t.me/clickhouse_ru
    Это не так работает
  • https://t.me/clickhouse_ru
    Логи посмотрите. Что там?
  • https://t.me/clickhouse_ru
    @cmbcksrl #279414 08:37 AM, 15 Jul 2022
    да, сейчас кину
  • https://t.me/clickhouse_ru
    @cmbcksrl #279415 08:45 AM, 15 Jul 2022
    хм
    сразу при запуске контейнера такие сообщения
    2022.07.15 08:42:12.771200 [ 51 ] {} <Warning> Access(local directory): File /var/lib/clickhouse/access/users.list doesn't exist
    2022.07.15 08:42:12.771271 [ 51 ] {} <Warning> Access(local directory): Recovering lists in directory /var/lib/clickhouse/access/
    2022.07.15 08:42:12.795561 [ 51 ] {} <Warning> Application: Listen [::]:8123 failed: Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = DNS error: EAI: Address family for hostname not supported (version 21.3.20.1 (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.07.15 08:42:12.795739 [ 51 ] {} <Warning> Application: Listen [::]:9000 failed: Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = DNS error: EAI: Address family for hostname not supported (version 21.3.20.1 (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.07.15 08:42:12.795860 [ 51 ] {} <Warning> Application: Listen [::]:9009 failed: Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = DNS error: EAI: Address family for hostname not supported (version 21.3.20.1 (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.07.15 08:42:12.796522 [ 51 ] {} <Warning> Application: Listen [::]:9004 failed: Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = DNS error: EAI: Address family for hostname not supported (version 21.3.20.1 (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.07.15 08:42:12.899097 [ 88 ] {} <Error> virtual bool DB::DDLWorker::initializeMainThread(): Code: 999, e.displayText() = Coordination::Exception: All connection tries failed while connecting to ZooKeeper. nodes: 172.18.1.3:2181
    Poco::Exception. Code: 1000, e.code() = 111, e.displayText() = Connection refused (version 21.3.20.1 (official build)), 172.18.1.3:2181
    Poco::Exception. Code: 1000, e.code() = 111, e.displayText() = Connection refused (version 21.3.20.1 (official build)), 172.18.1.3:2181
    Poco::Exception. Code: 1000, e.code() = 111, e.displayText() = Connection refused (version 21.3.20.1 (official build)), 172.18.1.3:2181
    (Connection loss), Stack trace (when copying this message, always include the lines below):
  • https://t.me/clickhouse_ru
    @cmbcksrl #279416 08:45 AM, 15 Jul 2022


    0. Coordination::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Coordination::Error, int) @ 0xfa0a963 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) @ 0xfa0abe2 in /usr/bin/clickhouse
    2. Coordination::ZooKeeper::connect(std::__1::vector<Coordination::ZooKeeper::Node, std::__1::allocator<Coordination::ZooKeeper::Node> > const&, Poco::Timespan) @ 0xfa4afc1 in /usr/bin/clickhouse
    3. 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) @ 0xfa49892 in /usr/bin/clickhouse
    4. 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&) @ 0xfa0cfa6 in /usr/bin/clickhouse
    5. zkutil::ZooKeeper::ZooKeeper(Poco::Util::AbstractConfiguration const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) @ 0xfa0f546 in /usr/bin/clickhouse
    6. void std::__1::allocator_traits<std::__1::allocator<zkutil::ZooKeeper> >::__construct<zkutil::ZooKeeper, Poco::Util::AbstractConfiguration const&, char const (&) [10]>(std::__1::integral_constant<bool, true>, std::__1::allocator<zkutil::ZooKeeper>&, zkutil::ZooKeeper*, Poco::Util::AbstractConfiguration const&, char const (&) [10]) @ 0xe8c3a87 in /usr/bin/clickhouse
    7. DB::Context::getZooKeeper() const @ 0xe8a08d0 in /usr/bin/clickhouse
    8. DB::DDLWorker::getAndSetZooKeeper() @ 0xe8e3979 in /usr/bin/clickhouse
    9. DB::DDLWorker::initializeMainThread() @ 0xe8f7482 in /usr/bin/clickhouse
    10. DB::DDLWorker::runMainThread() @ 0xe8e1461 in /usr/bin/clickhouse
    11. ThreadFromGlobalPool::ThreadFromGlobalPool<void (DB::DDLWorker::*)(), DB::DDLWorker*>(void (DB::DDLWorker::*&&)(), DB::DDLWorker*&&)::'lambda'()::operator()() @ 0xe8f8601 in /usr/bin/clickhouse
    12. ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0x854aa1f in /usr/bin/clickhouse
    13. ? @ 0x854de93 in /usr/bin/clickhouse
    14. start_thread @ 0x9609 in /usr/lib/x86_64-linux-gnu/libpthread-2.31.so
    15. __clone @ 0x122293 in /usr/lib/x86_64-linux-gnu/libc-2.31.so
    (version 21.3.20.1 (official build))
  • https://t.me/clickhouse_ru
    @cmbcksrl #279417 08:50 AM, 15 Jul 2022
    в конфиге крч попробую поменять сейчас listen_host тэг
  • https://t.me/clickhouse_ru
    @cmbcksrl #279418 09:13 AM, 15 Jul 2022
    поменял на listen_host 127.0.0.1, эти ошибки сыпаться перестали, но проблема осталась, при вызове ON CLUSTER вот такое в логах было

    2022.07.15 09:11:05.834138 [ 54 ] {1473480c-df9b-4337-8a6d-0a4eccfc8e70} <Error> TCPHandler: Code: 159, e.displayText() = DB::Exception: Watching task /clickhouse/task_queue/ddl/query-0000000000 is executing longer than distributed_ddl_task_timeout (=180) seconds. There are 2 unfinished hosts (0 of them are currently active), they are going to execute the query in background, Stack trace:

    0. DB::Exception::Exception<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, long&, unsigned long&, unsigned long&>(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> >&, long&, unsigned long&, unsigned long&) @ 0xef2e172 in /usr/bin/clickhouse
    1. DB::DDLQueryStatusInputStream::readImpl() @ 0xef2d8f6 in /usr/bin/clickhouse
    2. DB::IBlockInputStream::read() @ 0xe6a1e25 in /usr/bin/clickhouse
    3. DB::AsynchronousBlockInputStream::calculate() @ 0xe69e191 in /usr/bin/clickhouse
    4. ? @ 0xe69ea07 in /usr/bin/clickhouse
    5. ThreadPoolImpl<ThreadFromGlobalPool>::worker(std::__1::__list_iterator<ThreadFromGlobalPool, void*>) @ 0x854d3c8 in /usr/bin/clickhouse
    6. 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()() @ 0x854eddf in /usr/bin/clickhouse
    7. ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0x854aa1f in /usr/bin/clickhouse
    8. ? @ 0x854de93 in /usr/bin/clickhouse
    9. start_thread @ 0x9609 in /usr/lib/x86_64-linux-gnu/libpthread-2.31.so
    10. __clone @ 0x122293 in /usr/lib/x86_64-linux-gnu/libc-2.31.so
  • https://t.me/clickhouse_ru
    @nordluf #279419 09:16 AM, 15 Jul 2022
    > поменял на listen_host 127.0.0.1,
    тогда вам либо надо сделать —net=host либо ничего не будет работать.
  • https://t.me/clickhouse_ru
    @nordluf #279420 09:16 AM, 15 Jul 2022
    у вас как было? 0.0.0.0?
    поставьте ip который назначаете в композе
  • https://t.me/clickhouse_ru
    было так, поменял на ip из комоуза, ничего не изменилось
  • https://t.me/clickhouse_ru
    @nordluf #279422 09:24 AM, 15 Jul 2022
    смотрите, у вас проблема в том, что у вас нет связности между контейнерами внутри сети. К сожалению, я не знаю точно как работает докер на винде, единственное что я знаю это только факт что это всё сделано через жопу.

    Вам нужна ситуация когда Ip который слушает CH в контейнере доступен снаружи. Обычно для этого нужно 0.0.0.0, но в винде это видимо не работает. Давайте так - по одному контейнеру будем приводить в корректное состояние.
  • https://t.me/clickhouse_ru
    @nordluf #279423 09:25 AM, 15 Jul 2022
    Во первых, поставьте зукиперу listen host - 172.18.1.3
  • https://t.me/clickhouse_ru
    надо контейнеры в одну докерную сеть положить и обращаться к ним по именам
  • https://t.me/clickhouse_ru
    @nordluf #279425 09:26 AM, 15 Jul 2022
    у него так и сделано
  • https://t.me/clickhouse_ru
    вот его композ. судя по логам теперь проблема в listen_host
  • https://t.me/clickhouse_ru
    все процессы должны слушать нули
  • https://t.me/clickhouse_ru
    @nordluf #279428 09:29 AM, 15 Jul 2022
    *как правило хватает если все процессы слушают нули"
  • https://t.me/clickhouse_ru
    в смысле на каждом КХ установить этот тэг?
  • https://t.me/clickhouse_ru
    @nordluf #279430 09:31 AM, 15 Jul 2022
    у вас сейчас как настроено? какие listen+host в каждом их контейнеров?
  • https://t.me/clickhouse_ru
    @cmbcksrl #279431 09:34 AM, 15 Jul 2022
    ch1
    <interserver_http_host>ch1</interserver_http_host>
    <listen_host>172.18.1.3</listen_host>

    ch2
    <interserver_http_host>ch2</interserver_http_host>
    <listen_host>172.18.1.3</listen_host>
  • https://t.me/clickhouse_ru
    @nordluf #279432 09:40 AM, 15 Jul 2022
    так работать не будет. если не работают 0.0.0.0 - вам надо указать тот-же ip который вы указываете контейнеру в композе
  • https://t.me/clickhouse_ru
    @cmbcksrl #279433 09:49 AM, 15 Jul 2022
    сделал так, без изменений

    ch1
    <interserver_http_host>ch1</interserver_http_host>
    <listen_host>172.18.1.1</listen_host>

    ch2
    <interserver_http_host>ch2</interserver_http_host>
    <listen_host>172.18.1.2</listen_host>
  • https://t.me/clickhouse_ru
    а почему бы им нули не слушать?
  • https://t.me/clickhouse_ru
    Он выше выкладывал логи с ошибками что не получается
  • https://t.me/clickhouse_ru
    @nordluf #279436 09:51 AM, 15 Jul 2022
    А. стоп. Я посмотрел внимательно. Там ошибка с ipv6
  • https://t.me/clickhouse_ru
    @nordluf #279437 09:52 AM, 15 Jul 2022
    Укажите listen_host 0.0.0.0 - так должно сработать
  • https://t.me/clickhouse_ru
    @runiverse_hiker #279439 09:55 AM, 15 Jul 2022
    Добрый день. Подскажите пожалуйста - впервые хочу использовать функционал UDF в клике. Использую пример из доки. Не очень понятно куда класть xml файл. Питоновский скрипт в папку user_scripts если я правильно понял, а xml?
  • https://t.me/clickhouse_ru
    @cmbcksrl #279440 09:57 AM, 15 Jul 2022
    так у меня изначально 0.0.0.0 стояло))
    все равно попробовал, не выходит
  • @Konstantin_Bakhmetyev #279441 10:01 AM, 15 Jul 2022
    Добрый день. Подскажите, пожалуйста - есть ли возможность переименовать реплицируемую таблицу?
    Вижу что сама таблица переименовывается на всех репликах, но в зукипере ничего не происходит - остаётся старое название и нового не создаётся.
    А при попытке создать новую таблицу с именем переименованной, вываливается ошибка Existing table metadata in ZooKeeper differs in ...
  • https://t.me/clickhouse_ru
    судя по логам у вас было и 0/0/0/0 и [::]:9000
  • https://t.me/clickhouse_ru
    @cmbcksrl #279443 10:04 AM, 15 Jul 2022
    ну вот сейчас поставил 0.0.0.0, не вышло
  • https://t.me/clickhouse_ru
    @nordluf #279444 10:04 AM, 15 Jul 2022
    Что теперь в логах?
  • @darenat #279445 10:07 AM, 15 Jul 2022
    привет : ) вопрос по DNS-кэшу.
    ошибся в remote-запросе с именами хостов (указал несуществующие). но сервер как будто занес их в свой dns-кэш и пытается регулярно резолвить.
    ошибками спамит в журнал:
    <Error> DNSResolver: Cannot resolve host (clickhouse2), error 0: Temporary DNS error while resolving: clickhouse2.

    есть штатный способ почистить кэш? или время жизни как-то настроить?
    про настройку dns_cache_update_period знаю, но это тот самый интервал резолва.
    версия 21.11.3.6
  • https://t.me/clickhouse_ru
    2022.07.15 09:56:55.572409 [ 52 ] {} <Warning> Access(local directory): File /var/lib/clickhouse/access/users.list doesn't exist
    2022.07.15 09:56:55.572448 [ 52 ] {} <Warning> Access(local directory): Recovering lists in directory /var/lib/clickhouse/access/
    2022.07.15 09:56:55.585133 [ 52 ] {} <Warning> Application: Listen [::]:8123 failed: Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = DNS error: EAI: Address family for hostname not supported (version 21.3.20.1 (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.07.15 09:56:55.585291 [ 52 ] {} <Warning> Application: Listen [::]:9000 failed: Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = DNS error: EAI: Address family for hostname not supported (version 21.3.20.1 (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.07.15 09:56:55.585434 [ 52 ] {} <Warning> Application: Listen [::]:9009 failed: Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = DNS error: EAI: Address family for hostname not supported (version 21.3.20.1 (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.07.15 09:56:55.585555 [ 52 ] {} <Warning> Application: Listen [::]:9004 failed: Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = DNS error: EAI: Address family for hostname not supported (version 21.3.20.1 (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.07.15 10:00:39.118020 [ 54 ] {4f40b662-bf11-4d4d-8349-8d65fb537b72} <Error> executeQuery: Code: 159, e.displayText() = DB::Exception: Watching task /clickhouse/task_queue/ddl/query-0000000000 is executing longer than distributed_ddl_task_timeout (=180) seconds. There are 2 unfinished hosts (0 of them are currently active), they are going to execute the query in background (version 21.3.20.1 (official build)) (from 127.0.0.1:45296) (in query: CREATE TABLE default.test_rep2 ON CLUSTER test_replicas ( a UInt32, b UInt32, c UInt32 ) ENGINE = ReplicatedMergeTree('/clickhouse/tables/test_replicas1/test_rep1', '{replica}') ORDER BY a;), Stack trace (when copying this message, always include the lines below):
  • https://t.me/clickhouse_ru


    0. DB::Exception::Exception<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, long&, unsigned long&, unsigned long&>(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> >&, long&, unsigned long&, unsigned long&) @ 0xef2e172 in /usr/bin/clickhouse
    1. DB::DDLQueryStatusInputStream::readImpl() @ 0xef2d8f6 in /usr/bin/clickhouse
    2. DB::IBlockInputStream::read() @ 0xe6a1e25 in /usr/bin/clickhouse
    3. DB::AsynchronousBlockInputStream::calculate() @ 0xe69e191 in /usr/bin/clickhouse
    4. ? @ 0xe69ea07 in /usr/bin/clickhouse
    5. ThreadPoolImpl<ThreadFromGlobalPool>::worker(std::__1::__list_iterator<ThreadFromGlobalPool, void*>) @ 0x854d3c8 in /usr/bin/clickhouse
    6. 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()() @ 0x854eddf in /usr/bin/clickhouse
    7. ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0x854aa1f in /usr/bin/clickhouse
    8. ? @ 0x854de93 in /usr/bin/clickhouse
    9. start_thread @ 0x9609 in /usr/lib/x86_64-linux-gnu/libpthread-2.31.so
    10. __clone @ 0x122293 in /usr/lib/x86_64-linux-gnu/libc-2.31.so
  • https://t.me/clickhouse_ru
    SYSTEM DROP DNS CACHE;
  • https://t.me/clickhouse_ru
    Вот суть: There are 2 unfinished hosts (0 of them are currently active)
  • https://t.me/clickhouse_ru
    flatten(groupArray(massive)) - сделает 1 плоский массив из всех подмассивов
  • https://t.me/clickhouse_ru
    Вы пробуете с нуля поднять?
  • https://t.me/clickhouse_ru
    @cmbcksrl #279452 10:10 AM, 15 Jul 2022
    да
  • https://t.me/clickhouse_ru
    @nordluf #279453 10:10 AM, 15 Jul 2022
    попробуйте удалить волюмы и начните с нуля
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    да, хорошо, а то я что-то мусорить логами начал)
  • то, что надо! спасибо! 👌
  • https://t.me/clickhouse_ru
    удалил вольюмы, удалил сети

    https://pastila.nl/?00358cd4/036ec3e7f8639df348b426ce21ace679
  • https://t.me/clickhouse_ru
    А у вас совпадают хостнеймы в конфиге и в композе?
  • https://t.me/clickhouse_ru
    @cmbcksrl #279460 10:34 AM, 15 Jul 2022
    совпадают
  • https://t.me/clickhouse_ru
    @nordluf #279461 10:35 AM, 15 Jul 2022
    может быть добавите конфиги и композ?
  • https://t.me/clickhouse_ru
    @cmbcksrl #279462 10:36 AM, 15 Jul 2022
    да, давайте, добавлю
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    ладно.... я не вижу очевидных на мой взгляд косяков. Вы проверяли связность между контейнерами по указанным портам? Может вам на версию 22.3 подняться?
  • https://t.me/clickhouse_ru
    вот эти

    clickhouse clickhouse-client clickhouse-copier clickhouse-format clickhouse-keeper clickhouse-library-bridge clickhouse-obfuscator clickhouse-report
    clickhouse-benchmark clickhouse-compressor clickhouse-extract-from-config clickhouse-git-import clickhouse-keeper-converter clickhouse-local clickhouse-odbc-bridge clickhouse-server

    ?

    или

    clickhouse
    Use one of the following commands:
    clickhouse local [args]
    clickhouse client [args]
    clickhouse benchmark [args]
    clickhouse server [args]
    clickhouse extract-from-config [args]
    clickhouse compressor [args]
    clickhouse format [args]
    clickhouse copier [args]
    clickhouse obfuscator [args]
    clickhouse git-import [args]
    clickhouse keeper [args]
    clickhouse keeper-converter [args]
    clickhouse install [args]
    clickhouse start [args]
    clickhouse stop [args]
    clickhouse status [args]
    clickhouse restart [args]
    clickhouse static-files-disk-uploader [args]
    clickhouse hash-binary [args]
  • @5194837406 #279468 10:55 AM, 15 Jul 2022
    😜wNC My strategy for dealing with the crypto bear market - how a millionaire is made! https://t.me/agykr1
    Crypto Arbitrage Tutorial

    Spread Arbitrage 3%-5% profit per transaction Profit of 300+ dollars a day Safe and reliable, legal transactions

  • https://t.me/clickhouse_ru
    @If9090 ↶ Reply to #279467 #279469 10:56 AM, 15 Jul 2022
    Вторые

    Как я понимаю, первый блок для линукса, а вот в тех что для мака(второй блок), в поле args я не понял что прописывать
  • https://t.me/clickhouse_ru
    через ping ch2 и через ping zk есть ответы
  • https://t.me/clickhouse_ru
    @nordluf #279471 10:57 AM, 15 Jul 2022
    а порты доступны?
  • https://t.me/clickhouse_ru
    @cmbcksrl #279472 10:58 AM, 15 Jul 2022
    слушаются
  • https://t.me/clickhouse_ru
    30818 как-то мало

    они проверяют RLIMIT_NPROC

    и сообщение неправильное, это limit доступных процессов/тредов на всех, не на КХ
  • https://t.me/clickhouse_ru
    создал https://github.com/ClickHouse/ClickHouse/issues/39260

    надо увеличить
    echo 300000 > /proc/sys/kernel/threads-max
    Maximum number of threads is lower than 30000 is incorrect message · Issue #39260 · ClickHouse/ClickHouse

    * Maximum number of threads is lower than 30000. There could be problems with handling a lot of simultaneous queries. cat /proc/sys/kernel/threads-max 30818 Probably it should be "a number...

  • https://t.me/clickhouse_ru
    Потом окажется, что выключил какой то сетевой адаптер :)
  • https://t.me/clickhouse_ru
    нет, это оба сообщения из линукса.

    это просто аргументы программы clickhouse

    clickhouse -- это single binary и если его запускать с разными аргументами, он делает разное

    clickhouse-client это симлинк на clickhouse

    т.е. без раницы как запускать clickhouse client или clickhouse-client

    clickhouse compressor == clickhouse_compressor и т.д.

    все команды вам не нужны, половина нужна только админам и разработчикам КХ.

    вам полезны только client и local
  • https://t.me/clickhouse_ru
    on cluster просто запускает то что просите на каждой ноде КХ

    и каждая нода создает distributed таблицу и выполняет insert select и естественно все дублируется многократно.

    вам надо создать таблицу без as select

    и затем запустить на одной ноде insert into ... select .... from s3cluster тогда все ноды разделят работу и вставят свой кусочек, на сайте altinity ищите по слову s3cluster
  • так понятно что можно сделать
    ctas генерит dbt, думал можно как-то это обойти
  • https://t.me/clickhouse_ru
    zookeeper znode нельзя переименовать.

    поэтому надо либо использовать версионирование, типа добавлять что то в путь _1 , _2 _3
    либо использовать atomic и создавать таблицы on cluster c генерацией uuid и тогда пути зукипера будут бессмысленные уникальные uuid и будет пофиг на переменование
  • https://t.me/clickhouse_ru
    нельзя

    это не починить в КХ, это такой дизайн distributed, это надо добавлять какие-то другие движки.
  • В zk node случаем порт не нужно открыть? - 2181
    https://pastila.nl/?002f787e/dac50d0283fa7f32e3366f9911e482f0
  • https://t.me/clickhouse_ru
    можно, переделайте то как генерится в dbt
  • https://t.me/clickhouse_ru
    @Romkart #279483 11:17 AM, 15 Jul 2022
    что может означать ошибка ?
    <Error> Application: DB::Exception: No key in S3 uri: http://try1-minio.test.svc:9000/ss-cold-storage/

    https://github.com/ClickHouse/ClickHouse/blame/00dedc4e0053cb704df4e96bbd16b95852545c09/src/Disks/ObjectStorages/S3/registerDiskS3.cpp#L84

    UPD , оказывается просто в бакет нельзя указать путь, нужно добаить еще чтото типа /ss-cold-storage/data/
  • Спасибо большое, так получилось, добавил в путь в зу к новым таблицам версию
  • https://t.me/clickhouse_ru
    @If9090 ↶ Reply to #279476 #279485 11:26 AM, 15 Jul 2022
    Спасибо
  • https://t.me/clickhouse_ru
    @cmbcksrl #279486 11:26 AM, 15 Jul 2022
    открыл в docker-compose.yml, беда не уходит
  • https://t.me/clickhouse_ru
    Если зайти в контейнер с кх, какой там ip и hostname и что в distributed для этого хоста
  • я правильно понимаю что с версии 22.7.1 будет нормально работать и будет create table empty as select + insert?

    https://github.com/ClickHouse/dbt-clickhouse/blob/ff72032e87ebb7624374fb0bb7b42d61dfd8c031/dbt/include/clickhouse/macros/adapters.sql#L74
    dbt-clickhouse/adapters.sql at ff72032e87ebb7624374fb0bb7b42d61dfd8c031 · ClickHouse/dbt-clickhouse

    The Clickhouse plugin for dbt (data build tool). Contribute to ClickHouse/dbt-clickhouse development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @cmbcksrl #279489 11:31 AM, 15 Jul 2022
    не совсем понимаю, что подразумевается под distributed
  • https://t.me/clickhouse_ru
    в docker-compose можно hostname прописать
    clickhouse1:
    hostname: clickhouse1
    links:
    - clickhouse2
    clickhouse2:
    hostname: clickhouse2
  • https://t.me/clickhouse_ru
    В remote_servers
  • https://t.me/clickhouse_ru
    не факт... смотря как create_table_empty реализован
    ройте исходники дальше
  • https://t.me/clickhouse_ru
    @Romkart #279494 11:35 AM, 15 Jul 2022
    @BloodJazMan пока ты тут я спрошу тебя кое чего по новому релизу оператора , может ты в курсе зачем это сделали

    меня оно шокировало немного

    Now 'clickhouse-operator' user is restricted to an IP address of the pod where clickhouse-operator is running. It can not be used from anywhere else.
  • Кстати, и в remote_servers секциях какой порт должен быть указан? не 9000 в общем случае?
    Может тут не прав, поправьте если что
    https://pastila.nl/?002f787e/dac50d0283fa7f32e3366f9911e482f0
  • https://t.me/clickhouse_ru
    В современных кх 9000 можно не указывать.
  • https://t.me/clickhouse_ru
    А хотя там почему-то 8123, good catch
  • https://t.me/clickhouse_ru
    @den_crane #279498 11:43 AM, 15 Jul 2022
    Забавно, два дня из за такой фигни обсуждаем
  • https://t.me/clickhouse_ru
    @cmbcksrl #279500 11:46 AM, 15 Jul 2022
    то есть вся проблема была в портах в remote_servers?)
  • https://t.me/clickhouse_ru
    да. КХ сервер проверяет что он это он, по паре ip:tcp_port , у вас remote 8123 а оно <> 9000
  • https://t.me/clickhouse_ru
    @konnectrl #279502 11:47 AM, 15 Jul 2022
    Ну получается так
  • https://t.me/clickhouse_ru
    обычно вы бы сразу это заметили, потому что не работают distributed запросы, но вы их не выполняли, потому что у вас 1 шард.
  • https://t.me/clickhouse_ru
    @cmbcksrl #279504 11:49 AM, 15 Jul 2022
    забавно, потому что когда шардирование тестил также через компоуз везде указал порт 9000 в remote_servers
  • https://t.me/clickhouse_ru
    и вы зря кладете весь config.xml , можно передавать только измененные кусочки конфига.

    https://kb.altinity.com/altinity-kb-setup-and-maintenance/altinity-kb-server-config-files/
    Server config files

    How to manage server config files in Clickhouse

  • https://t.me/clickhouse_ru
    @cmbcksrl #279506 11:51 AM, 15 Jul 2022
    да я знаю, мне просто привычнее, надо отучать себя так делать, запутаться проще
  • https://t.me/clickhouse_ru
    @cmbcksrl #279507 11:53 AM, 15 Jul 2022
    ну да, все шикарно работает
  • https://t.me/clickhouse_ru
    @cmbcksrl #279508 11:53 AM, 15 Jul 2022
    спасибо за внимательность и потраченное на меня время
  • https://t.me/clickhouse_ru
    @catent #279509 12:09 PM, 15 Jul 2022
    а как создать таблицу на конкретном диске из storage_configuration/disks?
  • https://t.me/clickhouse_ru
    @Krisantis #279510 12:13 PM, 15 Jul 2022
    Это норма, если ch грузит цп перманентно под максимум? Или стоит задуматься об увеличении цп?
  • https://t.me/clickhouse_ru
    сделали потому что люди начинали юзать clickhouse_operator юзера для коннекта из приложений
    а это вообще не правильно

    если вы так делаете. вы стреляете себе в ногу
    clickhouse_operator пользователь он только для того чтобы мониторить инстансы и накатывать схему
  • https://t.me/clickhouse_ru
    clickchouse старается сожрать CPU по максимуму

    график без отрыва сколько у вас запросов в секунду и сколько они читают строк \ сколько отдают клиенте...
    не дает четкой картины

    смотрите в system.query_log
  • https://t.me/clickhouse_ru
    я так не делаю)

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

    но мне это не кажется надежным и совместимымрешением
  • @IlIlIlIlIlIllIl #279514 12:19 PM, 15 Jul 2022
    Всем привет, подскажите, есть ли возможность проверить разом все атрибуты таблицы на NULL?

    Какая-нибудь аналогия ручному перебору:
    select count(a1) as amount, 'a1' as atribute from table_ where a1 is null
    union all select count(a2) as amount, 'a2' as atribute from table_ where a2 is null
    union all select count(a3) as amount, 'a3' as atribute from table_ where a3 is null
    ...
  • https://t.me/clickhouse_ru
    в чем выражается "ненадежность"?

    механизмы оновления configmap в кубере достаточно протестированы...
    механизмы config reload в clickhouse тоже работают...

    что не так тогда?
  • https://t.me/clickhouse_ru
    совместимым с чем?
  • https://t.me/clickhouse_ru
    часто бывает так что cm напрямую не монтируют, а прогоняют через init контейнер и шаблонизируют, мы раньше так делали активно, сейчас оператор поумнел и в этом нет необходимости , но ктото может продолать так делать,
  • https://t.me/clickhouse_ru
    @Romkart #279518 12:22 PM, 15 Jul 2022
    кроме того cm меняется внутри pod в непредсказуемые моменты времени, не всем это нравится
  • https://t.me/clickhouse_ru
    в том то и дело, что у нас не 100% времени кверится что-то из базы. Есть простой и его много
  • https://t.me/clickhouse_ru
    гхм =) ну то что вы делали кастомную логику на init Container ;) для чего кстати?
    мы у себя только один Use case видели
    всякие миграции прогонять ...
  • select * apply(x -> countIf(isNull(x))) from ...
  • https://t.me/clickhouse_ru
    > для чего кстати?
    кажется пароли создавали или типа того, я когда то созадвал тикет , его сделали и теперь в этом нет необходимости

    UPD: вспомнил, установка паролей из секретов, мы монтировали секреты в init и генерили xml в котором они лежат , потому что до этого пароли вообще явно в конфиге только прописать можно было в открытом виде
  • https://t.me/clickhouse_ru
    ну смотрите всякие бекграунд процессы

    https://clickhouse.com/docs/en/operations/system-tables/stack_trace/
    смотрите system.stack_trace
    Там можно понять чем треды занимаются и сколько их
    stack_trace | ClickHouse Docs

    Contains stack traces of all server threads. Allows developers to introspect the server state.

  • почему-то с ошибкой отваливается на оператор ->:
    DB::Exception: Syntax error: failed at position 195 ('->')

    Может ли версия клика быть как-то в этом замешена? У меня (version 21.3.11.5 (official build))
  • да, старая версия
  • 😞, а есть варианты решения без обновления версии?)
  • https://t.me/clickhouse_ru
    @gagayuoi #279528 12:40 PM, 15 Jul 2022
    hqha
  • создать policy, volume, включить туда disk который вам нужно и использовать эту полиси для вашей таблицы
    тут хорошо расписано
    https://altinity.com/blog/2019/11/27/amplifying-clickhouse-capacity-with-multi-volume-storage-part-1
    Amplifying ClickHouse Capacity with Multi-Volume Storage (Part 1)

    As longtime users know well, ClickHouse has traditionally had a basic storage model.  Each ClickHouse server is a single process that accesses data located on a single storage device. The design offers operational simplicity--a great virtue--but restricts users to a single class of storage for all data. The downside is difficult cost/performance choices, especially for large clusters. 

  • https://t.me/clickhouse_ru
    Спасибо!
  • @7699150 #279531 01:21 PM, 15 Jul 2022
    Всем привет!
    Есть очень большой и тяжелый SQL запрос. Можно ли создать табличку на основе этого запроса, не выполняя его?
    Делаю CREATE TABLE my_table ON CLUSTER my_cluster AS {my_big_sql_query} LIMIT 0 — он начинает нагружать все ноды, а мне нужно только создать табличку, а не наполнить её. Можно ли как-то обойти выполнение всего запроса и ускорить процесс?
  • https://t.me/clickhouse_ru
    @dedushka_mao #279532 01:37 PM, 15 Jul 2022
    Коллеги, подскажите, CLEAR COLUMN in partition помогает освободить дисковое пространство?
  • https://t.me/clickhouse_ru
    @nordluf #279534 01:49 PM, 15 Jul 2022
    Увидел в слайдах прикольную команду BACKUP TABLE t TO File('backup_20220630') SETTINGS base_backup = File('backup_20220629'); - а где можно про это почитать?
  • https://t.me/clickhouse_ru
    Where 1=0
  • SELECT * FROM ({‘my_big_sql_query’}) WHERE 1=0 ?
  • https://t.me/clickhouse_ru
    А можно небольшой ликбез почему так быстрее? Оптимизатор понесёт глубже это условие внутрь квери?
  • https://t.me/clickhouse_ru
    @Kostivar #279538 02:07 PM, 15 Jul 2022
    Добрый день)
    1) настраивал реплику.. использовал встроенный keeper - вроде бы как заработало, ошибок нету.. но бд на реплике не создалась и не реплицируется
    2) прервалась связь с репликой и основная бд встала колом, при перезапуске открывала только порт реплики и в логе писала что не может достучаться до реплики. когда связь восстановилось - все взлетело.. в документации написало, что при потери реплики бд становится ридонли.. а это обойти никак?
  • https://t.me/clickhouse_ru
    @Vasyaabr #279539 02:07 PM, 15 Jul 2022
    Подскажите, а изнутри clickhouse-клиента можно как-то понять, какой координатор используется, zookeeper или clickhouse-keeper?
  • https://t.me/clickhouse_ru
    да просто в where допишите and 1=0
  • https://t.me/clickhouse_ru
    быстрее чем что?
  • принял, буду пробовать
    Спасибо
  • https://t.me/clickhouse_ru
    @If9090 #279545 02:27 PM, 15 Jul 2022
    Всем добрый вечер!

    Только начинаю пользоваться кликхаусом, установил на мак, пытаюсь работать через консоль. Пытаюсь загрузить БД, но вылетает такая ошибка:

    errno: 24, strerror: Too many open files: data for INSERT was parsed from file. (CANNOT_OPEN_FILE)

    Гуглил, пишут что надо расширить лимит файловых дескрипторов, но это не помогает.
    Возможно тут кто то знает что делать с этой проблемой?
  • https://t.me/clickhouse_ru
    у зукипера есть /zookeeper ветка, у кипера нет

    select * from system.zookeeper where path='/';
    ┌─name───────┬─
    │ test │
    │ zookeeper │ ---------<<<<<<<<<<<<<<<<<<<<<<<<--
    │ clickhouse │
    └────────────┴─

    select * from system.zookeeper where path='/';
    ┌─name───────┬─value─┬─path─┐
    │ clickhouse │ │ / │
    └────────────┴───────┴──────┘
  • https://t.me/clickhouse_ru
    1) бд и не должна создаваться на реплике. Это не так работает.

    2) да, и это специально сделано. Если между ДВУМЯ репликами разорвалась связь, то как они узнают об этом? как избежать split brain?
  • https://t.me/clickhouse_ru
    Чем limit 0
  • https://t.me/clickhouse_ru
    да просто он не понимает что с limit 0 можно не делать ничего
  • https://t.me/clickhouse_ru
    @392734528 #279550 02:38 PM, 15 Jul 2022
    Ребят, а где можно почитать рекомендации по мощностям для КХ ?
    Тестовые прогонки прошли успешно, будет собирать рабочие стенды и собственно нужно с чем то прийти к инженерам.
    Пока у меня из требований 3 машины с кликом на каждой будет квартал теплых данных размером. 200 - 250гигов. Данные доливаются раз в сутки, раз в 30 дней отрезаем хвост в 30 дней. и так ползём дальше.

    Объёмы для клика смешные и потому думаю что можно не заморачиваться на шардирование и прочую распределёнку. Но могу быть не прав. В общем помогите заложить мощщей.
  • https://t.me/clickhouse_ru
    Сколько полей и строк в таблицах? 1 таблица на 250 гигов это совсем не то, что 50 таблиц по 5 гигов )
  • https://t.me/clickhouse_ru
    @Krisantis #279552 02:41 PM, 15 Jul 2022
    А включите реакции в группе?
  • https://t.me/clickhouse_ru
    они выключены, потому что все проголосовали что бы их выключить.
    потому что боты приходили и ставили миллионы реакшинов
  • https://t.me/clickhouse_ru
    @cmbcksrl #279555 02:42 PM, 15 Jul 2022
    их выключили, потому что боты заходили и кидали всем реакции))
  • https://t.me/clickhouse_ru
    Точно, вспомнил про ботов
  • https://t.me/clickhouse_ru
    на вскидку 35 полей
    из низ штук 12 Nesed типа
    максимальная ыложенность 4 (скорее всего не больше 3)

    есть желание таких 3 тбалиы рядом иметь для разных источников.
  • https://t.me/clickhouse_ru
    @Alexey_037 #279560 02:48 PM, 15 Jul 2022
    Ну то есть 3 таблицы по 80 гигов примерно? То есть десятки миллиардов записей будет в каждой?
  • https://t.me/clickhouse_ru
    3 по 250
  • https://t.me/clickhouse_ru
    @Alexey_037 #279562 02:50 PM, 15 Jul 2022
    Просто надо же еще понимать, что вы хотите с этими данными делать, какие отборы проводить. Если просто count() по полям, то и 1 сервер справится, если что посложнее - уже думать надо.
  • https://t.me/clickhouse_ru
    думаю витрины запилим на одной такой сборке и клиенты будут запросы гонять - запросы по проще но частые
    аналитики будут ковыряться на другом изолированном инстансе - тут будут посложней запросы
  • https://t.me/clickhouse_ru
    @cmbcksrl #279564 02:52 PM, 15 Jul 2022
    народ, подскажите best practice по выгрузке результата запроса в файл при помощи ide DBeaver

    на данный момент делаю через ПКМ по результату + "Экспорт данных..."

    мб можно это делать быстрее, медленно выгружается большой объем, около 30 Гб
  • https://t.me/clickhouse_ru
    @cmbcksrl #279565 02:53 PM, 15 Jul 2022
    мб есть кака-нибудь настройка ODBC драйвера, которая ускорит выгрузку
  • https://t.me/clickhouse_ru
    Ну и опять же - есть ли у вас какие то агрегаторы уже над витринами? Какие-нибудь отдельные сущности c движками агрегации (Summing, Aggregate и т.п.)? Или все тупо в первоисточник лезть будут и uniqExact'ы считать ?
  • https://t.me/clickhouse_ru
    ничего замороченного пока. тупо запросы с агрегациями.
    Если что мат вьюхи запилим чтобы еще быстрей результаты получали.
  • https://t.me/clickhouse_ru
    В любом случае - просите как можно больше оперативки, клик ее очень любит. Я так понимаю, тестовая прогонка уже была с таблицей полного размера и все устроило?
  • https://t.me/clickhouse_ru
    был взят недельный объём и на нем проверена его погрузка и скорость построения отчестности. Секунды на отчетность. Загрузка тоже весьма-весьма.
    Оперативки конечно надо, но нуджно в граммах )
    Вот на мои игрушки сколько нужно на вскидку?
  • https://t.me/clickhouse_ru
    @Alexey_037 #279570 03:06 PM, 15 Jul 2022
    Возьмите недельный объём, продублируйте 3 раза и сравните по скорости выбора. Время запросов может увеличиться заметно.
  • https://t.me/clickhouse_ru
    @Alexey_037 #279571 03:07 PM, 15 Jul 2022
    Просто 2 раза insert into tbl select * from tbl
  • https://t.me/clickhouse_ru
    @Tu_viejo_amigo #279572 03:14 PM, 15 Jul 2022
    Подскажите, пожалуйста, какая конфигурация предпочтительнее: 3 сервера по 2 инстанса кликхауса (шард и круговая репликация на каждом) или 3 сервера, на них все обернуто в кубер, внутри кликхаус оператор?
  • https://t.me/clickhouse_ru
    3 железки - 6 кх серверов?
  • https://t.me/clickhouse_ru
  • золотое правило, 1 железка - 1 КХ, круговая репликация это костылестроение в КХ
  • https://t.me/clickhouse_ru
    тогда без разницы, Кубер или не кубер.
  • https://t.me/clickhouse_ru
    сказано что not ready for production
    при этом включено подефолту

    и похоже что не работает , копии файлов в s3 остаются и не ужадяются
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    это для s3 работает, а s3 путь одинаковый ?
    т.е. копии не могут оставаться, они просто не могут появиться
  • https://t.me/clickhouse_ru
    все одинаковое, на скрине видно что одинаковые файлы в одну кучу свалило,
    сценарий был такой,
    я заливаю сразу данные котыре под ttl move попадают,
    все льюется прямо в s3 и в моменте 6G все занимало, но через какотое время партиции вроде схлопнулись, может сами а может потому что я OPTIMIZE запускал
    и вот все остановилось в таком виде как на скринах
  • https://t.me/clickhouse_ru
    вот что в zk , что бы это ни значило оно так сейчас выглядит
  • https://t.me/clickhouse_ru
    запускал запрос на вставку дважды, примерно такое INSERT INTO FUNCTION remote('x4-clickhouse:9000' ... SELECT * FROM ... SETTINGS insert_distributed_sync=1, insert_quorum=2
  • https://t.me/clickhouse_ru
    @artemhnilov #279589 06:22 PM, 15 Jul 2022
    Привет. Подскажите, пожалуйста, дату в таком формате '2022-07-11T17:07:54.336111-0400', ClickHouse распарсить не умеет?
    select toDateTime64('2022-07-11T17:07:54.336111-0400', 6);
    не работает к сожалению.
  • Если там лишние -0400, то можно, наверное, их просто отрезать?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    работает. спасибо
  • @processer #279593 06:36 PM, 15 Jul 2022
    Можно ли в прагме в теле запроса переопределить max_query_size? как?
  • https://t.me/clickhouse_ru
    есть system.remote_data_paths там смотрите это файл с одной реплики или двух, может у вас optimize файлов наделал