• 01 August 2019 (308 messages)
  • @egonarsey #112394 04:57 AM, 01 Aug 2019
    Joined.
  • @orlan_sar #112395 05:40 AM, 01 Aug 2019
    Привет всем. Подскажите плиз, как достать только дату(или месяц, год) как число ? Например отсюда 2019-07-30 достаем только дату 30 или месяц 7.
  • https://t.me/clickhouse_ru
  • Разобрался, спасибо
  • https://t.me/clickhouse_ru
    @agorin #112399 05:49 AM, 01 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @metikovvadim #112400 06:00 AM, 01 Aug 2019
    Вопрос к знатокам движков *GraphiteMergeTree, если я вырежу из правил прореживания(graphite_retentions)
    первое условие про возраст метрик в 0 сеукнд, и осталю только
    <age>86400</age>
    <precision>60</precision>
    это избавит КХ от необходимости прореживать сегодняшние данные, или так нельзя ?
  • https://t.me/clickhouse_ru
    Все так. У меня как раз так и настроено.
  • https://t.me/clickhouse_ru
    Спасибо
  • https://t.me/clickhouse_ru
    @ksponomarev #112403 07:05 AM, 01 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @ksponomarev #112404 07:06 AM, 01 Aug 2019
    Доброе утро. У меня вопрос - можно ли отключить ротацию логов самим Кликхаусом и отдать ротацию логротейту? Спасибо)
  • а если поставитть size 0 в logger?
  • https://t.me/clickhouse_ru
    надо попробовать, я думал есть более простой метод, типа флага false
  • https://t.me/clickhouse_ru
    with [1, 2, 3] as a
    select a, arrayMap(x->a[x+1], arrayEnumerate(a))
  • У меня 70 миллионов записей
  • https://t.me/clickhouse_ru
  • @elated_engelbart #112410 07:31 AM, 01 Aug 2019
    Ох, отлично
  • @apr100500 #112411 07:48 AM, 01 Aug 2019
    Всем привет, подскажите в какую сторону посмотреть, нужно составить запрос, который будет возвращать для каждого начала часа среднее значение столбца за предыдущие сутки. Не глубоко разбираюсь в SQL и поэтому застрял.
  • @apr100500 #112412 07:55 AM, 01 Aug 2019
    чтот через join не получается собрать, либо я не туда смотрю(((
  • https://t.me/clickhouse_ru
    create table tmp_del_me(dt DateTime, qty UInt16) Engine = Log;
    insert into tmp_del_me(dt, qty) values ('2019-07-01 10:00:00', 1), ('2019-07-01 10:30:00', 3), ('2019-08-01 10:00:00', 10), ('2019-08-01 10:30:00', 30), ('2019-08-01 11:00:00', 20), ('2019-08-01 11:30:00', 50);
    select
    dt_
    , avg_qty
    , runningDifferenceStartingWithFirstValue(hou) = 0 ? avg_qty - runningDifferenceStartingWithFirstValue(avg_qty) : 0 as prev_avg_qty
    from
    (
    select
    toStartOfHour(dt) as dt_
    , toHour(dt_) as hou
    , avg(qty) as avg_qty
    from tmp_del_me
    group by dt_
    order by hou, dt_
    );
  • @apr100500 #112414 08:20 AM, 01 Aug 2019
    Спасибо большое, сейчс пересмотрю!
  • https://t.me/clickhouse_ru
    падает кликхаус от такого
  • Как крайний случай задрать значенияд о высоких, чтобы просто не достигать лимитов. Можно попробовтаь дефолты глянутть, если эти опции совсем убрать.
  • https://t.me/clickhouse_ru
    @blinkovivan #112417 08:37 AM, 01 Aug 2019
    Любим и практикуем рассказывать истории об успехах, которых добиваются компании в Облаке.

    Сегодня кейс AdsCompass - платформы по монетизации интернет-трафика. С помощью облачного сервиса управляемой базы данных ClickHouse компания снизила затраты на обслуживание растущего бизнеса и повысила стабильность работы с данными клиентов.

    https://cloud.yandex.ru/blog/posts/2019/07/case-ads
    Опыт AdsCompass: оптимальная поддержка кластера в Yandex Managed Service for ClickHouse

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

  • @efreeman #112418 08:51 AM, 01 Aug 2019
    салют всем!
    у кого есть успешный опыт выполнения запроса по odbc из ch?

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

    когда я делаю тоже самое из CH, SELECT * FROM odbc('DSN=myconnection', 'sspdb', 'site_asdtxt') limit 1;

    Received exception from server (version 19.7.3):
    Code: 86. DB::Exception: Received from localhost:9000, ::1. DB::Exception: Received error from remote server /columns_info?connection_string=DSN%3Dmyconnection&schema=sspdb&table=site_asdtxt. HTTP status code: 500 Internal Server Error, body: Error getting columns from ODBC 'Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = Connection attempt failed: Connection:Not applicable
    Server:Not applicable
    ===========================
    ODBC Diagnostic record #1:
    ===========================
    SQLSTATE = IM002
    Native Error Code = 0
    [unixODBC][Driver Manager]Data source name not found, and no default driver specified
    все делал согласно этому гайду - https://clickhouse.yandex/docs/en/query_language/dicts/external_dicts_dict_sources/#example-of-connecting-postgresql
  • по идее где то в системных таблицах должна быть написана текущая конфига DSN. Можно было бы посмотреть и выцепить.
  • а лучше бы конечно конфигурацию из кх сюда скинуть
  • @efreeman #112421 09:00 AM, 01 Aug 2019
    это .odbc.ini

    [DEFAULT]
    Driver = myconnection

    [myconnection]
    Driver = PostgreSQL Unicode
    Description = PostgreSQL connection to sspdb
    Database = sspdb
    Servername = 127.0.0.1
    UserName = ssp
    Password = ssp
    Port = 5432
    Protocol = 11.3
    ReadOnly = No
    RowVersioning = No
    ShowSystemTables = No
    ConnSettings =
    <yandex>
    <dictionary>
    <name>local_pg_sspdb_site_adstxt</name>
    <source>
    <odbc>
    <!-- You can specify the following parameters in connection_string: -->
    <!-- DSN=myconnection;UID=username;PWD=password;HOST=127.0.0.1;PORT=5432;DATABASE=my_db -->
    <connection_string>DSN=myconnection</connection_string>
    <table>site_adstxt</table>
    </odbc>
    </source>
    <lifetime>
    <min>300</min>
    <max>360</max>
    </lifetime>
    <layout>
    <hashed/>
    </layout>
    <structure>
    <id>
    <name>id</name>
    </id>
    <attribute>
    <name>domain</name>
    <type>String</type>
    <null_value>''</null_value>
    </attribute>
    <attribute>
    <name>compliant</name>
    <type>Int8</type>
    <null_value>false</null_value>
    </attribute>
    <attribute>
    <name>debug</name>
    <type>String</type>
    <null_value>''</null_value>
    </attribute>
    <attribute>
    <name>last_modified_date_time</name>
    <type>DateTime</type>
    <null_value>now()</null_value>
    </attribute>
    </structure>
    </dictionary>
    </yandex>
  • @sr_maks1 #112422 09:02 AM, 01 Aug 2019
    вопрос - а КХ не в докере? на вскидку?
  • @efreeman #112423 09:05 AM, 01 Aug 2019
    нет,локально
  • @efreeman #112424 09:05 AM, 01 Aug 2019
    я так понимаю, что эта секция dictionary по сути не влияет
  • @efreeman #112425 09:06 AM, 01 Aug 2019
    это конкретно для случаю когда мне именно словарь нужен
  • https://t.me/clickhouse_ru
    @Nixairus #112426 09:12 AM, 01 Aug 2019
    Добрый день! Проверьте меня и подскажите, как правильно по возможности. Хочу сделать из GraphiteMergeTree ReplicatedGraphite MergeTree с переносом данных.
    Сейчас разворачиваю сервер который будет резервом(репликой). Как будет правильно перенести данные? Alter freeze,copy data & attach или лучше через clickhouse copier/backup?
    Или банально insert into .. select ?
  • @VictorZhitnikov #112427 09:12 AM, 01 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @Nixairus #112428 09:16 AM, 01 Aug 2019
    Я думаю создать таблицу реликатед локально, настроить репликации на хостах и сделать insert into локально, после чего проверить данные на другом хосте. И его в будущем бекапить (помесячно) утилитой CH-backup. Правильно думаю?
  • https://t.me/clickhouse_ru
    Driver = /usr/lib/psqlodbca.so
  • https://t.me/clickhouse_ru
    Зачем вам данные в старой таблице. Не проще просто переделать mt в RMT?
  • https://t.me/clickhouse_ru
    @den_crane, Из директории detached можно удалить те части, которые не удалось смержить?
  • https://t.me/clickhouse_ru
    @den_crane #112432 09:22 AM, 01 Aug 2019
    Freeze создаёт хардлинки можно их использовать. Кх файлы не изменяет.
  • https://t.me/clickhouse_ru
    если они вам не нужны и все данные на месте. Что в логе то?
  • https://t.me/clickhouse_ru
    @igor_dia #112434 09:26 AM, 01 Aug 2019
    Ну при перезапуске кх старается примержить то, что в детачед, это у него естественно не получается, он выдает всё ту же ошибку с перекрытием частей, но продолжает работать дальше. Периодически кх запускает мержи с детачедом и ошибки повторяются. Полный текст ошибки могу скинуть через полчаса примерно, если нужно
  • https://t.me/clickhouse_ru
    @igor_dia #112435 09:28 AM, 01 Aug 2019
    В каких случаях может пригодиться то, что в детачед?
  • https://t.me/clickhouse_ru
    ну надо было после attach partition отложить все из detached куда-нибудь. КХ на всех репликах при detach partition перекладывает detached, а при attch partition берет из detached только на той реплике где выполнили attch. На остальных все остается в detached и надо либо отложить в другой каталог для поиска недостающих данных либо удалить. У вас много осталось в detached на реплике на которой attach делали?
  • https://t.me/clickhouse_ru
    @igor_dia #112437 09:31 AM, 01 Aug 2019
    Много осталось на той реплике, куда заливалось.
  • https://t.me/clickhouse_ru
    Я не понял этой фразы.
  • https://t.me/clickhouse_ru
    Много осталось в детачед на той реплике, где аттач не делали
  • https://t.me/clickhouse_ru
    ну я про это уже три раза сказал, это так и задумано
  • https://t.me/clickhouse_ru
    @den_crane #112441 09:34 AM, 01 Aug 2019
    там все осталось
  • https://t.me/clickhouse_ru
    @den_crane #112442 09:34 AM, 01 Aug 2019
    эта реплика все скачала с той где сделали attach
  • пробовал также указывать
    пробовал, тоже самое
  • @efreeman #112444 09:35 AM, 01 Aug 2019
    isql то работает
  • https://t.me/clickhouse_ru
    И поэтому содержимое той папки не нужно
  • https://t.me/clickhouse_ru
    бридж запускается в своем окружении и похоже не видит пути lib, это началось с версии с бриджом как отдельный от КХ процесс.
  • https://t.me/clickhouse_ru
    это сложный вопрос, надо читать лог. Возможно там есть парты которые вставились но не реплицировались. Ну например вы смотрите в лог и в таблицу и нету данных за 484 час от 42 июля. И есть такой парт в detached. Читаем лог, что с этим произошло и как так получилось. Ну дальше все очевидно
  • https://t.me/clickhouse_ru
    В папке /data/dbname/tablename около 142 подпапок - это каждая партиция и её надо ручками заводить потом атачем?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @241186216 #112450 09:48 AM, 01 Aug 2019
    А что хранится в UncompressedCache ? Из названия следует ,что декомпрессионные данные , но ч вот смотрю на исходник и не понимаю там ничего почти .я не C++ мастер (. Может кто пролить свет на это процесс. Хочется понять как это кэш работает.
  • https://t.me/clickhouse_ru
    у вас такой файл /usr/lib/psqlodbca.so вообще есть? Он может по другому называться.
  • https://t.me/clickhouse_ru
    КХ хранит данные на диске закомпрешеннно в lz4/zstd . И читает их через линуксовый кеш.
    В UncompressedCache КХ хранит маленькие куски в декомресированном виде.
  • https://t.me/clickhouse_ru
    @241186216 #112453 09:56 AM, 01 Aug 2019
    А КХ значит сначала ищет эти кусочки в кэше ?
  • https://t.me/clickhouse_ru
    @241186216 #112454 09:57 AM, 01 Aug 2019
    Если ищет , то каким образом? По каким параметрам он там ищет ?
  • https://t.me/clickhouse_ru
    @241186216 #112455 09:59 AM, 01 Aug 2019
    Ага... Похоже он делает хэш от пути к файлу и офсета . Так ?
  • https://t.me/clickhouse_ru
    я не знаю, никогда не интересовался, у меня никогда данные не помещаются в UncompressedCache, нет таких мелких повторяющихся запросов.
  • @362966306 #112457 10:03 AM, 01 Aug 2019
    Всем привет!
    коллеги, столкнулся с проблемой что на одной из реплик начали выпадать куски и помечаться как broken, при чем за рандомные даты и в разных таблицах.

    в логах вижу при этом
    2019.08.01 08:51:06.998053 [ 42 ] {} <Error> default.event_shard (ReplicatedMergeTreePartCheckThread): DB::CheckResult DB::ReplicatedMergeTreePartCheckThread::checkPart(const String&): Code: 173, e.displayText() = DB::ErrnoExcepti
    on: Allocator: Cannot malloc 64.00 KiB., errno: 12, strerror: Cannot allocate memory, Stack trace:

    2019.08.01 08:51:06.998113 [ 42 ] {} <Error> default.event_shard (ReplicatedMergeTreePartCheckThread): Part 20190801_20190801_1194_2517_7 looks broken. Removing it and queueing a fetch.

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

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

    сетевых проблем между до реплики и зк, так же обнаружено не было, и проблема возникает ток на одной паре из 4х

    версия 19.11.3.11
  • https://t.me/clickhouse_ru
    @241186216 #112458 10:04 AM, 01 Aug 2019
    Спасибо. Тоже вижу , что не все туда попадают. Только маленькие запросы его используют. Но , например как КХ поймет использовать кэш или нет
  • https://t.me/clickhouse_ru
    @241186216 #112459 10:05 AM, 01 Aug 2019
    Он же не знает заранее объем выборки
  • https://t.me/clickhouse_ru
    None
  • https://t.me/clickhouse_ru
    @slava_pinchuk #112461 10:06 AM, 01 Aug 2019
    Всем привет !
    Вопрос: реально и поднять в докерконтейнере кликхаус размером в полтора террабайта и свой сервис который агрегирует с него данные и посомтреть логи на каком запросе он падает ?
  • у меня он такой /usr/lib/x86_64-linux-gnu/odbc/psqlodbcw.so
  • https://t.me/clickhouse_ru
    вы lowcardinality испольуете? в брокен парте есть .dict. file?
  • https://t.me/clickhouse_ru
    @241186216 #112464 10:09 AM, 01 Aug 2019
    Кому может любопытно . Это кэш только для мерд трии . У нас как рас был кейс, что маленькие таблицы типа лог медленнее , чем mergetree. Похоже, что дело в Кеше было
  • https://t.me/clickhouse_ru
    да, и вообще-то этот кеш выключен по умолчанию
  • https://t.me/clickhouse_ru
    таблицы log работают совсем по другому и они не для хранения данных, и там нет индекса. Попробуйте stripelog , там больше параллельность обработки.
  • https://t.me/clickhouse_ru
    И кто это может запретить? Логи в файлы, файлы смотреть либо средствами докера, либо просто перенаправить каталог через опцию -v /<каталог за пределами докера>:/var/log/clickhouse-server и смотреть любым привычным способом.
  • https://t.me/clickhouse_ru
    @241186216 #112468 10:12 AM, 01 Aug 2019
    Лог наверное и не паралелится ?
  • https://t.me/clickhouse_ru
    @241186216 #112469 10:13 AM, 01 Aug 2019
    Я про то, что из мерджтри запросы могут выполнятся несколькими потоками . А для лога такое возможно ?
  • @Tut_b #112470 10:13 AM, 01 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    Засечки пишутся на каждый блок данных и содержат смещение - с какого места нужно читать файл, чтобы пропустить заданное количество строк. Это позволяет читать данные из таблицы в несколько потоков.
    https://clickhouse.yandex/docs/ru/operations/table_engines/log/
    https://clickhouse.yandex/docs/ru/operations/table_engines/log_family/
  • не используем, в брокенах такого файла нет
  • @Tut_b #112473 10:19 AM, 01 Aug 2019
    Приветствую!

    Что может значить вот такой ответ сервера на попытку вставки?

    HTTP/1.1 500 Internal Server Error
    Date: Thu, 01 Aug 2019 10:04:49 GMT
    Connection: Keep-Alive
    Content-Type: text/plain; charset=UTF-8
    X-ClickHouse-Server-Display-Name: **.com
    Transfer-Encoding: chunked
    Keep-Alive: timeout=3

    402
    Code: 171, e.displayText() = DB::Exception: Block structure mismatch in Buffer stream: different types:
    body String String(size = 32), ..., ts DateTime UInt32(size = 32)
    body String String(size = 0), ..., ts DateTime UInt32(size = 0), e.what() = DB::Exception

    0

    HTTP/1.1 400 Bad Request
    Connection: Close

    (код вставки отлажен и обычно срабатывает)
  • https://t.me/clickhouse_ru
    попробовали в rollup-файле убрать все агркгации из первых суток, а у нас один файл используется и КХ и graphite-clickhouse, так второй стал считать, что все точки должны быть(за каждую секунду) и графики превратились в облако точек. Вы используете разные правила для КХ и бэкенда ?
  • https://t.me/clickhouse_ru
    @IgorRekun #112475 11:00 AM, 01 Aug 2019
    Мужики, сколько ключей в списке КХ может съесть в запросе where in [list]?

    И есть ли вариант что делать если этих ключей нужно очень много?
  • https://t.me/clickhouse_ru
    @rasstr0en #112476 11:00 AM, 01 Aug 2019
    По ключам тащить из кх вроде долговато будет
  • @efreeman #112477 11:01 AM, 01 Aug 2019
    нашел косяк с odbc, оказывается в /etc/odbcinst.ini
    были дефолтные конфиги:
    [PostgreSQL ANSI]
    Description=PostgreSQL ODBC driver (ANSI version)
    Driver=psqlodbca.so
    Setup=libodbcpsqlS.so
    Debug=0
    CommLog=1
    UsageCount=1

    [PostgreSQL Unicode]
    Description=PostgreSQL ODBC driver (Unicode version)
    Driver=psqlodbcw.so
    Setup=libodbcpsqlS.so
    Debug=0
    CommLog=1
    UsageCount=1
    которые видимо имени больший приоритет, указал правильные конфиги для .so файлов и завелось
  • @efreeman #112478 11:01 AM, 01 Aug 2019
    вот, эта статья хорошо помогла
  • @efreeman #112479 11:01 AM, 01 Aug 2019
    Using ODBC with Clickhouse

    20 Sept 2018This article shows different ways of how you can use ClickHouse in connection with other data sources to make queries use all of ClickHouse optimization features in order to make results come faster. Also, it is good practice when you have some infrastructure elements already linked to some other data sources or tools that supports ODBC.

  • https://t.me/clickhouse_ru
    @IgorRekun #112480 11:03 AM, 01 Aug 2019
    Ребята спасались уменьшая index_granularity, если нужна была выборка конкретных значений
  • https://t.me/clickhouse_ru
    @IgorRekun #112481 11:03 AM, 01 Aug 2019
    Но тем не менее вопрос, как загнать большой пул ключей которые надо выдернуть =/
  • https://t.me/clickhouse_ru
    Я использую автодискавери правил в graphite clickhouse и параметр default rollup который туда когда-то закоммитил. Он указывает интервал усреднения по умолчанию для тех точек которые не попадают в интервалы в КХ т.е. в данном случае для первых суток
  • https://t.me/clickhouse_ru
    сколько угодно, есть ограничение на размер sql запроса в MB и размер AST их можно увеиличивать до сколько хотите

    > И есть ли вариант что делать если этих ключей нужно очень много?
    external data https://clickhouse.yandex/docs/en/operations/table_engines/external_data/
    External Data | ClickHouse Documentation

    External Data for Query Processing ClickHouse allows sending a server the data that is needed for processing a query, to

  • https://t.me/clickhouse_ru
    Можно поподробнее? То есть оставялем одно умолчальное правило, скажем , по-умолчанию - 1 точка в секунду и бэкенд сам будет рисовать ежеминутные точки, если из БД не вычитал больше ?
  • https://t.me/clickhouse_ru
    вообще вещи малосвзязанные, КХ будет использовать индекс пока значений меньше ~<100 тыс в списке (или как-то хитрее теперь, от размера блока зависит), но и без индекса все будет работать, хоть миллиард в списке, другое дело как вам список на сервер доставить
  • https://t.me/clickhouse_ru
    Ну ты убрал правило для последних суток. Соответственно графит кх не знает как выводить этот интервал и рисует тебе его как есть. Поэтому для таких интервалов можно задать дефолтное усреднение допустим 1 минута
  • поменял пока оверкомит и уменьшил потребление памяти, посмотрим повторится ли после ресинка побитых данных
  • https://t.me/clickhouse_ru
    то есть в настройках не используем "auto" вместо имени файла-схемы, а в схеме только дефолт, остальное - из КХ , верно ?
  • https://t.me/clickhouse_ru
    Именно в этом и вопрос. Есть ли практики как загнать толстый where in [...list...]
  • https://t.me/clickhouse_ru
    Используем авто. Он прочитает из кх те правила какие есть, а для тех интервалов которые не покрываются правилами т.е. в твоем случае первые сутки он будет юзать дефолт
  • https://t.me/clickhouse_ru
    тогда не знаю, попробуйте напрямую передать сам брокен парт Миловидову или Сапину. Чтобы они посмотрели на самом деле сломан или чекер ломается.
  • https://t.me/clickhouse_ru
    Создать таблицу, записать в нее и потом where in (select)
  • https://t.me/clickhouse_ru
    сколько угодно, есть ограничение на размер sql запроса в MB и размер AST их можно увеиличивать до сколько хотите

    > И есть ли вариант что делать если этих ключей нужно очень много?
    external data https://clickhouse.yandex/docs/en/operations/table_engines/external_data/
  • https://t.me/clickhouse_ru
    @den_crane #112494 11:13 AM, 01 Aug 2019
    external data специально для этого
  • https://t.me/clickhouse_ru
    дефолт где описан , в конфиге КХ или graphite-clickhouse ?
    Это в 0.11 добавили, нужно обновиться
  • https://t.me/clickhouse_ru
    @IgorRekun #112496 11:14 AM, 01 Aug 2019
    external data - ой жара, спасибо. Странно что поисковик меня на эту страницу так и не привел(
  • А есть ли функционал для ручной проверки чексумм и партов, например optimize?
  • https://t.me/clickhouse_ru
    rollup-default-precision = 60
    rollup-default-function = "avg"

    В графит кх
  • https://t.me/clickhouse_ru
    @metikovvadim #112499 11:16 AM, 01 Aug 2019
    ок, спасибо
  • https://t.me/clickhouse_ru
    по-моему нет
  • https://t.me/clickhouse_ru
    @LevSamoilenko #112501 11:21 AM, 01 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @n_bogdanov #112502 11:28 AM, 01 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @Krashuevina #112503 11:32 AM, 01 Aug 2019
    Коллеги, вопрос следующего толка:
    "Существует возможность задать первичный ключ .... отличный от ключа сортировки"
    А где пример глянуть?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @Pershin_Artem_spb #112505 11:37 AM, 01 Aug 2019
    при создании MergeTree видимо
    Order by (field1, field2),
    Primary key (field1)
  • https://t.me/clickhouse_ru
    @den_crane #112506 11:38 AM, 01 Aug 2019
    create table X (A Int64, B String) Engine=MergeTree primary key A order by (A,B);
  • https://t.me/clickhouse_ru
    @Krashuevina #112507 11:39 AM, 01 Aug 2019
    спасибо! не знал про синтаксис primary key
  • @turnikonline #112508 11:50 AM, 01 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @den_crane #112509 11:53 AM, 01 Aug 2019
    это полезно для агрегатов(summing, aggregating), добавлять дименшины

    alter table X add column C String modify order by (A,B,C);

    и индекс полегче, а то у меня 30 полей в order by
  • https://t.me/clickhouse_ru
    @igor_dia #112510 11:55 AM, 01 Aug 2019
    А у КХ бывают проблемы, если вставлять очень много строк? миллиарды, в широкие таблицы.
  • https://t.me/clickhouse_ru
    нет, тут все по 40 млрд в день вставляют в таблицы из 500 полей
  • https://t.me/clickhouse_ru
    @den_crane #112512 11:56 AM, 01 Aug 2019
    это основной usecase
  • https://t.me/clickhouse_ru
    сори за оффтоп, но это не сарказм? реально 40 лярдов строк в таблицу из 500 полей?
  • https://t.me/clickhouse_ru
    @241186216 #112514 11:58 AM, 01 Aug 2019
    Order by tuple () ... Это как ? Сейчас увидел такую конструкцию при создании таблицы
  • https://t.me/clickhouse_ru
    А если он отдает Allocator: Cannot malloc 64.08 KiB., errno: 12, strerror: Cannot allocate memory?
  • https://t.me/clickhouse_ru
    нет не сарказм, зависит от железа, у меня тестовый сервер (64 ГБ озу, 1 cpu слабенький, 2 жестких в raid1) вставляет 1 млрд в сутки в таблицу из 500 полей
  • https://t.me/clickhouse_ru
    @igor_dia #112517 12:00 PM, 01 Aug 2019
    и дальше сегфолт
  • https://t.me/clickhouse_ru
    без сортировки.
  • https://t.me/clickhouse_ru
    Можно , но они все равно будут "связаны". Первичный ключ будет префиксом ключа сортировки
  • https://t.me/clickhouse_ru
    и? вы дали 0 информации, может быть что угодно. Я могу такую ошибку 20 способами устроить.
  • https://t.me/clickhouse_ru
    @icetfoer #112521 12:02 PM, 01 Aug 2019
    [2019-08-01 14:57:31] Code: 53, e.displayText() = DB::Exception: Type mismatch in IN or VALUES section. Expected: String. Got: UInt64 (version 19.5.2.6 (official build))

    Ребятки, а нет никакого способа сделать так что бы показало на какой позиции? У меня полей там тьма
  • https://t.me/clickhouse_ru
    @icetfoer #112522 12:02 PM, 01 Aug 2019
    руками больно очень искать
  • https://t.me/clickhouse_ru
    2019.08.01 11:56:18.851824 [ 190 ] {} <Error> BaseDaemon: ########################################
    2019.08.01 11:56:18.851888 [ 190 ] {} <Error> BaseDaemon: (version 19.10.1.5 (official build)) (from thread 143) Received signal Segmentation fault (11).
    2019.08.01 11:56:18.851905 [ 190 ] {} <Error> BaseDaemon: Address: 0xb588
    2019.08.01 11:56:18.851916 [ 190 ] {} <Error> BaseDaemon: Access: read.
    2019.08.01 11:56:18.851939 [ 190 ] {} <Error> BaseDaemon: Address not mapped to object.
    2019.08.01 11:56:18.918411 [ 190 ] {} <Error> BaseDaemon: 0. /usr/bin/clickhouse-server(DB::MergeTreeReaderStream::MergeTreeReaderStream(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11:
    :basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, std::vector<DB::MarkRange, std::allocator<DB::MarkRange> > const&, DB::MarkCache*, bool, DB::UncompressedCache*, unsigned long, unsigned long, unsig
    ned long, DB::MergeTreeData::IndexGranularityInfo const*, std::function<void (DB::ReadBufferFromFileBase::ProfileInfo)> const&, int)+0x22d) [0x6a2901d]
    2019.08.01 11:56:18.918442 [ 190 ] {} <Error> BaseDaemon: 1. /usr/bin/clickhouse-server() [0x6db4bef]
    2019.08.01 11:56:18.918459 [ 190 ] {} <Error> BaseDaemon: 2. /usr/bin/clickhouse-server(DB::MergeTreeReader::addStreams(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, DB::IDataType const&, std::fun
    ction<void (DB::ReadBufferFromFileBase::ProfileInfo)> const&, int)+0xa9) [0x6db4239]
    2019.08.01 11:56:18.918494 [ 190 ] {} <Error> BaseDaemon: 3. /usr/bin/clickhouse-server(DB::MergeTreeReader::MergeTreeReader(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<DB::Merge
    TreeDataPart const> const&, DB::NamesAndTypesList const&, DB::UncompressedCache*, DB::MarkCache*, bool, DB::MergeTreeData const&, std::vector<DB::MarkRange, std::allocator<DB::MarkRange> > const&, unsigned long, unsigned long, std::map<st
    d::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char,
    std::char_traits<char>, std::allocator<char> > const, double> > > const&, std::function<void (DB::ReadBufferFromFileBase::ProfileInfo)> const&, int)+0x319) [0x6db5e19]
    2019.08.01 11:56:18.918508 [ 190 ] {} <Error> BaseDaemon: 4. /usr/bin/clickhouse-server(DB::MergeTreeThreadSelectBlockInputStream::getNewTask()+0x7e3) [0x6a47893]
    2019.08.01 11:56:18.918522 [ 190 ] {} <Error> BaseDaemon: 5. /usr/bin/clickhouse-server(DB::MergeTreeBaseSelectBlockInputStream::readImpl()+0x43e) [0x6da3afe]
    2019.08.01 11:56:18.918533 [ 190 ] {} <Error> BaseDaemon: 6. /usr/bin/clickhouse-server(DB::IBlockInputStream::read()+0x188) [0x65c1b08]
    2019.08.01 11:56:18.918544 [ 190 ] {} <Error> BaseDaemon: 7. /usr/bin/clickhouse-server(DB::ExpressionBlockInputStream::readImpl()+0x2d) [0x6ba366d]
    2019.08.01 11:56:18.918555 [ 190 ] {} <Error> BaseDaemon: 8. /usr/bin/clickhouse-server(DB::IBlockInputStream::read()+0x188) [0x65c1b08]
    2019.08.01 11:56:18.918572 [ 190 ] {} <Error> BaseDaemon: 9. /usr/bin/clickhouse-server(DB::ParallelInputsProcessor<DB::UnionBlockInputStream::Handler>::thread(std::shared_ptr<DB::ThreadGroupStatus>, unsigned long)+0x304) [0x6721b14]
    2019.08.01 11:56:18.918591 [ 190 ] {} <Error> BaseDaemon: 10. /usr/bin/clickhouse-server(ThreadFromGlobalPool::ThreadFromGlobalPool<DB::ParallelInputsProcessor<DB::UnionBlockInputStream::Handler>::process()::{lambda()#1}>(DB::ParallelInpu
    tsProcessor<DB::UnionBlockInputStream::Handler>::process()::{lambda()#1}&&)::{lambda()#1}::operator()() const+0x6d) [0x67225bd]
    2019.08.01 11:56:18.918603 [ 190 ] {} <Error> BaseDaemon: 11. /usr/bin/clickhouse-server(ThreadPoolImpl<std::thread>::worker(std::_List_iterator<std::thread>)+0x1af) [0x72ec28f]
    2019.08.01 11:56:18.918614 [ 190 ] {} <Error> BaseDaemon: 12. /usr/bin/clickhouse-server() [0xb20db9f]
  • https://t.me/clickhouse_ru

    2019.08.01 11:56:18.918624 [ 190 ] {} <Error> BaseDaemon: 13. /lib/x86_64-linux-gnu/libpthread.so.0(+0x76db) [0x7f29802276db]
    2019.08.01 11:56:18.965231 [ 190 ] {} <Error> BaseDaemon: ########################################
    2019.08.01 11:56:18.965266 [ 190 ] {} <Error> BaseDaemon: (version 19.10.1.5 (official build)) (from thread 172) Received signal Segmentation fault (11).
    2019.08.01 11:56:18.965277 [ 190 ] {} <Error> BaseDaemon: Address: 0x19b98
    2019.08.01 11:56:18.965287 [ 190 ] {} <Error> BaseDaemon: Access: read.
    2019.08.01 11:56:18.965296 [ 190 ] {} <Error> BaseDaemon: Address not mapped to object.
    2019.08.01 11:56:19.020924 [ 190 ] {} <Error> BaseDaemon: 0. /usr/bin/clickhouse-server(DB::MergeTreeReaderStream::MergeTreeReaderStream(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11:
    :basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, std::vector<DB::MarkRange, std::allocator<DB::MarkRange> > const&, DB::MarkCache*, bool, DB::UncompressedCache*, unsigned long, unsigned long, unsig
    ned long, DB::MergeTreeData::IndexGranularityInfo const*, std::function<void (DB::ReadBufferFromFileBase::ProfileInfo)> const&, int)+0x22d) [0x6a2901d]
    2019.08.01 11:56:19.020952 [ 190 ] {} <Error> BaseDaemon: 1. /usr/bin/clickhouse-server() [0x6db4bef]
    2019.08.01 11:56:19.020968 [ 190 ] {} <Error> BaseDaemon: 2. /usr/bin/clickhouse-server(DB::MergeTreeReader::addStreams(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, DB::IDataType const&, std::fun
    ction<void (DB::ReadBufferFromFileBase::ProfileInfo)> const&, int)+0xa9) [0x6db4239]
    2019.08.01 11:56:19.020999 [ 190 ] {} <Error> BaseDaemon: 3. /usr/bin/clickhouse-server(DB::MergeTreeReader::MergeTreeReader(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<DB::Merge
    TreeDataPart const> const&, DB::NamesAndTypesList const&, DB::UncompressedCache*, DB::MarkCache*, bool, DB::MergeTreeData const&, std::vector<DB::MarkRange, std::allocator<DB::MarkRange> > const&, unsigned long, unsigned long, std::map<st
    d::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char,
    std::char_traits<char>, std::allocator<char> > const, double> > > const&, std::function<void (DB::ReadBufferFromFileBase::ProfileInfo)> const&, int)+0x319) [0x6db5e19]
    2019.08.01 11:56:19.021019 [ 190 ] {} <Error> BaseDaemon: 4. /usr/bin/clickhouse-server(DB::MergeTreeThreadSelectBlockInputStream::getNewTask()+0x7e3) [0x6a47893]
    2019.08.01 11:56:19.021031 [ 190 ] {} <Error> BaseDaemon: 5. /usr/bin/clickhouse-server(DB::MergeTreeBaseSelectBlockInputStream::readImpl()+0x43e) [0x6da3afe]
    2019.08.01 11:56:19.021042 [ 190 ] {} <Error> BaseDaemon: 6. /usr/bin/clickhouse-server(DB::IBlockInputStream::read()+0x188) [0x65c1b08]
    2019.08.01 11:56:19.021053 [ 190 ] {} <Error> BaseDaemon: 7. /usr/bin/clickhouse-server(DB::ExpressionBlockInputStream::readImpl()+0x2d) [0x6ba366d]
    2019.08.01 11:56:19.021064 [ 190 ] {} <Error> BaseDaemon: 8. /usr/bin/clickhouse-server(DB::IBlockInputStream::read()+0x188) [0x65c1b08]
    2019.08.01 11:56:19.021079 [ 190 ] {} <Error> BaseDaemon: 9. /usr/bin/clickhouse-server(DB::ParallelInputsProcessor<DB::UnionBlockInputStream::Handler>::thread(std::shared_ptr<DB::ThreadGroupStatus>, unsigned long)+0x304) [0x6721b14]
    2019.08.01 11:56:19.021098 [ 190 ] {} <Error> BaseDaemon: 10. /usr/bin/clickhouse-server(ThreadFromGlobalPool::ThreadFromGlobalPool<DB::ParallelInputsProcessor<DB::UnionBlockInputStream::Handler>::process()::{lambda()#1}>(DB::ParallelInpu
    tsProcessor<DB::UnionBlockInputStream::Handler>::process()::{lambda()#1}&&)::{lambda()#1}::operator()() const+0x6d) [0x67225bd]
    2019.08.01 11:56:19.021111 [ 190 ] {} <Error> BaseDaemon: 11. /usr/bin/clickhouse-server(ThreadPoolImpl<std::thread>::worker(std::_List_iterator<std::thread>)+0x1af) [0x72ec28f]
  • https://t.me/clickhouse_ru

    2019.08.01 11:56:19.021121 [ 190 ] {} <Error> BaseDaemon: 12. /usr/bin/clickhouse-server() [0xb20db9f]
    2019.08.01 11:56:19.021131 [ 190 ] {} <Error> BaseDaemon: 13. /lib/x86_64-linux-gnu/libpthread.so.0(+0x76db) [0x7f29802276db]
  • https://t.me/clickhouse_ru
    @igor_dia #112526 12:03 PM, 01 Aug 2019
    какую еще информацию надо?
  • https://t.me/clickhouse_ru
    @igor_dia #112527 12:05 PM, 01 Aug 2019
    КХ запускается в докере
  • https://t.me/clickhouse_ru
    аа, это похоже на баг который в adaptive granularity. Там надо выключить ее, но не помню как.
  • https://t.me/clickhouse_ru
    @igor_dia #112529 12:09 PM, 01 Aug 2019
    че-то гугл ничего об этом не знает
  • https://t.me/clickhouse_ru
    по умолчанию она включена или выключена?
  • @804547127 #112531 12:24 PM, 01 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @blinkovivan #112534 12:36 PM, 01 Aug 2019
    Долгожданный ClickHouse Meetup в Москве состоится 5 сентября, уже можно регистрироваться: https://yandex.ru/promo/clickhouse/moscow-2019

    Обратите внимание, что в программе большой слот выделен под доклады пользователей — не стесняйтесь в него записываться при заполнении формы.
    Link

    Приглашаем технических специалистов на митап по ClickHouse. Разработчики системы расскажут о новых функциях и планах, а пользователи — о собственном опыте.

  • https://t.me/clickhouse_ru
    None
  • @kashchenkop #112536 12:40 PM, 01 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @SaveliyT #112537 12:42 PM, 01 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @Brutalis64 #112538 12:42 PM, 01 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    кнопка в Chrome не перемещает к форме регистрации
  • https://t.me/clickhouse_ru
    +
  • https://t.me/clickhouse_ru
    @e_otrokov #112541 12:46 PM, 01 Aug 2019
    В сафари тоже самое
  • https://t.me/clickhouse_ru
    @Coderxlsn #112542 12:47 PM, 01 Aug 2019
    в ФФ тоже
  • https://t.me/clickhouse_ru
    спасибо, исправлено
  • @awaveman #112544 12:49 PM, 01 Aug 2019
    Поля мэйла и имени есть, а кнопки регистрации нет
  • https://t.me/clickhouse_ru
    по идее там большая форма, другие поля есть? в самом конце «Отправить»
  • https://t.me/clickhouse_ru
    что за телефон/браузер? и что происходит если пытаться скроллить между полями формы?
  • https://t.me/clickhouse_ru
    счас кстати при селектах отваливается. говорит, что не находит файлы
  • https://t.me/clickhouse_ru
    вы тикет создайте в гитхабе, с примерами ошибок, со структурой таблицы, с запросами на которых падает, с логами что делал (from thread 172)
  • @SWx5YQ #112551 01:10 PM, 01 Aug 2019
    ребят, есть у кого готовый docker-compose с кафкой и кликхаусом?
  • @SWx5YQ #112552 01:11 PM, 01 Aug 2019
    нашел https://github.com/apoyan/kafka-clickhouse-docker, но он не заводится
    GitHub - apoyan/kafka-clickhouse-docker

    Contribute to apoyan/kafka-clickhouse-docker development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @606215749 #112553 01:19 PM, 01 Aug 2019
    Привет всем,
    подскажите, может ли КХ работать с zone offset
    например select toDate(now(), '-12:00'); ?

    или можно как то получить зону по оффсету?

    конечная цель прибавить оффсет к времени/дате
  • https://t.me/clickhouse_ru
    @n333rdy #112554 01:23 PM, 01 Aug 2019
    Joined.
  • @460254773 #112555 01:28 PM, 01 Aug 2019
    всем привет!
    планируем добавить еще сервер под третий шард и реплику шарда соответственно
    как грамотно сделать ?
    мы планируем так
    1. добавляем новый сервер и его реплику в блок описания структуры кластера remote_servers на всех существующих хостах
    2. создаем таблицы replicated на новом хосте с той же структурой соответственно
    3. перешардируем данные
    что скажете?
  • https://t.me/clickhouse_ru
    select toDate(now() - interval 12 hour)
  • @simpl1g #112557 01:33 PM, 01 Aug 2019
    Всем привет, подскажите, обновили на 19.11.4 и встал импорт из кафки

    в ошибках ничего нет, в обычном логе такое ощущение что он читает не комитает в кафку

    https://gist.github.com/simpl1g/aaaad69fc46bff961402a1a5d2e3c35c
    clickhouse-kafka

    clickhouse-kafka. GitHub Gist: instantly share code, notes, and snippets.

  • https://t.me/clickhouse_ru
    >3. перешардируем данные
    что???
    1 и 2 я бы поменял местами
  • https://t.me/clickhouse_ru
    Что за баг? Есть issue?
  • https://t.me/clickhouse_ru
    Fix secondary indices write with adaptive granularity by alesapin · Pull Request #6126 · yandex/ClickHouse

    I hereby agree to the terms of the CLA available at: https://yandex.ru/legal/cla/?lang=en For changelog. Remove if this is non-significant change. Category (leave one): Bug Fix Short description ...

  • https://t.me/clickhouse_ru
    @Alesapin #112564 01:37 PM, 01 Aug 2019
    нет, это другой
  • https://t.me/clickhouse_ru
    Сможете сделать issue?
  • https://t.me/clickhouse_ru
    хотелось бы ISO 8601 : '+12:00', 'Z' ...
  • https://t.me/clickhouse_ru
    @606215749 #112567 01:38 PM, 01 Aug 2019
    select addSeconds(now(), -25200); так тоже как бы работает, но не оч красиво
  • про перешардирование читал тут
    https://clickhouse-docs.readthedocs.io/en/latest/table_engines/resharding.html
  • https://t.me/clickhouse_ru
    вы там не читайте. Это лажа(устрело и выпилено 2 года назад). Читайте официальную доку. Нет никакого решардинга.
  • https://t.me/clickhouse_ru
    Надо бы этот сайт выпилить вообще. Меня тоже вначале путал...
  • хм.. спасибо что вовремя остновили))
  • https://t.me/clickhouse_ru
    недавно я эту тему поднимал поищите тут по "решардинг"
  • спасибо, сейчас поищу
  • https://t.me/clickhouse_ru
    @icetfoer #112574 02:08 PM, 01 Aug 2019
    Ребят, а есть тип данных datatime with nanoseconds? Или что то похожее
  • https://t.me/clickhouse_ru
    nanoseconds внутри секунды можно хранить сбоку числом
  • https://t.me/clickhouse_ru
    @igor_dia #112576 02:12 PM, 01 Aug 2019
    В документации говорится про методы ATTACH PARTITION|PART и DETACH PARTITION. DETACH PART не существует?
  • @simpl1g #112577 02:16 PM, 01 Aug 2019
    это нормально что кликхаус комитает в кафку offset меньше чем до этого комитил?

    2019.08.01 14:08:43.274182 [ 42 ] {} <Trace> StorageKafka (dashboard_stats_queue): Committed offset 39178653051 (topic: dashboard_stats, partition: 12)
    2019.08.01 14:08:52.051062 [ 49 ] {} <Trace> StorageKafka (dashboard_stats_queue): Committed offset 39178646027 (topic: dashboard_stats, partition: 12)
  • Вряд ли это нормально. А научите как?
  • обновили на свежий 19.11.4.24 c 19.11.3.11, должен был быть патч для https://github.com/yandex/ClickHouse/issues/5846

    Больше ничего не трогали
    Kafka consumer stops - cppkafka::HandleException Local: Timed out · Issue #5846 · yandex/ClickHouse

    Describe the bug ClickHouse Kafka consumer stops consuming from Kafka, and restarts after some time (from 0 up to 2 hours)... Restart of ClickHouse docker container helps imediately. Problem starte...

  • @simpl1g #112580 02:24 PM, 01 Aug 2019
    данные в базу пишутся, но при этом лаг в кафке растёт и потребление сообщений в графане теперь бывает отрицательным
  • https://t.me/clickhouse_ru
    @dbalashov #112582 02:25 PM, 01 Aug 2019
    норм норм,а вот там провал в 14:15 это чо
  • кликхаус как-то теперь по 5 минут что-то делает, потом тупит
  • https://t.me/clickhouse_ru
    @dbalashov #112584 02:27 PM, 01 Aug 2019
    а диск как себя в это время ведёт
  • @simpl1g #112585 02:27 PM, 01 Aug 2019
    потребление на порядки медленнее стало
  • https://t.me/clickhouse_ru
    @dbalashov #112586 02:27 PM, 01 Aug 2019
    он не флушит кэш случайно не ?
  • https://t.me/clickhouse_ru
    @dbalashov #112587 02:27 PM, 01 Aug 2019
    каойнить sync не срабатывает ?
  • @simpl1g #112588 02:27 PM, 01 Aug 2019
    раньше в 100 раз быстрее легко читал
  • https://t.me/clickhouse_ru
    @dbalashov #112589 02:27 PM, 01 Aug 2019
    очень уж регулярно
  • https://t.me/clickhouse_ru
    @dbalashov #112590 02:28 PM, 01 Aug 2019
    я бы пошарился в syslog и других логах, что там случается в это время
  • @simpl1g #112592 02:29 PM, 01 Aug 2019
    видно как обновили
  • @mfilimonov #112593 02:30 PM, 01 Aug 2019
    Н-да. Я в ближайшие дни буду смотреть на то как можно улучшить тесты для кафки. Если есть предложения/пожелания какие сценарии должны быть проверены и покрыты тестами в первую/вторую и т.д. очередь - напишите мне в прив, пожалуйста. Потому что пока с тестами кафки у нас всё плохо и поэтому все эти проблемы и постоянные регрессии.
  • https://t.me/clickhouse_ru
    @dbalashov #112594 02:30 PM, 01 Aug 2019
    если присмотреца - там тоже есть провалы cpu user time, не настоьлко заметные но есть
  • https://t.me/clickhouse_ru
    @dbalashov #112595 02:30 PM, 01 Aug 2019
    и тоже регулярные
  • https://t.me/clickhouse_ru
    @dbalashov #112596 02:30 PM, 01 Aug 2019
    а есть статистика по диску ?
  • https://t.me/clickhouse_ru
    @dbalashov #112597 02:30 PM, 01 Aug 2019
    и свопу
  • на серваках 210 GB свободной оперативы, свопа нет
  • поищу, но так сходу нет
  • @simpl1g #112601 02:36 PM, 01 Aug 2019
    трафик сетевой сильно вырос
  • https://t.me/clickhouse_ru
    Попробуйте ещё 19.11. Версия 19.10 у нас получилась не очень, там нет многих фиксов.
  • https://t.me/clickhouse_ru
    @igor_dia #112603 02:39 PM, 01 Aug 2019
    кликхаусы подерутся, если на одном серваке их запустить в 2 экземплярах разных версий, направив на одну и ту же директорию с данными? при этом второй КХ с новой версией использовать только для селектов.
  • https://t.me/clickhouse_ru
    А оно ваще такой режим поддерживает?
  • https://t.me/clickhouse_ru
    @heavycharged #112605 02:43 PM, 01 Aug 2019
    Для чего в таблицах делают следующие столбцы:
    timestamp UInt32,
    date Date,
    hour UInt8,
    Допустим, hour ещё можно понять, а для чего Date и Timestamp одновременно? Это какая-то денормализация?
  • https://t.me/clickhouse_ru
    @dbalashov #112606 02:44 PM, 01 Aug 2019
    Так date это дата а таймстамп это с точностью до мс
  • https://t.me/clickhouse_ru
    @dbalashov #112607 02:44 PM, 01 Aug 2019
    А то и точнее
  • https://t.me/clickhouse_ru
    @dbalashov #112608 02:45 PM, 01 Aug 2019
    Может как pk его используют
  • https://t.me/clickhouse_ru
    @Krashuevina #112609 02:45 PM, 01 Aug 2019
    По date может быть партицирование, а timestamp - в pkey
  • https://t.me/clickhouse_ru
    В принципе никто не мешает делать дату из таймштампа и по ней партиционировать
  • https://t.me/clickhouse_ru
    @heavycharged #112611 02:46 PM, 01 Aug 2019
    Где можно прочитать про правильный дизайн таблиц в КХ? Пришел в проект, тут юзают КХ, но допустим в ORDER BY засунули все столбцы (кроме timestamp).
  • https://t.me/clickhouse_ru
    @heavycharged #112612 02:46 PM, 01 Aug 2019
    create table shows
    (
    amount UInt32,
    adv_uid UInt32,
    web_uid UInt32,
    subacc UInt32,
    source UInt32,
    category UInt8,
    type UInt8,
    country UInt16,
    timestamp UInt32,
    date Date,
    hour UInt8,
    ptype UInt8
    )
    engine = MergeTree() ORDER BY (adv_uid, web_uid, subacc, source, category, type, ptype, country, date,
    hour) SETTINGS index_granularity = 8192;

    вот полная DDL
  • https://t.me/clickhouse_ru
    @heavycharged #112613 02:46 PM, 01 Aug 2019
    Есть подозрения, что не нужен тут такой ORDER BY.
  • https://t.me/clickhouse_ru
    @Krashuevina #112614 02:46 PM, 01 Aug 2019
    Беги оттуда :)
  • https://t.me/clickhouse_ru
    @heavycharged #112615 02:47 PM, 01 Aug 2019
    тут как и в других СУБД, чем больше столбцов в индексе, тем жирнее этот индекс? И именно то что в ORDER BY описано, это то, по чему будут строиться выборки?
  • https://t.me/clickhouse_ru
    @heavycharged #112616 02:47 PM, 01 Aug 2019
    ну я так понимаю, партиционировать можно по дате, нужно чтобы не было много значений.
  • https://t.me/clickhouse_ru
    Индекс можно сделать меньше. Но в твоем случае да, он равен тому что в ордер бай т.к. primary key не указан
  • https://t.me/clickhouse_ru
    @heavycharged #112618 02:48 PM, 01 Aug 2019
    по партициям ясно, типо оптимизатор может сходить в нужные партиции, если допустим данные нужны за три последних дня.
  • https://t.me/clickhouse_ru
    @heavycharged #112619 02:49 PM, 01 Aug 2019
    а индекс как правильно подобрать, не совсем понимаю.
  • https://t.me/clickhouse_ru
    @wonderrodina #112620 02:49 PM, 01 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @blind_oracle #112621 02:49 PM, 01 Aug 2019
    От запросов зависит, как в любой субд
  • https://t.me/clickhouse_ru
    @blind_oracle #112622 02:49 PM, 01 Aug 2019
    Ну и читать доки, смотреть канал КХ на ютубе там много полезного
  • https://t.me/clickhouse_ru
    @dbalashov #112623 02:50 PM, 01 Aug 2019
    ездить на митапы в Лимасол
  • @simpl1g #112625 02:51 PM, 01 Aug 2019
    откатили на 19.11.3
  • Я сейчас не готов давать какие-то практические/операционные советы про кафку. Скажу лишь - что эту проблему нужно обязательно записать в виде ишью.
  • https://t.me/clickhouse_ru
    @renatkalimullin #112627 02:58 PM, 01 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @heavycharged #112628 03:13 PM, 01 Aug 2019
    Ещё такой вопрос, у нас должна быть табличка показов, мы хотим в неё писать показы, примерный рейт на вставку - 20-30 млн. в час, но нам не нужна сверхточность по секундам, нам достаточно точности "Дата ЧЧ:ММ". Хотелось бы как-то так: я лью в Кафку события показов, КХ все собирает и пишет в табличку, в итоге табличка группирует это значение, и я могу сделать запрос на псевдокоде: покажи кол-во показов у рекламодателя 123 за последний час. Он просуммирует все показы, выбрав строки с кол-вом показов поминутно для конкретного рекламодателя. Вопрос, как это организовать в таблицах: хранить все показы, и взять SummingMergeTree как аггрегацию? В доке как раз так и советуют. При рейте в 20-30 млн. в час слишком много строк получится.
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #112628 #112629 03:39 PM, 01 Aug 2019
    Если планируете аналитику то историческую таблицу все равно придется хранить. А витрины можно сделать например через mat view чтобы они на лету аггрегировали данные и уже из них поставать запросами "покажи кол-во показов у рекламодателя 123 за последний час."
  • @sesho96 #112630 04:17 PM, 01 Aug 2019
    Joined.
  • @sesho96 #112631 04:51 PM, 01 Aug 2019
    Всем привет! Кто-нибудь сталкивался с проблемой подключения mssql по odbc? Проблема заключается в добавлении кавычек при формировании запроса и в итоге запрос пытается достучаться до таблицы "schema"."tablename"
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #112632 04:54 PM, 01 Aug 2019
    а подскажите как посмотреть кол-во партов которые сейчас мержаться?
  • В таблице system.merges есть эта информация
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #112634 05:03 PM, 01 Aug 2019
    Спасибо
  • https://t.me/clickhouse_ru
    Эм. Двойные кавычки вообще-то стандартны для SQL. Может у вас регистр получается не тот?
  • @sesho96 #112636 05:10 PM, 01 Aug 2019
    Да не, вроде верный. Имена столбцов, схемы и таблицы идентичны именам в базе. При запросе ругается на некорректный синтаксис при схеме. Запрос пытается послать следующий: SELECT "col1", "col2", "col3" FROM "dbo"."tablename"
  • https://t.me/clickhouse_ru
    Ну и если в верхнем регистре такой запрос выполнить что будет? Версия кх какая?
  • @sesho96 #112638 05:19 PM, 01 Aug 2019
    Версия 19.11.4, в верхнем регистре выдаёт ту же ошибку: [FreeTDS][SQL Server]Incorrect syntax near 'DBO'.
  • @sesho96 #112639 05:21 PM, 01 Aug 2019
    Через isql этот же запрос без кавычек успешно выполняется
  • https://t.me/clickhouse_ru
    При чем тут без кавычек. Проблема не в кавычках.
  • https://t.me/clickhouse_ru
    @ora00001 #112641 05:22 PM, 01 Aug 2019
    Попробуте в квадратные скобки
  • https://t.me/clickhouse_ru
    @ora00001 #112642 05:23 PM, 01 Aug 2019
    [DBO].[tablename]
  • https://t.me/clickhouse_ru
    @ora00001 #112643 05:24 PM, 01 Aug 2019
    Вс кавычки замените.
  • @sesho96 #112644 05:24 PM, 01 Aug 2019
    Requested SQL statement: SELECT "Code", "Name", "ContractRef" FROM "[dbo]"."[Goods]";
    Native SQL statement: SELECT "Code", "Name", "ContractRef" FROM "[dbo]"."[Goods]";
    : Connection:Not applicable
    Server:MOW1SRVVSQL11\SQL2016
    ===========================
    ODBC Diagnostic record #1:
    ===========================
    SQLSTATE = 42000
    Native Error Code = 102
    [FreeTDS][SQL Server]Incorrect syntax near '[dbo]'.

    (version 19.11.4.24 (official build)).

    0 rows in set. Elapsed: 0.002 sec.
  • Кавычки я не выставляю, они появляются при запросе. В конфигурации словаря их нет
  • https://t.me/clickhouse_ru
    Ну понятно что они добавляются. Это специально сделано. Вы понимаете что SQL объекты без двойных кавычек приводит либо в нижний либо в верхний регистр?
    Как у вас в словаре написано Code ?
  • Имена колонок в таблице совпадают по написанию с именами в словаре
  • https://t.me/clickhouse_ru
    У вас в таблице тоже Code? С большой буквы?
  • Да
  • https://t.me/clickhouse_ru
    @ora00001 #112652 05:32 PM, 01 Aug 2019
    Закройте коде в квалратные скобки [ code]
  • Не помогло
  • https://t.me/clickhouse_ru
    [ ] тоже в словаре? Уберите?
  • Их не было
  • https://t.me/clickhouse_ru
    @ora00001 #112656 05:40 PM, 01 Aug 2019
    Кавычки двойные лишнии для ms sql.
  • https://t.me/clickhouse_ru
    Не всегда. Вообще проблема же в odbc драйвере
  • https://t.me/clickhouse_ru
    @ora00001 #112658 05:42 PM, 01 Aug 2019
    SET QUOTED_IDENTIFIER is ON,
  • https://t.me/clickhouse_ru
    @ora00001 #112659 05:42 PM, 01 Aug 2019
    Если они нужны.
  • https://t.me/clickhouse_ru
    @ora00001 #112660 05:42 PM, 01 Aug 2019
    Для сессии в мс скл.
  • https://t.me/clickhouse_ru
    @ora00001 #112661 05:47 PM, 01 Aug 2019
    [freetds] Config or environment setting for toggling quoted identifiers setting
    https://lists.ibiblio.org/pipermail/freetds/2003q2/012991.html
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #112662 06:04 PM, 01 Aug 2019
    а подскажите оптимальный кусок на вставку в кликхаус это сколько? ~100k строк?
  • https://t.me/clickhouse_ru
    Раз в секунду
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #112664 06:05 PM, 01 Aug 2019
    а если у меня трафика 1-2млн строк, мне раз в секунду по 1млн строк пихать?
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #112665 06:05 PM, 01 Aug 2019
    он их по 30-40 секунд прожевывает)
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #112666 06:06 PM, 01 Aug 2019
    он у меня 100к прожевывает за 10-20 секунд
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #112667 06:06 PM, 01 Aug 2019
    так то, может у меня кликхаус не здоровый 🤔
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #112668 06:07 PM, 01 Aug 2019
    о! code: 252, message: Too many parts (304). Merges are processing significantly slower than inserts а вот откуда он взял 304? видимо слишком дробные пачки :(
  • @Shazo_Rus #112669 06:12 PM, 01 Aug 2019
    или возможно не успевает мерджить?
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #112670 06:15 PM, 01 Aug 2019
    Ога
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #112668 #112671 06:28 PM, 01 Aug 2019
    Что за железо под CH? Что с дисками? Партиционирование как настроено?
  • Спасибо, но к сожалению попытка добавления set QUOTED_IDENTIFIER OFF во freetds.conf не увенчалась успехом
  • https://t.me/clickhouse_ru
    @ora00001 #112673 06:43 PM, 01 Aug 2019
    Нужно сделать on, по умолчанию off
  • https://t.me/clickhouse_ru
    @ora00001 #112674 06:44 PM, 01 Aug 2019
    И не использовать квадратные скобки при этом.
  • @MSKholmogorova #112675 06:56 PM, 01 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    партиционирование по дня, диск жестки 10тб. хосты вот такие (s2.large (12 vCPU, 48 ГБ) по мониторам диски не загружены (меньше половины).
  • @MSKholmogorova #112677 06:59 PM, 01 Aug 2019
    Привет! У меня ClickHouse ругается на такую строчку arrayStringConcat(splitByString(OriginalManufacturer, ' '), ' ') as Manufacturer
    Ругается так
    Illegal column String of first argument of function splitByString. Must be constant string. (version 19.11.3.11 (official build))
    Можете подсказать, как строчку сделать константной или как правильно этими функциями пользоваться? Почему в документации не сказано, что первый аргумент должен быть константной строкой?
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #112678 06:59 PM, 01 Aug 2019
    а вот select sum(num_parts) from system.merges; так я смогу этот mergeq измерить?
  • https://t.me/clickhouse_ru
    Что-то у вас точно нездоровое. Миллион в секунду он вставлять должен без особых проблем даже на среднем железе.
  • Да, извиняюсь, очепятка. Не помогло
  • https://t.me/clickhouse_ru
    поменяйте местами аргументы функции splitByString
  • https://t.me/clickhouse_ru
    ну строки примерно по 1кб
  • https://t.me/clickhouse_ru
    Все равно он не должен инсерь в 100к обрабатывать так долго. Вы явно в него пихаете слишком часто.
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #112684 07:09 PM, 01 Aug 2019
    Возможно.
  • https://t.me/clickhouse_ru
    Пробуйте в ssms, я только завтра обкатаю, но вот freetds под рукой нет.
  • Хорошо, сейчас попробую
  • https://t.me/clickhouse_ru
    1кб * 1млн. = 1 ГБ, это записать надо, это 10-20 hdd
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #112688 07:24 PM, 01 Aug 2019
    да, это 10 шардов
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #112689 07:25 PM, 01 Aug 2019
    я хочу выжать из одного шарда стабильные 100мбс
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #112690 07:25 PM, 01 Aug 2019
    пока получается плохо :(
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #112691 07:26 PM, 01 Aug 2019
    у меня пока что стабильные 60-70, с пиками до 100 :(
  • https://t.me/clickhouse_ru
    1кб это вообще дофига широкие строки.
    60-70 сколько дисков и какой там рейд?
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #112693 07:48 PM, 01 Aug 2019
    там 20 колонок, 2 довольно жирные (текстовые логи). Рейд честно хз, это облачный инстанс. Кластер из 2х машинок.
  • Через ssms работает даже без SET QUOTED_IDENTIFIER ON
  • https://t.me/clickhouse_ru
    т.е. 10 шардов на 2х машинках с хз какими дисками. Тут как бы ждать высокой скорости записи не стоит.
    я бы пробовал отключить direct_io ( min_merge_bytes_to_use_direct_io = 0 ) чтобы меньше читать и разгрузить диски от чтения.
  • https://t.me/clickhouse_ru
    не, сейчас у меня 1н шард на 2х машинках. Хочу нащупать его дно. Диски там такие себе, постараюсь утром найти что за они. А как понять что кх в диски упирается?
  • https://t.me/clickhouse_ru
    @den_crane #112697 08:36 PM, 01 Aug 2019
    sar -d 1 100
    там столбики
    await svctm %util

    если util = 100% и svctm >200 (ms) то диски загружены совсем вполную
  • @milovidov_an #112700 09:55 PM, 01 Aug 2019
    У нас появились официальные rpm пакеты. Информация прямо на сайте: https://clickhouse.yandex/ Устанавливаются на любую rpm систему: CentOS (начиная с CentOS 5), RHEL, GosLinux и другие.
    ClickHouse DBMS

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

  • https://t.me/clickhouse_ru
    @orloffv #112701 10:14 PM, 01 Aug 2019
    подскажите пожалуйста, а нормально ли делать семплирование по колонке timestamp?
    нужно ли делать от нее hash?
  • https://t.me/clickhouse_ru
    @orantius #112702 10:15 PM, 01 Aug 2019
    а какой у нее тип
  • https://t.me/clickhouse_ru
    ORDER BY (project, message_id, timestamp) SAMPLE BY timestamp
    вот так
    timestamp UInt32,
  • https://t.me/clickhouse_ru
    @orantius #112704 10:17 PM, 01 Aug 2019
    если ее значения равномерно заполняют диапазон uint32, то нормально
  • https://t.me/clickhouse_ru
    @orloffv #112705 10:17 PM, 01 Aug 2019
    во всех запросах есть фильтр по project, почти во всех по message_id
    и достаточно фильтраций по timestamp
  • https://t.me/clickhouse_ru
    очевидно что не равномерно) это же настоящий timestamp
    текущее значение - 1564697896
  • https://t.me/clickhouse_ru
    @orloffv #112707 10:19 PM, 01 Aug 2019
    а нужно что бы от 0 до 4294967295 было?
  • https://t.me/clickhouse_ru
    @orantius #112708 10:20 PM, 01 Aug 2019
    да, иначе у вас sample 0.1 будет не по 0.1 данных
  • https://t.me/clickhouse_ru
    а можешь чуть подробнее рассказать как это работает?

    он разбивает uint32 на 10
    и отдает значения от 0 до 429496729?
  • https://t.me/clickhouse_ru
    @orloffv #112710 10:22 PM, 01 Aug 2019
    в документации написано, что в метрике -
    Если используется выражение для сэмплирования, то первичный ключ должен содержать его. Пример: SAMPLE BY intHash32(UserID) ORDER BY (CounterID, EventDate, intHash32(UserID)).
  • https://t.me/clickhouse_ru
    @orantius #112711 10:22 PM, 01 Aug 2019
    и читает строки попадающие в этот диапазон
  • https://t.me/clickhouse_ru
    да, intHash32 подходит
    спасибо!
  • 02 August 2019 (147 messages)
  • @VVPopovici #112715 08:56 AM, 02 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @EKbfh ↶ Reply to #112700 #112716 09:05 AM, 02 Aug 2019
    Ура.
  • @SergeyGaranin #112717 09:12 AM, 02 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @artilligence #112718 09:13 AM, 02 Aug 2019
    Коллеги, добрый день! Подскажите, пожалуйста, движок summingMergeTree удаляет дубликаты записей или суммриует их?
  • https://t.me/clickhouse_ru
    суммирует
  • https://t.me/clickhouse_ru
    @artilligence #112720 09:18 AM, 02 Aug 2019
    спасибо
  • https://t.me/clickhouse_ru
    @artilligence #112721 09:34 AM, 02 Aug 2019
    Почему ругается на создание view?

    в исходной таблице колонка cur_clean_state - LowCardinality(String). Таргет таблица - summingMergeTree
    CREATE MATERIALIZED VIEW db.to_entity_state_sum_by_hour TO db.entity_state_sum_by_hour
    AS
    SELECT entity_id,
    loc_campus_id,
    loc_building_id,
    loc_ward_id,
    loc_floor_id,
    loc_room_id,
    toStartOfHour(timestamp) as start_of_hour,
    toUInt64(cur_clean_state = 'clean') as clean,
    toUInt64(cur_clean_state = 'occupied') as occupied,
    toUInt64(cur_clean_state = 'dirty') as dirty,
    toUInt64(cur_clean_state = 'occupied-infected') as occupied_infected,
    toUInt64(cur_clean_state = 'dirty-infected') as dirty_infected
    from db.locatable_entity_states
    where timestamp = cur_clean_timestamp;

    Creating columns of type LowCardinality(UInt64) is prohibited by default due to expected negative impact on performance. It can be enabled with the "allow_suspicious_low_cardinality_types" setting..
  • https://t.me/clickhouse_ru
    @blind_oracle #112722 09:36 AM, 02 Aug 2019
    LowCardinality(UInt64) ? Зачем?
  • @Shazo_Rus #112723 09:36 AM, 02 Aug 2019
    If this setting is turned off (default), don't allow to create a table with LowCardinality of integers, enums, Nullable integers, etc... (all types that have fixed size in memory and the size is 8 or less). Always allow to attach table.

    https://github.com/yandex/ClickHouse/issues/4965
    Add `allow_suspicious_low_cardinality_types` setting. · Issue #4965 · yandex/ClickHouse

    If this setting is turned off (default), don't allow to create a table with LowCardinality of integers, enums, Nullable integers, etc... (all types that have fixed size in memory and the si...

  • https://t.me/clickhouse_ru
    я не знаю, зачем он такой тип делает. Возможно, это какая- то специфика конверсии LowCardinality(String) в Uint64
  • https://t.me/clickhouse_ru
    @artilligence #112725 09:39 AM, 02 Aug 2019
    Таргет таблица выглядит так. Тут нет упоминаний о LowCardinality
    create table db.entity_state_sum_by_hour on cluster default
    (
    entity_id UUID,
    loc_campus_id UUID,
    loc_building_id UUID,
    loc_ward_id UUID,
    loc_floor_id UUID,
    loc_room_id UUID,
    start_of_hour DateTime,
    dirty UInt64,
    clean UInt64,
    occupied UInt64,
    occupied_infected UInt64,
    dirty_infected UInt64
    ) ENGINE = ReplicatedSummingMergeTree('/clickhouse/tables/{shard}/db/entity_state_sum_by_hour',
    '{replica}') PARTITION BY toYYYYMM(start_of_hour) ORDER BY (
    loc_campus_id,
    start_of_hour,
    entity_id,
    loc_ward_id,
    loc_building_id,
    loc_room_id,
    loc_floor_id
    );
  • https://t.me/clickhouse_ru
    Скорее всего баг. КХ свежий?
  • https://t.me/clickhouse_ru
    @artilligence #112727 09:44 AM, 02 Aug 2019
    да, сейчас напишу версию
  • https://t.me/clickhouse_ru
    @den_crane #112728 09:45 AM, 02 Aug 2019
    toUInt64(toString(cur_clean_state) = 'clean')
  • https://t.me/clickhouse_ru
    @artilligence #112729 09:45 AM, 02 Aug 2019
    19.9.3.31
  • https://t.me/clickhouse_ru
    сейчас попробую, спасибо
  • https://t.me/clickhouse_ru
    Это как-то контринтуитивно, даже если сработает.
    В SQL мы считаем что столбец - стринг, а как он хранится словарем или нет нам должно быть пофиг.
  • https://t.me/clickhouse_ru
    не помогло, такая же ошибка
  • https://t.me/clickhouse_ru
    я просто угадываю, так как у пациента дедушка партизан, то тут мало что можно сделать.
  • https://t.me/clickhouse_ru
    т.е. вообще не про это поле
  • https://t.me/clickhouse_ru
    @artilligence #112735 09:49 AM, 02 Aug 2019
    Исходная таблица
    CREATE TABLE db.locatable_entity_states on cluster default
    (
    timestamp DateTime,
    location_online_status LowCardinality(String),
    cur_patient_state LowCardinality(String),
    cur_patient_timestamp DateTime,
    prev_patient_state LowCardinality(String),
    prev_patient_timestamp DateTime,
    loc_room_id UUID,
    loc_ward_id UUID,
    loc_floor_id UUID,
    loc_building_id UUID,
    loc_campus_id UUID,
    loc_campus_org_code LowCardinality(String),
    loc_timestamp DateTime,
    site_id UUID,
    site_type LowCardinality(String),
    entity_id UUID,
    entity_org_code LowCardinality(String),
    entity_type LowCardinality(String),
    entity_sub_type LowCardinality(String),
    entity_name String,
    cur_clean_state LowCardinality(String),
    cur_clean_timestamp DateTime,
    prev_clean_state LowCardinality(String),
    prev_clean_timestamp DateTime,
    cur_broken_state LowCardinality(String),
    cur_broken_timestamp DateTime,
    prev_broken_state LowCardinality(String),
    prev_broken_timestamp DateTime
    ) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/db/locatable_entity_states', '{replica}') PRIMARY KEY (loc_campus_id, timestamp, entity_id)
    ORDER BY (loc_campus_id, timestamp, entity_id, loc_ward_id, loc_building_id, loc_room_id, loc_floor_id)
    PARTITION BY toYYYYMM(timestamp)
    SETTINGS index_granularity = 8192;
  • https://t.me/clickhouse_ru
    ошибка легко репродьюсится:
    create table test (a LowCardinality(String)) engine=MergeTree() Order by a;
    create table test2 (a UInt64) engine=MergeTree() Order by a;
    create materialized view test_mv to test2 as select toUInt64(a = 'foo') from test;

    Code: 455. DB::Exception: Received from localhost:9000, ::1. DB::Exception: Creating columns of type LowCardinality(UInt64) is prohibited by default due to expected negative impact on performance. It can be enabled with the "allow_suspicious_low_cardinality_types" setting..
  • https://t.me/clickhouse_ru
    Зарепортите иссуе на гитхаб
  • https://t.me/clickhouse_ru
    @artilligence #112738 09:54 AM, 02 Aug 2019
    ок
  • https://t.me/clickhouse_ru
    @blind_oracle #112739 09:55 AM, 02 Aug 2019
    можно взять мои три запроса выше как пример без лишних столбцов
  • https://t.me/clickhouse_ru
    @blind_oracle #112740 09:56 AM, 02 Aug 2019
    Причина в общем понятна:

    SELECT toTypeName(a = 'foo')
    FROM test

    ┌─toTypeName(equals(a, 'foo'))─┐
    │ LowCardinality(UInt8) │
    └──────────────────────────────┘
    Оно возвращает вместо обычного UInt8 лоукард-версию
  • https://t.me/clickhouse_ru
    @artilligence #112741 09:56 AM, 02 Aug 2019
    я попытался сконвертить в обычный int8, но это не помогло
  • https://t.me/clickhouse_ru
    @den_crane #112742 10:03 AM, 02 Aug 2019
    cast помогает
    desc (select (cast (a as String) == 'foo') from test)
  • https://t.me/clickhouse_ru
    @den_crane #112743 10:03 AM, 02 Aug 2019
    но забавано да
  • https://t.me/clickhouse_ru
    @den_crane #112744 10:03 AM, 02 Aug 2019
    зарепортите
  • https://t.me/clickhouse_ru
    уже
  • https://t.me/clickhouse_ru
    спасибо
  • https://t.me/clickhouse_ru
    @MrAnatoly #112747 10:57 AM, 02 Aug 2019
    Привет! Кто в последнее время использовал Kafka engine, можете дать фидбек, плиз?
    Все ли с ним ок, на что обратить внимание?
  • на данный момент всё печально, 19.11.3 19.11.4 сломаны
  • https://t.me/clickhouse_ru
    @newink ↶ Reply to #112748 #112749 11:04 AM, 02 Aug 2019
    а чуть подробнее можно?
  • https://t.me/clickhouse_ru
    @newink #112750 11:04 AM, 02 Aug 2019
    ссылки на ишшу
  • https://t.me/clickhouse_ru
    @newink #112751 11:04 AM, 02 Aug 2019
    может есть
  • @simpl1g #112752 11:06 AM, 02 Aug 2019
    https://github.com/yandex/ClickHouse/issues/5846

    19.9 19.11.3 - топики рандомно отваливаются по таймауту, надо пересоздавать постоянно по несколько раз на день
    Kafka consumer stops - cppkafka::HandleException Local: Timed out · Issue #5846 · yandex/ClickHouse

    Describe the bug ClickHouse Kafka consumer stops consuming from Kafka, and restarts after some time (from 0 up to 2 hours)... Restart of ClickHouse docker container helps imediately. Problem starte...

  • @simpl1g #112753 11:08 AM, 02 Aug 2019
    19.11.4 вчера только релизнули, после обновления данные продолжили писаться, но при этом в кафку офсет не правильный комитался, по итогу у нас за вчера данных в разы больше теперь
  • https://t.me/clickhouse_ru
    да, упираюсь в полку :(
  • https://t.me/clickhouse_ru
    @MrAnatoly #112755 11:12 AM, 02 Aug 2019
    @simpl1g спасибо за фидбек
    А как проблемы решаете? Не планируете написать отдельный перекладчик ? И если нет, то почему ?
  • https://t.me/clickhouse_ru
    @den_crane #112756 11:14 AM, 02 Aug 2019
    их на гитхабе десяток https://github.com/search?q=kafka+clickhouse
    Link

    GitHub is where people build software. More than 36 million people use GitHub to discover, fork, and contribute to over 100 million projects.

  • @simpl1g #112757 11:14 AM, 02 Aug 2019
    скорее всего придётся писать свои костыли, потому что до этого стоял 19.4 и 19.8, и там тож были проблемы с кафкой
  • https://t.me/clickhouse_ru
    А есть какие-то стабильные и проверенные ?
  • https://t.me/clickhouse_ru
    Понял, спасибо
  • @simpl1g #112760 11:16 AM, 02 Aug 2019
    Data get lost on heavy load via KafkaEngine · Issue #4736 · yandex/ClickHouse

    We have created Yandex tank scenario in order to test the database on heavy load. We use KafkaEngine to populate the database. The problem is that the database starts loosing data at 100rps. How to...

  • https://t.me/clickhouse_ru
    @MrAnatoly #112761 11:17 AM, 02 Aug 2019
  • https://t.me/clickhouse_ru
    @MrAnatoly #112762 11:17 AM, 02 Aug 2019
    Видимо, надо писать свой коннектор
  • https://t.me/clickhouse_ru
    @visavi #112763 11:19 AM, 02 Aug 2019
    Добрый день, подскажите пожалуйста, есть 2 поля date и hour (int) можно ли преобразовать их и получить datetime?
  • https://t.me/clickhouse_ru
    GitHub - housepower/clickhouse_sinker: Easily load data from kafka to ClickHouse

    Easily load data from kafka to ClickHouse. Contribute to housepower/clickhouse_sinker development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    select toDateTime(today()) + interval 6 hour

    select toDateTime(today()) + 6*60
  • https://t.me/clickhouse_ru
    @visavi ↶ Reply to #112765 #112766 11:24 AM, 02 Aug 2019
    👍
  • https://t.me/clickhouse_ru
    Вы им пользуетесь в проде ?
  • https://t.me/clickhouse_ru
    нет не пользуюсь,
    там нету kafka exactly once delivery.
  • https://t.me/clickhouse_ru
    @MrAnatoly #112769 11:29 AM, 02 Aug 2019
    Ок, спасибо
  • https://t.me/clickhouse_ru
    @artem1406 #112770 11:51 AM, 02 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @artem1406 #112771 11:53 AM, 02 Aug 2019
    Подскажите пжалуйста: как поменять параметр connect_timeout (по умолчанию стоит 10). Если просто прописать в <yandex> - не применяется даже после рестарта
  • https://t.me/clickhouse_ru
    это пользовательская настройка, ставится в users.xml внутри пользователя.
    но на самом деле, ставить ее надо на клиенте, в вашем клиенте. Я например ставлю в JDBC.
    например в клиенте кх clickhouse-client --connect_timeout=100 или в /etc/clickhouse-client/config.xml
  • https://t.me/clickhouse_ru
    @nivelium #112773 12:06 PM, 02 Aug 2019
    Clickhouse умеет делать merge join?
  • https://t.me/clickhouse_ru
    @gudimenko #112774 12:09 PM, 02 Aug 2019
    Подскажите, пожалуйста, почему:
    select crc32('dfgd')
    >message: Code: 46, e.displayText() = DB::Exception: Unknown function CRC32

    указана в доке тут - https://clickhouse.yandex/docs/en/query_language/functions/string_functions/
  • https://t.me/clickhouse_ru
    КХ обновите
  • https://t.me/clickhouse_ru
    @blind_oracle #112776 12:11 PM, 02 Aug 2019
    в 19.11 есть, в 19.9 нет
  • https://t.me/clickhouse_ru
    @heavycharged #112777 12:13 PM, 02 Aug 2019
    Binary representation of hashes (FixedString(16) for MD5

    подскажите, как теперь вставить туда значение?

    CAST('c5c2c7c3a9070915510e8829ad5c2cc0', 'FixedString(16)') и toFixedString('c5c2c7c3a9070915510e8829ad5c2cc0', 16) выдают одну и ту же ошибку: DB::Exception: String too long for type FixedString(16): (at row 1) (version 19.11.3.11 (official build))
  • https://t.me/clickhouse_ru
    Выбирайте всегда в углу слева в доке версию КХ, а не мастер
  • https://t.me/clickhouse_ru
    нет, запланирован на 20? год.
  • https://t.me/clickhouse_ru
    Тут под знаком вопроса что-то скрывается?
  • https://t.me/clickhouse_ru
    @nivelium #112781 12:21 PM, 02 Aug 2019
    Я правильно понимаю, что он всегда делает hash join, даже, если делать join по полям, на основе которых данные отсортированы?
  • https://t.me/clickhouse_ru
    неуверенность(в смысле я не очень в курсе, и многие такие планы сдвигались и сдвигались), раньше был в плане 2019Q4
  • https://t.me/clickhouse_ru
    да
  • https://t.me/clickhouse_ru
    @cassej #112784 12:22 PM, 02 Aug 2019
    скажите, а есть какой-то вариант использовать FINAL, но не сворачивать данные, чтобы все варианты так и оставались?
  • https://t.me/clickhouse_ru
    Спасибо
  • https://t.me/clickhouse_ru
    а зачем тогда final ?
  • https://t.me/clickhouse_ru
    @cassej #112787 12:25 PM, 02 Aug 2019
    чтобы получить последнее изменение, но не потерять историю этих изменений
  • https://t.me/clickhouse_ru
    нет.
    Можно вручную две таблицы сделать, final и history (и заполнять ее из MV)
  • 🙈 Ха-ха. :) Спасибо!
  • https://t.me/clickhouse_ru
    @catless #112790 12:44 PM, 02 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @anywayhowisyourslife #112791 01:13 PM, 02 Aug 2019
    если у меня есть query_id. Я могу проследить ┌──read_rows─┬─total_rows_approx─┐

    и примерно знать когда запрос отработает.
    А можно ли зная query_id войти в полоску прогресса? которая бывает, когда делаешь запрос с клиента
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #112792 01:30 PM, 02 Aug 2019
    в логах заметил Delaying inserting block by 3.0200 ms. because there are 173 parts на каждый инсерт. А кто знает по какому правилу он тротлит так?
  • @efreeman #112793 01:34 PM, 02 Aug 2019
    снова вопросы по odbc. вот такой запрос:
    SELECT
    sdr.date,
    toTypeName(sdr.date)
    FROM odbc('DSN=psql', 'site_adstxt') AS s
    INNER JOIN supply_debug_reporting_aggregate AS sdr ON (sdr.detected_domain = s.domain) AND (s.compliant = '0')
    LIMIT 1
    отдает:
    ┌────────────────date─┬─toTypeName(date)─┐
    │ 2019-07-30 15:00:00 │ DateTime │
    └─────────────────────┴──────────────────┘

    но когда я пытаюсь добавить date в where - получаю ошибку.

    SELECT
    sdr.date,
    toTypeName(sdr.date)
    FROM odbc('DSN=psql', 'site_adstxt') AS s
    INNER JOIN supply_debug_reporting_aggregate AS sdr ON (sdr.detected_domain = s.domain) AND (s.compliant = '0')
    WHERE sdr.date = '2019-07-30 15:00:00'
    LIMIT 1

    `===========================
    ODBC Diagnostic record #1:
    ===========================
    SQLSTATE = 42703
    Native Error Code = 1
    ERROR: column "date" does not exist;
    No query has been executed with that handle
    `
  • https://t.me/clickhouse_ru
    @blind_oracle #112794 01:35 PM, 02 Aug 2019
    ClickHouse/ClickHouse

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

  • @efreeman #112795 01:35 PM, 02 Aug 2019
    пробовал также варианты:
    WHERE sdr.date = toDateTime('2019-07-30 15:00:00')
    WHERE date = '2019-07-30 15:00:00'
    WHERE date = toDateTime('2019-07-30 15:00:00')
  • @291948808 #112796 01:37 PM, 02 Aug 2019
    а неназывать поля системными именами пробовал?
  • https://t.me/clickhouse_ru
    <merge_tree>
    <parts_to_throw_insert>600</parts_to_throw_insert>
    <parts_to_delay_insert>150</parts_to_delay_insert>
    <max_delay_to_insert>5</max_delay_to_insert>
    </merge_tree>
  • можно как-то заэкранировать?
  • https://t.me/clickhouse_ru
    SELECT
    sdr.date,
    toTypeName(sdr.date) FROM (
    SELECT
    sdr.date,
    toTypeName(sdr.date)
    FROM odbc('DSN=psql', 'site_adstxt') AS s
    INNER JOIN supply_debug_reporting_aggregate AS sdr ON (sdr.detected_domain = s.domain) AND (s.compliant = '0'))
    WHERE sdr.date = '2019-07-30 15:00:00'
    LIMIT 1
  • Да, такие типы LowCardinality появляются автоматически при вычислении выражений. Но хранить их в таблице не имеет смысла. Получается неудобно создавать CREATE TABLE AS... сейчас решим, как можно улучшить.
  • https://t.me/clickhouse_ru
    ога, спасибо. А не подскажешь - 4.3652 ms это 4мс или 4 секунды? Если 4мс то какой то не серьезный слип.
  • https://t.me/clickhouse_ru
    А лучше на правую таблицу вообще надо делать подзапрос

    SELECT
    sdr.date,
    toTypeName(sdr.date)
    FROM odbc('DSN=psql', 'site_adstxt') AS s
    INNER JOIN (select detected_domain from supply_debug_reporting_aggregate WHERE sdr.date = '2019-07-30 15:00:00')
    AS sdr ON (sdr.detected_domain = s.domain) AND (s.compliant = '0'))
    LIMIT 1
  • 4 ms.
  • Не серьёзный, потому что кусков пока ещё не слишком много. Так доходит до одной секунды, а потом просто кидает исключение на INSERT.
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #112805 01:45 PM, 02 Aug 2019
    спасибо. как то не много 🤔 но ведь исключение бросит на 300
  • https://t.me/clickhouse_ru
    @241186216 #112806 01:46 PM, 02 Aug 2019
    Подскажите. В ReplicatedReplacingMergeTree какие параметры ? Не могу в доке найти
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #112807 01:47 PM, 02 Aug 2019
    получается такой delay можно трактовать как почти номральную работу, возможно стоит замедлить заливку, но не сильно.
  • https://t.me/clickhouse_ru
    @241186216 #112808 01:47 PM, 02 Aug 2019
    После пути в зоокипера. Там ещё 2 параметра ! Зачем 2
  • https://t.me/clickhouse_ru
    ver — столбец с версией, тип UInt*, Date или DateTime. Необязательный параметр.

    Последнюю в выборке, если ver не задан.
    С максимальной версией, если ver задан.
  • https://t.me/clickhouse_ru
    @241186216 #112810 01:54 PM, 02 Aug 2019
    Спасибо большое
  • спасибо! то что нужно
  • @efreeman #112812 01:57 PM, 02 Aug 2019
    @den_crane можно какие-то keyworks погуглить, почему это лучше?
  • Всегда стоит разобраться - почему куски почти не успевают мержиться...
  • https://t.me/clickhouse_ru
    потому что КХ пока не умеет оптимизировать фильтры на правую таблицу: помещает правую таблицу в память (избыточно жрет память), потом делает join, потом фильтрует.
  • https://t.me/clickhouse_ru
    я вставляю в несколько потоков довольно крупные куски, грешу на то что слишком часто (в полете всегда 7-12 инсертов). При этом диск загружен в полку или почти в полку. Хотя интересно что очередь мержей не растет а держится в стабильных границах 170-180 партов.
  • @milovidov_an #112816 02:01 PM, 02 Aug 2019
    > При этом диск загружен в полку или почти в полку.

    Значит всё ожидаемо :)

    > очередь мержей не растет а держится в стабильных границах 170-180 партов.

    Как раз из-за того, что throttle работает. Хотя несколько мс. выглядят странно.
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #112817 02:02 PM, 02 Aug 2019
    я увидел тротл в 4.23424мс и подумал что это 4 секунды, это бы обьяснило все. Инсерты отрабатывают как то долго (часто по 10-20 секунд) и я думал что тротлинг это как раз причина этого.
  • Ещё особенность - это throttle на каждую затронутую партицию.
  • @milovidov_an #112819 02:04 PM, 02 Aug 2019
    Если INSERT разбивается по партициям, будет много таких sleep.
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #112820 02:04 PM, 02 Aug 2019
    хм, ну партиция у меня дневная (и в рамках инсерта строго одна), так что это не стреляет тут ок.
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #112821 02:04 PM, 02 Aug 2019
    а вот снаружи getMaxPartsCountForPartition можно определить каким то запросом?
  • https://t.me/clickhouse_ru
    @den_crane #112822 02:05 PM, 02 Aug 2019
    select value from system.asynchronous_metrics where metric = 'MaxPartCountForPartition'
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #112823 02:05 PM, 02 Aug 2019
    я сейчас мониторю вот эту циферку select sum(num_parts) from system.merges; но она не сходится с тем что в логе написано (там в границах 150 елементов)
  • https://t.me/clickhouse_ru
    о, спасибо.
  • https://t.me/clickhouse_ru
    ну так оно должно сходится c

    select max(cnt) m from
    (
    select database, table, partition, count() cnt from system.parts
    where active
    group by database, table, partition
    )
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #112826 02:09 PM, 02 Aug 2019
    а имеет ли смысл если у меня репликейт таблица направлять вставку в ту реплику у которой эта циферка поменьше?
  • Смысл есть, но я бы не делал такие сложности. Ведь если реплики сильно отличаются при равномерной нагрузке на них, значит что-то не так. Если заведомо знаем, что какая-то реплика на плохом железе, тогда можно.
  • https://t.me/clickhouse_ru
    циферка будет одинаковая практически всегда, если сервера одинаковые, то либо random либо round robin
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #112829 02:11 PM, 02 Aug 2019
    🤔 блин у меня облако и пёс его знает когда реплика болеет.
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #112830 02:11 PM, 02 Aug 2019
    сейчас оно как то так
  • https://t.me/clickhouse_ru
    железо совсем разное? или они в разных датацентрах и один дальше от зукипера?
  • https://t.me/clickhouse_ru
    разные дц. зукипер тоже в кросс дц. та реплика что выше она сильно дальше дц
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #112833 02:14 PM, 02 Aug 2019
    хм
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #112834 02:15 PM, 02 Aug 2019
    это в целом и логично тогда
  • https://t.me/clickhouse_ru
    вру, наоборот) сильно ближе :D моя теория рассыпалась
  • https://t.me/clickhouse_ru
    зукипер насколько кросс дц? Сколько пинг?

    я вставляю в том дц который ближе к зк, а на том что дальше ставлю
    <merge_tree>
    <replicated_can_become_leader>0</replicated_can_become_leader>
    </merge_tree>
  • https://t.me/clickhouse_ru
    15ms vs 9ms
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #112838 02:19 PM, 02 Aug 2019
    вроде не сильно плохо.
  • https://t.me/clickhouse_ru
    ну это близко, проблема не в этом.
    я бы график iowait посмотрел
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #112840 02:24 PM, 02 Aug 2019
    » iowait
    он вроде плотный но не в потолок.
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #112841 02:24 PM, 02 Aug 2019
    ладно, продолжу копать. спасибо, стало сильно понятнее чего происходит.
  • https://t.me/clickhouse_ru
    @Sablast #112842 05:47 PM, 02 Aug 2019
    можно ли как то ускорить выполнение запросов с модификатором FINAL из ReplacingMergeTree ? например явно указать партиции которые смотреть для схлопывания?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #112842 #112844 06:01 PM, 02 Aug 2019
    Можно указать партицию.

    https://clickhouse.yandex/docs/ru/query_language/misc/#misc_operations-optimize
  • https://t.me/clickhouse_ru
    не, нужно не в OPTIMIZE TABLE а при SELECT ... FROM replacing_table FINAL
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #112845 #112846 06:03 PM, 02 Aug 2019
    А если у вас where попадает в партицию, он все равно фуллсканит?
  • https://t.me/clickhouse_ru
    пока проверяю на таблице с 2 партициями за июль и август, если указываю WHERE по ключу партицирования за август то все равно идет фулскан
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #112847 #112848 06:04 PM, 02 Aug 2019
    Если убрать final то идет четко по партиции?
  • https://t.me/clickhouse_ru
    неа, тоже похоже на фулскан по количеству обработанных строк
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #112849 #112850 06:06 PM, 02 Aug 2019
    В логе он пишет сколько партов прочитал.
  • https://t.me/clickhouse_ru
    @rheinx #112851 06:06 PM, 02 Aug 2019
    Партиционировние каким выражением делается?
  • https://t.me/clickhouse_ru
    toYYYYMM(datetime)
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #112852 #112853 06:07 PM, 02 Aug 2019
    А в селекте как указываете?
  • https://t.me/clickhouse_ru
    toDate(datetime)=today()
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #112854 #112855 06:10 PM, 02 Aug 2019
    Что то для теста попробуйте добавить and toYYYYMM(datetime) == toYYYYMM(today())
  • https://t.me/clickhouse_ru
    тот же результат, к сожалению лог сервера сейчас не могу посмотреть на предмет используемых партов
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #112856 #112857 06:23 PM, 02 Aug 2019
    SET send_logs_level = 'trace'
  • https://t.me/clickhouse_ru
    @rheinx #112858 06:23 PM, 02 Aug 2019
    А потом запрос
  • https://t.me/clickhouse_ru
    @122870188 #112859 06:37 PM, 02 Aug 2019
    подскажите, можно как-то остановить мердж партов?
  • @grommoya #112860 07:29 PM, 02 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    System stop merges;
  • https://t.me/clickhouse_ru
    Запустить потом соотв.:
    System start merges;
  • 03 August 2019 (11 messages)
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #112863 08:24 AM, 03 Aug 2019
    о, оставил на ночь стало похуже (Delaying inserting block by 436.5158 ms. because there are 281 parts) а точно достаточно такого тротлинга? просто на вид кликхаусу лучше не становится, мб имеет смысл его как то поагрессивнее делать?
  • @SWx5YQ #112864 10:06 AM, 03 Aug 2019
    Ребят, а кто как сетапит Kafka engine?
    Я не нашел в описании ALTER TABLE возможности изменения настроек движка.
    Получается, единственный вариант на случай, если например изменились IP серверов кафки, это удалить таблицу и создать заново с другими параметрами?
  • https://t.me/clickhouse_ru
    Лучше dns для Кафки использовать, а не ip напрямую
  • @SWx5YQ ↶ Reply to #112865 #112866 02:14 PM, 03 Aug 2019
    А кликаус нормально с dns работает? У меня в докере в тестовом окружении криво работал
  • https://t.me/clickhouse_ru
    @606215749 #112867 02:16 PM, 03 Aug 2019
    Нужно прокинуть dns конфиг в докер. Сейчас не подскажу как, не компа под рукой.
    Но это не проблема CH
  • https://t.me/clickhouse_ru
    Подозреваю, что можно создать ещё одну таблицу, которая будет переливать данные, а старые хлопнуть когда из старых топиков/хостов больше не ожидаются данные.
  • https://t.me/clickhouse_ru
    @606215749 #112869 02:17 PM, 03 Aug 2019
    И по опыту кх в докер контейнер лучше на локальном хосте запускать, что то типо —net = host
  • https://t.me/clickhouse_ru
    По другому не получилось заставить нормально работать ddl on cluster запросы
  • https://t.me/clickhouse_ru
    @606215749 #112871 02:19 PM, 03 Aug 2019
    Но может что то мы не так делали
  • https://t.me/clickhouse_ru
    В этом нет ничего страшного, сделайте детач мат вью которая смотрит на engine kafka и смело убивайте
  • @oleg_kozlyuk #112873 05:07 PM, 03 Aug 2019
    Joined.
  • 04 August 2019 (28 messages)
  • @ramun25 #112874 03:34 AM, 04 Aug 2019
    Всем привет. Есть табличка, в котором поля а, б и время. Нужно посчитать промежутки интервалов, как для а, так и б. Считаю через Running_difference и предварительную сортировку. Ожидаемо, что запрос по полю, которое стоит первым в ключе сортировки таблицы работает приемлемое время (десятки секунд), а запрос по полю, которое второе в ключе, нет (десятки минут) . Вопрос, у меня только вариант держать две одинаковые таблицы с разными ключами сортировки (что равносильно дублировать записи в одну таблицу и писать разные поля в разные партиции) ? Или есть волшебство, которое не знаю?
  • @Prokh #112875 03:43 AM, 04 Aug 2019
    Индекс можно добавить по второму полю, но это не сильно ускорит процесс, вместо 10 минут будет 5. По крайней мере у меня так было
  • Изначально ключ сортировки в таблице строился по двум полям: Order by a, b. Или можно ещё один индекс создать?
  • @Prokh #112877 04:00 AM, 04 Aug 2019
    Да в документации есть про это
  • Там вроде можно добавить первичный ключ, но который является префиксом для ключа сортировки. Т. Е. Ключ сортировки а, б, с, д. Можно добавить первичный ключ а, б. Если я прав, то мне не пойдёт (нужен ключ б, а). Если не прав, конкретный пример приведи - у себя проверю.
  • @Prokh ↶ Reply to #112878 #112879 08:17 AM, 04 Aug 2019
    Там можно сделать и просто minmax(b) или set(b)
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @nnnazgul #112881 11:57 AM, 04 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @nnnazgul #112882 12:01 PM, 04 Aug 2019
    Подскажите, пожалуйста, по бэкапированию данных? Перечитал документацию, можно делать FREEZE без указания PARTITION. Сохраняются директории с именами вида “all_цифры_цифры_цифры“. Но при попытке присоединения (ATTACH) сохранённых данных, указание PARTITION|PART обязательно. Но совершенно неясно, что там указывать. 🤷‍♂️
  • https://t.me/clickhouse_ru
    цифры))
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @orloffv #112885 12:05 PM, 04 Aug 2019
    в поиске много полезного находится
  • https://t.me/clickhouse_ru
    Это в том случае, если они есть в system.parts. Но у меня там partition = tuple(), а partition_id=all
  • https://t.me/clickhouse_ru
    Ок, попробую PART с именем
  • https://t.me/clickhouse_ru
    No columns in part „part_name“ 🤷‍♂️
  • @kbakulin #112892 12:56 PM, 04 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @nnnazgul #112893 12:59 PM, 04 Aug 2019
    Так, извиняюсь, вся проблема в том, что не туда данные складывал. Разобрался, всё работает 👍 Всем спасибо
  • https://t.me/clickhouse_ru
    alter table attach partition tuple();
  • https://t.me/clickhouse_ru
    @343206394 #112895 01:07 PM, 04 Aug 2019
    Выходной не самое лучшее время для спама но все же.
    Может кто-нибудь зарегиться и поставить КХ мониторинг?
    Нужен фидбек небольшой что нелогично или непонятно в инструкции.
    https://apps.sematext.com/ui/login
  • @suoenrorre #112896 06:55 PM, 04 Aug 2019
    Подскажите, если два столбца складываются в группирующем запросе в массив через groupArray, то ведь соответствие сложенных строк в этих массивах гарантируется?

    Например, если такую таблицу GROUP BY a:
    a | b | c
    0 | 1 | 1
    0 | 2 | 2

    То на выходе, groupArray(b), groupArray(c) будет:
    [1, 2] и [1, 2]
    или
    [2, 1] и [2, 1]

    Но точно не:
    [1, 2] и [2, 1]
    или
    [2, 1] и [1, 2]

    Верно?
  • https://t.me/clickhouse_ru
    а если у тебя будет
    ```
    a | b | c
    0 | 1 | 1
    0 | 1 | 2
    0 | 2 | 2
    ```
    То на выходе, groupArray(b), groupArray(c) будет:
    [1, 2] и [1, 2]

    и порядок уже не важен
  • https://t.me/clickhouse_ru
    Насколько я знаю, если делать groupArray(), то порядок сохранится, но если делать groupUniqArray(), то порядок уже точно не сохранится
  • Нет, в этом случае на выходе будет по 3 элемента в каждом массиве. Но вопрос про порядок - гарантируется или нет.
  • @suoenrorre #112900 07:41 PM, 04 Aug 2019
    Мои эксперименты показывают, что порядок сохраняется, но это может быть случайностью, а не гарантией.
  • https://t.me/clickhouse_ru
    @414125887 #112901 08:36 PM, 04 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    гарантируется 1,2 1,2
    т.е.

    select groupArray(x)
    (select * from X order by g,t)
    group by g

    гарантируется что в массиве элементы будут в порядке t
  • Отлично, спасибо 👍
  • https://t.me/clickhouse_ru
    @den_crane #112904 09:32 PM, 04 Aug 2019
    в доке написано

    некоторых случаях, вы всё же можете рассчитывать на порядок выполнения запроса. Это — случаи, когда SELECT идёт из подзапроса, в котором используется ORDER BY.

    https://clickhouse.yandex/docs/ru/query_language/agg_functions/reference/#grouparray-x-grouparray-max-size-x

    т.е. ORDER BY нужен, смысл в том что без ORDER BY потоки которые кормят groupArray могут туда доставлять вперемешку из-за параллеьности
  • 05 August 2019 (111 messages)
  • @Sazhenin #112905 05:28 AM, 05 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @stent0r #112908 07:37 AM, 05 Aug 2019
    Доброе утро, коллеги.
    Есть задача сделать бэкап базы кликхауса, пара десятков таблиц, по десятку партиций на таблицу. Делаю по этой инструкции: https://ruhighload.com/%D0%91%D0%B5%D0%BA%D0%B0%D0%BF+%D0%B8+%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5+%D0%B2+clickhouse
    Фриз прошёл нормально, данные в shadow появились. Решил проверки ради восстановить - и тут возникли проблемы.
    В инструкции написано скопировать данные в директорию /var/lib/clickhouse/data/[БД]/[таблица]/detached/.
    Непонятно, что именно копировать, если в shared 321 директория с названиями в виде цифр, в которых куски разных таблиц, непонятно, что именно копировать.
    Подскажите, пожалуйста, как оно восстановить или пните в сторону другого мана по бэкапу/восстановлению.
    Бекап и восстановление в Clickhouse

    Как сделать бекап и восстановить данные в Clickhouse

  • Копиповать файлы бекапа из папки с именем таблицы. Аттачить потаблично, по одной партиции. Все должно работать, после аттача из папки detached файлы исчезнут
  • https://t.me/clickhouse_ru
    То есть по всем трёхста с лишним директориям искать нужные директории с данными?
    Может, есть какой-то более другой способ бэкапа, чтобы данные для восстановления хранились в более адекватном виде?
  • Можно написать скрипт для автоматизации. Или использовать готовый clickhouse-backup. Либо репликация через Clickhouse-Copier
  • https://t.me/clickhouse_ru
    clickhouse-backup у меня, к сожалению, не взлетел.
    root@ch01 ~/clickhouse-backup # ./clickhouse-backup -c ./config.yml create
    2019/08/05 08:13:11 Create backup '2019-08-05T08-13-11'
    2019/08/05 08:13:12 can't get Clickhouse tables with: code: 47, message: Unknown identifier: metadata_path
    root@ch01 ~/clickhouse-backup # grep metadata_path ./config.yml
    metadata_path: "/var/lib/clickhouse/metadata/"
    root@ch01 ~/clickhouse-backup #

    Про Clickhouse-Copier сейчас почитаю.
  • @shevchenko_denis #112913 08:14 AM, 05 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @stent0r #112914 08:16 AM, 05 Aug 2019
    Нет, copier это всё-таки не то, что нужно. Мне нужен дамп базы, который потом развернуть можно
  • https://t.me/clickhouse_ru
    @stent0r #112915 08:19 AM, 05 Aug 2019
    Возможно, с clickhouse-backup проблема в том, что версия сервера у меня старая.
    root@ch01 ~/clickhouse-backup # dpkg -l | grep clickhouse-server
    ii clickhouse-server-base 1.1.54236 amd64 Server binary for clickhouse
    ii clickhouse-server-common 1.1.54236 amd64 clickhouse-server-common
    root@ch01 ~/clickhouse-backup #
  • https://t.me/clickhouse_ru
    @stent0r #112916 08:40 AM, 05 Aug 2019
    Попробовал старые версии clickhouse-backup, вплоть до 0.3.2 включительно, все выдают ошибку 2019/08/05 08:39:03 can't get Clickhouse tables with: code: 47, message: Unknown identifier: metadata_path
  • https://t.me/clickhouse_ru
    @111093495 #112917 08:55 AM, 05 Aug 2019
    Всем привет, столкнулся с такой же проблемой:
    https://github.com/yandex/ClickHouse/issues/5846

    2019.08.05 08:51:51.173153 [ 3 ] {} <Error> void DB::StorageKafka::streamThread(): std::exception. Code: 1001, type: cppkafka::HandleException, e.what() = Local: Timed out, version = 19.11.3.11 (official build)
    2019.08.05 08:51:58.175637 [ 6 ] {} <Error> void DB::StorageKafka::streamThread(): std::exception. Code: 1001, type: cppkafka::HandleException, e.what() = Local: Timed out, version = 19.11.3.11 (official build)
    2019.08.05 08:52:05.177770 [ 4 ] {} <Error> void DB::StorageKafka::streamThread(): std::exception. Code: 1001, type: cppkafka::HandleException, e.what() = Local: Timed out, version = 19.11.3.11 (official build)
    2019.08.05 08:52:12.180081 [ 8 ] {} <Error> void DB::StorageKafka::streamThread(): std::exception. Code: 1001, type: cppkafka::HandleException, e.what() = Local: Timed out, version = 19.11.3.11 (official build)
    2019.08.05 08:52:19.182092 [ 31 ] {} <Error> void DB::StorageKafka::streamThread(): std::exception. Code: 1001, type: cppkafka::HandleException, e.what() = Local: Timed out, version = 19.11.3.11 (official build)
    2019.08.05 08:52:26.184083 [ 30 ] {} <Error> void DB::StorageKafka::streamThread(): std::exception. Code: 1001, type: cppkafka::HandleException, e.what() = Local: Timed out, version = 19.11.3.11 (official build)
    2019.08.05 08:52:33.186477 [ 5 ] {} <Error> void DB::StorageKafka::streamThread(): std::exception. Code: 1001, type: cppkafka::HandleException, e.what() = Local: Timed out, version = 19.11.3.11 (official build)
    2019.08.05 08:52:40.188840 [ 28 ] {} <Error> void DB::StorageKafka::streamThread(): std::exception. Code: 1001, type: cppkafka::HandleException, e.what() = Local: Timed out, version = 19.11.3.11 (official build)

    подскажите кто как решал? только откат на более старую версию? если да, то какую?
    Kafka consumer stops - cppkafka::HandleException Local: Timed out · Issue #5846 · yandex/ClickHouse

    Describe the bug ClickHouse Kafka consumer stops consuming from Kafka, and restarts after some time (from 0 up to 2 hours)... Restart of ClickHouse docker container helps imediately. Problem starte...

  • https://t.me/clickhouse_ru
    @gdd011 ↶ Reply to #112917 #112918 08:57 AM, 05 Aug 2019
    На 19.8
  • https://t.me/clickhouse_ru
    @111093495 #112919 08:58 AM, 05 Aug 2019
    буду пробовать, спасиба
  • https://t.me/clickhouse_ru
    @rheinx #112920 09:18 AM, 05 Aug 2019
    Всем привет.
    Подскажите кто сталкивался.
    Есть таблица с эвентами, и таблица timestamp'ов.
    Нужно найти первый эвент после каждого из timestamp'ов.

    Тут бы вроде банальный JOIN подошел, но CH пока не умеет джойнить по "больше/меньше".
    ASOF подходит больше всего, но работает в обратную сторону, только по меньше или равно.
  • https://t.me/clickhouse_ru
    А если таблицы в джойне местами поменять?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #112921 #112922 09:22 AM, 05 Aug 2019
    получится не совсем то. Получится что к разным эвентам поджойнится один timestamp.
  • https://t.me/clickhouse_ru
    @rheinx #112923 09:23 AM, 05 Aug 2019
    У меня отчет что-то вроде "время первого входа/заказа после старта рекламной кампании".
    Т.е. есть даты стартов и есть эвенты.
  • @SWx5YQ #112924 09:24 AM, 05 Aug 2019
    Насколько я знаю, кликхаус не будет скачивать данные с других реплик, если разница в данных очень большая.
    Будут ли выполняться селекты в реплицируемую таблицу на этом сервере? Может ли получится так, что запрос вернет старые данные, потому что он выполнится на таком сервере?
  • https://t.me/clickhouse_ru
    Идея сделать ASOF JOIN по больше или равно очевдна и относительно легко реализуема. Заведите issue - чтоб стало видно, что кому-то надо :)
  • https://t.me/clickhouse_ru
    @chertus #112926 09:39 AM, 05 Aug 2019
    туда же можно сделать по точному больше и меньше, но непонятно насколько это может быть востребовано
  • Добрый день,
    Получилось что текущий_номер_блока = 11, максимальный_номер_блока = 199
    Подскажите, как удалить эти партиции? Может переименовать во что-то другое?
  • https://t.me/clickhouse_ru
    @alexey_yuferov #112928 09:54 AM, 05 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @egorpopov94 #112931 10:15 AM, 05 Aug 2019
    Добрый день, при попытке записи в таблицу из tsv-файла в какой-то момент ложится весь кластер. В error-логах ошибка такого вида: BaseDaemon: ########################################
    2019.08.05 12:58:28.711085 [ 801 ] {} <Error> BaseDaemon: (version 19.9.2.4) (from thread 520) Received signal Segmentation fault (11).
    2019.08.05 12:58:28.711122 [ 801 ] {} <Error> BaseDaemon: Address: NULL pointer.
    2019.08.05 12:58:28.711158 [ 801 ] {} <Error> BaseDaemon: Access: read.
    2019.08.05 12:58:28.711188 [ 801 ] {} <Error> BaseDaemon: Unknown si_code.
    2019.08.05 12:58:28.747198 [ 801 ] {} <Error> BaseDaemon: 0. clickhouse-server(DB::ColumnNullable::checkConsistency() const+0x15) [0x5b89ee5]
    2019.08.05 12:58:28.747258 [ 801 ] {} <Error> BaseDaemon: 1. clickhouse-server(DB::DataTypeNullable::serializeBinaryBulkWithMultipleStreams(DB::IColumn const&, unsigned long, unsigned long, DB::IDataType::SerializeBinaryBulkSettings&, std::shared_ptr<DB::IDataType::SerializeBinaryBulkState>&) const+0x2c) [0x59a9cec]
    2019.08.05 12:58:28.747295 [ 801 ] {} <Error> BaseDaemon: 2. clickhouse-server(DB::IMergedBlockOutputStream::writeSingleGranule(std::string const&, DB::IDataType const&, DB::IColumn const&, std::set<std::string, std::less<std::string>, std::allocator<std::string> >&, bool, std::shared_ptr<DB::IDataType::SerializeBinaryBulkState>&, DB::IDataType::SerializeBinaryBulkSettings&, unsigned long, unsigned long, bool)+0x58) [0x5d48b58]
    2019.08.05 12:58:28.747328 [ 801 ] {} <Error> BaseDaemon: 3. clickhouse-server(DB::IMergedBlockOutputStream::writeColumn(std::string const&, DB::IDataType const&, DB::IColumn const&, std::set<std::string, std::less<std::string>, std::allocator<std::string> >&, bool, std::shared_ptr<DB::IDataType::SerializeBinaryBulkState>&, unsigned long)+0x180) [0x5d490e0]
    2019.08.05 12:58:28.747357 [ 801 ] {} <Error> BaseDaemon: 4. clickhouse-server(DB::MergedBlockOutputStream::writeImpl(DB::Block const&, DB::PODArray<unsigned long, 4096ul, AllocatorWithHint<false, AllocatorHints::DefaultHint, 67108864ul>, 15ul, 16ul> const*)+0x12bb) [0x5d4aaab]
    2019.08.05 12:58:28.747410 [ 801 ] {} <Error> BaseDaemon: 5. clickhouse-server(DB::MergeTreeDataWriter::writeTempPart(DB::BlockWithPartition&)+0x8f6) [0x5d0a736]
    2019.08.05 12:58:28.747439 [ 801 ] {} <Error> BaseDaemon: 6. clickhouse-server(DB::ReplicatedMergeTreeBlockOutputStream::write(DB::Block const&)+0xfd) [0x5d56e3d]
    2019.08.05 12:58:28.747461 [ 801 ] {} <Error> BaseDaemon: 7. clickhouse-server(DB::PushingToViewsBlockOutputStream::write(DB::Block const&)+0x42) [0x5ec5f82]
    2019.08.05 12:58:28.747484 [ 801 ] {} <Error> BaseDaemon: 8. clickhouse-server(DB::SquashingBlockOutputStream::finalize()+0xf1) [0x5ed0d81]
    2019.08.05 12:58:28.747505 [ 801 ] {} <Error> BaseDaemon: 9. clickhouse-server(DB::SquashingBlockOutputStream::writeSuffix()+0x11) [0x5ed1051]
    2019.08.05 12:58:28.747549 [ 801 ] {} <Error> BaseDaemon: 10. clickhouse-server(DB::TCPHandler::processInsertQuery(DB::Settings const&)+0x372) [0x31849d2]
    2019.08.05 12:58:28.747572 [ 801 ] {} <Error> BaseDaemon: 11. clickhouse-server(DB::TCPHandler::runImpl()+0x7d8) [0x31851e8]
    2019.08.05 12:58:28.747592 [ 801 ] {} <Error> BaseDaemon: 12. clickhouse-server(DB::TCPHandler::run()+0x1c) [0x31857fc]
    2019.08.05 12:58:28.747611 [ 801 ] {} <Error> BaseDaemon: 13. clickhouse-server(Poco::Net::TCPServerConnection::start()+0xf) [0x6409baf]
    2019.08.05 12:58:28.747632 [ 801 ] {} <Error> BaseDaemon: 14. clickhouse-server(Poco::Net::TCPServerDispatcher::run()+0xe5) [0x640a295]
    2019.08.05 12:58:28.747652 [ 801 ] {} <Error> BaseDaemon: 15. clickhouse-server(Poco::PooledThread::run()+0x81) [0x69162f1]
    2019.08.05 12:58:28.747672 [ 801 ] {} <Error> BaseDaemon: 16. clickhouse-server(Poco::ThreadImpl::runnableEntry(void*)+0x38) [0x69120b8]
    2019.08.05 12:58:28.747690 [ 801 ] {} <Error> BaseDaemon: 17. clickhouse-server() [0x6d566df]
    2019.08.05 12:58:28.747709 [ 801 ] {} <Error> BaseDaemon: 18. /lib64/libpthread.so.0(+0x7dd5) [0x7fd5861bcdd5]
    2019.08.05 12:58:31.531654 [ 801 ] {} <Error> BaseDaemon: ########################################
  • https://t.me/clickhouse_ru
    @egorpopov94 #112932 10:15 AM, 05 Aug 2019
    2019.08.05 12:58:31.531733 [ 801 ] {} <Error> BaseDaemon: (version 19.9.2.4) (from thread 610) Received signal Segmentation fault (11).
    2019.08.05 12:58:31.531767 [ 801 ] {} <Error> BaseDaemon: Address: 0x800b
    2019.08.05 12:58:31.531784 [ 801 ] {} <Error> BaseDaemon: Access: read.
    2019.08.05 12:58:31.531801 [ 801 ] {} <Error> BaseDaemon: Address not mapped to object.

    Может кто сталкивался с таким?
  • https://t.me/clickhouse_ru
    @alexey_yuferov #112933 10:24 AM, 05 Aug 2019
    Коллеги, настраиваю авторизацию для кафки в зависимости от топика
    по доке <kafka_topic_*> должны дополнять глобальную конфигурацию:
    <yandex>
    <kafka>
    <security_protocol>SASL_PLAINTEXT</security_protocol>
    <sasl_mechanism>SCRAM-SHA-512</sasl_mechanism>
    </kafka>
    <kafka_minlogsearch.test>
    <sasl_username>user1</sasl_username>
    <sasl_password>secure1</sasl_password>
    </kafka_minlogsearch.test>
    </yandex>
    по доке неоднозначно, перепробовал варианты kafka_minlogsearch_test, kafka_topic_minlogsearch_test, kafka_minlogsearch.test, kafka_topic_minlogsearch.test

    работает только если креды в основной конфигурации, но этот вариант не подходит в силу того что они разные на разных топиках
    в чём может быть проблема?
  • https://t.me/clickhouse_ru
    Support for `<`, `<=`, `>`, `>=` operator with ASOF join. · Issue #6337 · yandex/ClickHouse

    It would be useful, for example, if we want to join previous entity state to current state. CREATE TABLE states ( entity_id UUID state INT8 timestamp DateTime ) SELECT state AS cur_state, prev_stat...

  • https://t.me/clickhouse_ru
    А можете сделать issue с воспроизводимым примером?
  • Есть утилита zookeeper-adjust-block-numbers-to-parts, она может подкрутить текущий номер блока, после чего удаление будет работать. Утилиту эту можно собрать из мастера:
    mkdir -p build && cd build && cmake ..
    ninja zookeeper-adjust-block-numbers-to-parts
    cd utils/zookeeper-adjust-block-numbers-to-parts
    zookeeper-adjust-block-numbers-to-parts —help
    zookeeper-adjust-block-numbers-to-parts -z localhost:2181 —dry-run
  • Спасибо!
  • @dselifanov #112938 10:36 AM, 05 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @111093495 #112939 10:45 AM, 05 Aug 2019
    помогите, пожалуйста победить
    https://github.com/yandex/ClickHouse/issues/5846

    2019.08.05 08:51:51.173153 [ 3 ] {} <Error> void DB::StorageKafka::streamThread(): std::exception. Code: 1001, type: cppkafka::HandleException, e.what() = Local: Timed out, version = 19.11.3.11 (official build)
    2019.08.05 08:51:58.175637 [ 6 ] {} <Error> void DB::StorageKafka::streamThread(): std::exception. Code: 1001, type: cppkafka::HandleException, e.what() = Local: Timed out, version = 19.11.3.11 (official build)
    2019.08.05 08:52:05.177770 [ 4 ] {} <Error> void DB::StorageKafka::streamThread(): std::exception. Code: 1001, type: cppkafka::HandleException, e.what() = Local: Timed out, version = 19.11.3.11 (official build)
    2019.08.05 08:52:12.180081 [ 8 ] {} <Error> void DB::StorageKafka::streamThread(): std::exception. Code: 1001, type: cppkafka::HandleException, e.what() = Local: Timed out, version = 19.11.3.11 (official build)
    2019.08.05 08:52:19.182092 [ 31 ] {} <Error> void DB::StorageKafka::streamThread(): std::exception. Code: 1001, type: cppkafka::HandleException, e.what() = Local: Timed out, version = 19.11.3.11 (official build)
    2019.08.05 08:52:26.184083 [ 30 ] {} <Error> void DB::StorageKafka::streamThread(): std::exception. Code: 1001, type: cppkafka::HandleException, e.what() = Local: Timed out, version = 19.11.3.11 (official build)
    2019.08.05 08:52:33.186477 [ 5 ] {} <Error> void DB::StorageKafka::streamThread(): std::exception. Code: 1001, type: cppkafka::HandleException, e.what() = Local: Timed out, version = 19.11.3.11 (official build)
    2019.08.05 08:52:40.188840 [ 28 ] {} <Error> void DB::StorageKafka::streamThread(): std::exception. Code: 1001, type: cppkafka::HandleException, e.what() = Local: Timed out, version = 19.11.3.11 (official build)

    На тесте всё работает норм, возникает только на проде.
    (пробовал версии 19.11.3.11 и 19.11.2.7)

    пытался откатится на версию 19.8.3.8, но кх не подымается
    Кх и кафка в докере.

    Интересно почему на тесте всё ок, а на проде не работает?
    Может как-то влияет то, что кафка за океаном от кх и надо какую-то опцию подтюнить?
    Kafka consumer stops - cppkafka::HandleException Local: Timed out · Issue #5846 · yandex/ClickHouse

    Describe the bug ClickHouse Kafka consumer stops consuming from Kafka, and restarts after some time (from 0 up to 2 hours)... Restart of ClickHouse docker container helps imediately. Problem starte...

  • Из кафки ни одного сообщения не доходит?
  • https://t.me/clickhouse_ru
    да, ничего не приходит
  • @bmolodenkov #112942 11:31 AM, 05 Aug 2019
    Привет. Наступил в баг https://github.com/yandex/ClickHouse/issues/5615
    Попробовал начать писать в топик кафки, но engine больше не читает из него.
    Подскажите, пожалуйста, можно как-то иначе удалить таблицу с Kafka engine?
    Kafka storage's shutdown hangs if no messages are ever fetched · Issue #5615 · yandex/ClickHouse

    Using ClickHouse 19.8.3.8 on Debian 9 on WSL, installed from Yandex repository. The problem also appeared on version 19.7.5.27. Queries were executed in ClickHouse CLI. Test table is created with t...

  • https://t.me/clickhouse_ru
    @newink #112943 11:36 AM, 05 Aug 2019
    Об этом сейчас только и разговоров
  • https://t.me/clickhouse_ru
    @newink #112944 11:36 AM, 05 Aug 2019
    Но кафка энжин пока сломан
  • https://t.me/clickhouse_ru
    @artilligence #112945 11:37 AM, 05 Aug 2019
    коллеги, подскажите, пожалуйста, где- то можно посмотреть changelog сборок?
  • https://t.me/clickhouse_ru
    залез в исходники понял что если в топике точки то либа воспринимает как иерархический конфиг завелось вот так:
    <yandex>
    <kafka>
    <security_protocol>SASL_PLAINTEXT</security_protocol>
    <sasl_mechanism>SCRAM-SHA-512</sasl_mechanism>
    </kafka>
    <kafka_minlogsearch>
    <test>
    <sasl_username>user1</sasl_username>
    <sasl_password>secure1</sasl_password>
    </test>
    </kafka_minlogsearch>
    </yandex>
  • https://t.me/clickhouse_ru
    на гитхабе же всё, отфильтровали нужный бранч или тег и вот оно
  • сломан? когда успели?
  • https://t.me/clickhouse_ru
    @newink #112949 11:40 AM, 05 Aug 2019
    Kafka consumer stops - cppkafka::HandleException Local: Timed out · Issue #5846 · yandex/ClickHouse

    Describe the bug ClickHouse Kafka consumer stops consuming from Kafka, and restarts after some time (from 0 up to 2 hours)... Restart of ClickHouse docker container helps imediately. Problem starte...

  • массово проблемы начались после обновлении librdkafka
  • @vor_nik #112951 11:43 AM, 05 Aug 2019
    у себя детектил подобные проблемы в случае если с кафкой разрывалась связь, после этого в некоторых ситуациях невозможно восстановить связь будут без конца лезть подобные сообщения
  • @vor_nik #112952 11:44 AM, 05 Aug 2019
    перезапуск КХ решал проблему до следующего разрыва связи
  • https://t.me/clickhouse_ru
    нашел, спасибо)
  • https://t.me/clickhouse_ru
    @Mike_Er #112954 12:45 PM, 05 Aug 2019
    Коллеги, добрый день, собрали на тестовый стенд 19.11.4.24 - появилась проблема с нашей программой, общается она с КХ через с++ драйвер (https://github.com/artpaul/clickhouse-cpp) -
    Code: 209, e.displayText() = DB::NetException: Timeout: connect timed out: 10.68.74.223:9000 (10.68.74.223:9000) (version 19.11.4.24)

    Какие-то новые конфиги появились или куда копнуть?
    GitHub - artpaul/clickhouse-cpp: ClickHouse C++ client library

    ClickHouse C++ client library. Contribute to artpaul/clickhouse-cpp development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    timed out это явно сетевая проблема
  • https://t.me/clickhouse_ru
    @blind_oracle #112956 12:46 PM, 05 Aug 2019
    сокет не открывается, до КХ дело не доходит даже
  • https://t.me/clickhouse_ru
    @Sablast #112957 01:56 PM, 05 Aug 2019
    подскажите, при SELECT ... FROM mysql( ... ) это ожидаемое поведение, что в WHERE mysql_index_column > 100 - индекс применяется нормально, а при WHERE mysql_index_column > 100 AND mysql_index_column < 200 выкачивается вся таблица ?

    ClickHouse server version 19.11.3 revision 54423
  • https://t.me/clickhouse_ru
    @Valenvaryon #112958 02:16 PM, 05 Aug 2019
    подскажите, довольно встречаю такую проблему:
    rename table1 to table2;
    Error: Code: 84. DB::Exception: Received from localhost:9000, ::1. DB::Exception: Target path already exists: /var/lib/clickhouse//data/table1/

    sudo rm -r /var/lib/clickhouse//data/table1/

    rename table1 to table2;
    Code: 0. DB::Exception: Received from localhost:9000, ::1. DB::Exception: File not found: /var/lib/clickhouse//data/table1/
  • https://t.me/clickhouse_ru
    @Valenvaryon #112959 02:16 PM, 05 Aug 2019
    что я делаю не так?🤔
  • https://t.me/clickhouse_ru
    @Valenvaryon #112960 02:17 PM, 05 Aug 2019
    в общем ренейминг - очень опасная штука, любит зависать и создавать неконсистентные состояния
  • https://t.me/clickhouse_ru
    таблица distributed?
  • https://t.me/clickhouse_ru
    нет, просто MergeTree
  • https://t.me/clickhouse_ru
    это странно тогда.

    особенно путь с table1

    rename table1 to table2;
    Target path already exists: /var/lib/clickhouse//data/table1/

    версия КХ ?
  • https://t.me/clickhouse_ru
    ну это последствия не до конца удавшегося ренейма видимо
  • https://t.me/clickhouse_ru
    @Valenvaryon #112968 02:20 PM, 05 Aug 2019
    версия 18.14.19
  • https://t.me/clickhouse_ru
    @filippchistiakov #112971 03:08 PM, 05 Aug 2019
    Ребят в каких единицах передаються значения в pointInEllipses ?
  • https://t.me/clickhouse_ru
    @filippchistiakov #112972 03:08 PM, 05 Aug 2019
    Точно метры?
  • https://t.me/clickhouse_ru
    @filippchistiakov #112973 03:08 PM, 05 Aug 2019
    pointInEllipses(
    longitude,
    latitude,
    55.1,
    37.1,
    toFloat64(339)
    ,toFloat64(339)
    )
  • https://t.me/clickhouse_ru
    там безразмерное все
  • https://t.me/clickhouse_ru
    @blind_oracle #112975 03:11 PM, 05 Aug 2019
    т.е. в чем передаются координаты - в том и должны быть и параметры эллипса
  • https://t.me/clickhouse_ru
    @blind_oracle #112976 03:11 PM, 05 Aug 2019
    доки надо подправить
  • https://t.me/clickhouse_ru
    @filippchistiakov #112977 03:14 PM, 05 Aug 2019
    55.2221314,37.2131511 если мои координаты в грудусах, то я должен в градусах длину окружности указывать?
  • https://t.me/clickhouse_ru
    @blind_oracle #112978 03:14 PM, 05 Aug 2019
    да
  • https://t.me/clickhouse_ru
    @filippchistiakov #112979 03:15 PM, 05 Aug 2019
    прикольно
  • https://t.me/clickhouse_ru
    @filippchistiakov #112980 03:15 PM, 05 Aug 2019
    Как перевести метры в градусы в кх?)
  • https://t.me/clickhouse_ru
    @blind_oracle #112981 03:15 PM, 05 Aug 2019
    это зависит от планеты для которой считаешь 😁
  • https://t.me/clickhouse_ru
    @filippchistiakov #112982 03:16 PM, 05 Aug 2019
    А во что перевести координаты точки чтобы давать кх метры?
  • https://t.me/clickhouse_ru
    @blind_oracle #112983 03:17 PM, 05 Aug 2019
    ну это тот же вопрос только наоборот. в расстояние от нулевых широты-долготы вероятно...
  • https://t.me/clickhouse_ru
    @den_crane #112984 03:18 PM, 05 Aug 2019
    Там не градусы, pointInEllipses это не география
  • https://t.me/clickhouse_ru
    @den_crane #112985 03:18 PM, 05 Aug 2019
    это геометрия
  • https://t.me/clickhouse_ru
    @den_crane #112986 03:19 PM, 05 Aug 2019
    x, y, R -- это попугаи, не метры, и не градусы широты и долготы
  • https://t.me/clickhouse_ru
    @filippchistiakov #112987 03:19 PM, 05 Aug 2019
    Вы меня запутали
  • https://t.me/clickhouse_ru
    еще раз - оно безразмерное
  • https://t.me/clickhouse_ru
    это плоскость, меряется в единицах.
  • https://t.me/clickhouse_ru
    @orantius #112990 03:21 PM, 05 Aug 2019
    у вас есть плоскость, на ней есть точки, на ней есть эллипсы. как на бумаге в клетку. то что эти точки имеют координаты 55 37 это еще не значит что у вас где-то есть градусы и метры.
  • https://t.me/clickhouse_ru
    Зависит от широты
  • https://t.me/clickhouse_ru
    @dbalashov #112992 03:22 PM, 05 Aug 2019
    Недавно же обсуждали, скопипастите ктонить а то я с телефона
  • https://t.me/clickhouse_ru
    @orantius #112993 03:22 PM, 05 Aug 2019
    например берете круг в метрах, делите на синус или на что там подходящее по вертикали, получаете эллипс в градусах. поэтому и функция такая.
  • https://t.me/clickhouse_ru
    @filippchistiakov #112994 03:23 PM, 05 Aug 2019
    Так у меня есть плоскость, и координаты центра окружности 55.7520233,37.6174994 с радиусом в 25 метров. Как мне проверить, принадлежит ли точка 55.7528384,37.620128,17 этой окружности?
  • https://t.me/clickhouse_ru
    В твоих условиях 55 и 37 тоже метры
  • https://t.me/clickhouse_ru
    @orantius #112996 03:25 PM, 05 Aug 2019
    нет, в этих условиях они пока что градусы
  • https://t.me/clickhouse_ru
    @filippchistiakov #112997 03:25 PM, 05 Aug 2019
    ааааааааа
  • https://t.me/clickhouse_ru
    @orantius #112998 03:25 PM, 05 Aug 2019
    метрами они станут если их передать не туда.
  • https://t.me/clickhouse_ru
    @filippchistiakov #112999 03:26 PM, 05 Aug 2019
    Там не градусы, pointInEllipses это не география
  • https://t.me/clickhouse_ru
    @filippchistiakov #113000 03:26 PM, 05 Aug 2019
    x, y, R -- это попугаи, не метры, и не градусы широты и долготы
  • https://t.me/clickhouse_ru
    @filippchistiakov #113001 03:36 PM, 05 Aug 2019
    То есть получается, я беру "длину" и "ширину" земли в этой точке и с помощью этого из метров перевожу в координаты?...
  • https://t.me/clickhouse_ru
    @filippchistiakov #113002 03:38 PM, 05 Aug 2019
    Наверное проще мне будет считать расстояние между точками, и если оно меньше моего радиуса то значит точка внутри окружности
  • https://t.me/clickhouse_ru
    @dbalashov #113003 03:38 PM, 05 Aug 2019
    Походу мне надо начать контрибутить в кх работу с геоданными
  • @githubreleases_bot #113004 b o t 04:53 PM, 05 Aug 2019
    yandex/ClickHouse tagged: v19.11.5.28-stable
    Link: https://github.com/yandex/ClickHouse/releases/tag/v19.11.5.28-stable
    Release notes:
    v19.11.5.28-stable
    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
    @Cloud66 #113005 05:07 PM, 05 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @bralbral #113006 05:23 PM, 05 Aug 2019
    Не совсем понял про Skipping , конкретнее minmax. Если есть таблица aggregatingmergetree , где 2 колоночки аггрегаты min и max от даты . Имеет ли смысл ещё skipping прикручивать и как вообще он может помочь? Не могу ситуацию придумать, где бы они подошли.
  • https://t.me/clickhouse_ru
    @ployd #113007 05:27 PM, 05 Aug 2019
    skipping minmax хорошо подходят, когда есть промежутки монотонности в данных. Либо когда есть монотонные значения, которые делать PK не хочется
  • https://t.me/clickhouse_ru
    minmax индекс хранит мин макс значения гранулы насколько я помню. И позволяет не читать ее если интересующее значение не в этим диапазоне. К aggregating не имеет никакого отношения. Глянь видео с недавнего митапа там Алексей кажется это объяснял
  • https://t.me/clickhouse_ru
    @241186216 #113009 05:31 PM, 05 Aug 2019
    Minmax он используется совместно с примари индексом ?
  • https://t.me/clickhouse_ru
    @ployd #113010 06:25 PM, 05 Aug 2019
    Да
  • https://t.me/clickhouse_ru
    да

    но если например у вас таблица -- aggregatingmergetree order by banner_id

    т.е. в каждой грануле будет типа min = 0 a max = Infinity то скипать будет нечего
  • https://t.me/clickhouse_ru
    @inv2004 #113012 06:35 PM, 05 Aug 2019
    Подскажи , плз, что почитать про то как ch с графаной для метрик совместить.
  • @simpl1g #113013 06:37 PM, 05 Aug 2019
    Fix build · yandex/ClickHouse@849af74

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

  • https://t.me/clickhouse_ru
    Да, кафку в 19.11.5 не чинили, но уже чиним
  • https://t.me/clickhouse_ru
    @Alesapin #113015 06:39 PM, 05 Aug 2019
    в следующей патч-версии будет
  • есть какие-нибудь эстимейты когда будет релиз?
  • https://t.me/clickhouse_ru
    @Alesapin #113017 06:43 PM, 05 Aug 2019
    Занимаюсь не я, поэтому точно сказать не могу. Думаю эта или следующая неделя.
  • https://t.me/clickhouse_ru
    есть готовый datasource плагин для графана
    https://grafana.com/grafana/plugins/vertamedia-clickhouse-datasource
    ClickHouse

    ClickHouse datasource for Grafana

  • https://t.me/clickhouse_ru
    Тут больше вопрос, как из ch метрики посылать, вроде как самое удобное - это в графит, так как ch поддерживает.
  • https://t.me/clickhouse_ru
    @polischouckserg #113020 07:43 PM, 05 Aug 2019
    тогда да, или экстратор для prometheus использовать
  • https://t.me/clickhouse_ru
    @bralbral #113021 08:44 PM, 05 Aug 2019
    Ещё не совсем понятно поведение движка aggregatingMT . Пример : есть 3 поля - дата , какое-то значение , по которому аггрегация и собственно сам аггрегат_стайт. Вычисляется max() . Допустим , хранятся значений за какой-то условный примежуток -3 дня. Посчитал максимальное значение - оно равно A. Если удалить партицию самую старую , изменится ли значение значение , возвращающее запросом ? Написанно , что " хранится промежуточное состояние агрегатной функции" , значит можно смело удалять старые парты , а промежуточное значение будет хранится в более свежих записях, или не так ?
  • https://t.me/clickhouse_ru
    Вот и хотел понять какой путь более "прямой".
  • https://t.me/clickhouse_ru
    тот максимум который вы получите будет равен максимуму за то время, за которое вы делаете запрос (и за который есть данные)
  • https://t.me/clickhouse_ru
    Благодарю.
  • 06 August 2019 (260 messages)
  • https://t.me/clickhouse_ru
    @orloffv #113025 12:15 AM, 06 Aug 2019
    а где можно посмотреть размер данных, которые нужны для вторичного индекса?
  • https://t.me/clickhouse_ru
    @notmaxx #113026 12:52 AM, 06 Aug 2019
    добрый день, пытаюсь сделать ALTER TABLE UPDATE text_column = '' WHERE user_id >= 100 AND user_id <= 200 AND started_at >= toDate('2019-03-07') AND started_at =< toDate('2019-04-07') - создается mutation и сразу же говорит что нужно обработать 200 parts, я захожу в папку с данными КХ и там 26 папок с данными, которые соответствуют данному диапазону. started_at - partition key (таблица была создана в старом синтаксисе) - тип Date
  • https://t.me/clickhouse_ru
    @notmaxx #113027 12:53 AM, 06 Aug 2019
    получается одна папка и part - это не то же самое? или такого быть не может и у меня ошибка в запросе?
  • https://t.me/clickhouse_ru
    мутируют всегда ВСЕ парты.
    создаются хардлинки для всех файлов всех партов, создаются новые временные файлы для колонок которые апдейтятся для кусков которые подпадают под условия, по концу создания временный файл переименовывается в постоянный.
  • https://t.me/clickhouse_ru
    со временем количество партов уменьшается - получается он выполняет запрос из WHERE для каждой part и переписывает те записи которые соответстуют запросу?

    Так же вопрос по оптимизации перформанса для ALTER TABLE - у меня есть большой (40 тыс пользователей) разреженный (буквально по 2-3 в группе) список пользователей который нужно почистить, например (user_id >= 100 & user_id =< 102) OR (user_id >= 104 & user_id =< 105). Если все это объединять через OR то все в один ALTER TABLE не влезает. Приходится создавать несколько мутаций подряд. Все записи которые надо почистить находятся в рамках одного месяца (по которому нет активных инсертов), но все мутации выполняются очень долго (в-целом активность по КХ кластеру в это время суток очень маленькая).

    Я запустил простой SELECT с подобным условием он выполнялся очень долго - наверняка из-за этого сложного списка пользователей. Можно ли как-то оптимизировать подобный запрос? Может всех пользователей для которых надо выполнить мутацию в отдельную временную таблицу и подзапросом проверять на наличие в таблице?
  • https://t.me/clickhouse_ru
    libgeos было бы неплохо прикрутить
  • https://t.me/clickhouse_ru
    Привет! Если метрики в graphite-формате, то https://github.com/lomik/graphite-clickhouse
    - самое верное средство
    GitHub - lomik/graphite-clickhouse: Graphite cluster backend with ClickHouse support

    Graphite cluster backend with ClickHouse support. Contribute to lomik/graphite-clickhouse development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    Сорян, мне кажется какая-то путаница постоянно. Кликхаус и так умеет в графит (метрики слать), а графана и так умеет в графит тоже.
  • https://t.me/clickhouse_ru
    да, табличку с нужными user_id и потом alter .. where in (select ... ) если нужен update то сверху словарь (на табличку) (или использовать табличку с движком JOIN) и dictGet / joinGet
  • https://t.me/clickhouse_ru
    @inv2004 #113034 03:49 AM, 06 Aug 2019
    Другой вопрос что графит уже немного устаревшим считается (я не в теме)
  • https://t.me/clickhouse_ru
    Умеет то умеет, но работать именно с метриками удобнее в графит-формате(фильтровать, объединять, усреднять и т.д.).
    Не знаю где он устарел, но у нас он активно используется. Не знаю надежного решения для вставки 50МЛРД точек в сутки с хранением более 1,5 лет и извлечением графиков по ним за ~1c
  • https://t.me/clickhouse_ru
    Понял, буду знать. Я уже было думал начал думать, что нужен отдельный ch под метрики ch
  • https://t.me/clickhouse_ru
    У нас один графит(1 кластер) на КХ и хранит в тч метрики КХ
  • https://t.me/clickhouse_ru
    @inv2004 #113038 03:59 AM, 06 Aug 2019
    Т.е. у вас прямо ch -> graphouse (как он зовётся?) И над ним графана?
  • https://t.me/clickhouse_ru
    @inv2004 #113039 04:00 AM, 06 Aug 2019
    Или графит обычный?
  • https://t.me/clickhouse_ru
    У нас был обычный гафит(go-carbon), который заменили на свзку carbon-clickhouse(принимает метрики и вставялен их в КХ) - > clickhouse-server(хранит данные) ->graphite-clickhouse(принимает запросы на метрики и селектит их в КХ) -> carbonapi(реализуте графит-функции) ->grafana
    как на схеме: https://github.com/lomik/graphite-clickhouse
    GitHub - lomik/graphite-clickhouse: Graphite cluster backend with ClickHouse support

    Graphite cluster backend with ClickHouse support. Contribute to lomik/graphite-clickhouse development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @artemylapko #113041 04:20 AM, 06 Aug 2019
    Joined.
  • @ttyS000 #113042 04:24 AM, 06 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    Ага, спасибо. В чем основная разница над чем графит крутится?
  • https://t.me/clickhouse_ru
    Обычный графит(whisper-файлы) перестал вывозить из-за ИО, хотя в стораджах у нас страйп на 10ССД
  • https://t.me/clickhouse_ru
    @inv2004 #113045 04:39 AM, 06 Aug 2019
    Я правильно понял что это под 500к записей в секунду? Я просто не думал что так много метрик :)
  • https://t.me/clickhouse_ru
    более 600к, 40М в минуту
    но в 3 реплики, в среднем в 1 сервер вставяем 15М, хотя при необходимости можем вставлять и 150М (в неесколько потоков)
  • https://t.me/clickhouse_ru
    Ок, спасибо, выглядит как хороший план, я так понял с графаной для графиков вы уже экспериментировали и предпочли графит.
  • https://t.me/clickhouse_ru
    Да, исторически все смотрели свои графики из графита в graphite-web/grafana, мы заменили хранилище и ускорились в разы (iops дисков хранилищ упали с 50к до 100)
  • https://t.me/clickhouse_ru
    Тут надо понимать что хранить метрики кх в самом кх это рекурсия. Если кх заболеет вы их не увидите и диагностировать сложно будет. Либо завести отдельный кх, либо хранить в старом графите (или его гошных аналогах) - метрик кх не много генерирует.
  • https://t.me/clickhouse_ru
    Я думаю отдельный ch под это конечно намного правильнее.
  • https://t.me/clickhouse_ru
    @ployd ↶ Reply to #113048 #113051 05:59 AM, 06 Aug 2019
    С 50к до 100 (сто)?
  • https://t.me/clickhouse_ru
    у нас метрики идут в мойру параллельно КХ, и если кластер КХ совсем падет, без алертов не останемся, а потеряем историю
  • https://t.me/clickhouse_ru
    да
  • https://t.me/clickhouse_ru
    @ployd #113054 05:59 AM, 06 Aug 2019
    О_о
  • https://t.me/clickhouse_ru
    @metikovvadim #113055 06:00 AM, 06 Aug 2019
    и сеть просела в 10 раз, так как в графиты мы писали forward'ом, каждую метрику в 3 стораджа, а сейчас одну в один, а потом по реплике все сходится
  • https://t.me/clickhouse_ru
    опечатка, с 5к до 100
  • https://t.me/clickhouse_ru
    @metikovvadim #113057 06:03 AM, 06 Aug 2019
    Переход:
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Без кворума?
  • https://t.me/clickhouse_ru
    тут нет кворума, можно писать в любой, хоть 1 реплику из 10, все расползется на все
  • https://t.me/clickhouse_ru
    Но без кворума это без гарантий при падении этой одной. Если вы клали в 3 до этого - то это было с гарантиями, вроде как.
  • https://t.me/clickhouse_ru
    да, если одна нода получила уникальные данные, и не успев их передать(другие не скачали их с неё) умерла, то данные потеряны, это да, но для аналитики, где вставляется миллионами, потеря несколько тысяч - небольшая потеря
  • https://t.me/clickhouse_ru
    @metikovvadim #113064 06:37 AM, 06 Aug 2019
    пока мы ничего значительного не теряли при падении сервера, репликация достаточно быстрая
  • https://t.me/clickhouse_ru
    @inv2004 #113065 06:38 AM, 06 Aug 2019
    Тем не менее удобно было бы кворум включить, теоретически. Не знаю что с перфомансом.
  • https://t.me/clickhouse_ru
    @metikovvadim #113066 06:38 AM, 06 Aug 2019
    макисмум можем потерять все данные за одну минуту, то есть 15-20М метрик, или одну точку на половине графиков, это несущественно, таких точек 1440 в сутках
  • https://t.me/clickhouse_ru
    @orloffv #113067 07:02 AM, 06 Aug 2019
    А подскажите пожалуйста за вторичный индекс(строк меньше, данных в gb меньше) а время выполнения запроса всегда одинаковое
  • https://t.me/clickhouse_ru
    @orloffv #113068 07:02 AM, 06 Aug 2019
    имхо - чумовая фича, таблички одинаковые, во второй добавил вторичный индекс
  • https://t.me/clickhouse_ru
    @dbalashov #113069 07:08 AM, 06 Aug 2019
    ну индексы работают
  • https://t.me/clickhouse_ru
    Да. Понятно, здорово. Строки и размер меняется, а время запроса всегда одинаковое
  • https://t.me/clickhouse_ru
    @dbalashov #113071 07:09 AM, 06 Aug 2019
    тебе повезло, у тебя получился покрывающий индекс
  • https://t.me/clickhouse_ru
    Это что значит?
  • https://t.me/clickhouse_ru
    @dbalashov #113073 07:09 AM, 06 Aug 2019
    попробуй отобрать поля которые не входят в индекс
  • https://t.me/clickhouse_ru
    @dbalashov #113074 07:10 AM, 06 Aug 2019
    это значит что индекс покрывает все поля запроса
  • https://t.me/clickhouse_ru
    @dbalashov #113075 07:10 AM, 06 Aug 2019
    и для обработки запроса может использоваться только индекс, без доступа к данным
  • https://t.me/clickhouse_ru
    @dbalashov #113076 07:10 AM, 06 Aug 2019
    здесь должна быть просадка по скорости. т.к. по индексу надо будет сходить в оригинальные данные и посмотреть поле
  • https://t.me/clickhouse_ru
    @Nixairus #113077 07:13 AM, 06 Aug 2019
    Добрый день! Вопрос: поменял параметры rollup для GraphiteMergeTree. Место на харде заканчивается, можно ли как то заставить кликхаус оптимизировать старые партиции?
    Optimize table full проходит за 0 секунд.
  • https://t.me/clickhouse_ru
    @Nixairus #113078 07:14 AM, 06 Aug 2019
    OPTIMIZE TABLE FINAL* за 0.001
  • https://t.me/clickhouse_ru
    @Nixairus #113079 07:16 AM, 06 Aug 2019
    На hdd осталось около гига (3%) , можно ли ужать таблицу после увеличения параметров роллап?
    Параметры изменил, а место занимаемое партицией не изменилось.
  • https://t.me/clickhouse_ru
    @torebekalibi #113080 07:21 AM, 06 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    cтарые партиции должны проредиться при optimize ... final
    другое дело , что новые мерджи не идут, если нет 2х кратного места под партишен текущий
  • @st0neg0d #113082 07:28 AM, 06 Aug 2019
    Всем привет. А можно заставить кликхаус разложить сущетсвующе данные по новому ключу шардирования? 🤔
  • https://t.me/clickhouse_ru
    @igor_dia #113083 07:32 AM, 06 Aug 2019
    Ребят, а адрес базы,из которой селект делать, можно в самом селекте указать? типа INSERT INTO mynewtable SELECT * FROM (foo:bar@10.10.10.10:9000).mytable WHERE date>'2019-01-01' AND date<'2019-06-01'. Нужно, чтобы вытащить в другой кликхаус данные из первого
  • https://t.me/clickhouse_ru
    То есть первый вариант - расширить место более чем в 2 раза.
    Второй - создать реплику с большим местом, перелить данные туда, запустить OPTIMIZE final и вернуть обратно
  • https://t.me/clickhouse_ru
    @Nixairus #113085 07:34 AM, 06 Aug 2019
    Просто интересно, поможет ли трюк с репликой)
  • https://t.me/clickhouse_ru
    сейчас попробую
  • https://t.me/clickhouse_ru
    Поможет, мы так делали на помесячных партициях, таммерджи по 3 суток шли
  • https://t.me/clickhouse_ru
    Спасибо! Ещё задумался над партицированием по суткам, т.к. хостов и метрик много, а читают обычно графаной последние 12 часов. Пробовал кто?
  • https://t.me/clickhouse_ru
    да, мы на прошлой неделе окончательно перешли на подневню таблицу, помесячная ещё есть, но скоро удалим, в помесячной - 7ТБ, в подневной 3ТБ
  • https://t.me/clickhouse_ru
    @metikovvadim #113091 07:44 AM, 06 Aug 2019
    данных > 1,5 года
  • https://t.me/clickhouse_ru
    О как, сколько узлов на мониторинге?
    Есть разница в скорости при работе с графаной?
  • https://t.me/clickhouse_ru
    @ekomissarov #113093 07:46 AM, 06 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @ekomissarov #113094 07:46 AM, 06 Aug 2019
    привет, есть домашний сервачок, на котором хочется развернуть ClickHouse с целью посливать туда метрики с IoT устройств и отобразить это в Grafana. Но есть одна проблема - SSE 4.2 отсутсвует. Пытаюсь собрать из сходников с флагами отсюда https://github.com/yandex/ClickHouse/issues/1695#issuecomment-353779526, но тесты всё равно разваливаются с Illegal instruction (core dumped). Я в файле для сборки не особо разбираюсь. Подскажите, те ли я флаги использовал и в нужное ли место поместил? тут есть информация о конфигурации железа, мой release файл и вывод билда https://markdownshare.com/view/a7040a10-31cf-4845-b4be-0429f1e43cf3
    Check flags when run Clickhouse · Issue #1695 · yandex/ClickHouse

    Hello! I try run Clickhouse on old CPU, but get error: Illegal instruction I found Clickhouse required CPU flag SSE 4.2. Can add check flags when run Clickhouse and echo "CPU doesnt suppor...

  • https://t.me/clickhouse_ru
    серверов единицы тысяч, но кроме системных есть ещё бизнес метрики и метрики приложений, пока что 99й перцентиль ответов графаны держится в 1-3 секунды
  • https://t.me/clickhouse_ru
    @metikovvadim #113096 07:47 AM, 06 Aug 2019
    иногда всплески до 5с, когда запросят странного или большоой диапазон
  • https://t.me/clickhouse_ru
    @metikovvadim #113097 07:48 AM, 06 Aug 2019
    и мониторингом у нас мойра занимается, в КХ только история
  • https://t.me/clickhouse_ru
    @igor_dia #113101 08:56 AM, 06 Aug 2019
    Вот этот баг (https://github.com/yandex/ClickHouse/issues/4040) проявился между версиями 19.1.8 и 19.10.1. В каком релизе это исправлено?
    remote(...) to older server = Not found column comment_expression in block · Issue #4040 · yandex/ClickHouse

    Trying to connect from 18.16.1 to 1.1.54362 via remote table function, getting: Received exception from server (version 18.16.1): Code: 10. DB::Exception: Received from localhost:9000, ::1. DB::Exc...

  • https://t.me/clickhouse_ru
    @606215749 #113102 09:04 AM, 06 Aug 2019
    Подскажите, когда и в каком релизе будет пофикшено? https://github.com/yandex/ClickHouse/issues/5846
    Kafka consumer stops - cppkafka::HandleException Local: Timed out · Issue #5846 · yandex/ClickHouse

    Describe the bug ClickHouse Kafka consumer stops consuming from Kafka, and restarts after some time (from 0 up to 2 hours)... Restart of ClickHouse docker container helps imediately. Problem starte...

  • https://t.me/clickhouse_ru
    на 19.11.4 работает
  • https://t.me/clickhouse_ru
    а мб знаете проекты, которые автоматизированно делают такой инсерт из селекта для множества таблиц?
  • https://t.me/clickhouse_ru
    notepad++ и bash/python
  • https://t.me/clickhouse_ru
    @igor_dia #113106 09:18 AM, 06 Aug 2019
    ну вот я так и подумал, что самому придется писать
  • https://t.me/clickhouse_ru
    @orloffv #113107 09:20 AM, 06 Aug 2019
    Подскажите пожалуйста. Для такого кейса нужно сделать 5 группировок по полю и посмотреть топ 10. Что лучше для кликхауса. Сделать 5 запросов или сделать один с union?
  • https://t.me/clickhouse_ru
    @orloffv #113108 09:20 AM, 06 Aug 2019
    я чет не совсем понимаю, что здесь происходит
  • https://t.me/clickhouse_ru
    да было бы там что писать)), 1 select from system.tables и в notepad сформировать INSERT регэкспом)
  • @779695864 #113110 09:23 AM, 06 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @filippchistiakov #113111 09:36 AM, 06 Aug 2019
    Ребят а как слайсануть стринг в кх? Из арт10011-3123 взять с 4 символа по 8 включительно? str(val)[4:9] что-то типо такого
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Да действительно... Спасибо
  • https://t.me/clickhouse_ru
    @dm6434 #113114 10:27 AM, 06 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @dm6434 #113115 10:27 AM, 06 Aug 2019
    Привет)
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    None
  • @ThodinBizzz #113118 11:10 AM, 06 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @Sablast #113119 11:21 AM, 06 Aug 2019
    а какая сейчас самая стабильная версия для работы с кафка?)
  • @ThodinBizzz #113120 11:26 AM, 06 Aug 2019
    всем привет, есть ли смысл использовать кликхаус, в случае, когда событий не много ( ориентировочно 3к в минуту)
    терять их не хочется, но терпимо
    и при этом хочу быстро получать данные агрегитированые по суточно, почасово, поминутно
    в некоторых случаях по строчкам

    хочу хранить эти данные за последний год,
    а может и не удалять вовсе, если будет все устраивать
  • https://t.me/clickhouse_ru
    @newink ↶ Reply to #113120 #113121 11:27 AM, 06 Aug 2019
    Да, вполне, в этом случае необходимый набор будет помещаться в ram
  • возможно 19.1 или ранее
  • @odainic #113123 11:30 AM, 06 Aug 2019
    коллеги, подскажите, есть ли возможность приблизительного поиска? Например, у меня есть словарь девайсов Apple где id вида: iPad 5,7 и соответствие правильных названий этим девайсам в name
    Далее, если таблица с данными, где в тч есть device где как раз большая часть в таком Apple-формате (iPad 5,7)
    но есть часть косячных данных типа iPad 5 7 или iPad5;7
    Есть ли возможность не искать вручную все такие косяки и просто связывать по подобию?
  • https://t.me/clickhouse_ru
    @dbalashov #113124 11:31 AM, 06 Aug 2019
    "подобие" очень субьективный показатель
  • https://t.me/clickhouse_ru
    @dbalashov #113125 11:31 AM, 06 Aug 2019
    iPad5;7 это 5 или 7 ?
  • и еще допустим мне нужно получить все события определенного пользователя, чтобы выгрузить их в отчет. допустим за месяц, квартал, полгода, год

    этот сценарий для кликхауса нормальный?
  • @eugene_o #113127 11:32 AM, 06 Aug 2019
    Joined.
  • перепутал цифры местами) iPad7,5 = iPad 9.7" 6th Gen (Wi-Fi Only)
  • https://t.me/clickhouse_ru
    @newink ↶ Reply to #113126 #113129 11:33 AM, 06 Aug 2019
    вот здесь уже обсуждаемо, исходя из того что я прочитал за последние две недели - это кейс для кассандры
  • https://t.me/clickhouse_ru
    @newink #113130 11:33 AM, 06 Aug 2019
    но если пользователь входит в пк - то по идее должно переварить
  • https://t.me/clickhouse_ru
    @newink #113131 11:33 AM, 06 Aug 2019
    у нас просто такие идентификаторы входят в праймери ключ вместе с датой
  • просто там будет много колонок, по которым будет необходима такая выборка
  • https://t.me/clickhouse_ru
  • @nbusorgin #113134 11:36 AM, 06 Aug 2019
    3к событий в минуту - это же всего 1.5млрд в год
  • это примерно, там если и больше, то x2 - x5 будет
  • а если побезумствовать и все колонки, по которым хочу такие выборки в ПК положить? )
  • https://t.me/clickhouse_ru
    @newink #113137 11:40 AM, 06 Aug 2019
    логично предположить что все встанет раком
  • @ThodinBizzz #113138 11:40 AM, 06 Aug 2019
    ну да
  • @ThodinBizzz #113139 11:40 AM, 06 Aug 2019
    ок, тогда разведка боем, попробую нагенерить данные и посмотрю что будет
  • https://t.me/clickhouse_ru
    Это бессмысленно и ухудшает производительность.
    Поиск работает по префиксу как и везде.
  • @ThodinBizzz #113143 12:54 PM, 06 Aug 2019
    а подскажите еще такой момент, пытаюсь в докере настроить кликхаус, при запуске сервера вижу
    Include not found: networks
    но у меня в конфиге нигде не указан такой incl
  • https://t.me/clickhouse_ru
    это warning. ни на что не влияет.

    В дефолтном конфиге есть incl=.... (который ссылается на /etc/metrica.xml которого у вас нет)
  • ага, нашел, в users xml есть такой incl
  • @ThodinBizzz #113146 12:57 PM, 06 Aug 2019
    спасибо
  • @AS12389 #113147 01:43 PM, 06 Aug 2019
    Коллеги, есть простая таблица вида
    |date|ts|val1|val2|
    как быстро сделать выборку по последним значениям?
    ts >= toDateTime(now() - 600)
    AND ts <= toDateTime(now())
    работает очень долго
    ENGINE = MergeTree(date, (val1, val2, ts), 8192)
  • @AS12389 #113148 01:44 PM, 06 Aug 2019
    если добавать date=today() то выборка идет быстрее
  • https://t.me/clickhouse_ru
    @klermonte #113149 01:45 PM, 06 Aug 2019
    ваш запрос не использует индекс, чтобы оно работало быстрее вам надо ts делать перым полем в индексе
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113150 01:47 PM, 06 Aug 2019
    привет, а подскажите как себя ведет go clickhouse-ный драйвер с Default значениями?
  • https://t.me/clickhouse_ru
    @241186216 #113151 01:48 PM, 06 Aug 2019
    Почему он не может использовать второе поле из индекса ?
  • https://t.me/clickhouse_ru
    @241186216 #113152 01:49 PM, 06 Aug 2019
    На первый взгляд в этом есть выгода . Индекс скип скан ?
  • https://t.me/clickhouse_ru
    @klermonte #113153 01:50 PM, 06 Aug 2019
  • https://t.me/clickhouse_ru
    @241186216 #113154 01:50 PM, 06 Aug 2019
    Понятно , что не всегда будет выгода, но индекс всегда в памяти
  • https://t.me/clickhouse_ru
    @klermonte #113155 01:52 PM, 06 Aug 2019
    Скорее всего под условие в where попадают все или большинство партов, поэтому выгоды нет
  • https://t.me/clickhouse_ru
    @241186216 #113156 01:53 PM, 06 Aug 2019
    Я про проверил на простом примере , если на вторую колонку наложить условие > чего то, то он юзает индекс
  • @shevchenko_denis #113157 01:54 PM, 06 Aug 2019
    Подскажите, новичку. Можно ли установить TTL на всю строку в таблице, а не на отдельные столбцы и как это сделать?
  • @Sazhenin #113158 01:54 PM, 06 Aug 2019
    /stat@combot
  • https://t.me/clickhouse_ru
    Хорошо, я не правильно выразился, индекс используется, но он ничего не отсекает, потому что значения ts в каждом парте от 0 до 9999999999, в результате кликхаус фулсканит
  • https://t.me/clickhouse_ru
    ага, на всю таблицу ставьте
  • Спасибо. Побоялся, что это оно всю таблицу дропнет 😊
  • https://t.me/clickhouse_ru
    оно дропнет все строки по условию TTL
  • https://t.me/clickhouse_ru
    up, драйвер вот этот https://github.com/kshvakov/clickhouse
    GitHub - ClickHouse/clickhouse-go: Golang driver for ClickHouse

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

  • https://t.me/clickhouse_ru
    У вас партиции по дате. а в индексе 3 поля. Сделайте ts первым
  • 🙏
  • https://t.me/clickhouse_ru
    @241186216 #113169 02:02 PM, 06 Aug 2019
    А что значит selected 2 parts by date, 2 parts by key...почему и по дате и по ключам ?
  • https://t.me/clickhouse_ru
    КХ умеет это (использовать индекс без префикса) и делает скип скан, если кардинальность префикса <100 в парте
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #113166 #113171 02:03 PM, 06 Aug 2019
    Пока сталкивался только с долгой выгрузкой на жирных селектах.
  • https://t.me/clickhouse_ru
    @241186216 #113172 02:03 PM, 06 Aug 2019
    А что значит кардинальность меньше 100 для конкретного парта
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113173 02:03 PM, 06 Aug 2019
    я ток что столкнулся что пишу nil в колонку у которой есть дефолт а оно ругается
  • https://t.me/clickhouse_ru
    order by a,b

    where b=? будет работать по индексу если у поля a мало возможных значений
  • https://t.me/clickhouse_ru
    @241186216 #113175 02:05 PM, 06 Aug 2019
    А он же не сможет узнать сколько значений поля
  • https://t.me/clickhouse_ru
    @241186216 #113176 02:06 PM, 06 Aug 2019
    У него есть только n значений в индексе
  • https://t.me/clickhouse_ru
    Посмотрите по ссылке, котораю я вам дал, кейс когда в запросе только дата, она там вторая в списке полей order by, там выбирается почти весь парт
  • https://t.me/clickhouse_ru
    @241186216 #113178 02:08 PM, 06 Aug 2019
    Спасибо. Я читал тот документ. Это понятно , что индекс не всегда выгоден. Вопрос как КХ решает . Когда выгоден , а когда нет
  • https://t.me/clickhouse_ru
    @klermonte #113179 02:08 PM, 06 Aug 2019
    Если по индексу получилось отсечь часть данных - индекс выгоден, не удалось - не выгоден
  • https://t.me/clickhouse_ru
    @241186216 #113180 02:09 PM, 06 Aug 2019
    Ок.т.е он обработал инлекс и если хотя бы один блок удалось отсечь , то он его юзает ?
  • https://t.me/clickhouse_ru
    create table test(a Int64, b Int64, c Int64, d String)
    engine=MergeTree partition by tuple() order by (a,b,c);

    insert into test select 1, 0, number, toString(number) from numbers(1000000);
    insert into test select 2, 2, number, toString(number) from numbers(100);
    insert into test select 3, 3, number, toString(number) from numbers(1000000);

    select count() from test prewhere c=1;
    1 rows in set. Elapsed: 0.002 sec. Processed 16.48 thousand rows, 131.87 KB (10.45 million rows/s., 83.58 MB/s.)

    select count() from test prewhere identity(c)=1;
    1 rows in set. Elapsed: 0.009 sec. Processed 2.00 million rows, 16.00 MB (224.66 million rows/s., 1.80 GB/s.)
  • https://t.me/clickhouse_ru
    @den_crane #113182 02:10 PM, 06 Aug 2019
    индекс используется для 3-го!!!! поля
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113183 02:10 PM, 06 Aug 2019
    а подскажите, я по глупости поставил дефолтному пользователю в кх пароль, можно его както удалить?
  • https://t.me/clickhouse_ru
    удалить файлик в users.d/default что-то
  • https://t.me/clickhouse_ru
    а где оно? чет не нахожу ничего похожего :(
  • https://t.me/clickhouse_ru
    новые пакеты при установке спрашивают пароль пользователя default и сохраняют в /etc/clickhouse-server/users.d/default-password.xml
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113187 02:14 PM, 06 Aug 2019
    а лучше прям файлик грохнуть или из него удалить пароль?
  • https://t.me/clickhouse_ru
    вы у админа спросите какие настройки default нужны вашей системе, у меня например портянка на пол экрана у default
  • https://t.me/clickhouse_ru
    @241186216 #113189 02:17 PM, 06 Aug 2019
    В терминах чтения . Что КХ называет ranges ?
  • https://t.me/clickhouse_ru
    а я себе локально поставил, тесты в драйвере поотлаживать)
  • https://t.me/clickhouse_ru
    ну тогда просто удаляйте
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113192 02:18 PM, 06 Aug 2019
    я удалил его из конфижика, стало окич, огромное спасибо ❤️
  • https://t.me/clickhouse_ru
    @241186216 #113193 02:23 PM, 06 Aug 2019
    А кто знает как Кх определяет кол-во потоков для чтения ? Если можно , киньте ссылку на исходный код сюда
  • https://t.me/clickhouse_ru
    @241186216 #113194 02:26 PM, 06 Aug 2019
    Вроде это зависит от parts by key ? Но я видел , что там связь не 1 к 1
  • @ThodinBizzz #113195 02:32 PM, 06 Aug 2019
    подскажите плиз, в докере подсунул в директорию
    /docker-entrypoint-initdb.d
    файлик schema.sql
    там создаю БД и таблицы.
    база создается, таблицы - нет. в логах ничего такого не увидел
    куда копать?

    если выполнить эти же запросы после запуска - таблицы создаются
  • @ThodinBizzz #113196 02:34 PM, 06 Aug 2019
    CREATE DATABASE IF NOT EXISTS pult_playback;

    CREATE TABLE IF NOT EXISTS pult_playback.test_table1
    (
    EventDate DateTime,
    CounterID UInt32,
    UserID UInt32
    ) ENGINE = MergeTree()
    PARTITION BY toYYYYMM(EventDate)
    ORDER BY (CounterID, EventDate, intHash32(UserID))
    SAMPLE BY intHash32(UserID);

    CREATE TABLE IF NOT EXISTS pult_playback.test_table3
    (
    EventDate DateTime,
    CounterID UInt32,
    UserID UInt32
    ) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/test_table', '{replica}')
    PARTITION BY toYYYYMM(EventDate)
    ORDER BY (CounterID, EventDate, intHash32(UserID))
    SAMPLE BY intHash32(UserID);
  • https://t.me/clickhouse_ru
    @DorianPeregrim #113197 02:34 PM, 06 Aug 2019
    Добрый вечер, коллеги. Не могу найти упоминаний о джойнах в материалайзед вью. Такое возможно?
  • https://t.me/clickhouse_ru
    Попробуй через баш с включенной опцией мультилайн.

    #!/bin/bash
    set -e

    clickhouse client -n <<-EOSQL
    // запросы
    EOSQL
  • https://t.me/clickhouse_ru
    @DorianPeregrim #113199 02:36 PM, 06 Aug 2019
    А вместо schema.sql подкинь schema.sh например
  • спасибо, попробую
  • @ThodinBizzz #113201 02:38 PM, 06 Aug 2019
    на докерхабе, человек делавший описание как раз уснул на этом месте, или ограничение там есть на символы
  • https://t.me/clickhouse_ru
    ну там кол-во тредов (если не задано, то половина от кол-ва cpu) умножается на мультипликатор стримов на тред, умножается на мультипликатор для движка merge если это мердж движок, умножается еще на чего-то для вроде дистрибьютид и дальше еще кучка всего
  • https://t.me/clickhouse_ru
    @241186216 #113203 02:39 PM, 06 Aug 2019
    Т.е максимум - это половина цпу?
  • https://t.me/clickhouse_ru
    нет, наоборот, это минимум
  • https://t.me/clickhouse_ru
    возможно, только самые простые, и лучше не надо (лучше словарь)
    MV конечно срабатывает только на левую таблицу
  • https://t.me/clickhouse_ru
    @241186216 #113206 02:43 PM, 06 Aug 2019
    Па максимум какой ?
  • https://t.me/clickhouse_ru
    без понятия, вам зачем?
  • https://t.me/clickhouse_ru
    @241186216 #113208 02:45 PM, 06 Aug 2019
    Для интереса. Кстати максимум все же похож на половину от всех ядер, как вы сказали изначально. Сейчас взял огромную таблицу. Минимум - соответственно 1, когда одна парта .маленькая
  • https://t.me/clickhouse_ru
    @241186216 #113209 02:46 PM, 06 Aug 2019
    Смотрю , что он в пайплайн пишет . В логе
  • https://t.me/clickhouse_ru
    ну задайте max_streams_to_max_threads_ratio=10 и max_streams_multiplier_for_merge_tables=10
    и посмотрите на новый максимум
  • https://t.me/clickhouse_ru
    @den_crane #113211 02:47 PM, 06 Aug 2019
    т.е. при max_threads=10 и max_streams_to_max_threads_ratio=10 будет 100
  • https://t.me/clickhouse_ru
    Спасибо, а про словарь, это куда мне гуглить? Или можно ссылку, если не сложно?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Спасибо
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113215 03:11 PM, 06 Aug 2019
    @kshvakov кажется дефолты совсем не обрабатываются завел ишуй, https://github.com/kshvakov/clickhouse/issues/199
    Columns with DEFAULT values not inserted · Issue #199 · kshvakov/clickhouse

    When is insert nil value in column that has DEFAULT specified i receive exception: Here example how to reproduce it: package main import ( "fmt" "log" "...

  • https://t.me/clickhouse_ru
    @414125887 #113216 03:12 PM, 06 Aug 2019
    Skipping Indice type set(n) работают только для пропуска по условию в where? Если нужно посчитать уникальные ID, есть ли смысл собирать их в set?
  • https://t.me/clickhouse_ru
    Вы же колонки при инсерте явно задаёте
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113218 03:24 PM, 06 Aug 2019
    я вот ща попробовал через cli сделать то же и не вышло, у меня просто поток однородных инсертов, где то есть пропуски, хочу их заполнить дефолтами.
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113219 03:25 PM, 06 Aug 2019
    сейчас я крэшусь, разбивать это на кучку инсертов с пропусками не вариант
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113220 03:25 PM, 06 Aug 2019
    😩
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113221 03:25 PM, 06 Aug 2019
    я искренне ожидал что nil будет интерпретирован как пропуск :(
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113222 03:26 PM, 06 Aug 2019
    судя по коду там такой штуки как дефолт в инсерте нигде нету.

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

    "посчитать" в смысле кол-во? в aggregating можно uniqState хранить/считать
  • https://t.me/clickhouse_ru
    Спасибо, да, смотрел в сторону -State, буду пробовать
  • https://t.me/clickhouse_ru
    что ? какой nil ? вы про какой формат вообще? values ? TSV ? JSON ?
  • https://t.me/clickhouse_ru
    @414125887 #113227 03:32 PM, 06 Aug 2019
    разве что для uniqExact это полный список...
  • https://t.me/clickhouse_ru
    я тогда вообще не понял
  • https://t.me/clickhouse_ru
    Есть пять таблиц со смежными данными. Хочу достать из них всех данные за день, сгруппировать по дате и записать в новую таблицу
  • https://t.me/clickhouse_ru
    @den_crane #113230 03:36 PM, 06 Aug 2019
    >данные за день
    звучит как будто вам cron нужен а не MV
  • https://t.me/clickhouse_ru
    @DorianPeregrim #113231 03:37 PM, 06 Aug 2019
    Ну хотелось максимально все сделать средствами КХ
  • @bovops #113232 03:38 PM, 06 Aug 2019
    Вопрос знатокам, что будет, если в show processlist висят несколько optimize table final на одну таблицу?
  • https://t.me/clickhouse_ru
    тогда вам надо понять что MV это триггер на инсерт который не ходит в таблицу.
    а словари позволяют сделать примерно все тоже самое что и join
  • https://t.me/clickhouse_ru
    это в терминологии го NULL
  • https://t.me/clickhouse_ru
    формат там нативный, и судя по тому что я вижу в нативном фомрате нельзя задать DEFAULT-уемую колонку и не передать ее значение.
  • https://t.me/clickhouse_ru
    так в ANSI SQL тоже нельзя.

    insert into X (a) values (Null) положит Null
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113237 03:41 PM, 06 Aug 2019
    а если колонку не нулабельная?
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113238 03:42 PM, 06 Aug 2019
    насколько я помню по стандарту положено ключевое слово DEFAULT
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113239 03:47 PM, 06 Aug 2019
    раньше вставлялось как JSONEachRow и работало хорошо, а вот когда попробовал через нативный интерфейс сломалось :(
  • https://t.me/clickhouse_ru
    default задает в поле таблицы и заполняется если поле опущено в insert

    insert into X (b) values (1) положит Null или Default в колонку a , потому что ее не было в insert

    PG:

    create table X(a int default 5, b int default 44);
    insert into X(b) values(null);
    select * from X;
    a | b
    ---+---
    5 |
    (1 row)
  • https://t.me/clickhouse_ru
    да, я понимаю но есть вот такое:
    create table X(a int default 5, b int default 44);
    insert into x(a, b) values (default, default);
    select * from x;
    5 44
  • https://t.me/clickhouse_ru
    @den_crane #113242 04:02 PM, 06 Aug 2019
    удивительно, не знал такого
  • https://t.me/clickhouse_ru
    @den_crane #113243 04:03 PM, 06 Aug 2019
    видимо фича постгре
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113244 04:03 PM, 06 Aug 2019
    наверное надо ишуй завести?
  • https://t.me/clickhouse_ru
    эт вроде в стандарте есть 🤔
  • https://t.me/clickhouse_ru
    Как минимум в мелкомягком SQL тоже имеется. Стандарты SQL92 и прочие не читал так что хз
  • https://t.me/clickhouse_ru
    @den_crane #113247 04:06 PM, 06 Aug 2019
    ну вон кстати есть такой fr https://github.com/yandex/ClickHouse/issues/6331
    Add support for DEFAULT keyword for INSERT statement · Issue #6331 · yandex/ClickHouse

    Use case create table table1 ( field1 Int32, field2 Int32, field3 Int32 default CAST(1337, 'Int32'), field4 Int32 default CAST(1337, 'Int32') )engine = MergeTree() P...

  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113248 04:06 PM, 06 Aug 2019
    свежее) вчера открытое)
  • https://t.me/clickhouse_ru
    @den_crane #113249 04:08 PM, 06 Aug 2019
    Настройки | Документация ClickHouse

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

  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113250 04:08 PM, 06 Aug 2019
    да, с JSONEachRow это работает, потому что оно транслируется в пропущенный филд
  • @vejed #113251 04:11 PM, 06 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @240459995 #113252 04:21 PM, 06 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @igor_dia #113253 04:29 PM, 06 Aug 2019
    а как посмотреть, какие текущие запросы сейчас КХ выполняет?
  • https://t.me/clickhouse_ru
    show processlist
  • https://t.me/clickhouse_ru
    1. с sse скорее все хорошо, падает специальный тест .
    а сам сервер говорит что
    Start clickhouse-server service: Cannot obtain value of path from config file: /etc/clickhouse-server/config.xml
    и это надо исправить.
    2. release можно не исправлять а запускать так:
    env CMAKE_FLAGS="-DHAVE_SSE41=0 -DHAVE_SSE42=0 -DHAVE_POPCNT=0 -DHAVE_PCLMULQDQ_INTRIN=0 -DPCLMULFLAG=' '" ./release
    3. если собирать на том же сервере где планируется запускать - никакие HAVE_* выключать не нужно - все определится автоматически.
    итого - подложить правильный конфиг и собирать просто через ./release
  • https://t.me/clickhouse_ru
    Спасибо за подробное объяснение, на неделе попробую с этим разобраться
  • https://t.me/clickhouse_ru
    @iusik #113257 07:28 PM, 06 Aug 2019
    У меня есть кластер из трех серверов.
    Все таблице работают с шардированием и одной репликой локальной.
    Хочу для каждего сервера еще добавить реплики.
    Мне достаточно обновить конфиги трех серверов и запустить новые сервера для реплики. И все само засинхронизируется в новых серверах. Верно ?
  • https://t.me/clickhouse_ru
    Если есть зукипер и таблицы Replicated... то да
  • https://t.me/clickhouse_ru
    @iusik ↶ Reply to #113258 #113259 07:46 PM, 06 Aug 2019
    Супер, спасибо!
  • https://t.me/clickhouse_ru
    репликация (replicated engine) не имеет отношения к конфигам.
    У вас на старом сервере есть таблица Engine = Replicated ('/zk_path/{shard}/tttt','{replica}') shard и replica заданы (через конфиги - макросы), в тот момент когда на новом сервере вы создадите таблицу с таким же zk_path/{shard}/tttt и другим replica, начнется репликация.
  • https://t.me/clickhouse_ru
    а вам не поможет настройка input_format_null_as_default?
  • https://t.me/clickhouse_ru
    а как ее задать? в частности для нативного формата? (например cli)
  • https://t.me/clickhouse_ru
    @klermonte #113263 08:03 PM, 06 Aug 2019
    set input_format_null_as_default = 1
  • https://t.me/clickhouse_ru
    @klermonte #113264 08:04 PM, 06 Aug 2019
    ой, оно ж для csv, невнимательно прочитал(
  • @eugene_sd #113265 08:05 PM, 06 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @stovm #113266 08:15 PM, 06 Aug 2019
    Кто-нибудь знает, как победить
    Table functions are forbidden in readonly mode ?
    Я пытаюсь в SuperSet связать таблицы с разных кластеров и получаю это. При этом табиксу легко удаётся справиться с таким запросом.
  • https://t.me/clickhouse_ru
    @stovm #113267 08:16 PM, 06 Aug 2019
    Попробовал даже создать view с remote на другой кластер, но получил тот же результат
  • https://t.me/clickhouse_ru
    @stovm #113268 08:21 PM, 06 Aug 2019
    То есть почему select from remote…. не подпадает под условие на readonly?
  • https://t.me/clickhouse_ru
    @krokodile #113269 08:24 PM, 06 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    http POST vs GET ? get -- read only
  • https://t.me/clickhouse_ru
    @stovm #113271 08:27 PM, 06 Aug 2019
    Понимаю. Просто если мы для всех заменим, то откроются пользователям возможности, которые не хотелось бы открывать
  • https://t.me/clickhouse_ru
    @stovm #113272 08:27 PM, 06 Aug 2019
    То есть я не готов идти на разрешение DDL через SuperSet, но хочу всё же использовать remote
  • https://t.me/clickhouse_ru
    что??????

    When using the GET method, 'readonly' is set. In other words, for queries that modify data, you can only use the POST method. You can send the query itself either in the POST body, or in the URL parameter.
  • https://t.me/clickhouse_ru
    @stovm #113274 08:30 PM, 06 Aug 2019
    1 — Only read data queries are allowed.
  • https://t.me/clickhouse_ru
    @stovm #113275 08:30 PM, 06 Aug 2019
    select from remote - это не read?
  • https://t.me/clickhouse_ru
    @stovm ↶ Reply to #113273 #113276 08:31 PM, 06 Aug 2019
    тут понял, что 2 настройки регулируют. Да
  • https://t.me/clickhouse_ru
    вы путаетесь в показаниях, табикс бы тоже не работал
  • https://t.me/clickhouse_ru
    @stovm #113278 08:32 PM, 06 Aug 2019
    Вероятно, табикс и суперсет работают по-разному. Я как раз и хочу понять в чём разница
  • https://t.me/clickhouse_ru
    если у пользователя 1 — Only read data queries are allowed. то таббикс так же точно не сможет remote
  • https://t.me/clickhouse_ru
    @stovm #113280 08:42 PM, 06 Aug 2019
    ну как есть
  • https://t.me/clickhouse_ru
    @stovm #113281 08:42 PM, 06 Aug 2019
    пользователь у нас один
  • https://t.me/clickhouse_ru
    @stovm #113282 08:51 PM, 06 Aug 2019
    В общем посмотрел в query_log. Для запроса из SS: readonly = 1. А для запроса из Tabix нет readonly параметра. Пользователь один и тот же.
    http_method = 2
    Значит, SS сам что ли выставляет readonly в запросе? о_О
  • https://t.me/clickhouse_ru
    @Zhanna_3 #113283 08:51 PM, 06 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    LightHouse точно выставляет вручную, может быть SuperSet тоже это делает?
  • https://t.me/clickhouse_ru
    @stovm #113285 08:52 PM, 06 Aug 2019
    О, Жанна)
  • https://t.me/clickhouse_ru
    @Zhanna_3 #113286 08:52 PM, 06 Aug 2019
    🙋🏻‍♀️
  • https://t.me/clickhouse_ru
    @stovm ↶ Reply to #113284 #113287 08:53 PM, 06 Aug 2019
    Это было бы очень странно
  • https://t.me/clickhouse_ru
    @stovm ↶ Reply to #113275 #113288 08:56 PM, 06 Aug 2019
    но на самом деле это всё не отменяет этого вопроса
  • https://t.me/clickhouse_ru
    @den_crane #113289 08:59 PM, 06 Aug 2019
    Table function is just a way to dynamically create a table for single query.
  • https://t.me/clickhouse_ru
    @den_crane #113290 09:00 PM, 06 Aug 2019
    https://tabix.io/doc/Requirements/
    readonly user can if setting readonly=2
  • https://t.me/clickhouse_ru
    @d_step #113291 09:01 PM, 06 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    Не обязательно. Ты можешь в теории с помощью remote подключиться к произвольному серверу, который доступен только с сервера ClickHouse, но не снаружи. Это потенциально небезопасно, даже если технически это будет всегда read
  • https://t.me/clickhouse_ru
    @stovm #113293 09:03 PM, 06 Aug 2019
    Ммм. Ок. В общем, выяснил, мы из SS специально передаём readonly. Буду дальше думать, - всем спасибо!
  • 07 August 2019 (258 messages)
  • https://t.me/clickhouse_ru
    @metikovvadim #113294 05:15 AM, 07 Aug 2019
    Вопрос к знатокам. Если в логах по ИД потока, выполняющего INSERT INTO ...
    я вижу:<Debug> default.graphite_day (Replicated OutputStream): Wrote block with ID '20190807_4408477239303692248_10282740961717760983', 1001096 rows
    значит, вставился 1М строк, верно ?
  • https://t.me/clickhouse_ru
    @studnev #113295 06:20 AM, 07 Aug 2019
    Как настроить частично обновляемый словарь? В документации не нашель
  • https://t.me/clickhouse_ru
    @studnev #113296 06:21 AM, 07 Aug 2019
    @milovidov_an говорил это можно делать, но как?
  • https://t.me/clickhouse_ru
    <source>
    <mysql>
    <update_field>
    date_add(updated_date, interval 15 minute)
    </update_field>

    В документации нет, действительно
  • @SWx5YQ #113298 07:27 AM, 07 Aug 2019
    Вопрос: можно ли настроить шардинг в пределах одного сервера?
    Например, для 3 серверов:

    1. шарды 1 и 2
    2. шарды 2 и 3
    3. шарды 1 и 3
  • https://t.me/clickhouse_ru
    @altlinux #113299 07:27 AM, 07 Aug 2019
    Joined.
  • @SWx5YQ #113300 07:27 AM, 07 Aug 2019
    почитал доки, вроде как 1 сервер - 1 шард, это действительно так?
  • https://t.me/clickhouse_ru
    Дык що мешает в пределах одного хоста развернуть 100500 инстансов КХ, каждый на своем порту?
  • @SWx5YQ #113302 07:29 AM, 07 Aug 2019
    каждый инстанс кушает дополнительные ресурсы
  • https://t.me/clickhouse_ru
    @Yuri_Velgosha #113303 07:29 AM, 07 Aug 2019
    :) В продукшене так никто не делает, а для тестов - самое оно.
  • @SWx5YQ #113304 07:30 AM, 07 Aug 2019
    то есть я прав?
  • @SWx5YQ #113305 07:30 AM, 07 Aug 2019
    1 сервер - 1 шард?
  • https://t.me/clickhouse_ru
    @Yuri_Velgosha #113306 07:30 AM, 07 Aug 2019
    Нет. 1 инстанс КХ - один шард.
  • @SWx5YQ ↶ Reply to #113306 #113307 07:31 AM, 07 Aug 2019
    ну да, сервер КХ имелся ввиду (как процесс) 🙂
  • https://t.me/clickhouse_ru
    @Yuri_Velgosha #113308 07:32 AM, 07 Aug 2019
    Ну я под сервером таки понимаю 1 виртуалку или физисский хост. А вот инстанс - енто таки сервис :)
  • @SWx5YQ #113309 07:32 AM, 07 Aug 2019
    )))
  • @SWx5YQ #113310 07:32 AM, 07 Aug 2019
    спасибо за ответ
  • https://t.me/clickhouse_ru
    Хогвардс рулит
  • https://t.me/clickhouse_ru
    А смысл?
  • @SWx5YQ ↶ Reply to #113315 #113316 07:58 AM, 07 Aug 2019
    Запрос выполняется в три раза быстрее, данные реплицтруются
  • https://t.me/clickhouse_ru
    Можно, у меня именно такая конфигурация. Насчёт более быстрых запросов - не обольщаться. Вдумчиво смотреть на необходимые IOPS, на HDD захлебнуться элементарно.
  • https://t.me/clickhouse_ru
    А, именно цикличная репликация имеется в виду? Не понял сразу.
  • https://t.me/clickhouse_ru
    @blind_oracle #113319 08:04 AM, 07 Aug 2019
    Circular Replication Cluster Topology in ClickHouse

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

  • https://t.me/clickhouse_ru
    @blind_oracle #113320 08:05 AM, 07 Aug 2019
    Я так живу, все ок
  • https://t.me/clickhouse_ru
    @AG64TG #113321 08:07 AM, 07 Aug 2019
    Joined.
  • @mminaev #113322 08:07 AM, 07 Aug 2019
    Всем привет, подскажете пожалуйста, у меня есть таблица типа replicated merge tree, если я хочу добавить колонку, мне нужно это сделать на 1 ноде или на всех?
  • https://t.me/clickhouse_ru
    Можно, но мы не очень советуем, если честно. Скажем, ON CLUSTER не работает, есть и другие неудобства
  • https://t.me/clickhouse_ru
    на всех. Можно ON CLUSTER написать
  • https://t.me/clickhouse_ru
    Ну, зависит от юзкейса. Для меня очень подходит, нагрузка не очень большая, позволяет не плодить сервера. ON CLUSTER я не юзаю - разливаю всё через Ansible
  • https://t.me/clickhouse_ru
    можно же проще: <update_field>updated_at</update_field>
  • https://t.me/clickhouse_ru
    @studnev #113327 08:15 AM, 07 Aug 2019
    он же все равно запоминает timestamp последней прочитанной записи
  • @mboitsov #113328 08:29 AM, 07 Aug 2019
    Всем доброго дня!

    Кто-нибудь может подсказать, как в Clickhouse можно реализовать механизм с start_date И end_date?
    Например: есть таблица с полями ключ/значение/start_date/end_date
    В ней есть строка:
    1 val1 2019-08-05 NULL
    Прилетела еще строка:
    1 val2 2019-08-08 NULL
    Соответственно, состояние таблицы должно стать таким:
    1 val1 2019-08-05 2019-08-08
    1 val2 2019-08-08 NULL

    Как это можно реализовать в Clickhouse?
  • https://t.me/clickhouse_ru
    можно через aggregatedMergeTree попробовать, при помощи функции argMax
  • @mboitsov #113330 08:31 AM, 07 Aug 2019
    Спасибо за информацию! Посмотрю!
  • https://t.me/clickhouse_ru
    если чуть поточнее опишите, что требуется, постараюсь подробнее подсказать
  • @mboitsov #113332 08:35 AM, 07 Aug 2019
    Датаволт, сателлит
  • @mboitsov #113333 08:35 AM, 07 Aug 2019
    Нужно иметь date_end
  • https://t.me/clickhouse_ru
    @241186216 #113334 08:36 AM, 07 Aug 2019
    В TinyLog нет засечек и это приводит у тому , что запросы на нем не могут работать в параллель. В джижке Log есть засечки и на каждую колону - отдельный файл.т.е можно параллелить и читать только одну колонку. В движке StripeLog ест засечки, но все колонки в одном файле. Зачем он нужен ,иемли есть log ?
  • https://t.me/clickhouse_ru
    Автоматически вставлять запись для предыдущего значения с end_date, где end_date - это start_date текущего значения не получится (насколько я знаю).
    Если только вручную вставлять старое значение и проставлять end_date. Тогда можно будет сделать materialized view, которая будет записи, где end_date is not null писать в отдельную таблицу, а по ней уже делать эффективный поиск
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113336 08:49 AM, 07 Aug 2019
    а подскажите как из запроса под Distributed таблице вытянуть имя шарда?
  • https://t.me/clickhouse_ru
    Лучше с перехлестом, чтобы не пропустить что-то
  • https://t.me/clickhouse_ru
    hostName()
  • https://t.me/clickhouse_ru
    @studnev #113339 08:50 AM, 07 Aug 2019
    Это не очень понятно
  • https://t.me/clickhouse_ru
    @studnev #113340 08:50 AM, 07 Aug 2019
    Он же запоминает
  • https://t.me/clickhouse_ru
    У тебя может прилететь что-то в mysql в момент апдейта словаря.
  • ПОнял, спасибо за инфу, попробую посмотреть вариант с argmax, мб получится
  • https://t.me/clickhouse_ru
    так индекс работать не будет
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113344 08:55 AM, 07 Aug 2019
    а можно как то создать Distributed таблицу создать на кластере?
  • https://t.me/clickhouse_ru
    @heavycharged #113345 08:58 AM, 07 Aug 2019
    какой функцией можно строку md5, подобную этой 2a9fab266cf3acb3c51d6922970d8b5e, вернуть обратно в бинарное представление, чтобы записать в тип FixedString(16)?
  • https://t.me/clickhouse_ru
    В теории, если на каждой ноде кластера. Только зачем?
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113347 09:01 AM, 07 Aug 2019
    что бы на каждую ноду кластера ходжить и стучать в дистр табличку?)
  • https://t.me/clickhouse_ru
    это понятно, только не ясно, что это дает. Запрос в любом случае пойдет на все шарды, на которые смотрит эта таблица
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113349 09:03 AM, 07 Aug 2019
    ну да, в целом согласен, у меня просто код делает клиенсткую балансировку по доступным хостам кликхауса и с дистр таблицами мне может не повезти)
  • https://t.me/clickhouse_ru
    Будет. Либо через интервалы
  • https://t.me/clickhouse_ru
    @serjnarbut #113351 09:15 AM, 07 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Он запоминает свое локальное время. https://github.com/yandex/ClickHouse/issues/6084
    Configurable shifting parameter (lag) for partial dictionary update instead of hardcoded 1s. · Issue #6084 · yandex/ClickHouse

    Currently CH uses hardcoded (-1 sec) lag. https://github.com/yandex/ClickHouse/blob/master/dbms/src/Dictionaries/HTTPDictionarySource.cpp#L58 time_t hr_time = std::chrono::system_clock::to_time_t(t...

  • https://t.me/clickhouse_ru
    Мне @milovidov_an по другому рассказывал
  • https://t.me/clickhouse_ru
    @studnev #113355 09:48 AM, 07 Aug 2019
    Это беда если так
  • https://t.me/clickhouse_ru
    @studnev #113356 09:48 AM, 07 Aug 2019
    Его локальное время никакого отношения к обновлению не имеет ведь
  • https://t.me/clickhouse_ru
    Он рассказывал вам как он хочет сделать. На самом деле нет хорошего варианта. Из-за транзакций в бекенде нужен лаг и да вычитать 15мин. это правильный воркэраунд для обхода commited read.
  • Я рассказывал, что там есть проблема с локальным временем.
  • https://t.me/clickhouse_ru
    Если бы. Я считаю что нужно локальное и удаленное использовать нельзя. Потому что с удаленным я начну грузить одни и теже 1000000записей у которых время не двигается.
  • https://t.me/clickhouse_ru
    @den_crane #113360 09:56 AM, 07 Aug 2019
    Data can be skipped when using partial dictionary updates · Issue #2847 · yandex/ClickHouse

    I am experimenting with partial dictionary updates using the update_field parameter. I found out that time_point is increased after every update, even if there was an error. Because of that data ca...

  • https://t.me/clickhouse_ru
    В некоторых usecase страйплог быстрее потому что надо прочить все целиком (все поля insert into x select * from stripelog) и получается меньше random i/o
  • StripeLog нужен для сценария, в котором есть много таблиц маленького размера, но с большим количеством столбцов. Для примера, в Яндекс.Метрике, в таблицах типа StripeLog хранятся данные, представляющие собой очередь задач на обработку.
  • https://t.me/clickhouse_ru
    select unhex('2a9fab266cf3acb3c51d6922970d8b5e')
  • @githubreleases_bot #113364 b o t 10:33 AM, 07 Aug 2019
    yandex/ClickHouse tagged: v19.13.1.11-stable
    Link: https://github.com/yandex/ClickHouse/releases/tag/v19.13.1.11-stable
    Release notes:
    v19.13.1.11-stable
    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
    Благодарю, разобрался. Сработало через toFixedString(unhex(field), 16)
  • https://t.me/clickhouse_ru
    @omiso_ho #113366 10:39 AM, 07 Aug 2019
    SELECT count(*)
    FROM table_event_visitors
    WHERE toDate('2019-02-01') < visited AND visited < addMonths(toDate('2019-02-01'), 1)
    После добавления «AND visited < addMonths(toDate('2019-02-01'), 1)» запрос перестает работать. Что не так?
  • https://t.me/clickhouse_ru
    @den_crane #113369 10:47 AM, 07 Aug 2019
    > < мозг ломает.
    visited может быть больше чем 1-е марта
  • https://t.me/clickhouse_ru
    @omiso_ho #113370 10:48 AM, 07 Aug 2019
    Точно! Опечатка была. Всё норм работает
  • @VipeRock #113371 10:56 AM, 07 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @omiso_ho #113372 11:03 AM, 07 Aug 2019
    WITH '2019-02-01', '2019-03-01', '2019-04-01' as date
    SELECT count()
    FROM table_event_visitors
    WHERE toStartOfMonth(toDate(date)) < visited AND visited > addMonths(toStartOfMonth(toDate(date)), 1)
    Получить статистику по месяцам. Как сделать for date in '2019-02-01', '2019-03-01', '2019-04-01’, чтобы все уместилось в одном запросе?
  • https://t.me/clickhouse_ru
    @Sablast #113373 11:25 AM, 07 Aug 2019
    v19.13.1.11-stable - подскажите, как в этой ветке обстоят дела с kafka?
  • https://t.me/clickhouse_ru
    @mv_smirnov #113374 11:27 AM, 07 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @mv_smirnov #113375 11:28 AM, 07 Aug 2019
    Всем привет! Подскажите куда смотреть и что проверить. при создании материализованного представления на 88% возникает ошибка "Code: 9. DB::Exception: Received from localhost:9000. DB::Exception: Size of filter doesn't match size of column."
  • https://t.me/clickhouse_ru
    @aoberon #113376 11:29 AM, 07 Aug 2019
    всем привет! подскажите, а можно как-то заставить работать ASOF LEFT JOIN не по условию "меньше или равно" а по "больше или равно"? менять таблицы местами не хочется т.к. нужен именно LEFT JOIN (помог бы RIGHT JOIN, но ASOF с ним не работает). Есть какие-то воркэраунды для этого?
  • https://t.me/clickhouse_ru
    Привет. Если колонки целочисленные, то можно их negate две обе
  • @110657893 #113378 12:42 PM, 07 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    подписывайтесь на тикет https://github.com/yandex/ClickHouse/issues/6337
    Support for `<`, `<=`, `>`, `>=` operator with ASOF join. · Issue #6337 · yandex/ClickHouse

    It would be useful, for example, if we want to join previous entity state to current state. CREATE TABLE states ( entity_id UUID state INT8 timestamp DateTime ) SELECT state AS cur_state, prev_stat...

  • https://t.me/clickhouse_ru
    @chertus #113380 12:46 PM, 07 Aug 2019
    вокрэраунд, делать asof join, прибавлять небольшое смещение и делать его еще раз. но тут без гарантий что смещение поможет
  • @110657893 #113381 12:49 PM, 07 Aug 2019
    Ребята, у меня есть задача записывать события, а через некоторое время (довольно долгое) дописывать в них дополнительные параметры. Я думаю сделать две таблицы, в одну писать сразу, во вторую по мере поступления данных (по которым потом будут делаться выборки). Подскажите пожалуйста, нормальная ли это идея, или может в кликхаусе что-то появилось (не следил за разработкой примерно пол года) что позволяет делать update по таблице, или еще что-то что решает эту задачу. Может есть какие-то бестпрактис?
  • https://t.me/clickhouse_ru
    @AppKiv #113382 12:51 PM, 07 Aug 2019
    Joined.
  • В зависимости от того, какие события и что дозаписывать. Большинство подобных проблем решается через Summing/Collapsing или Aggregating MergeTree
  • Поссотрите, pull requests с исправлением Kafka ещё не закрыты?
  • @simpl1g #113385 12:53 PM, 07 Aug 2019
    Fix infinite loop when reading Kafka messages by abyss7 · Pull Request #6354 · yandex/ClickHouse

    I hereby agree to the terms of the CLA available at: https://yandex.ru/legal/cla/?lang=en For changelog. Remove if this is non-significant change. Category (leave one): Bug Fix Short description ...

  • Мне нужно дописывать в новые колонки, задача примерно такая: есть событие, к примеру, пользователь зашел на страницу (колонки UserId, Date, UserAgent и т.д.), после по UserId используя внешний сервис подтягиваются дополнительные параметры (колонки Sex, Age и т.д.), количество запросов к внешнему сервису ограничено, поэтому планируется что детализация будет происходить раз в сутки. Насколько я понимаю эту задачу нельзя решить через Summing/Collapsing или Aggregating MergeTree, исправьте меня если я ошибаюсь.
  • https://t.me/clickhouse_ru
    @klermonte #113387 12:59 PM, 07 Aug 2019
    заведите отдельную таблицу и пишите в нее, а потом через джойн доставайте данные из обеих
  • Кстати, на сколько я помню - тут подобный кейс:
    https://www.youtube.com/watch?v=5KQsNmRTQmg
    Разгоняем обработку событий до 1.6М/сек. Опыт Badoo / Александр Крашенинников (Badoo)

    Приглашаем на Saint HighLoad ++ 2021 20 и 21 сентября 2021, Санкт-Петербург, DESIGN DISTRICT DAA in SPB Программа, билеты и подробности - https://clck.ru/VmKaW -------- HighLoad++ Moscow 2018 Тезисы и презентация: http://www.highload.ru/moscow/2018/abstracts/4132 Три года назад на Highload++ я рассказывал, как мы построили масштабируемую систему near-realtime обработки событий. С тех пор она эволюционировала, в процессе росли объёмы, и нам приходилось решать задачи, сопутствующие любому проекту с нагрузкой — масштабирование, отказоустойчивость и прочие. В определённый момент мы достигли точки, когда потребовались радикальные меры, а именно — смена технологического стека. В докладе я расскажу, как мы заменили связку Spark + Hadoop на ClickHouse, в три раза сэкономили железо и увеличили нагрузку в пять раз (с 300 000 событий в секунду до 1 600 000 в пике). -------- Нашли ошибку в видео? Пишите нам на support@ontico.ru

  • джойн слишком сильно ударит по производительности как мне кажется
  • Ребята из видоса пишут в массивы eventName и eventValue. А не в отдельные колонки. Вы можете сделать также, а потом, как уже вам удобно собирать, когда вам будет удобно.
  • Сейчас посмотрю видео, спасибо
  • https://t.me/clickhouse_ru
    @ikitiki #113392 01:06 PM, 07 Aug 2019
    https://github.com/adjust/clickhouse_fdw
    — postgresql clickhouse fdw, который умеет в бинарный и http протокол, может кому будет полезен
    GitHub - adjust/clickhouse_fdw: ClickHouse FDW for PostgreSQL

    ClickHouse FDW for PostgreSQL. Contribute to adjust/clickhouse_fdw development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    19.1 ? 19.6? поле nullable ?
  • https://t.me/clickhouse_ru
    19.11.3.11 ни одного nullable нет
  • https://t.me/clickhouse_ru
    @mv_smirnov #113395 01:28 PM, 07 Aug 2019
    запустил CHECK TABLE, но кажется независимо от его результатов придётся truncate ить таблицу и все материализованные представления на ней и перезаливать данные(( 1.2T
  • https://t.me/clickhouse_ru
    @forward32 #113396 01:33 PM, 07 Aug 2019
    Есть ли способ искуственно притормозить выполнение запроса (чтобы потестить max_execution_time, например?
    Смотрю в сторону функции sleep(seconds), но пока не понял, как ее юзать.
  • @hhhackkk #113397 01:34 PM, 07 Aug 2019
    /stat@combot
  • https://t.me/clickhouse_ru
    у меня не получилось т.к. sleep спит только один раз, а потом его результат кешируется
  • https://t.me/clickhouse_ru
    @mv_smirnov #113400 01:39 PM, 07 Aug 2019
    CHECK TABLE вернул 0 - данные в таблице повреждены. в логе сервера нет никакой информации ни о партиции ни о кусочке ни о колонке((
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113401 01:47 PM, 07 Aug 2019
    привет, а подскажите то что на 100 шардах дистр табличка выполняется тривиальный запрос 70 секунд, это же не норма? Как это дебажить та
  • https://t.me/clickhouse_ru
    select sleep(1) from numbers(10) format Null settings max_block_size=1
  • https://t.me/clickhouse_ru
    а если
    set max_threads=100
    перед запросом

    дебажить --send_logs_level = debug
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113404 01:50 PM, 07 Aug 2019
    Connection failed at try №1, reason: Code: 209, e.displayText() = DB::NetException: Timeout: connect timed out
    оога, какой то из хостов болеет?
  • https://t.me/clickhouse_ru
    сколько летенси? ping? один датацентр?
  • https://t.me/clickhouse_ru
    3 дц, латенси 10-15мс
  • https://t.me/clickhouse_ru
    @den_crane #113407 01:51 PM, 07 Aug 2019
    у яндекса 50мс таймаут по дефолту
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113408 01:51 PM, 07 Aug 2019
    300 хостов, 100 шардов по 3 хоста
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113409 01:51 PM, 07 Aug 2019
    а можно как то сказать что мне 80% хостов хватит?
  • https://t.me/clickhouse_ru
    @den_crane #113410 01:52 PM, 07 Aug 2019
    я себе ставлю <connect_timeout_with_failover_ms>1000</connect_timeout_with_failover_ms>
  • https://t.me/clickhouse_ru
    тут у вас все 3 реплики 3 раза не ответили за 50мс
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113412 01:53 PM, 07 Aug 2019
    ога
  • https://t.me/clickhouse_ru
    @den_crane #113413 01:55 PM, 07 Aug 2019
    ну и Яндекс рекомендует субкластеры из 20 нод, т.к. при распределенном запросе на более чем 20 нод вероятность сетевой ошибки и в итоге падение запроса слишком велики
  • Посмотрел видео, не совсем понимаю как этот подход решит мою проблему. Но стало интересно почему они отказались от широких таблиц и как к этому подходу относится Алексей Миловидов ))
  • https://t.me/clickhouse_ru
    спасибо!
  • https://t.me/clickhouse_ru
    насколько позже данные приезжают? Вам точно надо в КХ писать неполные данные? Чаще всего эту проблему решают до dwh, на этапе ETL. Я использую кассандру.
  • планируется что где-то через сутки, а статистика по событиям с неполными данными нужна сразу к сожалению
  • https://t.me/clickhouse_ru
    @iv_samokhin #113418 01:59 PM, 07 Aug 2019
    Добрый вечер.
    Есть задача перенести данные из одной таблицы в другую c изменением части данных.

    Простой INSERT INTO table1 SELECT ... FROM table2 работает очень долго (~ 80MB/s). Хочется запустить несколько таких запросов паралельно с указанием разных промежутков по времени
    (INSERT INTO table1 SELECT ... FROM table2 WHERE date >= t1 and date < t2;
    INSERT INTO table1 SELECT ... FROM table2 WHERE date >= t2 and date < t3; ...)

    Так делают? И нужно ли тут на что-то обратить внимание при выполнении?
  • https://t.me/clickhouse_ru
    ну я бы хранил эти данные еще дополнительно где-то (в кассандре например) и по приезду всех данных либо перезаписывал в КХ заново (replacing) либо писал во вторую таблицу. В принципе aggregating тоже позволяет такое, но зависит от кол-ва данных.
  • https://t.me/clickhouse_ru
    Делают. Это пока единственный способ ускорить
  • https://t.me/clickhouse_ru
    Спасибо
  • А что вы имеете в ввиду под replacing? Во вторую таблицу имеется ввиду копию первой таблицы + дополнительные данные, и в зависимоти от задачи забирать данные либо из первой, либо из второй?
  • https://t.me/clickhouse_ru
    --skip_unavailable_shards
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113424 02:04 PM, 07 Aug 2019
    о дзякуй!
  • https://t.me/clickhouse_ru
    ReplacingMergeTree
  • https://t.me/clickhouse_ru
    >и в зависимоти от задачи забирать данные либо из первой, либо из второй?
    да
  • Выглядит как то что нужно. Это давно появилось?
  • https://t.me/clickhouse_ru
    лет 5 назад
  • @110657893 #113429 02:05 PM, 07 Aug 2019
    ох
  • @110657893 #113430 02:05 PM, 07 Aug 2019
    спасибо за ответ
  • https://t.me/clickhouse_ru
    там не все так просто, но в принципе решаемо и не особо мешает что оно eventual
  • а до слияния мне может вернуться больше чем одна запись, но с разными версиями да?
  • https://t.me/clickhouse_ru
    да
  • Скорее всего это не очень подходит, решение с двумя таблицами выглядит как самое рабочее, буду думать, спасибо еще раз за ответы и за кликхаус ))
  • https://t.me/clickhouse_ru
    до слияния можно делать SELECT .. FINAL но это будет дольше
  • https://t.me/clickhouse_ru
    проблема в том что на миллиардах записей это будет в 1000 раз дольше
  • Получается что всегда нужно добавлять FINAL так как неизвестно когда было слияние и данные постоянно пишутся в таблицу, а это сильно снижает производительность
  • @SWx5YQ #113438 02:19 PM, 07 Aug 2019
    а настраивал кто-то балансировку нагрузки для запросов в clickhouse? поделитесь опытом плз
  • https://t.me/clickhouse_ru
    А что там особенного? HTTP proxy любой в зубы и вперед :)
  • @SWx5YQ ↶ Reply to #113439 #113440 02:20 PM, 07 Aug 2019
    я тож так думаю. Вдруг есть какие-то особенности
  • Пришел эвент, пишите строку UserId,Date, [‘UserAgent’,’Sex’], [‘{UA}’, ‘m’]
    Итог -> у вас есть доступ к эвенту.
    Пользователь добавил мыло через неделю пишите
    UserId,Date, [‘email’], [‘email@email.email’]
    Из этой таблицы вы сможете получить нужные параметры по юзерам, которые когда-то заполнили
  • https://t.me/clickhouse_ru
    А как фильтровать эффективно такое?
  • Меня настораживает отказ от широких таблиц, хотя разрабоитчики кликхауса везде упоминают про то что следует их использовать и не бояться. У меня очень много событий приходит постоянно, по которым реалтайм выводится куча различной статистики с агрегированием и прочим, не хотелось бы терять производительность. Плюс нет ресурсов на написание каких-то сложных систем агрегирования данных, хотелось бы остаться на простом решении с MergeTree.
  • Эффективно не знаю, но можно попробовать смерджить массивы, сгрупировав по UserId, а потом фильтровать через WHERE val[indexOf(name, ‘Sex’)] = ‘m’
  • @sabonar #113445 02:36 PM, 07 Aug 2019
    Но мне больше нравится предложение @den_crane про ‘где-то хранить’, пока не получите все данные)
  • да, я бы так и делал если бы ненужно было сразу показывать статистику по неполным данным
  • https://t.me/clickhouse_ru
    @yurii_iv #113447 02:43 PM, 07 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @filippchistiakov #113448 02:56 PM, 07 Aug 2019
    Есть url по урлу csv шка. Можно ли к ней обратиться из кх?
  • https://t.me/clickhouse_ru
    @filippchistiakov #113449 02:56 PM, 07 Aug 2019
    Не загружая ее в таблицу
  • https://t.me/clickhouse_ru
    да
    https://clickhouse.yandex/docs/en/query_language/table_functions/url/
  • https://t.me/clickhouse_ru
    @filippchistiakov #113451 03:00 PM, 07 Aug 2019
    О_О
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @den_crane #113453 03:01 PM, 07 Aug 2019
    ну и словарь тоже
  • https://t.me/clickhouse_ru
    @filippchistiakov #113454 03:04 PM, 07 Aug 2019
    Какая-то магия твориться, особенно после mysql
  • https://t.me/clickhouse_ru
    @altlinux #113455 03:11 PM, 07 Aug 2019
    Стоклнулся с проблемой сборки на powerpc из-за принудительного объявления SSE2 - никто не встречал ?

    +if (PPC64LE)
    + set (COMPILER_FLAGS "${COMPILER_FLAGS} -maltivec -D__SSE2__=1 -DNO_WARN_X86_INTRINSICS")
    +endif ()

    в boost simd ругается на то, что сразу две архитектуры задействовано.
  • @728205186 #113456 03:14 PM, 07 Aug 2019
    Ребята, добрый вечер
    Пытаюсь отправить на HTTP запрос, вида:
    select
    replaceRegexpAll(my_field_1, '([\\\\r\\\\n]|;|\\\\t)+', ' ') as my_field_2
    from
    my_table
    А он не отрабатывает. Логи пишут, что запрос обрезается на точке с запятой, которая внутри replaceRegexpAll.
    Как обойти эту засаду и целиком заслать запрос?
    Спасибо.
  • https://t.me/clickhouse_ru
  • да, это работает; но почему КХ так на точку с запятой реагирует:
    - он может в одном POST-запросе несколько SQL-выражений выполнить через точку с запятой
    - или он просто видит точку с запятой и считает, что это конец SQL-выражения?
  • Есть max_execution_speed.
  • А что за кластер, может я прсмотрю?
  • У нас ещё есть один плоский кластер на 120 шардов.
  • https://t.me/clickhouse_ru
    ОК. Я просто помню что читал статью чью-то из яндекса что 20 нод это ОК. И там рассчет вероятностей был. Мне приснилось?
  • Как ни странно, это ок. В gcc сделали эмуляцию sse intrinsics поверх Power. А разве мы используем где-то boost simd?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Да, я знаю что ок. с boost нарвался так:
    cd /usr/src/RPM/BUILD/clickhouse-19.11.5.28/BUILD/libs/libcommon && /usr/bin/c++ -I/usr/src/RPM/BUILD/clickhouse-19.11.5.28/libs/libcommon/include -I/usr/src/RPM/BUILD/clickhouse-19.11.5.28/BUILD/libs/libcommon/include -I/usr/src/RPM/BUILD/clickhouse-19.11.5.28/contrib/cityhash102/include -pipe -Wall -g -O2 -pipe -maltivec -D__SSE2__=1 -DNO_WARN_X86_INTRINSICS -fno-omit-frame-pointer -Wall -Wnon-virtual-dtor -Wno-array-bounds -O2 -DNDEBUG -fPIC -pthread -std=c++17 -o CMakeFiles/common.dir/src/DateLUT.cpp.o -c /usr/src/RPM/BUILD/clickhouse-19.11.5.28/libs/libcommon/src/DateLUT.cpp
    In file included from /usr/include/boost/predef/hardware.h:14,
    from /usr/include/boost/predef.h:20,
    from /usr/include/boost/smart_ptr/detail/yield_k.hpp:28,
    from /usr/include/boost/smart_ptr/detail/spinlock_std_atomic.hpp:18,
    from /usr/include/boost/smart_ptr/detail/spinlock.hpp:47,
    from /usr/include/boost/smart_ptr/detail/spinlock_pool.hpp:25,
    from /usr/include/boost/smart_ptr/shared_ptr.hpp:36,
    from /usr/include/boost/shared_ptr.hpp:17,
    from /usr/include/boost/filesystem/path.hpp:29,
    from /usr/include/boost/filesystem.hpp:16,
    from /usr/src/RPM/BUILD/clickhouse-19.11.5.28/libs/libcommon/src/DateLUT.cpp:3:
    /usr/include/boost/predef/hardware/simd.h:77:5: error: #error "Multiple SIMD architectures detected, this cannot happen!"
    # error "Multiple SIMD architectures detected, this cannot happen!"
    ^~~~~
  • https://t.me/clickhouse_ru
    проблема был в 2х тупящих шардах, но было странно то что оно так долго их отстреливало.
  • У нас есть проблема - если машина тормозит, но принимает соединение, то нет failover на другую реплику.
  • Спасибо. Попробую заменить boost::filesystem на std::filesystem. Кстати, в какой компании нужен ClickHouse на Power?
  • https://t.me/clickhouse_ru
    да, кажется это было как раз оно.
  • https://t.me/clickhouse_ru
    @filippchistiakov #113470 03:44 PM, 07 Aug 2019
    Можно как-то затайминговать время выполнения всего запроса и сабквери в нем?
  • https://t.me/clickhouse_ru
    @filippchistiakov #113471 03:44 PM, 07 Aug 2019
    Чтобы понять где просадка в скорости?
  • https://t.me/clickhouse_ru
    @den_crane #113472 03:55 PM, 07 Aug 2019
    --send_logs_level = debug
  • https://t.me/clickhouse_ru
    Базальт СПО. В Сизиф собираю
  • @tigranavetis #113474 04:13 PM, 07 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @241186216 #113475 04:40 PM, 07 Aug 2019
    Алексей , а почему КХ не использует асинхронное чтение ? Я про io_submit и io_getevents . Тогда бы даже одним потоком быстрее бы читали
  • В ClickHouse есть возможность использовать асинхронное чтение - достаточно выставить настройку

    SET min_bytes_to_use_direct_io = 1;

    В этом случае используется O_DIRECT, а чтобы он нормально работал, используется io_submit, io_getevents...

    Правда заказывается для чтения только один кусочек вперёд - не особо оптимально, и чтобы нормально работало, приходится ещё увеличивать размер буфера - max_read_buffer_size.
  • https://t.me/clickhouse_ru
    @241186216 #113477 04:44 PM, 07 Aug 2019
    Спасибо
  • https://t.me/clickhouse_ru
    @241186216 #113478 04:48 PM, 07 Aug 2019
    Коллеги , правильно ли я понимаю, что при обращении к КХ по http. Используется http 1.1 и ответ отдается чанками и новые чанки перестанут посылается, когда выполнится запрос или превысится кол-во строк , которое можно отдать на клиента
  • Да - используется HTTP 1.1, если клиент поддерживает. Когда запрос выполнился или прекратил выполнение, поток чанков заканчивается (пустым чанком, как должен).
  • https://t.me/clickhouse_ru
    @241186216 #113480 05:07 PM, 07 Aug 2019
    Спасибо , Алексей !
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113481 05:14 PM, 07 Aug 2019
    подскажите, можно как то посчитать что в колонке с числами нет пропусков?
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113482 05:14 PM, 07 Aug 2019
    может есть уже какая то готовая функция
  • @ramun25 #113483 05:17 PM, 07 Aug 2019
    Подскажите, плиз. Задача: есть типы и подтипы сущностей, в которых неравномерно распределены сущности. Надо выбрать некоторую часть от всех сущностей, чтобы выборка соответствовала распределению данных по типам и подтипам. Это через семплирование можно сделать? Если хеш от идентификатора сущности, как ключ семплирования делать - выборка по нему не покрывает все типы и подтипы сущностей.
  • Готовой функции нет, но можно просуммировать эти числа и "сверить с ответом".
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113485 05:19 PM, 07 Aug 2019
    max-min == count() спасибо, чет не подумал -_-
  • Если одновременно пропуски и повторы, то такой способ не очень.
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113487 05:20 PM, 07 Aug 2019
    ох, про повторы то я забыл :(
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113488 05:21 PM, 07 Aug 2019
    хотя погрупировать могу, не страшно.
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113489 05:21 PM, 07 Aug 2019
    повторы я уже умею трекать.
  • Или надо ключ сэмплирования делать по идентификатору сущности, а потом через union all перебрать выборки по 10% из типов подтипов?
  • @kogen #113491 05:37 PM, 07 Aug 2019
    подскажите, правильно ли я сетаплю массив RAID 10 3x4
    mdadm --create --verbose /dev/md2 --level=1 --raid-devices=4 --layout=f2 --chunk=1M --bitmap=internal --bitmap-chunk=128M /dev/sd[a-d]1
    mdadm --create --verbose /dev/md3 --level=1 --raid-devices=4 --layout=f2 --chunk=1M --bitmap=internal --bitmap-chunk=128M /dev/sd[e-h]1
    mdadm --create --verbose /dev/md4 --level=1 --raid-devices=4 --layout=f2 --chunk=1M --bitmap=internal --bitmap-chunk=128M /dev/sd[i-l]1

    mdadm --create /dev/md1 --level=0 --raid-devices=3 /dev/md2 /dev/md3 /dev/md4
    нужно ли указывать в конце при создании raid 0 указывать far расположение и другие доп параметры?
  • @kogen #113492 05:38 PM, 07 Aug 2019
    RAID 10 на 12 дисков по 10Тб
  • https://t.me/clickhouse_ru
    адский велосипед, чем вам --level=10 не нравится?

    mdadm --create --verbose /dev/md0 --raid-devices=10 --level=10 --layout=f2 --chunk=1M --bitmap=internal --bitmap-chunk=128M /dev/sda2 /dev/sdb2 /dev/sdc2 /dev/sdd2 /dev/sde2 /dev/sdf2 /dev/sdg2 /dev/sdh2 /
    dev/sdi2 /dev/sdj2
  • @kogen ↶ Reply to #113493 #113494 05:49 PM, 07 Aug 2019
    RAID10 по схеме 3 рейда по 4 диска не более безотказный вариант? хотим перестраховаться на всякий случай
  • https://t.me/clickhouse_ru
    нет конечно. Раид 10 это страйп из зеркал, фигней не страдайте, ничего надежнее чем --level=10 управляемый mdadm вы никогда не сделаете.
  • Не поправили?
  • https://t.me/clickhouse_ru
    @rheinx #113497 06:39 PM, 07 Aug 2019
    Всем привет.
    Есть ли способ включить query_log, но не включать query_thread_log? 🙂
  • Да - есть специальная настройка для этого - log_query_threads.
  • https://t.me/clickhouse_ru
    @studnev #113499 06:47 PM, 07 Aug 2019
    Может кому пригодится - как быть если нужен словарь, а в память он не помещается : arrayFilter( x -> x.1=field, (. SELECT
    groupArray( (key, value) )
    FROM (

    SELECT
    key, value
    FROM some_table WHERE …

    ) ) )[1].2
  • https://t.me/clickhouse_ru
    Нет, времени не было. При прогоне тестов ClickHouse баги в zetcd неплохо воспроизводятся, @alexanderzaitsev говорил что у них в Altinity есть те кто может Go, можно попробовать их попросить) А я пока останусь при своем мнении, что zetcd жуткий костыль
  • Я полностью уверен, что даже после допиливания zetcd до рабочего состояния, всё будет плохо.
  • https://t.me/clickhouse_ru
    @tsvtitan #113502 06:48 PM, 07 Aug 2019
    В кафке кстати зоокипер скоро выпилят
  • https://t.me/clickhouse_ru
    Да, так и есть, просто будет ещё больше проблем
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #113498 #113504 06:49 PM, 07 Aug 2019
    Спасибо!
    Правильно ли я понимаю что для того чтобы оставить только query_log, нужно выставить:

    <log_queries>1</log_queries>
    <log_query_threads>0</log_query_threads>
    ?
  • Да.
  • Это выглядит весьма тяжело для вычислений.
  • https://t.me/clickhouse_ru
    Да, это хорошее решение чтоб Кафка сама все умела, но у них других проблем нет и коммерческие решения неплохо обеспечивают разработку свободными и оплаченными руками
  • https://t.me/clickhouse_ru
    зависит от WHERE внутри. Если например выборка 1000 строк то работает вполне сносно
  • https://t.me/clickhouse_ru
    @studnev #113509 06:52 PM, 07 Aug 2019
    есть лучше вариант?
  • RIGHT JOIN, но таблицы поменять местами - чтобы большой словарь был слева, а маленькая выборка - справа.
  • https://t.me/clickhouse_ru
    @studnev #113511 06:53 PM, 07 Aug 2019
    а если этот словарь в 10 местах в ответе?
  • https://t.me/clickhouse_ru
    @studnev #113512 06:54 PM, 07 Aug 2019
    он на то и словарь 🙂
  • Тогда неудобно.
  • https://t.me/clickhouse_ru
    @studnev #113514 06:55 PM, 07 Aug 2019
    JOIN возможно быстрее если выборка большая, но совершенно непонятно как его использовать, ведь словарь это функция. А JOIN это операция более сложная и ее еще надо как то прикрутить к запросу
  • https://t.me/clickhouse_ru
    @studnev #113515 06:56 PM, 07 Aug 2019
    Удобно было бы конечно писать так:
  • https://t.me/clickhouse_ru
    У вас, вроде бы, были проблемы с ZK, вы их порешали?)
  • https://t.me/clickhouse_ru
    @studnev #113517 06:57 PM, 07 Aug 2019
    SELECT ( SELECT value FROM dict WHERE key=x ) AS value
  • https://t.me/clickhouse_ru
    @studnev #113518 06:57 PM, 07 Aug 2019
    но clickhouse так не может
  • @SWx5YQ #113519 06:58 PM, 07 Aug 2019
    ребят, а какая настройка в конфиге в секции <kafka></kafka> отвечает за SSL сертификат?
  • @SWx5YQ #113520 06:58 PM, 07 Aug 2019
    не нашел в доках
  • https://t.me/clickhouse_ru
    @Felixoid #113521 07:14 PM, 07 Aug 2019
    А подскажите, насколько большое оверхед у подобного на чтение/запись? Float64 CODEC(Gorilla, LZ4)
    Играюсь с колонкой values для данных графита и пока этот вариант выигрывает
  • https://t.me/clickhouse_ru
    @Felixoid #113522 07:16 PM, 07 Aug 2019
    По месту выигрываю примерно треть, а вот про нагрузку пока не знаю
  • https://t.me/clickhouse_ru
    select arrayFilter((v, k) -> k = 'a', values, keys) from
    (select ['a','a','b','a'] keys, [1,2,3,4] values)
  • https://t.me/clickhouse_ru
    @studnev #113524 07:20 PM, 07 Aug 2019
    типа да
  • https://t.me/clickhouse_ru
    @studnev #113525 07:20 PM, 07 Aug 2019
    в конце только [1].2
  • https://t.me/clickhouse_ru
    Я к тому что тупл не нужен вам
  • https://t.me/clickhouse_ru
    И это не нужно
  • https://t.me/clickhouse_ru
    @studnev #113528 07:21 PM, 07 Aug 2019
    нужно же скаляр на выходе иметь
  • https://t.me/clickhouse_ru
    @studnev #113529 07:21 PM, 07 Aug 2019
    аналог GetDictXXX
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #113517 #113530 07:21 PM, 07 Aug 2019
    Может вам Engine=Dictionary нужен?
  • https://t.me/clickhouse_ru
    @rheinx #113531 07:22 PM, 07 Aug 2019
    И будет на выходе словарь выглядящий как таблица в CH.
  • https://t.me/clickhouse_ru
    @studnev #113532 07:22 PM, 07 Aug 2019
    да но он в память не помещается. большой
  • https://t.me/clickhouse_ru
    @studnev #113533 07:26 PM, 07 Aug 2019
    Представьте задачу - есть словарь длиной 1000 миллионов записей; и вам надо в ответе подставлять из него значения типа как dictGetString()… можно конечно как @milovidov_an предложил делать JOIN но это сильно усложняет сам запрос. И кроме того если запрос создается code generation то это еще сложнее
  • https://t.me/clickhouse_ru
    Этот вариант кстати адски медленный. Такие подзапросы работают миллисекунду и на миллиарде это аукается. Но в общем то через словари такое сделать наверное можно. Это похоже на кешид словарь с кешем 1.
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #113533 #113535 07:44 PM, 07 Aug 2019
    А remote таблица не подходит? Или медленно слишком?
  • https://t.me/clickhouse_ru
    таблица локальная. зачем remote?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #113536 #113537 07:47 PM, 07 Aug 2019
    ээээ. Тогда я чет совсем не в контексте видимо. Сори.
  • @217937961 #113540 08:40 PM, 07 Aug 2019
    Joined.
  • @110657893 #113541 09:17 PM, 07 Aug 2019
    Подскажите, как лучше поступить в такой ситуации. Есть таблица ReplicatedMergeTree: ClientId, AccountId, Date. Уникальных ClientId в разы больше чем уникальных AccountId. Когда-то давно я сделал ORDER BY (ClientId, Date), предполагалось что все запросы будут содержать ClientId, но тут понадобилось делать запросы просто по AccountId. Можно ли как-то поменять Primary Key на AccountId, ClientId, Date (этот вариант подойдет потому что все запросы теперь содержат AccountId)?
  • https://t.me/clickhouse_ru
    Можно. Создать новую таблицу и перелить данные.
  • https://t.me/clickhouse_ru
    Насколько больше в сравнении с чем?
  • https://t.me/clickhouse_ru
    по сравнению с LZ4
  • https://t.me/clickhouse_ru
    Ну, конечно, оверхед есть, но выигрыш больше. Вы же видели, наверное: https://www.altinity.com/blog/2019/7/new-encodings-to-improve-clickhouse
    New Encodings to Improve ClickHouse Efficiency

    July 10, 2019Modern analytical databases would not exist without efficient data compression. Storage gets cheaper and more performant, but data sizes typically grow even faster. Moore’s Law for big data outperforms its analogy in hardware. In our blog we already wrote about ClickHouse compression (https://altinity.com/blog/2017/11/21/compression-in-clickhouse) and Low Cardinality data type wrapper (https://altinity.com/blog/2019/3/27/low-cardinality). In this article we will describe and test the most advanced ClickHouse encodings, which especially shine for time series data. We are proud that some of those encodings have been contributed to ClickHouse by Altinity.This article presents an early preview of new encoding functionality for ClickHouse release 19.11. As of the time of writing, release 19.11 is not yet available. In order to test new encodings ClickHouse can be built from source, or a testing build can be installed. We expect that ClickHouse release 19.11 should be available in public releases in a…

  • https://t.me/clickhouse_ru
    @Felixoid #113546 09:37 PM, 07 Aug 2019
    да, оттуда и узнал про DoubleDelta. Она сэкономила доброе количество дискового пространства
  • https://t.me/clickhouse_ru
    @Felixoid #113547 09:38 PM, 07 Aug 2019
    но вот на наших данных горилла без lz4 не даёт никакого выигрыша
  • https://t.me/clickhouse_ru
    @Felixoid #113548 09:39 PM, 07 Aug 2019
    а вот с lz4 появляется четверть свободного места
  • https://t.me/clickhouse_ru
    А что за данные? counters или gouges?
  • https://t.me/clickhouse_ru
    А, так надо с LZ4, конечно
  • https://t.me/clickhouse_ru
    @alexanderzaitsev #113551 09:40 PM, 07 Aug 2019
    Он почти бесплатный
  • https://t.me/clickhouse_ru
    @Felixoid #113552 09:40 PM, 07 Aug 2019
    солянка со всей компании. Чего только там нету, проще думать, что rand
  • https://t.me/clickhouse_ru
    Для rand лучше всего T64
  • https://t.me/clickhouse_ru
    @alexanderzaitsev #113554 09:41 PM, 07 Aug 2019
    И он самый быстрый
  • https://t.me/clickhouse_ru
    @Felixoid #113555 09:42 PM, 07 Aug 2019
    занятно, его нету в доке..
  • https://t.me/clickhouse_ru
    ругается, что для Float64 не подходит
  • https://t.me/clickhouse_ru
    Да, он только для Int и Decimal до 64 бит
  • https://t.me/clickhouse_ru
    @Felixoid #113558 09:48 PM, 07 Aug 2019
    значит, не подходит :-j
  • https://t.me/clickhouse_ru
    @Felixoid #113559 09:50 PM, 07 Aug 2019
    Спасибо, было неочевидно, что гориллу надо использовать с явным сжатием
  • 08 August 2019 (222 messages)
  • @Sazhenin #113560 04:43 AM, 08 Aug 2019
    Всем привет
  • @Sazhenin #113561 04:44 AM, 08 Aug 2019
    Как лучше всего чистить (удалять) старые данные в больших таблицах?
  • https://t.me/clickhouse_ru
    подозреваю, что лучше ALTER TABLE ... DROP PARTITION ... пока ещё ничего не придумали
  • https://t.me/clickhouse_ru
    Но это если партишны - по дате
  • @Sazhenin #113564 04:47 AM, 08 Aug 2019
    Да, партишены по дате.
  • @Sazhenin #113565 04:49 AM, 08 Aug 2019
    Ещё бывают данные бьются кусками в СУБД
    2019.08.03 10:37:18.092983 [ 11 ] {} <Error> void DB::BackgroundProcessingPool::threadFunction(): Code: 40, e.displayText() = DB::Exception: Checksum doesn't match: corrupted data. Reference: 5eceadab25511462d751523fa70b6e6f. Actual: 741491bad403aca83e46aeee803bc78e. Size of compressed block: 23893: (while reading column totalbytes): (while reading from part /database2/clickhouse/data/subdname/tabelname/20190401_20190415_4367_5075_5/ from mark 68 with max_rows_to_read = 8192): Cannot fetch required block. Stream MergeTreeSequentialBlockInputStream, part 0, e.what() = DB::Exception, Stack trace:

    Почему такое происходит и можно ли их как-то восстановить?
  • https://t.me/clickhouse_ru
    alter table delete where?
  • https://t.me/clickhouse_ru
    Это тяжелая операция будет
  • https://t.me/clickhouse_ru
    @Felixoid #113568 05:36 AM, 08 Aug 2019
    Понятно, зависит от необходимой частоты
  • https://t.me/clickhouse_ru
    @studnev #113569 05:42 AM, 08 Aug 2019
    Подсажите что делать если select count() from system.parts выдает 300 и INSERT не работает с ошибкой Too many parts (300). Merges are processing significantly slower than inserts.: while write prefix to view
  • https://t.me/clickhouse_ru
    инсертить реже
  • https://t.me/clickhouse_ru
    @studnev #113571 05:44 AM, 08 Aug 2019
    1 INSERT ?
  • https://t.me/clickhouse_ru
    @studnev #113572 05:45 AM, 08 Aug 2019
    system.merges всегда пустая
  • https://t.me/clickhouse_ru
    @studnev #113573 05:45 AM, 08 Aug 2019
    может быть дело в том что в таблице нет partitions ?
  • @nbusorgin #113574 06:45 AM, 08 Aug 2019
    Кто использует метабейз, работают ли вопросы на основе сохранённых вопросов? При создании нового доступны только таблицы из БД, даже если в сохранённых вопросах нет агрегации. В документации метабейза написано, что не поддерживаются сохранённые вопросы к друиду, гугл аналитике и монге, может кликхаусовый плагин тоже не поддерживается?
  • @SWx5YQ #113575 06:48 AM, 08 Aug 2019
    ребят, кто-нить настраивал SSL для Kafka engine?
  • @SWx5YQ #113576 06:50 AM, 08 Aug 2019
    Правильно ли я понимаю, что можно брать названия настроек кофига из https://github.com/edenhill/librdkafka/blob/master/CONFIGURATION.md, заменить точки на нижнее подчеркивание и установить в конфиге в секции <kafka></kafka>?
    librdkafka/CONFIGURATION.md at master · edenhill/librdkafka

    The Apache Kafka C/C++ library. Contribute to edenhill/librdkafka development by creating an account on GitHub.

  • верно
  • @SWx5YQ ↶ Reply to #113577 #113578 06:56 AM, 08 Aug 2019
    спасибо большое
  • https://t.me/clickhouse_ru
    @stovm #113579 07:06 AM, 08 Aug 2019
    Подскажите, плиз.
    А кто что использует для A/B тестов поверх данных в CH?
  • https://t.me/clickhouse_ru
    @fskrypter #113580 07:08 AM, 08 Aug 2019
    team
  • @SWx5YQ #113581 07:14 AM, 08 Aug 2019
    еще такой вопрос
  • @SWx5YQ #113582 07:15 AM, 08 Aug 2019
    тут писали, что в последней версии CH Kafka engine сломан
  • @SWx5YQ #113583 07:15 AM, 08 Aug 2019
    это все еще актуально?
  • в мастере вроде уже пофиксили (но это не точно), в релизе еще нет.
  • @GordeevEvgenii #113585 07:18 AM, 08 Aug 2019
    Joined.
  • @GordeevEvgenii #113586 07:20 AM, 08 Aug 2019
    Здравствуйте. У меня нубский вопрос по кликхаусу - как там атачить кучу партиций к таблице? Не по одной же их за запрос прикреплять.
  • https://t.me/clickhouse_ru
    есть какие то эстимации когда в релиз фиксы попадут?
  • https://t.me/clickhouse_ru
    @dzarlax #113588 07:24 AM, 08 Aug 2019
    Привет. Подскажите пожалуйста, как корректно подключить кликхауз к графане? Если по дефолту все делать - говорит, что нужен пароль для юзера default, которого нет.
  • https://t.me/clickhouse_ru
    @dzarlax #113589 07:25 AM, 08 Aug 2019
    Если можете скрином настроек датасорса поделиться - буду очень благодарен.
  • А если задать юзеру дефолт какой-нибудь пароль?
  • https://t.me/clickhouse_ru
    Пробовал, но возникает вопрос как правильно его передеть. При урле http://user:password@localhost:8123 - он ругается также вне зависимости от того, какой юзер, при http://localhost:8123?user:user&password=password - ругается на пароль, даже если он верный, так как итоговый урл получится http://localhost:8123/?user=user&password=password/?query=SELECT%201%20FORMAT%20JSON
  • https://t.me/clickhouse_ru
    @dzarlax #113592 07:31 AM, 08 Aug 2019
    все это при Access - Browser, в случае с Access - Server получаю ошибку
    undefined is not an object (evaluating 'result.data')
  • https://t.me/clickhouse_ru
    @dzarlax #113593 07:31 AM, 08 Aug 2019
    Гугл перерыл - ничего не могу дельного найти, уповаю только на вас.
  • https://t.me/clickhouse_ru
    @dergilev87 #113594 07:35 AM, 08 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    У вас урл неправильный. Откуда там два /?
  • https://t.me/clickhouse_ru
    Первый ставлю я, чтобы логин с паролем передать, а второгй - сама графана подставляет
  • это вопрос не ко мне )
  • https://t.me/clickhouse_ru
    @dzarlax #113598 07:38 AM, 08 Aug 2019
    Я знаю, что неправильный, но что с этим делать - не понятно
  • https://t.me/clickhouse_ru
    Нужно не в урле логин и пароль передавать, там есть Basic Auth - ткните в галку и вводите логин и пароль
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #113600 07:41 AM, 08 Aug 2019
    Значит вы что-то неправильно настроили в графане, читайте доку по ней
  • https://t.me/clickhouse_ru
    @dzarlax #113601 07:42 AM, 08 Aug 2019
    Видимо всетаки надо через Access - Server цепляться и искать причину ошибки
    undefined is not an object (evaluating 'result.data')
  • https://t.me/clickhouse_ru
    при Browser он туда тоже не смотрит(
  • https://t.me/clickhouse_ru
    @studnev #113603 07:46 AM, 08 Aug 2019
    Подскажите как бороться с ошибкой DB::Exception: Table contains parts with adaptive and non adaptive marks, but setting enable_mixed_granularity_parts is disabled
  • https://t.me/clickhouse_ru
    @Lipau3n #113604 07:51 AM, 08 Aug 2019
    Exception != error
  • https://t.me/clickhouse_ru
    @studnev #113605 07:53 AM, 08 Aug 2019
    В логе она severity Error 2019.08.08 07:52:50.133744 [ 1 ] {} <Error> Application: DB::Exception: Cannot create table from metadata file /var/lib/clickhouse/metadata/ethereum//transfers_to_storage.sql, error: DB::Exception: Table contains parts with adaptive and non adaptive marks, but setting enable_mixed_granularity_parts is disabled, stack trace:
  • https://t.me/clickhouse_ru
    @studnev #113606 07:54 AM, 08 Aug 2019
    ну и сервер не стартует
  • https://github.com/yandex/ClickHouse/blob/master/dbms/tests/integration/test_adaptive_granularity/test.py
    вот тут есть что-то похожее на ваш кейс.
    Попробуйте сделать полный бэкап сервера и потом прописать в метаданные таблицы что-то типа
    CREATE TABLE table_with_mixed_granularity(date Date, id UInt32, dummy UInt32)
    ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/{g}/table_with_mixed_granularity', '1')
    PARTITION BY toYYYYMM(date)
    ORDER BY id
    SETTINGS index_granularity_bytes = 10485760, enable_mixed_granularity_parts=1 <
  • https://t.me/clickhouse_ru
    @studnev #113608 07:59 AM, 08 Aug 2019
    насчет бекапа это наверно шутка?
  • @GordeevEvgenii #113609 07:59 AM, 08 Aug 2019
    Насчет бэкапа это было предложение сохранить оригинальный файл с метаданными
  • @superlocrian #113610 07:59 AM, 08 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @studnev #113611 07:59 AM, 08 Aug 2019
    а понял
  • https://t.me/clickhouse_ru
    Выберите server
  • https://t.me/clickhouse_ru
    вот теперь борюсь с ошибкой undefined is not an object (evaluating 'result.data')
  • https://t.me/clickhouse_ru
    решилось прописыванием enable_mixed_granularity_parts в конфиге mege_tree
  • https://t.me/clickhouse_ru
    @studnev #113615 08:02 AM, 08 Aug 2019
    но осадок нехороший от апдейта на 13 версию остался
  • https://t.me/clickhouse_ru
    @filippchistiakov #113616 08:26 AM, 08 Aug 2019
    Разобрался. Есть баг, что при джоине таблицы, получаешь ошибку
    Code: 10, e.displayText() = DB::Exception: Not found column $column_name$ in block. There are only columns: ...

    Хотя колонка точно есть. В моем случае, баг в том, что отдаеться именно эта ошибка, хотя по факту должна быть:

    DB::Exception: Column $column_name$ is not under aggregate function and not in GROUP BY
  • https://t.me/clickhouse_ru
    @606215749 #113617 08:28 AM, 08 Aug 2019
    Привет всем,
    подскажите, а как сказать КХ что реплика убита и нужно о ней забыть?
  • Могу предположить, что нужно вычистить из зукипера название данной реплики из всех таблицу которые на ней были.
  • https://t.me/clickhouse_ru
    может есть какой то гайд как это сделать?
  • https://t.me/clickhouse_ru
    @igor_dia #113620 08:38 AM, 08 Aug 2019
    всем привет! А из-за чего может такое быть, что ротация логов ошибок не работает, но работает для обычных сообщений?
  • неправильно настроен logrotate в системе? Возможно просто период ротации логов ошибок долше?
  • https://t.me/clickhouse_ru
    @igor_dia #113622 08:41 AM, 08 Aug 2019
    <logger>
    <level>trace</level>
    <log>/var/log/clickhouse/clickhouse-server.log</log>
    <errorlog>/var/log/clickhouse/clickhouse-server.err.log</errorlog>
    <size>1000M</size>
    <count>10</count>
    </logger>
  • https://t.me/clickhouse_ru
    у вас эррорлог вырастает за гигабайт и не ротируется?
  • https://t.me/clickhouse_ru
    @igor_dia #113624 08:43 AM, 08 Aug 2019
    дорастает до гига и дропается
  • https://t.me/clickhouse_ru
    @igor_dia #113625 08:43 AM, 08 Aug 2019
    оставив при этом старые, недельной давности, архивы
  • https://t.me/clickhouse_ru
    @rjs45 #113626 09:37 AM, 08 Aug 2019
    Доброго времени суток.
    Что-то не хочет грузить словари. Может, кто подскажет, что делаю не так.

    файл конфига КХ. конфига словаря, вывод select * from system.dictionaries и содержимое /var/log/clickhouse-server/clickhouse-server.log при system reload dictionaries прилагаю
  • 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
    @rjs45 #113631 09:38 AM, 08 Aug 2019
    смущает, что loading_start_time не установлен и last_exception пустой.
    Даже если укажу белиберду вместо IP адреса в конфиге словаря
  • https://t.me/clickhouse_ru
    system reload dictionary dev_advertisers ?
  • https://t.me/clickhouse_ru
    @rjs45 ↶ Reply to #113632 #113633 09:47 AM, 08 Aug 2019
    помогло.
  • https://t.me/clickhouse_ru
    @rjs45 #113634 09:47 AM, 08 Aug 2019
    а как обновить все словари?
  • https://t.me/clickhouse_ru
    @studnev #113635 09:47 AM, 08 Aug 2019
    он теперь автоматом их грузит или при первом использовании или так
  • https://t.me/clickhouse_ru
    @studnev #113636 09:48 AM, 08 Aug 2019
    написать system reload много раз наверно
  • https://t.me/clickhouse_ru
    @studnev #113637 09:48 AM, 08 Aug 2019
    вообще обновляет он их сам
  • https://t.me/clickhouse_ru
    @studnev #113638 09:48 AM, 08 Aug 2019
    а грузит - вручную
  • https://t.me/clickhouse_ru
    @rjs45 #113639 09:49 AM, 08 Aug 2019
    ясно. Это наверное обновление какое-то? потому что раньше у нас так работало.
    system reload dictionaries Обновляло все словари
  • https://t.me/clickhouse_ru
    @rjs45 #113640 09:49 AM, 08 Aug 2019
    Спасибо
  • https://t.me/clickhouse_ru
    @241186216 #113641 10:27 AM, 08 Aug 2019
    Подскажите . Выдержит ли КХ десятки реплицируемых таблиц ?
  • https://t.me/clickhouse_ru
    @241186216 #113642 10:28 AM, 08 Aug 2019
    А сотни выдержит ? Где предел.как понять ?
  • https://t.me/clickhouse_ru
    100ни выдержит. Наверное сейчас предел 10ок тысяч.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Спасибо. А во что упрекатся? Правильно ли понимаю, что для зоокипера это небольшая нагрузка
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113646 10:38 AM, 08 Aug 2019
    подскажите плз, вот у меня есть ReplicatedMergeTree, в ней есть первичный ключ ORDER BY (_timestamp,_partition,_offset,_idx)
    Я хочу посмотреть как много у меня дублей примерно вот таким запросом:
    select count()
    from (
    select concat(toString(_timestamp), toString(_partition), toString(_offset), toString(_idx)) as deduper, count() c
    from log_table
    group by deduper
    )
    where c > 1
    ;

    Вижу цифру отличную от 0, запускаю
    optimize table log_table final;

    Повторяю запрос чекер и результат тот же. Я чтото не так делаю?
  • https://t.me/clickhouse_ru
    вроде база не обещает что все помержит)
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113648 10:40 AM, 08 Aug 2019
    так FINAL жи
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113649 10:40 AM, 08 Aug 2019
    я думал оно с final прям всё помержит Т_Т
  • https://t.me/clickhouse_ru
    А optimize инициировал мержи?
    set optimize_throw_if_noop = 1
    optimize ... final;

    Дубли должны быть в одной партиции.
    Размеры партов должны быть меньше максимального.

    Null-ы в вашем запросе превращаются в пустые строки.
  • https://t.me/clickhouse_ru
    @241186216 #113651 10:50 AM, 08 Aug 2019
    А кто знает сколько в Яндексе реплицируемых таблиц ? Ну примерно хотя бы )
  • https://t.me/clickhouse_ru
    Боюсь, что никто не знает
  • https://t.me/clickhouse_ru
    десятки тысяч полагаю. правильнее вопрос конечно ставить про кол-во кластеров наверное.
  • https://t.me/clickhouse_ru
    @241186216 #113654 11:16 AM, 08 Aug 2019
    Ага. Интересует именно внутри одного кластера.
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #113655 11:20 AM, 08 Aug 2019
    А ну тут кому как нравится обмазываться
  • https://t.me/clickhouse_ru
    @kapustor #113658 11:28 AM, 08 Aug 2019
    Админ, в комботе (он есть в этом чате) можно настроить фильтр по ключевым словам чтобы отсеять то что выше
  • https://t.me/clickhouse_ru
    @111093495 #113660 11:42 AM, 08 Aug 2019
    Подскажите пожалуйста, почему clickhouse-client не может расспарсить? (что-то с кодированием, есть какая-нибудь опция? )

    cat rr.csv | clickhouse-client --port=9001 --database=mx_master --date_time_input_format=best_effort --query="INSERT INTO tablo_rr FORMAT TabSeparatedWithNames"
    Code: 27. DB::Exception: Cannot parse input: expected \t before: \01\0.\04\06\05\0\t\0n\0e\0w\0\t\0E\0X\0P\0I\0R\0E\0D\0\t\03\00\0/\00\03\0/\02\00\01\07\0 \01\01\0:\00\05\0:\00\09\0\t\06\06\00\0\t\0P\0D\0L\0\t\01\05\00\0\t\01\0\t\02\01\09\0.\07\05\0\t\0\r\0\n\0H\0a\0l\0f\0 \02\0\t\01\0.\04\06\05\0\t\0n\0e\0w\0\t\0E\0X: (at row 1)

    Row 1:
    Column 0, name: monthHalf, type: String, parsed text: "<ASCII NUL>H<ASCII NUL>a<ASCII NUL>l<ASCII NUL>f<ASCII NUL> <ASCII NUL>2<ASCII NUL>"
    Column 1, name: rr, type: Float64, ERROR: text "<ASCII NUL>1<ASCII NUL>.<ASCII NUL>4<ASCII NUL>6<ASCII NUL>5" is not like Float64
  • https://t.me/clickhouse_ru
    у вас нулевые байты в CSV
  • https://t.me/clickhouse_ru
    как это можно решить, не подскажите?
  • https://t.me/clickhouse_ru
    это я не знаю, вы должны сгенерировать правильный файл перед тем как его пихать в КХ.
  • https://t.me/clickhouse_ru
    Удалить их не сложно - cat file.csv | tr -d '\000' > file2.csv
    но не факт что это поможет если файл кривой
  • https://t.me/clickhouse_ru
    спасибо, буду пробовать)
  • https://t.me/clickhouse_ru
    Подозреваю, что там кодировка не utf-8, а что-то двухбайтовое
  • @GordeevEvgenii #113667 11:53 AM, 08 Aug 2019
    Кликхаус увидит данные если я просто свалю папки в data и перезапущу сервер или их нужно в обязательном порядке атачить?
  • https://t.me/clickhouse_ru
    а откуда папки? если они с разных шардов и там пересекаются номера партов то все сломается
    если таблица replicated то тоже все будет плохо
  • Нет. Там довольно маленькая бд, которая сейчас крутится на 1 сервере без репликации. Интересен результат - если я просто скопирую данные из не репликейтед таблицы без детача на другой сервер в аналогичную таблицу (другое название бд и таблицы, структура и название полей те же) - оно подхватится автоматически при запуске или нужно в обязательном порядке это дело валить в детач и атачить через запросы.
  • @GordeevEvgenii #113670 12:04 PM, 08 Aug 2019
    Через фриз-копию-атач все вроде бы работает. Теперь вот потянуло на извращения
  • https://t.me/clickhouse_ru
    я когда настраивала бэкапы - решила проверить подобную схему)) в песочнице все завелось.
  • https://t.me/clickhouse_ru
    да, так заработает ( есть шанс что вы скопируете недописанный файл живого сервера на горячую, он наверное в broken переместится)
  • Кстати на эту тему документация скромно молчит - а при копировании файла из shadow после freeze - такая ситуация может произойти?
  • https://t.me/clickhouse_ru
    нет, не может, КХ никогда не меняет файлы (только создает новые), freeze создает хардлинки для файлов активных - актуальных партов.
  • https://t.me/clickhouse_ru
    @den_crane #113675 12:13 PM, 08 Aug 2019
    а хотя, ведь недописанные парты называются типа _tmp и потом каталог переименовывается, т.е. скорее всего у вас проблемы не будет
  • Это меня очень радует. Еще бы из писателей доков в яндексе кто-нибудь сподобился написать что мол "копия в шедоу после фриз гарантировано консистентна и не подвергается изменениям во время операций с таблицей после создания" или хотя бы "для бэкапов сойдет, все восстановится норм, зуб даем", там написано конечно что-то типа этого но несколько расплывчато.
  • https://t.me/clickhouse_ru
    @frankegoesdown #113677 12:22 PM, 08 Aug 2019
    Господа, подскажите пожалуйста, в 18й версии клика через ODBC отлично подтягивались словари из Hive'а, но после обновления до версии 19.11.4.24 с теми же параметрами словарь не хочет подтягиваться с ошибкой:
    Code: 86, e.displayText() = DB::Exception: Received error from remote server /identifier_quote?connection_string=DSN%3DHWX_SSL. HTTP status code: 500 Internal Server Error, body: Error getting identifier quote style from ODBC 'Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = Connection attempt failed: Connection:Not applicable
    Server:HWX_SSL
    ===========================
    ODBC Diagnostic record #1:
    ===========================
    SQLSTATE = HY000
    Native Error Code = 11560
    [Cloudera][ODBC] (11560) Unable to locate SQLGetPrivateProfileString function.

    (version 19.11.4.24 (official build))'
    (version 19.11.4.24 (official build))
  • https://t.me/clickhouse_ru
    Ну это кто-то из нас может написать, например я, надо просто себя заставить.

    в каком-то видео Алексей рассказывал что у комманды КХ есть бюджет, и когда стоит вопрос нанять программиста или маркетолога/qa/тех-писателя, он нанимает программиста, потому что на данном этапе это самое больное место.
  • https://t.me/clickhouse_ru
    да там добавился вызов odbc чтобы узнать какими кавычками окавычивать литералы " или ` если драйвер Hive такую функцию не реализовал, то все. Либо ищите другой odbc драйвер Hive либо надо feature request в КХ чтобы обработать такой случай и сделать фолбек на какой-то дефаулт.
  • https://t.me/clickhouse_ru
    @forward32 #113680 12:40 PM, 08 Aug 2019
    По какой причине CH внутри докера может закрыть коннект в ответ на мой TCP Keep Alive?
  • https://t.me/clickhouse_ru
    а в логе КХ что? В log level trace КХ много пишет
  • https://t.me/clickhouse_ru
    @forward32 #113682 12:47 PM, 08 Aug 2019
    grep моего ipшника по всем логам КХ ничего не показал криминального, но КХ запущен с настройками из докер-коробки
  • @705757700 #113683 12:48 PM, 08 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    Кажется, в логах вот такое:
    2019.08.07 17:27:58.297579 [ 44 ] {4213a96b-1b2d-4237-95aa-f717b7253a03} <Trace> TCPHandler: Closing idle connection

    Эта настройка конфигурируема в КХ?
  • https://t.me/clickhouse_ru
    @den_crane #113686 01:08 PM, 08 Aug 2019
    --idle_connection_timeout arg "Close idle TCP connections after specified number of seconds."

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

    ┌─name────────────────────┬─value─┬─changed─┬─description─────────────────────────────────────────────────────┐
    │ idle_connection_timeout │ 3600 │ 0 │ "Close idle TCP connections after specified number of seconds." │
    └─────────────────────────┴───────┴─────────┴─────────────────────────────────────────────────────────────────┘
  • https://t.me/clickhouse_ru
    @igor_dia #113687 01:11 PM, 08 Aug 2019
    А где можно почитать про то, как происходят мержи? может ли такое быть, чтобы одна и та же партиция встретилась в двух таблицах, и она же оказалась закоррапченной? У меня SELECT * пару дней назад отработал нормально на таблицах, а сейчас уронил КХ в сегфолт.
  • https://t.me/clickhouse_ru
    Благодарю👌
  • https://t.me/clickhouse_ru
    все эти 4 вещи возможно никак не связаны.
    Партиция не может быть в двух таблицах, это файлы в одном каталоге таблицы.
    Сегфолт может быть вызван чем-то другим, что просто запороло память селекта в этот момент.
    Сегфолт воспроизводится? Версия КХ? Что было в сегфолте?
  • https://t.me/clickhouse_ru
    @igor_dia #113690 01:19 PM, 08 Aug 2019
    Версия 19.10.1.5
    В сегфолте было: address not mapped to object
    Access: read.
    Воспроизводится в пределах кластера.
  • https://t.me/clickhouse_ru
    90% сегфолтов такие, либо тикет сделайте с полным текстом сегфолта и полным логом сессии [...] которая навернулась, либо выложите это куда-нибудь в gist
  • https://t.me/clickhouse_ru
    даже полный сегфолт обычно не очень полезен. если воспроизводится, то лучше взять этот же релиз, но собранный с ASAN и создать тикет с его выводом (он пишет в stdout)
  • https://t.me/clickhouse_ru
    ну и вообще рекомендуют 19.11 т.к. 19.10 баганый местами
  • https://t.me/clickhouse_ru
    @kmarenov #113694 01:44 PM, 08 Aug 2019
    Всем привет, столкнулись с проблемой после обновления.

    На 18.14.15 работал join вида
    ANY LEFT JOIN microsegments m ON toUInt32(m.id) = microsegmentId
    (microsegments - view, join к Distributed таблице, которая в свою очередь над ReplicatedMergeTree)

    в 19.7.3.9 это перестало работать, выдает ошибку Unknown identifier: id, джойн работает теперь только так
    ANY LEFT JOIN (SELECT *, toUInt32(id) AS microsegmentId FROM microsegments) USING microsegmentId

    кто-нибудь сталкивался с подобным? исправлена ли эта проблема в более новых версиях?
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #113695 01:47 PM, 08 Aug 2019
    Может кто знает, в changlog есть такая строка https://github.com/yandex/ClickHouse/blob/master/CHANGELOG.md#improvements-1
    "Support asterisks and qualified asterisks for multiple joins without subqueries"

    Но при использовании multiple join с * - падает:
    Code: 48, e.displayText() = DB::Exception: Multiple JOIN do not support asterisks for complex queries yet (version 19.13.1.11 (official build))
    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
    id еще где-то использовался в запросе? или только в toUInt32(m.id) =
    Да, джойны сильно поменялись, возможно вам поможет
    allow_experimental_multiple_joins_emulation = 0
    allow_experimental_cross_to_join_conversion = 0

    Я сомневаюсь что это починено в более свежих версиях, и не факт что будет починено (воспроизводите на тестовых табличках и создавайте тикет в гитхабе).
  • https://t.me/clickhouse_ru
    id использовался только там, попробовать добавить в запрос? расстраивает конечно, что в более ранней версии запрос работал
  • https://t.me/clickhouse_ru
    да, изменений много в джойнах, меняется результат, кол-во полей, названия полей, и т.д.
    проблема в том что джойны всегда работали не совсем согласно стандартам sql.
    и что делать? оставить как есть и навсегда согласится что тулы типа табло не будут работать?
  • https://t.me/clickhouse_ru
    покажите запрос. "multiple joins without subqueries" - важно каждое слово
  • https://t.me/clickhouse_ru
    была проблема, когда на distributed улетала колонка без префикса таблицы. Если без приведения к toUInt32 тоже не работает, то скорее всего исправлено недавно. Если проблема в приведени - то скорее всего нет - тогда issue
  • https://t.me/clickhouse_ru
    Похоже нашел. В запросе написано INNER JOIN (SELECT * ...) - это и етсь without subqueries?
  • https://t.me/clickhouse_ru
    @chertus #113702 01:57 PM, 08 Aug 2019
    это with subqueries :)
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #113703 01:57 PM, 08 Aug 2019
    Спасибо, буду колоться дальше
  • https://t.me/clickhouse_ru
    @chertus #113704 01:58 PM, 08 Aug 2019
    ну оно не должно работать. сейчас * только если селект из таблиц
  • https://t.me/clickhouse_ru
    @chertus #113705 01:58 PM, 08 Aug 2019
    для такого селекта можно понять какие имена колонок без сложного разбора подзапросов. у сабселектов можно обозвать что угодно колонкой - так не поддерживается
  • https://t.me/clickhouse_ru
    Не совсем понял. Без приведения выдает Type mismatch of columns to JOIN by: microsegmentId UInt32 at left, id UInt64 at right, с ним - Unknown identifier: id

    Какая у нас ситуация? Которая недавно исправлена или нет?
  • https://t.me/clickhouse_ru
    @Felixoid #113707 02:01 PM, 08 Aug 2019
    Подскажите, можно ли переписать вот этот запрос следующим образом:
    SELECT
    metric,
    ts,
    avg(value) AS value
    FROM
    (
    SELECT
    metric,
    ts,
    argMax(value, updated) AS value
    FROM data
    WHERE (metric IN 'servers') AND (ts >= 1563914700) AND (ts < 1564001100) AND (date >= toDate(1563914700)) AND (date <= toDate(1564001100))
    GROUP BY
    metric,
    timestamp AS ts
    )
    GROUP BY
    metric,
    intDiv(toUInt32(ts), 60) * 60 AS ts
    ORDER BY
    metric ASC,
    ts ASC
    1. желательно избавиться от подзапроса или возвращать из него metric, groupArray(ts), groupArray(value)
    2. Сохранить логику, что возвращается только value для максимального updated
    3. всё также иметь возможность произвести округление до точек aka intDiv(toUInt32(ts), 60) * 60 AS ts
  • https://t.me/clickhouse_ru
    Я про случай, когда колонка не требует приведения, встречается только в ON секции и обнаруживается проблема с именем этой колонки, т.к. на удаленный сервер имя улетает обрезанным с m.id до id
  • https://t.me/clickhouse_ru
    @Felixoid #113709 02:04 PM, 08 Aug 2019
    Смысл в том, что в первой группировке огромное количество памяти уходит на metric. Возвращая row per metric хочется серьёзно оптимизировать запрос
  • https://t.me/clickhouse_ru
    ну кстати когда колонка не требует приведения - работает
    ANY LEFT JOIN (SELECT *, toUInt32(id) AS microsegmentId FROM microsegments) m ON m.microsegmentId = microsegmentId

    значит это другая проблема? не та, что была у вас?
  • https://t.me/clickhouse_ru
    да, тогда issue. можно слинковать вот с этим https://github.com/yandex/ClickHouse/issues/4219
    RIGHT or FULL JOIN with complex ON section is not working · Issue #4219 · yandex/ClickHouse

    Last part of story #4108 If there're duplicates in tables & JOIN ON has expression on column it leads to error. select X.*, Y.* from X full join Y on (X.id + 1) = (Y.id + 1) order b...

  • https://t.me/clickhouse_ru
    а что если сделать на шардах view с agrmax, возможно предикаты протолкнутся в него и получится вторую агрегацию сделать на шардах?
  • https://t.me/clickhouse_ru
    @den_crane #113713 02:12 PM, 08 Aug 2019
    в один запрос конечно переписать это нельзя, разный group by
  • https://t.me/clickhouse_ru
    а если id = toUInt64(microsegmentId)
  • https://t.me/clickhouse_ru
    materialized? Как это примерно должно выглядеть?
  • https://t.me/clickhouse_ru
    не не обычная.

    я вижу проблему в том что data это distributed и она внутри ()
  • https://t.me/clickhouse_ru
    @den_crane #113717 02:17 PM, 08 Aug 2019
    так вот я предалагю сделать на шардах
  • https://t.me/clickhouse_ru
    @Felixoid #113718 02:17 PM, 08 Aug 2019
    Да, основная проблема, конечно, что шарды перекидываются результатом подзапроса
  • https://t.me/clickhouse_ru
    @den_crane #113719 02:18 PM, 08 Aug 2019
    create view xxxx as select argmax from data_shard ....
    и накрыть это вью distributed
  • https://t.me/clickhouse_ru
    тут вопрос правда нужна-ли доагрегация argmax
  • https://t.me/clickhouse_ru
    Missing columns: 'microsegmentId' while processing query: 'toUInt64(microsegmentId)'
  • https://t.me/clickhouse_ru
    @Felixoid #113722 02:20 PM, 08 Aug 2019
    вторая аггрегация идет по аналогу аргумента графита maxDataPoints
  • https://t.me/clickhouse_ru
    @Felixoid #113723 02:21 PM, 08 Aug 2019
    чтобы оставить ограниченное количество точек для условного запроса длинною в год и не пулять всё в бедный питон. Правда, о том, чтобы не пихать это в сервер под балансером не подумали..
  • https://t.me/clickhouse_ru
    ну наверное это не исправлено, воспроизводите и в тикет

    что кстати с allow_experimental_multiple_joins_emulation = 0
    allow_experimental_cross_to_join_conversion = 0
  • @SWx5YQ #113725 02:27 PM, 08 Aug 2019
    ребята, вопросик
    если я вешаю MV на реплицируемую таблицу (создаю на каждой реплике), будет ли поддерживаться репликация и в MV?
  • @SWx5YQ #113726 02:28 PM, 08 Aug 2019
    т.е. когда кликхаус скачивает кусок данных, сработает ли инсерт триггер?
  • @ThodinBizzz #113728 02:28 PM, 08 Aug 2019
    господа, подскажите плиз

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

    создал тестовую таблицу и загнал туда данные

    хочу создать вторую таблицу вижу ошибку
    Existing table metadata in ZooKeeper differs in sample expression. Stored in ZooKeeper: intHash32(UserID), local: intHash32(PlayerID) (version 19.11.3.11 (official build))
  • https://t.me/clickhouse_ru
    @606215749 #113730 02:29 PM, 08 Aug 2019
    бан
  • таблиц с таким названием точно не создавал
  • https://t.me/clickhouse_ru
    нет не сработает. Надо делать MV на всех нодах (и хотябы на всех где идет вставка в таблицу). И само MV вы тоже видимо хотите сделать Replicated
  • @SWx5YQ #113733 02:33 PM, 08 Aug 2019
    а в источник MV указывать Replicated или Distributed движок?
  • https://t.me/clickhouse_ru
    Replicated.

    (на самом деле можно и Distributed, но тут надо понимать зачем вы это делаете, а т.к. вы задаете этот вопрос значит вам нужна Replicated)
  • https://t.me/clickhouse_ru
    имя таблицы не имеет значения, важен только zk_путь в описании таблицы
  • тьфу, спасибо
  • @ThodinBizzz #113737 02:37 PM, 08 Aug 2019
    невнимательность
  • https://t.me/clickhouse_ru
    @nordluf #113738 02:40 PM, 08 Aug 2019
    Добрый день
    А в туплах появились именованные ключи вместо доступов по номеру? Помнится на одном из митапов обсуждали что хотели сделать
  • https://t.me/clickhouse_ru
    а баг, когда where не передавался в запрос VIEW уже поправлен? кажется, что да
  • https://t.me/clickhouse_ru
    а это не баг 🙂 , и это не про вью, в select * from (select x ) where x=1 тоже не просовывалось, enable_optimize_predicate_expression давно включено по умолчанию
  • https://t.me/clickhouse_ru
    @Felixoid #113741 02:46 PM, 08 Aug 2019
    так, теперь у меня есть
    CREATE VIEW graphite.data_view (`metric` String, `value` Float64, `timestamp` UInt32, `date` Date) AS SELECT metric, timestamp, argMax(value, updated) AS value, date FROM graphite.data_lr GROUP BY metric, timestamp, date
    И если я попробую повесить Distributed поверх и не использовать GROUP BY внутри, то может сработать фокус по аггрегации "надзапроса" на шардах?
  • https://t.me/clickhouse_ru
    должен
  • @SWx5YQ ↶ Reply to #113734 #113743 02:54 PM, 08 Aug 2019
    Т.е делать обычные матвьюхи на каждом сервере, верно?
  • https://t.me/clickhouse_ru
    да, с движком replicated которые смотрят (from ) replicated
  • https://t.me/clickhouse_ru
    @den_crane #113745 02:57 PM, 08 Aug 2019
    Т.е. возможны 4 варианта

    1. from Replicated to Replicated
    2. from Distributed to Replicated
    3. from Distributed to Distributed
    4. from Replicated to Distributed

    самый используемый 1.
  • https://t.me/clickhouse_ru
    Спасибо, кажется, фокус удался
  • https://t.me/clickhouse_ru
    тут только возможна засада, у вас argMax раньше схлопывал дубликаты с разных серверов / шардов
  • https://t.me/clickhouse_ru
    При ключе шардирования по имени метрики всё в порядке
  • https://t.me/clickhouse_ru
    а ну так вам тогда можно еще и суперускоритель включить distributed_group_by_no_merge=1
  • https://t.me/clickhouse_ru
    @Felixoid #113750 03:01 PM, 08 Aug 2019
    Это можно сделать только на эти запросы ведь?
  • https://t.me/clickhouse_ru
    @den_crane #113751 03:02 PM, 08 Aug 2019
    в конце запроса settings distributed_group_by_no_merge=1
  • @SWx5YQ ↶ Reply to #113745 #113752 03:02 PM, 08 Aug 2019
    а для запросов из MV делать Distributed? (поверх MV)
  • https://t.me/clickhouse_ru
    да , конечно
  • https://t.me/clickhouse_ru
    @frankegoesdown #113754 03:54 PM, 08 Aug 2019
    Добрый вечер, коллеги, пытаюсь запустить запрос через jdbc-bridge
    https://clickhouse.yandex/docs/ru/query_language/table_functions/jdbc/

    SELECT *
    FROM jdbc('jdbc:postgresql://localhost:5432?user=login&password=password', 'schema', 'table')

    Received exception from server (version 19.11.4):
    Code: 410. DB::Exception: Received from localhost:9000. DB::Exception: jdbc-bridge is not running. Please, start it manually.

    0 rows in set. Elapsed: 0.001 sec.
    Бридж запущен на его дефолтном порте 9019, но получаю ошибку, которая написана выше. Подскажите пожалуйста, где указать CH смотреть на бридж?
    Спасибо
  • https://t.me/clickhouse_ru
    SELECT *
    FROM url(`http://localhost:9019`, 'CSV', 'id Int32')
  • https://t.me/clickhouse_ru
    @Krashuevina #113756 03:57 PM, 08 Aug 2019
    Что такой запрос даёт?
  • https://t.me/clickhouse_ru
    @frankegoesdown #113757 03:58 PM, 08 Aug 2019
    @Krashuevina id, name - колонки из постгресовой таблички
  • https://t.me/clickhouse_ru
    @ilya_horoshenkiy #113758 04:06 PM, 08 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @r0hack #113759 04:25 PM, 08 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @r0hack #113762 04:34 PM, 08 Aug 2019
    Почему в ClickHouse убрали UPDATE и DELETE ?
  • https://t.me/clickhouse_ru
    что значит убрали?
  • https://t.me/clickhouse_ru
    @r0hack #113764 04:35 PM, 08 Aug 2019
    ну их вообще небыло, имеется ввиду по отношению к sql диалекту
  • Их там никогда не было. Так задумано
  • https://t.me/clickhouse_ru
    потому что типичные кейсы использования не подразумевают надобности построчного обновления и удаления
  • https://t.me/clickhouse_ru
    @r0hack ↶ Reply to #113765 #113767 04:37 PM, 08 Aug 2019
    ну вот хочу понять, почему так было задумано )
  • https://t.me/clickhouse_ru
    @vstepankov #113768 04:37 PM, 08 Aug 2019
    гуглить OLAP и OLTP, пытаться понять почему же
  • https://t.me/clickhouse_ru
    @r0hack ↶ Reply to #113766 #113769 04:37 PM, 08 Aug 2019
    в других колоночных вроде есть или я ошибасюь
  • https://t.me/clickhouse_ru
    @r0hack ↶ Reply to #113768 #113770 04:38 PM, 08 Aug 2019
    может лучше с реляционных таблиц начать гуглить ?
  • https://t.me/clickhouse_ru
    уж точно не человек с доктриной на аватарке будет учить меня реляционным базам.
    Вы борец за расовую чистоту SQL?
  • https://t.me/clickhouse_ru
    @r0hack #113772 04:41 PM, 08 Aug 2019
    Я не просил давать мне советов гуглить олапы или что-то там еще..., я спросил почему нет UPDATE и DELETE, какие на то причины. Если не знаете почему или не хотите отвечать, не надо!
  • https://t.me/clickhouse_ru
    @vstepankov #113773 04:42 PM, 08 Aug 2019
    Давайте ещё раз.
    Кликхаус разрабатывался яндексом для себя, а не для SQL-критиков.
    Кликхаус разрабатывался под потребности и кейсы яндекса.
    У них не было нужды в реализации данных операций.
    Что вам тут не понятно?
  • https://t.me/clickhouse_ru
    @r0hack ↶ Reply to #113773 #113774 04:43 PM, 08 Aug 2019
    причем тут критика ??? Я делаю ресерч и нужно понять, почему вырезали и все!
  • https://t.me/clickhouse_ru
    @vstepankov #113775 04:44 PM, 08 Aug 2019
    Ладно, вырезали так вырезали. Умываю руки
    ¯\_(ツ)_/¯
  • https://t.me/clickhouse_ru
    В КХ никогда не было update/delete. На самом деле их очень тяжело реализовать и по сути их нету до сих пор.
    В других OLAP есть конечно update/delete, но оно такое, якобы есть ( я однажды запустил в вертике update одного миллиарда в широкой таблице, спустя 4 часа плюнул и отменил).

    В КХ есть административные мутации которые позволяют админу пофиксить данные

    The syntax for updates and deletes is non-standard SQL. ClickHouse team wanted to express the difference from traditional SQL: new updates and deletes are batch operations, performed asynchronously. It is even called 'mutations'. Custom syntax highlights the difference.
  • https://t.me/clickhouse_ru
    @r0hack ↶ Reply to #113776 #113777 05:32 PM, 08 Aug 2019
    а как же ALTER UPDATE и DELETE
  • https://t.me/clickhouse_ru
    на бис: В КХ есть административные мутации которые позволяют админу пофиксить данные

    The syntax for updates and deletes is non-standard SQL. ClickHouse team wanted to express the difference from traditional SQL: new updates and deletes are batch operations, performed asynchronously. It is even called 'mutations'. Custom syntax highlights the difference.
  • @SWx5YQ #113779 06:37 PM, 08 Aug 2019
    ребят, вопрос
    Кафка нормально работает с обычной таблицей, но отказыватся работать с реплицируемой, это нормально?
    связка кафка - мв - реаплицируемая таблица
  • а какая версия кликхауса? в последних версиях интеграция с кафкой была поломана и mv иногда переставала получать данные
  • @SWx5YQ ↶ Reply to #113780 #113782 06:48 PM, 08 Aug 2019
    19.13.1.11
  • вроде бы PR с фиксом туда не попал https://github.com/yandex/ClickHouse/pull/6354
  • @RomanYx #113784 06:53 PM, 08 Aug 2019
    я откатывался с 19.11 до 19.8 - на этой версии получение данных из кафки работает, по крайней мере у нас
  • https://t.me/clickhouse_ru
    в каком смылсе отказывается? Пусто? Так это дедупликация.
  • @SWx5YQ ↶ Reply to #113785 #113786 07:02 PM, 08 Aug 2019
    как дедупликация может помешать вставке? все консьюмеры читают из одного топика под одной группой, записи уникальны. Пусто во всех таблицах.
  • https://t.me/clickhouse_ru
    ну разница между обычной и реплицируемой таблицей только в дедупликации и транзакциях в зукипере.
    в логе КХ будут ошибки о транзакциях или сообщения о наличии такого блока и его пропуске.
  • https://t.me/clickhouse_ru
    @ilkhom98 #113788 07:16 PM, 08 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @natalikuksa #113789 07:54 PM, 08 Aug 2019
    Joined.
  • @abreyman #113792 09:19 PM, 08 Aug 2019
    Joined.
  • 09 August 2019 (138 messages)
  • https://t.me/clickhouse_ru
    @aevteev #113801 05:43 AM, 09 Aug 2019
    Joined.
  • @978732420 #113802 05:58 AM, 09 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @Alesapin #113805 06:13 AM, 09 Aug 2019
    Left.
  • https://t.me/clickhouse_ru
    @Alesapin #113806 06:13 AM, 09 Aug 2019
    Joined.
  • @890414954 #113810 06:39 AM, 09 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @ilevd #113811 07:57 AM, 09 Aug 2019
    А кликхаус если создать колонку DateTime хранить в UTC или в таймзоне сервера?
  • https://t.me/clickhouse_ru
    @igor_dia #113812 07:57 AM, 09 Aug 2019
    Еще одну ошибку заметил в 19.11:
    Bad size of marks file '/var/lib/clickhouse/data/default/foo/20370413_4500_4500_0/filename.mrk2': 0, must be: 120

    Появилось после того, как на диске закончилось место, но потом мы его добавили и повторили вставку.
  • https://t.me/clickhouse_ru
    Сделаете issue? Там хорошо бы написать структуру таблицы и показать все файлы в этой папке с их размерами.
  • https://t.me/clickhouse_ru
    @igor_dia #113814 08:00 AM, 09 Aug 2019
    не могу
  • https://t.me/clickhouse_ru
    DateTime

    Дата-с-временем. Хранится в 4 байтах, в виде (беззнакового) unix timestamp. Позволяет хранить значения в том же интервале, что и для типа Date. Минимальное значение выводится как 0000-00-00 00:00:00. Время хранится с точностью до одной секунды (без учёта секунд координации).
  • https://t.me/clickhouse_ru
    Тогда врядли получится вам помочь.
  • @291948808 #113817 08:07 AM, 09 Aug 2019
    добрый день, товариищи! есть вопрос. может не прямо про тему, заранее извиняюсь. ктото юзал кх в роли бд для источника данных отчетов power bi? есть ли там дайрек кьюри режим?
  • @shevchenko_denis #113818 08:07 AM, 09 Aug 2019
    Добрый день, подскажите пожалуйста... Есть таблица вида
    | timestamp | ip | error | bytes |
    Надо сгрупировать по timestamp и получить для каждого момнта времени количество ip (для которых были ошибки) и просто суммарное количество ошибок в этот момент времени и сумму байт... Как это лучше сделать?
  • @291948808 #113819 08:08 AM, 09 Aug 2019
    а момент времени у тебя сколько?
  • всегд строк с пол ярда, а группируются раз в 30 секунд
  • @291948808 #113821 08:09 AM, 09 Aug 2019
    так тебе для момента времени или для диапазона времени?
  • @shevchenko_denis #113822 08:09 AM, 09 Aug 2019
    т.е. таймштампы "округлены" до 30 секунд.
  • @shevchenko_denis #113823 08:09 AM, 09 Aug 2019
    для диапозона
  • @shevchenko_denis #113824 08:09 AM, 09 Aug 2019
    график построить
  • @shevchenko_denis #113825 08:10 AM, 09 Aug 2019
    количество ошибок + кол-во уникальных IP c ошибками
  • @291948808 #113826 08:10 AM, 09 Aug 2019
    а в чем именно проблема? просто сгруппировать и посчитать не подходит?
  • @shevchenko_denis #113827 08:11 AM, 09 Aug 2019
    Немного не так вопрос написал. Забыл указать что в таблице есть еще поля их надо суммировать не зависимо от того были ошибки или нет.
  • https://t.me/clickhouse_ru
    @klermonte #113828 08:12 AM, 09 Aug 2019
    countIf() и uniqIf() вам в помощь
  • спасибо!
  • https://t.me/clickhouse_ru
    @Mike_Er #113830 09:48 AM, 09 Aug 2019
    Коллеги, а подскажите, кто за rpm репо яндекса отвечает?
    "Transaction check error:
    file /etc/clickhouse-server/config.xml from install of clickhouse-server-19.13.1.11-2.noarch conflicts with file from package clickhouse-server-common-19.11.5.28-1.el

    "
  • https://t.me/clickhouse_ru
    @606215749 #113831 09:48 AM, 09 Aug 2019
    Привет всем!
    подскажите как полет v19.13.1.11 в проде? кто уже перешел?
    особенно косаемо проблемы с кафкой в предыдущих релизах
  • https://t.me/clickhouse_ru
    У тебя скорее всего старые рпм не от Я а от Альтинити
  • кафка ещё в процессе фикса
  • https://t.me/clickhouse_ru
    есть какие то примерные эстимации?
  • https://t.me/clickhouse_ru
    так и есть. удалять старое ?
  • Пул смержен, пока тестируется
  • https://t.me/clickhouse_ru
    @606215749 #113837 09:56 AM, 09 Aug 2019
    cпасибо!
  • https://t.me/clickhouse_ru
    угу
  • https://t.me/clickhouse_ru
    @koch_kir #113839 10:14 AM, 09 Aug 2019
    привет! у меня такой вопрос - на одном сервере была таблица ReplacingMergeTree старого формата, я скопировал папку с данными на другой сервер и хочу сделать ATTACH. Обязан ли я использовать в этом запросе старый формат ReplacingMergeTree, или можно новый?
  • @JGooLaaR пробовали, не получилось подключиться по odbc. Правда, не напрямую к pbi, а сначала к analysis services tabular
  • https://t.me/clickhouse_ru
    Обязан. Форматы несовместимы
  • https://t.me/clickhouse_ru
    @Mike_Er #113842 11:04 AM, 09 Aug 2019
    "Code: 410, e.displayText() = DB::Exception: ODBCBridgeHelper: clickhouse-odbc-bridge is not responding (version 19.13.1.11 (official build))" - вот с этим кто-нибудь знает что делать? rpm сборки
  • https://t.me/clickhouse_ru
    @Mike_Er #113843 11:04 AM, 09 Aug 2019
    если бридж руками запустить - все ок
  • https://t.me/clickhouse_ru
    @forward32 #113844 11:25 AM, 09 Aug 2019
    Привет.

    Есть таблица на порядка 100к записей, есть запрос вида SELECT * FROM table LIMIT N. Запрос выполняется с параметрами max_execution_time=5&max_execution_speed=100000.

    1) При N=10 имеем ошибку Estimated query execution time (58.9676544 seconds) is too long. Maximum: 5. Estimated rows to process: 147456.
    2) При N=100 имеем ошибку Estimated query execution time (5.896765439999999 seconds) is too long. Maximum: 5. Estimated rows to process: 147456
    3) При больших N ошибка почти никогда не возникает (очень редко).

    Случай 1) и 2) на самом деле выполняются за несколько ms, даже us.
    Если выкинуть настройку max_execution_speed, то 1) и 2) никогда не возникают.

    ВОПРОС - что я не делаю не так, или почему КХ странно оценивает время выполнения?
  • https://t.me/clickhouse_ru
    @forward32 #113845 11:29 AM, 09 Aug 2019
    При N=1 можно получить даже вот такое Estimated query execution time (589.676544 seconds) is too long. Maximum: 60. Estimated rows to process: 147456
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #113844 #113846 11:44 AM, 09 Aug 2019
    Выполняется за ms/us потому что скорее всего лежит в кеше, а CH это не учитывает при расчетах.
  • @GordeevEvgenii #113847 11:46 AM, 09 Aug 2019
    А в кликхаусе нет этой мускульной фишки про "звездочку" (которая отключает использование всяких индексов и прочих оптимизаций)?
  • А если явно указать набор полей так же будет?
  • https://t.me/clickhouse_ru
    @forward32 #113849 11:49 AM, 09 Aug 2019
    Там явно указан набор полей, я для примера его выкинул. Все поля таблицы перечислены, запрос чуть сложнее, но смысл того, что при изменении N на порядок влево-вправо estimeted time также меняется на порядок в обратную сторону.
  • Возможно проблема в гранулярности индекса (index_granularity) у таблице? в доке написано что КХ не очень хорошо работает с запросами где результирующая выборка небольшая.
  • https://t.me/clickhouse_ru
    я думаю баг. Какая версия. КХ ? ЕМНИП max_execution_speed недавно правили
  • https://t.me/clickhouse_ru
    19.13.1.11 with revision 54425
  • https://t.me/clickhouse_ru
    @den_crane #113853 12:18 PM, 09 Aug 2019
    А на таком простом тесте воспроизводится?

    create table ES(A Int64, B String) Engine=MergeTree order by A;
    insert into ES select number x, toString(x) from numbers(100000);
    insert into ES select number x, toString(x) from numbers(100000);
    set max_execution_time=1, max_execution_speed=100000

    SELECT * FROM ES LIMIT 5 format Null;
    5 rows in set. Elapsed: 0.001 sec.

    SELECT * FROM ES LIMIT 500000 format Null;
    Received exception from server (version 19.13.1):
    Code: 159. DB::Exception: Received from localhost:9000. DB::Exception: Timeout exceeded: elapsed 1.003987463 seconds, maximum: 1.

    19.13.1.1010
  • https://t.me/clickhouse_ru
    @forward32 #113854 12:22 PM, 09 Aug 2019
    Проверю и сразу отпишусь
  • https://t.me/clickhouse_ru
    @den_crane #113855 12:26 PM, 09 Aug 2019
    да похоже исправили, 9 дней назад https://github.com/yandex/ClickHouse/pull/6232

    в 19.9.5.36 например еще был

    LIMIT 5
    DB::Exception: Estimated query execution time (170.35100160000002 seconds) is too long.

    LIMIT 500
    500 rows in set. Elapsed: 0.005 sec.
  • https://t.me/clickhouse_ru
    @filippchistiakov #113856 12:27 PM, 09 Aug 2019
    В таблие есть нексколько полей, они или Null или 1, как можно посчитать кол-во строк?
  • https://t.me/clickhouse_ru
    @filippchistiakov #113857 12:27 PM, 09 Aug 2019
    При группировке GROUP BY расчет по пустым полям не идет
  • https://t.me/clickhouse_ru
    count() должен считать
  • https://t.me/clickhouse_ru
    @den_crane #113859 12:28 PM, 09 Aug 2019
    select count(), a from (select Null as x, Null as a) group by a
    ┌─count()─┬─a────┐
    │ 1 │ ᴺᵁᴸᴸ │
    └─────────┴──────┘
  • https://t.me/clickhouse_ru
    @filippchistiakov #113860 12:29 PM, 09 Aug 2019
    Да я тоже проверил, странно тогда
  • если нужно посчитать количество единиц, то sum(), если всего строк, то count()
  • https://t.me/clickhouse_ru
    ???????????
  • https://t.me/clickhouse_ru
    @filippchistiakov #113863 12:29 PM, 09 Aug 2019
    Буду разбираться с таблицей тогда дальше
  • https://t.me/clickhouse_ru
    У меня образ уже с этой правкой, там другое было (я заводил этот issue).
    Попробую на игрушечной таблице воспроизвести.
  • https://t.me/clickhouse_ru
    @misterdrew #113865 12:30 PM, 09 Aug 2019
    Joined.
  • ну в смысле если нужно посчитать только количество полей, в которых была единица, то сум по полю с 1
  • https://t.me/clickhouse_ru
    @filippchistiakov #113867 12:32 PM, 09 Aug 2019
    SELECT uniqExact(test)
    FROM (
    SELECT null as test
    UNION ALL
    SELECT 1 as test
    UNION ALL
    SELECT 0 as test)

    F Какой аналог фции uniqExact которое учитывает и null поля?
  • https://t.me/clickhouse_ru
    @den_crane #113868 12:37 PM, 09 Aug 2019
    ну можно null заменить на значение которого нет count(ifNull(-1))

    uniqExact делает все правильно, например pg

    select count(test) from (SELECT null as test UNION ALL SELECT 1 as test UNION ALL SELECT 0 as test) as X;
    count
    -------
    2
  • https://t.me/clickhouse_ru
    @forward32 #113869 12:38 PM, 09 Aug 2019
    @den_crane
    131cf9a99e77 :) select A, B from ES limit 5000 format Null;

    SELECT
    A,
    B
    FROM ES
    LIMIT 5000
    FORMAT Null

    5000 rows in set. Elapsed: 0.007 sec. Processed 5.00 thousand rows, 102.78 KB (727.64 thousand rows/s., 14.96 MB/s.)

    131cf9a99e77 :) select A, B from ES limit 5000 format Null;

    SELECT
    A,
    B
    FROM ES
    LIMIT 5000
    FORMAT Null

    5000 rows in set. Elapsed: 0.053 sec. Processed 5.00 thousand rows, 102.78 KB (93.50 thousand rows/s., 1.92 MB/s.)

    131cf9a99e77 :) select A, B from ES limit 5 format Null;

    SELECT
    A,
    B
    FROM ES
    LIMIT 5
    FORMAT Null

    ↑ Progress: 0.00 rows, 0.00 B (0.00 rows/s., 0.00 B/s.) Received exception from server (version 19.13.1):
    Code: 160. DB::Exception: Received from 172.25.0.100:9000. DB::Exception: Estimated query execution time (163.84 seconds) is too long. Maximum: 1. Estimated rows to process: 204800.
  • https://t.me/clickhouse_ru
    @den_crane #113870 12:58 PM, 09 Aug 2019
    странно что в 19.13.1.1010 работает.
  • https://t.me/clickhouse_ru
    @forward32 #113871 12:58 PM, 09 Aug 2019
    А вы пробовали раз 10 пощелкать, да?
    У меня тоже не с первого раза вылезло
  • https://t.me/clickhouse_ru
    @den_crane #113872 01:16 PM, 09 Aug 2019
    раз 100 попробовал, возможно это сервер такой удачно незагруженный, попробую сделать более широкую таблицу
  • https://t.me/clickhouse_ru
    @forward32 #113873 01:19 PM, 09 Aug 2019
    я тестил на докере на ноуте с 16Г ненагруженном вообще
  • https://t.me/clickhouse_ru
    @forward32 #113874 01:19 PM, 09 Aug 2019
    с 3го раза вылезло
  • https://t.me/clickhouse_ru
    @den_crane #113875 01:30 PM, 09 Aug 2019
    воспроизвелось с

    create table ES(A Int64, B String, S String, D Float64, X Date) Engine=MergeTree order by A;
    insert into ES select number x, toString(x), toString(x%103), x/1232, today()+x%1000 from numbers(1000000)
    SET max_execution_time = 1, max_execution_speed = 100000

    SELECT * FROM ES LIMIT 5 format Null;
    DB::Exception: Estimated query execution time (1611.7825536 seconds) is too long.

    LIMIT 50
    50 rows in set. Elapsed: 0.003 sec.

    LIMIT 1
    DB::Exception: Estimated query execution time (8058.912768 seconds) is too long
  • https://t.me/clickhouse_ru
    @forward32 #113876 01:32 PM, 09 Aug 2019
    ишью заведете?
  • https://t.me/clickhouse_ru
    @den_crane #113877 01:38 PM, 09 Aug 2019
    да заведу через пару часов, я еще помучаю чтобы 100% воспроизводилось, пока флапает
  • https://t.me/clickhouse_ru
    @rheinx #113880 03:45 PM, 09 Aug 2019
    Ребят, а есть ли где-то метрика отображающая счетчик прошедших мержей?
  • https://t.me/clickhouse_ru
    @lnuynxa #113881 03:55 PM, 09 Aug 2019
    Относятся ли materialized view, к словам о том, что clickhouse не очень подходит к доступу к отдельным записям по ключу?
    Или лучше для такого иметь такое представление в postgresql?
  • @irina_dvoryaninova #113882 03:57 PM, 09 Aug 2019
    Коллеги, добрый вечер!
    Хотим хранить в кликхаусе данные с переменным набором полей на каждую запись. Если делать на каждое поле свой столбец, их получится миллион, из которых будет заполнен 1%. Неэффективно.
    Вместо этого рассматриваем вариант хранения словарей в столбцах (говорят, так можно?). Но со словарями возникает проблема множественного дублирования заголовков. Т.е. тоже не суперэффективно получается.
    Другой вариант - хранить массивы без заголовков, а в отдельной таблице держать наименования столбцов. Но даже от типа события поля могут варьироваться.
    В общем, мы в раздумьях. Подскажите, пожалуйста, какой вариант для хранения таких данных вы бы посоветовали? Может, вообще какой-то другой?
  • https://t.me/clickhouse_ru
    Словари, а Заголовки хранить enumом?
  • @ppcosnt #113884 04:00 PM, 09 Aug 2019
    Всем привет. Возможно ли сделать так, чтобы у пользователя к одной базе был полный доступ, а к другой только на чтение?
  • @odinass #113885 04:03 PM, 09 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #113881 #113886 04:08 PM, 09 Aug 2019
    Да. Но тут важно просто понимать как оно работает под капотом. У нас например есть несколько мелких view которые заботают примерно для такого сценария и норм.
  • Enum это вроде как словарь. Смотря про какой Вы вариант говорите.
    Если про хранение в отдельной таблице, то не вижу там смысла хранить Enum - просто массив.
  • @irina_dvoryaninova #113888 04:12 PM, 09 Aug 2019
    Или я не понимаю, как хранить заголовки enum-ом
  • https://t.me/clickhouse_ru
    ну это относительное понятие. Т.е. конечно в кх можно сделать index_granularity = 1 max_threads=1 и будет доступ по ключу за микросекунды, другое дело что в mysql будет за доли микросекунд.

    https://www.altinity.com/blog/clickhouse-in-the-storm-part-1
    https://www.altinity.com/blog/clickhouse-in-the-storm-part-2
  • https://t.me/clickhouse_ru
    @den_crane #113890 04:17 PM, 09 Aug 2019
    max_block_size еще можно уменьшать например до 1024, max_read ..., чтобы не обрабатывать мегабайты
  • https://t.me/clickhouse_ru
    А насколько популярное тогда решение, как вынос таких представлений в обычные бд?
    Или как обычно решают подобную задачу?
    (Предоставление агрегированных данных пользователям)
  • https://t.me/clickhouse_ru
    я бы начал задаватся этим вопросом после 10000 веб. серверов и 10 млн. пользователей в час.
  • https://t.me/clickhouse_ru
    Мг, понял, спасибо
  • https://t.me/clickhouse_ru
    речь про nested ? про массивы? Что в массивах (keys Array(String) , values Array(String)) повторяются keys ? LowCardinality решает эту проблему. (keys Array(LowCardinality(String)) , values Array(String))

    и понятно что хранить key числом эффективнее и расшифровывать через external dictionary. enam не очень удобен, когда надо его расширять постоянно из-за появления новых key.
  • https://t.me/clickhouse_ru
    нет
  • https://t.me/clickhouse_ru
    можно view сделать в отдельной базе как workaround
  • Вот вопрос, как лучше хранить. Nested, наверное, нам не подойдет, так как для каждого типа события события свой набор полей.

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

    Вот про LowCardinality я не знаю, можете пояснить в двух словах?
  • Про LowCardinality: https://www.altinity.com/blog/2019/3/27/low-cardinality
    И про хранение в массивах: https://www.altinity.com/blog/2019/5/23/handling-variable-time-series-efficiently-in-clickhouse раздел про key value optimizations
    A Magical Mystery Tour of the LowCardinality Data Type

    Mar 27, 2019Many ClickHouse features like LowCardinality data type seem mysterious to new users.  ClickHouse often deviates from standard SQL and many data types and operations do not even exist in other data warehouses. The key to understanding is that the ClickHouse engineering team values speed more than almost any other property. Mysterious SQL expressions often turn out to be 'secret weapons' to achieve unmatched speed.In fact, the LowCardinality data type is an example of just such a feature. It has been available since Q4 2018 and was marked as production ready in Feb 2019, but still is not documented, magically appearing in some documentation examples. In this article we will fill the gap  by explaining how LowCardinality works, and when it should be used.

  • Спасибо!
  • @nbusorgin #113900 05:01 PM, 09 Aug 2019
    Nested вам подойдёт. Будет структура из массива ключей и значений. У каждого типа события набор ключей будет свой
  • https://t.me/clickhouse_ru
    ясно, видимо я вообще неправильно все понял.

    Я хотел сказать что можно хранить в массивах

    create table X (id UIint64, ........, key Array, Value Array)
  • О, круто! Не знала, что так можно делать в Clickhouse
  • @nbusorgin #113903 05:03 PM, 09 Aug 2019
    Мы используем гибридный вариант, всё храним в массивах, для частых отчётов создаём материализованные столбцы, куда пишем конкретные значения из массива. По моей второй ссылке вроде бы это тоже описывается
  • https://t.me/clickhouse_ru
    так вот повторяющиеся key можно сделать типом Array(LowCardinality(String))
    лучше конечно закодировать color = 1, brand =2 , тогда столбик будет меньше, но все зависит от ваших объемов, я бы сделал тупо Array(LowCardinality(String)), я в общем так и делаю до 100млрд.
  • Интересно, спасибо, я читаю!
    Насчет nested я не до конца поняла все-таки. Например, у меня есть события id = 1 и id = 2. У id = 1 поля srcIP и dstIP, у id = 2 поля username и hostname. Как тогда мне формировать Nested? Все четыре поля туда писать? Это эффективно?
  • Спасибо, пока читаю по LowCardinality. Буду разбираться!
  • @nbusorgin #113907 05:09 PM, 09 Aug 2019
    Нестед - это грубо говоря альас для двух массивов с одинаковой длиной
  • https://t.me/clickhouse_ru
    невозможно ответить про эффективность. Если полей будет меньше 1000, возможно эффективнее хранить в отдельных полях, зависит от объемов и запросов. Т.е. например у id3 может быть 6 username сразу ?
  • Ключи внутри одного id не повторяются
  • https://t.me/clickhouse_ru
    почему id1 и id2 лежат в одной таблице а не в двух разных?
  • Мы хотим делать одну таблицу на один источник логов. В рамках одного источника есть набор разных типов событий. У каждого свой набор полей. Ключи пересекаются между разными типами событий, но не повторяются в рамках одного события
  • Интересное решение.
  • Мы городили подобный огород, вышло ооооочень медленно в итоге. Лучше грейлог поставить для этого дела с визуализацией в графане
  • Только у нас была одна таблица и туда разные эвенты сыпались, фильтровали в основном по колонкам, но нужные данные драли из nested колонки. Вот селекты этих нестедов были крайне медленные
  • https://t.me/clickhouse_ru
    @nordluf #113915 06:06 PM, 09 Aug 2019
    А в туплах можно уже не только по индексам обращаться?
  • https://t.me/clickhouse_ru
    @ilya_horoshenkiy #113916 06:14 PM, 09 Aug 2019
    Здравствуйте. Подскажите, пожалуйста, а как clickhouse выполняет сжатие? Он сжимает каждый отдельный вставленный блок или всю партицию?
  • https://t.me/clickhouse_ru
    @ilya_horoshenkiy #113917 06:16 PM, 09 Aug 2019
    То есть при вставке данных он пережимает всю партицию с учётом новых данных или нет?
  • https://t.me/clickhouse_ru
    @ilya_horoshenkiy #113918 06:18 PM, 09 Aug 2019
    Понятно, что при использовании zstandard можно словарь формировать, а что ch делает в случае lz4?
  • вставка данных создает новый кусок, который сжимается. в неопределенный момент времени кликхаус мержит куски внутри партиции, создавая более большой кусок
  • @RomanYx #113920 06:19 PM, 09 Aug 2019
    вызвать внеочередное слияние партции можно через OPTIMIZE TABLE tablename PARTITION part FINAL
  • @RomanYx #113921 06:21 PM, 09 Aug 2019
    ну и сжатие работает поколоночно внутри куска данных. каждая колонка - это отдельный файл на диске (2 файла - данные и засечки первичного ключа)
  • https://t.me/clickhouse_ru
    Да, это логично. Спасибо)
  • https://t.me/clickhouse_ru
    @ilya_horoshenkiy #113923 06:27 PM, 09 Aug 2019
    А как в cliickhouse работает гранулирование индекса? Предположим, что у меня index по 3 колонкам, он гранулирует каждую из 3х колонок или только tuple из 3х значений?
  • https://t.me/clickhouse_ru
    @ilya_horoshenkiy #113924 06:30 PM, 09 Aug 2019
    Поясню, у меня одна из колонок индекса (последняя) имеет только уникальные значения. Имеет ли это какие либо последствия для performance?
  • https://t.me/clickhouse_ru
    А зачем тогда она в индексе? Это инт?
  • https://t.me/clickhouse_ru
    Да, это int. В основном по этой колонке и выполняются запросы
  • https://t.me/clickhouse_ru
    А как выглядят запросы?
  • https://t.me/clickhouse_ru
    @orloffv #113928 06:33 PM, 09 Aug 2019
    В индекс имеет смысл класть то, что сузит количество считываемых данных. В твоём случае все равно фулскан будет
  • https://t.me/clickhouse_ru
    Это колонка просто время в микросекундах.
  • https://t.me/clickhouse_ru
    А что ты с ними делаешь? Фильтруешь по ним?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @orloffv #113932 06:38 PM, 09 Aug 2019
    Можно сделать вторичный индекс с min/max например
  • https://t.me/clickhouse_ru
    @orloffv #113933 06:38 PM, 09 Aug 2019
    Хотя наверное и обычный в таком случае подойдёт
  • https://t.me/clickhouse_ru
    Ну, то есть получается, что ничего криминального в этом нет?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #113934 #113935 07:04 PM, 09 Aug 2019
    Небольшой оверхед по чтению и только.
  • https://t.me/clickhouse_ru
    Понял. Спасибо)
  • Спасибо, что поделились! Учту ваш опыт
  • https://t.me/clickhouse_ru
    там есть одна засада, не нужно использовать arrayEnumerate

    медленно
    select arrayMap(i -> values[i], arrayFilter( i -> keys[i] = 'a', arrayEnumerate(keys))) from
    (select ['a','a','b','a'] keys, [1,2,3,4] values)

    быстро
    select arrayFilter((v, k) -> k = 'a', values, keys) from
    (select ['a','a','b','a'] keys, [1,2,3,4] values)
  • https://t.me/clickhouse_ru
    min_compress_block_size max_compress_block_size

    одинаково для любой компрессии жмемся блок 64 кб - 1 МБ. Сам КХ ничего не знает про устройство внутри компрессора ( про словари ZSTD)

    словари на уровне блока КХ делает супер-тип LowCardinality, и сверху опять же жмется LZ4/ZSTD.
  • @irina_dvoryaninova #113940 07:38 PM, 09 Aug 2019
    А существует у Кликхауса очное обучение?
  • @aopetrov86 #113941 07:54 PM, 09 Aug 2019
    Пока курс будет идти https://clickhouse.yandex/docs/en/changelog/ обгонит?
  • https://t.me/clickhouse_ru
    даже заочного-то нет
  • https://t.me/clickhouse_ru
    @den_crane #113943 08:00 PM, 09 Aug 2019
    Альтинити и я видел курс в udemy
  • @irina_dvoryaninova #113944 08:09 PM, 09 Aug 2019
    Спасибо, коллеги
  • Altinity делает и очные и удалённые тренинги
  • 10 August 2019 (24 messages)
  • https://t.me/clickhouse_ru
    @strangeqargo #113947 08:06 AM, 10 Aug 2019
    Если выгрузить данные вида

    any(field), -1*any(field) group by ... format native

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

    В формате tsv такого не происходит.

    Баг/фича? Ставить тикет?

    Бьются as if in: пропадают, обнуляются, превращаются в мусор
  • https://t.me/clickhouse_ru
    @studnev #113948 08:23 AM, 10 Aug 2019
    Привет! Как разбить таблицы CH по разным дискам?
  • https://t.me/clickhouse_ru
    как вариант симлинками
  • https://t.me/clickhouse_ru
    а ок спасибо!
  • https://t.me/clickhouse_ru
    Есть PR https://github.com/yandex/ClickHouse/pull/4918. Планируем его мержить.
    Feature multiple disks by ObjatieGroba · Pull Request #4918 · yandex/ClickHouse

    I hereby agree to the terms of the CLA available at: https://yandex.ru/legal/cla/?lang=en For changelog. Remove if this is non-significant change. Category (leave one): New Feature Short descript...

  • https://t.me/clickhouse_ru
    @dreamquestofunknowndavid #113952 12:08 PM, 10 Aug 2019
    /stat@combot
  • https://t.me/clickhouse_ru
    @combot #113953 b o t 12:08 PM, 10 Aug 2019
  • https://t.me/clickhouse_ru
    @mysticaltrie777 #113954 01:41 PM, 10 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @239587336 #113955 04:33 PM, 10 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @inv2004 #113956 04:37 PM, 10 Aug 2019
    А есть возможность разбить партишены, чтобы читать параллельно быстрее?
  • @GordeevEvgenii #113958 07:08 PM, 10 Aug 2019
    Для этого надо шардить и использовать дистрибутед движок, насколько я знаю.
  • https://t.me/clickhouse_ru
    @imBash #113959 07:14 PM, 10 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    Отдельные инстансы поднимать на одной машине? - не очень удобно.
  • @GordeevEvgenii #113962 08:19 PM, 10 Aug 2019
    Нет естественно, на разных. В этом и фишка - каждый шард - это своя отдельная пара - диск-рама-процессор
  • @GordeevEvgenii #113963 08:19 PM, 10 Aug 2019
    отсюда и прирост в производительности
  • @GordeevEvgenii #113964 08:20 PM, 10 Aug 2019
    Минус подхода - даныые будут раскиданы на разных машинах, и соответственно собирать их придется "по кускам" в случае чего.
  • https://t.me/clickhouse_ru
    Не понимаю. В том плане что я говорю о том, что иногда много параллельных дисков на одной машине. И о том как это утилизировать. Обычно это делается разделением на партиции по разным дискам.
  • @GordeevEvgenii #113966 08:28 PM, 10 Aug 2019
    Процессор то один и тот же
  • https://t.me/clickhouse_ru
    Ну, грубо говоря он не один, а много ядер + чтение довольно значительная часть операции.
  • @GordeevEvgenii #113968 08:29 PM, 10 Aug 2019
    И контроллеров чтения с диска тоже много?
  • https://t.me/clickhouse_ru
    Ну вообще в ddn это так. Думаю не только в ddn.
  • @GordeevEvgenii #113970 08:32 PM, 10 Aug 2019
    Ну тодгда наверное стоит и на одной машине попробовать.
  • https://t.me/clickhouse_ru
    @inv2004 #113971 08:32 PM, 10 Aug 2019
    Прежде чем пробовать, я хотел понять поддерживается ли это в каком-то виде.
  • ClickHouse читает из одной партиции параллельно, даже из одного куска. При использовании RAID, чтения будут распараллелены по дискам.
  • 11 August 2019 (17 messages)
  • https://t.me/clickhouse_ru
    @NightPandy #113974 08:29 AM, 11 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @koch_kir #113975 10:34 AM, 11 Aug 2019
    столкулся с проблемой - при использовании ATTACH получаю ошибку DB::Exception: Received from localhost:9000, ::1. DB::ErrnoException. DB::ErrnoException: Cannot open file /var/lib/clickhouse/data/plz/metrika_events/format_version.txt, errno: 13, strerror: Permission denied.
  • https://t.me/clickhouse_ru
    Права поменяй на директории или owner смени на clickhouse.
  • https://t.me/clickhouse_ru
    а кликхаус разве создает своего пользака?
  • https://t.me/clickhouse_ru
    Если ставил из пакета, то обычно пакеты создают своего пользователя
  • https://t.me/clickhouse_ru
    @ilya_horoshenkiy #113979 10:37 AM, 11 Aug 2019
    DEB пакеты точно так делают
  • https://t.me/clickhouse_ru
    @alan_lans #113980 11:32 AM, 11 Aug 2019
    Всем привет. в кликхаусе есть WHERE IN ?
  • https://t.me/clickhouse_ru
    @alan_lans #113981 11:33 AM, 11 Aug 2019
    по типу where code in (12345, 23456, 34567)
  • https://t.me/clickhouse_ru
    @vstepankov #113982 11:34 AM, 11 Aug 2019
    есть
  • https://t.me/clickhouse_ru
    @alan_lans #113983 11:43 AM, 11 Aug 2019
    Спасибо) Как оказалось это в доктрине довольно странно работает)
  • @755292812 #113984 12:43 PM, 11 Aug 2019
    Joined.
  • @kinzarra #113985 07:17 PM, 11 Aug 2019
    Всем привет. А как принудительно обновить Materialized View? Спасибо!
  • https://t.me/clickhouse_ru
    Никак.
    Вручную затранкейтить и вставить инсертом.
    Естественно при остановленной заливке.
  • @kinzarra #113987 07:26 PM, 11 Aug 2019
    А как обновляется вьюха? Просто у меня в таблице было пару млн записей, создал вьюху, но она показывает пока только по новым записям...
  • @kinzarra #113988 07:26 PM, 11 Aug 2019
    Или она только по тригеру инсерта работает?
  • https://t.me/clickhouse_ru
    В доке читайте про волшебное слово populate
  • @kinzarra #113990 07:28 PM, 11 Aug 2019
    Все прочитал, спасибо!
  • 12 August 2019 (204 messages)
  • @busfighter #113992 08:19 AM, 12 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @lazuka23 #113993 08:23 AM, 12 Aug 2019
    Привет
    Подскажите, если я поменяю у колонки DEFAULT на MATERIALIZED - изменится поведение при новых вставках, старые данные пересчитываться не будут?
  • @GordeevEvgenii #113994 08:42 AM, 12 Aug 2019
    Зачем кликхаус оставляет неактивные партиции после мержа? От них есть какой-нибудь практический толк? Атачем они в новую таблицу не атачатся, в старой не используются, данные из них уже схлопнулись. В чем трюк?
  • https://t.me/clickhouse_ru
    @Krashuevina #113995 08:44 AM, 12 Aug 2019
    на случай, если смерженные партиции не успели синкнуться на диск
  • https://t.me/clickhouse_ru
    @ployd #113996 08:48 AM, 12 Aug 2019
    + активные запросы ими пользуются
  • Как может идти активный запрос по неактивной партиции?
  • https://t.me/clickhouse_ru
    Когда запрос начал исполнение, то она попадала под список активных. Затем началось "долгое" исполнение, в течении которого надо работать со списком партиций.
  • А, вон оно что.
  • https://t.me/clickhouse_ru
    @ployd ↶ Reply to #113997 #114000 08:52 AM, 12 Aug 2019
    Используемые парты фиксируются перед выполнением запроса, у каждого увеличивается счётчик. Нельзя убить парт, пока счётчик ненулевой
  • https://t.me/clickhouse_ru
    @ployd #114001 08:52 AM, 12 Aug 2019
    + после мёржа не меньше 8минут должно пройти
  • https://t.me/clickhouse_ru
    @ployd #114002 08:52 AM, 12 Aug 2019
    Алексей рассказывал, почему 8мин: обычно по дефолту 5мин сброс в линуксах dirty страниц. 8мин больше 5, но меньше 10
  • А если сервер тормознуть это вызовет завершение всех мержей или он поставит в таблице где-нибудь метку что "нужно промержить"?
  • @GordeevEvgenii #114004 08:53 AM, 12 Aug 2019
    Имеется в виду штатное завершение работы ноды
  • https://t.me/clickhouse_ru
    @ployd ↶ Reply to #114003 #114005 08:53 AM, 12 Aug 2019
    Ну, если убить сервер, то просто заново мёржить будет
  • https://t.me/clickhouse_ru
    @ployd #114006 08:53 AM, 12 Aug 2019
    Вообще при старте чексуммы проверяются и если что-то не так, то мёрж заново
  • https://t.me/clickhouse_ru
    @ployd ↶ Reply to #114004 #114007 08:54 AM, 12 Aug 2019
    А вот тут не уверен
  • https://t.me/clickhouse_ru
    @ployd #114008 08:55 AM, 12 Aug 2019
    Но мёрж партов по идее "атомарен": либо произошёл, либо нет
  • Просто интересно они идут "тупо по расписанию" или будут еще раз проведены при "нормальном завершении работы приложения"
  • @GordeevEvgenii #114010 08:57 AM, 12 Aug 2019
    По идее же когда программа завершает работу все ее ресурсы должны быть на уровне ОС "штатно" освобождены, а это, насколько мне не изменяет склероз - означает что будут завершены все процессы записи и прочего
  • https://t.me/clickhouse_ru
    При нормальном завершении новые парты будут записаны на диск
  • https://t.me/clickhouse_ru
    @blind_oracle #114012 08:59 AM, 12 Aug 2019
    а старые удалятся потом
  • @GordeevEvgenii #114013 09:08 AM, 12 Aug 2019
    А есть какая-нибудь команда для того чтобы заставить кликхаус "перечитать конфиг"? Допустим, я добавил нового пользователя, он только после перезапуска сервера "появится" или кликхаус сам смотрит на дату конфига и перечитывает его? А если я накосячу в конфиге?
  • @GordeevEvgenii #114014 09:11 AM, 12 Aug 2019
    В документации написано что он следит за своим конфигом, но не написано что он будет делать если конфига будет кривая.
  • @sergey239 #114015 09:14 AM, 12 Aug 2019
    наверное подразумевается, что никто не вносит в прод что-то вручную и обкатывают конфиги на стейдж-инстансах, а там типа пофиг на ошибки
  • https://t.me/clickhouse_ru
    Ну, скорее всего, просто грязно выругается в логи и не будет применять конфиг...
  • @tyunyakov #114017 09:29 AM, 12 Aug 2019
    Всем привет! Насколько стабильная версия 19.11.5.28, кто-нибудь уже использует в проде?
  • в логах будут ошибки
  • https://t.me/clickhouse_ru
    @blinkovivan #114019 10:02 AM, 12 Aug 2019
    До ClickHouse митапа в Москве ещё почти месяц, а больше половины зала уже забронировано. Чтобы попасть на мероприятие нужно успеть зарегистрироваться до того, как он станет битком: https://yandex.ru/promo/clickhouse/moscow-2019
    Link

    Приглашаем технических специалистов на митап по ClickHouse. Разработчики системы расскажут о новых функциях и планах, а пользователи — о собственном опыте.

  • https://t.me/clickhouse_ru
    None
  • https://t.me/clickhouse_ru
    @WladySpb #114021 10:05 AM, 12 Aug 2019
    Пины прилетают нотифаями даже при отключённых уведомлениях
  • https://t.me/clickhouse_ru
    @WladySpb #114022 10:05 AM, 12 Aug 2019
    Может, имеет смысл для важных объявлений сделать отдельный канал?
  • https://t.me/clickhouse_ru
    предыдущее обсуждение этой темы должно легко найтись поиском по чатику
  • https://t.me/clickhouse_ru
    электропочта (email подписка) для ретроградов самое оно.
  • https://t.me/clickhouse_ru
    лучше rss тогда
  • https://t.me/clickhouse_ru
    @WladySpb #114026 10:07 AM, 12 Aug 2019
    Кхм. Суть в том, что эти абсолютно ненужные нотифаи никак не отключить, кроме как полным убиранием уведомлений от телеги. И это бесит. При этом, держать чатик в mute хочется, поскольку иногда нужно задать вопрос по КХ
  • https://t.me/clickhouse_ru
    @filippchistiakov #114029 10:10 AM, 12 Aug 2019
    with в сабквери можно как-то передать?
  • https://t.me/clickhouse_ru
    Поискал по истории. Вижу, что ситуация бесит не меня одного, но единственное решение которое предлагается - выйти из чатика.
  • https://t.me/clickhouse_ru
    @WladySpb #114031 10:10 AM, 12 Aug 2019
    Причём, у меня около-программерских чатиков несколько, но регулярно пинить всё подряд есть привычка только в этом
  • https://t.me/clickhouse_ru
    @WladySpb #114033 10:12 AM, 12 Aug 2019
    Ладно. Понадобится - я всегда найду чатик через поиск)
  • https://t.me/clickhouse_ru
    например, можно попробовать найти клиент, где это отключается https://github.com/telegramdesktop/tdesktop/commit/af85aec33b86f138346f28ba70303a0e590f3db7
  • https://t.me/clickhouse_ru
    Пины без уведомления не должны звучать.
  • https://t.me/clickhouse_ru
    @vstepankov #114036 10:22 AM, 12 Aug 2019
    у меня ни клиент на андроиде, ни на десктопе линуксовый не доставляет такой боли при пинах, чтобы я об этом обязательно писал в чат
  • https://t.me/clickhouse_ru
    В настоящий момент, переиспользование выражения из секции WITH внутри подзапроса возможно только через дублирование. Только так:
    WITH ['hello'] AS hello
    SELECT hello, * FROM
    (
    WITH ['hello'] AS hello
    SELECT hello
    )
  • https://t.me/clickhouse_ru
    @WladySpb #114038 10:35 AM, 12 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    десктопная телега это отлично, но проблема касается андроида
  • https://t.me/clickhouse_ru
    @WladySpb #114040 10:40 AM, 12 Aug 2019
    Сообщение без звука кстати есть. Не знаю, возможно ли это с пинами.
  • https://t.me/clickhouse_ru
    @zion_o_zaur #114041 10:43 AM, 12 Aug 2019
    коллеги, добрый день!
    мне нужно хранить информацию с гео+кан-трекеров, ну то есть, controller_id, timestamp, lon, lat, .....
    кажется, мне нужен replacing merge tree, паритционированный по месяцам

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

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

    вопрос, собственно, следующий:
    порядок полей ПК: (controller, timestamp) или (timestamp, controller) ?
  • https://t.me/clickhouse_ru
    у меня андроид не шлёт уведомлений на замьюченный чат при пинах
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @rheinx #114044 11:06 AM, 12 Aug 2019
    Всем привет.
    Подскажите, возможно ли при запросах к таблицам на движке aggregatingMergeTree использовать условия на поля из ключа?

    Сейчас если я использую maxMerge то получаю ошибку о том что это аггрегатная функция:
    Aggregate function maxMerge(last_event_date) is found in WHERE or PREWHERE in query

    а если просто поле, то несовпадение типов:

    Illegal types of arguments (AggregateFunction(max, Date), Date) of function greater
  • @solresl #114045 11:08 AM, 12 Aug 2019
    Подскажите, а как временно исключить select запросы на distributed запросы к одной из реплик? Чтобы, к примеру, провезти на ней регламентные работы?
  • https://t.me/clickhouse_ru
    @altlinux #114046 11:16 AM, 12 Aug 2019
    Добрый день! А ошибки компиляции 19.13.1.11 надо куда-то развешивать ?
    In file included from /usr/src/RPM/BUILD/clickhouse-19.13.1.11/dbms/src/Common/new_delete.cpp:4:
    /usr/src/RPM/BUILD/clickhouse-19.13.1.11/libs/libcommon/include/common/memory.h: In function 'void* Memory::newImpl(std::size_t)':
    /usr/src/RPM/BUILD/clickhouse-19.13.1.11/libs/libcommon/include/common/memory.h:28:18: error: 'malloc' was not declared in this scope
    auto * ptr = malloc(size);
    ^~~~~~
    /usr/src/RPM/BUILD/clickhouse-19.13.1.11/libs/libcommon/include/common/memory.h:28:18: note: 'malloc' is defined in header '<cstdlib>'; did you forget to '#include <cstdlib>'?
    /usr/src/RPM/BUILD/clickhouse-19.13.1.11/libs/libcommon/include/common/memory.h:5:1:
    +#include <cstdlib>

    /usr/src/RPM/BUILD/clickhouse-19.13.1.11/libs/libcommon/include/common/memory.h:28:18:
    auto * ptr = malloc(size);
    ^~~~~~
    /usr/src/RPM/BUILD/clickhouse-19.13.1.11/libs/libcommon/include/common/memory.h: In function 'void* Memory::newNoExept(std::size_t)':
    /usr/src/RPM/BUILD/clickhouse-19.13.1.11/libs/libcommon/include/common/memory.h:38:12: error: 'malloc' was not declared in this scope
    return malloc(size);
  • https://t.me/clickhouse_ru
    спасибо, понял.
  • https://t.me/clickhouse_ru
    @zborovskii_andrei #114049 11:44 AM, 12 Aug 2019
    Как быстро вставить значения из массива ,например, со ста элементами, в таблицу соответственно со ста столбцами типа string, спасибо
  • https://t.me/clickhouse_ru
    @WladySpb #114050 11:51 AM, 12 Aug 2019
    Joined.
  • А чем обычный инсерт не устраивает?
  • https://t.me/clickhouse_ru
    @241186216 #114052 11:59 AM, 12 Aug 2019
    А что за массив . Он где вообще ?
  • https://t.me/clickhouse_ru
    перечислять
    arr[1] f0, arr[2] f1, .... , arr[n] fn
  • https://t.me/clickhouse_ru
    никак. Обычно это не проблема, alter ждет завершения бегущих select и выполняется.
  • https://t.me/clickhouse_ru
    вы что-то странное делаете, скорее всего условие вам надо накладывать в having

    т.е.

    select f0, max(....), sum(...)
    from x
    where max(....)=.... --- так делать нельзя в sql
    group by f0

    либо

    select f0, max(....), sum(...)
    from x
    group by f0
    having max(....)=....

    либо

    select * from (
    select f0, max(....) mx, sum(...)
    from x
    group by f0
    )
    where mx=....
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #114055 #114056 12:13 PM, 12 Aug 2019
    Вьюха смотрит на таблицу эвентов и собирает latest картину.
    т.е. там основные поля это max() по дате и argMax() по значению.

    Вот теперь встала задача выбирать все значения, дата прихода данных по которым больше определенной. Хотел отсекать их на этапе чтения, но не вышло по описанной выше причине)
  • https://t.me/clickhouse_ru
    @hoha_ftf #114057 12:14 PM, 12 Aug 2019
    Добрый день.
    Есть кластер из 6 нод: 3 шарда по 2 реплики
    Делаю select * from distributed

    Если кладу одну ноду, то запрос случайным образом ходит, то на нерабочую реплику, то на рабочую.
    Как с этим можно бороться?
  • https://t.me/clickhouse_ru
    ну если в having слишком медленно, то наверное можно добавить date еще раз без агрегирующей функции. И тогда там будет какое-то any значение и это уже позволит отсечь.
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #114057 #114059 12:18 PM, 12 Aug 2019
    skip_unavailable_shards может
  • На момент перезаливки данных таблицы на одной ноде (при восстановлении) на select к вышестоящей distributed ттаблице, запросы проваливаются на проблемную ноду. Хотелось бы на момент восстановления данных - исключить запросы к ней.

    Чтобы при select обращении к distributed таблице не было обращений на не рабочую ноду КХ, нужно в config.xml выпилить эту реплику тогда ?
  • https://t.me/clickhouse_ru
    это даст неполный-неверный результат
  • https://t.me/clickhouse_ru
    не должно такого быть, это очень странно
    дистрибьютид не посылает запросы на лежащюю ноду
    может упасть только уже бегущий запрос, т.е. надо смотреть лог, че там за фигня
  • https://t.me/clickhouse_ru
    >нужно в config.xml выпилить эту реплику тогда
    да
  • @solresl #114064 12:24 PM, 12 Aug 2019
    спасибо. Правильно я понимаю, что при репликации и на insert используются данные из зукипера по существующим репликам, а на select данные из config.xml?
  • https://t.me/clickhouse_ru
    DEFAULT и MATERIALIZED это практически одно и тоже, отличаются только списком полей в select * и в insert into table .....
    MATERIALIZED поля не показываются в * и в insert без списка полей не будет.

    т.е. идея что можно добавить MATERIALIZED поле в таблицу и при этом существуюещее приложение этого не заметит,
    insert into X values (.....)
    и
    select * from X
    не изменятся
  • https://t.me/clickhouse_ru
    да.
    Replicated engine не использует описание кластера из config.xml (ему и не надо) -- только зукипер.
    Distributed engine не использует зукипер -- использует только описание кластера из config.xml
  • @solresl #114067 12:29 PM, 12 Aug 2019
    спасибо
  • https://t.me/clickhouse_ru
    @sergebezborodov #114068 12:54 PM, 12 Aug 2019
    Коллеги, подскажите какую функцию нужно выбрать для ключа семплирования по стобцу url - любой 64 битный хеш?
  • https://t.me/clickhouse_ru
    не криптографическую функцию, они значительно легче по cpu, например intHash32
  • https://t.me/clickhouse_ru
    @sergebezborodov #114070 01:04 PM, 12 Aug 2019
    спасибо!
  • @avkondakov #114071 01:47 PM, 12 Aug 2019
    Joined.
  • @shevchenko_denis #114072 01:49 PM, 12 Aug 2019
    Коллеги, прошу совет 😊 На одном сервере есть MergeTree таблица с ключем timestamp вида:
    timestamp | bandwidth | errors | errors403 | errers 404| errers 500 | ip | и т.д...
    в таблиц у пачками сгружаются данные. На общем объеме в 800+ млн строк запрос группирующий данные с подсчетом суммы бедвиза, количества ошибок и уников по ошибкам отрабатывает 20-30 секунд выбрав при этом 6к+ строк... Как это дело можно оптимизировать? AggregatingMergeTree не подходит так как в таблице есть еще поля по которым надо будет фильтрация. Хочется получать выборку в 5-6 раз быстрее... Поможет ли Distributed и добавление еще серверов с образованием кластера? В теории, тогда GROUP BY отработает на каждой ноде? Но насколько линейна зависимость кол-ва серверов кластера к скорости выполнения запроса?
    Запрос вида:
    SELECT timestamp,uniqIf(ip, errors>0), uniqIf(ip, errors403>0), uniqIf(ip, errors404>0),uniqIf(ip, errors500>0), SUM(errors), SUM(errors403), SUM(errors404), SUM(errors500),SUM(bandwidth) FROM sessions GROUP BY timestamp ORDER BY timestamp
  • https://t.me/clickhouse_ru
    А таблица order by что?
  • https://t.me/clickhouse_ru
    @studnev #114074 01:55 PM, 12 Aug 2019
    Matview наверно поможет?
  • @shevchenko_denis #114075 01:56 PM, 12 Aug 2019
    order by timestamp
  • https://t.me/clickhouse_ru
    @studnev #114076 01:57 PM, 12 Aug 2019
    Matview делайте с aggregating table
  • @shevchenko_denis #114077 02:00 PM, 12 Aug 2019
    а как в Matview реализовать фильтрацию по полям из таблицы (до группировки)?
  • @shevchenko_denis #114078 02:04 PM, 12 Aug 2019
    И как я понял из документации- если Matview делать поверх выборки в которой есть GROUP BY, то данные могут быть недоагрегированы в случае инсертов пачками...
  • https://t.me/clickhouse_ru
    @stufently #114079 02:05 PM, 12 Aug 2019
    А откуда может быть ошибка что подвисают запросы у человека с мака сидящего на сервере кх через ssh
    show tables;

    SHOW TABLES

    ��name���������
  • https://t.me/clickhouse_ru
    @stufently #114080 02:05 PM, 12 Aug 2019
    хотя с линукса или винды все нормально проходит и в логе видно что запрос отрабатывает быстро и все отдает
  • https://t.me/clickhouse_ru
    терминал не настроен как UTF8
    iterm2 поставьте страдальцу

    https://github.com/yandex/ClickHouse/issues/2153
  • https://t.me/clickhouse_ru
    надо сильно стараться чтобы с Distributed не упереться в доагрегацию на ноде инициаторе.

    почему 20 сек. это проблема?
    Пробуйте aggregating -- она схлопывает строки при мержах. Т.е. абсолютно не важно что строки приехали из разных инсертов
  • @shevchenko_denis #114083 02:14 PM, 12 Aug 2019
    - почему 20 сек. это проблема?
    20 случается в моем случае крайне редко (в зависимости от фильтров) - чаще это 30+, и заказчика это не устраивает.

    - пробуйте aggregating
    всплывает вопрос фильтрации данных перед агрегацией...

    -надо сильно стараться чтобы с Distributed не упереться в доагрегацию на ноде инициаторе.
    Вы имеете в виду, правильно "шардировать" данные?
  • https://t.me/clickhouse_ru
    >20 случается в моем случае крайне редко (в зависимости от фильтров) - чаще это 30+, и заказчика это не устраивает.
    точный подсчет uniq за периоды это офигенно тяжелая задача, чаще всего не нужная, если нужная то пусть ждет.
    AggregatingMergeTree ее может ускорить https://gist.github.com/den-crane/048ce66bc59f5577d56e42d76934682e

    >всплывает вопрос фильтрации данных перед агрегацией...
    вы неправильно делаете AggregatingMergeTree. Там нужна дата, и пусть данные хранятся сгруппированные за какой-то период (день/час или неделя)

    >Вы имеете в виду, правильно "шардировать" данные?
    да. И писать select с учетом distributed_group_by_no_merge
  • @shevchenko_denis #114085 02:28 PM, 12 Aug 2019
    Спасибо за советы. Буду теперь разбираться 😊
  • @avkondakov #114086 02:30 PM, 12 Aug 2019
    Добрый день! Подскажите какая последняя версия CH со стабильно работающей кафкой, куда откатываться?
  • https://t.me/clickhouse_ru
    в issue желательно.
    а каике параметры cmake ?
  • https://t.me/clickhouse_ru
    18.16.1
  • https://t.me/clickhouse_ru
    да у него и так iterm2 выставил utf-8 все равно
  • https://t.me/clickhouse_ru
    @stufently #114090 03:22 PM, 12 Aug 2019
    А еще один вопрос , новый синтаксис создания таблиц совместим со старым ? то есть я могу со старого на новый переписать а в самом кх все по прежнему же останется?
  • https://t.me/clickhouse_ru
    Без jemalloc
  • https://t.me/clickhouse_ru
    только -DENABLE_JEMALLOC=0 и всё ?
  • https://t.me/clickhouse_ru
    я когда из iterm2 подключаюсь по ssh

    на сервере

    set|grep -i term

    LC_TERMINAL=iTerm2
    LC_TERMINAL_VERSION=3.3.1
    TERM=xterm-256color
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @filippchistiakov #114095 03:42 PM, 12 Aug 2019
    Я задаю в алхимии свой логин пароль "clickhouse://user:pass@192.168.0.1:port/database
  • https://t.me/clickhouse_ru
    @filippchistiakov #114096 03:43 PM, 12 Aug 2019
    Но он почему-то конектится как default
  • https://t.me/clickhouse_ru
    @filippchistiakov #114097 03:43 PM, 12 Aug 2019
    ЧЯДНТ?
  • https://t.me/clickhouse_ru
    build fix · yandex/ClickHouse@f63f763

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

  • https://t.me/clickhouse_ru
    @andrei_tserakhau #114099 03:57 PM, 12 Aug 2019
    привет, а подскажите как то можно посмотреть сколько табличка дистрибьютед занимает на кластере?
  • https://t.me/clickhouse_ru
    дистрибьютед хранит только данные insert которые не успели/ не смогли улететь в шарды

    du -sh /var/lib/clickhouse/data/база/таблица
  • https://t.me/clickhouse_ru
    @rclick #114101 04:01 PM, 12 Aug 2019
    Коллеги, подскажите, пожалуйста. Есть таблица, в ней может быть, а может не быть (в зависимости от базы) одно из полей. Хотелось бы использовать единый запрос для всех вариантов базы, который бы в случае отсутствия поля, возвращал константное значение.
    Вариант select a, b, if(hasColumnInTable(currentDatabase(), 'table', 'c'), c, 0) from table where... приводит к ошибке. Есть ли путь решения кроме как на стороне собственного приложения?
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #114102 04:01 PM, 12 Aug 2019
    мне интересно в низлежащие таблицы посмотреть (что бы не обходить 100 шардов)
  • https://t.me/clickhouse_ru
    Я строил distributed поверх system таблиц, из неё можно аггрегированную инфу по всему кластеру вытаскивать
  • https://t.me/clickhouse_ru
    или >distributed поверх system таблиц
    или from remote(
  • https://t.me/clickhouse_ru
    добавить поле в таблицу как alias
  • https://t.me/clickhouse_ru
    @rclick #114106 04:11 PM, 12 Aug 2019
    структуру таблиц не хотелось бы менять, думал мало ли можно обойтись фукнциями на стороне запроса
  • https://t.me/clickhouse_ru
    @414125887 #114107 04:19 PM, 12 Aug 2019
    А есть/планируется движок, который бы позволил указывать свои функции мержа дубликатов? Иногда хочется что то более сложное, чем просто суммирование как в SummingMergeTree.
  • https://t.me/clickhouse_ru
    @414125887 #114108 04:39 PM, 12 Aug 2019
    Из документации:
    ReplacingMergeTree Parameters

    ver — column with version. Type UInt*, Date or DateTime. Optional parameter.

    When merging, ReplacingMergeTree from all the rows with the same primary key leaves only one: - Last in the selection, if ver not set. - With the maximum version, if ver specified.

    Last in the selection == последняя вставка?
  • https://t.me/clickhouse_ru
    Да. Из последнего insert
  • https://t.me/clickhouse_ru
    Спасибо
  • @kinzarra #114111 05:11 PM, 12 Aug 2019
    Привет всем! А как себя ведет кликхауз, если много конекшенов к нему?
  • https://t.me/clickhouse_ru
    @111093495 #114112 05:14 PM, 12 Aug 2019
    Подскажите, пожалуйста, что я делаю не так: пытаюсь настроить odbc driver для кх на mac os

    делаю как написанно тут: https://github.com/yandex/clickhouse-odbc/blob/master/MACOS.md

    и в ~/.odbc.ini прописываю креды для ремоут кх на серваке, но в iODBC Administrator ничего не вижу. Пытался и через него тоже подключить драйвер, но он не подключает и пишет, что драйвер не может быть загружен

    на сервере кх версии 19.8, локально кх нету (может надо установить?)

    Конечная целью является подключить кх к экселю, кто сталкивался, подскажите пожалуйста, работает ли он и есть ли какие проблемы?
  • https://t.me/clickhouse_ru
    еще сам драйвер нужно прописать в ~/.odbcinst.ini или может быть даже /Library/ODBC/odbcinst.ini
  • https://t.me/clickhouse_ru
    в ~/.odbcinst.ini прописывал

    в /Library/ODBC/odbcinst.ini сейчас добавлю
  • https://t.me/clickhouse_ru
    @proller #114115 05:22 PM, 12 Aug 2019
    обычно в одно из надо пока не появится во всех манажерах
  • https://t.me/clickhouse_ru
    там кстати ещё нет строчки сверху
    ClickHouse = Installed
    когда добавил, то в iODBC Administration появился, но когда делаю тест пишет попрежнему:
    [iODBC][Driver Manager]Specified driver could not be loaded
  • https://t.me/clickhouse_ru
    путь до либы в Driver= правильный?
  • https://t.me/clickhouse_ru
    @111093495 #114118 05:27 PM, 12 Aug 2019
    да
  • https://t.me/clickhouse_ru
    добавление в /Library/ODBC/odbcinst.ini так же не помогло
  • а в ~/Library/ODBC/odbc.ini или в /Library/ODBC/odbc.ini что-то есть про Clickhouse (собственно запись про DSN)? если в первом есть — то ее видно в User DSN, если во втором — в System DSN, Если нигде записи нет — ее нигде не видно (и в экселе тоже).
  • @yurifal #114121 05:38 PM, 12 Aug 2019
    должно быть что-то типа:

    [ODBC Data Sources]
    ClickHouse = ClickHouse

    [ClickHouse]
    Driver = /usr/local/opt/clickhouse-odbc/lib/libclickhouseodbcw.dylib

    ну и дальше настройки соединения
  • https://t.me/clickhouse_ru
    в /Library/ODBC/odbc.ini нету
    в ~/Library/ODBC/odbc.ini есть, но туда не прокинулись настройки соединений url=...

    [ODBC Data Sources]
    ClickHouse = ClickHouse

    [ClickHouse]
    Driver = /usr/local/opt/clickhouse-odbc/lib/libclickhouseodbcw.dylib
  • https://t.me/clickhouse_ru
    @111093495 #114123 05:40 PM, 12 Aug 2019
    попробую добавить сейчас вручную
  • https://t.me/clickhouse_ru
    @111093495 #114124 05:42 PM, 12 Aug 2019
    не помогло(
  • https://t.me/clickhouse_ru
    @rfc96 #114125 05:43 PM, 12 Aug 2019
    Joined.
  • а iODBC Administrator64 как сейчас видит этот DSN (в User DSN)?
  • https://t.me/clickhouse_ru
    оО круто, там successfully написало
  • https://t.me/clickhouse_ru
    @111093495 #114128 05:45 PM, 12 Aug 2019
    я не через 64 заходил
  • может теперь и Эксель увидит
  • https://t.me/clickhouse_ru
    @111093495 #114130 05:46 PM, 12 Aug 2019
    увидело, но пишет Request Failed
  • successfully в Test connection ничего особенного не значит, кроме того, что пакеты туда/сюда прошли.
  • теперь осталось только с параметрами самого DSN connection разобраться. можно как контроль вместо url попробовать поля отдельно (по старинке) — server / port / database / uid и что там еще конфигурите
  • https://t.me/clickhouse_ru
    ок, сейчас попробую, может действитьно для mac os не работает, тк в гайде на мак url не упоминают
  • https://t.me/clickhouse_ru
    а есть куда смотреть, логи какие-нибудь?
  • @yurifal #114135 05:59 PM, 12 Aug 2019
    у меня с url работает вот такая строка:

    https://username:pass@host_name_or_ip:8443/query

    Database = dmname — этот параметр я все равно пишу в DSN отдельно
  • @yurifal #114136 06:00 PM, 12 Aug 2019
    логи — если в настройки допишете две строки

    trace = 1
    tracefile = /tmp/clickhouse-odbc.log
  • https://t.me/clickhouse_ru
    я писал также только http://username:pass@host_name_or_ip:8123/query
  • https://t.me/clickhouse_ru
    url должен работать везде
  • должен (и работает)
  • https://t.me/clickhouse_ru
    Спасибо. Забрал. А по какому принципу выходят stable релизы ? когда ждать следующий, в котором проблемы сборки уже будут исправлены ?
  • https://t.me/clickhouse_ru
    в логи пишет :

    20345527293 [0x1114fc5c0] ../driver/environment.cpp:122 === Driver started === VERSION=1.0.0.20190611 ODBC_IODBC UNICODE=1 ODBC_WCHAR=1 sizeof(SQLTCHAR)=4 sizeof(wchar_t)=4 ODBCVER=351 ODBC_LIBRARIES=/usr/local/lib/libiodbc.a;/usr/local/lib/libiodbcinst.a;/usr/local/lib/libltdl.a;/usr/local/lib/libiodbcinst.a;/usr/local/lib/libltdl.a ODBC_INCLUDE_DIRECTORIES=/usr/local/include
    20345527317 [0x1114fc5c0] ../driver/attr.cpp:13 impl_SQLSetEnvAttr
    20345527334 [0x1114fc5c0] ../driver/attr.cpp:16 SetEnvAttr: 200
    20345527350 [0x1114fc5c0] ../driver/attr.cpp:34 Set ODBC version to 3
    20345527366 [0x1114fc5c0] ../driver/handles.cpp:58 SQLAllocHandle handle_type=2 input_handle=0x60000197fc80
    20345527383 [0x1114fc5c0] ../driver/handles.cpp:21 allocConnect environment=0x60000197fc80 out_connection=0x6000030ff228
    20345527407 [0x1114fc5c0] ../driver/odbc.cpp:62 SQLDriverConnectW connection_str_in=0x7ffee7579ff0 : -3 4096
    20345527430 [0x1114fc5c0] ../driver/connection.cpp:142 Parse DSN: key=dsn value=ClickHouse
    20345527446 [0x1114fc5c0] ../driver/connection.cpp:142 Parse DSN: key=uid value=
    20345527461 [0x1114fc5c0] ../driver/connection.cpp:142 Parse DSN: key=pwd value=
    20345533894 [0x1114fc5c0] ../driver/connection.cpp:86 Creating session with http://мой ип:8123
    20345533963 [0x1114fc5c0] ../driver/info.cpp:30 SQLGetInfoW
    20345533985 [0x1114fc5c0] ../driver/info.cpp:31 GetInfo with info_type: 23, out_value_max_length: 2
    20345534005 [0x1114fc5c0] ../driver/info.cpp:129 GetInfo SQL_CURSOR_COMMIT_BEHAVIOR, type: SQLUSMALLINT, value: SQL_CB_PRESERVE = 2
    20345534022 [0x1114fc5c0] ../driver/info.cpp:30 SQLGetInfoW
    20345534037 [0x1114fc5c0] ../driver/info.cpp:31 GetInfo with info_type: 24, out_value_max_length: 2
    20345534073 [0x1114fc5c0] ../driver/info.cpp:129 GetInfo SQL_CURSOR_ROLLBACK_BEHAVIOR, type: SQLUSMALLINT, value: SQL_CB_PRESERVE = 2

    но в экселе^ когдай кидает ошибку Request Failed ничего в лог не пишет..
    это значит, что скорее всего проблема в нем? (Excel for Mac версия 15.13.3)
  • https://t.me/clickhouse_ru
    @Makasinov #114142 06:13 PM, 12 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #114111 #114143 08:07 PM, 12 Aug 2019
    Конекшнов или запросов? Много параллельных запросов плохо.
    Можно например кешировать если запросы повторяющиеся.
  • Например, если развернуть какое-нибудб самописное апи, к которому будут обращаться пользователи, каждый запрос к АПИ - это селект (сложный или простой к БД), чтобы получить инфу от Клик Хауза.
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #114144 #114145 08:18 PM, 12 Aug 2019
    При тех же условиях, ClickHouse может обработать несколько сотен (до нескольких тысяч в лучшем случае) запросов в секунду на одном сервере. Так как такой сценарий работы не является типичным для аналитических СУБД, рекомендуется рассчитывать не более чем на 100 запросов в секунду.

    Я бы вот это посоветовал прочитать целиком:
    https://clickhouse.yandex/docs/ru/introduction/performance/
  • Спасибо! Да, видел. Но кое-что не понял сразу. Тут дело такое, что я буду брать минимальные партии данных - самописная пагинация...
  • @kinzarra #114147 08:21 PM, 12 Aug 2019
    Меня волнует скорее не пропускная способность в Гб, а в кол-ве одновременных запросов, то есть у меня будет 1000, но запросов, которые тянут байты инфы.
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #114147 #114148 08:24 PM, 12 Aug 2019
    Ну вот тут в детали надо влезать. Если все запросы по ключу, много повторяющихся и тп. То можно рассчитывать что все будет ок. Данные попадут в кеш ОС и все будет летать. Но если у вас планируется что-то вроде яндекс метрики со свободным построителем отчетов, тут я бы конечно на большое количество параллельных запросов не рассчитывал.
  • https://t.me/clickhouse_ru
    https://www.altinity.com/blog/clickhouse-in-the-storm-part-1
    https://www.altinity.com/blog/clickhouse-in-the-storm-part-2
    ClickHouse In the Storm. Part 1: Maximum QPS estimation

    May 2, 2019ClickHouse is an OLAP database for analytics, so the typical use scenario is processing a relatively small number of requests -- from several per hour to many dozens or even low hundreds per second --affecting huge ranges of data (gigabytes/millions of rows).But how it will behave in other scenarios? Let's try to use a steam-hammer to crack nuts, and check how ClickHouse will deal with thousands of small requests per second. This will help us to understand the range of possible use cases and limitations better.This post has two parts. The first part covers connectivity benchmarks and test setup. The next part covers maximum QPS in scenarios involving actual data.

  • https://t.me/clickhouse_ru
    @yourock88 #114150 08:49 PM, 12 Aug 2019
    Довольно интересный (как мне кажется) юзкейс у ClickHouse в качестве условного key-value заключается в том, что он умеет группировать записи по первичному ключу, так что если вы упираетесь в I/O (т.е. много данных и относительно мало памяти), и вы посылаете запросы с max_threads=1, то ClickHouse может показывать вполне хорошую производительность на жёстких дисках (т.е. сотни QPS :))
  • https://t.me/clickhouse_ru
    @yourock88 #114151 08:50 PM, 12 Aug 2019
    В некоторых случаях этого достаточно, и вы можете хранить на одном сервере очень много данных благодаря сжатию, например.
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #114150 #114152 08:51 PM, 12 Aug 2019
    Да CH уже такой комбайн, чего только не придумают)
  • https://t.me/clickhouse_ru
    LSM разве не лучше подходит под эту задачу?
  • https://t.me/clickhouse_ru
    Так ClickHouse это и есть LSM, только без L :)
  • https://t.me/clickhouse_ru
    @heavycharged #114155 09:00 PM, 12 Aug 2019
    Да, но в lsm писать лучше из-за мемтейбла
  • https://t.me/clickhouse_ru
    @yourock88 #114156 09:01 PM, 12 Aug 2019
    Да, поэтому в ClickHouse рекомендуют вставлять раз в несколько секунд большими пачками.
  • https://t.me/clickhouse_ru
    @yourock88 #114157 09:01 PM, 12 Aug 2019
    По сути вы эту часть реализуете сами :)
  • https://t.me/clickhouse_ru
    @heavycharged #114158 09:01 PM, 12 Aug 2019
    Хотя, не понял где в кх лсм
  • https://t.me/clickhouse_ru
    что такое самописная пагинация?

    КХ ксати научился order by по индексу
  • https://t.me/clickhouse_ru
    LSM — Log-Structured Merge Tree. В ClickHouse просто Merge Tree :)
  • https://t.me/clickhouse_ru
    @heavycharged #114161 09:05 PM, 12 Aug 2019
    Если я не ошибаюсь, lsm это мемтейбл + сстейбл на диске. Не очень знаком с кх, если честно.
  • https://t.me/clickhouse_ru
    Насколько я знаю, LSM это скорее про подход, нежели про конкретную реализацию с memtable+sstable, хотя конечно это стандартный паттерн.
  • https://t.me/clickhouse_ru
    @yourock88 #114163 09:09 PM, 12 Aug 2019
    ClickHouse состоит просто из сортированных кусков на диске, в памяти он ничего не держит (кроме буферных таблиц, но там тоже не совсем memtable получается)
  • https://t.me/clickhouse_ru
    @heavycharged #114164 09:09 PM, 12 Aug 2019
    Да, вы правы, я по Кассандре сужу. Поэтому и смутился, что имплементация LSM в его распространенном понимании в Кассандре, и кх, отличаются.
  • Это я в АПИ буду реализовывать ,чтобы на фронт удобно отдавать порции , которые забрал из КХ. Например, пользователь хочет найти что-то и АПИ сервис нашел ему например 2000 строк, я же их буду порциями по 10-20 штук выдавать на фронт. Буду юзать LIMIT 0, 10 и тд
  • @kinzarra #114166 09:16 PM, 12 Aug 2019
    На самом деле нужно что-то типо ES, но не хочу навешивать сверху над CH эластик серч, так как весь путь удлиняется, ищу оптимальные решения.
  • https://t.me/clickhouse_ru
    ниче не понял.

    типа из КХ вы заберете сразу миллион строк, а ваш API сэмулирует limit 0, 10 ?
  • @kinzarra #114168 09:18 PM, 12 Aug 2019
    Нет, из CH беру ровно столько строк, чтобы отдать на фронт, то есть если пользователь на фронте будет листать страницу, то буду делать каждый раз запрос и забирать по 10 записей
  • @kinzarra #114169 09:18 PM, 12 Aug 2019
    Если я возьму миллион строк из КХ, то что я с ними буду делать? Нужно же на фронт отдать только 10...
  • https://t.me/clickhouse_ru
    А КХ тут зачем? mysql возьмите.
    КХ плохо умеет по 10 строк.
    У КХ хорошо миллиард сразу
  • @kinzarra #114171 09:20 PM, 12 Aug 2019
    У меня и так MySQL
  • @kinzarra #114172 09:20 PM, 12 Aug 2019
    Фишка в том, что запросы, как правило, это реультат агрегации миллиона строк.
  • @kinzarra #114173 09:21 PM, 12 Aug 2019
    MySQL не выдержит такую агрегацию
  • https://t.me/clickhouse_ru
    Т.е. вы делаете агрегацию миллиона строк, складываете результат агрегации -- 10 тыс. строк во временную таблицу, по временной таблице пагинируетесь?
  • Да, думал так. Но что будет, если этих временных таблиц будет тысяци??
  • @kinzarra #114176 09:22 PM, 12 Aug 2019
    Каждый пользователь, каждый запрос - временная таблица?
  • https://t.me/clickhouse_ru
    да память закончится у сервера скорее всего.
  • @kinzarra #114178 09:24 PM, 12 Aug 2019
    НА самом деле сейчас очень круто вовращается и 10 строк, агрегирую по 2-3 млн пока что
  • @kinzarra #114179 09:24 PM, 12 Aug 2019
    Для меня КХ - это движок агрегаций по большему числу данных
  • https://t.me/clickhouse_ru
    @zion_o_zaur #114180 09:28 PM, 12 Aug 2019
    а что мешает результаты агрегации скласть в тот же mysql?
  • https://t.me/clickhouse_ru
    @zion_o_zaur #114181 09:29 PM, 12 Aug 2019
    хотя я б, если честно, в постгрес с его json-field запихал.
    что то типа user_id, query, params, result
  • 1. Еще одно звено в цепочке - плохо
    2. Я спокойно вместо mysql использую Materialized View с агрегацией - летает очень славно

    В принципее, если столкунсь с большими проблемами, то можно написать сервис агрегаций и пулять все в MySQL, но у меня все равно примерно млн строк и какой-то поиск, а там MySQL уже какой-то вялый
  • Постгрес - круто, но что-то сразу центральную базу выбрал mYsql, сейчас мигрироваться четсно нет времени((
  • @kinzarra #114184 09:32 PM, 12 Aug 2019
    БОльшая вероятность, что БД MySQL распухнет до 50-100 млн строк и что я буду делать?(( И это уже агрегированные данные будут, а сырье будет исчисляться млрд срок
  • https://t.me/clickhouse_ru
    это которая с результатами агрегации?
  • Да
  • https://t.me/clickhouse_ru
    @zion_o_zaur #114187 09:33 PM, 12 Aug 2019
    lru-based invalidation
  • Не понял((
  • @kinzarra #114189 09:34 PM, 12 Aug 2019
    кэш?
  • https://t.me/clickhouse_ru
    @zion_o_zaur #114190 09:34 PM, 12 Aug 2019
    ну, условно, так. пользователь не ходил за этими данными уже неделю. почему б не прибить?
  • https://t.me/clickhouse_ru
    @zion_o_zaur #114191 09:34 PM, 12 Aug 2019
    впрочем, всё это - лютый оффтоп.
  • @kinzarra #114192 09:35 PM, 12 Aug 2019
    Ну а где их тогда лучше хранить все-таки в MySQL, чем плох механизм Material View?
  • https://t.me/clickhouse_ru
    ничем не плох. вот вообще ничем. просто использовать его как кэш - странно.
  • https://t.me/clickhouse_ru
    @zion_o_zaur #114194 09:36 PM, 12 Aug 2019
    вы же планируете по таблице на запрос создавать
  • @kinzarra #114195 09:36 PM, 12 Aug 2019
    Как агрегат использую скорее)) у меня запросы очень уникальные будут. Представьте себе 5 млн строк с текстом и там нужно найти случайное слово и выдать ключ
  • @kinzarra #114196 09:37 PM, 12 Aug 2019
    Хотя последнее к вьюхе не относится
  • Нет, создал один раз и радуюсь))
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #114192 #114198 10:22 PM, 12 Aug 2019
    Возьмите mat view и предаггрегируйте (по часам, дням, юзерам или что там у вас).
  • https://t.me/clickhouse_ru
    @rheinx #114199 10:22 PM, 12 Aug 2019
    А уже на него натравливайте апи с итоговой аггрегацией
  • 13 August 2019 (187 messages)
  • https://t.me/clickhouse_ru
    @altlinux #114201 04:36 AM, 13 Aug 2019
    А ошибку сборки на aarch64 уже чинили ? Ошибка в cmake с детектом cpuinfo на aarch64.

    /src/Common/getNumberOfPhysicalCPUCores.cpp.o -c /usr/src/RPM/BUILD/clickhouse-19.13.1.11/dbms/src/Common/getNumberOfPhysicalCPUCores.cpp
    /usr/src/RPM/BUILD/clickhouse-19.13.1.11/dbms/src/Common/getNumberOfPhysicalCPUCores.cpp:10:13: fatal error: cpuinfo.h: No such file or directory
    # include <cpuinfo.h>
    ^~~~~~~~~~~
    compilation terminated.
    make[2]: *** [dbms/CMakeFiles/clickhouse_common_io.dir/build.make:518: dbms/CMakeFiles/clickhouse_common_io.dir/src/Common/getNumberOfPhysicalCPUCores.cpp.o] Error 1
    make[2]: Leaving directory '/usr/src/RPM/BUILD/clickhouse-19.13.1.11/BUILD'
    make[2]: *** Waiting for unfinished jobs....
    make[2]: Entering directory '/usr/src/RPM/BUILD/clickhouse-19.13.1.11/BUILD'

    Полный лог здесь:
    http://git.altlinux.org/tasks/235944/build/100/aarch64/log
  • @bashlykevich #114202 05:47 AM, 13 Aug 2019
    Доброе утро!
    В какой-то момент после начала параллельной обильной вставки рост график inserted rows превратился на почти всех нодах из ровной линии в вот такой частокол. Неужели многовато потоков?
    (кластер ~20 шадов*2реплики, вставка в 10 потоков из террабайтных tsv)
  • https://t.me/clickhouse_ru
    @149051052 #114203 05:57 AM, 13 Aug 2019
    https://clickhouse.yandex/docs/ru/changelog/
    Язык перепутали?
  • https://t.me/clickhouse_ru
    https://clickhouse.yandex/docs/fa/changelog/ а тут вообще стороны перепутали
  • https://t.me/clickhouse_ru
    @149051052 #114205 06:00 AM, 13 Aug 2019
    Тут так и надо наверно
  • https://t.me/clickhouse_ru
    @studnev #114206 06:04 AM, 13 Aug 2019
    Да, на фарси справа налево пишут. В остальном это тот же английский
  • https://t.me/clickhouse_ru
    @poKuznetsov #114207 07:22 AM, 13 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @la_stik #114208 07:27 AM, 13 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @crepkrps #114209 07:30 AM, 13 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @igor_dia #114210 07:45 AM, 13 Aug 2019
    Судя по документации count - неоптимизированный запрос, а uniq рекомендуется использовать практически во всех сценариях. Тогда с чем может быть связано то, что uniq отрабатывает заметно медленнее, чем count?
  • @728205186 #114211 07:50 AM, 13 Aug 2019
    присоединяюсь к вопросу. есть таблица 14 млрд записей. есть поле1 (400 тыс уник.значений), есть поле2 (5млрд уникальных значений)
    делаю просто uniq по полю2 - отрабатывает за минуту;
    делаю group by поле1 + where поле1 = 'одно значение' + uniq (поле2) - не дождался.... (более 5 мин запрос пытался)
    select поле1, uniq(поле2)
    from table
    where поле1 = 'значение'
    group by поле1
  • https://t.me/clickhouse_ru
    @vbuttermaan #114212 07:51 AM, 13 Aug 2019
    Всем привет!
    Может кто то наступал на грабли такие: javaHash в КХ от русских букв не совпадает с джавовским. Для английских - все норм.
    пример:
    SELECT javaHash('тест') -1909008361 System.out.println("тест".hashCode()); 33542036
  • https://t.me/clickhouse_ru
    Для count() выбирается самый маленький столбец из таблицы и по нему считается. В отличие от mysql в count() нет параметра именно по этому.
    Уник же читает тот столбец что вы задали, плюс операция немного другая - - равносильна select count() from (select distinct value from t)
    кстати - uniq() считает приблизительно, точно считает uniqExact - но он еще медленнее
  • https://t.me/clickhouse_ru
    @ilevd #114214 08:58 AM, 13 Aug 2019
    А есть способ узнать смещение таймзоны из запроса?
  • @486642683 #114215 09:00 AM, 13 Aug 2019
    @vbuttermaan javaHash only supports ascii code, because in java, string stores as unicode, it means each char in java has 2 bytes, but for ascii code, it equals its unicode because the high byte is 0 in unicode. Maybe we can do some enhancement to javaHash
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #114214 #114216 09:05 AM, 13 Aug 2019
    select timezone()
  • https://t.me/clickhouse_ru
    @ilevd ↶ Reply to #114216 #114217 09:12 AM, 13 Aug 2019
    А смещение в часах можно?
  • https://t.me/clickhouse_ru
    Спасибо! Пришлось написать свой велосипед в java, чтобы совпадал с КХ, может пригодится кому-то:
    static public int hashCode(String value) {
    int h = 0;
    if (value!= null && value.length() > 0) {
    byte val[] = value.getBytes(StandardCharsets.UTF_8);
    for (int i = 0; i < val.length; i++) {
    h = 31 * h + (int) val[i];
    }
    }
    return h;
    }
  • https://t.me/clickhouse_ru
    @414125887 #114219 09:20 AM, 13 Aug 2019
    Есть ли какое-нибдуь принципиальное отличие между SummingMergeTree и AggregatingMergeTree при использовании в MATERIALIZED VIEW, если мне нужно просто иметь сумму всех полей?
  • https://t.me/clickhouse_ru
    @414125887 #114220 09:21 AM, 13 Aug 2019
    Понятное дело, что в AggregatingMergeTree нужно хрнаить State, но для суммы это просто число?
  • https://t.me/clickhouse_ru
    @414125887 #114221 09:22 AM, 13 Aug 2019
    Кстати, sumState имеет тип поля или бОльший, чтобы, если что не было переполнения?
  • @demchenkoe #114222 09:22 AM, 13 Aug 2019
    Joined.
  • @486642683 #114223 09:24 AM, 13 Aug 2019
    @vbuttermaan cool!
  • @demchenkoe #114224 09:29 AM, 13 Aug 2019
    Выставил в конфиге
    <max_partitions_per_insert_block>1000</max_partitions_per_insert_block>

    SELECT * FROM system.settings WHERE name = 'max_partitions_per_insert_block'
    по прежнему выдает значение по умолчанию 100
    рестарт сервера не помог

    clickhouse-server -V
    ClickHouse server version 19.11.3.11 (official build).
  • @demchenkoe #114225 09:38 AM, 13 Aug 2019
    Прописал
    <max_partitions_per_insert_block>1000</max_partitions_per_insert_block>
    в profiles/default
    Настройка применилась.
    Вопрос снимается.
  • https://t.me/clickhouse_ru
    @stufently #114226 10:14 AM, 13 Aug 2019
    А как переводить таблицы со старого способа создания на новый синтаксис создания таблиц ? а то в доке написано Не используйте этот способ в новых проектах и по возможности переведите старые проекты на способ, описанный выше.
  • https://t.me/clickhouse_ru
    @241186216 #114227 10:15 AM, 13 Aug 2019
    Подскажите , что КХ хранит в файле для нулабл колонки. Вот если у меня нулабл int32, то что он запишет в файл для null?
  • https://t.me/clickhouse_ru
    Для хранения значения типа NullableClickHouse использует:
    Отдельный файл с масками NULL (далее маска).
    Непосредственно файл со значениями.
    Маска определяет, что лежит в ячейке данных: NULL или значение.

    В случае, когда маска указывает, что в ячейке хранится NULL, в файле значений хранится значение по умолчанию для типа данных. Т.е. если, например, поле имеет тип Nullable(Int8), то ячейка будет хранить значение по умолчанию для Int
  • https://t.me/clickhouse_ru
    @241186216 #114229 10:22 AM, 13 Aug 2019
    Спасибо большое. Стало понятно.
  • @okarasev #114230 11:00 AM, 13 Aug 2019
    Доброго!
    Подскажите что может означать запись в логах ZooKeeper для реплицированной таблицы? И как побороть ошибку:
    Error:KeeperErrorCode = NodeExists for /clickhouse/tables/*****
  • https://t.me/clickhouse_ru
    @stufently #114231 11:03 AM, 13 Aug 2019
    нода уже существует , значит вы ее уже создавали и удалили не корректно а просто может снесли сервер с ней, придется руками чистить вероятно пути в зукипере
  • @okarasev #114232 11:06 AM, 13 Aug 2019
    не удалял и не создавал. И ошибка выдается только по 4-5 таблицам этой ноды. Всего таблиц на ноде несколко десятков. Может вовредились шарды этих таблиц?
  • https://t.me/clickhouse_ru
    @111093495 #114233 11:34 AM, 13 Aug 2019
    Скажите пожалуйста, можно ли красиво преобразовать к последнему дню месяца?

    так как-то не нравится(
    select toStartOfMonth(toDate('2019-01-20')) + toIntervalMonth(1) - toIntervalDay(1);
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #114233 #114234 11:37 AM, 13 Aug 2019
    Последний toIntervalDay вроде можно выкинуть.
  • https://t.me/clickhouse_ru
    не тогда будет 2019-02-01, а надо 2019-01-31
  • https://t.me/clickhouse_ru
    @altlinux #114236 11:48 AM, 13 Aug 2019
    Скажите пожалуйста, я правильно понял логику работы materialized колонок - данные при insert пишутся на диск, а для старых данных (которые были до добавления колонки) - расчитываются при каждом select'е ?
  • https://t.me/clickhouse_ru
    Не правильно. Старые данные никак не участвуют
  • @devbrom #114238 11:51 AM, 13 Aug 2019
    Добрый день.
    У меня вопрос по конфигурациям из переменных окружения. Пробую так:
    <uncompressed_cache_size from_env="UNCOMPRESSED_CACHE_SIZE" />

    в логах получаю это

    clickhouse_1 | 2019.08.13 11:48:32.852739 [ 1 ] {} <Information> Application: Shutting down storages.
    clickhouse_1 | 2019.08.13 11:48:32.854707 [ 1 ] {} <Error> Application: Syntax error: Not a valid unsigned integer
    clickhouse_1 | 2019.08.13 11:48:32.854795 [ 1 ] {} <Information> Application: shutting down
    clickhouse_1 | 2019.08.13 11:48:32.855000 [ 2 ] {} <Information> BaseDaemon: Stop SignalListener thread
    clickhouse_1 | ClickHouse init process failed.
  • https://t.me/clickhouse_ru
    Рассматривайте MV как просто как триггер на Insert
  • https://t.me/clickhouse_ru
    не view, а column
  • https://t.me/clickhouse_ru
    А, извиняюсь
  • @JohnGalt_08 #114242 11:54 AM, 13 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @altlinux #114243 11:55 AM, 13 Aug 2019
    c view я уже понял что это просто триггер. но мне больше подходит column. В существующую таблицу добавил колонку, значение которой - hash от строки. работа по ней идёт медленно.
    сделал ещё одну такую же таблицу (пустую, но уже с materialized column) и скопировал данные в неё из первой - скорость работы увеличилась раза в три.
  • https://t.me/clickhouse_ru
    нет различий, более того SummingMergeTree уже умеет statе-ы поэтому можно не использовать AggregatingMergeTree вообще никогда.

    >но для суммы это просто число
    вроде нет таких оптимизаций, там хранится не просто число
  • https://t.me/clickhouse_ru
    официально insert into new select from old

    а вообще есть утилита в исходниках, которую надо собрать самому, но она переводит все таблицы сразу, и вроде все равно не умеет replicated
  • https://t.me/clickhouse_ru
    а долго будет поддерживаться старый вариант таблиц ?
  • https://t.me/clickhouse_ru
    правильно, для страрых рассчитывает на лету в select и при мержах старых данных будет уже записано на диск.
    записать всю колонку можно alter table ... update column = column where=1

    на самом деле materialized это тоже самое что и default. Кроме видимости в select * и insert без списка полей
  • https://t.me/clickhouse_ru
    Отлично! Спасибо огромное. сейчас сделаю update
  • https://t.me/clickhouse_ru
    ¯\_(ツ)_/¯
  • https://t.me/clickhouse_ru
    в смысле вставка в distributed ?

    что показывает select value from system.asynchronous_metrics where metric = 'MaxPartCountForPartition'
  • https://t.me/clickhouse_ru
    @milovidov_an а подскажите по срокам поддержки? стоит ли уже заморачиваться или пока можно оставить все как есть , так как инсерт селект не самое простое решение в данном случае ну и как минимум потребует удвоение места.
  • https://t.me/clickhouse_ru
    Спасибо.

    А есть ли какая нибудь информация о скорости выполнения запросов sum(...) и sumMerge(...), где в одном случае просто поля, в другом sumState?
  • https://t.me/clickhouse_ru
    есть и не в пользу state

    https://t.me/clickhouse_ru/78507
  • https://t.me/clickhouse_ru
    неожиданно, спасибо
  • https://t.me/clickhouse_ru
    @den_crane #114255 12:22 PM, 13 Aug 2019
    еще раз, можно не пользоваться aggregating вообще никогда. Summing умеет все что надо argMaxState/uniqState и т.д.
  • https://t.me/clickhouse_ru
    а как вы сервису задали переменные окружения? Речь вообще о чем? Или это докер?
  • @devbrom #114257 12:31 PM, 13 Aug 2019
    clickhouse запускаю в docker контейнере и пробую задавать настройки clickhouse через переменные окружения (environment variable)
  • @devbrom #114258 12:31 PM, 13 Aug 2019
    Support environment variables in config.xml · Issue #1616 · yandex/ClickHouse

    Running under kubernetes it's much easier to configure some details via environment variables. (deleted example related to interserver_http_host because that turned out to be me misundersta...

  • @devbrom #114259 12:31 PM, 13 Aug 2019
    подсмотрел тут
  • @devbrom #114260 12:32 PM, 13 Aug 2019
    в переменную задаю числовое значение типа UNCOMPRESSED_CACHE_SIZE=4294967296
  • https://t.me/clickhouse_ru
    в смысле -e UNCOMPRESSED_CACHE_SIZE=2534545564565 ?
  • @devbrom #114262 12:32 PM, 13 Aug 2019
    да
  • https://t.me/clickhouse_ru
    @studnev #114263 12:33 PM, 13 Aug 2019
    19.9 и 19.13 в одном кластере не работают ? У меня этот опыт закончился испорченной таблицей при репликации с какими то ужасными ошибками про несовпадение контрольных сумм и тп
  • @devbrom #114264 12:33 PM, 13 Aug 2019
    но я так понял кликхаус распознает это значение как строку
  • @thomson77777 #114265 12:37 PM, 13 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @r0hack #114266 12:40 PM, 13 Aug 2019
    а есть возможность узнать пользователя
  • https://t.me/clickhouse_ru
    @r0hack #114267 12:40 PM, 13 Aug 2019
    в КХ
  • https://t.me/clickhouse_ru
    @r0hack #114268 12:40 PM, 13 Aug 2019
    без открытия конф файлов
  • https://t.me/clickhouse_ru
    @r0hack #114269 12:40 PM, 13 Aug 2019
    командой из клиента прям
  • https://t.me/clickhouse_ru
    @r0hack #114270 12:40 PM, 13 Aug 2019
    ?
  • https://t.me/clickhouse_ru
    нет ни списка всех пользователей, ни текущего пользователя
  • https://t.me/clickhouse_ru
    @Sablast #114272 01:09 PM, 13 Aug 2019
    но можно же извращаться)
  • https://t.me/clickhouse_ru
    @Sablast #114273 01:09 PM, 13 Aug 2019
    SELECT
    'current_user_is',
    user
    FROM system.processes
    WHERE query LIKE '%current_user_is%'

    ┌─'current_user_is'─┬─user────┐
    │ current_user_is │ default │
    └───────────────────┴─────────┘
  • https://t.me/clickhouse_ru
    Неистово круто
  • https://t.me/clickhouse_ru
    @newsettler #114275 01:11 PM, 13 Aug 2019
    Подскажите, пожалуйста, как правильно удалить ошметки в zookeeper? После отказа в нём осталось далеко за 100к записей в replicas/*/parts о несуществующих уже партах.
  • https://t.me/clickhouse_ru
    да конечно должно работать, заводите тикет.

    В 19.7 проапдейтилили lz4 и стало несовместимо у тех кто использует lz4.
    19.8 просто сломана и несовместима ни с 19.7 ни с 19.9
  • https://t.me/clickhouse_ru
    @414125887 #114277 01:26 PM, 13 Aug 2019
    Почитал в истории чата "страшные" истории про решардирование.

    1) Создаем новую distributed таблицу (если меняется ключ шардирования, то с новым ключом)
    2) Копируем данные из старой distributed таблицы
    3) Переименовываем таблицы

    Кажется, что в худшем случае это 2хпамять, можно как то лучше?
  • Пока бессрочно (то есть - вечно).
  • https://t.me/clickhouse_ru
    ну вот каким образом все преставляют решардирование?
    у меня в сервере 80ТБ, шардов 10, итого надо переложить 800ТБ, это какбы займет время, и убьет сеть и диски, а система работает, тыщи запросов бегут.
  • https://t.me/clickhouse_ru
    @r0hack ↶ Reply to #114273 #114280 01:29 PM, 13 Aug 2019
    во, четко ) спс
  • https://t.me/clickhouse_ru
    Тоже страшно, но что делать если охват растет, данных все больше, а диски не увеличиваются...
  • https://t.me/clickhouse_ru
    ну в доке предлагается: добавить шарды, и у новых шардов делать вес больше например на +30%, со временем объем выровняется
  • https://t.me/clickhouse_ru
    @414125887 #114283 01:34 PM, 13 Aug 2019
    Наверное стоит уточнить, что хочется иметь идеальный ключ шардирования, чтобы почти все агрегации проводились на шардах
  • https://t.me/clickhouse_ru
    @414125887 #114284 01:35 PM, 13 Aug 2019
    всмысле без финального агрегирования
  • https://t.me/clickhouse_ru
    @414125887 #114285 01:35 PM, 13 Aug 2019
    просто взять и отдать
  • https://t.me/clickhouse_ru
    тогда clickhouse-copier и перекладывать из одного кластера с 5 серверами в новый кластер с 20 серверами
  • А теперь есть и более простой вариант - репозиторий testing:
    https://repo.yandex.ru/clickhouse/deb/testing/main/

    Он присутствует и для deb и для rpm.
  • https://t.me/clickhouse_ru
    @den_crane #114288 01:37 PM, 13 Aug 2019
    да ОК, у меня уже давно

    # cat /etc/apt/sources.list.d/clickhouse.list

    #deb http://repo.yandex.ru/clickhouse/deb/stable/ main/
    deb http://repo.yandex.ru/clickhouse/deb/testing/ main/
    #deb http://repo.yandex.ru/clickhouse/deb/prestable/ main/
  • @profile_undefined #114289 01:48 PM, 13 Aug 2019
    Добрый день!

    Подскажите, пожалуйста, самый простой способ перенести базу данных из одного сервера на другой...
  • https://t.me/clickhouse_ru
    @shursh #114290 01:50 PM, 13 Aug 2019
    backup/restore, clickhouse copier
  • @profile_undefined #114291 01:52 PM, 13 Aug 2019
    спасибо
  • @devbrom #114292 02:10 PM, 13 Aug 2019
    @den_crane по поводу конфигов через переменные окружения есть новости?
  • https://t.me/clickhouse_ru
    нет (я вообще-то не работаю в Я и не имею отношения к разработке КХ, у меня и своя работа есть если что)
    похоже есть проблема именно с <uncompressed_cache_size>, я eventually посмотрю на это и проверю без докера и возможно сделаю тикет
    задайте без переменной, через макросы или конфиг подсуньте
  • @devbrom #114294 02:15 PM, 13 Aug 2019
    ок, спасибо 🙏 сорри по поводу работы… буду знать…
  • @rbocharov #114295 03:36 PM, 13 Aug 2019
    Joined.
  • @whetherharder #114296 03:48 PM, 13 Aug 2019
    Всем привет. Подскажите, как правильно считать частоту событий. У меня есть лог с секундной точностью в нем скажем 10 kkk записей за 2 недели и 50 типов событий
    Я хочу по каждому типу знать максимальную частоту. В лоб это не решить -- придётся группировать по 86400 * 50 * 14 ключам и искать максимум для каждого из 50 событий. Может есть способ лучше ?
  • https://t.me/clickhouse_ru
    на самом деле у меня с 19.13 еще связана непонятная потеря производительности, именно на тех таблицах что потом сломались. Сейчас откатил все назад на 19.9 искорость восстановилась. Мистика какая то. И тикет такой не заведешь
  • Можно создать таблицу с движком SummingMergeTree и считать там агрегированные значения, например количество каждого типа события за час.
  • https://t.me/clickhouse_ru
    а какие параметры cmake и его вывод?
  • https://t.me/clickhouse_ru
    откуда взялся cpuinfo ?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    у вас ошибка в cmake, там cpuinfo по дефолту устанавливается если ничего не найдено.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    >И тикет такой не заведешь
    на самом деле любая информация помогает понять где проблема.
    потеря в инсертах? в селектах? distributed таблица? null -ы ? Codec-и ? и т.д.
  • https://t.me/clickhouse_ru
    @inv2004 #114305 04:30 PM, 13 Aug 2019
    Кто-то flyway использует для раскатки схемы?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #114244 #114306 04:32 PM, 13 Aug 2019
    А какие еще принципиальные отличия у них? По докам будто бы aggregating с функциями sum это полная замена summingmetgetree
  • https://t.me/clickhouse_ru
    Ну дока устарела и все наоборот. Summing полная замена.
  • https://t.me/clickhouse_ru
    @den_crane #114308 04:34 PM, 13 Aug 2019
    Никаких отличий. Используйте summing везде.
  • https://t.me/clickhouse_ru
    @shursh #114309 04:49 PM, 13 Aug 2019
    Подскажите, пожалуйста, а примерно с какой версии max_memory_usage_for_all_queries нормально заработало?
  • https://t.me/clickhouse_ru
    @den_crane #114310 05:17 PM, 13 Aug 2019
    да вроде где-то в 18.14.9, у меня в 18.14.18 все ОК на проде.
  • https://t.me/clickhouse_ru
    @alexeymkh #114311 05:40 PM, 13 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @alexeymkh #114312 05:58 PM, 13 Aug 2019
    Всем привет! Неделю назад установил сlickhouse на убунту, потестировал, все было ок, после этого не трогал систему. Сейчас пришло время приступить к разработке, зашел в убунту, пытаюсь запустить сервер и выходит ошибка:
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @alexeymkh #114314 05:59 PM, 13 Aug 2019
    Помогите исправить, пожалуйста
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #114314 #114315 06:01 PM, 13 Aug 2019
    Что в логах?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @alexeymkh #114318 06:03 PM, 13 Aug 2019
    первое было /var/log/clickhouse-server/clickhouse-server.err.log
  • https://t.me/clickhouse_ru
    @alexeymkh #114319 06:04 PM, 13 Aug 2019
    убунту запустил под виндой с помощью Windows Subsystem for Linux
  • https://t.me/clickhouse_ru
    @alexeymkh #114320 06:04 PM, 13 Aug 2019
    тестил на разных - 16 и 18 версиях
  • https://t.me/clickhouse_ru
    @alexeymkh #114321 06:05 PM, 13 Aug 2019
    результат один и тот же
  • https://t.me/clickhouse_ru
    @414125887 #114322 06:08 PM, 13 Aug 2019
    sudo service clickhouse-server status?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    в en чате вчера писали, 19.11 работает в WSL, а 19.13 падает точно также
  • https://t.me/clickhouse_ru
    @den_crane #114325 06:14 PM, 13 Aug 2019
    поставьте 19.11
  • https://t.me/clickhouse_ru
    сейчас
  • https://t.me/clickhouse_ru
    @241186216 #114327 07:02 PM, 13 Aug 2019
    Подскажите как делается left join. Обычно же КХ делает hashjoin и при этом начинает с правой таблицы. Т.е по правой строит структуру подобную HashMap помещая ее в память. В случае left join все также или он с левой начинает?
  • https://t.me/clickhouse_ru
    не подскажете как ее установить?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    а параметр ver? довольно важное отличие AggregatingMergeTree, или что-то уже поменялось?
  • https://t.me/clickhouse_ru
    apt-get install clickhouse-server=19.11.2.7 clickhouse-client=19.11.2.7 clickhouse-common-static=19.11.2.7
  • https://t.me/clickhouse_ru
    что? вы путаете с replacing
  • https://t.me/clickhouse_ru
    @inv2004 #114333 07:44 PM, 13 Aug 2019
    Alter table на репликации срабатывает только с on cluster или без тоже (что для Replicated* тоже логично) ?
  • https://t.me/clickhouse_ru
    hash таблица строится по правой (она обычно маленькая) и влезает в память.
    потом КХ идет по огромной левой таблице и блок за блоком по 65к записей ее обрабатывает, и для записей внутри блока левой ищет в хеш таблице запись используя лукап по хешу

    левая остается cлева
    select from left_table join right_table
    select from left_table left join right_table

    пока не использован right join
    select from right_table right join left_table
  • https://t.me/clickhouse_ru
    @inv2004 #114335 07:47 PM, 13 Aug 2019
    Предположительно что on cluster просто Форсит запрос на кластер для _не_ реплицируемых?
  • https://t.me/clickhouse_ru
    on cluster вообще никак не связан с репликацией (почти. он умеет догадываться что не нужно alter делать на реплике)
  • https://t.me/clickhouse_ru
    @den_crane #114337 07:51 PM, 13 Aug 2019
    on cluster необязателен, можно делать все и без него. И точно также можно пользоваться on cluster для любых таблиц.

    create table xx on cluster segmented (A Int64) Engine=Null;
    alter table xx on cluster segmented add column v Int64;
    drop table xx on cluster segmented;
  • https://t.me/clickhouse_ru
    Теперь работает, спасибо!
  • https://t.me/clickhouse_ru
    Я правильно понимаю, что по сравнению с тем как было +год назад, сейчас все on cluster поддерживаются. => Можно накатывать схему с одной реплики (для реплик конечно).
  • Там нет такой возможности. Надо дорабатывать.
  • https://t.me/clickhouse_ru
    да. По сравнению с ручной автоматизацией иногда не очень ясен результат, если что-то не сработало, и приходится копаться, поэтому я не использую для alter-в которые могут затянуться на часы.
  • https://t.me/clickhouse_ru
    А если left join? То ведь тогда нужно вывести даже записи,для которой нет соответствия в правой . Т.е нужно ещё оставить записи, если лукап по хэшу не прошел .
  • https://t.me/clickhouse_ru
    А что-то для раскатки схемы используешь? Migrate?
  • https://t.me/clickhouse_ru
    ну и в чем проблема-то?
    не нашли -> осталяем левую -> заполняем null-ми/ нулями поля из правой

    на самом деле тут вообще ничего нового, все тоже самое в oracle/mysql/pg/.... просто там таблица для inner join по которой будет hash-таблица построена -- выбирается оптимизатором
  • https://t.me/clickhouse_ru
    баш
  • @761503679 #114346 08:15 PM, 13 Aug 2019
    Dobrii vecher rebiata,, ia nastraivau clickhouse s kafka,,toest ia xochu chtobi dannie kotorie ia zapisivau v kafku chtobi zapisalos v clickhouse ... bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test eto nastroika kafka produser-a,
    a eto tablica CH
    CREATE TABLE queue (
    timestamp UInt64,
    level String,
    message String
    ) ENGINE = Kafka('localhost:9092', 'test', 'group1', 'JSONEachRow');
    ia zapisivau v kafku
    {"timestamp":1554138000,"level":"first","message":"abc"} takie dannie no v clickhouse nichego ne zapisivaetsia i on ostaiotsia pustim,,u kogo vstrechalas takogo roda problema i kak mojno ego reshit,,mojet ia nepravilno nastraivau,,spasibo zaranee
  • https://t.me/clickhouse_ru
    Я как бы представляю , что вот есть HashMap по правой таблице. Ключ в этом мэпе - это такой тюпл из полей , по которым джойним, а значение в это мэпе - это строки , которые с этим ключем. Получается, что в случае left join ключи в эту мжпу могут просто вставлены быть из левой таблицы
  • https://t.me/clickhouse_ru
    все вообще не так. Вам зачем это?
  • https://t.me/clickhouse_ru
    @241186216 #114349 08:17 PM, 13 Aug 2019
    а как?
  • https://t.me/clickhouse_ru
    @241186216 #114350 08:17 PM, 13 Aug 2019
    интересно узнать
  • https://t.me/clickhouse_ru
    @den_crane #114351 08:21 PM, 13 Aug 2019
    я тоже не знаю.

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

    select A,B from leftT left outer join rightT on (Z)

    hash-table in Memory
    hash B Z
    ----------------
    1 xxxx 'true'
    2 yyyy 'false'

    идем по левой таблице находим там Z='unknown' считаем hash, получаем 48
    48 в hash-table нету -> B = null
  • https://t.me/clickhouse_ru
    @241186216 #114352 08:24 PM, 13 Aug 2019
    А результат где накапливается ? В правой мэпе или отдельная структура ?
  • https://t.me/clickhouse_ru
    результат стримается дальше по пайплауну следущим стадиям
  • https://t.me/clickhouse_ru
    @den_crane #114354 08:25 PM, 13 Aug 2019
    левая таблица никуда не читается, грубо/упрощенно говоря это стрим, и обрабатыатся строка за строкой
  • https://t.me/clickhouse_ru
    @den_crane #114355 08:26 PM, 13 Aug 2019
    конечно блоками по 65к и многопоточно
  • https://t.me/clickhouse_ru
    @241186216 #114356 08:28 PM, 13 Aug 2019
    Вот мы взяли строку из левой. Посчитали хэш . Проверили , есть ли хэш в правой . Наверное если хэш есть , то нужно ещё и поля сравнить т.к хэш не уникальный. Значит в правой хэш мепе хранятся и сами значения . И ещё там должны хранится и значения других колонок для этой строки
  • https://t.me/clickhouse_ru
    @241186216 #114357 08:29 PM, 13 Aug 2019
    А после совпадения нам нужно сформировать строку , где уже будут значения колонок в общем случае из 2 х таблиц. Вот эта строка она в какой структуре ?
  • https://t.me/clickhouse_ru
    я не знаю насчет уникальный или нет. Тут в КХ все такие затейники. Конечно хештаблице все колонки которые нужны запросу.
  • https://t.me/clickhouse_ru
    @241186216 #114359 08:30 PM, 13 Aug 2019
    Спасибо
  • https://t.me/clickhouse_ru
    какая разница? это ведь все структуры в памяти, кучка указателей на блоки с колонками, насколько я понимаю если блок колонки из левой таблицы не меняется (не умножается all и не обрезается inner) то можно указатель на блок передать дальше в пайплайн.
  • https://t.me/clickhouse_ru
    @den_crane #114361 08:34 PM, 13 Aug 2019
    я не уверен про хеш-таблицу для правой, как она устроена. Потому что в словарях это множество хеш таблиц, по таблице на колонку
  • https://t.me/clickhouse_ru
    Но если добавили колонки из правой , то уже нельзя ведь.
  • https://t.me/clickhouse_ru
    можно, вы не понимаете, указатель на блок содержащий колонку A

    т.е. select L.A, L.B, R.X from L any left outer join R
    можно указателИ на блоки с кучками строк L.A, L.B передавать -- они не меняются -- any left outer
  • https://t.me/clickhouse_ru
    А блок он значение одной колонки содержит ?
  • https://t.me/clickhouse_ru
    кажется, да. Я бы так сделал 🙂
  • @devbrom #114366 08:41 PM, 13 Aug 2019
    По какой причине могут не работать MV? Туда не поступают новые данные хотя в связаную таблицу инсерты идут и данные которые были на момент создания MV в связаной таблице - в MV есть

    MV создаю вот так:

    CREATE MATERIALIZED VIEW IF NOT EXISTS currency_rate_latest
    ENGINE = ReplacingMergeTree(time) PARTITION BY group ORDER BY (group, from, to) POPULATE
    AS SELECT
    group, from, to,
    argMax(value, datetime) as value,
    max(datetime) as time
    FROM currency_rate
    GROUP BY group, from, to;

    Версия КХ 19.11.3.11
  • https://t.me/clickhouse_ru
    на самом деле MV это триггер на insert и если вставляется одна строка, то ваш запрос выполнится над одной строкой
  • https://t.me/clickhouse_ru
    @den_crane #114368 08:45 PM, 13 Aug 2019
    скорее всего тут нужен argMaxState и aggregatingMergeT, хотя зависит от задачи конечн
  • @devbrom #114369 08:48 PM, 13 Aug 2019
    ок, буду пробовать, спасибо
  • https://t.me/clickhouse_ru
    а хотя кстати возможно все у вас правильно и строк нет по другой причине. currency_rate -- replicated? вы в нее вставляете или в реплику?

    create table currency_rate (group Int64, from Int64, to Int64, value Int64, datetime DateTime) Engine=MergeTree order by tuple();
    insert into currency_rate values(1,1,1,6,now());
    insert into currency_rate values(1,1,1,8,now()+5);

    select * from currency_rate_latest final
    1 rows in set.
  • https://t.me/clickhouse_ru
    try to add a parameter kafka_row_delimiter = '\n';

    https://clickhouse.yandex/docs/en/operations/table_engines/kafka/
  • @devbrom #114372 08:54 PM, 13 Aug 2019
    честно говоря до реплик еще не дошел))) в currency_rate вставляет kafka
  • https://t.me/clickhouse_ru
    MV не каскадируются пока.

    надо вам в currency_rate_latest указть FROM кафка таблица
  • @devbrom #114374 08:56 PM, 13 Aug 2019
    сейчас так: kafka -> mv -> table -> mv
  • https://t.me/clickhouse_ru
    @den_crane #114375 08:57 PM, 13 Aug 2019
    вообще с каскадированием все странно, для кафки каскадирование не работает, но вроде уже почти запилили судя по pull request.
  • https://t.me/clickhouse_ru
    @den_crane #114376 08:57 PM, 13 Aug 2019
    надо

    kafka -> mv -> table
    \ -> mv -> table2
  • @devbrom #114377 08:59 PM, 13 Aug 2019
    все вместе сейчас выглядит так:
    CREATE TABLE IF NOT EXISTS finance.currency_rate (
    group String,
    from String,
    to String,
    value Float64,
    datetime DateTime,
    date Date
    ) ENGINE = MergeTree PARTITION BY toYYYYMM(date) ORDER BY (group, from, to, date) SETTINGS index_granularity = 8192;

    CREATE TABLE IF NOT EXISTS finance.currency_rate_kafka (
    DATETIME String,
    EVENT String,
    INTEGRATION String,
    RATE_FROM String,
    RATE_TO String,
    RATE_VALUE Float64
    ) ENGINE = Kafka SETTINGS kafka_broker_list = 'kafka:9092',
    kafka_topic_list = 'statistic',
    kafka_group_name = 'finance_currency_rate',
    kafka_row_delimiter = '\n',
    kafka_format = 'JSONEachRow',
    kafka_skip_broken_messages = 1,
    kafka_num_consumers = 5;

    CREATE MATERIALIZED VIEW IF NOT EXISTS finance.currency_rate_consumer TO finance.currency_rate
    AS SELECT
    INTEGRATION as group,
    RATE_FROM as from,
    RATE_TO as to,
    RATE_VALUE as value,
    parseDateTimeBestEffort(DATETIME) as datetime,
    toDate(parseDateTimeBestEffort(DATETIME)) as date
    FROM finance.currency_rate_kafka
    WHERE EVENT = 'currency_feed' AND RATE_FROM != '' AND RATE_TO != '' AND RATE_VALUE != 0;

    CREATE MATERIALIZED VIEW IF NOT EXISTS currency_rate_latest
    ENGINE = ReplacingMergeTree(time) PARTITION BY group ORDER BY (group, from, to) POPULATE
    AS SELECT
    group, from, to,
    argMax(value, datetime) as value,
    max(datetime) as time
    FROM currency_rate
    GROUP BY group, from, to;
  • it did not help,,but thank you anyway.. i ran clickhouse using docker could it affect on this
  • https://t.me/clickhouse_ru
    да, это все понятно

    CREATE MATERIALIZED VIEW IF NOT EXISTS currency_rate_latest
    ....
    ....
    работает только FROM currency_rate_kafka
  • https://t.me/clickhouse_ru
    check CH logs. Of course kafka host should be acessible from docker.
    try to enter into the container with bash and check kafka host/port with telnet / curl
  • okay,,i will try,,thank you very much,,
  • https://t.me/clickhouse_ru
    точно, 👍
  • https://t.me/clickhouse_ru
    @levonet #114383 09:58 PM, 13 Aug 2019
    Если обновиться с 18.16.1 до 19.13.1.11
    какова вероятность, что все сломается?
  • https://t.me/clickhouse_ru
    если есть кафка и словари то 100%
  • https://t.me/clickhouse_ru
    Нет кафки и словарей, есть только репликация мерджтри и буфер таблицьі
  • https://t.me/clickhouse_ru
    @den_crane #114386 10:38 PM, 13 Aug 2019
    тестировать надо на стейдже полный lifecycle
  • https://t.me/clickhouse_ru
    @levonet #114387 10:39 PM, 13 Aug 2019
    +
  • 14 August 2019 (118 messages)
  • @Samat_kz #114388 05:11 AM, 14 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @hakobtp #114389 06:18 AM, 14 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @suxxorz #114390 06:26 AM, 14 Aug 2019
    Всем привет!

    Кто-нибудь пользуется MaxMind GeoIP для CH? Скажите, пожалуйста, стоит ли его использовать или лучше хранить данные по ASN, City, Country сразу в таблице?
  • А данные для таблицы откуда? CSV база более скудная, чем бинарная
  • @AlexanderMillin #114392 06:32 AM, 14 Aug 2019
    я для своих задач делал словарь, обращающийся в бинарную базу
  • Good day, Denny Crane,, when i connect to kafka using CH in CH logs i get this message
    %3|1565765569.784|FAIL|ClickHouse 19.8.3.8#consumer-7| [thrd:localhost:9092/bootstrap]: localhost:9092/bootstrap: Connect to ipv4#127.0.0.1:9092 failed: Connection refused (after 0ms in state CONNECT)
    %3|1565765569.784|ERROR|ClickHouse 19.8.3.8#consumer-7| [thrd:localhost:9092/bootstrap]: localhost:9092/bootstrap: Connect to ipv4#127.0.0.1:9092 failed: Connection refused (after 0ms in state CONNECT)
    %3|1565765569.784|ERROR|ClickHouse 19.8.3.8#consumer-7| [thrd:localhost:9092/bootstrap]: 1/1 brokers are down
  • @761503679 #114394 06:58 AM, 14 Aug 2019
    can you suggest me what to do,,and how to deal with it?
  • https://t.me/clickhouse_ru
    @suxxorz #114395 07:06 AM, 14 Aug 2019
    Пока попробовал словарь CSV
  • https://t.me/clickhouse_ru
    @suxxorz #114396 07:06 AM, 14 Aug 2019
    А данные для таблицы откуда? CSV база более скудная, чем бинарная
  • https://t.me/clickhouse_ru
    А где я смогу прочитать как интегрировать бинарники, я так понимаю это mmdb
  • я писал свою обертку на Go
  • https://t.me/clickhouse_ru
    А что значит "более скудная"? Разве это не одна и та же база, но в разных форматах?
  • https://t.me/clickhouse_ru
    Тоже интересно
  • @AlexanderMillin #114401 07:16 AM, 14 Aug 2019
    не знаю как сейчас, но раньше на сайте maxmind было заявлено, что csv база покрывает что-то порядка ~80% данных.
    Может сейчас что-то изменилось, не знаю, не следил
  • https://t.me/clickhouse_ru
    Там вроде лайт база была и не лайт. По крайней мере бинарная. Не лайт платная конечно.
  • я имел в виду платную версию. По-моему, были отличия по точности csv и mmdb.

    Возможно, я ошибаюсь
  • @detka_k0nfetka #114404 08:27 AM, 14 Aug 2019
    Joined.
  • @detka_k0nfetka #114405 08:31 AM, 14 Aug 2019
    Ребят, привет!!!
    Нам нужно события мобильной игры как-то классно складывать в кликхаус, до этого был postgres. Подскажите, пожалуйста, может быть, есть инструкции как правильно это делать?) Советы, идеи, молитвы?) Буду рада любым рекомендациям!!!
    Пока смотрю в сторону Game Analytics как у них сделано.
  • https://t.me/clickhouse_ru
    @dbalashov #114406 08:33 AM, 14 Aug 2019
    копать надо со стороны "какие данные и в каком виде мы их хотим видеть"
  • https://t.me/clickhouse_ru
    @dbalashov #114407 08:34 AM, 14 Aug 2019
    оттуда будут примерно ясны модели данных и их структура хранения и нормализации/денормализации
  • Они у нас в реляционке так и лежат, нам очень нравится! А нам надо чтобы в колоночной хорошо работало)) Соответсвенно все надо как-то в одну-две таблицы уместить...
  • https://t.me/clickhouse_ru
    @dbalashov #114409 08:35 AM, 14 Aug 2019
    ещё раз, вопрос же не в смене хранилища, вопрос "что вы сможете получить, заменив postgres на CH"
  • https://t.me/clickhouse_ru
    @dbalashov #114410 08:35 AM, 14 Aug 2019
    очевидно есть запросы которые не устраивают - по скорости выполнения или количеству получаемых данных/разрезов
  • https://t.me/clickhouse_ru
    @dbalashov #114411 08:36 AM, 14 Aug 2019
    поэтому я и написал - что копать надо сдругой стороны - что вы хотите получить на выходе
  • https://t.me/clickhouse_ru
    @dbalashov #114412 08:36 AM, 14 Aug 2019
    просто заменить хранилище - не принесёт ничего кроме боли
  • https://t.me/clickhouse_ru
    @dbalashov #114413 08:37 AM, 14 Aug 2019
    если очень нравица как лежат данные в реляционной БД - то зачем CH ?
  • @detka_k0nfetka #114414 08:47 AM, 14 Aug 2019
    Думаю, что как и у всех))) Объем не позволяет эффективно работать!
    Мы уже перегоняем данные в CH, чтобы на выходе получать быстрые классные дашборды. Но хотим вот переделать структуру, чтобы она более подходила под особенности кликхауса и мы сразу туда писали)
    Мне интересны кейсы, статьи на тему разработки хранилища CH под мобильное приложение. Интересно узнать как это делают, чтобы не наступать на грабли) Пока за референс беру game analytics
  • https://t.me/clickhouse_ru
    лучше посетите доклад " Как перестать бояться и начать разрабатывать специализированные структуры данных" в субботу
  • О а трансляция есть? Я в Перми
  • https://t.me/clickhouse_ru
    @yarlanzey #114417 08:58 AM, 14 Aug 2019
    скорее всего будет запись
  • https://t.me/clickhouse_ru
    Да кейс один все что можно разложить на колонки, сделать нужный индекс, во всех запросах использовать ограничение на временной промежуток
  • @ThodinBizzz #114419 09:31 AM, 14 Aug 2019
    всем привет
    надо ли стараться избегать Nested-структур в кх?

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

    т.е. я не смогу добавить поля в такую структуру?
  • @ThodinBizzz #114420 09:33 AM, 14 Aug 2019
    ну ил может есть другой способ хранить структуру вида

    Record
    (
    OneID UInt64
    TwoId UInt64
    Three Int8
    )
  • https://t.me/clickhouse_ru
    ну всегда можно хранить просто как строку с разделителем
  • https://t.me/clickhouse_ru
    @metikovvadim #114422 09:46 AM, 14 Aug 2019
    вопрос к знатокам движков *GraphiteMergeTree :
    одинаковые данные пишутся в 2 раблички с подневным партиционированием, разница тольк в том , что у первой нет правил прореживания(она реверсная), а у второй есть(однако все правила начинаются для данных старше 86400с), почему-то отличается длительность мерджей:
    SELECT *
    FROM system.part_log
    WHERE (event_date = '2019-08-14') AND (event_type = 'MERGE_PARTS') AND (table = 'graphite_reverse')
    LIMIT 2

    ┌─event_type──┬─event_date─┬──────────event_time─┬─duration_ms─┬─database─┬─table────────────┬─part_name──────────────┬─partition_id─┬────rows─┬─size_in_bytes─┬─merged_from──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬─bytes_uncompressed─┬─read_rows─┬─read_bytes─┬─error─┬─exception─┐
    │ MERGE_PARTS │ 2019-08-14 │ 2019-08-14 12:39:59 │ 266 │ default │ graphite_reverse │ 20190814_33822_33828_1 │ 20190814 │ 5278478 │ 72539384 │ ['20190814_33822_33822_0','20190814_33823_33823_0','20190814_33824_33824_0','20190814_33825_33825_0','20190814_33826_33826_0','20190814_33827_33827_0','20190814_33828_33828_0'] │ 738695288 │ 5598096 │ 773392881 │ 0 │ │
    └─────────────┴────────────┴─────────────────────┴─────────────┴──────────┴──────────────────┴────────────────────────┴──────────────┴─────────┴───────────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴────────────────────┴───────────┴────────────┴───────┴───────────┘
    ┌─event_type──┬─event_date─┬──────────event_time─┬─duration_ms─┬─database─┬─table────────────┬─part_name──────────────┬─partition_id─┬────rows─┬─size_in_bytes─┬─merged_from──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬─bytes_uncompressed─┬─read_rows─┬─read_bytes─┬─error─┬─exception─┐
    │ MERGE_PARTS │ 2019-08-14 │ 2019-08-14 12:39:52 │ 331 │ default │ graphite_reverse │ 20190814_33809_33815_1 │ 20190814 │ 5146174 │ 76391759 │ ['20190814_33809_33809_0','20190814_33810_33810_0','20190814_33811_33811_0','20190814_33812_33812_0','20190814_33813_33813_0','20190814_33814_33814_0','20190814_33815_33815_0'] │ 698014502 │ 5563696 │ 742912971 │ 0 │ │
    └─────────────┴────────────┴─────────────────────┴─────────────┴──────────┴──────────────────┴────────────────────────┴──────────────┴─────────┴───────────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴────────────────────┴───────────┴────────────┴───────┴───────────┘

    2 rows in set. Elapsed: 0.023 sec.

    SELECT *
    FROM system.part_log
    WHERE (event_date = '2019-08-14') AND (event_type = 'MERGE_PARTS') AND (table = 'graphite_day')
    LIMIT 2

    ┌─event_type──┬─event_date─┬──────────event_time─┬─duration_ms─┬─database─┬─table────────┬─part_name──────────────┬─partition_id─┬────rows─┬─size_in_bytes─┬─merged_from─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬─bytes_uncompressed─┬─read_rows─┬─read_bytes─┬─error─┬─exception─┐
    │ MERGE_PARTS │ 2019-08-14 │ 2019-08-14 12:39:54 │ 3505 │ default │ graphite_day │ 20190814_33786_33791_1 │ 20190814 │ 5513342 │ 64783397 │ ['20190814_33786_33786_0','20190814_33787_33787_0','20190814_33788_33788_0','20190814_33789_33789_0','20190814_33790_33790_0','20190814_33791_33791_0'] │ 716894564 │ 6163611 │ 790141864 │ 0 │ │
    │ MERGE_PARTS │ 2019-08-14 │ 2019-08-14 12:39:56 │ 3090 │ default │ graphite_day │ 20190814_33792_33797_1 │ 20190814 │ 5242510 │ 63088863 │ ['20190814_33792_33792_0','20190814_33793_33793_0','20190814_33794_33794_0','20190814_33795_33795_0','20190814_33796_33796_0'
  • https://t.me/clickhouse_ru
    @metikovvadim #114423 09:46 AM, 14 Aug 2019
    ,'20190814_33797_33797_0'] │ 727016565 │ 5649303 │ 772574156 │ 0 │ │
    └─────────────┴────────────┴─────────────────────┴─────────────┴──────────┴──────────────┴────────────────────────┴──────────────┴─────────┴───────────────┴─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴────────────────────┴───────────┴────────────┴───────┴───────────┘
  • https://t.me/clickhouse_ru
    @metikovvadim #114424 09:47 AM, 14 Aug 2019
    в 10+ раз при сходном числе строк
    неужели регулярки парсятся даже если всегодняшней пратиции этого делать не надо ?
  • @RakitinDV #114425 09:47 AM, 14 Aug 2019
    Joined.
  • @orlan_sar #114426 09:47 AM, 14 Aug 2019
    Привет всем!
    Как создать виртуальную колонку во вью?
  • @kostin1221 #114428 09:53 AM, 14 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @shursh ↶ Reply to #114310 #114429 10:04 AM, 14 Aug 2019
    У меня тожде 18.14.18 и плевать он хотел на лимиты. При выставленном лимите на 30гб, при тяжелых запросах ест все 60 и его убивает OOM
  • @devbrom #114430 11:17 AM, 14 Aug 2019
    Добрый день. И снова вопрос про mv и кафку. Имеем следующую схему:
    Kafka -> mv A -> table A -> mv B -> table B
    При явной вставке в table A (inser into table A), mv B реагирует и заполняет table B и все работает вроде как корректно, но когда данные в table A поступают из кафки, то в этом случае Table B не заполняется.
    Table A - MergeTree - данные истории
    Table B - ReplacingMergeTree - последние данные из Table A по определенным критериям
    CH 19.11.3.11

    Есть идеи?
  • https://t.me/clickhouse_ru
    Кафка по-моему сломана все еще
  • @devbrom #114432 11:19 AM, 14 Aug 2019
    Судя по ченджлогам на github 19.11.3.11 это последний релиз с рабочей кафкой
  • https://t.me/clickhouse_ru
    кажется где то писали уже, матвью реагирует на INSERT, при этом материализация данных из матвью не считается INSERTом для других матвью
  • @devbrom #114434 11:20 AM, 14 Aug 2019
    я пробовал последующие релизы и да там кафка сходит с ума 🙂
  • @simpl1g #114435 11:25 AM, 14 Aug 2019
    в 19.х кафка работает не сьабильно
  • @simpl1g #114436 11:25 AM, 14 Aug 2019
    Kafka -> mv A -> table A -> mv B -> table B
    Такая схема сейчас не работает
  • @ThodinBizzz #114437 11:25 AM, 14 Aug 2019
    Backward Incompatible Change¶

    Kafka still broken
  • @simpl1g #114438 11:26 AM, 14 Aug 2019
    Kafka -> mv A -> table A
    \-> mv B -> table B
  • @simpl1g #114439 11:26 AM, 14 Aug 2019
    Так будет работать
  • Вроде как сейчас работают над этой проблемой
  • https://t.me/clickhouse_ru
    @ilkhom98 #114441 11:30 AM, 14 Aug 2019
    Добрый день! У меня есть вопрос есть ли в CH возможность создания своих функций и временных переменных?
  • на сколько я знаю нет, так как месяц назад тоже искал подобный функционал
  • https://t.me/clickhouse_ru
    Спасибо
  • @s0m3th1nG #114444 11:41 AM, 14 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    @Radzhabali #114445 11:46 AM, 14 Aug 2019
    Joined.
  • https://t.me/clickhouse_ru
    Спасибо! Да я видел и использую WITH, но покак не могу придумать как получить именно то что я хочу. Получается получить только по одной строчки таблицы которую хотелось бы получить для следущей строчки нужно менять параметр в секции WITH
  • @dice2slice #114448 11:53 AM, 14 Aug 2019
    такое только через скрипт наверно реализуемо
  • https://t.me/clickhouse_ru
    @metikovvadim #114449 11:55 AM, 14 Aug 2019
    Никто не использует графит движки на больших данных?
  • @Samat_kz #114450 12:06 PM, 14 Aug 2019
    Всем привет.
    Подскажите были ли у кого нибудь кейсы по автоматизации выгрузки данных с Oracle в СН. Сделал скрипты + cron, но выглядит не очень по интерпрайз.
  • https://t.me/clickhouse_ru
    странно, у меня получилось то что вы хотите.
  • https://t.me/clickhouse_ru
    воспроизводите и в тикет, непонятно даже какой это мерж вертикальный или горизонтальный
  • https://t.me/clickhouse_ru
    @metikovvadim #114453 12:15 PM, 14 Aug 2019
    все горизонтальные , памяьт больше половины свободно
  • https://t.me/clickhouse_ru
    agile. Строите дом, вышла херня, ломаете до фундамента, строите дом, вышла херня, ломаете
  • ладно ладно)))
  • https://t.me/clickhouse_ru
    постарайтесь сделать одну таблицу. Если нужны справочники -- делайте словари. Строк постарайтесь сделать как можно меньше, пихайте в массивы то что можно, что бы сдеалать pivot и сократить кол-во строк. Nested -- это сахар для массивов, все там alter-рится на раз два.
  • https://t.me/clickhouse_ru
    https://habr.com/ru/company/vk/blog/445284/

    https://www.youtube.com/watch?v=5KQsNmRTQmg
  • https://t.me/clickhouse_ru
    127.0.0.1:9092 -- localhost (accessible from kafka host only).
    Where is your kafka installed? Is it a container too? On the same docker host?
  • @ThodinBizzz #114459 12:25 PM, 14 Aug 2019
    насколько эксперементальныая фича - "Дополнительные индексы"?

    можно на неё расчитавать в проде?
  • спасибо, мне тоже помогло
  • https://t.me/clickhouse_ru
    можно рассчитывать. У этой фичи довольно узкий круг применения. Я не смог использовать например.
    Это не инверсные индексы совсем. Поэтому стоит поиграть и на спичках и понять нужна она вам вообще или нет.
  • kafka installed on mac without docker but clickhouse installed using docker
  • https://t.me/clickhouse_ru
    try to use host.docker.internal instead of localhost

    https://docs.docker.com/docker-for-mac/networking/#i-want-to-connect-from-a-container-to-a-service-on-the-host
  • i will,,thank you
  • https://t.me/clickhouse_ru
    just tested with my mac. It's working.

    I run at macos [ nc -l 2389 ]
    and was able to connect from CH container and talk with the first nc using [ nc host.docker.internal 2389 ]
  • @761503679 #114466 12:44 PM, 14 Aug 2019
    CREATE TABLE queue (
    timestamp UInt64,
    level String,
    message String
    ) ENGINE = Kafka('127.0.0.1:9092', 'test', 'group1', 'JSONEachRow');
    but what did you write instead of 127.0.0.1:9092?
  • https://t.me/clickhouse_ru
    @den_crane #114468 12:44 PM, 14 Aug 2019
    just use host.docker.internal instead of 127.0.0.1
  • https://t.me/clickhouse_ru
    @den_crane #114469 12:45 PM, 14 Aug 2019
    CREATE TABLE queue (
    timestamp UInt64,
    level String,
    message String
    ) ENGINE = Kafka('host.docker.internal:9092', 'test', 'group1', 'JSONEachRow');
  • https://t.me/clickhouse_ru
    @den_crane #114470 12:46 PM, 14 Aug 2019
    host.docker.internal -- is a special DNS record in docker mac that expose a special IP to make sort of bridge to the macOS
  • your have run kafka using docker or without??
  • [thrd:GroupCoordinator]: GroupCoordinator: Connect to ipv4#127.0.0.1:9092 failed: Connection refused (after 0ms in state CONNECT) the same error appear but i used ENGINE = Kafka('host.docker.internal:9092', 'test', 'group1', 'JSONEachRow');
  • https://t.me/clickhouse_ru
    check
    docker -v
    Docker version 18.09.2, build 6247962
  • docker version the same ,, but i have run kafka without docker ,,i have run CH using docker