• 01 November 2022 (221 messages)
  • https://t.me/clickhouse_ru
    @5675631786 #296503 02:22 AM, 01 Nov 2022
    BTБ продлил акцию и дальше выплачивает по 3ООО pублей за оставленный отзыв о работе банка! Акция действительна только для клиентов BTБ.

    Официальный сайт акции - просто нажимайте на этот текст
  • @inflamedsenseofrejection #296505 06:49 AM, 01 Nov 2022
    привет, как в кликхаусе сделать подобие "отложенной" репликицаии а-ля mysql/postgres? хочется иметь резерв для быстрого доступа на случай какого-нибудь drop table помимо многотерабайтных бэкапов из которых долго вытаскивать данные
    в кластере 4 шарда/8 нод, таблицы в основном ReplicatedMergeTree, CH 22.10
    смотрел доку, видел clickhouse-copier, но кажется он не умеет догонять только изменённые данные без полного перезалива
  • Может вам лучше подкрутить max_table_size_to_drop, если у вас опасения что ктото может дропнуть непустую таблицу?
  • тогда придётся крутить в достаточно мелкое значение, не очень удоно станет, и в общем-то необязательно drop table, это ведь может быть какой-нибудь стрёмный альтер или транкейт
  • https://t.me/clickhouse_ru
    Это было оно, спасибо.
    нагрузка упала в разы.

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

    Интересно, есть ли еще подобные оптимизации?
  • https://t.me/clickhouse_ru
    @navi_2 #296516 08:41 AM, 01 Nov 2022
    Всем привет, подскажите что такое реплика в топологии кластера и где она физически лежит?
  • https://t.me/clickhouse_ru
    клауд тут ни при чем. Скорее проблема в старом линукс ядре или системе виртуализации.

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

    Для S3 используется вообще другой параметр remote_filesystem_read_method
  • Реплика, обычно, это отдельный сервер КХ. В КХ мультимастер репликация, все отдают данные всем.
  • https://t.me/clickhouse_ru
    > клауд тут ни при чем. Скорее проблема в старом линукс ядре или системе виртуализации.
    20.04, большие диски в аппаратном raid5
  • https://t.me/clickhouse_ru
    @runiverse_hiker #296520 08:50 AM, 01 Nov 2022
    Подскажите пожалуйста с чем может быть связана такая ситуация - прогружаю данные в null -> mv -> table. Вижу что она весит 6.5 кб, count.txt показывает что там 23 строки, захожу в дибивер пусто. Уже перезагружал и пересоздавал таблицы несколько раз
  • https://t.me/clickhouse_ru
    Ядро какое?
  • https://t.me/clickhouse_ru
    В system.parts что?
    Либо смотрите не в ту бд, либо есть row policy
  • https://t.me/clickhouse_ru
    GNU/Linux 5.4.0-124-generic x86_64
  • https://t.me/clickhouse_ru
    А как посмотреть есть ли row policy на таблицу?
  • https://t.me/clickhouse_ru
    Show row policies
  • https://t.me/clickhouse_ru
    Спасибо)
  • https://t.me/clickhouse_ru
    @ActionNum #296527 09:49 AM, 01 Nov 2022
    Всем привет, в системной таблице system.replication_queue
    Очередь на репликацию не существующих партиций, не пойму откуда берутся эти задачи. Все они не выполняются по причине:

    Not executing log entry queue-0000045957 of type DROP_RANGE for part 20220828-18_29_29_1 because another DROP_RANGE or REPLACE_RANGE entry are currently executing.
  • https://t.me/clickhouse_ru
    @ActionNum #296530 09:51 AM, 01 Nov 2022
    На двух репликах TTL этой таблицы 3 дня
  • https://t.me/clickhouse_ru
    @ActionNum #296531 09:51 AM, 01 Nov 2022
    И если смотерть system.parts то там нет таких старых партиций на обоих серверах.
  • 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
    скорее всего это слишком старое ядро и проблема в этом
  • https://t.me/clickhouse_ru
    Август этого года. Нихуа себе старое
  • https://t.me/clickhouse_ru
    Спасибо, кажется то что надо. Копаю
  • https://t.me/clickhouse_ru
    @cmbcksrl #296536 10:09 AM, 01 Nov 2022
    всем привет
    хочу уточнить один момент

    правильно ли я понимаю, что до выполнения запроса невозможно узнать, сколько памяти ему потребуется?
  • @p_gim #296537 10:10 AM, 01 Nov 2022
    Всем добрый день! Подскажите, может есть возможность как-то ускорить выполнение запросов. Есть таблица ReplacingMergeTree с PARTITION BY toYYYYMM(date) и ORDER BY (сard_id, date), за каждый день около 50млн записей. Нужно делать выборки из основной таблицы за разные периоды + джойнить таблицы для доп фильтрации и полей. Пример в прикрепленном файле. Добавить индекс дополнительный - в ключе сортировки уже есть поля, по которым в основном идет фильтрация. Поиграть с гранулярностью? Может есть нюансы при агрегации?(т.к. добавление агрегационных функций увеличивает время на порядки). Может что-то еще?
  • @sandorko #296538 10:15 AM, 01 Nov 2022
    В контексте квот: если я создам разные квоты для разных ролей, и дам эти роли одному пользователю, то получу ли я в итоге разные квоты для одного пользователя? Или пользователь может иметь лишь одну роль? Или это просто не сработает:)
  • https://t.me/clickhouse_ru
    1. ускорить относительного чего?
    2. сколько времени выполняется каждая часть запроса по отдельности? какую работает медленно?
    3. положите cards_info в словарь
  • https://t.me/clickhouse_ru
    Релиз ядра Linux 5.4

    После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 5.4. Среди наиболее заметных изменений: экспериментальный драйвер exFAT, режим "lockdown" для ограничения доступа пользователя root к ядру, механизм fs-verity для контроля целостности файлов, возможность использования CIFS для корневого раздела, контроллер ввода/вывода iocost, ФС EROFS, модуль dm-clone для репликации внешних устройств, новая ФС virtiofs для экспорта каталогов в гостевые системы, поддержка GPU AMD Navi 12/14, AMD Arcturus, AMD Renoir и Intel Tiger Lake.

  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @good_developer #296542 10:19 AM, 01 Nov 2022
    Там внезапно дальше циферки есть
  • @p_gim ↶ Reply to #296539 #296543 10:20 AM, 01 Nov 2022
    1) без SUM, AVG и прочего выполняется 4 сек. С ними же, около 11 сек
    2) Медленно работает как раз таки из основной таблицы
    3) Делал так, прироста никакого
  • https://t.me/clickhouse_ru
    @good_developer #296544 10:21 AM, 01 Nov 2022
    У rhel'овцев наверно вообще волосы на заднице дыбом встали, учитывая 3/4е ядра, если судить только по первым циферкам :)
  • если у card_id всегда одни и те же brand_name, supplier_name и т.п., можно сделать group by card_id, а все остальные колонки из строк 12-15 обернуть в any()
  • https://t.me/clickhouse_ru
    @lgtwb #296546 10:47 AM, 01 Nov 2022
    Добрый день, господа.
    Вопрос такой - у меня есть инстанс с подключенной внутрь бд sqlite3. Я создал юзверя и выдал ему доступы на SELECT
    (GRANT SELECT on sqlite_db.* TO clickuser;)
    Выполнение запроса ОК, но при выполнения селекта из таблицы, на которую я дал права вылетает ошибка 497:
    Code: 497. DB::Exception: Received from 127.0.0.1:9000. DB::Exception: clickuser: Not enough privileges. To execute this query it's necessary to have grant SELECT(id, requestor, until_expired, date_start, announce, limits, object, admins, moderators, monitor, regions, doctors, form, name, analyst, status, owner, formslimit, pc, rr, files) ON SQLite.researches. (ACCESS_DENIED)
    Подскажите, пожалуйста, что я сделал не так? Нельзя указать все таблицы?

    При этом таблицы из под этого пользователя я вижу.
  • @p_gim ↶ Reply to #296545 #296547 10:55 AM, 01 Nov 2022
    да, так можно сделать, но медленно выполняется именно часть с агрегацией (
  • + я сейчас проверил, если переписать вашего монстра из строчки 22 на countIf(quantity > 0), то агрегация на моих данных сработала в 2 раза быстрее и запрос съел в 25 раз меньше памяти.
    проверьте на ваших.
  • https://t.me/clickhouse_ru
    @jenjate #296549 11:14 AM, 01 Nov 2022
    Вдруг кто-то понимает, как сделать так, чтобы в поле добавлялось значение ближайшего непустого поля (есть цена за 10-03 и 10-05, тогда 10-04 должно получить значение от 10-03), при чем должен учитываться вариант, когда пропусков дней может быть несколько, то есть просто оконку за предущий день взять нельзя. Вот тут надо, чтобы вместо 0 появилась цена https://fiddle.clickhouse.com/d1d84ba2-0a94-4438-8292-a740ef2e94a6
  • то есть такой же group by, но если просто посчитать count() работает значительно быстрее? я не совсем вас понял
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    воу, спасибо
  • @p_gim ↶ Reply to #296550 #296553 11:35 AM, 01 Nov 2022
    если просто count() сделать (без всех полей и агрегаций), то выполнение 2сек.
    если с полями (строки 12-15), но без агрегации - 4 сек
    если со всеми полями и агрегацией - около 11 сек.

    С any попробовал, как вы предложили, - результат такой же
  • а если без агрегации из строчки 22, сколько?
  • массивы - зло )
    https://fiddle.clickhouse.com/a6e11cfe-3f5d-4d8a-8d6c-f47ec36afab3
  • https://t.me/clickhouse_ru
    дважды спасибо)
  • @p_gim ↶ Reply to #296554 #296557 11:52 AM, 01 Nov 2022
    быстрее почти на секунду )
  • https://t.me/clickhouse_ru
    @runiverse_hiker #296558 12:03 PM, 01 Nov 2022
    Подскажите пожалуйста с чем может быть связано что ttl настройка не перетирает данные? Может ли это быть связано с тем что данные вносятся из будущего - т.е. TTL 2122-10-22 + toIntervalDay(7)
  • https://t.me/clickhouse_ru
    @runiverse_hiker #296559 12:04 PM, 01 Nov 2022
    В таком случае TTL будет сравнивать с текущей датой?
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #296558 #296563 12:13 PM, 01 Nov 2022
    Не совсем понятно что значит "настройка не перетирает данные".
    TTL - это же по сути дата, при наступлении которой КХ удаляет\перемещает\сжимает данные либо для конкретных записей, либо для парта.
  • https://t.me/clickhouse_ru
    @keksum666 #296564 12:14 PM, 01 Nov 2022
    Всем привет, может кто-то подсказать из-за чего ошибка аутентификации валится, валится она только на запросе где я пытаюсь вытащить что-то из словаря
  • https://t.me/clickhouse_ru
    Ну, при такой конструкции TTL 2122-10-22 + toIntervalDay(7) данные будут удалены 2122-10-29?
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #296565 #296566 12:15 PM, 01 Nov 2022
    да
  • https://t.me/clickhouse_ru
    А если не удаляются в чем может быть проблема? Обязательно ли делать optimize final?
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #296568 #296571 12:23 PM, 01 Nov 2022
    Как вариант если включена настройка ttl_only_drop_parts, а парт содержит как записи с наступившей датой, так и с не наступившей, то они так и останутся висеть.
  • https://t.me/clickhouse_ru
    в контексте pread_threadpool очень старое
  • https://t.me/clickhouse_ru
    Понял спасибо)
  • https://t.me/clickhouse_ru
    @abstractbreazy #296575 12:33 PM, 01 Nov 2022
    Всем привет,
    подскажите, пожалуйста,
    каким образом в клике можно группировать данные по временным интервалам?

    Предрекая, я знаю о существовании функций toStartOf...
    пример с приведением таймстампа к интервалу:
    select
    toDateTime(1661893200) as dt1,
    toDateTime(1661896800) as dt11,
    toStartOfInterval(dt1, INTERVAL 6 hour) as inrvl_dt1,
    toStartOfInterval(dt11, INTERVAL 6 hour) as inrvl_dt11
    Результат:
    ┌─────────────────dt1─┬────────────────dt11─┬───────────inrvl_dt1─┬──────────inrvl_dt11─┐
    │ 2022-08-31 00:00:00 │ 2022-08-31 01:00:00 │ 2022-08-31 00:00:00 │ 2022-08-31 00:00:00 │
    └─────────────────────┴─────────────────────┴─────────────────────┴─────────────────────┘

    Другой пример:
    SELECT
    wb_id as id,
    data data,
    toStartOfInterval(toDateTime(created_at_hour), INTERVAL 6 hour) as ts,
    toDateTime(created_at_hour)
    FROM
    (
    SELECT
    id,
    groupArray(data) as data,
    created_at_hour
    from table
    WHERE wb_id IN (115222090) AND created_at_hour BETWEEN 1661893200 and 1661979600
    group by wb_id, created_at_hour
    )
    group by wb_id, data, created_at_hour
    order by wb_id, created_at_hour

    Ответ:
    id |data |ts |toDateTime(created_at_hour)|
    ---------+--------+-------------------+---------------------------+
    115222090|[299900]|2022-08-31 15:00:00| 2022-08-31 16:00:00|
    115222090|[599900]|2022-08-31 15:00:00| 2022-08-31 17:00:00|
    115222090|[299900]|2022-08-31 15:00:00| 2022-08-31 18:00:00|

    Суть в том, что результат ожидается подобного вида:
    ```
    id |data |ts |
    ---------+--------+-------------------+
    id |[data] |2022-08-31 00:00:00|
    id |[data] |2022-08-31 06:00:00|
    id |[data] |2022-08-31 12:00:00|
    id |[data] |2022-08-31 18:00:00|
    id |[data] |2022-09-01 00:00:00|
  • https://t.me/clickhouse_ru
    Есть ли какие-то предметные вещи в ядре касательно этой штуки которые не бекпортировали в версию трёхмесячной давности?
    Ну и, может, тогда в коде переключатель сделать в зависимости от версии ядра, раз такая беда? Потому что как я уже заметил выше, rhelоводы поседеют
  • https://t.me/clickhouse_ru
    @lgtwb ↶ Reply to #296546 #296578 12:34 PM, 01 Nov 2022
    Я буду очень рад если кто-нибудь ответит или укажет направление куда копать
  • https://t.me/clickhouse_ru
    @brbrbr #296579 12:37 PM, 01 Nov 2022
    Храню в ReplacingMT актуальный статус заявок. Т.к. решённые заявки не нужны, появилась идея чистить эту таблицу при помощи TTL на дату решения (открытым заполнять её условным 2100 годом, при решении ставить текущую дату).
    Правильно я понимаю, что в этой схеме вполне вероятны ситуации, когда удаление по TTL будет срабатывать раньше мерджа и в таблице будут оставаться предпоследние версии заявок с датой решения в будущем, а последние ещё не схлопнутые версии записей с наступившей датой решения будут удалены?
  • https://t.me/clickhouse_ru
    ну вот например в 5.9 и 5.10 pread_threadpool вообще сломано и ничено никуда не бекпортировано.
    https://manpages.debian.org/testing/manpages-dev/preadv2.2.en.html#BUGS
  • https://t.me/clickhouse_ru
    про переключатель это не ко мне. Я бы просто в доку дописал что поддерживается ядро не ниже xxx.
  • https://t.me/clickhouse_ru
    проблема в джойнить таблицы
  • https://t.me/clickhouse_ru
    так 2122 через 100 лет наступит
  • https://t.me/clickhouse_ru
    Из-за этого и спрашиваю при такой конструкции будут данные удалены или нет? По моей логике нет
  • https://t.me/clickhouse_ru
    будут удалены через 100 лет
  • @p_gim ↶ Reply to #296583 #296587 12:53 PM, 01 Nov 2022
    от одного джойна я избавился путем внедрения словаря, но с выборкой из with конструкции избавиться никак не получится, т.к. оттуда нужно взять массив айдишников. Может имеет смысл изменить гранулярность? Может это как то повлиять?
    Когда писал просьбу о помощи было за период месяц 11.35 sec.| 1,355,453,726 rows.| 140 GB, сейчас, благодаря советам, довел до: 5.60 sec.| 1,300,722,974 rows.| 61 GB.
  • https://t.me/clickhouse_ru
    arrayCount -> groupArray на самом деле вы хотели countIf(quontity <> 0)
  • https://t.me/clickhouse_ru
    изменение гранулярности сделает хуже
  • @p_gim ↶ Reply to #296588 #296590 12:57 PM, 01 Nov 2022
    да, тут уже подсказали про этот момент, уже поправил
  • https://t.me/clickhouse_ru
    date >= у вас точно строки фильтрует? У вас date в partition by таблицы?
  • https://t.me/clickhouse_ru
    Спасибо)
  • @p_gim ↶ Reply to #296591 #296593 12:59 PM, 01 Nov 2022
    да, PARTITION BY toYYYYMM(date) и ORDER BY (сard_id, date) в основной таблице cards_daily
  • https://t.me/clickhouse_ru
    cards_array у вас выполняется несколько раз, сделайте временную таблицу
  • https://t.me/clickhouse_ru
    в смысле начинается интервал не с минимальной даты в выборке?
  • https://t.me/clickhouse_ru
    я не пойму, почему в первом примере
    2022-08-31 01:00:00, 2022-08-31 05:00:00 преобразуется = > 2022-08-31 00:00:00, 2022-08-31 00:00:00
    в то время как во втором:
    2022-08-31 16:00:00, 2022-08-31 17:00:00 => 2022-08-31 15:00:00, 2022-08-31 15:00:00
    каким образом определяется эта граница начала интервала?

    я так понимаю, что для моей задачи необходимо комбинировать результат функции toStartOfInterval с некой другой.
    может быть сплитить сутки на четыре интервала и уже после работать с ними в отдельности
  • @p_gim ↶ Reply to #296587 #296597 01:30 PM, 01 Nov 2022
    а вообще, по использованию памяти порядка 60гб - это норм кейс? Если одновременно несколько подобных запросов будет - насколько сильную тачку надо?
  • @p_gim ↶ Reply to #296587 #296598 01:34 PM, 01 Nov 2022
    и еще вопрос про внутренние настройки clickhouse: я, можно сказать, из коробки развернул, залил данные, а их большое количество. Может есть какие-нибудь рекомендации по изменению настроек, тюнингу? Потому что я смотрю утилизация идет не слабая )
    Может консалтинг имеет смысл взять?)
  • https://t.me/clickhouse_ru
    @Diroman #296599 01:37 PM, 01 Nov 2022
    добрый день,
    нужно ли при использовании распределенной таблицы над ReplicatedSummingMergeTree переопределять ключ шардирования, чтобы записи с одинаковым ключом попадали на один шард и схлопывались?
  • https://t.me/clickhouse_ru
    ну это позволит уменьшить кол-во строк/данных на дисках, ускорит запросы, но необязательно
  • https://t.me/clickhouse_ru
    спасибо
  • Все равно нужно будет доагрегировать при выборке, но лучше отправлять на один шард
  • https://t.me/clickhouse_ru
    потому что там деление нацело используется, для выделения бакетов, т.е. запрос выполняется параллельно во многих тредах и на многих серверах, в момент выполнения начало интервала просто неизвестно.

    если хочется поделить на бакеты и чтобы первый бакет начинался с минимальной даты в текущей выборке, надо делать все по другому, например через массивы либо через window functions, но это конечно будет медленнее и возможно посчитать только на инициаторе запроса
  • Словарь не может прогрузиться из-за того, что пользователь, который коннектиться к источнику словаря не задан. либо задан некорректно
  • https://t.me/clickhouse_ru
    мне кажется, что использование window functions в данном кейсе нерешаемо на больших данных.
    что вы имеете в виду под через массивы? группировать каждую выборку?
  • https://t.me/clickhouse_ru
    я недавно делал пример но не могу найти (не помню то ли в слаке то ли на stackoverlflow)
    в общем идея агрегируем до минимально возможной грануляронсти на шардах во внутреннем запросе, например до дня. Далее во внешнем запросе (у нас уже мало строк), делаем произвольные бакеты которые начинаются с минимальной даты
  • https://t.me/clickhouse_ru
    попробую найти на стаке, интересно)
  • toDate + intDiv(HOUR(timestamp),6) = вот вам и кастомный бакет
    поправил
  • @Vlad_Harzler #296612 02:08 PM, 01 Nov 2022
    Всем привет
    Мб кто подскажет причину ошибки, первый раз настраиваю clickhouse.
    2022.11.01 14:05:56.033745 [ 94 ] {} <Error> StorageKafka (operation_event_queue): [rdk:FAIL] [thrd:ssl://172.17.99.106:9093/bootstrap]: ssl://172.17.99.106:9093/bootstrap: ../contrib/boringssl/ssl/ssl_lib.cc:1162: error:100000e2:SSL routines:OPENSSL_internal:UNINITIALIZED (after 1ms in state CONNECT, 52 identical error(s) suppressed)
    2022.11.01 14:05:56.033821 [ 72 ] {} <Error> StorageKafka (operation_event_queue): [rdk:ERROR] [thrd:app]: ClickHouse-clickhouse-1-sandbox-operation_event_queue#consumer-1: ssl://172.17.99.106:9093/bootstrap: ../contrib/boringssl/ssl/ssl_lib.cc:1162: error:100000e2:SSL routines:OPENSSL_internal:UNINITIALIZED (after 1ms in state CONNECT, 52 identical error(s) suppressed)
    2022.11.01 14:05:56.083738 [ 72 ] {} <Warning> StorageKafka (operation_event_queue): Can't get assignment. It can be caused by some issue with consumer group (not enough partitions?). Will keep trying.

    <kafka>
    <debug>all</debug>
    <ssl_key_location>/etc/clickhouse-server/ssl/kafka.key</ssl_key_location>
    <ssl_certificate_location>/etc/clickhouse-server/ssl/kafka.crt</ssl_certificate_location>
    <ssl_ca_location>/etc/clickhouse-server/ssl/kafka_ca.crt</ssl_ca_location>
    <ssl_endpoint_identification_algorithm>https</ssl_endpoint_identification_algorithm>
    <security_protocol>ssl</security_protocol>
    </kafka>
  • https://t.me/clickhouse_ru
    так не будет работать.

    вот например https://fiddle.clickhouse.com/e367f547-1c80-4049-b6d6-3dbc33184cf5
    сделайте чтобы недельные бакеты начинались сегодня.

    типа
    7 2022-11-01
    7 2022-11-08
    7 2022-11-15

    типа https://fiddle.clickhouse.com/cb707784-1cf5-478a-842d-e334dcd50b7a
  • https://t.me/clickhouse_ru
    @Pershin_Artem_spb #296614 02:19 PM, 01 Nov 2022
    Добрый день, правильно понимаю что send_timeout и receive_timeout влияют на то жив/цел TCP connection, а сам запрос на сервере при этом может остаться бежать, даже несмотря на эти таймауты?
  • https://t.me/clickhouse_ru
    типа да, есть max_execution_time

    и есть большая путаница, send_timeout и receive_timeout есть на сервере, когда сервер подключается к другому серверу и есть на клиенте. Ну и в http все вообще не так.
  • https://t.me/clickhouse_ru
    круто, это работает, спасибо!
  • https://t.me/clickhouse_ru
    @Diroman #296617 02:24 PM, 01 Nov 2022
    а ещё вопросик по ReplicatedSummingMergeTree
    не будет ли проблем, если набор столбцов в ORDER BY и в columns не совпадает
    хочу убрать timestamp из сортировки, но он нужен в ключе суммирования
  • https://t.me/clickhouse_ru
    ключ суммирования ???
    там наоборот определяются колонки которые надо суммировать, и лучше их никогда не определять, эту секцию нельзя поменять
  • https://t.me/clickhouse_ru
    @Diroman #296619 02:27 PM, 01 Nov 2022
    а, да, это я слепой, спасибо
  • мб кто сталкивался с таким?
  • https://t.me/clickhouse_ru
    @rawelbel #296621 02:33 PM, 01 Nov 2022
    Как удалить большие файлы (больше 50 ГБ)? Выдает ошибку
  • https://t.me/clickhouse_ru
    взять параметр который указан в ошибке и выставить в нужное значение
  • https://t.me/clickhouse_ru
    а что КХ позволяет удалять файлы?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Имел ввиду таблички.
  • https://t.me/clickhouse_ru
    в ошибке все написано, есть два способа чтобы убрать это ограничение
  • https://t.me/clickhouse_ru
    Ок, спасибо
  • https://t.me/clickhouse_ru
    @vfomkin #296630 02:55 PM, 01 Nov 2022
    Друзья, подскажите, пожалуйста, почему может не отображаться параметр через select: SELECT * FROM system.settings WHERE name LIKE '%default_replica_path%'
  • я не говорил, что это метод универсальный )
    просто у товарища была проблема с тем, что со toStartOfInterval (6 hours) у него границы интервалов плавают на разных датасетах, я ему показал, как их зафиксировать в его данном случае
  • https://t.me/clickhouse_ru
    потому что в system.settings там profile settings
    а default_replica_path это server level settings
    они к сожалению не отображаются через SQL ;(
  • https://t.me/clickhouse_ru
    т.е. текущий default_replica_path никак не узнать у запущенного инстанса? Пытался дебажить почему оно не тот путь указывает при создании таблицы
  • спасибо, лишний параметр был)
  • https://t.me/clickhouse_ru
    grep default_replica_path -r /var/lib/clickhouse/preprocessed_configs/
  • https://t.me/clickhouse_ru
    О как можно, оказывается! Спасибо огромное!
  • https://t.me/clickhouse_ru
    @IgorU777 #296637 03:05 PM, 01 Nov 2022
    Коллеги, добрый вечер всем. Ситуация - есть скрипт, который через clickhouse-client загружает данные в КХ из другой БД. В скрипте установлен LOGFILE. Проблема в том, что в случае ошибок КХ в процессе загрузки они не выводятся в этот лог. Подскажите, пожалуйста, кто знает - как сделать так чтобы они там сохранялись?
  • https://t.me/clickhouse_ru
    если там нет тогда дефолтное значение из доки

    https://clickhouse.com/docs/en/operations/server-configuration-parameters/settings/#default_replica_path
    clickhouse/tables/{uuid}/{shard}
    Server Settings | ClickHouse Docs

    builtindictionariesreload_interval

  • https://t.me/clickhouse_ru
    там есть, но обратил внимание что почему-то в preprocessed_configs нет конфигов из config.d
  • https://t.me/clickhouse_ru
    они мержатся в два файла в users.xml и config.xml
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #296579 #296641 03:16 PM, 01 Nov 2022
    Апну вот этот вопрос.

    Может ли для ReplacingMT с TTL удаление по TTL срабатывать для новой записи раньше, чем она смерджится со старой?
  • https://t.me/clickhouse_ru
    Да, нашел там все параметры и в итоге заработало. Можете подсказать, пожалуйста, почему только часть параметров из default_replica_path
    при создании таблицы разворачиваются в значения, а часть нет? из /clickhouse/tables/{shard}/{database}/{table} получилось '/clickhouse/tables/{shard}/test/move6', т.е. шард остался макросом как и replica
    Server Settings | ClickHouse Docs

    builtindictionariesreload_interval

  • https://t.me/clickhouse_ru
    правильно
    может
  • https://t.me/clickhouse_ru
    посмотрите в system.macros

    shard это макрос
    задается через
    <macros>

    https://clickhouse.com/docs/en/operations/server-configuration-parameters/settings/#macros

    https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/replication#replicatedmergetree-parameters
    Server Settings | ClickHouse Docs

    builtindictionariesreload_interval

  • https://t.me/clickhouse_ru
    да, там есть, я просто думал что оно должно подставляться при создании а не потом каждый раз
  • https://t.me/clickhouse_ru
    ну вообще {database} и {table} и еще {uuid}

    кстати правильно сделали что отказались от {uuid}
    такие таблицы можно только через ON CLUSTER создавать
    чтобы одинаковый был uuid На всех
  • @stusikp #296648 03:49 PM, 01 Nov 2022
    Всем привет! Пытаюсь зацепиться через Power Bi к CH, но выдает ошибку при подключении: "ODBC: ERROR [HY000] Certificate validation error: Failed to verify certificate chain: CA not trusted". Пытаюсь подключиться через DNS. Может кто сталкивался с проблемами или знаете, как решить? Вроде импортнул сертификат в MMC, но там написано, что недостаточно информации для проверки сертификата - это ок?
  • https://t.me/clickhouse_ru
    Воспользуйтесь ODBC
  • Да, скачал драйвер и создал источник, но предполагаю, что power bi не видит ключ/сертификат. И не могу понять, что можно с этим сделать
  • https://t.me/clickhouse_ru
    CA пропишите

    https://kb.altinity.com/altinity-kb-integrations/clickhouse-odbc/
  • https://t.me/clickhouse_ru
    @yatoba #296652 04:32 PM, 01 Nov 2022
    если задать кодек сжатия для колонки, то вновь добавляемые данные будут сжиматься? нормален ли такой режим работы?
  • https://t.me/clickhouse_ru
    Да,

    Старые данные можно пережать ALTER TABLE xxx UPDATE col=col WHERE 1
  • https://t.me/clickhouse_ru
    @yatoba ↶ Reply to #296653 #296654 04:34 PM, 01 Nov 2022
    забыл написать, для колонок которые в составе order by
  • https://t.me/clickhouse_ru
    Ну тогда только OPTIMIZE TABLE FINAL поможет, или мержи
  • https://t.me/clickhouse_ru
    @unamedrus #296656 04:35 PM, 01 Nov 2022
    Есть еще TTL RECOMPRESS но у него мало пользователей, хз как он работает
  • https://t.me/clickhouse_ru
    @yatoba ↶ Reply to #296655 #296657 04:36 PM, 01 Nov 2022
    но это нормально будет работать до оптимайза? случайно не получу битые данные
  • https://t.me/clickhouse_ru
    Нет, у каждого парта-колонки может быть свой кодек сжатия и это нормально
  • https://t.me/clickhouse_ru
    @unamedrus #296659 04:37 PM, 01 Nov 2022
    Даже тип колонки может быть разным в разных партах на самом деле
  • https://t.me/clickhouse_ru
    @unamedrus #296660 04:38 PM, 01 Nov 2022
    https://kb.altinity.com/altinity-kb-queries-and-syntax/altinity-kb-alter-modify-column-is-stuck-the-column-is-inaccessible/

    https://kb.altinity.com/altinity-kb-queries-and-syntax/ttl/ttl-recompress-example/
  • https://t.me/clickhouse_ru
    @yatoba #296661 04:38 PM, 01 Nov 2022
    над прояснить походу
    есть табличка с лярдом записей например, надо пожать одну колонку, которая в составе order by
  • https://t.me/clickhouse_ru
    @yatoba #296662 04:39 PM, 01 Nov 2022
    судя по всему новые записи пойдут пожатые по новому, старые останутся как есть до оптимайза файнал на каждой из партиций
  • https://t.me/clickhouse_ru
    @unamedrus #296663 04:41 PM, 01 Nov 2022
    Да
  • https://t.me/clickhouse_ru
    @runiverse_hiker #296664 04:49 PM, 01 Nov 2022
    Правильно понимаю что через альтер mv не поменять? Там танцы с attach/detach? Без них никак?
  • https://t.me/clickhouse_ru
    неправильно
  • https://t.me/clickhouse_ru
    @runiverse_hiker #296666 04:51 PM, 01 Nov 2022
    Но там modify_query тоже не работает
  • https://t.me/clickhouse_ru
    где там? УМВР

    есть MV с TO и без TO и поэтому разные стратегии
  • https://t.me/clickhouse_ru
    @den_crane #296668 04:59 PM, 01 Nov 2022
    MV без TO использовать бессмысленно и надо просто конвертить в MV с TO
  • https://t.me/clickhouse_ru
    Пока не УМВР. mv с to
  • https://t.me/clickhouse_ru
    @runiverse_hiker #296670 05:00 PM, 01 Nov 2022
    Пока дропнул и пересоздал(
  • https://t.me/clickhouse_ru
    @runiverse_hiker #296671 05:00 PM, 01 Nov 2022
    Но так наверное лучше не делать
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @runiverse_hiker #296673 05:02 PM, 01 Nov 2022
    Тут ищу пока
  • https://t.me/clickhouse_ru
  • @716762776 #296675 05:11 PM, 01 Nov 2022
    наш девопс утверждает что ПОСЛЕ ОБНОВЛЕНИЯ клики с 21.5 на 22.8 увеличилась нагрузка на процессоры.
    Такое может быть ?
  • https://t.me/clickhouse_ru
    ядро линукса какое? uname -a ?
  • @716762776 #296677 05:12 PM, 01 Nov 2022
    узнаю
  • https://t.me/clickhouse_ru
    Спасибо 🫶
  • 5.4.0-113-generic #127-Ubuntu
  • https://t.me/clickhouse_ru
    @konnectrl #296680 05:23 PM, 01 Nov 2022
    Degrading performance queries of type select when updating CH version to 22.8 LTS · Issue #42596 · ClickHouse/ClickHouse

    (you don't have to strictly follow this form) Describe the situation What exactly works slower than expected? We have a cluster consisting of 6 shards and a Distributed Table on which selec...

  • https://t.me/clickhouse_ru
    @konnectrl #296681 05:23 PM, 01 Nov 2022
    Это вам
  • https://t.me/clickhouse_ru
    @392734528 #296682 05:24 PM, 01 Nov 2022
    ребят сорян а в чем прикол
    begin_at < toDate32('2022-09-05') - не работает
    begin_at > toDate32('2022-09-05') - работает

    begin_at = DateTime64(3, \"Europe/Moscow\") NOT NULL
  • https://t.me/clickhouse_ru
    @v9lijj ↶ Reply to #296675 #296683 05:25 PM, 01 Nov 2022
    мы как-то обновились, у нас все селекты в 3 раза хуже на нагрузке стали )
    правда не в этой версии, что у тебя. Так что бывает такое, да 🙁
    потом ишью нашли от Леши, что плохой релиз
  • @716762776 #296684 05:28 PM, 01 Nov 2022
    спс
  • @716762776 #296685 05:32 PM, 01 Nov 2022
    а какой хороший ?
    у меня раньше были иллюзии что все, что LTS , не должно быть плохим по определению
  • какая у вас версия клика?
    https://fiddle.clickhouse.com/c9f6ed05-314c-4f1a-9578-6cc8249351ba
  • https://t.me/clickhouse_ru
    чорт... стремный вопрос ( щас
  • https://t.me/clickhouse_ru
    @392734528 #296688 05:36 PM, 01 Nov 2022
    print(ch_server_ver >= '22.3.8.39') -> True
  • сделайте select version()
  • https://t.me/clickhouse_ru
    22.3.8.39
  • https://t.me/clickhouse_ru
    сегодня обсуждали, читайте отсюда https://t.me/clickhouse_ru/296408
    Denny [Altinity] in ClickHouse не тормозит

    https://github.com/ClickHouse/ClickHouse/issues/42596#issuecomment-1288860266 local_filesystem_read_method=pread

  • тоже вроде работает
    https://fiddle.clickhouse.com/ccce0814-8bed-4e15-a998-ff59a0b7bba4
  • @716762776 #296693 05:39 PM, 01 Nov 2022
    спрошу иначе
    версия 22.8 "считается" подходящей для использования
    у нас сейчас 22.8.5.29
  • https://t.me/clickhouse_ru
    client.execute("Select toDate(begin_at), count(*) from sessions where begin_at < toDate('2022-09-05') group by toDate(begin_at)")
  • https://t.me/clickhouse_ru
    @392734528 #296695 05:40 PM, 01 Nov 2022
    я не думаю что запрос с группировкой может вести себя как то иначе
  • https://t.me/clickhouse_ru
    @392734528 #296696 05:40 PM, 01 Nov 2022
    мне диапазон надо задать. а битвин не работает. начал в больше меньше играть и выяснил что меньше тупо не работает
  • https://t.me/clickhouse_ru
    да не доделан Date32
    вам надо сравнивать с toDateTime64
  • https://t.me/clickhouse_ru
    фуф я думал что всё... рехнулся )
  • я так и не смог вопроизвести )
    https://fiddle.clickhouse.com/b76fad7f-0a93-48a8-bef6-d0db0c956969

    ошибка с between при использовании Date32 где-то тут мелькала уже, там вроде был баг при использовании today()

    upd. нет, там просто баг с today, без Date32 )
  • https://t.me/clickhouse_ru
    скорее всего нужны order by / partition by c колонкой d
  • https://t.me/clickhouse_ru
    @den_crane #296701 05:45 PM, 01 Nov 2022
    там скорее всего число микросекунд DateTime64 сравнивается с кол-вом дней Date32
  • да, похоже на эту проблему
  • да, вы правы, в partition pruning приведение Date к DateTime неправильное https://fiddle.clickhouse.com/0a71a646-2ea1-4e3c-bc2e-fb625d37038c
  • https://t.me/clickhouse_ru
    @panov_andy #296705 06:11 PM, 01 Nov 2022
    Всем привет.
    А есть какая-то организация которая продает кликхаус?
    Или что на http://Clickhouse.com ?
    Fast Open-Source OLAP DBMS - ClickHouse

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

  • https://t.me/clickhouse_ru
    Есть много компаний что продают свои решения облачные и не очень на базе кликхауса
  • @261638839 #296708 06:15 PM, 01 Nov 2022
    Здравствуйте! У меня прсотой вопрос:
    optimize_read_in_order не работает в ReplacingMergeTree?
  • https://t.me/clickhouse_ru
    А clickhouse.com были самые быстрые на регистрацию домена?
    Или кто-то из оригинальных авторов основал?
  • https://t.me/clickhouse_ru
    Это компания, которую выделили из яндекса и дали несколько раундов денег, фактически кор тима разрабов
  • Я не ожидал такой неприятности, у меня сортироваться стал в памяти запрос. Только для MergeTree поддержана оптимизация optimize_read_in_order, правильно я понял?
  • https://t.me/clickhouse_ru
    FINAL используете?
  • Попробовал и с ним и без него - всё равно сортирует в памяти. Хотелось бы чтобы с FINAL работало, но хотя бы и без него.
    Понимаю как физически реализовано, и что ничего не мешает и слить окончательно и порядок при этом сохранить. Но так же понимаю, что могли не реализвать для ReplacingMergeTree.
  • https://t.me/clickhouse_ru
    если что сравнение с DТ64 помогло. спасибо!
    ждем заплатку )
  • https://t.me/clickhouse_ru
    Без FINAL должно работать, с FINAL скорее всего не сделали, да
  • хм, у меня на свежепоставленных debian 5.10.140-1. На части запросов local_filesystem_read_method=pread дает ускорение в 2-3 раза. Советуете подключить репозитории backports и обновиться до, например 5.19.11 ? Никогда с таким не сталкивался ранее...
  • https://t.me/clickhouse_ru
    А что за дисковая? HDD? Raid?
  • @716762776 #296719 07:28 PM, 01 Nov 2022
    а есть какая-то дока по local_filesystem_read_method ?
    на https://clickhouse.com/docs/ как то совсем не густо
    Welcome to ClickHouse Docs | ClickHouse Docs

    ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP). ClickHouse’s performance exceeds all other column-oriented database management systems. It processes billions of rows and tens of gigabytes of data per server per second.

  • https://t.me/clickhouse_ru
    Поиск в гитхабе
  • nvme без рейда
  • https://t.me/clickhouse_ru
    Я думаю вы неправильно что то пишете. Покажите запрос и order by таблицы
  • @635404397 #296723 08:43 PM, 01 Nov 2022
    всем привет,
    такой простой вопрос, но что-то не могу разобраться - как быстро и "правильно" залить много данных в clickhouse?
    имеется таблица, partition by toYYYYMM(data_time), имеется 20000 csv файлов с данными, где-то по 4гб, данных в файлах сортированы по дате (глобальная сортировка по всем файлам), т.к. если их читать последовательно, а не рандомно, то все записи в "блоке" чтения относятся к одной партиции.

    заливаю так:

    INSERT INTO myplant.ts_data_double_raw (device_id, data_item_id, data_time, data_value, kafka_partition, ingestion_time, is_deleted)
    SELECT
    device_id,
    data_item_id,
    fromUnixTimestamp64Milli(data_time, 'UTC') AS data_time,
    data_value,
    0,
    toDateTime64('2022-01-01', 3),
    0
    FROM s3('https://data.s3.us-east-1.amazonaws.com/sorted/ts_data_double/*.csv', 'CSV', 'device_id UInt64, data_item_id UInt64, data_time Int64, data_value Float64')
    SETTINGS max_threads = 64, max_insert_threads = 64, max_partitions_per_insert_block = 1000 (вот зачем? если ставлю default 100 - ругается, хотя вход данные сортированы)

    c6a.32xlarge, 128 cores. в процессе имею 100% загрузку cpu (что наверное хорошо ведь?)
    Льет быстро, но в результате я имею 1384686 партов размером 3-15mb c колич строк 1-5M
    как так то? почему льет такими мелкими порциями, т.е. создает такие мелкие парты?
    задача быстро залить эти csv и оптимизировать таблицу.

    сейчас я имею 1,4M партов и они очень медленно мержатся. как-то можно ускорить мерж? у меня при 128и ядрах заняты всего 8-10, я бы предпочел загрузить все.

    версия 22.10.1.1877
  • https://t.me/clickhouse_ru
    @392734528 #296724 08:58 PM, 01 Nov 2022
    подскажите а влияет порядок сортировки в таблице на скорость выборки?
  • https://t.me/clickhouse_ru
    @orantius #296725 08:58 PM, 01 Nov 2022
    да
  • https://t.me/clickhouse_ru
    @392734528 #296726 08:58 PM, 01 Nov 2022
    Спасибо!
  • https://t.me/clickhouse_ru
    можно попробовать увеличить https://clickhouse.com/docs/en/operations/settings/settings/#settings-max_insert_block_size. Я бы не заливал все таким одиночным селектом, лучше написать скрипт, который выполняет такие инсерт-селекты каждого файла по отдельности и посмотреть как быстро оно будет переваривать файл в рамках одной партиции, заодно и max_partitions_per_insert_block можно не увеличивать
    Settings | ClickHouse Docs

    allownondeterministicmutations

  • https://t.me/clickhouse_ru
    >toYYYYMM(data_time)
    >ставлю default 100 - ругается

    это значит что данные размазаны по более чем 100 месяцам, т.е. данные за >10 лет?

    >1384686 партов размером
    вы точно активные парты смотрите?
  • @635404397 #296731 09:57 PM, 01 Nov 2022
    да, where active
  • @635404397 #296732 10:02 PM, 01 Nov 2022
    наверное вопрос про max_partitions_per_insert_block сниму, возможно я перепутал с Too many parts . Merges are processing significantly slower than inserts. (TOO_MANY_PARTS)

    @Pershin_Artem_spb спасибо, кажется увеличение min_insert_block_size_rows и max_insert_block_size_rows помогает
  • https://t.me/clickhouse_ru
    @yatoba #296733 10:47 PM, 01 Nov 2022
    не могу понять, а TTL RECOMPRES работает только на уровне таблицы а на колонке не настроить?
  • https://t.me/clickhouse_ru
    да, только на уровне таблицы.
    зачем вам на колонку?
  • https://t.me/clickhouse_ru
    @yatoba #296735 10:54 PM, 01 Nov 2022
    это странно, т.к. кодеки задаются по колонками при создании, но при перекодировании только для таблицы.
    плюс для отдельных колонок надо указывать несколько кодеков (тот же DD для даты). А по некоторым колонкам сразу максимальный уровень сжатия zstd указывать
  • https://t.me/clickhouse_ru
    зачем вам на колонку?
    И что вы пытатесь достичь?
  • https://t.me/clickhouse_ru
    @yatoba #296737 10:58 PM, 01 Nov 2022
    гранулированных настроек сжатия, часть данных нужны оперативно и через неделю можно жать максимально ибо не нужны, часть нужны полгода, но в целом могут понадобитсья позже с нормальной сокростью доступа и надо указать средний уровень сжатия, часть нужны всегда.
    Плюс есть ощущение, что для части колонок возможно будет корректироваться выбранный набор кодеков по факту использования
  • https://t.me/clickhouse_ru
    ttl recompress меняет только default кодек.

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

    ttl recompress сделан не для этого

    ничего вы не выйграете из-за recompress

    забейте и жмите всегда все zstd1

    doubledelta супермедленный, я не рекомендую его использовать, профита нет
  • https://t.me/clickhouse_ru
    @yatoba ↶ Reply to #296738 #296739 11:06 PM, 01 Nov 2022
    5Gb в LZ4 vs 9Mb DD+LZ4. ЧТото думаю выигрыш от DD будет
  • А в zstd(1) vs lz4, (без кодеков)?
  • https://t.me/clickhouse_ru
    @yatoba ↶ Reply to #296738 #296741 11:13 PM, 01 Nov 2022
    что не так в слудующих мыслях?
    ставим по дефолту dd+LZ4, со временем (через полгода) понимаем что возможно дд работает медленно и хотим сменить его на просто zstd на старых данных чтобы поиграться (с отчетами например). Как вижу это я - делаем ttl индекс по одной колонке с рекомпрессией условно для данных старше 5 месяцев. И таким образом избавляемся от установки нового кодека на приемные данные, на случай если выигрыша не будет на наших данных. И потом так же меняем у ттл на первоначальный кодек, после отрабатывания удаляем ттк с колонки и живем дальше
  • https://t.me/clickhouse_ru
    ну нет такой фичи и не планируется
  • https://t.me/clickhouse_ru
    @yatoba ↶ Reply to #296742 #296743 11:15 PM, 01 Nov 2022
    ну то что не планируется не говорит о том что надо говорить что у меня такой потребности быть не может
  • https://t.me/clickhouse_ru
    @yatoba #296744 11:16 PM, 01 Nov 2022
    ладно, пойду ишью создам, может и запилят
  • https://t.me/clickhouse_ru
    @den_crane #296745 11:17 PM, 01 Nov 2022
    создайте. Я вот оператор <=> попросил 5 лет назад (во всех базах есть, в КХ нету), до сих пор жду.
  • https://t.me/clickhouse_ru
    @yatoba #296746 11:17 PM, 01 Nov 2022
    собсна сейчас как раз у меня ситуация, когда уже ест ькуча данных и надо только один кусок попробовать поменять без даунтаймов чтобы проверить теорию
  • https://t.me/clickhouse_ru
    @yatoba ↶ Reply to #296745 #296747 11:18 PM, 01 Nov 2022
    тоже напарывался на многое, часть фиксилось/менялось, поэтому будут оптимистом)
  • https://t.me/clickhouse_ru
    @yatoba ↶ Reply to #296740 #296748 11:27 PM, 01 Nov 2022
    none: 5.00 Gb
    lz4: 5.01 Gb
    zstd(1): 3.33 Gb
    dd+lz4: 8 Mb
    записей 1.3млрд, Datetime, один месяц
  • https://t.me/clickhouse_ru
    А что если delta?
  • https://t.me/clickhouse_ru
    @yatoba ↶ Reply to #296749 #296750 11:46 PM, 01 Nov 2022
    дельта + lz4?
  • https://t.me/clickhouse_ru
    Delta + LZ4HC например.
  • https://t.me/clickhouse_ru
    @yatoba #296752 11:47 PM, 01 Nov 2022
    чекну
  • https://t.me/clickhouse_ru
    @fire_wheels #296753 11:49 PM, 01 Nov 2022
    Ну и скорость чтения заодно https://kb.altinity.com/altinity-kb-schema-design/codecs/codecs-speed/
  • 02 November 2022 (258 messages)
  • https://t.me/clickhouse_ru
    @yatoba ↶ Reply to #296753 #296754 12:00 AM, 02 Nov 2022
    delta+lz4 - 29Mb, кстати почемуто в первых тестах дельта себя показала плохо, может и не по дате это делал даже. Неплохая замена dd
  • https://t.me/clickhouse_ru
    А что по скорости чтения?
  • https://t.me/clickhouse_ru
    @fire_wheels #296756 12:01 AM, 02 Nov 2022
    Дельта против дд.
  • https://t.me/clickhouse_ru
    @yatoba ↶ Reply to #296755 #296757 12:01 AM, 02 Nov 2022
    20ms, но это не имет смысла на max запросе
  • https://t.me/clickhouse_ru
    @yatoba #296758 12:01 AM, 02 Nov 2022
    ибо индекс
  • https://t.me/clickhouse_ru
    @fire_wheels #296759 12:01 AM, 02 Nov 2022
    Почему же?
  • https://t.me/clickhouse_ru
    @fire_wheels #296760 12:01 AM, 02 Nov 2022
    А, тогда да.
  • https://t.me/clickhouse_ru
    @fire_wheels #296761 12:05 AM, 02 Nov 2022
    А если обернуть в identity?
  • https://t.me/clickhouse_ru
    @yatoba ↶ Reply to #296760 #296762 12:05 AM, 02 Nov 2022
    на count(distinct datetime)

    delta+lz4:
    Elapsed: 8.701 sec. Processed 1.34 billion rows, 5.36 GB (154.10 million rows/s., 616.40 MB/s.)
    dd+lz4
    Elapsed: 9.600 sec. Processed 1.34 billion rows, 5.36 GB (139.67 million rows/s., 558.67 MB/s.)
  • https://t.me/clickhouse_ru
    @fire_wheels #296763 12:05 AM, 02 Nov 2022
    select max(identity(date)) from yoba
  • https://t.me/clickhouse_ru
    @yatoba #296764 12:06 AM, 02 Nov 2022
    10%
  • https://t.me/clickhouse_ru
    @yatoba ↶ Reply to #296763 #296765 12:08 AM, 02 Nov 2022
    тут заметнее
    max(identity(datetime))
    delta+lz4:
    Elapsed: 0.552 sec. Processed 1.34 billion rows, 5.36 GB (2.43 billion rows/s., 9.71 GB/s.)
    dd+lz4
    Elapsed: 2.161 sec. Processed 1.34 billion rows, 5.36 GB (620.51 million rows/s., 2.48 GB/s.)
  • https://t.me/clickhouse_ru
    @den_crane правильная ли методика тестирования?
  • https://t.me/clickhouse_ru
    @yatoba ↶ Reply to #296766 #296767 12:09 AM, 02 Nov 2022
    нет конечно)) тестировать в неконтролируемом окружении без средних замеров запросами которые никогда напроде не появятся)
  • https://t.me/clickhouse_ru
    Почему неконтролируемое окружение?
  • https://t.me/clickhouse_ru
    @fire_wheels #296769 12:10 AM, 02 Nov 2022
    Я думал мы тут все джентельмены.
  • https://t.me/clickhouse_ru
    @fire_wheels #296770 12:11 AM, 02 Nov 2022
    Судя по всему для дат лучше использовать дельту и не париться. А дд не использовать.
  • https://t.me/clickhouse_ru
    @yatoba ↶ Reply to #296768 #296771 12:11 AM, 02 Nov 2022
    потому что проще сразу на проде тестить некоторые вещи)
  • https://t.me/clickhouse_ru
    @yatoba ↶ Reply to #296770 #296772 12:12 AM, 02 Nov 2022
    дд немного оверкил, согласен
  • https://t.me/clickhouse_ru
    вы путаете ignore с identity, но в этом случае ignore не нужен.

    тестить надо с max_threads=1
  • https://t.me/clickhouse_ru
    👍Реакции забыли включить в этом канале. Спасибо, иногда забываю про max_threads=1.
  • https://t.me/clickhouse_ru
    @yatoba ↶ Reply to #296774 #296775 12:19 AM, 02 Nov 2022
    select max(identity(datetime)) SETTINGS max_threads=1;
    delta+lz4:
    Elapsed: 2.451 sec. Processed 1.34 billion rows, 5.36 GB (547.12 million rows/s., 2.19 GB/s.)
    dd+lz4:
    Elapsed: 8.524 sec. Processed 1.34 billion rows, 5.36 GB (157.31 million rows/s., 629.23 MB/s.)
    no comp (none):
    Elapsed: 2.711 sec. Processed 1.34 billion rows, 5.36 GB (494.66 million rows/s., 1.98 GB/s.)
    default (lz4):
    Elapsed: 2.904 sec. Processed 1.34 billion rows, 5.36 GB (461.78 million rows/s., 1.85 GB/s.)

    по сути тоже самое соотношение получилось
  • https://t.me/clickhouse_ru
    Я так понимаю идея в том что max_threads=1 стабильнее и меньше зависит от нагрузки на сервер.
  • https://t.me/clickhouse_ru
    @yatoba ↶ Reply to #296776 #296777 12:33 AM, 02 Nov 2022
    в любом случае это просто попугаи, которые к реальному использованию будут иметь некое опосредованное отношение
  • https://t.me/clickhouse_ru
    Почему?
  • https://t.me/clickhouse_ru
    @yatoba ↶ Reply to #296778 #296779 12:37 AM, 02 Nov 2022
    ну я ж например не буду выставлять 1 поток, не буду собирать даты, они нужны для индекса и там по сути хоть чем жми большая часть будет отброшена даже без чтения с диска. так же у меня не будет такого же сетапа, т.к. на ноуте тесты гоняю. Скорее всего версия клика будет другая.
  • https://t.me/clickhouse_ru
    Тогда почему бы не убрать кодек и компрессию?)
  • https://t.me/clickhouse_ru
    @yatoba #296781 12:38 AM, 02 Nov 2022
    из этого всего разве что понимание сложится об общем влиянии и не более того
  • https://t.me/clickhouse_ru
    @yatoba ↶ Reply to #296780 #296782 12:38 AM, 02 Nov 2022
    место не резиновое
  • Это осень странные цифры.
    А если просто delta nocomp, dd nocomp?
    Ну не верится что zstd по размеру быть так плох в сравнении с delta or dd...

    Разве что у вас прям ровно тютелька в тютельку изменения меж строк. Можете ддл дать свой на все варианты таблиц? И то как вы проверяете размер? (Пастила или создать все в фиддл)
  • https://t.me/clickhouse_ru
    @ZoMeR_LBF #296784 04:12 AM, 02 Nov 2022
    Добрый день!
    Никто не сталкивался с утечкой памяти при использовании kafka engine таблиц в версии 22.8?
    При выполнении detach всех таблиц в БД память не возвращается но утечка прекращается.
    Также заметил что утечка происходит значительно быстрее в dev окрудении где поток данных в кафку значительно меньше чем в проде.
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #296784 #296787 05:19 AM, 02 Nov 2022
    Так был же баг с утечкой памяти в Кафка таблицах после 22.3 и его поправили. Попробуйте последнюю 22.8.
  • @avg00r #296790 08:51 AM, 02 Nov 2022
    Не создается managed КХ из консоли YC.
    Создается минут 20-30, после чего отвливается. с двумя unknown error:
    Create ClickHouse cluster
    Error
    Error: 2 Unknown error
    Сам кластер создается в состоянии Dead. Изменить что-либо в нем уже нельзя:
    Кластер не работает и изменить его настройки невозможно.
    Заполняю только необходимые поля, по дефолту. 1 шард, b2.nano
    В чем может быть проблема?
  • https://t.me/clickhouse_ru
    @lgtwb #296791 09:02 AM, 02 Nov 2022
    Добрый день, господа.
    Вопрос такой - у меня есть инстанс с подключенной внутрь бд sqlite3. Я создал юзверя и выдал ему доступы на SELECT
    (GRANT SELECT on sqlite_db.* TO clickuser;)
    Выполнение запроса ОК, но при выполнения селекта из таблицы, на которую я дал права вылетает ошибка 497:
    Code: 497. DB::Exception: Received from 127.0.0.1:9000. DB::Exception: clickuser: Not enough privileges. To execute this query it's necessary to have grant SELECT(id, requestor, until_expired, date_start, announce, limits, object, admins, moderators, monitor, regions, doctors, form, name, analyst, status, owner, formslimit, pc, rr, files) ON SQLite.researches. (ACCESS_DENIED)
    Подскажите, пожалуйста, что я сделал не так? Нельзя указать все таблицы?

    При этом таблицы из под этого пользователя я вижу.
  • https://t.me/clickhouse_ru
    @yatoba ↶ Reply to #296783 #296792 09:03 AM, 02 Nov 2022
    Слабо представляю как я в туда залью 60гб данных)
  • данные не надо заливать...
  • https://t.me/clickhouse_ru
    @andreypopp #296794 09:04 AM, 02 Nov 2022
    а можно как то посмотреть desugared SQL который CH будет исполнять — с distributed tables замененными на локальные и прочее (в присутствии distributed_product_mode настроек)
  • https://t.me/clickhouse_ru
    explain syntax ...
  • https://t.me/clickhouse_ru
    Там не на что смотреть. Но его видно system.query_log

    Там просто будет заменено имя левой дистрибьютид таблицы на имя недистрибьютид
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    как раз вижу что правая заменяется при distributed_product_mode=local
  • https://t.me/clickhouse_ru
    @Marria77 #296799 09:10 AM, 02 Nov 2022
    Привет, есть ли в КХ возможность распарсить jsone, без указания ключей ?
    пример :
    '{"1": "one", "2": "two", "3": "three"}'

    ожидаю получить
    column1 | column2
    1 | one
    2 | two
    3 | three
  • и вы меняете только кодеки колонки datetime или всех?
    и как вы размер считаете?
  • https://t.me/clickhouse_ru
    Ну при local да, я думал вы про allow
  • А если просто delta nocomp, dd nocomp? какие цифры
  • https://t.me/clickhouse_ru
    @yatoba ↶ Reply to #296800 #296803 09:15 AM, 02 Nov 2022
    меняю только на datetime для экпериментов. Для остальные пробовал, но так играться не с чем т.к. специфика данных дает схлопывание и lz4 дефолтное жмет достаточно. Размер поколоночный стандартным скриптом
    select name,
    formatReadableSize(sum(data_uncompressed_bytes)) AS uncompressed_size,
    formatReadableSize(sum(data_compressed_bytes)) AS compressed_size,
    toDecimal64(sum(data_compressed_bytes) / sum(data_uncompressed_bytes), 6) AS ratio,
    any(compression_codec) AS codec
    from system.columns where database = 'default' and table = 'exp_1'
    group by name
    order by ratio desc
    ;
  • https://t.me/clickhouse_ru
    @yatoba ↶ Reply to #296802 #296804 09:18 AM, 02 Nov 2022
    Ошибка: It does not make sense to have codec NONE along with other compression codecs: DoubleDelta, NONE
  • https://t.me/clickhouse_ru
    @timofei_melnikov #296805 09:19 AM, 02 Nov 2022
    Всем привет! Подскажите пожалуйста есть ли в CH партиции по хешу или по ренджу? Необходимо сделать партицирование по user_id, но пользователей слишком много и надо как то их объединить в группы. Использую engine MergeTree()
  • https://t.me/clickhouse_ru
    дык объедини в группы ) По какому признаку - сам придумай. И делай партиции.
    А лучше возьми какой то существующй параметр типа даты добавления пользователя или последней активности. В общем что то боле менее адекватное.
  • @mkllekunovich #296807 09:49 AM, 02 Nov 2022
    Всем привет, получаю ошибку в DBeaver 22.1.5 и 22.2.3 - Unsupported data type: Bool.
    Clickhouse 22.10.2.11 (обновился, думал решит проблему).
    Ругается на поле вида: Nullable(Bool).
    Может кто сталкивался. (DataGrip отрабатывает без проблем)
  • engine = MergeTree PARTITION BY toYYYYMM(game_ts)
    ORDER BY (game_ts, intHash32(user_id))
    SAMPLE BY intHash32(user_id)
    SETTINGS index_granularity = 8192;
  • https://t.me/clickhouse_ru
    Спасибо!)
  • https://t.me/clickhouse_ru
    @jenjate #296810 09:53 AM, 02 Nov 2022
    https://fiddle.clickhouse.com/a5397b8d-b8dc-4f05-8e61-c2e7cbc28426 - подскажите, пожалуйста, как при указании массива в range(21) вместо 21 динамически вписать количество дней между первой датой и последней (точнее кол-во недель*7) - пробовал селекты, но кх ругается
  • https://t.me/clickhouse_ru
    Partition by userid%100

    Partition by intDiv (userid, 100000)
  • https://t.me/clickhouse_ru
    @radya100 #296812 09:53 AM, 02 Nov 2022
    БД КХ содержит данные 2-х партнеров. Данные в таблицах имеют одинаковую структуру , и на таблицы настроен row level Security (row policy) - для разграничения прав доступа на уровне строк. И это работает. Существует ли способ настройки RLS на словарях ? Сейчас ключ словаря - это хеш от идентификатора сущности и идентификатора партнера. Это тоже работает - но не секьюрно как-то. Версия 21.10& Спасибо
  • https://t.me/clickhouse_ru
    Это ошибка jdbc драйвера, вам в dbevaer надо скачать другой более новый драйвер
  • https://t.me/clickhouse_ru
    А если user_id string формата: «24нт4ou99». Есть какой то способ?
  • https://t.me/clickhouse_ru
    Partition by cityHash64(userid)%100
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Это очень медленно будет работать. Задавайте все явно и числами
  • Спасибо попробую, но в поддержке дибивера пишут, что обновили драйвер, и устранили проблемы, идите в кликхаус, круг замкнулся))).
  • https://t.me/clickhouse_ru
    Ошибка кх начинается со слова dbexception нету dbexception - проблема в клиенте
  • Да согласен, спасибо.
  • https://t.me/clickhouse_ru
    @makskknd #296821 10:02 AM, 02 Nov 2022
    Добрый день, есть проблема в оптимизации таблиц с товарами, у которого большой опыт по клику пишите в лс ))стоимость работы обсудим )
  • https://t.me/clickhouse_ru
    Какая ошибка-то? Наверное надо скастить в не nullable тип
  • https://t.me/clickhouse_ru
    да, ругается на nullable, его обернуть во что-то?
  • https://t.me/clickhouse_ru
    Не понял идею- простите. RLS на таблицах уже работает - и достаточно шустро. Вопрос был про разграничение доступа на записях в словаре. Сейчас на версии 21.10 при >ch$ create row policy pol_dict on my_dict for select using partner_id = 1 to my_user - КХ никак не ругается , но и RLS не работает. Обращение к словарю разрешено только через dictGet
  • https://t.me/clickhouse_ru
    @ilya_lvbs #296825 10:07 AM, 02 Nov 2022
    Коллеги, а тип Map(key, value) гарантирует сохранение порядка?
  • https://t.me/clickhouse_ru
    @Krisantis #296826 10:16 AM, 02 Nov 2022
    Всем привет.
    Подскажите как добиться чего-то подобного?
    with t1 as (
    select
    number%2 as c1,
    number*10 as c2
    from numbers (5)
    )
    select
    number as c1,
    t1.c2
    from numbers(2) as t2
    left join t1
    using (c1)
  • https://t.me/clickhouse_ru
    @soloviev_p #296827 10:17 AM, 02 Nov 2022
    Добрый день! Подскажите, можно как-то получить валидный json без использования replaceAll?

    select isValidJSON('{"a": "hello", "b": "axy/\"\u001d9\u001"}');
  • https://t.me/clickhouse_ru
    @s_nikolajus #296828 10:18 AM, 02 Nov 2022
    Привет, после обновления с 22.3 до 22.8.8.3 - вылезли такие ошибки от Prometheus INSERT-ов:
    [('ExceptionWhileProcessing',
    'INSERT INTO prometheus.metrics (date, name, tags, val, ts) VALUES ',
    'Code: 48. DB::Exception: Method getDataAt is not supported for Array(String). (NOT_IMPLEMENTED) (version 22.8.8.3 (official build))',
    'Insert')]
    В какую сторону смотреть?
  • https://t.me/clickhouse_ru
    create table tab (id Int8, value String, partner_id Int8, partner_hash UInt64 materialized cityHash64(id, partner_id)) engine=...;
    insert into tab(id, value, partner_id) values (1, 'val1', 1), (1, 'val2', 2);
    create row policy policy on tab for select using partner_id = 1 to user1;
    create row policy policy on tab for select using partner_id = 2 to user2;
    create dictionary my_dict (partner_hash UInt64, value String)
    primary key partner_hash
    source(CLICKHOUSE(... TABLE 'tab'))
    LAYOUT(SPARSE_HASHED());
    > user1 > select dictGet('my_dict', 'value', cityHash64(1, 2)) -- не должен получить результат
    > user2 > select dictGet('my_dict', 'value', cityHash64(1, 1)) -- не должен получить результат
  • https://t.me/clickhouse_ru
    Это понятно что можно солить хэш идентификатора - а соль держать в секрете )) Может быть есть более остроумное решение ?
  • https://t.me/clickhouse_ru
    `GraphiteMergeTree` behaves differently between `22.3.13` and `22.3.7` · Issue #42851 · ClickHouse/ClickHouse

    Describe the issue GraphiteMergeTree behaves differently between 22.3.13 and 22.3.7 This problem was found in cluster, and I suspect that standalone machines will have the same problem How to repro...

  • https://t.me/clickhouse_ru
    ну нет, мне нужно воспользоваться join-ом и присоединить все экземпляры из правой таблицы в массив. По факту только одна колонка с массивом добавится.
    То чт овы предлагаете - это только через группировку, тогда бы мне нужно было делать группировку по всем колонкам
  • https://t.me/clickhouse_ru
    @yatoba ↶ Reply to #296802 #296836 10:46 AM, 02 Nov 2022
    dd: 165 MB
    delta: 5Gb (как и исходные)
  • какая то жесть, не бывает таких идеальных данных когда datetime четвертый по списку =)
  • https://t.me/clickhouse_ru
    @StadnikD #296838 11:18 AM, 02 Nov 2022
    я что-то не понимаю или это баг кликхауса ? почему order_id повторяется если я хочу просто вытащить первое и последнее значение?
  • @716762776 #296839 11:20 AM, 02 Nov 2022
    final ?
  • https://t.me/clickhouse_ru
    ?
  • @716762776 #296841 11:22 AM, 02 Nov 2022
    движок какой ?
  • @716762776 #296842 11:23 AM, 02 Nov 2022
    и изменится ли картинка если добавить final
  • а если просто вытащить select order_id order by order_id — не повторяется?
  • https://t.me/clickhouse_ru
    движок mergetree final пишет что не поддерживает
  • https://t.me/clickhouse_ru
    повторяется
  • https://t.me/clickhouse_ru
    @Alexey_037 #296846 11:33 AM, 02 Nov 2022
    Попробуйте сделать в with отбор данных с order by, а потом из результата взять last_value... Возможно, сортировка не применяется.
  • а в чем проблема тогда?
    оконная функция != group by агрегация
  • @716762776 #296848 11:34 AM, 02 Nov 2022
    final - это вроде как раз про megretree
  • вы попросили подсчитать значение для каждой строки, он и подсчитал
    если вам нужно первое и последнее значение per order id -> select order_id, argMin(...), atgMax(...) group by order_id
  • https://t.me/clickhouse_ru
    я просто ожидал увидеть не такое поведение.
  • https://t.me/clickhouse_ru
    @StadnikD #296851 11:36 AM, 02 Nov 2022
    а вот такое
  • https://t.me/clickhouse_ru
    @StadnikD #296852 11:36 AM, 02 Nov 2022
    не совсем корректно объяснился видимо
  • https://t.me/clickhouse_ru
    @tomilovanatoliy #296853 11:45 AM, 02 Nov 2022
    подскажите пожалуйста, можно ли в MATERIALIZED выражении стобца ссылаться на EPHEMERAL столбец. Проблема такая: внешний процесс вставляет строки со временем, которые не разбирает parseDateTime, поэтому просто сделать тип столбца DateTime и использовать неявное преобразование строки во время не получится. parseDateTimeBestEffort разбирает и охота сделать timestamp_string String EPHEMERAL, timestamp DateTime MATERIALIZED parseDateTimeBestEffort(timestamp_string). Это будет работать?
  • это очень сложно понять, простите ) пожалуйста, описывайте проблему ясно, без необходимости поиска отличия между картинками)
    вы про то, что у первых двух строк разные значения last_state?
  • https://t.me/clickhouse_ru
    да
  • это потому что по дефолту применяется ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW в оконке
    пропишите там явно ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
  • https://t.me/clickhouse_ru
    @jenjate #296857 12:01 PM, 02 Nov 2022
    кто понимает почему Table default.range doesn't exist, когда она прописана в CTE и даже отрабатывается запрос к ней: https://fiddle.clickhouse.com/66f3d3d7-1c8d-46d8-baa2-b9126c9c2630
  • https://t.me/clickhouse_ru
    @Rainb0wD4sh #296858 12:01 PM, 02 Nov 2022
    почему
    select count() from numbers(100) limit 8
    возвращает 100 а не 8? это какаето магия LIMIT? или как то надо агрегировать
  • https://t.me/clickhouse_ru
    @Rainb0wD4sh #296860 12:02 PM, 02 Nov 2022
    @orantius бан господину выше
  • небось еще и одну строку вместо 8 ?
  • https://t.me/clickhouse_ru
    count же возвращает одну строку, хоть limit 1 пиши
  • order by и limit выполняются после select согласно стандартам sql
  • https://t.me/clickhouse_ru
    @Rainb0wD4sh #296864 12:07 PM, 02 Nov 2022
    спасибо
  • https://t.me/clickhouse_ru
    @Rainb0wD4sh #296865 12:07 PM, 02 Nov 2022
    как последние 5 тогда получить ?
  • @Ghostnsk #296866 12:08 PM, 02 Nov 2022
    count на * заменить
  • @Ghostnsk #296867 12:08 PM, 02 Nov 2022
    и отсортировать как надо
  • https://t.me/clickhouse_ru
    @Rainb0wD4sh #296868 12:09 PM, 02 Nov 2022
    хмм, звучит как план
  • что значит "таблица прописана в cte"?
    вы создали cte под именем range, cte живет на уровне запроса, где вы его определили.
    другие запросы его не видят.
  • @Stelth_memas #296871 12:13 PM, 02 Nov 2022
    Привет. Подскажите пожалуйста как в клик Хаус добавить поле не повторяющихся чисел?
    Оконные функции и сте не работают в моей версии)))
  • https://t.me/clickhouse_ru
    откуда такая информация? у меня запросы всегда видели другие cte и селектили из них, в этом смысл cte во многом, разве нет? даже cte видят друг друга, не говоря об основном запросе
  • это в какой базе данных такое поведение?
  • https://t.me/clickhouse_ru
    ch version 22.2.2.1
  • скиньте пример через fiddle.clickhouse.com
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Зачем нужны сte, если их нельзя вставлять в основной запрос?
  • https://t.me/clickhouse_ru
    чет с разных впн проверил не работает
  • а если через https
    https://fiddle.clickhouse.com/
  • https://t.me/clickhouse_ru
    @barsukov_vv #296880 12:20 PM, 02 Nov 2022
    ага, редиректа нет
  • https://t.me/clickhouse_ru
    так работает
  • https://t.me/clickhouse_ru
  • так разговор не про их использование в "основной части запроса", а про использование в другом запросе, что вы пытаетесь сделать в вашем коде
  • https://t.me/clickhouse_ru
    в чем разница?
  • в том, что cte — это именованный подзапрос (живет на уровне запроса), а не временная таблица (живет на уровне сессии или если глобальная в некоторых субд, на уровне всех сессий, что к ней обратились)
  • https://t.me/clickhouse_ru
    @Lazycat_su #296888 12:34 PM, 02 Nov 2022
    В sql server, да и в других бд (насколько я встречал) CTE , это всего лишь удобоваримая обёртка для FROM. Грубо говоря кусок из CTE вставляется внутрь from. Если используется несколько CTE, происходит тоже самое. Т е нижестоящее cte видит вышестоящее. Т.е. конструкция
    With cte1
    As
    (Select a from b),
    Cte2
    As
    (Select a*a from cte1)
    Select * from cte2
    Left join cte1 on (1=1)

    работает во всех языках
  • https://t.me/clickhouse_ru
    @tomilovanatoliy #296889 12:35 PM, 02 Nov 2022
    подскажите пожалуйста фича с EPHEMERAL для колонок в варианте без указания выражения с какой версии поддержана?
  • https://t.me/clickhouse_ru
    @andreypopp #296890 12:39 PM, 02 Nov 2022
    "from a left join b" и "from b right join a" должны же дать эквивалентные результаты? или есть какие то подводные камни?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    в КХ нет в общем случае
    если a и b distributed то не должны
  • https://t.me/clickhouse_ru
    @Lazycat_su #296893 12:40 PM, 02 Nov 2022
    Добавлю также, что в SQL сервер cte не работает толком в силу работы оптимизатора - результаты подзапросов не используют индексы при джойнах. В CH все наоборот.
  • https://t.me/clickhouse_ru
    а есть где то в доке про это?
  • https://t.me/clickhouse_ru
    в моем случае "a" это подзапрос в котором есть выборка из distributed
  • https://t.me/clickhouse_ru
    да
  • https://t.me/clickhouse_ru
    где-то есть
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    ну вот не нашел ничего кроме кейса с distributed X distributed (что в принципе понятно)
  • https://t.me/clickhouse_ru
    а зачем вам right join ? потребление памяти вы не измените таким образом
  • https://t.me/clickhouse_ru
    кардинальность правой таблицы меньше, идея была что CH из нее hash table построит сначала
  • @dj_mixer #296902 12:57 PM, 02 Nov 2022
    какой лучший способ заполнения словаря на кластере для использования в distributed запросе?

    CREATE table ON CLUSTER
    FILL any node
    CREATE DICTIONARY SOURCE cluster() ?

    или можно че то проще?
  • https://t.me/clickhouse_ru
    1) создать и заполнить таблицу распределенную
    2) создать dictionary on cluster
    3) сделать system reload dictionary on cluster , чтобы он заполнился на всех нодах
  • https://t.me/clickhouse_ru
    cte просто заново выполняется каждый раз, но обращаться к нему можно
  • ок, это плюс минус тоже.
    хотелось бы чего попроще как с темп таблицами которые сами при запросе кидаются во все ноды с инициатора
  • @dj_mixer #296906 01:08 PM, 02 Nov 2022
    a join temp
    vs
    a join dict

    может есть магический флажок
  • https://t.me/clickhouse_ru
    флажок для чего?
  • https://t.me/clickhouse_ru
    нет, так КХ не обмануть
  • https://t.me/clickhouse_ru
    я создаю Replicated таблицу опуская макрос shard, таким образом таблица получается с 1м шардом и n реплками
  • https://t.me/clickhouse_ru
    получилось, но я так и не понял почему нельзя все, что в cast, вынести в cte в данном конкретном случае
  • https://t.me/clickhouse_ru
    в каком данном? о чем вы?
  • https://t.me/clickhouse_ru
    https://fiddle.clickhouse.com/ce2c6940-bfe3-4faf-9cc4-32e7d25b6515

    вы знаете что есть 2 with? один для констант, другой для CTE
  • https://t.me/clickhouse_ru
    неожиданно заработало))
  • чтобы при joine словаря, инициатор рассылал его по другим шардам как он это делает с темп таблицей
  • https://t.me/clickhouse_ru
    такого функционала нет, мне кажется, получите ошибку что словаря нет на ноде, на которой его нет
  • это замечательно но это часть последовательной логики программы, получается надо удостоверится что все отреплицировалось прежде чем продолжать...
  • https://t.me/clickhouse_ru
    может проще переписать запрос чтобы джойн был на инициаторе?
  • там не совсем джоин, там поиск в гео словаре... и много данных, хочется на шарде
  • https://t.me/clickhouse_ru
    можно и без репликации - словарь может смотреть на конкретную ноду, там же можно явно хост задать в источнике , вместо localhost
  • @dj_mixer #296920 01:23 PM, 02 Nov 2022
    хотя можно спустить в шарды условие по bounding box, а дальше уже на ининциаторе
  • ну это то как сейчас задумано
    https://t.me/clickhouse_ru/296902
    【D】【J】 in ClickHouse не тормозит

    какой лучший способ заполнения словаря на кластере для использования в distributed запросе? CREATE table ON CLUSTER FILL any node CREATE DICTIONARY SOURCE cluster() ? или можно че то проще?

  • https://t.me/clickhouse_ru
    вот в чем было дело)))
  • @diskernel #296924 01:41 PM, 02 Nov 2022
    /stat@combot
  • https://t.me/clickhouse_ru
    @combot #296925 b o t 01:41 PM, 02 Nov 2022
    Total messages: 296924
  • @sandorko #296926 01:53 PM, 02 Nov 2022
    Немного странный вопрос, но может ли в теории ClickHouse упасть после очень тяжёлых запросов, или он просто замедлится очень в крайнем случае?
  • https://t.me/clickhouse_ru
    если OOM-killer системы решит убить его, то может. Смотрите логи dmesg - там будет написано , если это произошло
  • @sandorko #296928 02:05 PM, 02 Nov 2022
    Спасибо, я больше на будущее! Например, ограничения по query_complexity, на них нужно смотреть как на защиту от падения или больше как на способ экономии ресурсов (и есть ещё квоты)
  • @sandorko #296929 02:06 PM, 02 Nov 2022
    Или больше как управление performance , наверное
  • https://t.me/clickhouse_ru
    @mosgorfilm #296930 02:48 PM, 02 Nov 2022
    Коллеги, добрый день! У меня нубский вопрос, но я замучилась гуглить без результата( хочу поставить скрипт на выполнение в cron. В скрипте команда на создание таблицы
    Пишу такое
    * * * * * clickhouse-client -u [username] --password [password] [dbname] /etc/create.sql >> /var/log/cronlog.log 2>&1

    В cronlog.log написано "Code 36. DB Exception: Positional options are not supported. (Bad arguments)

    В query_log базы пусто. Что не нравится клиенту в этом случае?
  • https://t.me/clickhouse_ru
    Вы хотите запрос из файла выполнить?
    Я делала так:
    cat file.sql | clickhouse-client -h host -u user > outputfile
  • https://t.me/clickhouse_ru
    Спасибо! Сейчас попробую как у вас сделать
  • https://t.me/clickhouse_ru
    можно внутри сессии сделать \i file.sql
  • https://t.me/clickhouse_ru
    @yatoba ↶ Reply to #296837 #296934 03:05 PM, 02 Nov 2022
    а чего там идеального, данные с датчиков раз в секунду с высокой стабильностью. Расширение до мс думаю эту красивую картинку разрушат)
  • @Vlad_Harzler #296936 03:07 PM, 02 Nov 2022
    Может кто поделиться конфигом haproxy для балансировки clickhouse по безопасному tcp соединению?
  • Да, вчера ночью уже забыл попробовать вариант:
    - order by перечислением, а не туплом
    - без final
    так оптимизация работает, другие 3 варианта - нет, в том числе c final не работает никак
    Запрос лень обфусцировать, как есть не хочу публиковать.
  • @Vlad_Harzler #296938 03:10 PM, 02 Nov 2022
    @den_crane Добрый вечер
    Подскажите, пожалуйста. Получаю ошибку при конекте через haproxy
    Code: 210. DB::NetException: SSL connection unexpectedly closed (127.0.0.1:9440)

    haproxy настроен на балансировку по безопасному tcp протоколу
    при настройке на 9000 такой проблемы нет
  • https://t.me/clickhouse_ru
    а без haproxy , прямо на 127.0.0.1:9440 работает? Может у вас клиент не понимает что ssl надо делать?
  • прямо, без хапрокси все ок
  • https://t.me/clickhouse_ru
    не знаю, гуглите сами HAProxy with SSL passthrough
  • Спасибо
  • https://t.me/clickhouse_ru
    @Marria77 #296943 03:31 PM, 02 Nov 2022
    Подскажите пожалуйста, можно ли с json убрать необходимые пары , ключ-значения ?
    например
    '{"1": "one", "2": "two", "3": "three"}'

    хочу убрать "2": "two" по ключу 2, ожидаю

    '{"1": "one","3": "three"}'
    ?
  • https://t.me/clickhouse_ru
    @roman_butler #296944 03:35 PM, 02 Nov 2022
    Всем привет! Не могу к пустой таблице присоединить парт - получаю 233 BAD_DATA_PART_NAME. Парт точно есть, имя из detached_parts получаю. Версия клика 22.8.4, а данные с 21.11.5. Могла ли повлиять смена синтаксиса создания таблицы с ENGINE = MergeTree(date,(sid, uid),8192) на ENGINE = MergeTree()
    PARTITION BY date
    PRIMARY KEY (sid, uid)
    SETTINGS index_granularity=8192
    ?
  • https://t.me/clickhouse_ru
    >Могла ли повлиять смена синтаксиса
    конечно, парты не совместимы, там в партах разная структура и разный способ именования

    только insert select
  • https://t.me/clickhouse_ru
    DB::Exception: This syntax for *MergeTree engine is deprecated. Use extended storage definition syntax with ORDER BY/PRIMARY KEY clause.See also allow_deprecated_syntax_for_merge_tree setting. (BAD_ARGUMENTS) (version 22.8.4.7 (official build)) А эта опция allow_deprecated_syntax_for_merge_tree может помочь?
  • https://t.me/clickhouse_ru
    да, она для этого и сделана
  • https://t.me/clickhouse_ru
    просто инфы по ней не нашел, куда ее прописывать. В config.xml в <merge_tree>?
  • https://t.me/clickhouse_ru
    странная у вас задача. КХ не средство редактирования json
  • https://t.me/clickhouse_ru
    вам разово?

    set allow_deprecated_syntax_for_merge_tree=1
  • 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
  • https://t.me/clickhouse_ru
    Спасибо!!!!!
  • @pavlov_m #296957 05:47 PM, 02 Nov 2022
    привет
    Проблема. По метрике DiskSpaceReservedForMerge вижу что место выело под мердж в 800гб. При этом мерджей нет. версия клики 22.8.4.7

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

    Проблема появилась после kill mutation на этой таблице

    Подскажите как можно освободить место от этих мерджей?

    мутация была по удалению данных. Но пришлось прервать из-за недостатка места
  • https://t.me/clickhouse_ru
    @Igess #296959 06:13 PM, 02 Nov 2022
    Попробуй сделать alter table … in partition … delete where …
  • https://t.me/clickhouse_ru
    @Igess #296960 06:13 PM, 02 Nov 2022
    Типо точечно сделать мутацию по партишенам
  • https://t.me/clickhouse_ru
    @Igess #296961 06:16 PM, 02 Nov 2022
    Так же нет ли чего в дирах detached?
    А так же: есть ли что-нибудь в shadow?
  • детачет партиций не было. проверял. Шадоу проверю.

    мутации не работают т.к. не хавтает места для резерва.

    Пока решение — это детач партиций поштучно. потом детач-атач таблицы — тогда резерв уменьшается. Хочу довести до кол-ва свободного места и дождаться будет ли мердж...
  • https://t.me/clickhouse_ru
    @Igess #296963 06:18 PM, 02 Nov 2022
    Можно попробовать мутацию точечно по партициям начиная с самой жирной
  • https://t.me/clickhouse_ru
    @yatoba #296964 06:20 PM, 02 Nov 2022
    А что получается надо иметь минимум 51% запаса по месту для отработки мутаций?
  • https://t.me/clickhouse_ru
    @Igess #296965 06:25 PM, 02 Nov 2022
    От диска свободным должно оставаться хотя бы 20% на случай маневра (чтобы было время для решения вопроса заканчивающегося места)

    Абсолютный минимум свободного места: 100% от самой жирной партиции (select max(total_bytes_on_disk) from (select partition, sum(bytes_on_disk) as total_bytes_on_disk from system.parts group by partition) as t)
  • https://t.me/clickhouse_ru
    @Igess #296966 06:26 PM, 02 Nov 2022
    К этому в практике пришел - дает возможность для маневра и время для решения вопроса заканчивающегося места
  • https://t.me/clickhouse_ru
    @yatoba ↶ Reply to #296965 #296967 06:28 PM, 02 Nov 2022
    Немного лучше
  • https://t.me/clickhouse_ru
    @Igess #296968 06:30 PM, 02 Nov 2022
    Вообще подобный вопрос должны решать Ваши админы/девопсы. Но в целом выглядит +- так. В зависимости от специфики проекта
  • @635404397 #296969 06:40 PM, 02 Nov 2022
    как подсказать CH использовать больше cpu для мержей? увеличил background_pool_size до 64, никакого эффекта, максимум 16 ядер используется (всего на машине 128). других активностей нет, хотел бы хотябы половину ядер загрузить, т.к. после загрузки данных получилось очень много партов, 160k (ключ партиционирования выбран правильно, просто данных много). остальный настройки дефолтные, версия 22.10
  • https://t.me/clickhouse_ru
    @Igess #296970 06:45 PM, 02 Nov 2022
    нет, нету никакого дерева.

    Просто КХ пытается делать как можно меньше мержей и при этом чтобы кол-во партов в партиции было не очень большим, там хитрая формула с кучей параметров, с экспонентами и учетом загрузки пула мержей. Т.е. если вы постоянно вставляете в таблицу A то она мержится, при этом в таблице B мержей не будет если вы туда не делаете инсертов, хотя там скажем 50 партов в партиции. И зачем-то мержер планирует в мерж парты примерно одинакового размера, зачем?, никто уже не знает, и при этом парты должны мержится в строгом порядке, чтобы не ломать логику replacing, collapsing.
  • https://t.me/clickhouse_ru
    @Igess #296971 06:46 PM, 02 Nov 2022
    А зачем вам нагружать пул мерджей? У кх есть отдельный планировщик мерджей. Форсировать его можно через optimize table (не советую)
  • @635404397 #296972 06:51 PM, 02 Nov 2022
    чтобы поскорее все смержило на большой машине, а после сделать backup/restore на слабую, типа прод, машину. пытался изначально грузить сразу на prod, так у меня почти неделю оно данные заливало. кажется быстрее поднять большую машину в ec2, все быстро загрузить/оптимизировать и после через s3 сделать restore
  • https://t.me/clickhouse_ru
    @Igess #296973 06:52 PM, 02 Nov 2022
    Optimize table … in partition …

    Но будьте очень аккуратны
  • @635404397 #296974 06:53 PM, 02 Nov 2022
    уже сделал, но все равно больше 16и ядер не использует
  • https://t.me/clickhouse_ru
    @Igess #296975 06:53 PM, 02 Nov 2022
    Оптимайз - тяжелая операция и может поставить все раком.
    Аккуратно пользуйтесь ею
  • https://t.me/clickhouse_ru
    @Igess ↶ Reply to #296974 #296976 06:56 PM, 02 Nov 2022
    Посмотрите настройку max_replicated_merges_in_queue
  • @635404397 #296977 06:57 PM, 02 Nov 2022
    таблица не replicated
  • @pavlov_m #296978 07:26 PM, 02 Nov 2022
    а как почистить очередь репликации?
  • @pavlov_m #296979 07:28 PM, 02 Nov 2022
    где type = MUTATE_PART
  • https://t.me/clickhouse_ru
    @Igess #296980 07:32 PM, 02 Nov 2022
    KILL MUTATION WHERE …
  • @pavlov_m #296981 07:32 PM, 02 Nov 2022
    они кильнуты :) но в реплике логах почему то есть
  • https://t.me/clickhouse_ru
    @Igess #296982 07:34 PM, 02 Nov 2022
    Они не сразу стопаются. А спустя время, когда закончатся атомарные операции
  • @5456051239 #296983 07:35 PM, 02 Nov 2022
    МЕГА АКЦИЯ В🍀 GREEN ROOM RBOT

    📱Закончился МЕФ? Нету дудки? Хочешь ЭКСТАЗИ или LSD? Негде намутить STUF? Конченые шопы, , недостаток товара ?

    🌎О нас знает вся Н@РКО индустрия, и ты - точно не исключение.

    УСЛОВИЯ АКЦИИ

    Прямо сейчас стартует АКЦИЯ, с 22:00 до 7:00 утра.
    В течении этого времени каждый кто пополнить кошелёк бота на суму от:

    ❤️‍🔥(2000-4000₽) Получает на аккаунт бонусную 1000 рублей.
    ❤️‍🔥(4000-6000₽) Получает на аккаунт бонусные 2500 рублей.
    ❤️‍🔥(6000-10000₽) Получает на аккаунт бонусные 4500 рублей.

    💎ЗАЙДИ И УБЕДИСЬ В ЭТОМ САМ! Не тупи , просто зайди и посмотри какие мы топовые!!!!

    ✅Моментальная выдача!

    ✅100% наход !
    ✅Поддержка 24/7!
    ✅Перезаклады моментальные!
    ✅Нет комиссий!
    ✅Удобный топовый бот!
    ✅Легкое и моментальное пополнение!
    ✅Лучшее качество!

    🍀 GREEN — Каманда №1 🍀
    🍀 GREEN — Каманда №1 🍀
    🍀 GREEN — Каманда №1 🍀
  • https://t.me/clickhouse_ru
    @Igess #296984 07:35 PM, 02 Nov 2022
    Mutate_part относится к конкретному парту. Нужно время пока kill пройдёт
  • https://t.me/clickhouse_ru
    @bluelegomachine #296985 08:16 PM, 02 Nov 2022
    Хай, а есть кто rust использует для работы с базой? Загрузку стрима нужно переписать, сейчас у меня на aws buckets льётся.
  • https://t.me/clickhouse_ru
    @bluelegomachine #296986 08:16 PM, 02 Nov 2022
    Попробовал пятью способами подключиться, пишет “connection reset by peer” при любых таймаутах. Может ли это быть из-за того, что я на trial периоде пытаюсь взаимодействовать?
  • https://t.me/clickhouse_ru
    @navi_2 #296987 08:45 PM, 02 Nov 2022
    Всем привет, подскажите, кто как делает резервное копирование в кликхаус?
  • https://t.me/clickhouse_ru
    @ikeniborn #296988 08:48 PM, 02 Nov 2022
    Можут глупый вопрос, но как эффективно объединить внесколько таблиц в одну с общим ключем сортировки эффективно. в каждой таблице свой набор атрибутов. Через union муторно как то получается)
  • Clickhouse-backup
  • https://t.me/clickhouse_ru
    Клауд?

    Ну потыкайте их саппорт, в целом должно работать
  • https://t.me/clickhouse_ru
    Merge table engine, но ключ сортировки у каждой таблицы будет свой
  • А там уже сделали pruning фильтров, если под капотом view? Вроде такая проблема была
  • А при таком объявлении
    ENGINE MergeTree() PARTITION BY toYYYYMM(EventDate) ORDER BY (CounterID, EventDate)

    и фильтре только по counterid клика поймет что не нужно лезть в каждую партицию? Или будет проверять каждую?
  • https://t.me/clickhouse_ru
    Ну, кмк pushdown должен работать, но он дюже хрупкий, так что не всегда и это еще не исправили)
  • В 21 версиях вроде не работал(
  • explain indexes = 1 вам в помощь
    https://clickhouse.com/docs/en/sql-reference/statements/explain/
    EXPLAIN Statement | ClickHouse Docs

    Shows the execution plan of a statement.

  • @716762776 #296998 09:10 PM, 02 Nov 2022
    А как трактовать
    "Condition":true
    ?
  • @Wsoradazunala #296999 09:11 PM, 02 Nov 2022
    Условие истино
  • @Wsoradazunala #297000 09:12 PM, 02 Nov 2022
    2+2=4 истино, 2+2=5 ложно
  • @716762776 #297001 09:14 PM, 02 Nov 2022
    я догадывался, но тем не менее
  • @716762776 #297002 09:15 PM, 02 Nov 2022
  • [думаю, что] так как фильтра по ключу партиционирования нет, то партиции фильтруются как where true, то есть берутся все, остается 92 из 92 партов.
    потом берется фильтр по primary key, и оставляет только 273 гранулы между метками, их движок и сканит
  • @716762776 #297004 09:20 PM, 02 Nov 2022
    т.е. при таком выводе клика лезет в каждую партицию ?
  • https://t.me/clickhouse_ru
    Клауд
  • нет, он просто понимает, что по ключу партиции он отфильтровать ничего не может, о чем и сообщает
    а "лезет" он в метки primary key в оперативке.
  • @716762776 #297007 09:24 PM, 02 Nov 2022
    но PK , он ведь как бы отдельно внутри каждой партиции (парта)?и если фильтра по партициям нет , то проверяется каждая ?
  • https://t.me/clickhouse_ru
    CounterID у вас в первой позиции, так что кх по PRIMARY KEY может понять максимальное и минимальное значение CounterID для каждого парта, и если ваше значение находится за пределами данных границ, кх не будет читать данный парт.
  • @716762776 #297009 09:29 PM, 02 Nov 2022
    ну правильно, но партиций у меня 90 шт (партов считай еще больше) и клика проверит каждый парт ?
  • @716762776 #297010 09:30 PM, 02 Nov 2022
    я не говорю что она будет его вычитывать, но проверить на мин/макс должна ?
  • думаю, что если "чтение меток primary индекса" входит в ваше понятие "проверяется", то да
    если вы имеете в виду полный скан парта, то необязательно.
  • https://t.me/clickhouse_ru
    Да,
    Причем в некоторых случаях анализ индекса может занимать значительное время от всего времени запроса, поэтому есть некоторые хаки

    https://kb.altinity.com/altinity-kb-queries-and-syntax/multiple-date-column-in-partition-key/
    Multiple aligned date columns in PARTITION BY expression

    How to put multiple correlated date-like columns in partition key without generating a lot of partitions in case not exact match between them.

  • @716762776 #297013 09:33 PM, 02 Nov 2022
    спс
  • @716762776 #297015 09:40 PM, 02 Nov 2022
    можно немного пояснить ?
  • @716762776 #297016 09:43 PM, 02 Nov 2022
    в приведенном примере поля как бы не являются частью ключа, но присутствуют в нем ? ято то типа indexes with included columns в mssql ?
  • @5791504748 #297017 09:54 PM, 02 Nov 2022

    😱Барыга перестал отвечать на звонки?
    👍GREEN ROOM Всегда онлайн

    МЕГА АКЦИЯ В🍀 GREEN ROOM RBOT
    УСЛОВИЯ АКЦИИ

    Прямо сейчас стартует АКЦИЯ, с 22:00 до 7:00 утра.
    В течении этого времени каждый кто пополнить кошелёк бота на суму от
    🔥2000₽ получает бонус 1000 ₽.

    -У нас только наход
    -Только лучшее качество
    -Лучшие цены
    -Моментальная круглосуточная поддержка
    -Огромный выбор товара
    -Мы лучшие на рынке

    🍀 GREEN 🍀
    🍀 GREEN 🍀
    🍀 GREEN 🍀
  • @vmakulov #297021 10:07 PM, 02 Nov 2022
    не у всех болтабельный кластер
  • https://t.me/clickhouse_ru
    Не совсем.
    В приведенном примере:

    у нас есть два набора колонок в PARTITION BY
    1. выражение от которых задает партицию: date
    2. значения которых кх используют для создания minmax индекса: date, created_at, inserted_at
  • @716762776 #297023 10:24 PM, 02 Nov 2022
    т.е. эта конструкция ignore(created_at, inserted_at) задает min/max для каждого из полей created_at, inserted_at в пределах партиции ?
  • https://t.me/clickhouse_ru
    Она упоминает данные колонки в PARTITION BY выражении, а следовательно кх посчитает для них minmax индекс (не путать с minmax skip index) для них.

    ignore же нужно, что бы для всегда вернуть 0, что бы значения в данных колонках не влияли на ключ партиционирования
  • https://t.me/clickhouse_ru
    @unamedrus #297025 10:28 PM, 02 Nov 2022
    Хак короче
  • @716762776 #297026 10:34 PM, 02 Nov 2022
    это ж не только дат касается?
  • https://t.me/clickhouse_ru
    Нет, но minmax индекс обычно имеет смысл только для инкрементальных значений. (числа, даты, время)
  • @716762776 #297028 10:35 PM, 02 Nov 2022
    это понятно
  • 03 November 2022 (195 messages)
  • @110248354 #297032 02:12 AM, 03 Nov 2022
    Подскажите, как массив UInt32 преобразовать в массив строк?
  • @110248354 #297033 02:17 AM, 03 Nov 2022
    Или есть ли аналог multiMatchAny для массива UInt32?
  • @5432137830 #297034 02:39 AM, 03 Nov 2022
    Получите 3OOO pyб. от BTБ! Необходимо просто оставить отзыв и деньги у Вас на балансе.

    Актуально только клиентам BTБ, сайт акции - ссылка
  • has, вроде, подошëл
  • https://t.me/clickhouse_ru
    @Atal24299Le_U #297038 03:58 AM, 03 Nov 2022
    Акция от BTБ банка все ещё действует, каждый клиент получит выплату 7ООО рублей за пройденный опрос на официальном сайте.

    Официальный сайт акции (нажимайте на текст)
  • https://t.me/clickhouse_ru
    @timofei_melnikov #297040 07:08 AM, 03 Nov 2022
    Всем привет! Ставлю скрипт на расчет через Airflow. У меня падает запрос по памяти, решил считать в цикле по партициям с обращением к каждой отдельной партиции. Может у кого нибудь есть пример такого расчета? Или подскажете как правильнее сделать?
    p.s. ограничение по дате сделать нельзя, тк партиции по хешу от uid
  • https://t.me/clickhouse_ru
    @Pengwin61 #297042 07:12 AM, 03 Nov 2022
    Привет Всем. Хочу удалить но мне выдает ошибку DB::Exception: WRITE locking attempt on "system.query_thread_log" has timed out! (120000ms) Possible deadlock avoided. Client should retry.
  • https://t.me/clickhouse_ru
    Where hash(uid)=hash('xxx') и так перебираете все свои уиды.
    Но интуитивно кажется что у вас уже проблемы раз парты по уидам.
  • это сколько у вас партиций-то?
  • https://t.me/clickhouse_ru
    около 60, таблица несколько раз обращается к самой себе по user_id, по этому самым оптимальным решением на мой взгляд было партицировать по user_id, и считать по партиции с группой пользователей
  • понятно
    обычно делают календарные партиции, а user_id, как низкокардинальное значение можно было просто на первую позицию sorting key поставить
  • https://t.me/clickhouse_ru
    Возможно в этом тоже проблема, не хотите показать структуру данных и запрос? Вдруг найдётся более оптимальное решение задачи, а не последствий проектирования?
  • https://t.me/clickhouse_ru
    @392734528 #297048 08:30 AM, 03 Nov 2022
    Всем приввет

    Types of column 1 in section IN don't match: FixedString(512) on the left, String on the right.

    То есть мне fixedString напдо к стринге приводить в обязательном подяке чтобы сджойнить?
    а чего так жостко то? )
  • https://t.me/clickhouse_ru
    ну можете стрингу привести к fixedString
  • https://t.me/clickhouse_ru
    моч то могу но не очень понятно зачем строку к строке приводить
  • https://t.me/clickhouse_ru
    потому что это не строка к строке
  • https://t.me/clickhouse_ru
    @Sablast #297053 08:34 AM, 03 Nov 2022
    надеюсь станет понятнее:
    SELECT
    toFixedString('hello', 10) AS f_string,
    length(f_string) AS f_s_len,
    'hello' AS n_string,
    length(n_string) AS n_s_len

    ┌─f_string─┬─f_s_len─┬─n_string─┬─n_s_len─┐
    │ hello │ 10 │ hello │ 5 │
    └──────────┴─────────┴──────────┴─────────┘
  • @ruslanen #297054 08:43 AM, 03 Nov 2022
    День добрый!
    Возникла проблема на длительном запросе к ClickHouse.
    Буду очень признателем любым советам)

    Имею следующее окружение: приложение на .net6, ClickHouse 22.7.2.15, JDBC Bridge. Запускаю все отдельными docker-контейнерами через docker compose.

    Проблема:
    При отравке долгих запросов из приложения .net на CREATE TABLE AS SELECT from JDBC получаю зависшее соединение на стороне .net.
    Снимал tcpdump с контейнеров с CH и .net и видел такую картину: запрос на стороне ClickHouse исполняется без ошибок и таблица создается, но контейнер с CH получает RST пакет от контейнера .net, НО tcpdump, снятый на контейнере с .net не фиксирует этот RST пакет. Т.е. как будто, он создается в docker сети, но кем?
    Вся проблема в том, что я устанавливаю на стороне приложения длительный тайм-аут на запрос, поэтому для меня это критично, т.е. httpClient на стороне .net тупо ждет, пока не проойдет тайм-аут и только тогда разорвет соединение.

    Сами контейнеры общаются между собой напрямую, никакого прокси нет.
    Понимаю, что это скорее проблема не CH, а моего окружения, но не думаю, что только только я столкнулся с подобной проблемой при работе CH и .net в docker-сети)

    Что я пробовал:
    - настраивать iptables как тут: https://imbstack.com/2020/05/03/debugging-docker-connection-resets.html
    - настраивать сеть docker как Unmanaged (как тут: https://github.com/moby/moby/issues/40217#issuecomment-708276691)
    Ни один вариант не помог
    Debugging Docker Connection Reset by Peer

    imbstack does things with computers.

  • https://t.me/clickhouse_ru
    по размерности понятно
    но когдам ысравниваем слова МИР и Труд то они тоже имеют разную размерность )
  • https://t.me/clickhouse_ru
    @392734528 #297056 08:47 AM, 03 Nov 2022
    и под капотом (если я не ошибаюсь) так же являются char[]
  • https://t.me/clickhouse_ru
    я не очень понимаю к чему эта дискуссия, считаете, что текущая реализация ошибочна - можно завести issue или даже сделать PR который позволит сравнивать без преобразования типов
  • @anttoon #297058 09:22 AM, 03 Nov 2022
    подскажите пожалуйста как Запретить пользователю SHOW CREATE DICTIONARY ?
    управление пользователями через SQL
  • https://t.me/clickhouse_ru
    @Reineke_fuchs #297061 09:54 AM, 03 Nov 2022
    Добрый день! Подскажите пожалуйста, с чем может быть связана ошибка:
    Code: 1001, type: pqxx::broken_connection, e.what() = Lost connection to the database server. (version 21.11.4.14 (official build))?
    Ранее запросы на несколько джоинов работали нормально, сейчас начали выдавать эту ошибку. Если писать запрос на одну таблицу, то ошибки нет.
    Подключение идет через ENGINE = PostgreSQL
  • @dimaskovas #297064 10:57 AM, 03 Nov 2022
    Привет.
    Правда что CREATE TABLE AS SELECT не атомарный, и что если во время SELECT произойдет ошибка, то может остаться пустая таблица (или с неполными данными)?
  • https://t.me/clickhouse_ru
    @navi_2 #297065 10:59 AM, 03 Nov 2022
    Всем привет! подскажите какие могут быть подводные камни в загрузке данных из кафки через MATERIALIZED VIEW? Выполняю все как прописано в доках, но таблица остается пустой
  • камней много)
    правильно ли вы подключились к кафке, совпадают ли типы?
    Сделайте мв которая отлавливает ошибки и сможете увидеть
  • https://t.me/clickhouse_ru
    @navi_2 ↶ Reply to #297065 #297067 11:02 AM, 03 Nov 2022
    CREATE TABLE IF NOT EXISTS default.kafka ("startLTime" UInt64, "changes" String)

    ENGINE = MergeTree()

    ORDER BY "startLTime";

    CREATE TABLE default.queue_test ("startLTime" UInt64, "changes" String)
    ENGINE = Kafka('kafka-host:9092','system', 'hd', 'JSONEachRow') settings kafka_thread_per_consumer = 0, kafka_num_consumers = 1;

    CREATE MATERIALIZED VIEW default.test_view TO default.kafka AS

    SELECT *

    FROM default.queue_test;

    SELECT count() FROM default.test_view;
  • https://t.me/clickhouse_ru
    @navi_2 ↶ Reply to #297066 #297068 11:03 AM, 03 Nov 2022
    а как ее сделать? было бы отлично увидеть какие ошибки возникают
  • https://t.me/clickhouse_ru
    <yandex>
    <kafka>
    <security_protocol>...</security_protocol>
    <sasl_mechanism>...</sasl_mechanism>
    <sasl_username>...</sasl_username>
    <sasl_password>...</sasl_password>
    <debug>all</debug>
    tail -f /var/log/clickhouse/server.log
  • А этот конфиг можно настроить на чтение двух разных кафок?
    Например одна тестовая, другая прод, со своими сертификатами/юзерами
  • https://t.me/clickhouse_ru
    Нет, насколько знаю. Но не могу утверждать это уверенно
  • https://t.me/clickhouse_ru
    Правда
  • https://t.me/clickhouse_ru
    @BMF_RU #297075 11:27 AM, 03 Nov 2022
    как найти записи в таблице, которых нет в другой таблице, что-то вроде:
    SELECT * FROM TABLE_1 T1 WHERE NOT EXISTS (SELECT * FROM TABLE_2 T2 WHERE T2.ID = T1.ID)
    пробую так:
    SELECT T1.ID FROM TABLE_1 T1 LEFT OUTER JOIN TABLE_2 T2 ON T2.ID = T1.ID WHERE T2.ID IS NULL
    не работает...
  • select t1.id from t1 where t1.id not in (select t2.id from t2)?
  • @716762776 #297077 11:30 AM, 03 Nov 2022
    exists через "*" ???
  • ну первое не будет работать, в кх не работает проброс во внутрь полей

    в во втором в чем проблема?
  • https://t.me/clickhouse_ru
    @BMF_RU ↶ Reply to #297076 #297079 11:33 AM, 03 Nov 2022
    хм. попробовал, не работает. данные точно различаются.
  • @valeriysimonov #297080 11:33 AM, 03 Nov 2022
    Есть таблица:
    CREATE TABLE perfstats
    (
    `TimeReceived` DateTime,
    `sw_guid` LowCardinality(String),
    `lid` UInt32,
    `connected_lid` UInt32,
    `PortXmitData` UInt64,
    `PortRcvData` UInt64
    )
    ENGINE = MergeTree
    PARTITION BY toStartOfDay(TimeReceived)
    ORDER BY TimeReceived

    Каждая запись уникальна по трём полям: sw_guid, lid и connected_lid. Ну и TimeReceived, понятно.
    PortXmitData и PortXmitData - счётчики, они с каждым следующим опросом инкрементируются (иногда переполняются, ну да ладно)
    TimeReceived инкрементируется по три минуты, но не ровно три минуты, +/- несколько секунд

    Мне нужно высчитать rate отдельно по каждому значению. То есть вычесть предыдущее значение PortXmitData от текущего и разделить результат на разницу в секундах между двумя опросами.

    runningDifference хорош, но непонятно, как его привязать к уникальности по трём полям.

    Помогите, пожалуйста, голову уже сломал
  • https://t.me/clickhouse_ru
    @BMF_RU ↶ Reply to #297078 #297081 11:34 AM, 03 Nov 2022
    вот и мне интересно )
  • читается так: найди все id в таблице t1, которых нет в таблице t2
  • оконные функции?
  • https://t.me/clickhouse_ru
    @BMF_RU ↶ Reply to #297082 #297084 11:39 AM, 03 Nov 2022
    да. но не ищет. ни через OUTER JOIN ни через NOT IN
  • да, over partition by пробовал, что-то результат не сходится, если руками считать. соседние строки берёт
  • значит у вас нет такого, или что-то недоговариваете
  • то есть понятно, что руки кривые, но непонятно, где
  • any(PortXmitData) OVER (PARTITION BY sw_guid, lid, connected_lid ORDER BY PortXmitData ASC ROWS
    BETWEEN 1 PRECEDING AND 1 FOLLOWING)
    вроде такое найдет предыдущей значение PortXmitData
  • вообще можете тут почитать
    https://altinity.com/blog/clickhouse-window-functions-current-state-of-the-art
    ClickHouse Window Functions -- Current State of the Art

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

  • https://t.me/clickhouse_ru
    @BMF_RU ↶ Reply to #297086 #297090 11:46 AM, 03 Nov 2022
    все разобрался )
  • https://t.me/clickhouse_ru
    Понятно, что чудо СУБД могла сама как нить организовываться и привести одно к другому. Но подобного добра в Click навалом. Например на if оба результата тоже должны быть приведены, и decimal с int-ом не прокатят. А вот операция сравнения между ними - вполне. С ключами джойнов такая же беда. С другой стороны вкатить команду приведения не долго и совсем не в напряг, по факту времени на подобную отладку не шибко много уходит. Хотя обезьяний труд немного.
  • https://t.me/clickhouse_ru
    изначально в КХ была суперстрикт типизация, т.е. надо было писать x = toUInt64(1) и это было прекрасно, жаль что это убрали
  • https://t.me/clickhouse_ru
    Жень я без наездов за отсуствие автоприведения. просто хотел выяснить может есть в этом какой то великий замысел.
  • https://t.me/clickhouse_ru
    left outer join не продюсит null если не установлен параметр join_use_nulls
  • https://t.me/clickhouse_ru
    Полагаю влом такую мелочь дописывать. Хотя код ведь открыт в Гите и вероятно можно и самому заплатки раскачать....
  • https://t.me/clickhouse_ru
    вообще 40 лет назад предполгалось что в бд будут домены и кол-во яблок нельзя будет сравнивать с весом носков, жаль что нигде этого нет
  • https://t.me/clickhouse_ru
    @ilejn ↶ Reply to #297048 #297099 12:05 PM, 03 Nov 2022
    По-настоящему жосткая СУБД вообще бы разрешала такую операцию только для целых чисел ;)
  • https://t.me/clickhouse_ru
    замысел в том что типы без преобразования сравниваются быстрее. Вызов кастинга добавляет работы, поэтому строгая типизация вынуждает вас делать нормальные одинаковые типы,
    я гарантирую что FixedString(512) -- это выстрел в ногу, ошибка, там должен быть String
  • https://t.me/clickhouse_ru
    а зачем тогда фиксед стринг если это выстрел в ногу? у меня там реально строго фиксированное значение.
    получается в топку это Fixed ? переделываем на строки и не парим мозги?
  • https://t.me/clickhouse_ru
    всегда всегда 512 ? рили?
    Почему тогда в другой таблице String ?
  • https://t.me/clickhouse_ru
    @den_crane #297103 12:12 PM, 03 Nov 2022
    я как-то замерял, и FixedString(512) по перформансу ничем не отличается от String, разница заметна до FixedString(10)
  • https://t.me/clickhouse_ru
    Да есть и ошибки, к примеру в одной таблице код склада uint16, а в следующих уже uint32 вкачал для унификации с кодом товара. И джойнить подобные вещи всегда нужно через приведение. Ну а как быть с приведением констант типа toDecimal(0,3)? Здесь то явно замысла нету.
  • https://t.me/clickhouse_ru
    зуб даю да. в другой таблице просто не досмотрел )
  • https://t.me/clickhouse_ru
    ну я бы исправил uint16 на unint32

    >Ну а как быть с приведением констант типа toDecimal(0,3)? Здесь то явно замысла нету.
    что? я не понял
  • @vvvjhaq #297107 12:15 PM, 03 Nov 2022
    Денис, а можно сделать конфиг для кафки (разные сертификаты и юзеры/пассы) для разных серверов кафки?
  • https://t.me/clickhouse_ru
    В конструкции

    if(kol > 2, toDecimal32(0,3), kol)

    Если kol decimal с тремя знаками после запятой то и ноль привести туда же придётся
  • https://t.me/clickhouse_ru
    А исправить уже в бэклоге уж год отвисает, все руки не дойдут...
  • https://t.me/clickhouse_ru
    @BMF_RU #297110 12:19 PM, 03 Nov 2022
    номер строки в выборке можно только через row_number получить?
  • https://t.me/clickhouse_ru
    да, изначально было можно для каждого топика задать свой конфиг через <kafka_topicname>
    сейчас появился более удобный путь named_collections https://github.com/ClickHouse/ClickHouse/issues/28703#issuecomment-1241852550
    How can I provide specific settings for kafka topic with dots in name? · Issue #28703 · ClickHouse/ClickHouse

    I tried provide sass configuration for topic with name like 'team.topic', but unsuccessfully I also tried replace dot with underscore. broker,cgrp <auto_offset_reset>e...

  • https://t.me/clickhouse_ru
    вообще нормального варианта нету, я всегда делаю на клиенте
  • https://t.me/clickhouse_ru
    это не доделано
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @392734528 #297116 12:43 PM, 03 Nov 2022
    подскажите а тут тоже какая то приколюха с приведением?
    toTimeZone(begin_date,'Europe/Moscow') > toDateTime64('2022-09-01 00:00:00.000', 3)

    begin_date - DateTime64(3) там лежит время в UTC (хотя странно, я думал что при инсерте timstamp приведется к +3)
  • https://t.me/clickhouse_ru
    @392734528 #297117 12:44 PM, 03 Nov 2022
    Не работает условие по приведенной к нужной тамзоне дате
  • https://t.me/clickhouse_ru
    @392734528 #297118 12:44 PM, 03 Nov 2022
    или не toDateTime64 еще обернуть в toTimeZone надо?
  • @7699150 #297119 12:48 PM, 03 Nov 2022
    Всем привет!
    Может кто-то знает можно ли использовать механизм Schema Inference, чтобы создать таблицу по схеме сообщения из топика Kafka?
  • https://t.me/clickhouse_ru
    toTimezone делает не то что вы думаете

    Она меняет не время, а метаданные колонки, что бы рендерить в строку
  • https://t.me/clickhouse_ru
    Нет такой фичи
  • https://t.me/clickhouse_ru
    @MakeReady #297123 01:17 PM, 03 Nov 2022
    Добрый день! Из Метрики массив прилетает как [‘sdfsdf’,’sdfsdfsd’] и в одном из значений есть апостроф в значении, есть настройка для учета такого, чтобы insert не ломался?
  • https://t.me/clickhouse_ru
    @lgtwb #297124 01:22 PM, 03 Nov 2022
    Экранировать например при вводе данных?
  • https://t.me/clickhouse_ru
    надо регулярку придумать, которая не будет трогать окружающие апострафы ….
  • https://t.me/clickhouse_ru
    @lgtwb ↶ Reply to #297125 #297126 01:31 PM, 03 Nov 2022
    Нет, почему? У вас как вставляются данные?
  • https://t.me/clickhouse_ru
    requests.post(host, data=content, params=query_dict, verify=SSL_VERIFY)
    где
    query_dict = {

    'query': 'INSERT INTO ' + table + ' FORMAT TabSeparatedWithNames '
  • https://t.me/clickhouse_ru
    @lgtwb #297130 01:36 PM, 03 Nov 2022
    А TSV вы промежуточно обрабатывать можете?
  • https://t.me/clickhouse_ru
    @MakeReady #297131 01:36 PM, 03 Nov 2022
    да
  • https://t.me/clickhouse_ru
    @lgtwb #297132 01:37 PM, 03 Nov 2022
    Тогда регулярка и вперед, символы табуляции как начало и конец и погнал
  • https://t.me/clickhouse_ru
    @MakeReady #297133 01:38 PM, 03 Nov 2022
    ну я так и сказал регулярку писать ))) но вдруг есть настройка )
  • https://t.me/clickhouse_ru
    @MakeReady #297134 01:44 PM, 03 Nov 2022
    все же верится что КХ должен уметь такое переваривать
  • https://t.me/clickhouse_ru
    не очень понятно каким образом? Искусственный интелект применять?
  • https://t.me/clickhouse_ru
    ))) согласен был не прав.
    но кажется дважды, ибо в чистом виде апостраф экранирован Harry\'s
  • https://t.me/clickhouse_ru
    скорее всего у вас питон слеш съедает
  • https://t.me/clickhouse_ru
    да-да, найду и накажу ))
  • https://t.me/clickhouse_ru
    @solard #297139 02:07 PM, 03 Nov 2022
    Коллеги а почему могут возникать дубликаты при вставке в distributed таблицу и дубликаты попадают в одну и ту же шарду
  • https://t.me/clickhouse_ru
    @solard #297140 02:07 PM, 03 Nov 2022
    В чем может быть причина?
  • https://t.me/clickhouse_ru
    @solard #297141 02:08 PM, 03 Nov 2022
    Причем дубликаты не на разных шардах а в одной и той же шарде всегда
  • https://t.me/clickhouse_ru
    Просто как гипотеза. возможно у вас всегда задваивается вставка, только на одном шарде insert_deduplicate=0 а на другом insert_deduplicate=1.
    Посмотрите квери лог на предмет количества инсертов
  • https://t.me/clickhouse_ru
    @solard ↶ Reply to #297142 #297143 02:14 PM, 03 Nov 2022
    Инсерт всегда 1
  • https://t.me/clickhouse_ru
    @solard #297144 02:14 PM, 03 Nov 2022
    Ошибка в рамках двух кластеров воспроизводится и в рамках однго не воспроизводится
  • https://t.me/clickhouse_ru
    @solard #297145 02:14 PM, 03 Nov 2022
    конфиги одинаковые
  • https://t.me/clickhouse_ru
    @solard ↶ Reply to #297142 #297146 02:15 PM, 03 Nov 2022
    Дедупликация не включена в кластере
  • https://t.me/clickhouse_ru
    @392734528 #297147 02:18 PM, 03 Nov 2022
    Ребят а как правильно изобразить
    select COLUMNS('data') APPLY( countIf(data > 0)) ?
    Если sum то работает олично. суммирует значение в ячейке для каждой колонки. А мне надо тупо +1 если не ноль в колонке.
  • https://t.me/clickhouse_ru
    Хз как диагностировать) Проблема есть если вставлять через кх клиент?
  • https://t.me/clickhouse_ru
    @solard ↶ Reply to #297148 #297149 02:19 PM, 03 Nov 2022
    jdbc драйвер для клика используется
  • https://t.me/clickhouse_ru
    @solard #297150 02:19 PM, 03 Nov 2022
    Вот интересно услышать варианты как бы это подебажить
  • https://t.me/clickhouse_ru
    Ну сначала проверить есть ли проблема с теми же данными через кх клиент
  • https://t.me/clickhouse_ru
    @Sablast #297152 02:21 PM, 03 Nov 2022
    Ну и заодно вставить в обычную таблицу с движком МТ или лог на одном шарде и посмотреть будут ли в ней дубли
  • APPLY(x -> countIf(x >0))
  • https://t.me/clickhouse_ru
    у меня 50 колонок начинающихся со слов data
    в этом весь прикол )
  • Так а оно же для каждой колонки сделает apply и правильно посчитает
  • https://t.me/clickhouse_ru
    спасибо огромное! выручил очень )
  • https://t.me/clickhouse_ru
    @timofei_melnikov #297157 03:41 PM, 03 Nov 2022
    Подскажите пожалуйста как в CH можно оптимизировать многократное использование повторяющегося подзапроса?
    Я 6 раз использую …where id in (select distinct id)…
    Например в Oracle можно было сделать with(+ materialized)
  • https://t.me/clickhouse_ru
    Можно попробовать запихать его в скаляр, скаляры кешируются
  • https://t.me/clickhouse_ru
    Это как? Я просто в CH совсем новичок
  • https://t.me/clickhouse_ru
    WITH (SELECT groupUniqArray(id) FROM ...) as arr

    SELECT * FROM WHERE id IN (SELECT arrayJoin(arr))
  • https://t.me/clickhouse_ru
    @timofei_melnikov #297161 03:46 PM, 03 Nov 2022
    Спасибо)
  • @7699150 #297162 03:49 PM, 03 Nov 2022
    Всем привет!
    Подскажите пожалуйста, можно ли как-то креды к MySQL-engine таблице вынести куда-то в конфигурационный файл и не светить ими create_table_query?
  • https://t.me/clickhouse_ru
    named collections
  • Спасибо большое
  • @635404397 #297166 04:32 PM, 03 Nov 2022
    Вопрос про бэкапы, возможно так и должно быть, но выглядит странно
    выполнил BACKUP TABLE TO S3('...') данные на s3 записало, но .backup файл не появился, хотя прошло уже два часа с момента как в логе появилось "Finalizing backup S3('...')"
    это нормально? можно как-то посмотреть, оно живое или где-то умерло на этапе записи метаданных? бэкапе 273945 файлов на s3 получилось. в логе ничего больше про backup нет, ошибок нет
    в system.backups

    id: 08d7757b-4185-4e93-88f8-674c296e8211
    name: S3('...')
    status: CREATING_BACKUP
    num_files: 0
    uncompressed_size: 0
    compressed_size: 0
    error:
    start_time: 2022-11-03 06:05:40
    end_time: 1970-01-01 00:00:00

    куда посмотреть живое оно или нет?
  • @anttoon #297167 04:43 PM, 03 Nov 2022
    кейс такой
    созадю юзера через sql
    даю ему право dictGet на dicts.*
    и он начинает видеть SHOW CREATE DICTIONARY dicts…;

    а там пароли к базам источникам

    Как такое решаете ?
  • https://t.me/clickhouse_ru
    named collections
  • спасибо 🙏
    но задавать параметры можно только через xml ?
    мне бы как-то через SQL - на yandex.cloud ClickHouse
  • https://t.me/clickhouse_ru
    Только xml.

    Можете попробовать потыкать поддержку облака, вдруг зальют ваш XML, но хз.
  • https://t.me/clickhouse_ru
    Можете еще сделать VIEW в другой БД и натравить ваш словарь уже на это VIEW
  • понял, спасибо
  • https://t.me/clickhouse_ru
    @vendelev #297173 05:04 PM, 03 Nov 2022
    Коллеги, добрый вечер.

    У CH есть возможность анализировать запросы "explain estimate".
    Но такая конструкция не работает, если запрос написан на distributed таблицах.

    Может есть какая-то инструкция, чтобы explain работал и с distributed таблицами?
  • @rusystem #297175 06:45 PM, 03 Nov 2022
    Ребята привет! Подскажите есть ли какие новости по поводу инсертов в КХ? Так же киттенхаус или булк юзать?
  • @635404397 #297176 06:45 PM, 03 Nov 2022
    отвечу сам себе. прошло еще 3 часа, .backup файл появился. зато теперь restore на другию машину восстанавливается аж со скорость 3mbit/sec
  • https://t.me/clickhouse_ru
    @ikeniborn #297177 07:17 PM, 03 Nov 2022
    Добрый, как опитимзировать запрос with. Несколько позапросов забивают всю оперативку в процессе просчетов. Я уже раздробил на несколько стедж таблиц, но все равно не хватает. Делил по справочнику. Т.е. у меня 10000 позиций я поделил по 1000 и все равно не хватает.
  • https://t.me/clickhouse_ru
    @ikeniborn #297178 07:19 PM, 03 Nov 2022
    На всех кусках
    Memory limit (total) exceeded: would use 65.77 GiB (attempt to allocate chunk of 8589836288 bytes), maximum: 56.54 GiB. (MEMORY_LIMIT_EXCEEDED) (version 22.4.5.9 (official build))
  • https://t.me/clickhouse_ru
    @MakeReady #297179 08:03 PM, 03 Nov 2022
    Добрый вечер! Если массив с датами прилетает в таком виде с этим можно что-то сделать при вставке
    [\'2022-09-14 23:48:48\',\'2022-09-14 23:51:15\']
  • https://t.me/clickhouse_ru
    @MakeReady #297180 08:06 PM, 03 Nov 2022
    или только реплейс?
  • @716762776 #297181 08:07 PM, 03 Nov 2022
    Коллллеги, просветите или дайте что то почитать.
    Есть у меня в некот. таблицах секция SAMPLE BY
    примерно такого видаENGINE = ReplacingMergeTree(Changed)
    PARTITION BY toYYYYMM(toDate(DayDate - 25567))
    PRIMARY KEY Id
    ORDER BY (Id,
    DayDate)
    SAMPLE BY Id
    SETTINGS index_granularity = 8192;

    Сделано это было до меня и я не понимаю какую роль здесь играет SAMPLE BY Id.
    Доку я конечно же читал, но, как часто бывает в связке Я+дока кликхауза, сути я так и не понял.
    спасибо
  • https://t.me/clickhouse_ru
    @ikeniborn #297182 08:08 PM, 03 Nov 2022
    SAMPLE BY Id позволяет выбрать часть дданных, а поттом умнощить на коэф. сэмплирования чтобы получить результат. Это сделано для того чтобы быстрее и меньше читать
  • @716762776 #297183 08:10 PM, 03 Nov 2022
    это наваерное про SAMPLE BY в select, а меня интересует create table
  • https://t.me/clickhouse_ru
    @ikeniborn #297184 08:11 PM, 03 Nov 2022
    Ну чтобы юзать в select, надо его в таблице определить
  • @716762776 #297185 09:19 PM, 03 Nov 2022
    в чем может быть причина когда клика не мержит записи
    например
    ENGINE = ReplacingMergeTree(Changed)
    PARTITION BY toYYYYMM(toDate(DayDate - 25567))
    PRIMARY KEY Id
    ORDER BY (Id,
    DayDate)
    SAMPLE BY Id
    SETTINGS index_granularity = 8192;
    и при этом
  • @716762776 #297186 09:21 PM, 03 Nov 2022
    у записей одинаковое значений полей из order by и они в одном партишине
    конечно , в табл. есть еще и другие поля, но это же не должно влиять ?
  • @716762776 #297187 09:23 PM, 03 Nov 2022
    скорее всего optimize их схлопнет, но почему это не происходит в штатном режиме ?
  • нет никаких гарантий что КХ схлопнет данные. Может решить что не оптимально выполнять мердж данных и у вас будут дубли
  • Denny [Altinity] in ClickHouse не тормозит

    нет, нету никакого дерева. Просто КХ пытается делать как можно меньше мержей и при этом чтобы кол-во партов в партиции было не очень большим, там хитрая формула с кучей параметров, с экспонентами и учетом загрузки пула мержей. Т.е. если вы постоянно вставляете в таблицу A то она мержится, при этом в таблице B мержей не будет если вы туда не делаете инсертов, хотя там скажем 50 партов в партиции. И зачем-то мержер планирует в мерж парты примерно одинакового размера, зачем?, никто уже не знает, и при этом парты должны мержится в строгом порядке, чтобы не ломать логику replacing, collapsing.

  • @716762776 #297190 09:27 PM, 03 Nov 2022
    я думал что клика сама выбирает для схлопывания, но так чтоб вообще никогда ???
    т.е. хочу схлопну , не захочу не схлопну ? как то так ?
  • @716762776 #297191 09:28 PM, 03 Nov 2022
    это пример с тест. базы которая совсем не загружена - времени для мержей у клики валом
  • вы обязаны писать запросы на чтение с учётом того что у вас есть дубли. Смержит или нет - вы не знаете
  • для теста запустите optimize, чтобы удостовериться что дублей не будет и вы правильно вставили данные и настроили всё
  • @716762776 #297194 09:35 PM, 03 Nov 2022
    т.е. лепить кругом final (что в больш. случаев и есть) или какие то варианты с group by, order by+limit 1 и.т.д. ?

    но ведь тогда final совершает в данный момент много лишней работы кот. клика могла бы сделать "по-свободе"
  • https://t.me/clickhouse_ru
    @lgtwb ↶ Reply to #297194 #297195 09:35 PM, 03 Nov 2022
    Зато не тормозит
  • https://t.me/clickhouse_ru
    @lgtwb #297196 09:35 PM, 03 Nov 2022
  • @716762776 #297197 09:36 PM, 03 Nov 2022
    так в том и дело что final тормозит причем нехило ((
  • https://t.me/clickhouse_ru
    @lgtwb #297198 09:37 PM, 03 Nov 2022
    Вообще вот эта тема с схлопыванием асинхронным которое происходит не всегда меня жутко напрягает
  • @716762776 #297199 09:37 PM, 03 Nov 2022
    нафига нужет механизм который совершенно не прогнозируем ?
  • https://t.me/clickhouse_ru
    @barsukov_vv #297200 09:39 PM, 03 Nov 2022
    практика показала, что если требуется гарантия удаление дублей, значит что то делаешь не правильно изначально. финал нужно юзать только если в историческиз данных что то исправить надо
  • @716762776 #297201 09:43 PM, 03 Nov 2022
    то что наша задача "не под клику" я понял давно.
    но все равно это очень странная логика хочу делаю/ хочу не делаю.
  • https://t.me/clickhouse_ru
    @barsukov_vv #297202 09:43 PM, 03 Nov 2022
    ничего странного, все как в жизни
  • https://t.me/clickhouse_ru
    Надо просто уметь его готовить.
  • https://t.me/clickhouse_ru
    @barsukov_vv #297204 09:44 PM, 03 Nov 2022
    я у себя такие данные сначала коллекчу в постгрес, потом мержу как мне надо и пачкой отправляю в клик уже готовыми
  • есть какаято настройка
    fast_merge=true ? )
  • https://t.me/clickhouse_ru
    Есть понимание того, как работают мержи, FINAL и особенности данных и их вставки в базу.
  • https://t.me/clickhouse_ru
    @lgtwb #297207 09:54 PM, 03 Nov 2022
    Ну то есть деву нет варика это пользовать пока не станет DBA?
  • @716762776 #297208 09:55 PM, 03 Nov 2022
    у меня было понимание что мержи работают по order by, выполняются в фоне и не сразу.
  • https://t.me/clickhouse_ru
    Ну почему, множество людей начинают пользоваться кх без всяких ДБА со знанием.
    Порог входа довольно низкий.

    Плюс можно обратиться к нам в altinity.com например, мы можем проконсультировать
  • https://t.me/clickhouse_ru
    @lgtwb #297210 09:57 PM, 03 Nov 2022
    У нас не такие объемы, но спасибо. Как бы перед выбором инструмента мы изучали документацию, и как-то в документации все было намного лучше
  • https://t.me/clickhouse_ru
    Ну а кб нашу смотрели?

    kb.altinity.com?
  • https://t.me/clickhouse_ru
    @lgtwb #297212 09:58 PM, 03 Nov 2022
    Разве что в процессе гугленья
  • https://t.me/clickhouse_ru
    @lgtwb #297213 09:58 PM, 03 Nov 2022
    я смотрел офдоку в основном
  • https://t.me/clickhouse_ru
    Ну опенсорс, документация долгое время писалась во многом разрабами и в основном в добровольно-принудительном порядке.
  • https://t.me/clickhouse_ru
    а у вас получается просто в принудительном? )
  • https://t.me/clickhouse_ru
    Нас скорее принуждает нежелание писать одно и тоже много раз)
    Проще в ссылку ткнуть
  • Да, суть в том что Replacing просто помогает вам сэкономить место, а не убирать дубли)

    почитайте про optimize final + do_not_merge_across_partitions_select_final

    https://kb.altinity.com/altinity-kb-queries-and-syntax/altinity-kb-final-clause-speed/
    https://kb.altinity.com/engines/mergetree-table-engine-family/replacingmergetree/
  • @716762776 #297218 10:10 PM, 03 Nov 2022
    теперь почитал, спасибо
    но в офф. доке гдето было написано что мержи выполняются в среднем через 15 мин, а про NEVER только у вас ))
    в общем, дока вводит в заблуждение, хотя, как говорится, легко обмануть того кто хочет быть обманутым )
  • https://t.me/clickhouse_ru
    @lgtwb ↶ Reply to #297214 #297219 10:12 PM, 03 Nov 2022
    Почитаю вашу, спасибо.
  • https://t.me/clickhouse_ru
    На самом деле щас довольно много компаний/людей занимаются улучшением UX в контексте использования ReplacingMergeTree (мы в том числе, например делаем sink коннектор для репликации из mysql в кх с помощью Debezium) Так что возможно частично ваша боль будет поправлена в ближайшем будущем.

    Например вот небезынтересный коммент к PR
    https://github.com/ClickHouse/ClickHouse/pull/41005#issuecomment-1300624243
    [RFC] Replacing merge tree new engine by youennL-cs · Pull Request #41005 · ClickHouse/ClickHouse

    Changelog category (leave one): New Feature Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md): Enrichment of the existing ReplacingMergeTree engine to a...

  • @716762776 #297221 10:18 PM, 03 Nov 2022
    спасиб
  • @716762776 #297222 10:22 PM, 03 Nov 2022
    а вообще, final на свежесмерженой таблице (условно когда схлопывать будет нечего) будет отрабатывать быстрее или final в любом случае займет какоето время независимо от наличия или отсутствия дублей ?
  • а как он узнает, что мержить нечего, пока не сравнит значения sorting key?🤔
  • @716762776 #297224 10:30 PM, 03 Nov 2022
    Ну в system.parts видно
  • https://t.me/clickhouse_ru
    Ну например, если включит настройку не мержить между партициями, и у вас в партиции только 1 парт
  • и в нем дубликаты, потому что это была одна вставка
    хотя если level > 0, то можно и пропустить
  • https://t.me/clickhouse_ru
    Щас под дефолту кх делает мерж optimize_on_insert настройка
  • и ее можно включать / отключать сколько угодно
    или на уровне парта хранится, какая была настройка в момент вставки?
  • https://t.me/clickhouse_ru
    Ну если отключите ССЗБ
  • https://t.me/clickhouse_ru
    @unamedrus #297230 10:34 PM, 03 Nov 2022
    Вы ведь таким образом можете и просто сделать ATTACH PART FROM TABLE
  • забавно, Denny писал тут прямо обратное
  • @716762776 #297232 10:37 PM, 03 Nov 2022
    А как вообще дубли оказываются в одном парте?
    Их же там не должно быть в принципе
  • https://t.me/clickhouse_ru
    В одном инсерте могут быть
  • https://t.me/clickhouse_ru
    https://github.com/ClickHouse/ClickHouse/pull/19375/files#diff-a2e0909d75f772d3b9b704923917d686f10aa2167547e7ce8c5cec5f54c11f5dR1392

    Ну вообще тут кстати стоит данное ограничение, хотя с учетом optimize_on_insert оно не так критично
    Improve do_not_merge_across_partitions_select_final optimization. by Avogar · Pull Request #19375 · ClickHouse/ClickHouse

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

  • https://t.me/clickhouse_ru
    Я писал не в этом контексте. На самом деле это сто раз уже тут обсуждали, если в партиции один парт и его level >0 то final как бы можно не делать. Но разработчики кх думают что это плохая идея. Я так понимаю что на том уровне абстракции невозможно это понять.
  • сорри, значит я не так понял
  • https://t.me/clickhouse_ru
    Мы в Альтинити предлагаем выключать эту настройку потому что инсерты намного медленнее работают.

    В любом случае фичи с автоматическим выключением final нет и не планируется.
  • Ну да, не подумал.
  • https://t.me/clickhouse_ru
    @den_crane #297239 10:44 PM, 03 Nov 2022
    Особенно смешно получается в мат.вью - сделали group by, и теперь затормозим инсерт чтобы помержить то что только что помержили в groupby
  • спасибо за инфу!
  • https://t.me/clickhouse_ru
    Хм, можно ли в определение MAT VIEW дописать эту настройку и сработает ли она так тогда
  • https://t.me/clickhouse_ru
    Нельзя. Кажется Алексей хотел на уровне кода выключать для случая мат.вью, но так и не сделали.

    Я вообще не видел чтобы эта штука помогала. Это ж сколько дубликатов надо в инсерте послать? Типа заинсертить 100% дублей?
  • https://t.me/clickhouse_ru
    > Нельзя. Кажется Алексей хотел на уровне кода выключать для случая мат.вью, но так и не сделали.

    Мне кажется на эту тему даже issue нет
  • https://t.me/clickhouse_ru
    optimize_on_insert should be disabled by default · Issue #25724 · ClickHouse/ClickHouse

    optimize_on_insert=1 \ insert Elapsed: 14.278 sec. optimize_on_insert=0 \ insert Elapsed: 5.833 sec. create table SMT(A Int64, B Int64, C Int64, D Int64, E Int64, F Int64) Engine=SummingMergeTree o...

  • 04 November 2022 (80 messages)
  • @1816315699 #297245 12:28 AM, 04 Nov 2022
    Мы знаем, что ch нуждается в перезаписи на SQL после обновления удаления, чтобы получить правильные данные, и можно спросить, почему вместо того, чтобы прочитать данные на нижнем двигателях, он передал их SQL для отображения обработки?
  • https://t.me/clickhouse_ru
    @burov4j #297249 06:16 AM, 04 Nov 2022
    Всем привет!
    Подскажите, после обновления кликхауса до версии 21.8.15.7 в одной из таблиц начала теряться часть данных за предыдущие два дня. Причём за сегодняшний день они не теряются, но как только наступает следующий день, то за прошедший данные по немногу на разных шардах начинают исчезать. До обновления всё работало отлично. Если данные восстановить, то они через 10-20 минут опять пропадают.
  • Может быть вы Федора? Хотя данные конечно не посуда, но тоже любят чистоту
  • https://t.me/clickhouse_ru
    @burov4j #297251 06:19 AM, 04 Nov 2022
    Мне уже не особо смешно. )
  • https://t.me/clickhouse_ru
    У вас ттл есть ?
  • https://t.me/clickhouse_ru
    @konnectrl #297253 06:24 AM, 04 Nov 2022
    Какой движок у таблицы
  • @Wsoradazunala #297254 06:30 AM, 04 Nov 2022
    Ищите ТТЛ) не надо смеятся
  • https://t.me/clickhouse_ru
    @burov4j #297255 06:31 AM, 04 Nov 2022
    TTL нету
  • https://t.me/clickhouse_ru
    @burov4j #297256 06:32 AM, 04 Nov 2022
    Движок ReplicatedSummingMergeTree. Отрицательные числа туда не попадают, так что значения могут только увеличиваться. И повторю: до обновления проблем не было
  • значение rows в system.parts тоже меняется для активных партов этих дней?
  • https://t.me/clickhouse_ru
    @burov4j #297258 06:34 AM, 04 Nov 2022
    Не смотрел туда, проверю
  • @HuseynAhmadli #297260 06:55 AM, 04 Nov 2022
    Добрый день пожалуйста кто-нибудь может помочь тут что нужно делать.

    Периодически (раз в 1-2 суток) появляются бесконечные записи в логи подобные этой:

    2022.11.04 10:41:18.947879 [ 487729 ] {} <Error> void DB::MergeTreeBackgroundExecutor<DB::MergeMutateRuntimeQueue>::routine(DB::TaskRuntimeDataPtr) [Queue = DB::MergeMutateRuntimeQueue]: Code: 241. DB::Exception: Memory limit (total) exce
    eded: would use 67.42 TiB (attempt to allocate chunk of 4357136 bytes), maximum: 64.00 GiB. (MEMORY_LIMIT_EXCEEDED), Stack trace (when copying this message, always include the lines below):
  • @HuseynAhmadli #297261 07:14 AM, 04 Nov 2022
    Зачем ему 67 TB памяти вдруг? Уже поднял с 16 до 32 и с 32 до 64 - безрезультатно. Есть вариант поставить 0 - без лимита, но как-то стремно с такими безумными запросами))
    И CH входит в бесконечный busy loop пожирая 100% cpu.
    При чем как я понимаю сейчас он нигде там не используется пока.
  • https://t.me/clickhouse_ru
    Смотрите фоновые процессы - мержи (select * from system.merges ), мутации (select * from system.mutations where not is_done ) - что то кушает неслабо.
  • @asamofal #297263 07:37 AM, 04 Nov 2022
    Подскажите, пожалуйста, allow_experimental_object_type эта настройка (для работы с JSON колонками) уровня сессии? Нет возможности ее в конфиг добавить, например?
  • https://t.me/clickhouse_ru
    Версия кх? 22.4?
  • 22.1.3.7
  • https://t.me/clickhouse_ru
    В смысле в портах? Типа freebsd?
  • https://t.me/clickhouse_ru
    @nike_ilin #297268 08:07 AM, 04 Nov 2022
    Никто не знает, как побороть проблему с тем, что последовательные HTTP запросы из одной сессии кидают “Session is locked”?

    Вот нашёл такой issue https://github.com/ClickHouse/ClickHouse/issues/4003

    Но как будто он не до конца пофикшен
    Sequential HTTP requests can lead to "Session is locked" error · Issue #4003 · ClickHouse/ClickHouse

    Hi, I'm getting a (373) DB::Exception: Session is locked by a concurrent client. error sometimes upon executing two sequential HTTP requests with the same session_id. Below you can see an e...

  • даа, так точно
  • https://t.me/clickhouse_ru
    Можете в user. xml прописать
  • <clickhouse>
    <users>
    <default>
    <allow_experimental_object_type>1</allow_experimental_object_type>
    </default>
    </users>
    </clickhouse>
    Так должно сработать?
  • У вас есть предложение о том, как решить проблему? 🙁
  • https://t.me/clickhouse_ru
    не пользоваться freebsd (я серьезно)
  • https://t.me/clickhouse_ru
    @hostadminonline #297275 08:46 AM, 04 Nov 2022
    Всем привет
    подскажите плз, вот у меня есть таблица с логом сервиса в виде CSV
    можно ли как-то средствам КХ разгребать этот CSV текст в отдельную таблицу чтобы данные были по столбцам .... и так чтобы это не VIEW таблица была, а самостоятельная таблица чтобы можно было нормально индексы использовать ?
  • Причину можно узнать? ( а что посоветуете взамен?
  • https://t.me/clickhouse_ru
    КХ freebsd билд не тестируется и никем не используется и там вечные проблемы с памятью.

    взамен? использовать КХ под линуксом (ubuntu) и только с самыми свежими ядрами.
  • https://t.me/clickhouse_ru
    КХ не умеет автоматически загружать данные из файлов.
    Используйте vector.dev -- это очень быстрая прога, отдельный бинарник, и он умеет читать логи (файлы) , понимает ротацию, умеет буферизовать запись в КХ, очень просто конфигурится

    https://vector.dev/
    Link

    A lightweight, ultra-fast tool for building observability pipelines

  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    не тут вопрос не в загрузке из файлов .... у меня в КХ в строке тест в формате CSV ну типа "112312", "234234", "2345234"
    мне нужно создать паралельно таблицу где эти данные будут по столбцам ...
    Первая идея была сделать скрипт по крону который бы читал новые данные и пихал бы их в отдельную таблицу, но хочется чтобы не было лишнего и был бы онлайн режим
  • Ну пишите сразу в нормальном формате, зачем хранить csv строку в колоночной базе?
  • https://t.me/clickhouse_ru
    КХ умеет выводить типы и названия столбцов из CSV
    вы хотите чтобы каждый файл был в отдельной таблице? (структура у файлов одинаковая?)
  • FileLog engine никто не юзает?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @ziggerzz #297287 10:02 AM, 04 Nov 2022
    Если я потерял пароль от юзера default, можно новый указать в user.xml, так?
  • @3334085 #297289 10:05 AM, 04 Nov 2022
    Господа, привет, а Clickhouse не умеет креденшиалсы от S3 получать по взрослому внутри K8S? https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts-minimum-sdk.html ?
    Using a supported AWS SDK - Amazon EKS

    The containers in your pods must use an AWS SDK version that supports assuming an IAM role through an OpenID Connect web identity token file. AWS SDKs that are included in Linux distribution package managers might not be new enough to support this feature. Be sure to use the following versions, or later, for your SDK:

  • @3334085 #297290 10:06 AM, 04 Nov 2022
    т.е идея деплоить CH в кубер в качестве бэка - S3 и что бы не хранить секреты и не обмениваться имим руками....
  • https://t.me/clickhouse_ru
    Через IAM роль умеет

    use_environment_credentials
  • а есть инфа что для этого нужно включить в конфиге?
  • @3334085 #297293 10:07 AM, 04 Nov 2022
    я вот в этот мануал смотрел https://clickhouse.com/docs/en/guides/sre/configuring-s3-for-clickhouse-use/ но не нашел
    Use S3 Object Storage as a ClickHouse disk | ClickHouse Docs

    Configure AWS IAM user, create an S3 bucket, and use that bucket as a ClickHouse disk.

  • https://t.me/clickhouse_ru
    MergeTree | ClickHouse Docs

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

  • Благодарю, получается что нужно будет указать только endpoint до бакета а сикрет CH уже подтянет из env. переменных?
  • https://t.me/clickhouse_ru
    И надо задать use_environment_credentials
  • @3334085 #297297 10:12 AM, 04 Nov 2022
    Спасибо!
  • https://t.me/clickhouse_ru
    да нету у меня файлов )))
    у меня есть таблица в столбце типа Text хранятся данные в виде "sdfsdfsd", "sdfsdfsdf", "sdfsdfsdf"
    кол-во столбцов одинаовое
    мне нужно создать таблицу отдельную куда должны писаться эти данные в отдельные 3 столбца
  • https://t.me/clickhouse_ru
    @hostadminonline #297299 10:25 AM, 04 Nov 2022
    т.е. по сути мне нужно смапить как-то по regex или еще как-то данные в отдельные столбцы и сделать так чтобы КХ это делал сам по мере поступления данных в исходную таблицу
  • https://t.me/clickhouse_ru
    @hostadminonline #297300 10:28 AM, 04 Nov 2022
    на сколько я понимаю это материализованное представление ....
  • https://t.me/clickhouse_ru
    да, до удаления данных был 1 активный кусок с 15892 строками, а после удаления остался тоже один кусок с 8192 строками. Странно четкое число
  • @iKorchagin #297302 11:14 AM, 04 Nov 2022
    Привет! Подскажите, пожалуйста, можно ли вставить через HTTP данные в tsv, при этом статично определив для каждого запроса значение отсутствующей колонки (без добавления в сами данные)?
  • https://t.me/clickhouse_ru
    @kobzevvv #297303 11:54 AM, 04 Nov 2022
    Ребята из команды клика! вы бест. облачная версия клика просто спасает:) теперь удобно кандидатам в инженеры давать тестовые просто пипец кайф
  • https://t.me/clickhouse_ru
    Это о какой фиче речь? И таймстампы автоматом распарсит?
  • В чем прикол? Не догоняю
  • https://t.me/clickhouse_ru
    Видимо телега лаганула 😳😅
  • Можно ли ее в конфиг положить?
  • Вот так не подхватывается.
  • https://t.me/clickhouse_ru
    @krivdathetriewe #297313 01:20 PM, 04 Nov 2022
    а делал кто декларативный сервис управлением политик доступа? Чтобы чисто ямлик описал и оно его применяло
  • https://t.me/clickhouse_ru
    Так кажется, что нормально не файлики писать, а сикуле-команды слать. По крайней мере, так в остальных бд )
  • https://t.me/clickhouse_ru
    ну декларативно хочется типа
  • https://t.me/clickhouse_ru
    Возьми в руку питон (он круто yaml парсит), и три часа времени )
  • https://t.me/clickhouse_ru
    @krivdathetriewe #297319 01:33 PM, 04 Nov 2022
    ГОТОВОЕ хочется
  • @softbot_xxl #297320 01:36 PM, 04 Nov 2022
    Подайте плиз идею, на лету меняем имена колонок с таблице (для апгрейда кх), нужно составить выражение для SELECT, чтобы умело работать и со старым именем, и с новым. В таблице будет или старое, или новое. Версия 21.3.

    Что пришло в голову, вместо

    old_array_values[indexOf(old_array_names, field_name)]

    делать

    arrayConcat(COLUMNS(‘old_array_values’), COLUMNS(‘new_array_values’))[indexOf(arrayConcat(COLUMNS(‘old_array_names’), COLUMNS(‘new’_array_names)), ‘field_name’)]

    Но есть ли другие варианты?
  • https://t.me/clickhouse_ru
    Декларативное в ямлике не помню, но был доклад у Deutsche Bank, как они делали сервис, что им abac реализовал
  • @bonelli44 #297322 02:36 PM, 04 Nov 2022
    Нy чтo, пoлeтeли?

    В нaличиe ocобыe, нeблoкиpyeмыe Google aккayнты!

    Oткpывaeтe aкк и cхoдy зaливaeтe тpаф на любyю вepтикaль, вce acпeкты нacтpoeны пpeдвapитeльнo.

    Этo ТOП aккayнты oт БЦ (МCC)

    1) Oплaтa в usdt
    2) 15% кoмиccия oт пoпoлнeния
    3) Минимальнaя cyммa попoлнeния 500$
  • https://t.me/clickhouse_ru
    @lgtwb ↶ Reply to #297322 #297323 02:40 PM, 04 Nov 2022
    Ого скам
  • @3334085 #297329 05:25 PM, 04 Nov 2022
    интересно а из-за чего в родном докер контейнере логирование выведено в файл а не в stdout/stderr?
  • https://t.me/clickhouse_ru
    input | ClickHouse Docs

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

  • https://t.me/clickhouse_ru
    sudo echo '"sdfsdfsd", "sdfsdfsdf", "sdfsdfsdf"' > /var/lib/clickhouse/user_files/file.csv

    select * from file('file.csv');
    ┌─c1───────┬─c2────────┬─c3────────┐
    │ sdfsdfsd │ sdfsdfsdf │ sdfsdfsdf │
    └──────────┴───────────┴───────────┘

    create table A Engine Memory as select * from file('file.csv');
    select * from A;
    ┌─c1───────┬─c2────────┬─c3────────┐
    │ sdfsdfsd │ sdfsdfsdf │ sdfsdfsdf │
    └──────────┴───────────┴───────────┘
  • https://t.me/clickhouse_ru
    в profile секции

    cat /etc/clickhouse-server/users.d/allow_experimental_object_type.xml
    <?xml version="1.0" ?>
    <clickhouse>
    <profiles>
    <default>
    <allow_experimental_object_type>1</allow_experimental_object_type>
    </default>
    </profiles>
    </clickhouse>
  • Спасибо! В понедельник попробую..
  • https://t.me/clickhouse_ru
    А * :) почему не подходит?
  • Я уже додумался, что наверное arrayConcat не нужен, но просто ищу новые идеи и подходы.
  • @a1ex_pol #297337 07:22 PM, 04 Nov 2022
    Добрый вечер. Столкнулся с проблемой после ввода двух новых нод в кластер.
    На одной из нод регулярно возникает ошибка о том, что таблица в ридонли, хотя при селекте из system.metrics metric="ReadonlyReplica" пусто, подскажите, пожалуйста, куда можно ещё глянуть по проблеме.
  • https://t.me/clickhouse_ru
    select * from system.replica where is_readonly format Vertical

    там смотри поле zookeeper_exception

    ну и в логе КХ ретроспективно все есть

    /var/log/clickhouse-server/clickhouse-server.err.log
    /var/log/clickhouse-server/clickhouse-server.log
  • Спасибо. Помогло пересоздание таблиц. Судя по логам - спустя неоторое время произошла активация таблиц.

    Подскажите, пожалуйста, почему после перезапуска кх таблицы переходят в ридонли?
  • @5693092811 #297340 07:58 PM, 04 Nov 2022
    😱Барыга перестал отвечать на звонки?
    👍GREEN ROOM Всегда онлайн

    МЕГА АКЦИЯ В🍀 GREEN ROOM RBOT

    ❤️‍🔥Прямо сейчас стартует АКЦИЯ ❤️‍🔥

    При пополнении кошелька бота на сумму от:
    🔥2000₽ получает бонус 1000 ₽.
    🔥4000₽ получает бонус 2500 ₽.
    🔥6000₽ получает бонус 4500 ₽.

    -У нас только наход
    -Только лучшее качество
    -Лучшие цены
    -Моментальная круглосуточная поддержка
    -Огромный выбор товара
    -Мы лучшие на рынке

    🍀 GREEN 🍀
    🍀 GREEN 🍀
    🍀 GREEN 🍀
  • https://t.me/clickhouse_ru
    @kobzevvv #297341 09:51 PM, 04 Nov 2022
    а что значит limir 1,2 by id
  • https://t.me/clickhouse_ru
    @kobzevvv #297342 09:51 PM, 04 Nov 2022
    никогда такого синтаксиса не видел. https://clickhouse.com/docs/en/sql-reference/statements/select/limit-by/
    LIMIT BY Clause | ClickHouse Docs

    A query with the LIMIT n BY expressions clause selects the first n rows for each distinct value of expressions. The key for LIMIT BY can contain any number of expressions.

  • Это значит выбрать для каждого уникального id вторую и третью строку, где он встречается.
  • https://t.me/clickhouse_ru
    Ничего себе
  • @andrew_zol #297348 10:44 PM, 04 Nov 2022
    офигеть, не знал про эту фичу, спасибо
  • 05 November 2022 (51 messages)
  • https://t.me/clickhouse_ru
    @j7upzz #297351 03:52 AM, 05 Nov 2022
    всем привет! я знаю, что кликхаус это не про обновление
    но есть задача - вставить новую колонку, сделать расчеты значений из других колонок и забить эти данные в новую колонку. в таблице 220 млн строк
    и периодически будет нужда вставлять новые колонки

    можете подсказать решение? я пока вижу только создание новых таблиц вместо колонок
  • https://t.me/clickhouse_ru
    Что значит просчет? можно типа рассчитать из зпачений других колонок в каждй строке?
  • https://t.me/clickhouse_ru
    @j7upzz ↶ Reply to #297352 #297353 03:58 AM, 05 Nov 2022
    да, все верно. надо произвести расчеты из других колонок и результат забить в новую
  • https://t.me/clickhouse_ru
    Ну так создавайте новую колонку с дефаулт
    Alter table t add column new Int64 default old1*2+old2
  • https://t.me/clickhouse_ru
    @j7upzz #297355 04:01 AM, 05 Nov 2022
    там сложные расчеты индикаторов для трейдинга. их вряд ли получится посчитать таким способом :(
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @den_crane #297357 04:03 AM, 05 Nov 2022
    В общем-то можно сделать словарь с source executable и считать кодом на чем угодно
  • https://t.me/clickhouse_ru
    @j7upzz #297358 04:13 AM, 05 Nov 2022
    спасибо, сейчас гляну эту фичу
  • Раз зашла речь о словарях - я так и не нашел способа сделать "виртуальный" словарь с источником данных одним из CTE в том же запросе. Чтобы обойти ограничения на создание словарей.

    Такое в принципе возможно ?
  • Хочется реализовать хоть так иерархические запросы
  • https://t.me/clickhouse_ru
    @zholmyrza_t #297361 05:57 AM, 05 Nov 2022
    Всем привет! Подскажите пожалуйста, есть ли у КХ, что нибудь на подобии Hardening
  • @ivanio11 #297362 09:15 AM, 05 Nov 2022
    Всем привет , а подскажите плиз есть ли песочница типа sqlfiddle , где был бы кликхаус поднятый , не могу найти чёт
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @enclaved #297367 11:10 AM, 05 Nov 2022
    добрый день! господа, помогите разобраться с тремя связанными вопросами:

    1. повесил на обычную MT-таблицу TTL, в списке мутаций появилась MATERIALIZE TTL, которая подозрительно долго работала, забивая все ядра на 100%. при этом аналогичный по сути запрос ALTER TABLE t DELETE WHERE timestamp < now() - INTERVAL отрабатывает в десятки, если не сотни раз быстрее. почему так?

    2. после завершения этой мутации SELECT min(timestamp) FROM t выдает нулевое время 1970-01-01 00:00:00 - но записей с такой временной меткой в таблице нет и быть не могло. как такое возможно, это же баг?

    3. после добавления TTL таблицы элементарный запрос SELECT timestamp FROM t ORDER BY timestamp LIMIT 1 явно приводит к линейному чтению всей таблицы и занимает минуты, когда раньше отрабатывал мгновенно. опять же, почему так, разве таблицы MT не проиндексированы по времени тем или иным образом?

    спасибо!
  • @DXYpT #297368 11:28 AM, 05 Nov 2022
    Привет. Имеется кластер, в нём 2 шарда, в каждом по 2 реплики (в итоге 4 ноды). Создаю replicated таблицу events_local в кластере, а затем distributed таблицу events_distributed тоже в кластере. Это нормально, что в distributed таблицах данных дублированы?
    CREATE TABLE default.events_local ON CLUSTER mycluster
    (
    `event_type` UInt32,
    `date` Date
    )
    ENGINE = ReplicatedMergeTree('/clickhouse/{cluster}/tables/events_local', '{replica}')
    PARTITION BY date
    ORDER BY event_type

    CREATE TABLE default.events_distributed ON CLUSTER mycluster
    (
    `event_type` UInt32,
    `date` Date
    )
    ENGINE = Distributed('{cluster}', 'default', 'events_local', rand())
  • https://t.me/clickhouse_ru
    В смысле задублированы?
    У вас половина данных на одном шарде, а вторая половина на другом. Когда вы обращаетесь к локал таблице то видите только 50% данных, а дистриб ходит в оба шарда и возвращает 100%
  • https://t.me/clickhouse_ru
    Без DDL тут гадать можно долго
  • https://t.me/clickhouse_ru
    create table или что-то еще?
  • https://t.me/clickhouse_ru
    Да
  • @DXYpT ↶ Reply to #297370 #297375 12:04 PM, 05 Nov 2022
    Делал insert в replicated таблицу, 2 элемента. В replicated таблицах по 2 элемента, в distributed таблицах по 4 элемента
  • https://t.me/clickhouse_ru
    Я вижу что у вас одни и те-же данные на 4 репликах. На какие сервера вы делаете вставку?
  • @DXYpT ↶ Reply to #297377 #297378 12:08 PM, 05 Nov 2022
    я сделал только 1 вставку в events_local (replicated таблица) на server4, вставил 2 строки
  • https://t.me/clickhouse_ru
    Что в select * from system.clusters ?
  • https://t.me/clickhouse_ru
    Дак над репликейтед таблицами не нужна distribution
  • https://t.me/clickhouse_ru
    Я понял, у вас в ддл локальных таблиц не указан макрос шарда
  • @DXYpT ↶ Reply to #297382 #297383 12:20 PM, 05 Nov 2022
    спасибо, сейчас исправлю)
  • https://t.me/clickhouse_ru
    Конечно же нужна если шардов>1, иначе как запрос соберёт все данные?
  • @DXYpT ↶ Reply to #297382 #297385 12:27 PM, 05 Nov 2022
    работает, благодарю)
  • https://t.me/clickhouse_ru
    @j7upzz ↶ Reply to #297357 #297391 03:58 PM, 05 Nov 2022
    обновление через словарь работает, спасибо! по этой статье затестил - https://kb.altinity.com/altinity-kb-queries-and-syntax/update-via-dictionary/

    но тут еще один вопрос возникает, насколько тяжело базе будет обновить ~250 млн строк данным способом? или намного эффективнее все же будет вместо колонки, создать новую таблицу ?
  • Добавить колонку - это просто создать новый файл, не надо ничего обновлять. 250млн может за минуту сделать если словарь в памяти. Новую таблицу создать будет в 10-100 раз медленнее в зависимости от числа колонок
  • https://t.me/clickhouse_ru
    Тут непонятно, вы говорите про рассчет из других колонок.
    Если все эти значения которые нужны принадлежат одной и той же строки (те все происходит в контексте строки) вам словаоь вообще не нужнн
  • https://t.me/clickhouse_ru
    @j7upzz ↶ Reply to #297394 #297395 04:57 PM, 05 Nov 2022
    нет, нужные значения будут не всегда в одной строке
    есть случаи, когда для расчета одной строки необходимо будет использовать данные из двух или более строк
  • https://t.me/clickhouse_ru
    @j7upzz #297396 04:59 PM, 05 Nov 2022
    можете подсказать по словарю? в документации написано, что ключ может быть только UInt64
    но в основной таблице ключ у меня UUID . и как составить словарь в этом случае?
  • https://t.me/clickhouse_ru
    Complex key layoutы смотрите
  • https://t.me/clickhouse_ru
    @j7upzz #297399 05:19 PM, 05 Nov 2022
    вроде разобрался, спасибо :)
    CREATE DICTIONARY update_dict
    (
    `id` UUID,
    `value` Float32
    )
    PRIMARY KEY id
    SOURCE(CLICKHOUSE(TABLE 'test_update_source'))
    LIFETIME(MIN 0 MAX 10000)
    LAYOUT(COMPLEX_KEY_HASHED());

    теперь словарь с UUID

    апдейт колонки сделал так:

    ALTER TABLE binance_futures_candles
    UPDATE value = dictGet('default.update_dict', 'value', toUUID(id)) WHERE dictHas('default.update_dict', toUUID(id));
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #297399 #297400 06:30 PM, 05 Nov 2022
    а почему вдруг Update и зачем? Вам же новый столбец надо было сделать. Я бы сделал alter table table add column value String default dictGet('default.update_dict', 'value', id); А потом modify column чтобы отвязать словарь.
  • https://t.me/clickhouse_ru
    @j7upzz ↶ Reply to #297400 #297402 07:36 PM, 05 Nov 2022
    да, получилось - так намного проще, спасибо

    а можно чуть подробнее насчет отвязки словаря? про это не в курсе был
  • ALTER TABLE table_name MODIFY column_name REMOVE DEFAULT;
  • https://t.me/clickhouse_ru
    @j7upzz ↶ Reply to #297403 #297404 08:01 PM, 05 Nov 2022
    после отвязки колонка обнуляется
  • https://t.me/clickhouse_ru
  • значит вы её не материализовали на диск, она у вас на лету считалась. Вы как по итогу добавили? Через ADD COLUMN?
  • https://t.me/clickhouse_ru
    @j7upzz ↶ Reply to #297406 #297407 08:11 PM, 05 Nov 2022
    да
    ALTER TABLE binance_futures_candles ADD COLUMN value4 Float32 default dictGet('default.update_dict2', 'value', id)

    именно через этот способ такая проблема появилась. через UPDATE вроде все ок

    про материализацию не в курсе еще
  • @simpl1g #297408 08:14 PM, 05 Nov 2022
    https://clickhouse.com/docs/en/sql-reference/statements/alter/column/#materialize-column

    порядок действий

    - ADD COLUMN ... DEFAULT ...
    - MATERIALIZE COLUMN ...
    - ждём конца мутации SELECT * FROM system.mutations WHERE NOT is_done
    - MODIFY ... REMOVE DEFAULT;
  • https://t.me/clickhouse_ru
    @j7upzz ↶ Reply to #297408 #297410 09:35 PM, 05 Nov 2022
    все ок, данные остаются после отвязки. но теперь словарь не дропается(

    DROP DICTIONARY update_dict3

    выдает ошибку
    SQL Error [630] [07000]: Code: 630. DB::Exception: Cannot drop or rename default.update_dict3, because some tables depend on it: default.binance_futures_candles. (HAVE_DEPENDENT_OBJECTS) (version 22.1.3.7 (official build))
    , server ClickHouseNode(addr=http:localhost:8123, db=default)@1293127517

    никак не получается избавиться от словаря

    через UPDATE все ок было. или он медленнее справляется с этим?
  • а вы default выражение, которое ссылается на словарь, точно удалили?
  • https://t.me/clickhouse_ru
    @j7upzz ↶ Reply to #297411 #297414 09:45 PM, 05 Nov 2022
    да. вот создаю словарь новый:
    CREATE DICTIONARY update_dict6
    (
    `id` UUID,
    `value` Float32
    )
    PRIMARY KEY id
    SOURCE(CLICKHOUSE(TABLE 'test_update_source'))
    LIFETIME(MIN 0 MAX 10000)
    LAYOUT(COMPLEX_KEY_HASHED());

    потом добавляю столбец:
    ALTER TABLE binance_futures_candles ADD COLUMN value6 Float32 default dictGet('default.update_dict6', 'value', id)

    материализую:
    ALTER TABLE binance_futures_candles MATERIALIZE COLUMN value6;

    дожидаюсь пока мутация сработает и отвязываю словарь:

    ALTER TABLE binance_futures_candles MODIFY COLUMN value6 REMOVE DEFAULT;

    словарь точно отвязался, потому что при повторном выполнении этого запроса вылезает ошибка:
    DB::Exception: Column `value6` doesn't have DEFAULT, cannot remove it. (BAD_ARGUMENTS)

    далее пробую дропнуть словарь:
    DROP DICTIONARY update_dict6

    и ошибка:
    SQL Error [630] [07000]: Code: 630. DB::Exception: Cannot drop or rename default.update_dict6, because some tables depend on it: default.binance_futures_candles. (HAVE_DEPENDENT_OBJECTS) (version 22.1.3.7 (official build))
    , server ClickHouseNode(addr=http:localhost:8123, db=default)@1293127517
  • забавно )
    https://github.com/ClickHouse/ClickHouse/issues/35905
    Test 00140_rename `DB::Exception: Cannot drop or rename test.hits, because some tables depend on it: db_dict.cache_hits` · Issue #35905 · ClickHouse/ClickHouse

    2022-04-02 03:32:18 [cc2342a20ed8] 2022.04.02 03:32:18.009225 [ 1041 ] {5ed14b87-6522-4a8c-bd4d-36a1b8fa5483} executeQuery: Code: 630. DB::Exception: Cannot drop or rename test.hits, because some t...

  • у вас версия довольно старая и не очень удачная, я бы попробовал на 22.3.14 обновиться. Ну или через UPDATE делать
  • 06 November 2022 (14 messages)
  • @dj_mixer #297421 06:53 AM, 06 Nov 2022
    вот и мирк подвезли )

    Introducing Topics in Groups
    • Groups with more than 200 members can now have their discussions organized into topics.

    было б неплохо здесь ввести базовые топики.
    https://telegram.org/file/464001316/11f12/M7mpWWooRzQ.8929282.mp4/ef5432174ec78e7910
  • https://t.me/clickhouse_ru
    @Alexey_037 #297422 06:55 AM, 06 Nov 2022
    Всё новое - хорошо забытое старое )
  • https://t.me/clickhouse_ru
    @mazda1 #297426 04:31 PM, 06 Nov 2022
    Добрый вечер! Кто-то может подсказать по параллельному обращению к кликхаус серверу через питоновскую библиотеку clickhouse-driver?

    При подключении передаю sll crt файл. При попытке обращения разными тредами к одному и тому же коннекту, получаю следующую ошибку (лог прикладываю) при параллельном выполнении запросов. Если перед любым запросом принудительно создавать новый коннект, то ошибки нет, но хочется не создавать много лишних коннектов, если возможно.

    Запускаюсь примерно так:
    with concurrent.futures.ThreadPoolExecutor(max_workers=10) as executor:
    for cred in creds:
    executor.submit(functions, params)

    коннекчусь
    ch_client = Client(
    host=...,
    port=...,
    database=...,
    user=clickhouse_user,
    password=clickhouse_password,
    secure=True,
    ca_certs=os.path.join(os.getcwd(), 'YandexInternalRootCA.crt')
    )
  • https://t.me/clickhouse_ru
    @mazda1 #297427 04:31 PM, 06 Nov 2022
  • Работает странно.

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

    В клиенте под iPad просто нет кнопки, чтобы включить темы.

    Отложим на неопределённое время.
  • Ок, будем ждать допиливания до нормального состояния )
  • У вас 10 тредов, на каждый из них и создайте соединение.
  • https://t.me/clickhouse_ru
    Вопрос в том как асинхронно ходить в clickhouse ? Поможет вот это https://github.com/mymarilyn/aioch
    GitHub - mymarilyn/aioch: aioch - is a library for accessing a ClickHouse database over native interface from the asyncio

    aioch - is a library for accessing a ClickHouse database over native interface from the asyncio - GitHub - mymarilyn/aioch: aioch - is a library for accessing a ClickHouse database over native int...

  • https://t.me/clickhouse_ru
    @mazda1 #297433 06:16 PM, 06 Nov 2022
    Алексей, Константин. спасибо! Попробую
  • @5612109415 #297435 08:00 PM, 06 Nov 2022
    В𝚎ч𝚎poчeк🧕🌸. 𝖮тⲕрылся новый обменниⲕ криптоⲃaлюты 🤩FixingFloat🤩, сейчaс тaм xоpoшие кypc у мoн𝚎т, а по мо𝚎мy промoκoдy вы получите +1.5% ⲕ любoй операции😘🤑.
    ❤️💜💖💜❤️
    fixingfloat.com/?ref=4bda6738⁠⁠⁠⁠⁠⁠⁠⁠⁠
  • Оно адски медленное. Если производительность важна, то лучше aiohttp+'X-ClickHouse-Format': 'JSON'+orjson
  • @5487613647 #297440 10:53 PM, 06 Nov 2022
    😱Барыга перестал отвечать на звонки?
    👍GREEN ROOM Всегда онлайн

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

    -У нас только наход
    -Только лучшее качество
    -Лучшие цены
    -Моментальная круглосуточная поддержка
    -Огромный выбор товара
    -Мы лучшие на рынке

    🍀 GREEN 🍀
    🍀 GREEN 🍀
    🍀 GREEN 🍀
  • https://t.me/clickhouse_ru
    @enclaved #297443 11:43 PM, 06 Nov 2022
    привет. можно ли сделать insert синхронно? нужно сперва вставить одни данные, а затем вставить другие через insert select, которые могут зависеть от наличия данных первой вставки в таблице.
  • 07 November 2022 (133 messages)
  • https://t.me/clickhouse_ru
    @enclaved #297445 12:16 AM, 07 Nov 2022
    Спасибо
  • @5659351387 #297446 02:00 AM, 07 Nov 2022
    🙋‍♀️ Приветствуем!

    Мы производители женской одежды из России. В нашем канале можно изучить ассортимент одежды и сделать заказ в пару кликов.

    🎁 Доставка БЕСПЛАТНО от 15000 руб.
    💳 Оплата наличным и безналичным расчетом
    ✈️ Доставка по России и СНГ


    Желаем приятных покупок! ↩️

    https://t.me/+LjX8CWjmxWg5YTYy
    https://t.me/+LjX8CWjmxWg5YTYy
    https://t.me/+LjX8CWjmxWg5YTYy
    ♦️ ПЕРВЫЙ МОДНЫЙ КЛУБ ♦️

    Первый клуб для оптовиков. То самое место, где встречаются производители и оптовые покупатели одежды. Изучайте ассортимент и делайте заказ в пару кликов. 😎 Welcome to the club!

  • @5659351387 #297447 02:22 AM, 07 Nov 2022
    🙋‍♀️ Приветствуем!

    Мы производители женской одежды из России. В нашем канале можно изучить ассортимент одежды и сделать заказ в пару кликов.

    🎁 Доставка БЕСПЛАТНО от 15000 руб.
    💳 Оплата наличным и безналичным расчетом
    ✈️ Доставка по России и СНГ


    Желаем приятных покупок! ↩️

    https://t.me/+LjX8CWjmxWg5YTYy
    https://t.me/+LjX8CWjmxWg5YTYy
    https://t.me/+LjX8CWjmxWg5YTYy
    ♦️ ПЕРВЫЙ МОДНЫЙ КЛУБ ♦️

    Первый клуб для оптовиков. То самое место, где встречаются производители и оптовые покупатели одежды. Изучайте ассортимент и делайте заказ в пару кликов. 😎 Welcome to the club!

  • @5659351387 #297449 02:37 AM, 07 Nov 2022
    🙋‍♀️ Приветствуем!

    Мы производители женской одежды из России. В нашем канале можно изучить ассортимент одежды и сделать заказ в пару кликов.

    🎁 Доставка БЕСПЛАТНО от 15000 руб.
    💳 Оплата наличным и безналичным расчетом
    ✈️ Доставка по России и СНГ


    Желаем приятных покупок! ↩️

    https://t.me/+LjX8CWjmxWg5YTYy
    https://t.me/+LjX8CWjmxWg5YTYy
    https://t.me/+LjX8CWjmxWg5YTYy
    ♦️ ПЕРВЫЙ МОДНЫЙ КЛУБ ♦️

    Первый клуб для оптовиков. То самое место, где встречаются производители и оптовые покупатели одежды. Изучайте ассортимент и делайте заказ в пару кликов. 😎 Welcome to the club!

  • @5659351387 #297450 02:52 AM, 07 Nov 2022
    🙋‍♀️ Приветствуем!

    Мы производители женской одежды из России. В нашем канале можно изучить ассортимент одежды и сделать заказ в пару кликов.

    🎁 Доставка БЕСПЛАТНО от 15000 руб.
    💳 Оплата наличным и безналичным расчетом
    ✈️ Доставка по России и СНГ


    Желаем приятных покупок! ↩️

    https://t.me/+LjX8CWjmxWg5YTYy
    https://t.me/+LjX8CWjmxWg5YTYy
    https://t.me/+LjX8CWjmxWg5YTYy
    ♦️ ПЕРВЫЙ МОДНЫЙ КЛУБ ♦️

    Первый клуб для оптовиков. То самое место, где встречаются производители и оптовые покупатели одежды. Изучайте ассортимент и делайте заказ в пару кликов. 😎 Welcome to the club!

  • @5659351387 #297451 03:06 AM, 07 Nov 2022
    🙋‍♀️ Приветствуем!

    Мы производители женской одежды из России. В нашем канале можно изучить ассортимент одежды и сделать заказ в пару кликов.

    🎁 Доставка БЕСПЛАТНО от 15000 руб.
    💳 Оплата наличным и безналичным расчетом
    ✈️ Доставка по России и СНГ


    Желаем приятных покупок! ↩️

    https://t.me/+LjX8CWjmxWg5YTYy
    https://t.me/+LjX8CWjmxWg5YTYy
    https://t.me/+LjX8CWjmxWg5YTYy
    ♦️ ПЕРВЫЙ МОДНЫЙ КЛУБ ♦️

    Первый клуб для оптовиков. То самое место, где встречаются производители и оптовые покупатели одежды. Изучайте ассортимент и делайте заказ в пару кликов. 😎 Welcome to the club!

  • @5659351387 #297452 03:18 AM, 07 Nov 2022
    🙋‍♀️ Приветствуем!

    Мы производители женской одежды из России. В нашем канале можно изучить ассортимент одежды и сделать заказ в пару кликов.

    🎁 Доставка БЕСПЛАТНО от 15000 руб.
    💳 Оплата наличным и безналичным расчетом
    ✈️ Доставка по России и СНГ


    Желаем приятных покупок! ↩️

    https://t.me/+LjX8CWjmxWg5YTYy
    https://t.me/+LjX8CWjmxWg5YTYy
    https://t.me/+LjX8CWjmxWg5YTYy
    ♦️ ПЕРВЫЙ МОДНЫЙ КЛУБ ♦️

    Первый клуб для оптовиков. То самое место, где встречаются производители и оптовые покупатели одежды. Изучайте ассортимент и делайте заказ в пару кликов. 😎 Welcome to the club!

  • https://t.me/clickhouse_ru
    /report
  • @shadowusr #297456 06:44 AM, 07 Nov 2022
    Привет. У меня такой кейс – надо удалить данные из таблицы, а потом накатить их заново из другой таблицы с помощью clickhouse-copier. Следовательно есть 2 вопроса:

    1. Насколько тяжелая операция удаления 50 млн записей и можно ли так делать

    2. Если в партиции не остается данных, будет ли она удалена? Чтобы не было конфликтов при копировании по партициям в clickhouse-copier
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #297443 #297457 06:51 AM, 07 Nov 2022
    если у вас обычная (non Replicated) MergeTree, то проблем нет. Так оно и будет (для обычных инсертов). Если же вы построили кластер, то становится интереснее:
    > By default, an INSERT query waits for confirmation of writing the data from only one replica. If the data was successfully written to only one replica and the server with this replica ceases to exist, the stored data will be lost. To enable getting confirmation of data writes from multiple replicas, use the insert_quorum option.
  • https://t.me/clickhouse_ru
    50 млн это пренебрежительно мало (если конечно у вас там не пара тысяч колонок). просто сделайте truncate и вставьте данные через insert/select
  • https://t.me/clickhouse_ru
    @solard #297459 07:07 AM, 07 Nov 2022
    ДУблирую еще раз свой вопрос - может у кого-то будут свежие мысли:

    Коллеги а почему могут возникать дубликаты при вставке в distributed таблицу и дубликаты попадают в одну и ту же шарду
    В чем может быть причина?

    Причем дубликаты не на разных шардах а в одной и той же шарде всегда. Ошибка в рамках двух кластеров воспроизводится и в рамках однго не воспроизводится, конфиги одинаковые
  • https://t.me/clickhouse_ru
    @konnectrl #297462 07:33 AM, 07 Nov 2022
    Можно как то ограничить время хранения данных в базе данных ? либо как то ограничить место занимаемое базой данных ?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Да не, я хотел просто дать доступ пользователям создавать в отдельной базе данных создавать самим таблицы, и как то всё это ограничить
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #297464 #297465 07:45 AM, 07 Nov 2022
    раз в сутки ходим кроном по system.tables, находим все юзерские таблицы без TTL, делаем alter table modify TTL :)
  • https://t.me/clickhouse_ru
    @rawelbel #297466 09:03 AM, 07 Nov 2022
    Всем привет. В чем причина такой ошибки?

    Code: 49. DB::Exception: Invalid number of rows in Chunk column ColumnLowCardinality position 1: expected 1, got 2: While executing TTL.
  • https://t.me/clickhouse_ru
    @jenjate #297469 09:42 AM, 07 Nov 2022
    Вопрос к тем, кто работает в связке Clickhouse+Superset: кто-нибудь пробовал использовать TEMPORARY TABLE в виртуальных датасетах? Superset ругается “Virtual dataset query cannot consist of multiple statements” - как это обойти?
  • https://t.me/clickhouse_ru
    @justswan #297470 09:44 AM, 07 Nov 2022
    Подскажите, вдруг кто уже подумал и собрал таблицу для хранения в ней логов от aws cloudfront?
    Хочется сэкономить время с подбором размерностей всех типов
  • @1466132867 #297472 10:23 AM, 07 Nov 2022
    Привет! А есть ли какой-то простой способ сгенерировать рандомную дату в определенном диапазоне ?
  • https://t.me/clickhouse_ru
    @Alexey_037 #297473 10:24 AM, 07 Nov 2022
    Склеить 3 числа из random функции.
  • Ну, где-то так оно и вышло %)
    WITH
    toUnixTimestamp(toDateTime('2022-09-01')) AS start,
    toUnixTimestamp(toDateTime('2022-11-07')) AS end
    SELECT fromUnixTimestamp(start + (rand() % (end - start + 1))) as ts
  • @radiojoh #297476 10:39 AM, 07 Nov 2022
    Добрый день коллеги. Есть следующая ситуация: База большая, под 310 Гб вся таблица. Соответственно при запросе из графаны вида SELECT count(success) FROM table WHERE ( t_stamp > $__fromTime ) AND ( t_stamp <= $__toTime ) AND success = '1' (а таких запросов на дэшборде десять штук (на разные метрики и график) часть ответов у меня вываливается в ошибку (т.. видимо зависают селекты к базе). Можно ли как-то оптимизировать запросы? Разделять таблицу по месяцам не могу. Таблица мерджтри.
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #297472 #297477 10:39 AM, 07 Nov 2022
    select today() + interval rand(123) % 10 day ;
  • Хм, интересный способ, спасибо )
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #297475 #297479 10:42 AM, 07 Nov 2022
    В SQL вобще и в КХ в частности довольно прилично сделана работа с датой-временем. Надо этим пользоваться, тут-же не plain C :)
  • Сила привычки ))
  • @1466132867 #297481 10:43 AM, 07 Nov 2022
    После XX лет на сях пришлось делать пару фич в КХ %)
  • select toDateTime('2022-09-01') + interval rand(123) % 96000 minute ;
    С виду получилось ОК :)
  • https://t.me/clickhouse_ru
    @timofei_melnikov #297483 10:45 AM, 07 Nov 2022
    Привет! Подскажите пожалуйста есть ли более эффективные способы поиска дублей по 1 колонке / нескольким колонкам / всем колонкам в CH чем обычный distinct?
  • а как distinct помогает искать дубли? или вы имели в виду "удаление дублей"
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #297483 #297485 10:48 AM, 07 Nov 2022
    Вопрос не имеет смысла без контекста. Любой такой поиск основан на группировке. Но важны оптимизации. А они зависят от того что вы делаете. Почитайте тут для начала - https://kb.altinity.com/altinity-kb-queries-and-syntax/distinct-vs-group-by-vs-limit-by/
    DISTINCT & GROUP BY & LIMIT 1 BY what the difference

    Page description for heading and indexes.

  • https://t.me/clickhouse_ru
    Какой коннектор используете ? Есть коннектор 2.0
  • https://t.me/clickhouse_ru
    @gorazio #297487 10:50 AM, 07 Nov 2022
    День добрый. а BACKUP TABLE умеет бэкапить distributed таблицы? или надо бэкапить replicated что под ней?
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #297476 #297488 10:52 AM, 07 Nov 2022
    Оптимизировать - можно (всегда). Но там миллион вариантов. Вы бы чего-нибудь сказали полезного про таблицу и про данные.....
  • create table if not exists linear_ag
    (
    t_stamp DateTime default now(),
    date Date default today(),
    dow UInt8,
    hod UInt8,
    adv_id UUID,
    terminal_id String,
    content String default 'NaN',
    business_unit Nullable(String) default CAST('NaN', 'Nullable(String)'),
    publisher String,
    vast_uri Nullable(String),
    proxy_dsn Nullable(String),
    success Nullable(UInt8),
    city Nullable(String)
    )
    engine = MergeTree() PARTITION BY toYYYYMM(date) ORDER BY (date, publisher, content) SETTINGS index_granularity = 8192;
  • фильтруйте по date в дашбордах
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #297489 #297491 10:54 AM, 07 Nov 2022
    order by date, при этом WHERE ( t_stamp > $__fromTime ) AND ( t_stamp <= $__toTime ) AND success = '1' - у вас идет full scan
  • https://t.me/clickhouse_ru
    @crypto_managerr2 #297493 10:56 AM, 07 Nov 2022
    Даю связки под %
    «Арбитраж криптовалюты»
    Пишите в личку
  • https://t.me/clickhouse_ru
    @Omega515 #297494 10:57 AM, 07 Nov 2022
    добрый день. подскажите пж инфу про схемы данных в клике и как ее создавать. не пойму чем она отличается от базы данных, как ее создавать?
  • https://t.me/clickhouse_ru
    Короче у колонки t_stamp надо индекс сделать и будет летать :)
  • Если позволите, еще вопрос, как бы эту штуку теперь связать с generateRandom() ? т.е. хочется заполнить таблицу случайными данными, но из определенного диапазона. В самой таблице всего несколько полей: UUID, String, Date (из диапазона)
  • разобрался, убрал generateRandom и сделал .. FROM numbers(x)
  • https://t.me/clickhouse_ru
    @f_mihail #297499 11:42 AM, 07 Nov 2022
    Здравствуйте, подскажите плз работал ли кто на dbt с шардированным кликхаусом? Не очень понимаю как их подружить после перехода с синг инстанса
  • @3334085 #297500 11:54 AM, 07 Nov 2022
    А при использовании S3 как бэк для хранения данных - метаданные можно ка-кто тоже внутри S3 хранить что бы CLickhouse был полностью stateless ?
  • https://t.me/clickhouse_ru
    А что за метеданные?
  • структура таблицы например? или если я прибью контейнер и пересоберу его снова то он сам из S3 подтащит структуру данных?
  • https://t.me/clickhouse_ru
    Я думаю вам сюда https://t.me/dbt_users
    dbt & modern data stack

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

  • https://t.me/clickhouse_ru
    Спасибо
  • https://t.me/clickhouse_ru
    @apilipenko83 #297505 12:06 PM, 07 Nov 2022
    Всем привет, а есть ли в КХ что-то типа
    https://docs.oracle.com/database/121/ARPLS/d_appinf.htm#ARPLS65237

    Суть вопроса - приложение ходит через connection pool и хочется персонализировать как то запросы. Минимально - прокидывать как то информацию о том, какой пользак инициировал запрос
  • https://t.me/clickhouse_ru
    уточню - приложение ходит под 1 технологическим аккаунтом, а что за пользователь дернул API который пошел в БД - вот эту инфу хочется как то добавлять в запрос
  • https://t.me/clickhouse_ru
    Вы можете в запрос в первую строчку добавить комментарий, что был за пользователь
  • https://t.me/clickhouse_ru
    @konnectrl #297508 12:13 PM, 07 Nov 2022
    И потом в query_log будете видеть его
  • https://t.me/clickhouse_ru
    ну это самый примитивный вариант, да. Но хотелось бы как то более интеллектаульно =) я уже так делал когда с airflow трекал запросы (json с нужными полями в первую строку добавлял). Но вроде как есть поля типа log_comment и всякие Settings & ProfileEvents - думал может есть какой то провославный способ это сделать
  • Ну собственно проверил да - после перезапуска clickhouse он сам структуру не подтягивает из S3 а значит мета данные надо тоже где то хранить/передовать
  • @3334085 #297511 12:32 PM, 07 Nov 2022
    а какой подход тогда должен быть ксли хочеться иметь stateless CH с хранением в S3? я же верно понимаю что делать бэкап S3 MergeTree в S3 это не оч хороший вариант ? 😄
  • https://t.me/clickhouse_ru
    @tom_leto #297513 01:09 PM, 07 Nov 2022
    Добрый вечер!
    У нас КХ с ЛДАП
    НО
    для вручную определёных юзеров нельзя определить роль :(

    GRANT dwh_role TO lakehouse_engine;

    Code: 495. DB::Exception: Cannot update user lakehouse_engine in users.xml because this storage is readonly: Couldn't update user lakehouse_engine. Successfully updated: none. (ACCESS_STORAGE_READONLY) (version 21.12.3.32 (official build))

    это можно как то поправить?
  • Приветствую!
    По ощущениям вряд ли

    Только если начнете использовать LDAP не как внешнее полноценное хранилище пользователей, а только как аутентификатор
    https://clickhouse.com/docs/en/operations/external-authenticators/ldap/#ldap-external-authenticator
    LDAP | ClickHouse Docs

    LDAP server can be used to authenticate ClickHouse users. There are two different approaches for doing this:

  • как лучше сделать? Подскажите?
  • к сожалению не прокатило )
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #297516 #297519 02:16 PM, 07 Nov 2022
    откуда нам знать? вам виднее какие там ограничения. Можно skip index сделать - он должен неплохо работать в вашем случае, но займет сколько-то памяти сервера. Можете в where добавить интервал дату (не убирая интервал времен), но может это вам неудобно. В принципе можно и order by таблицы поменять, но это уже экстремально и скорее всего не ваш случай.
  • https://t.me/clickhouse_ru
    Почитайте для развития https://clickhouse.com/blog/clickhouse-grafana-plugin-2.0
    ClickHouse Plugin for Grafana - 2.0 Release

    The 2.0 release of the ClickHouse plugin for Grafana improves filtering while adding support for HTTP and JSON.

  • https://t.me/clickhouse_ru
    @humanrising #297522 02:21 PM, 07 Nov 2022
    всем привет. использую ClickHouseHTTP() для подключения R+Clickhouse при вызове dbGetQuery(con, "SHOW DATABASES") - отображается список, а при запросе dbListTables(con) - не отображает список таблиц. хотя если запросить данные из конкретной таблицы - то они возвращаются: dbGetQuery(con, "SELECT * from metrika_to_datalens.hits LIMIT 10"). почему не могу увидеть список таблиц? Так же не получается загрузить таблицу в clickhouse...
  • Благодарю за ссылку
  • https://t.me/clickhouse_ru
    В таблице query_log есть колонка http_user_agent, которую можно попробовать переиспользовать.

    Подробнее про настройку этих параметров можно найти тут : https://github.com/ClickHouse/clickhouse-jdbc/issues/691
    Implement setClientInfo · Issue #691 · ClickHouse/clickhouse-jdbc

    Feature request: implement java.sql.Connection#setClientInfo (and ClickHouseDatabaseMetaData#getClientInfoProperties) That would allow to pass some useful metadata to database, eg. frontend user th...

  • https://t.me/clickhouse_ru
    log_comment колонку посмотрите, ее можно через настройку задать

    https://github.com/ClickHouse/ClickHouse/blob/c05c1f7a34a2d5b9d0ace78df986585f125aa61d/tests/queries/0_stateless/01670_log_comment.sql
    ClickHouse/01670_log_comment.sql at c05c1f7a34a2d5b9d0ace78df986585f125aa61d · ClickHouse/ClickHouse

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

  • можно в SETTINGS custom params передавать, прекрасно работает
  • https://t.me/clickhouse_ru
    @apilipenko83 #297528 02:41 PM, 07 Nov 2022
    @unamedrus @mrkandreev @dj_mixer спасибо за ответы, думаю что приведённых примеров хватит :)
  • https://t.me/clickhouse_ru
    @humanrising #297529 03:39 PM, 07 Nov 2022
    подскажите пожалуйста как и где исправить ошибку Error in .local(conn, statement, ...) :
    Code: 497. DB::Exception: user: Not enough privileges. To execute this query it's necessary to have grant CREATE TABLE ON default.mtcars доступ к кликхаусу есть. но видимо. не полный - таблицы в БД не показывает, хотя к ним можно обращаться если знать названия, новую таблицу добавить не получается (возможно. сертификат не установлен или права неверно выставлены?)
  • Отвечу себе сам 😄

    Оказывается сейчас пока мета-данные храняться только внутри CH и их нужно или синхроинизровать через ReplicatedMergeeTree или носить руками (т.е никакого stateless) эх... а хотелось запихать в контейнер CH и я думал что вместе с S3 Disk это будет возможно... а нет
  • https://t.me/clickhouse_ru
    Можно попробовать Replicated DB engine, возможно в этом случае на диске меньше метаданных хранится
  • https://t.me/clickhouse_ru
    @aich198302 #297537 05:29 PM, 07 Nov 2022
    Всем добрый вечер. Вопрос такой, требуется сделать регулярный ETL с одного кликхауса на другой (разные кластеры, разные подсети, связность есть). Данные - 1 таблица примерно на 100-200 млн. записей в сутки. Можете рекомендовать вариант непосредственно и клика в клик без использования промежуточных инструментов? Есть варианты эффективные для данного объема? Имеет ли смысл приладить к этому копир или он все же для разовых переносов/бэкапов? Спасибо
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Спасибо!
  • @sonsergey #297541 05:38 PM, 07 Nov 2022
    Подскажите, хотим использовать настройку https://github.com/ClickHouse/ClickHouse/issues/29617 zookeeper_load_balancing, но получаем ошибку

    <Error> ConfigReloader: Error updating configuration from /etc/clickhouse/config.xml' config.: Code: 999. Coordination::Exception: Unknown key zookeeper_load_balancing in config file (Bad arguments). (KEEPER_EXCEPTION)

    Версия ClickHouse client version 22.3.11.12 (official build)
    Zookeeper load balancing settings · Issue #29617 · ClickHouse/ClickHouse

    There are use cases when one of the zookeeper nodes is preferred - same AZ in the cloud, or you just to avoid the situations when all the clickhouse nodes will connect accidentally to the same zook...

  • старая версия у вас. 22.4 минимальная
  • @sonsergey #297543 05:54 PM, 07 Nov 2022
    А как понять в какой версии был релиз?
  • @simpl1g #297544 06:00 PM, 07 Nov 2022
    посмотреть комит на гитхабе, там есть список тэгов в которые он попал
    https://github.com/ClickHouse/ClickHouse/pull/30325/commits/77c22dce3c63436a2b241cf5e144b4f6cafebcd8
  • https://t.me/clickhouse_ru
    @ya_griganton #297546 06:10 PM, 07 Nov 2022
    Всем привет!
    Пытаюсь обойти то что в toTimezone используется константа в часовом поясе

    multiIf(
    time_zone_code = 'Europe/Moscow', toTimezone(utc_dttm, 'Europe/Moscow'),
    time_zone_code = 'Asia/Yekaterinburg', toTimezone(utc_dttm, 'Asia/Yekaterinburg'),
    time_zone_code = 'Europe/Samara', toTimezone(utc_dttm, 'Europe/Samara'),
    utc_dttm
    ) as lcl_dttm

    но всё равно выдаёт московскую зону ) как мне в одном столбце поиметь разные часовые пояса?
  • https://t.me/clickhouse_ru
    Разложить по разным столбцам ?
  • https://t.me/clickhouse_ru
    Думал сегодня об этом же. Пока в голове - создать словарь по ключу timezone_name, а в значение положить офсет в секундах
  • https://t.me/clickhouse_ru
    Вариант, но это плохо работает если таймзона меняет свой оффсет. А они меняют
  • https://t.me/clickhouse_ru
    @Vanekru #297550 06:13 PM, 07 Nov 2022
    Коллеги подскажите пожалуйста. У меня есть таблица mysql enginge в mysql миграцией добавили новую колонку, есть возможность миграцией добавить колонку в clickhouse или мне ее только дропать и заново создавать?
  • https://t.me/clickhouse_ru
    пугающе много столбцов
  • https://t.me/clickhouse_ru
    Создать range key в словаре и проверять вхождение времени в интервалы летнего/зимнего времени
  • https://t.me/clickhouse_ru
    @Sablast #297553 06:19 PM, 07 Nov 2022
    Или хранить в словаре время смены летнего/зимнего времени
  • https://t.me/clickhouse_ru
    @yatoba #297555 06:24 PM, 07 Nov 2022
    как заставить работать remote? нужно чтото специально где скофигурировать для подключению к другому кластеру клика?
    Code: 519. DB::NetException: All attempts to get table structure failed. Log: . (NO_REMOTE_SHARD_AVAILABLE) (version 22.10.2.11 (official build))
  • https://t.me/clickhouse_ru
    @orantius #297556 06:30 PM, 07 Nov 2022
    зависит от того что написано в этом remote. и в system.clusters например
  • https://t.me/clickhouse_ru
    @yatoba ↶ Reply to #297556 #297558 06:37 PM, 07 Nov 2022
    кластер левый, надо перекинуть данные
    сетевая доступность до 9000 порта есть
  • https://t.me/clickhouse_ru
    WITH
    toDateTime('2022-01-01 00:00:00','UTC') as utc_dttm,
    'Europe/Moscow' as time_zone_code
    SELECT multiIf(
    time_zone_code = 'Europe/Moscow', timeZoneOffset(toTimeZone(now(), 'Europe/Moscow')),
    time_zone_code = 'Asia/Yekaterinburg', timeZoneOffset(toTimeZone(now(), 'Asia/Yekaterinburg')),
    time_zone_code = 'Europe/Berlin', timeZoneOffset(toTimeZone(now(), 'Europe/Berlin')),
    0
    ) as lcl_offset, utc_dttm + INTERVAL lcl_offset SECOND as lcl_dttm
  • ReplicatedMergeTree?
  • https://t.me/clickhouse_ru
    Нет, именно движок баз данных
  • https://t.me/clickhouse_ru
    @unamedrus #297562 06:51 PM, 07 Nov 2022
    Он экспериментальный, но думаю его допилят. (им clickhouse.cloud в своем облаке пользуется)
  • хм, интересно, было бы вообще конечно удобнее если бы просто метаданные CH переодически дампил в S3
  • https://t.me/clickhouse_ru
    Есть план сделать shared metadata сторадж, причем в опен сорс роадмапе, но без каких либо сроков
  • да я даже issue про это видел да 🙁
  • @3334085 #297567 06:59 PM, 07 Nov 2022
    т.к юзкейс то есть как мне кажеться - это бы хорошо откушало от Athena кусок пользователей, т.к сейчас с CH опасно - если метаданные пропадут то в S3 каша...
  • https://t.me/clickhouse_ru
    @yatoba #297568 07:15 PM, 07 Nov 2022
    перефразирую вопрос, как добавить сервер в remote_servers без перезапуска клика и при том что он с ридонли конфигами?
  • https://t.me/clickhouse_ru
    @konnectrl #297569 07:15 PM, 07 Nov 2022
    У вас так и не работает remote ?
  • https://t.me/clickhouse_ru
    @yatoba ↶ Reply to #297569 #297570 07:16 PM, 07 Nov 2022
    а как он заработает? нигде нет никакого описания как сделать чтоб он заработал кроме как обращаться к серверам кластера
  • https://t.me/clickhouse_ru
    remote работает не только с серверами в рамках кластера
  • https://t.me/clickhouse_ru
    @yatoba ↶ Reply to #297571 #297572 07:17 PM, 07 Nov 2022
    отлично, как это сделать?
  • https://t.me/clickhouse_ru
    @m1khal3v #297573 07:17 PM, 07 Nov 2022
    так из коробки работает
  • https://t.me/clickhouse_ru
    @yatoba #297574 07:18 PM, 07 Nov 2022
    хост+порт, бд+таблица, юзер, пароль - и тишина
  • https://t.me/clickhouse_ru
    @konnectrl #297575 07:18 PM, 07 Nov 2022
    До друг друга могут ходить ?
  • https://t.me/clickhouse_ru
    @yatoba #297576 07:18 PM, 07 Nov 2022
    да
  • https://t.me/clickhouse_ru
    @m1khal3v #297577 07:18 PM, 07 Nov 2022
    может проблема в файрволлах или secure/не secure ?
  • https://t.me/clickhouse_ru
    @yatoba #297578 07:19 PM, 07 Nov 2022
    telnet работает прекрасно
  • https://t.me/clickhouse_ru
    @m1khal3v #297579 07:20 PM, 07 Nov 2022
    может в вашем случае remoteSecure нужна?
  • https://t.me/clickhouse_ru
    @m1khal3v #297580 07:21 PM, 07 Nov 2022
    или 9000 порт тестили?
  • https://t.me/clickhouse_ru
    @m1khal3v #297581 07:22 PM, 07 Nov 2022
    порт хардкодить пробовали ?
  • https://t.me/clickhouse_ru
    @yatoba #297582 07:22 PM, 07 Nov 2022
    порт 9000, зардкодить пробовал, ip:port явно указываю
  • https://t.me/clickhouse_ru
    @konnectrl #297583 07:23 PM, 07 Nov 2022
    Он ошибку выдает или весит вечно ?
  • https://t.me/clickhouse_ru
    @yatoba #297584 07:24 PM, 07 Nov 2022
    ошибка стабильно выдается сразу
    All attempts to get table structure failed. Log: . (NO_REMOTE_SHARD_AVAILABLE)
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @yatoba #297586 07:26 PM, 07 Nov 2022
    я не таймаут получаю
  • https://t.me/clickhouse_ru
    @yatoba #297587 07:27 PM, 07 Nov 2022
    клик почемуто хочет получить инфу о таблице якобы она должна быть в шарде
  • https://t.me/clickhouse_ru
    @yatoba #297588 07:27 PM, 07 Nov 2022
    но это не вяжется с "из коробки работает с внешними кластерами"
  • https://t.me/clickhouse_ru
    @m1khal3v #297589 07:28 PM, 07 Nov 2022
    работает)
  • https://t.me/clickhouse_ru
    @konnectrl #297590 07:28 PM, 07 Nov 2022
    Дак может нету такой таблицы ?
  • https://t.me/clickhouse_ru
    @m1khal3v #297591 07:28 PM, 07 Nov 2022
    из финляндии в россию переливали данные через неё без проблем, терабайты)
  • https://t.me/clickhouse_ru
    @konnectrl #297592 07:28 PM, 07 Nov 2022
    Попробуйте к system.parts например
  • https://t.me/clickhouse_ru
    @yatoba #297593 07:32 PM, 07 Nov 2022
    спасибо за наводку, систем партс он удаленно прочитал. В итоге да опечатка в названии таблицы. Описание ошибки такое понятное что не понятно что он просто не смог найти такую таблицу на удаленном сервере.
  • https://t.me/clickhouse_ru
    В issue напишите, чтобы более понятную ошибку сделали
  • https://t.me/clickhouse_ru
    @yatoba #297595 07:37 PM, 07 Nov 2022
    уже
  • https://t.me/clickhouse_ru
    @yatoba #297596 07:40 PM, 07 Nov 2022
    это было реально не очевидно по сравнению с обычным
    Table default.asdasd doesn't exist. (UNKNOWN_TABLE)
  • К сожалению ничего нового там для себя не нашел.
  • https://t.me/clickhouse_ru
    Даже то что в настройки передаются фильтры и клик их сам применяет ?
  • Я пока не вижу , ккк я могу увеличить скорость
  • ну не так прям напрямую )
    нужно что-то в стиле:
    SELECT count(success)
    FROM directed.linear
    WHERE (t_stamp > $__fromTime)
    AND (t_stamp <= $__toTime)
    AND success = '1'
    AND date >= toDate($_fromTime)
    AND date < date_add(DAY, 1, toDate($__toTime))

    но чтобы такие костыли не творить, надо таблицу переделывать / допиливать )
  • 08 November 2022 (137 messages)
  • Принял . Таблица унаследовала дерьмо с пошлой базы , сгоревшей вместе с датацентром :))))
  • https://t.me/clickhouse_ru
    "дерьмо с пошлой базы" :))
  • Выбить в граните
  • https://t.me/clickhouse_ru
    @silverlir #297607 05:55 AM, 08 Nov 2022
    Есть способы быстро получать последнюю запись? Не делая каждый раз сорт
  • @IlIlIlIlIlIllIl #297608 06:02 AM, 08 Nov 2022
    Коллеги добрый день!
    Подскажите пожалуйста как реализовать в коде запрос, так что если условие выполняется то берётся одна таблица, а если нет то другая.
    Что-то не вышло в лоб нагуглить, но хочется получить что-то вроде

    SELECT
    if(foo = bar, table1, table2)
  • @akazz #297609 06:08 AM, 08 Nov 2022
    А над какими данными вы условие проверяете? 🤔
  • @IlIlIlIlIlIllIl #297610 06:10 AM, 08 Nov 2022
    Это для дашборда, из Redash фильтр пробрасывается.
  • @IlIlIlIlIlIllIl #297611 06:11 AM, 08 Nov 2022
    Но мне кажется я нашёл обходной путь, сделал UNION двух таблиц и перенёс фильтрацию по условию в секцию WHERE
  • @pbaturin #297613 06:45 AM, 08 Nov 2022
    Добрый день, коллеги! Решил тут попробовал lightweight delete. Не работает. Это баг или фича? https://pastila.nl/?0021c8f8/060207d4fa6b663d20f7fff8d9d7bf73
  • А какой движок у таблицы?
  • @pbaturin #297615 07:24 AM, 08 Nov 2022
    ENGINE = ReplicatedMergeTree
  • https://t.me/clickhouse_ru
    @artemy_kravtsov #297618 08:23 AM, 08 Nov 2022
    привет! делаю инсерт селекта из таблицы, в которой есть полностью одинаковые строки, а Кликхаус каждый раз срезает какое-то количество из дублирующихся строк, т.е. в итоге вставляет меньше строк, чем было в таблице-источнике. подскажите, пожалуйста, так может быть, я не ошибся с интерпретацией?
  • какой движок у таблицы-destination?
  • https://t.me/clickhouse_ru
    replacing - не подумал про такое, спасибо за подсказку
  • @radiojoh #297622 08:47 AM, 08 Nov 2022
    Опмтимизировал запросы из графаны к базе и проработал индексы. Можно проверить скорость обработки.
  • https://t.me/clickhouse_ru
    Классно, спасибо !
  • В итоге да помогло
  • @radiojoh #297625 09:13 AM, 08 Nov 2022
    Чатлан благодарю 🤝🤝🤝
  • Индекс date помогло организовать по итогу
  • @GigAl #297627 09:15 AM, 08 Nov 2022
    Вcем привет!
    Подскажите как правильно перенести данные из одной дисковой политики в другую?

    у меня есть настроенный диск для горячих и холодных данных и есть диск который по умолчанию был.. как мне из default перенести все данные в disk_1 и то что не влезет по политике перенеслось в disk_2?

    default,/1mnttmp/clickhouse/
    disk_1,/ssd/clickhouse_hot_data/
    disk_2,/DB/clickhouse_cold/
  • https://t.me/clickhouse_ru
    @anatoly_ens #297629 09:19 AM, 08 Nov 2022
    Подскажите, какой движок выбрать для таблицы, если я считаю в ней всего два агрегата? То есть нет какого-либо dimension, просто два числа получаются
  • https://t.me/clickhouse_ru
    Summingmt? Придется сделать доп поле с materialized 1 и сделать orderby по этому полю
  • https://t.me/clickhouse_ru
    Что-то вроде такого?

    CREATE MATERIALIZED VIEW table_mv
    ENGINE = SummingMergeTree() POPULATE
    AS
    select 1 as temp_col
    sum(a) as users_with_conv,
    sum(b) as users_without_conv
    from table1
    order by temp_col;
  • https://t.me/clickhouse_ru
    Нет

    Вот так

    CREATE MATERIALIZED VIEW table_mv
    ENGINE = SummingMergeTree() order by temp_col POPULATE
    AS
    select 1 as temp_col
        sum(a) as users_with_conv,
        sum(b) as users_without_conv
    from table1
    Group by temp_col
    ;
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Я понял! Спасибо большое!
    Необычное чувство: час назад смотрел доклад по mv с вашим участием, а сейчас напрямую получаю ответ от вас))
  • https://t.me/clickhouse_ru
    @achevozerov #297635 09:30 AM, 08 Nov 2022
    Всем привет, столкнулся со сложностью

    Таблица содержит записи о товарах относящихся к заказу, полностью уникальных полей нет. Есть только идентификатор заказа к которому относятся много товаров.

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

    Как эту задачу адекватнее всего решить в кликхаусе?
  • https://t.me/clickhouse_ru
    ))
  • https://t.me/clickhouse_ru
    И сколько товаров всего? Похоже нужен словарь с товарами. И в таблице хранить Id заказа и Id товара
  • https://t.me/clickhouse_ru
    id и заказа и товара уже есть в таблице, вариантов товаров порядка 70 тысяч артиклей
  • @Kellyus #297639 09:44 AM, 08 Nov 2022
    Добрый день!
    Чет туплю капец, не понимаю ошибку

    Делаю concat() двух столбцов (Оба INT)

    Получаю Code: 44. DB::Exception: Illegal column Const(UInt8) of argument of function concat. (ILLEGAL_COLUMN) (version 22.6.9.11 (official build))

    в чем причина? Пробовал CAST делать и тд .. не могу в CH 2 столбца склеить))
  • https://t.me/clickhouse_ru
    Может проблема в том, что concat ждёт строки, а вы int даете ?
  • Ну в ошибке так и написано)) Но внутри concat он cast сделать не может
    Надо обязательно до?
  • https://t.me/clickhouse_ru
  • Осилил, чет запара была тупейшая)
  • https://t.me/clickhouse_ru
    @Jorilla #297645 10:10 AM, 08 Nov 2022
    Привет чат, подскажите пожалуйста как переписать запрос через < case when ... then ... > ?

    Запрос такой:

    select count(distinct card_id) as cards_count from stats.appointmentstats

    Я хочу в одном запросе несколько distinct подсчётов засунуть:

    select count(case when stat_type = ‘new' then distinct card_id end) as cards_count_new, count(case when stat_type = ‘old’ then distinct card_id end) as cards_count_old from stats.appointmentstats

    Но так оно не работает: then distinct card_id end

    Если просто then card_id end то всё работает, но я хочу distinct
  • @1382671541 #297646 10:12 AM, 08 Nov 2022
    countDistinctIf ?
    https://clickhouse.com/docs/en/sql-reference/aggregate-functions/combinators/#-if
    Aggregate Function Combinators | ClickHouse Docs

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

  • https://t.me/clickhouse_ru
    @keksum666 #297647 10:13 AM, 08 Nov 2022
    Всем привет, новичок в CH, может кто-то подсказать как загрузить словарь? Создаю через createDictionary, инфу по нему смотрю через SELECT * from system.dictionaries. Есть возможность его как-то загрузить? Загружаю его с помощью обычного select'a и dictGet, может есть какой нибудь получше способ?

    Словарь берет данные из таблицы
  • https://t.me/clickhouse_ru
    о, спасибо!
  • https://t.me/clickhouse_ru
    @Jorilla #297649 10:14 AM, 08 Nov 2022
    стоп, так там же нет такой функции countDistinctIf
  • https://t.me/clickhouse_ru
    @konnectrl #297650 10:15 AM, 08 Nov 2022
    uniqExactIf(card_id,stat_type='new')
  • https://t.me/clickhouse_ru
    спасибо, сейчас попробую
  • https://t.me/clickhouse_ru
    DB::Exception Aggregate function is found inside another aggregate function in query
  • @icatcher #297654 10:18 AM, 08 Nov 2022
    Всем привет!

    Мы решили попробовать storage_policy=hdfs для MergeTree таблиц

    И столкнулись с проблемами:

    Указали 1 директорию в HDFS для всех таблиц, но в этой директории быстро накопилось много маленьких файлов, так что HDFS падает с лимитом по файлам на папку

    Сделали 100 директорий с load_balancing=round_robin и 100 volumes, но теперь ClickHouose пишет только в 1 директорию (самую первую), а также размер файлов все равно не увеличивается. Настройка move_factor в данном случае не поможет, так как у нас HDFS

    В HDFS теперь 100 директорий, файлы кладутся только в 1 единственную директорию, каждый файл по 2KB

    Но для каждой из 100 директорий когда-нибудь все равно настанет лимит на количество файлов

    Вопросы:

    1) Можно ли как-то настроить размер файлов в HDFS?
    Или лимит файлов в директории, или лимит файлов по размру в директории?

    min_bytes_for_wide_part настройку мы при загрузке в локальное хранилище не используем, и там все ок, все мерджится автоматически, есть ли смысл ее применять в MergeTree с storage_policy=hdfs?

    2) Можно ли как-то указать шаблон пути в disk, чтобы ClickHouse клал по шаблону, а не по жестко заданным 100 директориям которые могут однажды закончится?
  • https://t.me/clickhouse_ru
    комбинаторы позволяют на ходу создавать новые функции
  • https://t.me/clickhouse_ru
    вот такой запрос SELECT count(uniqExactIf(card_id, stat_type = 'new'))
  • https://t.me/clickhouse_ru
    uniqExact уже возвращает count
  • https://t.me/clickhouse_ru
    оу..
  • https://t.me/clickhouse_ru
    действительно
  • https://t.me/clickhouse_ru
    спасибо большое)) проблема решилась
  • где там?
    в CH есть функция countDistinct
    при помощи комбинатора из нее можно сделать countDistinctIf
    https://fiddle.clickhouse.com/165686d0-b32f-41c6-b9a4-db83fd0c1d11
  • https://t.me/clickhouse_ru
    попробуйте еще uniqIf он намного быстрее, но дает небольшую ошибку
  • https://t.me/clickhouse_ru
    да, вы правы

    спасибо))
  • https://t.me/clickhouse_ru
    возьму на заметку) но я тут скоро финансы буду считать, ошибку мне не простят😅
  • https://t.me/clickhouse_ru
    а зачем?
    словари загружаются лениво
    это отключаемо
    и есть system reload dictionary
  • https://t.me/clickhouse_ru
    uniqExactIf vs uniqIf
    765058 vs 762711

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

    https://en.wikipedia.org/wiki/HyperLogLog
    HyperLogLog

    HyperLogLog is an algorithm for the count-distinct problem, approximating the number of distinct elements in a multiset. Calculating the exact cardinality of the unique elements of a multiset requires an amount of memory proportional to the cardinality, which is impractical for very large data sets. Probabilistic cardinality estimators, such as the HyperLogLog algorithm, use significantly less memory than this, at the cost of obtaining only an approximation of the cardinality. The HyperLogLog algorithm is able to estimate cardinalities of > 109 with a typical accuracy (standard error) of 2%, using 1.5 kB of memory. HyperLogLog is an extension of the earlier LogLog algorithm, itself deriving from the 1984 Flajolet–Martin algorithm.

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

    а что это за лимит такой? никогда не слышал, можете ссылкой поделится?

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

    файлы мелкие скорее из партиционирования
  • @shtukkert #297674 10:44 AM, 08 Nov 2022
    Всем привет!
    Ребят, помогите пожалуйста с внешним словарем 🙂
    Создаю внешний словарь на таблицу MariaDB (в которой ManyToMany связи), но количество строк в итоге в словаре меньше чем в исходной таблице.
    Пробовал и SYSTEM RELOAD DICTIONARY, не помогло.

    Пытался PrimaryKey при создании описать как конкатинацию полей, полученных из марии:
    EXPRESSION concat(field_id, other_field_id)

    Результат: Количество строк увеличилось, но все-еще не вся таблица.

    Я так понимаю что PrimaryKey во внешних словарях должен быть уникальным, можете подсказать как его сгенерить на лету?
    Спасибо!
  • https://t.me/clickhouse_ru
    dfs.namenode.fs-limits.max-directory-items 0 Defines the maximum number of items that a directory may contain. A value of 0 will disable the check.

    https://hadoop.apache.org/docs/r0.23.11/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

    по умолчанию выключено
  • https://t.me/clickhouse_ru
    ИЗ СЛОВАРЯ НЕЛЬЗЯ ЗАБИРАТЬ ДАННЫЕ SELECT-М. это очень медленно

    PrimaryKey в словаре определяет как вы будете данные из словаря доставать при использовании dictGet , поэтому ваш вопрос не имеет смысла.
  • 1) dfs.namenode.fs-limits.max-directory-items

    По умолчанию 1048576, у нас как раз столько файлов и оказалось после 1 дня заливки

    2) То есть, я могу указать вместо этого:

    <storage_configuration>
    <disks>
    <disk_name_1>
    <path>/mnt/fast_ssd/clickhouse/dir_1</path>
    </disk_name_1>
    <disk_name_2>
    <path>/mnt/hdd1/clickhouse/dir_2</path>
    <keep_free_space_bytes>10485760</keep_free_space_bytes>
    </disk_name_2>

    Вот это

    <storage_configuration>
    <disks>
    <disk_name_1>
    <path>/mnt/fast_ssd/clickhouse/dir_*</path>
    </disk_name_1>

    ?
  • https://t.me/clickhouse_ru
    @s_nikolajus #297679 10:57 AM, 08 Nov 2022
    Привет, у кого есть опыт мульти-дата центрового примирения КХ? Какие особенности стоит учитывать при сетапе для высокой доступности? Для зукипера, как я понимаю, надо минимум 3 ДЦ, с минимальной latency между ними и нодами КХ.
  • тоесть вы предлагаете просто сделать PrimaryKey одно из полей?
    повторюсь, так делал и данных в итоговом словаре получается критически мало. На одно уникальное значение PrimaryKey одно вхождение.
  • https://t.me/clickhouse_ru
    Кажется что dfs.namenode.fs-limits.max-directory-items искусственное ограничение, оно убрано в современных hdfs

    dfs.namenode.fs-limits.max-directory-items 0 Defines the maximum number of items that a directory may contain. A value of 0 will disable the check.

    https://hadoop.apache.org/docs/r0.23.11/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

    по умолчанию выключено
  • https://t.me/clickhouse_ru
    partition by какой у таблицы?
  • https://t.me/clickhouse_ru
    сколько КМ (сколько летенси) между DC ?
  • https://t.me/clickhouse_ru
    вы говорите странное.

    Словарь это способ достать значение по ключу. Вы рассказываете что у вас ключи повторяются, что несколько странно в разрезе K/V
  • https://t.me/clickhouse_ru
    @emptyone #297686 11:23 AM, 08 Nov 2022
    господа, скажите такое

    если у меня mv с набором materialized полей, и я хочу на него навесить еще один mv

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

    прав ли я, и обходимое ли сие?
  • https://t.me/clickhouse_ru
    @emptyone #297687 11:29 AM, 08 Nov 2022
    хм, наверное, если я их явно выберу в select второй view - будет ок
  • Посмотрел, даже на master бранче у них дефолтовое значение 1 млн

    Плюс, нельзя задать <= нуля, там Precondition, и нельзя задавать больше 64 млн, это хардкод ограничение

    https://github.com/naver/hadoop/blob/master/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSDirectory.java#L285
    hadoop/FSDirectory.java at master · naver/hadoop

    Public hadoop release repository. Contribute to naver/hadoop development by creating an account on GitHub.

  • У меня одна идея, может немного бредовая.
    А есть ли возможность создать словарь так, чтоб по ключу доставать json поле или массив (где будут храниться все OneToMany связи).
  • https://t.me/clickhouse_ru
    @Vershinyn #297690 11:40 AM, 08 Nov 2022
    подскажите пожалуйста можно ли в CH одну таблицу партицировать и шардировать одновременно?
  • @vmakulov #297691 11:40 AM, 08 Nov 2022
    можно и даже нужно
  • https://t.me/clickhouse_ru
    Спасибо! 👍
  • Вот пример одной из таблиц
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #297689 #297695 11:47 AM, 08 Nov 2022
    Бредовая идея - это словарь с одинаковыми ключами разных строк. А вот сложная структура строк - вполне себе рабочая тема.
    create dictionary test ( id UInt64, d1 Array(String), d2 Array(Map(String,UInt16)) ) ...
  • https://t.me/clickhouse_ru
    @anatoly_ens #297696 11:52 AM, 08 Nov 2022
    Есть ли вариант создать mv, который бы обновлялся при джойне двух таблиц? Имеется ввиду по инсерту не только в левую таблицу, но и в правую?
  • https://t.me/clickhouse_ru
    @keksum666 #297697 12:07 PM, 08 Nov 2022
    Всем привет, вопрос по словарям, я заполняю таблицу из данных словаря, словарь нужно ли как-то заранее подгружать или можно просто сразу данные из него брать и он во время мутации подгрузится?
  • https://t.me/clickhouse_ru
    @timofei_melnikov #297699 12:22 PM, 08 Nov 2022
    Привет! Есть у кого нибудь на примете толковая статья про Date / Datetime / TS? Когда ввожу дату хардкодом он делает от нее -3 часа, а когда выводит в интерфейс делает +3 часа. Когда преобразую datetime в date 2022-10-01 21:00:00 он преобразует его в 2022-10-02. Возникла небольшая путанница хочу разобраться.
  • https://t.me/clickhouse_ru
    @Man_from_Nocturne #297701 12:35 PM, 08 Nov 2022
    Народ для CH кто какими балансерами пользовался? Какой лучше?
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #297699 #297702 12:35 PM, 08 Nov 2022
    У DateTime под капотом UInt32 - число секунд от 1970-01-01 00:00:00 в UTC.
    Таймзона влияет только на парсинг из строки в DateTime и при отображении значения. При парсинге используется либо таймзона сервера, либо таймзона клиента (в зависимости от настройки), так что во избежание неоднозначностей лучше всегда указывать её явным образом.
  • https://t.me/clickhouse_ru
    Спасибо!
  • https://t.me/clickhouse_ru
    https://www.chproxy.org/ вот этим, для тех учеток
    Link

    Chproxy is an HTTP proxy and load balancer for ClickHouse

  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #297699 #297705 12:37 PM, 08 Nov 2022
    Ну и если вам надо сконвертировать DateTime в Date, то тут таймзона тоже важна, ибо одно и то же время в разных таймзонах может быть разной датой. Так что тут совет тот же - указывайте таймзону явным образом.
  • https://t.me/clickhouse_ru
    Спасибо, разобрался!
  • https://t.me/clickhouse_ru
    Я бы сказал спам чистой воды
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #297696 #297714 02:04 PM, 08 Nov 2022
    Можно сделать два MV (обязательно с TO). Но тут вопрос с самим джойном - вы сможете заставить его работать в обе стороны быстро?
  • https://t.me/clickhouse_ru
    @lexkozhev #297715 02:10 PM, 08 Nov 2022
    Привет всем! Подскажите пожалуйста, может кто сталкивался: CH при использовании collation "en/en_US" считает что кириллические буквы "е" и "ё" одинаковые между собой. Можно ли как то заставить его их различать с помощью дефолтных механизмов?
  • https://t.me/clickhouse_ru
    @navi_2 #297716 02:30 PM, 08 Nov 2022
    Поскажите, можно ли в ch создать таблицу в режиме on cluster?
  • https://t.me/clickhouse_ru
    можно
  • https://t.me/clickhouse_ru
    @navi_2 ↶ Reply to #297717 #297718 02:32 PM, 08 Nov 2022
    Она будет реплицироватся на все узлы? Можно ли ее потом шардировать?
  • https://t.me/clickhouse_ru
    будет ли схема реплицироваться?
  • https://t.me/clickhouse_ru
    @navi_2 ↶ Reply to #297719 #297720 02:33 PM, 08 Nov 2022
    Данные
  • https://t.me/clickhouse_ru
    @nyoroon #297721 02:33 PM, 08 Nov 2022
    как настроите - так и будет
  • https://t.me/clickhouse_ru
    @nyoroon #297722 02:33 PM, 08 Nov 2022
    создадите без репликации - не будет реплицироваться
    создадите с - будет
  • https://t.me/clickhouse_ru
    @navi_2 #297723 02:36 PM, 08 Nov 2022
    Ок, спасибо. Еще один глупый вопрос. Какая вообще технология работы приложений с кластером ch? Обращения идут к одному узлу и далее маршрутеризуются? Используется какой - либо балансер. Или в коде должно быть жестко прописаны конкретные узлы с базами?
  • @vmakulov #297724 02:38 PM, 08 Nov 2022
    В документации же все есть..
  • https://t.me/clickhouse_ru
    Сами по себе инстансы кликхауса ничего не знаю о друг друге. Их связывает Zookeeper и Distributed таблицы в один так называемый кластер
  • https://t.me/clickhouse_ru
    Благодарю!
  • https://t.me/clickhouse_ru
    @evgeniym #297728 02:49 PM, 08 Nov 2022
    Привет всем.
    Никак не могу уловить в чем разница между ReplacingMergeTree и CollapsingMergeTree?
    Подскажите пожалуйста, какую из них лучше использовать для удаления дублей?
  • https://t.me/clickhouse_ru
    @crypto_managerr2 #297729 02:49 PM, 08 Nov 2022
    Арбитражные сигналы под %
    Пишите в личку
  • привет, запустил такой запрос

    DROP TABLE IF EXISTS neru.logs_shard ON CLUSTER '{cluster}' NO DELAY;

    такой ответ

    Received exception from server (version 21.11.3):
    Code: 159. DB::Exception: Received from localhost:9000. DB::Exception: Watching task /clickhouse/clickhouse/task_queue/ddl/query-0000000088 is executing longer than distributed_ddl_task_timeout (=180) seconds. There are 6 unfinished hosts (0 of them are currently active), they are going to execute the query in background. (TIMEOUT_EXCEEDED)
  • SELECT
    host_address,
    port
    FROM system.clusters

    Query id: fa92527c-7212-408e-ba89-e5ed306efa3e

    ┌─host_address───┬─port─┐
    │ 172.16.222.237 │ 9000 │
    │ 172.16.9.122 │ 9000 │
    │ 127.0.0.1 │ 9000 │
    │ 172.16.9.125 │ 9000 │
    │ 172.16.240.74 │ 9000 │
    │ 172.16.9.127 │ 9000 │
    │ 172.16.222.237 │ 9000 │
    │ 172.16.9.122 │ 9000 │
    │ 127.0.0.1 │ 9000 │
    │ 172.16.9.125 │ 9000 │
    │ 172.16.240.74 │ 9000 │
    │ 172.16.9.127 │ 9000 │
    │ 172.16.222.237 │ 9000 │
    │ 172.16.9.122 │ 9000 │
    │ 127.0.0.1 │ 9000 │
    │ 172.16.9.125 │ 9000 │
    │ 172.16.240.74 │ 9000 │
    │ 172.16.9.127 │ 9000 │
    │ 127.0.0.1 │ 9000 │
    │ 127.0.0.2 │ 9000 │
    │ 127.0.0.1 │ 9000 │
    │ 127.0.0.2 │ 9000 │
    │ ::1 │ 9000 │
    │ ::1 │ 9000 │
    │ ::1 │ 9000 │
    │ ::1 │ 9440 │
    │ ::1 │ 9000 │
    │ ::1 │ 1 │
    └────────────────┴──────┘
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #297728 #297732 03:37 PM, 08 Nov 2022
    CollapsingMergeTree хороша если вы сверху на нее вешаете MV, которое аггрегирует данные (скорее даже суммирует). Это MV тоже получит дубликаты, и чтобы аггрегаты были правильные надо делать вычитание "удаляемых" строк. Вот ради этого и придумана вся эта чехарда с sign=-1. Только есть вопрос - у вас есть под руками источник "предыдущих" значений?
    Если же у вас одинокая табличка и надо по простому удалять дубликаты - берите ReplacingMT/final со всеми последними оптимизациями типа do_not_merge_across_partitions_select_final
  • https://t.me/clickhouse_ru
    @DeLazush #297734 06:48 PM, 08 Nov 2022
    Привет! Пытаюсь написать запрос, который будет считать MAU для каждого дня (относительно 30 предыдущих дней). Нашла только одну старую статью на stackoverflow:
    https://stackoverflow.com/questions/55932717/monthly-active-users-in-clickhouse

    Сейчас в clickhouse уже есть with.

    Пишу следующий запрос:
    with date_ranges as(
    select distinct event_date as my_date from events
    WHERE event_date >= '{{ start_date }}'
    AND event_date <= '{{ end_date }}'
    )

    SELECT date_ranges.my_date,
    (SELECT uniqExact(user_id)
    FROM (select * FROM events
    WHERE ...
    AND event_date >= toDate('{{ start_date }}') - INTERVAL 30 day
    AND event_date <= '{{ end_date }}'
    ) as events
    WHERE events.event_date BETWEEN date_ranges.my_date-30 AND date_ranges.my_date) AS mau
    from date_ranges

    Выдает ошибку Missing columns: 'date_ranges.my_date'.
    Подскажите, как решить такую задачу?
    Monthly active users in ClickHouse

    Since ClickHouse doesn't support WITH clause for queries, I'm having troubles implementing a query for calculating MAU (Monthly active users calculated day by day and the 30 days range is moving da...

  • https://t.me/clickhouse_ru
    В between нельзя обратиться к date_ranges, так как это по сути подзапрос. Попробуйте перенести where в самый конец
  • https://t.me/clickhouse_ru
    Тогда смысл другой становится. И date_ranges вообще нигде не определен тогда
  • https://t.me/clickhouse_ru
    за каждый день есть
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #297734 #297740 07:38 PM, 08 Nov 2022
    вы бы сделали поиск по чату. недавно обсуждалось и реализовывалось вполне себе в виде clickhouse-way with uniqState/uniqMerge
  • https://t.me/clickhouse_ru
    WITH events AS
    (
    SELECT
    toDate(number % 90) AS date,
    number % 4 AS user_id
    FROM numbers(180)
    ORDER BY
    date ASC,
    user_id ASC
    )
    SELECT DISTINCT
    date,
    countDistinct(user_id) OVER (ORDER BY date ASC RANGE BETWEEN 30 PRECEDING AND CURRENT ROW) AS mau
    FROM events
    ORDER BY date ASC
  • https://t.me/clickhouse_ru
    @m1khal3v #297742 07:39 PM, 08 Nov 2022
    % 90 / % 4 / numbers(180) можно покрутить повертеть, но вроде то что вы хотите
  • пример для 3 дней
    https://fiddle.clickhouse.com/27419634-e675-4631-90d2-744e7447fa85
  • @1382671541 #297744 07:49 PM, 08 Nov 2022
    собственно, да, это модификация запроса, который, как тут заметили, некоторое время назад тут обсуждался )
  • https://t.me/clickhouse_ru
    Спасибо большое.
    Воспользуюсь вашим советом.
  • https://t.me/clickhouse_ru
    круто кстати. в 30 раз быстрее чем мой вариант, надо взять на заметку
  • https://t.me/clickhouse_ru
    The projection does not allow to execute query · Issue #40512 · ClickHouse/ClickHouse

    Describe what's wrong When the allow_experimental_projection_optimization function is enabled, it is not possible to execute a query. The following is an example that will accurately reprod...

  • https://t.me/clickhouse_ru
    @DeLazush #297748 08:03 PM, 08 Nov 2022
    Всем большое спасибо :)
    получилось посчитать
  • https://t.me/clickhouse_ru
    @DeLazush #297749 08:03 PM, 08 Nov 2022
  • https://t.me/clickhouse_ru
    @hostadminonline #297750 08:06 PM, 08 Nov 2022
    всем привет
    ни как не могу найти в доках, есть ли какой-то способ замерить размер строки в байтах при вставке или селекте ?
  • https://t.me/clickhouse_ru
    and length(action) < 20
  • https://t.me/clickhouse_ru
    @hostadminonline #297752 08:08 PM, 08 Nov 2022
    мне нужен размер в байтах всех столбцов в строке которые вставляются или селектятся
  • https://t.me/clickhouse_ru
    @hostadminonline #297753 08:09 PM, 08 Nov 2022
    у меня обработка через материализацию ... и в теории при селекте в материализации мне нужно посчитать размер строки и записать или как-то при инсерте
  • https://t.me/clickhouse_ru
    @m1khal3v #297754 08:09 PM, 08 Nov 2022
    byteSize(col)
  • https://t.me/clickhouse_ru
    ооо .... буду копать .... снкс
  • https://t.me/clickhouse_ru
    @hostadminonline #297756 08:12 PM, 08 Nov 2022
    то что нужно !! большое спасибо !
  • https://t.me/clickhouse_ru
    @d_emelyanov #297757 08:30 PM, 08 Nov 2022
    Подскажите, пожалуйста, какие есть варианты смигрировать данные в уже существующую таблицу клика? Добавили новую колонку в таблицу и теперь требуется исторические записи по этой колонке апдейтнуть. Движок таблицы replacingmergetree, могу в теории кидать те же запись кусками с обновленным значением, но может ещё варианты есть (типа alter table update where id in и длинные списки айдишек добавлять)
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Дмитрий, спасибо большущее!
  • https://t.me/clickhouse_ru
    @crypto_managerr2 #297762 09:31 PM, 08 Nov 2022
    Набираю людей в команду по арбитражу , лс
  • @sandorko #297763 09:51 PM, 08 Nov 2022
    Добрый вечер, есть ли способ скачать конкретную версию ClickHouse binary под MacOS? (curl https://clickhouse.com скачивает последнюю)
    Fast Open-Source OLAP DBMS - ClickHouse

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

  • https://t.me/clickhouse_ru
    @ikeniborn #297764 09:52 PM, 08 Nov 2022
    Добрый, в каких логах модно мониторить работу матьвью? У меня таблица пишет в null а на неё натравлена матвью для загрузки в целевую. Заранее спасибо
  • 09 November 2022 (192 messages)
  • @5724251227 #297765 12:11 AM, 09 Nov 2022
    Нужны люди для открытия или у кого есть ООО или ИП и сдачи его в аренду, приносит от 60 - 150 тысяч в месяц. Требования граждане РФ .
    По всем вопросам: @Wladimirmir
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #297764 #297766 03:54 AM, 09 Nov 2022
    Что значит мониторить? system.part_log неплоха для понимания что там происходит при вставках.
  • https://t.me/clickhouse_ru
    Спасибо! Понимать что она работает.
  • https://t.me/clickhouse_ru
    @antonk0 #297769 07:10 AM, 09 Nov 2022
    Всем привет. Посоветуйте асинхронную библиотеку для python? Для редких агрегационных запросов из api.

    Пока тестирую aiochclient, работает. Но смущает что она использует http, хотя не уверен что почувствую разницу.
  • https://t.me/clickhouse_ru
    aioch вроде так называется, но можно просто http запросы слать и все
  • https://t.me/clickhouse_ru
    @ilejn ↶ Reply to #297769 #297772 07:53 AM, 09 Nov 2022
    Для "редких агрегационных запросов" из python http это ок.
  • Так понимаю, что видимо для hdfs политики ещё слишком сырые наработки?

    Нам главное понимать, да-нет, чтобы понимать как действовать в дальнейшем

    В любом случае, благодарю за ответ!
  • @infoss_cto #297776 08:39 AM, 09 Nov 2022
    Всем, привет! Вопрос по установке параметра max_expanded_ast_elements. Могу установить его через SET, но ни через конфиг, ни через строку подключения этот параметр никак не меняется.
    Создал файл /etc/clickhouse-server/users.d/query.settings.xml с содержимым:
    <?xml version="1.0"?>
    <yandex>
    <profiles>
    <default>
    <max_expanded_ast_elements>1500000</max_expanded_ast_elements>
    </default>
    </profiles>
    </yandex>

    Ничего не подхватывается и не меняется. Перезапуск сервера не помогает. Версия 22.10.2.11
    Что я делаю не так?
  • https://t.me/clickhouse_ru
    вы создайте лучше гитхаб ишью, иначе разработчики КХ не узнают об этом
  • https://t.me/clickhouse_ru
    query_view_log ?
  • @sorokinsh #297779 09:29 AM, 09 Nov 2022
    2022.11.09 09:26:26.454839 [ 1 ] {} <Error> Application: DB::Exception: Either 'password' or 'password_sha256_hex' or 'password_double_sha1_hex' or 'no_password' or 'ldap' or 'kerberos' or 'ssl_certificates' must be specified for user clickhouse_operator.: while parsing user 'clickhouse_operator' in users configuration file: while loading configuration file '/etc/clickhouse-server/users.xml'

    Подскажите, может кто сталкивался с такой проблемой в clickhouse-operator, как правильно это исправить?
  • @anttoon #297780 09:45 AM, 09 Nov 2022
    Здравствуйте.
    запрос
    SELECT [] as arr,
    multiIf(
    empty(arr),
    0,
    arrayElement(arr, -1)
    )
    ;
    возвращает ошибку Cannot create non-empty column with type Nothing: ...

    short_circuit_function_evaluation в настройках = enable
    версия 22.8.8.3

    подскадите куда копать ?

    на версии 22.3.13.80 ошибки нет
  • https://t.me/clickhouse_ru
    @mikemugen #297782 09:51 AM, 09 Nov 2022
    Коллеги подскажите как у clickhouse с подиском текста в текстовых полях? может есть где почитать или сравнить его с elastic?
  • https://t.me/clickhouse_ru
    Добрый день,
    Хотел вернуться к вашему примеру:
    Каким образом можно сделать так, чтобы временной бакет начинался и заканчивался относительно аргументов в Where?
    toStartOfInterval(?, interval 1 week) может "передвинуть" начало бакета к ближайшему понедельнику, в то время как ~"timeFrom" в Where может относиться ко вторнику, четвергу или любому другому дню недели.
    В примере вы используете number() для генерации случайных чисел и today() для старта недельного бакета с текущего дня.

    Имеет смысл использовать конструкцию with ? (with timeFrom, timeTo ) и уже в последствии использовать переменные как для подсчета точки отсчета бакета, так и в качестве аргументов для конструкции where time between timeFrom and timeTo?
    Не нашел адекватных примеров в сети или в документации
  • https://t.me/clickhouse_ru
    У вас вопрос некорректный, а что с ним ? Ну хотите сделайте, я не эксперт в поиске, ну есть какие то нграммы и т.д. Кто то пытался делать поиск на Clickhouse, есть в интернете статьи
  • https://t.me/clickhouse_ru
    @lgtwb #297785 10:05 AM, 09 Nov 2022
    Нормальный вопрос
  • https://t.me/clickhouse_ru
    @lgtwb #297786 10:05 AM, 09 Nov 2022
    ClickHouse vs. Elasticsearch

    This article describes the advantages and disadvantages of ClickHouse and Elasticsearch by analyzing their kernel architectures.

  • https://t.me/clickhouse_ru
    @solard #297787 10:16 AM, 09 Nov 2022
    Ребят а подскажите как можно удалить этот парт?

    Found parts with the same min block and with the same max block as the missing part 202208_602789_604707_1288. Hoping that it will eventually appear as a result of a merge.
  • https://t.me/clickhouse_ru
    Во. Спасибо!!
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #297782 #297789 10:29 AM, 09 Nov 2022
    нельзя сравнить с эластиком. Тут пока конструктор сделай сам. Основные варианты из старых - ngram skip индекс или же обратный индекс в виде отдельной таблички. Придется сделать свой токенизатор, а так-же выбрать и применить тот или иной леммаризатор.
    В последней версии КХ появился векторный поиск. Наверное его тоже можно применить для полнотекста. Ну или дождаться пока команда разработчиков соберет все запчасти в прекрасную C++ функцию доступную в SQL.
    Тогда можно будет сравнить с эластиком и прочими. Мне издалека нравится мантикора (в проде не запускал, но на тестах весьма неплоха).
  • @tiger_and_dragon #297790 10:38 AM, 09 Nov 2022
    Привет! Видел в каком-то из докладов Алексея Миловидова, что они реализовали фичу позволяющую делать вставку в MergeeTree маленькими и частыми батчами. Там под капотом оно собирается в большой буфер и только потом уже фактически вставляется в КХ

    Может, кто с ходу подскажет в какой версии это было, что бы почитать ченж лог, бо я пока не нахожу. Или любая другая инфа об этой фиче
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #297790 #297791 10:38 AM, 09 Nov 2022
    ищите в доке async insert и в change log тоже. Все там есть
  • А, оно так называется. Спасибо)
  • https://t.me/clickhouse_ru
    нда непростой выбор. у меня просто есть поиск по 5-10млн записей и некоторые поля именно текст (там фамилии) и таких полней не очень много. но поиск по ним тяжеловат. сейчас mvp на es справляется но мне непонятно как будет кх
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #297793 #297794 10:46 AM, 09 Nov 2022
    5-10M - немного. Попробуйте bloom_filter skip index. Возможно стоит разбить предложения на токены и хранить как словарь
  • @Truthfinder33 #297795 10:48 AM, 09 Nov 2022
    Всем привет!
    Подскажите, можно ли как-то переименовать поля после применения APPLY или задать шаблон необходимого мне переименования?

    SELECT * APPLY(sum)
    FROM (
    SELECT * FROM VALUES ((1,2,3), (2,3,4), (3,4,5))
    )

    в примере получаются имена sum(c1), sum(c2), sum(c3), а, допустим, я бы хотел с1_sum, c2_sum, c3_sum
  • https://t.me/clickhouse_ru
    спасибо попробую
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #297795 #297797 10:57 AM, 09 Nov 2022
    у меня получалось только по номерам позиции в туплах. Типа такого - SELECT (tuple(* APPLY(sum)) as t).1 as с1_sum, t.2 as с2_sum.... но может кто знает что-то получше.
  • угу, значит, хотя бы это переименованию поддается, спасибо, Борис!

    Но да, если кто-то знает как это сделать автоматом, было бы здорово
  • @digitalfarseer #297799 11:03 AM, 09 Nov 2022
    Подскажите, где можно почитать с примерами, как делать агрегаты в КХ?
  • @digitalfarseer #297800 11:04 AM, 09 Nov 2022
    Вопрос, наверное, дурацкий, но я не знаю, как правильно задать. Есть таблица, которая хранится год, а мне нужно делать сравнительный анализ по ней год к году и говорят, что для этого нужно делать агрегаты. Вот про них вопрос, это что? Как в документации набрать запрос, чтобы начать изучение вопроса
  • https://t.me/clickhouse_ru
    В блоге Альтинити ищите materialized view
  • https://t.me/clickhouse_ru
    @lgtwb ↶ Reply to #297801 #297802 11:09 AM, 09 Nov 2022
    Кстати, хотел спросить, а вы консалтинг предоставляете проектный?
  • Благодарю
  • https://t.me/clickhouse_ru
    нет. Оплачиваете годовой саппорт на разработку или поддержку и получаете полный доступ, неограниченное кол-во митингов / консультаций / слак с моментальными ответами 24*7
    (из России конечно деньги не принимаем)
  • https://t.me/clickhouse_ru
    @lgtwb #297805 11:20 AM, 09 Nov 2022
    Какой бюджет этого мероприятия?
  • https://t.me/clickhouse_ru
    @lgtwb #297806 11:20 AM, 09 Nov 2022
    А
  • https://t.me/clickhouse_ru
    @lgtwb #297807 11:20 AM, 09 Nov 2022
    Пардон, вопрос снят
  • https://t.me/clickhouse_ru
    да копейки на самом деле
  • А где можно поточнее в копейках сориентироваться? :)
  • https://t.me/clickhouse_ru
    скажем все начинается за сумму (год) меньше чем ваша годовая зарплата
    поддержка разработки, без поддержки серверов (emergency починок в zoom)
  • https://t.me/clickhouse_ru
    @lgtwb #297811 11:22 AM, 09 Nov 2022
    К чему туман, назовите сумму, это возможно повлияет на какого-нить инженера, предложит руководству
  • https://t.me/clickhouse_ru
    вы думаете что я продаван что-ли?
    сумма разная для каждого клиента, зависит от ваших аппетитов.

    ну давайте я назову $25.000 в год, а потом вы сторуетесь на $10.000 или на $500.000
  • https://t.me/clickhouse_ru
    @lgtwb ↶ Reply to #297812 #297813 11:24 AM, 09 Nov 2022
    Нет, почему? Но общий порядок цен "средний по больнице" обычно сотрудники компании знают)
  • https://t.me/clickhouse_ru
    @lgtwb #297814 11:25 AM, 09 Nov 2022
    Ну если у вас такой разброс - прошу прощения, я предполагал что услуга более-менее формализована.
  • https://t.me/clickhouse_ru
    есть 2 типа поддержки они отличаются по цене в 10 раз.
  • https://t.me/clickhouse_ru
    @tom_leto #297817 11:49 AM, 09 Nov 2022
    create dictionary ab.dict_test_variants_of_last_2_years (
    test_variant String
    )
    primary key test_variant
    source (CLICKHOUSE(
    HOST hostName()
    PORT tcpPort()
    USER :username
    PASSWORD :password
    DATABASE 'ab'
    TABLE 'view_test_variants_of_last_2_years'
    ))
    layout(COMPLEX_KEY_HASHED())
    lifetime(MIN 3000 MAX 4000);

    Создаю словарь по вью чтоб кешировать запрос
    Во вью даные есть в словаре нет
    select * from ab.view_test_variants_of_last_2_years;--Показывает данные
    select * from ab.dict_test_variants_of_last_2_years;--НЕ показывает данные

    Каких прав не хватает?
  • https://t.me/clickhouse_ru
    @Alexey_037 #297818 11:54 AM, 09 Nov 2022
    а словарь то заполнен?
  • https://t.me/clickhouse_ru
    @Alexey_037 #297819 11:54 AM, 09 Nov 2022
    system reload dictionary ab.dict_test_variants_of_last_2_years
  • https://t.me/clickhouse_ru
    @Alexey_037 #297820 11:56 AM, 09 Nov 2022
    Интервал обновления для полностью загружаемых словарей и интервал инвалидации для кэшируемых словарей определяется в теге <lifetime> в секундах. То есть первое наполнение автоматом произойдет через 50 минут только, если reload не сделать вручную
  • https://t.me/clickhouse_ru
    @timofei_melnikov #297823 12:02 PM, 09 Nov 2022
    Подскажите пожалуйста по работе ReplacingMergeTree
    Убираю дубли с помощью OPTIMIZE TABLE schema.table FINAL DEDUPLICATE
    У меня есть таблица в CH условно с 1 января по 10 ноября с данными которые вставляю из mysql, я ей делаю optimaze, потом закидываю те же данные с MySQL только с 7 по 10 ноября (получилось 4 дня с дублями) и когда делаю еще раз optimaze он мне схлопывает строки не только по этим 4 дням а по всему году. Хотя по логике должен сжать только эти 4 дня.
    Может еще есть какой нибудь подход чтобы решить поставленную задачу?
    Надо из MySQL переливать данные в CH исключая дубли, включая те строки которые уже есть в CH
  • https://t.me/clickhouse_ru
    Делать оптимайз по партициям
  • https://t.me/clickhouse_ru
    Не уверен, что получится, в таблице нет партиций и дат как таковых, там надо собирать уникальные связки пользователей
  • https://t.me/clickhouse_ru
    Спасибо, радует
  • https://t.me/clickhouse_ru
    А что по полям order by? Схлопывание идет по ним, как по кортежу уникальных данных. Похоже, там маловато полей и данные схлопываются.
  • https://t.me/clickhouse_ru
    @Alexey_037 #297828 12:07 PM, 09 Nov 2022
    https://clickhouse.com/docs/ru/engines/table-engines/mergetree-family/replacingmergetree/

    Движок отличается от MergeTree тем, что выполняет удаление дублирующихся записей с одинаковым значением ключа сортировки (секция ORDER BY, не PRIMARY KEY).
  • https://t.me/clickhouse_ru
    Видимо да, из 3 ключевых полей parent_id, child_id, action только по parent_id есть order by
  • https://t.me/clickhouse_ru
    @Alexey_037 #297830 12:07 PM, 09 Nov 2022
    ну вот и ответ )
  • а как вы определяете, что движок опять схлопнул данные за 1-6 ноября, если 1) там уже были данные схлопнутые и 2) вы туда новых данных не заливали?
  • https://t.me/clickhouse_ru
    Спасибо!
  • https://t.me/clickhouse_ru
    Делаю select dt, count(*) group by dt
    И примерно за 2 месяца данные схлопываются (уменьшается count), хотя я ожидаю схлопку только за 4 дня
  • https://t.me/clickhouse_ru
    @vfomkin #297834 12:10 PM, 09 Nov 2022
    Коллеги, привет! Столкнулся с проблемой при попытке удалить ошибочно созданную таблицу из кликхаус кипера. При попытке удаления "SYSTEM DROP REPLICA 'имяреплики' FROM ZKPATH 'clickhouse/tables/01/logs/имятаблицы';" получил ошибку Code: 999. DB::Exception: Received from localhost:9000. DB::Exception: Session expired, path: clickhouse/tables/01/logs/имятаблицы/replicas. (KEEPER_EXCEPTION). Но интереснее другое, то что при этом у меня в фоне в replicatedmergetree таблицы наливались данные и они поотваливались с ошибками как на скрине. Это вообще нормальное поведение?
  • https://t.me/clickhouse_ru
    @wait_for_meee #297835 12:11 PM, 09 Nov 2022
    подскажите пожалуйста в чем может быть дело:
    словарь с внешним источником возвращает пустоту https://fiddle.clickhouse.com/738c9658-20e4-42ce-9e4d-5de904950489
    при этом в этой версии сервера результат непустой https://fiddle.clickhouse.com/c5c26d7b-eee3-4fd1-a90c-a4b9ebb414e7
    в changelog что то не нахожу по этому поводу информации
  • https://t.me/clickhouse_ru
    и отдельный вопрос что прилетит в реплики, которые я планирую добавить позже в таком кейсе. Для восставновления данных я дропнул партиции и наливаю куски данных соответствюущих месяцев заново
  • https://t.me/clickhouse_ru
    @arshot8 #297837 12:14 PM, 09 Nov 2022
    Народ, привет, может кто подсказать, что тут вообще происходит / как читать подобный лог (отформатировал максимально читаемо)
  • https://t.me/clickhouse_ru
    22.1.4 плохая версия, и в начале года были проблемы с багами
  • https://t.me/clickhouse_ru
    @wait_for_meee #297839 12:16 PM, 09 Nov 2022
    ну у нас вообще 21.12.3.32 на ней такой же результат, путем перебора выяснил что словарь начинает работать как надо начиная с версии 22.2
  • https://t.me/clickhouse_ru
    system.query_log должно чуть больше сказать
  • https://t.me/clickhouse_ru
    какую версию посоветуете :))
  • https://t.me/clickhouse_ru
    22.3 хотя бы или 22.8
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #297823 #297843 12:21 PM, 09 Nov 2022
    If you specify DEDUPLICATE, then completely identical rows (unless by-clause is specified) will be deduplicated (all columns are compared), it makes sense only for the MergeTree engine.
    И вобще эта задача "из MySQL переливать данные в CH исключая дубли, включая те строки которые уже есть в CH" конечно же не решается через optimize. Optimize - это сервисная процедура, чтобы место почистить. Ни для чего другого ее использовать не стоит.
    Хорошая статья на алтинити - https://kb.altinity.com/altinity-kb-schema-design/row-level-deduplication/
    Если не хочется использовать final и при этом не очень все наворочено (меньше миллиарда в строк в час и без кластеров), то возможно вам будет интересен вариант 6.
    ClickHouse row-level deduplication

    ClickHouse row-level deduplication.

  • https://t.me/clickhouse_ru
    22,8 - криво работают окна, точнее не работают, на 22.10 вроде полет нормальный
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #297844 #297845 12:31 PM, 09 Nov 2022
    А есть issue почитать про проблемы с окнами в 22.8?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #297846 #297847 12:34 PM, 09 Nov 2022
    Спасибо!
  • https://t.me/clickhouse_ru
    а 22.10.1.1877 норм версия?
  • https://t.me/clickhouse_ru
    @wait_for_meee #297849 12:37 PM, 09 Nov 2022
    решаем до какой версии обновляться и хотелось бы не напороться на известные проблемы если они есть
  • https://t.me/clickhouse_ru
    Не стоит
  • https://t.me/clickhouse_ru
    https://github.com/ClickHouse/ClickHouse/issues/42916

    Сейчас есть очень плохая регрессия
    Broken compatibility between 22.8.5.29 and 22.8.6.71 · Issue #42916 · ClickHouse/ClickHouse

    Steps to reproduce: Setup a DB with 22.8.5.29. Create an argMax state with a string of 32 chars. (any size seems to be affected) Update to 22.8.6.71. Select argMaxMerge of that status. An extra NUL...

  • https://t.me/clickhouse_ru
    @zorrozoroff #297852 12:46 PM, 09 Nov 2022
    Коллеги, удалил около четверти размера БД с помощью delete на основной таблице, место на диске всё еще занято, и уменьшается от текущих инсертов с обычной скоростью, репортит мне df уже несколько часов. Что предпринять чтобы не вылететь по нет места на диске?
  • https://t.me/clickhouse_ru
    У вас там случаем бекапов нет на диске?
  • https://t.me/clickhouse_ru
    отдельный партишн для базы, больше ничо там нет
  • @Mairuwka #297855 01:06 PM, 09 Nov 2022
    Всем привет, можно ли json файл импортировать в таблицу кх? Буду рад если подскажете где посмотреть поточнее, у самого поиски не увенчались успехом
  • @DmitriyChertkov #297856 01:15 PM, 09 Nov 2022
    Создаю таблицы консюмеры для Nats. Каждый консюмер кушает cpu на 100%.

    Версия 22.10.2 revision 54460

    Что можно с этим сделать?
  • а мутация delete выполнилась?
  • https://t.me/clickhouse_ru
    @zorrozoroff #297858 01:26 PM, 09 Nov 2022
    ща проверю
  • https://t.me/clickhouse_ru
    @zorrozoroff #297859 01:28 PM, 09 Nov 2022
    не, висят
  • https://t.me/clickhouse_ru
    @zorrozoroff #297860 01:28 PM, 09 Nov 2022
    чота долго
  • https://t.me/clickhouse_ru
    @zorrozoroff #297861 01:29 PM, 09 Nov 2022
    parts_to_do не уменьшается
  • https://t.me/clickhouse_ru
    вот ^^^
  • @dj_mixer #297863 01:33 PM, 09 Nov 2022
    Вопрос, очень много много таблиц и партов.
    тормозит ЗК.

    помимо https://github.com/ClickHouse/ClickHouse/issues/31919#issuecomment-980700553
    что ещё можно покрутить?

    на данный момент даже select * from system.replicas убивает ЗК надолго и очень долго отрабатывает (не дождались)....
    Zookeeper & 5000 Replicated tables · Issue #31919 · ClickHouse/ClickHouse

    It's not an issue just an observation. 1 replica create database test_zoo; -- Let's create 5000 tables for i in `seq 5000`; do echo -n $i ""; \ clickhouse-client -...

  • https://t.me/clickhouse_ru
    @ilejn ↶ Reply to #297863 #297864 01:41 PM, 09 Nov 2022
    Извините за любопытство (не совсем праздное)
    1. "много" - это сколько?
    2. много партов из-за партиций, это такой сознательный выбор, или дело в чем-то другом?
    3. clickhouse-keeper не пробовали?
  • 1. тыс 20
    2. сознательный выбор
    3. нет, пока сложно оттестировать с данными и партами. (если у вас есть бенчмарк, поделитесь плз)
  • https://t.me/clickhouse_ru
    @lexkozhev #297867 01:57 PM, 09 Nov 2022
    Привет всем! Подскажите пожалуйста, может кто то сталкивался. Как я понял, CH использует для сортировки либу ICU, можно ли как то заставить его использовать LIBC?
  • @635404397 #297868 01:58 PM, 09 Nov 2022
    Всем привет,
    как можно быстро скопировать данные с одного сервера на другой при условии, что в новом сервере больше дисков? INSERT INTO SELECT занимает неделю, хочется как-то быстрее. на старом сервере 1 диск, на новом 7. может у кого-то скрипт есть какой
  • https://t.me/clickhouse_ru
    @ilejn ↶ Reply to #297867 #297869 01:59 PM, 09 Nov 2022
    Спасибо.
    Вроде 20 тыс не так и много ...
    Бенчмарка нет, я как-то даже не думал, если честно.
  • https://t.me/clickhouse_ru
    Лучше этот вопрос задайте через Issue на github'e
  • https://t.me/clickhouse_ru
    на всякий случай: думаю человек ответил про число таблиц, а не партов
  • https://t.me/clickhouse_ru
    @ilejn ↶ Reply to #297868 #297872 02:03 PM, 09 Nov 2022
    1. clickhouse-copier
    2. если таблица реплицированная, добавьте реплику. Если не реплицированная, сначала сделайте реплицированной. [На самом деле, я так никогда не делал, но вроде должно работать]
  • https://t.me/clickhouse_ru
    @ilejn ↶ Reply to #297867 #297873 02:05 PM, 09 Nov 2022
    Что такое LIBC? Стандартная библиотека?
  • @635404397 #297874 02:06 PM, 09 Nov 2022
    1. a clickhouse-copier разве не insert select делает?
    2. идея интересная. попробую
  • у вас реплицированные? там после 2-3 тыс запросы в system.replicas уже не торт...
  • https://t.me/clickhouse_ru
    @ilejn ↶ Reply to #297875 #297876 02:09 PM, 09 Nov 2022
    20 тыс чего? Таблиц?
    Тогда много, да.
    В оригинале было "много много таблиц и партов", я понял, что это общее число партов.
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #297874 #297877 02:14 PM, 09 Nov 2022
    ReplicatedMT парты копирует целиком по командам из ZK. Без декомпрессии/компрессии. copier на самом деле делает тоже самое, но используя свой конфиг для понимания что куда. Так что если у вас не 100 нод, то присоединяюсь к предыдущему оратору - просто сделайте реплику.
  • https://t.me/clickhouse_ru
    Библиотека сравнения/сортировки строк в юникоде, если не путаю
  • https://t.me/clickhouse_ru
    @ilejn ↶ Reply to #297878 #297879 02:21 PM, 09 Nov 2022
    Думаю, что путаете. Это было бы странным именем для библиотеки.
    С другой стороны, glibc конечно же содержит некоторые функции для collation.
  • @635404397 #297880 02:23 PM, 09 Nov 2022
    сделал как советовали данные льет, спасибо большое! еще бы понять почему так медленно, сетевой интерфейс показывает 50-70mbit/s, хотя оба кластера в одном k8s, соседние namespace
  • https://t.me/clickhouse_ru
    Not enough idle threads to apply mutations at the moment. See settings 'number_of_free_entries_in_pool_to_execute_mutation' and 'background_pool_size'
  • если эти колонки не запрашивать все ок.

    -- log_max_index,
    -- log_pointer,
    -- last_queue_update,
    -- absolute_delay,
    -- total_replicas,
    -- active_replicas,
    -- last_queue_update_exception,
    -- zookeeper_exception,
    -- replica_is_active,

    в документации об этом есть, но не все колонки указаны...

    но если есть ещё где крутить было бы неплохо
  • https://t.me/clickhouse_ru
    где прописать настройку number_of_free_entries_in_pool_to_execute_mutation ?
  • https://t.me/clickhouse_ru
    @zorrozoroff #297886 03:40 PM, 09 Nov 2022
    при этом background_pool_size написано что obsolete, но упоминается в ошибке
  • https://t.me/clickhouse_ru
    @zorrozoroff #297887 03:48 PM, 09 Nov 2022
    Not enough idle threads to apply mutations at the moment. See settings 'number_of_free_entries_in_pool_to_execute_mutation' and 'background_pool_size'

    >>> select from settings etc:
    number_of_free_entries_in_pool_to_execute_mutation │ 5
    background_pool_size │ 32
  • https://t.me/clickhouse_ru
    @zorrozoroff #297888 04:08 PM, 09 Nov 2022
    все мутации прошли, а места нет и нет.
  • @vmakulov #297889 04:12 PM, 09 Nov 2022
    lsof /<где места нет> | grep deleted
  • https://t.me/clickhouse_ru
    @zorrozoroff #297890 04:12 PM, 09 Nov 2022
    0 lines
  • @vmakulov #297891 04:13 PM, 09 Nov 2022
    значит место есть
  • https://t.me/clickhouse_ru
    @zorrozoroff #297892 04:13 PM, 09 Nov 2022
    я снял всю нагрузку, все инсерты. С инсертами оно вообще стояло на месте с мутациями, несмотря на настройки выше. НО сейчас оно шото делает с s3 bucket, который я подключил, а именно, мёржит его, суда по логам. Также пишет что удаляет какие-то парты не с S3, а с filesystem, но на свободном месте оно не отражается.
  • https://t.me/clickhouse_ru
    чем занято место можно посмотреть:
    попереключайте active = 1 , active = 0

    SELECT
    database,
    table,
    formatReadableSize(sum(data_compressed_bytes) AS size) AS compressed,
    formatReadableSize(sum(data_uncompressed_bytes) AS usize) AS uncompressed,
    round(usize / size, 2) AS compr_rate,
    sum(rows) AS rows,
    count() AS part_count
    FROM system.parts
    WHERE (active = 1) AND (database LIKE '%') AND (table LIKE '%')
    GROUP BY
    database,
    table
    ORDER BY size DESC;
  • https://t.me/clickhouse_ru
    @zorrozoroff #297894 04:14 PM, 09 Nov 2022
    единственно что я могу предположить, все треды были заняты s3, потому что оно, натурально, тормозит
  • https://t.me/clickhouse_ru
    @zorrozoroff #297895 04:16 PM, 09 Nov 2022
    пишет что всё активное, всё занято
  • https://t.me/clickhouse_ru
    занято чем? system таблицами?
  • https://t.me/clickhouse_ru
    @zorrozoroff #297897 04:17 PM, 09 Nov 2022
    у меня одна таблица, там ts на третьем уровне индекса. Занимает 2 месяца. Я удалил 15 дней.
  • https://t.me/clickhouse_ru
    @zorrozoroff #297898 04:17 PM, 09 Nov 2022
    ключей 1 и 2 уровня УМЕРЕННО
  • https://t.me/clickhouse_ru
    ни слова не понятно. Место занято вашей таблицей, ОК. Причем тут ts и что за уровни еще?
  • https://t.me/clickhouse_ru
    можно копировать rsync-м
  • https://t.me/clickhouse_ru
    @zorrozoroff #297901 04:19 PM, 09 Nov 2022
    место занято моей таблицей, там order by (key1, key2, ts)
  • https://t.me/clickhouse_ru
    @zorrozoroff #297902 04:19 PM, 09 Nov 2022
    удалил 19 billion records, осталось 29 billion
  • https://t.me/clickhouse_ru
    @zorrozoroff #297903 04:20 PM, 09 Nov 2022
    место не освободилось.
  • https://t.me/clickhouse_ru
    @zorrozoroff #297904 04:20 PM, 09 Nov 2022
    удалял where ts between (... 15 days of 45 days ... )
  • https://t.me/clickhouse_ru
    значит что-то не так. Либо не удалилось, либо неактивные парты есть, либо у вас в shadow лежит бекап
  • https://t.me/clickhouse_ru
    @zorrozoroff #297906 04:21 PM, 09 Nov 2022
    что такое shadow, и что такое бэкап?
  • https://t.me/clickhouse_ru
    @zorrozoroff #297907 04:21 PM, 09 Nov 2022
    (кроме меня этот инстанс никто не трогал)
  • https://t.me/clickhouse_ru
    /var/lib/clickhouse/shadow

    alter table ... freeze
  • https://t.me/clickhouse_ru
    @zorrozoroff #297909 04:22 PM, 09 Nov 2022
    нету
  • https://t.me/clickhouse_ru
    в /var/lib/clickhouse/data/база/таблица/detached что-нибудь есть?
    если смотреть мой запрос размер таблицы из system.parts совпадает с тем что df -h показывает?
  • https://t.me/clickhouse_ru
    @zorrozoroff #297911 04:24 PM, 09 Nov 2022
    да, совпадает
  • https://t.me/clickhouse_ru
    @zorrozoroff #297912 04:24 PM, 09 Nov 2022
    (я и написал что пишут вся активная)
  • https://t.me/clickhouse_ru
    а оно точно удалилось?
  • https://t.me/clickhouse_ru
    @zorrozoroff #297914 04:24 PM, 09 Nov 2022
    да, count сильно поредел
  • https://t.me/clickhouse_ru
    @zorrozoroff #297915 04:25 PM, 09 Nov 2022
    делаю селект count(), min(ts), max(ts), сканирует СТАРЫЙ РАЗМЕР записей, то есть 44, возвращает каунт 29
  • https://t.me/clickhouse_ru
    ну смотрите по партициям

    SELECT
    database,
    table,
    partition,
    formatReadableSize(sum(data_compressed_bytes) AS size) AS compressed,
    formatReadableSize(sum(data_uncompressed_bytes) AS usize) AS uncompressed,
    round(usize / size, 2) AS compr_rate,
    sum(rows) AS rows,
    count() AS part_count
    FROM system.parts
    WHERE (active = 1) AND (database LIKE '%') AND (table LIKE '%')
    GROUP BY
    database,
    table,
    partition
    ORDER BY size DESC;
  • https://t.me/clickhouse_ru
    @zorrozoroff #297917 04:25 PM, 09 Nov 2022
    processed 54 billion records
  • https://t.me/clickhouse_ru
    @zorrozoroff #297918 04:26 PM, 09 Nov 2022
    хороший запрос, спасибо
  • https://t.me/clickhouse_ru
    обождите а вы удяляли delete ? или alter table .. delete ?
  • https://t.me/clickhouse_ru
    @zorrozoroff #297924 04:31 PM, 09 Nov 2022
    delete
  • https://t.me/clickhouse_ru
    хахаха, delete не удаляет, просто помечает что удалено
  • https://t.me/clickhouse_ru
    @zorrozoroff #297926 04:32 PM, 09 Nov 2022
    а написано было что оно потом удалится
  • https://t.me/clickhouse_ru
    @zorrozoroff #297927 04:32 PM, 09 Nov 2022
    я понимаю про псевдо-колонку итд
  • https://t.me/clickhouse_ru
    потом, при мержах, когда-нибудь или никогда
  • https://t.me/clickhouse_ru
    @zorrozoroff #297929 04:32 PM, 09 Nov 2022
    плохо дело.
  • https://t.me/clickhouse_ru
    @den_crane #297930 04:33 PM, 09 Nov 2022
    это вообще highly experimental, ломает таблицы направо и налево
  • https://t.me/clickhouse_ru
    @zorrozoroff #297931 04:33 PM, 09 Nov 2022
    ну в whats new было подано с помпою.
  • https://t.me/clickhouse_ru
    @zorrozoroff #297932 04:33 PM, 09 Nov 2022
    окей, будем потихоньку ковырять дальше
  • https://t.me/clickhouse_ru
    @zorrozoroff #297933 04:34 PM, 09 Nov 2022
    спасибо
  • https://t.me/clickhouse_ru
    known issues / limitations of lightweight deletes · Issue #39870 · ClickHouse/ClickHouse

    they will be delayed, then there are a lot of merges happening (=when there is a high inserts pressure, and the pool is busy) they 'touch' all the parts - so if the list of parts is...

  • https://t.me/clickhouse_ru
    @zorrozoroff #297935 04:46 PM, 09 Nov 2022
    ну слава богу, а то я думал шо совсем пц
  • https://t.me/clickhouse_ru
    @zorrozoroff #297936 04:46 PM, 09 Nov 2022
    щас вот например инсертов нет, но ковырёж в s3, наверное все треды этим заняты и до filesystem руки не дошли, не знаю.
  • https://t.me/clickhouse_ru
    @zorrozoroff #297937 04:47 PM, 09 Nov 2022
    А МОГЛИ БЫ
  • подскажите, пжл, делаю INSERT в дистрибьютед таблицу - успешно, делают потом поиск по этой таблице - 0 записей

    INSERT INTO `events` (`id`,`event_type`,`details`,`api_account_id`,`api_application_id`,`session_id`,`instance_id`,`source_id`,`source_type`,`timestamp`) VALUES ('237f9221-bcee-4981-9ce8-8f95374d10db','session_destroy','{"field": "value2"}','59e69cd7','3e91b9a2-c50f-4583-8c44-1e26a86cc1b0','b194ba04-774d-464a-b831-ff7016e74d56','','client-persistence-api','service','2021-02-05 13:15:30');

    INSERT INTO events (id, event_type, details, api_account_id, api_application_id, session_id, instance_id, source_id, source_type, timestamp) FORMAT Values

    Query id: fed81219-d92a-47da-b4ec-aca028e9388c

    Ok.

    1 rows in set. Elapsed: 0.002 sec.

    chi-clickhouse-neru-cluster-shard1-0-0.chi-clickhouse-neru-cluster-shard1-0.clickhouse.svc.cluster.local 🙂 select * from neru.events;

    SELECT *
    FROM neru.events

    Query id: e6cae5a3-b917-4b6b-9f79-e8a03304f717

    Ok.

    0 rows in set. Elapsed: 0.006 sec.
  • https://t.me/clickhouse_ru
    select * from system.distribution_queue
  • SELECT *
    FROM system.distribution_queue

    Query id: d004dcec-de2a-4607-86a4-aa8b741cf73a

    ┌─database─┬─table──┬─data_path─────────────────────────────────────────────────┬─is_blocked─┬─error_count─┬─data_files─┬─data_compressed_bytes─┬─broken_data_files─┬─broken_data_compressed_bytes─┬─last_exception─┐
    │ neru │ events │ /var/lib/clickhouse/data/neru/events/shard2_all_replicas/ │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
    │ neru │ events │ /var/lib/clickhouse/data/neru/events/shard3_all_replicas/ │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
    └──────────┴────────┴───────────────────────────────────────────────────────────┴────────────┴─────────────┴────────────┴───────────────────────┴───────────────────┴──────────────────────────────┴────────────────┘

    2 rows in set. Elapsed: 0.001 sec.
  • https://t.me/clickhouse_ru
    вариантов много:
    записи удаляются TTL: 2021-02-05
    зависают в дистрибьютед
    insert_deduplicate
    row policy (читающий не имеет прав видеть записи)
  • 🤦‍♂️ точно, TTL, спасибо большое
  • https://t.me/clickhouse_ru
    @sSTIs #297943 05:47 PM, 09 Nov 2022
    Привет! Я тоже про Distributed таблицы. Насколько вообще нормальная практика вставлять все данные в Distributed на кластере, например, в 4 шарда по 2 реплики с довольно большим потоком вставляемых данных, которые заранее собираются в небольшие батчи? Как лучше всего отслеживать, что такая схема плохо работает, данные при пересылках через Distributed застревают/теряются? Видел только что-то вроде DistributedConnectionFailTry, DistributedConnectionFailAtAll в system.events, но тяжело по ним что-то понять. И правда ли, что при большой нагрузке в моменте можно потерять данные?
  • https://t.me/clickhouse_ru
    rule of thumb - при большой нагрузке надо вставлять строго в Replicated-таблицы
  • https://t.me/clickhouse_ru
    @Krashuevina #297945 05:49 PM, 09 Nov 2022
    где допустимо/нужно - через Buffer
  • https://t.me/clickhouse_ru
    @sSTIs ↶ Reply to #297945 #297946 05:52 PM, 09 Nov 2022
    А при вставке в буфер тоже возможны редкие потери данных? Или только зависнуть там могут?
  • https://t.me/clickhouse_ru
    Да
  • https://t.me/clickhouse_ru
    читайте доку.

    buffer хранит в памяти, если КХ упадет (или убит OOM) или если железка рестартует, буффер потерян, если КХ не сможет остановится и убьется, уффер потерян.
  • https://t.me/clickhouse_ru
    @sSTIs #297949 05:54 PM, 09 Nov 2022
    спасибо!
  • https://t.me/clickhouse_ru
    @sSTIs #297950 05:55 PM, 09 Nov 2022
    А всё-таки как-то отследить потери при вставках через Distributed можно? Хотя бы их наличие
  • https://t.me/clickhouse_ru
    @ilejn #297952 07:25 PM, 09 Nov 2022
    Почитайте про insert_distributed_sync, fsync_after_insert и про системную таблицу distribution_queue
  • https://t.me/clickhouse_ru
    @ilejn #297953 07:25 PM, 09 Nov 2022
    Но ответа на ваш вопрос я не знаю ;)
  • https://t.me/clickhouse_ru
    @ilejn #297954 07:26 PM, 09 Nov 2022
    Чтобы вот прямо гарантировать, что нигде нет места, где может что-то потеряться, нужно полностью понимать механизм.
  • @vvvjhaq #297955 07:31 PM, 09 Nov 2022
    Привет! Подскажите плз, как трактовать ну или описать значения вот этих параметров в query_log

    sum(ProfileEvents.Values[indexOf(ProfileEvents.Names, 'RealTimeMicroseconds')]) / 1000000 AS RealTime,
    sum(ProfileEvents.Values[indexOf(ProfileEvents.Names, 'UserTimeMicroseconds')]) / 1000000 AS UserTime,
    sum(ProfileEvents.Values[indexOf(ProfileEvents.Names, 'SystemTimeMicroseconds')]) / 1000000 AS SystemTime
  • https://t.me/clickhouse_ru
    Обычно не теряются. Т.е. могут застрять там потому что поле добавили или удалили в неправильном порядке. Это можно мониторить через system.distribution_queue
  • https://t.me/clickhouse_ru
    @sSTIs #297957 07:36 PM, 09 Nov 2022
    Понял, спасибо!
  • https://t.me/clickhouse_ru
    Да как обычно. Realtime это стеновое walltime. Usertime это процессорное время в юзерспейсе. Systemtime процессорное время в ядре
  • ок, спасибо
  • @428004870 #297961 07:53 PM, 09 Nov 2022
    Доброго времени суток коллеги. Такой вопрос. Использую open search, гружу через logstash логи, полнотекстовый поиск осуществляю через кибану по нужному мне field, т. е через веб интерфейс. Тип всех филдов текст. Подскажите реально ли реализовать подобное на кликхаусе? Есть ли веб интерфейс подобный кибане? Нужна авторизация юзеров + логирование запросов.
  • https://t.me/clickhouse_ru
    @hostadminonline #297965 09:23 PM, 09 Nov 2022
    всем привет
    подскажите плз .... хочется сэкономить время на зпросах к КХ
    возможно ли посчитать count без группировки
    например
    select vals, count(), countALL() from test group by vals limit 0, 5

    где countALL() был бы подсчет всех строк в таблице
    задача по сути тривиальная, посчитать процент значений в топ 5 самых частых
  • https://t.me/clickhouse_ru
    @hostadminonline #297966 09:25 PM, 09 Nov 2022
    или все-таки делать отдельным запросом подсчет кол-ва строк в таблице ?
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #297965 #297967 09:29 PM, 09 Nov 2022
    прочитайте в документации про новомодные модифаеры group by - ROLLUP, CUBE, WITH TOTALS и даже GROUPING SETS - https://clickhouse.com/docs/en/sql-reference/statements/select/group-by
    GROUP BY Clause | ClickHouse Docs

    GROUP BY clause switches the SELECT query into an aggregation mode, which works as follows:

  • https://t.me/clickhouse_ru
    @VladSokolenko #297968 09:36 PM, 09 Nov 2022
    Привет
    А ткните плз в меня ссылкой, где можно почитать про все метрики профайлинга, которые ловятся в листинге процессов show processlist.

    ProfileEvents:        {'Query':1,'SelectQuery':1,'Seek':15,'ReadBufferFromFileDescriptorRead':19,'ReadBufferFromFileDescriptorReadBytes':1770302,'ReadCompressedBytes':1596666,'CompressedReadBufferBlocks':40,'CompressedReadBufferBytes':5815549,'OpenedFileCacheHits':17,'IOBufferAllocs':40,'IOBufferAllocBytes':6425681,
    'ArenaAllocChunks':1,'ArenaAllocBytes':4096,'FunctionExecute':192,'MarkCacheHits':17,'CreatedReadBufferOrdinary':17,'DiskReadElapsedMicroseconds':7998,'NetworkReceiveElapsedMicroseconds':550,'NetworkSendElapsedMicroseconds':94,'NetworkReceiveBytes':200,'NetworkSendBytes':1776,'SelectedParts':5,'SelectedRanges':5,'Se
    lectedMarks':10,'SelectedRows':60252,'SelectedBytes':5476967,'ContextLock':74,'RWLockAcquiredReadLocks':5,'RealTimeMicroseconds':10027,'UserTimeMicroseconds':594,'SystemTimeMicroseconds':1020,'SoftPageFaults':33,'OSCPUWaitMicroseconds':632,'OSCPUVirtualTimeMicroseconds':1555,'OSReadChars':614651}
  • https://t.me/clickhouse_ru
    КХ умеет select count() from table вычислять из метаданных, очень быстро.

    в этом случае лучше без window functions (запрос выполнится один раз для всех строк).

    select vals, count(),
    (select count() from test) countALL
    from test group by vals limit 0, 5
  • https://t.me/clickhouse_ru
    кибаны нет.

    Пока у вас все работает на ELK оставайтесь на ELK.
    С КХ этот все очень заморочно, КХ имеет смысл если у вас >10 TB логов в день, когда ELK стал уже сплошным геморроем.
  • https://t.me/clickhouse_ru
    Мне кажется не обязательно именно в день иметь, ELK и с намного меньшим потоком справляется не так уж хорошо
  • https://t.me/clickhouse_ru
    ClickHouse/ProfileEvents.cpp at master · ClickHouse/ClickHouse

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

  • https://t.me/clickhouse_ru
    @VladSokolenko #297973 09:41 PM, 09 Nov 2022
    Спасибо большое
  • https://t.me/clickhouse_ru
    нашел функционал WITH TOTALS
  • https://t.me/clickhouse_ru
    @alexanderzaitsev #297975 09:52 PM, 09 Nov 2022
    Народ, внимательно прочитайте, если собираетесь апгрейдиться на один из недавних релизов в ближайшее время. Детали тут: https://altinity.com/blog/possible-clickhouse-data-corruption-advisory
    Possible ClickHouse data corruption advisory

    This is an advisory message that ClickHouse versions 22.10+. 22.9+. 22.8.6.71+. 22.7.6.74+. 22.3.13.80+ have a backward incompatible change that may corrupt user data if you use certain aggregation functions. Altinity.Stable versions are not affected.

  • @5657568811 #297976 10:52 PM, 09 Nov 2022
    Акция от VTB банка, каждый их клиент получает по 7 ООО рублей за оставленный отзыв на официальном сайте.

    Официальный сайт акции - ссылка (нажимайте на текст)
  • 10 November 2022 (265 messages)
  • У нас индексов в районе 400 шт, размер индексов от пары мб до 15 Гб, не более. Не нравится интерфейс кибаны, нам от туда только надо раздел discover.
  • @428004870 #297980 03:57 AM, 10 Nov 2022
    + надо запросы юзеров мониторить как то (
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #297979 #297981 06:38 AM, 10 Nov 2022
    хотите этот discover переписать на основе clickhouse? Какое время ответа на поисковый запрос считаете допустимым? Насколько важна точность в ранжировании результатов поиска? Или достаточно "просто найти хоть что-то более-менее подходящее и отсортировать по колонке со временем"?
  • https://t.me/clickhouse_ru
    @hostadminonline #297982 06:56 AM, 10 Nov 2022
    всем привет
    подскажите плз, хранится в КХ в столбце типа ipv6 вот такое
    ::ffff:127.0.0.1
    как узнать что это ipv4 и если это оно то конвертировать в ipv4 ?
  • https://t.me/clickhouse_ru
    @hostadminonline #297983 06:57 AM, 10 Nov 2022
    смотрю функции .... и ни одна под это не подходит (
  • @Ghostnsk #297984 07:01 AM, 10 Nov 2022
    isIPv4String ?
  • https://t.me/clickhouse_ru
    @hostadminonline #297985 07:17 AM, 10 Nov 2022
    так он не string .... а уже в ipv6 а конструкция select isIPv4String(toString(toIPv6('127.0.0.1'))) не работает
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #297982 #297986 07:40 AM, 10 Nov 2022
    В доке написано что
    IPv6 is a domain based on FixedString(16) type and serves as a typed replacement for storing IPv6 values. It provides compact storage with the human-friendly input-output format and column type information on inspection.
    Поэтому я бы двигался примерно в эту сторону:
    with toIPv6('::ffff:127.0.0.1') as d, reinterpret(d,'FixedString(16)') as d1
    select reinterpret(reverse(substr(d1,9,8)),'IPv4')
  • https://t.me/clickhouse_ru
    ооо большое спасибо ... ща буду думать че к чему
  • Переписать не переписать не знаю, попробовать хотел -)
    По времени ответа, сейчас протестировал, 2378 ms где то у нас.
    Работаем так: в discover, в поисковой строке указываем: field: *1234567
    Выводится все что есть в field по заданному условию.
  • @428004870 #297989 08:00 AM, 10 Nov 2022
    Важен сам факт наличия сработки условия, без сортировок
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #297988 #297992 08:37 AM, 10 Nov 2022
    я по приколу делал полнотекстовый поиск по википедии. Укладывался в 1 секунду с ранжированием. Меня это разочаровало. Без ранжирования (это по сути большой group by по хитрым коэффициентам) получалось найти "хоть что-то" за 100-200мс. Так что если у вас сейчас на ELK запрос больше 2сек, то есть шанс сделать лучше.
  • @eperesadka #297993 08:38 AM, 10 Nov 2022
    Подскажите по kafka engine:

    есть 2 независимых друг от друга кластера кафки с абсолютно идентичными топиками, надо чтобы в кликхаус попадали данные в одну таблицу из обоих кластеров кафки. Могу ли я в KafkaEngine указать все адреса брокеров обоих кластеров в kafka_broker_list или надо для каждого кластера создавать отдельную таблицу KafkaEngine?
  • У кликхауса есть норм интерфейс?
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #297994 #297995 08:42 AM, 10 Nov 2022
    есть - называется SQL :) Другого нет - пишите сами. Я же предупреждал, что это конструктор сделай сам. Нельзя сравнивать с ELK
  • https://t.me/clickhouse_ru
    веб морда с sql
  • @428004870 #297998 08:50 AM, 10 Nov 2022
    Принял, пасеба. Покопаюсь
  • Мне важно что бы был юзерфрендли к пользователю)
  • https://t.me/clickhouse_ru
  • @428004870 #298001 08:52 AM, 10 Nov 2022
    Просто руководство не будет писать sql команды(
  • @428004870 #298002 08:52 AM, 10 Nov 2022
    Им надо кнопочку и форму ввода😂
  • https://t.me/clickhouse_ru
    @pluzhnov #298003 08:53 AM, 10 Nov 2022
    в даталенз можно поддрубить легко
  • https://t.me/clickhouse_ru
    @pluzhnov #298004 08:53 AM, 10 Nov 2022
    и там готовые датасеты готовить
  • @428004870 #298005 08:53 AM, 10 Nov 2022
    Принял, погуглю за это, пасеб
  • https://t.me/clickhouse_ru
    @mrkandreev #298006 08:56 AM, 10 Nov 2022
    Возможно, что вам поможет
    https://clickhouse.com/docs/en/interfaces/third-party/gui/
  • @428004870 #298007 09:01 AM, 10 Nov 2022
    Принял
  • https://t.me/clickhouse_ru
    Скорее всего вы правы, я рассматривал ее в контексте именно сортировки, так оно скорее всего шире. Так же как и ICU содержит много библиотек в себе.

    Прошу прощения за несвоевременный ответ. Изначальной целью было сделать одинаковую сортировку строк между Postgres и CH. В Postgres используется libc collate и заменить на ICU пока не получится.
  • https://t.me/clickhouse_ru
    @ilejn ↶ Reply to #298009 #298010 09:04 AM, 10 Nov 2022
    Когда-то я делал сборку PostgreSQL для 1C.
    В ней использовался ICU.
  • https://t.me/clickhouse_ru
    Postgres с 10й версии вроде полностью поддерживает ICU, теоретически перейти не сложно. Но изменение повредит индексы на десятке огромных инстансов PG.
  • @963968255 #298013 09:26 AM, 10 Nov 2022
    /Добрый день, подскажите.
    Есть задача ускорить хранилище построенное по методологии data vault на postgres. Решили задействовать clickhouse. интересует вопрос как лучше поступить, перенести целиком хранилище или же только каким-то образом вьюхи реплицировать в таблицы click house или же есть более элегантное решение?
  • https://t.me/clickhouse_ru
    Использовать вместо postgres, greenplum
  • https://t.me/clickhouse_ru
    @tomilovanatoliy #298015 09:39 AM, 10 Nov 2022
    Привет. Подскажите пожалуйста как получить аналог create_table_query для всех матвью в системе?
  • https://t.me/clickhouse_ru
    @tomilovanatoliy #298016 09:40 AM, 10 Nov 2022
    охота таким запросом найти все CREATE MATERIALIZED VIEW ... TO event_log
    SELECT * FROM system.tables WHERE create_table_query LIKE 'event_log' \G
  • https://t.me/clickhouse_ru
    а в чем трудность?
    SELECT create_table_query FROM system.tables where engine='MaterializedView'
  • https://t.me/clickhouse_ru
    спасибо! Трудность в том, что надо знать, что такие объекты лежат в этой таблице и имеют специфический движок
  • https://t.me/clickhouse_ru
    @decole12 #298020 09:44 AM, 10 Nov 2022
    привет всем!
  • @Mairuwka #298021 09:44 AM, 10 Nov 2022
    Добрый день, каким образом можно импортировать json файл в таблицу через CLI?
  • https://t.me/clickhouse_ru
    @decole12 #298022 09:52 AM, 10 Nov 2022
    у меня есть проблема и я не знаю как решить, помогите пожалуйста!

    есть таблица в кторой содержаться поля managerId, webmasterId, param

    есть запрос, в котором группировка идет по managerId.

    стоит задача сделать флаг, что если у менеджера есть вэб, у которого param >=100 , то флаг = 1 иначе, флаг равен 0.
    (на самом деле тело запроса большое, упростил для наглядности)
    SELECT managerId as manager
    FROM events
    WHERE eventCreatedAt >= '2022-11-07 21:00:00'
    AND eventCreatedAt <= '2022-12-01 20:59:59'
    GROUP BY managerId
    ORDER BY managerId DESC
    как мне посчитать - что если у менеджера есть вэб, у которого param >=100 , то флаг = 1 иначе, флаг равен 0. если группировку по managerId нельзя трогать. Знаю что вроде как можно воспользоваться агрегатными функциями, но как ? ведь по вэбам нет группировки ...
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #298022 #298024 09:56 AM, 10 Nov 2022
    не очень понятно что за флаг и куда его пихать, но я предполагаю что вам нужны aggregate function combinators, а именно -If - https://clickhouse.com/docs/en/sql-reference/aggregate-functions/combinators
    что-то типа select countIf( param >=100) ......
    Aggregate Function Combinators | ClickHouse Docs

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

  • https://t.me/clickhouse_ru
    @ilejn ↶ Reply to #298013 #298025 10:02 AM, 10 Nov 2022
    Раз ваше хранилище построено по методологии data vault, никаких вьюх у вас нет, у вас есть Data Marts. Вот их и нужно переносить в ClickHouse.
  • https://t.me/clickhouse_ru
    флаг - как select аргумент, чтото типа
    select
    sum(param) as param1
    ...
  • https://t.me/clickhouse_ru
    в таблицы строки следующего толка:
    manager1, webmaster1, 0;
    manager1, webmaster1, 1;
    manager1, webmaster1, 1;
    manager1, webmaster2, 0;

    поле paramнадо еще подсчитать, чтобы по вэбу можно было понять кто из них перевалил за 100 по этому параметру
  • А каким способом лучше их транспортировать в clickhouse?
  • https://t.me/clickhouse_ru
    @ilejn ↶ Reply to #298028 #298029 10:14 AM, 10 Nov 2022
    Это вопрос предпочтений ваших архитекторов.
    В список вариантов можно включить https://clickhouse.com/docs/en/engines/table-engines/integrations/materialized-postgresql/
    MaterializedPostgreSQL | ClickHouse Docs

    Creates ClickHouse table with an initial data dump of PostgreSQL table and starts replication process, i.e. executes background job to apply new changes as they happen on PostgreSQL table in the remote PostgreSQL database.

  • Спасибо
  • https://t.me/clickhouse_ru
    в таблицы строки следующего толка:
    manager , webmaster, param - столбцы
    manager1, webmaster1, 0;
    manager1, webmaster1, 1;
    manager1, webmaster1, 1;
    manager1, webmaster2, 0;

    select countIf( sum(param) ) as flag - две агрегатные функции не получится использовать...
  • вам нужен результат group by по webmaster, но при этом чтобы не было в скрипте group by webmaster?
  • https://t.me/clickhouse_ru
    @decole12 #298033 10:25 AM, 10 Nov 2022
    да...
  • https://t.me/clickhouse_ru
    @decole12 #298034 10:26 AM, 10 Nov 2022
    у селекта с алиасом "flag" = 1 если хотя бы один вэб имеет суммму param >= 100
  • https://t.me/clickhouse_ru
    @Mr_Gangster #298035 10:27 AM, 10 Nov 2022
    привет, подскажите, рассматриваем варианты шардирования с применением движка Distributed, правильно понимаю, что бест практис читать через него, а писать напрямую в таблицы, а не писать в Distributed таблицу? какие минусы записи через Distributed, оверхед по ресурсам кликхауса?
  • https://t.me/clickhouse_ru
    @ilejn ↶ Reply to #298035 #298037 10:35 AM, 10 Nov 2022
    1. да
    2. да + некоторые сложности в доказательстве самому себе и окружающим, что Distributed не может ничего потерять.
  • https://t.me/clickhouse_ru
    а если у разработки аргемент - неохота реализовывать лишнюю логику в апликухе, какой довод в пользу шардирования на клиенте? запись через дистрибьютед таблицы на бд даст какой то значимый оверхед по ресурсам? возможные потери данных?
  • https://t.me/clickhouse_ru
    если вы пишите в Distibuted таблицу то вы прогоняете все данные через одну ноду, лучше писать сразу на нужный шард в локальную таблицу
  • https://t.me/clickhouse_ru
    аргумент, спасибо
  • https://t.me/clickhouse_ru
    @Mr_Gangster #298041 10:39 AM, 10 Nov 2022
    есть еще минусы записи через дистрибьютед таблицу?
  • https://t.me/clickhouse_ru
    @ilejn #298042 10:40 AM, 10 Nov 2022
    Это слабый аргумент. Если у вас один insert в каждый момент времени, то через distributed м.б. даже быстрее.
    Если insert'ы параллельны, можно сделать distributed на каждом узле и выбирать между ними каким-то образом.
  • https://t.me/clickhouse_ru
    @ilejn #298043 10:41 AM, 10 Nov 2022
    В целом - если неохота возиться, пишите через distributed.
  • https://t.me/clickhouse_ru
    @Mr_Gangster #298044 10:41 AM, 10 Nov 2022
    если делать дистрибьютед на каждом узле, то получается опять реализовывать логику шардирования в апликативе
  • https://t.me/clickhouse_ru
    @ilejn #298045 10:43 AM, 10 Nov 2022
    Это не совсем логика шардирования, но близко.
    Если совсем неохота возиться, поставьте прокси.
  • https://t.me/clickhouse_ru
    @Mr_Gangster #298046 10:43 AM, 10 Nov 2022
    точка отказа))
  • https://t.me/clickhouse_ru
    @ilejn #298047 10:43 AM, 10 Nov 2022
    Ну да, а одна distributed таблица - это ок.
  • https://t.me/clickhouse_ru
    @Mr_Gangster #298048 10:43 AM, 10 Nov 2022
    спасибо!
  • https://t.me/clickhouse_ru
    если у вас ключ шардирования rand() то вы можете просто вставлять в рандомную ноду в replicated/mergetree
    на бесконечности все будет равномерно
  • https://t.me/clickhouse_ru
    тут появится вопрос при добавлении ресурсов
  • https://t.me/clickhouse_ru
    чта?
  • https://t.me/clickhouse_ru
    @Mr_Gangster #298053 10:45 AM, 10 Nov 2022
    если добавим еще хостов, то запись уже будет неравномерно распределена
  • https://t.me/clickhouse_ru
    хахаха, у КХ нет решардинга, чем вам Distributed поможет? weight ?
  • https://t.me/clickhouse_ru
    @ilejn #298055 10:45 AM, 10 Nov 2022
    Вопрос решардинга появится в любом случае, но это не прямо про distributed vs. direct write.
  • https://t.me/clickhouse_ru
    тут не потребуется манипуляция на клиенте, а так да, это не как редис со слотами, ровно не получится
  • https://t.me/clickhouse_ru
    это решается банальным DNS или балансером nginx/haproxy
  • https://t.me/clickhouse_ru
    @Igess #298058 10:47 AM, 10 Nov 2022
    Подскажите, используется ли зукипер при/для выполнении селектов над реплицирумыми таблицами?
  • https://t.me/clickhouse_ru
    нет
  • https://t.me/clickhouse_ru
    вариант, но +доп точка отказа
  • https://t.me/clickhouse_ru
    т.е. вы что собираетесь один сервер с distributed таблицей захардкодить в клиенте и думаете это хорошее решение? Нет, это отвратительное решение.
  • https://t.me/clickhouse_ru
    на чтение же тоже будет один с дистрибьютед?
  • https://t.me/clickhouse_ru
    @ilejn #298064 10:53 AM, 10 Nov 2022
    С чтением в некоторых ситуациях бывает еще хуже, вся нагрузка ложится на distributed.
    Но такое не часто.
  • https://t.me/clickhouse_ru
    у вас этот сервер будет перегружен по диску и cpu, вам в любом случае надо обращаться и для инсертов и для селектов во все сервера КХ как к точкам входа.
  • https://t.me/clickhouse_ru
    спасибо за замечание
  • https://t.me/clickhouse_ru
    а количество вэбмастеров с param > 100 можно так посчитать за период времени?
  • https://t.me/clickhouse_ru
    сервер куда коннектится клиент становится инициатором распределенных запросов, он делает финализацию запроса, и на это требуется много ресурсов.
  • https://t.me/clickhouse_ru
    да, похоже надо на НТ посмореть разницу
  • https://t.me/clickhouse_ru
    @Jorilla #298071 11:03 AM, 10 Nov 2022
    Привет чат,

    Пользуюсь MaterializedPostgresql:

    CREATE DATABASE stats_pg
    ENGINE = MaterializedPostgreSQL(‘my_postgres:5432’, 'mydb', ‘my_user’, ‘my_password’)
    SETTINGS materialized_postgresql_allow_automatic_update = 1, materialized_postgresql_tables_list = ...

    В постгресе используется table partitioning по месяцам, получаю куча таблиц вида: TABLE_year_month (типа stats_2022_jul)

    Столкнулся с багом когда КХ ругается что определённый столбец отсутствует в пустой таблице одного из partition:

    select "appointment_created_at_date" from stats_pg.clickhouse_stats_appointmentstats_2022_nov

    SELECT appointment_created_at_date
    FROM stats_pg.clickhouse_stats_appointmentstats_2022_nov

    Query id: b6aa9459-c282-4b14-b856-4e56f7cbfee5

    0 rows in set. Elapsed: 0.002 sec.

    Received exception from server (version 22.9.3):
    Code: 47. DB::Exception: Received from localhost:9000. DB::Exception: Missing columns: 'appointment_created_at_date' while processing query: 'SELECT appointment_created_at_date FROM stats_pg.clickhouse_stats_appointmentstats_2022_nov', required columns: 'appointment_created_at_date'. (UNKNOWN_IDENTIFIER)

    При том что SHOW CREATE TABLE явно указывает что стобец существует
  • https://t.me/clickhouse_ru
    При этом этот столбец с самым длинным названием и он единственный не ищется в таблице
  • https://t.me/clickhouse_ru
  • SELECT *
    FROM system.merges

    Query id: 3f4d834e-9ee4-4541-a117-0d059b20f9a7

    ┌─database─┬─table───────────────────┬─────elapsed─┬─progress─┬─num_parts─┬─source_part_names─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
    ─────────────────────────────────────────────────────────────────────────────────────────┬─result_part_name───────┬─source_part_paths─────────────────────────────────────────────────────────────────────────────────────────────────────────
    ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬─result_part_path──────────────────────────────────────────────────────────────────────────┬─partition_id─┬─
    is_mutation─┬─total_size_bytes_compressed─┬─total_size_marks─┬─bytes_read_uncompressed─┬─rows_read─┬─bytes_written_uncompressed─┬─rows_written─┬─columns_written─┬─memory_usage─┬─thread_id─┬─merge_type─┬─merge_algorithm─┐
    │ system │ asynchronous_metric_log │ 0.011565938 │ 1 │ 26 │ ['202211_138448_138448_0','202211_138449_138449_0','202211_138450_138450_0','202211_138451_138451_0','202211_138452_138452_0','202211_138453_138453_0','202211_138
    454_138454_0','202211_138455_138455_0','202211_138456_138456_0','202211_138457_138457_0','202211_138458_138458_0','202211_138459_138459_0','202211_138460_138460_0','202211_138461_138461_0','202211_138462_138462_0','202211_138463_138463_0'
    ,'202211_138464_138464_0','202211_138465_138465_0','202211_138466_138466_0','202211_138467_138467_0','202211_138468_138468_0','202211_138469_138469_0','202211_138470_138470_0','202211_138471_138471_0','202211_138472_138472_0','202211_1384
    73_138473_0'] │ 202211_138448_138473_1 │ ['/var/db/clickhouse/store/74c/74cae335-b559-424f-a253-f81969a248d7/202211_138448_138448_0/','/var/db/clickhouse/store/74c/74cae335-b559-424f-a253-f81969a248d7/202211_138449_138449_0/','/var/db/cli
    ckhouse/store/74c/74cae335-b559-424f-a253-f81969a248d7/202211_138450_138450_0/','/var/db/clickhouse/store/74c/74cae335-b559-424f-a253-f81969a248d7/202211_138451_138451_0/','/var/db/clickhouse/store/74c/74cae335-b559-424f-a253-f81969a248d7
    /202211_138452_138452_0/','/var/db/clickhouse/store/74c/74cae335-b559-424f-a253-f81969a248d7/202211_138453_138453_0/','/var/db/clickhouse/store/74c/74cae335-b559-424f-a253-f81969a248d7/202211_138454_138454_0/','/var/db/clickhouse/store/74
    c/74cae335-b559-424f-a253-f81969a248d7/202211_138455_138455_0/','/var/db/clickhouse/store/74c/74cae335-b559-424f-a253-f81969a248d7/202211_138456_138456_0/','/var/db/clickhouse/store/74c/74cae335-b559-424f-a253-f81969a248d7/202211_138457_1
    38457_0/','/var/db/clickhouse/store/74c/74cae335-b559-424f-a253-f81969a248d7/202211_138458_138458_0/','/var/db/clickhouse/store/74c/74cae335-b559-424f-a253-f81969a248d7/202211_138459_138459_0/','/var/db/clickhouse/store/74c/74cae335-b559-
    424f-a253-f81969a248d7/202211_138460_138460_0/','/var/db/clickhouse/store/74c/74cae335-b559-424f-a253-f81969a248d7/202211_138461_138461_0/','/var/db/clickhouse/store/74c/74cae335-b559-424f-a253-f81969a248d7/202211_138462_138462_0/','/var/
    db/clickhouse/store/74c/74cae335-b559-424f-a253-f81969a248d7/202211_138463_138463_0/','/var/db/clickhouse/store/74c/74cae335-b559-424f-a253-f81969a248d7/202211_138464_138464_0/','/var/db/clickhouse/store/74c/74cae335-b559-424f-a253-f81969
    a248d7/202211_138465_138465_0/','/var/db/clickhouse/store/74c/74cae335-b559-424f-a253-f81969a248d7/202211_138466_138466_0/','/var/db/clickhouse/store/74c/74cae335-b559-424f-a253-f81969a248d7/202211_138467_138467_0/','/var/db/clickhouse/st
    ore/74c/74cae335-b559-424f-a253-f81969a248d7/202211_138468_1
  • https://t.me/clickhouse_ru
    @lgtwb #298080 11:18 AM, 10 Nov 2022
    Господа, подскажите пожалуйста, настройки mutations_sync в какую ноду засунуть на одиночном инстансе? не могу найти в интернете
  • https://t.me/clickhouse_ru
    Это у нас на тестовом сервер такое происходит
    На продакшн сервере все нормально, но предполагалось что конфигурация у нас везде одинаковая 🙂

    И я даже не знаю стоит ли заводить issue на гитхабе, так как воспроизводимость такого бага под вопросом...
  • https://t.me/clickhouse_ru
    в гитхабе есть разработчик MaterializedPostgreSQL и он может ответить, тут разработчика нет и пользователей MaterializedPostgreSQL тоже нет, соотвенвенно тут вам никто не ответит.
  • https://t.me/clickhouse_ru
    в смысле "в какую ноду", что под нодой понимается? XML ?
  • https://t.me/clickhouse_ru
    @lgtwb #298084 11:30 AM, 10 Nov 2022
    А я нашел уже
  • https://t.me/clickhouse_ru
    @lgtwb #298085 11:30 AM, 10 Nov 2022
    в профиль
  • https://t.me/clickhouse_ru
    @lgtwb #298086 11:30 AM, 10 Nov 2022
    Ага, узел типа xml
  • https://t.me/clickhouse_ru
    ну невозможно же это читать, вы сами этого не понимаете что-ли?

    SELECT * FROM system.merges format Vertical
    результат вставьте в https://pastila.nl/
    ссылку сюда.
  • можно через arrayCount
    https://clickhouse.com/docs/en/sql-reference/functions/array-functions/#arraycountfunc-arr1-
  • sorry(
  • https://t.me/clickhouse_ru
    а не могли бы помочь с его написанием, там надо агрегатную функцию
  • @den_crane @Alexey_037 так окей? Если что, то нужно поправить скажите пожалуйста.
  • нет времени
    mapValues в запросе вам возвращает массив со всеми суммами param by web, на него натравливайте arrayCount с функцией больше 100
  • https://t.me/clickhouse_ru
    @decole12 #298094 11:39 AM, 10 Nov 2022
    спасибо!
  • https://t.me/clickhouse_ru
    А можете пожалуйста подсказать по поводу того как заставить MaterializedPostgreSQL использовать Date32 по умолчанию? Или лучше в гитхаб писать на эту тему тоже?
  • https://t.me/clickhouse_ru
    вроде как оно, спасибо за наводку !!
    arrayCount(x -> x>=100, mapValues(sumMap(webmasterAcceptLeads))) as countActiveWebs
  • @xfangsx #298097 11:57 AM, 10 Nov 2022
    Добрый день.
    Стыдно за вопрос, но найти ответ не могу. Как удалить внешний словарь?
    "DROP DICTIONARY dicts.table" не работает Received exception from server (version 22.7.2):
    Code: 48. DB::Exception: Received from localhost:9000. DB::Exception: There is no DROP TABLE query for DatabaseDictionary. (NOT_IMPLEMENTED)

    Добавлял справочник через xml в /etc/clickhouse-server/dicts, но мне кажется если я просто удалю его и перезапущу клик, то словарь из system.dictionary не удалится, а может и вообще клик не поднимется.
  • https://t.me/clickhouse_ru
    @MakeReady #298098 12:00 PM, 10 Nov 2022
    Добрый день!
    Делаю материализованное представление с POPULATE (если это важно)
    и в него не едут новые записи
    где искать причину?
  • https://t.me/clickhouse_ru
    Xml удаляются простым удалением xml. Перезапуск не нужен
  • https://t.me/clickhouse_ru
    А Никак. Нету такой фичи
  • Помогло, спасибо.
  • https://t.me/clickhouse_ru
    Але. Вы вообще мое сообщение читали? Format Vertical
    Format Vertical
    Format Vertical
  • https://t.me/clickhouse_ru
    @lgtwb #298104 12:17 PM, 10 Nov 2022
    Столкнулся с интересной (на мой взгляд) ситуацией. Есть две таблицы, +- одной структуры, различаются 400 столбцами.

    Таблицы по структуре практически одинаковые, 400 колонок - это данные string.
    И альтерниг одной таблицы отличается от другой в 500 раз
  • https://t.me/clickhouse_ru
    @lgtwb #298105 12:18 PM, 10 Nov 2022
    Как можно выяснить причины такого расхождения?
  • https://t.me/clickhouse_ru
    Alter table Add column?
  • https://t.me/clickhouse_ru
    @lgtwb #298107 12:19 PM, 10 Nov 2022
    ALTER TABLE mnemohuman.a597402d5b75c40ea86c53943706aebf2 UPDATE "ts" = 1668081078 WHERE "id" = 'd3eacb72-5767-4426-8149-2e38635c39c2';
  • https://t.me/clickhouse_ru
    @lgtwb #298108 12:19 PM, 10 Nov 2022
    Включены синхронные мутации
  • https://t.me/clickhouse_ru
    Wide parts vs compact part
  • https://t.me/clickhouse_ru
    таблица и представление находятся в разных схемах
  • https://t.me/clickhouse_ru
    @MakeReady #298111 12:20 PM, 10 Nov 2022
    тесты в одной проходят нормально
  • https://t.me/clickhouse_ru
    В system.parts смотри колонку part type
  • https://t.me/clickhouse_ru
    @lgtwb #298113 12:22 PM, 10 Nov 2022
    Это такая колоссальная разница получается? Офигеть. Сменить как-то принудительно можно?
  • https://t.me/clickhouse_ru
    Невозможно ответить не видя кода. В прошлый раз у пациента был TTL на таблице в которую писало mv и TTL сносил все при вставке. Я могу 29 возможных причин назвать. Например summingmergetree не хранит строки с 0 в метрике
  • https://t.me/clickhouse_ru
    код представления
  • https://t.me/clickhouse_ru
    @MakeReady #298116 12:23 PM, 10 Nov 2022
    CREATE MATERIALIZED VIEW db1.users_statuses_mat_v
    (
    `u_id` Int32,
    `u_created_at` Nullable(DateTime('UTC')),
    `u_phone` Nullable(String),
    `up_id` Nullable(Int32),
    `up_created_at` Nullable(DateTime('UTC')),
    `ua_id` Nullable(Int32),
    `ua_created_at` Nullable(DateTime('UTC')),
    `tv2_id` Nullable(Int32),
    `tv2_created_at` Nullable(DateTime('UTC')),
    `tv2_source_type` Nullable(String),
    `tv2_amount` Nullable(Float64),
    `shv2_id` Nullable(Int32),
    `tv2_shv2_created_at` Nullable(DateTime('UTC')),
    `shv2_status_id` Nullable(String),
    `shv2_description` Nullable(String),
    `shv2_error_code` Nullable(String)
    )
    ENGINE = MergeTree
    ORDER BY u_id
    SETTINGS index_granularity = 8192 AS
    SELECT
    coalesce(u.id, 0) AS u_id,
    parseDateTimeBestEffortOrNull(u.created_at, 'UTC') AS u_created_at,
    u.phone AS u_phone,
    up.id AS up_id,
    parseDateTimeBestEffortOrNull(up.created_at, 'UTC') AS up_created_at,
    ua.id AS ua_id,
    parseDateTimeBestEffortOrNull(ua.created_at, 'UTC') AS ua_created_at,
    tv2.id AS tv2_id,
    parseDateTimeBestEffortOrNull(tv2.created_at, 'UTC') AS tv2_created_at,
    tv2.source_type AS tv2_source_type,
    tv2.amount AS tv2_amount,
    shv2.id AS shv2_id,
    parseDateTimeBestEffortOrNull(shv2.created_at, 'UTC') AS tv2_shv2_created_at,
    shv2.status_id AS shv2_status_id,
    shv2.description AS shv2_description,
    shv2.error_code AS shv2_error_code
    FROM logs.users AS u
    LEFT JOIN logs.user_profiles AS up ON u.id = up.user_id
    LEFT JOIN logs.user_accounts AS ua ON up.id = ua.user_profile_id
    LEFT JOIN logs.transactions_v2 AS tv2 ON tv2.account_id = ua.id
    LEFT JOIN logs.status_history_v2 AS shv2 ON shv2.transaction_id = tv2.id
    WHERE (u.id IS NOT NULL) AND (u.phone != '79164453519')
  • https://t.me/clickhouse_ru
    Можно. Параметр таблицы как-то типа minwidepartsbytes
  • https://t.me/clickhouse_ru
    @lgtwb #298118 12:24 PM, 10 Nov 2022
    min_bytes_for_wide_part. Через альтер?
  • https://t.me/clickhouse_ru
    Pastila.nl
  • https://t.me/clickhouse_ru
    @MakeReady #298120 12:24 PM, 10 Nov 2022
    код одной из исходных таблиц
  • https://t.me/clickhouse_ru
    @MakeReady #298121 12:24 PM, 10 Nov 2022
    CREATE TABLE logs.transactions_v2
    (
    `id` Nullable(Int32),
    `transaction_id` Nullable(Int32),
    `account_id` Nullable(Int32),
    `source_id` Nullable(Int32),
    `source_type` Nullable(String),
    `amount` Nullable(Float64),
    `updated_at` Nullable(String),
    `created_at` Nullable(String),
    `device_id` Nullable(Int32),
    `legal_entity_account_id` Nullable(Int32),
    `bank_id` Nullable(Int32),
    `__data_transfer_commit_time` UInt64,
    `__data_transfer_delete_time` UInt64
    )
    ENGINE = ReplacingMergeTree(__data_transfer_commit_time)
    ORDER BY id
    SETTINGS allow_nullable_key = 1, index_granularity = 8192
  • https://t.me/clickhouse_ru
    Да
  • https://t.me/clickhouse_ru
    ???
  • https://t.me/clickhouse_ru
    @lgtwb ↶ Reply to #298122 #298124 12:25 PM, 10 Nov 2022
    Вы не в первый раз уже подсказываете, спасибо большое.
  • https://t.me/clickhouse_ru
    @lgtwb ↶ Reply to #298123 #298125 12:25 PM, 10 Nov 2022
    Туда свои данные залейте
  • https://t.me/clickhouse_ru
    не знаком с сервисом. Где прочитать как?
    И, наверное, надо сделать тогда кусок, чтобы не разбираться со всей развесистой клюквой
  • https://t.me/clickhouse_ru
    @lgtwb ↶ Reply to #298126 #298127 12:26 PM, 10 Nov 2022
    Просто вставьте туда пасту и скопируйте URL
  • https://t.me/clickhouse_ru
    Это грустно:(
  • https://t.me/clickhouse_ru
    вот понятнее совсем не стало ))
  • https://t.me/clickhouse_ru
    @lgtwb #298130 12:28 PM, 10 Nov 2022
    Откройте сайт. Вставьте туда ваш запрос, скопируйте URL из адресной строки и отправьте сюда
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    спасибо
  • https://t.me/clickhouse_ru
    @lgtwb ↶ Reply to #298122 #298133 12:32 PM, 10 Nov 2022
    Прошу прощения
    ALTER TABLE mnemohuman.a597402d5b75c40ea86c53943706aebf2 MODIFY SETTING min_bytes_for_wide_part = 0;
    Выполняется, статус ок, но в партициях описание не изменилось. Это какая-то теневая операция?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    одна из используемых таблиц
    https://pastila.nl/?02936292/9453fe747094d73f647ac8c4b198a11b
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Это влияет только на новые парты. Т.е. вам надо выполнить например optimize table t final. Сколько размер таблички в байтах
  • https://t.me/clickhouse_ru
    @lgtwb #298138 12:44 PM, 10 Nov 2022
    Копейки, там 150 строк
  • https://t.me/clickhouse_ru
    Optimize final
  • https://t.me/clickhouse_ru
    ох, в доке такого не видел…
    Надо думать как выкрутиться с учетом того, что в представлении слева то как раз справочник, редко изменяемый, а факты левым соединением справа
  • https://t.me/clickhouse_ru
    @lgtwb ↶ Reply to #298139 #298141 12:47 PM, 10 Nov 2022
    Большое спасибо
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #298140 #298142 01:13 PM, 10 Nov 2022
    Например так:
    with right as (select * from big where id in (select id from small)
    select * from small join right using id;
  • https://t.me/clickhouse_ru
    Такой синтаксис я ещё не использовал. С наскока не понял :)
    Но спасибо, разберусь
    У меняпросто соответствий справочнику может и не быть в транзакциях. Более того, может быть или не быть в зависимых справочниках
    Базовые идентификаторы - идентификаторы счетов - транзакции по счетам
  • https://t.me/clickhouse_ru
    Это выходит такая запись рекуррентного подзапроса?
  • https://t.me/clickhouse_ru
    @troglodytes_troglodytes #298147 01:22 PM, 10 Nov 2022
    Здравствуйте! Может кто-то помочь понять как при создании таблицы в ClickHouse добавить столбец inserted_into_db , в котором будет отражаться datetime добавления данных в БД?

    Аналогичная задача на Постреле решалась :
    CREATE TABLE schema.table_name}
    (col1 <type>, inserted_into_db_msk timestamp
    DEFAULT (current_timestamp AT TIME ZONE 'Europe/Moscow'))
  • https://t.me/clickhouse_ru
    @Shamsullin #298148 01:23 PM, 10 Nov 2022
    Всем привет, заранее извиняюсь за нубский вопрос.
    Есть 2 сервера, между ними 10гбит, на одном есть Distributed таблица, на втором MergeTree, когда мы пишем в Distributed, то данные идут со скоростью 40-50мбит, из за этого диск, на котором Distributed начинает забиваться. В какую сторону копать, чтобы ускорить передачу из Distributed в MergeTree?
  • https://t.me/clickhouse_ru
    @413244833 #298149 01:24 PM, 10 Nov 2022
    Коллеги всем привет! Подскажите как понять сколько Гб нужно для базы
  • https://t.me/clickhouse_ru
    @orantius #298150 01:26 PM, 10 Nov 2022
    записать в нее данные
  • https://t.me/clickhouse_ru
    default now()?
  • https://t.me/clickhouse_ru
    спасибо, ещё идеи
  • https://t.me/clickhouse_ru
    сколько строк в инсерте передается?
  • https://t.me/clickhouse_ru
    а сколько сырых данных? Сжатие будет от 10 до 10000 раз (в зависимости от данных)
  • https://t.me/clickhouse_ru
    ну для простоты одна таблица mergetree и два поля Int32 и String, как понять сколько это будит весить если там будет 100 миллионов записей
  • @Kellyus #298157 01:50 PM, 10 Nov 2022
    Добрйы день!
    В Clickhouse в столбец типа String залетела строка с пробелом в Юникоде

    Как мне в запросе это исправить? Исправить на уровне получения данных уже нельзя
  • https://t.me/clickhouse_ru
    @lgtwb #298158 01:51 PM, 10 Nov 2022
    ALTER TABLE ... UPDATE column = '' where column =''
  • https://t.me/clickhouse_ru
    100 000
  • https://t.me/clickhouse_ru
    ну например:

    create table test ( A Int32, B String ) Engine=MergeTree order by A as select number+rand()%111, toString( number + rand() % 11111) from numbers(100000000);

    ┌─database─┬─table─┬─compressed─┬─uncompressed─┬─compr_rate─┬──────rows─┬─part_count─┐
    │ default │ test │ 680.58 MiB │ 1.20 GiB │ 1.81 │ 100000000 │ 9 │
    └──────────┴───────┴────────────┴──────────────┴────────────┴───────────┴────────────┘

    700 MB
  • https://t.me/clickhouse_ru
    @wait_for_meee #298161 01:52 PM, 10 Nov 2022
    подскажите пожалуйста как сделать такое:
    SELECT
    CASE
    WHEN true THEN (select groupUniqArray(col1) from deafult.table)
    ELSE ('str1', 'str2')
    END;
  • https://t.me/clickhouse_ru
    что за хрень ('str1', 'str2') ?
    тупл?
  • https://t.me/clickhouse_ru
    @wait_for_meee #298164 01:54 PM, 10 Nov 2022
    не если быть точным, то это то что графана подставит вместо переменной
  • https://t.me/clickhouse_ru
    @wait_for_meee #298165 01:55 PM, 10 Nov 2022
    хотя сейчас проверю - точно ли она тупл ставит
  • https://t.me/clickhouse_ru
    я бы смотрел лог кх на сервере с distributed, возможно есть ошибки, возможно инсерты очень медленно работают в mergeTree

    сколько шардов?
  • https://t.me/clickhouse_ru
    афигеть спасибо , ты лучший , а как такую табличку вывести )
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Ошибок никаких нет, шард 1
  • https://t.me/clickhouse_ru
    да работает. но выдает UTC. а можно как-то по МСК сделать?
  • https://t.me/clickhouse_ru
    на шардах посмотрите в system.query_log во что вырождаются ваши инсерты в *MergeTree , там видно сколько строк и сколько секунд.

    а зачем вы вставляете в Distributed если у вас один шард? или вы планируете увеличить кол-во шардов?
  • https://t.me/clickhouse_ru
    на самом деле в КХ все в UTC, и лучше так и оставить и разбираться на клиенте.

    но если очень хочется проблем в жизни то можно сделать
    xxxx DateTime('Europe/Moscow') default now()
  • https://t.me/clickhouse_ru
    @lgtwb ↶ Reply to #298173 #298174 02:04 PM, 10 Nov 2022
    Подтверждаю, меняйте таймзону сервера/контейнера а не в клике
  • https://t.me/clickhouse_ru
    Да ещё раз спасибо огромное, хоть какието данные, а всё таки может быть есть формула или метода расчёта
  • https://t.me/clickhouse_ru
    @lgtwb ↶ Reply to #298175 #298176 02:07 PM, 10 Nov 2022
    Вы можете разобрать механизм хранения из исходников, я полагаю :)
  • https://t.me/clickhouse_ru
    спасибо это да, можно ещё свой домкликов написать
  • https://t.me/clickhouse_ru
    вы не понимаете. Компрессиия очень зависит от локальности данных

    https://kb.altinity.com/engines/mergetree-table-engine-family/pick-keys/
    How to pick an ORDER BY / PRIMARY KEY / PARTITION BY for the MergeTree-family table

    How to pick an ORDER BY / PRIMARY KEY / PARTITION BY for the MergeTree table.

  • 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
    так в 7-й строке опечатка
  • https://t.me/clickhouse_ru
    ┌─event_date─┬────query_start_time─┬─written_rows─┬─written_bytes─┬─query_duration_ms─┐
    │ 2022-11-10 │ 2022-11-10 14:26:15 │ 800000 │ 78789778 │ 2963 │
    └────────────┴─────────────────────┴──────────────┴───────────────┴───────────────────┘
  • https://t.me/clickhouse_ru
    а покажите
    select shard_num, replica_num, is_local from system.clusters where cluster = 'вашкластер'
  • https://t.me/clickhouse_ru
    А при срабатывании по левой стороне загрузится все свежее справа?
  • https://t.me/clickhouse_ru
    ┌─shard_num─┬─replica_num─┬─is_local─┐
    │ 1 │ 1 │ 0 │
    └───────────┴─────────────┴──────────┘
  • https://t.me/clickhouse_ru
    @MakeReady #298189 02:39 PM, 10 Nov 2022
    Варианта по таймеру нет?
  • Так прикол в том, что это триггер на инсерт)
  • https://t.me/clickhouse_ru
    @MakeReady #298191 02:41 PM, 10 Nov 2022
    Так то да? Но почему только по левой не понятно
    Но раз уж так, то может таймер
  • https://t.me/clickhouse_ru
    я не понимаю, у вас 2 сервера, тут только один и is_local=0
  • https://t.me/clickhouse_ru
    Это с сервера, где Distributed таблица, на сервере, где MergeTree там пусто
  • https://t.me/clickhouse_ru
    а зачем все так сложно?

    я бы попробовал включить insert_distributed_sync=1 чтобы ничего не писать на диск в Distributed, тогда инсерты будут работать в несколько потоков
  • https://t.me/clickhouse_ru
    @269917803 #298195 02:59 PM, 10 Nov 2022
    Всем привет! Подскажите пжл.
    Есть мат. представление, которое заполняет таблицу данными из запроса, в которой участвует сама эта таблица.
    https://pastila.nl/?073f8b2e/9a1ca8b437b2b929af5353d4c814c0cf

    Насколько понимаю, если шардов в кластере будет больше 1, такое МП может работать некорректно, т.к. left join может не увидеть данные, которые были вставлены малое время назад из за того, что таблицы distributed.

    Насколько плох вариант в таком случае вставку делать в нераспределённую таблицу (...to db.table_2...), а в left join оставить распределённую. В этом случае будет ли гарантированно наличие данных в ней?
  • Не, я вот так птыаюсь
    replaceRegexpOne(v.name, '/[?]+/g', '')

    Не убирает, в чем ошибка?
  • https://t.me/clickhouse_ru
    Спасибо, попробую так сделать
  • https://t.me/clickhouse_ru
    так а select replaceRegexpOne(v.name, '/[?]+/g', '') показывает правильный результат?
  • @Kellyus #298199 03:00 PM, 10 Nov 2022
    Нет, он показывает без изменений
  • https://t.me/clickhouse_ru
    какой код у такого символа? дайте пример что-ли строки
  • @Kellyus #298201 03:01 PM, 10 Nov 2022
    Но в интернете, на любом онлайн regex - символ пропадает
    Я новичек в CH я понял что он любой юникод автоматом приводит к этом символу
  • @Kellyus #298202 03:02 PM, 10 Nov 2022
    Код, стандартизированный CH - U+FFFD

    пример строки - � Менеджер по продажам в фирменный салон WestStyle
  • https://t.me/clickhouse_ru
    сработало, спасибо! А можно как-то в явном формате выводить inserted_into_db без +03:00? Когда делаю скачивание данных с БД в Питон - выдает в UTC все равно (не видит)
  • https://t.me/clickhouse_ru
    select char(0xFFFD) || 'Менеджер по продажам в фирменный салон WestStyle' s, replace(s, char(0xFFFD), '');
  • https://t.me/clickhouse_ru
    вы все время говорите про отображение на клиенте -- это делают приложения, вот этот скрин это что? dbgrip ? там наверняка в настройках можно изменить, это все не имеет отношения к КХ.

    Если вы хотите чтобы КХ превратил DateTime в строку сам, вам надо писать select toString(inserted_into_db_msk)
  • https://t.me/clickhouse_ru
    да datagrip
  • @sonsergey #298208 03:22 PM, 10 Nov 2022
    Подскажите пожалуйста, сейчас есть нода инициатор на которой хранятся distributed таблицы, на ней выполняется запрос с join и выставленной настройкой distributed_product_mode=local при этом запрос падает с ошибкой что локальная база которая подставилась в запрос не найдена на сервере. Это правда, её нет, но почему distributed её ищет у себя, а не на ноде с данными ?
  • https://t.me/clickhouse_ru
    потому что разработчики КХ так заимплементили join-ы
  • Cпасибо
  • Возможно есть рекомендации как сделать так чтобы работало как задумали разработчики?
  • https://t.me/clickhouse_ru
    попробуйте сделать базу и пустую таблицу на сервере с Distributed.

    вообще эта схема когда есть ноды только с Distributed не тестируется, и разработчики КХ считают что так делать не надо.
    надо заводить иши в гитхабе про это если хочется чтобы все кейсы починили
  • https://t.me/clickhouse_ru
    @evgeniym #298214 03:53 PM, 10 Nov 2022
    Подскажите пожалуйста, можно ли как то узнать размер данных в таблице за день?
    Информация из from system.parts не очень понятная
  • https://t.me/clickhouse_ru
    Мне нужно в питоне читать. я читаю с помощью pandas.read_sql_query и не знаю как заставить его читать кликхаусовский DateTime с тайм-зоной - в нормальном формате. Получается что питон в данном методе игнорирует тайм-зону +3 и выдает все равно в UTC. В данном случае хотелось бы чтобы в питоне появлялись как и в DataGrip - 18:25 время
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    берете средний размер строки и умножаете на кол-во строк в день
  • @modesco #298218 04:03 PM, 10 Nov 2022
  • https://t.me/clickhouse_ru
    >зукиперу это не сильно понравилось с replicated таблицами, но пересоздал и вроде ок.

    зукиперу вообще пофиг на таблицы, это Кey/Value база данных, ей похрену что хранить
  • https://t.me/clickhouse_ru
    >Not found address of host: dbma2

    system drop dns cache
  • https://t.me/clickhouse_ru
    Хороший вариант.
    Спасибо
  • Спасибо!
  • https://t.me/clickhouse_ru
    возможно проблема решится когда тэгнут этот PR. ловлю такую же ошибку в докер-кластере на 22.8

    https://github.com/ClickHouse/ClickHouse/pull/42234/
    Fix c-ares crash by arthurpassos · Pull Request #42234 · ClickHouse/ClickHouse

    Changelog category (leave one): Bug Fix (user-visible misbehavior in official stable or prestable release) Changelog entry (a user-readable short description of the changes that goes to CHANGELOG...

  • https://t.me/clickhouse_ru
    там КХ падает если сделана аутентификация по ptr записям, это в кубах проявляется, если используется Altinity operator
    (в 22.10.2 уже есть Fix c-ares crash)
  • https://t.me/clickhouse_ru
    я в том pr оставлял коммент с ошибкой подобной той что тут выше https://github.com/ClickHouse/ClickHouse/pull/42234/#issuecomment-1275928538 т.к однозначного ответа что PR про это/не про это не получил надеялся что он про это)
    Fix c-ares crash by arthurpassos · Pull Request #42234 · ClickHouse/ClickHouse

    Changelog category (leave one): Bug Fix (user-visible misbehavior in official stable or prestable release) Changelog entry (a user-readable short description of the changes that goes to CHANGELOG...

  • https://t.me/clickhouse_ru
    @m1khal3v #298227 04:30 PM, 10 Nov 2022
    я так понимаю лучше отдельный issue пильнуть)
  • https://t.me/clickhouse_ru
    ваша проблема уже пофикшена во всех версиях, вам надо дождаться релиза 22.8
    это вообще не имеет никакого отношения в тому что выше.
  • https://t.me/clickhouse_ru
    понял, спасибо
  • https://t.me/clickhouse_ru
    @269917803 #298230 04:32 PM, 10 Nov 2022
    Всем привет! Подскажите пжл.
    Есть мат. представление, которое заполняет таблицу данными из запроса, в которой участвует сама эта таблица.
    https://pastila.nl/?073f8b2e/9a1ca8b437b2b929af5353d4c814c0cf

    Насколько понимаю, если шардов в кластере будет больше 1, такое МП может работать некорректно, т.к. left join может не увидеть данные, которые были вставлены малое время назад из за того, что таблицы distributed.

    Насколько плох вариант в таком случае вставку делать в нераспределённую таблицу (...to db.table_2...), а в left join оставить распределённую. В этом случае будет ли гарантированно наличие данных в ней?
  • https://t.me/clickhouse_ru
    сначала сюда: https://den-crane.github.io/Everything_you_should_know_about_materialized_views_commented.pdf
    https://youtu.be/1LVJ_WcLgF8?list=PLO3lfQbpDVI-hyw4MyqxEk3rDHw95SzxJ&t=7597
  • @modesco #298232 04:33 PM, 10 Nov 2022
    Очистка dns не помогла, в итоге просто в /etc/hosts прописал ip хоста, который не мог найти кликхаус и ошибки ушли..
  • https://t.me/clickhouse_ru
    ну значит это DNS проблема
  • @eperesadka #298234 04:34 PM, 10 Nov 2022
    кто-то сталкивался с тем что kafka engine не коммитит оффсеты? данные из топика читаются, попадают в итоговую таблицу, но не обновляется оффсет и лаг
  • @modesco #298235 04:35 PM, 10 Nov 2022
    Не уверен: в конфиге все ноды прописаны в виде ip, а КХ подтянул hostname одной из них и пытался к ней подключиться

    В конфиге в секции zookeeper
  • https://t.me/clickhouse_ru
    replicated таблица анонсируют себя в ZK используя hostname -f ИЛИ interserver_http_host если он задан. Другие реплики находят ее по этому анонсу.

    replicated таблица не использует и не знает про remote_servers.
  • https://t.me/clickhouse_ru
    @OrNixx #298237 04:37 PM, 10 Nov 2022
    добрый вечер. может у кого-то киттенхаус еще остался. При ошибке writing too fast buffer overflow, можно что-то сделать?
  • https://t.me/clickhouse_ru
    Это о том, что мат. вью, по сути, after-insert триггер и самой левой таблице в запросе будет только только-что пришедший кусок данных? Это я знаю, дело в том, что в в таблице в left join МП видит весь сохранённый набор данных. И мой вопрос вокруг того, как гарантированно видеть недавно добавленные данные
  • https://t.me/clickhouse_ru
    Дак что гарантировать, что вставленные данные в таблицу будут на момент join'a ? А как вы это представляете вообще ? Ещё не вставили данные и кликхаус должен понимать что они могут быть ?
  • https://t.me/clickhouse_ru
    >как гарантированно видеть недавно добавленные данные
    а никак. У КХ eventual consistency.
  • https://t.me/clickhouse_ru
    ктсати в любом случае такое mv проживет недолго, join-ы в КХ не используют индексы и грузят правую таблицу в память целиком, поэтому ваше MV будет работать медленеее с каждым инсертом и требовать все больше и больше ОЗУ
  • https://t.me/clickhouse_ru
    Смотрите
    0. Имеем пустые таблицы.
    1. Вставили кусок данных А в таблу Т1, сработало МП, вставили этот кусок в Т2 (или думаем, что втавили). В left join пока пусто было.
    2. Вставили кусок данных B в Т1, сработало МП, пытается к нему приджойнить из Т2, и, либо видит, что тут что-то есть либо нет
  • https://t.me/clickhouse_ru
    И не поможет даже вставка в нераспределённую таблицу?
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #298244 #298246 04:58 PM, 10 Nov 2022
    join не самая подходящая штука чтобы сделать аккумуляцию на которую вы намекаете. Скажите случше простым русским языком что вы хотите сделать. Тут есть и другие механизмы. Не идеальные, но получше.
  • https://t.me/clickhouse_ru
    Да, но это решается с помощью некоторого изворота
  • https://t.me/clickhouse_ru
    Да, всё понимаем, экспериментируем.
    Тут коротко не ответить, готовим статью для хабра, там замысел будет описан. Надеюсь на след. неделе выйдет, кину тут ссылку
  • @5299838755 #298249 05:05 PM, 10 Nov 2022
    Сегодня все со сложными вопросами, а я, вероятно, с наивным. Тестируем-гоняем backup штатный, начинаем все сильнее в него влюбляться, есть ли причины резко передумать и не полагаться на этот механизм? Речь про BACKUP database dbname TO S3()
  • @5299838755 #298250 05:08 PM, 10 Nov 2022
    и сразу в догонку вопрос - можно ли как то подставить значение макроса в аттрибуты S3? т.е. нечто типа BACKUP database dbname TO S3('urltobucket/mydatabase.shard_{shard}'), чтобы мы просто пробежали по всем шардам выбрав рандомную реплику и дернули один и тот же скрипт. И может быть есть возможность выполнить on cluster но так, чтобы с каждого шарда отработала только одна реплика?
  • @zamyatina_mariya #298252 05:38 PM, 10 Nov 2022
    Всем привет! Подскажите пожалуйста, в чем может быть проблема. Пытаюсь подключиться к S3. Вынесла в файл config.d/named_collections.xml

    <yandex>
    <named_collections>
    <s3_data>
    <access_key_id>keyid</access_key_id>
    <secret_access_key>secret</secret_access_key>
    <format>CSV</format>
    </s3_data>
    </named_collections>
    </yandex>

    пытаюсь сделать запрос
    select *
    from s3(s3_data, url = 'http://blablabla/file.csv.gz');

    и получаю такую ошибку:

    Code: 36. DB::Exception: There is no collection named `s3_data` in config. (BAD_ARGUMENTS) (version 22.6.9.11 (official build))

    Ну как так? 😐
  • https://t.me/clickhouse_ru
    корневой тег clickhouse?

    https://github.com/ClickHouse/ClickHouse/blob/b3bacac021e2b1c0eace1c6afef6b4baf50776ef/tests/integration/test_redirect_url_storage/configs/named_collections.xml
    ClickHouse/named_collections.xml at b3bacac021e2b1c0eace1c6afef6b4baf50776ef · 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
    это необязательно там можно все что угодно писать
  • @zamyatina_mariya #298256 06:03 PM, 10 Nov 2022
    он во всех конфигах yandex
  • https://t.me/clickhouse_ru
    Ну, не знаю. Во всех тестах «clickhouse» указан:) да и в сообщении об ошибке говорится что не находит
  • Спасибо! Теперь понятнее куда копать
  • https://t.me/clickhouse_ru
    корневой тэг может быть любым, но одинаковым
  • https://t.me/clickhouse_ru
    Вы перезагружали ? Clickhouse
  • нет
  • https://t.me/clickhouse_ru
    @konnectrl #298262 06:10 PM, 10 Nov 2022
    Ну вот попробуйте
  • Попробовать не могу, если только что-то тестовое локальное делать. Конфиги же на лету подхватываются
  • https://t.me/clickhouse_ru
    для named_collections рестарт КХ обязателен
  • ох. а для remote_url_allow_hosts тоже надо рестартить?
  • https://t.me/clickhouse_ru
    @krivdathetriewe #298267 06:22 PM, 10 Nov 2022
    а у кх есть функционал создать параметризованную вьюху?
  • https://t.me/clickhouse_ru
    40907 Parameterized views as table functions by SmitaRKulkarni · Pull Request #41687 · ClickHouse/ClickHouse

    Changelog category (leave one): New Feature Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md): Added parametrized view functionality, now it's possi...

  • https://t.me/clickhouse_ru
    да
  • спасибо за помощь
  • https://t.me/clickhouse_ru
    spasibo!
  • @modesco #298275 08:53 PM, 10 Nov 2022
    помогите настроить бэкап в s3 от яндекс.клауд

    конфиг:
    <clickhouse>
    <storage_configuration>
    <disks>
    <s3_plain>
    <type>s3_plain</type>
    <endpoint>https://s3.yandexcloud.net/backups-ch/</endpoint>
    <access_key_id>skdafndf</access_key_id>
    <secret_access_key>dsklfjdfkl-sdkfjhdsfk</secret_access_key>
    </s3_plain>
    </disks>
    <policies>
    <s3>
    <volumes>
    <main>
    <disk>s3</disk>
    </main>
    </volumes>
    </s3>
    </policies>
    </storage_configuration>

    <backups>
    <allowed_disk>s3_plain</allowed_disk>
    </backups>
    </clickhouse>

    CH даже не запускается, такие ошибки:

    <Error> Application: DB::Exception: No key in S3 uri: https://storage.yandexcloud.net/backup-ch/: Cannot attach table system.asynchronous_metric_log_0 from metadata file /var/lib/clickhouse/store/920/92043706-d14a-476a-9dd7-e443df47b97a/asynchronous_metric_log_0.sql from query ATTACH TABLE system.asynchronous_metric_log_0 UUID 'c647c29b-3a8a-43a8-a7da-da5c5dadbed2' (`event_date` Date, event_time DateTime, event_time_microseconds DateTime64(6), metric LowCardinality(String), value Float64) ENGINE = MergeTree PARTITION BY toYYYYMM(event_date) ORDER BY (event_date, event_time) SETTINGS index_granularity = 8192
  • 11 November 2022 (151 messages)
  • https://t.me/clickhouse_ru
    @Jorilla #298283 05:48 AM, 11 Nov 2022
    Доброе утро чат!

    В документации описание Date32 не совсем корректное: Stored in four bytes as the number of days since 1900-01-01. Allows storing values till 2299-12-31.
    На деле это работает вот так:
    - toDate32(0) -> 1970-01-01
    - toDate32(365) -> 1971-01-01
    - toDate32(-365) -> 1969-01-01

    версия: ClickHouse server version 22.10.2 revision 54460
  • https://t.me/clickhouse_ru
    @Jorilla #298284 05:50 AM, 11 Nov 2022
    Собственно, у меня тут возникает несколько вопросов:

    - может все дело в функции toDate32 которая слишком хитро работает, а сама документация правильная?

    - если дело не в функции toDate32, то это документация неправильная и её будут исправлять, или тип неправильно реализован и его будут исправлять в соотстветствии с документацией?
  • https://t.me/clickhouse_ru
    @kuzvladd #298285 06:01 AM, 11 Nov 2022
    Добрый день! Подскажите пожалуйста, новую политику хранения (storage_policies) eневозможно добавить в рантайме? Только через config.xml с перезапуском кластера? И второй вопрос. Можно ли поменять политику хранения у существующей таблицы? Например таблица была политикой хранения - только HDD, добавлена новая политика хранения - только SDD. Можно ли поменять у таблицы политику хранения с HDD на SSD. Что делать со старыми партициями (до смены политики)? Перетаскивать партиции руками с HDD на SSD - ALTER TABLE table_name [ON CLUSTER cluster] MOVE PARTITION|PART partition_expr TO DISK|VOLUME 'disk_name'. Или КХ после смены политики сам отложенными тасками, со временем перетащит партиции/парты на новый диск?
  • https://t.me/clickhouse_ru
    А что вас смущает? Функция принимает в качестве аргумента как дату строкой, так и смещение в днях числом.
    https://fiddle.clickhouse.com/48986787-c644-4e6f-943c-e24c15300dfd
  • https://t.me/clickhouse_ru
    Меня смущает смещение в днях числом — в документации сказано что отсчёт идёт от 1900 года, а по факту отсчёт идёт от 1970 года
  • https://t.me/clickhouse_ru
    В русской версии об этом не сказано. Можете внести правки как считаете правильным.
    https://clickhouse.com/docs/ru/sql-reference/functions/type-conversion-functions#todate32
  • https://t.me/clickhouse_ru
    @Jorilla #298289 06:06 AM, 11 Nov 2022
    Если я сейчас пропишу нужную логику ориентируясь на фактическое поведение типа, то позже если поведение типа изменится — придётся снова переписывать, не хочется таких костылей
  • https://t.me/clickhouse_ru
    @Sablast #298290 06:06 AM, 11 Nov 2022
    Это справедливо практически для любой функции в кх)))
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Тут не указан диапазон
    А в описании самого типа указан диапазон, но он неверный для функции toDate32 🙁
  • https://t.me/clickhouse_ru
    @Jorilla #298293 06:09 AM, 11 Nov 2022
    Грустно короче, пойду хотя бы issue заведу чтобы MaterializedPostgreSQL использовал Date32 & DateTime64 по умолчанию
  • https://t.me/clickhouse_ru
    Почему же не верный? Никто не обещает что 0=1900-01-01
  • https://t.me/clickhouse_ru
    Там ведь сказано - соответствует числу дней с 1900-01-01 по 2299-12-31

    https://clickhouse.com/docs/ru/sql-reference/data-types/date32/
    Date32 | ClickHouse Docs

    data_type-datetime32}

  • https://t.me/clickhouse_ru
    А ещё сказано что он поддерживает диапазон DateTime64
    Add a new datatype Date32 (store data as Int32), support date range same with DateTime64 support load parquet date32 to ClickHouse Date32 Add new function toDate32 like toDate.
  • https://t.me/clickhouse_ru
    и вообще, вот тут в описании тоже сказано следующее:

    value — Значение даты. String, UInt32 или Date.

    Тогда почему же функция принимает отрицательные числа и toDate(-2342) работает?
  • https://t.me/clickhouse_ru
    А это уже опечатка
  • https://t.me/clickhouse_ru
    Это где так сказано?
  • https://t.me/clickhouse_ru
    @Sablast #298300 06:13 AM, 11 Nov 2022
    В ченджлоге за 2021 год
  • https://t.me/clickhouse_ru
    Я к тому что это не отражено в документации
  • https://t.me/clickhouse_ru
    @Jorilla #298302 06:15 AM, 11 Nov 2022
    Это были адские полтора часа дебага)) у меня в статистике не пробиваются люди старше 52 лет лол
  • https://t.me/clickhouse_ru
    Простите, не могу удержаться)
  • https://t.me/clickhouse_ru
    Каждый раз как в первый раз)))
  • https://t.me/clickhouse_ru
    @Jorilla #298305 06:17 AM, 11 Nov 2022
    но можно и потерпеть, потому что больше никто бесплатно не предоставляет 15-25 кратное ускорение подсчётов 🙂
  • @modesco #298306 06:43 AM, 11 Nov 2022
    Доброе утро, коллеги. Подскажите по бэкапу на S3. Настроил хранилище яндекса через конфиг, заливаю так не самую большую таблицу (100-150 Гб занимает), но получаю ошибку. Куда копать? В логах пусто.

    dbma2 🙂 BACKUP TABLE views_hours TO Disk('s3', 'views_hours_full_20221111')

    BACKUP TABLE views_hours TO Disk('s3', 'views_hours_full_20221111')

    Query id: 73bcfbf0-4ade-401d-aa93-f2fa161cee06

    Exception on client:
    Code: 32. DB::Exception: Attempt to read after eof: while receiving packet from localhost:9000. (ATTEMPT_TO_READ_AFTER_EOF)

    Connecting to localhost:9000 as user default.
    Code: 210. DB::NetException: Connection refused (localhost:9000). (NETWORK_ERROR)
  • https://t.me/clickhouse_ru
    Ну вот вы узнали, напишите об этом в документацию, и в будущем будет лучше для других
  • Может более надёжно примонтировать s3 диск и дальше уже туда писать бэкапы?
  • https://t.me/clickhouse_ru
    Обязательно напишу
  • https://t.me/clickhouse_ru
    Кстати, как править документацию?
  • https://t.me/clickhouse_ru
    @Jorilla #298311 06:59 AM, 11 Nov 2022
    ClickHouse/docs 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
    да может и не надо ничего править, 1970-01-01 как ноль выглядит логичным
  • https://t.me/clickhouse_ru
    Да
  • https://t.me/clickhouse_ru
    если читать ченджлоги - наверное

    но в документации надо же отражать все детали
  • https://t.me/clickhouse_ru
    👍
  • https://t.me/clickhouse_ru
    нет, если подумать о природе диапазона чисел. Представьте, что следующим добавят тип Date64, какой у него должен быть диапазон? откуда начинаться и где заканчиваться? а если Date128? 256?
  • @serega_wh1te #298317 07:16 AM, 11 Nov 2022
    Всем привет, подскажите, что можно сделать в следующей ситуации. У меня есть две таблицы, из одной в другую идет мат вью. Предположим, что вторую таблицу удалили\изменили структуру и вставка не может произойти. Возможно ли сделать так, чтобы в первую таблицу происходила вставка, а то в данном случае теряется строка
  • https://t.me/clickhouse_ru
    Я совершенно не против такого поведения типов, но считаю что это должно быть отражено в документации. Либо это я не очень умный и опытный чтобы слёту понимать что Date32 будет так себя вести если в документации написано “соответствует числу дней с 1900-01-01 по 2299-12-31” 🤷
  • https://t.me/clickhouse_ru
    Скажите, а есть ли запись с этого митапа? Можно ли ее посмотреть?
  • https://t.me/clickhouse_ru
    всё скрыто тут - https://ru.wikipedia.org/wiki/Unix-%D0%B2%D1%80%D0%B5%D0%BC%D1%8F
    но если вы знаете как действительно улучшить документацию, то конечно же вам скажут спасибо)
  • https://t.me/clickhouse_ru
    К сожалению, нет, только слайды. Хотя Рамазан там показывал игры на ClickHouse — это, конечно, вживую было интересно смотреть.
  • https://t.me/clickhouse_ru
    @Jorilla #298322 07:46 AM, 11 Nov 2022
    да, про POSIX я помню, но документация лично меня сбила с толку 🙂
    подумаю как исправить, сделаю пр
  • https://t.me/clickhouse_ru
    Нашёл как воспроизвести эту проблему 🎉

    Оказывается настройка materialized_postgresql_allow_automatic_update просто неправильно работает когда таблица пустая. Хоть и show create table показывает новую добавленную колонку, но сами запросы эту колонку игнорируют и ругаются когда к ней обращаешься. Плюс еще и синхронизация на этих пустых таблицах выключается…

    https://github.com/ClickHouse/ClickHouse/issues/43154
    [MaterializedPostgreSQL] Broken when an empty table gets a schema update · Issue #43154 · ClickHouse/ClickHouse

    What's wrong? MaterializedPostgreSQL with materialized_postgresql_allow_automatic_update = 1 breaks for empty tables on schema update. Does it reproduce on recent release? Yes, it can be re...

  • https://t.me/clickhouse_ru
    @ilejn #298326 08:17 AM, 11 Nov 2022
    Добрый день, просветите, пожалуйста, про разницу между ORDER BY и PRIMARY KEY.
    Вот есть у нас некая T1 у которой ORDER BY(F1, F2) и PRIMARY KEY(F1, F2)
    и есть точно такая же T2 c ORDER BY(F1, F2) и PRIMARY KEY(F1).
    В чем будет различие между T1 и T2 ?
  • @5475305107 #298328 08:19 AM, 11 Nov 2022
    Общение и полезные материалы для цифровых кочевников 🚀

    Ребята из YES NO MAD делятся актуальной инфой по WEB3, профессиональному развитию на зарубежном рынке. А в чате — тематическое общение и взаимопомощь.

    Рады новым участникам!
  • https://t.me/clickhouse_ru
    Когда совпадают то нет разницы. Есть разница когда они оба заданы и различаются

    https://t.me/clickhouse_ru/245372
    Denny [Altinity] in ClickHouse не тормозит

    primary key -- это поля в индексе и он в памяти order by это правило как сортировать, тут нет физического объекта. order by (a,b,c,d,e,f,g) primary key (a,b) сортируем строки в таблице согласно (a,b,c,d,e,f,g) в индекс идут только (a,b) -- файлик primary.idx -- храним в озу, фильтрация where чтобы найти марки использует его.

  • https://t.me/clickhouse_ru
    @kroopstor #298331 08:35 AM, 11 Nov 2022
    Добрый день! Подскажите, есть подвисший запрос OPTIMIZE TABLE, посылаю KILL QUERY, он переходит в статус waiting. Далее так же долго висит без кила. Решил рестартануть clickhouse-server, это помогло сбросить старый OPTIMIZE, но после рестарта клик добавил снова в исполнение его. Как все же убить запрос чтобы после после рестарта он вновь не появился на выполнение?
    Версия 20.12.7.3
  • https://t.me/clickhouse_ru
    Далеки они от народа. Разработчикам кх это очевидно.
    Да даты меньше 1970 хранятся как отрицательные числа.
    В принципе это не должно волновать пользователей потому что они не должны оперировать датой как числом.
    Да документация неточная - надо поправить. И понятно почему так получилось. Это просто наслоения разных кусков.
  • https://t.me/clickhouse_ru
    Replicated таблица? Удалять в зукипере таск
  • https://t.me/clickhouse_ru
    @mikezsin #298335 08:47 AM, 11 Nov 2022
    Привет, а max_memory_usage работает на запросы в postgres engine?
  • ребят, нет ли комментариев по backup в s3 - надежно ли, есть ли подводные камни?
  • https://t.me/clickhouse_ru
    Да, replicated. Попробую, спасибо
  • https://t.me/clickhouse_ru
    Да
  • https://t.me/clickhouse_ru
    получается механизм материализованных представлений не подходит для денормализации, когда нужно связать пяток таблиц
    разве что делать 5 представлений (по сути триггеров) которые будут лить в одну таблицу
    может есть другой путь?
  • https://t.me/clickhouse_ru
    @anikulov #298342 09:52 AM, 11 Nov 2022
    Добрый день.
    Подскажите, в кх можно использовать OR в конструкции ON join'на ?
    В документации указано, что можно, а запрос ошибку выдает
    Unsupported JOIN ON conditions.
    (INVALID_JOIN_ON_EXPRESSION) (version 22.3.13.80 (official build))
  • https://t.me/clickhouse_ru
    @ilejn ↶ Reply to #298342 #298343 10:03 AM, 11 Nov 2022
    Да, можно.
  • https://t.me/clickhouse_ru
    @Lexoring #298345 10:08 AM, 11 Nov 2022
    Добрый день, подскажите, пожалуйста, можно ли сделать такой запрос в clickhouse?

    для примера такая таблица для понимания:
    CREATE TABLE IF NOT EXISTS t1
    (
    id UInt64,
    c1 UInt64,
    c2 UInt64,

    PRIMARY KEY(id)
    ) ENGINE = MergeTree

    данные:
    INSERT INTO t1 (*) VALUES (1, 10, 10)
    INSERT INTO t1 (*) VALUES (2, 20, 20)

    и сам запрос:
    select id, concat('c', tostring(id)) as v from t1 where v>5

    мне нужно что-то типа динамического столбца, как это сделать? В таком случае V это уже строка, а не название столбца и естественно такой запрос не проходит. Искал как это сделать в mysql, там такое не проходит. Может подскажете, как сделать здесь или может в каких-то в других движках БД есть такое.
  • @eperesadka #298347 10:12 AM, 11 Nov 2022
    кто-то как-то мониторит актуальность таблиц? Кажется очень много хлама копится, так как самостоятельно мало кто за собой подчищает у нас - как можно организовать подобный мониторинг?

    типа алертить те таблицы, к которым не было запросов Х дней
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #298339 #298348 10:15 AM, 11 Nov 2022
    если эти 5 таблиц имеют общий и единый id - то отлично, так и делайте - это не самый плохой вариант. Например через AggregatingMT. Хуже когда этот нормализованный клубок связан разными id. Тут приходится извращаться в индивидульном порядке, конструируя джойны по ограниченным выборкам. Так себе вариант. Возможно стоит эту работу оставить в OLTP - пусть они сами джойнят свои данные и выдают одну широкую таблицу.
  • https://t.me/clickhouse_ru
    именно что связи по id иерархически id - parrent_id - parrent_parrent_id
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #298345 #298351 10:22 AM, 11 Nov 2022
    а что вам мешает проверить id?
    select id, concat('c', tostring(id)) as v from t1 where id>5
    Но если неудобно, то к колонкам можно обращаться с префиксом таблицы:
    select concat('c', tostring(id)) as id from t1 where t1.id>5
  • https://t.me/clickhouse_ru
    @Mr_Gangster #298352 10:35 AM, 11 Nov 2022
    привет! подскажите по бестпрактисам с репликацией, если мы имеем несколько репилк, по сути реализация в кликхаусе с зукипером это мастер/мастер, как правильней реализовать логику в апликативе, писать раундробином с хел чеком в реплики или приписать одну и в случае падения сервера перенастраивать конфиг на рабочую реплику?
  • https://t.me/clickhouse_ru
    @MakeReady #298353 10:36 AM, 11 Nov 2022
    о, а почему
    WHERE toYYYYMM(SalesSum.Date) > toYYYYMM(today())-25
    работает быстрее чем
    WHERE toYYYYMM(SalesSum.Date) > toYYYYMM(today() - toIntervalMonth(25))
    ?
    рпичем ощутимо
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #298350 #298354 10:38 AM, 11 Nov 2022
    да, бывает. Я же говорю - придется поизвращаться c джойнами
    Вариант 1 на основе hash join:
    - получаем все таблицы в КХ тем или иным способом. Типа Stage.
    - делаем order by stage таблиц по их натуральному id.
    - пишем супер-джойн, в котором в CTE вычисляем min-max нужного нам блока правой стейдж таблицы и используем его для фильтрации, так чтобы не вся таблица залезла в память при построении хеша.
    - если id разных таблиц более-менее равномерно возрастают, то может и прокатить по занимаемой памяти и скорости
    Вариант 2 на основе merge join (недавно появился, включается через settings)
    - творчески расставляем order by так чтобы связываемые пары ключей разных таблиц были в order by
    - там где прокатывает используем merge join, где нет - hash join из варианты выше
    Вариант 3. Direct Join
    - Часть Stage таблиц загоняем в EmbeddedRocksDB. Её можно обновлять и быстро добывать данные через direct join
    - творчески комбинируем с Вар1 & Вар2
    Вариант 4. Dictionary Direct
    - делаем словарь, в котором источник - OLTP база данных, но не таблица, а полный запрос.
    - пишем супер-джойн на их диалекте (mysql, pg, etc) в надежде что они там у себя как-то с этой нормализованной структурой умеют работать.
    - Идем по одной из stage таблиц. получаем остальные данные через запросы к словарю по индивидуальным id связанной кучки таблиц.
    - там строится запрос в виде where id=1 or id=2 ... or id=100000 но это не страшно - так можно запрашивать хоть 1М id
  • https://t.me/clickhouse_ru
    @MakeReady #298355 10:40 AM, 11 Nov 2022
    эмммм…. выглядит как извращение )
  • @5299838755 #298356 10:42 AM, 11 Nov 2022
    Раз пока никто про бекап в с3 прокомментировать не может, поинтересуюсь еще одной штукой - есть ли возможность сделать on cluster, но не весь кластер, а только 1 реплика с каждого шарда? речь все так же про бекап, чтобы копии снимались только с одной реплики, а не с каждой
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #298353 #298357 10:43 AM, 11 Nov 2022
    Что-то вы странное делаете.
    select toYYYYMM(today())-25; дает 202186 - вы точно этого хотели?
  • https://t.me/clickhouse_ru
    позор мне ))
  • https://t.me/clickhouse_ru
    @MakeReady #298359 10:44 AM, 11 Nov 2022
    нет, конечно
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #298355 #298360 10:47 AM, 11 Nov 2022
    А я таки предупреждал. Если хотите крастоты, то пишите тикет, чтобы OLTP команда все заджойнила сама и отправила вам в Кафку в виде денормализованной структуры. Получаете, радуетесь.
  • https://t.me/clickhouse_ru
    вы меня не поняли, для лучшего понимания сделал так https://fiddle.clickhouse.com/6c827f2b-ee40-4013-993a-78475120f1df
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    так и сделаю )
  • https://t.me/clickhouse_ru
    col String MATERIALIZED 'c' || id,
    col2 String ALIAS 'c' || id
  • что-то я не понял задумки
    в таблице колонки v нет, она только на уровне запроса в виде строки
    как вы ее с числом хотите сравнить?
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #298362 #298366 10:50 AM, 11 Nov 2022
    вы хотите динамически создать имя столбца и с ним работать? Нет, так не получится. SQL не питон. Он скорее C++ со статическими типами. Возможно в вашей задаче помогут массивы, но надо сформулировать задачу, а не решение.
  • https://t.me/clickhouse_ru
    да переменная V создается динамически на основе другого значения столбца, как бы этой же строки данных
  • https://t.me/clickhouse_ru
    понял, но думал если его как-то объявить alias и к нему же обращаться
  • ок
    у меня в таблице 20 столбцов, как движку понять, какой нужно сравнивать на основании того, что я новую колонку создал из нескольких колонок
  • https://t.me/clickhouse_ru
    вы хотите чтобы колонка С была динамическим параметром? Или C это строка?
  • https://t.me/clickhouse_ru
    это все делается в nginx или haproxy секунд за 30.
    ну и clickhouse golang и java библиотеки тоже умеют все это
  • 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
    єти тоже подходят. chproxy особенно.

    >ну и тогда прокся будет точкой отказа, надо вип колхозить
    это смешно.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    что смешно?
  • https://t.me/clickhouse_ru
    там "С" это строка, динамически создается столбец с1 или с2 на основе id https://fiddle.clickhouse.com/6c827f2b-ee40-4013-993a-78475120f1df
  • https://t.me/clickhouse_ru
    @Nemichthysfatuities #298385 11:07 AM, 11 Nov 2022
    💥Видеорегистратор💥
    CARCAM HYBRID 2 Signature ведет запись в Full HD качестве с разрешением 1080px. Картинка получается невероятно чёткая, в независимости от времени суток или погодных условий. Дополнительная камера обеспечит видеофиксацию в салоне или позади автомобиля.
  • https://t.me/clickhouse_ru
    нет, это невозможно.
    в SQL объекты известны до выполнения запроса.
    можно сделать через массивы https://fiddle.clickhouse.com/844cd5bd-6c2c-4833-8907-cb9855ffded1
  • https://t.me/clickhouse_ru
    Спасибо, попробую через массивы. Но жалко, что такого нет
  • https://t.me/clickhouse_ru
    А ну кстати можно через columns все колонки с именем c* в массив загнать
  • https://t.me/clickhouse_ru
    это через этот https://clickhouse.com/docs/en/operations/system-tables/columns/ ?
    что-то не совсем понял как это сделать
    columns | ClickHouse Docs

    Contains information about columns in all the tables.

  • https://t.me/clickhouse_ru
    если колонок/значений немного, то можно использовать if/multiif внутри with
    Вот пример с двумя колонками. Там работает фильтрация, вроде)

    https://fiddle.clickhouse.com/8ebb323a-a1a7-4027-bbf4-e8b1562a1991
  • https://t.me/clickhouse_ru
    https://clickhouse.com/docs/en/sql-reference/statements/select/#columns-expression

    https://fiddle.clickhouse.com/b46b4886-62a5-4f3c-8149-807e95f6e3c1
    SELECT Query | ClickHouse Docs

    SELECT queries perform data retrieval. By default, the requested data is returned to the client, while in conjunction with INSERT INTO it can be forwarded to a different table.

  • https://t.me/clickhouse_ru
    спасибо, хорошая идея, колонок где-то 1000 таких разных, но я попробую таким образом
  • https://t.me/clickhouse_ru
    На 1000 это много. Выше Денни правильный пример привёл
  • https://t.me/clickhouse_ru
    классно! буду изучать сейчас, спасибо
  • https://t.me/clickhouse_ru
    ок, буду пробовать
  • https://t.me/clickhouse_ru
    @troglodytes_troglodytes #298399 01:12 PM, 11 Nov 2022
    Здравствуйте! Может кто подсказать как в клике переименовать схему?

    Команда RENAME DATABASE schema1 TO schema2
    не работает
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Для ordinary баз можно переименовать все таблицы.

    Rename table aa.t to bb.t
  • https://t.me/clickhouse_ru
    @romul87 #298405 01:49 PM, 11 Nov 2022
    Всем привет!
    Столкнулись ситуаций, что наш приклад перестает делать вставки в кликхаус. Анализ показал, что в какой то момент набегает пачка пользователь и начинает активно селектить(селекты могут быть довольно тяжелые и занимать до 10 минут). Цпу само собой в 100 на все репликах и приклад не может отправить в клик и откидывает данные по timeout. Ограничить их по thread сложно, несколько запросов могут спокойно идти под одним пользователем. Хотим понять как можно отдать преимущество на вставку данных, а не на поиск.
  • https://t.me/clickhouse_ru
    @lgtwb ↶ Reply to #298402 #298407 01:53 PM, 11 Nov 2022
    Вы чатики попутали?)
  • https://t.me/clickhouse_ru
    @lgtwb ↶ Reply to #298409 #298410 01:55 PM, 11 Nov 2022
    Коллеги, полюбуйтесь на кейс, давайте действительно такой сервис сделаем
  • https://t.me/clickhouse_ru
    Это ребёнок, простите
  • https://t.me/clickhouse_ru
    @lgtwb #298412 01:55 PM, 11 Nov 2022
    Yandex.Nudes
  • Загрузи фото и получи ответ "такого у нас пока не было"?
  • @Kellyus #298414 01:55 PM, 11 Nov 2022
    Добрый день!
    В Clickhouse текстовые столбцы храню как String
    в самом CH все ОК, запросы без проблем работают

    Пытаюсь вытянуть по ODBC в PowerBI (пробовал еще через Linked Server в MSSQL)

    В общем в обоих случая проблема с текстовыми столбцами

    Каких то спец символов, ничего нет

    Пример данных на скрине

    Есть аналогичная проблема у человека, вот топик но ответа там нет

    https://github.com/ClickHouse/clickhouse-odbc/issues/337

    Хелп плиз, кто решал подобное, что делать?
  • https://t.me/clickhouse_ru
    @lgtwb ↶ Reply to #298413 #298415 01:55 PM, 11 Nov 2022
    И все фотки пушатся тимлиду в личный бакет
  • @635404397 #298416 02:01 PM, 11 Nov 2022
    всем привет,
    а как "правильно" добавить новый диск в clickhouse-operator? при добавлении нового диска clickhouse его видит, но вот все таблицы, который были на существующих дисках, пропадают. вопрос именно про clickhouse-operator
  • @ivanio11 #298418 02:04 PM, 11 Nov 2022
    Всем привет , имеется датасет на 50 столбцов , нужно заинсертить в кликхаус

    pandas имеет метод to_sql , df.to_sql(df,'table_name',conn)
    который создаёт табличку table_name в случае если ее нету с названиям полей из даатсета и дефолтными значниями int,text если строка , потом можно взять ddl , и переписать там пару строк , и запсиывать уже в красивую таблицу с правильными типами

    к сожадени. to_sql не работает с кликхаусом ( полагаю из за наличия движков таблиц различных).
    Может есть какой то способ создать табличку без описывани DDL
  • https://t.me/clickhouse_ru
    @ilejn ↶ Reply to #298414 #298419 02:06 PM, 11 Nov 2022
    Ответа нет, но там четко сказано, чего не хватает для ответа.
    Какие-то данные не смогли сконвертироваться. Но какие именно?
  • @vladenec_tg #298421 02:07 PM, 11 Nov 2022
    Добрый день! Подскажите новичку как правильно залить дату pandas df в clickhouse?
    Формат даты: pd.to_datetime(df['Дата']).dt.strftime('%Y-%m-%d %H-%M-%S')

    Пытаюсь загрузить в clickhouse в таблицу CREATE TABLE ... "Дата" DateTime ...
    При помощи pandahouse.to_clickhouse

    Выдает ошибку: raise ClickhouseException(response.content)
    pandahouse.http.ClickhouseException: b'Code: 41. DB::ParsingException: Cannot read DateTime: neither Date nor Time was parsed successfully ...
  • Я готов дать данные
    1. Пример на скрине, вот именно вот эти 2 строки при запросе уже выдают ошибк
  • @Kellyus #298423 02:08 PM, 11 Nov 2022
    тип столбцов - String
    Хз, что еще надо, подскажете если что посмотреть и сказать, посмотрю
  • https://t.me/clickhouse_ru
    Используйте clickhouse_driver для начала
  • https://t.me/clickhouse_ru
    Можно попытаться сделать что то такое

    create table test Engine Memory as select * from file('file.csv');
  • https://t.me/clickhouse_ru
    @altlinux #298448 02:55 PM, 11 Nov 2022
    Всех щелей баньте в Списке пользователей, там ещё есть
  • https://t.me/clickhouse_ru
    @altlinux #298449 02:55 PM, 11 Nov 2022
    В параллельном канале отстреливал тоже
  • @spirid_sv #298451 03:07 PM, 11 Nov 2022
    Всем привет) Ткните, куда посмотреть, если таблица создается овердофига долго (в таблице P 10 явных колонок)? Приэтом селекты нормально работают. Пример:
    CREATE TABLE B AS P
    Ok.
    0 rows in set. Elapsed: 82.293 sec.
  • https://t.me/clickhouse_ru
    @sar_tak #298452 03:08 PM, 11 Nov 2022
    гайз, всем привет, столкнулся с проблемой:
    если делаю такой запрос напрямую в клик, то все работает,

    SELECT element_name, count(element_name) as click_count FROM Click WHERE user_token = 1-tokenForExample GROUP BY element_name

    но если использую
    java clickhouse-http-client,
    .query("SELECT element_name, count(element_name) as click_count FROM Click WHERE user_token = :user_token GROUP BY element_name")
    .params(userToken)

    то получаю ошибку
    com.clickhouse.client.ClickHouseException: Code: 47. DB::Exception: Missing columns: 'tokenForExample' while processing query: 'SELECT element_name, count(element_name) AS click_count FROM Click WHERE user_token = (1 - tokenForExample) GROUP BY element_name', required columns: 'element_name' 'tokenForExample' 'user_token', maybe you meant: ['element_name','user_token']. (UNKNOWN_IDENTIFIER) (version 22.1.3.7 (official build))

    использую dockerImage

    может кто то сталкивался?
  • https://t.me/clickhouse_ru
    @Alexey_037 #298454 03:13 PM, 11 Nov 2022
    дык у тебя "1-" это одна часть получается, а tokenForExample - вторая. В кавычки что ли заключи имя переменной....
  • https://t.me/clickhouse_ru
    ляяяяяя, спасибо по-братски) я че т и не подумал даже, что надо спецом стрингу такую в кавычки заворачивать
  • @DenisGee #298469 05:56 PM, 11 Nov 2022
    Всем привет, подскажите пожалуйста есть ли возможность при обращении к распределенной таблице не передавать все временные таблицы, которые были созданы на инициаторе запроса?

    Столкнулись с проблемой при селекте с временными таблицами - есть времянка t1 из которой строится времянка t2, t2 же фильтрует данные в дистриб таблице, но t1 дропать нельзя(пригодится дальше), но и по сети ее крутить не хочется. Есть ли какая-то настройка, которая позволяет отключить передачу временных таблиц, которые не участвуют в запросе к распределенной таблице?
  • https://t.me/clickhouse_ru
    @hostadminonline #298470 06:27 PM, 11 Nov 2022
    Всем привет
    либо туплю, либо встретился с багом
    запрос
    SELECT _source, _itemid, date, body_bytes_sent, gzip_ratio, http_host, http_referrer, http_user_agent, http_x_forwarded_for, remote_addr, remote_user, request, request_method, request_time, status, upstream_response_time FROM logs_1 WHERE date >= 1668187520 ORDER BY date DESC LIMIT 30 OFFSET 30

    если LIMIT 30 OFFSET 0
    выдает rows_before_limit_at_least 36
    нужных строк 2166 штук
    но если делаю LIMIT 30 OFFSET 30
    выводит rows_before_limit_at_least 66
    по доке в случае если есть лимит должен выводить rows_before_limit но его нету (
  • @Angelok_66kk #298472 06:38 PM, 11 Nov 2022
    Добрейший вечерочек))
  • https://t.me/clickhouse_ru
    @hostadminonline #298474 06:42 PM, 11 Nov 2022
    короче реально rows_before_limit_at_least выводит нечто странное .... не пойму только от чего зависит
  • https://t.me/clickhouse_ru
    @hostadminonline #298475 06:43 PM, 11 Nov 2022
    версия 22.2.2.1
  • https://t.me/clickhouse_ru
    @hostadminonline #298476 06:46 PM, 11 Nov 2022
    о офигеть ... если убираю ORDER BY date DESC то все норм .... кто-то встречался может ? ... что это может быть ?
  • https://t.me/clickhouse_ru
    @AlexMig #298478 06:50 PM, 11 Nov 2022
    У нас была похожая ситуация с offset
  • https://t.me/clickhouse_ru
    @hostadminonline #298479 06:51 PM, 11 Nov 2022
    блин .... и че делать ? отдельным запросом кол-во считать ?
  • https://t.me/clickhouse_ru
    @hostadminonline #298480 06:52 PM, 11 Nov 2022
    причем проблема только если сортировка идет по primary key
  • https://t.me/clickhouse_ru
    @hostadminonline #298481 06:53 PM, 11 Nov 2022
    CREATE TABLE hostadminLogs.logs_1
    (
    _date DateTime,
    _source Enum8('zabbix' = 1, 'custom' = 2),
    _itemid UInt64,
    _logSize UInt64 DEFAULT byteSize(date, body_bytes_sent, gzip_ratio, http_host, http_referrer, http_user_agent, http_x_forwarded_for, remote_addr, remote_user, request, request_method, request_time, status, upstream_response_time),
    date DateTime,
    body_bytes_sent Nullable(UInt64),
    gzip_ratio Nullable(Float64),
    http_host Nullable(String),
    http_referrer Nullable(String),
    http_user_agent Nullable(String),
    http_x_forwarded_for Nullable(String),
    remote_addr Nullable(String),
    remote_user Nullable(String),
    request Nullable(String),
    request_method Nullable(String),
    request_time Nullable(Float64),
    status Nullable(String),
    upstream_response_time Nullable(Float64)
    )
    ENGINE = MergeTree
    PARTITION BY toYearWeek(date, 1)
    PRIMARY KEY (date, _itemid)
    ORDER BY (date, _itemid)
    TTL _date + toIntervalDay(1)
    SETTINGS index_granularity = 8192
  • https://t.me/clickhouse_ru
    @hostadminonline #298482 06:55 PM, 11 Nov 2022
    во жесть .... сделал optimize table logs_1 final и все норм стало .... (
  • https://t.me/clickhouse_ru
    @hostadminonline #298484 06:56 PM, 11 Nov 2022
    прошло несоклько секунд и снова все плохо
  • https://t.me/clickhouse_ru
    @hostadminonline #298485 07:06 PM, 11 Nov 2022
    это ваще угар
    SELECT date FROM hostadminLogs.logs_1 WHERE date >= 1668188723 LIMIT 0, 1 FORMAT JSON
    "rows_before_limit_at_least": 1,
    SELECT date FROM hostadminLogs.logs_1 WHERE date >= 1668188723 LIMIT 0, 30 FORMAT JSON
    "rows_before_limit_at_least": 2231,
  • https://t.me/clickhouse_ru
    @MakeReady #298489 07:25 PM, 11 Nov 2022
    как так countDistinct(*) может давать меньше чем countDistinct(user_profile_id) - по отдельному полю?
  • @5689915691 #298492 07:26 PM, 11 Nov 2022
    😢Барыга перестал отвечать на звонки?
    👌GREEN ROOM Всегда онлайн

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

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

    🍀 GREEN ROOM🍀
    🍀 GREEN ROOM🍀
    🍀 GREEN ROOM🍀
  • https://t.me/clickhouse_ru
    @ivanshamaev #298496 07:34 PM, 11 Nov 2022
  • https://t.me/clickhouse_ru
    таблица созданная яндексовым трансфером
    CREATE TABLE logs.user_accounts
    (
    `id` Nullable(Int32),
    `user_profile_id` Nullable(Int32),
    `account_id` Nullable(Int32),
    `created_at` Nullable(String),
    `bank_id` Nullable(Int64),
    `updated_at` Nullable(String),
    `__data_transfer_commit_time` UInt64,
    `__data_transfer_delete_time` UInt64
    )
    ENGINE = ReplacingMergeTree(__data_transfer_commit_time)
    ORDER BY id
    SETTINGS allow_nullable_key = 1, index_granularity = 8192
  • https://t.me/clickhouse_ru
    Так в доке же предупреждают о таком непредсказуемом поведении. Вы поищите в этом чате, уже были вопросы. У вас запрос без group by, к тому же.
    Возвращаемое значение здесь ценно больше в философском смысле))

    rows_before_limit_at_least The minimal number of rows there would have been without LIMIT. Output only if the query contains LIMIT. If the query contains GROUP BY, rows_before_limit_at_least is the exact number of rows there would have been without a LIMIT.
  • https://t.me/clickhouse_ru
    Не в курсе, что такое яндексовый трансфер, но 99% проблема в allow_nullable_key = 1 и фиксить никто не будет.
  • https://t.me/clickhouse_ru
    @MakeReady #298501 08:24 PM, 11 Nov 2022
    ))))
  • https://t.me/clickhouse_ru
    @MakeReady #298502 08:24 PM, 11 Nov 2022
    а ваш ответ мне нравится
  • https://t.me/clickhouse_ru
    Создайте самостоятельно таблицу
  • https://t.me/clickhouse_ru
    с такой все ок ))
  • https://t.me/clickhouse_ru
    Это значение, видимо, стоит рассматривать не в числовом виде, а как булево. Типа, если значение больше 0, то за лимитом есть ещё одна страница с данными. А если 0, то данных точно дальше не будет - это последняя страница. Могу ошибаться, конечно. Думаю, это связано с внутренними особенностями реализации (многопоточная обработка, буферы и проч). Чтобы как-то использовать «остатки» после обработки их вот так решили использовать. Т.е. Вы точно сможете вывести номер страницы в своём ui, что следующая за текущей страница есть либо нет.
    А так — да, самый надёжный вариант это отдельный запрос с каунтом.
  • @384011814 #298506 09:28 PM, 11 Nov 2022
    Cybersecurity – Attack and Defense Strategies
    Dr. Erdal Ozkaya, Yuri Diogenes
    2022

    #cybersecurity #attack #defence #eng
  • 12 November 2022 (87 messages)
  • https://t.me/clickhouse_ru
    Версию нормальную поставить
  • https://t.me/clickhouse_ru
    Ну скорей всего * считает что если хотя бы в одном поле null, то не считать
  • @AwFTReAdwX59368 #298511 04:46 AM, 12 Nov 2022
    BTБ выплачивает по 7 000 руб всем своим клиентам которые прошли опрос и оставили отзыв о работе банка.
    Доступно всем клиентам.

    Акция проводится на официальном сайте - link
  • https://t.me/clickhouse_ru
    это какую ?
  • https://t.me/clickhouse_ru
    @hostadminonline #298513 05:35 AM, 12 Nov 2022
    обновился до 22.10.2.11
    все тоже самое
  • @Angelok_66kk #298514 08:03 AM, 12 Nov 2022
    Всeм привeт))
  • https://t.me/clickhouse_ru
    @twinkiz #298516 08:26 AM, 12 Nov 2022
    Подскажите по выбору правильного решения

    Есть основные задачи и есть подзадачи в этих самых основных задачах, все они генерируют очень много данных. Требуется хранить снимки подзадач

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

    2
    Под каждую основную задачу делать свою бд, и создавать свою таблицу под каждую подзадачу, выборка по айди бд и айди таблицы = результат множество бд и множество таблиц

    3
    Либо же создать одну бд и создавать таблицу под каждую задачу и хранить там все записи с подзадач, выборка по айди задачи = результат множество таблиц

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

    5
    1 бд, 1 таблица с множеством записей = неприлично много записей с долгой выборкой

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

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

    Надеюсь понятно объяснил 😬

    Сам склоняюсь к выбору 4
  • https://t.me/clickhouse_ru
    можно одну таблицу, партиции по месяцу
  • https://t.me/clickhouse_ru
    @nyoroon #298518 08:28 AM, 12 Nov 2022
    если выбрать правильный ключ сортировки, то будет всё быстро
  • @Angelok_66kk #298519 08:29 AM, 12 Nov 2022
    Aдминам добра, a кому нyжны деньжатa, залeтaйтe обсудим

    https://t.me/+dYSRVAB2fXgwZDNk
    ᴢ ᴇ ʀ ᴋ ᴀ ʟ ᴏ ۝ о v ɐ ʞ d ǝ ᴢ

    У каждого свой Вьетнам, и свои флешбеки. Война с самим собой. Ты победишь

  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #298516 #298522 08:54 AM, 12 Nov 2022
    "отдельные таблицы" - это партиции. Ровно для этого они и сделаны. И индексы по ключу партиционирования для быстрого осечения лишнего. Поэтому в вашем случае скорее всего ключ партиционирования будет (задача, месяц). Если "задач" разумное количество. Все ваши варианты - это про выбор ключа партиционирования. Почитайте тут - https://kb.altinity.com/engines/mergetree-table-engine-family/pick-keys/#partition-by
    How to pick an ORDER BY / PRIMARY KEY / PARTITION BY for the MergeTree-family table

    How to pick an ORDER BY / PRIMARY KEY / PARTITION BY for the MergeTree table.

  • https://t.me/clickhouse_ru
    Да, сейчас ознакамливаюсь, как раз то, что мне нужно, без лишнего колхоза.
    Спасибо за отклик
  • Делать партиции (задача, месяц) можно только в случае, если задач мало. Если их тысячи+, то так уже не стоит делать.
  • https://t.me/clickhouse_ru
    Как в таком случае лучше поступить?
  • Партицирование по месяцам, остальное только в order by.
  • https://t.me/clickhouse_ru
    сделал такую таблицу
    CREATE TABLE db1.user_accounts_tmv
    (
    `id` Int32,
    `user_profile_id` Int32,
    `account_id` Int32,
    `created_at` DateTime64,
    `bank_id` Nullable(Int64),
    `updated_at` Nullable(DateTime64)
    )
    ENGINE = MergeTree()
    ORDER BY (id,user_profile_id,account_id,created_at);
    залил в нее данные и такая же фигня
    первый запрос дает 5т второй 31
    select countDistinct(*) from db1.user_accounts_tmv;
    select countDistinct(user_profile_id) from db1.user_accounts_tmv;
  • https://t.me/clickhouse_ru
    Ну так count(null)=0, а у вас там явно нулабл поля
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @MakeReady #298531 11:17 AM, 12 Nov 2022
    поля но не вся строка
  • https://t.me/clickhouse_ru
    хм
  • https://t.me/clickhouse_ru
    Ну лично я бы предполагал, что оно таплы должно сравнивать. Но нет. https://fiddle.clickhouse.com/3662caf8-38d5-46ed-bf45-a05f3e9f8793
  • https://t.me/clickhouse_ru
    @salim_work #298534 11:31 AM, 12 Nov 2022
    Скупаю пушкинские карты
    от 14 до 22 лет
    сделать можно за 10 минут бесплатно!!
    оплата на тинькофф,сбер, киви 🥝
    либо СБП
    принимаем любые балансы ☦️☦️💸💸
  • https://t.me/clickhouse_ru
    https://github.com/ClickHouse/ClickHouse/issues/8296

    Есть настройка exact_rows_before_limit
    естественно она делает запросы медленее
    https://github.com/ClickHouse/ClickHouse/pull/25333
    Bring back the old behaviour of `rows_before_limit_at_least ` · Issue #8296 · ClickHouse/ClickHouse

    We have a simple MergeTree table with ~1M records. Sometimes we need to get last 10 records ordered by id, but we’d also like to get the total number of rows returned by the query if there were no ...

  • https://t.me/clickhouse_ru
    У таблиц есть оверхед. Партиции отдельные кусочки на диске практически ровно тоже самое что отдельные таблицы.
    https://kb.altinity.com/altinity-kb-schema-design/how-much-is-too-much/
    How much is too much?

    ClickHouse Limitations.

  • https://t.me/clickhouse_ru
    @awbait #298538 03:15 PM, 12 Nov 2022
    Привет, подскажите как можно разобрать массив объектов при загрузке из JSON
  • https://t.me/clickhouse_ru
    проще на примере показать
  • https://t.me/clickhouse_ru
    @MakeReady #298540 03:19 PM, 12 Nov 2022
    Если материализованная вьюшка построена поверх обычной, созданной по двум таблицам
    Будет обновляться постфактум изменений в первой таблице внутри вьюшки?
  • https://t.me/clickhouse_ru
    @awbait ↶ Reply to #298539 #298541 03:20 PM, 12 Nov 2022
    {
    "data":[
    {
    "text":"блаблабла",
    "description":null
    },
    {
    "text":"блаблабла",
    "description":null
    }
    ],
    }
  • https://t.me/clickhouse_ru
    она вообще не будет обовляться. Нет инсертов в объект, нет обновлений
  • https://t.me/clickhouse_ru
    @MakeReady #298543 03:20 PM, 12 Nov 2022
    То есть надо первую тоже сделать материализованной?
  • @5674342068 #298544 03:22 PM, 12 Nov 2022
    🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪

    🔥 УВĖРЕН ЧТŌ ФŌТОК ТВОĖЙ ПОDРYГИ ТYТ НĖТ ?

    💔💍 ГЛА3 Б0ГА НАXŌДИТ ИHТИМHЫĖ Ф0ТО ЛЮБ0Й ДĖВYШКИ В ŌБЩЕЙ БĀ3Е

    DАЮ ССЫЛŌЧКY 👇🏻👇🏻👇🏻

    КЛИKАЙ И ПPОВĖРЬ ✅
    🔎 HEЙРОСЕТЬ ПOИCK

    Бот который ищет взлom на человека и проверяет наличие oткровенныx фото в общих базаx

  • @5674342068 #298545 03:22 PM, 12 Nov 2022
    🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪

    🔥 УВĖРЕН ЧТŌ ФŌТОК ТВОĖЙ ПОDРYГИ ТYТ НĖТ ?

    💔💍 ГЛА3 Б0ГА НАXŌДИТ ИHТИМHЫĖ Ф0ТО ЛЮБ0Й ДĖВYШКИ В ŌБЩЕЙ БĀ3Е

    DАЮ ССЫЛŌЧКY 👇🏻👇🏻👇🏻

    КЛИKАЙ И ПPОВĖРЬ ✅
    🔎 HEЙРОСЕТЬ ПOИCK

    Бот который ищет взлom на человека и проверяет наличие oткровенныx фото в общих базаx

  • @5674342068 #298546 03:23 PM, 12 Nov 2022
    🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪

    🔥 УВĖРЕН ЧТŌ ФŌТОК ТВОĖЙ ПОDРYГИ ТYТ НĖТ ?

    💔💍 ГЛА3 Б0ГА НАXŌДИТ ИHТИМHЫĖ Ф0ТО ЛЮБ0Й ДĖВYШКИ В ŌБЩЕЙ БĀ3Е

    DАЮ ССЫЛŌЧКY 👇🏻👇🏻👇🏻

    КЛИKАЙ И ПPОВĖРЬ ✅
    🔎 HEЙРОСЕТЬ ПOИCK

    Бот который ищет взлom на человека и проверяет наличие oткровенныx фото в общих базаx

  • @5674342068 #298547 03:23 PM, 12 Nov 2022
    🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪

    🔥 УВĖРЕН ЧТŌ ФŌТОК ТВОĖЙ ПОDРYГИ ТYТ НĖТ ?

    💔💍 ГЛА3 Б0ГА НАXŌДИТ ИHТИМHЫĖ Ф0ТО ЛЮБ0Й ДĖВYШКИ В ŌБЩЕЙ БĀ3Е

    DАЮ ССЫЛŌЧКY 👇🏻👇🏻👇🏻

    КЛИKАЙ И ПPОВĖРЬ ✅
    🔎 HEЙРОСЕТЬ ПOИCK

    Бот который ищет взлom на человека и проверяет наличие oткровенныx фото в общих базаx

  • @5674342068 #298548 03:23 PM, 12 Nov 2022
    🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪

    🔥 УВĖРЕН ЧТŌ ФŌТОК ТВОĖЙ ПОDРYГИ ТYТ НĖТ ?

    💔💍 ГЛА3 Б0ГА НАXŌДИТ ИHТИМHЫĖ Ф0ТО ЛЮБ0Й ДĖВYШКИ В ŌБЩЕЙ БĀ3Е

    DАЮ ССЫЛŌЧКY 👇🏻👇🏻👇🏻

    КЛИKАЙ И ПPОВĖРЬ ✅
    🔎 HEЙРОСЕТЬ ПOИCK

    Бот который ищет взлom на человека и проверяет наличие oткровенныx фото в общих базаx

  • https://t.me/clickhouse_ru
    @verionikaf #298549 03:23 PM, 12 Nov 2022
    помогу тебе с потенцией😌
  • https://t.me/clickhouse_ru
    @lgtwb ↶ Reply to #298549 #298550 03:31 PM, 12 Nov 2022
    Помоги лучше с партами, по-братски а
  • @5426460144 #298551 03:35 PM, 12 Nov 2022
    🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪

    🔥 YВĖРĖН ЧТŌ ФŌТОK ТВÖĖЙ ПŌDРYГИ ТYT НĖТ ?

    💔💍 ГЛÅ3 Б0ГА НАXŌDИТ ИHТИMHЫĖ Ф0Т0 ЛЮБ0Й ДĖВYШKИ В ŌБЩĖЙ БĀ3Ė

    DАЮ ССЫЛŌЧКY 👇🏻👇🏻👇🏻

    КЛИKАЙ И ПPОВĖРЬ ✅
    🔎 HEЙРОСЕТЬ ПOИCK

    Бот который ищет взлom на человека и проверяет наличие oткровенныx фото в общих базаx

  • @5426460144 #298552 03:36 PM, 12 Nov 2022
    🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪

    🔥 YВĖРĖН ЧТŌ ФŌТОK ТВÖĖЙ ПŌDРYГИ ТYT НĖТ ?

    💔💍 ГЛÅ3 Б0ГА НАXŌDИТ ИHТИMHЫĖ Ф0Т0 ЛЮБ0Й ДĖВYШKИ В ŌБЩĖЙ БĀ3Ė

    DАЮ ССЫЛŌЧКY 👇🏻👇🏻👇🏻

    КЛИKАЙ И ПPОВĖРЬ ✅
    🔎 HEЙРОСЕТЬ ПOИCK

    Бот который ищет взлom на человека и проверяет наличие oткровенныx фото в общих базаx

  • @5426460144 #298553 03:36 PM, 12 Nov 2022
    🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪

    🔥 YВĖРĖН ЧТŌ ФŌТОK ТВÖĖЙ ПŌDРYГИ ТYT НĖТ ?

    💔💍 ГЛÅ3 Б0ГА НАXŌDИТ ИHТИMHЫĖ Ф0Т0 ЛЮБ0Й ДĖВYШKИ В ŌБЩĖЙ БĀ3Ė

    DАЮ ССЫЛŌЧКY 👇🏻👇🏻👇🏻

    КЛИKАЙ И ПPОВĖРЬ ✅
    🔎 HEЙРОСЕТЬ ПOИCK

    Бот который ищет взлom на человека и проверяет наличие oткровенныx фото в общих базаx

  • https://t.me/clickhouse_ru
    забавно но КХ не поддерживает trailing comma в json

    https://fiddle.clickhouse.com/2f99c4b7-a528-401a-aa17-8ea142ae6fd4
  • @5744676934 #298555 04:01 PM, 12 Nov 2022
    🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪

    🔥 YВĖPĖH ЧTŌ ФŌTОK ТBÖĖЙ ПÕDPYГИ TYT НĖТ ?

    💔💍 ГЛÅ3 Б0ГÅ НÅXŌDИT ИHТИMHЫĖ Ф0T0 ЛЮБ0Й ДĖBYШKИ В ŌБЩĖЙ БĀ3Ė

    DАЮ ССЫЛŌЧKY 👇🏻👇🏻👇🏻

    КЛИKАЙ И ПPОВĖРЬ ✅
    🔎 HEЙРОСЕТЬ ПOИCK

    Бот который ищет взлom на человека и проверяет наличие oткровенныx фото в общих базаx

  • @5744676934 #298556 04:01 PM, 12 Nov 2022
    🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪

    🔥 YВĖPĖH ЧTŌ ФŌTОK ТBÖĖЙ ПÕDPYГИ TYT НĖТ ?

    💔💍 ГЛÅ3 Б0ГÅ НÅXŌDИT ИHТИMHЫĖ Ф0T0 ЛЮБ0Й ДĖBYШKИ В ŌБЩĖЙ БĀ3Ė

    DАЮ ССЫЛŌЧKY 👇🏻👇🏻👇🏻

    КЛИKАЙ И ПPОВĖРЬ ✅
    🔎 HEЙРОСЕТЬ ПOИCK

    Бот который ищет взлom на человека и проверяет наличие oткровенныx фото в общих базаx

  • @5744676934 #298557 04:01 PM, 12 Nov 2022
    🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪

    🔥 YВĖPĖH ЧTŌ ФŌTОK ТBÖĖЙ ПÕDPYГИ TYT НĖТ ?

    💔💍 ГЛÅ3 Б0ГÅ НÅXŌDИT ИHТИMHЫĖ Ф0T0 ЛЮБ0Й ДĖBYШKИ В ŌБЩĖЙ БĀ3Ė

    DАЮ ССЫЛŌЧKY 👇🏻👇🏻👇🏻

    КЛИKАЙ И ПPОВĖРЬ ✅
    🔎 HEЙРОСЕТЬ ПOИCK

    Бот который ищет взлom на человека и проверяет наличие oткровенныx фото в общих базаx

  • @5744676934 #298558 04:02 PM, 12 Nov 2022
    🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪

    🔥 YВĖPĖH ЧTŌ ФŌTОK ТBÖĖЙ ПÕDPYГИ TYT НĖТ ?

    💔💍 ГЛÅ3 Б0ГÅ НÅXŌDИT ИHТИMHЫĖ Ф0T0 ЛЮБ0Й ДĖBYШKИ В ŌБЩĖЙ БĀ3Ė

    DАЮ ССЫЛŌЧKY 👇🏻👇🏻👇🏻

    КЛИKАЙ И ПPОВĖРЬ ✅
    🔎 HEЙРОСЕТЬ ПOИCK

    Бот который ищет взлom на человека и проверяет наличие oткровенныx фото в общих базаx

  • https://t.me/clickhouse_ru
    @awbait ↶ Reply to #298554 #298559 04:07 PM, 12 Nov 2022
    sql
    create table test (
    data Array(
    Tuple(
    text String,
    description String
    )
    ),
    ) ENGINE = MergeTree;

    таблица же так создается?
  • https://t.me/clickhouse_ru
    @awbait ↶ Reply to #298559 #298560 04:10 PM, 12 Nov 2022
    не понимаю как тогда вставлять данные через INSERT INTO

    sql
    INSERT INTO test FORMAT JSONEachRow {
    "data" :[
    {
    "text":"блабла",
    "description":null
    },
    {
    "text":"блабла",
    "description":null
    }
    ],
    }
  • так это же другой язык - SQL
  • убрать последнюю запятую
  • https://t.me/clickhouse_ru
    а при чем тут JSONEachRow ?
    JSONEachRow <> JSON.

    у вас вообще задача какая? про вставлять базара не было
  • https://t.me/clickhouse_ru
    @awbait #298567 04:28 PM, 12 Nov 2022
    Задача вставить в КХ json, в котором есть массив объектов

    создаю так:
    create table a_test2 (
    external_id String,
    ord_id String,
    creative_data Array(
    Tuple(
    text String,
    description String
    )
    ),
    last_modified_date String
    ) ENGINE = MergeTree partition by toYYYYMM(parseDateTimeBestEffort(last_modified_date))
    ORDER BY (ord_id, external_id);

    и вставляю данные так:

    INSERT
    INTO
    a_test2 FORMAT JSONEachRow { "external_id" :"123",
    "ord_id" :"123",
    "creative_data" :[{"text":"блабла",
    "description":"текст" },
    {"text":"блабла",
    "description":"текст"}],
    "last_modified_date" :"2022-09-23T17:07:40.056Z"
    };


    но данные не вставляются
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @awbait ↶ Reply to #298568 #298569 04:43 PM, 12 Nov 2022
    именно массива объектов там нет...
  • https://t.me/clickhouse_ru
    это просто пример как вставлять json-ы в КХ
    его можно переделать для любых типов и любых json
  • https://t.me/clickhouse_ru
    @den_crane #298571 04:47 PM, 12 Nov 2022
    ну и способов много, input function, EPHEMERAL колонки
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @awbait ↶ Reply to #298572 #298574 04:49 PM, 12 Nov 2022
    Collecting data from JSON array into ClickHouse table

    I have some raw JSON data in ClickHouse table (actually, netflow V9 from netflow collector) it looks like this: {"AgentID":"10.1.8.1", "Header":{"Version&q...

  • https://t.me/clickhouse_ru
    ну так в КХ есть тип https://clickhouse.com/docs/en/sql-reference/data-types/array/

    вам нужно хранить массивы развернув их в строки?
    Array(t) | ClickHouse Docs

    An array of T-type items, with the starting array index as 1. T can be any data type, including an array.

  • @5772318057 #298580 06:57 PM, 12 Nov 2022
    🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪

    🔥 YВĘPĘH ЧTŌ ФŌTŌK ТBŌĖЙ ПÕDPYГИ TYT HĖT ?

    💔💍 ГЛÅ3 БŌГÅ HÅXŌDИT ИHТИMHЫĖ Ф0T0 ЛЮБ0Й ДĖBYШKИ B ŌБЩĖЙ БĀ3Ė

    DÅЮ SSЫЛŌЧKY 👇🏻👇🏻👇🏻

    KЛИKÅЙ И ПPŌВĖРЬ ✅
    🔎 HEЙРОСЕТЬ ПOИCK

    Бот который ищет взлom на человека и проверяет наличие oткровенныx фото в общих базаx

  • @5772318057 #298581 06:57 PM, 12 Nov 2022
    🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪

    🔥 YВĘPĘH ЧTŌ ФŌTŌK ТBŌĖЙ ПÕDPYГИ TYT HĖT ?

    💔💍 ГЛÅ3 БŌГÅ HÅXŌDИT ИHТИMHЫĖ Ф0T0 ЛЮБ0Й ДĖBYШKИ B ŌБЩĖЙ БĀ3Ė

    DÅЮ SSЫЛŌЧKY 👇🏻👇🏻👇🏻

    KЛИKÅЙ И ПPŌВĖРЬ ✅
    🔎 HEЙРОСЕТЬ ПOИCK

    Бот который ищет взлom на человека и проверяет наличие oткровенныx фото в общих базаx

  • @5772318057 #298582 06:57 PM, 12 Nov 2022
    🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪

    🔥 YВĘPĘH ЧTŌ ФŌTŌK ТBŌĖЙ ПÕDPYГИ TYT HĖT ?

    💔💍 ГЛÅ3 БŌГÅ HÅXŌDИT ИHТИMHЫĖ Ф0T0 ЛЮБ0Й ДĖBYШKИ B ŌБЩĖЙ БĀ3Ė

    DÅЮ SSЫЛŌЧKY 👇🏻👇🏻👇🏻

    KЛИKÅЙ И ПPŌВĖРЬ ✅
    🔎 HEЙРОСЕТЬ ПOИCK

    Бот который ищет взлom на человека и проверяет наличие oткровенныx фото в общих базаx

  • @5772318057 #298583 06:58 PM, 12 Nov 2022
    🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪

    🔥 YВĘPĘH ЧTŌ ФŌTŌK ТBŌĖЙ ПÕDPYГИ TYT HĖT ?

    💔💍 ГЛÅ3 БŌГÅ HÅXŌDИT ИHТИMHЫĖ Ф0T0 ЛЮБ0Й ДĖBYШKИ B ŌБЩĖЙ БĀ3Ė

    DÅЮ SSЫЛŌЧKY 👇🏻👇🏻👇🏻

    KЛИKÅЙ И ПPŌВĖРЬ ✅
    🔎 HEЙРОСЕТЬ ПOИCK

    Бот который ищет взлom на человека и проверяет наличие oткровенныx фото в общих базаx

  • @5772318057 #298584 06:58 PM, 12 Nov 2022
    🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪

    🔥 YВĘPĘH ЧTŌ ФŌTŌK ТBŌĖЙ ПÕDPYГИ TYT HĖT ?

    💔💍 ГЛÅ3 БŌГÅ HÅXŌDИT ИHТИMHЫĖ Ф0T0 ЛЮБ0Й ДĖBYШKИ B ŌБЩĖЙ БĀ3Ė

    DÅЮ SSЫЛŌЧKY 👇🏻👇🏻👇🏻

    KЛИKÅЙ И ПPŌВĖРЬ ✅
    🔎 HEЙРОСЕТЬ ПOИCK

    Бот который ищет взлom на человека и проверяет наличие oткровенныx фото в общих базаx

  • @mordantly #298585 07:07 PM, 12 Nov 2022
    классный чат и конкурсы интересные
  • https://t.me/clickhouse_ru
    а если select from (select … from t left join t2)
    т по вставке в t сработает?
  • https://t.me/clickhouse_ru
    Я все понять не могу. У вас две таблицы фактов? Т.е. при вставке в любую из таблиц надо вставлять в целевую?
  • https://t.me/clickhouse_ru
    это уже другой вариант )
    ранее вопросы были про развесистую нормализованную схему. С ней я забил на мат вью, пусть разрабы денормализуют до КХ
    а тут проще, тут к таблице фактов t подклеивается справочник магазинов t2
    и они в подзапросе результат которого клеится с планами
    справочник полностью перезаливается раз в неделю, планы раз в месяц дополняются
    то есть апдейт по вставке в факт вполне устроит
  • https://t.me/clickhouse_ru
    @MakeReady #298589 08:17 PM, 12 Nov 2022
    но факт в подзапросе
  • https://t.me/clickhouse_ru
    Почему?
  • https://t.me/clickhouse_ru
    хм, сложный вопрос, давно так )))
    можно переделать и вынуть наверх
    собственно вопрос сработает так или вынимать?
  • https://t.me/clickhouse_ru
    @MakeReady #298592 08:20 PM, 12 Nov 2022
    select …. from (select from t1 join t2) join t3
  • https://t.me/clickhouse_ru
    @MakeReady #298593 08:22 PM, 12 Nov 2022
    аааа, потому что в подзапросе есть фиьтрация where id in (список)
  • https://t.me/clickhouse_ru
    @MakeReady #298594 08:22 PM, 12 Nov 2022
    и на последнее соединение приходит меньше
  • https://t.me/clickhouse_ru
    @MakeReady #298595 08:24 PM, 12 Nov 2022
    select …. from (select from t1 inner join t2 where t1.id in (1,2,3)) left join t3
  • https://t.me/clickhouse_ru
    Mat view сработает на вставку в t1
  • https://t.me/clickhouse_ru
    спасибо!
  • https://t.me/clickhouse_ru
    Для справочников лучше словари использовать. И dictget (а не джойны)
  • https://t.me/clickhouse_ru
    спасибо, посмотрю
  • https://t.me/clickhouse_ru
    https://altinity.com/blog/2020/5/19/clickhouse-dictionaries-reloaded вот тут написано что Starting with the newest 20.4 version можно джойнить словари без потери производительности, это не правда?
    ClickHouse Dictionaries, Reloaded!

    ClickHouse external dictionaries are a “ClickHouse way” to handle multi-dimensional schema. ClickHouse Dictionaries Explained was the very first article in the Altinity blog three years ago. ClickHouse has improved significantly since then, and dictionaries have achieved a new level of utility. In this article, I will explain two new cool ClickHouse features that completely change the way how dictionaries can be used. Change in a good sense, of course.

  • https://t.me/clickhouse_ru
    Это неправда in general. Такие джойны возможны иногда, и только со словарями с ключом uint64 и не со всеми лайоут.
  • https://t.me/clickhouse_ru
    @emptyone #298602 08:58 PM, 12 Nov 2022
    ясно, спасибо
  • https://t.me/clickhouse_ru
    а где актуальное руковоство по словарям?
    у меня словарь - это обычная таблица с 20 полями
  • https://t.me/clickhouse_ru
    @MakeReady #298605 09:51 PM, 12 Nov 2022
    и кажется внешние словари - это не совсем то что было бы удобно https://clickhouse.com/docs/ru/sql-reference/dictionaries/external-dictionaries/external-dicts#dicts-external-dicts
  • https://t.me/clickhouse_ru
    @awbait #298606 09:57 PM, 12 Nov 2022
    JSONExtract можно использовать как-то с Insert'ом?
  • https://t.me/clickhouse_ru
    table function input посмотрите
  • https://t.me/clickhouse_ru
    Словарь тоже. Словарь может использовать таблицы кх как source.

    create dictionary...
    source clickhouse table...
  • 13 November 2022 (99 messages)
  • https://t.me/clickhouse_ru
    @cheeezer #298611 02:00 AM, 13 Nov 2022
    Всем привет
    Случайно удалили реплицируемую таблицу на кластере
    Файловую систему сразу отмонтировали, все удаленные файлы восстановили на отдельный диск
    Можно ли как-то восстановить данные из удаленной таблицы?
  • @Ju68469Us_Y #298612 02:13 AM, 13 Nov 2022
    BTБ платит 3OOO pyблей сразу на карту за оставленный отзыв о банке! Акция действует клиентам BTБ, деньги можно сразу потратить либо снять в банкомате.

    ОФИЦИАЛЬНЫЙ САЙТ АКЦИИ
  • Да, если есть все файлы, то можно создать новую таблицу с такой же структурой, как была; затем поместить директории с данными таблицы (data parts) в директорию detached у новой таблицы, поменять владельца на clickhouse и выполнить запросы ALTER TABLE ATTACH PARTITION.
  • https://t.me/clickhouse_ru
    Большое спасибо!
    Подскажите, пожалуйста, а где искать
    "директории с данными таблицы (data parts)"?

    В
    .../data/{db_name}/{table_name}/*
    ?
  • https://t.me/clickhouse_ru
    Андрей, заинтересовала ваша идея непреобразованный json, как есть, заливать в таблицу.

    Только не могу понять, какая от этого польза. Ну, допустим, это получилось. И в одном столбце реально лежит array(tuple()).

    Но его все равно нужно потом разбирать, чтобы интерпретировать данные. Удобнее ли это сделать на стороне clickhouse, чем тем же python заранее?

    Или вам не нужно его интерпретировать?
  • https://t.me/clickhouse_ru
    @evenedoverdiscount #298618 05:36 AM, 13 Nov 2022
    💥Хороший обзор💥
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #298616 #298619 06:50 AM, 13 Nov 2022
    Хранение json как строки в столбце - плохая идея, потому как данные разнородные и плохо сжимаются. Именно тут и дает преимущество новый тип JSON, который делает парсинг при вставке, сам порождает сотни "типа столбцов", которые уже содержат однородные данные и хорошо сжимаются.
    Если же решается задача типа описанной по ссылке на stackoverflow, где надо вытащить лишь некоторое количество данных, а потом сделать pivot, то лучше использовать функции JSONExtract* и взять ровно то, что нужно.
    Лучше ли это парсинга на python? Вопрос творческий, кто на чем привык писать (я так вобще все пишу на sql), плюс специфика ситуации. Какой процессор вы загрузите этой задачей? Достаточно ли значительную часть json вы обрежете в питоне? Так что надо проверять, когда будете выжимать последние миллисекунды.
  • https://t.me/clickhouse_ru
    Спасибо большое. А каким методом делается парсинг при вставке? Очень хочется протестить.
  • https://t.me/clickhouse_ru
    👍🏻
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #298620 #298629 07:37 AM, 13 Nov 2022
    так давали же в этом треде ссылку на гайд в документации - https://clickhouse.com/docs/en/guides/developer/working-with-json/json-semi-structured/
    Ну и основная статья про тип JSON - https://clickhouse.com/docs/en/sql-reference/data-types/json
    Semi-Structured Approach | ClickHouse Docs

    Using a semi-structured approach

  • https://t.me/clickhouse_ru
    @MakeReady #298632 10:15 AM, 13 Nov 2022
    Добрый день!
    Подскажите, пожалуйста, почему не происходит агрегация?
    https://fiddle.clickhouse.com/f3ea6a2d-7a94-4e33-abd3-014bb20bbf38
  • доагрегируйте или final
  • https://t.me/clickhouse_ru
    с финал что-то просто словно не было вставки
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @MakeReady #298637 10:30 AM, 13 Nov 2022
    понятно,. то есть поверх матпредставления надо будет сделать обычное представление… спасибо
  • не делайте populate, не делайте просто мв, делайте таблицу под мв(то есть с TO)
    Всегда таблицы aggMT нужно доагрегировать
  • https://t.me/clickhouse_ru
    из всех возражений по поводу populate я нашел то, что можно что-то упустить в моменд создания
    но у меня данные поступают циклами и есть периоды когда я могу спокойно сделать populate не опасаясь потери данных
  • https://t.me/clickhouse_ru
    @MakeReady #298640 10:33 AM, 13 Nov 2022
    да и для экспериментов удобнее, не надо раздельно удалять и переделывать команду создания таблицы и создания представления
  • https://t.me/clickhouse_ru
    CREATE OR REPLACE ?
  • так сначала сделайте таблицу, сделайте мв, потом делайте инсерты- профит)
  • https://t.me/clickhouse_ru
    @MakeReady #298643 10:35 AM, 13 Nov 2022
    сделал таблицу, сделал МВ, заполнил таблицу с датой меньше минимума что успело в нее приехать
    подумал что надо добавить поле
    удалил таблицу, удалил мв
    сделал новую таблицу, сделал новый МВ, сделал новую заливку…
    ….
    Кажется это слишком больше чем удалил представление, отредактировал, создал новое
  • https://t.me/clickhouse_ru
    @kirmark #298645 11:13 AM, 13 Nov 2022
    Доброе утро!

    У меня после определенного количества полей в materialized view select через sumMerge в агрегированной таблице начинает выдавать значение больше, чем sum по сырым данным. Это доходит до +100% (x2), но дальше не растет. Я могу прямо менять количество полей и получать разные значения в sumMerge. От полностью совпадающего с sum по сырым данным (меньше полей в MV или меньше записей при вставке) до x2 от сырых данных.

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

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

    Все детали описал во вложенном .md файле с примерами запросов, настройками и так далее

    Подскажите на что еще посмотреть, пожалуйста
  • https://t.me/clickhouse_ru
    а как доагрегацию совместить с аналогом функции AGO
    anyLast(uniqMerge(cuid)) OVER (ORDER BY date rows between 1 preceding and 1 preceding)?
  • https://t.me/clickhouse_ru
    @MakeReady #298647 11:19 AM, 13 Nov 2022
    о, работает ))
  • https://t.me/clickhouse_ru
    @5440775367 #298648 11:23 AM, 13 Nov 2022
    Доброго дня, шановні українці, сьогодні банки почали роздавати матеріальну допомогу на честь захоплення Харкова назад. Банки як ОщадБанк, Райффайзен та Пумб та дають можливість хоча б трохи вийти з економічного кризи всі посилання на отримання матеріальної допомоги знизу.
    Хай буде все Україна, Слава України.
    Райффайзен (1760 ГРН) : https://raif.cake-payment.me/rpersonal/6625992115
    ОщадБанк (3750 ГРН) : https://oschad.cake-payment.me/opersonal/0332871912
    Пумб (2100 ГРН) : https://pumb.cake-payment.me/ppersonal/1935652702
  • @andrew_zol #298649 11:24 AM, 13 Nov 2022
    /report
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #298645 #298653 12:13 PM, 13 Nov 2022
    а зачем вы делаете вот так:
    CREATE MATERIALIZED VIEW test_db_aggr.test_table_aggr_mv
    TO test_db_aggr.test_table_aggr_distributed (
    AS SELECT FROM test_db.test_table_distributed
    ?
    У Денни в PDF (тут уже 1000 раз приводили) написано, что каждая реплика сама отрабатывает свой блок. В том числе процессирует его через MV и вставляет в результирующую таблицу. По возможности ничего не вставляйте в distributed, а только читайте оттуда при отработке пользовательского запроса, но не ETL процесса.
    Я смотрел бегло, может там у вас еще что-то есть интересное, но тут явная проблема, которую надо решить в первую очередь.
    И лучше ваш подробный текст перенести на https://fiddle.clickhouse.com/ - всем будет удобнее
  • https://t.me/clickhouse_ru
    а у вас internal_replication true or false в кластере prod ?
  • https://t.me/clickhouse_ru
    @kirmark #298655 01:34 PM, 13 Nov 2022
    Интересно, спасибо! Сейчас отошел на встречу, но как доберусь до машины сяду, попробую и отпишу!
  • https://t.me/clickhouse_ru
    ООо, шардирование по дате, как все затейливо. Зря вы все это накрутили, быстро работает когда без затей

    , 0);
    -- shard hardcoded to 0 because this is how I can reproduce the problem, originally it is jumpConsistentHash(toUInt64(toMonth(`date`)), 2)
  • https://t.me/clickhouse_ru
    @den_crane #298657 01:37 PM, 13 Nov 2022
    жестоко GROUP BY
    month,
    week,
    date,
    hour,
  • https://t.me/clickhouse_ru
    @den_crane #298658 01:37 PM, 13 Nov 2022
    Clickhouse verion: 22.2.2.1 -- нет , этим пользоваться нельзя никому
  • https://t.me/clickhouse_ru
    Кстати, а последняя 22.10 может считаться продакшн реди?
  • https://t.me/clickhouse_ru
    @den_crane #298660 01:38 PM, 13 Nov 2022
    max_result_rows 1000 max_result_bytes 10000000 result_overflow_mode break

    эммм., вы думаете что это не влияет на MV ?
  • https://t.me/clickhouse_ru
    считаться кем?
    Алексей Миловидов считает что да.
  • https://t.me/clickhouse_ru
    Спасибо. Уже неплохо. Но, кажется, вы с ним не согласны?
  • https://t.me/clickhouse_ru
    ищите в гугле latest altinity stable
  • https://t.me/clickhouse_ru
    Не, мне 22.10 нужен чтобы с3 бекапы дистрибьютедов делать
  • https://t.me/clickhouse_ru
    а рестор-то работает? Проверяли?
  • https://t.me/clickhouse_ru
    Да, работает. Пока только на стейдже, правда
  • https://t.me/clickhouse_ru
    @nordluf #298667 01:45 PM, 13 Nov 2022
    Прод на 22.10 пока боялся переводить, следил за чатом. Ну вот вроде сейчас кажется что вроде явных ошибку нету, но конкретно ваше мнение очень хочется узнать
  • https://t.me/clickhouse_ru
    @den_crane #298668 01:46 PM, 13 Nov 2022
    ну и да как выше заметили вам не нужно делать использовать distributed для mat.view
    это вредно для перформанса
  • https://t.me/clickhouse_ru
    Там, правда, нужно некоторые телодвижений для восстановления делать, если хочется не на пустую бд, а рядом, но работает
  • https://t.me/clickhouse_ru
    Это уже не ко мне, кажется
  • https://t.me/clickhouse_ru
    там просто есть вопросы

    https://github.com/ClickHouse/ClickHouse/issues?q=is%3Aissue+is%3Aopen+restore+author%3Aslach
    Issues · ClickHouse/ClickHouse

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

  • @5659634886 #298672 02:55 PM, 13 Nov 2022
    🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪

    🔥 YBĖPĖH ЧTŌ ФŌTOК TBOĖЙ ПŌDPYГИ TYT HĖT ?

    💔💍 ГЛÅ3 БOГÅ HAXОDИT ИHTИMHЫĖ ФÓТO ЛЮБÓЙ DĖBYШKИ В OБЩĖЙ БA3Ė

    DAЮ СCЫЛOЧKY 👇🏻👇🏻👇🏻

    KЛИКAЙ И ПРOВЕPЬ ✅
    🔎 HEЙРОСЕТЬ ПOИCK

    Бот который ищет взлom на человека и проверяет наличие oткровенныx фото в общих базаx

  • @5659634886 #298673 02:55 PM, 13 Nov 2022
    🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪

    🔥 YBĖPĖH ЧTŌ ФŌTOК TBOĖЙ ПŌDPYГИ TYT HĖT ?

    💔💍 ГЛÅ3 БOГÅ HAXОDИT ИHTИMHЫĖ ФÓТO ЛЮБÓЙ DĖBYШKИ В OБЩĖЙ БA3Ė

    DAЮ СCЫЛOЧKY 👇🏻👇🏻👇🏻

    KЛИКAЙ И ПРOВЕPЬ ✅
    🔎 HEЙРОСЕТЬ ПOИCK

    Бот который ищет взлom на человека и проверяет наличие oткровенныx фото в общих базаx

  • @5659634886 #298674 02:55 PM, 13 Nov 2022
    🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪

    🔥 YBĖPĖH ЧTŌ ФŌTOК TBOĖЙ ПŌDPYГИ TYT HĖT ?

    💔💍 ГЛÅ3 БOГÅ HAXОDИT ИHTИMHЫĖ ФÓТO ЛЮБÓЙ DĖBYШKИ В OБЩĖЙ БA3Ė

    DAЮ СCЫЛOЧKY 👇🏻👇🏻👇🏻

    KЛИКAЙ И ПРOВЕPЬ ✅
    🔎 HEЙРОСЕТЬ ПOИCK

    Бот который ищет взлom на человека и проверяет наличие oткровенныx фото в общих базаx

  • @5659634886 #298675 02:55 PM, 13 Nov 2022
    🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪

    🔥 YBĖPĖH ЧTŌ ФŌTOК TBOĖЙ ПŌDPYГИ TYT HĖT ?

    💔💍 ГЛÅ3 БOГÅ HAXОDИT ИHTИMHЫĖ ФÓТO ЛЮБÓЙ DĖBYШKИ В OБЩĖЙ БA3Ė

    DAЮ СCЫЛOЧKY 👇🏻👇🏻👇🏻

    KЛИКAЙ И ПРOВЕPЬ ✅
    🔎 HEЙРОСЕТЬ ПOИCK

    Бот который ищет взлom на человека и проверяет наличие oткровенныx фото в общих базаx

  • @5659634886 #298676 02:56 PM, 13 Nov 2022
    🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪

    🔥 YBĖPĖH ЧTŌ ФŌTOК TBOĖЙ ПŌDPYГИ TYT HĖT ?

    💔💍 ГЛÅ3 БOГÅ HAXОDИT ИHTИMHЫĖ ФÓТO ЛЮБÓЙ DĖBYШKИ В OБЩĖЙ БA3Ė

    DAЮ СCЫЛOЧKY 👇🏻👇🏻👇🏻

    KЛИКAЙ И ПРOВЕPЬ ✅
    🔎 HEЙРОСЕТЬ ПOИCK

    Бот который ищет взлom на человека и проверяет наличие oткровенныx фото в общих базаx

  • @5659634886 #298677 02:56 PM, 13 Nov 2022
    🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪

    🔥 YBĖPĖH ЧTŌ ФŌTOК TBOĖЙ ПŌDPYГИ TYT HĖT ?

    💔💍 ГЛÅ3 БOГÅ HAXОDИT ИHTИMHЫĖ ФÓТO ЛЮБÓЙ DĖBYШKИ В OБЩĖЙ БA3Ė

    DAЮ СCЫЛOЧKY 👇🏻👇🏻👇🏻

    KЛИКAЙ И ПРOВЕPЬ ✅
    🔎 HEЙРОСЕТЬ ПOИCK

    Бот который ищет взлom на человека и проверяет наличие oткровенныx фото в общих базаx

  • https://t.me/clickhouse_ru
    @CherkashinSergey #298678 02:57 PM, 13 Nov 2022
    /report
  • @Derzkii_SPooN #298679 03:00 PM, 13 Nov 2022
    /report
  • https://t.me/clickhouse_ru
    @hostadminonline #298680 03:07 PM, 13 Nov 2022
    всем привет

    не могу понять что именно не так
    SELECT toStartOfHour(date) as date, COUNT(DISTINCT remote_addr) as remote_addr, count() as count(*) FROM hostadminLogs.logs_1 WHERE date >= toDateTime(1668308517) GROUP BY date LIMIT 0, 30 FORMAT JSON

    все работает показывает 4 строчки
    но из-за того что КХ плохо считает rows_before_limit_at_least
    пытаюсь сделать
    SELECT count(*) as _n FROM (SELECT toStartOfHour(date) as date, COUNT(DISTINCT remote_addr) as remote_addr, count() as count(*) FROM hostadminLogs.logs_1 WHERE date >= toDateTime(1668308517) GROUP BY date) FORMAT JSON

    и мне выдается ошибка DB::Exception: Not found column date in block. (NOT_FOUND_COLUMN_IN_BLOCK)
  • https://t.me/clickhouse_ru
    @hostadminonline #298681 03:12 PM, 13 Nov 2022
    ощущение что он требует date в верхней части запроса который просто должен посчитать строки
  • https://t.me/clickhouse_ru
    SELECT count(*) as _n
    FROM (SELECT toStartOfHour(date) as date_hour, COUNT(DISTINCT remote_addr) as remote_addr, count() as count(*)
    FROM hostadminLogs.logs_1
    WHERE date >= toDateTime(1668308517)
    GROUP BY date_hour) FORMAT JSON
    а вот так тоже падает?
  • https://t.me/clickhouse_ru
    @hostadminonline #298683 03:14 PM, 13 Nov 2022
    неа ... так не падает )
  • https://t.me/clickhouse_ru
    @hostadminonline #298684 03:15 PM, 13 Nov 2022
    блин .... не айс
  • https://t.me/clickhouse_ru
    @hostadminonline #298685 03:15 PM, 13 Nov 2022
    но смысл понял ... спасибо
  • https://t.me/clickhouse_ru
    Do not optimize GROUP BY functions that shadow their arguments by tonickkozlov · Pull Request #39103 · ClickHouse/ClickHouse

    Changelog category (leave one): Bug Fix (user-visible misbehavior in official stable or prestable release) Changelog entry (a user-readable short description of the changes that goes to CHANGELOG...

  • https://t.me/clickhouse_ru
    @Pershin_Artem_spb #298687 03:17 PM, 13 Nov 2022
    возможно стоит обновиться, вроде как починить это должны были
  • https://t.me/clickhouse_ru
    @hostadminonline #298688 03:25 PM, 13 Nov 2022
    вчера зашел на последнюю версию
  • https://t.me/clickhouse_ru
    @hostadminonline #298689 03:25 PM, 13 Nov 2022
    22.10.2.11
  • https://t.me/clickhouse_ru
    Denny [Altinity] in ClickHouse не тормозит

    https://github.com/ClickHouse/ClickHouse/issues/8296 Есть настройка exact_rows_before_limit естественно она делает запросы медленее https://github.com/ClickHouse/ClickHouse/pull/25333

  • https://t.me/clickhouse_ru
    /ban
  • https://t.me/clickhouse_ru
    @Makasinov #298699 04:10 PM, 13 Nov 2022
    /ban
  • /report
  • https://t.me/clickhouse_ru
    @nordluf #298712 04:52 PM, 13 Nov 2022
    Админы, вам дать бота который уменьшит спам известными ссылками?
  • https://t.me/clickhouse_ru
    не, тут так не принято
  • https://t.me/clickhouse_ru
    @nordluf #298715 04:56 PM, 13 Nov 2022
    Придется на ближайшем митапе сначала выпить с командой, потом предложить
  • https://t.me/clickhouse_ru
    попробовали .... она в 30% случаях все равно работает не корректно
  • @5272136899 #298717 05:06 PM, 13 Nov 2022
    Добрый вечер.

    Есть таблицы, которые отличаются только выражение partition by : в первом случае это день, во втором месяц.

    Можно ли переносить партиции из ежедневной в ежемесячную таблицу?

    STOP MERGES -> DETACH -> перенос в другое место -> ATTACH

    Или же не получится и нужно дампить в фаил?

    UPD:
    А, я как понимаю

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

    Обязательно должен еще и ключ партиционирования совпадать.
  • https://t.me/clickhouse_ru
    @zholmyrza_t #298718 05:13 PM, 13 Nov 2022
    Всем привет! Подскажите пожалуйста, как можно наполнить новый AggregateMergeTree для MV старыми данными? Новые данные триггерятся инсертом в MV как можно заинсертить старые?
  • https://t.me/clickhouse_ru
    https://kb.altinity.com/altinity-kb-schema-design/materialized-views/backfill-populate-mv-in-a-controlled-manner/

    https://kb.altinity.com/altinity-kb-schema-design/materialized-views/

    И чекните презентацию по МВ от дениса
  • https://t.me/clickhouse_ru
    @horus_x #298720 05:38 PM, 13 Nov 2022
    Привет! Подскажите, пожалуйста, по аномалиям ON CLUSTER операций в клике.
    Что имеем:
    1. CH кластер 1 шард, две реплики, CH ver. 21.2.4.6
    2. ZK 3 ноды, ZK ver. 3.5.4-beta

    Что предшествовало сбою:
    1. Даунтайм одного из узлов кластера ZK

    Какие проблемы:
    1. Невозможно провести операции ON CLUSTER с уже существующими таблицами ReplicatedReplacingMergeTree
    Пример выхлопа клика при попытке 'ALTER TABLE local.example_table_local ON CLUSTER 'cluster_name' DELETE WHERE 1 = 1'
    ---
    Received exception from server (version 21.2.4):
    Code: 81. DB::Exception: Received from 127.0.0.1:9440. DB::Exception: There was an error on [ch1:9440]: Code: 81, e.displayText() = DB::Exception: Database local doesn't exist (version 20.8.3.18).

    2 rows in set. Elapsed: 0.108 sec.
    ---
  • https://t.me/clickhouse_ru
    @horus_x #298721 05:43 PM, 13 Nov 2022
    Что говорит лог клика CH1:
  • @5586902064 #298722 05:45 PM, 13 Nov 2022
    🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪

    🔥 YBEPĖH ЧTÓ ФOT0K TB0EЙ ПODPŸГИ TYT HET ?

    💔💍 ГЛA3 Б0ГA HAX0DИT ИHTИMHЫE Ф0TO ЛЮБ0Й DEBYШKИ B 0БЩEЙ БÅ3E

    DÅЮ SSЫЛ0ЧKY 👇🏻👇🏻👇🏻

    KЛИКÅЙ И ПРOВĖPЬ ✅
    🔎 HEЙРОСЕТЬ ПOИCK

    Бот который ищет взлom на человека и проверяет наличие oткровенныx фото в общих базаx

  • @5586902064 #298723 05:45 PM, 13 Nov 2022
    🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪

    🔥 YBEPĖH ЧTÓ ФOT0K TB0EЙ ПODPŸГИ TYT HET ?

    💔💍 ГЛA3 Б0ГA HAX0DИT ИHTИMHЫE Ф0TO ЛЮБ0Й DEBYШKИ B 0БЩEЙ БÅ3E

    DÅЮ SSЫЛ0ЧKY 👇🏻👇🏻👇🏻

    KЛИКÅЙ И ПРOВĖPЬ ✅
    🔎 HEЙРОСЕТЬ ПOИCK

    Бот который ищет взлom на человека и проверяет наличие oткровенныx фото в общих базаx

  • @5586902064 #298724 05:46 PM, 13 Nov 2022
    🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪

    🔥 YBEPĖH ЧTÓ ФOT0K TB0EЙ ПODPŸГИ TYT HET ?

    💔💍 ГЛA3 Б0ГA HAX0DИT ИHTИMHЫE Ф0TO ЛЮБ0Й DEBYШKИ B 0БЩEЙ БÅ3E

    DÅЮ SSЫЛ0ЧKY 👇🏻👇🏻👇🏻

    KЛИКÅЙ И ПРOВĖPЬ ✅
    🔎 HEЙРОСЕТЬ ПOИCK

    Бот который ищет взлom на человека и проверяет наличие oткровенныx фото в общих базаx

  • https://t.me/clickhouse_ru
    впечатление, что DDL worker перестал процессить очередь, но это не точно
  • https://t.me/clickhouse_ru
    нельзя.
  • https://t.me/clickhouse_ru
    откуда 20.8 ?

    проверяйте версию КХ на всех нодах
  • https://t.me/clickhouse_ru
    Это версия cli/client
  • https://t.me/clickhouse_ru
    @horus_x #298731 07:02 PM, 13 Nov 2022
    кстати, обнаружил на одном из узлов zk огромные простыни ошибок по дублирующимся метаданным
  • @den_crane @Alexey_037 добрый вечер, извините за поздний ответ, только сейчас повторился случае. Приблизительно каждый второй или третий день такое случается

    https://pastila.nl/?02bdc0fe/4b8864d560ba1415538a57640e864762
  • https://t.me/clickhouse_ru
    >22.1.3.1
    вам надо проапгредится до 22.3.12
  • Проблема в этом? В логах можно понять что создает проблему?
  • https://t.me/clickhouse_ru
    Cannot load data for command line suggestions: Code: 241. DB::Exception: Received from 10.10.10.10:9000. DB::Exception: Memory limit (total) exceeded: would use 49.47 TiB (attempt to allocate chunk of 4430006 bytes), maximum: 32.00 GiB. (MEMORY_LIMIT_EXCEEDED) (version 22.1.3.1)

    посмотрите в логе какой запрос про suggestions упал. Но в любом случае 22.1.3.1 устарела безнадежно
  • хорошо спасибо , просто интересно стало ответ запроса 'select * from system.merges'что нам дал? зачем он нужен был?) Я подумал причина проблему там скрывается.
  • https://t.me/clickhouse_ru
    нет, там нет ничего интересного.
    надо смотреть /var/log/clickhouse...
  • https://t.me/clickhouse_ru
    @artemy_kravtsov #298747 10:19 PM, 13 Nov 2022
    Привет! У меня не работает условие в WHERE - пытаюсь выбрать строки без пропуска, а всё равно получаю всё вместе с пропусками. Версия 22.5.2.53. Помогите, пожалуйста, найти причину

    WITH tmp AS (

    SELECT domain,
    toNullable(interval_10m_start) AS interval_10m_start,
    toNullable(interval_1d_start) AS interval_1d_start,
    toNullable(interval_1w_start) AS interval_1w_start
    FROM (SELECT domain,
    toStartOfInterval(date_time, INTERVAL 10 MINUTE) AS interval_10m_start,
    toStartOfDay(interval_10m_start) AS interval_1d_start,
    toStartOfWeek(interval_10m_start) AS interval_1w_start
    FROM (SELECT domain, date_time
    FROM (SELECT arrayJoin(['domain-1', 'domain-2', 'domain-3']) AS domain) AS a
    CROSS JOIN (SELECT arrayJoin(arrayMap(x -> toDateTime(x),
    range(1666987800, 1666999800))) AS date_time) AS b)
    GROUP BY domain, interval_10m_start)
    GROUP BY GROUPING SETS ((domain, interval_10m_start),
    (domain, interval_1d_start),
    (domain, interval_1w_start)))

    SELECT *
    FROM tmp
    WHERE interval_10m_start IS NOT NULL -- эта строчка не работает
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    а если

    SELECT *
    FROM tmp
    WHERE materialize(interval_10m_start) IS NOT NULL
  • https://t.me/clickhouse_ru
    @den_crane #298751 10:34 PM, 13 Nov 2022
    кстати это по уму надо делать функцией grouping
  • https://t.me/clickhouse_ru
    то же самое (
    про grouping мне Клик отвечает Unknown function grouping
  • https://t.me/clickhouse_ru
    а так ?

    select * from (
    SELECT *
    FROM tmp limit 10000000000)
    WHERE interval_10m_start IS NOT NULL
  • https://t.me/clickhouse_ru
    @artemy_kravtsov #298754 10:38 PM, 13 Nov 2022
    получается o_O
    притом пробовал так же, но без лимита
    спасибо!
    а почему так?
  • https://t.me/clickhouse_ru
    ну баг это

    у вас поля одинаково называются interval_10m_start) AS interval_10m_start
    и предикейтпушдаун проталкивает IS NOT NULL куда-то очень глубоко
    limit 10000000000 -- не позволяет сделать предикейтпушдаун, потому что нельзя переносить предикаты через лимит
  • 14 November 2022 (162 messages)
  • @Emily_DominguezO #298757 01:59 AM, 14 Nov 2022
    Почта Банк проводит акцию - оставь своё мнение и получи до 7OOO pyблей на свой счёт! Актуально только для клиентов Почта Банк, выплаты приходят на карту, деньги сразу можно потратить либо перевести.

    Официальный сайт акции - http://pochtabank3000.ru/
  • @SashaGromenko #298758 02:51 AM, 14 Nov 2022
    Здравствуйте коллеги, у меня возникает ошибка при использовании _partition_value вместе с prewhere. Вот пример:

    drop table if exists prewhere_test;
    create table if not exists prewhere_test
    (
    `date` Date,
    `value` Int64
    )
    ENGINE = ReplacingMergeTree()
    PARTITION BY toYYYYMM(date)
    ORDER BY (date)
    SETTINGS storage_policy = 'jbod_policy_1', index_granularity = 8192;

    insert into prewhere_test (*) values ('2021-01-01', 1), ('2021-01-02', 2), ('2022-01-01', 3), ('2022-01-01', 4);

    SELECT *
    FROM prewhere_test
    PREWHERE (_partition_value.1) = 202101

    Query id: 2ea4c463-16f9-41a2-b405-ee9091bf7288

    0 rows in set. Elapsed: 0.002 sec.

    Received exception from server (version 22.6.1):
    Code: 10. DB::Exception: Received from ххх. DB::Exception: Not found column _partition_value in block. (NOT_FOUND_COLUMN_IN_BLOCK)

    Это ожидаемая ошибка или баг?
  • https://t.me/clickhouse_ru
    @Alexey_037 #298759 03:10 AM, 14 Nov 2022
    А где у вас столбец _partition_value то? В описании таблицы только date и value....
  • @SashaGromenko #298760 03:12 AM, 14 Nov 2022
    _partition_value это виртуальный столбец, он создается тут: PARTITION BY toYYYYMM(date):

    SELECT _partition_value
    FROM prewhere_test

    Query id: d6145770-ec93-4a64-b1d1-6a8aaaea8871

    ┌─_partition_value─┐
    │ (202201) │
    └──────────────────┘
    ┌─_partition_value─┐
    │ (202101) │
    │ (202101) │
    └──────────────────┘

    3 rows in set. Elapsed: 0.003 sec.
  • https://t.me/clickhouse_ru
    Думаю баг, делайте issue. В доке не указаны ограничения для данных виртуальных столбцов
  • https://t.me/clickhouse_ru
    на самом деле виртуальные колонки не рассчитаны на использование в бизнес-логике.
    они существуют для отладки при проблемах (отладке багов)

    Нет никакго смысла их использовать. Partition pruning работает намного лучше если вы будете использовать where toYYYYMM(date) = 202101 (перформанс с виртуальными колонками наоборот хуже, очень многие оптимизации не работают)
  • @SashaGromenko #298763 04:44 AM, 14 Nov 2022
    @den_crane, Спасибо за мопощь!
  • @ss_borisov #298765 06:35 AM, 14 Nov 2022
    Коллеги, добрый день!
    При работе с одни ПО использующим ClickHouse столкнулись с тем, что служба CH больше не стартует и выдает ошибку в логе
    <Error> Application: Caught exception while loading metadata: Code: 44. DB::Exception: Sorting key cannot contain constants: Cannot attach table

    Есть предположение, что во время работы была создана таблица с использованием недопустимого запроса и теперь при старте она не проходит проверку. Есть ли способ не стартуя сервер удалить метаданные об этой таблице?
  • https://t.me/clickhouse_ru
    @zhkazarosyan #298767 06:53 AM, 14 Nov 2022
    Коллеги, а есть у кого-нибудь пример вставки большого (50000+) количества строк в клик через офицальную библиотеку на джавке? В гугле много вариантов нашел, хочу отыскать самый надежный
  • https://t.me/clickhouse_ru
    Угу, в метадате sql файл таблицы удали/вытащи в другую директорию, потом, стартуешь клик, возвращаешь файл, делаешь аттач и дебажишь. Если дебажить не надо, то просто удали файл, потом почисти директорию с данными и путь в зк если реплицированная таблица
  • Это хорошо
  • https://t.me/clickhouse_ru
    @zholmyrza_t #298770 07:01 AM, 14 Nov 2022
    Как можно MV держать в актуальном состоянии если в MV не предусмотрен datetime? Т.е. TTL нельзя повесить. Может можно как-то в метадату смотреть и чистить? :)
  • https://t.me/clickhouse_ru
    хех, а у меня все MV в таком же виде:
    to table1_distributed
    as select from table2_distributed
    с проблемами пока не сталкивались.
    Иметь смысл переделать на не распределённые таблицы?
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #298771 #298772 07:14 AM, 14 Nov 2022
    В том кейсе вероятно проблемы где-то еще (скорее в плохой версии). Но это просто первое что бросилось в глаза. Да имеет смысл переделать и не гонять вставляемые данные через Distributed. Это лишний оверхед и потенциальная точка отказа.
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #298770 #298774 07:17 AM, 14 Nov 2022
    Ну так добавьте столбец last_updated DateTime materialized now()
    Я везде так делаю, даже если есть еще 2-3 других DateTime. Как минимум помогает при поиске проблем.
  • https://t.me/clickhouse_ru
    Как-то не натыкался на это в документации...
    Спасибо
  • https://t.me/clickhouse_ru
    @timson81 #298777 07:20 AM, 14 Nov 2022
    Добрый день, используем clickhouse operator от altinity, с clickhouse версии 22.3.11.12, есть бани с хранением на S3 low cardinality string если они разряженные, кликхаус не может прочитать все данные. Думаю проапгрейдить версию кликхауса, какую последнюю стабильную версию порекомендуете ?
  • https://t.me/clickhouse_ru
    Спасибо!

    Тогда попробую сейчас переписать MV на FROM *_replicated TO *_replicated

    Спасибо за https://fiddle.clickhouse.com/ — не знал, удобно. Попробую туда перекинуть квери, но логику с шардами и т д все равно не воспроизвести. Особенно меня смущает, что на соседнем шарде поведение другое.

    Попробую, отпишу что получилось, спасибо!
  • 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
    @Lexoring #298788 10:49 AM, 14 Nov 2022
    Тестировал одну бд с тысячами полей таблиц и с непростыми условиями. Все выполнял на одном железе, одинаковые таблицы и т.д. В mysql выполнял запрос 4 сек, а в clickhouse 70ms, я очень удивлен за скорость, очень круто) Спасибо создателям и всем кто поддерживает работу clickhouse👍
  • @716762776 #298790 10:58 AM, 14 Nov 2022
    <<непростыми условиями>>
    вот это как раз не совсем про клику, хотя , конечно, все зависит от , что такое "непростые"
  • офтопик:
    вот опять это увидел и только у вас. почему вы используете женский род в отношении КХ? КХ, клик, кликхаус, просто бд в конце концов, но откуда эта "клика"???)))
    *triggered*
  • @tiger_and_dragon #298792 11:40 AM, 14 Nov 2022
    Привет! Вроде типичная задача. Есть таблица пользователей в Монге и в КХ. Данных о юзерах несколько гигабайт. Как решать проблему синка этих юзеров, что бы у аналитика всегда по userId было актуальное состояние пользователя. Можно с задержкой до часа.

    Пока такие есть варианты:
    1. дампить полностью данные из монги и перезаписывать таблицу с пользователями в КХ
    2. вставлять строку на каждый апдейт пользователя со всеми его полями и с полем updated. А потом в запросе выбирать которые с максимальным updated
  • https://t.me/clickhouse_ru
    ReplacingMergeTree и final в запросах.
  • @DenisGee #298794 11:45 AM, 14 Nov 2022
    Сравнивать даты модификации пользователей 2 баз и брать записи, которых нет в реципиенте. Брать последнюю строку в итоге
  • https://t.me/clickhouse_ru
    @ilejn ↶ Reply to #298792 #298795 11:46 AM, 14 Nov 2022
    CH умеет такое https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/replacingmergetree/
    Но у меня нет практического опыта, с удовольствием бы послушал внятный анализ, при каких условиях какой путь оптимален.
    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
    @zborovskii_andrei #298796 11:52 AM, 14 Nov 2022
    Здравствуйте, что означает FINAL в документации clickhouse в описании секции FROM для SELECT clause : [FROM [db.]table | (subquery) | table_function] [FINAL]
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Спасибо
  • @tiger_and_dragon #298799 11:57 AM, 14 Nov 2022
    @fire_wheels @ilejn
    а есть какие-то ресурсы или доклады на эту тему
    вроде так и делаю, все равно мдленно получается
    хочу подробней разобраться
  • https://t.me/clickhouse_ru
    Запросы медленно?
  • https://t.me/clickhouse_ru
    как всегда всё зависит от условий.
    - если у вас серваки рядом и подключены на 10Gbs и таблица пользователей не то чтобы сильно увеличивается, то можно каждый час перезаливать
    - или можно сделать словарь который будет смотреть в монгу
    - или debezium+kafka
  • https://t.me/clickhouse_ru
    @ilejn ↶ Reply to #298799 #298802 12:02 PM, 14 Nov 2022
    Оно и не должно быть быстро, это реально много работы.
    Поэтому вполне допускаю, что перезалить все данные проще.
    Ну и помимо FINAL в запросе можно сделать OPTIMIZE с DEDUPLICATE. Иногда так будет быстрее (например, если запросы типично достают много даных).
  • https://t.me/clickhouse_ru
    do_not_merge_across_partitions_select_final попробуйте.
  • https://t.me/clickhouse_ru
  • не знаю, подсознательно )
    возможно потому что: клика - БД - база данных, а база это она
  • https://t.me/clickhouse_ru
    @horus_x #298808 12:16 PM, 14 Nov 2022
    Ребят, подскажите, почему может отвалиться DDL ON CLUSTER? Ранее работало исправно, теперь упорно не понимает имя БД из префикса таблицы (падают как ALTER, так и CREATE ... ON CLUSTER)
  • https://t.me/clickhouse_ru
    @horus_x #298809 12:17 PM, 14 Nov 2022
    ближайший похожий кейс похож на наш:
    https://github.com/ClickHouse/ClickHouse/issues/18755
    database xxx doesn't exist, but xxx is my table name not db name · Issue #18755 · ClickHouse/ClickHouse

    the log 2021.01.05 09:37:37.183262 [ 891 ] {} <Error> DynamicQueryHandler: Code: 81, e.displayText() = DB::Exception: Database xxx doesn't exist, Stack trace (when copying thi...

  • https://t.me/clickhouse_ru
    Переписал MV на FROM *_replicated TO *_replicated — поведение такое же. Ошибка на месте. Записал себе переписать все MVs но с решением этой описанной проблемы это не помогло к сожалению. Пробуем остальное, что посоветовали в чате.
    Kirill Markin in ClickHouse не тормозит

    Доброе утро! У меня после определенного количества полей в materialized view select через sumMerge в агрегированной таблице начинает выдавать значение больше, чем sum по сырым данным. Это доходит до +100% (x2), но дальше не растет. Я могу прямо менять количество полей и получать разные значения в sumMerge. От полностью совпадающего с sum по сырым данным (меньше полей в MV или меньше записей при вставке) до x2 от сырых данных. Есть идеи, что я делаю не так и как избежать такого поведения? Даже отсутствие данных, если MV слишком долго отрабатывает было бы безопаснее в моем случае, чем увеличение значений до x2 от верных. Сижу с задачей уже дня 3, в личке помучал уже несколько человек, пока не получилось исправить или понять как это работает Все детали описал во вложенном .md файле с примерами запросов, настройками и так далее Подскажите на что еще посмотреть, пожалуйста

  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #298792 #298811 12:32 PM, 14 Nov 2022
    полный ассортимент способов дедубликации данных описан тут - https://kb.altinity.com/altinity-kb-schema-design/row-level-deduplication/
    Самый очевидный как тут выше писали - это ReplacingMT/final/do_not_merge_across_partitions с правильно подобранным партиционированием. Это уже не так "много работы" как group by/argMax по всей таблице. Еще можно добавить переодический optimize final settings optimize_skip_merged_partitions=1 - возможно запросы станут чуть быстрее.
    Но и остальные варианты тоже могут пригодиться.
    ClickHouse row-level deduplication

    ClickHouse row-level deduplication.

  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #298810 #298812 12:33 PM, 14 Nov 2022
    так вроде как самый ценный совет был от Денни - поменяйте версию, у вас совсем плохая
  • https://t.me/clickhouse_ru
    а вы как инсерты делаете?
    у вас бекенд повторяет инсерты при ошибках?
    есть вообще ошибки вставки?
  • https://t.me/clickhouse_ru
    У нас на всех серверах оно не указано (default = false)

    А как надо? И почему? (доки про это почитал, но хочется до конца понять) Кажется что false логичнее и то что нам надо, нет?
  • https://t.me/clickhouse_ru
    покажите трейс ошибки
  • https://t.me/clickhouse_ru
    Ага, попробуем!
  • https://t.me/clickhouse_ru
    конечно true должно быть.

    у вас Distributed таблица делает двойную вставку
  • https://t.me/clickhouse_ru
    @den_crane #298818 12:40 PM, 14 Nov 2022
    internal_replication=true значит что внизу Replicated и она сама internally будет делать репликацию
    при internal_replication=false — репликацию делает Distributed (она пишет копию во все реплики)
  • https://t.me/clickhouse_ru
    @den_crane #298819 12:41 PM, 14 Nov 2022
    В КХ есть две репликации. Детская -- через distributed и настоящая -- через replicated. У вас сейчас обе сразу работают, детская <internal_replication>false , вам дублирует инсерты во все реплики, а потом настроящая снова дублирует, но вам везет что у вас не дублируются записи пока

    короче если используете Replicated то internal_replication=true, без обсуждения.
  • https://t.me/clickhouse_ru
    Сервисы пишут в кафку, консьюмеры берут из кафки вставляют в *_disctributed таблицы пачками по ~35000 записей
  • https://t.me/clickhouse_ru
    Интересно! А почему тогда у меня сырые данные не дублируются?
  • @toxot #298822 12:42 PM, 14 Nov 2022
    Привет. подскажите пожалуйста правильный способ конвертации ReplicatedMergeTree в ReplicatedReplacingMergeTree?
  • https://t.me/clickhouse_ru
    вам везед, дедупликация вставки работает
  • https://t.me/clickhouse_ru
    Блин! Прикольно
  • https://t.me/clickhouse_ru
    @kirmark #298825 12:43 PM, 14 Nov 2022
    Интересно! Сейчас будем колдовать
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    покажите

    select name,value from system.settings where name like 'remote_filesystem%';
  • https://t.me/clickhouse_ru
    SELECT
    name,
    value
    FROM system.settings
    WHERE name LIKE 'remote_filesystem%'

    Query id: 6d646d6f-eefd-42ac-b0d2-eb1603c55124

    ┌─name────────────────────────────┬─value──────┐
    │ remote_filesystem_read_method │ threadpool │
    │ remote_filesystem_read_prefetch │ 1 │
    └─────────────────────────────────┴────────────┘
  • https://t.me/clickhouse_ru
    Поменял, но не могу найти как проверить подтянулось ли и надо ли ребутать. Смотрю на данные. Если не поможет — пойду перезагружать машины.
  • https://t.me/clickhouse_ru
    Сработало! Спасибо большое! Все сходится теперь! Мы уже несколько дней с эти мучались! Спасибо!
  • https://t.me/clickhouse_ru
    перечитал исходники Clickhouse, нашёл только одно место (https://github.com/ClickHouse/ClickHouse/blob/c0d1be9caba894a86900adaeaea8ad96e110bd73/src/Interpreters/DatabaseCatalog.cpp), откуда может генериться этот эксепшн, но всё равно не понимаю логики:
    1. DDL ON CLUSTER проходят
    2. но лог сервера и CLI сыпят ошибками code 81
    ClickHouse/DatabaseCatalog.cpp at c0d1be9caba894a86900adaeaea8ad96e110bd73 · 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
    перечитал ваше исходное сообщение ничего не понятно.

    >понимает имя БД из префикса таблицы
    что такое имя бд?

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

    используйте https://pastila.nl , вставьте там текст и ссыку киньте в чат
  • https://t.me/clickhouse_ru
    Спасибо!
    - имя базы данных local
    - сам запрос на раскидывание таблички по репликам работал ранее полтора года до рестарта одной из реплик (clickhouse2) https://pastila.nl/?10257daa/96819aff55d74418c5b25bb870a824fc
    - CLI рождает такую ошибку https://pastila.nl/?237c1f67/96ec6265608e38b237063a6469d3f4e9
    - стектрейс с второго узла CH (clickhouse2) https://pastila.nl/?0273f848/9618f297e0fa185c5de126799978b0e2
    - если создавать таблицы на двух репликах отдельно в два запроса, то все DML реплицируются успешно
  • https://t.me/clickhouse_ru
    объясните что это такое

    DB::Exception:
    Database local doesn't exist (version 20.8.3.18)
    (version 21.2.4.6 (official build))
    , server ClickHouseNode [uri=http://clickhouse1:8123/default,

    чем вы запускаете запрос? почему :8123
    и почему 21.2.4.6 и 20.8.3.18 ?
  • https://t.me/clickhouse_ru
    покажите со второго сервера

    select version()

    show databases like '%local%'
  • https://t.me/clickhouse_ru
    попробуйте помогает или нет (как тест, это ничего не сломает)

    cat /etc/clickhouse-server/users.d/remote_filesystem.xml
    <?xml version="1.0" ?>
    <clickhouse>
    <profiles>
    <default>
    <remote_filesystem_read_method>read</remote_filesystem_read_method>
    <remote_filesystem_read_prefetch>0</remote_filesystem_read_prefetch>
    </default>
    </profiles>
    </clickhouse>
  • https://t.me/clickhouse_ru
    - запрос уходит из clickhouse.jdbc.ClickHouseDriver (мой локальный dbeaver -» HTTP API сервера clickhouse, 8123)
    - тот же запрос, отправленный сlickhouse-client (20.8.3.18) https://pastila.nl/?140acfa1/182f431954030d05c061e2dcd626e43b
    - завершается той же ошибкой 81 https://pastila.nl/?05ffe57a/94e8594bbebe615f7299a3e9a709e467
    - версия сервера 21.2.4.6 (пока не можем обновиться)
    - select version() https://pastila.nl/?62e3cc5e/1e8bf6bc09b94c1976e79a68554e067b
    - show databases на сбоящем втором сервере: https://pastila.nl/?02f589a7/25c95a90f24c7242ac9dd4957b06f461
    SIC! В анамнезе 4 дня назад случился рестарт узла clickhouse2, после чего отвалились ON CLUSTER DDL, до рестарта работало исправно 🤨
  • @uhaahahah #298838 01:33 PM, 14 Nov 2022
    Добрый день. Возможно ли в clickhouse получить медиану массива?
  • https://t.me/clickhouse_ru
    SELECT
    [1, 1, 1, 1, 5] AS a,
    arrayReduce('median', a)

    Query id: 29337a33-eab4-407a-b084-c3f4a06cb4be

    ┌─a───────────┬─arrayReduce('median', [1, 1, 1, 1, 5])─┐
    │ [1,1,1,1,5] │ 1 │
    └─────────────┴────────────────────────────────────────┘
  • https://t.me/clickhouse_ru
    какая-то полная хрень, ну 100% у вас один из серверов 20.8

    select host_name, host_address, port from system.clusters where cluster = '....';

    возможно два КХ запущено
  • Спасибо. А то я уже думал через if писать 🙂
  • https://t.me/clickhouse_ru
    сам офигеваю.
    - https://pastila.nl/?0b356cb7/47ac2d14fc5ea24c0b6367ea3003ed0c
    - Сам клик из docker-образа, всего два контейнера на двух машинах - https://pastila.nl/?0b9857d4/83ba5cda99cd9d86b0dc7b304db98cb5
    Подскажите (читал-читал и не нашёл), пожалуйста. В скобках эксепшнов (version 20.8.3.18) логгер не указывает клиент, только версию-билд сервера?
    Меня это тоже смущает
  • https://t.me/clickhouse_ru
    покажите
    select FQDN(), materialize(uptime()), materialize(version()) from clusterAllReplicas('my_cluster', system.one)
  • https://t.me/clickhouse_ru
    Спасибо!!!
    Якого-то хрена в доставшейся мне на попечение инсталляции кроме контейнеризованных инстансов CH, на втором узле (clickhouse2) откуда ни возьмись 4 дня назад запустился бинарь сервера 20.8.3.18 на хосте, хотя его ни в стартап скриптах, ни в systemd юнитах нету, а сам сервер уже как 1.1 год не перезагружался
  • https://t.me/clickhouse_ru
    /etc/cron.d/clickhouse
  • https://t.me/clickhouse_ru
    @datamanager #298849 02:26 PM, 14 Nov 2022
    Уважаемые коллеги, а в Clickhouse есть оконные функции, ну как в Postresql, т. е. типа row_number() over() ?
  • https://t.me/clickhouse_ru
    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
    @datamanager #298851 02:29 PM, 14 Nov 2022
    Спасибо. Ушел грызть. 🥲
  • https://t.me/clickhouse_ru
    @MakeReady #298853 02:47 PM, 14 Nov 2022
    добрый день
    пытаюсь собрать количество созданных транзакций и количество завершившихся в течении 5 минут после создания
    беру для каждой записи делаю оконку с поиском минимальной даты в последующих строках
    но нужно
    1. оставить в выборке только дату и идентификатор создания
    2. далее предполагается поверх посчитать уникальные идентификаторы и уложившиеся в 5 мину
    Можно ли это сделать одним проходом с помощью Merge?
    пример тут
    https://fiddle.clickhouse.com/3849257e-0c2c-4984-96cd-173a5d0d26ec
  • https://t.me/clickhouse_ru
    @269917803 #298854 02:50 PM, 14 Nov 2022
    Подскажите, пожалуйста, есть ли какой-то более простой способ делать rewind для таблицы с ENGINE=kafka, чем:
    1. detach
    2. запуск kafka-consumer-groups
    3. attach
  • https://t.me/clickhouse_ru
    @MakeReady #298855 02:53 PM, 14 Nov 2022
    без Мерджей
    https://fiddle.clickhouse.com/a26a088e-e01b-47e8-87ae-1fd4f21f6db4
  • @icatcher #298856 02:58 PM, 14 Nov 2022
    Здравствуйте!

    Подскажите пожалуйста, что не так с моим запросом

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

    UPDATE pf_system.notification SET check_interval = '0 0/5 * * * ? *', before_notify_check_count = 1, status = '{"createTime":0,"lastCheckTime":0,"description":"","state":"ENABLED","type":"SUCCESS"}' WHERE name = 'a'

    Ошибка

    Code: 62. DB::Exception: Syntax error: failed at position 1 ('UPDATE'): UPDATE pf_system.notification SET check_interval = '0 0/5 * * * ? *', before_notify_check_count = 1, status = '{createTime:0,lastCheckTime:0,description:,state:. Expected one of: Query, Query with output, EXPLAIN, SELECT query, possibly with UNION, list of union elements, SELECT query, subquery, possibly with UNION, SELECT subquery, SELECT query, WITH, SELECT, SHOW CREATE QUOTA query, SHOW CREATE, SHOW [TEMPORARY] TABLES|DATABASES|CLUSTERS|CLUSTER 'name' [[NOT] [I]LIKE 'str'] [LIMIT expr], SHOW, EXISTS or SHOW CREATE query, EXISTS, DESCRIBE CACHE query, DESCRIBE, DESC, DESCRIBE query, SHOW PROCESSLIST query, SHOW PROCESSLIST, CREATE TABLE or ATTACH TABLE query, CREATE, ATTACH, REPLACE, CREATE DATABASE query, CREATE VIEW query, CREATE DICTIONARY, CREATE LIVE VIEW query, CREATE WINDOW VIEW query, ALTER query, ALTER TABLE, ALTER LIVE VIEW, ALTER DATABASE, RENAME query, RENAME TABLE, EXCHANGE TABLES, RENAME DICTIONARY, EXCHANGE DICTIONARIES, RENAME DATABASE, DROP query, DROP, DETACH, TRUNCATE, CHECK TABLE, KILL QUERY query, KILL, OPTIMIZE query, OPTIMIZE TABLE, WATCH query, WATCH, SHOW ACCESS query, SHOW ACCESS, ShowAccessEntitiesQuery, SHOW GRANTS query, SHOW GRANTS, SHOW PRIVILEGES query, SHOW PRIVILEGES, INSERT query, INSERT INTO, USE query, USE, SET ROLE or SET DEFAULT ROLE query, SET ROLE DEFAULT, SET ROLE, SET DEFAULT ROLE, SET query, SET, SYSTEM query, SYSTEM, CREATE USER or ALTER USER query, ALTER USER, CREATE USER, CREATE ROLE or ALTER ROLE query, ALTER ROLE, CREATE ROLE, CREATE QUOTA or ALTER QUOTA query, ALTER QUOTA, CREATE QUOTA, CREATE ROW POLICY or ALTER ROW POLICY query, ALTER POLICY, ALTER ROW POLICY, CREATE POLICY, CREATE ROW POLICY, CREATE SETTINGS PROFILE or ALTER SETTINGS PROFILE query, ALTER SETTINGS PROFILE, ALTER PROFILE, CREATE SETTINGS PROFILE, CREATE PROFILE, CREATE FUNCTION query, DROP FUNCTION query, CREATE INDEX query, DROP INDEX query, DROP access entity query, GRANT or REVOKE query, REVOKE, GRANT, EXTERNAL DDL query, EXTERNAL DDL FROM, TCL query, BEGIN TRANSACTION, COMMIT, ROLLBACK, SET TRANSACTION SNAPSHOT, Delete query, DELETE, BACKUP or RESTORE query, BACKUP, RESTORE. (SYNTAX_ERROR), Stack trace (when copying this message, always include the lines below):
  • @icatcher #298857 02:58 PM, 14 Nov 2022
    0. DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, bool) @ 0x78d627a in /usr/bic/1.0.0/clickhouse/bin/clickhouse
    1. DB::parseQueryAndMovePosition(DB::IParser&, char const*&, char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool, unsigned long, unsigned long) @ 0x13578e3f in /usr/bic/1.0.0/clickhouse/bin/clickhouse
    2. DB::ClientBase::parseQuery(char const*&, char const*, bool) const @ 0x12dce75f in /usr/bic/1.0.0/clickhouse/bin/clickhouse
    3. DB::ClientBase::analyzeMultiQueryText(char const*&, char const*&, char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::shared_ptr<DB::IAST>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::unique_ptr<DB::Exception, std::__1::default_delete<DB::Exception> >&) @ 0x12ddcc07 in /usr/bic/1.0.0/clickhouse/bin/clickhouse
    4. DB::ClientBase::executeMultiQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) @ 0x12ddd196 in /usr/bic/1.0.0/clickhouse/bin/clickhouse
    5. DB::ClientBase::processQueryText(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) @ 0x12dddf73 in /usr/bic/1.0.0/clickhouse/bin/clickhouse
    6. DB::ClientBase::runNonInteractive() @ 0x12de1463 in /usr/bic/1.0.0/clickhouse/bin/clickhouse
    7. DB::Client::main(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&) @ 0x79d9fd0 in /usr/bic/1.0.0/clickhouse/bin/clickhouse
    8. Poco::Util::Application::run() @ 0x159c95c2 in /usr/bic/1.0.0/clickhouse/bin/clickhouse
    9. mainEntryClickHouseClient(int, char**) @ 0x79ed1e1 in /usr/bic/1.0.0/clickhouse/bin/clickhouse
    10. main @ 0x78c422b in /usr/bic/1.0.0/clickhouse/bin/clickhouse
    11. __libc_start_main @ 0x22555 in /usr/lib64/libc-2.17.so
    12. _start @ 0x769db2e in /usr/bic/1.0.0/clickhouse/bin/clickhouse
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #298856 #298858 03:00 PM, 14 Nov 2022
    update в версии 21.8 не должен работать. Вы её с 22.8 не перепутали?
  • https://t.me/clickhouse_ru
    нету
  • В 22.9.3.18 тоже не отрабатывает
  • https://t.me/clickhouse_ru
    5 минут после текущей строки?
    это делается с помощью range а не ROWS
  • https://t.me/clickhouse_ru
    нету в КХ update.
    есть alter table .... update
    административная операция, очень тяжелая
  • https://t.me/clickhouse_ru
    согласен, так правильнее
    но как в условие пропихнуть 5 минут, а не как сейчас, искать минимум по рейнджу а потом сравнивать?
  • https://t.me/clickhouse_ru
    @MakeReady #298867 03:08 PM, 14 Nov 2022
    можно ли в оконку
    minIfOrNull(dt,status = 'delivered') over (PARTITION BY id ORDER by dt RANGE BETWEEN 1 FOLLOWING AND UNBOUNDED FOLLOWING) as delivered_t,
    пропихнуть то что сейчас снуружи
    if(delivered_t < (dt + toIntervalMinute(5)),1,0) as ok_id
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @MakeReady #298869 03:19 PM, 14 Nov 2022
    гуд, с BETWEEN 1 FOLLOWING
    но можно (и стоит ли) обойтись без запихивания этого в подзапрос, который сделает
    toDate(dt),
    uniqExact(id),
    length(ids)

    Group by toDate(dt)
    ?
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #298863 #298870 03:26 PM, 14 Nov 2022
    а и правда даже для EmbeddedRocksDB не сделали стандартного синтаксиса, хотя для delete - сделали.
    Я что-то про EmbeddedRocksDB подумал, только сегодня обсуждали как его приладить для мелких словариков вместо отдельного внешнего mysql.
  • https://t.me/clickhouse_ru
  • Спасибо!
    Оказалось я смотрел на примеры запросов через postgres в тестах ClickHouse
  • https://t.me/clickhouse_ru
    @MakeReady #298876 03:47 PM, 14 Nov 2022
    rажется так красивее
    minIfOrNull(dt,status = 'delivered') over (PARTITION BY id ORDER by dt ROWS BETWEEN 1 FOLLOWING AND UNBOUNDED FOLLOWING) as delivered_t,
  • https://t.me/clickhouse_ru
    @MakeReady #298877 03:48 PM, 14 Nov 2022
    полностью так
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @MakeReady #298880 03:49 PM, 14 Nov 2022
    так я еще и статус проверяю, вдруг прилетит тот же id но создание и только первое беру
  • https://t.me/clickhouse_ru
    @MakeReady #298881 03:50 PM, 14 Nov 2022
    но хочется сделать без ложенности запросов
  • https://t.me/clickhouse_ru
    @BMF_RU #298882 04:23 PM, 14 Nov 2022
    как отсортировать массив? нужно отсортировать результат groupUniqArray для arrayStringConcat
  • https://t.me/clickhouse_ru
    arraySort ?
  • https://t.me/clickhouse_ru
    @BMF_RU #298884 04:24 PM, 14 Nov 2022
    то что надо! благодарю!
  • https://t.me/clickhouse_ru
    @BMF_RU #298885 04:48 PM, 14 Nov 2022
    В Click House можно сделать поиск String не зависимым от регистра?
  • https://t.me/clickhouse_ru
    ilike
  • https://t.me/clickhouse_ru
    Как и везде, изменитьрегистр на однозначный :))
  • https://t.me/clickhouse_ru
    match(lower(src),regexp)
  • https://t.me/clickhouse_ru
    @BMF_RU ↶ Reply to #298887 #298889 04:49 PM, 14 Nov 2022
    не совсем как везде. в Sybase IQ в SQL в WHERE для полей VARCHAR можно не заморачиваться с регистром
  • https://t.me/clickhouse_ru
    @BMF_RU ↶ Reply to #298888 #298890 04:50 PM, 14 Nov 2022
    это понятно
  • https://t.me/clickhouse_ru
    @BMF_RU #298891 04:50 PM, 14 Nov 2022
    ilike лучшее решение
  • https://t.me/clickhouse_ru
    Ещё вариант написать свою функцию, для лаконичности
  • https://t.me/clickhouse_ru
    @MakeReady #298893 04:52 PM, 14 Nov 2022
    :))
  • https://t.me/clickhouse_ru
    @BMF_RU #298894 04:52 PM, 14 Nov 2022
    названия таблиц полей тоже воспринимает с учетом регистра. нельзя отключить настройками никак?