• 01 June 2021 (197 messages)
  • https://t.me/clickhouse_ru
    SELECT engine FROM system.databases WHERE database = 'your_database'
  • Написать optimize table, после этого дубли удаляются
  • @dnzhirnov #220374 05:05 AM, 01 Jun 2021
    Коллеги, в каком файлике нужно allow_experimental_window_functions = 1 установить. В настройках не нашел
  • https://t.me/clickhouse_ru
    в /etc/clickhouse-server/users.d/allow_experimental_window_functions.xml
    <yandex>
    <profiles><default><allow_experimental_window_functions>1</allow_experimental_window_functions></default></profiles>
    </yandex>
  • https://t.me/clickhouse_ru
    @inzgiba #220376 05:15 AM, 01 Jun 2021
    Доброго времени суток, простите за оффтоп, но есть возможность связаться со службой поддержки яндекс, через телеграм?
  • Если этого файла нет, его нужно создать?
  • Файл создал, все работает! Спасибо!
  • https://t.me/clickhouse_ru
    служба поддержки чего?
    она там БОЛЬШАЯ вообще то, продуктов дофига
    вас что конкретно интересует?
    Лучше всего через формы обратной связи связываться или по 8-800 если есть для продукта такой сервис
  • https://t.me/clickhouse_ru
    Да connect странно себя ведет, видимо кто-то обновление закинул и через раз пишет "доступа нет", в связи с чем, все DNS записи слетели и сервисы попадали :Т
  • https://t.me/clickhouse_ru
    Служба поддержки - Яндекс 360 для бизнеса. Справка

    Если вы не нашли ответа на свой вопрос в Справке, напишите нам.

  • https://t.me/clickhouse_ru
    @inzgiba #220382 05:39 AM, 01 Jun 2021
    Спасибо
  • https://t.me/clickhouse_ru
    ну или тупо вот сюда напишите
    />business@support.yandex.ru
  • https://t.me/clickhouse_ru
    движок бд там старый, Ordinary. В чем то разница здесь с Atomic ?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    про exchange таблиц, uuid, "ленивое" удаление, я понимаю. Меня интересует в контексте переименования колонок. Есть разница?
  • https://t.me/clickhouse_ru
    переименование колонок, файловая операция
    в контексте Atomic ВСЕ ALTER должны быть не блокирующие он для этого и создан
    для Ordinary некотоыре ALTER требующие эксклюзивных локов на ФС блокирующие
  • https://t.me/clickhouse_ru
    @AnKochem #220389 07:26 AM, 01 Jun 2021
    Хм, а как это работает?.. Я понимаю, что отсутсвие локов на переименование таблиц достигается за счет уникального uuid на таблицу. Грубо говоря, имя ни на что не влияет. С колонками же это не так..
  • https://t.me/clickhouse_ru
    ну как вариант какой нибудь hard links с новыми именами и потом удаление оригинала...
    но я деталей если честно говоря не знаю, надо в исходниках копаться
  • https://t.me/clickhouse_ru
    @AnKochem #220391 07:31 AM, 01 Jun 2021
    Ну я нигде не видел информации, что на уровне хранения файлов колонок что-то меняется в Atomic.. Интересно )
  • https://t.me/clickhouse_ru
    ну я тоже не видел =) но если ALTER TABLE RENAME COLUMN не атомарны и блокирующие, то это странно
  • https://t.me/clickhouse_ru
    спасибо, а подскажите, какая строка останется, последняя добавленная или наоборот первая ? можно как то этим управлять при слиянии ?
  • @dnzhirnov #220394 07:41 AM, 01 Jun 2021
    там в настройках replacing mergetree есть возможность устанавливать версию, по которой будет сравнение (-1, 1) и соответственно старая версия будет затиратся. Но мне такого не нужно было/
    Последнюю в выборке, если ver не задан. Под выборкой здесь понимается набор строк в наборе кусков данных, участвующих в слиянии. Последний по времени создания кусок (последняя вставка) будет последним в выборке. Таким образом, после дедупликации для каждого значения ключа сортировки останется самая последняя строка из самой последней вставки.
    С максимальной версией, если ver задан.
  • https://t.me/clickhouse_ru
    по версии
  • @dnzhirnov #220396 07:41 AM, 01 Jun 2021
    ReplacingMergeTree | Документация ClickHouse

    ReplacingMergeTree Движок отличается от MergeTree тем, что выполняет удаление дублирующихся записей с одинаковым значени

  • https://t.me/clickhouse_ru
    но если она не указана то последнюю вставленную строку оставляет ?
  • https://t.me/clickhouse_ru
    @mikhailberg #220398 07:41 AM, 01 Jun 2021
    а есть ли возможность добавлять коммент к колонке при создании, а не через альтер ?
  • https://t.me/clickhouse_ru
    спасибо, понял!)
  • https://t.me/clickhouse_ru
    почитайте лучше выше ссылку на доку. там одна страница. все вопросы сразу отпаддут
  • https://t.me/clickhouse_ru
    да, уже прочел)
  • https://t.me/clickhouse_ru
    @Aleksey_Veselov #220403 07:49 AM, 01 Jun 2021
    не подскажете где я ошибаюсь, плз?) пишу optimize как в доке с указанием столбца по которому произвести дедупликацию, но вылазит ошибка
  • https://t.me/clickhouse_ru
    @esvalukhin #220404 07:53 AM, 01 Jun 2021
    Добрый день! Подскажите, пожалуйста, а кто и как менеджит у себя схемы данных в ClickHouse при активной разработке, больше интересует интеграция с каким-нибудь java тулингом типа Flyway или Liquibase. Видел что у в Flyway есть MR, созданные сообществом, но что-то сами разработчики Flyway кота тянут за одно причинное место. Если кто-то использует пропатченную версию Flyway, вы это у себя отдельно собираете?
  • https://t.me/clickhouse_ru
    у вас версия clickhouse старая
  • https://t.me/clickhouse_ru
    Так, судя по всему вопрос в чате поднимался неоднократно, но к единому мнению так и не пришли
  • https://t.me/clickhouse_ru
    использовали https://github.com/golang-migrate/migrate , но патчили ее
    GitHub - golang-migrate/migrate: Database migrations. CLI and Golang library.

    Database migrations. CLI and Golang library. Contribute to golang-migrate/migrate development by creating an account on GitHub.

  • @ErmakVA #220408 08:36 AM, 01 Jun 2021
    Коллеги, здравствуйте. Кто-то сталкивался с таким? Code: 517, e.displayText() = DB::Exception: Cannot assign ALTER PARTITION, because another ALTER PARTITION query was concurrently executed (version 21.3.12.2 (official build))
  • https://t.me/clickhouse_ru
    @rasstr0en #220409 08:41 AM, 01 Jun 2021
    https://clickhouse.tech/docs/en/sql-reference/statements/system/#query_language-system-stop-fetches Подскажите, STOP FETCHES стопнет на той реплике где вызвана команда или на всех репликах?
    SYSTEM | ClickHouse Documentation

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

  • https://t.me/clickhouse_ru
    @rasstr0en #220410 08:44 AM, 01 Jun 2021
    И запаузит он их или отменит
  • https://t.me/clickhouse_ru
    ну по моему предельно ясное сообщение об ошибке, разве нет?
  • В прошлых версиях такого не наблюдалось. В Changelog так же ничего критичного не нашел.
  • https://t.me/clickhouse_ru
    ну может вам раньше очень везло и прошлый альтер выполнялся быстро
  • https://t.me/clickhouse_ru
    100% не уверен но IMHO он просто перестанет новые парты фетчить, старые если начал, то IMHO дофетчит и стоп будет только на той реплике на которой запустили...
  • @KevinMort #220416 09:03 AM, 01 Jun 2021
    Всем привет! Кто-нибудь знает сервисы, для репликации данных поддерживающие множество субд?
  • https://t.me/clickhouse_ru
    Connectors | Data Virtuality

    Use Data Virtuality connectors to access and centralize data from 200+ data sources, target storages and Business Intelligence tools.

  • А полностью опен соурс есть?)
  • https://t.me/clickhouse_ru
    https://symmetricds.org
    но у нее поддержки clickhouse нет

    вам откуда и куда надо реплицировать?
    почему не берете более узкое решение какое нибудь?
    SymmetricDS | Open Source Database Replication

    SymmetricDS is an asynchronous database replication software package that supports multiple subscribers and bi-directional synchronization.

  • https://t.me/clickhouse_ru
    Link

    Debezium is an open source distributed platform for change data capture. Start it up, point it at your databases, and your apps can start responding to all of the inserts, updates, and deletes that other apps commit to your databases. Debezium is durable and fast, so your apps can respond quickly and never miss an event, even when things go wrong.

  • https://t.me/clickhouse_ru
    @kotpeter #220421 09:16 AM, 01 Jun 2021
    Всем привет!
    Может кто-то использовал S3 в качестве cold storage? Есть вопрос: можно ли заставить кх автоматически создавать подпапку для каждой таблицы? В данный момент подпапка прописана в endpoint в конфиге, но желания создавать отдельный storage_configuration для каждой таблицы никакого нет, ибо как это всё потом поддерживать для большого числа таблиц — не очень понятно.
  • https://t.me/clickhouse_ru
    Вы используете s3 диск?

    Он сам должен создавать пути для каждой таблицы, разве нет?
  • https://t.me/clickhouse_ru
    да не совсем, у меня в endpoint указано https://my-bucket-endpoint.amazonaws.com/cold ; заглядываю в cold — там куча партов лежит, без подпапки
  • https://t.me/clickhouse_ru
    В каком виде?
    Может вы используете zero copy replication?
  • https://t.me/clickhouse_ru
    отменяет текушие, при старте начинает их заново качать
  • https://t.me/clickhouse_ru
    У меня есть конфиг config_s3_cold.xml, в нём storage_configuration.disks.external — определён диск с типом s3, а также storage policy external_cold для хранения холодных данных, где указано два диска (локальный и s3). Далее я создал табличку с TTL date_field + INTERVAL 6 MONTH TO VOLUME 'external', начал заполнять её данные — в cold набросало партов. Вроде и логично, а хотелось, чтобы кх сам создал подпапку для таблицы
  • https://t.me/clickhouse_ru
    @md_nguyen #220427 09:39 AM, 01 Jun 2021
    Привет!
    Пытаюсь использовать postgresql (https://clickhouse.tech/docs/ru/sql-reference/table-functions/postgresql/) но в ответ ClickHouse мне говорит: Code: 46. DB::Exception: Received from <host>. DB::Exception: Unknown table function postgresql. Версия ClickHouse 20.8. Правильно я понимаю, что функция postgresql доступна только в ClickHouse 21.x ?
    postgresql | Документация ClickHouse

    postgresql Позволяет выполнять запросы SELECT и INSERT над таблицами удаленной БД PostgreSQL. Синтаксис postgresql('host

  • https://t.me/clickhouse_ru
    да, с 21.2
  • https://t.me/clickhouse_ru
    Спасибо.
  • https://t.me/clickhouse_ru
    Хм, надо будет посмотреть, но наверное это норм, кх сгенерирует им непересекающиеся названия
  • https://t.me/clickhouse_ru
    охотно верю, но в плане менеджмента это головная боль :(

    Есть, конечно, мысль создавать конфиг с кредами, а затем попробовать повозиться с <incl> и <replace> для того, чтобы конфиги для табличек генерились автоматом, но имхо реальная картина должна быть прекраснее, чем вот эта
  • https://t.me/clickhouse_ru
    @kuzmin_m #220433 10:17 AM, 01 Jun 2021
    Привет.
    Подскажите пожалуйста. Мне нужно что-то вроде facets.
    Например, я хочу найти уникальные значения колонки из моей выборки.
    Как это делают?
    Вторым запросом?
    Или уже в приложении считают?

    В КХ можно в json вывести min/max по колонке, но хочется каких-то сложных агрегаций. Есть еще group by with.
    Плюс, нативный клиент умеет делать multiquery, a http - нет.
    Может быть я что-то упускаю?
  • https://t.me/clickhouse_ru
    В самом S3 ничего по под-папкам не раскладывается. Там просто лежат обезличенные блобы, на которые ссылаются метафайлы с локальной FS.
  • https://t.me/clickhouse_ru
    @pic_Nick77 #220435 11:15 AM, 01 Jun 2021
    Подскажите, есть какая-то настройка, чтобы из КХ в CSV выгружать нулы как пустую строку вместо \N?
  • https://t.me/clickhouse_ru
    @Norand #220437 11:28 AM, 01 Jun 2021
    Привет. У меня есть вот такой запрос. По задумке все элементы кумулятивно складывается, и на каждой итерации вычитаем один элемент. При этом мы не должны допустить, чтобы в результирующем массиве были числа ниже 0
  • https://t.me/clickhouse_ru
    @Norand #220438 11:29 AM, 01 Jun 2021
    Вот тут работает, как нужно, но опускается ниже 0.
    Что я упускаю? Как доработать второй запрос, чтобы числа не становились ниже 0?
  • https://t.me/clickhouse_ru
    SELECT * FROM system.settings WHERE name LIKE 'output_format%'
  • https://t.me/clickhouse_ru
    нашел вот это output_format_tsv_null_representation - оно и для CSV работает?
  • Кажется, первый пример работает так, как написан. cumSum - это частичные суммы преобразованных x на префиксе от начала до x в данном случае. Первым получаем 4 - 1, а затем нигде не выполняется условие из if вплоть до 10.
  • https://t.me/clickhouse_ru
    @LetsGoToTheStars #220443 11:41 AM, 01 Jun 2021
    Подскажите, что означает ошибка Error running query: Expecting ',' delimiter or ']', и в каких случаях она может быть. Запрос у меня такой SELECT streaming_session_id,
    sequenceCount('(?1).*(?2)')(device_timestamp, event_name in ('rebuffer', 'auto_pause'), event_name = 'auto_play') as cnt_valid_sequences
    FROM default.horus_logs
    WHERE datetime BETWEEN toDateTime('{{ds}}') AND toDateTime('{{ds}}') + toIntervalDay('1')
    AND streaming_session_id IN
    (SELECT DISTINCT streaming_session_id
    FROM default.horus_logs
    WHERE datetime BETWEEN toDateTime('{{ds}}') AND toDateTime('{{ds}}') + toIntervalDay('1')
    AND streaming_session_id <> ''
    AND event_name = 'auto_play')
    GROUP BY streaming_session_id
  • https://t.me/clickhouse_ru
    не должно
    но проверить можно
  • https://t.me/clickhouse_ru
    не работает
  • @Nikolay_N_Nesterov #220446 11:48 AM, 01 Jun 2021
    Подскажите, в ClickHouse "\a" и "\b" являются какими-то спец.символами? Например при попытке вставить в таблицу последовательность символов, содержащую значение "\a" получается символ с кодом "07". А если сделать тоже самое с последовательностью "\c" - всё в порядке.
  • Syntax | ClickHouse Documentation

    Syntax There are two types of parsers in the system: the full SQL parser (a recursive descent parser), and the data form

  • https://t.me/clickhouse_ru
    https://clickhouse.tech/docs/en/interfaces/formats/#data-formatting
    Strings are output with backslash-escaped special characters. The following escape sequences are used for output: \b, \f, \r, \n, \t, \0, \', \\. Parsing also supports the sequences \a, \v, and \xHH (hex escape sequences)
    Input and Output Formats | ClickHouse Documentation

    Formats for Input and Output Data ClickHouse can accept and return data in various formats. A format supported for input

  • @Nikolay_N_Nesterov #220449 11:50 AM, 01 Jun 2021
    Понял, спасибо 👌
  • https://t.me/clickhouse_ru
    @Norand ↶ Reply to #220441 #220450 12:05 PM, 01 Jun 2021
    да, я понял, спасибо)
  • Если хочется добавить штраф за позицию, то можно мб сделать обычный cumSum, а потом поверх сделать enumerate и map на две последовательности (значение и позиция), чтобы вычислить штраф без ухода в 0.
  • https://t.me/clickhouse_ru
    @Norand ↶ Reply to #220452 #220454 12:20 PM, 01 Jun 2021
    это сработало, спасибо за идею
  • @primorial #220455 12:22 PM, 01 Jun 2021
    :)
  • https://t.me/clickhouse_ru
    @ShawarmaEatOwls #220457 12:57 PM, 01 Jun 2021
    Всем привет!
    Примерно такая ситуация (описываю напримере потому что код показать нельзя)
    есть две таблицы:
    А: id, name, date
    B: aid, name, amount, date
    для одного A.id может быть несколько записей в B, где A.id == B.aid, тоже самое насчет name, но с ним может быть несколько записей в каждой. делаем два запроса:
    select sum(amount) as amount from ( select count() as count, name from A where date > (дата) group by name) tableA
    any left join (select name, sum(amount) from B where date > (дата) group by name) tableB
    using name
    и второй:
    select sum(amount) as amount from ( select count() as count, id from A where date > (дата) group by id) tableA
    any left join (select aid, sum(amount) from B where date > (дата) group by aid) tableB
    on tableA.id = tableB.aid

    при этом значение суммы в amount получается разным, как такое может быть?
  • https://t.me/clickhouse_ru
    @ShawarmaEatOwls #220458 12:58 PM, 01 Jun 2021
    разница по сути только в том, что в одном случае группируем по name, а в другом по id
  • https://t.me/clickhouse_ru
    слово any в any left join
    говорит о том что у вас разные записи из из A и B могут в join попадать
    и условия JOIN тоже разные
    в одном случае по name во втором случае по aid
  • https://t.me/clickhouse_ru
    ALL LEFT JOIN
    попробуйте сравнить
  • https://t.me/clickhouse_ru
    @ShawarmaEatOwls #220461 01:01 PM, 01 Jun 2021
    ALL LEFT JOIN выдал такой же результат
  • https://t.me/clickhouse_ru
    @ShawarmaEatOwls #220462 01:02 PM, 01 Jun 2021
    а вот если в запросе с aid сделать full outer join или right outer join, чинится
  • https://t.me/clickhouse_ru
    @ShawarmaEatOwls #220463 01:02 PM, 01 Jun 2021
    при этом в B нету таких строк для которых нету строки в A, по id
  • https://t.me/clickhouse_ru
    это говорит о том что в B есть строки которых нет в А
  • https://t.me/clickhouse_ru
    @ShawarmaEatOwls #220466 01:27 PM, 01 Jun 2021
    Да вот не могу найти, может не правильно смотрю, делаю запрос:
    select count() from A tableA
    full outer join B tableB on tableA.id = tableB.aid
    where (tableA.id is null or tableB.id is null) and
    tableA.date < (дата) and tableB.date < (дата)
  • https://t.me/clickhouse_ru
    @ShawarmaEatOwls #220467 01:27 PM, 01 Jun 2021
    возвращает 0
  • https://t.me/clickhouse_ru
    @LetsGoToTheStars #220468 01:59 PM, 01 Jun 2021
    У меня есть такая задача "Найти сессии, в которых между каждыми соседними событиями auto_play должно быть одно из событий [auto_pause, rebuffer]."
    Я пыталась решать её через массивы
    groupArray(event_name) AS event_names,
    arrayReverseSplit(name, splitter -> splitter, event_names, arrayMap(x -> x = 'auto_play', event_names)) AS name_intervals,
    arrayFilter(name -> name[-1] = 'auto_play', name_intervals) AS auto_play_intervals,
    arrayFilter(name -> hasAny(name, ['rebuffer', 'auto_pause']), auto_play_intervals) AS valid_name_intervals,
    length(auto_play_intervals) AS cnt_intervals,
    length(valid_name_intervals) AS cnt_valid_intervals

    сравнивая потом, что cnt_intervals = cnt_valid_intervals. Этот метод не проходил в ограничение памяти (20 GiB).
    Пыталась использовать sequenceCount
    sequenceCount('(?1).*(?2).*(?3)')(device_timestamp,
    event_name = 'auto_play',
    event_name IN ('rebuffer',
    'auto_pause'), event_name = 'auto_play')
    Это выдавало ошибку Pattern application proves too difficult, exceeding max iterations (1000000).
    Через windowFunnel ничего внятного не получилось.
    Помогите пожалуйста)
  • https://t.me/clickhouse_ru
    @mezhekov #220469 02:01 PM, 01 Jun 2021
    Привет, версия CH 20.1.4, в логах такая ошибка Found parts with the same min block and with the same max block as the missing part 20201217_37149_38422_750. Hoping that it will eventually appear as a result of a merge растет delay по таблице, почитал читик нашел несколько вариантов решения, https://github.com/ClickHouse/ClickHouse/issues/10368#issuecomment-616310015 и и если установить новую версию типа такой 21.3.12, то можно выполнить alter table drop part ***
  • https://t.me/clickhouse_ru
    @mezhekov #220470 02:03 PM, 01 Jun 2021
    вот история с обновлением она рабочая? понятное дело нужно будет обновлять на 2 репликах шарда.
  • https://t.me/clickhouse_ru
    @Makasinov #220473 02:14 PM, 01 Jun 2021
    Привет! Если ли какие то варианты из двух разных таблиц схлопывать данные в одну таблицу? Например в 1'ой таблице айдишник и время установки, во 2'ой айдишник и время удаления.Можно в третью таблицу как то сложить одно и другое в две разные колонки?
  • @l_dar ↶ Reply to #220292 #220474 02:33 PM, 01 Jun 2021
    оконные функции в кликхаусе??? Чет в поиске в офф доке over ничего не выдает. Где почитать можно про них?
  • https://t.me/clickhouse_ru
    первые 2 ссылки в гугле

    https://clickhouse.tech/docs/en/sql-reference/window-functions/
    https://blog.tinybird.co/2021/03/16/coming-soon-on-clickhouse-window-functions/
    Window Functions | ClickHouse Documentation

    [experimental] Window Functions ClickHouse supports the standard grammar for defining windows and window functions. The

  • @l_dar ↶ Reply to #220475 #220476 02:34 PM, 01 Jun 2021
    класс. Буду пробовать. Спасибо
  • https://t.me/clickhouse_ru
    не понял... Вы же скинули решение, где чистится ЗК и рестартуются реплики, причем тут обноавление?
  • Пример:
    Таблица содержит поле DateTime + реквизиты
    Нужно получить последние значения реквизитов на каждую дату
    В этом случае можно перезалить в таблицу EmbeddedRocksDB
    упорядоченную по DateTime исходную таблицу с ключом toDate()
    И не нужно соединения таблиц использовать.
  • https://t.me/clickhouse_ru
    делался для кастомного движка MergeTree который позволяет хранить системный каталог (список партов) в rocksdb
  • https://t.me/clickhouse_ru
    там все равно после обновления надо будет парты чинить через detach part / attach part
  • https://t.me/clickhouse_ru
    select group by
    или AggregatingMergeTree + argMax https://gist.github.com/den-crane/d03524eadbbce0bafa528101afa8f794
  • https://t.me/clickhouse_ru
    а если set max_threads=1
  • Спасибо. Интересно. Смущало, что не увидел сходу удаления записей, решил, что не доделано
  • https://t.me/clickhouse_ru
    Угу, похоже на то что мне нужно, спасибо
  • А если без .* в sequenceCount?
  • @semchalex #220488 03:06 PM, 01 Jun 2021
    Всем доброе время суток, возможно как-то развернуть оба массива по позициям в массиве? Например
    select
    [2,3,4,5,6] as id
    , ['2021-04-01 23:05:06','2021-04-01 23:10:22','2021-04-01 23:17:22','2021-04-01 23:19:25','2021-04-01 23:22:09'] as datetime_array
    Должно стать
    2 - '2021-04-01 23:05:06'
    3 - '2021-04-01 23:10:22' и т.д.
  • https://t.me/clickhouse_ru
    tableA.id is null or tableB.id is null

    Join в КХ не продьюсит null, надо включать join_use_nulls=1
  • https://t.me/clickhouse_ru
    отсортировать один массив по значениям другого?
  • https://t.me/clickhouse_ru
    select
    arrayJoin( arrayZip([2,3,4,5,6], ['2021-04-01 23:05:06','2021-04-01 23:10:22','2021-04-01 23:17:22','2021-04-01 23:19:25','2021-04-01 23:22:09']))
  • Спасибо! А отдельными стобцами возможно чтобы было id и datetime?
  • https://t.me/clickhouse_ru
    Норма ли то, что при ручном insert select мне кх даёт отлуп с Number of columns doesn't match? Насколько я понимаю если просто создать триггер, то всё сработает как надо?
  • https://t.me/clickhouse_ru
    вообще есть еще Array Join

    select
    (arrayJoin( arrayZip([2,3,4,5,6], ['2021-04-01 23:05:06','2021-04-01 23:10:22','2021-04-01 23:17:22','2021-04-01 23:19:25','2021-04-01 23:22:09'])) as x).1,
    x.2
  • https://t.me/clickhouse_ru
    т.е. нужно узнать, есть ли хотя бы одна цепочка (без других событий) auto_play, auto_pause|rebuffer, auto_play в пределах сессии?
  • https://t.me/clickhouse_ru
    ну ошибка у вас в ручном инсерт
  • То что нужно, спасибо большое)
  • https://t.me/clickhouse_ru
    Нет, между каждыми двумя событиями auto_play должно быть auto_pause|rebuffer, и при этом могут быть и другие события
  • https://t.me/clickhouse_ru
    ну их можно предварительно отфильтровать я думаю
  • https://t.me/clickhouse_ru
    @LetsGoToTheStars #220501 03:18 PM, 01 Jun 2021
    ну да, тогда нужно, чтобы все цепочки были вида auto_play, auto_pause|rebuffer, auto_play
  • sequenceCount игнорит те, что не в кондишнах
  • https://t.me/clickhouse_ru
    родил что-то такое (на своей схеме), но я заюзал sequenceMatch впервые и нужно думоц, корректно ли это
    SELECT
    csid,
    sequenceMatch('(?1)(?2)(?1)')(toDateTime(ts), event_type = 'PLAY', event_type = 'BUFFERING') AS has_seq
    FROM
    (
    SELECT
    ts,
    seq,
    csid,
    event_type
    FROM events
    WHERE event_type IN ('PLAY', 'BUFFERING', 'READY')
    ORDER BY
    ts ASC,
    seq ASC
    )
    GROUP BY csid
    HAVING has_seq > 0

    если я правильно понял, должно матчить PLAY-BUFFERING-PLAY
  • https://t.me/clickhouse_ru
    Чуть дополню, что можно это дело обойти
    https://kb.altinity.com/altinity-kb-functions/altinity-kb-sequencematch
  • https://t.me/clickhouse_ru
    @i1smetana #220505 03:36 PM, 01 Jun 2021
    всем привет)
    подскажите, пожалуйста, если для внешнего справочника указать invalidate_query, то как часто выполняется этот запрос для проверки наличия изменений?
  • https://t.me/clickhouse_ru
    всем спасибо за идеи, в итоге я оставила решение с массивами, предварительно выбрав сессии только с этими событиями :D
  • https://t.me/clickhouse_ru
    с тем самым периодом который указан в словаре.

    кстати есть еще одна фича https://kb.altinity.com/altinity-kb-dictionaries/partial-updates
  • https://t.me/clickhouse_ru
    в соответсвии с тем как задано LIFETIME
    то есть при наступлении условий LIFETIME срабатывает invalidate_query и проверяется, нужно ли загружать данные
  • https://t.me/clickhouse_ru
    Dictionary Updates | ClickHouse Documentation

    Dictionary Updates ClickHouse periodically updates the dictionaries. The update interval for fully downloaded dictionari

  • https://t.me/clickhouse_ru
    а если задать очень маленький lifetime (размер справочника небольшой, быстро обновится), это на что повлияет, кроме потребления ресурсов клика?
  • https://t.me/clickhouse_ru
    ни на что не повлияет
  • https://t.me/clickhouse_ru
    @i1smetana #220513 04:23 PM, 01 Jun 2021
    спасибо большое!)
  • https://t.me/clickhouse_ru
    @solard #220515 04:48 PM, 01 Jun 2021
    Приветствую. Подскажите в чем может быть проблемка.

    stream.writeString("amount"); // Column name
    stream.writeString("Decimal(27,7)"); // Column type
    stream.writeDecimal128(value, 7);

    если value c "-", то в КХ видим совсем другое положительное число
  • https://t.me/clickhouse_ru
    Это что за драйвер?
  • https://t.me/clickhouse_ru
    @solard #220517 04:50 PM, 01 Jun 2021
    JDBC 2.4.3
  • https://t.me/clickhouse_ru
    Хм. value же является типом BigDecimal и положительные значения корректно преобразуются?
  • https://t.me/clickhouse_ru
    @solard ↶ Reply to #220518 #220519 04:55 PM, 01 Jun 2021
    Да
  • https://t.me/clickhouse_ru
    @solard #220520 04:57 PM, 01 Jun 2021
    Например вижу в таблице 109091.1627776 это до вставки -860
  • https://t.me/clickhouse_ru
    @unamedrus #220521 04:59 PM, 01 Jun 2021
    Хм, кажется там используется BigInteger как тип данных
  • https://t.me/clickhouse_ru
    @solard #220522 04:59 PM, 01 Jun 2021
    Сидим консилиумом из 5 человек и не понимаем почему лыжи не едут
  • https://t.me/clickhouse_ru
    @solard ↶ Reply to #220521 #220523 05:00 PM, 01 Jun 2021
    Так и есть, только вот где минус потерялся, неясно и почему так странно преобразует число
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @unamedrus #220525 05:06 PM, 01 Jun 2021
    SELECT
    hex(reinterpretAsString(-860 * 10000000)) AS init,
    hex(reinterpretAsString(CAST('109091.1627776', 'Decimal128(7)'))) AS dec1,
    hex(reinterpretAsString(CAST('-860', 'Decimal128(7)'))) AS dec

    Query id: 2e2fdb71-34c1-47ff-8cd3-6b745247c97c

    ┌─init─────────────┬─dec1───────┬─dec──────────────────────────────┐
    │ 006A66FFFDFFFFFF │ 006A66FFFD │ 006A66FFFDFFFFFFFFFFFFFFFFFFFFFF │
    └──────────────────┴────────────┴──────────────────────────────────┘

    SELECT
    hex(reinterpretAsString(860 * 10000000)) AS init,
    hex(reinterpretAsString(CAST('109091.1627776', 'Decimal128(7)'))) AS dec1,
    hex(reinterpretAsString(CAST('860', 'Decimal128(7)'))) AS dec

    Query id: 6f48970c-20a2-4e17-a70f-7d15c85c728e

    ┌─init───────┬─dec1───────┬─dec────────┐
    │ 0096990002 │ 006A66FFFD │ 0096990002 │
    └────────────┴────────────┴────────────┘
  • https://t.me/clickhouse_ru
    @unamedrus #220526 05:10 PM, 01 Jun 2021
    Наверное в случае отрицательных значений
    new byte[16 - r.length] должно состоять из FF а не нулевых байтов
  • https://t.me/clickhouse_ru
    @solard ↶ Reply to #220524 #220527 05:12 PM, 01 Jun 2021
    Выглядит как-то странно :)
  • https://t.me/clickhouse_ru
    и что 2.4.3 умел writeDecimal128 ?
  • https://t.me/clickhouse_ru
    @solard #220529 05:19 PM, 01 Jun 2021
    Упс, не туда смотрю
  • https://t.me/clickhouse_ru
    @solard #220530 05:19 PM, 01 Jun 2021
    ru.yandex.clickhouse:clickhouse-jdbc:0.3.1
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @unamedrus #220532 05:21 PM, 01 Jun 2021
    Кажется тут иначе сделано и видно обработку минуса
  • https://t.me/clickhouse_ru
    @unamedrus #220533 05:21 PM, 01 Jun 2021
    Можно попробовать украсть в clickhouse-jdbc и испытать
  • https://t.me/clickhouse_ru
    @finio #220534 05:29 PM, 01 Jun 2021
    привет
    а никто не сталкивался с тем,
    что когда тяжелый запрос зарубается лимитами min_execution_speed или max_execution_time,
    он не отдает в HTTP интерфейс эксепшен, а просто отдает пустое тело ответа?
  • https://t.me/clickhouse_ru
    @finio #220535 05:30 PM, 01 Jun 2021
    у нас был раньше 19.4 - там было все нормально, а на 21.3 exception пишется только в серверный лог
  • https://t.me/clickhouse_ru
    на клиенте какой timeout выставлен?
    через tcpdump снимали трафик? точно ответ пустой?
  • https://t.me/clickhouse_ru
    @finio ↶ Reply to #220536 #220537 05:33 PM, 01 Jun 2021
    timeout HTTP запроса?
  • https://t.me/clickhouse_ru
    @finio #220538 05:36 PM, 01 Jun 2021
    таймаут час стоит, а отваливается сразу
    ну т.е. как только пройдет timeout_before_checking_execution_speed секунд
    к сожалению на tcpdump нет прав

    но запрос выглядит как обычно
    < HTTP/1.0 200 OK
    ...
    < X-ClickHouse-Progress: {"read_rows":"1686521344","read_bytes":"3373042688","written_rows":"0","written_bytes":"0","total_rows_to_read":"26199462570"}
    < X-ClickHouse-Summary: {"read_rows":"1698383174","read_bytes":"3396766348","written_rows":"0","written_bytes":"0","total_rows_to_read":"26199462570"}
    <
    * Closing connection 0
  • https://t.me/clickhouse_ru
    @finio #220539 05:36 PM, 01 Jun 2021
    т.е. он обрывается и пишет в последнем заголовке Summary read_rows меньше чем total_rows_to_read
    ну и ошибку в серверный лог
  • https://t.me/clickhouse_ru
    @finio #220540 05:37 PM, 01 Jun 2021
    хотелось бы получать ошибку и для клиента
  • https://t.me/clickhouse_ru
    в 19.4 также было, как вообще вы себе это представляете http code уехал 10 минут назад клиенту.
    параметр есть чтобы клиенту не отдавать пока запрос не выполнился
  • https://t.me/clickhouse_ru
    @finio ↶ Reply to #220541 #220542 05:46 PM, 01 Jun 2021
    нет, я не ожидаю HTTP 500
    я ожидаю что будет заголовок X-ClickHouse-Exception-Code и ошибка в теле
  • https://t.me/clickhouse_ru
    я не знал про X-ClickHouse-Exception-Code, но вроде это довольно новая фича, ее не было в 19.4
  • https://t.me/clickhouse_ru
    @den_crane #220544 05:50 PM, 01 Jun 2021
    Но ошибка ведь пишется прямо в данные?
  • https://t.me/clickhouse_ru
    @finio ↶ Reply to #220543 #220545 05:51 PM, 01 Jun 2021
    вот почему-то если опечататьСЯ в запросе он приходит, если уперлись в лимит, молча отдаем пустоту
    нет, ошибка не пишется в данные
    в том то и засада
  • https://t.me/clickhouse_ru
    @den_crane #220546 05:53 PM, 01 Jun 2021
    timeout_before_checking_execution_speed можно поставить 0, но это не относится к проблеме
  • https://t.me/clickhouse_ru
    @den_crane #220547 05:56 PM, 01 Jun 2021
    echo 'SELECT sleep(1) from numbers(10) settings max_block_size=1' | curl -vvv 'http://localhost:8123/?max_execution_time=5&timeout_before_checking_execution_speed=1' --data-binary @-
    ...
    < X-ClickHouse-Summary: {"read_rows":"0","read_bytes":"0","written_rows":"0","written_bytes":"0","total_rows_to_read":"0"}
    <
    0
    0
    Code: 160, e.displayText() = DB::Exception: Estimated query execution time (6.666670000000001 seconds) is too long. Maximum: 5. Estimated rows to process: 10: While executing Numbers (version 21.7.1.6993 (official build))
  • https://t.me/clickhouse_ru
    @finio ↶ Reply to #220547 #220548 05:58 PM, 01 Jun 2021
    виноват, наврал про body, спасибо
    но X-ClickHouse-Exception-Code бы не помешал
  • https://t.me/clickhouse_ru
    @den_crane #220549 06:00 PM, 01 Jun 2021
    Use HTTP trailers. · Issue #21136 · ClickHouse/ClickHouse

    If client supports HTTP 1.1, use trailers to provide progress, status and possibly error message. Use case This is the only way to return error in the middle of query processing if HTTP headers hav...

  • https://t.me/clickhouse_ru
    @maxpain #220551 06:08 PM, 01 Jun 2021
    Подскажите пожалуйста как правильно выбрать SAMPLE key?
  • https://t.me/clickhouse_ru
    @den_crane #220552 06:09 PM, 01 Jun 2021
    там все сложно с X-ClickHouse-Exception-Code, он неправильно сделан, иногда работает, иногда нет
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @maxpain #220554 06:10 PM, 01 Jun 2021
    low cardinality это низкая монотонность?
  • https://t.me/clickhouse_ru
    благодарю) а то в оф. документации как-то непонятно
  • https://t.me/clickhouse_ru
    монотонность не может быть низкой, она либо есть, либо ее нет, true/false
  • https://t.me/clickhouse_ru
    @den_crane #220557 06:13 PM, 01 Jun 2021
    low cardinality -- это малое кол-во уникальных значений.
    24 - часа в сутках это low cardinality
    86400 - секунд в сутках это НЕ low cardinality
  • https://t.me/clickhouse_ru
    а какой тут временной период? если сделать мин и макс по дате?
  • https://t.me/clickhouse_ru
    https://play.clickhouse.tech/?file=sample

    SELECT
    min(StartTime), max(StartTime)
    FROM datasets.visits_v1
    2014-03-17 00:00:00 2014-03-23 23:59:59
  • https://t.me/clickhouse_ru
    а вот оно что, HTTP headers cannot be sent after data.
  • https://t.me/clickhouse_ru
    @finio ↶ Reply to #220561 #220562 06:52 PM, 01 Jun 2021
    будем парсить body значит и не обращать внимания на 200 ОК
    спасибо большое за помощь
  • https://t.me/clickhouse_ru
    Это низкая частота чего-либо
  • https://t.me/clickhouse_ru
    @maxpain #220564 06:59 PM, 01 Jun 2021
    почему в примерах данных яндекс метрики используют intHash32(UserID) а не UserID в качестве SAMPLE KEY?
  • https://t.me/clickhouse_ru
    @maxpain #220565 07:00 PM, 01 Jun 2021
    чтобы распределение значений было равномерным от min до max?
  • https://t.me/clickhouse_ru
    @ivymike_b #220566 07:02 PM, 01 Jun 2021
    Да
  • https://t.me/clickhouse_ru
    @maxpain #220567 07:03 PM, 01 Jun 2021
    И еще вопрос. Как быть в ситуациях, когда мне нужно в уже существующую огромную таблицу добавить новую колонку, значения по умолчанию в которой мне нужно задать из внешнего источника исходя из другой колонки в этой таблице?
  • https://t.me/clickhouse_ru
    @maxpain #220568 07:06 PM, 01 Jun 2021
    допустим есть таблица events (counter_id, date, user_id) и мне нужно добавить колонку user_birthday, данные для которой хранятся в постгресе в таблице users
  • https://t.me/clickhouse_ru
    @maxpain #220569 07:07 PM, 01 Jun 2021
    ни в докладах ни в документации ничего не нашел по этому поводу
  • https://t.me/clickhouse_ru
    external dictionary

    add column user_birthday Date default dictGetDate('pg_dict', 'user_birthday', toUInt64(user_id))
  • https://t.me/clickhouse_ru
    @den_crane #220571 07:08 PM, 01 Jun 2021
    alter table ... update user_birthday = user_birthday where 1
  • https://t.me/clickhouse_ru
    Если у меня в таблице в CH лежит миллиард записей оно сделает миллиард запросов в постгрес?
  • https://t.me/clickhouse_ru
    @den_crane #220573 07:12 PM, 01 Jun 2021
    в общем-то можно и не добавлять а прямо в select делать dictGetDate('pg_dict',...
  • https://t.me/clickhouse_ru
    нет, словари обычно живут в хеш-таблице в памяти КХ , как настроите
  • https://t.me/clickhouse_ru
    @maxpain #220575 07:13 PM, 01 Jun 2021
    понял, попробую поиграться с этим, благодарю)
  • @298431118 #220576 07:34 PM, 01 Jun 2021
    Можно ли countState / countMerge использовать в каскаде материализованых вьюх?

    CREATE MATERIALIZED VIEW 'View1' TO 'table1'
    AS
    SELECt countState(fi) FROM table

    CREATE MATERIALIZED VIEW 'view2' TO 'table2'
    AS
    SELECT countMerge(f1) FROM table1
  • https://t.me/clickhouse_ru
    @maxpain #220577 07:39 PM, 01 Jun 2021
    Мне в ивентах нужно хранить DateTime64, могу ли я при создании таблицы указать вот так?
    `ORDER BY (user_id, toYYYYMMDD(date))`
  • https://t.me/clickhouse_ru
    @maxpain #220578 07:40 PM, 01 Jun 2021
    Или мне обязательно нужно хранить отдельно поле типа Date и ORDER BY (user_id, date)?
  • https://t.me/clickhouse_ru
    можно, countState -> countMergeState,
    !!!! но не нужно , храните simpleAggregateFunction(sum)
  • https://t.me/clickhouse_ru
    для семплинга ? можно и нужно
    в смысле нужно ORDER BY (user_id, toYYYYMMDD(date))
  • https://t.me/clickhouse_ru
    для семплинга использую другое поле, которое идёт после user_id и date
  • https://t.me/clickhouse_ru
    @maxpain #220583 07:43 PM, 01 Jun 2021
    вопрос не про семплинг
  • https://t.me/clickhouse_ru
    @den_crane #220584 07:44 PM, 01 Jun 2021
    отдельное поле для date не нужно
  • https://t.me/clickhouse_ru
    @den_crane #220585 07:44 PM, 01 Jun 2021
    кстати toYYYYMMDD -- это число
  • https://t.me/clickhouse_ru
    @maxpain #220586 07:44 PM, 01 Jun 2021
    спасибо
  • https://t.me/clickhouse_ru
    @den_crane #220587 07:44 PM, 01 Jun 2021
    вам лучше ORDER BY (user_id, toDate(datetimecol64))
  • https://t.me/clickhouse_ru
    @maxpain #220588 07:50 PM, 01 Jun 2021
    понял, toDate 2 байта против четырёх в toYYYYMMDD
  • 02 June 2021 (175 messages)
  • https://t.me/clickhouse_ru
    @75280400 #220590 04:19 AM, 02 Jun 2021
    Доброе утро всем. Я тут новенький.
    Подскажите пожалуйста как можно переносить данные из Oracle в ClickHouse ?
  • https://t.me/clickhouse_ru
    нет, это низкое "разнообразие" значений
    монотонность это "постоянное увеличение \ уменьшение" значения с точки зрения сортировки
  • @l_dar #220592 04:31 AM, 02 Jun 2021
    Подскажите пожалуйста. Бьюсь над задачей уже продолжительное время.
    Вот к примеру таблица:
    Нужно просуммировать price у тех событий, в которых есть click=1 для каждой cat.
    Пробовал двойной группировкой, сначала по id, потом по cat. Результат долго и падает по памяти
    Пробовал join. Потом Where in. Все падает по памяти. Какие есть подходы еще, подскажите.
  • @l_dar #220593 04:34 AM, 02 Jun 2021
    SELECT sum(price) FROM table WHERE event=1 AND id IN (SELECT id FROM table WHERE event=2 AND click=1) GROUP BY cat
  • https://t.me/clickhouse_ru
    @rasstr0en #220594 04:35 AM, 02 Jun 2021
    Application: DB::Exception: Suspiciously many (23) broken parts to remove.: Cannot attach table db.impressions from metadata file /var/lib/clickhouse-hdd/de
  • https://t.me/clickhouse_ru
    @rasstr0en #220595 04:35 AM, 02 Jun 2021
    Помогите плиз, как починить?
  • @l_dar ↶ Reply to #220592 #220596 04:36 AM, 02 Jun 2021
    Второе решение
    SELECT sumIf(price, click=1) FROM (SELECT any(price), any(click) FROM table GROUP BY id) GROUP BY cat
  • @l_dar #220597 04:37 AM, 02 Jun 2021
    Все они падают по памяти
  • https://t.me/clickhouse_ru
    Смотрите в сторону какого нибудь etl продукта
  • https://t.me/clickhouse_ru
    Например ?
  • https://t.me/clickhouse_ru
    ну самый простой путь без сторонних тулов

    INSERT INTO ... SELECT .. FROM odbc(...);

    https://clickhouse.tech/docs/en/sql-reference/table-functions/odbc/

    Но надо на сервер clickhouse поставить unixodbc + oracle odbc driver и правильно его настроить и проверять насколько это будет быстро по производительности (можете упереться в скорость odbc)

    если не пойдет с odbc можно jdbc попробовать

    еще вариант, выгружать из oracle в CSV и грузить в clickhouse
    наверняка можно сделать что нибудь типа такого pipe сгородить

    echo "set colsep ,; set headsep off; set pagesize 0; set trimspool on; spool off; SELECT * FROM db.table;" | sqlplus user/password@host -s /nolog | clickhouse-client -q "INSERT INTO db.table FORMAT CSV"
    odbc | ClickHouse Documentation

    odbc Returns table that is connected via ODBC. odbc(connection_settings, external_database, external_table) Parameters:

  • https://t.me/clickhouse_ru
    Pentaho, ssis, airflow, luigi, а так, гугл в помощь, их миллион
  • https://t.me/clickhouse_ru
    CSV пробовал - 10% процентов данных отбрасываются по разным причинам - то спецсимволы в данных то скобки.
    тяжело найти хороший разделитель - и если экранировать кавычки во всех полях (таблица 130 колонок), то это замедляет.
  • Group by id having uniqExactIf(Cat, click=1) = 3
  • https://t.me/clickhouse_ru
    ну можно попробовать
    https://github.com/xo/usql
    для коннекта к oracle
    и делать
    usql "oci8:user:password/host:port/database" -c "SELECT ..." --csv
    но тоже не знаю насколько это будет быстро
    GitHub - xo/usql: Universal command-line interface for SQL databases

    Universal command-line interface for SQL databases - GitHub - xo/usql: Universal command-line interface for SQL databases

  • @SonFire #220606 05:06 AM, 02 Jun 2021
    Как быть с символами по типа /X0? clickhouse-client при импорте выдает ошибку
  • https://t.me/clickhouse_ru
    менять через https://github.com/chmln/sd на \x0
    GitHub - chmln/sd: Intuitive find & replace CLI (sed alternative)

    Intuitive find & replace CLI (sed alternative). Contribute to chmln/sd development by creating an account on GitHub.

  • Спасибо
  • @l_dar ↶ Reply to #220604 #220609 05:16 AM, 02 Jun 2021
    Пытаюсь понять и не получается. Видимо у меня чего то не хватает)
    Как можно с помощью uniqExactIf можно подсчитать?
  • Вы знаете как работает Having?
  • @l_dar ↶ Reply to #220610 #220611 06:10 AM, 02 Jun 2021
    да, фильтрует после группировки
  • @mfilimonov #220612 06:10 AM, 02 Jun 2021
    выбрать такие группы для которых количество уникальных категорий в группе равно нужному значению
  • @l_dar ↶ Reply to #220612 #220613 06:16 AM, 02 Jun 2021
    Все равно не понимаю, как это решит задачу. Как просуммирует для каждой категории у которой есть клики?
  • Немного утомительно вникать, может быть я неправильно понял задачу и вы на самом деле ищете оконные функции.
  • @l_dar ↶ Reply to #220614 #220615 06:21 AM, 02 Jun 2021
    пытался наложить оконные функции на эту задачу, тоже не получилось. Возможно я плохо знаю оконные функции
  • Попытался ещё раз прочитать формулировку задачи и ваши запросы - мне по прежнему кажется что вам достаточно having.

    Что-то типа

    select sum(p) from ( select sum(price) as p from table group by id having uniqExactIf(cat, click=1) = uniqExact(cat) )
  • https://t.me/clickhouse_ru
    @75280400 #220617 07:10 AM, 02 Jun 2021
    Кто нибудь знает при импорте данных из CSV в ClickHouse
    как отбрасывать плохие записи в отдельный файл, для дальнейшего анализа ?
  • @usermorphism #220618 07:50 AM, 02 Jun 2021
    Привет, ранее в топик кафки ключ не паблишился, но теперь - требуется. И в контракте мы никак не указывали обработку ключа. Сломается ли парсинг сообщений, нужно ли добавлять ключ в контракт?
  • @l_dar ↶ Reply to #220616 #220620 07:53 AM, 02 Jun 2021
    а в чем здесь выигрыш? Видимо я туп, что не понимаю
  • @jenyarm #220621 07:56 AM, 02 Jun 2021
    Добрый день

    Версия 21.3.12.2, через какое-то время clickhouse перестает работать, clickhose-client тоже не подключается.
    перезапуск временно решает проблему.

    Куда смотреть дальше ?
    В логах такие ошибки:
    <Error> DB::IBackgroundJobExecutor::jobExecutingTask()::<lambda()>: Code: 241, e.displayText() = DB::Exception: Memory limit (total
    ) exceeded: would use 56.53 GiB (attempt to allocate chunk of 4219310 bytes), maximum: 56.53 GiB, Stack trace (when copying this message, always include the lines below):

    0. StackTrace::StackTrace() @ 0x3a8187f in /usr/bin/clickhouse
    1. DB::Exception::Exception(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, bool) @ 0x3a79ed8 in /usr/bin/clickhouse
    2. DB::Exception::Exception<char const*, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, long&, std::__cxx11::basic_string<ch
    ar, std::char_traits<char>, std::allocator<char> > >(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*&&, char const
    *&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, long&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char
    > >&&) @ 0x3a80c28 in /usr/bin/clickhouse
    .....
  • Да никакого выигрыша. Если нужно группировать по очень кардинальному полю (как id) - конечно нужна куча памяти. Можно на диске погруппировать - см. max_bytes_before _external_group_by
  • https://t.me/clickhouse_ru
    @anonymous_d_777 #220623 08:14 AM, 02 Jun 2021
    Добрый день, всплыла проблема с лимитом памяти запроса:

    Received exception from server (version 21.5.6):
    Code: 241. DB::Exception: Received from localhost:9000. DB::Exception: Memory limit (for query) exceeded: would use 9.42 GiB (attempt to allocate chunk of 536870912 bytes), maximum: 9.31 GiB.

    Сам запрос это:

    OPTIMIZE TABLE grid.demo_rows FINAL

    Причем только на этой табличке, остальные нормально отрабатывает.
    Была версия 21.2.5, сейчас обновились до version 21.5.6
    И в старой версии запрос не проходил и в нынешней. Как побороть?(SET min_bytes_to_use_mmap_io = 0 - делал - не помогло)
  • https://t.me/clickhouse_ru
    @ilevd #220624 08:39 AM, 02 Jun 2021
    А system.query_log накатывается уже во время старта клика? А то есть миграция ALTER TABLE system.query_log ... и после старта клика валится что нет такой таблицы
  • https://t.me/clickhouse_ru
    ЕМНИП при попытке записи туда (т.е. при запуске запроса)
  • https://t.me/clickhouse_ru
    ее может не быть если она отключена, принудительно
  • https://t.me/clickhouse_ru
    А в конфиге он включен?
  • https://t.me/clickhouse_ru
    смотрите /var/lib/clickhouse/preprocessed_configs/config.xml что там насчет query_log сказано
  • https://t.me/clickhouse_ru
    @ilevd #220629 08:45 AM, 02 Jun 2021
    Да, включен
  • https://t.me/clickhouse_ru
    @ilevd #220630 08:49 AM, 02 Jun 2021
    Возможно, потому что запрос сразу же после старта клика идет на новой инсталяции
  • https://t.me/clickhouse_ru
    @ilevd #220631 08:49 AM, 02 Jun 2021
    service clickhouse-server start && echo "select * from system.query_log" | clickhouse-client -n
  • https://t.me/clickhouse_ru
    @ilevd #220632 08:49 AM, 02 Jun 2021
    А потом если выполнить запрос, то там как раз запись что этой таблицы не было)
  • https://t.me/clickhouse_ru
    @nyoroon #220633 08:50 AM, 02 Jun 2021
    Попробуй сначала просто select 1
  • https://t.me/clickhouse_ru
    @ilevd #220634 08:52 AM, 02 Jun 2021
    service clickhouse-server start && echo "select 1 + 1; select * from system.query_log;" | clickhouse-client -n
    Start clickhouse-server service: Path to data directory in /etc/clickhouse-server/config.xml: /var/lib/clickhouse/
    DONE
    2
    Received exception from server (version 20.8.4):
    Code: 60. DB::Exception: Received from localhost:9000. DB::Exception: Table system.query_log doesn't exist..
  • https://t.me/clickhouse_ru
    @ilevd #220635 08:52 AM, 02 Jun 2021
    Видимо как-то асинхронно создается...
  • https://t.me/clickhouse_ru
    systemctl start clickhouse-server && echo "SELECT 1 SETTINGS log_queries=1; SYSTEM FLUSH LOGS; SELECT count() FROM system.query_log" | clickhouse-client -mn
  • https://t.me/clickhouse_ru
    @ilevd #220637 09:00 AM, 02 Jun 2021
    Да, так проходит)
    root@75061c8085dd:/tmp# service clickhouse-server start && echo "SELECT 1 SETTINGS log_queries=1; SYSTEM FLUSH LOGS; SELECT count() FROM system.query_log" | clickhouse-client -mn
    Start clickhouse-server service: Path to data directory in /etc/clickhouse-server/config.xml: /var/lib/clickhouse/
    DONE
    1
    2
  • https://t.me/clickhouse_ru
    @ilevd #220638 09:01 AM, 02 Jun 2021
    Значит, нужно чтобы первое обращение было, тогда создастся?
  • https://t.me/clickhouse_ru
    оно флашится каждый 7.5 секунд (настраиваемая велицина). ну и log_queries нужно было для того чтобы было что флашить, а system flush logs сам процесс flush триггерит...
  • https://t.me/clickhouse_ru
    @ilevd #220640 09:03 AM, 02 Jun 2021
    Да, интересно, спасибо
  • @viphunter_real #220643 09:06 AM, 02 Jun 2021
    хватит спамить. тем более здесь
  • @TheCluster #220644 09:06 AM, 02 Jun 2021
    лучше репорт отправляйте, призывать спамеров не спамить, дело не благодарное
  • Добрый день! Удалось побороть?
  • https://t.me/clickhouse_ru
    Пока что не удалось. Смотрел конфиги kafka в clickhouse, там не нашел ничего, что могло бы решить проблему.
  • Понял. Жаль.
    Мы завели кафка-табличку чтобы писать в нее через матвью. И начали сыпать такие ворнинги
  • https://t.me/clickhouse_ru
    да, я тоже пишу через матвью в таблицу кафка. Возможно она не предназначена для этого, но это работает)
  • @mfilimonov #220649 09:15 AM, 02 Jun 2021
    Никак, надо чинить сам КХ. Но это ни на что не влияет
  • https://t.me/clickhouse_ru
    Если большинство событий с click = 1, то можно посчитать наоборот: сначала всё, а потом вычесть, где click != 1.
    Если по памяти не влезает немного, то можно разбить на несколько запросов по id % N = i и потом объединить.
    Еще все типы данных привести к минимально возможным.
  • @l_dar ↶ Reply to #220650 #220651 09:22 AM, 02 Jun 2021
    Объединять через union или как?
  • @l_dar #220652 09:23 AM, 02 Jun 2021
    По хорошему схлопнуть эти данные по id. Но mv не гаранирует схлопывание и все равно придется делать двойную группировку
  • https://t.me/clickhouse_ru
    ага, просто в одном везде where id % 2 = 0 , в другом where id % 2 = 1, а потом юнионом объединить. Или больше групп сделать. Топорно, но работает, если события по id не пересекаются.
  • https://t.me/clickhouse_ru
    Можно по крону запускать какой-то запрос, который данные за вчера будет схлопывать и в отдельную таблицу писать. В запросе потом использовать схлопнутую таблицу плюс отдельно только данные за сегодня схлопнуть запросом. Ну это если их можно упорядочить по времени или еще как-то.
  • @l_dar ↶ Reply to #220654 #220655 09:37 AM, 02 Jun 2021
    Да, как раз такой вариант все время продумываю, но останавливает что событие может прийти через несколько дней только. Что усложняет схлопывание.
  • https://t.me/clickhouse_ru
    @edyya ↶ Reply to #220592 #220656 09:40 AM, 02 Jun 2021
    >>Пробовал двойной группировкой - падает по памяти
    попробуйте
    set max_bytes_before_external_group_by = <половина вашей памяти>
  • @l_dar ↶ Reply to #220656 #220657 09:42 AM, 02 Jun 2021
    Пробовал. Работает. Только скорость уже так себе.
  • https://t.me/clickhouse_ru
    @edyya ↶ Reply to #220657 #220658 09:43 AM, 02 Jun 2021
    а какой запрос?
  • @KevinMort #220659 10:03 AM, 02 Jun 2021
    cannot read all data in NativeBlockInputStream из-за чего может быть данная ошибка? Делаю insert чанками по 10 к строк
  • https://t.me/clickhouse_ru
    @Duolix #220660 10:30 AM, 02 Jun 2021
    Всем привет

    Подскажите пож по шардироварию таблиц.
    Создал таблицу on clister <cluster> и к ней прицепил таблицу на distributed
    Так в момент проливки данных в таблицу distributed, забивается вся оперативка и чтение из этой таблицы становится невозможным.
    Что я делаю не так, может кто то подробно рассказать в ЛС?
  • @UserNameNotKnow #220662 10:54 AM, 02 Jun 2021
    Добрый день, делаю по вот этой https://clickhouse.tech/docs/ru/engines/table-engines/mergetree-family/replication/#preobrazovanie-iz-mergetree-v-replicatedmergetree инструкции перенос MergeTree в ReplicatedMergeTree, но при выполнении ALTER TABLE table_name ATTACH PARTITION 19700101, пишет: Ok. 0 rows in set. и данные не появляются в этой таблице
    Репликация данных | Документация ClickHouse

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

  • @UserNameNotKnow #220663 10:55 AM, 02 Jun 2021
    Подскажите пожалуйста в чем может быть проблема
  • @softbot_xxl #220664 11:15 AM, 02 Jun 2021
    MemSQL поддерживает sample_ratio, т.е. сэмплирование результата (грубо говоря исполнение над частичной выборкой). Насколько я понимаю, ничего такого в КХ нету, тогда вопрос, можно ли сэмулировать частичное выполнение запроса (т.е. ограничение по времени с возвращением частичного результата). Это не совсем то, конечно, но близко.
  • https://t.me/clickhouse_ru
    вообще есть сэмплирование то https://clickhouse.tech/docs/ru/sql-reference/statements/select/sample/
    SAMPLE | Документация ClickHouse

    Секция SAMPLE Секция SAMPLE позволяет выполнять запросы приближённо. Например, чтобы посчитать статистику по всем визита

  • https://t.me/clickhouse_ru
    оффтоп, если не затруднит, можешь в паре предложений вообще описать use case для MemSQL? не знаком с ним близко, но очень интересно)
  • Спасибо! Пропустил
  • @l_dar ↶ Reply to #220658 #220669 11:19 AM, 02 Jun 2021
    SELECT sumIf(price, click=1), cat
    FROM (
    SELECT any(price), any(cat), any(click) FROM table GROUP BY id
    ) GROUP BY cat
  • У нас внутри есть проект, который использует MemSQL с двумя движками (row, columnar), делается это для point-lookup и для аналитики.
  • https://t.me/clickhouse_ru
    а для классических целей СУБД он подходит как замена MySQL/Postgres?
  • @softbot_xxl #220672 11:20 AM, 02 Jun 2021
    Но это дорого, поэтому пытаемся им предложить КХ. Сэмплирование скорее всего было сделано для быстрого ответа.
  • С row движком это фактически MySQL, только распределенный.
  • https://t.me/clickhouse_ru
    @qonsth #220674 11:21 AM, 02 Jun 2021
    добрый день, подскажите пожалуйста, почему запрос следующего вида может выполняться 4.2sec и как стоит оптимизировать? Таблица - ReplacingMergeTree, 1’671’699 записей, 75 колонок
    SELECT * FROM tablename FINAL WHERE datefield <= '2021-06-02 10:39:34' AND `status`=‘statusname’ LIMIT 0, 20
  • https://t.me/clickhouse_ru
    SHOW CREATE TABLE tablename покажите?
  • @softbot_xxl #220676 11:25 AM, 02 Jun 2021
    Еще вопрос, на каком уровне компиляция запросов через LLVM в КХ? В MemSQL - это вполне фича, которой пользуются.
  • https://t.me/clickhouse_ru
    Вероятнее всего из-за FINAL. И ещё, Вам точно все 75 колонок в выборке нужны?
  • https://t.me/clickhouse_ru
    @qonsth ↶ Reply to #220675 #220678 11:36 AM, 02 Jun 2021
    create table tablename
    (
    timestamp DateTime,
    approve_at Nullable(DateTime),
    id UUID,
    status Enum8('hold' = 1, 'approved' = 2, 'rejected' = 3),
    network_id UInt32,
    offer_id UInt32,
    merchant UInt32,

    )
    engine = ReplacingMergeTree()
    PARTITION BY toYYYYMM(timestamp)
    ORDER BY (timestamp, network_id, offer_id, merchant, id)
    SETTINGS index_granularity = 8192;
  • https://t.me/clickhouse_ru
    @qonsth ↶ Reply to #220677 #220679 11:37 AM, 02 Jun 2021
    спасибо, навели меня на мысль, мне действительно не нужны все разом, в первом запросе достаточно запросить идентификаторы, а уже потом запрашивать все поля для конкретных
  • https://t.me/clickhouse_ru
    @qonsth #220680 11:40 AM, 02 Jun 2021
    и не подскажите, еще не появилась фича, позволяющая в ReplacingMergeTree заливать обновленные записи только с измененными полями, а не со всеми?

    например, у меня изменился статус и я хочу только его заменить у записи, а не делать полный select+insert всех полей повторно
  • дедупликация происходит по ключу сортировки
  • https://t.me/clickhouse_ru
    @qonsth #220682 11:50 AM, 02 Jun 2021
    не завезли ли фичу, позволяющую изменить запись таким запросом, чтобы я передал только ключ сортировки и заменяемое поле?
  • https://t.me/clickhouse_ru
    не-а
  • @KevinMort #220685 12:11 PM, 02 Jun 2021
    Всем привет! Есть кластер из 3 нод, на каждой ноде шард КЛИКА, обращаюсь через главную таблицу Distributed и делаю агрегацию через неё, но главный сервер падает. ВОПРОС, агрегация проходит на главном сервере, а не на каждой ноде?
  • https://t.me/clickhouse_ru
    промежуточная агрегация на каждой ноде
    после этого результаты финализируются на ноде "инициаторе запроса"
  • https://t.me/clickhouse_ru
    как именно выглядит запрос? у вас там нет случайно GROUP BY по полу в котором миллионы уникальных значений типа user_id ?
  • @KevinMort #220688 12:13 PM, 02 Jun 2021
    Вообще будет ощутим результат шардирования, если в кластере 3 сервера
    По 2 гига 2 ядра?)
  • @KevinMort #220689 12:13 PM, 02 Jun 2021
    Есть ли какие-нибудь минимальные требования по характеристикам?
  • https://t.me/clickhouse_ru
    Всё зависит от объёма хранимых данных. Но, вообще, это скромно...
  • 1 гигабайт данных, на запросе вылет по памяти)
  • @KevinMort #220692 12:19 PM, 02 Jun 2021
    26 миллионов строк
  • @KevinMort #220693 12:19 PM, 02 Jun 2021
    Click на главном сервере ест больше ресурсов?
  • https://t.me/clickhouse_ru
    1 гигабайт не-сжатых данных? ;)
  • https://t.me/clickhouse_ru
    нет понятия "главный сервер"
    есть понятие "нода инициатор запросов"
  • https://t.me/clickhouse_ru
    ну ему надо свою часть данных прочитать и потом еще с других серверов результаты обработать
    у вас 3 сервера. с разным shard_id в system.macros ?
  • @KevinMort #220697 12:20 PM, 02 Jun 2021
    Просто есть настройка, при которой есть группа нод, куда данные идут, а на инициаторе может не быть этой таблицы
  • https://t.me/clickhouse_ru
    на этой группе нод, там таблицы поверх которых distributed какой движок? ReplicatedMergeTree ? shard_id при этом разные?
  • MergeTree
  • https://t.me/clickhouse_ru
    ок. если просто MergeTree ... и запрос приходит на ноду инициатор, а которой remote_servers для выбранного кластера, не содержат ноду инициатор?
  • https://t.me/clickhouse_ru
    да, но это играет роль только если таблица ReplicatedMergeTree
  • В моем случае содержит)
  • https://t.me/clickhouse_ru
    Какой ключ группировки, сколько колонок в выборке?
  • https://t.me/clickhouse_ru
    @pic_Nick77 #220706 12:27 PM, 02 Jun 2021
    Да, этот запрос будет агрегироваться на инициаторе.
  • Средствами Клика я не добьюсь, распределенной агрегации для нужного мне результата?
  • https://t.me/clickhouse_ru
    @pic_Nick77 #220708 12:31 PM, 02 Jun 2021
    Думаю, что нет.
  • @SonFire #220709 01:14 PM, 02 Jun 2021
    Почему он начал ругаться при чтении из CSV?
    Column 11, name: userId, type: String, parsed text: "2f610664e960be67"
    Column 12, name: sessionProperties, type: String, parsed text: <EMPTY>
    Column 13, name: latitude, type: Float32, ERROR: text ",{},159369" is not like Float32

    : data for INSERT was parsed from stdin: (at row 1)
  • https://t.me/clickhouse_ru
    @pic_Nick77 #220710 01:17 PM, 02 Jun 2021
    Потому что ",{},159369" не float. Смотрите, что в файле у Вас.
  • https://t.me/clickhouse_ru
    Похоже на то, что поля "съехали" в строке
  • Другие строки нормально, с таким же заполнением нормально
  • Первая ок, вторая не прошла
  • https://t.me/clickhouse_ru
    Может, там что-то левее в строке съехало?
  • Неа, решил записывать 0 место пустоты и это помогло
  • создать временную табличку с движком SummingMergeTree по ключу cat и в неё залить с условием click = 1. И из временной выбирать. Тогда в память не упрётся
  • @1063161973 #220724 02:34 PM, 02 Jun 2021
    ... только не забудьте сгруппировать при выборке из временной таблицы или выполнить для неё OPTIMIZE TABLE
  • @l_dar ↶ Reply to #220722 #220726 03:02 PM, 02 Jun 2021
    Интересно, можно эту таблицу держать как постоянную и заполнять её по крону
  • Тут уж как вам нужно. Но таким способом подобные задачи на тестовой машинке с 8 Гб ОЗУ удавалось решать на размерах таблиц в несколько миллиардов строк. И, в общем, достаточно быстро работает. В Клике вставка оптимизирована очень хорошо.
  • @l_dar ↶ Reply to #220727 #220728 03:05 PM, 02 Jun 2021
    Спасибо
  • https://t.me/clickhouse_ru
    вряд ли да и зачем если для этого уже давно можно AggregatingMergeTree + SimpleAggregateFunction(anyLast, Nullable())
  • https://t.me/clickhouse_ru
    О! А можно про это подробнее? Или где почитать?
  • https://t.me/clickhouse_ru
    в документации?
  • https://t.me/clickhouse_ru
    Где-нибудь. Может с примером?
  • https://t.me/clickhouse_ru
    в документации и пример есть...
    создаёте таблицу с типом AggregatingMergeTree, необязательные колонки SimpleAggregateFunction(anyLast, Nullable())
    читайте подробнее доку по AggregatingMergeTree и по SimpleAggregateFunction
  • https://t.me/clickhouse_ru
    Спасибо, почитаю.
  • https://t.me/clickhouse_ru
    @mezhekov #220736 05:10 PM, 02 Jun 2021
    2021.06.02 20:08:03.958947 [ 110870 ] {} <Warning> default.table (ReplicatedMergeTreePartCheckThread): Checking part 20201217_37149_38422_750
    2021.06.02 20:08:03.958952 [ 111225 ] {} <Information> default.table: DB::Exception: No active replica has part 20201217_37149_38422_750 or covering part
    2021.06.02 20:08:03.962397 [ 110870 ] {} <Warning> default.table (ReplicatedMergeTreePartCheckThread): Checking if anyone has a part 20201217_37149_38422_750 or covering part.
    2021.06.02 20:08:03.974112 [ 110870 ] {} <Warning> default.table (ReplicatedMergeTreePartCheckThread): Found parts with the same min block and with the same max block as the missing part 20201217_37149_38422_750. Hoping that it will eventually appear as a result of a merge.
    2021.06.02 20:08:04.833348 [ 111130 ] {} <Information> default.table: DB::Exception: No active replica has part 20201217_37149_38422_750 or covering part
  • https://t.me/clickhouse_ru
    @mezhekov #220737 05:10 PM, 02 Jun 2021
    Some merges may stuck · Issue #10368 · ClickHouse/ClickHouse

    This bug is discovered on Yandex.Metrica servers. If there is assigned merge but some parts in between of the range of parts to merge get lost on all replicas, the merge cannot proceed and the foll...

  • https://t.me/clickhouse_ru
    @mezhekov #220738 05:10 PM, 02 Jun 2021
    обновление и drop part показывает следующее
  • https://t.me/clickhouse_ru
    @mezhekov #220739 05:11 PM, 02 Jun 2021
    Code: 232. DB::Exception: Received from 127.0.0.1:9000. DB::Exception: No part 20201217_37149_38422_750 in committed state.
  • https://t.me/clickhouse_ru
    @mezhekov #220740 05:11 PM, 02 Jun 2021
    текущая версия CH 21.3.12.2
  • https://t.me/clickhouse_ru
    @mezhekov #220741 05:12 PM, 02 Jun 2021
    что с эти делать?
  • https://t.me/clickhouse_ru
    @mezhekov #220742 05:12 PM, 02 Jun 2021
    на диске соответвенно данных таких нет, на обоих репликах
  • https://t.me/clickhouse_ru
    @den_crane #220743 06:20 PM, 02 Jun 2021
    Так это вообще не ошибки и не проблемы, это нормальное состояние.
  • https://t.me/clickhouse_ru
    @den_crane #220744 06:22 PM, 02 Jun 2021
    Реплика не успела скачать исходный парт,
    парт 20201217_37149_38422_750 уже удален на всех репликах, но есть парт смерженный из 20201217_37149_38422_750 с with the same max block
  • https://t.me/clickhouse_ru
    @den_crane #220745 06:24 PM, 02 Jun 2021
    что в system.replication_queue ?
  • https://t.me/clickhouse_ru
    @mezhekov #220747 07:34 PM, 02 Jun 2021
    Там пусто
  • https://t.me/clickhouse_ru
    @mezhekov #220748 07:35 PM, 02 Jun 2021
    я сделал detach partition этого дня, delay ушол, теперь вопрос эту партицию как то полечить можно? хоть она и достаточно старая, но терять данные не хочется
  • @UserNameNotKnow #220749 08:06 PM, 02 Jun 2021
    Подскажите пожалуйста как можно перевести таблицу MergeTree из устаревшего способа создания в новый без потери данных?
  • https://t.me/clickhouse_ru
    а что за устаревший способ создания?
  • @UserNameNotKnow #220752 08:09 PM, 02 Jun 2021
    MergeTree(EventDate, intHash32(UserID), (CounterID, EventDate, intHash32(UserID)), 8192)
  • https://t.me/clickhouse_ru
    @mezhekov #220753 08:11 PM, 02 Jun 2021
    а нельзя создать еще одну таблицу и сделать insert into newtable select * from oldtable вот прям первое что в голову пришло
  • @UserNameNotKnow #220754 08:11 PM, 02 Jun 2021
    объем данных очень большой, хотелось бы более изящное решение
  • https://t.me/clickhouse_ru
    если insert select без группировки, Clickhouse сделает всё красиво, в OOM уйти не должен
  • https://t.me/clickhouse_ru
    чего ? какой делай? в чем проблема у вас?
  • https://t.me/clickhouse_ru
    никак, re-insert
  • А оценочно можно просчитать время перевода 900Тб данных, в строках к сожалению сказать сейчас не смогу
  • https://t.me/clickhouse_ru
    @den_crane #220760 08:29 PM, 02 Jun 2021
    формат партов разный, в старом не хватает файликов, называются парты по другому, есть утилита конвертации партов в исходниках, но она именно про парты.
  • https://t.me/clickhouse_ru
    10 мил/ строк переливаете, insert select limit 10000000 интерполируете
  • оптимально разделить на блоки по 10мил строк и залить многопоточно, это ускорит время?
  • https://t.me/clickhouse_ru
    кусками придется в любом случае заливать, по месяцу или по дню. Современные КХ умеют параллелить insert select если задать параметр
  • https://t.me/clickhouse_ru
    @den_crane #220764 08:35 PM, 02 Jun 2021
    --max_insert_threads arg The maximum number of threads to execute the INSERT SELECT query. Values 0 or 1 means that INSERT SELECT is not run in parallel. Higher values will lead to higher memory usage.
  • https://t.me/clickhouse_ru
    @Guardian_of_cookies #220765 08:36 PM, 02 Jun 2021
    Господа,
    Концептуальный вопрос
    Есть легаси таблицы вида
    ENGINE = MergeTree(__date,_date,8192)
    и построенная на них логика. Поле _date статичное для всех записей.
    Попытался перевести на более современный синтаксис и так как _date по сути заглушка, попробовал следующее
    ENGINE = MergeTree
    ORDER BY tuple()
    SETTINGS index_granularity = 8192

    В итоге получил OOM на той же логике.

    Как статичный PK оказывается по итогу лучше варианта с его отсутствием?
  • https://t.me/clickhouse_ru
    а разве LIMIT в данной ситуации не применится после вычитки всех данных? Как в реляционных это бывает
  • https://t.me/clickhouse_ru
    эм? нет,
    и нет таких баз которые так делают, не придумывайте
  • https://t.me/clickhouse_ru
    пример покажите, запрос хотя бы.
    а так нет, нету никакой разницы
    и версию КХ
  • https://t.me/clickhouse_ru
    Запрос генерируетcя дэшбордом и он не человекочитаем из-за синтаксиса и колоссального размера к сожалению
  • https://t.me/clickhouse_ru
    Версия 21.4.5
  • https://t.me/clickhouse_ru
    cat /etc/clickhouse-server/users.d/min_bytes_to_use_mmap_io.xml
    <?xml version="1.0"?>
    <yandex>
    <profiles>
    <default>
    <min_bytes_to_use_mmap_io>0</min_bytes_to_use_mmap_io>
    </default>
    </profiles>
    </yandex>

    а хотя оно может 0 и было в 21.4

    надо трассу запроса смортеть
  • https://t.me/clickhouse_ru
    В данной версии файла даже нет на текущий момент
  • https://t.me/clickhouse_ru
    боже, никаких файлов нет. Это я только что придумал такой файл. Почитайте https://kb.altinity.com/altinity-kb-setup-and-maintenance/altinity-kb-server-config-files
    Server config files

    How to manage server config files in Clickhouse

  • https://t.me/clickhouse_ru
    Я вчера задавал вопрос, про эту проблему
  • https://t.me/clickhouse_ru
    очень частый кейс, когда пагинацию на сайтах делают через запрос к бд с помощью LIMIT... OFFSET... и это приводит к многократной вычитке одних и тех же данных, поскольку LIMIT OFFSET применяются после остальной части запроса
  • https://t.me/clickhouse_ru
    ну естественно после. Просто результат скролируется, я не понял причем тут мой запрос который вычитает 10 мил. рандомных строк? Не важно сколько строк в таблице, прочитано будет около 10млн., вся таблица прочитана не будет.
  • https://t.me/clickhouse_ru
    Спасибо.Не совсем по документации понял на что эта настройка непосредственно влияет?
  • https://t.me/clickhouse_ru
    наверное не вся, но пока не наберет OFFSET + LIMIT, если ничего не путаю...
  • https://t.me/clickhouse_ru
    вы о чем вообще?

    был вопрос: "А оценочно можно просчитать время перевода 900Тб данных, в строках к сожалению сказать сейчас не смогу"
    я ответил: "10 мил/ строк переливаете, insert select limit 10000000, интерполируете"
    какой offset? я один раз предложил сделать select * from t limit 1000000 чтобы узнать сколько времени 10млн. вставляются
  • https://t.me/clickhouse_ru
    DB::Exception: Memory limit (for query) exceeded: would use N1 GiB (attempt to allocate chunk of N2 bytes), maximum: N3 GiB: While executing MergeTreeThread. · Issue #24505 · ClickHouse/ClickHouse

    We have a large syslog database. At some point it starts failing as SELECT message FROM syslog WHERE timestamp > (NOW() - toIntervalHour(48)) LIMIT 1000 FORMAT Null Query id: 985cfa48-099b-4...

  • https://t.me/clickhouse_ru
    да, я влез не разобравшись, извиняюсь...
  • https://t.me/clickhouse_ru
    да, всё верно, при потоковом чтении рандомных строк базе нет смысла читать больше 10 млн. Сорри за оффтоп и смуту
  • https://t.me/clickhouse_ru
    Valeriy @den_crane
    Спасибо за наводку!
    Хотя бы count по запросу смог отработать что уж положительная динамика!
  • 03 June 2021 (192 messages)
  • https://t.me/clickhouse_ru
    @antipooh #220788 02:38 AM, 03 Jun 2021
    Добрый день. Такой вопрос, собираем в CH логи, нужно организовать просмотр через веб, только для своих сотрудников. Хотелось обойтись без бекенда. Просто проксируем nginx запросы на HTTP интерфейс CH. Авторизация делается на nginx, а для CH пользователь задается установкой заголовков. Пользователь имеет права только на чтения, и нарезаны лимиты. Норм решение или с огнем играем?
  • https://t.me/clickhouse_ru
    а чем бэк будет принципиально лучше?
  • https://t.me/clickhouse_ru
    Дополнительный слой защиты. Вместо SQL - ограниченный язык для фильтров
  • @KevinMort #220791 05:14 AM, 03 Jun 2021
    Подскажите, что означают параметры?
  • @KevinMort #220792 05:14 AM, 03 Jun 2021
    Я как бы понимаю, но не уверен в полной мере)
  • https://t.me/clickhouse_ru
    ну. если будут отдельные аудит логи на тему того, кто какие запросы и когда делал
    корорые в тот же clickhouse не будут складываться, то жить можно
    и если nginx не тупо basic auth один на всех, а нормальная ntlm \ sso авторизация =)

    а так, любой безопасник завернет =)
    ну и смотря какие логи, насколько там sensitive инфа =)

    но если вы не PCI-DSS то наверное не так страшно все
  • @KevinMort #220794 05:28 AM, 03 Jun 2021
    Как можно ускорить insert запросы на шарды?
  • @KevinMort #220795 05:29 AM, 03 Jun 2021
    И вообще имеет смысл записывать через Distributed таблицу? Или лучше самому распределять и писать на нужные шарды?
  • https://t.me/clickhouse_ru
    если можете сами распределять, распределяйте вставляйте сразу в ReplicatedMergeTree
  • @stillru #220797 05:56 AM, 03 Jun 2021
    Доброе утро. Clickhouse для меня явление совершенно новое. Хотелось заменить им решения на sqlite.
    1) возможно ли это с clickhouse local?
    2) есть ли биндинги для lua? ( нашел пока только модуль для rspamd )
  • https://t.me/clickhouse_ru
    1) нет, clickhouse local это не embedded библиотека, это standalone executable file, в природе нет embedded решений для clickhouse,
    если вы пытаетесь заменить sqlite, то конечно вам особо ничего не мешает сделать exec для clickhouse-local
    но вам придется реалзовывать какой то глобальный лок, чтобы несколько clickhouse-local не потрошили одну базу одновременно, через exec flock ... clickhouse-local в принципе это возможно, но это путь в никуда

    2) в clickhouse есть http интерфейс
    https://clickhouse.tech/docs/en/interfaces/http/

    в lua есть HTTP client модули https://luarocks.org/modules/daurnimator/http
    можно спокойно запрашивать SELECT ... FORMAT JSON
    и парсить через https://luarocks.org/modules/xpol/rapidjson
    HTTP Interface | ClickHouse Documentation

    HTTP Interface The HTTP interface lets you use ClickHouse on any platform from any programming language. We use it for w

  • https://t.me/clickhouse_ru
    В таких вопросах хотелось бы понять наверное какое именно решение на SQLite вы хотите заменить
  • https://t.me/clickhouse_ru
    @dzarlax #220801 08:10 AM, 03 Jun 2021
    Подскажите пож, а кто-нибудь настраивал CHYT в Datagrip?
  • Микро бд для обработки таблиц из условного табличного редактора
  • @beebeeep #220803 08:20 AM, 03 Jun 2021
    а как можно сделать прореживание старых данных, т.е, например, оставить каждую N-ю строку из набора с одинаковыми колонками? Как я понимаю это будет что-то типа TTL <expr> GROUP BY (a, b, c, ??) - что там вместо ?? может быть, чтобы каждая N-я строка из группы была?
  • https://t.me/clickhouse_ru
    что такое CHYT?
    обычный ClickHouse настраивали. там нет каких то особенных проблем кроме багов DataGrip
  • https://t.me/clickhouse_ru
    Это Clickhouse over YT) Внутренняя приблуда, думал вдруг кто из коллег подскажет))
  • @beebeeep #220806 08:28 AM, 03 Jun 2021
    ыыыыть
  • а что такое YT?)
  • @7699150 #220808 08:29 AM, 03 Jun 2021
    yandex что-то там?)
  • https://t.me/clickhouse_ru
    Youtrack, емнип
  • https://t.me/clickhouse_ru
    я, кстати, не знаю как она расшифровывается - ыть она и в африке ыть)
  • https://t.me/clickhouse_ru
    фу нет
  • https://t.me/clickhouse_ru
    А шо тода
  • @qqruz #220813 08:31 AM, 03 Jun 2021
    YT: зачем Яндексу своя MapReduce-система и как она устроена

    В течение последних шести лет в Яндексе идет работа над системой под кодовым называнием YT (по-русски мы называем её «Ыть»). Это основная платформа для хранения и обработки больших объемов данных — мы...

  • https://t.me/clickhouse_ru
    это некий аналог хадупа с кучей всего)
  • https://t.me/clickhouse_ru
    @dzarlax #220815 08:32 AM, 03 Jun 2021
    YT: зачем Яндексу своя MapReduce-система и как она устроена

    В течение последних шести лет в Яндексе идет работа над системой под кодовым называнием YT (по-русски мы называем её «Ыть»). Это основная платформа для хранения и обработки больших объемов данных — мы...

  • https://t.me/clickhouse_ru
    если это "микро" то есть там нет "больших" данных - чем не устраивает sqlite?
  • https://t.me/clickhouse_ru
    ну и зачем вам тогда clickhouse ?
    в нем UPDATE \ DELETE нет например -)
  • Импортозамещение....
  • не российское... понимаю что идиотизм но хотят наше, самостийное....
  • https://t.me/clickhouse_ru
    @dbalashov #220820 08:41 AM, 03 Jun 2021
    Linter, Cache :)
  • https://t.me/clickhouse_ru
    прикалываетесь?

    ну поздравляю, 60% коммитов вносится из-за рубежа... 20% от китайцев вообще

    в реестре ПО никаком clickhouse вроде не замечен
    хотя какой нибудь ArenaData может и сварганит какой нибудь форк для госух...

    меняйте на Postgres Pro Standart
    отечественнее не бывает
    для госухи они лицензировались
  • https://t.me/clickhouse_ru
    логика и здравый смысл не имеют значения
  • Увы, но вы правы.
  • https://t.me/clickhouse_ru
    @dbalashov #220824 08:42 AM, 03 Jun 2021
    Interbase/Yaffil :)
  • https://t.me/clickhouse_ru
    @dbalashov #220825 08:42 AM, 03 Jun 2021
    чотам ещо из "отечственного" есть, Postgres вроде был замечен в реестре отеч ПО
  • https://t.me/clickhouse_ru
    http://postgrespro.ru/

    в общем вам сюда, просвещайтесь
    Компания Postgres Professional

    Postgres Professional - российская компания, разработчик систем управления базами данных

  • https://t.me/clickhouse_ru
    @Duolix #220827 08:46 AM, 03 Jun 2021
    Всем привет
    Создал таблицу на движке distributed. При заливке данных на эту таблу, вся память закешировалась (сидим на Яндекс облаке). Память освобождать не хочет, только малую часть.
    Проблема в настройке кластера или просто нужно расширять оперативку?
  • https://t.me/clickhouse_ru
    Файловый кеш в линуксе всегда занимает всю доступную свободную память и вытесняется при необходимости, это нормально
  • https://t.me/clickhouse_ru
    @nyoroon #220829 08:56 AM, 03 Jun 2021
    Подробнее https://www.linuxatemyram.com/
  • https://t.me/clickhouse_ru
    @Duolix ↶ Reply to #220829 #220830 08:57 AM, 03 Jun 2021
    Я потом сделал запрос к не распределенной таблице, и у меня он повис с жалобой на отсутствие памяти. Это смутило

    А так спасибо, изучу)
  • https://t.me/clickhouse_ru
    @vsgrab ↶ Reply to #220821 #220831 08:59 AM, 03 Jun 2021
    вообще-то как раз в реестре кликхаус есть
  • https://t.me/clickhouse_ru
    @vsgrab #220832 09:00 AM, 03 Jun 2021
    так сложилось 🙂 @BloodJazMan @stillru
    https://reestr.digital.gov.ru/reestr/306704/?sphrase_id=341474
  • https://t.me/clickhouse_ru
    ох, ну ок
    yandex.cloud тоже хочет продаваться нефтянке и госухам...
  • https://t.me/clickhouse_ru
    спасибо за ссылку
  • https://t.me/clickhouse_ru
    @crazyproger #220835 09:16 AM, 03 Jun 2021
    Подскажите пожалуйста, запустили ALTER TABLE ATTACH PARTITION FROM SETTINGS replication_alter_partitions_sync=2, запрос подвис, т.к. не может временно зааттачить партицию на реплике. Если его убить(висит уже давно) то партиция будет зааттачена на вызывающей ноде или это атомарная операция?
    Версия 21.3.12.2
  • @l_dar #220836 09:32 AM, 03 Jun 2021
    Скорее всего глупый вопрос, но я не уверен в ответе. Если происходит вставка батчем и в этот момент происходит select, часть загруженных из батча появятся в этой выборке?
  • https://t.me/clickhouse_ru
    батч больше миллиона строк?
    если нет, то ничего не появится
  • https://t.me/clickhouse_ru
    должен быть атомарным
  • @l_dar ↶ Reply to #220837 #220839 09:35 AM, 03 Jun 2021
    Меньше. Спасибо
  • https://t.me/clickhouse_ru
    @mirka_bit #220841 09:38 AM, 03 Jun 2021
    как выполнять запросы on cluster , когда одна реплика не работает? получается рассинхрон
  • https://t.me/clickhouse_ru
    @mrpavelk #220842 09:45 AM, 03 Jun 2021
    Всем привет. Как лучше сделать структуру для кейса когда к 5% данных будет оставляться заметка? Думаю merge tree для основных данных, и collapsing merge tree для комментов. Потом данные тащить через union all. Рабочая схема, или уже получше можно сделать? Денормализованно хранить как понимаю будет хуже
  • https://t.me/clickhouse_ru
    починить репилку, ей из ZK прилетит запрос она его выполнит
  • https://t.me/clickhouse_ru
    ну union all запросы паралельно будет выполнять...
    вполне может отработать

    а для чего вам это все?
    аналитика какая то?
    или вы clickhouse прикручиваете напрямую к веб приложению для комментов?
    если второе, то это не кейс clickhouse
    от слов вообще
    возьмите MySQL + Vitess или TiDB какой нибудь лучше
  • https://t.me/clickhouse_ru
    Да, данные аналитические, средние, суммы по периодам и т.п. Но есть несколько связей, вроде рейтинга и комментов к лог записи, две разные таблицы. Постгресс совсем не шустрый, хотя данных около 5Тб всего
  • https://t.me/clickhouse_ru
    если аналитика, то UNION ALL нормально подойдет...
  • @kissex #220847 10:32 AM, 03 Jun 2021
    День добрый. Пытаюсь разобраться с мутациями.

    Заметил что в процессе удаление данных через запрос alter table ... delete ..., скачет количество кусков в рамках одной партиции в таблице system.parts до тех пор пока мутации не будет выполнена (is_done = 1).

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

    Чем именно мутации отличаются от обычных запросов и как они работают?
  • https://t.me/clickhouse_ru
    @vsgrab ↶ Reply to #220833 #220848 10:36 AM, 03 Jun 2021
    эта сертификация не нами была инициирована . но почему бы и нет, решение и правда у нас сделано 🙂
  • https://t.me/clickhouse_ru
    1. да, нормально что количества партов скачет
    2. тут 2 варианта - если (1) таблица реплицирована и (2) вы попробуете вставить данные таким же куском, каким они были ранее вставлены и (3) в зукипере осталась информация об этом куске, то может произойти дедупликация на вставку
    иначе данные вставятся
    3. обычные запросы (insert) вставляют парты, которые в будущем могут смержиться, эти же запросы перезаписывют парты
  • https://t.me/clickhouse_ru
    добавлю, что можете посмотреть в сторону collapsingMT или replacingMT, если позволяет логика вставки/удаления
    слово alter добавлено не просто так - это административный, а не etl запрос

    https://clickhouse.tech/docs/ru/engines/table-engines/mergetree-family/collapsingmergetree/
    https://clickhouse.tech/docs/ru/engines/table-engines/mergetree-family/replacingmergetree/
    CollapsingMergeTree | Документация ClickHouse

    CollapsingMergeTree Движок наследует функциональность от MergeTree и добавляет в алгоритм слияния кусков данных логику с

  • @kissex ↶ Reply to #220849 #220851 10:46 AM, 03 Jun 2021
    таблица на движке MergeTree.

    У нас просто иногда прилетают "плохие данные" и необходимо, их как то оперативно поправить в боевой табличке. В результате мы пока что придерживаемся такой схемы:
    1 инсёртим поправленные данные повторно в соседнию таблицу с такими же движком и колонками
    2 подменяем партиции (партиция=1месяц)

    Но это всё очень долго, и руками надо делать.
  • @kissex ↶ Reply to #220850 #220852 10:46 AM, 03 Jun 2021
    спасибо, поизучаю
  • https://t.me/clickhouse_ru
    Спасибо 🤝 А денормализация в этом плане и collapsing merge tree как движок хуже отыграет?
  • https://t.me/clickhouse_ru
    вам collapsing нужен потому что у вас delete и update в комментах есть?
  • https://t.me/clickhouse_ru
    если вы можете на момент вставки понять, что данные "плохие", посмотрите на material view
  • @kissex ↶ Reply to #220855 #220856 10:59 AM, 03 Jun 2021
    Угу, спасибо
  • https://t.me/clickhouse_ru
    Ага
  • https://t.me/clickhouse_ru
    Ну нормально выглядит схема с UNION ALL
    но надо делать GROUP BY внутри SELECT которые по union all объединяются
    иначе по памяти падать будете на больших выборках
  • https://t.me/clickhouse_ru
    Спасибо, буду пробовать
  • https://t.me/clickhouse_ru
    https://github.com/filimonov/chc
    вот такой клиент есть кстати, портабельный вполне
    GitHub - filimonov/chc: chc: ClickHouse portable command line client

    chc: ClickHouse portable command line client. Contribute to filimonov/chc development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @alekseyryabkov #220862 12:13 PM, 03 Jun 2021
    добрый всем. планируем использовать кликхаус как хранилище для временных рядов. возникли несколько вопросов:
    1. есть у кого опыт или ссылками на опыт такого использования (какие подводные камни)?
    2. часть метрик у нас являются куммулятивными (монотонно растущими) счетчиками (условно количество принятых сетевым интерфейсом данных ). собственно вопрос стоит ли их хранить в кликхаусе? или лучше хранить только дельты (ибо потом нам зачастую надо получать графики типа сколько было данных за определенный период времени)
  • https://t.me/clickhouse_ru
    1. нормально clickhouse для временных рядов подходит
    а с учетом наличия TLL GROUP BY, можно еще и аггрегацию делать по старым данным
    https://clickhouse.tech/docs/en/engines/table-engines/mergetree-family/mergetree/#mergetree-table-ttl

    VictoriaMetrics во всяких специфичных для TS кейсах побыстрее будет, но у нее специфический язык metricsSQL

    2. в clickhouse есть delta кодирование,
    https://clickhouse.tech/docs/en/sql-reference/statements/create/table/#create-query-specialized-codecs
    MergeTree | ClickHouse Documentation

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

  • https://t.me/clickhouse_ru
    спсб
  • https://t.me/clickhouse_ru
    @Pershin_Artem_spb #220866 12:33 PM, 03 Jun 2021
    Здравствуйте, а есть ли какой-то способ узнать вошел ли пул-реквест в конкретную версию докер-образа?
  • https://t.me/clickhouse_ru
    да
    открываем pull request
    ищем в закладке conversations
    коммит merged to master
    кликаем по коммиту
    вверху видим теги в которые вошел коммит с мержем этого PR
    они соответсвуют версиям docker image
    -lts, -stable публикуются на hub.docker.com
  • https://t.me/clickhouse_ru
    @hlexx #220868 01:14 PM, 03 Jun 2021
    Добрый день! Есть кластер с 3-мя шардами, в каждом шарде по 2 хоста (один основной и реплика). Как создать распределенную таблицу, которая будет реплицироваться?
  • @SergeyMedvetskiy #220869 01:55 PM, 03 Jun 2021
    Всем привет!
    Собираем логи nginx в clickhouse, поставили задачку отрисовать их в Grafana.
    Друзья, ни у кого нет готовеньких дашбордов?
  • https://t.me/clickhouse_ru
    https://github.com/mintance/nginx-clickhouse
    https://github.com/mintance/nginx-clickhouse/blob/master/Grafana-dashboard.json
    GitHub - mintance/nginx-clickhouse: Simple nginx logs parser & transporter to ClickHouse database.

    Simple nginx logs parser & transporter to ClickHouse database. - GitHub - mintance/nginx-clickhouse: Simple nginx logs parser & transporter to ClickHouse database.

  • Спасибо!
  • @l_dar #220872 02:17 PM, 03 Jun 2021
    А с миллисекундами в clickhouse проблема, их нет?
  • https://t.me/clickhouse_ru
    DateTime64 либо хранить рядом в столбце UInt
  • @l_dar ↶ Reply to #220873 #220874 02:19 PM, 03 Jun 2021
    Спасибо
  • @1063161973 #220875 02:20 PM, 03 Jun 2021
    Добрый день.
    "Материализованный столбец всегда вычисляется". Значениям в system.total_bytes для таблиц с материализованными столбцами не верить ? Они включают ненулевые (и достаточно приличные) размеры таких столбцов.
  • https://t.me/clickhouse_ru
    Запустили как Вы советовали, пусто в stdout( Нода все так же падает( Можете еще что-нибудь подсказать? Оформлять issue? - но что туда написать? Падение всегда идет с предшествующей ошибкой о интерсекте партов в том же треде(
  • https://t.me/clickhouse_ru
    @maga_rs #220879 02:41 PM, 03 Jun 2021
    Подскажите, когда делаю селект из паркета, то выдает ошибку, что такого поля нет. Но если например селект топ 10 строк, то все ок.

    select Field_1
    from hdfs('hdfs://.../year=2021/month=3/day=30/*.parquet',
    'Parquet', '`Field_1` String')

    Code: 8, e.displayText() = DB::Exception: Column «Field_1» is not presented in input data: While executing HDFS (version 20.5.3.27 (official build))

    Это проблема КХ или на hdfs?
  • @radiojoh #220880 02:58 PM, 03 Jun 2021
    Привет. Глупый вопрос: заполняя таблицу из другой базы insert from remote не может происходить дублирования данных ? Наример прошел запрос where date >='2021-06-02' and date <'2021-06-03' и через какое-то время снова такой же запрос.
  • @softbot_xxl #220881 03:01 PM, 03 Jun 2021
    Вставка блока в КХ атомарна, или весь блок вставляется, или не вставляется, правильно? Для ReplicatedMergeTree.
  • @vvvjhaq #220882 03:04 PM, 03 Jun 2021
    Добрый вечер.
    2 сервера.(21.2.9.41)
    на одном делаю attach partition. на инициаторе все добавляется.
    на втором ошибка
    2021.06.03 15:02:12.522156 [ 100303 ] {} <Error> test.user_test (ReplicatedMergeTreeRestartingThread): void DB::ReplicatedMergeTreeRestartingThread::run(): Code: 27, e.displayText() = DB::P
    arsingException: Cannot parse input: expected '\n' before: '202105_0_0_0\npart_checksum: F911597EC8F8EAA8D7763B3DE230A46F\npart_type: Compact\n', Stack trace (when copying this message, always incl
    ude the lines below):
  • https://t.me/clickhouse_ru
    да атомарна, в пределах одного сервера
    либо блок вставляется либо нет, если вставился, то уходит на репликацию... через ZK и фетчится другой репликой
  • Спасибо!
  • @1789158330 #220885 03:07 PM, 03 Jun 2021
    Всем добрый вечер. Подскажите, пожалуйста, как можно выполнить изменение типа столбца в существующей таблице, если указанный столбец является частью первичного ключа таблицы?
  • https://t.me/clickhouse_ru
    если вставка идет в ReplicatedMergeTree таблицу то если у вас два блока с одинаковой контрольной суммой (два раза запустили INSERT INTO ... SELECT ... и remote Таблица не менялась за это время)
    сработает
    insert_deduplicate
    и
    eplicated_deduplication_window

    https://clickhouse.tech/docs/en/operations/settings/merge-tree-settings/#replicated-deduplication-window
    https://clickhouse.tech/docs/en/operations/settings/settings/#settings-insert-deduplicate
    MergeTree tables settings | ClickHouse Documentation

    MergeTree tables settings The values of merge_tree settings (for all MergeTree tables) can be viewed in the table system

  • @1789158330 #220887 03:08 PM, 03 Jun 2021
    Столбец имеет тип Enum8, я хочу только расширить те значения, которые содержатся в данном перечислении. Какая для этого предусмотрена последовательность действий?
  • https://t.me/clickhouse_ru
    никак, новая таблица и INSERT INTO ... SELECT
  • https://t.me/clickhouse_ru
    ALTER TABLE .. MODIFY COLUMN ..
    ошибку возвращает?
    что там написано?
  • Code: 44, e.displayText() = DB::Exception: Trying to ALTER key column eventtype
  • только новая таблица и в неё insert into ... select ?
  • https://t.me/clickhouse_ru
    https://github.com/ClickHouse/ClickHouse/issues/9645

    Такое ощущение что парт у вас от какой то старой версии ch
    Broken replication after upgrading to 20.3.2.1 · Issue #9645 · ClickHouse/ClickHouse

    Describe the bug or unexpected behaviour Broken replication after upgrading to 20.3.2.1 How to reproduce Which ClickHouse server version to use 20.1.6.30 -> 20.3.2.1 CREATE TABLE statements ...

  • https://t.me/clickhouse_ru
    угу, новая таблица + INSERT INTO ... SELECT
  • как это проверить? Перефразирую: каким запросом сравнить выбранные даны локальной таблицы и remote ?
  • https://t.me/clickhouse_ru
    @Zhe700 #220895 03:33 PM, 03 Jun 2021
    Добрый день! пытаюсь кх скормить csv и он ругается на благим матом, за что и почему не пойму.
    Code: 27, e.displayText() = DB::ParsingException: Cannot parse input: expected '"' before: 'ad_id","ad_title","ad_group_id","group_name","campaign_id","campaign_name","target_id","status_id","status","user_id","created_at","deleted_at","archived_at","u' (version 21.5.6.6 (official build))
  • https://t.me/clickhouse_ru
    @Zhe700 ↶ Reply to #220895 #220896 03:37 PM, 03 Jun 2021
    0. DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, bool) @ 0x87a28ba in /usr/bin/clickhouse
    1. DB::throwAtAssertionFailed(char const*, DB::ReadBuffer&) @ 0x87f8a97 in /usr/bin/clickhouse
    2. ? @ 0xedb8366 in /usr/bin/clickhouse
    3. DB::SerializationNumber<unsigned long>::deserializeTextCSV(DB::IColumn&, DB::ReadBuffer&, DB::FormatSettings const&) const @ 0xedb0dd5 in /usr/bin/clickhouse
    4. bool DB::SerializationNullable::deserializeTextCSVImpl<bool>(DB::IColumn&, DB::ReadBuffer&, DB::FormatSettings const&, std::__1::shared_ptr<DB::ISerialization const> const&) @ 0xedab714 in /usr/bin/clickhouse
    5. DB::CSVRowInputFormat::readRow(std::__1::vector<COW<DB::IColumn>::mutable_ptr<DB::IColumn>, std::__1::allocator<COW<DB::IColumn>::mutable_ptr<DB::IColumn> > >&, DB::RowReadExtension&) @ 0xfe64753 in /usr/bin/clickhouse
    6. DB::IRowInputFormat::generate() @ 0xfe44208 in /usr/bin/clickhouse
    7. DB::ISource::tryGenerate() @ 0xfdd3135 in /usr/bin/clickhouse
    8. DB::ISource::work() @ 0xfdd2d1a in /usr/bin/clickhouse
    9. DB::ParallelParsingInputFormat::InternalParser::getChunk() @ 0xfe98c7e in /usr/bin/clickhouse
    10. DB::ParallelParsingInputFormat::parserThreadFunction(std::__1::shared_ptr<DB::ThreadGroupStatus>, unsigned long) @ 0xfe9821e in /usr/bin/clickhouse
    11. ThreadPoolImpl<ThreadFromGlobalPool>::worker(std::__1::__list_iterator<ThreadFromGlobalPool, void*>) @ 0x87e5618 in /usr/bin/clickhouse
    12. ThreadFromGlobalPool::ThreadFromGlobalPool<void ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda1'()>(void&&, void ThreadPoolImpl<ThreadFromGlobalPool>::scheduleImpl<void>(std::__1::function<void ()>, int, std::__1::optional<unsigned long>)::'lambda1'()&&...)::'lambda'()::operator()() @ 0x87e6fdf in /usr/bin/clickhouse
    13. ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0x87e2b5f in /usr/bin/clickhouse
    14. ? @ 0x87e6083 in /usr/bin/clickhouse
    15. start_thread @ 0x9609 in /usr/lib/x86_64-linux-gnu/libpthread-2.31.so
    16. clone @ 0x122293 in /usr/lib/x86_64-linux-gnu/libc-2.31.so
    (version 21.5.6.6 (official build))
    Code: 27. DB::ParsingException: Cannot parse input: expected '"' before: 'ad_id","ad_title","ad_group_id","group_name","campaign_id","campaign_name","target_id","status_id","status","user_id","created_at","deleted_at","archived_at","u':
    Row 1:
    Column 0, name: ad_id, type: UInt64, parsed text: "<DOUBLE QUOTE>"ERROR
    Code: 27, e.displayText() = DB::ParsingException: Cannot parse input: expected '"' before: 'ad_id","ad_title","ad_group_id","group_name","campaign_id","campaign_name","target_id","status_id","status","user_id","created_at","deleted_at","archived_at","u' (version 21.5.6.6 (official build))
  • https://t.me/clickhouse_ru
    он не может найти двойную кавычку перед ad_id
  • https://t.me/clickhouse_ru
    @Zhe700 #220898 03:44 PM, 03 Jun 2021
    но она там есть)
  • https://t.me/clickhouse_ru
    ну SELECT count() FROM db.table WHERE ...
    сравнить с
    SELECT count() FROM remote() WHERE ...
    для начала
  • https://t.me/clickhouse_ru
    всю строчку покажи
  • https://t.me/clickhouse_ru
    @Zhe700 #220901 03:45 PM, 03 Jun 2021
    "ad_id","ad_title","ad_group_id","group_name","campaign_id","campaign_name","target_id","status_id","status","user_id","created_at","deleted_at","archived_at","updated_at","added_at"
  • https://t.me/clickhouse_ru
    это первая строка?
    а как INSERT запрос выглядит?
  • https://t.me/clickhouse_ru
    @Zhe700 ↶ Reply to #220902 #220903 03:48 PM, 03 Jun 2021
    да это первая строка, я два варианта пробовал:
    cat ads_202106031823.csv | clickhouse-client --query="INSERT INTO ads.ads FORMAT CSV"

    clickhouse-client --query="INSERT INTO ads.ads FORMAT CSV" < ads_202106031823.csv
  • https://t.me/clickhouse_ru
    FORMAT CSVWithNames
    надо
  • https://t.me/clickhouse_ru
    @BloodJazMan #220905 03:50 PM, 03 Jun 2021
    ну и названия колонок должны соответствовать полям в БД
  • https://t.me/clickhouse_ru
    @Zhe700 ↶ Reply to #220904 #220906 03:51 PM, 03 Jun 2021
    боже это гениально) спасибо
  • @vasya_p0pkin #220907 03:59 PM, 03 Jun 2021
    Подскажите кто использовал Predefined HTTP Interface в режиме predefined_query_handler? У меня почему-то не заработало даже с примером из документации. Версия 20.12. Пишет empty query. И не до конца понял что должна распарсить регулярка из url. По логике должна получать значения параметров, а как я понял в примере получает названия этих параметров
  • это я вообще хочу восстановить партицию, которую снял с другого сервера. у другого сервера версия така же, то есть у всех 3-х версии одинаковые.
    у меня немного другая ошибка
  • https://t.me/clickhouse_ru
    @bralbral #220909 04:03 PM, 03 Jun 2021
    Добрый вечер. Фаил засечек для одной таблицы весит +-77гб. Смотрел в marks_bytes system.parts .Таблиц подобных 10+. На сервере 128гб ram. Это повод для того, чтобы выбирать гранулярность больше ?
  • https://t.me/clickhouse_ru
    А сколько строк в таблице и index_granularity
  • https://t.me/clickhouse_ru
    Гранулярность 256 - строк больше 3ккк
  • https://t.me/clickhouse_ru
    @unamedrus #220912 04:11 PM, 03 Jun 2021
    А зачем вам такая гранулярность?
  • https://t.me/clickhouse_ru
    Чтобы с диска меньше читалось.
  • https://t.me/clickhouse_ru
    А размер блока сжатия вы меняли?
  • https://t.me/clickhouse_ru
    да, вижу, действительно странно... чего то ей не хватает
  • https://t.me/clickhouse_ru
    Не совсем, кликхаус же сжимает данные поблочно, и в худшем случае придется прочесть весь блок сжатия. и в среднем будет прочитана половина блока сжатия.

    min_compress_block_size │ 65536 │ 0 │ The actual size of the block to compress, if the uncompressed data less than max_compress_block_size is no less than this value and no less than the volume of data for one mark.
  • https://t.me/clickhouse_ru
    @unamedrus #220918 04:23 PM, 03 Jun 2021
    Если вы указываете маленькую index_granularity, из за большого блока сжатия от нее смысла не много.
  • https://t.me/clickhouse_ru
    Нет, не меняли.
  • таблицы были созданы на немного старой версии КХ, пересоздал таблицы и все аттачнулось.
  • https://t.me/clickhouse_ru
    Правильно ли я понимаю , что дефолтное значение подходит к дефолтному значению гранулярности? Таким образом, в моем случае, уменьшать нужно пропорционально? Или это сугубо на тестах определяется ?
  • https://t.me/clickhouse_ru
    min_compress_block_size в байтах, те это 65кб
    если мы берем какую нибудь колонку UInt64, то получается ~ 8 mark.

    > Таким образом, в моем случае, уменьшать нужно пропорционально?

    В теории да, на практике теряется смысл от сжатия и кол-во прочтенных данных с диска не уменьшается пропорционально
  • https://t.me/clickhouse_ru
    Благодарю.
  • https://t.me/clickhouse_ru
    MergeTree + ReplacingMergeTree/EmbeddedRocksDB
  • https://t.me/clickhouse_ru
    А сколько строк вообще?
  • https://t.me/clickhouse_ru
    К сожалению нельзя стек расширять (
  • https://t.me/clickhouse_ru
    4.5 терабайта где-то, но это за 7 лет, в строке колонок 15 примерно, небольшие.
  • https://t.me/clickhouse_ru
    5% данных это сотни гб данных
  • https://t.me/clickhouse_ru
    @unamedrus #220930 05:09 PM, 03 Jun 2021
    В какой момент времени эта заметка будет оставлятся?
  • https://t.me/clickhouse_ru
    Вот на это ограничений нет, но как правило в течении дня
  • https://t.me/clickhouse_ru
    @unamedrus #220932 05:10 PM, 03 Jun 2021
    И потом она уже не меняется?
  • https://t.me/clickhouse_ru
    В целом да, в большинстве случаев
  • https://t.me/clickhouse_ru
    @unamedrus #220934 05:18 PM, 03 Jun 2021
    И сколько в день таких комментов нужно подцепить? можно ли это сделать батчем?
  • https://t.me/clickhouse_ru
    @morozovsk #220935 05:23 PM, 03 Jun 2021
    табличная функция mysql поддерживает селект и инсерт, а в доке по движку mysql написано только про инсерт.
    я правильно понимаю, что дока немного устарела? я нашёл issue на гитхабе на эту тему двухгодовалой давности:
    https://github.com/ClickHouse/ClickHouse/issues/7745 и завёл пулреквест на обновление доки https://github.com/ClickHouse/ClickHouse/pull/24937
    но сейчас немного засомневался, всё ли я правильно понял? ... иначе нафига у него опции on_duplicate_clause и replace_query

    https://clickhouse.tech/docs/ru/engines/table-engines/integrations/mysql/
    https://clickhouse.tech/docs/ru/sql-reference/table-functions/mysql/
  • https://t.me/clickhouse_ru
    я так понял, что ничего расширять не надо. rocksdb уже embedded в кликхаус
    https://clickhouse.tech/docs/ru/engines/table-engines/integrations/embedded-rocksdb/
    EmbeddedRocksDB | Документация ClickHouse

    Движок EmbeddedRocksDB Этот движок позволяет интегрировать ClickHouse с rocksdb. Создание таблицы CREATE TABLE [IF NOT E

  • https://t.me/clickhouse_ru
    @mrpavelk #220937 05:51 PM, 03 Jun 2021
    Group by вообще по ключу избавляет от несколлапсеных строк? Я думаю может предварительно делать вставку пустых данных в коллапсинг таблицу в соответствии с основной, чтоб потом упростить запись месячного отчёта в файл просто за счёт того что число строк будет одинаково.
  • https://t.me/clickhouse_ru
    @alekseyryabkov #220940 06:53 PM, 03 Jun 2021
    Подскажите как лучше посчитать скорость изменения счётчика. Условно есть монотоннорастущий счётчик , мне необходимо получать скорость его изменения за промежуток времени ( в идеале в значений в секунду). По сути нужен некий аналог оконных lag/lead функций ( ну или increase promql) Я нашел в документации, что есть оконные функции, но они вроде помечены экспериментальными.

    Навскидку приходит простейшая конструкция типа group by по временным интервалам (например в две секунды) и вычисления разности между агрегатами max и min. Но возможно есть более правильный способ?
  • https://t.me/clickhouse_ru
    Если вы можете апгрейднутся до 21.3 и использовать оконки, то проще использовать оконки
  • https://t.me/clickhouse_ru
    Ещё раз пересмотрел доку. Там написано, что помимо этого lag все равно не поддерживается :(. Так что похоже оконки не вариант
  • https://t.me/clickhouse_ru
    там можно съэмулировать лаг через any, либо в 21.4 есть уже обычный лаг
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Понятно. А если нет возможности перейти на последнюю. То как через group by сделать оптимально?
    Я так понимаю any берет первое попавшееся. И это не всегда детерминировано..
  • https://t.me/clickhouse_ru
    Ну тогда нужно думать, с какой точностью вам нужно отдавать результаты, сколько строк в одной секунде
  • https://t.me/clickhouse_ru
    @unamedrus #220947 07:04 PM, 03 Jun 2021
    Какое окно должно быть
  • https://t.me/clickhouse_ru
    А простой max - min насколько плох?
    Точность не сильно важна. Строк в секунде до десятка. Счётчик либо монотонно растет. Либо сбрасывается. В ноль и дальше опять растет
  • https://t.me/clickhouse_ru
    Если точность устраивает, то ок.

    Если строк на входе не очень много (до сотен тысяч) можно посмотреть на runningAccomulate
  • https://t.me/clickhouse_ru
    Ясно спсб
  • https://t.me/clickhouse_ru
    https://kb.altinity.com/altinity-kb-queries-and-syntax/cumulative-unique
    Тут не совсем оно, но почерпнуть что то можно

    Есть еще вариант с arrayJoin
  • https://t.me/clickhouse_ru
    сколько тасков хранить в ЗК для on cluster запросов. Если сервер оффлайн больше недели то он не выполнит свое on cluster задание
  • https://t.me/clickhouse_ru
    КМК в Яндексе clickhouse используется как embedded библиотека в некоторых проектах
  • https://t.me/clickhouse_ru
    не понял вопроса, вот почитайте мои примеры https://kb.altinity.com/altinity-kb-queries-and-syntax/ttl-group-by-examples
    возможно вам нужен optimize table deduplicate by (a,b,c)
    TTL GROUP BY Examples

    TTL GROUP BY -- a feature which allows to roll-up old rows. For example to reduce data granularity to one hour for rows older than one month.

  • https://t.me/clickhouse_ru
    Cache никогда не был российским
  • https://t.me/clickhouse_ru
    это скорее всего баг/иша в версии 21.5.5 , какая у вас версия КХ ?
  • https://t.me/clickhouse_ru
    будет заатачена везде, на второй реплике со временем
  • Я щас еще разок подумал, мне даже не надо никаких условий, мне надо просто удалить рандомные 99% старых строк
  • https://t.me/clickhouse_ru
    да, атомарность на уровне партов. Про миллион это лажа. Даже 3 строки могут создать 3 парта.
  • https://t.me/clickhouse_ru
    alter table delete .... where someid % 101 <> 0
  • А по TTL это можно сделать?
  • https://t.me/clickhouse_ru
    @Duolix ↶ Reply to #220957 #220963 07:47 PM, 03 Jun 2021
    Да, именно она. 21.5.5
  • https://t.me/clickhouse_ru
    можно, но тут думать надо, а мне лень думать.
  • https://t.me/clickhouse_ru
    вот лекарство

    cat /etc/clickhouse-server/users.d/min_bytes_to_use_mmap_io.xml
    <?xml version="1.0"?>
    <yandex>
    <profiles>
    <default>
    <min_bytes_to_use_mmap_io>0</min_bytes_to_use_mmap_io>
    </default>
    </profiles>
    </yandex>
  • https://t.me/clickhouse_ru
    @Duolix ↶ Reply to #220965 #220966 07:50 PM, 03 Jun 2021
    Спасибо!!
  • https://t.me/clickhouse_ru
    да нет конечно, прямо в MergeTree таблице полем
  • https://t.me/clickhouse_ru
    мутации вообще никакого отношения не имеют к инсертам, мутации скорее мержи. Мутации delete перезаписывают парты без удаленных строк, очень тяжелая операция, рекомендуется выполнять раз в году.
  • https://t.me/clickhouse_ru
    вам нужны SummingMergeTree и materialized view. Но да VictoriaMetrics более специализирован и надо его сначала смотреть
  • https://t.me/clickhouse_ru
    Introduction to the Mysteries of ClickHouse Replication

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

  • https://t.me/clickhouse_ru
    вычисляются и записываются на диск в момент инсертов и мержей. Вам нужен тип Alias
  • https://t.me/clickhouse_ru
    @hlexx ↶ Reply to #220971 #220973 08:00 PM, 03 Jun 2021
    Спасибо!
  • 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
    а вообще что подразумевается под апдейтом? Типа словарь? Может использовать ext.dictionary ?
  • https://t.me/clickhouse_ru
    Оставление комментария небольшого к записи
  • https://t.me/clickhouse_ru
    и сколько будет примерно в тысячах коммертариев всего?
  • https://t.me/clickhouse_ru
    Предположительно 1кк строк, и 10к комментариев
  • https://t.me/clickhouse_ru
    @mrpavelk #220987 09:40 PM, 03 Jun 2021
    Может есть смысл вместо join просто второй select делать из приложения и на фронте мержить
  • https://t.me/clickhouse_ru
    можно просто тогда сделать словарь и 10к коментариев брать оттуда. Словарь можно сделать поверх ReplacingMergeTree или поверх EmbeddedRocksDB.

    EmbeddedRocksDB достаточно быстр и для direct словарей если использовать NVME https://kb.altinity.com/engines/altinity-kb-embeddedrocksdb-and-dictionary
  • https://t.me/clickhouse_ru
    Спасибо, а словарь это по сути как коннектор, который в качестве источника использует внешние хранилища? Пока схема такая:
    1) pg_amqp коннектор
    2) кластер для пайплайна и препроцессинга
    3) кластер кидает в обменник из него батчинг в rabbitmq таблицу, из нее создаём materialized view с merge tree типом
    4) ??? словарь из pg таблиц с обновляемыми данными
    Но вот про словари не исследовали даже
  • https://t.me/clickhouse_ru
    Да. Можно pg в качестве источника для словаря
  • 04 June 2021 (160 messages)
  • Спасибо!
  • https://t.me/clickhouse_ru
    ну может быть, для CHYT ;) но они это не публикуют
  • @dmitry_mosin #220995 05:11 AM, 04 Jun 2021
    Все доброе утро.
    У меня вопрос, граничащий с абсурдом (т.е. жизненный).
    Как можно ходить в КХ из Delphi помимо http?

    Увидел clickhouse-odbc, попробую, но кмк - это тоже не быстро
  • https://t.me/clickhouse_ru
    ходите по HTTP
    в чем проблема?
    какая версия Delphi? эмбакадеровская или Delphi7 ?
  • @dmitry_mosin #220997 05:44 AM, 04 Jun 2021
    эмбаркадеровская, 10
  • @dmitry_mosin #220998 05:44 AM, 04 Jun 2021
    программеры сразу стонать начинают "вооот, это ответ же парсить наадо...."
  • @dmitry_mosin #220999 05:45 AM, 04 Jun 2021
    попробую подключить линкованным сервером к мсскулю
  • https://t.me/clickhouse_ru
    GitHub - gutierrydsn/http-request-for-Delphi: lib for do request http

    lib for do request http . Contribute to gutierrydsn/http-request-for-Delphi development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    дожили, программеры на Дельфи которые в 2021 году не знают библиотек которые нормально с HTTP работают?
    и гуглить не умеют?
  • @dmitry_mosin #221002 05:50 AM, 04 Jun 2021
    С хттп то они работают, с этим проблем нет.
    Им не нравится то - что ответ КХ надо распарсивать, там же (если я правильно понимаю) возвращается условная csv-шка?
  • https://t.me/clickhouse_ru
    ответ clickhouse делается в формате FORMAT JSON
    и парсить JSON этот очень просто
  • https://t.me/clickhouse_ru
    @BloodJazMan #221004 05:53 AM, 04 Jun 2021
    базара нет, если умеют с ODBC работать. пусть работают с ODBC
  • Просто, не спорю, но "это медленно же"
  • https://t.me/clickhouse_ru
    @kozyrevMikhail #221006 05:56 AM, 04 Jun 2021
    Добрый день
    Подскажите пожалуйста, есть ли у кх что то вроде linked server, как у ms sql?
    Если есть то где про это можно почитать?
  • Как я понял - https://github.com/ClickHouse/clickhouse-odbc
    и подключаешь как линкованный сервер
    GitHub - ClickHouse/clickhouse-odbc: ODBC driver for ClickHouse

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

  • Или наооборот? подключить другие сурсы к КХ?
    Тогда так https://clickhouse.tech/docs/ru/engines/table-engines/integrations/odbc/
    ODBC | Документация ClickHouse

    ODBC Позволяет ClickHouse подключаться к внешним базам данных с помощью ODBC. Чтобы использование ODBC было безопасным,

  • https://t.me/clickhouse_ru
    @kozyrevMikhail #221009 05:59 AM, 04 Jun 2021
    Надо из сидя на одной бд, к примеру делать select на другую
  • https://t.me/clickhouse_ru
    Вот это больше похоже)
  • там еще варианты, помимо богомерзкого одбц
  • https://t.me/clickhouse_ru
    https://github.com/viniciussanchez/RESTRequest4Delphi

    https://webdelphi.ru/2019/03/rabota-s-json-v-delphi-10-3-rio/

    вот две ссылки, поверх них какой нибудь враппер написать и сделать клиент, это работа на 1-2 дня...
    GitHub - viniciussanchez/RESTRequest4Delphi: API to consume REST services written in any programming language with support to Lazarus and Delphi

    API to consume REST services written in any programming language with support to Lazarus and Delphi - GitHub - viniciussanchez/RESTRequest4Delphi: API to consume REST services written in any progra...

  • Спасибо, попробую заставить их вникнуть
  • https://t.me/clickhouse_ru
    @dbalashov #221014 06:01 AM, 04 Jun 2021
    я вроде через remote подключал удаленный сервер
  • https://t.me/clickhouse_ru
    "сидя на одной БД" имеется ввиду с одного сервера ClickHouse на другой ClickHouse запросы делать?
    https://clickhouse.tech/docs/en/sql-reference/table-functions/remote/
    remote | ClickHouse Documentation

    remote, remoteSecure Allows to access remote servers without creating a Distributed table. remoteSecure - same as remote

  • https://t.me/clickhouse_ru
    Во! Да, то что надо, спасибо!
  • https://t.me/clickhouse_ru
    ну кстати если напишете HTTP клиент на delphi не забудьте скинуть мне ссылку
    или сделать pull request вот на этот файл
    https://github.com/ClickHouse/ClickHouse/blob/master/docs/en/interfaces/third-party/client-libraries.md
    ClickHouse/client-libraries.md at master · ClickHouse/ClickHouse

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

  • Хорошо. Но это если получится их заставить, они ж в вечном цейтноте
  • https://t.me/clickhouse_ru
    либо вас дурят =)
    либо вашему продукту clickhouse не нужен вообще =)
    либо у вас не delphi программеры, а любители рассказывать "какой дельфи старый и неудобный" ;)
    либо кучка старперов которым программировать уже чисто физически тяжело...
  • https://t.me/clickhouse_ru
    @75280400 #221020 06:11 AM, 04 Jun 2021
    кто нибудь jdbc-bridge настраивал?
    В какую папку кидать драйвера ?
  • Думаю истина гдето посередине %)
  • Только старым и неудобным его не называют
  • https://t.me/clickhouse_ru
    @newsettler #221024 08:10 AM, 04 Jun 2021
    Уважаемые, подскажите, что надо поменять? После подъема версии c 20.6 на 21.3 clickhouse, размещённый в виртуалке внутри RHV начал ругаться. Точнее, в логи пишет SELinux: SELinux is preventing /usr/bin/qemu-ga from using the dac_read_search capability. Конфиг кликхауса не менял.
  • https://t.me/clickhouse_ru
    https://github.com/ClickHouse/ClickHouse/search?q=dac_read_search

    у вас там нету же никакого Kerberos и HDFS?

    вы гуглили?
    https://danwalsh.livejournal.com/77140.html
    Search · dac_read_search · 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
    @BloodJazMan #221026 08:16 AM, 04 Jun 2021
    где то видимо clickhouse зачем то захотел читать файлы без проверки прав доступа
    ну для скорости наверное...
  • https://t.me/clickhouse_ru
    Ух ты, а ещё кто делает новые вещи на дельфи?
  • они там живут себе в полностью параллельной реальности))
  • @dnzhirnov #221030 08:51 AM, 04 Jun 2021
    Коллеги, добрый день! Можно ли как то с помощью VIEW добиться аналога создания olap куба. Вот, что я имею ввиду:
    У меня есть запрос с параметрами в Redash (основной параметр -временной промежуток), который группирует данные и выводит их в должном виде. Я могу создать View из этого, но как можно передавать параметр времени? или это уже мои фантазии...
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @unamedrus #221033 08:52 AM, 04 Jun 2021
    Костыль правда
  • https://t.me/clickhouse_ru
    ну, это как 1С но на западе =)
    то есть уже далеко не main stream
    но наверняка нишевые адепты остались
    иначе емакадера развалилась бы нафиг...
  • у меня цель то в общем простая, создать такую View, к которой можно обращаться, подключаясь из Excel
  • @dnzhirnov #221036 08:54 AM, 04 Jun 2021
    Но как передавать параметр в таком случае...
  • https://t.me/clickhouse_ru
    Смотрели в таком случае?
    https://altinity.com/blog/accessing-clickhouse-from-excel-using-mondrian-rolap-engine
    Accessing ClickHouse from Excel using Mondrian ROLAP engine

    ClickHouse is a very powerful database for analytics. Microsoft Excel is one of the world’s most popular business applications. There are several ways to bring ClickHouse data to Excel spreadsheets. In this article we will explain how to connect Excel to ClickHouse using the Mondrian OLAP server. This approach has been pioneered in Sergei Semenkov’s[...]

  • https://t.me/clickhouse_ru
    @unamedrus #221038 08:55 AM, 04 Jun 2021
    Ексель как раз одна из немногих штук, что работает
  • https://t.me/clickhouse_ru
    нужен OLAP
    подключайтесь через OLAP
    ;)

    но проще тупо по ODBC через запрос в лист отдельный данные вытащить, а потом уже их в pivot таблице крутить и фильтровать
  • Согласен, этот вариант у меня работает, просто хотел использовать свой сложный запрос с кучей группировок для простых пользователей, но сложность как раз в том, что если я создам view, то передать параметр при подключении через эксель будет сложно...
  • Спасибо, буду изучать)
  • https://t.me/clickhouse_ru
    только через VBA какой нибудь
    https://support.microsoft.com/en-us/office/customize-a-parameter-query-addf7cb7-ddf0-442f-a60c-cd7280e201bd#:~:text=with%20the%20query.-,On%20the%20Data%20tab%2C%20in%20the,%26%20Connections%20group%2C%20click%20Properties.&text=click%20Connection%20Properties%20.-,In%20the%20Connection%20Properties%20dialog%20box%2C%20click%20the%20Definition%20tab,value%20from%20the%20following%20cell.
    Customize a parameter query

    You can customize a Microsoft Query parameter query by changing the prompt, by using data from a cell as the prompt, or by using a constant.

  • Спасибо за помощь, понял, что вопрос возможно решаемый...
  • у нас здоровенное наследие, все переписать невозможно, поэтому есть три дельфиниста, которые продолжают пилить, озабоченно смотря по сторонам
  • https://t.me/clickhouse_ru
    кобол наших дней
  • @133452245 #221047 09:26 AM, 04 Jun 2021
    в научных пакетах до сих пор многое живет на коде из 80-х
  • @133452245 #221048 09:26 AM, 04 Jun 2021
    на языках название которых многие даже не знают
  • https://t.me/clickhouse_ru
    @ikkalinkin #221049 09:27 AM, 04 Jun 2021
    Подскажите, а как можно преобразовать тип Tuple из одинаковых типов в Array?
  • https://t.me/clickhouse_ru
    Найдено. Каталоги, указанные в disks и используемые в storage policy он так читает. Действительно, помимо повышения версии, еще диск добавили.
  • https://t.me/clickhouse_ru
    @399999446 #221051 09:46 AM, 04 Jun 2021
    Всем привет
    Нужно выгрузить колонку,содержащую json строку
    Использую для выгрузки формат format JSONEachRow

    В полученном файле все кавычки экранированы слешами
    пример \"email_domain\":\"gmail.com\"
    Как уйти от слешей,чтоб возвращался валидный json,может другой формат или опция?
  • https://t.me/clickhouse_ru
    круто думаю стоит issue на github завести, с меткой question
  • https://t.me/clickhouse_ru
    Input and Output Formats | ClickHouse Documentation

    Formats for Input and Output Data ClickHouse can accept and return data in various formats. A format supported for input

  • https://t.me/clickhouse_ru
    @dzarlax #221054 10:14 AM, 04 Jun 2021
    А кто-нибудь знает как обойти ошибку
    DB::Exception: Support for named sessions is not enabled
    ?
    Включить поддержку на сервере - возможности нет, а так - датагрип работать не хочет(
  • https://t.me/clickhouse_ru
    Пробовал этот формат,получал след ошибку (наверное этот формат не для выгрузки,а только для загрузки)
    DB::Exception: Format JSONAsString is not suitable for output
  • https://t.me/clickhouse_ru
    Вам нужно сделать валидный JSON весь или то как делает JSONEachRow нормально?
    TSVRaw пробывали?
  • https://t.me/clickhouse_ru
    Как JSONEachRow нормально было бы

    Попробовал TSVRaw,выгрузилось без экранирования,спасибо
  • https://t.me/clickhouse_ru
    поискать можно ли в DataGrip сессии выключить
  • https://t.me/clickhouse_ru
    @dmitry_lukyanov #221062 10:39 AM, 04 Jun 2021
    Добрый день,

    Подскажите, в чём может быть причина ошибки? clickhouse-server не стартует.

    2021.06.04 13:34:02.339473 [ 3460 ] {} <Error> Application: DB::Exception: Listen [::]:8123 failed: Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = DNS error: EAI: Address family for hostname not supported (version 21.5.6.6 (official build))

    В config.xml пробовал разные варианты прописывать в listen_host, но ничего не меняется...
  • https://t.me/clickhouse_ru
    @dmitry_lukyanov #221063 10:40 AM, 04 Jun 2021
    IPV6 на сервере отключен вообще
  • https://t.me/clickhouse_ru
    Где кх запускаете, есть поддержка ipv6?
  • https://t.me/clickhouse_ru
    @unamedrus #221065 10:40 AM, 04 Jun 2021
    Ага
  • https://t.me/clickhouse_ru
    @unamedrus #221066 10:41 AM, 04 Jun 2021
    <listen_try>1</listen_try>
  • https://t.me/clickhouse_ru
    @unamedrus #221067 10:41 AM, 04 Jun 2021
    Добавьте настройку
  • https://t.me/clickhouse_ru
    IPV6 нет. Но в конфиге я прописываю так:

    <listen_host>0.0.0.0</listen_host>
  • https://t.me/clickhouse_ru
    Помогло. Та ошибка ушла, но теперь другая появилась.

    <Error> Application: DB::Exception: No servers started (add valid listen_host and 'tcp_port' or 'http_port' to configuration file.)
  • https://t.me/clickhouse_ru
    @unamedrus #221070 10:43 AM, 04 Jun 2021
    Listen [::]:8123

    Ну кх явно пытается на ipv6 слушать
  • https://t.me/clickhouse_ru
    А что вы конкретно в конфиге меняли?
  • https://t.me/clickhouse_ru
    Ну, вот как написано, так и прописал. Сейчас прописал название хоста в listen_host, но тоже не помогло
  • https://t.me/clickhouse_ru
    'tcp_port' or 'http_port'
    Не комментировали?
  • https://t.me/clickhouse_ru
    Нет

    <http_port>8123</http_port>

    <!-- Port for interaction by native protocol with:
    - clickhouse-client and other native ClickHouse tools (clickhouse-benchmark, clickhouse-copier);
    - clickhouse-server with other clickhouse-servers for distributed query processing;
    - ClickHouse drivers and applications supporting native protocol
    (this protocol is also informally called as "the TCP protocol");
    See also 'tcp_port_secure' for secure connections.
    -->
    <tcp_port>9000</tcp_port>
  • https://t.me/clickhouse_ru
    @unamedrus #221075 10:46 AM, 04 Jun 2021
    clickhouse extract-from-config --config-file /etc/clickhouse-server/config.xml --key listen_host
  • https://t.me/clickhouse_ru
    @unamedrus #221076 10:46 AM, 04 Jun 2021
    А если так?
  • @KevinMort #221077 10:47 AM, 04 Jun 2021
    На что он ругается?
  • https://t.me/clickhouse_ru
    # clickhouse extract-from-config --config-file /etc/clickhouse-server/config.xml --key listen_host
    ::

    wtf? Откуда он это берёт?
  • https://t.me/clickhouse_ru
    @dmitry_lukyanov #221079 10:48 AM, 04 Jun 2021
    Вот, что нашёл. В папке /etc/clickhouse-server/config.d есть файл listen.xml

    В нём:

    <yandex>
    <listen_host>::</listen_host>
    </yandex>
  • https://t.me/clickhouse_ru
    @dmitry_lukyanov #221080 10:49 AM, 04 Jun 2021
    Поменял на

    <yandex>
    <listen_host>0.0.0.0</listen_host>
    </yandex>
  • https://t.me/clickhouse_ru
    @dmitry_lukyanov #221081 10:53 AM, 04 Jun 2021
    Вроде, запустился клик. Пытаюсь подключиться теперь...

    clickhouse-client --host srv-servername-clickhouse01
    ClickHouse client version 21.5.6.6 (official build).
    Connecting to srv-servername-clickhouse01:9000 as user default.
    Code: 516. DB::Exception: Received from srv-servername-clickhouse01:9000. DB::Exception: default: Authentication failed: password is incorrect or there is no user with such name.
  • https://t.me/clickhouse_ru
    @dmitry_lukyanov #221082 10:55 AM, 04 Jun 2021
    Вроде, попал в БД:

    SELECT 1;

    SELECT 1

    Query id: 899c9dc8-ce30-4cfa-a87f-fb77fc35f416

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

    1 rows in set. Elapsed: 0.001 sec.

    @unamedrus спасибо за помощь 👍🏻
  • https://t.me/clickhouse_ru
    @aleksey1302 #221083 11:11 AM, 04 Jun 2021
    Всем привет. Вопрос. При перезапуске clickhouse все внешние словали обнулятся?
  • https://t.me/clickhouse_ru
    да, они в памяти хранятся
    загружаться будут при попытке сделать dictGet .. или после LIFETIME окна
    или после SYSTEM RELOAD DICTIONARIES можно сделать принудительно
  • https://t.me/clickhouse_ru
    thx
  • https://t.me/clickhouse_ru
    @kotpeter #221086 12:09 PM, 04 Jun 2021
    Всем привет!

    Создаю табличку с ENGINE=S3. Не хочу указывать ключи в DDL таблицы. Подскажите, пожалуйста, где их правильно разместить в storage_configuration. Видел примеры, как создают S3 диск и пишут ключи туда, но это ведь не то.
  • https://t.me/clickhouse_ru
    Можно ключи прописать для определенного пути/бакета
  • https://t.me/clickhouse_ru
    @unamedrus #221088 12:11 PM, 04 Jun 2021
    How to query data on AWS S3 using ClickHouse S3 table engine and table function in a secure way? · Issue #18721 · ClickHouse/ClickHouse

    I'm using ClickHouse 20.12.5, and I would like to query the data on Amazon S3. The storage is supported with table engine and table function, but it needs AWS Access Key and Secret Key for ...

  • https://t.me/clickhouse_ru
    @solard #221089 12:11 PM, 04 Jun 2021
    Народ а подскажите как можно описать в Altinity Operator SQL для создания БД при развертывании кластера. В других реализациях что я видел это bash скриптик который в init.d подкидывается
  • https://t.me/clickhouse_ru
    премного благодарен за пример
  • https://t.me/clickhouse_ru
    @pic_Nick77 #221091 12:24 PM, 04 Jun 2021
    Подскажите, пожалуйста, будет ли существенный профит в использовании для таблицы движка JOIN вместо MergeTree, если таблица используется как ANY LEFT JOIN и в ней около 10 тыс. записей?
  • https://t.me/clickhouse_ru
    Смотря как часто используется, возможн вообще может ее запихать в словарь
  • https://t.me/clickhouse_ru
    @ilevd #221093 12:28 PM, 04 Jun 2021
    А в 20.8.4.11 есть способ форснуть загрузку словарей? reload dicitonary/dictionaries не доступны, а после создания через ddl в system.dictionaries- NOT_LOADED и запросы валятся с external dictionary .. not found
  • https://t.me/clickhouse_ru
    В словарь? Там за раз пару десятков полей вытаскивается.
  • https://t.me/clickhouse_ru
    А, ну тогда вопрос как часто используется в запросах
  • https://t.me/clickhouse_ru
    В смысле, частота обращений в секунду/минуту?
  • https://t.me/clickhouse_ru
    @pic_Nick77 #221097 12:31 PM, 04 Jun 2021
    Это пока трудно предугадать
  • https://t.me/clickhouse_ru
    @unamedrus #221098 12:31 PM, 04 Jun 2021
    Да
  • https://t.me/clickhouse_ru
    @pic_Nick77 #221099 12:32 PM, 04 Jun 2021
    Ну, т.е. JOIN всегда в памяти сидит, а MergeTree будет каждый раз заново читаться?
  • https://t.me/clickhouse_ru
    @unamedrus #221100 12:32 PM, 04 Jun 2021
    Да и строить хештаблицу
  • https://t.me/clickhouse_ru
    @lesikv #221101 12:32 PM, 04 Jun 2021
    привет! подскажите плиз как включить логи в Datagrip или как получить понимание сколько читается данных в запросе?
  • https://t.me/clickhouse_ru
    @unamedrus #221102 12:32 PM, 04 Jun 2021
    если запросы очень часто выполняются, то это может быть проблемой
  • https://t.me/clickhouse_ru
    Ясно. Спасибо!
  • @archangel37 #221105 01:25 PM, 04 Jun 2021
    Всем привет!
    есть таблица условно
    key | datetime | longitude | latitude
    таблица ENGINE=MergeTree
    есть ли какой-то способ для значений по строкам агрегировать координаты через greatCircleDistance(lon1Deg, lat1Deg, lon2Deg, lat2Deg)?

    т.е. условно считаем, что все записи это последовательная запись гео-координат и нужно посчитать суммарное пройденное расстояние на поверхности земли
  • https://t.me/clickhouse_ru
    @ajIeks #221106 01:27 PM, 04 Jun 2021
    Привет, всем, как можно узнать на какой параметр ругается при старте?
    Configuration file '' isn't readable by user with id '101'
    обновляюсь с 20.11 до 21.5 😕
  • https://t.me/clickhouse_ru
    config
    <dictionaries_lazy_load>false</dictionaries_lazy_load>
  • https://t.me/clickhouse_ru
    непонял про "external dictionary .. not found "
  • https://t.me/clickhouse_ru
    @ajIeks #221111 01:30 PM, 04 Jun 2021
    нашел, это похож что-то докер 😕
  • https://t.me/clickhouse_ru
    между чем и чем? между каждой строки с каждой?
  • последовательно... условно данные льются и для простоты даты считаем как 1,2,3,4,...
    и каждое время имеет свою координату - агрегация 1->2->3->4..... т.е. сумма последовательных расстояний
  • https://t.me/clickhouse_ru
    нет не получится, в ETL надо делать
  • @archangel37 #221115 01:34 PM, 04 Jun 2021
    понял, спасибо
  • https://t.me/clickhouse_ru
    @ilevd ↶ Reply to #221108 #221116 01:35 PM, 04 Jun 2021
    select dictGetString('dict_oe', 'org_unit', tuple('338017a1-3c75-411a-9b22-cf3082073637'))

    SELECT dictGetString('dict_oe', 'org_unit', tuple('338017a1-3c75-411a-9b22-cf3082073637'))

    Received exception from server (version 20.8.4):
    Code: 36. DB::Exception: Received from localhost:9000. DB::Exception: external dictionary 'dict_oe' not found.
    Поставил меньшие - LIFETIME(MIN 2 MAX 3) и вроде стало норм обрабатывать
  • https://t.me/clickhouse_ru
    звучит как баг.

    20.8.4 это очень ранний релиз. Обновитесь до 20.8.18.32
  • https://t.me/clickhouse_ru
    @aleksey1302 #221118 02:19 PM, 04 Jun 2021
    Можно ли как-то изящнее написать проверку на пустое значение, чтобы если пустое отдавать null?
    if (_provider = '', null, _provider) as provider
  • https://t.me/clickhouse_ru
    nullIf
  • https://t.me/clickhouse_ru
    Класс, спасибо
  • https://t.me/clickhouse_ru
    @AnKochem #221121 02:35 PM, 04 Jun 2021
    Подскажите, пожалуйста, можно ли переносить таблицы из Ordinary базы в Atomic?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @unamedrus #221123 02:36 PM, 04 Jun 2021
    Тут в другую сторону, но идея таже
  • https://t.me/clickhouse_ru
    @corbaro #221125 02:40 PM, 04 Jun 2021
    Всем привет, можете подсказать как составить запрос?
    вопрос скорее больше по SQL

    есть таблица в сlickhouse
    id | Price | Time

    На вход два обязательных параметра, даты from и to
    нужно получить цену когда Time = from и цену Time = to

    т.е. результат такой

    id | PriceFrom | PriceTo
  • https://t.me/clickhouse_ru
    у меня проблема с Distibuted таблицами

    rename table ordinary_db.distributed_table to atomic_db.distributed_table

    Code: 1000. DB::Exception: Received from clickhouse-server:9000. DB::Exception: File not found: /var/lib/clickhouse/data/ordinary_db/distributed_table

    хотя папка на месте...
  • https://t.me/clickhouse_ru
    anyIf(Price,Time=from) as PriceFrom,anyIf(Price,Time=to as PriceTo
  • https://t.me/clickhouse_ru
    Да Distributed просто пересоздать можно
  • https://t.me/clickhouse_ru
    @AnKochem #221129 02:43 PM, 04 Jun 2021
    можно, но хотелось перенести. View переносятся спокойно, например )
  • https://t.me/clickhouse_ru
    @unamedrus #221130 02:48 PM, 04 Jun 2021
    Тогда нужно думать, и кмк ручных действий будет много, проще было бы пересоздать
  • https://t.me/clickhouse_ru
    @AnKochem #221131 02:49 PM, 04 Jun 2021
    Ну, в этом и проблема, хотелось сделать rename и все (потому что пишу скрипт переноса большого числа таблиц). Теперь скрипт будет сложнее. А жаль, похоже на багу)
  • https://t.me/clickhouse_ru
    @unamedrus #221132 02:50 PM, 04 Jun 2021
    Ну написать на гитхаб ничего не мешает :)
  • https://t.me/clickhouse_ru
    Сработало, Большущее вам спасибо
  • https://t.me/clickhouse_ru
    @Duolix #221134 02:54 PM, 04 Jun 2021
    Привет
    Подскажите пож, столкнулся с каким то странным поведением left join

    Select month, col1, col2, sum(col3)
    From table_1
    Left join table_2 on (month, k1, k2, k3, k4)
    Where table_1.col2 = 1 and table_1.month = 202112

    В присоединяемой таблице значений по фильтрующему месяцу нет.
    А итог выводИт почему то из таблицы 1 значение col2 не равному фильтру (не только значение 1, но и 2)
  • https://t.me/clickhouse_ru
    @Duolix ↶ Reply to #221134 #221135 02:55 PM, 04 Jun 2021
    Притом, если убрать фильтр по месяцу, то выводит корректно

    Это я не вижу ошибку или баг?
  • https://t.me/clickhouse_ru
    @Duolix #221137 03:01 PM, 04 Jun 2021
    Максимально упростил для наглядности
  • https://t.me/clickhouse_ru
    @ilevd ↶ Reply to #221117 #221138 03:30 PM, 04 Jun 2021
    Что-то всё равно:
    clickhouse-client --query="select * from system.dictionaries Format Vertical"
    Row 1:
    ──────
    database:
    name: dict_oe
    uuid: 00000000-0000-0000-0000-000000000000
    status: NOT_LOADED
    origin: /etc/clickhouse-server/oe_dictionary.xml
    type:
    key:
    attribute.names: []
    attribute.types: []
    bytes_allocated: 0
    query_count: 0
    hit_rate: 0
    element_count: 0
    load_factor: 0
    source:
    lifetime_min: 0
    lifetime_max: 0
    loading_start_time: 1970-01-01 00:00:00
    last_successful_update_time: 1970-01-01 00:00:00
    loading_duration: 0
    last_exception:

    clickhouse-client --query="select dictGetString('default.dict_oe', 'org_unit', tuple('338017a1-3c75-411a-9b22-cf3082073637'))"
    Received exception from server (version 20.8.18):
    Code: 36. DB::Exception: Received from localhost:9000. DB::Exception: external dictionary 'default.dict_oe' not found.
  • https://t.me/clickhouse_ru
    @ilevd #221139 03:32 PM, 04 Jun 2021
    Хм, может потому что поле database пустое почему-то
  • https://t.me/clickhouse_ru
    вкладка "output" или добавьте explain перед запросом, смотря что вам нужно
  • https://t.me/clickhouse_ru
    @lesikv ↶ Reply to #221140 #221141 03:39 PM, 04 Jun 2021
    Explain не работает
    Версия старая
    Мне нужен план запроса
  • https://t.me/clickhouse_ru
    Нет там. Только через CLI
  • https://t.me/clickhouse_ru
    @lesikv ↶ Reply to #221142 #221143 03:45 PM, 04 Jun 2021
    Поняла, спасибо
  • https://t.me/clickhouse_ru
    значит вашей версии как минимум полтора года, попробуйте обновиться хотя бы на LTS (21.3)
  • https://t.me/clickhouse_ru
    словарь через XML создан?
    тгда у него имя просто dict_oe
    без default
    и dictGetString должен сработать
  • https://t.me/clickhouse_ru
    @ilevd ↶ Reply to #221146 #221147 03:58 PM, 04 Jun 2021
    Уй, спасибо, сработало
  • @SonFire #221148 04:00 PM, 04 Jun 2021
    Подскажите как мне из JSON извлечь уникальные значения?
    DISTINCT(JSONExtractString(eventParameters, 'message_type')) - типа такого, только для clickhouse
  • @abatenev #221149 04:05 PM, 04 Jun 2021
    Народ!
    Я вот только присоединился тут... могу задать глупый вопрос, не злитесь )

    Очень нужно быстро прокачать группу администраторов (часть из них тут сидит) на предмет кластеризации кликхауза... как добавлять ноды правильно, как удалять, что происходит когда вылетает нода, как переезжают данные в случае масштабирования (добавления)... в общем нежен очень качественный (админы толковые, просто именно с кликхаузом нет опыта) персональный тренинг для 2-4х админов.
    Где можно такое найти? буду благодарен, если кто-то подскажет...
  • https://t.me/clickhouse_ru
    arrayJoin(groupArrayUniq(JSONExtact(...)))
    или ARRAY JOIN
  • Спасибо
  • https://t.me/clickhouse_ru
    altinity.com
    обратитесь
    мы проводим тренинги на русском
    https://altinity.com/clickhouse-training/
    ClickHouse Training Built For Your Use Case — Altinity

    Design high-performance analytic apps, optimize SQL queries, set up secure ClickHouse clusters, replicate data with Altinity’s ClickHouse training series. Lab exercises included!

  • https://t.me/clickhouse_ru
    так он не default. Он просто dict_oe. XML словари не имееют базы
  • https://t.me/clickhouse_ru
    еще нас бы всех то-нибудь этому научил
  • https://t.me/clickhouse_ru
    а если поле вычисляемое через dictget назвать не Version, и во внешенм запросе вывести оба (version)?
  • Я готов заплатить за ускоренное получение знаний :) и я уже получил 3 фидбэка в личку! (Достойных!)
  • https://t.me/clickhouse_ru
    @Duolix ↶ Reply to #221159 #221166 07:13 PM, 04 Jun 2021
    Там в словаре version в конце пробел , как раз для этого )
    При попытке вывода с двух таблиц версии - ругается что нет такого столбца во второй таблице
    Его там и правда нет (по полному ключу в using совпадений в правой нет)
  • https://t.me/clickhouse_ru
    @Duolix ↶ Reply to #221166 #221168 07:15 PM, 04 Jun 2021
    Самое забавное, что если убрать в фильтре месяц, то он не выводит лишнее значение версии
  • https://t.me/clickhouse_ru
    а если убрать join то что?
  • https://t.me/clickhouse_ru
    @Duolix ↶ Reply to #221169 #221170 07:17 PM, 04 Jun 2021
    Если вообще не джойнить таблицу, то уникальное значение одно, которое в фильтре
  • https://t.me/clickhouse_ru
    @den_crane #221171 07:18 PM, 04 Jun 2021
    или написать t1.Month -- тут ошибка кстати должно быть, что поле ambiguous, оно в двух таблицах
  • https://t.me/clickhouse_ru
    @Duolix ↶ Reply to #221171 #221172 07:19 PM, 04 Jun 2021
    Ее кстати не было, и с t1 то же самое (
  • https://t.me/clickhouse_ru
    @den_crane #221174 07:21 PM, 04 Jun 2021
    да баг тогда
  • https://t.me/clickhouse_ru
    какая версия КХ ?
  • https://t.me/clickhouse_ru
    @Duolix ↶ Reply to #221175 #221176 07:52 PM, 04 Jun 2021
    21.5.5.12
  • 05 June 2021 (28 messages)
  • https://t.me/clickhouse_ru
    @floyd_rose #221188 10:39 AM, 05 Jun 2021
    /report
  • https://t.me/clickhouse_ru
    @mr_patrickme #221191 11:17 AM, 05 Jun 2021
    Внезапно обнаружил что у if всегда выполняются оба выражаения
    if 
    Условное выражение. В отличии от большинства систем, ClickHouse всегда считает оба выражения then и else.
    https://clickhouse.tech/docs/ru/sql-reference/functions/conditional-functions/#uslovnye-funktsii

    Как можно это обойти
    Проблема в том, что в моем случае иф базируется на знаниях словаря (памяти), и только если там нет ничего, начинаются операции со строками, в else.
    Но это все получается бесполезно если выполняются оба условия
    Условные функции | Документация ClickHouse

    Условные функции if Условное выражение. В отличие от большинства систем, ClickHouse всегда считает оба выражения then и

  • https://t.me/clickhouse_ru
    @Duolix ↶ Reply to #221175 #221192 11:34 AM, 05 Jun 2021
    Решил проблему. Помогает prewhere. В этом случае не багует
  • https://t.me/clickhouse_ru
    @vdimir ↶ Reply to #221192 #221194 01:12 PM, 05 Jun 2021
    Можно посмотреть explain syntax для оригинального запроса, там есть оптимизации на уровне синтаксиса, возможно они что-то ломают.

    А можете сделать минимальный пример, на котором воспроизводится проблема? CREATE запрос, INSERT нескольких строк данных и SELECT
  • https://t.me/clickhouse_ru
    @jitbit #221196 01:21 PM, 05 Jun 2021
    всем привет. только у меня https://clickhouse.tech/ не открывается _в ms edge_ или у вас тоже?

    err code: STATUS_BREAKPOINT
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @jitbit ↶ Reply to #221197 #221198 02:03 PM, 05 Jun 2021
    спасиб. уж собрался баг-репорт их фронтам писать... видимо чтото у меня
  • @SonFire #221199 03:05 PM, 05 Jun 2021
    Как мне сразу в запросе отобрать элементы с bOrder = 1 ?
    Select sessionTimestamp, groupArray(eventName) as gEventName, arrayExists(x->(x='bOrder'),gEventName) AS bOrder
  • https://t.me/clickhouse_ru
    WHERE bOrder=1
    не получается?
  • https://t.me/clickhouse_ru
    @enclaved #221208 05:38 PM, 05 Jun 2021
    Подскажите по ReplacingMergeTree: оно не гарантирует отсутствие дублей - речь лишь о их физическом наличии на диске, или в селектах тоже могут быть дубли?
  • https://t.me/clickhouse_ru
    В селектах тоже дубли
  • https://t.me/clickhouse_ru
    @enclaved #221210 05:39 PM, 05 Jun 2021
    У меня одна или две строчки на событие, и если есть вторая, то первую выбирать не нужно, она неактуальна. Как это лучше сделать?
  • https://t.me/clickhouse_ru
    @enclaved #221211 05:40 PM, 05 Jun 2021
    Там есть колонка sequence: 0 или 1
  • https://t.me/clickhouse_ru
  • @vasya_p0pkin #221213 06:30 PM, 05 Jun 2021
    Подскажите, пытаюсь настроить predefined http. В конфиге всё без ошибок, но при попытке сделать запрос http пишет что handler не существует. Делал по примеру из документации. Не знаю куда копать
  • @s4851 #221214 06:35 PM, 05 Jun 2021
    Текст запроса и текст ответа.
    Http работает из коробки, так что проблем быть не должно
  • Localhost:8123/hi error 404. There is no handle /hi. И это не просто http, а созданная мной конечная точка. Обычный http запрос работает типа /ping
  • https://t.me/clickhouse_ru
    @Duolix ↶ Reply to #221211 #221216 07:48 PM, 05 Jun 2021
    Может argMax() поможет?
  • https://t.me/clickhouse_ru
    @Duolix ↶ Reply to #221216 #221217 07:48 PM, 05 Jun 2021
    По полю sequence
  • Нет, агрегирования функция в запросе. Выдает ошибку
  • https://t.me/clickhouse_ru
    @Duolix ↶ Reply to #221194 #221220 08:11 PM, 05 Jun 2021
    Смоделировать ошибку не смог(
    Когда инсертил в тестовые таблицы значения из изначальной - ломалось, когда через values - норм...
  • https://t.me/clickhouse_ru
    @newsettler #221221 08:24 PM, 05 Jun 2021
    Подскажите, в какой из системных таблиц можно посмотреть проблему вставки через materialized view? Периодически, при повышении потока вставки в основную таблицу, не проходит вставка.
  • https://t.me/clickhouse_ru
    Ни в какой. Только в логах. На самом деле это очень сложно представить. Это возможно только если запрос падает с ошибкой. Из-за багов иногда запросы падают молча.
  • https://t.me/clickhouse_ru
    @newsettler #221223 08:26 PM, 05 Jun 2021
    Схема простая: данные идут в долгосрочную таблицу для архива и, через materialized view, в краткосрочную для частых широких запросов.
  • https://t.me/clickhouse_ru
    В логах запросов или поднимать до debug уровень системного журнала процесса?
  • https://t.me/clickhouse_ru
    Я вообще никогда ниже trace не включаю.
  • https://t.me/clickhouse_ru
    у меня тоже вкладки chromium с clickhouse.tech почему-то стали падать :) конечно абсолютно точно проблема на моей стороне, надо разбираться, но больше нигде не воспроизводится
  • https://t.me/clickhouse_ru
  • 06 June 2021 (54 messages)
  • Такая же фигня. В хроме - падают, в фф - норм
  • @l_dar #221230 08:37 AM, 06 Jun 2021
    Привет. Столкнулся с не понятием)
    Создал таблицу SummingMergeTree, складываю туда данные, они схлопываются. Я почему то предполагал что схлопывание идет через any(), типа в одной колонке строки есть значение, в других строках там нет т. Е null. При схлопывание, колонка будет иметь значение, не null... оказалось, что берет любое значение даже null.
    Какой движок посоветуете для моих целей? AggregatingMergeTree по такому же принципу схлопывается?
  • @l_dar #221231 08:42 AM, 06 Jun 2021
    по идее мне ссуммировать ничего не надо, мне нужно просто чтоб строки схлопывались по значениям any() не учитывая null
  • DB::Exception: Aggregate function groupArray(eventName) is found in WHERE in query: While processing groupArray(eventName) AS gEventName (version 21.5.6.6 (official build))
  • https://t.me/clickhouse_ru
    а есть какое нибудь поле типа sessionid ?
  • sessionTimestamp
  • https://t.me/clickhouse_ru
    @75280400 #221241 02:20 PM, 06 Jun 2021
    чем просто timestamp не устраивает ?
  • https://t.me/clickhouse_ru
    это не sesionid

    слишком мало уникальности и слишком много дублей

    придется делать через отдельную таблицу
    CREATE TABLE order_sessions ...;
    INSERT INTO order_sessions Select sessionTimestamp, groupArray(eventName) as gEventName, arrayExists(x->(x='bOrder'),gEventName) AS bOrder;

    SELECT * FROM order_session WHERE bOrder=1;
  • Дублей нету почти
  • А под запросами не правильно будет писать? WITH
  • https://t.me/clickhouse_ru
    подзапросы памяти много жрать будут...
    в принципе если памяти много, то можно вот так

    SELECT * FROM (SELECT ... ) WHERE bOrder=1
  • Пока локальное все и много памяти.... И правильнее через `WITH или `SELECT * FROM (SELECT ... )?
  • https://t.me/clickhouse_ru
    а разве не в having должно быть условие на агр. функцию?
  • https://t.me/clickhouse_ru
    это все равно стримится, ни при чем тут память
  • Да работает, но теперь памяти не хватает))
    Memory limit (for query) exceeded: would use 9.32 GiB (attempt to allocate chunk of 137578518 bytes), maximum: 9.31 GiB: While executing AggregatingTransform
  • https://t.me/clickhouse_ru
    это просто для облегчения понимания я так написал, надо поправить доку, там любое значение берется.
    используйте SimpleAggregateFunction(any,Nullable(String))
  • https://t.me/clickhouse_ru
    версия КХ ? И без having типа работало?
  • 21.5.6.6 без него вообще не работало
  • https://t.me/clickhouse_ru
    set max_bytes_before_external_group_by='5G'
  • Не помогает,
    e.displayText() = DB::Exception: Memory limit (for query) exceeded: would use 9.31 GiB (attempt to allocate chunk of 137191537 bytes), maximum: 9.31 GiB: While executing AggregatingTransform
  • @SonFire #221257 02:51 PM, 06 Jun 2021
    Проще подзапросами сделать. С ними все работает, но код выглядит не очень
  • https://t.me/clickhouse_ru
    странно, а если set min_bytes_to_use_mmap_io=0; ?
  • Тоже самое
  • https://t.me/clickhouse_ru
    вы set делаете в той же сессии?
  • Упс нет😅
  • @SonFire #221262 02:53 PM, 06 Jun 2021
    Понял, ошибку. Спасибо
  • https://t.me/clickhouse_ru
    что стримится groupArray?
  • @l_dar ↶ Reply to #221252 #221264 03:16 PM, 06 Jun 2021
    Спасибо! Сейчас протестирую
  • https://t.me/clickhouse_ru
    @ilia_vo #221268 04:45 PM, 06 Jun 2021
    как понять, что можно сделать, чтобы не получать такую ошибку помимо увеличения памяти/снижения объема читаемых данных?

    Code: 241. DB::Exception: Received from localhost:9000. DB::Exception: Memory limit (for query) exceeded: would use 11.18 GiB (attempt to allocate chunk of 4895686 bytes), maximum: 11.18 GiB: While executing SourceFromNativeStream.

    в самом запросе используется группировка на диске (т.к. не влезает в память) через явное указание max_bytes_before_external_group_by и как я понимаю, далее падает при чтении этих данных для окончательной выдачи потребителю (исходя из того, что могу прочитать в этих исходниках — https://github.com/ClickHouse/ClickHouse/blob/master/src/Processors/Transforms/AggregatingTransform.cpp#L53 )
    ClickHouse/AggregatingTransform.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
    сколько всего памяти на машине?

    какое значение выставляете в max_bytes_before_external_group_by ?
  • https://t.me/clickhouse_ru
    max_memory_usage = 12e9, max_bytes_before_external_group_by=8e9
  • https://t.me/clickhouse_ru
    поставьте group_by до 6e9 или даже 4e9
  • https://t.me/clickhouse_ru
    1 если group by совпадает с order by таблицы то можно выполнить агрегацию через индекс, есть параметр optimize_aggregation_in_order.
    2 можно уменьшать aggregation_memory_efficient_merge_threads (2/4)
  • https://t.me/clickhouse_ru
    нет, я про select from select
  • @komdmitrii #221275 06:02 PM, 06 Jun 2021
    Порекомендуйте, как построит логику обновления старых записей через REPLACE PARTITION?
  • https://t.me/clickhouse_ru
    пробовал)
    запрос достаточно трудоемкий и просто падает по памяти на чтении даже в случае чтения из одного парта (!!) при условии того, что чтение происходит в рамках primary ключа (но не ключа сортировки), т.е.:
    - PK - A
    - Ordering Key - A, B, C, D, E
    - Читаем по A (group by A) но с фильтрацией и аггрегацией (в том числе через groupArray) на колонках C, D, E (в том числе через HAVING в конце)

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

    реальным решением является семплирование через префикс для колонки A (тот же startsWith(A, '1'), например) и просто запуском для всех этих префиксов (с точки зрения прочитанных и обработанных данных мы просто оставляем некую часть). Это вариант с костылями, т.к. просто уменьшаю кол-во обрабатываемых данных в памяти. В какой-то момент кол-во данных станет больше и все снова упадет...

    также, соответственно, крутил разные параметры, в том числе и кол-во потоков под merge ( aggregation_memory_efficient_merge_threads )

    поэтому к изначальному вопросу — можно ли как-то подсказать КХ, чтобы он использовал на финальной обработке данных ( SourceFromNativeStream ) тоже external SSD memory (как в случае external_group_by)?
    и второй вопрос — куда в данном случае вообще имеет смысл дальше копать (кроме как дебажить дев сборку у себя, т.к. в system.trace_log не столь ценная информация для данного кейса)

    спасибо
  • https://t.me/clickhouse_ru
    Ну а какая логика? Создаёте промежуточную mergetree таблицу с такой же структурой и ключами например с уникальным именем. Вставляете туда, валидируете селктом что вставилось то что нужно, делаете replace. Удаляете таблицу.
  • https://t.me/clickhouse_ru
    Какая версия кх? Mmap выключен?
  • https://t.me/clickhouse_ru
    temp каталог задаётся в конфиге
  • Именно так как вы описали сейчас работает, но это подходит для обновления по 'дате создания' (например обновить за 100 последних дней), а как обновлять строки у которых дата создания была например год назад, но в источнике данных эти строки обновлись - дата создания естественно не поменялась, а дата-время обновления поменялась на дату вчера например? например поменялись столбцы у строки с этим id и столбцец updated_at
  • https://t.me/clickhouse_ru
    21.2.2.8
    по mmap не до конца понимаю как проверить (даже гугл не дает полезной инфы типа ubuntu enable/disable mmap)
    но рекомендации по КХ отсюда выполненны — https://clickhouse.tech/docs/en/operations/tips/#ram
  • https://t.me/clickhouse_ru
    не до конца понял чем это поможет, если падает на том, что не хватает оперативной памяти
  • https://t.me/clickhouse_ru
    нет, это не про это. Это про баг в 21.5 / 21.4
  • https://t.me/clickhouse_ru
    а, я неправильно понял вопрос, я думал вы temp хотите на ssd натравить.
    Ответ: нет, 1/256-я часть результата group by должна помещаться в память. Там захардкожены 256 бинов. 256 это часть алгоритма и настройку сделать нельзя в принципе.

    1/256 при aggregation_memory_efficient_merge_threads=1,
    2/256 при aggregation_memory_efficient_merge_threads=2

    сколько у вас ОЗУ и сколько уникальных элементов в group by?

    про optimize_aggregation_in_order, почему он не работает, ниче не понял, не продрался сквозь ваше описание.
  • https://t.me/clickhouse_ru
    ну никак.

    Alter delete / insert . Что за задача такая что очень старые данные надо менять? Что вы вообще обновляете?
  • Поток клиентских данных, делаю агрегаты для аналитического отчета из внешнего источника, это не логи трафика (которые менять не требуется), там есть изменения старых записях, например статусов или еще разные поля апдейтятся, факт изменений и список таких записей можно отслеживать по полю updated_at.
  • https://t.me/clickhouse_ru
    ну выносить то что меняется в ReplacingMT отдельную таблицу, либо в словарь
  • была такая идея удалять дубликаты по ключам id в ReplacingMergeTree, но в документации этого движка указано что удаление происходит не сразу и на OPTIMIZE тоже не стоит рассчитывать - что означает интервал времени в течении которого останутся дубликаты что будет некорректно для аналитики
  • https://t.me/clickhouse_ru
    да, жизнь боль и дед мороз тоже ненастоящий.
  • https://t.me/clickhouse_ru
    @den_crane #221290 06:54 PM, 06 Jun 2021
    ну и если у вас настоящая биг-дата, то сторнировать, инсертить отрицательные числа, и оставлять навсегда
  • биг-дата бывает разная и таблицы разные, в данном случае миллионы строк это очень много, поясните чуть подробней про стонировать и инсертить отрицательные числа?
  • https://t.me/clickhouse_ru
    Ну у вас есть метрики? Что является метрикой?
  • Метрик много, типы агрегации: sum, count distinct. Старые строки все равно нужно убирать
  • https://t.me/clickhouse_ru
    Это свойственно не только бигдате, но и экономисты частенько так делают, особенно те, кто работает с родственным кликхаусу по духу движком sap hana.
    Сделали проводку суммы, если там ошибка, то делается вставка строки с суммой с обратным знаком, чтобы баланс по sum давал 0 и потом вставляют строку с правильной суммой. Это позволяет делать корректировки в режиме append-only + иметь полную историю, что происходило в системе. Т.е. занесли 100 рублей, например, а надо было 110, тогда заносится -100, а потом уже 110.
  • 07 June 2021 (87 messages)
  • https://t.me/clickhouse_ru
    @75280400 #221297 05:44 AM, 07 Jun 2021
    Группирую с округлением дат до месяца КХ нормально отрабатывает
    select toYYYYMM(T_DATE), count(distinct ID) from test.ID_TAB
    where T_DATE > toDateTime('2021-03-01')
    and T_DATE < toDateTime('2021-04-01')
    group by toYYYYMM(T_DATE)
    order by 1
    меняю функцию округления до дня

    select toYYYYMMDD(T_DATE), count(distinct ID) from test.ID_TAB
    where T_DATE > toDateTime('2021-03-01')
    and T_DATE < toDateTime('2021-04-01')
    group by toYYYYMMDD(T_DATE)
    order by 1
    И получаю ошибку
    SQL Error [241]: ClickHouse exception, code: 241, host: null, port: 0; Code: 241, e.displayText() = DB::Exception: Memory limit (for query) exceeded: would use 9.33 GiB (attempt to allocate chunk of 24707072 bytes), maximum: 9.31 GiB: While executing AggregatingTransform (version 21.5.6.6 (official build))

    Где настраивать?
  • https://t.me/clickhouse_ru
    @shchadnev #221298 06:52 AM, 07 Jun 2021
    Всем привет. Кто с json в кх работал, помогите в личку плз.
  • https://t.me/clickhouse_ru
    задавайте конкретный вопрос, что делаете? что именно не получается?
  • https://t.me/clickhouse_ru
    это называется сторнирование текущим периодом =)
  • https://t.me/clickhouse_ru
    ну не без этого, да :)
  • https://t.me/clickhouse_ru
    кейс такой: парсится json по ключам и записывается в отдельные колонки, а исходный json записывается в отдельную колонку, для поиска по ключам, которые не парсятся на входе. Пример: колонка full_json, в ней лежит целиком не разобранный json: { “name”:”Андрей”, “type”:”my_kafka_topic_name”}. Как найти по полю name строки? Колонка full_json типа string. Спасибо.
  • https://t.me/clickhouse_ru
    @mezhekov #221303 07:41 AM, 07 Jun 2021
    Привет, после обновления CH с версии 21.2.4 на 21.3.9.83 CH не взлетает 2021.06.07 10:36:27.271569 [ 698 ] {} <Error> Application: DB::Exception: Aggregate function argMax requires two arguments: Cannot attach table `default`.`last_item` from metadata file /var/lib/clickhouse/store/41a/41a113aa-fef0-4de5-9a99-0f7551abfe70/last_item.sql from query ATTACH TABLE default.last_item UUID '89a0dd56-fc8f-4928-8b2b-1d861e5a23f6' (`itemId` Int32, `lastMaxItem` AggregateFunction(argMax, Tuple(Int32, DateTime))) ENGINE = ReplicatedAggregatingMergeTree('/clickhouse/tables/last_item', '{replica}') ORDER BY itemId SETTINGS index_granularity = 8192: while loading database `default` from path /var/lib/clickhouse/metadata/default вот sql ATTACH TABLE _ UUID '89a0dd56-fc8f-4928-8b2b-1d861e5a23f6'
    (
    `itemId` Int32,
    `lastMaxItem` AggregateFunction(argMax, Tuple(Int32, DateTime))
    )
    ENGINE = ReplicatedAggregatingMergeTree('/clickhouse/tables/last_item', '{replica}')
    ORDER BY itemId
    SETTINGS index_granularity = 8192 что делать? До обновления все было нормально!
  • https://t.me/clickhouse_ru
    вот, две ссылки с котороыми стоит ознакомиться для вашего кейса
    https://clickhouse.tech/docs/en/sql-reference/functions/json-functions/#jsonextractjson-indices-or-keys-return-type

    http://eng.uber.com/logging
    JSON | ClickHouse Documentation

    Functions for Working with JSON In Yandex.Metrica, JSON is transmitted by users as session parameters. There are some sp

  • @demetranadya #221306 08:17 AM, 07 Jun 2021
    не пойму как из такого вида перевести в timestamp "Wed, 01 Nov 2017 00:00:00 GMT"
  • https://t.me/clickhouse_ru
    это при вставке надо сделать или при выборке?
    для SELECT parseDateTimeBestEffort
    https://clickhouse.tech/docs/en/sql-reference/functions/type-conversion-functions/#parsedatetimebesteffort
    Type Conversion | ClickHouse Documentation

    Type Conversion Functions Common Issues of Numeric Conversions When you convert a value from one to another data type, y

  • https://t.me/clickhouse_ru
    @solard #221308 08:19 AM, 07 Jun 2021
    Народ подскажите а в config.d можно положить bash-скрипты чтобы создавать при старте кластера необходимые БД ? (Кластер КХ через Altinity Operator)
  • https://t.me/clickhouse_ru
    @solard #221309 08:19 AM, 07 Jun 2021
    В доках чет ковырялся не нашел
  • https://t.me/clickhouse_ru
    если докер, то можно в docker-entrypoint-initdb.d положить

    https://github.com/ClickHouse/ClickHouse/issues/5176
    Docker: init scripts execution order · Issue #5176 · ClickHouse/ClickHouse

    Setting up a distributed cluster, we ran into this: 12:42:34 $ kubectl logs counters-1 ++ hostname -s + HOST=counters-1 + [[ counters-1 =~ (.*)-([0-9]+)$ ]] + NAME=counters + ORD=1 + cp /etc/clickh...

  • https://t.me/clickhouse_ru
    @solard ↶ Reply to #221310 #221311 08:20 AM, 07 Jun 2021
    Разумно. Так и хотел сделать думал есть спец директория под SQL скрипты например
  • @7699150 #221312 08:32 AM, 07 Jun 2021
    Ребят, привет!
    КХ версии v21.3.11.5-lts
    Кластер 2x2

    В кроне крутится скрирпт, который выполняет тяжелый зарпрос, записывает результат во временную табличку, потом чистит таблицу ReplicatedMergeTree на кластере, и записывает в неё данные из временной таблицы.

    Заметили проблему. Все значения результата запроса стали записываться как NULL. А если ресстартонуть кликхаусы на кластере, то таблица и вовсе пустая остается. Кто-то сталкивался с таким?
    Поможет ли обновиться до v21.3.12.2-lts?
  • https://t.me/clickhouse_ru
    @mirka_bit #221313 08:47 AM, 07 Jun 2021
    если я создаю Replicated* таблицу в кластере, потмо ее дропаю. то запись из zookeeper не удаляется и повторно создать ее под таким же именем нельзя. есть какие то workaround?
  • https://t.me/clickhouse_ru
    делать DROP TABLE xxxx SYNC
  • https://t.me/clickhouse_ru
    для движка базы данных Atomic
    надо DROP TABLE ... NO DELAY
  • https://t.me/clickhouse_ru
    @mirka_bit #221316 08:54 AM, 07 Jun 2021
    а то что я удалял без SYNC/NO DELAY руками в zookeeper вычищать?
  • https://t.me/clickhouse_ru
    Можно просто подождать 8 минут
  • @demetranadya #221318 08:54 AM, 07 Jun 2021
    вообще в базе лежит "date Date default now()" в запросе берется первый день месяца toStartOfMonth(date) и нужно вернуть TIMESTAMP вида 1623056060.394252
  • https://t.me/clickhouse_ru
    вы не сможете дробную часть получить в микросекундах если у вас в базе просто Date стоит тип
    там только дата

    toInt64(toStartOfMonth(date))

    вернет timestamp без дробной части
  • https://t.me/clickhouse_ru
    @399999446 #221320 09:17 AM, 07 Jun 2021
    всем привет

    У меня есть 2 distributed таблички (tab1_dist, tabl2_dist). Таблички смотрят на 3 шарда. распределены данные по юзеру
    Мне нужно сделать join этих табличек и результат чтоб хранился также на кластере,а не только на сервере инициаторе запроса

    я создал таблицу на каждом шарде tab_res_shard

    И запрос по типу
    insert into tab_res_shard
    select *
    from tab1_dist as t1
    join tabl2_shard as t2
    on t1.user = t2.user

    Вставляет результат джойна все на 1 шарде,где вызывается запрос
    Почему так и как решить? Нужно делать в вставку только в distributed таблицу?
  • https://t.me/clickhouse_ru
    @rvkggwp #221321 09:24 AM, 07 Jun 2021
    Добрый день, как работает max_execution_time. Выполняется запрос и если он выполняется дольше чем указанное ограничение в max_execution_time, то прерывает его?
  • @chamaeleon_rex #221322 09:27 AM, 07 Jun 2021
    Добрый день! Подскажите, пожалуйста, как можно форсировать отмену всех INSERT запросов в КХ. Делал вставку в distributed таблицу, запрос упёрся в лимит maxPartsCount, после чего я пытаюсь отменить подвисшие вставки через kill query - но КХ упорно продолжает их генерировать на хостах. Перезапуск КХ не помогает тоже. Где хранятся эти фоновые процессы?
  • @demetranadya #221323 09:42 AM, 07 Jun 2021
    что то полученные даты теперь питон неверно распознает datetime.date(1970, 1, 1)
    >>> date.fromtimestamp(16010)
    datetime.date(1970, 1, 1)
    >>> date.fromtimestamp(17501)
    datetime.date(1970, 1, 1)
  • https://t.me/clickhouse_ru
    все верно он распознает, это все еще 1970-01-01, но с минутами/часами
    вы потеряли где-то 4-5 нулей
  • @demetranadya #221325 09:50 AM, 07 Jun 2021
    там эта дата должна быть Sun, 01 Sep 2013 00:00:00 GMT
  • @demetranadya #221326 10:00 AM, 07 Jun 2021
    как эту функцию на тип Date применить toUnixTimestamp
  • @Yuriykos #221329 11:01 AM, 07 Jun 2021
    Привет всем!
    Подскажите плз как подружить ArgoCD (v2.0.1) с Altinity CH Operator (v0.14.0)

    Создаю CHI кластер пытается создаться, и его сразу удаляет ArgoCD.
  • https://t.me/clickhouse_ru
    @solard ↶ Reply to #221329 #221330 11:04 AM, 07 Jun 2021
    А конкретнее?
  • https://t.me/clickhouse_ru
    @solard #221331 11:04 AM, 07 Jun 2021
    Возможно в ArgoCD включена политика удаления ресурсов не описанных в Git-репе? Я думаю это не совсем тот чатик для этих вопросов
  • Причина в том что при создании CHI оператор пробрасывает все лейбы (на которые смотрит Арго), но не пробрасывает ownerReferences и получается типа создан ресурс которого не должно быть
  • https://t.me/clickhouse_ru
    @solard #221333 11:08 AM, 07 Jun 2021
    Увы с ArgoCD не работал ( FluxCD ведет себя нормально )
  • https://t.me/clickhouse_ru
    Ну напишите ишью на гитхаб
  • Да написать могу, а решение или workaround нужен уже ;(
  • https://t.me/clickhouse_ru
    Ну это нужно идти тогда к argoCD кмк
  • https://github.com/Altinity/clickhouse-operator/pull/676
    Вот решение которое вроде как даже вмерджено но по факту в релизе его нет...
    Support label exclusions by aksdb · Pull Request #676 · Altinity/clickhouse-operator

    As mentioned in issue #487, CD systems like Flux or Argo tend to put labels on resources they manage. If those labels get propagated, weird stuff can start happening. This PR introduces a new confi...

  • https://t.me/clickhouse_ru
    У вас какая версия оператора?
    Судя по всему вмержено в 14
  • У меня 14. но смотрите далее его переписали просто мастером
  • https://t.me/clickhouse_ru
    @zagirnur #221341 11:44 AM, 07 Jun 2021
    привет! Подключаюсь к таблице pgsql через ODBC
    Когда пытаюсь фильтровать данные по данным из таблицы clickhouse в pg отправляется запрос без фильтров

    фильтры отправляются
    SELECT * FROM pg WHERE id IN (1,2,3);

    фильтры НЕ отправляются, фильтруется все внутри clickhouse
    SELECT * FROM pg WHERE id IN (select id from clickhouse_ids);
  • https://t.me/clickhouse_ru
    Читайте ченжлог, убрали эту функцию
  • https://t.me/clickhouse_ru
    @mezhekov #221343 12:09 PM, 07 Jun 2021
    Спасибо, я уже удали эти таблицы.
  • https://t.me/clickhouse_ru
    Почти. Там есть еще estimate, поэтому запрос может прерваться раньше, потому что ожидается что запрос будет выполняться дольше чем max. Но это выключается
  • https://t.me/clickhouse_ru
    В каталоге дистрибьютед таблицы. .bin файлы
  • Их нужно удалить?
  • https://t.me/clickhouse_ru
    Да
  • @chamaeleon_rex #221348 12:15 PM, 07 Jun 2021
    Спасибо!
  • https://t.me/clickhouse_ru
    Все так. Так и задумано. Исправлений не будет.
  • https://t.me/clickhouse_ru
    @aveLestat #221351 12:25 PM, 07 Jun 2021
    Коллеги, приветствую! Подскажите пожалуйста пуллер соединений для Clickhouse
  • https://t.me/clickhouse_ru
    А есть какие нибудь пути обхода? чтобы сходить с конкретными идентификаторами? Может какие-нибудь джойны?
  • @SonFire #221353 12:33 PM, 07 Jun 2021
    Есть столбец eventName, в нем такие значения:
    start
    start
    search
    Так как мне получать start который идет перед search?
  • https://t.me/clickhouse_ru
    да, это то что мне нужно, а как отключить? Смотрел настройки в доке, не нашел мне нужную. (https://clickhouse.tech/docs/ru/operations/settings/query-complexity/#max-execution-time)
    Ограничения на сложность запроса | Документация ClickHouse

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

  • https://t.me/clickhouse_ru
    @399999446 #221355 12:35 PM, 07 Jun 2021
    Рзамер таблички можно посмотреть вот таким запросом
    select sum(bytes / 1024/1024/1024) from system.parts
    where database = 'XXX' and table = 'XXX'

    а есть вариант как можно узнать размеры колонок в табличке?
  • https://t.me/clickhouse_ru
    SELECT formatReadableSize(sum(total_bytes)), database, table FROM system.columns GROUP BY database, table
  • https://t.me/clickhouse_ru
    спасибо
  • https://t.me/clickhouse_ru
    @dedushka_mao #221358 01:14 PM, 07 Jun 2021
    Здравствуйте, коллеги. Подскажите, пожалуйста, куда смотреть
    Есть кластер из 4 реплик, 1 шард
    Таблица ReplicatedMergeTree создается на одном сервере, и не создается на 3х остальных, либо наоборот, создается на 3х, а на первом нет
    Пишет Table columns structure in ZooKeeper is different from local table structure (version 21.3.4.25
  • https://t.me/clickhouse_ru
    покажите Engine=ReplicaredMergeTree(...)
    что в параметрах задаете?
  • https://t.me/clickhouse_ru
    ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/test', '{replica}')
  • https://t.me/clickhouse_ru
    таблицу создаете через CREATE TABLE ... ON CLUSTER 'cluster-name'?

    SELECT * FROM system.cluster
    покажите?

    вы таблицу разово создаете, или где то в софте постоянно создаете и пересоздаете?
  • https://t.me/clickhouse_ru
    руками создаю на каждой реплике, без ON CLUSTER
    создаю разово, не софтом
    причем тестовые таблицы с другой структурой создаются, а вот тут конкретно затык
  • @7699150 #221364 01:41 PM, 07 Jun 2021
    Ребят, подскажите пожалуйста, можно ли как-то сделать PRIMARY KEY для словаря в формате UInt32? Сейчас КХ сам переводит в UInt64 независимо от того какой я тип в Create Query укажу
  • https://t.me/clickhouse_ru
    нет, ну или использовать COMPLEX KEY словари
  • Жаль
    нашли табличку, которую очень хорошо можно перевести в словарь, а у нее ID UInt32. Со словарем гора запросов падает (
  • https://t.me/clickhouse_ru
    что мешает писать в dictGet('dasdas','sss', toUInt64(key))
  • https://t.me/clickhouse_ru
    @unamedrus #221368 01:43 PM, 07 Jun 2021
    Так все делают :)
  • https://t.me/clickhouse_ru
    @unamedrus #221369 01:43 PM, 07 Jun 2021
    или вы ее в JOIN используете?
  • Да, сейчас как джоин.

    У нас просто сотни разных MergeTree табличек и мы постепенно находим места для оптимизаций. Переводим в словари то, что можно перевести и тд
  • https://t.me/clickhouse_ru
    какая версия?
  • @7699150 #221373 01:48 PM, 07 Jun 2021
    21.3.11.5-lts
  • https://t.me/clickhouse_ru
    ну такое ощущение что как то насрали в ZK именно для той реплики на которой не получается таблицу создать
    что странно
    макросы вы используете
    не может быть такого что где то system.macros одинаковый на разных нодах?

    SELECT * FROM system.clusters
    сравните на проблемной ноде и на нодах где таблица нормально создается
  • https://t.me/clickhouse_ru
    timeout_before_checking_execution_speed=0
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    по описанию похоже что у вас 2 разных кластера зукипера
  • https://t.me/clickhouse_ru
    Хм.. спасибо, буду проверять
  • https://t.me/clickhouse_ru
    спасибо
  • https://t.me/clickhouse_ru
    оказалось, что на двух машинах перепутаны номера реплик в секции macros. Но на них как раз все создается без проблем

    Я правильно понимаю, что мне теперь им придется новые номера присваивать? и все replicated таблицы пересоздавать с новыми параметрами?
  • https://t.me/clickhouse_ru
    ну если есть такая возможность то да, лучше пересоздать
  • https://t.me/clickhouse_ru
    Спасибо за помощь
  • https://t.me/clickhouse_ru
    @a_manichev #221386 05:39 PM, 07 Jun 2021
    Коллеги, чет я уже запутался в документации и хочу понять как найти оптимальные настройки сервера и алгоритма вставки в Distribution таблицы, чтобы гарантировать что в них нет дублей. Есть distribution таблицы из N шардов, которые наполняются данными, настройки сервера дефолтные.
  • https://t.me/clickhouse_ru
    что подразумевается под словом дубли?
    если имеется ввиду гарантия того что "не будет двух полностью одинаковых строк" на момент вставки, то никак...

    даже в рамках одного сервера не говоря уже о кластере

    у clickhouse (да и вообще у всех big data систем с аналитикой типа exasol и vertica ) нет понятия unique key, его просто невозможно нормально реализовать

    единственное что можно гарантировать
    это отсутствие дубликатов на уровне блоков (батчей)

    и потом eventual consistency в рамках через ReplicatedReplacingMergeTree + SELECT ... FINAL

    финальный рецепт
    1) правильно выбирайте sharding key если вставляете в Distributed
    2) таблица поверх которой делается Distributed - ReplicatedReplacingMergeTree
    3) выборку делайте через SELECT ... FINAL - это может сильно проседать по CPU
  • https://t.me/clickhouse_ru
    Да, полностью одинаковых строк. А если включить флаг insert_distributed_sync и insert_quorum? Я понимаю что полностью гарантировать отсутсвие дублей невозможно, но можно ли их минимизировать на уровне настроек и алгоритма проверки системных таблиц
  • https://t.me/clickhouse_ru
    Сейчас мы до вставки отфильтровываем данные которые есть уже в клике и не отправляем их. Проблема видимо в том что мы на момент проверки имеем ситуацию когда не все данные растеклись по Шардам и репликам. Конфиг 8 шард 2 реплики
  • @plompus #221390 06:35 PM, 07 Jun 2021
    Добрый вечер!
    У меня возник следующий вопрос:

    Есть колонки tsEvent и idEvent. Как известно, агрегирующая функция groupArray(tsEvent) не гарантирует никакого порядка. Но будут ли соответствовать друг другу элементы следующих массивов:

    groupArray(tsEvent) <=> groupArray(idEvent) ?
  • https://t.me/clickhouse_ru
    да будут, но если в tsEvent и idEvent нет Null. Null игнорируются агрегирующими функциями.

    а еще можно делать tuple -- groupArray( (tsEvent, idEvent) ) тогда и null попадут
  • https://t.me/clickhouse_ru
    @den_crane #221392 06:38 PM, 07 Jun 2021
    к элементам туплов можно обращаться по номерам,
    (groupArray( (tsEvent, idEvent) ) as x ).1,
    x.2
  • Спасибо!
  • 08 June 2021 (137 messages)
  • https://t.me/clickhouse_ru
    ну так вы почитайте что эти флашки делают то?
    ну будете вы знать что у вас блок записался на все (или те которые покрывают insert quorum) реплики шарда при insert синхронно... что это даст?
  • https://t.me/clickhouse_ru
    ну insert_quorum=2 и insert_distirbution_sync должен вам помочь...
    лучше фильтровать до вставки...
    НО я бы все равно сделал ReplacingMergeTree + SELECT FINAL
  • @dmitry_mosin #221399 05:55 AM, 08 Jun 2021
    Привет!
    Не могу найти, возможно ли построить вторичный индекс по полю типа Array(String) ?
  • @dmitry_mosin #221400 05:57 AM, 08 Jun 2021
    В этом массиве - строки фиксированной длины, в массиве может быть от 0 до 100 эл-тов. Строки - гарантированно уникальные.
  • https://t.me/clickhouse_ru
    @barsictcp #221402 07:15 AM, 08 Jun 2021
    Доброго времени суток ! Недавно начал замечать отказ transaction c ошибкой: File not found: /var/log/clickhouse-server/clickhouse-server.log.0
  • skip index != вторичный индекс.

    он будет работать с массивом как с любым другим типом данных. например минмакс на массиве скорее всего будет бесполезен, блум фильтр теоретически может помочь, но там все сильно зависит от данных и насколько они коррелируют с первичным ключом
  • У меня кх несвежий, блум по массиву не хочет
  • @dmitry_mosin #221405 07:34 AM, 08 Jun 2021
    В первичный ключ пихать смысла нет, кмк. Содержимое массива не коррелирует вообще никак и ни с чем. Списки хитрожопых строковых идшников
  • А в свежем работает блум по массиву?
  • я сам не пробовал, но в доке написано так

    Supported data types: Int*, UInt*, Float*, Enum, Date, DateTime, String, FixedString, Array, LowCardinality, Nullable.
    https://clickhouse.tech/docs/en/engines/table-engines/mergetree-family/mergetree/#available-types-of-indices

    попробуйте в тесте
  • но он все равно поможет только если вы будете делать сравнения типа
    arrayCol=['aaa','bbb']
  • @dj_mixer #221409 07:38 AM, 08 Jun 2021
    поэтому это все так себе затея в целом...
  • https://t.me/clickhouse_ru
    ну вторинчый индекс это Data Skip Index
    это означает что clickhouse пытается использовать индекс для того чтобы проверить нужно или нет сканировать одну или несколько гранул из

    index granularity для data skip индекса это кол-во гранул из primary key

    то есть то что у вас строки гарантировано уникальные в пределах одного массива ничего не значит =)
  • @dmitry_mosin #221411 07:42 AM, 08 Jun 2021
    Строки гарантированно уникальные в пределах всей таблицы. Т.е. вот конкретно этот строковый идшник в 99% случаев стретится только один раз
  • @dmitry_mosin #221412 07:43 AM, 08 Jun 2021
    Монотонности практически нет
  • https://t.me/clickhouse_ru
    ну, может быть денормализация + bloom filter вам поможет
  • Денормализация - вынести в 100 колонок? Или нормализация, вынести в отдельную таблицу?
  • https://t.me/clickhouse_ru
    Денормализация это
    сделать вместо массива одну колонку с одним значением
    а остальные продублировать...

    да, данные распухнут. но можно будет искать по вашей колонке быстрее в разы, если она самая важная
  • Нее, тоже не очень вариант. Искать по ней будут раз в пятилетку
  • @dmitry_mosin #221417 08:05 AM, 08 Jun 2021
    Вынесу в отдельную таблицу, потыкаюсь
  • @dmitry_mosin #221418 08:05 AM, 08 Jun 2021
    Спасибо
  • https://t.me/clickhouse_ru
    @mikhailberg #221419 08:05 AM, 08 Jun 2021
    Всем привет. А как быстро транкейтится таблица, что бы туда сделать новый инсерт ? Что бы не было всяких гонок с данными и тд (кластер 2х2)
  • https://t.me/clickhouse_ru
    @Elena_ru_bg #221420 08:27 AM, 08 Jun 2021
    Привет! Подскажите, пожалуйста:

    has(['All', 'task', NULL], task_type) — так работает

    has(['All', 'task'], task_type) — а так ругается:
    Types of array and 2nd argument of function \"has\" must be identical up to nullability, cardinality, numeric types, or Enum and numeric type. Passed: Array(String) and Nullable(String)

    в чем прикол с этим NULL’ ом и has?

    это зависит от типа task_type? у него среди значений нет NULL’ов
    в других запросах has работает ок
  • https://t.me/clickhouse_ru
    ок, если мы начнем использовать ReplacingMergeTree + SELECT FINAL, по документации ReplacingMergeTree справляется с дублями по OrderBy но не гарантирует этого. replicated_deduplication_window как-то влияет на это?
  • https://t.me/clickhouse_ru
    Поломали немного

    has(['All', 'task'], assumeNotNull(task_type))
  • https://t.me/clickhouse_ru
    дубли по ORDER BY в ReplacingMergeTree схлопываются при background merge
    а дубли по ORDER BY в SELECT
    дополнительно схлопываются через FINAL

    получаем на выходе выборку без дублей, но довольно сильно нагружаем CPU на SELECT
  • https://t.me/clickhouse_ru
    А в каких случаях не гарантируется дедупликация?
  • https://t.me/clickhouse_ru
    спасибо!
  • https://t.me/clickhouse_ru
    а можно ли использовать FINAL в селектах из других движков? MergeTree, ReplicatedMergeTree? у меня как раз есть задача убирать дубли по ключу сортировки, но опционально - если пользователь запросил дедупликацию.
  • https://t.me/clickhouse_ru
    В MergeTree точно нельзя, будет ошибка синтаксиса
  • https://t.me/clickhouse_ru
    нет. собственно говоря
    Final он для CollapsingMergeTree и ReplacingMergeTree как раз и выдуман...
    мы через него как бы финально "дедуплицируем"
  • https://t.me/clickhouse_ru
    не очень понял вопрос
    она как бы вообще не гарантируется на уровне дубликатов строк по умолчанию...

    CollapsingMergeTree \ ReplacingMergeTree + SELECT FINAL
    при правильно выборанном ключе сортировки

    гарантирует вам отсутствие дубликатов в результатах SELECT
    первичная дедупликация делается на этапе вставки, дальнейшая на этапе merge
    финальная на этапе SELECT ...
  • https://t.me/clickhouse_ru
    Select final достаточно один раз запустить, если мы пишем и запрашиваем один кусок данных?
  • https://t.me/clickhouse_ru
    SELECT .. FINAL не пишет данные не диск, он их в памяти финально дедуплицирует...
    в соответсвии с логикой движка...
    поэтому просадка по CPU и время запроса может увеличиться...
    зависит от того насколько много данных
  • https://t.me/clickhouse_ru
    OPTIMIZE FINAL запишет данные на диск?
  • https://t.me/clickhouse_ru
    да, но НЕЛЬЗЯ эту операцию запускать регулярно и часто если у вас данных хотя бы сотня гигабайт
    вы просто изнасилуете диск на чтение и запись...

    при OPTIMIZE FINAL читается ВСЕ ДАННЫЕ
    и пишутся тоже все данные ...
  • https://t.me/clickhouse_ru
    @Ed_90 #221434 10:20 AM, 08 Jun 2021
    привет всем.
    Прочитал в changelog'е такое:
    Added ability to run clickhouse-keeper (experimental drop-in replacement to ZooKeeper) with SSL

    кто-нибудь уже пробовал clickhouse-keeper?
  • https://t.me/clickhouse_ru
    Использую на локалхосте для дев/дебага, работает ок
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @Ed_90 #221437 10:27 AM, 08 Jun 2021
    спасибо!
    интересно - потом в дальнейшем видимо можно будет отказаться от ZooKeeper :-)
  • https://t.me/clickhouse_ru
    Да, это основная цель для clickhouse-keeper
  • https://t.me/clickhouse_ru
    @Ed_90 #221439 10:28 AM, 08 Jun 2021
    крутота
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Заведите тикет на гитхаб. Приложите стектрейс и как можно больше инфы. Опишите как воспроизвести. Проблема известная но не удается воспроизвести -- мало инфы.
  • https://t.me/clickhouse_ru
    Пара секунд. Зависит от кол-ва партов. Если тысяча партов это значит надо удалить тысячу каталогов на диске и несколько тысяч записей в зукипере. Параллельный бегущий мерж может заблокировать надолго, но это в старых версиях.
  • https://t.me/clickhouse_ru
    Если размер партов больше макс., то мержи прекращаются. Если нет места на диске тоже.
    Ну и мержи eventual. Для больших партов неразумно с точки зрения эффективности делать мержи, поэтому кх не будет их мержить.
  • https://t.me/clickhouse_ru
    @LetsGoToTheStars #221445 10:50 AM, 08 Jun 2021
    Привет, столкнулась с такой проблемой windowFunnel.
    Моя задача это отобрать id, у которых непосредственно перед событием video_start идет событие 'goto' или 'auto_play' или 'click_play'. Если что-то другое - это ошибка.
    Считала по каждой айди максимальную ошибочную последовательность вот так: windowFunnel(86400000, 'strict_order')(device_timestamp, event_name NOT IN ('auto_play', 'click_play', 'goto'), event_name = 'video_start') AS max_lenght_of_errors
    А потом ставила условие HAVING max_lenght_of_errors > 1
    В целом это работало за исключением случая, когда у меня последовательно шли события 'auto_play', 'ad_error', 'video_start'. Тут мне считало максимальную длину цепочки равной 1, хотя должно быть 2. Не могу понять почему.
    Что может быть не так? И как переписать, если это баг?
  • https://t.me/clickhouse_ru
    Точка часть урла
  • телеграм игнорирует точку в конце ссылки
  • Спасибо. Раскатаю на тесте свежую версию, попробую
  • https://t.me/clickhouse_ru
    отобрать - исключить? иначе почему в первом условии NOT IN?
  • https://t.me/clickhouse_ru
    @LetsGoToTheStars #221450 10:58 AM, 08 Jun 2021
    ой да, мне нужны только айди с ошибкой, где перед событием video_start идет что-то кроме 'auto_play', 'click_play', 'goto'
  • https://t.me/clickhouse_ru
    @vmaxlog #221452 11:08 AM, 08 Jun 2021
    добрый день.
    есть табличка и ключ на employee_id
    SELECT * FROM lkdn_profiles.educations WHERE employee_id = '36577787'
    выполняется 0.4 сек
    20 rows in set. Elapsed: 0.370 sec. Processed 337.72 million rows, 2.70 GB (913.00 million rows/s., 7.31 GB/s.)

    select * from (SELECT * FROM lkdn_profiles.educations WHERE employee_id = '36577787' ) dd where dd.deleted = 0
    выполняется 10 секунд
    5 rows in set. Elapsed: 9.919 sec. Processed 337.72 million rows, 89.14 GB (34.05 million rows/s., 8.99 GB/s.)
  • https://t.me/clickhouse_ru
    EXPLAIN сравните
    возможно там dd.deleted = 0 зачем то сначала сканируется
    clickhouse-client запустите
    и сделайте
    SET send_logs_level='trace';
    select * from (SELECT * FROM lkdn_profiles.educations WHERE employee_id = '36577787' ) dd where dd.deleted = 0;

    и сравните с
    SET send_logs_level='trace';
    SELECT * FROM lkdn_profiles.educations WHERE employee_id = '36577787';
  • https://t.me/clickhouse_ru
    спасибо
  • https://t.me/clickhouse_ru
    видимо это

    InterpreterSelectQuery: MergeTreeWhereOptimizer: condition "employee_id = '36577787'" moved to PREWHERE
  • https://t.me/clickhouse_ru
    @vmaxlog #221456 11:14 AM, 08 Jun 2021
    можно как то зафорсить это?
  • https://t.me/clickhouse_ru
    Заменить where на prewhere
  • https://t.me/clickhouse_ru
    спасибо
  • https://t.me/clickhouse_ru
    Ключ? не похоже что индекс работал
  • @dj_mixer #221460 11:37 AM, 08 Jun 2021
    день добрый, как "правильно" готовить macros для мультикластерных нод (например один кластер 2ш*2р, другой кластер 1ш*4р) на тех же КХ нодах...

    хочется чтоб разработчики в миграторах писали стандартно {shard}, но они на деле будут разными в зависимости от кластера в котором создается таблица...
  • https://t.me/clickhouse_ru
    так не получится
    system.macros ортогонален system.clusters
    и распостраняется на сервер а не на кластер...
  • Да я в курсе, я собственно в поиске бест-практис по избежанию суицидов
  • @dj_mixer #221463 11:44 AM, 08 Jun 2021
    пока только такое придумал, но это так себе
    {clustername_shard}
    с соответственными макросами
  • @dj_mixer #221464 11:45 AM, 08 Jun 2021
    хотелось бы типа
    <macros>
    <clustername/groupname>
    <clusterspecificvariable>
  • https://t.me/clickhouse_ru
    ну по другому и не получится
    имена макросов уникальны в пределах сервера

    они не группируются
    и не будут
    говорю же понятия ортогональные

    макросы в ReplicatedMergeTree используются
    который про distributed вообще ничего не знают...
  • @dj_mixer #221466 11:55 AM, 08 Jun 2021
    a Database=Replicated с какой версии не experimental, 21.4?
  • https://t.me/clickhouse_ru
    @rvkggwp #221469 12:42 PM, 08 Jun 2021
    Добрый день, может кто подскажет как данное условие в запросе переписать лучше
    select
    *
    from test
    where (id = 1 and T1 > '2020-09-10 14:06:00' and T2 < '2020-09-10 14:15:00')
    or (id = 2 and T1 > '2020-09-10 17:06:00' and T2 < '2020-09-10 21:06:00')
  • https://t.me/clickhouse_ru
    а чем этот не устраивает ?
  • https://t.me/clickhouse_ru
    Пока во всех версиях experimental, появилось в 21.3
  • https://t.me/clickhouse_ru
    Тем, что получается много or. Т.е я для примера описал одно или, но вообще их может быть много.
  • https://t.me/clickhouse_ru
    вроде ничего лишнего нету
  • https://t.me/clickhouse_ru
    @75280400 #221474 12:49 PM, 08 Jun 2021
    все условия по одному разу
  • https://t.me/clickhouse_ru
    Ну просто есть в CH для in удобная вещь с tuple where (id, t1) in ((1, '2020-09-10 14:06:00'), (2, '2020-09-10 14:15:00')). Может что-то такое есть, только для диапазона, а я не вкурсе, вот и задал вопрос.
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #221469 #221476 12:52 PM, 08 Jun 2021
    Не очень понятна задача. Если это поиск последовательностей событий, то можно посмотреть в сторону windowFunnel и sequenceMatch
  • https://t.me/clickhouse_ru
    задача в том, что у каждого id, свой временной интервал в котором надо найти значения. Т.е не так, что у набора id один интервал, а у каждого id свой интервал, чтобы не плодить кучу запросов, я сделал один. Теперь думаю как его оптимизировать
  • спасибо
  • https://t.me/clickhouse_ru
    @bvt123 #221479 12:56 PM, 08 Jun 2021
    если этих id десятки и сотни, то можно сделать табличку id,start,end и join c ней.
  • https://t.me/clickhouse_ru
    да, таких id много, тысячи
  • https://t.me/clickhouse_ru
    @bvt123 #221481 01:00 PM, 08 Jun 2021
    select a,b,c from test join interval as ids using id where T1 > ids.start and T2 < ids.end;
  • это будет плохой кросс join... не надо так
  • @chamaeleon_rex #221483 01:20 PM, 08 Jun 2021
    Добрый день! Подскажите, пожалуйста, метрики background_pool_size, background_move_pool_size, background_schedule_pool_size и background_distributed_schedule_pool_size для вставки из remote применяются из настроек удалённого сервера, или локального? Потому что я выставил их для пользователя default на серверах куда происходит вставка данных (версия 21.3.8.76), делаю запрос на вставку из remote(на том сервере версия 19.17.6.36) и КХ выругался дескать
    "Code: 115. DB::Exception: Received from localhost:9000. DB::Exception:
    Received from {remote_host}:9000. DB::Exception: Unknown setting background_move_pool_size. "
    Задача моя максимально утилизировать сервера КХ для переливки потому как там большое количество данных нужно перелить.
  • лучше того что у вас есть, не добавляя колонок, скорее всего не будет.
    увеличьте max_query_size и запрашивайте спокойно...
  • https://t.me/clickhouse_ru
    Спасибо
  • https://t.me/clickhouse_ru
    @Glosha777 #221487 01:43 PM, 08 Jun 2021
    Доброе. а как можно поправить то что возвращает - SELECT FQDN()
    ┌─FQDN()─────────────────────┐
    │ p.XXX.XXX │
    └────────────────────────────┘
    на текущее имя = домены перерезали уже после установки
    nslookup
    Name: p.YYY.XXX
    я же так понимаю, именно эта запись в итоге прописывается в зоокипер.. и в итоге не может найти ноду
  • https://clickhouse.tech/docs/en/operations/server-configuration-parameters/settings/#interserver-http-host

    вручную перебить конфигом на то имя что каждый нод может найти
  • https://t.me/clickhouse_ru
    @Glosha777 #221489 01:47 PM, 08 Jun 2021
    Спасибо, посмотрю
  • https://t.me/clickhouse_ru
    @bvt123 ↶ Reply to #221482 #221490 01:47 PM, 08 Jun 2021
    подскажите пожалуйста, что в нем плохого? Там же стработает hash join и правая таблица на несколько тысяч строк вся будет в памяти, ограничивая выборку по id из большой левой.
  • hash join работает только на "=" условия. во всех базах.
  • https://t.me/clickhouse_ru
    @bvt123 #221492 02:10 PM, 08 Jun 2021
    Там написано using id что эквивалентно t1.id = t2.id - что тут не так? Чисто синтаксическое упрощение как я понимаю. Или в случае использования using есть какие-то особенности?
  • https://t.me/clickhouse_ru
    они (все сеттинги) передаются при запросе с remote. в 19.17 не было таких параметров. Это не починить. Можно переливать через clickhouse-client|clickhouse-client
  • https://t.me/clickhouse_ru
    рестартовать КХ
  • https://t.me/clickhouse_ru
    Это я уже понял. Спасибо.
  • https://t.me/clickhouse_ru
    /report
  • https://t.me/clickhouse_ru
    @pic_Nick77 #221499 03:09 PM, 08 Jun 2021
    Подскажите, в операторе multiIf так же как и в if выполняются выражения во всех ветках?
  • https://t.me/clickhouse_ru
    да
  • https://t.me/clickhouse_ru
    и это никак не изменить?
  • https://t.me/clickhouse_ru
    @unamedrus #221503 03:18 PM, 08 Jun 2021
    Пока никак
  • https://t.me/clickhouse_ru
    подписывайтесь
    https://github.com/ClickHouse/ClickHouse/pull/23367
    Implement short circuit function evaluation by Avogar · Pull Request #23367 · ClickHouse/ClickHouse

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

  • https://t.me/clickhouse_ru
    @75280400 #221505 04:00 PM, 08 Jun 2021
    /report
  • https://t.me/clickhouse_ru
    @tratatataass #221506 04:06 PM, 08 Jun 2021
    Привет!
    Пытаюсь создать кластер КХ. Подняты 3 интсанса ЗК, два КХ. Создал конфигурацию кластера из 1 шарда и 2 реплики:

    <remote_servers>
    <cluster_name>
    <shard>
    <internal_replication>true</internal_replication>
    <replica>
    <host>10.42.0.1</host>
    <port>9000</port>
    <user>core</user>
    </replica>
    <replica>
    <host>10.42.0.4</host>
    <port>9000</port>
    <user>core</user>
    </replica>
    </shard>
    </cluster_name>
    </remote_servers>

    создал на двух серверах базу:
    CREATE DATABASE replicated_database;

    Пытаюсь создать таблицу так:

    CREATE TABLE replicated_database.replicated_table ON CLUSTER cluster_name (
    A UInt16,
    B UInt16,
    C UInt16
    )
    ENGINE = ReplicatedMergeTree('/clickhouse/tables/{database}/{table}/{shard}', '{replica}')
    PARTITION BY tuple()
    ORDER BY (A);

    Запрос бесконечно виснет и ничего не происходит. В логах пусто.

    Делаю
    SELECT * FROM remote('10.42.0.4', 'some_db_name', 'some_table_name')
    все ок читает.

    SELECT * FROM system.zookeeper WHERE path = '/clickhouse'
    что-то показывает

    select * from system.clusters
    показывает обе ноды кластера.

    Я руками создавал ReplicatedMergeTree на каждой реплике, вставлял данные в одну, но но второй реплике они не появлялись
    Что я делаю не так и как можно продебажить? Спасибо
    (ClickHouse server version 21.6.3)
  • https://t.me/clickhouse_ru
    а ноды друг в друга могут попасть?
  • https://t.me/clickhouse_ru
    @nyoroon #221508 04:07 PM, 08 Jun 2021
    в логах есть скорее всего всё что нужно
  • https://t.me/clickhouse_ru
    да, я через FROM remote(...) могу читать друг из друга
  • https://t.me/clickhouse_ru
    В логах совсем тишина, только какие-то warning'и типа:
    <Warning> CollapsingSortedTransform: Incorrect data: number of rows with sign = 1 (2) differs with number of rows with sign = -1 (0) by more than one
    но это к делу не относится
  • https://t.me/clickhouse_ru
    @shedx #221511 04:10 PM, 08 Jun 2021
    привет, можно как-то в collapsing merge tree запретить схлопывание двух записей с sign=1?
  • Спасибо
  • https://t.me/clickhouse_ru
    >Подняты 3 интсанса ЗК
    ZK в одном ансамбле?

    select * from system.replication_queue

    {shard} одинаковый ?
  • вообще эквивалентно, но есть мелкие отличия, например при использовании поля в USING возвращается одна колонка на ключ а не две, обычно нельзя использовать это поле с алиасом таблицы, хотя в КХ вот можно
    ну и при тройных join-ах веселье есть...
    в общем синтаксис с ON - более "explicit".

    select * from system.contributors a join system.contributors b on (a.name=b.name) order by name limit 2;
    select * from system.contributors a join system.contributors b using (name) order by name limit 2;
  • @dj_mixer #221516 06:28 PM, 08 Jun 2021
    пока фикс не завезли в 20.8 релиз, никто не может подсказать, есть ли какие-нибудь настройки которые позволяют ну хотя бы реже сталкиваться с этой проблемой?
    https://github.com/ClickHouse/ClickHouse/issues/23296
    Part X intersects next part Y. It is a bug. · Issue #23296 · ClickHouse/ClickHouse

    Describe the bug At some point of time next error appears at log. (After that this error spams the log endlessly..) Apr 17 17:45:30 click-inst-1.com clickhouse-server[43]: 2021.04.17 17:45:30.28795...

  • https://t.me/clickhouse_ru
    а что до версии 20.x.x.x такой проблемы не было? Это как бы баг который был, есть и будет
  • https://t.me/clickhouse_ru
    @den_crane #221519 07:01 PM, 08 Jun 2021
    может в конкретно вашем случае начало проявляться после 20.5 (все реплики лидеры) ?
  • Да, вероятно. Это можно отключать?
  • в 20.3 не было
  • https://t.me/clickhouse_ru
    можно половине реплик запретить типа can_became_leader = false, но это опасно, если вторая реплика сдохнет навсегда
  • @dj_mixer #221524 07:34 PM, 08 Jun 2021
    нууу, лидеры ж могут упасть
  • https://t.me/clickhouse_ru
    @den_crane #221525 07:34 PM, 08 Jun 2021
    лучше в гитхаб тогда, может кто-то лучше знает или догадается где проблема
  • https://t.me/clickhouse_ru
    @den_crane #221526 07:35 PM, 08 Jun 2021
    скорее всего это до сих пор не починено
  • @dj_mixer #221527 07:35 PM, 08 Jun 2021
    не, проблема явно связано с тем что кто хочет и как хочет назначает мерджи
  • ну вроде все тикеты поназакрыты:
    https://github.com/ClickHouse/ClickHouse/issues/23296
  • причем там многоуровневое расхождение Т.Т
    сначала warnings потом ошибки...

    Part 20210414-421_0_228_4 is covered by 20210414-421_0_228_4_1436 but should be merged into 20210414-421_0_1279_5. This shouldn't happen often.
  • @dj_mixer #221530 07:42 PM, 08 Jun 2021
    а зачем вообще мульти-лидер режим был введен?
  • https://t.me/clickhouse_ru
    my mistake, я не заметил что не верно зк ноды сконфигурировал. Раздал разные ip, но id ноды у всех "1" была.
  • https://t.me/clickhouse_ru
    >а зачем вообще мульти-лидер режим был введен
    просто потому что возможен, почему нет.

    у вас какой-то корнер кейс неучтенный, так-то вроде все это работает без проблем даже в больших инсталляциях, насколько я понимаю даже ЯМетрика уже на 21.3 или дальше уже
  • так и без меня 3 тикета в ГХ есть, с фиксом.
    мы ж не знаем как там can_become_leader в метриках )

    а у нас это проявилось вообще на мини инсталляции где всего 2 реплики и вставка всегда в одну... прям "внезапно"
  • https://t.me/clickhouse_ru
    @unknown_name13 #221535 08:11 PM, 08 Jun 2021
    #вакансия #удаленка #dba #clickhouse
    ищем крутого dba. в идеале на clickhouse или с желанием изучить. зарплата от 180 обсуждаемая. Любой город, можно в офисе(мск сити), если хочется. тк рф, дмс, все дела. ищем активных и целеустремленных :-) по вопросам в лс
  • https://t.me/clickhouse_ru
    @unknown_name13 #221536 08:11 PM, 08 Jun 2021
    #вакансия #удаленка #разработчик
    ищем разработчиков clickhouse с опытом. от junior до senior. зарплата от 120 обсуждаемая. Любой город, можно в офисе(мск сити), если хочется. тк рф, дмс, все дела. ищем активных и целеустремленных :-) по вопросам в лс
  • Не кх вакансии тут нельзя.
  • https://t.me/clickhouse_ru
    это кх
  • @dj_mixer #221539 08:17 PM, 08 Jun 2021
    Теперь да )
  • https://t.me/clickhouse_ru
    спс)
  • https://t.me/clickhouse_ru
    А реплики от Зукипера далеко?
  • Зк не падал, от зк до реплик пара мс
  • https://t.me/clickhouse_ru
    @salttan #221545 11:40 PM, 08 Jun 2021
    да, непонятно
  • https://t.me/clickhouse_ru
    там еще мутации были?
    реплики назначили разные мержи на одни и те же парты, или нет?
  • @dj_mixer #221547 11:47 PM, 08 Jun 2021
    Это каждый день так. Надо копать. Пока уберем лидер кроме одного
  • 09 June 2021 (394 messages)
  • @salionov #221548 12:23 AM, 09 Jun 2021
    доброго времени
    я конечно мож плохо читаю в документацию, но я не нашел в limit 1 вычитывает больше ожидаемого

    типа

    select * from t1 where Cond1=1 and EventDate < '2021-01-01' limit 1

    это баг или фича?)
  • https://t.me/clickhouse_ru
    что вычтет? вычитает или 5-1 (вычтет)
  • @salionov #221551 02:46 AM, 09 Jun 2021
    Прошу прощения
    Вычитает
  • @salionov #221552 02:47 AM, 09 Jun 2021
    То есть возвращает одну строку и в show processlist продолжает строчки читать
  • https://t.me/clickhouse_ru
    @den_crane #221553 02:48 AM, 09 Jun 2021
    из вашего примера все равно ничего не видно. То ли select limit 1 вернул 10 строк, то ли что.

    limit срабатывает после всех условий.
    КХ вообще может прочитать намного больше чем надо, и много тредов могут очень долго читать и не знать что уже все, больше не надо.
  • @salionov #221554 03:08 AM, 09 Jun 2021
    Вернул одну строку , а потом «думает». Ответ в итоге не меняется
  • https://t.me/clickhouse_ru
    пока дочение треды читают и стопаются, проходит время...
    сейчас цепочка processors сделана не через pull модель а через push (так быстрее в большинстве случаев)
  • https://t.me/clickhouse_ru
    @SvPupok #221557 05:51 AM, 09 Jun 2021
    коллеги добрый день. не подскажете доку с настройкой репликации в кх? есть отдельный сервер с данными аналитики, к нему нужно поднять реплику, есть возможность это сделать безболезненно?
  • Добрый день. Безболезненно наверное нет, нужно менять движок таблиц на репликейтед
  • https://t.me/clickhouse_ru
    - поднять zookeeper или clickhouse-keeper (он пока экспериментальный)
    https://www.howtoforge.com/tutorial/how-to-install-apache-zookeeper-on-ubuntu-2004/

    - прописать его на обоих нодах в секции конфига <yandex><zookeeper> /etc/clickhouse/config.d/zookeeper.xml
    https://clickhouse.tech/docs/en/operations/server-configuration-parameters/settings/#server-settings_zookeeper

    - прописать <remote_servers> на обоих нодах тоже через config.d
    https://clickhouse.tech/docs/en/operations/server-configuration-parameters/settings/#server-settings-remote-servers
    см. пример кластера тут
    https://clickhouse.tech/docs/en/engines/table-engines/special/distributed/
    это нужно для того когда появится ВТОРОЙ шард

    - прописать <yandex><macros> правильно на обоих нодах то же через config.d
    https://clickhouse.tech/docs/en/operations/server-configuration-parameters/settings/#macros
    см. как макросы прописываются в доке
    https://clickhouse.tech/docs/en/engines/table-engines/mergetree-family/replication/

    - текущие таблицы для одного сервере должны быть с Engine=MergeTree и
    надо будет конвертировать их в ReplicatedMergeTree
    на обоих репликах новые таблицы ReplicatedMergeTree надо будет создать РУКАМИ...
    не забыть правильно макросы задать в параметрах ReplicatedMergeTree

    https://kb.altinity.com/altinity-kb-setup-and-maintenance/altinity-kb-converting-mergetree-to-replicated

    - подождать пока данные реплицируются

    - создать какой то load balancer например chproxy или просто nginx перед этими двумя нодами upstream + proxy_pass

    - когда потребуется поднять второй шард
    прочитать еще раз что такое Engine=distributed

    - установить две новые ноды, прописать на двух новых нодах правильно macros
    - создать пустые ReplicatedMergeTree таблицы

    -добавить новый шард из двух реплик на всех 4 нодах в remote_servers
    - не забыть про zookeeper
    How to Install Apache ZooKeeper on Ubuntu 20.04

    Apache ZooKeeper is a high-performance service used to build distributed applications. It is used by a cluster to maintain shared data with robust syn...

  • https://t.me/clickhouse_ru
    в общем это не как MySQL ;) xtrabackup —master-info; который сделает CHANGE MASTER TO ... START MYSQL SLAVE;
    и алга =)
  • https://t.me/clickhouse_ru
    хм, у меня больше половины таблиц в collapsingmergetree, прям стало любопытно, как оно переживет
  • https://t.me/clickhouse_ru
    @SvPupok #221563 06:22 AM, 09 Jun 2021
    репликация нужна на случай аппаратного сбоя
  • https://t.me/clickhouse_ru
    разницы между CollapsingMergeTree и обычным MergeTree нет, они как были так и осались
    это ЛОКАЛЬНЫЕ Таблицы в рамках одного сервера
    они не реплицируемы
    чтобы были реплицируемые
    надо чтобы серверов было УЖЕ ДВА
    и чтобы был ZK
    и надо конвертировать в ReplicatedCollapsingMergeTree

    вы видимо вообще не понимаете как репликация в clickhouse Работает ...
  • https://t.me/clickhouse_ru
    поэтому и спрашиваю) у меня просто бэк в postgres и oracle) пока читаю официальную документацию, попробую на тесте поэксперементировать
  • https://t.me/clickhouse_ru
    @Gma25 #221566 06:26 AM, 09 Jun 2021
    Всем привет! в клике конструкция with почему-то не работает , загуглить не могу не переходит на сайт clickhouse. Подскажите в чем дело, синтаксис with tab as (select)..
  • https://t.me/clickhouse_ru
    ок. тогда попробуйте прочитать несколько раз https://clickhouse.tech/docs/en/engines/table-engines/mergetree-family/replication/
    Data Replication | ClickHouse Documentation

    Data Replication Replication is only supported for tables in the MergeTree family: ReplicatedMergeTree ReplicatedSumming

  • @Nikolay_N_Nesterov #221569 06:27 AM, 09 Jun 2021
    Подскажите, в связи с этим: "ClickHouse release 21.6, 2021-06-05: Do not upgrade if you have partition key with UUID", нужно что-то делать? Т.е. нужно ждать следующий релиз, или что тут имеется ввиду?
  • https://t.me/clickhouse_ru
    эта опция появилась не так давно, какая у вас версия clickhouse?
  • https://t.me/clickhouse_ru
    @Gma25 ↶ Reply to #221570 #221571 06:29 AM, 09 Jun 2021
    я не знаю
  • https://t.me/clickhouse_ru
    да, лучше подождать
  • https://t.me/clickhouse_ru
    SELECT Version():
  • https://t.me/clickhouse_ru
    @Gma25 ↶ Reply to #221573 #221574 06:29 AM, 09 Jun 2021
    19.16.2.2
  • https://t.me/clickhouse_ru
    очень старая версия
    очень много фич с доки текущей работать не будут

    WITH (SELECT ...) точно
  • https://t.me/clickhouse_ru
    @Gma25 ↶ Reply to #221575 #221576 06:30 AM, 09 Jun 2021
    ((((((((((((((((((((((((((((((((((((((понятно, спасибо
  • https://t.me/clickhouse_ru
    У меня тоже не работает читаю из кеша
  • https://t.me/clickhouse_ru
    @mikhailberg #221579 07:32 AM, 09 Jun 2021
    Здравствуйте!
    подскажите, нужно выполнить сверхбольшую аггрегацию, получаю DB::Exception: Memory limit (for query) exceeded: would use 18.68 GiB (attempt to allocate chunk of 134311947 bytes), maximum: 18.63 GiB: While executing AggregatingTransform.
    Как можно это выполнить ?
  • https://t.me/clickhouse_ru
    Restrictions on Query Complexity | ClickHouse Documentation

    Restrictions on Query Complexity Restrictions on query complexity are part of the settings. They are used to provide saf

  • https://t.me/clickhouse_ru
    DB::Exception: Received from host:9440. DB::Exception: Memory limit (for query) exceeded: would use 18.63 GiB (attempt to allocate chunk of 4194776 bytes), maximum: 18.63 GiB: While executing SourceFromNativeStream.

    теперь такое
  • там надо поставить в два раза больше чем разрешено памяти
    в одной сессии настройку сделал?
  • https://t.me/clickhouse_ru
    set max_bytes_before_external_group_by = 10000000000000000000
  • max_bytes_before_external_group_by=max_memory_usage
    max_memory_usage=2*max_memory_usage
  • @dnzhirnov #221585 07:38 AM, 09 Jun 2021
    Коллеги, добрый день! Я хочу передавать в quantile число, которое вычисляется в запросе. Я его вычисляю в запросе, но при попытке его установить выходит ошибка Parameters to aggregate functions must be literals.:
    Как то можно это сделать?
  • https://t.me/clickhouse_ru
    ааа, я понял )
    спасибо)
  • https://t.me/clickhouse_ru
    так не получится
    квантиль константой должен быть относительно всей выборки
    а не индивидуальный

    вытащите отдельно SCT_index в пером запросе вместо квантиля

    а дальше сделайте серию отдельных запросов для каждого SCT_index
  • Спасибо! А не подскажите, если общий размер базы в КХ порядка 5 Тб и я хочу сделать одну реплику, то, поднимая дополнительные zookeeper на других серверах как понять сколько под него оперативы оптимально будет?
  • https://t.me/clickhouse_ru
    "поднимая дополнительные zookeeper" не очень понятно что имеете ввиду
    данные в zookeeper не шардятся все инстансы зукипер имеют одинаковые данные и синхронизируют изменения между собой

    объем оперативы ZK зависит от интенсивности INSERT вставок в clickhouse...
    ZK используется только для передачи метаданных новых партов и регистрации реплик
    ну и для Distributed DDL ( запросы которые модицируют структуру и выполнятся на ON CLUSTER )
    Сами данные по http забираются репликой самостоятельно с той реплики которая зарегистрировала новый кусок данных (data part, см. system.parts в документации)

    5 Терабайт, это прям вам надо отдельно скопировать и потом уже реплику аттачить...
  • >5 Терабайт, это прям вам надо отдельно скопировать и потом уже реплику аттачить...

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

    - создать replicated MT на новой ноде
    - system stop replica
    - положить файлы в детачед и аттачнуть
    - start repiica?
  • Понял, спасибо, а про доп. ZK имел в виду,что везде же советуют минимум 3 ZK ноды использовать.
  • https://t.me/clickhouse_ru
    по идее да, но фиг знает как на практике я лично 5Tb Не пробовал =) придет denny и скажет что я ерунду говорю
  • https://t.me/clickhouse_ru
    ок, это должны быть 3 одинаковые ноды связанные в ZK кластер
    и еще они должны быть отдельно от clickhouse чтобы не бороться с ним за диск и CPU
    потому что ZK при интенсивной вставке (в смысле кол-во запросов INSERT а не строк) вполне себе способен выжирать CPU и диск
  • https://t.me/clickhouse_ru
    @unamedrus #221596 08:12 AM, 09 Jun 2021
    А в чем проблема дать кх просто по сетке передать эти 5тб, можно чуть придушить только кол-во партов скачиваемых одновременно
  • да, ждем. у меня вопрос скорее по поводу того что когда диски на массиве, там можно клонировать и благодаря дедупу, это будет в делом секунд.
  • ^
    бывает 5, бывает 100, бывает много таблиц с партициями...
  • https://t.me/clickhouse_ru
    Ну мы же конкретную задачу сейчас решаем про 5 тб :)
  • https://t.me/clickhouse_ru
    ну тогда да, просто аттачим реплику и ждем...
  • ну я "в догонку" спросил
    у нас например холодные данные на SHared SAN/NFS, и там копирование на уровне ФС моментальное изза дедупа на сторадже, а создание и запись файла нет

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

    https://clickhouse.tech/docs/en/sql-reference/statements/alter/partition/#alter_attach-partition

    Если на всех репликах туда подложить парт, то кх на всех репликах оттуда его заатачит
  • https://t.me/clickhouse_ru
    @unamedrus #221603 08:19 AM, 09 Jun 2021
    Либо ждать zero copy replication over NFS
  • 【D】【J】 in ClickHouse не тормозит

    >5 Терабайт, это прям вам надо отдельно скопировать и потом уже реплику аттачить... вот это меня всегда интересовало, если есть клонированные данные на новой ноде, можно ли приаттачить реплику. сработает ли подобный процесс? - создать replicated MT на новой ноде - system stop replica - положить файлы в детачед и аттачнуть - start repiica?

  • https://t.me/clickhouse_ru
    Мне кажется так :

    ALTER TABLE xxxx DETACH PARTITION 'xxxxxx'

    подкладываем парты в новой реплике

    ALTER TABLE xxxx ATTACH PARTITION 'xxxxxx'
  • https://t.me/clickhouse_ru
    @unamedrus #221606 08:23 AM, 09 Jun 2021
    Но это на относительно новых версиях только
  • https://t.me/clickhouse_ru
    @dzarlax #221607 08:33 AM, 09 Jun 2021
    Привет! Подскажите пожалуйста, а как правильно создать массив, состоящий из true и false?
  • https://t.me/clickhouse_ru
    @dzarlax #221608 08:34 AM, 09 Jun 2021
    При обращении к массиву array(false, true) он почему-то ищет такие колонки
  • https://t.me/clickhouse_ru
    @dzarlax #221609 08:37 AM, 09 Jun 2021
    так же при обращении к массиву [true,false]
  • https://t.me/clickhouse_ru
    @pic_Nick77 #221610 08:39 AM, 09 Jun 2021
    Подскажите, пожалуйста, правильный алгоритм действий. Нужно в КХ иметь словарь, который должен обновляться полностью (около 1млн записей) из запроса в том же КХ. Словарь нужен на всех нодах кластера. Как это правильнее организовать?
  • https://t.me/clickhouse_ru
    в кх нет boolean можете использовать 0 1 вместо
  • сделайте view и в качестве источника укажите ее
    ну и сделайте словарь on cluster
  • https://t.me/clickhouse_ru
    создайте таблицу отреплицированную на все сервера и направьте ваш словарь на эту таблицу
  • https://t.me/clickhouse_ru
    @unamedrus #221614 08:40 AM, 09 Jun 2021
    либо через view как подсказали
  • https://t.me/clickhouse_ru
    А как словарь направить на таблицу? Я из доки что-то не понял...
  • https://t.me/clickhouse_ru
    источник словаря CLICKHOUSE
  • https://t.me/clickhouse_ru
    @unamedrus #221617 08:42 AM, 09 Jun 2021
    там должно быть
  • https://t.me/clickhouse_ru
    понял, спасибо!
  • Источники внешних словарей | Документация ClickHouse

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

  • https://t.me/clickhouse_ru
    Ага, спасибо, увидел.
  • https://t.me/clickhouse_ru
    @pic_Nick77 #221621 08:45 AM, 09 Jun 2021
    И в качестве table я указываю имя реплицироанной таблицы на ноде?
  • https://t.me/clickhouse_ru
    Да
  • да хоть какой, можно и не реплицированной, можно и view, только будьте внимательны с тем, что все поля в словаре должны совпадать с полями таблицы
  • https://t.me/clickhouse_ru
    С view не очень понял. Вы имеете ввиду материализованную?
  • нет
    вы же хотели изначально к запросу обращаться словарем.
    просто так указать в качестве источника запрос нельзя
    но можно создать view обычную и в качестве источника использовать ее.
  • https://t.me/clickhouse_ru
    Обычная view которая через remote table function будет смотреть на таблицу на другом сервере
  • @vvvjhaq #221627 08:49 AM, 09 Jun 2021
    Это удобно так как во view можно указать только те поля, которые нужны для словаря, а просто так словарь с частью полей из таблицы, вроде бы еще создавать нельзя
  • https://t.me/clickhouse_ru
    У меня запрос, который создаёт набор данных для словара с агрегацией. Я как раз и хотел сохранить эту промежуточную агрегацию для ускорения.
  • https://t.me/clickhouse_ru
    @pic_Nick77 #221629 08:51 AM, 09 Jun 2021
    А если я это сделаю через view, он же будет каждый раз выполняться?
  • https://t.me/clickhouse_ru
    @unamedrus #221630 08:51 AM, 09 Jun 2021
    Да
  • да, ну и выставите lifetime такой чтобы он обновлялся при каждом обращении
  • https://t.me/clickhouse_ru
    Да мне как раз не нужно, чтоб при каждом обращении. Я его буду раз в час обновлять.
  • выставьте lifetime 3600(там в сек если я не путаю) и каждый час ваш словарь будет обращаться к view и делов
  • https://t.me/clickhouse_ru
    А. Я похоже Вас не понял. Т.е. такой словарь в себе хранит данные?
  • в зависимости от способа размещения в памяти, но классически это в оперативной памяти
  • https://t.me/clickhouse_ru
    Большинство словарей хранят данные в себе, за исключением direct/cache
  • https://t.me/clickhouse_ru
    @pic_Nick77 #221637 08:57 AM, 09 Jun 2021
    Вот теперь всё встало на свои места. Спасибо.
  • @110248354 #221638 09:05 AM, 09 Jun 2021
    Добрый день. Коллеги, плагину для графаны обязательно нужен столбец timeseries или DateTime в таблице? У меня есть таблица с датой и суточными значениями, как быть? Для timeseries данных, с таблицей всë отлично
  • https://t.me/clickhouse_ru
    Сделал словарь с source clickhouse через конфиг. При его загрузке командой system reload dictionary получил ошибку Code: 396, e.displayText() = DB::Exception: Limit for result exceeded, max rows: 10.00 thousand, current rows: 65.50 thousand (version 21.4.7.3 (official build))
    как мне отключить это ограничение для загрузки словаря?
  • https://t.me/clickhouse_ru
    Что то то очень странное. покажите весь конфиг для словаря (атрибуты можно вырезать)
  • https://t.me/clickhouse_ru
    <source>
    <clickhouse>
    <host>localhost</host>
    <port>9000</port>
    <user>default</user>
    <password>****</password>
    <db>db_shema</db>
    <table>db_table</table>
    </clickhouse>
    </source>
    <layout>
    <hashed />
    </layout>
  • https://t.me/clickhouse_ru
    А,

    SELECT * FROM system.settings WHERE changed;
  • https://t.me/clickhouse_ru
    @pic_Nick77 #221643 09:22 AM, 09 Jun 2021
    Да, там есть max_result_rows,10000
  • https://t.me/clickhouse_ru
    ну убирайте тогда из default юзера
  • https://t.me/clickhouse_ru
    @pic_Nick77 #221645 09:23 AM, 09 Jun 2021
    Вообще ограничение убрать?
  • https://t.me/clickhouse_ru
    @unamedrus #221646 09:24 AM, 09 Jun 2021
    Для default юзера да, а так можете переставить для более конкретного
  • https://t.me/clickhouse_ru
    @pic_Nick77 #221647 09:25 AM, 09 Jun 2021
    Сервер надо будет рестартовать?
  • https://t.me/clickhouse_ru
    @unamedrus #221648 09:39 AM, 09 Jun 2021
    Думаю придется, тк внутренний юзер при загрузке подтягивает такую настройку
  • https://t.me/clickhouse_ru
    @87558923 #221649 09:41 AM, 09 Jun 2021
    Добрый день. Получая ошибку DB::Exception при вставке в Distributed-таблицу, можно ли гарантировать, что данные не записались совсем, или они могли записаться частично? Примеры ошибок: Table is in readonly mode, ZooKeeper session has been expired, Cannot allocate block number in ZooKeeper: Coordination::Exception: Connection loss, Unknown status, client must retry. Reason: Connection loss
  • https://t.me/clickhouse_ru
    @MrKMV #221650 09:42 AM, 09 Jun 2021
    Всем доброго дня подскажите, почему неправильно вычисляются timezone'ы?

    вот запрос

    SELECT now(), timeZone(), timezoneOf(now()), toDateTime(now(), 'Europe/London'), toDateTime(now(), 'Europe/Moscow');

    вот результаты
    2021-06-09 09:40:32,Europe/Moscow,Europe/Moscow,2021-06-09 09:40:32,2021-06-09 09:40:32
  • https://t.me/clickhouse_ru
    @MrKMV #221651 09:43 AM, 09 Jun 2021
    разве toDateTime для разных часовых поясов не должен возвращать разное время?
  • https://t.me/clickhouse_ru
    ошибка в datagrip
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #221650 #221653 09:45 AM, 09 Jun 2021
    А toTimeZone(now(), 'Europe/London') что говорит?
    Всё-таки toDateTime нужен не для преобразования таймзоны, а для преобразования типа DateTime
  • https://t.me/clickhouse_ru
    @MrKMV ↶ Reply to #221652 #221654 09:47 AM, 09 Jun 2021
    так и есть, спасибо большое))
  • https://t.me/clickhouse_ru
    Если очень нужно посмотреть время в нужной timezone в datagrip, это можно сделать при помощи toString(now(), 'Europe/London')
  • https://t.me/clickhouse_ru
    Wrong timezone at DataGrip + clickhouse : DBE-8243

    Screenshot with problem at attachment. (shows DateTime at UTC timezone, but my timezone (and timezone at server) is Europe/Samara) From client library from script connection: D, [2019-04-29T03:33:02.797556 #3441] DEBUG -- : SQL (10.4ms) SELECT timezone(), now(); 1 row in set. Elapsed: 0.055ms. Processed: 1 rows, 1 Byte (18.34 thousand rows/s, 17.91 KB/s) #ᐸClickhouse::Connection::Query::ResultSet:0x00007fc8e001bd90 @names=["timezone()", "now()"], @rows=[["Europe/Samara", "2019-04-29 03:33:02"]], @types=["String", "DateTime"]ᐳ DB-191.6707.12, JRE 1.8.0_202-release-1483-b44x64 JetBrains s.r.o, OS Mac OS X(x86_64) v10.14.4, screens 1440x900; Retina…

  • https://t.me/clickhouse_ru
    @Duolix #221659 10:32 AM, 09 Jun 2021
    Всем привет
    Мутации не производятся (delete). Просто висят в system.mutations
    С чем может быть связано, подскажите пож
    Перезапуск кластера не помог
  • https://t.me/clickhouse_ru
    посмотреть в эррор логах
  • https://t.me/clickhouse_ru
    @Duolix ↶ Reply to #221660 #221661 10:41 AM, 09 Jun 2021
    Спасибо, буду копать там
  • https://t.me/clickhouse_ru
    ZK возможно троттлит запросы, попробуйте увеличить настройку у ЗК globalOutstandingLimit до 10000 н-р.
  • @globgor #221663 11:19 AM, 09 Jun 2021
    Всем привет
    Как с таблицы в клике надергать 1000 строк рандомно?
  • https://t.me/clickhouse_ru
    @pic_Nick77 #221664 11:20 AM, 09 Jun 2021
    Подскажите, для атрибута словаря
    <attribute>
    <name>startdate</name>
    <type>Nullable(Date)</type>
    <null_value></null_value>
    </attribute>
    как правильно описать null_value, чтобы возвращался NULL при отсутствии записи?
    Пробовал <null_value>null</null_value> и <null_value>NULL</null_value> - ошибка при загрузке словаря.
  • словари not null
    хотя новые версии вроде бы nullable
  • https://t.me/clickhouse_ru
    мм.... не понял.
  • в старых версиях точно нельзя было nullable значения складывать
  • https://t.me/clickhouse_ru
    Само-то значение может быть null. Проблема с отсутствующим значением.
  • https://t.me/clickhouse_ru
    @pic_Nick77 #221669 11:23 AM, 09 Jun 2021
    версия 21.4
  • dictGetOrNull('dict_name', attr_name, id_expr)
  • https://t.me/clickhouse_ru
    Это да. Но вот чтоб просто dictGet
  • https://t.me/clickhouse_ru
    @75280400 #221672 11:34 AM, 09 Jun 2021
    А почему на SQL.RU в форумах нет ветки для CLickhouse ?
  • https://t.me/clickhouse_ru
    а посмотрите внимательнее в ветке "NoSQL, Big Data" ;)
  • https://t.me/clickhouse_ru
    в этих ветках иногда чтото мелькает, но мне кажется Clickhouse заслуживает отдельную ветку
  • @vvvjhaq #221675 11:42 AM, 09 Jun 2021
    Подскажите какую настроечку сделать, чтобы парты не так быстро пытались скачиваться на реплику. У нас много частых и больших вставок и постоянно в логах реплики(куда не пишем) вот такие варнинги:
    Checking part 069cd908184690fd470ee7527cfc59aa_15221_15
    600_85
    2021.06.09 11:07:42.016148 [ 56248 ] {} <Warning> db.tb (ReplicatedMergeTreePartCheckThread): Checking if anyone has a part 069cd908184690fd470ee7527
    cfc59aa_15221_15600_85 or covering part.
    2021.06.09 11:07:42.020553 [ 56248 ] {} <Warning> db.tb (ReplicatedMergeTreePartCheckThread): Found parts with the same min block and with the same m
    ax block as the missing part 069cd908184690fd470ee7527cfc59aa_15221_15600_85. Hoping that it will eventually appear as a result of a merge
  • https://t.me/clickhouse_ru
    видимо не такие они у вас и большие ... но очень частые

    если мерж успевает сработать до того как реплика новый парт фетчить начинает
  • есть такое(
  • есть какая нибудь delay настройка?
  • https://t.me/clickhouse_ru
    уменьшить частоту вставок и увеличить размер никак? ;)
  • к сожалению, такая проблема на одной таблице, такая "логика"(
  • https://t.me/clickhouse_ru
    C zk всё понятно, на нём проблемы понятны. Интересует именно поведение КХ при подобных ошибках, не обязательно даже связанных с zk. Можно ли гарантировать, что данные не записались совсем, или они могли записаться частично?
  • https://t.me/clickhouse_ru
    можно гарантировать что они ТОЧНО не записались

    запрос можно сделать на другом сервере в кластере, на котором таблица не в read-only

    основная гарантия
    что если сервер вернул ОК
    значит данные записались

    если нет, то не записались вообще

    есть конечно кейсы которые связаны с тем что блок в миллион записей пишется отдельно...
    https://clickhouse.tech/docs/en/operations/settings/settings/#settings-max_insert_block_size

    у вас за один INSERT больше миллиона записей вставляется или нет?

    SELECT * FROM system.settings WHERE name='max_insert_block_size';
    Settings | ClickHouse Documentation

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

  • https://t.me/clickhouse_ru
    За один insert меньше миллиона, несколько сот тысяч. Проблема в том, что получив ошибку Cannot allocate block number in ZooKeeper: Coordination::Exception: Connection loss, часть данных всё таки вставилась. Поэтому и возник вопрос как правильно обрабатывать ошибки, никогда нельзя быть уверенным, что данные не вставились, или на какие-то ошибки точно не вставились, а на какие-то не понятно.
  • https://t.me/clickhouse_ru
    @hatedabamboo #221684 12:06 PM, 09 Jun 2021
    Привет. Подскажите, пожалуйста, в чём ошибка. Пытаюсь сделать attach table, получаю
    Code: 27. DB::Exception: Received from localhost:9000. DB::Exception: Cannot parse input: expected metadata format version: 1\n at end of stream..
  • https://t.me/clickhouse_ru
    @hatedabamboo #221685 12:07 PM, 09 Jun 2021
    Для указанной таблицы format_version.txt прописан 1.
  • https://t.me/clickhouse_ru
    вы ее в клиенте получили? или в логах нашли?
  • https://t.me/clickhouse_ru
    Ошибку клиент получил, обращался по HTTP
  • Сделал всё по этим гайдам, но на обоих серверах КХ не запускается и пишет следующую ошибку в лог:
    <Error> Application: Not found: remote_servers.logger.shard.replica.host
  • @KevinMort #221689 12:20 PM, 09 Jun 2021
    Всем привет! Кто-нибудь подскажет, как можно автоматизировать масштабирование clickhouse?
  • https://t.me/clickhouse_ru
    @evsign #221690 12:21 PM, 09 Jun 2021
    Всем привет. А может быть можно как-то посмотреть текущую скорость вставки в кх в таблицу?
    Суть в том, что у меня ща работает комманда которая через clickhouse-client вставляет данные, но оно чёт медленно работает и я хочу понять где тормозит.

    Пытался найти где-нибудь в system табличках, но чёт не нашёл:(

    Вставляю вот по такой схеме https://kb.altinity.com/altinity-kb-schema-design/altinity-kb-jsonasstring-and-mat.-view-as-json-parser

    zcat file.out.gz | tail -n +2 | clickhouse-client --query "INSERT INTO entrypoint FORMAT JSONAsString"
  • https://t.me/clickhouse_ru
    remote_servers покажите из /var/lib/clickhouse/preprocessed_configs/config.xml?
  • https://t.me/clickhouse_ru
    @evsign ↶ Reply to #221690 #221692 12:25 PM, 09 Jun 2021
    По топу машина почти не нагружена.
    load average: 1.88, 1.93, 2.01
  • Как можно автоматически настроить конфиги, если добавил ещё 2 сервера к примеру?
  • https://t.me/clickhouse_ru
    system.processes
  • на мастере:
    <remote_servers>
    <logger>
    <shard>
    <replica>
    <internal_replication>true</internal_replication>
    <port>9000</port>
    <user>мой юзер</user>
    <password>мой пароль</password>
    </replica>
    <replica>
    <host>айпи слейв сервера тут</host>
    <port>9440</port>
    <user>мой юзер</user>
    <password>мой пароль</password>
    <secure>1</secure>
    </replica>
    </shard>
    </logger>
    на слейве:
    <remote_servers>
    <logger>
    <shard>
    <replica>
    <internal_replication>true</internal_replication>
    <port>9000</port>
    <user>мой юзер</user>
    <password>мой пароль</password>
    </replica>
    <replica>
    <host>айпи мастер сервера тут</host>
    <port>9440</port>
    <user>мой юзер</user>
    <password>мой пароль</password>
    <secure>1</secure>
    </replica>
    </shard>
    </logger>
  • @vvvjhaq #221696 12:27 PM, 09 Jun 2021
    ? host?
  • https://t.me/clickhouse_ru
    @xA1EF ↶ Reply to #221689 #221697 12:28 PM, 09 Jun 2021
    Сам думаю над этим вопросом. Похоже, никаких изящных механизмов для этого нет
  • https://t.me/clickhouse_ru
    везде host нужен
    внутри <replica>
  • https://t.me/clickhouse_ru
    kubernetes + clickhouse-operator + aws eks + autoscaling
  • https://t.me/clickhouse_ru
    ansible?
  • https://t.me/clickhouse_ru
    @evsign ↶ Reply to #221694 #221701 12:29 PM, 09 Jun 2021
    ну там чисто written_rows, written_bytes есть из интересного.
    Я думал мб где-нить есть прям счётчик rows/sec
  • У меня задача нетривиальная, нужно при росте нагрузки увеличивать число нод, а при снижении уменьшать)
  • https://t.me/clickhouse_ru
    он был бы, если бы вы запустили clickhouse-client с
    --progress print progress even in non-interactive mode
  • https://t.me/clickhouse_ru
    @unamedrus #221704 12:30 PM, 09 Jun 2021
    В новых версиях
  • https://t.me/clickhouse_ru
    @evsign ↶ Reply to #221703 #221705 12:30 PM, 09 Jun 2021
    оооо, спасибо! На след файле так запущу:)
  • https://t.me/clickhouse_ru
    Ждать production ready zero copy replication over s3
  • https://t.me/clickhouse_ru
    @xA1EF #221707 12:31 PM, 09 Jun 2021
    А такое планируется?
  • https://t.me/clickhouse_ru
    для s3 уже есть, но сыровато
  • https://t.me/clickhouse_ru
    @xA1EF #221709 12:32 PM, 09 Jun 2021
    А где почитать?
  • шел 13ый час моих тщетных попыток и наконец заработало. Спасибо!)
  • https://t.me/clickhouse_ru
    S3 zero copy replication by ianton-ru · Pull Request #16240 · ClickHouse/ClickHouse

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

  • https://t.me/clickhouse_ru
    @xA1EF #221712 12:33 PM, 09 Jun 2021
    Благодарю
  • https://t.me/clickhouse_ru
    @unknown_name13 #221713 12:39 PM, 09 Jun 2021
    #вакансия #удаленка #dba #clickhouse
    ищем крутого dba. clickhouse или с желанием изучить. зарплата от 180 обсуждаемая. Любой город, можно в офисе(мск сити), если хочется. тк рф, дмс, все дела. ищем активных и целеустремленных :-) по вопросам в лс
  • Это обширная тема, если планируется более-менее серьезно использовать КХ.

    Если нет бюджета на разработчиков и/или девопсов-sre, то лучше просто пойти в клауд.

    Масштабирование ведь предполагает не только расширение кластера (это проще), но и сужение (это сложнее). Также нужно будет делать мониторинг и обслуживание, что предполагает операционную работу.
  • Я мидл разработкик, начинающий девопс, множество задач кинули на меня)
  • @KevinMort #221716 12:43 PM, 09 Jun 2021
    Я представляю что нужно для всего этого, просто периодически ищу новую информацию, вдруг кто-то работал с этим, и знает наиболее подходящее решение
  • Тогда выглядит, будто надо просто решить какую-то конкретную проблему, а не строить мини облако. Расскажите про свой стек, и что конкретно нужно сделать
  • https://t.me/clickhouse_ru
    Если есть множество задач, то о скалировании кластера вниз (мы тут говорим про кол-во шардов, с репликам попроще) лучше тогда вообще не думать :)
    Очень грустно и муторно.
  • @YaroslavMakarov #221720 01:05 PM, 09 Jun 2021
    Всем привет! Есть ли возможность как-то узнать получили данные со всех шардов или нет в случае выставленного skip_unavailable_shards=1?
  • https://t.me/clickhouse_ru
    @seriych #221721 01:15 PM, 09 Jun 2021
    Привет. После обновления с 19.14 на 21.3 на Distributed таблицах limit by выдает ошибку на колонках-константах, если их не добавлять в limit by.
    Так работает:
    SELECT 1 as test, id
    FROM tableMergeTree
    LIMIT 1 BY id;Так работает:
    SELECT 1 as test, id
    FROM tableDistributed
    LIMIT 1 BY id, test;Так ошибка:
    SELECT 1 as test, id
    FROM tableDistributed
    LIMIT 1 BY id;
    Code: 8, e.displayText() = DB::Exception: Cannot find column `1` in source stream (version 21.3.10.1 (official build))Может есть какая-то настройка или костыль, чтобы не писать константные колонки в limit by? Настройка compile_expressions не влияет.
  • https://t.me/clickhouse_ru
    @evsign ↶ Reply to #221703 #221722 01:16 PM, 09 Jun 2021
    что-то оно не выводит ничего. Параметр такой у комманды есть, но в std out ничего не выводит
  • @KevinMort #221723 01:17 PM, 09 Jun 2021
    А в мониторинге клика можно как-то определить, сколько ресурсов тратит определенный пользователь?
  • https://t.me/clickhouse_ru
    root@LAPTOP-319G0GMQ:/var/lib/clickhouse/data/default/t_json_2# clickhouse-client --progress --query "SELECT sum(number) FROM numbers(10000000000)"
    → Progress: 2.38 billion rows, 19.05 GB (947.24 million rows/s., 7.58 GB/s.) ████████████████████████████████████▏
  • https://t.me/clickhouse_ru
    @unamedrus #221725 01:17 PM, 09 Jun 2021
    Какая версия?
  • https://t.me/clickhouse_ru
    @evsign #221726 01:18 PM, 09 Jun 2021
    мож оно чисто для селектов работает?
    ClickHouse client version 21.6.3.14 (official build).
  • https://t.me/clickhouse_ru
    @evsign #221727 01:19 PM, 09 Jun 2021
    вот так запускал
    zcat file.out.gz | tail -n +1004 | head -n 10000 | clickhouse-client --progress --query "INSERT INTO entrypoint FORMAT JSONAsString"
  • https://t.me/clickhouse_ru
    @unamedrus #221728 01:19 PM, 09 Jun 2021
    Сомнительно
  • https://t.me/clickhouse_ru
    @unamedrus #221731 01:20 PM, 09 Jun 2021
    clickhouse-client --progress --query "INSERT INTO TABLE FUNCTION null('key UInt32') SELECT number FROM numbers(10000000000)"
    ↗️ Progress: 1.44 billion rows, 11.54 GB (256.10 million rows/s., 2.05 GB/s.) █████████████████████▊
  • https://t.me/clickhouse_ru
    @unamedrus #221732 01:21 PM, 09 Jun 2021
    Вы вообще можете еще через table function file вставлять
  • https://t.me/clickhouse_ru
    @evsign #221733 01:21 PM, 09 Jun 2021
    А оно поймёт gz?
  • https://t.me/clickhouse_ru
    @unamedrus #221734 01:21 PM, 09 Jun 2021
    Да, конечно
  • https://t.me/clickhouse_ru
    @evsign #221735 01:22 PM, 09 Jun 2021
    о ,круто, попробую!
  • https://t.me/clickhouse_ru
    @evsign #221736 01:22 PM, 09 Jun 2021
    а не, у меня в первой строчке там мусорная строка одна и данные только со второй начинаются
  • https://t.me/clickhouse_ru
    Ну можно настроить

    │ input_format_allow_errors_num │ 0 │ 0 │ Maximum absolute amount of errors while reading text formats (like CSV, TSV). In case of error, if at least absolute or relative amount of errors is lower than correspondi
  • https://t.me/clickhouse_ru
    @evsign ↶ Reply to #221737 #221738 01:24 PM, 09 Jun 2021
    Спасибо! Попробую
  • https://t.me/clickhouse_ru
    @unamedrus #221739 01:25 PM, 09 Jun 2021
    написано ток про CSV и TSV но вроде на JSONEachRow тоже работает
  • https://t.me/clickhouse_ru
    @evsign ↶ Reply to #221737 #221741 02:14 PM, 09 Jun 2021
    Выдаёт: Input format doesn't allow to skip errors
    :((

    У меня там JSONAsString, а пропускать ошибки можно только с CSV, TabSeparated, TSKV, JSONEachRow, Template, CustomSeparated and Protobuf, судя по доке. Поздно увидел
  • https://t.me/clickhouse_ru
    Хм, а jsonEachRow не подходит вам?
  • https://t.me/clickhouse_ru
    @evsign #221743 02:22 PM, 09 Jun 2021
    не, там жсонины разделены просто пробелом
  • https://t.me/clickhouse_ru
    @unamedrus #221744 02:22 PM, 09 Jun 2021
    Или можно вообще попробовать импортировать просто как строки
  • https://t.me/clickhouse_ru
    @unamedrus #221745 02:22 PM, 09 Jun 2021
    Понятно
  • https://t.me/clickhouse_ru
    @evsign #221746 02:24 PM, 09 Jun 2021
    эх, видимо без прогресса останусь. Но странно, что у меня --progress не работает. На простых селектах тож не пашет, вообще никак не пашет впринципе
  • https://t.me/clickhouse_ru
    тяжко
    можно попробовать через https://github.com/chmln/sd
    попробовать в JSONEachRow формат конвертировать
    GitHub - chmln/sd: Intuitive find & replace CLI (sed alternative)

    Intuitive find & replace CLI (sed alternative). Contribute to chmln/sd development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @evsign ↶ Reply to #221747 #221748 02:27 PM, 09 Jun 2021
    да я уже легче по изначальной схеме за 3 часа импортну всё)
    Я изначально пытался всё через jq трансформировать ещё, но оно вообще еле тащилось
  • @ameishutovich #221749 03:10 PM, 09 Jun 2021
    Добрый вечер!
    У меня вопрос по массивам. Есть ли какое-нибудь решение для ситуации, когда нужно хранить разные типы данных в одном массиве? По документации это не разрешено, но может есть обходной путь?
  • https://t.me/clickhouse_ru
    приведите всё в String 🤷‍♂️
  • https://t.me/clickhouse_ru
    @Sablast #221751 03:12 PM, 09 Jun 2021
    или подумайте над тем - а действительно ли нужно всё хранить в одном массиве? почему бы не создать несколько для Float/Int/String?
  • @ameishutovich #221752 03:12 PM, 09 Jun 2021
    была такая идея, но будет сложно писать WHERE conditions in запросе с цифровыми полями
  • некоторые поля динамические, контроль по из созданию у юзера
  • https://t.me/clickhouse_ru
    эммм, не вижу проблемы. В КХ есть на такое nested типы (на ваш запрос)
    https://clickhouse.tech/docs/en/sql-reference/data-types/nested-data-structures/nested/
    Nested(Name1 Type1, Name2 Type2, ...) | ClickHouse Documentation

    Nested(name1 Type1, Name2 Type2, …) A nested data structure is like a table inside a cell. The parameters of a nested da

  • спасибо! буду разбираться
  • https://t.me/clickhouse_ru
    @rvkggwp #221756 03:30 PM, 09 Jun 2021
    Всем привет, как в user.xml ограничить доступ к табилцам, не по фильтру, а просто к таблицам. И сразу встречный вопрос если ограничен доступ по фильтру к таблице, то влияет ли это на скорость выполнения запроса?
  • Еще есть map типы
  • Ну или можно делать EAV и в итоге писать очень сложные запросы...
  • https://t.me/clickhouse_ru
    если фильтр замедляет запрос
    например фильтр по полю у которого высокая кардинальность
    то да
  • https://t.me/clickhouse_ru
    @rvkggwp #221760 03:38 PM, 09 Jun 2021
    а можно ли пользователю, прописанному в user.xml выдать grant только к одной таблице? как это сделать? Когда делаю это через sql, то пишет user.xml only read
  • @SonFire #221761 03:49 PM, 09 Jun 2021
    Кто заливал через clickhouse-driver pd.DataFrame
    client.insert_dataframe("INSERT INTO dtr.test_table VALUES", chunk)
    Выдает ошибку
    AttributeError: 'float' object has no attribute 'encode'
    Хотя нету float значений в датафрейме

    Или как по другому можно залить датафрейм?
  • @helloworld2024 #221762 04:14 PM, 09 Jun 2021
    Всем привет, а можно ли как-то дебажить вьюхи из kafka table? Бывает застревает почему-то, данные в очереди, но mv не запускается
  • @helloworld2024 #221763 04:15 PM, 09 Jun 2021
    Либо, возможно, отдает ошибку
  • grant только для пользователей созданных через sql
    https://clickhouse.tech/docs/ru/operations/access-rights/#access-control
  • https://t.me/clickhouse_ru
    Для пользователя созданного в user.xml нельзя ограничить доступ по таблично ?
  • не задавался таким вопросом, но по логике нельзя, так как КХ не умеет редактировать users.xml, а GRANTы персистентные должны быть
  • https://t.me/clickhouse_ru
    Просто в user.xml можно указать allow_database и дать доступ к определенной базе, вот думал что есть такое же и для таблиц. Спасибо
  • https://t.me/clickhouse_ru
    Емнип нельзя
  • https://t.me/clickhouse_ru
    Можно создать такую же кафку рядом а потом делать туда селекты
  • https://t.me/clickhouse_ru
    Спасибо
  • ну селекты работают, что самое интересное, и даже работает insert into table select from queue,

    но вот mv почему зависает иногда, не переливает данные
  • https://t.me/clickhouse_ru
    Что в логах
  • так вот я и спрашиваю как дебажить, логи пустые, это локальный docker compose)
  • https://t.me/clickhouse_ru
    А если грепнуть по названии кафка таблицы
  • https://t.me/clickhouse_ru
    @unamedrus #221776 04:51 PM, 09 Jun 2021
    вы уровень логирования меняли?
  • https://t.me/clickhouse_ru
    @unamedrus #221777 04:51 PM, 09 Jun 2021
    оба лога, обычный и эррор
  • Неа, не менял, сча гляну, спасибо
  • https://t.me/clickhouse_ru
    @kopyl #221780 04:58 PM, 09 Jun 2021
    ayo
  • а, он в докере пишет в файл, работал лог, в следующий раз когда завистет, гляну в лог, благодарю
  • https://t.me/clickhouse_ru
    @kopyl #221782 05:04 PM, 09 Jun 2021
    Скажите, а на маке никак что ли не запустить CH?
  • https://t.me/clickhouse_ru
    Установка | Документация ClickHouse

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

  • https://t.me/clickhouse_ru
    @kopyl #221784 05:05 PM, 09 Jun 2021
    Сделал

    curl -O 'https://builds.clickhouse.tech/master/macos/clickhouse' && chmod a+x ./clickhouse
    sudo ./clickhouse install

    И ничего не работает
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221783 #221785 05:05 PM, 09 Jun 2021
    У вас Mac OS?
  • https://t.me/clickhouse_ru
    @kopyl #221786 05:08 PM, 09 Jun 2021
    brew tap arduanov/clickhouse тоже не работает

    Invalid formula: /usr/local/Homebrew/Library/Taps/arduanov/homebrew-clickhouse/clickhouse.rb
    clickhouse: undefined method `devel' for #<Class:0x00007f9e6eae0588>
    Error: Cannot tap arduanov/clickhouse: invalid syntax in tap!
  • https://t.me/clickhouse_ru
    у вас какой мак, на m1 ?
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221787 #221788 05:09 PM, 09 Jun 2021
    нет, Intel i5
  • https://t.me/clickhouse_ru
    @unamedrus #221789 05:09 PM, 09 Jun 2021
    Тогда работать должно.

    Что вы имеете в виду под ничего не работает&
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221789 #221790 05:10 PM, 09 Jun 2021
    curl -O 'https://builds.clickhouse.tech/master/macos/clickhouse' && chmod a+x ./clickhouse
    sudo ./clickhouse install
    sudo clickhouse start

    Этот набор команд неправильный для запуска clickhouse? Получается документация врет?
  • https://t.me/clickhouse_ru
    Политрук несомненно лжет. (по крайней мере так сообщается в листовках)

    Но если вы не сообщите что вы видите и какую реакцию получаете на ваши действия, то мы не сможем вам помочь.
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221791 #221792 05:15 PM, 09 Jun 2021
    Так я же скинул скриншот))))

    Или этого недостаточно?)
  • https://t.me/clickhouse_ru
    А вижу, пропустил
  • https://t.me/clickhouse_ru
    @bralbral #221794 05:17 PM, 09 Jun 2021
    Можно ли менять на лету конфигурацию таблицы из секции SETTINGS? Добавили новый volume и хотелось бы использовать политику хранения. Или нужно персоздавать?
  • https://t.me/clickhouse_ru
    @unamedrus #221795 05:18 PM, 09 Jun 2021
    Ну так там же ругается на -s /bin/bash

    nano /etc/init.d/clickhouse-server

    Попробуйте подправить его
  • https://t.me/clickhouse_ru
    можно,
    Единственное условие что бы новая полиси включала диски из старой
  • https://t.me/clickhouse_ru
    благодарю.
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221795 #221798 05:21 PM, 09 Jun 2021
    Не понимаю) Он пустой
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221795 #221799 05:22 PM, 09 Jun 2021
    Документация хороший программных продуктов должна быть self-explanatory, где все работает и не нужно ничего подправлять.

    Множество продуктов больших компаний таких как Google или Microsoft или не работают или работают отвратительно. Я надеялся, что продукты Яндекса будут исключением...

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

    А так это open source, документация соответственно тоже, мы будем рады если вы поможете улучшить ее.
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221800 #221801 05:24 PM, 09 Jun 2021
    Я понимаю
  • https://t.me/clickhouse_ru
    вот этот вариант точно работает - https://clickhouse.tech/docs/ru/development/build-osx/
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221802 #221803 05:26 PM, 09 Jun 2021
    Обязательно нужно иметь Xcode?
  • https://t.me/clickhouse_ru
    ClickHouse действительно хорошо отлажен и работает в двух окружениях: у Яндекса в продакшене (Linux) и может ещё у CloudFlare, и то это неточно, и у них скорее всего тоже Linux. Нативная работа ClickHouse на macOS разработчикам явно не интересна, учитывая существование докера. Если Вы хотите нативный кликхаус под мак, то готовьтесь его сами собирать, или страдать, или и то и другое :).
  • https://t.me/clickhouse_ru
    Достаточно command line tools и 16 Гб оперативы и 30+ Гб места на диске
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221805 #221806 05:29 PM, 09 Jun 2021
    Обидно(

    + 10 гб если найдется свободного места – уже хорошо
  • https://t.me/clickhouse_ru
    попробуйте из под юзера clickhouse

    /usr/bin/clickhouse-server --config-file=/etc/clickhouse-server/config.xml
  • https://t.me/clickhouse_ru
    ну тогда вам в докер, или позовите девопсов)
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221808 #221810 05:30 PM, 09 Jun 2021
    -bash: cd: /usr/bin/clickhouse-server: Not a directory
  • ну а толку что оно собирается, но при этом вылетает в работе?
  • https://t.me/clickhouse_ru
    clickhouse-server
    Это файл в /usr/bin/
  • https://t.me/clickhouse_ru
    Хз, у меня вроде работало и не вылетало, но я в продакшене на маке не юзал, и собирал с отключенным всем, что только можно
  • https://t.me/clickhouse_ru
    @unamedrus #221814 05:32 PM, 09 Jun 2021
    Так вылетает не сам кликхаус а su -s ругается на параметр, отставить панику
  • https://t.me/clickhouse_ru
    Собирал для m1 вот так: https://t.me/clickhouse_ru/193016
    Yuran in ClickHouse не тормозит

    Кстати, если кому-то вдруг интересно, то clickhouse под Apple Silicon собирается, но с таким патчем (одна из правок совершенно точно что-то сломает, но тут я особо ничего не могу поделать :)). https://pastebin.com/raw/CyWRjtsf

  • я пробовал ради интереса когда наткнулся на проблему в freebsd - не очень стабильно было. но с другой стороны вроде макос для продакшена наверное мало кто импользует
  • https://t.me/clickhouse_ru
    Речь про мак же была?
  • да
  • https://t.me/clickhouse_ru
    Вроде мастер фиксили для m1
  • @559528006 #221820 05:34 PM, 09 Jun 2021
    мак как я понимаю такая же не целевая ось
  • @559528006 #221821 05:34 PM, 09 Jun 2021
    вот и результат
  • https://t.me/clickhouse_ru
    @unknown_name13 #221822 05:35 PM, 09 Jun 2021
    #вакансия #удаленка #dba #clickhouse
    ищем крутого dba. в идеале на clickhouse или с желанием изучить. зарплата от 180 обсуждаемая. Любой город, можно в офисе(мск сити), если хочется. тк рф, дмс, все дела. ищем активных и целеустремленных :-) по вопросам в лс
  • https://t.me/clickhouse_ru
    Возможно, я честно говоря не особо следил :). Это было почти сразу после выхода маков на Apple Silicon
  • у меня на FreeBSD 19 и 21 версии работают, проблем не было пока. Нагрузка небольшая правда.
  • chown —recursive и sudo -s
    это в стартовом скрипте?
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221825 #221826 05:44 PM, 09 Jun 2021
    В каком стартовом?
  • я не помню где в макоси они расположены, в /etc/rc.d или еще где. Можно поискать whereis
  • https://t.me/clickhouse_ru
    В макоси же в launchd plist всё прописывается?
  • @dmitry_mosin #221830 05:50 PM, 09 Jun 2021
    Вот вообще не помню
  • https://t.me/clickhouse_ru
    @kopyl #221831 05:51 PM, 09 Jun 2021
    Еще вопрос. Запустил в докере и пытаюсь вне докера из clickhouse_driver в Python постучаться на бд.

    Получаю ошибку

    clickhouse_driver.errors.NetworkError: Code: 210. Connection refused (localhost:8123)

    При этом доступ из докера в бд есть
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #221831 #221832 05:51 PM, 09 Jun 2021
    с докера порт то вытащили на хост?
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221832 #221833 05:52 PM, 09 Jun 2021
    Не понял, что вы имеете в виду?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #221833 #221834 05:53 PM, 09 Jun 2021
    ну чтобы подключаться по сети к приложению в докере нужно порт из этого докера вытащить на хост, либо в случае osx можно попробовать ломиться на ip вм, но это уже такое себе
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221834 #221835 05:53 PM, 09 Jun 2021
    Пошел гуглить, спасибо
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #221835 #221836 05:53 PM, 09 Jun 2021
    ключ -p при запуске докер контейнера
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221836 #221837 05:56 PM, 09 Jun 2021
    Странно...

    docker stop unknown shorthand flag: 'p' in -p
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #221837 #221838 05:57 PM, 09 Jun 2021
    строку запуска покажите
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221838 #221839 05:57 PM, 09 Jun 2021
    docker start -p clickhouse-server
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #221839 #221840 05:59 PM, 09 Jun 2021
    давайте хотя бы так:
    docker run -d -p8123:8123 yandex/clickhouse-server

    А вообще на докерхабе есть более полная инструкция
    https://hub.docker.com/r/yandex/clickhouse-server/
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221840 #221841 06:00 PM, 09 Jun 2021
    Не подключается из Python все равно
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #221841 #221842 06:01 PM, 09 Jun 2021
    ошибка какая?
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221842 #221843 06:01 PM, 09 Jun 2021
    clickhouse_driver.errors.UnexpectedPacketFromServerError: Code: 102. Unexpected packet from server None:None (expected Hello or Exception, got Unknown packet)
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #221843 #221844 06:02 PM, 09 Jun 2021
    curl -iv localhost:8123
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221845 #221846 06:03 PM, 09 Jun 2021
    Подключается
  • https://t.me/clickhouse_ru
    @rheinx #221847 06:03 PM, 09 Jun 2021
    Ну знач в скрипте у вас что-то не так.
    Судя по Unexpected packet from server None:None не прописал коннект до сервера
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221847 #221848 06:04 PM, 09 Jun 2021
    У меня всего две строки

    client = Client(host='localhost', port=8123)

    client.execute('SHOW DATABASES')
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221848 #221849 06:04 PM, 09 Jun 2021
    Все по доке, разумеется
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #221848 #221850 06:04 PM, 09 Jun 2021
    тут я уже не подскажу. Судя по ответу курла, с КХ и портами все ок.
  • оказалось, из-за того что консьюмеров в кликхаусе больше чем партишнов в топике, возможно, из-за какого-то конфликта ивенты вообще переставали сыпаться иногда, поменял на 1, пока вроде не падало)
  • @helloworld2024 #221852 06:07 PM, 09 Jun 2021
    понял по логу
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221850 #221853 06:08 PM, 09 Jun 2021
    да
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221850 #221854 06:20 PM, 09 Jun 2021
    Нашел костыль...
  • https://t.me/clickhouse_ru
    Вам нужен 9000 порт. Его и надо из докера наружу пробрасывать
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221855 #221856 06:46 PM, 09 Jun 2021
    А 9000 зачем?
  • https://t.me/clickhouse_ru
    @tkostyan #221857 06:47 PM, 09 Jun 2021
    Из доки:

    > Clickhouse-driver is designed to communicate with ClickHouse server from Python over native protocol.

    > ClickHouse server provider two protocols for communication: HTTP protocol and Native (TCP) protocol.

    8123 — это HTTP, 9000 — Native
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221857 #221858 06:47 PM, 09 Jun 2021
    А. Спасибо большое
  • https://t.me/clickhouse_ru
    @kopyl #221859 06:50 PM, 09 Jun 2021
    Это неправильный запрос?

    CREATE TABLE codec_example
    (
    timestamp DateTime CODEC(DoubleDelta),
    slow_values Float32 CODEC(Gorilla)
    )
    ENGINE = MergeTree()
  • https://t.me/clickhouse_ru
    @kopyl #221860 06:50 PM, 09 Jun 2021
    Скопировал из доки
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221859 #221861 06:51 PM, 09 Jun 2021
    Когда выполняю, ругается

    https://pastebin.com/TkJSvdYB
    Traceback (most recent call last): File "/Users/olehkopyl/Dropbox/Development - Pastebin.com

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

  • https://t.me/clickhouse_ru
    У вас в ошибке написана причина:
    clickhouse_driver.errors.ServerException: Code: 42.
    DB::Exception: Storage MergeTree requires 3 to 4 parameters:
    name of column with date,
    [sampling element of primary key],
    primary key expression,
    index granularity
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221862 #221863 06:52 PM, 09 Jun 2021
    Тогда почему в доке код, который не работает?) Это прикол такой?)
  • https://t.me/clickhouse_ru
    @kopyl #221864 06:53 PM, 09 Jun 2021
    Есть где-то дока, где есть рабочий, код?) Буду признателен за ссылку
  • https://t.me/clickhouse_ru
    Я не понимаю почему вы придираетесь к open source документации, если сами виноваты в своём незнании.
    А так, - гуглите, altinity много что можно найти
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221865 #221866 06:54 PM, 09 Jun 2021
    Спасибо
  • https://t.me/clickhouse_ru
    @alexadr_anisimov #221867 07:05 PM, 09 Jun 2021
    Всем привет! Возникла проблема со скоростью чтения из топика кафка. В КХ kafka движок on cluster на 4-ех нодах со параметрами:
    kafka_commit_every_batch = 1,
    kafka_max_block_size = 2048576,
    kafka_num_consumers = 16,
    kafka_thread_per_consumer = 1

    Скорость 20 МБ/с. При этом сначало работал с kafka_num_consumers = 1 (скорость была 14 МБ), уже в ходе работы поднял число партиций в топике и пересоздал с kafka_num_consumers = 16 в клике, но как видно рост минимальный, может кто знает в чем может быть проблема/в какую сторону смотреть/или может примерную скорость из своей практики при чтении с кафка?
  • https://t.me/clickhouse_ru
    > kafka_num_consumers = 16,

    Очень много

    У вас сколько сообщений в секунду?
  • https://t.me/clickhouse_ru
    ~1 млн
  • https://t.me/clickhouse_ru
    kafka_num_consumers = 16 какое то среднее надо держать? или из какого принципа рассчитывать
  • https://t.me/clickhouse_ru
    @unamedrus #221871 07:09 PM, 09 Jun 2021
    Вообще желательно 1
  • https://t.me/clickhouse_ru
    @unamedrus #221872 07:09 PM, 09 Jun 2021
    >kafka_commit_every_batch = 1,

    С какой целью?
  • https://t.me/clickhouse_ru
    Не отвечу, наследие ) Может влиять на скорость? и если его убирать то и kafka_thread_per_consumer = 0 ставить? или зависимости нет?
  • https://t.me/clickhouse_ru
    Потенциально влиять может.
    Какая версия кх?
  • https://t.me/clickhouse_ru
    @unamedrus #221875 07:13 PM, 09 Jun 2021
    Better settings for Kafka by filimonov · Pull Request #11388 · ClickHouse/ClickHouse

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

  • https://t.me/clickhouse_ru
    из документации " умолчанию: 1. Укажите больше потребителей, если пропускная способность одного потребителя недостаточна."

    Была мысль развернуть по несколько kafka таблиц на ноде, с одной консьюмерс_груп, такое будет работать? и будет ли лучше чем поднимать kafka_num_consumers?)
  • https://t.me/clickhouse_ru
    > Была мысль развернуть по несколько kafka таблиц на ноде, с одной консьюмерс_груп, такое будет работать? и будет ли лучше чем поднимать kafka_num_consumers?)

    поднимать консьюмер груп лучше чем несколько таблиц
  • https://t.me/clickhouse_ru
    21.3.5.42
  • https://t.me/clickhouse_ru
    Погрепайте логи, сколько времени занимает запись во все вьюхи
  • https://t.me/clickhouse_ru
    @kopyl #221880 07:16 PM, 09 Jun 2021
    Еще вопросик по clickhouse_driver в Python

    Есть таблица

    [('id', 'Int32', '', '', '', '', ''), ('word', 'String', '', '', '', '', ''), ('has_pronunciation', 'Int8', '', '', '', '', '')]

    Делаю запрос

    client.execute(
    "INSERT INTO words (id, word, has_pronunciation) VALUES",
    [{'id': 1}, {'word': "nice"}, {"has_pronunciation": True}]
    )

    Ошибка KeyError: 'word'

    Почему, если у меня есть столбик word?
  • https://t.me/clickhouse_ru
    @kopyl #221881 07:17 PM, 09 Jun 2021
    Прошу прощения за неконсистентность кавычек
  • https://t.me/clickhouse_ru
    Благодарю, буду тестить)
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221880 #221883 07:18 PM, 09 Jun 2021
    Делаю все ж по доке
  • https://t.me/clickhouse_ru
    Вставляете неправильно, посмотрите доку еще раз :
    https://clickhouse-driver.readthedocs.io/en/latest/quickstart.html
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221883 #221885 07:18 PM, 09 Jun 2021
    Ой, не то, щас
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221886 #221887 07:19 PM, 09 Jun 2021
    Щас еще раз проверю
  • https://t.me/clickhouse_ru
    тогда в догонку

    https://kb.altinity.com/altinity-kb-integrations/altinity-kb-kafka/altinity-kb-kafka-main-parsing-loop
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221884 #221889 07:22 PM, 09 Jun 2021
    Разве неправильно?
  • https://t.me/clickhouse_ru
    Ну конечно же.
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221890 #221891 07:22 PM, 09 Jun 2021
    В чем я ошибся?
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221890 #221892 07:22 PM, 09 Jun 2021
    Буду очень благодарен за подсказку
  • https://t.me/clickhouse_ru
    Олех иди домой
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221894 #221895 07:24 PM, 09 Jun 2021
    (((
  • https://t.me/clickhouse_ru
    Там прям в доке если разобраться есть все, если непонятно, смотрите примеры в гугле или блоге альтининити:
    https://altinity.com/blog/clickhouse-and-python-getting-to-know-the-clickhouse-driver-client
    ClickHouse and Python: Getting to Know the Clickhouse-driver Client

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

  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221896 #221897 07:24 PM, 09 Jun 2021
    Разобрался
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221896 #221898 07:25 PM, 09 Jun 2021
    "INSERT INTO words (id, word, has_pronunciation) VALUES",
    [{'id': 1, 'word': "nice", "has_pronunciation": True}]
  • https://t.me/clickhouse_ru
    @purplenoodlesoop #221901 07:47 PM, 09 Jun 2021
    Олех, мы соскучились, возвращайся к нам в чат MySQL, Святослав напек котлеток со своим фирменным белым соусом...
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221901 #221902 07:58 PM, 09 Jun 2021
    А я там разве есть?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @199194369 #221904 08:00 PM, 09 Jun 2021
    Вот первый чат в списке мне кажется огонь
  • https://t.me/clickhouse_ru
    @kopyl #221905 08:02 PM, 09 Jun 2021
    Clickhouse не тормозит.

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

    Clickhouse не тормозит.
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221905 #221906 08:03 PM, 09 Jun 2021
    Уже жду минуты 3 вставки 87к значений
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221906 #221907 08:03 PM, 09 Jun 2021
    87к строчек по 2 колонки
  • https://t.me/clickhouse_ru
    @hide100 #221909 08:04 PM, 09 Jun 2021
    это говорит об утилизации ресурсов ?
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221909 #221910 08:04 PM, 09 Jun 2021
    Ну да
  • https://t.me/clickhouse_ru
    @oroborosus #221911 08:05 PM, 09 Jun 2021
    возможно ты вставляешь их по одной?
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221911 #221912 08:05 PM, 09 Jun 2021
    Ну да
  • https://t.me/clickhouse_ru
    Лучше sqlite пользуйтесь.
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221913 #221914 08:07 PM, 09 Jun 2021
    Почему?
  • @dj_mixer #221915 08:07 PM, 09 Jun 2021
    могу порекомендовать foxpro, он никогда не тормозит
  • тож самое, через mysql клиента все ок, а через JDBC driver MySQL wrong password
  • https://t.me/clickhouse_ru
    @199194369 #221917 08:08 PM, 09 Jun 2021
    Мужики не серчайте, он у нас монгой болеет
  • https://t.me/clickhouse_ru
    огонь
  • https://t.me/clickhouse_ru
    @l3iml #221919 08:10 PM, 09 Jun 2021
    О, ничоси у вас тут диалоги платона😂
  • @Enmk0 ↶ Reply to #221911 #221920 08:10 PM, 09 Jun 2021
    ого, не надо так!
  • https://t.me/clickhouse_ru
  • да вроде проблему с паролем фиксили (а может и нет), на .нете в последний раз умер тут https://github.com/ClickHouse/ClickHouse/issues/18612
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221920 #221923 08:11 PM, 09 Jun 2021
    Не знал, спасибо.

    Сразу вместе все быстро вставились
  • если по jdbc все ещё проблемно, откройте тикет и привяжите сюда пожалуйста https://github.com/ClickHouse/ClickHouse/issues/9336
    Enhanced MySQL compatibility · Issue #9336 · ClickHouse/ClickHouse

    Use case The basic idea is to increase the MySQL compatibility with wire protocol in order to have tools like phpMyAdmin, DBeaver, ... working easily on ClickHouse (reading data) Describe the solut...

  • https://t.me/clickhouse_ru
    @l3iml ↶ Reply to #221923 #221927 08:13 PM, 09 Jun 2021
    А зачем вам КХ, почему его выбрали, если не секрет?
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221927 #221929 08:28 PM, 09 Jun 2021
    Думаю посмотреть стоит ли некоторые операции проводить в КХ вместо монги
  • потратьте 2-3 часа, вам поможет.

    ====
    Эффективное использование ClickHouse / Алексей Миловидов (Яндекс)
    https://www.youtube.com/watch?v=Ac2C2G2g8Cg

    Теория и практика использования ClickHouse в реальных приложениях / Александр Зайцев (LifeStreet)
    https://www.youtube.com/watch?v=9MwKE30aUPs

    Что нужно знать об архитектуре ClickHouse / Алексей Зателепин (Яндекс)
    https://www.youtube.com/watch?v=PLMSA_gDdyM

    1. Migration to ClickHouse: Practical Guide — Alexander Zaitsev
    https://www.youtube.com/watch?v=zbjub8BQPyE
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221929 #221931 08:31 PM, 09 Jun 2021
    Затестил.

    Для моего кейса КХ оказался всего лишь в 5.35 раз быстрее – 0.214 vs 0.04
  • https://t.me/clickhouse_ru
    @l3iml ↶ Reply to #221931 #221932 08:33 PM, 09 Jun 2021
    Куда дальше?
    Советую попробовать kdb+
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221932 #221933 08:37 PM, 09 Jun 2021
    Почему именно kdb+?
  • https://t.me/clickhouse_ru
    @l3iml ↶ Reply to #221933 #221934 08:40 PM, 09 Jun 2021
    Ну если кх недостаточно быстр, то пора хранить данные в памяти и работать с векторами)
  • https://t.me/clickhouse_ru
    Это вроде лейкемией называется
  • https://t.me/clickhouse_ru
    @purplenoodlesoop #221936 08:48 PM, 09 Jun 2021
    Бедный Олех :(
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221934 #221937 08:49 PM, 09 Jun 2021
    Часть данных и так храню, да
  • берите exasol
  • https://t.me/clickhouse_ru
    @kopyl #221939 08:56 PM, 09 Jun 2021
    Кстати, оказалось что на простых запросах монга в 9 раз быстрее кликхауса, а на сложных кликхаус лучше
  • https://t.me/clickhouse_ru
    @kopyl #221940 08:57 PM, 09 Jun 2021
    Кто бы мог подумать
  • да, вы правы. обычно монга быстрее.
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221939 #221942 08:57 PM, 09 Jun 2021
    "Самая быстрая бд". Ну да
  • https://t.me/clickhouse_ru
    откройте офф сайт и прочитайте введение, вы явно не до конца поняли зачем нужен КХ
  • @238773844 #221944 09:11 PM, 09 Jun 2021
    интересно, если на многе размером в 2 TB запустить аналитический запрос
  • @238773844 #221945 09:12 PM, 09 Jun 2021
    во сколько сот раз CH будет быстрее
  • @238773844 #221946 09:12 PM, 09 Jun 2021
    Олех, попррбуйте, расскажите нам тут
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221946 #221947 09:15 PM, 09 Jun 2021
    Думаю что во много
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221944 #221948 09:16 PM, 09 Jun 2021
    В монге если запускать сложные запросы, то по скорости иногда бывает даже чистый Python обработает данные быстрее, чем монга
  • @238773844 #221949 09:16 PM, 09 Jun 2021
    ну так ответ оевивиден - вам не нужна БД, вам нужен пейтон
  • https://t.me/clickhouse_ru
    @199194369 #221950 09:17 PM, 09 Jun 2021
    Ща бы питоном мерять скорость)
  • @238773844 #221951 09:17 PM, 09 Jun 2021
    пейтон - самая быстрая БД, даже быстрее монги!
  • @238773844 #221952 09:17 PM, 09 Jun 2021
    а вы еще C++ не видели!
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221950 #221953 09:17 PM, 09 Jun 2021
    А чем измерять?)
  • @238773844 #221954 09:17 PM, 09 Jun 2021
    если вы настоящий хипстер - то Go
  • https://t.me/clickhouse_ru
    @critskiy #221955 09:18 PM, 09 Jun 2021
    Rust
  • https://t.me/clickhouse_ru
    @critskiy #221956 09:18 PM, 09 Jun 2021
    А можно вообще башем)))
  • https://t.me/clickhouse_ru
    @l3iml #221957 09:18 PM, 09 Jun 2021
    /dev/null на запись
    /dev/random на чтение
    Идеальный перформанс будет
  • https://t.me/clickhouse_ru
    в голос чето
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221952 #221959 09:18 PM, 09 Jun 2021
    Плюсы тоже не во всех случаях быстрее Python, пробовал писать аналогичные функции и C++ был быстрее только на функциях, которые выполняются очень долго
  • https://t.me/clickhouse_ru
    @mikhailberg #221960 09:18 PM, 09 Jun 2021
    ну не душите человека
  • https://t.me/clickhouse_ru
    @critskiy #221961 09:19 PM, 09 Jun 2021
    Да python это серебряная пуля щас окажется. Ванговаю
  • https://t.me/clickhouse_ru
    @l3iml #221962 09:23 PM, 09 Jun 2021
    Как говорил один знаменитый веб-девелопер "дайте мне пайтон и монгу и я переверну Землю"
  • https://t.me/clickhouse_ru
    @l3iml #221963 09:24 PM, 09 Jun 2021
    Гвидо ван Архимедум(с)
  • https://t.me/clickhouse_ru
    @353222455 #221964 09:27 PM, 09 Jun 2021
    Не каждый день можно наблюдать такой высокий уровень технической дискуссии! Питон - это как Москва, третий, а четвёртому не бывать!
  • https://t.me/clickhouse_ru
    @199194369 #221965 09:28 PM, 09 Jun 2021
    Чет толсто) я думаю Олех не в курсе за Россума
  • 10 June 2021 (146 messages)
  • https://t.me/clickhouse_ru
    @kopyl ↶ Reply to #221965 #221966 12:33 AM, 10 Jun 2021
    Чет толсто) я думаю я не в курсе за такие троллинги
  • https://t.me/clickhouse_ru
    @199194369 #221970 07:29 AM, 10 Jun 2021
    Олех ну ладно мы орем в нашем чате, чо ты в другой клоуном уехал. Едь домой
  • https://t.me/clickhouse_ru
    @madreyg #221973 08:34 AM, 10 Jun 2021
    Всем привет, подскажите, пожалуйста, как правильнее сделать.
    У меня есть ReplicatedAggregatingMergeTree с таким полем:
    ```device SimpleAggregateFunction(argMin, Tuple(Nullable(String), Nullable(Datetime64(6)))),```

    делаю INSERT'ы:

    device
    "(NULL,NULL)"
    "('ios-native','2021-05-03 19:02:44.428000')"
    "(NULL,NULL)"

    При схлопывании получаю "(NULL,NULL)"
    Если же ситуация получается такая:

    "('ios-native','2021-05-03 19:02:44.428000')"
    "(NULL,NULL)"

    то при схлопывании получаю "('ios-native','2021-05-03 19:02:44.428000')"

    Что хочу:
    "(NULL,NULL)"
    "('android-native','2021-05-05 00:02:44.428000')"
    "('ios-native','2021-05-03 19:02:44.428000')"
    "(NULL,NULL)"

    Получать при схлопывании "('ios-native','2021-05-03 19:02:44.428000')"
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #221973 #221975 09:28 AM, 10 Jun 2021
    А вам принципиальна возможность хранить NULL? Я в похожей задаче просто заменял пустые значения на заведомо маленькое дефолтное через coalesce()/ifNull().
  • https://t.me/clickhouse_ru
    тогда argMin выбирает заведомо маленькое дефолтное значение =( Предлагаете использовать супер большое дефолтное значение?
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #221976 #221977 09:35 AM, 10 Jun 2021
    пардон, почему-то прочитал argMax :)
    ну да, тогда можно большое
    понятно что костыль, но если не принципиально, то почему бы и нет

    можно ещё через argMinIf() отфильтровать только нужные значения
  • @dmitry_kishchenko #221978 09:36 AM, 10 Jun 2021
    всем привет! вопрос по докеру и кликхаусу. добавил я себе сервис в проект в композ. пробросил волумы, запустил. создал базу тестовую, в ней 1 таблицу, накидал тестовых данных. перегрузил контейнер - данные после рестарта контейнера пропадают. а таблицы-базы - нет

    может кто что посоветовать?
  • https://t.me/clickhouse_ru
    спасибо за совет) попробую реализовать, посмотрю на результат)
  • https://t.me/clickhouse_ru
    у меня так, например
    volumes:
    - ./db/:/var/lib/clickhouse/
    - ./log:/var/log/clickhouse-server/
    Проблем не наблюдалось.
    А какая версия образа и какие именно данные пропадают?
  • @SaySpiRiT #221981 09:44 AM, 10 Jun 2021
    Ребят, подскажите можно ли как-то реализовать такую вещь. Мне нужно получить уникальные строки с группировкой по дням(Или месяцам). При этом если например 1 числа было 2 уникальных значения, а 2 января 3 значения уникальных, но если из этих 3 значений 2 дублируют значения с 1 января. Вывести должно вот это 1 числа - 2 значения. 2 числа - 1 значение
    Такой запрос решает мою проблему, но появляется проблема по памяти. Из-за оч большого обьема данных, можно ли как-то его переписать или какие варианты есть?

    Select FirstDate, uniq(row) as UniqName
    From (
    select min(toStartOfMonth(date)) as FirstDate, row
    from Table1
    where date between '2021-01-01' and '2021-05-31'
    group by row) t1
    Group by FirstDate
  • https://t.me/clickhouse_ru
    А это разве недостаточно
    select min(toStartOfMonth(date)) as FirstDate, row
    from Table1
    where date between '2021-01-01' and '2021-05-31'
    group by row
  • Да, запрос был просто сильно больше. Но по памяти все равно не пускает :)
  • Вопрос больше в том, можно ли как-то оптимизировать или что можно сделать чтобы найти это первое уникальное вхождение.
  • https://t.me/clickhouse_ru
    @75280400 #221986 09:53 AM, 10 Jun 2021
    разбейти row на группы
    для каждой группы отдельно ищите даты
    select row
    from Table1
    order by 1
    LIMIT 100
  • данные из таблиц пропадают. любые. которые записал
    версию образа не указывал, последняя

    волумы пробросил так

    volumes:
    - cl-data:/var/lib/clickhouse
    - ./phpdocker/clickhouse/config.xml:/etc/clickhouse-server/config.xml
    - ./logs/clickhouse:/var/log/clickhouse-server/:rw

    volumes:
    pg-data:
    pg-admin:
    cl-data:
  • https://t.me/clickhouse_ru
    Странно 🤷‍♂️ А в конфиге случайно путь не переопределен?
    <path>/var/lib/clickhouse/</path>
  • https://t.me/clickhouse_ru
    не знаю как задать дефолтноне значение для ```SimpleAggregateFunction(argMin, Tuple(String , Datetime64(6))``` =(
    потому что coalese не очень подходит, т.к. придется во всех вьюхах это прописывать
  • <!-- Path to data directory, with trailing slash. -->
    <path>/var/lib/clickhouse/</path>
  • https://t.me/clickhouse_ru
    тогда идей нет почему так. Если только volume не удаляется такого быть не должно
  • @KevinMort #221994 10:52 AM, 10 Jun 2021
    У кого-нибудь была проблема подключения через DataGrip к серверу кликхаус через порт 8123?
  • неа
    покажи креды подклчения
  • Что показать?
  • @KevinMort #221997 10:58 AM, 10 Jun 2021
    Логин default
  • Я использую EC2 aws, на других серверах такого не было
  • https://t.me/clickhouse_ru
    @x052bb #221999 11:02 AM, 10 Jun 2021
    Подскажите, какие сейчас есть варианты для работы с датами до 1 января 1970 года? Некоторое время назад вроде обещали Date32 тип, но его не вижу. DateTime64 есть, но неудобно же если нужны именно даты.
  • @rikkir ↶ Reply to #221994 #222000 11:05 AM, 10 Jun 2021
    connect_timeout_with_failover_ms
    по пробуй увеличть на стороне кликхауса
  • надо сервер обновить и тогда datetime64 частично будет работать, но опять же есть нижний предел
  • https://t.me/clickhouse_ru
    @x052bb ↶ Reply to #222001 #222003 11:11 AM, 10 Jun 2021
    То есть заменять работу с Date на работу с DateTime64?
  • https://t.me/clickhouse_ru
    @li_bao ↶ Reply to #222003 #222004 11:17 AM, 10 Jun 2021
    Костыль конечно, но. Можно использовать тот же long но отрицательный
  • https://t.me/clickhouse_ru
    ну дак надо наверное сначала 8123 в EC2 файрволе открыть в консоли AWS на доступ...
    но лучше VPN какой нибудь под ваш VPC поднять
  • https://clickhouse.tech/docs/ru/whats-new/changelog/#improvement_3
    New Feature
    Extended range of DateTime64 to support dates from year 1925 to 2283. Improved support of DateTime around zero date (1970-01-01). #9404 (alexey-milovidov, Vasily Nemkov). Not every time and date functions are working for extended range of dates.
    2021 | ClickHouse Documentation

    ClickHouse release v21.10, 2021-10-16 Backward Incompatible Change Now the following MergeTree table-level settings: rep

  • А как?((
  • https://t.me/clickhouse_ru
    @x052bb ↶ Reply to #222004 #222008 11:34 AM, 10 Jun 2021
    Не, это совсем не вариант. Хочется же функции работы с датой использовать. Так-то можно и строкой даты хранить...
  • https://t.me/clickhouse_ru
    а кто у вас AWS занимается?
    https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/authorizing-access-to-an-instance.html
    Authorize inbound traffic for your Linux instances - Amazon Elastic Compute Cloud

    Create security groups to control the network traffic that can reach your Amazon EC2 instances.

  • Я тут один за всех))
  • Я открыл порты в aws
    Теперь данная ошибка

    javax.net.ssl.SSLException: Unsupported or unrecognized SSL message.
  • https://t.me/clickhouse_ru
    это вы пытаетесь на 8123 порт ходить? или куда?
  • Ага
  • https://t.me/clickhouse_ru
    на нем нет SSL
    выключите SSL в настройках DataGrip драйвера
  • Заработало! Спасибо!!
  • https://t.me/clickhouse_ru
    но не советую так ходить
    лучше посмотрите что у вас в настройках
    SELECT * FROM system.settings WHERE name ='https_port'
    и используйте SSL + этот порт для подключения
  • Ничего нет
  • нужно от лица всего сообщества сделать предложение авторам clickhouse реализовать новый соответствующий стандарту тип данных UnixTimestamp и под него переписать все функции преобразования
    или позаимствовать исходные коды у postgresql что ли.
  • Кто может подсказать по аналогичной проблеме.
  • https://t.me/clickhouse_ru
    =))) от лица сообщества с такими предложениями вы можете сделать Pull Request ;)

    =)) предложение заимствовать код PostgeSQL прекрасно ;)
    говорит о том что вы либо не программируете сами, либо пишете что-то простое

    внутри ЛЮБОГО UnixTimestamp обычный UInt32
    что вам от него еще надо?

    зачем вам типа UnixTimestamp который эквивалентен UInt32?
  • https://t.me/clickhouse_ru
    есть DateTime32
  • @aosipov88 #222025 12:21 PM, 10 Jun 2021
    Добрый день создаю таблицу

    CREATE TABLE kafka_test ON CLUSTER test_shard
    (
    event_time DateTime64(3),
    traced UInt8
    ) ENGINE = Kafka()
    SETTINGS
    kafka_broker_list = 'test:9092',
    kafka_topic_list = 'test',
    kafka_group_name = 'group_test',
    kafka_format = 'Avro';

    При запросе данных select, выдает ошибку
    std::exception. Code: 1001, type: avro::Exception, e.what() = EOF reached (version 21.3.2.5 (official build))
    что делаю не так?
  • https://t.me/clickhouse_ru
    +1, сообщество, которое качает права - это не члены сообщество, а просто паразиты этого сообщества :)
  • потому что там не UInt32 а Int32
    читаем доку https://clickhouse.tech/docs/ru/sql-reference/data-types/datetime/
    в тексте ссылка Момент времени сохраняется как Unix timestamp,
    а по ссылке описание
    https://ru.wikipedia.org/wiki/Unix-%D0%B2%D1%80%D0%B5%D0%BC%D1%8F
    В программах для хранения Unix-времени используется целочисленный знаковый тип.
    DateTime | Документация ClickHouse

    DateTime Позволяет хранить момент времени, который может быть представлен как календарная дата и время. Синтаксис: DateT

  • https://t.me/clickhouse_ru
    @morozovsk #222028 12:49 PM, 10 Jun 2021
    уважаемые знатоки, внимание вопрос.
    у меня сейчас так: PARTITION BY (os, toYYYYMMDD(t)) ORDER BY (event_type, t)
    имеет ли смысл добавлять os в ORDER BY если он уже в PARTITION BY? os участвует в запросах только в качестве точного сравнения =,!=,in
  • https://t.me/clickhouse_ru
    спасибо что поправили =) так, а в чем проблема то ?
    стандартный тип Date будет зависеть от UnixTimestamp который Int32

    Date32 или Date64 возможно реализуют в будущем, когда кому то надо будет компактную часть от Date хранить

    расширять текущий Date до расширенных диапозонов, ну. для этого надо сделать PR
    и еще данные из старого формата сконвертировать "на лету"

    не думаю что это хорошая идея :)
  • https://t.me/clickhouse_ru
    @morozovsk #222030 12:55 PM, 10 Jun 2021
    и ещё вопрос. есть ли возможность указать в таблицах AggregatingMergeTree/ReplacingMergeTree и т.д. где-нибудь в настройках самой таблицы или даже всего сервера, чтобы при селектах всегда использовался FINAL. Я тут прочитал, что в движке MaterializeMySQL используется FINAL на автомате и задумался, может как-то можно сделать подобное поведение и в других движках?
    https://clickhouse.tech/docs/ru/engines/database-engines/materialize-mysql/#select
    MaterializeMySQL | Документация ClickHouse

    toc_priority: 29 toc_title: MaterializeMySQL MaterializeMySQL Создает базу данных ClickHouse со всеми таблицами, существ

  • https://t.me/clickhouse_ru
    в MaterializeMySQL там движок БАЗЫ
    а не таблицы

    FINAL на автомате использовать. так себе идея, потому что просадка по CPU весьма существенная, человек явно должен понимать зачем ему AggregatingMergeTree и что это дает...
  • https://t.me/clickhouse_ru
    этой просадкой я готов пренебречь :) а вот обарачивать вьюхой и делать FINAL в ней - это уже просадка, которая мне не очень нравится :)
  • https://t.me/clickhouse_ru
    Так вьюха же вам наоборот данные будет подготавливать заранее +/-
  • https://t.me/clickhouse_ru
    @baltazorbest #222034 12:59 PM, 10 Jun 2021
    именно материальная вьюха
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #222028 #222035 01:00 PM, 10 Jun 2021
    По идее смысла нет, ибо чтение будет происходить только из нужных партиций, в которых и так только одно значение os.

    Но в какой-то из 19.х версий у меня партишн прунинг для ключа toYYYYMMDD(LOADED) по условию LOADED >= now() - interval 3 days не работал - читались все партиции. Но если я менял условие на toYYYYMMDD(LOADED) >= toYYYYMMDD(now() - interval 3 days), то работал.
    На 20.8 такой проблемы уже не замечал.
  • https://t.me/clickhouse_ru
    @glader_ru #222036 01:01 PM, 10 Jun 2021
    Подскажите, есть планы по оптимизации в условиях?

    select if(f > 0, 1, f / 0) from table where f > 0 limit 5

    Code: 153, e.displayText() = DB::Exception: Division by zero (version 20.8.4.11 (official build))
  • https://t.me/clickhouse_ru
    я про обычную вьюху, материальная сделает только хуже (мат вью в клике - это просто инсерт тригер). мне LIVE больше поможет.
  • https://t.me/clickhouse_ru
    я читал про такой же баг, но только с toYYYYMM, типа такое вообще никогда не работало и читало все партиции. можно в чатике найти это обсуждение
  • https://t.me/clickhouse_ru
    ну вы готовы, а другие нет
    явное всегда лучше "не явного"
  • https://t.me/clickhouse_ru
    https://github.com/ClickHouse/ClickHouse/pull/23367
    подписывайтесь и следите
    Implement short circuit function evaluation by Avogar · Pull Request #23367 · ClickHouse/ClickHouse

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

  • https://t.me/clickhouse_ru
    Спасибо
  • @VladimirKoptev #222043 01:43 PM, 10 Jun 2021
    добрый день.

    как заставить кликхаус забыть о репликах?

    был кластер с шардами по 3 реплики. недавно вывели по 1 реплики из каждого шарда. и теперь не проходят распределённые DDL запросы с формулировкой Alter is not finished because some replicas are inactive right now <выключенная реплика>. Alter will be done asynchronously. (version 19.16.19.85 (official build))
  • https://t.me/clickhouse_ru
    SYSTEM | ClickHouse Documentation

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

  • спасибо! надеюсь, на нашей версии заведётся :)
  • @rikkir #222047 02:07 PM, 10 Jun 2021
    проясните пожалуйста что хранится в /var/lib/clickhouse/store/ ,
    если указаны дериктивы storage_configuration

    <storage_configuration>
    <disks>
    <disk_ssd>
    <path>/data/fast/</path>
    </disk_ssd>
    <disk_hdd>
    <path>/data/slow/</path>
    <keep_free_space_bytes>10485760</keep_free_space_bytes>
    </disk_hdd>
    </disks>

    <policies>
    <moving_from_ssd_to_hdd>
    <volumes>
    <hot>
    <disk>disk_ssd</disk>
    <max_data_part_size_bytes>1073741824</max_data_part_size_bytes>
    </hot>
    <cold>
    <disk>disk_hdd</disk>
    </cold>
    </volumes>
    <move_factor>0.3</move_factor>
    </moving_from_ssd_to_hdd>
    </policies>
    </storage_configuration>
  • https://t.me/clickhouse_ru
    в v20.12.3.3 поправили.

    Ну и если у него версия младше, добавление в order by не поможет, да
  • https://t.me/clickhouse_ru
    так я и хочу "явно указать" в настройках таблицы или движка, а не выступаю "давайте сделаем такое поведение дефолтным для всех".
    вот и подумал, что тут аналогично MaterializeMySQL сделали.
    а про явное/неявное - это вообще холиварная тема, тут большинство вопросов "почему у меня дубли" или "почему ничего не схлопывается", т.е. для большинства людей, которые не прочли этого в документации дефолтное поведение кликхауса как раз таки и является неявным.
  • https://t.me/clickhouse_ru
    @morozovsk #222051 03:21 PM, 10 Jun 2021
    ещё вопрос:
    >Too many parts (300). Merges are processing significantly slower than inserts.
    это означает, что у меня много партиций и мне нужно PARTITION BY (os, toYYYYMMDD(t)) поменять на PARTITION BY (os, toYYYYMM(t)) ?
    или наоборот у меня много кусков в одной партиции и мне нужно PARTITION BY (os, toYYYYMMHH(t)) ?
    после того как прочёл документацию, то склонялся к первому варианту, прочитав её же на английском уже склоняюсь ко второму варианту :)

    посмотреть количество кусков в одной партиции можно вот так, верно?
    SELECT table, partition, count()
    FROM parts
    WHERE active = 1
    GROUP BY table, partition
    ORDER BY count() DESC

    у меня тут максимум 13 активных блоков на партицию получается, а не активных 116. хз откуда 300 взялось в ошибке.
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #222051 #222053 03:43 PM, 10 Jun 2021
    Это значит, что в одной партиции слишком много партов. Обычно это связано с тем, что добавление новых кусков происходит медленнее, чем слияние старых.

    Может помочь увеличение количества вставляемых за раз записей (рекомендуется до 1 млн) и увеличение числа потоков для фоновых мерджей (настройка background_pool_size).
  • https://t.me/clickhouse_ru
    у вас проблема с partition key, понизьте его кардинальность
  • https://t.me/clickhouse_ru
    @enclaved #222055 03:51 PM, 10 Jun 2021
    подскажите по data skipping index: у этих индексов есть параметры, такие как тип и гранулярность. как их подбирать? ранее предлагали эмпирически: просто тестить разные значения, но мне сейчас вообще не понятно с каких значений вообще начинать.
  • @SergeyMedvetskiy #222056 04:25 PM, 10 Jun 2021
    Коллеги, привет.
    Никто не заморачиватся с Datasource плагином для Grafana, чтобы можно было добавить визуализацию логов. Например, как для Loki ?

    https://grafana.com/docs/grafana/latest/explore/logs-integration/
  • https://t.me/clickhouse_ru
    получается, что если понижу кардинальность partition key, то в одной партиции будет ещё больше блоков и будет только хуже
  • https://t.me/clickhouse_ru
    При вставке батч бьётся на партсы, если мержить не успевает и накапливается 300+(по дефолту) партсов - вставка стопается.
  • https://t.me/clickhouse_ru
    Выше уже написали, в вашем случае количество партиций будет меньше, но это не значит, что партов будет больше
  • https://t.me/clickhouse_ru
    @x052bb ↶ Reply to #222023 #222060 04:42 PM, 10 Jun 2021
    Кажется нелогичным, что DateTime32/64 есть, а Date32/64 нет.

    А если не секрет почему не сделали Date32? Ведь такие планы были. Руки не дошли или там есть технические проблемы?
  • https://t.me/clickhouse_ru
    спасибо. можно как-то глянуть, сколько сейчас ещё не смёрженых партов? насколько я понял в system.parts where active=1 - это те, которые уже были смёржены
  • https://t.me/clickhouse_ru
    select *
    from system.parts
    where table = <table>
    and active
    это активные парты
  • https://t.me/clickhouse_ru
    @TigProg #222063 04:51 PM, 10 Jun 2021
    они смержены, да
    вы возможно под "смержены" имеете в виду, что все парты внутри партиции объединены, но это не обязательно
  • https://t.me/clickhouse_ru
    ну * оверхед, но да, каждая строка - 1 parts, если еще подробнее надо, есть еще parts_columns
  • https://t.me/clickhouse_ru
    parts_columns я тоже смотрел, мне интересно глянуть сколько на текущий момент несмёрженых партов ожидают в очереди.
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #222059 #222066 05:09 PM, 10 Jun 2021
    Но ведь это никак не поможет с решением проблемы. Ошибка же возникает именно при превышении лимита на число партов в одной партиции. А с уменьшением числа партиций вероятность увеличения числа партов в ней (в сферическом вакууме незнания вставляемых данных) только увеличивается.
  • https://t.me/clickhouse_ru
    Не согласен, если у человека не* миллиард записей в секунду и ttl не на 1 день, то ключ партиционирования был избыточен
    Уменьшив кардинальность можно уменьшить количество созданных партов при 1 инсерте
  • https://t.me/clickhouse_ru
    Я кстати сделал бы order by (os, toDate(t),...) partition by toYYYYMM(t).
    Это судя по всему +-классика для большинства кэйсов.
  • https://t.me/clickhouse_ru
    видимо так и сделаю. ожидалось, что стату будут смотреть по платформам отдельно, но в итоге как обычно смотрят всё1 скопом, так что партицирование по os избыточно
  • @Melentyev #222070 05:43 PM, 10 Jun 2021
    Добрый день!
    Подскажите, как вывести объектом несколько полей ключ/значение с разными типами? то есть хочу вывести {"key1":1, "key2":0.1, "key3":"STRING"}
  • https://t.me/clickhouse_ru
    у меня вставка раз в минуту около 10к записей, поштучно вставляются только через буферную таблицу из неё только батчами раз в минуту. всего миллиард записей. нагрузка на диск и проц - околонулевая. никаких зукиперов и т.д. и тут на совершенно ровном месте такая хрень :) нету у меня миллиона записей за раз :)
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #222067 #222072 05:48 PM, 10 Jun 2021
    Насчёт увеличения числа партов на партицию был неправ, согласен, оно должно остаться неизменным. Не понимаю почему оно должно уменьшиться.

    Возможно, я чего-то не понимаю. Можете на примере проиллюстрировать?

    Вариант 1 - ключ партиционирования (A, B), оба ключа могут принимать только значения [0, 1], т.е. есть всего 4 партиции: 00, 01, 10 и 11.
    Вариант 2 - ключ партиционирования (A), ключ принимает значения [0, 1], т.е. всего две партиции: 0 и 1.
    Если вставка идёт раз в 5 секунд пачками по 1млн равномерно размазанных по партициям данных, то в первом случае имеем по 12 партов по 250к записей на каждую партицию в минуту, всего 48 партов, во втором случае имеем по 12 партов по 500к на каждую партицию в минуту, всего 24 парта.

    Но если данные размазаны по партициям неравномерно с перекосом, например, в (0, 0), то в первом случае будут те же 12 партов на партицию, только где-то они будут по, скажем, 700к, а где-то - по 100к. Во втором случае тоже по 12 партов на партицию, только по 800к и по 200к.

    Т.е. суммарное количество партов уменьшится, но число партов на партицию не изменится. Но ошибка-то возникает именно из-за большого количества партов на одну партицию.
  • @dmitry_mosin #222073 05:49 PM, 10 Jun 2021
    Ололо, господа
    Есть табличка в 2М строк, в табличке поле типа Array(String)
    Скип индекс типа bloom_filter с разными циферками - счастья не дает.
    Селекты работают безобразно долго, и влегкую упираются в лимит по памяти. Денормализовать и дублировать строки - показалось неразумным, т.к. эти 2М строк тутже превращаются в 38М. Пришлось наооборот, нормализовывать и вынести копию этого поля в отдельную таблицу.

    Какие варианты еще имеет смысл пощупать?
  • Или денормализация будет в самый раз?
  • https://t.me/clickhouse_ru
    Думаю, некорректный пример в том смысле, что кардинальность обоих полей всего 2. Была бы 10 и 100, то за несколько вставок можно было бы вставкой опередить мержи по количеству партов
  • https://t.me/clickhouse_ru
    т.е. если у меня таблица с хреновым высококардинальным ключём (uuid) и происходит вставка 1000 строк, то эти строки разбиваются на парты, которые будут затрагиваться и после этого оказываются задеты чуть ли ни все парты таблицы, что создаёт немерено мёрджей, которые могут не успеть обработаться до следующей вставки и следующая вставка может привести к той проблеме, которую я словил?
  • https://t.me/clickhouse_ru
    ну может вы и правы
  • https://t.me/clickhouse_ru
    DateTime32, DateTime64 нужны были для милисекунд ну и попутно диапозоны дат расширили

    там на этих типах то куча корнер кейсов вылезла и их доводили не один месяц
  • https://t.me/clickhouse_ru
    Ну да, они же по итогу будут лежать в разных партициях.
    Instert - parts - merge - partition
  • https://t.me/clickhouse_ru
    @RaBiDka #222080 06:06 PM, 10 Jun 2021
    Каждый отдельный инсерт должен записаться, и что бы потом его не бить он пишется сразу по партициям, но что бы не тормозить, не прямо в неё, а в отдельные кусочки который в фоне мержаться
  • https://t.me/clickhouse_ru
    @RaBiDka #222081 06:11 PM, 10 Jun 2021
    собственно по этому нельзя делать вставку по 1 строке, каждый инсерт будет создавать кучу файлов, еще бы оно быстро работало
  • https://t.me/clickhouse_ru
    спасибо, кажется до меня дошло. У меня вот такая таблица на несколько лямов:
    CREATE TABLE users (%columns) Engine AggregatingMergeTree PARTITION BY (os) ORDER BY (device_id);
    в неё данные попадают с помощью мат вью из таблицы событий. и видимо таблица перезаписывается из-за таких действий чуть ли не каждый раз.
    сейчас в этой таблице 20 активных партов и 120 неактивных.
    видимо ошибка "Too many parts (300). Parts cleaning are processing significantly slower than inserts: while write prefix to view events_to_users" как раз таки и обозначает, что куча старых партов и они удаляются медленнее, чем появляются новые. обидно только то что кликхаус почему-то не утилизирует доступные ресурсы, чтобы такой ситуации не возникало. мне походу придётся подкрутить какие-то параметры или мигрировать на EmbeddedRocksDB и делать агригацию уже самостоятельно на уровне приложения.
  • https://t.me/clickhouse_ru
    @RaBiDka #222083 06:16 PM, 10 Jun 2021
    >сейчас в этой таблице 20 активных партов и 120 неактивных.
    тогда бы ошибки и не было, вы с partition не перепутали?
  • https://t.me/clickhouse_ru
    @RaBiDka #222084 06:16 PM, 10 Jun 2021
    ну логику вставки я обьяснил, натяните на свои данные и вставки и будет понятно что с этим делать :)
  • https://t.me/clickhouse_ru
    ну, ключ партицирования у меня os, а их всего 3 штуки, так что партиций у меня только 3
  • https://t.me/clickhouse_ru
    @RaBiDka #222087 06:20 PM, 10 Jun 2021
    если вставка идет в один день, то либо я не знаю, либо в IO упирается
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #222082 #222088 06:23 PM, 10 Jun 2021
    Ну можно же аккумулировать записи перед вставкой в первую таблицу, на которой висит MV, или из MV вставлять в тот же Buffer, например.
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #222075 #222089 06:24 PM, 10 Jun 2021
    Ну я правильно понимаю, что идея не в уменьшении числа новых партов на партицию, а в ускорении мерджей засчет уменьшения общего количества новых партов на все партиции?
  • https://t.me/clickhouse_ru
    Йеп, вы правильно поняли, может я не совсем точно выразился в первый раз
  • https://t.me/clickhouse_ru
    у меня есть буферы и вставка пачками раз в минуту. проблем в том, что у меня order by uuid, т.е. высококардинальный ключ сортировки (о чём мне уже писали выше, но я поначалу не придал этому значения). в итоге одна вставка раз в минуту 1к рандомных юзеров задевает все парты и так каждую минуту. видимо в какой-то момент накопилось много партов и я словил ошибку
  • https://t.me/clickhouse_ru
    UPD:
    сори, я не вник до конца, дата тут не причем.
    Я могу ошибаться, но вроде как должно так работать, надеюсь если я не прав - поправят:
    1. идет вставка в основную таблицу на которую смотрит МВ
    2. она мержится по ключу ORDER BY
    3. эти данные бьются на PARTITION BY (получаются parts)
    4. пишутся на диск
  • @sparrowganz #222094 06:39 PM, 10 Jun 2021
    Доброго времени суток , подскажите что за зверь
    Size of marks file is inconsistent

    встречается в версиях 21.6.3 21.1.2.15
  • https://t.me/clickhouse_ru
    Еще важный момент, удаление вообще не связано, оно совсем в фоне происходит(если диск не забит). Вам важны только активные
    Глупый вопрос, но падает точно конкретно эта часть а не запись евентов например, или другая мат вью которая пишет в эту таблицу?
  • @helloworld2024 #222096 06:40 PM, 10 Jun 2021
    Всем привет, пытаюсь удалить таблицу 250GB, получаю Size (253.20 GB) is greater than max_[table/partition]_size_to_drop (50.00 GB), потом пытаюсь добавить флаг для форс удаления, sudo touch '/var/lib/clickhouse/flags/force_drop_table' && sudo chmod 666 '/var/lib/clickhouse/flags/force_drop_table, некоторое время висит, флаг пропадает, и та же ошибка
  • https://t.me/clickhouse_ru
    @morozovsk #222097 06:41 PM, 10 Jun 2021
    интересно, у всех неактивных партов в несколько раз больше чем активных? у меня на локалке неактивные пропадают достаточно быстро, а на серваке их куча
  • https://t.me/clickhouse_ru
    IO то мониторите? Там всё норм?
  • https://t.me/clickhouse_ru
    да, только на эту мат вью ругается. увеличил parts_to_throw_insert до 1000 - больше не ругается :) но я понимаю, что это временно
  • https://t.me/clickhouse_ru
    посмотрите не по таблицам в общем, а по партициям, возможно понятнее будет
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #222091 #222101 06:43 PM, 10 Jun 2021
    Ключ сортировки и ключ партиционирования - это разное. Вставляемый батч бьётся на парты по ключу партиционирования и данные в каждом парте сортируется по ключу сортировки. Высококардинальный ключ сортировки не влияет на количество партов.
  • https://t.me/clickhouse_ru
    да, там вообще всё почти на нулях. прям хоть назад parts_to_throw_insert на 300 менять и проверять, будет валиться или нет
  • https://t.me/clickhouse_ru
    Имхо у вас много партов в целом. С другой стороны, если не тормозит, то ок.
  • https://t.me/clickhouse_ru
    партов много по большей части из-за того что у меня партицирование по дням, но в пересчёте на одну партицию у меня не больше 13 партов, т.е. в 300 не должен был упереться, но возможно AggregatingMergeTree почему-то затупил и долго их не мёржил, может из-за того что я пару колонок новых добавлял или типа того
  • Если не принципиально попробуйте удалить партиции и потом таблицу
  • Да все хуже уже )) я поменял конфиг в кластере, который позволяет удалять таблицы любого размера, рестартнул его (altinity k8s operator) и все, приехали, теперь pod работает вроде, в логах пусто, или я не особо понимаю что смотреть, но соединения нода не принимает, connection refused
  • @helloworld2024 #222107 07:50 PM, 10 Jun 2021
    В логах пода, liveness probe failed, http:/.../ping
  • А в логах кх что?
  • Ну вот, в err какой-то плюсовый стектрейс, и в stdout не помню, ничего особенного, отошёл на полчаса, вернусь скину
  • @helloworld2024 #222111 07:53 PM, 10 Jun 2021
    Ну если я правильно помню там стектрейс связан с каким-то старым запросом, перепроверю
  • @helloworld2024 #222112 07:54 PM, 10 Jun 2021
    Очень странная ситуация, короче
  • Мб конфиг поломали, если меняли только его.
  • Ну я его обратно вернул, и то же самое
  • https://t.me/clickhouse_ru
    @vchernyshev #222115 08:52 PM, 10 Jun 2021
    Добрый вечер. Подскажите, пожалуйста, как вытянуть данные для функций типа covarPop/corr, если эти данные хранятся в строках, а не в столбцах? Допустим, что есть таблица, в которой лежат unique_instrument_id, date, measurement. Хочется вычислить коэффициент корреляции между значениями measurement для нескольких пар инструментов в заданном диапазоне дат. То есть на вход подаётся что-то вроде массива инструментов [("A, "B"), ("C", "D"), ...] и две даты. На выходе хотелось бы получить таблицу с двумя колонками, в первой — пара инструментов, во второй — посчитанный коэффициент.
  • 2021.06.10 20:47:25.186270 [ 57 ] {} <Debug> SystemLog (system.metric_log): Will use existing table system.metric_log for MetricLog
    2021.06.10 20:47:25.189409 [ 57 ] {} <Debug> DiskLocal: Reserving 1.00 MiB on disk `default`, having unreserved 1.81 TiB.
    2021.06.10 20:47:29.006221 [ 68 ] {} <Debug> system.metric_log (606a01e1-3473-4f65-be72-556f5b70aa6d): Removing part from filesystem 202106_975458_975458_0
    2021.06.10 20:48:18.468512 [ 45 ] {} <Information> Application: Received termination signal (Terminated)
    2021.06.10 20:48:32.812418 [ 57 ] {} <Debug> DiskLocal: Reserving 1.00 MiB on disk `default`, having unreserved 1.81 TiB.
    2021.06.10 20:48:32.815785 [ 56 ] {} <Debug> system.metric_log (606a01e1-3473-4f65-be72-556f5b70aa6d): Removing part from filesystem 202106_975459_975459_0
    2021.06.10 20:48:32.816169 [ 56 ] {} <Debug> system.metric_log (606a01e1-3473-4f65-be72-556f5b70aa6d): Removing part from filesystem 202106_975460_975460_0
    2021.06.10 20:48:32.816458 [ 56 ] {} <Debug> system.metric_log (606a01e1-3473-4f65-be72-556f5b70aa6d): Removing part from filesystem 202106_975461_975461_0
    2021.06.10 20:48:40.318576 [ 57 ] {} <Debug> DiskLocal: Reserving 1.00 MiB on disk `default`, having unreserved 1.81 TiB.
    2021.06.10 20:48:40.321110 [ 59 ] {} <Debug> system.metric_log (606a01e1-3473-4f65-be72-556f5b70aa6d) (MergerMutator): Selected 6 parts from 202106_975226_975466_52 to 202106_975471_975471_0
    2021.06.10 20:48:40.321181 [ 59 ] {} <Debug> DiskLocal: Reserving 1.00 MiB on disk `default`, having unreserved 1.81 TiB.
    2021.06.10 20:48:40.321222 [ 59 ] {} <Debug> system.metric_log (606a01e1-3473-4f65-be72-556f5b70aa6d) (MergerMutator): Merging 6 parts: from 202106_975226_975466_52 to 202106_975471_975471_0 into Compact
    2021.06.10 20:48:40.321554 [ 59 ] {} <Debug> system.metric_log (606a01e1-3473-4f65-be72-556f5b70aa6d) (MergerMutator): Selected MergeAlgorithm: Horizontal
    2021.06.10 20:48:40.360020 [ 59 ] {} <Debug> system.metric_log (606a01e1-3473-4f65-be72-556f5b70aa6d) (MergerMutator): Merge sorted 2658 rows, containing 260 columns (260 merged, 0 gathered) in 0.038800871 sec., 68503.61683891065 rows/sec., 135.23 MiB/sec.
    2021.06.10 20:48:40.365163 [ 59 ] {} <Debug> MemoryTracker: Peak memory usage: 16.27 MiB.
    2021.06.10 20:48:47.824301 [ 57 ] {} <Debug> DiskLocal: Reserving 1.00 MiB on disk `default`, having unreserved 1.81 TiB.


    из последнего, в crashloop ушел
  • https://t.me/clickhouse_ru
    @399999446 #222117 08:57 PM, 10 Jun 2021
    а в кх нет функционала для парсинга xml? метода ,куда передать xpath?
  • Logging debug to console
    2021.06.10 20:56:19.465891 [ 1 ] {} <Information> SentryWriter: Sending crash reports is disabled
    2021.06.10 20:56:19.537456 [ 1 ] {} <Information> : Starting ClickHouse 20.8.13.15 with revision 54438, build id: 9A3F8C853C289745, PID 1
    2021.06.10 20:56:19.537598 [ 1 ] {} <Information> Application: starting up
    2021.06.10 20:56:19.543827 [ 1 ] {} <Information> Application: It looks like the process has no CAP_IPC_LOCK capability, binary mlock will be disabled. It could happen due to incorrect ClickHouse package installation. You could resolve the problem manually with 'sudo setcap cap_ipc_lock=+ep /usr/bin/clickhouse'. Note that it will not work on 'nosuid' mounted filesystems.
    2021.06.10 20:56:19.543938 [ 1 ] {} <Information> StatusFile: Status file /var/lib/clickhouse/status already exists - unclean restart. Contents:
    PID: 1
    Started at: 2021-06-10 20:54:08
    Revision: 54438

    есть такая интересная штука
  • @helloworld2024 #222119 09:02 PM, 10 Jun 2021
    и такая от бэкапа 2021/06/10 20:00:08 CreateBackup error: clickhouse data path is unknown, you can set data_path in config file
    2021/06/10 20:01:08 Upload error: clickhouse data path is unknown, you can set data_path in config file
  • @helloworld2024 #222121 09:24 PM, 10 Jun 2021
    он поднимается, начинает что-то делать (сервер не отвечает), и потом сразу падает почти, из интересного вижу только
    <Information> Application: Received termination signal (Terminated)

    в err log ниче, все старое
  • @helloworld2024 #222122 10:01 PM, 10 Jun 2021
    вот еще ивенты Events:
    Type Reason Age From Message
    ---- ------ ---- ---- -------
    Normal Scheduled <unknown> default-scheduler Successfully assigned clickhouse/chi-risk-aggregator-main-0-0-0 to k8s-highpri-20631152-vmss000005
    Normal SuccessfulAttachVolume 26m attachdetach-controller AttachVolume.Attach succeeded for volume "pvc-0eabf302-d79c-460a-9108-1f49e5cf57ed"
    Normal SuccessfulAttachVolume 26m attachdetach-controller AttachVolume.Attach succeeded for volume "pvc-83bba03c-7688-4642-a1c3-13712fcfef9e"
    Warning FailedMount 25m kubelet, k8s-highpri-20631152-vmss000005 Unable to attach or mount volumes: unmounted volumes=[log-volume-template], unattached volumes=[chi-risk-aggregator-common-configd chi-risk-aggregator-common-usersd chi-risk-aggregator-deploy-confd-main-0-0 data-volume-template log-volume-template default-token-vscvp]: timed out waiting for the condition
    Normal Pulling 25m kubelet, k8s-highpri-20631152-vmss000005 Pulling image "busybox"
    Normal Started 25m kubelet, k8s-highpri-20631152-vmss000005 Started container clickhouse-backup
    Normal Pulled 25m kubelet, k8s-highpri-20631152-vmss000005 Container image "alexakulov/clickhouse-backup:0.6.4" already present on machine
    Normal Created 25m kubelet, k8s-highpri-20631152-vmss000005 Created container clickhouse-backup
    Normal Pulled 25m kubelet, k8s-highpri-20631152-vmss000005 Successfully pulled image "busybox"
    Normal Created 25m kubelet, k8s-highpri-20631152-vmss000005 Created container clickhouse-log
    Normal Started 25m kubelet, k8s-highpri-20631152-vmss000005 Started container clickhouse-log
    Normal Killing 24m kubelet, k8s-highpri-20631152-vmss000005 Container clickhouse failed liveness probe, will be restarted
    Normal Started 23m (x2 over 25m) kubelet, k8s-highpri-20631152-vmss000005 Started container clickhouse
    Normal Created 23m (x2 over 25m) kubelet, k8s-highpri-20631152-vmss000005 Created container clickhouse
    Normal Pulled 15m (x6 over 25m) kubelet, k8s-highpri-20631152-vmss000005 Container image "yandex/clickhouse-server:20.8.13.15" already present on machine
    Warning BackOff 5m34s (x22 over 11m) kubelet, k8s-highpri-20631152-vmss000005 Back-off restarting failed container
    Warning Unhealthy 40s (x81 over 24m) kubelet, k8s-highpri-20631152-vmss000005 Liveness probe failed: Get http://10.240.1.180:8123/ping: dial tcp 10.240.1.180:8123: connect: connection refused
  • https://t.me/clickhouse_ru
    @pcdeadz #222124 10:32 PM, 10 Jun 2021
    Всем привет )
  • https://t.me/clickhouse_ru
    @pcdeadz #222125 10:35 PM, 10 Jun 2021
    На сколько ресурсно затратны UPDATE и DELETE?
  • https://t.me/clickhouse_ru
    Недавно лярд записей обновлял, кратковременно нагрузка поднялась, но не критично.
  • https://t.me/clickhouse_ru
    @pcdeadz #222127 11:05 PM, 10 Jun 2021
    А железо какое?
  • https://t.me/clickhouse_ru
    Виртуалка :)
  • https://t.me/clickhouse_ru
    50 евро, 32 гб оперативы, 8 вирт ядер
  • https://t.me/clickhouse_ru
    @pcdeadz #222130 11:07 PM, 10 Jun 2021
    У меня при селекте с джойном, лоад почти 100% 😂
  • https://t.me/clickhouse_ru
    @pcdeadz #222131 11:08 PM, 10 Jun 2021
    А тут блин апдейт делать страшно
  • https://t.me/clickhouse_ru
    @pcdeadz #222132 11:08 PM, 10 Jun 2021
    😅
  • https://t.me/clickhouse_ru
    Ну при джойне и у меня 100% нагрузка на диск и проц :). Кх - колоночная бд. По идее если апдейтить одну колонку, то только её и будет на диске переписывать.
  • 11 June 2021 (233 messages)
  • https://t.me/clickhouse_ru
    max_table_size_to_drop в настройках поменяйте =)
  • https://t.me/clickhouse_ru
    флаг ставите, drop делаете. дроп должен успешно пройти. а флаг исчезнуть. Для каждого нового дропа отдельный флаг.
  • @tanirf #222136 03:38 AM, 11 Jun 2021
    Всем привет. Подскажите пожалуйста. Пытаюсь использовать s3

    ``` INSERT INTO S3(
    'https://some.s3.us-east-2.amazonaws.com/test.csv.gz',
    'some value',
    'some value',
    'CSV',
    'name String, value UInt32',
    'gzip')
    VALUES ('test-data', 1),
    ('test-data-2', 2); ```

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

    Code: 62, e.displayText() = DB::Exception: Syntax error: failed at position 32 (''https://test-tanir-sdv.s3.us-east-2.amazonaws.com/test.csv.gz'') (line 2, col 16): 'https://test-tanir-sdv.s3.us-east-2.amazonaws.com/test.csv.gz', 'AKIAY7FF2GBWCKKCKFWN', '51JpMKPm523kjGU/UT8oFMkLi2TzNO1Gjt8QQxrm. Expected one of: insert element, qualified asterisk, asterisk, compound identifier, identifier, COLUMNS matcher, list of elements, COLUMNS (version 21.6.3.14 (official build))

    в чем может быть проблема? Пример скопирован из документации. Сам clickhouse последней версии
  • 'https://some.s3.us-east-2.amazonaws.com/test.csv.gz', - и дальше, это что? имена полей??
  • может INSERT INTO FUNCTION s3( ?
  • да, в доке без функции, странно
  • @tanirf #222141 04:23 AM, 11 Jun 2021
    Да, отработало вот так
    ```
    INSERT INTO FUNCTION s3(
    'https://some.s3.us-east-2.amazonaws.com/test.csv.gz',
    'some',
    'some',
    'CSV',
    'name String, value UInt32',
    'gzip')
    VALUES ('test-data', 1),
    ('test-data-2', 2);
    ```
  • @tanirf ↶ Reply to #222140 #222142 04:23 AM, 11 Jun 2021
    ну в документации по ссылке про это ничего нет
  • @dmitry_mosin #222144 04:24 AM, 11 Jun 2021
    Нужно мнение более опытных коллег %)
  • @tanirf #222145 04:28 AM, 11 Jun 2021
    @dmitry_mosin спасибо за подсказку
  • @dmitry_mosin #222146 04:34 AM, 11 Jun 2021
    Надо наверно pr сделать (сделал)
  • @377330865 #222148 06:22 AM, 11 Jun 2021
    Всем привет! Подскажите, пожалуйста, правильно ли я понимаю, что если выбрать движок replacingMergeTree, то он будет удалять дублирующиеся записи по ключу сортировки только внутри отдельных партиций? Дубли из разных партиций не будут схлопнуты?
  • https://t.me/clickhouse_ru
    у вас ЗАМЕНА (не удаление)
    происходит по одинаковым выражаниям ORDER BY
    при background merge \ mutation merge
    который происходит в рамках одной PARTITION
    так что при слиянии parts объединения не будет

    но при SELECT ... FINAL уже будет

    пример
    CREATE TABLE t1 (dt DateTime, cat LowCardinality(String), v UInt64) ENGINE=ReplacingMergeTree() PARTITION BY toYYYYMM(dt) ORDER BY cat;

    INSERT INTO t1 VALUES(NOW(), 'test', 1);
    INSERT INTO t1 VALUES(NOW()-INTERVAL 1 MONTH, 'test', 2);
    // две записи
    SELECT * FROM t1;
    // одна запись
    SELECT * FROM t1 FINAL;

    OPTIMIZE TABLE t1 FINAL;
    // все еще две записи, потому что слияние в рамках партиции
    SELECT * FROM t1;
    // все еще одна запись
    SELECT * FROM t1 FINAL;
  • @377330865 #222150 06:59 AM, 11 Jun 2021
    Понял, спасибо большое!
  • @377330865 #222151 07:13 AM, 11 Jun 2021
    У меня есть ещё вопрос, менее мне понятный. У меня табличка со следующей структурой:
    id
    Row_num - номер строки для ключа id
    Разные поля с данными
    Date - дата загрузки в клик
    И мне нужно при селекте из нее по ключу выдавать только строки с максимальным Date для ключа
    Я сделал вьюху типа
    Create view vMaxDate as select id, max(date) as maxDate from table
    И сделал вторую вью
    Create view final as select * from table join vMaxDate on id = id and date = maxDate
    Но получается, что при селекте из последней вьюхи типа
    Select * from final where id = 1
    Клик сначала найдет максимальную дату для всех id, и только потом будет фильтроваться на id = 1. Можно ли как-то в клике прокидывать фильтр внутрь вьюхи, так чтобы он сразу видел фильтр и искал максимальную дату именно для требуемого ключа
  • все проще, argMax есть
  • @377330865 #222154 07:18 AM, 11 Jun 2021
    Да, я про него знаю
    Но у меня к сожалению есть кейсы, когда строки раньше приходили с конкретным row num, а сейчас не приходят
    Мне надо их отбрасывать
  • @377330865 #222155 07:19 AM, 11 Jun 2021
    Argmax будет мне выдавать в том числе и максимальную по дате строку для удаленных row num
  • да и вообще если по каждому ключу, сделайте просто max и группировку.

    так вы фильтр добавьте
  • @377330865 #222157 07:23 AM, 11 Jun 2021
    Не совсем понял :(
  • ну вы придумываете велосипед какой-то, кмк.
    у вас простая задача: есть ключи, и еще 2 арибута(row, дата)
    вам нужно выбрать все ключи и максимальную дату к ним(возможно нужны фильтры):
    select key, max(date) from tab [where row=value] group by key
    так?
  • @377330865 #222159 07:30 AM, 11 Jun 2021
    Ну фильтры по row вряд ли легко получатся, они могут быть разные для разных ключей
    В целом да, нужен такой селект, и нужно потом результат джойнить на всю таблицу, чтобы выбирать строки с максимальной датой, и не хотелось бы, чтобы при каждом таком джойне заново рассчитывалась максимальная дата для каждого ключа
  • @377330865 #222160 07:30 AM, 11 Jun 2021
    Хм, я вот думаю, можно же такой запрос с группировкой не вьюхой делать, а например материализованной вьюхой
  • https://t.me/clickhouse_ru
    Дайте пожалуйста ddl таблицы и кратко сформулируйте проблему. Сложно понять, что вы хотите.
  • https://t.me/clickhouse_ru
    Доброе утро, по вот этому вопросу кто-нибудь может подсказать?
  • @377330865 #222163 07:37 AM, 11 Jun 2021
    Ddl
    Id - ключ таблицы (по нему несколько строк)
    Row - номер строки для ключа
    Разные атрибуты с данными
    Date - дата загрузки в клик
    Нужно сделать такую вьюху, при обращении к которой для ключа id будет находиться максимальная дата загрузки Date и выдаваться все строки по ключу с такими Date. При этом к вьюхе запросы в основном будут с фильтром с конкретным значением id и хотелось бы, чтобы при расчете не искались максимальные date для всех остальных ключей. И при этом бывают удаленные row, какие-то номера, которые больше не приходят, это не даёт возможность использовать argmax
  • https://t.me/clickhouse_ru
    @ShawarmaEatOwls #222164 07:43 AM, 11 Jun 2021
    Всем привет, прочитал, что кликхаус по дефолту нулы при full join-e не генерирует, а как это тогда работает? Что будет в колонках, где нет значений?
  • https://t.me/clickhouse_ru
    DDL
    это
    SHOW CREATE TABLE db.table
  • https://t.me/clickhouse_ru
    Ничего не понятно, но с вьюхой будет дико тормозить. Проброс параметров есть, но сильно костыльный, через параметр в сеттингс. Вам нужнжна матвью, которая для каждого айдишника будет вычислять максимальную дату.
  • @377330865 #222167 08:56 AM, 11 Jun 2021
    Да, попробую с матвью, спасибо!
  • https://t.me/clickhouse_ru
    С функциями типа covarPop/corr мало кто работал. Покажите ддл, чтобы было видно в какок формате у вас сейчас данные и напишите в каком формате их хотите получить.
  • @1840548051 #222170 09:08 AM, 11 Jun 2021
    https://t.me/MacSoftwareFree/180
    This is a channel that focuses on Mac free cracking software. They are free forever and are updated weekly.
    Mac software crack free

    Fast, lightweight and easy-to-use PDF editor Easily complete PDF editing, reading, annotating, editing text, adding photos, filling in forms, signing contracts, merging PDF documents, and encryption protection on MAC with just a few clicks, an unprecedented experience. The latest free cracked version, and it is free forever!

  • https://t.me/clickhouse_ru
    @svdmitriy #222171 09:08 AM, 11 Jun 2021
    Всем привет, какие есть лучшие практики для задачи репликации postgres -> clickhouse? Т.е., работает основная база на pg, а для аналитики сбоку стоит Clickhouse с +- актуальными данными.
    Как-то сходу не гуглится/дукдучится. Т.е., нашёл несколько ссылок - https://github.com/mkabilov/pg2ch, https://pypi.org/project/synch/ и ещё что-то. Но как-то не завелись они с полпинка, а сходу лезть в дебаг не хотелось бы.
    Кто что использует для такой задачи?
    GitHub - mkabilov/pg2ch: Data streaming from postgresql to clickhouse via logical replication mechanism

    Data streaming from postgresql to clickhouse via logical replication mechanism - GitHub - mkabilov/pg2ch: Data streaming from postgresql to clickhouse via logical replication mechanism

  • https://t.me/clickhouse_ru
    Движок есть postgresql уже в кх
  • https://t.me/clickhouse_ru
    Я тоже только изучаю. С Oracle данные в Clickhouse перегонял с помощью DATAX
    А еще есть JDBC Bridge
  • https://t.me/clickhouse_ru
    Ага, вот им и перетянул данные, но как это делать "на постоянной основе", т.е., чтобы WAL синхронизировался?
  • https://t.me/clickhouse_ru
    Или имеете в виду - создавать БД на движке postgres и (как-то) реплицировать?
  • https://t.me/clickhouse_ru
    Не проще просто сделать реплику для постгре именно в постгре, простите, но я не вижу смысла в том, чтобы лить тупо из постгри в кх.
  • https://t.me/clickhouse_ru
    Ага, спасибо за ответ. Просто слышал в подкасте, что CH хорошо подходит для всякой аналитики, есть там какие-то плюшки, которых нет в PG, вот и решил попробовать в качестве эксперимента.
  • https://t.me/clickhouse_ru
    вот вышеуказанное и придется заводить
    лезьте в дебаг =)

    ну или ждите когда зарелизят
    https://github.com/ClickHouse/ClickHouse/pull/20470
    MaterializePostgreSQL table engine and database engine by kssenii · Pull Request #20470 · ClickHouse/ClickHouse

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

  • https://t.me/clickhouse_ru
    Я б понимал бы, если вы будете преобразовывать данные и хранить в КХ для аналитики уже processed data из постгри. :)
  • https://t.me/clickhouse_ru
    думаю вам в clickhouse рано =)
    думаю у вас данных столько нет ...
  • https://t.me/clickhouse_ru
    ну шо как сразу обрубаити (сорказмь)
  • https://t.me/clickhouse_ru
    Например - в postgres есть ограничение на уникальный ключ/констрейнт для секционированных таблиц, если ключ секционирования задан выражением. А в кликхаусе этого ограничения нет.
  • https://t.me/clickhouse_ru
    А какой "порог входа" в CH (в строках)? :)
  • https://t.me/clickhouse_ru
    ну =) зато в clickhouse вообще UNIQUE KEYS нет =)
  • https://t.me/clickhouse_ru
    Use-case смотрите свой, дело даж не в технической стороне вопроса, а в целесообразности использования подхода :)
  • https://t.me/clickhouse_ru
    @critskiy #222186 09:19 AM, 11 Jun 2021
    Я как бе тоже могу репликацию захотеть в КХ из постгри, но я б вначале данные оценил бы и вообще поставил бы вопрос "зачем"
  • https://t.me/clickhouse_ru
    Да? А что тогда такое PRIMARY KEY в DDL - это не то, что я думаю? =)
  • https://t.me/clickhouse_ru
    он не в строках
    чтобы все получилось, ситуация должна быть так "мы ХОРОШО (на низком уровне) знаем как работает наша текущая БД и понимаем почему она тормозит на нашем use case и понимаем почему в clickhouse будет работать быстрее"

    а все остальное
    "ой я слышал clickhouse модный"
    либо "ой давайте все аналитические данные сразу в clickhouse будем хранить"
    обычно не очень хорошо кончается =)
  • https://t.me/clickhouse_ru
    С постгрей отчасти "импортозамещение" канает %)
  • https://t.me/clickhouse_ru
    Спасибо за ответ, вполне резонно.
  • https://t.me/clickhouse_ru
    вот вообще не то =)
    PRIMARY KEY это вот прямо PRIMARY KEY

    а не UNIQUE CLUSTERED INDEX как в MySQL и UNIQUE B-Tree INDEX как в Postgre
  • https://t.me/clickhouse_ru
    Ага, интересно... Наверное, в кликхаус мне действительно рано (-:
  • https://t.me/clickhouse_ru
    если у вас сейчас postgres и хочется в рамках аналитики поиграться в этой экосистеме
    посмотрите в сторону CItus Columnar Extension
    https://www.citusdata.com/
    Citus Data | Distributed Postgres. At any scale.

    Citus transforms Postgres into a distributed database you can run at any scale. By distributing your data and parallelizing your queries across multiple nodes, your application can scale & your queries are fast. Citus is available as open source and in the cloud, built into Azure Database for PostgreSQL.

  • https://t.me/clickhouse_ru
    Спасибо, посмотрю.
  • @danleks #222195 09:26 AM, 11 Jun 2021
    Всем привет!
    Перелопатил все, потеряв надежду - иду сюда.

    Проблема: не принимает соединения clickhouse (listen_host стоит для всех - ::)

    Как служба - работает (active (exited)).
    В логах (даже через интерактивный режим) - нет Error'ов.

    Не принимает соединения ни на 8123 порт, ни на 9000. Из консоли получаю:

    ClickHouse client version 21.2.5.5 (official build).
    Connecting to 127.0.0.1:9000 as user default.
    Code: 210. DB::NetException: Connection refused (127.0.0.1:9000)

    В логах кристально чисто. Куда смотреть, подскажите, пожалуйста?
  • https://t.me/clickhouse_ru
    @brbrbr #222196 09:27 AM, 11 Jun 2021
    Всем привет. Помогите советом по поиску потерянных записей.

    Есть цепочка [SourceTable1, SourceTable2, ..., SourceTableN] -> [MV1, MV2, ..., MVN] -> Buffer -> DestinationAggTable.

    В SourceTable обнаружились записи (несколько тысяч потерянных записей из 150млн успешно дошедших) двухдневной давности, которые не учтены в DestinationAggTable (сравнивал результаты запроса к DestinationAggTable c final и результаты запроса к исходной SourceTable).
    Основной подозреваемый - Buffer. Правда, он копит по 16 х 500к записей, что сильно больше потерянного количества.
    Второй подозреваемый - MV, но, насколько помню, если бы была ошибка в MV (какие-нибудь некорректные данные, которые нельзя вставить в буфер, например), то эта пачка и в исходную таблицу не вставилась бы.
    Третий подозреваемый - собственно, DestinationAggTable. Из возможных ошибок могу нафантазировать только какие-нибудь ошибки мерджа или вставки, хотя такого ещё никогда не видел.

    Вопрос: как можно проверить не было ли каких ошибок при вставке в буфер\записи из буфера? Или там перезагрузок? Если в файловых логах, то в каких?
    Дело в том, что у меня нет доступа к файловой системе сервера, могу запросить логи через админов, но надо понять что запрашивать.
  • https://t.me/clickhouse_ru
    selinux firewall
  • https://t.me/clickhouse_ru
    А если пробросить порт через ssh на локальную машину?
  • https://t.me/clickhouse_ru
    Как служба - работает (active (exited)).
    вообще вроде явно говорит что он тупо вышел у тебя =)

    /var/log/clickhouse-server/*.err.log смотрел?
  • Фаерволл отключен, коннекты не проходят даже локально через clickhouse-client
  • Вот совсем пусто. Были ошибки запросов, но это отношения к делу не имеет
  • https://t.me/clickhouse_ru
    нет не так
    ошибки в MV особенно если у вас цепочки MV
    на исходную таблицу не влияют

    MV это AFTER INSERT trigger который срабатывает на блок записей при INSERT в таблице которые прописан в SELECT .. FROM для MV
  • https://t.me/clickhouse_ru
    идем на сервер clickhouse

    curl -vvv http://127.0.0.1:8123/ping
    что показывает?

    ss -nltp | grep clickhouse
    что показывает?
  • https://t.me/clickhouse_ru
    а selinux стоит ?
  • curl: (7) Failed to connect to 127.0.0.1 port 8123: В соединении отказано

    Вторая команда ничего не выводит. Сейчас кликхаус работает в интерактивном режиме, много подобных сообщений

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

    Вначале только <Information> Application: starting up.
  • selinux не стоит
  • Всем спасибо! Данный поток длился очень долго, через службу кликхаус запуститься не мог. Помогло "ожидание", пока в интерактивном режиме не прошло около 2 часов
  • https://t.me/clickhouse_ru
    Предположим, что вот такая таблица:

    CREATE TABLE data_set (instrument_id UUID, date Date, measurement Float64) ENGINE = MergeTree() PARTITION BY toYYYYMM(date) ORDER BY tuple()

    Схема упрощённая, но для понимания проблемы подходит. Положить instrument_id в колонки я не смогу, так как заранее они неизвестны.

    Теоретически можно посчитать ковариацию для пары массивов при помощи, например, SELECT covarSampArray([1, 2, 3], [1, 2, 6]). То есть последовательность измерений для одного инструмента я могу преобразовать в массив при помощи groupArray(measurement). Но как это всё вместе связать у меня пока что идей нет.
  • https://t.me/clickhouse_ru
    ну сделайте grep -i listen /var/log/clickhouse-server

    и
    ss -nltp | grep 8123
  • https://t.me/clickhouse_ru
    в смысле у вас там данных чтобы было дофига и 2 часа click табличку грузил? или что?
  • https://t.me/clickhouse_ru
    @brbrbr ↶ Reply to #222202 #222211 10:13 AM, 11 Jun 2021
    Да, я много раз смотрел и читал то разъяснения Дениса, но с полгода назад я так потерял пару дней исходных данных (не помню только на 19.х или уже на 20.8), когда у меня набор полей в исходной таблице, MV и таблице назначения разъехался, из-за чего запрос в MV стал некорректным.
    Специально потом не воспроизводил, но галочку себе поставил.
  • https://t.me/clickhouse_ru
    @ployd #222212 10:21 AM, 11 Jun 2021
    Привет. Зависают DROP TABLE/DROP DATABASE запросы. Другие DDL (CREATE TABLE) работают.
    В логах только такое вижу

    DROP TABLE test.indicator_log

    Query id: ce1f4cfb-2e09-42b8-90aa-8af21c100127

    [clickhouse-dev] 2021.06.11 10:20:20.630424 [ 866325 ] {ce1f4cfb-2e09-42b8-90aa-8af21c100127} <Debug> executeQuery: (from 10.20.20.26:41502, using production parser) DROP TABLE test.indicator_log;

    Timeout exceeded while receiving data from server. Waited for 300 seconds, timeout is 300 seconds.
    Cancelling query.

    Загрузка cpu нулевая, io тоже. В чём может быть дело?
  • https://t.me/clickhouse_ru
    @ployd #222213 10:39 AM, 11 Jun 2021
    После перезапуска clickhouse-srever заработало. Хм (
  • мне тоже интерестно использует ли кто-нобудь дбт с КХ, и если да, то какие впечатления?
  • https://t.me/clickhouse_ru
    @md_nguyen #222215 10:54 AM, 11 Jun 2021
    Привет!
    Подскажите, пожалуйста, что не так в синтаксисе этого запроса? Если я запускаю в DataGrip, то запрос выполняется, но если запускаю в ClickHouse консоле, то мне говорит

    🙂 LEFT JOIN results_courselessonsummary AS summary ON cll.id = summary.clesson_id
    ORDER BY solving_time DESC
    ;:-]ORDER BY solving_time DESC
    ;
    Syntax error: failed at position 1 ('LEFT') (line 1, col 1):

    LEFT JOIN results_courselessonsummary AS summary ON cll.id = summary.clesson_id
    ORDER BY solving_time DESC

    Expected one of: Query, CREATE, ATTACH, USE, <…>

    Сам запрос:
    ```
    SELECT cll.id,
    lesson_id,
    solving_time,
    dateDiff(
    'second',
    date_assignment,
    toDateTime(parseDateTimeBestEffortOrZero(summary.date_created, 6, 'Europe/Moscow'))
    ) AS first_attempt_time
    FROM
    (
    SELECT id,
    lesson_id,
    toDateTime(parseDateTimeBestEffortOrZero(date_assignment, 6, 'Europe/Moscow')) as date_assignment,
    dateDiff(
    'second',
    date_assignment,
    toDateTime(parseDateTimeBestEffortOrZero(date_finished_by_students, 6, 'Europe/Moscow'))
    ) AS solving_time
    FROM courses_courselessonlink
    WHERE date_assignment IS NOT NULL
    AND date_finished_by_students IS NOT NULL
    ) AS cll
    LEFT JOIN results_courselessonsummary AS summary ON cll.id = summary.clesson_id
    ORDER BY solving_time DESC
    ;
    ```
  • https://t.me/clickhouse_ru
    @kotpeter #222216 10:55 AM, 11 Jun 2021
    Всем привет! Если сделал DETACH PARTITION или FREEZE PARTITION, можно ли менять структуру таблицы, а потом аттачить партишки обратно? Не сломается?
  • вроде должно что-то сломаться, если добавить столбец, то не должно ломаться, если сменить тип, то очевидно, что не сможет поехать
  • у вас многострочный запрос?
    --multiline ?
  • https://t.me/clickhouse_ru
    @md_nguyen #222221 11:06 AM, 11 Jun 2021
    многострочный, да
  • https://t.me/clickhouse_ru
    @md_nguyen #222222 11:06 AM, 11 Jun 2021
    а как это включить в консоле :)?
  • https://t.me/clickhouse_ru
    @md_nguyen #222223 11:06 AM, 11 Jun 2021
    подключиться со флагом —multiline ?
  • @vvvjhaq #222224 11:06 AM, 11 Jun 2021
    при запуске консоли -m параметр
  • https://t.me/clickhouse_ru
    @md_nguyen #222225 11:07 AM, 11 Jun 2021
    ммм, сейчас попробую.
  • https://t.me/clickhouse_ru
    @md_nguyen #222226 11:08 AM, 11 Jun 2021
    да, получилось! Спасибо!
  • https://t.me/clickhouse_ru
    @visionp #222227 11:08 AM, 11 Jun 2021
    Всем привет!
    Не могу разобраться что не так с подпиской на rabbit, создаю таблицы запросом:

    create table attempts
    (
    project_id Int64,
    vendor_id Int64,
    created_at DateTime(6, 'UTC')
    )
    engine = MergeTree ORDER BY project_id;
    create table attempts_queue
    (
    project_id Int64,
    vendor_id Int64,
    created_at DateTime(6, 'UTC')
    )
    engine = RabbitMQ
    SETTINGS
    rabbitmq_host_port = 'rabbitmq.loc:5672',
    rabbitmq_exchange_name = 'clickhouse',
    rabbitmq_exchange_type = 'direct',
    rabbitmq_format = 'JSONEachRow',
    rabbitmq_queue_base = 'clickhouse_attempts',
    rabbitmq_routing_key_list = 'clickhouse_clickhouse_attempts',
    rabbitmq_num_consumers = 1;

    CREATE MATERIALIZED VIEW attempts_consumer TO attempts AS select * from attempts_queue;

    но консьмер не появляется, при этом при выполнении запроса
    select * from attempts_queue
    данные я получаю
  • нет такого в version 19.16.19.85 (official build)

    только обновляться и юзать? в зукипере опасно удалить путь до каждой выведенной реплики `/clickhouse/{shard}/{table}/replicas/{replica} - или это не поможет?
  • https://t.me/clickhouse_ru
    Ну руками удалить путь можно
  • https://t.me/clickhouse_ru
    19.16 не поддерживается от слова вообще
    лучше обновляться
  • @VladimirKoptev #222232 11:27 AM, 11 Jun 2021
    понял. спасибо за помощь!
  • https://t.me/clickhouse_ru
    @innopolis #222233 11:38 AM, 11 Jun 2021
    как сделать ReplacingMergeTree на все колонки?
  • https://t.me/clickhouse_ru
    в replacingMT есть 3 типа колонок:
    1. те, что в ORDER BY — ключи дедупликации
    2. опциональный version (не мб в ORDER BY) — отвечает за выбор строки (если нет, то остается последняя по вставке строка)
    3. остальные — значения дедуплицируются

    что вы хотите получить?
  • https://t.me/clickhouse_ru
    Дедупликацию дубликатов по всем колонкам таблицы (п1)
  • https://t.me/clickhouse_ru
    проверил руками. Делал DETACH, менял столбцы (переименовал, добавлял, удалял по 1 столбцу за раз). ATTACH в обратную сторону отрабатывает без проблем. Да, удалённый столбец не начинает быть видимым и, думается мне, его данные будут вычищены вместе с последующим OPTIMIZE. Переименованая колонка также остаётся пустой после ATTACH.
  • https://t.me/clickhouse_ru
    можно последним значением в ORDER BY добавить cityHash(*);
  • https://t.me/clickhouse_ru
    простой ответ: запихивайте все столбцы в order by
    чуть более правильный ответ: не надо запихивать все столбцы в order by

    кейс заключается в том, что вы пишете полные дубликаты и хотите от них избавляться?
  • https://t.me/clickhouse_ru
    Да
  • https://t.me/clickhouse_ru
    о, прикольно
  • https://t.me/clickhouse_ru
    @pic_Nick77 #222241 11:59 AM, 11 Jun 2021
    Подскажите, а какой движок БД используется у базы по-умолчанию? Или как посмотреть какой дижок у БД?
  • https://t.me/clickhouse_ru
    atomic в последних версиях, в ранних ordinary, емнип
  • https://t.me/clickhouse_ru
    @pic_Nick77 #222244 12:01 PM, 11 Jun 2021
    В мануале написано "По умолчанию ClickHouse использует движок Atomic", но у меня не работает exchange tables. Версия 21.4.
  • https://t.me/clickhouse_ru
    @pic_Nick77 #222245 12:02 PM, 11 Jun 2021
    Но я апгрейдил его с более ранних версий.
  • https://t.me/clickhouse_ru
    пора уже закопать стюардессу :)
  • https://t.me/clickhouse_ru
    никого не слушайте, юзайте кликхайс, но на вашем месте я бы подождал релиза MaterializePostgreSQL, собственно я сам и жду :)
  • https://t.me/clickhouse_ru
    А почему вы говорите это мне, а не топикстартеру?
  • https://t.me/clickhouse_ru
    при апгрейде, старая база осталась в Engine=Ordinary
  • select * from system.databases;
  • https://t.me/clickhouse_ru
    всё равно ничерта не понятно :) и боюсь, что не только мне одному.
    у вас есть таблицаdata_set с каким-то неизвестным полем instrument_id и вы хотите применить к нему несуществующую функцию covarSampArray.
    я очень сомневаюсь, что кто-то сможет разобраться в этой каше.
    вы изначально задавали вопрос:
    >как вытянуть данные для функций типа covarPop/corr, если эти данные хранятся в строках, а не в столбцах?
    вот и акцентируйте внимание на том в каком виде у вас лежат ланные, а потом, что их нужно привести к формату func(x, y). мне сдаётся, что у вас элементарная проблема, но вы не можете её внятно описать. как говорится "правильно заданный вопрос - уже половина ответа".
    в этом чатике помогали решить проблемы посложнее "перевода столбцов в колонки".
    если тыкать пальце в небо, то вам для конвертации строк в столбцы вам нужны функции arrayJoin и arrayMap, можете поискать их использование в этом чатике, с их помощью можно творить чудеса конвертации
  • https://t.me/clickhouse_ru
    никого не слушайте, юзайте кликхайс, но на вашем месте я бы подождал релиза MaterializePostgreSQL, собственно я сам и жду :)
  • https://t.me/clickhouse_ru
    спасибо. исправился
  • https://t.me/clickhouse_ru
    @399999446 #222255 12:20 PM, 11 Jun 2021
    Есть запро по типу:
    Возвращает к примеру 7
    select count() from tab1 as t1
    left join tab2 as t2 final
    on t1.id = t2.id

    вернет 4
    select count() from tab1 as t1
    left join (select * from tab2 final) as t2
    on t1.id = t2.id

    Почему при джойне final не срабатывает в 1 примере?
  • https://t.me/clickhouse_ru
    Да, MaterializePostgreSQL был бы то, что надо. К счастью, особой спешки у меня нет, так что можно и подождать. А пока делаю очередной подход к https://github.com/long2ice/synch , но что-то он не хочет работать с postgres, то одни ошибки, то другие, то третьи...
    GitHub - long2ice/synch: Sync data from the other DB to ClickHouse(cluster)

    Sync data from the other DB to ClickHouse(cluster) - GitHub - long2ice/synch: Sync data from the other DB to ClickHouse(cluster)

  • а должен?
  • https://t.me/clickhouse_ru
    В моем понимании да,если не сложно,могли бы объяснить?
  • ну вот я поменял, но после рестарта кликхаус не стартует
  • @helloworld2024 #222260 12:28 PM, 11 Jun 2021
    ну точнее как, он стартует, соединения не принимает, что-то делает там, и потом в crashloop уходит из-за того что хелсчеки не прошли
  • какая версия?
    https://github.com/ClickHouse/ClickHouse/issues/16808
    FINAL modifier does not work on right table of the JOIN · Issue #16808 · ClickHouse/ClickHouse

    Describe the bug FINAL modifier does not work on right table of the JOIN How to reproduce 20.3, 20.8 confirmed. drop table if exists default.test; create table default.test( pk UInt64, a01 Int64, a...

  • https://t.me/clickhouse_ru
    если вам сейчас нужно "поиграться" с целью изучения, а не продакшен версия, то можете скачать репозиторий, вмёржить указанный выше пулреквест и по инструкции собрать из исходников то что вам нужно уже сейчас. а когда выйдет официальная версия с поддержкой MaterializePostgreSQL, то просто обновиться на неё. это на слуйчай если с другими способами совсем никак не сложится
  • https://t.me/clickhouse_ru
    Как вариант, да, спасибо за подсказку.
  • https://t.me/clickhouse_ru
    SELECT version()
    21.6.3.14
  • https://t.me/clickhouse_ru
    Я, если честно, не понимаю, что в моём вопросе такого архинепонятного и где там каша. Объясняю ещё раз.

    covarSamp/corr/etc. очень легко использовать, когда данные лежат в колонках:

    create table columnar_data_set(column_a Float64, column_b Float64) engine = Memory();
    insert into columnar_data_set values (1, 1), (2, 2), (3, 6);

    select * from columnar_data_set format PrettySpace;

    column_a column_b
    1 1
    2 2
    3 6

    select covarSamp(column_a, column_b) from columnar_data_set format PrettySpace;

    covarSamp(column_a, column_b)
    2.5
    Как мне сделать то же самое, когда все данные находятся в одной колонке, но два диапазона можно определить по ключу?

    create table data_set(column_name String, measurement Float64) engine = Memory();
    insert into data_set values ('column_a', 1), ('column_a', 2), ('column_a', 3), ('column_b', 1), ('column_b', 2), ('column_b', 6);

    select * from data_set format PrettySpace;

    column_name measurement
    column_a 1
    column_a 2
    column_a 3
    column_b 1
    column_b 2
    column_b 6
  • https://t.me/clickhouse_ru
    @vchernyshev #222268 12:43 PM, 11 Jun 2021
    И насчёт " вы хотите применить к нему несуществующую функцию covarSampArray.". Существует такая функция. https://clickhouse.tech/docs/en/sql-reference/aggregate-functions/combinators/#agg-functions-combinator-array комбинатор просто сверху лежит.
    Combinators | ClickHouse Documentation

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

  • https://t.me/clickhouse_ru
    @vchernyshev #222269 12:44 PM, 11 Jun 2021
    Мне надо как-то вот эти последовательности "1, 2, 3" и "1, 2, 6" скормить как аргументы в covarSamp или corr, не суть важно, какая там функция.
  • https://t.me/clickhouse_ru
    FINAL не поддерживается для JOIN. Запрос отрабатывает игнорируя FINAL, датагрид сразу подчёркивает слово FINAL в вашем запросе.
    https://github.com/ClickHouse/ClickHouse/issues/8655
    JOINs with FINAL keyword · Issue #8655 · ClickHouse/ClickHouse

    When joining with a table, the keyword final does not function as should. Woraround: when you create a view with the FINAL and in the SQL you join to that view, the join works fine, however, this i...

  • https://t.me/clickhouse_ru
    логи смотрите в kubectl logs -f ... —since=1h
    там написано что он делает после загрузки
  • Ну какие-то mutations, удаляет что-то, как будто все нормально
  • @helloworld2024 #222273 12:52 PM, 11 Jun 2021
    А потом странная information: application received terminate signal или что-то такое проскакивает,
  • @helloworld2024 #222274 12:53 PM, 11 Jun 2021
    Но в том то и проблема, что нету явной ошибки
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @pcdeadz #222276 01:02 PM, 11 Jun 2021
    Ребята подскажите как сделать группировку по 15 минут?
  • https://t.me/clickhouse_ru
    SELECT covarSamp(a,b) FROM (
    select groupArrayIf(measurement, column_name = 'column_a') as a,
    groupArrayIf(measurement, column_name = 'column_b') as b
    from data_set
    )
    ARRAY JOIN a, b;
    2.5
  • https://t.me/clickhouse_ru
    toStartOfFifteenMinutes(date)
  • https://t.me/clickhouse_ru
    @pcdeadz #222279 01:04 PM, 11 Jun 2021
    он разве не первые 15 минут берет?
  • https://t.me/clickhouse_ru
    @pcdeadz #222280 01:04 PM, 11 Jun 2021
    или каждые 15 минут часа?
  • https://t.me/clickhouse_ru
    тут в чатике даже по 3 минуты группировали:
    https://t.me/clickhouse_ru/116450
    поиском можно найти всё что угодно, тут уже миллион вопросов был :)
    Denny Crane [Junior support specialist at Altinity (NB,Canada)] in ClickHouse не тормозит

    https://clickhouse.yandex/docs/en/query_language/functions/date_time_functions/#tostartofinterval-time-or-data-interval-x-unit-time-zone SELECT min(value), max(value), metric, toStartOfInterval(timestamp, INTERVAL 3 minute) xxx FROM valued GROUP BY metric, xxx

  • https://t.me/clickhouse_ru
    Каждые 15 мин) 0 - 14.59; 15 - 29.59 и тд
    А в ответе будет 0, 15, 30, 45, вроде
  • https://t.me/clickhouse_ru
    @pcdeadz #222283 01:08 PM, 11 Jun 2021
    Illegal type AggregateFunction(sum, Float64) of argument for aggregate function sum.
  • https://t.me/clickhouse_ru
    Ага, спасибо! Можно также что-то такое:

    select covarSampArray(a, b) from (select groupArrayIf(measurement, column_name = 'column_a') a, groupArrayIf(measurement, column_name = 'column_b') b from data_set);
    Будет такой же результат. А есть какой-либо способ с использованием возможностей базы это сделать для заданной пользователем последовательности пар колонок? :) То есть если на входе что-то вроде [('column_a', 'column_b'), ('column_c', 'column_d')]? Можно это всё, конечно, через UNION склеить, но может есть более изящный способ?
  • https://t.me/clickhouse_ru
    @pcdeadz #222285 01:09 PM, 11 Jun 2021
    CREATE table visits_place_sum (
    placeid text,
    mode text,
    algo text,
    points AggregateFunction(sum, double),
    created DateTime64,
    ) ENGINE = AggregatingMergeTree() Partition by (placeid)
    Order by (placeid,mode,algo);

    CREATE MATERIALIZED VIEW visits_place_sum_mv
    to visits_place_sum
    AS SELECT
    placeid,
    mode,
    algo,
    sumState(points) points,
    toStartOfFifteenMinutes(created) as created
    FROM visits
    GROUP BY placeid, mode,algo, created;
  • https://t.me/clickhouse_ru
    @pcdeadz #222286 01:09 PM, 11 Jun 2021
    верно же?
  • https://t.me/clickhouse_ru
  • ну тогда может опять сломали...
    пишите тикет и связывайте Т.Т
  • https://t.me/clickhouse_ru
    что-то я вас опять не понимаю :) напишите что ли пример с union чтобы я мог понять в каком виде вы ожидаете результат
  • @helloworld2024 #222290 01:25 PM, 11 Jun 2021
    @BloodJazMan а сейчас вообще похоже логи новые не появлятся. такое ощущение что он просто не стартует (pod стартует, но сам сервер упирается гдето)
  • https://t.me/clickhouse_ru
    ну под просто так не может "не стартовать". под в stdout как минимум логи пишет...
  • @helloworld2024 #222292 01:34 PM, 11 Jun 2021
    Ну странно, но нет)
  • https://t.me/clickhouse_ru
    k9s поставьте к кластеру подключитесь посмотрите
  • @helloworld2024 #222294 01:34 PM, 11 Jun 2021
    Пустота в kubectl logs
  • https://t.me/clickhouse_ru
    полную команду покажите?
  • kubectl -n clickhouse logs -f chi-main-0-0-0 clickhouse --since 1h
  • https://t.me/clickhouse_ru
    @solard #222297 01:37 PM, 11 Jun 2021
    kubectl describe pod -n clickhouse chi-main-0-0-0 ничего интересного не говорит?
  • https://t.me/clickhouse_ru
    Что-то вот такое:
    select
    ('column_a', 'column_b') pair, covarSampArray(x, y) as covar
    from
    (
    select
    groupArrayIf(measurement, column_name = 'column_a') x,
    groupArrayIf(measurement, column_name = 'column_b') y
    from data_set
    )
    union all select
    ('column_c', 'column_d') pair, covarSampArray(x, y) as covar
    from
    (
    select
    groupArrayIf(measurement, column_name = 'column_c') x,
    groupArrayIf(measurement, column_name = 'column_d') y
    from data_set
    )В тестовом примере данных для c и d нет, но предположим, что там что-то есть. Последовательность действий для каждой пары ключей получается абсолютно одинаковой, как видите.
  • https://t.me/clickhouse_ru
    kubectl describe chi main -n clickhouse
    покажите Events
  • Events:
    Type Reason Age From Message
    ---- ------ ---- ---- -------
    Normal Scheduled <unknown> default-scheduler Successfully assigned clickhouse/chi-risk-aggregator-main-0-0-0 to k8s-highpri-20631152-vmss000004
    Normal Started 8m3s kubelet, k8s-highpri-20631152-vmss000004 Started container clickhouse-log
    Normal Created 8m3s kubelet, k8s-highpri-20631152-vmss000004 Created container clickhouse-log
    Normal Pulled 8m3s kubelet, k8s-highpri-20631152-vmss000004 Successfully pulled image "busybox"
    Normal Pulled 8m3s kubelet, k8s-highpri-20631152-vmss000004 Container image "alexakulov/clickhouse-backup:0.6.4" already present on machine
    Normal Created 8m3s kubelet, k8s-highpri-20631152-vmss000004 Created container clickhouse-backup
    Normal Pulling 8m3s kubelet, k8s-highpri-20631152-vmss000004 Pulling image "busybox"
    Normal Started 8m3s kubelet, k8s-highpri-20631152-vmss000004 Started container clickhouse-backup
    Normal Killing 6m36s kubelet, k8s-highpri-20631152-vmss000004 Container clickhouse failed liveness probe, will be restarted
    Normal Pulled 6m6s (x2 over 8m4s) kubelet, k8s-highpri-20631152-vmss000004 Container image "yandex/clickhouse-server:20.8.13.15" already present on machine
    Normal Started 6m5s (x2 over 8m3s) kubelet, k8s-highpri-20631152-vmss000004 Started container clickhouse
    Normal Created 6m5s (x2 over 8m4s) kubelet, k8s-highpri-20631152-vmss000004 Created container clickhouse
    Warning Unhealthy 3m3s (x21 over 7m3s) kubelet, k8s-highpri-20631152-vmss000004 Liveness probe failed: Get http://10.240.4.170:8123/ping: dial tcp 10.240.4.170:8123: connect: connection refused
  • https://t.me/clickhouse_ru
    это describe pod
    я про describe chi
  • сори,

    Events:
    Type Reason Age From Message
    ---- ------ ---- ---- -------
    Info UpdateCompleted 26m clickhouse-operator Update Service clickhouse/clickhouse-risk-aggregator
    Info ReconcileStarted 26m clickhouse-operator Reconcile Host 0-0 started
    Info CreateStarted 26m clickhouse-operator Update StatefulSet(clickhouse/chi-risk-aggregator-main-0-0) - started
    Info UpdateCompleted 26m clickhouse-operator Update ConfigMap clickhouse/chi-risk-aggregator-deploy-confd-main-0-0
    Info UpdateCompleted 26m clickhouse-operator Update ConfigMap clickhouse/chi-risk-aggregator-common-usersd
    Info ReconcileStarted 26m clickhouse-operator reconcile started
    Info UpdateCompleted 26m clickhouse-operator Update StatefulSet(clickhouse/chi-risk-aggregator-main-0-0) - completed
    Info UpdateCompleted 26m clickhouse-operator Update Service clickhouse/chi-risk-aggregator-main-0-0
    Info CreateStarted 26m clickhouse-operator Adding tables on shard/host:0/0 cluster:main
    Info ReconcileCompleted 26m clickhouse-operator Reconcile Host 0-0 completed
    Info UpdateCompleted 26m clickhouse-operator Update ConfigMap clickhouse/chi-risk-aggregator-common-configd
    Info ReconcileInProgress 26m clickhouse-operator remove items scheduled for deletion
    Info ReconcileInProgress 26m clickhouse-operator remove items scheduled for deletion
    Info UpdateCompleted 26m clickhouse-operator Update ConfigMap clickhouse/chi-risk-aggregator-common-configd
    Info ReconcileInProgress 26m clickhouse-operator add CHI to monitoring
    Info ReconcileCompleted 26m clickhouse-operator reconcile completed
    Info UpdateCompleted 22m clickhouse-operator Update Service clickhouse/clickhouse-risk-aggregator
    Info UpdateCompleted 22m clickhouse-operator Update ConfigMap clickhouse/chi-risk-aggregator-common-usersd
    Info ReconcileStarted 22m clickhouse-operator reconcile started
    Info ReconcileStarted 22m clickhouse-operator Reconcile Host 0-0 started
    Info UpdateCompleted 22m clickhouse-operator Update ConfigMap clickhouse/chi-risk-aggregator-deploy-confd-main-0-0
    Info UpdateCompleted 22m clickhouse-operator Update Service clickhouse/chi-risk-aggregator-main-0-0
    Info UpdateCompleted 22m clickhouse-operator Update ConfigMap clickhouse/chi-risk-aggregator-common-configd
    Info UpdateCompleted 22m clickhouse-operator Update ConfigMap clickhouse/chi-risk-aggregator-common-configd
    Info ReconcileCompleted 22m clickhouse-operator Reconcile Host 0-0 completed
    Info ReconcileInProgress 22m clickhouse-operator remove items scheduled for deletion
    Info ReconcileInProgress 22m clickhouse-operator add CHI to monitoring
    Info ReconcileCompleted 22m clickhouse-operator reconcile completed
    Info ReconcileInProgress 22m clickhouse-operator remove items scheduled for deletion
    Info ReconcileStarted 10m clickhouse-operator reconcile started
    Info UpdateCompleted 10m clickhouse-operator Update Service clickhouse/clickhouse-risk-aggregator
    Info UpdateCompleted 10m clickhouse-operator Update ConfigMap clickhouse/chi-risk-aggregator-deploy-confd-main-0-0
    Info ReconcileStarted 10m clickhouse-operator Reconcile Host 0-0 started
    Info UpdateCompleted 10m clickhouse-operator Update ConfigMap clickhouse/chi-risk-aggregator-common-usersd
    Info CreateStarted 10m clickhouse-operator Update StatefulSet(clickhouse/chi-risk-aggregator-main-0-0) - started
    Info UpdateCompleted 10m clickhouse-operator Update StatefulSet(clickhouse/chi-risk-aggregator-main-0-0) - completed
    Info CreateStarted 10m clickhouse-operator Adding tables on shard/host:0/0 cluster:main
    Info UpdateCompleted 10m clickhouse-operator Update Service clickhouse/chi-risk-aggregator-main-0-0

  • Info UpdateCompleted 10m clickhouse-operator Update ConfigMap clickhouse/chi-risk-aggregator-common-configd
    Info ReconcileCompleted 10m clickhouse-operator Reconcile Host 0-0 completed
    Info UpdateCompleted 10m clickhouse-operator Update ConfigMap clickhouse/chi-risk-aggregator-common-configd
    Info ReconcileInProgress 10m clickhouse-operator add CHI to monitoring
    Info ReconcileInProgress 10m clickhouse-operator remove items scheduled for deletion
    Info ReconcileInProgress 10m clickhouse-operator remove items scheduled for deletion
    Info ReconcileCompleted 10m clickhouse-operator reconcile completed
  • https://t.me/clickhouse_ru
    у вас pod от chi-main

    а describe вы сделали для chi-disk-aggreagator
  • да, это я так, стер, думал завуалировать, но потом забил)
  • @helloworld2024 #222307 01:44 PM, 11 Jun 2021
    это один и тот же кластер
  • https://t.me/clickhouse_ru
    как вы правили настройки?
    через правку манифеста kind: ClickHouseInstallation или тупо файл меняли внутри пода?
  • apiVersion: "clickhouse.altinity.com/v1"
    kind: "ClickHouseInstallation"
    metadata:
    name: risk-aggregator
    spec:
    defaults:
    templates:
    dataVolumeClaimTemplate: data-volume-template
    logVolumeClaimTemplate: log-volume-template
    configuration:
    settings:
    max_table_size_to_drop: 0
    disable_internal_dns_cache: 1
  • @helloworld2024 #222310 01:46 PM, 11 Jun 2021
    через манифест
  • https://t.me/clickhouse_ru
    data-volume-template у вас в spec.templates.volumeClaimTemplates описаны? или отдельно через kind: ClickhouseInstallationTemplate заданы?
  • https://t.me/clickhouse_ru
    это весь манифест?
  • @helloworld2024 #222314 01:48 PM, 11 Jun 2021
    ну оно работало прекрасно с этим манифестом, а вот после рестарта что-то пошло не так
  • дальше, да
    volumeClaimTemplates:
    - name: data-volume-template
    spec:
    accessModes:
    - ReadWriteOnce
    resources:
    requests:
    storage: {{.Values.clickhouse.diskSize}}
    - name: log-volume-template
    spec:
    accessModes:
    - ReadWriteOnce
    resources:
    requests:
    storage: {{.Values.clickhouse.logDiskSize}}
  • нет, весь скинуть?
  • https://t.me/clickhouse_ru
    clusters секцию
    1 реплика. 1 шард?
  • да,

    clusters:
    - name: "main"
    templates:
    podTemplate: pod-template-with-volumes
    layout:
    shardsCount: {{.Values.clickhouse.shardsCount}}
    replicasCount: {{.Values.clickhouse.replicasCount}}

    values.yml

    clickhouse:
    replicasCount: 1
    shardsCount: 1
  • https://t.me/clickhouse_ru
    @BloodJazMan #222319 01:55 PM, 11 Jun 2021
    Info ReconcileInProgress 10m clickhouse-operator add CHI to monitoring
    Info ReconcileInProgress 10m clickhouse-operator remove items scheduled for deletion
    Info ReconcileInProgress 10m clickhouse-operator remove items scheduled for deletion
    Info ReconcileCompleted 10m clickhouse-operator reconcile completed

    значит kubernetes развернул хост и получил что statefulset в ready

    kubectl get sts -n clickhouse -o wide
    что показывает?
  • kubectl get sts -n clickhouse -o wide
    NAME READY AGE CONTAINERS IMAGES
    chi-risk-aggregator-main-0-0 0/1 85d clickhouse,clickhouse-backup,clickhouse-log yandex/clickhouse-server:20.8.13.15,alexakulov/clickhouse-backup:0.6.4,busybox
  • @helloworld2024 #222321 01:56 PM, 11 Jun 2021
    ну он в ready, запустил pod, а тот скрашился чуть позже
  • @helloworld2024 #222322 01:56 PM, 11 Jun 2021
    получается как-то так
  • https://t.me/clickhouse_ru
    Данных много было?

    есть сильное подозрение что там на старте много system.parts много читается
  • @helloworld2024 #222325 01:56 PM, 11 Jun 2021
    и он вообще не потребляет cpu, mem когда стартует
  • @helloworld2024 #222326 01:57 PM, 11 Jun 2021
    данных больше терабайта было
  • а без сервера можно проверить? по файлам
  • https://t.me/clickhouse_ru
    kubectl get chi -n clickhouse risk-management -o yaml весь расшарьте можно в личку
  • https://t.me/clickhouse_ru
    данные в PVC лежат
  • https://t.me/clickhouse_ru
    kubernetes чей? AWS ? bare metal?
    CSI драйвер какой ? EBS?
  • https://t.me/clickhouse_ru
    какая версия clickhouse-operator? 0.14? или ниже?
  • @helloworld2024 #222334 02:06 PM, 11 Jun 2021
    15 минут, пожалуйста, сча вернусь, извиняюсь
  • скинул
  • ну пока он пару минут висит могу глянуть в файлы
  • Azure, ну да у них свой EBS да
  • 0.13.5
  • https://t.me/clickhouse_ru
    @pcdeadz #222341 02:32 PM, 11 Jun 2021
    Подскажите как создать MW для Агрегативной таблиы за последние 30 минут?
  • https://t.me/clickhouse_ru
    SELECT x, covarSampArray(a, b)
    FROM (
    SELECT x,
    groupArrayIf(measurement, column_name = x.1) a,
    groupArrayIf(measurement, column_name = x.2) b
    FROM data_set
    ARRAY JOIN [('column_a', 'column_b'), ('column_c', 'column_d')] as x
    GROUP BY x
    )
    GROUP BY x;
  • https://t.me/clickhouse_ru
    Спасибо!
  • здрасьте. мы пытаемся данные починить.
    после этого "корнер кейса" есть строки в обеих репликах и есть строки частично в одной реплике и есть частично в другой...

    есть ли что-то оптимальней нижеследующего решения?

    for each partition:

    create tmp (with same partitioning and order by)
    insert to tmp on host1 table from host2 corrupt table specific partition
    insert to tmp on host1 table from host1 corrupt table specific partition with where (not in by unique keys)
    drop partition from corrupt table (both replicas)
    detach partition from tmp
    attach to corrupt table
  • https://t.me/clickhouse_ru
    @f_mihail #222347 03:36 PM, 11 Jun 2021
    Кто нибудь подключался к CH через clickouse_driver по http/https портам? У меня вечно падает с ошибкой, при этом через pandahouse работает все(просто не очень хочу его юзать в проде)
  • https://t.me/clickhouse_ru
    ошибка то какая? и код какой?
    и версия последняя библиотеки?
  • https://t.me/clickhouse_ru
    в доке написано, что он не работает с http/https: https://clickhouse-driver.readthedocs.io/en/latest
  • https://t.me/clickhouse_ru
    @1616790925 #222354 05:48 PM, 11 Jun 2021
    Коллеги, можете помочь решить проблему с таблицей?
    Таблица ClickHouse zqos.quality_of_service_1_CT находится в странном состоянии

    SELECT count() FROM system.tables WHERE database='zqos' AND name='quality_of_service_1_CT’
    возвращает count=1, т.е. таблица есть

    а любое обращение к ней
    select count(*) from zqos.quality_of_service_1_CT;
    или
    DROP TABLE IF EXISTS zqos.quality_of_service_1_CT
    возвращает ошибку, таблица удалена
    Code: 218, e.displayText() = DB::Exception: Table is dropped, e.what() = DB::Exception
  • https://t.me/clickhouse_ru
    Не знаю ответили ли вам, но будут дефолты, но можно включить null. Настройка Join use nulls
  • в system.merges есть что то с ней?
  • https://t.me/clickhouse_ru
    нет, select * from system.merges where database ='zqos' ничего не возвращает
  • залочилось, видимо.
  • https://t.me/clickhouse_ru
    как побороть блокировку?
  • честно не знаю(
    если тестовая среда, я бы перезапустил сервер и посмотрел
    если прод, то мб появятся мысли получше)
  • https://t.me/clickhouse_ru
    перезапуск точно не поможет
  • https://t.me/clickhouse_ru
    @erzentd #222363 06:30 PM, 11 Jun 2021
    там ещё проблема в том что кликхаус сам в podman довеволюционный
  • https://t.me/clickhouse_ru
    @erzentd #222364 06:30 PM, 11 Jun 2021
    контейнеры сделаны были в 2017 году
  • https://t.me/clickhouse_ru
    @erzentd #222365 06:31 PM, 11 Jun 2021
    причём там 12 нод этого кликхауса, по 2 контейнера на ноду в реплике на каждой ноде
  • https://t.me/clickhouse_ru
    @erzentd #222366 06:31 PM, 11 Jun 2021
    то есть всего 24 контейнера(зачем так сделали понятия не имею, до меня было)
  • тяжелый случай
  • 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
    1.1.54385
  • https://t.me/clickhouse_ru
    @unamedrus #222375 07:12 PM, 11 Jun 2021
    Оу, ну окей.

    sql файл в папке бд в метадате существует?
  • https://t.me/clickhouse_ru
    надо завтра смотреть будет, но вообще ничего не удалялось
  • https://t.me/clickhouse_ru
    @unamedrus #222377 07:17 PM, 11 Jun 2021
    Ну а так я бы попробовал мб ее обратно приаттачить.

    ATTACH TABLE xx.xxx;

    А вообще судя по проблеме рестарт должен помочь. кмк
  • https://t.me/clickhouse_ru
    @unamedrus #222378 07:18 PM, 11 Jun 2021
    Вообще 1.1.5 звучит как версия в которой может быть дедлок
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @unamedrus #222380 07:20 PM, 11 Jun 2021
    "поправили" это только в 19.14
  • https://t.me/clickhouse_ru
    @erzentd #222381 07:23 PM, 11 Jun 2021
    тут ещё 18 версия
  • https://t.me/clickhouse_ru
    @unamedrus #222382 07:26 PM, 11 Jun 2021
    Ну я к тому, что скорее всего в предыдущих версиях этот дедлок был.
  • https://t.me/clickhouse_ru
    А строки, которые только на одной из реплик существуют, не в отдельных партах случайно?
    Какая версия у вас?
  • https://t.me/clickhouse_ru
    @unknown_name13 #222384 07:51 PM, 11 Jun 2021
    #вакансия #удаленка #dba #clickhouse
    ищем крутого dba.  clickhouse или с желанием изучить. зарплата от 180 обсуждаемая. Любой город, можно в офисе(мск сити), если хочется. тк рф, дмс, все дела. ищем активных и целеустремленных :-) по вопросам в лс
  • 21.3
    Они криво перемерджены на разных репликах
  • https://t.me/clickhouse_ru
    ну тогда да, вашим планом
  • https://t.me/clickhouse_ru
    @kefir4egJP #222387 09:11 PM, 11 Jun 2021
    доброй ночи!
    подскажите пожалуйста, как лучше сделать следующее - есть массив массивов произвольной длинны, его нужно объединить в одномерный массив
    [[a], [b], [c, d, e]] -> [a, b, c, d,e]
  • Вот тут есть функция для этого https://clickhouse.tech/docs/ru/sql-reference/functions/array-functions/
    Массивы | Документация ClickHouse

    Массивы empty Проверяет, является ли входной массив пустым. Синтаксис empty([x]) Массив считается пустым, если он не сод

  • https://t.me/clickhouse_ru
    arrayFlatten, спасибо!!
  • :)
  • https://t.me/clickhouse_ru
    Спасибо) к этому моменту уже нашел, а как можно проверить, существуют ли записи в джоин таблице без этой настройки?
  • 12 June 2021 (6 messages)
  • https://t.me/clickhouse_ru
    @pcdeadz #222397 03:17 PM, 12 Jun 2021
    на сколько ресурсно затратно alter update строки?
  • https://t.me/clickhouse_ru
    ОЧЕНЬ затратно
    это не UPDATE
    это мутации
    которые происходят при слиянии партов или самостоятельно триггерят перечитывание всего парта и используют отдельный thread pool

    то есть для обновления 1й строки читается и пишется сотни тысяч строк
  • https://t.me/clickhouse_ru
    это имеет смысл и используется только тогда, когда надо в фоне удалить достаточно большое кол-во записей
    или когда удалять надо не часто (десятки, максимум сотни запросов в день)
  • @beebeeep #222403 04:58 PM, 12 Jun 2021
    Кстати, давеча сделал апдейт таблички миллиардов на 150 строк (суммарно на 4 шардах) - вышло _очень_ быстро, минут 15-20 наверное. Мускуль бы такое сделал бы примерно никогда.
  • @DmitryPisman #222404 05:12 PM, 12 Jun 2021
    Добрый день.
    Может кто-нибудь сталкивался с проблемой. Уже не знаю куда копать.
    Два одинаковых сервера в одной стойке + zookeeper. На один сервер идет чтение и запись (192.168.10.1). На другой - только репликация данных (192.168.10.2). Load average<2 на обоих серверах. Сеть тоже не перегружена.

    ClickHouse server version 20.8.3.18.

    На 192.168.10.2 возникают несколько раз в день ошибки в логе:
    2021.06.12 17:30:16.248490 [ 30922 ] {} <Error> col.logs_geo_traffic: DB::StorageReplicatedMergeTree::queueTask()::<lambda(DB::StorageReplicatedMergeTree::LogEntryPtr&)>: Poco::Excep
    tion. Code: 1000, e.code() = 0, e.displayText() = Timeout: connect timed out: 192.168.10.1:9009, Stack trace (when copying this message, always include the lines below):

    0. Poco::TimeoutException::TimeoutException(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_tra
    its<char>, std::__1::allocator<char> > const&, int) @ 0x13cd67fb in /usr/bin/clickhouse
    1. ? @ 0xa1a9951 in /usr/bin/clickhouse
    2. Poco::Net::HTTPSession::connect(Poco::Net::SocketAddress const&) @ 0x13be6921 in /usr/bin/clickhouse
    3. Poco::Net::HTTPClientSession::reconnect() @ 0x13bdd3da in /usr/bin/clickhouse
    4. Poco::Net::HTTPClientSession::sendRequest(Poco::Net::HTTPRequest&) @ 0x13bde5a0 in /usr/bin/clickhouse
    5. DB::detail::ReadWriteBufferFromHTTPBase<std::__1::shared_ptr<DB::UpdatablePooledSession> >::call(Poco::URI, Poco::Net::HTTPResponse&) @ 0x1105feee in /usr/bin/clickhouse
    6. DB::detail::ReadWriteBufferFromHTTPBase<std::__1::shared_ptr<DB::UpdatablePooledSession> >::ReadWriteBufferFromHTTPBase(std::__1::shared_ptr<DB::UpdatablePooledSession>, Poco::URI, s
    td::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (std::__1::basic_ostream<char, std::__1::char_traits<char> >&)>, Poc
    o::Net::HTTPBasicCredentials const&, unsigned long, std::__1::vector<std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::bas
    ic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::alloc
    ator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >, DB::RemoteHostFilter const&) @ 0x11060382 in /usr/bin/clickhouse
    7. DB::DataPartsExchange::Fetcher::fetchPart(std::__1::shared_ptr<DB::StorageInMemoryMetadata const> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocato
    r<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::alloc
    ator<char> > const&, int, DB::ConnectionTimeouts const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::
    __1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool, std::__1::basic_string<ch
    ar, std::__1::char_traits<char>, std::__1::allocator<char> > const&) @ 0x1105a30f in /usr/bin/clickhouse
    8. ? @ 0x10f9d1de in /usr/bin/clickhouse
    9. DB::StorageReplicatedMergeTree::fetchPart(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::shared_ptr<DB::StorageInMemoryMetada
    ta const> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool, unsigned long, std::__1::shared_ptr<zkutil::ZooKeeper>) @ 0x10fe52e
    1 in /usr/bin/clickhouse
    10. DB::StorageReplicatedMergeTree::executeFetch(DB::ReplicatedMergeTreeLogEntry&) @ 0x10fe75a4 in /usr/bin/clickhouse
    11. DB::StorageReplicatedMergeTree::executeLogEntry(DB::ReplicatedMergeTreeLogEntry&) @ 0x10fe9951 in /usr/bin/clickhouse
    12. ? @ 0x10fe9cca in /usr/bin/clickhouse
  • @DmitryPisman #222405 05:12 PM, 12 Jun 2021
    13. DB::ReplicatedMergeTreeQueue::processEntry(std::__1::function<std::__1::shared_ptr<zkutil::ZooKeeper> ()>, std::__1::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&, std::__1::function
    <bool (std::__1::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&)>) @ 0x111ba57e in /usr/bin/clickhouse
    14. DB::StorageReplicatedMergeTree::queueTask() @ 0x10f9ea57 in /usr/bin/clickhouse
    15. DB::BackgroundProcessingPool::workLoopFunc() @ 0x11055b0f in /usr/bin/clickhouse
    16. ? @ 0x110563ef in /usr/bin/clickhouse
    17. ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0xa43cc4d in /usr/bin/clickhouse
    18. ? @ 0xa43b3ff in /usr/bin/clickhouse
    19. start_thread @ 0x7ea5 in /usr/lib64/libpthread-2.17.so
    20. clone @ 0xfe8dd in /usr/lib64/libc-2.17.so
    (version 20.8.3.18)

    В ошибке непонятно какая величина таймаута была превышена.

    Судя по порту - это параметр <interserver_http_port>9009</interserver_http_port>, т.е. межсерверный обмен.
    Судя по коду (https://github.com/ClickHouse/ClickHouse/blob/20.8/programs/server/Server.cpp#L951) таймауты задаются в settings.http_receive_timeout и settings.http_send_timeout.
    Если я правильно понял, то в config.xml задается <system_profile>default</system_profile>, а в users.xml в профиле default - задаются эти параметры. Сейчас они стоят 3600 секунд.

    Что может быть не так?
    ClickHouse/Server.cpp at 20.8 · ClickHouse/ClickHouse

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

  • 13 June 2021 (28 messages)
  • https://t.me/clickhouse_ru
    @Kanuas_1 #222406 01:42 AM, 13 Jun 2021
    Добрый день! Столкнулся с такой проблемой, не могу запустить кликхаус, в логах ошибки нет как и надписи shutdown, при записи ps -ef|grep clickhouse, процессы отсутствуют. Последние логи: 2021.06.13 07:30:24.130366 [ 3814 ] {} <Trace> (ReplicatedMergeTreeQueue): Mutation 0000013624 is not done yet because 7672 parts to mutate suddenly appeared.
    2021.06.13 07:30:24.131575 [ 3814 ] {} <Trace> (ReplicatedMergeTreeQueue): Mutation 0000013625 is not done yet because 7673 parts to mutate suddenly appeared.
    2021.06.13 07:30:24.132782 [ 3814 ] {} <Trace> (ReplicatedMergeTreeQueue): Mutation 0000013626 is not done yet because 7673 parts to mutate suddenly appeared.
    2021.06.13 07:30:24.133993 [ 3814 ] {} <Trace> (ReplicatedMergeTreeQueue): Mutation 0000013627 is not done yet because 7674 parts to mutate suddenly appeared.
    2021.06.13 07:30:24.135242 [ 3814 ] {} <Trace> (ReplicatedMergeTreeQueue): Mutation 0000013628 is not done yet because 7674 parts to mutate suddenly appeared.
    2021.06.13 07:30:24.136465 [ 3814 ] {} <Trace> (ReplicatedMergeTreeQueue): Mutation 0000013629 is not done yet because 7675 parts to mutate suddenly appeared.
    2021.06.13 07:30:24.137675 [ 3814 ] {} <Trace> (ReplicatedMergeTreeQueue): Mutation 0000013630 is not done yet because 7675 parts to mutate suddenly appeared.
    2021.06.13 07:30:24.138888 [ 3814 ] {} <Trace> (ReplicatedMergeTreeQueue): Mutation 0000013631 is not done yet because 7676 parts to mutate suddenly appeared.
    2021.06.13 07:30:24.140100 [ 3814 ] {} <Trace> (ReplicatedMergeTreeQueue): Mutation 0000013632 is not done yet because 7676 parts to mutate suddenly appeared.
    2021.06.13 07:30:24.141317 [ 3814 ] {} <Trace> (ReplicatedMergeTreeQueue): Mutation 0000013633 is not done yet because 7677 parts to mutate suddenly appeared.
    2021.06.13 07:30:24.142527 [ 3814 ] {} <Trace> (ReplicatedMergeTreeQueue): Mutation 0000013634 is not done yet because 7677 parts to mutate suddenly appeared.
    2021.06.13 07:30:24.143752 [ 3814 ] {} <Trace> (ReplicatedMergeTreeQueue): Mutation 0000013635 is not done yet because 7678 parts to mutate suddenly appeared.
    2021.06.13 07:30:24.144967 [ 3814 ] {} <Trace> (ReplicatedMergeTreeQueue): Mutation 0000013636 is not done yet because 7678 parts to mutate suddenly appeared.
    2021.06.13 07:30:24.146180 [ 3814 ] {} <Trace> (ReplicatedMergeTreeQueue): Mutation 0000013637 is not done yet because 7679 parts to mutate suddenly appeared.
    2021.06.13 07:30:24.147395 [ 3814 ] {} <Trace> (ReplicatedMergeTreeQueue): Mutation 0000013638 is not done yet because 7679 parts to mutate suddenly appeared.
    2021.06.13 07:30:24.148605 [ 3814 ] {} <Trace> (ReplicatedMergeTreeQueue): Mutation 0000013639 is not done yet because 7680 parts to mutate suddenly appeared.
  • https://t.me/clickhouse_ru
    @Kanuas_1 #222407 01:43 AM, 13 Jun 2021
    Можете подсказать, что нужно делать в такой ситуации?
  • https://t.me/clickhouse_ru
    кликхаус явно пытается сделать мутацию но ему чтото мешает. или объем очень велик. проверьте есть ли место на дисках
  • https://t.me/clickhouse_ru
    ну да =)
    в мускуле нет такого понятия как immutable data parts
    ему надо бегать по всей таблице которая динамически переписывается...
    и в мускуле вообще нет асинхронных операций... что правильно
  • https://t.me/clickhouse_ru
    ну вы запустили ВАГОН 13 тысяч ... мутаций и ребутнули сервер???
    вы не понимаете как работают миграции... =)

    куча мутаций не завершилась потому что внезапно появились парт которые подходят по условию мутации?
    7680 parts to mutate suddenly appeared

    ну сами мутации это просто текстовые файлы...
    их по идее можно удалить если сервер выключен

    но вы не получите не консистентное состояние БД
    ищите в /var/lib/clickhouse/
    txt файлы с вашими мутациями
  • @1398105589 #222411 09:22 AM, 13 Jun 2021
    Добрый день. Подскажите как запустить два кластера Clickhouse на том же Zookeeper
  • Выбрать разные пути для таблиц с репликацией. Либо прописывать разный корень (root), но он тогда в ЗК должен быть.
  • https://t.me/clickhouse_ru
    Если цель была обновить всю таблицу, тогда конечно ClickHouse это может сделать эффективнее, причем я полагаю, что Вы обновляли одну-две колонки из десятков или сотен, и при ALTER UPDATE, насколько мне известно, ClickHouse перестраивает только изменившиеся колонки, так что на самом деле работы ClickHouse сделал намного меньше. Ну и он это умеет делать параллельно, в отличие от MySQL.

    Для обновления одной строки (особенно целиком) всё будет наоборот.
  • Спасибо А. П )
  • https://t.me/clickhouse_ru
    @rasstr0en #222415 02:03 PM, 13 Jun 2021
    А какой самый чёткий способ raw данные из mergeTree перекладывать в таблицу aggregating по часам?
  • https://t.me/clickhouse_ru
    materialized view
  • https://t.me/clickhouse_ru
    А чтобы альтерить raw таблицу без потери данных во вьюхе?
  • https://t.me/clickhouse_ru
    только если строка быстро находится по primary key
    тогда да, быстро
  • https://t.me/clickhouse_ru
    а что мешает то? вьюха это триггер она данных сама по себе не содержит

    если вы добавили поле в таблицу пересоздайте в этой же миграции MATERIALIZED VIEW
    все новые INSERT после замены MATERIALIZED VIEW
    пойдут с новой структурой...
  • https://t.me/clickhouse_ru
    А все старые переливать, терабайты данных
  • https://t.me/clickhouse_ru
    ну если вам надо старых данных в aggregating merge tree положить...
    выбирайте по диапозонам

    INSERT INTO ... SELECT ... WHERE условия диапозона GROUP BY ...
  • https://t.me/clickhouse_ru
    @rasstr0en #222422 02:13 PM, 13 Jun 2021
    Сейчас так и делаем, понял, это норма)
  • https://t.me/clickhouse_ru
    ну да, можете просто этот INSERT INTO ... SELECT в cron положить... и сделать условие выборки только по новым данным ...
  • https://t.me/clickhouse_ru
    Если при создании мат вью указывать TO, то данные будут сохранятся в указанной таблице и тогда при пересоздании матвью никакие данные никуда переливать не надо.
  • https://t.me/clickhouse_ru
    Спасибо, почитаю
  • https://t.me/clickhouse_ru
    @Viaprog #222431 10:08 PM, 13 Jun 2021
    да, что-то совсем грустно всё с ClickHouse у меня на FreeBSD. Разные версии уже попробовал последнего года собрать - одинаково везде. С зависимостью, разве что от нагрузки, но и то не однозначно - иногда при хорошей может и несколько дней проработать, а иногда и часа не получается
  • https://t.me/clickhouse_ru
    @Viaprog #222432 10:09 PM, 13 Jun 2021
    <Fatal> BaseDaemon: ########################################
    <Fatal> BaseDaemon: (version 21.3.13.1, no build id) (from thread 947139) (no query) Received signal Segmentation fault (11)
    <Fatal> BaseDaemon: Address: 0x818891000 Attempted access has violated the permissions assigned to the memory area.
    <Fatal> BaseDaemon: Stack trace: 0x57d5d0d 0x59053b0 0x80cf13e0e 0x80cf133cf
    <Fatal> BaseDaemon: 0. 0x57d5d0d
    <Fatal> BaseDaemon: 1. 0x59053b0
    <Fatal> BaseDaemon: 2. 0x80cf13e0e
    <Fatal> BaseDaemon: 3. 0x80cf133cf
  • https://t.me/clickhouse_ru
    @Viaprog #222433 10:10 PM, 13 Jun 2021
    собрал с отладочными символами -g3, но coredump-ы почему то не пишет - вернее файл нулевой длинны выходит
  • https://t.me/clickhouse_ru
    @Viaprog #222434 10:10 PM, 13 Jun 2021
    поэтому точнее пока х.з. как посмотреть где и что не так
  • https://t.me/clickhouse_ru
    @Viaprog #222435 10:23 PM, 13 Jun 2021
    FreeBSD-13.0, собрано изначально из порта, затем порт проапгрейжен до 21.3.13.1
  • https://t.me/clickhouse_ru
    @Viaprog #222436 10:23 PM, 13 Jun 2021
    системный clang-11
  • https://t.me/clickhouse_ru
    @Viaprog #222437 10:29 PM, 13 Jun 2021
    странно, но по kill -SEGV {pid} core-dump пишется нормально. Мистика )
  • https://t.me/clickhouse_ru
    @Viaprog #222438 11:04 PM, 13 Jun 2021
    локальная установка, не кластер, таблицы MergeTree. Перенос данных из одной таблицы в другой с небольшой конвертацией данных не переживает уже на первых обработанных 100-200-300 гигах
  • 14 June 2021 (105 messages)
  • А из pkg - тоже валится?
  • https://t.me/clickhouse_ru
    Из pkg не пробовал. Но думаю также будет - какая ж разница. pkg таким же образом из порта этого же собирается
  • @dmitry_mosin #222444 06:18 AM, 14 Jun 2021
    Но в пэкеджи мантейнер может собрать учитывая какие то нюансы
  • https://t.me/clickhouse_ru
    @BloodJazMan #222445 06:43 AM, 14 Jun 2021
    ну да, какой нибудь другой набор опций cmake
  • https://t.me/clickhouse_ru
    @Vladimirelizarov #222446 07:02 AM, 14 Jun 2021
    Привет, коллеги. Кликхаус нормально обновляется/откатывается? Есть подводные камни?
  • тестриуйте сначала весь свой функционал. есть изменения несовместимые
    минорные версии обычно нормально обновляются
  • https://t.me/clickhouse_ru
    @unknown_name13 #222448 08:08 AM, 14 Jun 2021
    #вакансия #удаленка #dba #clickhouse
    ищем крутого dba.  clickhouse или с желанием изучить. зарплата от 180 обсуждаемая. Любой город, можно в офисе(мск сити), если хочется. тк рф, дмс, все дела. ищем активных и целеустремленных :-) по вопросам в лс
  • или gmake, или куча других нюансов
  • @7699150 #222450 08:26 AM, 14 Jun 2021
    подскажите пожалуйста, если повесить две матвью на одну кафка-таблицу — то они в одинаковом обьеме будут читать оттуда данные?
  • https://t.me/clickhouse_ru
    Да нет там никаких нюансов. Пакеты ровно из порта собираются. И опций там кофигурируемых в порте нет, кроме одной - добавлять доки+тесты или нет
  • https://t.me/clickhouse_ru
    да, это просто два триггера AFTER INSERT
    которым передастя на обработку один и тот же блок данных которые Engine Kafka вычитала...
  • принял
    спасибо
  • https://t.me/clickhouse_ru
    @yourock88 #222456 09:06 AM, 14 Jun 2021
    Удивительно, как скамеры даже не могут нормально ссылку в твиттере отформатировать, чтобы она хотя бы выглядела, как настоящая ссылка, а не фотошоп с другим шрифтом.
  • @vmakulov #222458 09:22 AM, 14 Jun 2021
    бред несёт, собрать в кучу не может
  • @konstantin_mitjurin #222460 10:00 AM, 14 Jun 2021
    всем привет, недавно обновили КХ до последней stable верси, до этого сидели на 19 версии и беды не знали
  • @konstantin_mitjurin #222461 10:00 AM, 14 Jun 2021
    проблема в лимите оперативки на запрос
  • @konstantin_mitjurin #222462 10:00 AM, 14 Jun 2021
    DB::Exception: Memory limit (for query) exceeded: would use 28.08 GiB (attempt to allocate chunk of 6328914946 bytes), maximum: 27.94 GiB: While executing MergeTreeThread
  • @konstantin_mitjurin #222463 10:00 AM, 14 Jun 2021
    имеется distributed таблица
  • @konstantin_mitjurin #222464 10:00 AM, 14 Jun 2021
    вот запрос:

    select key, referrer from requests where date=today() and dt >= now() - 300 limit 100;
  • @konstantin_mitjurin #222465 10:01 AM, 14 Jun 2021
    не возможно выбрать данные, вообще
  • @konstantin_mitjurin #222466 10:01 AM, 14 Jun 2021
    я не говорю уже о временных рамках больше, чем сегодня
  • @konstantin_mitjurin #222467 10:02 AM, 14 Jun 2021
    max_bytes_before_external_group_by = 15000000000
    max_memory_usage = 30000000000
  • @konstantin_mitjurin #222468 10:02 AM, 14 Jun 2021
    у нас кластер из 3х шардов х2 реплики каждый
  • @konstantin_mitjurin #222469 10:03 AM, 14 Jun 2021
    на данный момент в таблице requests 935 071 276 записей
  • @konstantin_mitjurin #222470 10:04 AM, 14 Jun 2021
    физически на каждой ноде по 36 Гб рама и 6 ядер
  • @helloworld2024 #222471 10:37 AM, 14 Jun 2021
    Всем привет, такой вопрос, а что если мы хотим отличать NULL от пустого значения в очень многих колонках, без использования Nullable (я так понимаю это антипатерн), нормальное ли решение сделать Tuple(UIn8, Type), где первый элемент это boolean который указывает на присутствие значения или есть какие-то другие вариаты?
  • https://t.me/clickhouse_ru
    ну можно использовать какое то специально значение вместо пустого
  • https://t.me/clickhouse_ru
    @unamedrus #222473 10:39 AM, 14 Jun 2021
    А так tuple UInt8/Type не будет лучше Nullable уж точно
  • ну проблема в том, что не будет такого значения везде
  • интересно, спасибо
  • https://t.me/clickhouse_ru
    @litecombo #222477 10:46 AM, 14 Jun 2021
    2021.06.14 10:44:51.129402 [ 95 ] {} <Debug> landing.price_trade: Loading mutation: mutation_479694.txt entry, commands size: 1
    2021.06.14 10:44:51.130345 [ 95 ] {} <Debug> landing.price_trade: Loading mutation: mutation_479847.txt entry, commands size: 1
    2021.06.14 10:44:51.130961 [ 95 ] {} <Debug> landing.price_trade: Loading mutation: mutation_479796.txt entry, commands size: 1
    2021.06.14 10:44:51.132283 [ 95 ] {} <Debug> landing.price_trade: Loading mutation: mutation_479744.txt entry, commands size: 1
    2021.06.14 10:44:51.132372 [ 95 ] {} <Information> DatabaseOrdinary (landing): 75.0%

    2021.06.14 10:45:08.805267 [ 45 ] {} <Information> Application: Will watch for the process with pid 53
    2021.06.14 10:45:08.805380 [ 53 ] {} <Information> Application: Forked a child process to watch
    2021.06.14 10:45:08.805569 [ 53 ] {} <Information> SentryWriter: Sending crash reports is disabled
  • https://t.me/clickhouse_ru
    @litecombo #222478 10:47 AM, 14 Jun 2021
    И это по кругу
  • https://t.me/clickhouse_ru
    @litecombo #222479 10:47 AM, 14 Jun 2021
    Не поднимает базу
  • https://t.me/clickhouse_ru
    Спасибо за инфо. Вот поэтому я и не торопился обновляться = ( Пока достаточно хорошо работает на текущей версии. Хорошая причина для обновления будет избавления от зукипера, но пока не горит
  • https://t.me/clickhouse_ru
    там сам краш то со стектрейсом в логах есть?
  • https://t.me/clickhouse_ru
    Нет, в ошибках тишина
  • https://t.me/clickhouse_ru
    <Information> Application: Forked a child process to watch
    2021.06.14 10:45:08.805569 [ 53 ] {} <Information> SentryWriter: Sending crash reports is disabled

    ну у вас форкается процесс пишется про него Pid 53
    и дальше что? опять форкается процесс? или все таки что-то другое пишется в лог?
  • https://t.me/clickhouse_ru
    @litecombo #222484 11:09 AM, 14 Jun 2021
    Я накрутил партиции по дням и сегодня все упало при загрузке.
  • https://t.me/clickhouse_ru
    @litecombo #222485 11:10 AM, 14 Jun 2021
    В логах нет Керша, крайние точки между запусками я скинул. В остальной часте лога все штатно.
  • https://t.me/clickhouse_ru
    @litecombo #222487 11:11 AM, 14 Jun 2021
    /data/landing/price_trade# ls -l |wc -l
    177838
  • https://t.me/clickhouse_ru
    а, ну, тогда ждите просто, 1-2 часа...
    вы в докере пускаете это все?

    ну структуру такую надо менять, вы явно не то что-то сделали...

    "партиции по дням" у вас породили очень большое кол-во партов
    вы наверное too many parts в логах посмотрите наверняка clickhouse вас предупреждал...
  • https://t.me/clickhouse_ru
    @litecombo #222489 11:16 AM, 14 Jun 2021
    С 4 ночи не смог запуститься
  • https://t.me/clickhouse_ru
    @litecombo #222490 11:17 AM, 14 Jun 2021
    У меня две таблицы по дням, одну я оцепил и запустилось. Перекину ее на месяц и подцепляю вторую должно взлететь
  • https://t.me/clickhouse_ru
    @SvPupok #222495 12:17 PM, 14 Jun 2021
    Коллеги, посоветуйте какой нить gui для ch под макось? Желательно с подсветкой синтаксиса, если ещё с dba функционалом, вообще было бы замечательно
  • datagrip/dbeaver
  • https://t.me/clickhouse_ru
    @yurii_iv #222498 01:56 PM, 14 Jun 2021
    https://altinity.com/blog/clickhouse-and-s3-compatible-object-storage

    The structure of the data on object storage also needs to be improved. In particular, if every table had a separate prefix, it would be possible to move tables between locations. Adding metadata would allow you to restore the table from an object storage copy if everything else was lost.

    Подскажите пожалуйста, как дела обостоят с этим в новых версиях КХ (к примеру в *21.1*), больше всего интересую префиксы таблиц ?
    Может есть какой то workaroud ?
    Спасибо!
  • https://t.me/clickhouse_ru
    На какую версию обновились?
    Попробуйте min_bytes_to_use_mmap_io=0
  • Я не про опции в порте, я про опции при сборке руками. И нюансы вполне могут быть.
  • https://t.me/clickhouse_ru
    Бинарники которые в pkg собираются из портов )
  • Ну пускай так, спорить не буду
  • https://t.me/clickhouse_ru
    @Viaprog #222504 06:53 PM, 14 Jun 2021
    самое интересное, непонятно почему coredump'а нет... похоже, что пытается сам clickhouse процессом его создания управлять и толку нет. Если бы был - сам бы посмотрел в каком месте проблема и куда информативнее бы отрапортовал о баге
  • https://t.me/clickhouse_ru
    Ребят а есть идея по вот этому кейсу? Не могу понять почему при обычном селекте израсходуется такое количество памяти?
  • https://t.me/clickhouse_ru
    Какая точно версия
  • https://t.me/clickhouse_ru
    @baltazorbest #222508 08:18 PM, 14 Jun 2021
    clickhouse-client 21.5.5.12
    clickhouse-common-static 21.5.5.12
    clickhouse-server 21.5.5.12
  • https://t.me/clickhouse_ru
    попробуйте выполнить запрос с min_bytes_to_use_mmap_io=0
  • https://t.me/clickhouse_ru
    @unamedrus #222510 08:21 PM, 14 Jun 2021
    DB::Exception: Memory limit (for query) exceeded: would use N1 GiB (attempt to allocate chunk of N2 bytes), maximum: N3 GiB: While executing MergeTreeThread. · Issue #24505 · ClickHouse/ClickHouse

    We have a large syslog database. At some point it starts failing as SELECT message FROM syslog WHERE timestamp > (NOW() - toIntervalHour(48)) LIMIT 1000 FORMAT Null Query id: 985cfa48-099b-4...

  • https://t.me/clickhouse_ru
    А есть ли уже фикс ?
  • https://t.me/clickhouse_ru
    @baltazorbest #222512 08:24 PM, 14 Jun 2021
    В целом можно установить значение в конфиге если заработает
  • https://t.me/clickhouse_ru
    ну мержили вроде, даже в 21.5
    Но вообще поставить эту настройку в дефолт конфиг максимально безобидно, просто вернется к старому поведению.
  • https://t.me/clickhouse_ru
    @Rusfatal #222515 09:32 PM, 14 Jun 2021
    Всем привет. Народ скажите пожалуйста , как -то можно на стороне Кликхауза сделать такой кейс:
    В КХ лежит датафрейм вида:

    Дата Товар Цена
    01.06.2021 Куртка 100
    01.06.2021 Пижама 50
    05.06.2021 Куртка 100
    05.06.2021 Пижама 50
    07.06.2021 Куртка 100
    07.06.2021 Пижама 50

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

    Каждый день, питоновский скрипт получает новые данные по продажам за последние 3 дня. Нужно примержить этот питоновский датафрейм с продажами за последние три дня к Таблице, которая уже находится в КХ (с историческими продажами за все время).

    Так как в ЕЖЕДНЕВНОМ питоновском датафрейме содержатся продажи не за 1 последний день, а за 3 последних дня, то в Таблице в КХ значит тоже есть строки с продажами за последние 2 дня ( со вчерашней заливки питоновского датафрейма) ...

    Как сделать так, чтобы при ежедневной доливке в таблицу КХ питоновского датафрейма с продажами за последние 3 дня , чтобы в этой таблице КХ сначала удалялись все строки у которых Дата совпадает с теми датами , которые есть в питоновском датафрейме. А потом уже к этой таблице КХ дописывать питоновский датафрейм с продажами за последние 3 дня.
    Можно ли такое провернуть?
  • @s4851 ↶ Reply to #222515 #222516 09:35 PM, 14 Jun 2021
    Вот сюда смотрели?
    https://clickhouse.tech/docs/ru/engines/table-engines/mergetree-family/replacingmergetree/
    ReplacingMergeTree | Документация ClickHouse

    ReplacingMergeTree Движок отличается от MergeTree тем, что выполняет удаление дублирующихся записей с одинаковым значени

  • https://t.me/clickhouse_ru
    @unknown_name13 #222518 09:35 PM, 14 Jun 2021
    #вакансия #удаленка #dba #clickhouse
    ищем крутого dba.  clickhouse или с желанием изучить. зарплата от 180 обсуждаемая. Любой город, можно в офисе(мск сити), если хочется. тк рф, дмс, все дела. ищем активных и целеустремленных :-) по вопросам в лс
  • https://t.me/clickhouse_ru
    такое ощущение, что вы каждый день эту вакансию постите :)
    и такое ощущение, что вот эта вакансия гораздо лучше вашей :)
    https://t.me/clickhouse_ru/218510
    Denny Crane [Junior support specialist at Altinity (NB,Canada)] in ClickHouse не тормозит

    про нашу вакансию, я не согласен с ее описанием на hh. Мы готовы взять людей не гуру в КХ, или вообще с 0 опыта вот мое описание вакансии https://www.sql.ru/forum/1336096/clickhouse-specialist-altinity-com-udalenka-ot-3-000-do-5-000-usd я собеседую людей которые не знаюТ слова такого - clickhouse

  • https://t.me/clickhouse_ru
    не каждый день, чем лучше? слишком много субъективности, с попыткой развести холивар, пардон, я такое не люблю)
  • https://t.me/clickhouse_ru
    бывало и по 2 раза за день. хватит спамить, такое никто не любит
  • https://t.me/clickhouse_ru
    спасибо, что следите за мной. но это единичный случай. очередная субъективность с попыткой намазать на холивар. желаю удачи в этом путешествии)
  • https://t.me/clickhouse_ru
    @kiselevyav #222523 10:29 PM, 14 Jun 2021
    Всем привет!

    Есть таблица: action_id, session_id, time. Нужно узнать, сколько было активных сессий в каждую секунду времени.

    Если брать:

    select session_id, min(time) session_start, max(time) session_end from actions group by session_id;

    и джоинить со всеми секундами за период с условием:

    секунда between session_start and session_end

    , то работает ооочень долго (по сути декартово произведение с последующей фильтрацией на between). Может кто-то уже решал такую задачу и есть best practice?
  • @238773844 #222524 10:31 PM, 14 Jun 2021
    решал такое
  • @238773844 #222525 10:31 PM, 14 Jun 2021
    сейчасй найду
  • https://t.me/clickhouse_ru
    group by time
  • @238773844 #222527 10:32 PM, 14 Jun 2021
    нееееее
  • https://t.me/clickhouse_ru
    Если правильно понял, покажет сколько было уникальных сессий в секунду, но в этот момент времени могло и не быть экшнов в сессии, но сессия была живая и ее надо считать
  • @238773844 #222529 10:33 PM, 14 Jun 2021
    select ts,maxnum_concurrent_sessions) from (from(create_time + arrayJoin(range(session_start-session_end)) ts,
    count() AS num_concurrent_sessions
    from XXX
    ) as t1
  • @238773844 #222530 10:34 PM, 14 Jun 2021
    как то так
  • @238773844 #222531 10:34 PM, 14 Jun 2021
    поиграйтесь
  • https://t.me/clickhouse_ru
    ну так сначала можно сделать ARRAY JOIN [start,...,end]
  • @238773844 #222533 10:34 PM, 14 Jun 2021
    select ts,max(num_concurrent_sessions) from (from(create_time + arrayJoin(range(session_start-session_end)) ts,
    count() AS num_concurrent_sessions
    from XXX
    ) as t1 group by ts
  • https://t.me/clickhouse_ru
    Тимур, спасибо, попробую!
  • @238773844 #222535 10:35 PM, 14 Jun 2021
    Я еще решал это по-другому, тк спотыкался в объем данных
  • @238773844 #222536 10:36 PM, 14 Jun 2021
    range(session_end-session_start) конечно
  • https://t.me/clickhouse_ru
    Дмитрий, если не сложно - поясни, плз, идею
  • https://t.me/clickhouse_ru
    @unamedrus #222538 10:37 PM, 14 Jun 2021
    тимур по факту ее и изобразил.

    Разве что я бы наверное использовал
    https://clickhouse.tech/docs/en/sql-reference/functions/date-time-functions/#timeslotsstarttime-duration-size
    Dates and Times | ClickHouse Documentation

    Functions for Working with Dates and Times Support for time zones. All functions for working with the date and time that

  • @238773844 #222539 10:41 PM, 14 Jun 2021
    еще я делал через arrayCumSum
  • @238773844 #222540 10:41 PM, 14 Jun 2021
    login был 1, logout был -1
  • @238773844 #222541 10:42 PM, 14 Jun 2021
    и далее было maxArray от arrayCumSum
  • https://t.me/clickhouse_ru
    @kiselevyav #222542 11:26 PM, 14 Jun 2021
    Реализовал идею Тимура, но уперся теперь в

    A call to function range would produce 134065378 array elements, which is greater than the allowed maximum of 100000000
  • https://t.me/clickhouse_ru
    @kiselevyav #222543 11:27 PM, 14 Jun 2021
    Внутри сессий по несколько тысяч секунд (то есть сессии обычно по нескольку десятков минут бывают длительностью)
  • https://t.me/clickhouse_ru
    @kiselevyav #222544 11:28 PM, 14 Jun 2021
    Но как я понял, суммарно на блок выходит больше чем 100000000 элементов
  • https://t.me/clickhouse_ru
    Timur , обходил как-то это ограничение?
  • @238773844 #222546 11:38 PM, 14 Jun 2021
    Arraycumsum
  • @238773844 #222547 11:38 PM, 14 Jun 2021
    Писал выше
  • @238773844 #222548 11:42 PM, 14 Jun 2021
    еще timeSlots должен помочь - но там будет усреднение как я понимаю
  • @238773844 #222549 11:42 PM, 14 Jun 2021
    для меня это не подходило
  • @238773844 #222550 11:43 PM, 14 Jun 2021
    нужно было считать точное кол-во сесий
  • https://t.me/clickhouse_ru
    @kiselevyav #222551 11:44 PM, 14 Jun 2021
    C timeSlots немного веселее
  • https://t.me/clickhouse_ru
    @kiselevyav #222553 11:46 PM, 14 Jun 2021
    А что ты передавал в arrayCumSum в качестве исходного массива?
  • @238773844 #222554 11:48 PM, 14 Jun 2021
    2 selectа
  • @238773844 #222555 11:49 PM, 14 Jun 2021
    1) session start time, 1
  • @238773844 #222556 11:49 PM, 14 Jun 2021
    2) session end time, -1
  • @238773844 #222557 11:49 PM, 14 Jun 2021
    union между ними
  • @238773844 #222558 11:49 PM, 14 Jun 2021
    точно не помню
  • @238773844 #222559 11:50 PM, 14 Jun 2021
    где-то это есть. нужно поднимать notes
  • @238773844 #222560 11:55 PM, 14 Jun 2021
    SELECT d, maxArray(c1) AS cFROM( SELECT d, - Pastebin.com

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

  • @238773844 #222561 11:55 PM, 14 Jun 2021
    но, явно придется переделать под твои нужды
  • @238773844 #222563 11:58 PM, 14 Jun 2021
    итог - максимальное кол-во активных сессий за день
  • 15 June 2021 (89 messages)
  • https://t.me/clickhouse_ru
    @kiselevyav #222564 12:02 AM, 15 Jun 2021
    Спасибо!
  • https://t.me/clickhouse_ru
    а кроме кордампа разве stacktrace никуда не пишется?
  • https://t.me/clickhouse_ru
    Он вот такой, малоинформативный:

    <Fatal> BaseDaemon: ########################################
    <Fatal> BaseDaemon: (version 21.3.13.1, no build id) (from thread 947139) (no query) Received signal Segmentation fault (11)
    <Fatal> BaseDaemon: Address: 0x818891000 Attempted access has violated the permissions assigned to the memory area.
    <Fatal> BaseDaemon: Stack trace: 0x57d5d0d 0x59053b0 0x80cf13e0e 0x80cf133cf
    <Fatal> BaseDaemon: 0. 0x57d5d0d
    <Fatal> BaseDaemon: 1. 0x59053b0
    <Fatal> BaseDaemon: 2. 0x80cf13e0e
    <Fatal> BaseDaemon: 3. 0x80cf133cf
  • https://t.me/clickhouse_ru
    @BloodJazMan #222567 05:13 AM, 15 Jun 2021
    ну да, странно, debug символы не смогли разрезолвить...

    а они вообще стоят?
  • Проверьте ulimit и загляните в /var/lib/clickhouse/cores
  • https://t.me/clickhouse_ru
    дампа нет. Если он пишется, в dmesg об этом сообщено. Например:
    pid 38029 (clickhouse), jid 0, uid 800: exited on signal 11
    pid 11587 (conftest), jid 0, uid 0: exited on signal 11 (core dumped)

    ulimit
    core 1073741824 -1

    только тот самый софт лимит который он сам (clickhouse) себе ставит и управляется через <core_dump><size_limit>. Хард лимита нет.

    да и по отправке руками сигнала -SEGV дамп пишется как надо и куда надо. Без проблем. А при вываливании по этой ошибки файл с дампом нулевой длинны
  • https://t.me/clickhouse_ru
    "чуть более правильный ответ" критикуешь - предлагай)
  • https://t.me/clickhouse_ru
    Стоят.
    # file /usr/local/bin/clickhouse
    /usr/local/bin/clickhouse: ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), dynamically linked, interpreter /libexec/ld-elf.so.1, for FreeBSD 13.0 (1300139), FreeBSD-style, with debug_info, not stripped

    # nm /usr/local/bin/clickhouse | wc -l
    533349

    # nm /usr/local/bin/clickhouse | grep -c LowCardinality
    781
  • Про разработку КХ - есть отдельный чат для разработчиков https://t.me/joinchat/B44Vi1T-PQA_9TwyAIBu-Q попробуйте спросить там.
    ClickHouse developers, public

    Public discussion group for ClickHouse contributors

  • https://t.me/clickhouse_ru
    Спасибо!
  • Ну и если оно у вас стабильно воспроизводится - то проще всего запустить КХ внутри gdb.
  • @mfilimonov #222575 06:02 AM, 15 Jun 2021
    Есть ещё вариант - можно попробовать превратить адреса из стектреса в строки с помощью addr2line (из binutils)
  • https://t.me/clickhouse_ru
    Ну как стабильно... воспроизводится.. Раз в сутки +- при больших нагрузках. думаю, тут с gdb проблематично будет )
  • @mfilimonov #222577 06:03 AM, 15 Jun 2021
    addr2line -afiCe /usr/bin/clickhouse 0x57d5d0d 0x59053b0 0x80cf13e0e 0x80cf133cf
  • https://t.me/clickhouse_ru
    @Viaprog #222578 06:06 AM, 15 Jun 2021
    Не так, что запустил, сделал какие то действия и вывалилось.
  • https://t.me/clickhouse_ru
    # addr2line -afiCe /usr/local/bin/clickhouse 0x57d5d0d
    0x00000000057d5d0d
    ??

    :-)
  • Ну эти ulimit у процесса ещё раз проверьте. Лучше всего через /proc/$PID/limits
  • https://t.me/clickhouse_ru
    @Viaprog #222581 06:09 AM, 15 Jun 2021
    cpu -1 -1
    fsize -1 -1
    data 34359738368 34359738368
    stack 536870912 536870912
    core 107374182400 -1
    rss -1 -1
    memlock 134217728 134217728
    nproc 89999 89999
    nofile 15095268 15095268
    sbsize -1 -1
    vmem -1 -1
    npts -1 -1
    swap -1 -1
    kqueues -1 -1
    umtx -1 -1
  • https://t.me/clickhouse_ru
    @Viaprog #222582 06:09 AM, 15 Jun 2021
    /proc/10845/rlimit
  • https://t.me/clickhouse_ru
    @Viaprog #222583 06:09 AM, 15 Jun 2021
    это не Linux. FreeBSD )
  • @mfilimonov #222584 06:39 AM, 15 Jun 2021
    Вроде выглядит норм. Если включены trace логи - можно ещё глянуть что поток 947139 делал перед падением.
  • https://t.me/clickhouse_ru
    так я написал про 2 ответа и уточнил у вас кэйс
    вы ответили, но рядом Дмитрий Титов предложил отличный вариант с cityHash
  • https://t.me/clickhouse_ru
    Я подумал, что у вас был свой вариант, но вы его не написали

    🙌
  • https://t.me/clickhouse_ru
    на самом деле не было
    кроме вариантов использовать optimize table ... deduplicate (тоже не ахти вариант) или выяснения подмножества столбцов, которых было бы достаточно для дудупликации
    но есть привычка уточнять кэйс перед тем, как советовать что-то специфичное
  • https://t.me/clickhouse_ru
    чем плохо перечисление всех колонок?
  • https://t.me/clickhouse_ru
    @pic_Nick77 #222590 08:17 AM, 15 Jun 2021
    Здравствуйте. Читаю доку по движку Atomic. Там написано: Для таблиц ReplicatedMergeTree рекомендуется не указывать параметры движка - путь в ZooKeeper и имя реплики. В этом случае будут использоваться параметры конфигурации: default_replica_path и default_replica_name. А что за значения по дефолту будут? Где их посмотреть?
  • https://t.me/clickhouse_ru
    @russelomua #222591 08:30 AM, 15 Jun 2021
    Подскажите в какой версии бд появился тип данных Map?
  • https://t.me/clickhouse_ru
    Добрый день! Их можно задать в config.xml в clickhouse-server. Более подробно описано на странице документации: https://clickhouse.tech/docs/en/engines/table-engines/mergetree-family/replication/#creating-replicated-tables
    Data Replication | ClickHouse Documentation

    Data Replication Replication is only supported for tables in the MergeTree family: ReplicatedMergeTree ReplicatedSumming

  • https://t.me/clickhouse_ru
    Да, задать можно, но я хотел посмотреть, чему они равны, если я их не задал. В system.settings их не видно.
  • https://t.me/clickhouse_ru
    2021 | ClickHouse Documentation

    ClickHouse release v21.8, 2021-08-12 Upgrade Notes New version is using Map data type for system logs tables (system.que

  • https://t.me/clickhouse_ru
    В первом приближении потому что дедубликация идёт по ключу сортировки, и если явно не указать разные ключ сортировки и pk, то все столбцы полетят в оперативку (немного натянуто).
    Во втором приближении даже в фоне дорого сравнивать полные строки, сколько у вас столбцов? 5, 10, 100500?
    А решение с cityHash аккуратно закрывает обе проблемы
  • https://t.me/clickhouse_ru
    👍
  • @semchalex #222597 09:00 AM, 15 Jun 2021
    Всем привет! А в какую часть конфига users.xml вставляется настройка max_partitions_per_insert_block?
  • https://t.me/clickhouse_ru
    <profiles><default><max_partitions_per_insert_block>XXX</max_partitions_per_insert_block></default></profile>
  • @artemisss #222601 10:39 AM, 15 Jun 2021
    Добрый день.

    Подскажите пожалуйста, если в JSON несколько повторяющихся значений, например:

    [{"id":1,"name":"Test»,»subtotal":84.99,"count":1},{"id":2,"name":"Test2»,»subtotal»:267.0,»count»:3}

    как забрать оба значения count в 2 разных столбцах?

    Если делать visitParamExtractRaw(response, 'count'), - то возвращается только первое значение, равное 1
  • https://t.me/clickhouse_ru
    @solard #222603 11:13 AM, 15 Jun 2021
    Всем привет. Подскажите в оператор так и не завезли возможность бутстрапа баз данных при инициализации кластера?
  • https://t.me/clickhouse_ru
    @solard #222604 11:14 AM, 15 Jun 2021
    Знаю что есть docker-entrypoint-initdb директория но не до конца понимаю как в CRD кластера КХ указать volume для конфигмапы
  • https://t.me/clickhouse_ru
    podTemplates
    надо задать
    в котором
    .spec.containers указать

    вообще при добавлении новых нод, оператор автоматом текущую схему (без данных) раскидывает по новым шардам и репликам...
    что вас не устраивает конкретно в этом способе?

    вы хотите какой то тестовый кластер делать? в котором в CRD схему определить через configmap?
  • https://t.me/clickhouse_ru
    @lazoreth #222606 11:17 AM, 15 Jun 2021
    Ребзя, подскажите пожаулуйста. Делаем пачку огромных запросов в кх из питонячего скрипта. Валится на 3-4 запросе по недостатку ОЗУ. Если кто-то боролся, поделитесь опытом. Не хочется в тупую таймауты ставить между запросами
  • https://t.me/clickhouse_ru
    @solard ↶ Reply to #222605 #222607 11:17 AM, 15 Jun 2021
    Мне при подьёме кластера нужно создавать в нём с десяток БД
  • https://t.me/clickhouse_ru
    @solard #222608 11:18 AM, 15 Jun 2021
    Делать джобу отдельную на создание БД не очень хочется. Думал решить это средствами оператора
  • @1029917248 #222609 11:19 AM, 15 Jun 2021
    Добрый день.
    Столкнулся в питоне с «32 Broken pipe”, во время пуша в кликхаус.
    Не большой скрипт. Скачиваю данные из постгри, обрабатываю и пушу в кликхаус.
    При этом появление эксепшена не зависит от объема и самих данных, которые я записываю… (пробовал пушить 1 захардкоженный рекорд)
    Обнаружил, что это зависит от объема запрашиваемых данных (данных не так много ~40к). Работает это в контейнере (дебиан). На локальной машине все отрабатывает штатно (убунту).
    Питон 3.8, либа для кликхауса - aiochclient, postgre - psycopg2
    Подскажите пожалуйста, в какую сторону копать?)
  • https://t.me/clickhouse_ru
    https://github.com/Altinity/clickhouse-operator/blob/master/docs/chi-examples/02-templates-06-sidecar.yaml
    вот пример как ConfigMap монтируется внутрь пода
    clickhouse-operator/02-templates-06-sidecar.yaml at master · Altinity/clickhouse-operator

    The ClickHouse Operator creates, configures and manages ClickHouse clusters running on Kubernetes - clickhouse-operator/02-templates-06-sidecar.yaml at master · Altinity/clickhouse-operator

  • https://t.me/clickhouse_ru
    @solard ↶ Reply to #222610 #222611 11:24 AM, 15 Jun 2021
    То что нужно. Столько примеров перековырял а это пропустил. Спасибо
  • https://t.me/clickhouse_ru
    если все получится, если не трудно, сделайте pull request в котором конкретно SQL примеры приложите?

    тут еще какие тонкости могут быть
    если initdb стадия долгая, могут liveness пробы отвалиться...
  • https://t.me/clickhouse_ru
    @solard ↶ Reply to #222612 #222613 11:26 AM, 15 Jun 2021
    Без проблем. По поводу проб спасибо гляну. Но там не такой тяжелый скрипт для бутстрапа будет чтобы отвалилось что-то
  • Спасибо!
  • https://t.me/clickhouse_ru
    используйте настройку ПРАВИЛЬНО
    ее можно просто через INSERT INTO ... SETTINGS переопределить
    как временное решение
    вообще если у вас один блок затрагивает 100 партиций и так каждый раз
    значит вы неправильную структуру таблицы сделали
    и вам надо другой PARTITION BY делать
  • Да, я понимаю что она не просто так сделана) Спасибо!)
  • @semchalex #222617 11:39 AM, 15 Jun 2021
    А еще такой вопрос, если я не хочу чтобы пароль от default хранился в открытом виде в default-password.xml, мне надо получается в /etc/clickhouse-server/users.d/users.xml добавить следующее
    <users>
    <default>
    <password_sha256_hex>my_hash</password_sha256_hex>
    </default>
    </users>
    и удалить default-password.xml? Или есть более правильный/простой способ?
  • https://t.me/clickhouse_ru
    @solard ↶ Reply to #222617 #222618 11:41 AM, 15 Jun 2021
    Добавить свой sha256 да
  • https://t.me/clickhouse_ru
    @solard #222619 11:41 AM, 15 Jun 2021
    Но можно оставить без пароля и запретить доступ
  • https://t.me/clickhouse_ru
    то что описали и есть более правильный способ
    не хотите хранить пароль в открытом виде, не храните =)
  • Спасибо, просто думал вдруг еще что-то нужно сделать)
  • Попробовал заменить чтение из бд, на чтение из файл… ничего не изменилось. Все так же падает на пуше
  • https://t.me/clickhouse_ru
    а с контейнера до кликхауса вообще достучаться получается-то?
    curl http://clickhouse-ip:8123/

    aiochclient не пробовал. А с pandahouse, clickhouse-sqlalchemy и infi.clickhouse_orm проблем не наблюдалось
  • Кликхаус доступен.
    Если уменьшить количество данных, то все успешно пушится…
  • https://t.me/clickhouse_ru
    странно, 40к записей маловато, конечно ) А в логах клика что пишет при ошибке? Может там не в том формате где-то данные прилетают? Ну какой-нибудь null где его быть не должно, например