• 01 May 2019 (82 messages)
  • https://t.me/clickhouse_ru
    @kostiantynv #99534 07:56 AM, 01 May 2019
    Добрый день, насколько странная затея делать MV поверх distributed table, я так понял что MV срабатывает строго на insert, данных из таблицы не читает, тоесть если на нескольких машинах будет такая MV + distributed table, то на каждой из них в MV попадет только то что пытались записать в distributed table на этой ноде
  • https://t.me/clickhouse_ru
    @kostiantynv #99535 07:57 AM, 01 May 2019
    Для упрощения представим что под distributed table - tables with null engine
  • https://t.me/clickhouse_ru
    @kostiantynv #99536 07:57 AM, 01 May 2019
    Я выполняю на определённой ноде запрос insert from select который пишет в распределенную таблицу
  • https://t.me/clickhouse_ru
    @kostiantynv #99537 07:58 AM, 01 May 2019
    Данные попадут только в MV на этой ноде ?
  • https://t.me/clickhouse_ru
    @dbalashov #99538 08:12 AM, 01 May 2019
    а ктонибудь графану с clickhouse дружил? уменя затык на создании графика в панели, чот не могу понять как обозначить значение на оси
  • https://t.me/clickhouse_ru
    У меня на одном из проектов дружили, могу спросить подробности. Но графики каждый раз перестраиваются очень долго. На мой взгляд дешевле отчёты генерировать по крону в бд типа постгри/мускуля/... а их уже в графану цеплять.
  • https://t.me/clickhouse_ru
    Дружится на раз рисуется быстро примеры есть. Стоит один раз разобраться
  • https://t.me/clickhouse_ru
    @dbalashov #99541 08:29 AM, 01 May 2019
  • https://t.me/clickhouse_ru
    @dbalashov #99542 08:29 AM, 01 May 2019
    не могу понять как объяснить графане что t это ось X всё таки
  • https://t.me/clickhouse_ru
    @dbalashov #99543 08:30 AM, 01 May 2019
    тоесть запрос выполняется, возвращает там несколько пару тыщ записей, с корректным значением unix time (как на play.grafana.org) но чот график не строица, хотя я добавил уже series одну, указал прямо как в примере
  • https://t.me/clickhouse_ru
    @dbalashov #99544 08:31 AM, 01 May 2019
    если переключить в histogram -оно показывает гистограмму https://i.tk-chel.ru/denisio/sharex/20190501_133120.png
  • https://t.me/clickhouse_ru
    @dbalashov #99545 08:31 AM, 01 May 2019
    но если вернуть обратно ось в time то пустой график
  • https://t.me/clickhouse_ru
    Включите отображение точек. Либо null as zero.
  • https://t.me/clickhouse_ru
    @dbalashov #99547 08:37 AM, 01 May 2019
    я уже всё что можно включил
  • https://t.me/clickhouse_ru
    @dbalashov #99548 08:37 AM, 01 May 2019
    если мышкой водить по графику то оно показывает неверную дату-время https://i.tk-chel.ru/denisio/sharex/20190501_133743.png
  • https://t.me/clickhouse_ru
    И, кстати, более-менее прилично в графане рисуется только то, что сделано на основе их шаблона с их же шагом.
  • https://t.me/clickhouse_ru
    Остальное - требует сильного допиливания
  • https://t.me/clickhouse_ru
    @dbalashov #99551 08:38 AM, 01 May 2019
    что наводит меня на мысль что гдето неверно парсица или интерпретируется дата-время точек
  • https://t.me/clickhouse_ru
    @dbalashov #99552 08:39 AM, 01 May 2019
    причем по всей площади графика эта дата-время и это значение...
  • https://t.me/clickhouse_ru
    @dbalashov #99553 08:40 AM, 01 May 2019
    и это последнее значение в наборе данных
  • https://t.me/clickhouse_ru
    @dbalashov #99554 08:40 AM, 01 May 2019
    1823
  • https://t.me/clickhouse_ru
    а если подсунуть сгенерёный графаной запрос в кх - там какие значения таймштампов будут?
  • https://t.me/clickhouse_ru
    Подозреваю, что, точно не в районе 1556700178
  • https://t.me/clickhouse_ru
    @nvartolomei #99557 08:44 AM, 01 May 2019
    Можно каким нибудь запросом узнать тип partitionBy expression таблицы? Нужен workaround для https://github.com/yandex/ClickHouse/issues/4735
    system.parts inconsistant quoting · Issue #4735 · yandex/ClickHouse

    18.16 address quoting problems in system.parts. See #3109 and #3652. After that change all the single values partition names are unquoted always (also for Strings / DateTimes etc), and it is incons...

  • https://t.me/clickhouse_ru
    @ondanna ↶ Reply to #99542 #99558 08:45 AM, 01 May 2019
    В настройках панели прямо над текстом запроса есть же выбор «что считать временным рядом», не помогает?
  • https://t.me/clickhouse_ru
    @dbalashov #99559 08:46 AM, 01 May 2019
    я уже там выбрал
  • https://t.me/clickhouse_ru
    @f0rden ↶ Reply to #99544 #99560 08:47 AM, 01 May 2019
    последняя версия?
  • https://t.me/clickhouse_ru
    @dbalashov #99561 08:47 AM, 01 May 2019
    да
  • https://t.me/clickhouse_ru
    именно такие
  • https://t.me/clickhouse_ru
    а диапазон дат в графане какой установлен?
  • https://t.me/clickhouse_ru
    @ondanna #99564 08:48 AM, 01 May 2019
    Странно, так то кликхаус с графаной дружится на раз и работает, на мой вкус приятнее графаны +инфлюкса, я для графиков Jmeter делал панели, если нужны примеры, они опубликованы
  • https://t.me/clickhouse_ru
    я в запрос воткнул захардкоженый диапазон
  • https://t.me/clickhouse_ru
    А графана в курсе?
  • https://t.me/clickhouse_ru
    @dbalashov #99567 08:51 AM, 01 May 2019
    графане я поставил ваще 5 последних лет
  • https://t.me/clickhouse_ru
    @dbalashov #99568 08:51 AM, 01 May 2019
    тоесть заведомо больший
  • https://t.me/clickhouse_ru
    DT - точно таймштамп секунд от 1970 года, а не какой-нибудь счётчик?
  • https://t.me/clickhouse_ru
    @dbalashov #99570 08:52 AM, 01 May 2019
    уже ищу
  • https://t.me/clickhouse_ru
    Да просто SELECT DT с тем же условием и LIMIT 10
  • https://t.me/clickhouse_ru
    @dbalashov #99572 08:53 AM, 01 May 2019
    ща
  • https://t.me/clickhouse_ru
    графана генерит что-то типа:
    SELECT (intDiv(toUInt32(datetime), 300) * 300) * 1000 as t,
  • https://t.me/clickhouse_ru
    здесь 300 - это шаг в секундах
  • https://t.me/clickhouse_ru
    Подозреваю, что ей надо миллисекунды, судя по умножению на 1000
  • https://t.me/clickhouse_ru
    datetime тут - именно datetime кх
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @dbalashov #99578 08:56 AM, 01 May 2019
    блядь и правда.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @dbalashov #99580 08:56 AM, 01 May 2019
    *1000
  • https://t.me/clickhouse_ru
    Ну... Вот!
  • https://t.me/clickhouse_ru
    @dbalashov #99582 08:57 AM, 01 May 2019
    видимо мало было кофе.
  • https://t.me/clickhouse_ru
    @dbalashov #99583 08:57 AM, 01 May 2019
    как я так затупил
  • https://t.me/clickhouse_ru
    Я, как человек ленивый, обычно просто правлю то, что подсовывает графана
  • https://t.me/clickhouse_ru
    @559884661 #99585 09:24 AM, 01 May 2019
    Подскажите пожалуйста, можно удалить партицию, не делая предварительно detach?
  • https://t.me/clickhouse_ru
    alter table ... drop partition 'partname'
  • https://t.me/clickhouse_ru
    вроде работает
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #99588 09:30 AM, 01 May 2019
    А из примеров выше используется плагин кх для графаны?
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #99589 09:31 AM, 01 May 2019
    С датасорсом. Там же все просто делается через встроенные переменные и не надо мудрить с расчётом datetime
  • https://t.me/clickhouse_ru
    Я больше думал про rm ;) можно им удалять?
  • https://t.me/clickhouse_ru
    это выглядит как ожидаемое поведение в любой друго SQL DBMS, но мы же с вами знаем что КХ особенный. Это точно работает в КХ ?
  • https://t.me/clickhouse_ru
    Ну так и удаляет партицию с указанным именем. Место освобождается.
  • https://t.me/clickhouse_ru
    Да
  • https://t.me/clickhouse_ru
    Да. Проверить это занимает минуты 3. В чем затруднение?

    В кх есть тестовый кластер из локалхоста можно на одной ноде тестить https://github.com/yandex/ClickHouse/issues/5142
  • @Dima_Ishchenko #99595 12:29 PM, 01 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @ployd #99596 04:14 PM, 01 May 2019
    Откуда в query_log может быть ненулевой result_bytes в INSERT запросе?
  • https://t.me/clickhouse_ru
    @ployd #99597 04:14 PM, 01 May 2019
    Ещё вопрос: что значит ненулевой read_rows/bytes в INSERT запросе?
  • https://t.me/clickhouse_ru
    @ployd #99598 04:17 PM, 01 May 2019
    Просто пишу в две таблицы каждые 30с, в одну по ~8к записей, в другую по ~500 записей.
    — Записи в query_log для большой таблицы показывают дикие тайминги (по 20сек), нулевые read_* и НЕнулевые result_*
    — Записи в query_log для малой таблицы показывают до 10мс, НЕнулевые read_* и нулевые result_*

    Куда можно покопать?
  • Я не полностью уверен, но могу предположить, что это - информация о прочитанных строках и байтах данных, переданных клиентом для INSERT.
  • https://t.me/clickhouse_ru
    @ployd #99600 04:42 PM, 01 May 2019
    Почему тогда нет его для insert-а в малую таблицу?
  • https://t.me/clickhouse_ru
    @ployd #99601 04:42 PM, 01 May 2019
    Причём это повторяется каждый insert
  • https://t.me/clickhouse_ru
    @den_crane #99602 05:07 PM, 01 May 2019
    таблицы одинаковые distributed / replicated ?
  • @vladislavadv #99603 05:27 PM, 01 May 2019
    Подскажите, плиз, а на 19.5.3.8 можно обновляться? там большой список известных проблем?
    обновляться планируем с 18.14.15
  • https://t.me/clickhouse_ru
    @den_crane #99604 06:09 PM, 01 May 2019
    советую протестить весь лайфсайкл долго и упорно
  • https://t.me/clickhouse_ru
    @ployd ↶ Reply to #99602 #99605 06:11 PM, 01 May 2019
    Без репликации
  • https://t.me/clickhouse_ru
    @ployd #99606 06:11 PM, 01 May 2019
    Таблицы только кол-ом столбцов отличаются
  • https://t.me/clickhouse_ru
    @den_crane #99607 06:13 PM, 01 May 2019
    А есть воркэраунд для?

    select arrayFilter( x -> x = 'a' , arL) from (select cast (['a','b'] as Array(LowCardinality(String))) arL)
    Expression for function arrayFilter must return UInt8, found LowCardinality(UInt8).

    18.14.18 (мне тупо идею протестить (я понимаю что пофикшено уже).
  • @vladislavadv #99608 06:16 PM, 01 May 2019
    Зря обновились… :(

    2019.05.01 21:05:07.159247 [ 76 ] {cb6d722a-9140-4d1a-a875-2a34a1411af0} <Error> executeQuery: Code: 44, e.displayText() = DB::Exception: Cannot insert column samplingKey, because it is MATERIALIZED column.
  • https://t.me/clickhouse_ru
    Кастить в массив обычных типов перед лямбдой
  • https://t.me/clickhouse_ru
    идея как раз в том что бы массив обычных строк конвертнуть в LC чтобы памяти меньше жрать,
    я решил проверить идею а что будет если положить на диск LC и обломался.

    Интересно можно ли сделать в памяти словарь LC на миллион элементов (у меня 2 млрд. String, а уникальных 1млн.).
    Если сделать вручную на cityHash64, то памяти уходит в 3 раза меньше, чем с LC

    create table memh (v String, h UInt64) Engine = Memory;
    insert into memh
    select v, cityHash64(v) h
  • https://t.me/clickhouse_ru
    @alexanderzaitsev #99611 06:58 PM, 01 May 2019
    Можно класть на диск LC, но для лямбд надо кастить обратно в 18.14
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @imayka #99613 08:32 PM, 01 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @f0rden #99614 11:51 PM, 01 May 2019
    привет
    как можно выводить нормально графики в графану?
    пытаюсь простенький график построить по запросу

    SELECT
    used_time,
    $timeSeries as t

    FROM $table
    WHERE $timeFilter
    group by t
    order by t

    вылезает ошибка
    ERROR:Code: 215, e.displayText() = DB::Exception: Column used_time is not under aggregate functi

    единственное что нагуглил - надо used_time запихнуть в group by, но из-за этого перестает работать отображение, показывает будто нет поинтов
    что можно сделать?
  • 02 May 2019 (67 messages)
  • https://t.me/clickhouse_ru
    @den_crane #99615 12:12 AM, 02 May 2019
    used_time это метрика? тогда должно быть sum(used_time) или avg(used_time) или max/min ...
  • https://t.me/clickhouse_ru
    @f0rden ↶ Reply to #99615 #99616 12:15 AM, 02 May 2019
    спасибо большое, все заработало
  • @ramun25 ↶ Reply to #55571 #99617 03:35 AM, 02 May 2019
    А если у меня работают джойны в матвьюхах?
  • https://t.me/clickhouse_ru
    Ну как повезет. https://github.com/yandex/ClickHouse/issues/5142
    Но тут вопрос еще осмысленности join в mv, если правая таблица маленькая то лучше сделать словарь ( словари работают в тысячи раз быстрее ) если таблица большая то join вообще нереально медленно и есть шанс сломать заливку при вылете по памяти.
  • @ramun25 ↶ Reply to #99618 #99619 04:41 AM, 02 May 2019
    матвью на локальные таблицы (в ишью на distributed) . Вставка вроде идёт, но селект из матвью действительно помедленнее, чем на тот же набор данных в той же структуре, индексах и гранулированности, но на локальной таблице.
  • https://t.me/clickhouse_ru
    @ployd ↶ Reply to #99601 #99620 07:18 AM, 02 May 2019
    Есть способ узнать, на что именно тратится время в запросе? В логах executeQuery, потом через 10с Done processing query
  • @880147522 #99621 08:05 AM, 02 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @f0rden ↶ Reply to #99622 #99624 08:26 AM, 02 May 2019
    /report
  • https://t.me/clickhouse_ru
    @f0rden ↶ Reply to #99622 #99625 08:26 AM, 02 May 2019
    !report
  • https://t.me/clickhouse_ru
    @molo4ko007 #99627 08:47 AM, 02 May 2019
    @valyala а есть какой-то способ в chproxy не кешировать на per-request-основе? в основном ведь запросы отправляются с уже установленных соединений, а соединения сами инициализируются с user/password, то есть несколько пользователей в одном приложении держать накладно, а иногда есть запросы, которые, например, делают выборку не count, а просто колонок, и такие кеширвоать уже не хотелось бы
  • https://t.me/clickhouse_ru
    привет
  • https://t.me/clickhouse_ru
    упс, no_cache
  • https://t.me/clickhouse_ru
    @dbalashov #99630 09:17 AM, 02 May 2019
    Только что узнал про chproxy, день прожит не зря
  • https://t.me/clickhouse_ru
    @monashev #99631 09:33 AM, 02 May 2019
    Переодически КН требуется огромное количество оперативкинство времени. При этом в него идут только вставки и больше никаких запросов. Если ему не дать достаточно памяти, то он не может смержить кусочки таблицы и копит их на диске.

    Подскажите, пожалуйста, какой настройкой можно ограничить размер памяти, который требуется для мержа, чтобы КХ начал при больших мержах использовать диск?
  • Привет 😁
  • https://t.me/clickhouse_ru
    @bgaifullin #99633 10:27 AM, 02 May 2019
    По поводу гошного драйвера ещё актуально, или это что то старое ?
  • https://t.me/clickhouse_ru
    @monashev ↶ Reply to #99631 #99634 10:35 AM, 02 May 2019
    посмотрел документацию и https://github.com/yandex/ClickHouse/blob/master/dbms/src/Core/Settings.h , но не нашёл ничего подходящего по смыслу.
    ClickHouse/ClickHouse

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

  • @aplitvinov #99636 11:01 AM, 02 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    длинные строки? Наверное max_block_size может влиять. Т.е. кх решает помержить 25 кусков в один, берет и читает из 25 кусков 25*65к
  • https://t.me/clickhouse_ru
    Ну само mv никак на селекты не влияет. Запросы выполняются к обычной таблице в которую mv запихнуло данные.
  • https://t.me/clickhouse_ru
    @emakarov ↶ Reply to #99634 #99639 11:46 AM, 02 May 2019
    Нет ли, случайно, в данных, длинных строк?
  • https://t.me/clickhouse_ru
    @monashev ↶ Reply to #99637 #99640 11:50 AM, 02 May 2019
    длинные строки есть. в одной таблице 2кб, в другой ещё больше.
  • https://t.me/clickhouse_ru
    @monashev ↶ Reply to #99637 #99641 11:53 AM, 02 May 2019
    а максимальное количество кусков как ограничить?
  • https://t.me/clickhouse_ru
    Ну это небольшие, в 5 гб должен мерж помещаться.
  • https://t.me/clickhouse_ru
    А что в system.merges когда мерж идет?
  • https://t.me/clickhouse_ru
    @emakarov ↶ Reply to #99640 #99644 12:09 PM, 02 May 2019
    у меня на машине, где было не очень много памяти и большие строки, тоже было такое
    пришлось поменять схему данных и избавиться от строк
  • https://t.me/clickhouse_ru
    @emakarov #99645 12:09 PM, 02 May 2019
    тогда тоже не нашел как ограничить память мержей, но искал не очень долго
  • https://t.me/clickhouse_ru
    @monashev #99646 12:16 PM, 02 May 2019
    странно то, что есть у меня одна "неправильная" таблица с очень большими строками и index_granularity=128 . Так там нет проблем с мержами почему-то.

    У меня просто виртуалка с 2 гигами памяти. А настройки CХ дефолтные, и я пока не разобрался, как его настроить, чтобы он влезал в свободные полтора гига. Пока своп-файл добавил огромный, но мне это не нравится. Надо СХ настроить конечно.
  • https://t.me/clickhouse_ru
    @monashev ↶ Reply to #99643 #99647 12:17 PM, 02 May 2019
    оно так быстро проходит, что ничего.
  • https://t.me/clickhouse_ru
    @monashev #99648 12:25 PM, 02 May 2019
    в логе ошибок вот такое было, пока своп не добавил:
    0. /usr/bin/clickhouse-server(StackTrace::StackTrace()+0x16) [0x73fd046]
    1. /usr/bin/clickhouse-server(DB::Exception::Exception(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)+0x22) [0x377e942]
    2. /usr/bin/clickhouse-server(DB::throwFromErrno(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, int)+0x171) [0x73e4811]
    3. /usr/bin/clickhouse-server(Allocator<false>::realloc(void*, unsigned long, unsigned long, unsigned long)+0x2bb) [0x73e129b]
    4. /usr/bin/clickhouse-server() [0x6a27917]
    5. /usr/bin/clickhouse-server(DB::ColumnVector<unsigned char>::insertRangeFrom(DB::IColumn const&, unsigned long, unsigned long)+0xbc) [0x6a3efcc]
    6. /usr/bin/clickhouse-server(DB::ColumnArray::insertFrom(DB::IColumn const&, unsigned long)+0x36) [0x69e37b6]
    7. /usr/bin/clickhouse-server(DB::ReplacingSortedBlockInputStream::insertRow(std::vector<COWPtr<DB::IColumn>::mutable_ptr<DB::IColumn>, std::allocator<COWPtr<DB::IColumn>::mutable_ptr<DB::IColumn> > >&, unsigned long&)+0x1b9) [0x6d539a9]
    8. /usr/bin/clickhouse-server(DB::ReplacingSortedBlockInputStream::merge(std::vector<COWPtr<DB::IColumn>::mutable_ptr<DB::IColumn>, std::allocator<COWPtr<DB::IColumn>::mutable_ptr<DB::IColumn> > >&, std::priority_queue<DB::SortCursor, std::vector<DB::SortCursor, std::allocator<DB::SortCursor> >, std::less<DB::SortCursor> >&)+0x743) [0x6d54283]
    9. /usr/bin/clickhouse-server(DB::ReplacingSortedBlockInputStream::readImpl()+0xeb) [0x6d551eb]
    10. /usr/bin/clickhouse-server(DB::IBlockInputStream::read()+0x178) [0x677baf8]
    11. /usr/bin/clickhouse-server(DB::MergeTreeDataMergerMutator::mergePartsToTemporaryPart(DB::FutureMergedMutatedPart const&, DB::MergeListEntry&, long, DB::DiskSpaceMonitor::Reservation*, bool)+0x1f16) [0x6b6c0b6]
    12. /usr/bin/clickhouse-server(DB::StorageMergeTree::merge(bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)+0x3c5) [0x6ab67d5]
    13. /usr/bin/clickhouse-server(DB::StorageMergeTree::backgroundTask()+0x19f) [0x6ab8b8f]
    14. /usr/bin/clickhouse-server(DB::BackgroundProcessingPool::threadFunction()+0x44e) [0x6b1d7fe]
    15. /usr/bin/clickhouse-server() [0x6b1e279]
    16. /usr/bin/clickhouse-server(ThreadPoolImpl<std::thread>::worker(std::_List_iterator<std::thread>)+0x1ab) [0x7402fdb]
    17. /usr/bin/clickhouse-server() [0xb27522f]
    18. /lib/x86_64-linux-gnu/libpthread.so.0(+0x76db) [0x7fea58e836db]
    19. /lib/x86_64-linux-gnu/libc.so.6(clone+0x3f) [0x7fea5840288f]
    (version 19.5.3.8 (official build))
  • https://t.me/clickhouse_ru
    Ну два гига это ни о чем. Там кеш марков по дефолту 5 гб кушает, надо все резать. Сколько клолонок в таблицах? Вертикальные мержи активируются если 11 колонок.
  • https://t.me/clickhouse_ru
    @monashev #99650 12:33 PM, 02 May 2019
    Знаю, что мало памяти. Но пока так.
    посмотрел, во всех таблицах менее 11 колонок.
  • https://t.me/clickhouse_ru
    ну тогда можно попробовать vertical_merge_algorithm_min_columns_to_activate=5
  • https://t.me/clickhouse_ru
    @monashev #99652 12:34 PM, 02 May 2019
    а как они работают?
  • https://t.me/clickhouse_ru
    @monashev #99653 12:34 PM, 02 May 2019
    алгоритмы
  • https://t.me/clickhouse_ru
  • @xxEEvviiLL #99655 01:24 PM, 02 May 2019
    Всем привет!
  • @xxEEvviiLL #99656 01:26 PM, 02 May 2019
    У нас КХ после неверной конфигурации репликации переименовал все парты в ignored_bla_bla
  • @xxEEvviiLL #99657 01:26 PM, 02 May 2019
    как их правильно обратно приаттачить к таблицам?
  • https://t.me/clickhouse_ru
    а они с реплики уже не скачались? А то потом дубликаты будут
  • @xxEEvviiLL #99659 01:28 PM, 02 May 2019
    все ноды были неверно сконфигурированы
  • @xxEEvviiLL #99660 01:28 PM, 02 May 2019
    все реплики ушли в детач
  • https://t.me/clickhouse_ru
  • ОК, пасиб!
  • https://t.me/clickhouse_ru
    @monashev ↶ Reply to #99654 #99663 03:39 PM, 02 May 2019
    спасибо.
  • https://t.me/clickhouse_ru
    @monashev ↶ Reply to #99651 #99664 03:40 PM, 02 May 2019
    через ALTER TABLE это никак не поменять?
  • https://t.me/clickhouse_ru
    при чем тут table вообще? У вас что за проблема?
  • https://t.me/clickhouse_ru
    @monashev #99666 03:42 PM, 02 May 2019
    выше же обсуждали: проблема в малом количестве оперативки. КХ доступно всего полтора гига памяти.
  • https://t.me/clickhouse_ru
    в чем проблема с прописать в конфиге кх этот параметр?
  • https://t.me/clickhouse_ru
    @monashev #99668 03:43 PM, 02 May 2019
    А можно?
  • https://t.me/clickhouse_ru
    @monashev #99669 03:44 PM, 02 May 2019
    точно! прочитал коммент:
    /** Settings for the MergeTree family of engines.
    * Could be loaded from config or from a CREATE TABLE query (SETTINGS clause).
    */
  • https://t.me/clickhouse_ru
    <?xml version="1.0"?>
    <yandex>
    <merge_tree>
    <vertical_merge_algorithm_min_columns_to_activate>5</vertical_merge_algorithm_min_columns_to_activate>
    </merge_tree>
    </yandex>

    +рестарт
  • https://t.me/clickhouse_ru
    @monashev #99671 04:18 PM, 02 May 2019
    да, я разобрался, как опцию прописать.
  • https://t.me/clickhouse_ru
    @monashev #99672 04:20 PM, 02 May 2019
    а, кстати, без рестарта никак нельзя настройки менять? Типа, как в nginx-е reload есть: старые запросы продолжают обрабатываться, а новые уже к серверу с новым конфигом приходят, ибо только он их акцептит.
  • https://t.me/clickhouse_ru
    @webdevalex #99673 04:23 PM, 02 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    большинство применяются без рестарта, но не merge_tree
  • https://t.me/clickhouse_ru
    @monashev #99675 04:28 PM, 02 May 2019
    а как без рестарта? какой-то сигнал главному процессу послать надо, чтобы он конфиги перечитал?
  • https://t.me/clickhouse_ru
    @monashev #99676 04:29 PM, 02 May 2019
    а, или через SET ?
  • https://t.me/clickhouse_ru
    ничего не надо делать, сразу и само применяется.
  • https://t.me/clickhouse_ru
    @monashev #99678 04:30 PM, 02 May 2019
    круто!
  • @sklepych #99679 06:00 PM, 02 May 2019
    @alexanderzaitsev митап 4 числа в СФ территориально где будет?
  • https://t.me/clickhouse_ru
    Где-то между Сан-Франциско и Сан-Хосе. Мы пока выбираем место.
  • @sklepych #99681 06:23 PM, 02 May 2019
    ну как бы да, очевидно что в Бей Эрия. Просто тяжело РСВПшиться пока не понятно куда ехать =)
  • https://t.me/clickhouse_ru
    @alexanderzaitsev #99682 06:30 PM, 02 May 2019
    Ну там все близко. В ближайшие пару недель определимся с местом. Месяц впереди
  • @sklepych #99683 06:43 PM, 02 May 2019
    ну близко - не близко, каждодневный коммьют как то придется перекроить и пока не понятно как =)
  • https://t.me/clickhouse_ru
    @alexanderzaitsev #99684 07:14 PM, 02 May 2019
    Скорее всего в южной части, ближе к Сан-Хосе
  • @thxbutno #99685 08:59 PM, 02 May 2019
    Joined.
  • 03 May 2019 (60 messages)
  • https://t.me/clickhouse_ru
    @uzzable #99686 09:56 AM, 03 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @uzzable #99687 10:01 AM, 03 May 2019
    Привет. Может быть кто-то может подсказать про нюансы работы планировщика

    Делаю запрос
    SELECT
    country,
    count()
    FROM clicks
    GROUP BY country

    Получаю
    Code: 158. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Limit for rows to read exceeded: 540719824896 rows read (or to read), maximum: 30000000000.

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

    SELECT
    country,
    count()
    FROM clicks
    WHERE 1 = 0
    GROUP BY country

    Ok.

    0 rows in set. Elapsed: 0.523 sec.

    - результат тоже ок. Я ожидал, что планировщик такой запрос вообще не будет отдавать на выполнение но куда тогда делись 523мс?
  • https://t.me/clickhouse_ru
    @vlad10nik #99688 10:39 AM, 03 May 2019
    Добрый день!
    Подскажите, пожалуйста, какой драйвер Вы используете для работы с Clickhouse на python3? Или все используют http ?
  • https://t.me/clickhouse_ru
    @un000 #99689 10:40 AM, 03 May 2019
    а планируется ли возможность сжатия клиентских соединений?
  • https://t.me/clickhouse_ru
    @chertus ↶ Reply to #99687 #99690 10:44 AM, 03 May 2019
    если воспроизводится и можете сделать семпл не зависящий от данных (например, берущий данные из system.numbers), прицепите сюда https://github.com/yandex/ClickHouse/issues/4242
    Weird query optimization · Issue #4242 · yandex/ClickHouse

    Table example: DROP TABLE IF EXISTS constCondOptimization; CREATE TABLE constCondOptimization ( d Date DEFAULT today(), time DateTime DEFAULT now(), n Int64 ) ENGINE = MergeTree(d, (time, n), 1); I...

  • https://t.me/clickhouse_ru
    1. Оптимизации order by нет. Будут отсортированы все строки.

    2. Clicks это distributed таблица?
  • https://t.me/clickhouse_ru
    компресии сетевого трафмка? Она есть.
    Pooling? Chproxy
  • https://t.me/clickhouse_ru
    @uzzable #99693 10:50 AM, 03 May 2019
    > 2. Clicks это distributed таблица?

    Да
  • https://t.me/clickhouse_ru
    и датацентры разбросаны по планете?
  • https://t.me/clickhouse_ru
    @uzzable #99695 10:55 AM, 03 May 2019
    Нет, кластер не очень большой и в одном ДЦ
  • https://t.me/clickhouse_ru
    set send_logs_level='trace'
    будет видно что происходит
  • https://t.me/clickhouse_ru
    и версия кх?
  • https://t.me/clickhouse_ru
    @un000 ↶ Reply to #99692 #99698 11:08 AM, 03 May 2019
    например, чтобы снимать тонны логов с балансира, влияя меньше на сеть при экспорте в кликхаус
  • https://t.me/clickhouse_ru
    @uzzable ↶ Reply to #99697 #99699 11:09 AM, 03 May 2019
    18.14.19
  • https://t.me/clickhouse_ru
    Ничего не понял. Компресия трафика есть. Какой протокол/api используется?
  • https://t.me/clickhouse_ru
    @un000 #99701 11:11 AM, 03 May 2019
    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
    @un000 #99702 11:12 AM, 03 May 2019
    судя по-всему в либе по-умолчанию включен, извиняюсь за невнимательность
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #99702 #99703 11:15 AM, 03 May 2019
    Там косяк был, сжатие не по умолчанию, а вообще включенно было из за захардкоженого значения. Зато потестили что работает )
  • https://t.me/clickhouse_ru
    @un000 #99704 11:16 AM, 03 May 2019
    пока не тестили
  • https://t.me/clickhouse_ru
    @un000 #99705 11:16 AM, 03 May 2019
    ну в плане, нам бы сильнее сжатие :))
  • https://t.me/clickhouse_ru
    @un000 #99706 11:16 AM, 03 May 2019
    400 мегабит отъедать на экспорте очень жестко
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #99698 #99707 11:20 AM, 03 May 2019
    можете по UDP их гнать, напишите воркер который их будет принимать и в КХ пачками укладывать
  • https://t.me/clickhouse_ru
    @un000 #99708 11:21 AM, 03 May 2019
    мы сейчас планируем просто на отдельном интерфейсе экспорт настроить
  • @vstakhov #99709 01:00 PM, 03 May 2019
    `2019.05.03 12:16:41.717247 [ 24 ] {cfcefc07-82b5-418b-8f5e-e8e51719f702} <Error> executeQuery: Code: 241, e.displayText() = DB::Exception: Memory limit (for query) exceeded: would use 128.00 TiB (attemp
    t to allocate chunk of 140737488355328 bytes), maximum: 9.31 GiB (version 19.5.3.1) (from 127.0.0.1:58126) (in query: show tables), Stack trace:` - интересно, а что это такое?
  • https://t.me/clickhouse_ru
    @waidos #99710 01:23 PM, 03 May 2019
    Здраствуйте. Хотел уточнить по внешнему словарю Mysql. Реально ли сделать так чтобы он запрашивал из многомиллионой таблицы, только те которые изменились, а не все сразу? Я читал про invalidate_query, но выглядит так что он просто не будет обновлять записи в словаре, но запрос будет как всегда
  • Вроде бы была возможность проверки по updated полю
  • @antonio_antuan #99712 01:27 PM, 03 May 2019
    И выкачивания только изменившихся, соответственно
  • https://t.me/clickhouse_ru
    @waidos #99713 01:31 PM, 03 May 2019
    вот пример бы)
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #99713 #99714 01:32 PM, 03 May 2019
    update_field нужно указать в конфиге
  • @antonio_antuan #99715 01:35 PM, 03 May 2019
    Чёт доку щас порыл, не нашёл, кстати
  • https://t.me/clickhouse_ru
    @waidos #99716 01:41 PM, 03 May 2019
    а где конкретно?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @stovm #99718 01:49 PM, 03 May 2019
    Добрый день!
    А можно как-то принудить ClickHouse выполнить запрос на диске, а не в памяти?
  • https://t.me/clickhouse_ru
    @stufently #99719 01:50 PM, 03 May 2019
    А он и так на диске их выполняет)))
  • https://t.me/clickhouse_ru
    @stovm ↶ Reply to #99709 #99720 01:50 PM, 03 May 2019
    Это превышено потребление памяти по умолчанию. Смотрите настройку max_memory_usage
  • https://t.me/clickhouse_ru
    @stovm ↶ Reply to #99719 #99721 01:51 PM, 03 May 2019
    У меня запрос, который не помещается в памяти. Хочу сделать в external, но max_bytes_before_external_group_by не очень помогает =/
  • https://t.me/clickhouse_ru
    @stovm #99722 01:55 PM, 03 May 2019
    В запросе делается groupArray… и там в массиве для многих ключей группировки очень много значений 10000+. А потом я разворачиваю это в пары
    arrayJoin(arrayMap(i -> [stages[i], stages[(i + 1)]], arrayEnumerate(arraySlice(stages, 1, -1)))) AS pairs
    Всё это на 1.2 Млрдах строк.. Так что ClickHouse вываливается в OOM, но посчитать всё же хочется.
    Если принудительно ограничить цепочки stages определённой длиной, например, 1000, то более менее отрабатывает
  • @vstakhov ↶ Reply to #99720 #99723 01:56 PM, 03 May 2019
    ага, для show tables - никак без 128Tb памяти такой запрос, конечно, не выполнить
  • https://t.me/clickhouse_ru
    @waidos ↶ Reply to #99717 #99724 01:56 PM, 03 May 2019
    о, спасибо, попробую
  • https://t.me/clickhouse_ru
    @stovm ↶ Reply to #99723 #99725 01:56 PM, 03 May 2019
    in query: show tables. Не заметил, сорри
  • https://t.me/clickhouse_ru
    @stovm ↶ Reply to #99723 #99726 01:58 PM, 03 May 2019
    SELECT count() FROM system.tables
  • https://t.me/clickhouse_ru
    @stovm #99727 01:58 PM, 03 May 2019
    А тут что?
  • https://t.me/clickhouse_ru
    max_bytes_before_external_sort max_bytes_before_external_group_by
    https://clickhouse.yandex/docs/en/query_language/select/#order-by-clause
  • https://t.me/clickhouse_ru
    @stovm ↶ Reply to #99728 #99729 02:00 PM, 03 May 2019
    Спасибо. max_bytes_before_external_sort покручу
  • https://t.me/clickhouse_ru
    ну баг скорее всего в вычислялке
  • https://t.me/clickhouse_ru
    https://github.com/yandex/ClickHouse/issues/5105#issuecomment-486470614
    это из-за arrayEnumerate и скорее всего можно без него переписать
  • https://t.me/clickhouse_ru

    create table X(stages Array(String)) engine = Memory;
    insert into X select arrayMap(x->toString (x) , range(1000)) from numbers(1000);

    select arrayJoin(arrayMap(i -> [stages[i], stages[(i + 1)]], arrayEnumerate(arraySlice(stages, 1, -1)))) AS pairs
    from X limit 3 Format Null
    Peak memory usage (for query): 20.06 GiB.

    select arrayJoin(arrayMap( x, y -> [x,y], arrayPopBack(stages), arrayPopFront(stages))) as pairs
    from X limit 3 Format Null
    Peak memory usage (for query): 57.02 MiB.
  • https://t.me/clickhouse_ru
    @stovm ↶ Reply to #99732 #99733 02:22 PM, 03 May 2019
    Благодарю
  • https://t.me/clickhouse_ru
    @den_crane #99734 02:24 PM, 03 May 2019
    а да, еще

    Elapsed: 4.752 sec.
    vs
    Elapsed: 0.021 sec.
  • @870333588 #99735 02:41 PM, 03 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @shvetsme #99736 04:41 PM, 03 May 2019
    Joined.
  • @776312643 #99737 07:09 PM, 03 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @ployd #99738 07:15 PM, 03 May 2019
    По какому принципу происходит мёрж в AggregatingMergeTree для агрегатов, которые не -State? Просто берётся последняя строка? Любая?
  • https://t.me/clickhouse_ru
    @den_crane #99739 07:20 PM, 03 May 2019
    любая
  • https://t.me/clickhouse_ru
    @ployd #99740 07:21 PM, 03 May 2019
    Спасибо
  • @valeriysimonov #99741 07:34 PM, 03 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @ployd #99742 07:43 PM, 03 May 2019
    А где код этой логики посмотреть можно? MergeTree и ReplacingMergeTree нашёл, а Aggregating не вижу (
  • @vasya_p0pkin #99743 07:54 PM, 03 May 2019
    Подскажите, а chproxy нужен только когда несколько серверов, для балансировки нагрузки? А когда 1 сервер он ни к чему
  • https://t.me/clickhouse_ru
    @koch_kir ↶ Reply to #99743 #99744 07:59 PM, 03 May 2019
    вроде как для https
  • https://t.me/clickhouse_ru
    @edgar_lakshin #99745 08:16 PM, 03 May 2019
    Joined.
  • 04 May 2019 (16 messages)
  • https://t.me/clickhouse_ru
    @dfsko #99748 07:44 AM, 04 May 2019
    Подскажите можно ли изменить партиции в схеме таблицы? Убрать совсем например? Или только через создание новой и перезаливку данных?
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #99749 07:56 AM, 04 May 2019
    Что значит изменить партиции? Изменить данные или схему таблицы?
  • https://t.me/clickhouse_ru
    Нет партиций нет данных
  • https://t.me/clickhouse_ru
    @dfsko #99751 08:22 AM, 04 May 2019
    видимо я как-то не правильно выражаюсь
  • https://t.me/clickhouse_ru
    @dfsko #99752 08:23 AM, 04 May 2019
    в общем сейчас сделана разбивка по дням, надо это выпилить
  • https://t.me/clickhouse_ru
    @dfsko #99753 08:23 AM, 04 May 2019
    ибо слишком дофига партиций получается
  • https://t.me/clickhouse_ru
    @stufently #99754 08:23 AM, 04 May 2019
    Ну сделайте по месяцам и перелейте данные
  • https://t.me/clickhouse_ru
    @stufently #99755 08:24 AM, 04 May 2019
    Зачем было изначально менять дефолт то
  • https://t.me/clickhouse_ru
    @i_plc_rus #99756 01:32 PM, 04 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @igorBalashov #99757 02:21 PM, 04 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @igorBalashov #99758 02:22 PM, 04 May 2019
    Всем привет!
    Кто-то работал с https://github.com/the-tinderbox/ClickhouseBuilder ?
    никак не могу понять как сделать join без использования using, обычными условиями через ON
    Поделитесь опытом кто знает?
    GitHub - the-tinderbox/ClickhouseBuilder: Fluent queries builder for Clickhouse. Also has integration with Laravel / Lumen.

    Fluent queries builder for Clickhouse. Also has integration with Laravel / Lumen. - GitHub - the-tinderbox/ClickhouseBuilder: Fluent queries builder for Clickhouse. Also has integration with Larave...

  • https://t.me/clickhouse_ru
    @evsign ↶ Reply to #99758 #99759 04:17 PM, 04 May 2019
    Привет. Никак) Пока ещё не реализовали
  • https://t.me/clickhouse_ru
    @evsign #99760 04:18 PM, 04 May 2019
    Можно хаком попробовать через
    ->from(raw('table any left join table2....'))
  • https://t.me/clickhouse_ru
    @igorBalashov #99761 04:24 PM, 04 May 2019
    Понял, спасибо
  • https://t.me/clickhouse_ru
    @stovm #99762 05:57 PM, 04 May 2019
    Всем привет. А кто-нибудь уже успешно научился в задачи классификации/регрессии и прочие поверх ClickHouse ?
  • https://t.me/clickhouse_ru
    @nodermann #99763 09:39 PM, 04 May 2019
    Joined.
  • 05 May 2019 (18 messages)
  • Через R из КХ доступно почти все. Только ставьте серверный вариант чтоб рядом с КХ стоял. Работает отлично.
  • @285219763 #99766 10:18 AM, 05 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @den_crane тут спамец
  • https://t.me/clickhouse_ru
    @stovm ↶ Reply to #99764 #99769 11:38 AM, 05 May 2019
    спасибо. Попробую
  • https://t.me/clickhouse_ru
    @emakarov ↶ Reply to #99762 #99770 12:28 PM, 05 May 2019
    немного поэкспериментировали с моделями catboost в ch.
  • https://t.me/clickhouse_ru
    @f0rden #99771 04:44 PM, 05 May 2019
    кликхаус может вернуть сразу несколько значений?
    например, я хочу получить сколько всего метрик было отправлено в какой то день и сколько метрик определенного типа было отправлено в этот день
    пытаюсь решить через вложенный запрос, но кх ругается на то что вложенный запрос вернул больше 1 строки
  • https://t.me/clickhouse_ru
    @koch_kir ↶ Reply to #99771 #99772 04:45 PM, 05 May 2019
    Дай пример
  • https://t.me/clickhouse_ru
    @f0rden #99773 04:46 PM, 05 May 2019
    ну вот например
    синее - всего
    первый тип - черный
    второй тип - зеленый
    вот такую штуку я могу в 1 запрос получить?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #99773 #99774 04:47 PM, 05 May 2019
    Да, group by + with totals
  • https://t.me/clickhouse_ru
    @f0rden #99775 04:47 PM, 05 May 2019
    вот такая ошибка вылезает, если я пытаюсь впихнуть еще один запрос с группировкой по дням
  • https://t.me/clickhouse_ru
    Через countIf ещё можно, если group by не подходит
  • Неплохо бы запрос увидеть
  • https://t.me/clickhouse_ru
    @f0rden ↶ Reply to #99776 #99778 04:50 PM, 05 May 2019
    спасибо, подошло
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @tratatataass #99780 05:18 PM, 05 May 2019
    2019.05.05 18:16:25.127737 [ 36 ] {} <Error> BaseDaemon: (version 19.6.1.251) (from thread 30) Received signal Segmentation fault (11).
    2019.05.05 18:16:25.127755 [ 36 ] {} <Error> BaseDaemon: Address: 0x10
    2019.05.05 18:16:25.127761 [ 36 ] {} <Error> BaseDaemon: Access: read.
    2019.05.05 18:16:25.127767 [ 36 ] {} <Error> BaseDaemon: Address not mapped to object.
    ......
  • @652281223 #99781 08:00 PM, 05 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @f0rden ↶ Reply to #99781 #99783 08:01 PM, 05 May 2019
    баньте сразу, бот рекламный
  • https://t.me/clickhouse_ru
    > from thread 30
    в логе надо найти что делал тред [ 30 ]
  • 06 May 2019 (176 messages)
  • https://t.me/clickhouse_ru
    @MastakEnergy #99785 04:16 AM, 06 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @gun146 #99786 07:41 AM, 06 May 2019
    Joined.
  • @bmolodenkov #99787 07:44 AM, 06 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @Vasyaabr #99788 07:54 AM, 06 May 2019
    Привет! А строки с датами раньше начала Юникс-эпохи можно как-то в даты преобразовать?
    SELECT toDate('1964-11-25')
    ┌─toDate('1964-11-25')─┐
    │ 0000-00-00 │
    └──────────────────────┘
  • https://t.me/clickhouse_ru
    Нельзя. Можно лишь хранить даты либо год отдельно, либо в виде числа timestamp-а
  • https://t.me/clickhouse_ru
    @Vasyaabr #99790 07:56 AM, 06 May 2019
    Жаль. Спасибо!
  • @bmolodenkov #99791 08:02 AM, 06 May 2019
    Добрый день!
    Я хочу держать в Clickhouse события одним из атрибутов которых является tags множество String значений. Для этих целей пытаюсь использовать тип Array(String). Необходимо уметь делать запросы вида where has(tags, '<tag>'). Но в этом случае время выполнения запроса увеличивается в сотни раз. В другой DB подобные вещи делаются с помощь multivalue dimensions, и время запроса наоборот уменьшается.
    Подскажите, пожалуйста, можно ли средставими Clickhouse улучшить производительность запросов такого типа?
  • https://t.me/clickhouse_ru
    arrayJoin() используй, мне помогало
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #99791 #99793 08:06 AM, 06 May 2019
    Храните теги отдельно, а к событиям пишите хэш от них, сделайте ключ (хэш, время), сначала выбирайте хэш по тегам, а потом уже этот хэш в запрос докидывать
  • Дело в том что есть и другие атрибуты по которым нужно уметь фильтровать. И не во всех запросах нужно фильтровать по tags.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #99794 #99795 08:14 AM, 06 May 2019
    Тогда надо смтреть что и как у вас лежит и какое, обычно, распределение по данным
  • https://t.me/clickhouse_ru
    Покажите сколько в среднем значений в массиве строк. Может у вас там милионые массивы. И в логе КХ есть что-то типа плана выполнения - тоже полезно
  • максимум 60 значений, в среднем 30
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #99798 08:20 AM, 06 May 2019
    Тогда странно. Попробуйте ещё array Count - может в оптимизации has что-то сломано
  • спасибо, попробую
  • @PingviLin #99800 08:23 AM, 06 May 2019
    Joined.
  • событие выглядит так дата, id пользователя, домен, tags. Первичный ключ id пользователя. Tags содержит в среднем 30 строковых значений. Таких событий несколько милиардов. У каждого события есть несколько метрик, которые нужно складывать при группировке
  • https://t.me/clickhouse_ru
    @emakarov ↶ Reply to #99801 #99802 08:26 AM, 06 May 2019
    может теги по колонкам разбить? если их максимальное кол-во ограничено
  • различных значений тэгов может быть до 2000.
  • https://t.me/clickhouse_ru
    Запрос тормозит по тому, что ваш первичный ключ по id, и индекс тоже. А запрос - по полю не из индекса. Потому и тормозит
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #99797 #99805 08:27 AM, 06 May 2019
    У вас, скорее всего, получется что колонка весит достаточно много и поднимать ее с диска накладно

    select name, formatReadableSize(data) as size from (select name, sum(data_compressed_bytes) as data from system.columns where table = 'YOUR_TABLE_NAME' group by name order by data desc )
  • https://t.me/clickhouse_ru
    @emakarov ↶ Reply to #99803 #99806 08:29 AM, 06 May 2019
    ну, можно еще их сделать enum-ами, переведя в int
    но если различных значений 2000, а тегов максимум 60, то у вас максимум 60 колонок, в которые можно теги всегда все записать
    tag_1, tag_2 ... tag_60 ?
  • максимум 60 это не из-за ограничений, а только по статистике
  • Да, я понимаю. Будет ли эффективен ключ для запросов с where has, если в него добавить поле Array?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #99803 #99809 08:32 AM, 06 May 2019
    Кардинальность у них какая, какое количество уникальных значений к общему количеству строк?
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #99810 08:33 AM, 06 May 2019
    В свежих версиях добавили вторичные индексы, попробуйте добавить для поля tags
  • Не уверен что правильно понял вопрос
    В таблице несколько милиардов событий
    У каждого события несколько десятков тегов. Различных тегов по всей таблице пара тысяч.
  • спасибо, попробую
  • https://t.me/clickhouse_ru
    @ka_ktus #99813 08:39 AM, 06 May 2019
    Комбинации тегов можно попробовать свести к единому енуму.
  • кажется что количество таких комбинаций очень большое
  • https://t.me/clickhouse_ru
    @emakarov ↶ Reply to #99814 #99815 08:46 AM, 06 May 2019
    строка длиной 2000 из 0 и 1 ?
  • как в этом случае делать эффективно фильтрацию содержит событие определенные тэги или нет?
  • https://t.me/clickhouse_ru
    @emakarov #99817 08:50 AM, 06 May 2019
    а, вхождение нужно а не точное совпадение. тогда незнаю. возможно, нужно смотреть на архитектуру в целом сбора данных
  • https://t.me/clickhouse_ru
    @emakarov ↶ Reply to #99811 #99818 08:53 AM, 06 May 2019
    ну, вообще, если вы пишете У каждого события несколько десятков тегов. то сделайте с запасом 150 колонок...
    или есть вероятность что у вас могут прийти все 2000 тегов?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #99816 #99819 08:53 AM, 06 May 2019
    Для начала, сколько комбинаций тегов вы найдете по определенному условию?
  • https://t.me/clickhouse_ru
    @emakarov ↶ Reply to #99816 #99820 08:56 AM, 06 May 2019
    да, кстати, если именно проверка на определенные теги, то функции для строк есть, в тч по regexp
  • Такое крайне маловероятно. Наверное, можно было бы жестко ограничить, что у каждого события может быть не больше пары сотен тегов. Но с течением времени одни теги могут уходить из системы, и появляться новые
  • Не совсем понял, я же ищу не комбинации тегов, а события содержащие определенные теги.
    (кажется это был коммент к предложению если бы нужно было искать не вхождению определенных тегов, а по полному соотвествию)
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #99822 #99823 09:05 AM, 06 May 2019
    ОК. У вас есть 1кк событий, у каждого есть теги. Допустим уникальных комбинаций ([A, B], [A, C]...) ~ 1000. Вы ищите все события с тегом A, сколько из этой 100 комбинаций вы найдете? Например 20, значит вам нужно вытащить события в котоорых есть полное соответствие этих комбинаций. Теги (Array(String)) штука тяжелая и уникальные комбинации можно хранить в виде хэша, это может сильно помочь, но, нужно будет делать 2-а запроса, один для поиска комбинаций, второй для выборки событий и вот тут уже нужно смотреть насколько будет эффективен первый и, возможно, искать это даже не в КХ, а в КХ только фильтровать по хэшам
  • спасибо, я понял вашу идею, попробую испытать на своих данных.
  • @bmolodenkov #99825 09:12 AM, 06 May 2019
    всем спасибо за идеи, вынужден отойти от компа
  • https://t.me/clickhouse_ru
    @ployd #99826 09:45 AM, 06 May 2019
    Ещё можно матвью сделать с ключом по tag.
  • https://t.me/clickhouse_ru
    @DorianPeregrim #99827 09:47 AM, 06 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @ployd #99828 09:49 AM, 06 May 2019
    С скип индексами можно попробовать покрутиться.
    Например, minmax индекс на min из значений в tags или на максимум. Но сейчас вроде только один индекс может использоваться
  • https://t.me/clickhouse_ru
    @nodermann #99829 09:52 AM, 06 May 2019
    create table user_likes (
    user_id UInt32,
    item_id UInt32,
    liked UInt8,
    year UInt16,
    likeDate Date
    )
    engine MergeTree(likeDate, (year, likeDate), 8192)

    INSERT INTO user_likes (user_id,item_id,liked) VALUES
    (1,1,1),(1,2,1),(1,3,1),(1,4,0),(1,5,0),
    (2,1,1),(2,2,1),(2,3,1),(2,4,1),(2,5,1),
    (3,1,1),(3,2,0),(3,3,0),(3,4,0),(3,5,0),
    (4,1,1),(4,2,1),(4,3,1),(4,4,0),(4,5,0),
    (5,1,0),(5,2,0),(5,3,0),(5,4,1),(5,5,1),
    (6,1,1),(6,2,1),(6,3,1),(6,5,0);

    помогите составить запрос, чтобы получить как в таблице, это что-то типа коллаборативной фильтрации user-based
  • @DmitryMozohin #99830 10:05 AM, 06 May 2019
    Joined.
  • @DmitryMozohin #99831 10:15 AM, 06 May 2019
    Коллеги, добрый день!
    Подскажите, как именно работает параметр max_rows_to_group_by.

    Пытаюсь с его помощью + group_by_overflow_mode='any' ограничить количество данных в выдаче.

    В доке про max_rows_to_group_by написано: "Максимальное количество уникальных ключей, получаемых в процессе агрегации. Позволяет ограничить потребление оперативки при агрегации." и выглядит так, что указав значение 100, то и в результате я буду получать примерно столько записей, но их приходит несколько тысяч.
  • https://t.me/clickhouse_ru
    @vladimir_kuznetsov #99832 11:15 AM, 06 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @Valenvaryon #99833 11:33 AM, 06 May 2019
    SELECT last_access
    FROM ****
    WHERE ****
    ORDER BY last_access ASC

    ┌─────────last_access─┐
    │ 2018-01-18 14:46:16 │
    │ 2018-12-12 02:03:46 │
    │ 2019-04-10 13:37:40 │
    │ 2019-04-21 15:42:16 │
    │ 1970-01-01 06:28:16 │
    └─────────────────────┘
  • https://t.me/clickhouse_ru
    @Valenvaryon #99834 11:34 AM, 06 May 2019
    что с сортировкой такое?
  • @571805847 #99835 11:54 AM, 06 May 2019
    Доброго дня, коллеги.
    Подскажите, кто сталкивался с финальной версией оптимизации таблицы, как можно этот процесс разделить на несколько потоков или как-то иным способом увеличить скорость полной оптимизации.
  • https://t.me/clickhouse_ru
    Можно делать OPTIMIZE FINAL по партициям. Суммарно это дольше. но позволяет "размазать" нагрузку
  • @571805847 #99837 11:57 AM, 06 May 2019
    Отличная идея, спасибо. Я сам до этого как-то не додумался 😉
  • https://t.me/clickhouse_ru
    Надо смотреть что там в toInt32 скорее всего так 2106 год показывается.
  • https://t.me/clickhouse_ru
    Увеличивается в сотни раз по сравнению с чем? Возможно where и prewhere надо вручную выбрать.
  • По сравнению с запросом без has
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #99840 #99841 12:19 PM, 06 May 2019
    А что в клиенте Elapsed: xxx. Processed xxx в первом и во втором случае, можно всю строчку целиком
  • https://t.me/clickhouse_ru
    а если вручную все предикаты кроме has в prewhere а has в where?
  • Про prewhere не знал. Спасибо. Попробую
  • Посмотрю. Сейчас не помню
  • https://t.me/clickhouse_ru
    @matthiasBT #99845 12:24 PM, 06 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    ┌─────────last_access─┬─toInt64(last_access)─┐
    │ 2018-01-18 14:46:16 │ 1516275976 │
    │ 2018-12-12 02:03:46 │ 1544569426 │
    │ 2019-04-10 13:37:40 │ 1554892660 │
    │ 2019-04-21 15:42:16 │ 1555850536 │
    │ 1970-01-01 06:28:16 │ 4294956496 │
    └─────────────────────┴──────────────────────┘
  • https://t.me/clickhouse_ru
    @dbalashov #99847 12:32 PM, 06 May 2019
    бабка переполнилась
  • https://t.me/clickhouse_ru
    @Valenvaryon #99848 12:32 PM, 06 May 2019
    бабка?)
  • https://t.me/clickhouse_ru
    @Valenvaryon #99849 12:33 PM, 06 May 2019
    т.е. это реально 10799 секунд, где-то с отрицательными числами что-то не так
  • https://t.me/clickhouse_ru
    @Valenvaryon #99851 12:39 PM, 06 May 2019
    toDateTime(1): 1970-01-01 03:00:01
    toDateTime(0): 0000-00-00 00:00:00
    toDateTime(-1): 1970-01-01 09:28:15
    toDateTime(-10799): 1970-01-01 06:28:17
    toDateTime(-10800): 1970-01-01 06:28:16
    toDateTime(-100000): 2106-02-06 05:41:36
  • https://t.me/clickhouse_ru
    @Valenvaryon #99852 12:40 PM, 06 May 2019
    магия таймзон🤔
  • https://t.me/clickhouse_ru
    @boombick #99853 12:42 PM, 06 May 2019
    а в чем магия-то?
  • https://t.me/clickhouse_ru
    @Valenvaryon #99854 12:43 PM, 06 May 2019
    в непоследовательности
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @Valenvaryon #99856 12:44 PM, 06 May 2019
    спасибо)
  • https://t.me/clickhouse_ru
    я лицензированный телепат 8-го уровня, но не осилил
    >что-то типа коллаборативной фильтрации user-based
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #99857 #99858 12:52 PM, 06 May 2019
    видимо берется первый юзер, от него берется вектор [1,1,1,0,0], дальше берутся такие же вектора от других юзеров, и считается три свертки.
  • к сожалению prewhere никак не повлиял
  • 20 rows in set. Elapsed: 0.514 sec. Processed 31.65 million rows, 2.34 GB (61.61 million rows/s., 4.56 GB/s.)

    20 rows in set. Elapsed: 248.682 sec. Processed 31.65 million rows, 82.15 GB (127.25 thousand rows/s., 330.34 MB/s.)
  • @210324702 #99861 01:07 PM, 06 May 2019
    Программисты на GO, подскажите пжл, если получать данные из КХ уже в json (select .... format JSON)
    то как обойтись без row.scan и сразу получить json в виде одной строки из запроса, что бы его дальше отправить на клиент?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #99861 #99862 01:09 PM, 06 May 2019
    http.Client.Get и пайпнуть response.Body через io,Copy, но с таким же успехом можно в КХ сходить
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #99860 #99863 01:10 PM, 06 May 2019
    У вас колонка с тегами весит неприлично много, с этим придется что-то делать
  • https://t.me/clickhouse_ru
    20 rows in set. Elapsed: 0.514 sec. Processed 31.65 million rows, 2.34 GB (61.61 million rows/s., 4.56 GB/s.)
    20 rows in set. Elapsed: 248.682 sec. Processed 31.65 million rows, 82.15 GB (127.25 thousand rows/s., 330.34 MB/s.)

    странно, надо смотреть план.

    А если where tag вынести во внешний запрос что тогда?
    select * from(
    select tag ..... from ..... prewhere ....
    ) where tag has

    т.е. есть такая штука порядок вычисления предикатов, и это моя постоянная боль с ораклом и mysql, как добится сдвигания тяжелых предикатов в конец.
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #99860 #99865 01:16 PM, 06 May 2019
    Можете попробовать интовый массив UInt16, будет побыстрее. Ну и сделать словарь, например, чтобы по инту вытягивать название tags.
  • https://t.me/clickhouse_ru
    Коллеги, очень нужен ваш совет по этому вопросу.
  • https://t.me/clickhouse_ru
    @fatayri #99867 01:20 PM, 06 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    set max_rows_to_group_by = 10000
    select number from numbers(1000000) group by number format Null;
    65536 rows in set.

    вы по-моему пытаетесь лечить головную боль шуруповертом.

    set max_rows_to_group_by = 100000
    select number from numbers(1000000) group by number format Null;
    131072 rows in set.
  • и где тут связь между 10000 и 65536?
  • https://t.me/clickhouse_ru
    вам точно это надо?

    set max_rows_to_group_by = 100
    set max_block_size=100
    200 rows in set.
  • Есть жирный запрос с множественными группировками, который съедает пару десятков ГБ оперативы. Чтобы избежать сильной нагрузки на КХ выбор пал на солюшен с max_rows_to_group_by + group_by_overflow_mode='any', однако количество возвращаемых строк никак не коррелирует со значением max_rows_to_group_by, хотя хотелось бы

    Если есть другие способы решить эту задачи, то велкам
  • https://t.me/clickhouse_ru
    результат неверный при group_by_overflow_mode='any', какая разница сколько там строк возвращается.

    https://clickhouse.yandex/docs/ru/query_language/select/#select-group-by-in-external-memory
  • т.е. бага на стороне КХ, раз результат неверный?
  • https://t.me/clickhouse_ru
    при чем тут бага, у вас в результате запроса должно вернуться один набор, а вы стреляете в ногу c group_by_overflow_mode и говорите верни что-нибудь, любые 100, ну возвращается вам любых 65тыс, потому что проверка делается на другом уровне пайплайна, какая разница-то, 100 и 65536.
  • Тогда вопрос, почему оба эти параметра в доке стоят рядом и логично их использовать вместе. А тут про разные уровни выясняется🤔
  • https://t.me/clickhouse_ru
    мммм. КХ обрабатывает запрос блоками, max_block_size задает размер блока, ну проверяется max_rows_to_group_by где-то наверху ну какая разница-то? Может вы семплинг хотите из говна и палок сделать? Так он есть уже встроенный.
  • https://t.me/clickhouse_ru
    Спасибо что попробовали)
  • https://t.me/clickhouse_ru
    @nodermann #99878 02:21 PM, 06 May 2019
    Попробую на stackoverflow
  • Разницы бы не было, если бы все работало как заявлено в доке :)
  • https://t.me/clickhouse_ru
    ок исправлю, напишу что max_rows_to_group_by это target
  • https://t.me/clickhouse_ru
    @TonyWerner #99881 02:28 PM, 06 May 2019
    Всем привет. ClickHouse умеет преобразовывать такой формат даты: 2019-05-06T10:17:45.749Z
    в обычный DateTime?
  • https://t.me/clickhouse_ru
    @TonyWerner #99882 02:28 PM, 06 May 2019
    если нет, то как сделать чтобы смог?)
  • https://t.me/clickhouse_ru
    при вставке или при селекте? date_time_input_format=best_effort / parseDateTimeBestEffort
  • https://t.me/clickhouse_ru
    @TonyWerner #99884 02:31 PM, 06 May 2019
    это в материализед вью, когда данные селектятся из таблицы кафки
  • https://t.me/clickhouse_ru
    parseDateTimeBestEffort
  • https://t.me/clickhouse_ru
    спасибо
  • https://t.me/clickhouse_ru
    @DorianPeregrim #99887 02:49 PM, 06 May 2019
    Господа, доброго дня. Подскажите, пожалуйста, ответ возможно на очевидный или уже ни раз разжеванный вопрос. Только изучаю CH и поглядываю на Kafka. Может ли случиться так, что при чтении напрямую в CH из Kafka средствами materialized view, первый будет не успевать разгребать очередь из второго. И если да, то как это решается не выходя за пределы этой связки?
  • https://t.me/clickhouse_ru
    взять 2,3,8 сервера КХ и натравить на один топик кафки.
  • https://t.me/clickhouse_ru
    @vmoshikov #99889 02:56 PM, 06 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    А несколько materialized view создать на одну и ту же очередь в одну и ту же таблицу нельзя или это абсурдно?
  • https://t.me/clickhouse_ru
    узкое место это не materialized view , узким местом станет вставка в таблицу (мержи (дисковый i/o)). Т.е. берите топовые NVME, делайте из них raid0 и кафка станет узким местом.
  • https://t.me/clickhouse_ru
    Вас понял, спасибо большое!
  • https://t.me/clickhouse_ru
    @vmoshikov #99893 03:05 PM, 06 May 2019
    Привет сообщество, все же немного не хватает мне документации и окружения, что бы понять одну ситуацию.
    1) Использую API метрики для получения хитов (Logs API), хранятся в табличке hits_all
    2) Есть табличка page_all и в ней урлы и собственно нужные мне колонки

    Вопрос
    Как правильней организовать логику получения кол-ва хитов в hits_all (за месяц/неделю) по урлу из page_all (используя like(URL, concat(URL, %)) при условии что в page_all на запрос может быть ~2к урлов и каждый нужно проверить в hits_all
    Как можно оптимизировать эту ситуацию?

    Что есть сейчас
    Вполне рабочее решение, но выполняется ~20-30минут на доастаточно мощной ВМ. Как и описал в в поросе. Фильтруется по параметрам page_all, берется каждый урл и считается кол-во совпадений в hits_all.
  • https://t.me/clickhouse_ru
    @den_crane #99894 03:13 PM, 06 May 2019
    сделать нормальный числовой(хеш) ключ от урла, положить его в hits_all, page_all сделать словарем, и посчитать одним запросом по hits_all, беря нужные мне колонки из словаря.
  • https://t.me/clickhouse_ru
    @vmoshikov #99895 03:22 PM, 06 May 2019
    Мне ключ добавлять при заполнении таблицы из metrics api?
  • https://t.me/clickhouse_ru
    @den_crane #99896 03:26 PM, 06 May 2019
    если возможно, тут как бы непонятно для чего еще используется hits_all, поэтому трудно сказать. Может вообще все возможно посчитать априори на этапе ETL и положить готовые результы в ексель.
  • https://t.me/clickhouse_ru
    @ployd #99897 03:28 PM, 06 May 2019
    А почему в документации нет про авторизацию через X-ClickHouse-User ничего? Это устарело?
  • https://t.me/clickhouse_ru
    Вообще из hits_all строится несколько отчетов. Количество просмотров (включая частичные совпадения), источники,
  • https://t.me/clickhouse_ru
    @vmoshikov #99899 03:33 PM, 06 May 2019
    Ведь в числовом хэше строка example.com/path и example.com/path/?ref и sub.example.com/path/ - будут сильно разными, а еще бывают варианты yandex.ru/turbo/url=example.com/path и это ведь жесть. в цифрах будет хаос.
  • https://t.me/clickhouse_ru
    ну естественно нужна очистка
  • https://t.me/clickhouse_ru
    @vmoshikov #99901 03:35 PM, 06 May 2019
    А очистка лишит возможность разделить эти источники
  • https://t.me/clickhouse_ru
    источник очистить в отдельное поле, и возможно тоже хешем, тоже в отдельный словарь
  • https://t.me/clickhouse_ru
    А как думаешь, если я буду с помощью либы https://github.com/yndx-metrika/logs_api_integration получать логи метрики (посуточно) и после получения перебирать лог, разбирать/считать урлы и складывать в одельную табличку (Merge) паралельно очищая лог метрики
    GitHub - yndx-metrika/logs_api_integration: Script for integration with Logs API

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

  • https://t.me/clickhouse_ru
    @vmoshikov #99904 03:52 PM, 06 May 2019
    Тем самым я получу максимум 365 строк с урлами в год и по ней уже словарем буду проходить, суммировать - здесь есть профит?
  • https://t.me/clickhouse_ru
    @vmoshikov #99905 04:00 PM, 06 May 2019
    28 275 981 - до группировки
    1 382 108 - после группировки (это 5% от сырых данных)

    а если это делать еще и ежедневно, то объем сократится с ~1 000 000 до ~50 000 строк
  • https://t.me/clickhouse_ru
    @vmoshikov #99906 04:01 PM, 06 May 2019
    Правильно мыслю?
  • https://t.me/clickhouse_ru
    @vstepankov #99907 04:03 PM, 06 May 2019
    вам здесь наверно стоит начать с разбивки урла на разные части, домен в один столбец, путь в другой, параметры в десятый, потом смотреть гранулярность, и что-то загонять в словари.
    @den_crane наверно, это вам предложил

    Алексей в одном из докладов тоже об этом говорил, что урл стоит разбивать
  • https://t.me/clickhouse_ru
    @vmoshikov #99908 04:12 PM, 06 May 2019
    Понял, спасибо. Пойду разбивать урл и переписывать все с Log в Merge
  • https://t.me/clickhouse_ru
    @kshvakov #99909 05:52 PM, 06 May 2019
    ClickHouse на море :)
  • https://t.me/clickhouse_ru
    Доклад будет? )
  • https://t.me/clickhouse_ru
    @kshvakov #99911 05:56 PM, 06 May 2019
    5 будет, но завтра
  • https://t.me/clickhouse_ru
    @dbalashov #99912 06:13 PM, 06 May 2019
    блин надо было ехать на кипр на эту конфу
  • @vasya_p0pkin #99913 06:31 PM, 06 May 2019
    Расскажите в 2 словах зачем использовать материализованную вьюху и в чем ее преимущество перед таблицей
  • https://t.me/clickhouse_ru
    Чтобы данные перекидывать из одной таблицы в другую, если у тебя есть кафка, то без вьюхи не Обойдешься
    И сама вьюха данные не хранит, а лишь перекидывает
  • https://t.me/clickhouse_ru
    чтобы предвычислить данные (уменьшив кол-во строк) и положить их в другом порядке

    https://gist.github.com/den-crane/6eff375752a236a456e1b3dc2ca7db62
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #99913 #99916 06:44 PM, 06 May 2019
    все вышеперечисленное, а еще как insert trigger для аггрегации
  • Так я же могу и в таблицу предагрегировать?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #99917 #99918 06:45 PM, 06 May 2019
    с mat view оно "само" будет аггрегироваться при вставке в src таблицу
  • https://t.me/clickhouse_ru
    можете, а теперь представьте что вам предагрегировать в 8 разных агрегатов, сгруппировав по разным дименшинам и еще и факты оставить в изначльном виде.
  • @vasya_p0pkin #99920 06:48 PM, 06 May 2019
    Так вьюха занимает место как таблица? Изменяет агрегированные данные при вставке в таблицу?
  • https://t.me/clickhouse_ru
    ну у меня аргегаты занимают примерно в тысячу раз / 10 тыс. меньше места чем оригинальная таблица, а источнике типа миллиард строк в день, 400 полей, в агрегате 10 полей, миллион строк, естественно что запросы к агрегатам работают в сотни раз быстрее.
  • @vasya_p0pkin #99922 06:52 PM, 06 May 2019
    Так если таблица большая и много строк вставляется, то сколько ж ресурсов должно тратить для агрегации на лету?
  • https://t.me/clickhouse_ru
    @f0rden ↶ Reply to #99921 #99923 06:53 PM, 06 May 2019
    миллиард в день..
    это что за проект такой обслуживается?
  • https://t.me/clickhouse_ru
    @DorianPeregrim #99924 06:54 PM, 06 May 2019
    Яндекс.Метрика поди :)
  • https://t.me/clickhouse_ru
    это копейки для кликстримов, начальный уровень
  • https://t.me/clickhouse_ru
    @f0rden ↶ Reply to #99925 #99926 06:55 PM, 06 May 2019
    ну это понятно
    но что за проект?
    яндекс метрика?
  • https://t.me/clickhouse_ru
    не знаю что такое метрика, обычная контора с оптимизацией трафика в кали (если очень хочется найти название, то есть ссылка из моего гитхаба)
  • @vasya_p0pkin #99928 07:03 PM, 06 May 2019
    У вьюхи получается можно поменять индексированный столбец?
  • https://t.me/clickhouse_ru
    и партиционирование и сортировку, впрочем сортировка задается исходя из агрегации (обычно)
  • @vasya_p0pkin #99930 07:12 PM, 06 May 2019
    И все же чем будет отличаться создание таблицы в AggregatingMergeTree от view? кроме того что необходимо хранить изначальную таблицу фактов?
  • https://t.me/clickhouse_ru
    3 rows in set. Elapsed: 3.265 sec. Processed 300.00 million rows
    VS
    3 rows in set. Elapsed: 0.024 sec.

    https://gist.github.com/den-crane/32cac4f069f4227b35ab86553bbc649b
  • @vasya_p0pkin #99932 07:23 PM, 06 May 2019
    Вы там сравниваете с MergeTree, а я вопрос задал про AggregatingMergeTree . Или на этой схеме нельзя создавать таблицы?
  • https://t.me/clickhouse_ru
    вы явно что-то не то понимаете, MV хранит данные в обычной MergeTree(AggregatingMergeTree) таблице (ее можно создать явно/вручную). Просто MV это хреновина(триггер на инсерт), которая немного уменьшает кол-во кода который надо написать.
  • https://t.me/clickhouse_ru
    @den_crane #99934 07:28 PM, 06 May 2019
    т.е. я могу взять и написать в дополнение к тому гисту

    CREATE MATERIALIZED VIEW mvz1 ENGINE = AggregatingMergeTree order by (d) settings index_granularity = 8
    as select d, uniqState(u) as us from z group by d;

    и получу данные в новом агрегате (по дням)
  • Вы сейчас описали обычную вьюху например SQL Server. А как я понимаю в ch она реально существует, как и таблица, только обновляется при вставке в таблицу.
  • https://t.me/clickhouse_ru
    MV это такой триггер на инсерт (с неудачным названием), который чем-то издалека похож на materialed view из другх субд (оракл).
  • https://t.me/clickhouse_ru
    @dtroyan ↶ Reply to #99935 #99937 07:30 PM, 06 May 2019
    Почти во всех СУБД этого класса существуют и вьюхи, и матвьюхи. Первая — это шорткат для селекта, вторая — это физическая таблица, которая обновляется по триггеру или по расписанию
  • @vasya_p0pkin #99938 07:33 PM, 06 May 2019
    Спасибо за пояснения!
  • @vasya_p0pkin #99939 07:33 PM, 06 May 2019
    Просто я использую sql server и там нет такого понятия
  • https://t.me/clickhouse_ru
    @den_crane #99940 07:35 PM, 06 May 2019
    гугль говорит что они в msql называются indexed-views
  • @sklepych #99941 07:36 PM, 06 May 2019
    да, именно так
  • @vasya_p0pkin #99942 07:40 PM, 06 May 2019
    Ну скорее всего, они больше всего на это похожи
  • Кажется вам должен помочь фичер под названием roaring bitmap, появившийся в 19.4. Нужно перемаповать эти строки в числа, а потом на них сделать roaring bitmap. После чего всякие вхождения элемента или пересечения /объединения должны сделаться очень дешёвыми операциями.
  • @mfilimonov #99944 07:47 PM, 06 May 2019
    Added bitmap function feature with roaring bitmap by andyyzh · Pull Request #4207 · yandex/ClickHouse

    I hereby agree to the terms of the CLA available at: https://yandex.ru/legal/cla/?lang=en Category (leave one): New Feature Short description: Added some Bitmap functions with Roaring bitmaps. R...

  • @mfilimonov #99945 07:53 PM, 06 May 2019
    Сначала маппинг строк в числа (лучше autoincrement с 1). Потом из таблицы числовых тэгов делаете bitmapBuild. Потом можно сделать битмап с искомыми элементами и считать размер пересечения. Довольно замысловато, и фичер пока сильно экспериментальный. Но по идее как раз ваш кейс хорошо в него должен укладываться.
  • Подскажите тогда. У меня есть таблица в которой есть несколько столбцов. Поиск происходит по различным столбцам, и для повышения производительности мне приходится делать несколько одинаковых таблиц с разными индексами. Что не очень удобно. Может есть смысл не заливать данные в несколько таблиц, а сделать одну таблицу и к ней создать несколько materialized view? Какой подход будет правильнее?
  • Матвью в такую же таблицу с другим индексом - нормальное решение. Так делают, все должно работать.
  • https://t.me/clickhouse_ru
    в принципе особой разницы нет (я пользуюсь и тем и этим подходом одновременно), но MV позволит сделать один insert.
  • А то когда матвью заносит в себя данные (временные интервалы) где-то настраиваются или оно само работает как триггер в момент появления новых данных?
  • То есть нельзя будет дропнуть секцию?
  • https://t.me/clickhouse_ru
    таблица получает буфер с новыми строками в момент инсерта, и пушит этот буфер во все свои MV.
    Таблица может вообще не хранить данные (engine=Null). Все независимо, можете дропать, удалять, апдейтить по отдельности, таблица и таблицы хранящие данные MV никак не связаны. MV никогда не читает из таблицы (только в момент populate)
  • @vasya_p0pkin #99952 08:03 PM, 06 May 2019
    OK. Спасибо, думаю так должна как минимум снизиться нагрузка на сеть, ведь не придется передавать дубликаты данных
  • https://t.me/clickhouse_ru
    создавайте таблицу явно (более того можете взять уже существующую) и создавайте MV to...
    https://gist.github.com/den-crane/f7382cd4f1f859ff6ac46afe7dc9925a
    так проще изменять вью (через drop /create)
  • Если честно не уловил идею. Чем этот пример отличается от простого создание матвьюхи над таблицей? Зачем таблица temp и store?
  • https://t.me/clickhouse_ru
    это пример более широкий, идея вот в чем

    create table mv_z_store(a date, max_b AggregateFunction(MAX,Int64)) ENGINE = AggregatingMergeTree Partition by toYYYYMM(a) order by a;
    create MATERIALIZED VIEW mv_z to mv_z_store AS SELECT a, maxState(b) AS max_b FROM some_fact_table GROUP BY a;
  • https://t.me/clickhouse_ru
    @den_crane #99956 08:19 PM, 06 May 2019
    это позволяет обращаться к таблице которая хранит данные по нормальному имени mv_z_store, вместо .inner.mv_z
  • https://t.me/clickhouse_ru
    @den_crane #99957 08:19 PM, 06 May 2019
    плюс это позволяет проще делать alter
  • https://t.me/clickhouse_ru
    @den_crane #99958 08:20 PM, 06 May 2019
    например добавлять поля
  • https://t.me/clickhouse_ru
    @den_crane #99959 08:20 PM, 06 May 2019
    делаем drop mv_z, alter mv_z_store , create mv_z с новым запросом
  • @vasya_p0pkin #99960 08:33 PM, 06 May 2019
    Видно я еще не столкнулся с ограничениями матвьюх, чтобы уловить преимущества
  • @vasya_p0pkin #99961 08:35 PM, 06 May 2019
    Create матвью to таблица создает вьюху и заполняет такими же данными эту таблицу, я правильно понимаю?
  • 07 May 2019 (125 messages)
  • @285219763 #99962 12:14 AM, 07 May 2019
    Доброе утро. Как кликхаус работает в докере и можно ли его использовать в продакшине? У нас девопсы предпочитают разворачивать новый сервер с докером и запускать там что угодно. Данные монтируются или на внешний раздел или в системе. Подходит официальный образ для прода и как часто он обновляется?
  • @694198893 #99964 01:34 AM, 07 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    Порядка двух лет в докере. Только что обновлялся, базы с реплицируемыми таблицами, простоя не было.
  • @285219763 #99966 05:30 AM, 07 May 2019
    Официальный образ? Спасибо за ответ :) Внушает надежду.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #99962 #99967 07:41 AM, 07 May 2019
    У нас есть такой сервер. Смысла в докере нет никакого, больше неудобств, но оно работает.
  • У нас работает на проде в докере. Образ официальный. С нового года где-то. Полёт нормальный.
  • https://t.me/clickhouse_ru
    @241186216 #99969 07:48 AM, 07 May 2019
    Подскажите. Можно ли сделать хэш партиции? Например, чтобы было 32 партиции
  • https://t.me/clickhouse_ru
    @241186216 #99970 07:50 AM, 07 May 2019
    В оракле есть такая штука. Может и в КХ есть
  • @285219763 #99971 07:52 AM, 07 May 2019
    Спасибо всем. Буду пробовать.
  • https://t.me/clickhouse_ru
    @241186216 #99972 08:04 AM, 07 May 2019
    Смысл такой , что призодят запросы со стоковыми айди пользователя в условии where. Таблица большая. Надо партиции сделать , но что бы в одну партиции было много пользователей
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #99969 #99973 08:11 AM, 07 May 2019
    Можно, в PARTITION BY пишите условие

    пример
    CREATE TABLE test_part_hash
    (
    `date` Date,
    `user_id` Int32
    )
    ENGINE = MergeTree
    PARTITION BY (user_id % 32, date)
  • https://t.me/clickhouse_ru
    Спасибо. А как проверить , что он подхватывает нужную партиции в запросе ? В оракле я бы план запроса построил , а в КХ как ?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #99974 #99975 08:21 AM, 07 May 2019
    insert into test_part_hash select today(), number from numbers(2000);
    SET send_logs_level = 'trace'
    SELECT count() FROM test_part_hash WHERE user_id = 8

    Будет видно в Selected parts
  • https://t.me/clickhouse_ru
    Спасибо
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #99976 #99978 08:25 AM, 07 May 2019
    Пример не точный, нужно не user_id в PARTITION BY, a hash_id от user_id и его же в запрос SELECT * FROM t WHERE user_id = 42 AND hash_id = user_id %32
  • https://t.me/clickhouse_ru
    @kshvakov #99979 08:27 AM, 07 May 2019
    Вообще интересный результат получается :)
  • https://t.me/clickhouse_ru
    @241186216 #99980 08:30 AM, 07 May 2019
    Он и так походе, что читает только когда одну .
  • https://t.me/clickhouse_ru
    @241186216 #99981 08:32 AM, 07 May 2019
    В твоём первом варианте. У меня старый Кх. В нем нет этой настройки с логом, но в логе видно, что при условии where = нету union
  • https://t.me/clickhouse_ru
    @241186216 #99982 08:34 AM, 07 May 2019
    А если сделать , например +0 = значение , то union по всем партам есть. Колонка +0 = значение.
  • https://t.me/clickhouse_ru
    @241186216 #99983 08:34 AM, 07 May 2019
    Круть ! Спасибо
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #99980 #99984 08:35 AM, 07 May 2019
    Вот так правильно

    CREATE TABLE test_part_hash
    (
    date Date
    , user_id Int32
    , hash_id Int32 MATERIALIZED (user_id % 32)
    )
    ENGINE = MergeTree
    PARTITION BY (hash_id, date)
    ORDER BY (hash_id)

    insert into test_part_hash select today(), number from numbers(1000000);

    SELECT count() FROM test_part_hash WHERE user_id = 8 AND hash_id = 8 % 32
  • https://t.me/clickhouse_ru
    У меня первый вариант тоже работает !
  • @Ivanuska #99986 08:37 AM, 07 May 2019
    Добрый день, после некорректного выключения базы получил такую ошибку:
    2019.05.07 11:30:37.660141 [ 1 ] {} <Error> Application: DB::Exception: Cannot create table from metadata file /var/lib/clickhouse/metadata/ххх/table_yyy.sql, error: Coordination::Exception: All connection tries failed while connecting to ZooKeeper. Addresses: xxx.xxx.xxx.xxx:2181, xxx.xxx.xxx.xxx:2181, xxx.xxx.xxx.xxx:2181

    - sudo -u flags/force_restore_data
    - zk_client: create /clickhouse/tables/table_yyy/replicas/my_host/flags/force_restore_data test
    - rm metadata/ххх/table_yyy.sql + rmr /clickhouse/tables/table_yyy/replicas/my_host
    не помогло. Первые два совсем не помогли, последний пропустил table_yyy и перешел к следующей таблице по списку и выдал такую же ошибку (и так для всех таблиц)
  • @Ivanuska #99987 08:38 AM, 07 May 2019
    Пока не понимаю почему база не запускается и что она хочет сделать
  • https://t.me/clickhouse_ru
    Зукипер поднят и доступен для кх?
  • @Ivanuska #99989 08:40 AM, 07 May 2019
    с zookeper-м ничего не делали, другие хосты с ClickHouse работают корректно
  • https://t.me/clickhouse_ru
    А зачем вы это делаете если у вас в логе н написано что не доступен ни один зукипер
  • @Ivanuska ↶ Reply to #99990 #99991 08:43 AM, 07 May 2019
    ̶о̶н̶ ̶д̶о̶с̶т̶у̶п̶е̶н̶,̶ ̶с̶е̶й̶ч̶а̶с̶ ̶п̶о̶п̶р̶о̶б̶о̶в̶а̶л̶ ̶с̶ ̶с̶е̶р̶в̶е̶р̶а̶ ̶п̶о̶с̶т̶у̶ч̶а̶т̶ь̶с̶я̶ ̶к̶ ̶н̶е̶м̶у̶

    ping до сервера с zookeper - ок
    telnet на порт - fail
    telnet на порт c другого хоста- ok
  • https://t.me/clickhouse_ru
    @stufently #99992 08:46 AM, 07 May 2019
    А раньше?
  • https://t.me/clickhouse_ru
    @stufently #99993 08:46 AM, 07 May 2019
    Ну вот и ответ
  • @dosereda #99994 08:47 AM, 07 May 2019
    Доброе утро всем любителям шарад и загадок 🙂
    Памагите с запросом, ибо не хватает познаний во встроенных агрегирующих функциях 🙁

    дано: 3 таблицы:
    1) traffic - траффик с фаервола с разобранными по типам пакетами и количеством отправленных/полученных Bytes + ip-адреса
    2) dns - сопоставление ip-адреса и dns-имени
    3) windows_security - логи windows с логинами пользователей и dns-именами компьютеров
    само-собой в каждой таблице имеется EventTime

    нужно: отобразить таблицу с логинами пользователей, что запускали torrent-ы в выбранный промежуток времени ( конечная цель - grafana )

    предполагаемый порядок действий следующий:
    1) выбрать логины пользователей за указаный промежуток времени ( поля Login + ComputerName )
    2) добавление в выборку к ComputerName информации о ip-адресе компьютера поле IP ( из таблицы dns )
    3) добавление к выборке по полю IP из таблицы traffic информации о наличии трафика по протоколу torrent
    но, данный порядок затрагивает лишь доменные windows компьютеры , а по факту может оказаться, что torrent запускались на условно серверах, что не прописаны в dns.
    поэтому, есть второй порядок действий, который частично уже работает:
    1) выбрать информацию о наличии torrent траффика c полями ip-адрес MegaBytesSent MegaBytesReceived MegaBytes
    2) добавление в выборку к ip-адресу информации ComputerName ( из таблицы dns )
    3) выбрать логины пользователей за указаный промежуток времени что пользовали torrent

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

    SELECT
    IP,
    ComputerName,
    MegaBytesSent,
    MegaBytesReceived,
    MegaBytes,
    TargetUserName
    FROM
    (
    SELECT
    IP,
    ComputerName,
    MegaBytesSent,
    MegaBytesReceived,
    MegaBytes
    FROM
    (
    SELECT
    IP,
    (sum(Bytes) / 1000000) AS MegaBytes,
    (sum(BytesSent) / 1000000) AS MegaBytesSent,
    (sum(BytesReceived) / 1000000) AS MegaBytesReceived,
    FROM
    traffic
    WHERE
    EventDate BETWEEN today() - 2 AND today()
    AND Application = 'torrent'
    AND IP LIKE '192.%'
    GROUP BY
    IP
    HAVING
    MegaBytes > 10
    ) ANY
    LEFT JOIN (
    SELECT
    IP,
    ComputerName
    FROM
    dns
    ) USING (IP)
    ) ANY
    INNER JOIN (
    SELECT
    EventTime,
    ComputerName,
    TargetUserName
    FROM
    windows_security
    WHERE
    EventDate BETWEEN today() - 2 AND today()
    AND EventID = 4624
    AND (
    LogonType = '7'
    OR LogonType = '2'
    )
    ) USING ComputerName

    Какими еще функциями следует воспользоваться, чтобы сделать такую хитрую сортировку?
    Если кто-то сталкивался с аналогичными задачами, то, можете просто накидать полезных для меня функций.
  • @Ivanuska ↶ Reply to #99993 #99995 08:48 AM, 07 May 2019
    черт, искал не то и не там. Просто так совпало и искал ошибку в своих действиях. Благодарю!
  • https://t.me/clickhouse_ru
    @sirnie_sosisochki #99996 09:14 AM, 07 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @TonyWerner #99997 09:19 AM, 07 May 2019
    Всем привет. Можно ли в таблице сделать поле с именем @timestamp?
  • https://t.me/clickhouse_ru
    @TonyWerner #99998 09:19 AM, 07 May 2019
    и как потом с ним работать?
  • https://t.me/clickhouse_ru
    @241186216 #99999 09:22 AM, 07 May 2019
    А что за логика с materialuzed view? Я создал materialized view as select count() из таблицы . И там строки добавляются, а я бы ожидал ,что при каждой вставке в мастер таблицу идёт сначала truncate materialized view, а потом инскрт
  • https://t.me/clickhouse_ru
    @proller ↶ Reply to #99997 #100000 09:22 AM, 07 May 2019
    CREATE TABLE reserved_word_table (index UInt8) ENGINE = MergeTree ORDER BY index;
  • https://t.me/clickhouse_ru
    @proller #100001 09:23 AM, 07 May 2019
    ой, скушалось
  • https://t.me/clickhouse_ru
    @proller #100002 09:23 AM, 07 May 2019
    yandex/ClickHouse

    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
    спасибо
  • https://t.me/clickhouse_ru
    @MaximStanovov #100004 09:33 AM, 07 May 2019
    Привет, подскажите как быть с now()
    1. Добавил в табличку колонку с текущим временем:
    ALTER TABLE table_name
    ADD COLUMN update_time DateTime DEFAULT now();
    2. Сделал инсерт нескольких строк
    3. Селекчу - для крайней записи всегда отрабатывает now() и возвращает текущее время вместо времени инсерта
    Это ожидаемое поведение? Можно как-то сделать, чтобы now() отрабатывал только при инсерте и сохранял это значение?
  • https://t.me/clickhouse_ru
    У MV правильная логика, у вас нет
  • https://t.me/clickhouse_ru
    @241186216 #100006 09:36 AM, 07 May 2019
    Может быть. Но эта логика не как в оракле. В оракле или рефреш по времени ( с выполнением dekete or truncate ) или при вставке, но тогда уже есть ограничения на текст mv
  • https://t.me/clickhouse_ru
    @vstepankov #100007 09:41 AM, 07 May 2019
    Вы сделали MV с обычным движком, он и будет на каждую вставку в таблицу - добавлять записи.
    Вам нужно было посмотреть в сторону https://clickhouse.yandex/docs/ru/operations/table_engines/aggregatingmergetree/, а не просто MergeTree.

    Кликхаус это вообще не оракл, никто и не обещал, что он будет на него похож.
    [тут место для цитаты о том, что КХ вообще делался не для вас, а для яндекс-метрики, но я что-то найти не могу]
  • @viphunter_real #100008 10:00 AM, 07 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    текущее для записей которые уже были в таблице до alter . Нужен optimize чтобы перемржить старое и записать на диск колонку.
  • https://t.me/clickhouse_ru
    https://gist.github.com/den-crane/6eff375752a236a456e1b3dc2ca7db62

    Вам нужен aggregating и countstate
    Или summingmergetree и sum(1)
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Спасибо. Понял
  • https://t.me/clickhouse_ru
    @TonyWerner #100013 11:14 AM, 07 May 2019
    В документации написано:
    Полученные сообщения из кафки группируются в блоки размера max_insert_block_size. Если блок не удалось сформировать за stream_flush_interval_ms миллисекунд, то данные будут сброшены в таблицу независимо от полноты блока.
    Но я вижу что данные вбрасываются блоками по 65536 штук и собираются явно больше 7.5 секунд. То есть она использует какие то другие пораметры?
  • https://t.me/clickhouse_ru
    @TonyWerner #100014 11:14 AM, 07 May 2019
    max_insert_block_size Значение по умолчанию: 1,048,576
  • https://t.me/clickhouse_ru
    @TonyWerner #100015 11:14 AM, 07 May 2019
    stream_flush_interval_ms по умолчанию 7500
  • https://t.me/clickhouse_ru
    @TonyWerner #100016 11:15 AM, 07 May 2019
    никто не знает про это?
  • https://t.me/clickhouse_ru
    Зависит от версии кх и в кафке многое сломано после 19.6.
    кафка движок читает по 65536 (kafka_max_block_size) и ждет пока все не прочитает, а затем уже пишет по 1млн или 7.5с.
    Это все уже переделано и в след. релизе будет.

    https://github.com/yandex/ClickHouse/issues/4890
    А потом опять будет переделано https://github.com/yandex/ClickHouse/issues/5100
  • https://t.me/clickhouse_ru
    Спасибо
  • https://t.me/clickhouse_ru
    @TonyWerner #100019 11:34 AM, 07 May 2019
    А то уже думал что опять все сломал)
  • https://t.me/clickhouse_ru
    По хорошему надо все это собрать в одну таблицу еще до КХ (на этапе ETL).
    А так, надо сначало сджойнить, а потом уже считать sum (группировать). Для джойна по несовпадающим промежуткам времени можно округлять (например до часа) или использовать ASOF JOIN.
  • https://t.me/clickhouse_ru
    @katofon #100021 12:29 PM, 07 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @katofon #100022 12:38 PM, 07 May 2019
    Всем привет. Подскажите пожалуйста, или дайте ссылку где почитать (в официальной документации не нашла). http://joxi.ru/bmobVZ4c3QdJer интересует, что за параметры, обведенные красными рамками 1 и 2? Заранее благодарю
  • https://t.me/clickhouse_ru
    Это старый синтаксис создания таблиц
    Вот тут https://clickhouse.yandex/docs/en/operations/table_engines/replication/#creating-replicated-tables есть пример (Example in deprecated syntax)
  • https://t.me/clickhouse_ru
    @flamefork #100024 12:44 PM, 07 May 2019
    Соответственно, в новом стиле ваш пример соответствует
    PARTITION BY toYYYYMM(date)
    ORDER BY (asc, date)
  • https://t.me/clickhouse_ru
    @katofon #100025 12:44 PM, 07 May 2019
    ага, большое спасибо!
  • https://t.me/clickhouse_ru
    @felixandrer #100026 02:40 PM, 07 May 2019
    Joined.
  • @269550333 #100027 02:51 PM, 07 May 2019
    Привет. Подскажите , что делать если висит drop table уже 6 дней и не убивается kill query. Можно ли пофиксить не рестартуя КХ?
  • @odainic #100028 02:51 PM, 07 May 2019
    Всем привет. А есть какие-нибудь встроенные простые функции типа melt / dcast?
    По сути перевод из длинного в широкий и обратно.
  • https://t.me/clickhouse_ru
    а есть другие запросы которые тоже к этой таблице висят, select/alter ? таблица distributed?
  • https://t.me/clickhouse_ru
    select groupArray(a.k), groupArray(a.v) from (
    select a.k, a.v from (select ['a','b','c'] `a.k`, [1,2,3] `a.v`) Array Join a)
  • Нету. Это engine = Kafka
  • https://t.me/clickhouse_ru
    @Syakovlev292 #100032 03:19 PM, 07 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    это баг, какая версия КХ? Скорее всего придется выключить КХ и удалить .sql файл вручную
  • Спс
  • https://t.me/clickhouse_ru
    @Syakovlev292 #100035 03:28 PM, 07 May 2019
    Добрый день. после обновления с 18.16 на 19.5 Кликхаус просто сам завершает работу при выполнение запросов. oom киллер не приходил, в dmesg сообщения о core-dump не вижу. выглядит это примерно так

    ↗️ Progress: 86.03 million rows, 682.50 MB (36.59 million rows/s., 290.32 MB/s.) ████████████████████████████████████▎ 32%[chbi1] 2019.05.07 13:56:23.638435 [ 203 ] <Debug> MemoryTracker: Current memory usage: 1.00 GiB.
    ↗️ Progress: 99.25 million rows, 1.20 GB (25.09 million rows/s., 302.91 MB/s.) ███████████████████████████████▋ 27%Cannot load data for command line suggestions: Code: 32, e.displayText() = DB::Exception: Attempt to read after eof: while receiving packet from localhost:9000, 127.0.0.1 (version 19.5.3.1)

    Exception on client:
    Code: 32. DB::Exception: Attempt to read after eof: while receiving packet from localhost:9000, 127.0.0.1

    Connecting to database etl_city_import at localhost:9000 as user default.
    Code: 210. DB::NetException: Connection refused (localhost:9000, 127.0.0.1)

    в perf top смотрел, ну кроме AGregate еще
    6.16% clickhouse [.] 0x0000000005cbb1a3
    5.04% clickhouse [.] 0x0000000005ccdfcb

    откатывать на 18.16 уже не хочется, что можно предпринять ?
  • https://t.me/clickhouse_ru
    @nonamehobo #100036 03:35 PM, 07 May 2019
    DB::Exception: Attempt to read after eof:

    Очень часто встречается ошибка у нас, кстати, до сих пор не можем понять её причины, иногда кластер тупо перестаёт принимать любые запросы от клиентов (и на чтение и на вставку) с клиентскими ошибками в логах (eof, client closed connection и так далее), даже коннекты не принимает, пока все клиенты не перезапустишь. Одна особенность - это происходит после одновременно большого кол-ва запросов 10-20 со стороны chproxy (в конфиге ограничение на 30 concurrent queries). Да и в истории чата частенько эта ошибка проскакивает. Такие дела.
  • https://t.me/clickhouse_ru
    @Syakovlev292 #100037 03:37 PM, 07 May 2019
    да. все верною. используется chproxy, и да, это возникает когда много запрос паралельно. Все верно. при этом с этой же базой и с этими же запросами на 18.16 проблем не было )
  • https://t.me/clickhouse_ru
    запускать клиент как clickhouse-client -A
    https://github.com/yandex/ClickHouse/issues/5066
  • https://t.me/clickhouse_ru
    смотреть в лог, если там клеточки - #####
  • @vialorn #100040 03:51 PM, 07 May 2019
    Листаю issues на гитхабе, но их дофига, и некоторые читаю не по своему вопросу, для кругозора. Может, здесь кто подскажет быстрее. Это нормально, что условие из запроса на view, на столбец, который является ключом для исходной таблицы, не оптимизируется?

    Table metrics_raw
    (
    itemid Int64,
    clock DateTime,
    value Decimal64(4)
    )
    ENGINE = ReplicatedMergeTree( ... )
    PARTITION BY toYYYYMMDD(clock)
    ORDER BY (itemid, clock);

    Table metrics_hour_state
    (
    itemid Int64,
    clock DateTime,
    value AggregateFunction(avg, Decimal64(4))
    )
    ENGINE = ReplicatedAggregatingMergeTree( ... )
    PARTITION BY toYYYYMMDD(clock)
    ORDER BY (itemid, clock);

    MV aggregator_hour
    TO metrics_hour_state AS
    SELECT
    itemid,
    toStartOfHour(clock) clock,
    avgState(value) value
    FROM metrics_raw
    GROUP BY itemid, clock;

    View metrics_hour
    AS
    SELECT itemid, clock, avgMerge(value) value
    FROM metrics_hour_state
    GROUP BY itemid, clock;

    Запрос
    select itemid, clock, value from metrics_hour where itemid = 54321
    Приводит к полному сканированию metrics_hour_state.
  • https://t.me/clickhouse_ru
    у нас это на 18.12.17, проскакивает 1-2 раза в месяц, никакой логики найти не можем, количество запросов при нормальной работе может и 30 быть одновременно
  • https://t.me/clickhouse_ru
  • уточню вопрос:
    а) ожидается ли появление оптимизации
    б) есть ли более изящное решение здесь и сейчас, чем переписывать запрос без обращения к view, как

    SELECT itemid, clock, avgMerge(value) value
    FROM metrics_hour_state
    WHERE itemid = 54321
    GROUP BY itemid, clock

    разница по потреблению памяти между ними огромная, 1536 МБ против 32 МБ (примерно)
  • @t1g0rz #100044 04:19 PM, 07 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    А что это значит?
  • @andreysukharev #100046 04:22 PM, 07 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    если сервер упал - в логе будет
    <Error> BaseDaemon: ########################################
    <Error> BaseDaemon: (from thread 1) Received signal Segmentation fault (11).
    и полезный трейс
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @dtroyan #100049 04:37 PM, 07 May 2019
    Будет где-нибудь запись митапа в Лимассоле?
  • https://t.me/clickhouse_ru
    @dtroyan #100050 04:37 PM, 07 May 2019
    Или слайды
  • @vasya_p0pkin #100051 04:42 PM, 07 May 2019
    Подскажите, если я создаю матвью с агрегатом countState(), то почему при запросе из нее, чтобы получить значение count необходимо использовать countMerge и снова группировать по остальным полям. Как то это не логично
  • https://t.me/clickhouse_ru
    Видео записывается. Будет ли доступно скажу чуть позже.
  • https://t.me/clickhouse_ru
    Спасибо! Было бы хорошо, если бы было
  • https://t.me/clickhouse_ru
    если вам нужен count без группировки вы можете не группировать и в матвью не группировать

    countMerge необходим потому что в таблице лежат состояния, их надо финализировать.
    Представьте вы бы использовали summingmergetree и считали бы sum(1), каждый инстерт бы вставлял строку с числом = кол-ву строк которое вставилось с этим инсертом, затем summingmergetree постепенно бы мержил и суммировал, до в любой момент времени оно еще не смерженно в одну запись, поэтому вам бы приходилось считать sum() -- финализировать.

    Если вам нужен select count where =1, можно взять эту цифру из system.parts
  • Мне нужен count c группировкой, но я его уже указал при создании матвьюхи, и мне не понятно зачем делать его еще раз, получается же масло масленное.
  • https://t.me/clickhouse_ru
    вот например я сделал матвью group by user, date, site
    это дает мне возможность выбрать например group by date
    ну и вообще так больше похоже на стандартный sql
  • @IlyaVrum #100057 04:57 PM, 07 May 2019
    Joined.
  • @vasya_p0pkin #100058 05:01 PM, 07 May 2019
    Вот я и не понимая, если я уже сделал group by user, date, site, то зачем мне делать эту же группировку чтобы получить типа уже сгруппированные данные
  • https://t.me/clickhouse_ru
    так бог велел.
  • Давно бы так, а то все со своими объяснениями 👌🏻
  • https://t.me/clickhouse_ru
    вы осознаете как только напишете больше одного вью и больше 3х запросов. Ваш вопрос из серии почему вода мокрая, он слишком сложен.
  • То есть я все правильно делаю? Просто я думал, вдруг где-то косячу.
  • https://t.me/clickhouse_ru
    Будет
  • https://t.me/clickhouse_ru
    да, все правильно
  • https://t.me/clickhouse_ru
    Да. действительно. не было в syslog sigfault. в лог даже не полез грепать
    2019.05.07 15:23:28.384770 [ 214 ] {} <Error> BaseDaemon: (version 19.5.3.1) (from thread 205) Received signal Segmentation fault (11).
    2019.05.07 15:23:28.384783 [ 214 ] {} <Error> BaseDaemon: Address: NULL pointer.
    2019.05.07 15:23:28.384790 [ 214 ] {} <Error> BaseDaemon: Access: read.
    2019.05.07 15:23:28.384796 [ 214 ] {} <Error> BaseDaemon: Address not mapped to object.

    включать коры и присылать ?
  • https://t.me/clickhouse_ru
    что делал from thread 205, обратным поиском [ 205 ]
  • https://t.me/clickhouse_ru
    там после этих строк тред [ 214 ] написал свой стектрейс, для начала его посмотреть бы
  • https://t.me/clickhouse_ru
    ./clickhouse-server.log:2019.05.07 15:17:47.741120 [ 205 ] {} <Trace> Aggregator: Merging aggregated data
    ./clickhouse-server.log:2019.05.07 15:19:47.574810 [ 205 ] {} <Trace> Aggregator: Aggregating
    ./clickhouse-server.log:2019.05.07 15:19:47.574948 [ 205 ] {} <Trace> Aggregator: Aggregation method: without_key
    ./clickhouse-server.log:2019.05.07 15:19:47.574968 [ 205 ] {} <Trace> Aggregator: Aggregated. 0 to 1 rows (from 0.000 MiB) in 0.000 sec. (0.000 rows/sec., 0.000 MiB/sec.)
    ./clickhouse-server.log:2019.05.07 15:19:47.574974 [ 205 ] {} <Trace> Aggregator: Merging aggregated data
    ./clickhouse-server.log:2019.05.07 15:21:38.747664 [ 205 ] {} <Trace> Aggregator: Aggregation method: key16
  • https://t.me/clickhouse_ru
    ./clickhouse-server.log:2019.05.07 15:23:28.384728 [ 214 ] {} <Error> BaseDaemon: ########################################
    ./clickhouse-server.log:2019.05.07 15:23:28.384770 [ 214 ] {} <Error> BaseDaemon: (version 19.5.3.1) (from thread 205) Received signal Segmentation fault (11).
    ./clickhouse-server.log:2019.05.07 15:23:28.384783 [ 214 ] {} <Error> BaseDaemon: Address: NULL pointer.
    ./clickhouse-server.log:2019.05.07 15:23:28.384790 [ 214 ] {} <Error> BaseDaemon: Access: read.
    ./clickhouse-server.log:2019.05.07 15:23:28.384796 [ 214 ] {} <Error> BaseDaemon: Address not mapped to object.
    ./clickhouse-server.log:2019.05.07 15:23:28.453060 [ 214 ] {} <Error> BaseDaemon: 0. /usr/bin/clickhouse-server(tcache_bin_flush_small+0x26a) [0x6c4d39a]
    ./clickhouse-server.log:2019.05.07 15:23:28.453087 [ 214 ] {} <Error> BaseDaemon: 1. /usr/bin/clickhouse-server(tcache_event_hard+0x5a) [0x6c4df6a]
    ./clickhouse-server.log:2019.05.07 15:23:28.453098 [ 214 ] {} <Error> BaseDaemon: 2. /usr/bin/clickhouse-server(__libc_free+0x25b) [0x6c2bf8b]
    ./clickhouse-server.log:2019.05.07 15:23:28.453111 [ 214 ] {} <Error> BaseDaemon: 3. /usr/bin/clickhouse-server(DB::ColumnsBlockInputStream::readImpl()+0xb83) [0x5ec5273]
    ./clickhouse-server.log:2019.05.07 15:23:28.453119 [ 214 ] {} <Error> BaseDaemon: 4. /usr/bin/clickhouse-server(DB::IBlockInputStream::read()+0x258) [0x5f66b08]
    ./clickhouse-server.log:2019.05.07 15:23:28.453126 [ 214 ] {} <Error> BaseDaemon: 5. /usr/bin/clickhouse-server(DB::ExpressionBlockInputStream::readImpl()+0x2d) [0x65b6b5d]
    ./clickhouse-server.log:2019.05.07 15:23:28.453133 [ 214 ] {} <Error> BaseDaemon: 6. /usr/bin/clickhouse-server(DB::IBlockInputStream::read()+0x258) [0x5f66b08]
    ./clickhouse-server.log:2019.05.07 15:23:28.453140 [ 214 ] {} <Error> BaseDaemon: 7. /usr/bin/clickhouse-server(DB::DistinctBlockInputStream::readImpl()+0x91) [0x65df041]
    ./clickhouse-server.log:2019.05.07 15:23:28.453155 [ 214 ] {} <Error> BaseDaemon: 8. /usr/bin/clickhouse-server(DB::IBlockInputStream::read()+0x258) [0x5f66b08]
    ./clickhouse-server.log:2019.05.07 15:23:28.453162 [ 214 ] {} <Error> BaseDaemon: 9. /usr/bin/clickhouse-server(DB::ExpressionBlockInputStream::readImpl()+0x2d) [0x65b6b5d]
    ./clickhouse-server.log:2019.05.07 15:23:28.453169 [ 214 ] {} <Error> BaseDaemon: 10. /usr/bin/clickhouse-server(DB::IBlockInputStream::read()+0x258) [0x5f66b08]
    ./clickhouse-server.log:2019.05.07 15:23:28.453176 [ 214 ] {} <Error> BaseDaemon: 11. /usr/bin/clickhouse-server(DB::LimitBlockInputStream::readImpl()+0x384) [0x5f68f84]
    ./clickhouse-server.log:2019.05.07 15:23:28.453183 [ 214 ] {} <Error> BaseDaemon: 12. /usr/bin/clickhouse-server(DB::IBlockInputStream::read()+0x258) [0x5f66b08]
    ./clickhouse-server.log:2019.05.07 15:23:28.453190 [ 214 ] {} <Error> BaseDaemon: 13. /usr/bin/clickhouse-server(DB::ConvertingBlockInputStream::readImpl()+0x3d) [0x65ad0dd]
    ./clickhouse-server.log:2019.05.07 15:23:28.453197 [ 214 ] {} <Error> BaseDaemon: 14. /usr/bin/clickhouse-server(DB::IBlockInputStream::read()+0x258) [0x5f66b08]
    ./clickhouse-server.log:2019.05.07 15:23:28.453204 [ 214 ] {} <Error> BaseDaemon: 15. /usr/bin/clickhouse-server(DB::FilterBlockInputStream::readImpl()+0xaa) [0x65c25aa]
    ./clickhouse-server.log:2019.05.07 15:23:28.453210 [ 214 ] {} <Error> BaseDaemon: 16. /usr/bin/clickhouse-server(DB::IBlockInputStream::read()+0x258) [0x5f66b08]
    ./clickhouse-server.log:2019.05.07 15:23:28.453217 [ 214 ] {} <Error> BaseDaemon: 17. /usr/bin/clickhouse-server(DB::ExpressionBlockInputStream::readImpl()+0x2d) [0x65b6b5d]
    ./clickhouse-server.log:2019.05.07 15:23:28.453224 [ 214 ] {} <Error> BaseDaemon: 18. /usr/bin/clickhouse-server(DB::IBlockInputStream::read()+0x258) [0x5f66b08]
    ./clickhouse-server.log:2019.05.07 15:23:28.453235 [ 214 ] {} <Error> BaseDaemon: 19. /usr/bin/clickhouse-server(DB::DistinctBlockInputStream::readImpl()+0x91) [0x65df041]
    ./clickhouse-server.log:2019.05.07 15:23:28.453243 [ 214 ] {} <Error> BaseDaemon: 20. /usr/bin/clickhouse-server(DB::IBlockInputStream::read()+0x258) [0x5f66b08]
  • https://t.me/clickhouse_ru
    ./clickhouse-server.log:2019.05.07 15:23:28.453266 [ 214 ] {} <Error> BaseDaemon: 21. /usr/bin/clickhouse-server(DB::ParallelInputsProcessor<DB::UnionBlockInputStream::Handler>::loop(unsigned long)+0xfb) [0x604bc5b]
    ./clickhouse-server.log:2019.05.07 15:23:28.453278 [ 214 ] {} <Error> BaseDaemon: 22. /usr/bin/clickhouse-server(DB::ParallelInputsProcessor<DB::UnionBlockInputStream::Handler>::thread(std::shared_ptr<DB::ThreadGroupStatus>, unsigned long)+0x1f4) [0x604c2f4]
    ./clickhouse-server.log:2019.05.07 15:23:28.453302 [ 214 ] {} <Error> BaseDaemon: 23. /usr/bin/clickhouse-server(ThreadFromGlobalPool::ThreadFromGlobalPool<DB::ParallelInputsProcessor<DB::UnionBlockInputStream::Handler>::process()::{lambda()#1}>(DB::ParallelInputsProcessor<DB::UnionBlockInputStream::Handler>::process()::{lambda()#1}&&)::{lambda()#1}::operator()() const+0x67) [0x604cbc7]
    ./clickhouse-server.log:2019.05.07 15:23:28.453312 [ 214 ] {} <Error> BaseDaemon: 24. /usr/bin/clickhouse-server(ThreadPoolImpl<std::thread>::worker(std::_List_iterator<std::thread>)+0x1cc) [0x6b8b2ac]
    ./clickhouse-server.log:2019.05.07 15:23:28.453319 [ 214 ] {} <Error> BaseDaemon: 25. /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xbd57f) [0x7f2fcda0557f]
    ./clickhouse-server.log:2019.05.07 15:23:28.453325 [ 214 ] {} <Error> BaseDaemon: 26. /lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba) [0x7f2fce0e76ba]
    ./clickhouse-server.log:2019.05.07 15:23:28.453338 [ 214 ] {} <Error> BaseDaemon: ########################################
    ./clickhouse-server.log:2019.05.07 15:23:28.453349 [ 214 ] {} <Error> BaseDaemon: (version 19.5.3.1) (from thread 206) Received signal Segmentation fault (11).
    ./clickhouse-server.log:2019.05.07 15:23:28.453354 [ 214 ] {} <Error> BaseDaemon: Address: NULL pointer.
    ./clickhouse-server.log:2019.05.07 15:23:28.453360 [ 214 ] {} <Error> BaseDaemon: Access: read.
    ./clickhouse-server.log:2019.05.07 15:23:28.453366 [ 214 ] {} <Error> BaseDaemon: Unknown si_code.
    ./clickhouse-server.log:2019.05.07 15:23:28.516622 [ 214 ] {} <Error> BaseDaemon: 0. /usr/bin/clickhouse-server(DB::TablesBlockInputStream::readImpl()+0x3f3) [0x5ee28a3]
    ./clickhouse-server.log:2019.05.07 15:23:28.516671 [ 214 ] {} <Error> BaseDaemon: 1. /usr/bin/clickhouse-server(DB::IBlockInputStream::read()+0x258) [0x5f66b08]
    ./clickhouse-server.log:2019.05.07 15:23:28.516681 [ 214 ] {} <Error> BaseDaemon: 2. /usr/bin/clickhouse-server(DB::ExpressionBlockInputStream::readImpl()+0x2d) [0x65b6b5d]
    ./clickhouse-server.log:2019.05.07 15:23:28.516688 [ 214 ] {} <Error> BaseDaemon: 3. /usr/bin/clickhouse-server(DB::IBlockInputStream::read()+0x258) [0x5f66b08]
    ./clickhouse-server.log:2019.05.07 15:23:28.516710 [ 214 ] {} <Error> BaseDaemon: 4. /usr/bin/clickhouse-server(DB::DistinctBlockInputStream::readImpl()+0x91) [0x65df041]
    ./clickhouse-server.log:2019.05.07 15:23:28.516718 [ 214 ] {} <Error> BaseDaemon: 5. /usr/bin/clickhouse-server(DB::IBlockInputStream::read()+0x258) [0x5f66b08]
    ./clickhouse-server.log:2019.05.07 15:23:28.516725 [ 214 ] {} <Error> BaseDaemon: 6. /usr/bin/clickhouse-server(DB::ExpressionBlockInputStream::readImpl()+0x2d) [0x65b6b5d]
    ./clickhouse-server.log:2019.05.07 15:23:28.516733 [ 214 ] {} <Error> BaseDaemon: 7. /usr/bin/clickhouse-server(DB::IBlockInputStream::read()+0x258) [0x5f66b08]
    ./clickhouse-server.log:2019.05.07 15:23:28.516740 [ 214 ] {} <Error> BaseDaemon: 8. /usr/bin/clickhouse-server(DB::LimitBlockInputStream::readImpl()+0x384) [0x5f68f84]
    ./clickhouse-server.log:2019.05.07 15:23:28.516748 [ 214 ] {} <Error> BaseDaemon: 9. /usr/bin/clickhouse-server(DB::IBlockInputStream::read()+0x258) [0x5f66b08]
    ./clickhouse-server.log:2019.05.07 15:23:28.516755 [ 214 ] {} <Error> BaseDaemon: 10. /usr/bin/clickhouse-server(DB::ConvertingBlockInputStream::readImpl()+0x3d) [0x65ad0dd]
    ./clickhouse-server.log:2019.05.07 15:23:28.516763 [ 214 ] {} <Error> BaseDaemon: 11. /usr/bin/clickhouse-server(DB::IBlockInputStream::read()+0x258) [0x5f66b08]
  • https://t.me/clickhouse_ru
    ./clickhouse-server.log:2019.05.07 15:23:28.516770 [ 214 ] {} <Error> BaseDaemon: 12. /usr/bin/clickhouse-server(DB::FilterBlockInputStream::readImpl()+0xaa) [0x65c25aa]
    ./clickhouse-server.log:2019.05.07 15:23:28.516778 [ 214 ] {} <Error> BaseDaemon: 13. /usr/bin/clickhouse-server(DB::IBlockInputStream::read()+0x258) [0x5f66b08]
    ./clickhouse-server.log:2019.05.07 15:23:28.516785 [ 214 ] {} <Error> BaseDaemon: 14. /usr/bin/clickhouse-server(DB::ExpressionBlockInputStream::readImpl()+0x2d) [0x65b6b5d]
    ./clickhouse-server.log:2019.05.07 15:23:28.516797 [ 214 ] {} <Error> BaseDaemon: 15. /usr/bin/clickhouse-server(DB::IBlockInputStream::read()+0x258) [0x5f66b08]
    ./clickhouse-server.log:2019.05.07 15:23:28.516804 [ 214 ] {} <Error> BaseDaemon: 16. /usr/bin/clickhouse-server(DB::DistinctBlockInputStream::readImpl()+0x91) [0x65df041]
    ./clickhouse-server.log:2019.05.07 15:23:28.516812 [ 214 ] {} <Error> BaseDaemon: 17. /usr/bin/clickhouse-server(DB::IBlockInputStream::read()+0x258) [0x5f66b08]
    ./clickhouse-server.log:2019.05.07 15:23:28.516822 [ 214 ] {} <Error> BaseDaemon: 18. /usr/bin/clickhouse-server(DB::ParallelInputsProcessor<DB::UnionBlockInputStream::Handler>::loop(unsigned long)+0xfb) [0x604bc5b]
    ./clickhouse-server.log:2019.05.07 15:23:28.516832 [ 214 ] {} <Error> BaseDaemon: 19. /usr/bin/clickhouse-server(DB::ParallelInputsProcessor<DB::UnionBlockInputStream::Handler>::thread(std::shared_ptr<DB::ThreadGroupStatus>, unsigned long)+0x1f4) [0x604c2f4]
    ./clickhouse-server.log:2019.05.07 15:23:28.516851 [ 214 ] {} <Error> BaseDaemon: 20. /usr/bin/clickhouse-server(ThreadFromGlobalPool::ThreadFromGlobalPool<DB::ParallelInputsProcessor<DB::UnionBlockInputStream::Handler>::process()::{lambda()#1}>(DB::ParallelInputsProcessor<DB::UnionBlockInputStream::Handler>::process()::{lambda()#1}&&)::{lambda()#1}::operator()() const+0x67) [0x604cbc7]
    ./clickhouse-server.log:2019.05.07 15:23:28.516861 [ 214 ] {} <Error> BaseDaemon: 21. /usr/bin/clickhouse-server(ThreadPoolImpl<std::thread>::worker(std::_List_iterator<std::thread>)+0x1cc) [0x6b8b2ac]
    ./clickhouse-server.log:2019.05.07 15:23:28.516869 [ 214 ] {} <Error> BaseDaemon: 22. /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xbd57f) [0x7f2fcda0557f]
    ./clickhouse-server.log:2019.05.07 15:23:28.516876 [ 214 ] {} <Error> BaseDaemon: 23. /lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba) [0x7f2fce0e76ba]
  • https://t.me/clickhouse_ru
    @den_crane #100072 05:35 PM, 07 May 2019
    похоже тоже самое что и https://github.com/yandex/ClickHouse/issues/5141
  • https://t.me/clickhouse_ru
    фикса пока нет
  • @IlyaVrum #100074 05:40 PM, 07 May 2019
    Добрового времени. Подскажите как можно обойти ошибку при insert большого кол-ва данных из mysql

    запрос выглядит подобным образом
    INSERT INTO clickhouse_table (...) SELECT ... FROM mysql(?, 'db_name', 'mysql_table', ?, ?) mt
    данный запрос работал до определённого момента

    после стал падать с ошибкой
    HttpCode:500 ; ;Poco::Exception. Code: 1000, e.code() = 2013, e.displayText() = mysqlxx::Exception: Lost connection to MySQL server during query (remote-host.ru:3306) (version 19.5.3.8 (official build))
  • https://t.me/clickhouse_ru
    таймаутов в мускуле может не хватает?
  • https://t.me/clickhouse_ru
    падение воспроизводится на определенных запросах?
  • https://t.me/clickhouse_ru
    непонятно что это вообще,
    возможно вот это тоже самое https://github.com/yandex/ClickHouse/issues/5197
    и оно уже пофикшено в v19.7.1.403-testing, можно попробовать, я ее тестил в стейдже, никаких проблем не нашел
  • https://t.me/clickhouse_ru
    mysql забанил ip кликхауза? https://dev.mysql.com/doc/refman/5.5/en/flush.html#flush-hosts
  • https://t.me/clickhouse_ru
    @sashganush #100079 05:51 PM, 07 May 2019
    Алексей докладывает : кликхауз не тормозит
  • https://t.me/clickhouse_ru
    Видео будет опубликовано.
  • https://t.me/clickhouse_ru
    Ура!
  • https://t.me/clickhouse_ru
    @proxeter #100082 06:30 PM, 07 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @gorsil #100083 06:44 PM, 07 May 2019
    Привет. А какой content-type надо передавать в Header'е в http интерфесе кликхауса? Или это вообще не нужно?
  • https://t.me/clickhouse_ru
    @dbalashov #100084 06:49 PM, 07 May 2019
    application/x-www-form-urlencoded; charset=UTF-8
  • https://t.me/clickhouse_ru
    @dbalashov #100085 06:49 PM, 07 May 2019
    а если из js то ещо в query string add_http_cors_header=1
  • https://t.me/clickhouse_ru
    @sashganush #100086 07:00 PM, 07 May 2019
    Продолжает митап Александр из Altinity
  • https://t.me/clickhouse_ru
    @241186216 #100087 07:06 PM, 07 May 2019
    Надо выжимки в пару строк)
  • https://t.me/clickhouse_ru
    @SantiagoSeaman #100088 07:29 PM, 07 May 2019
    Joined.
  • 08 May 2019 (140 messages)
  • https://t.me/clickhouse_ru
    @tsvtitan #100089 05:57 AM, 08 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @CoderFF #100090 06:28 AM, 08 May 2019
    Joined.
  • @uran238 #100091 06:29 AM, 08 May 2019
    Joined.
  • @Nkhack #100092 06:30 AM, 08 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @tiger_ol #100093 06:36 AM, 08 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @p141592 #100094 06:56 AM, 08 May 2019
    Всем доброе утро
  • https://t.me/clickhouse_ru
    @p141592 #100095 06:56 AM, 08 May 2019
    Извиняюсь за групый вопрос, если так и есть
  • https://t.me/clickhouse_ru
    @p141592 #100096 06:56 AM, 08 May 2019
    в clickhouse есть тригеры?
  • https://t.me/clickhouse_ru
    @p141592 #100097 06:56 AM, 08 May 2019
    Что-то не смог найти упоминания в документации
  • https://t.me/clickhouse_ru
    Вроде Material View этим заведуют. Правда не совсем полноценно, но всеж таки.
  • https://t.me/clickhouse_ru
    @p141592 #100099 07:00 AM, 08 May 2019
    Про них тоже конечно не густо в документации написано
  • https://t.me/clickhouse_ru
    @p141592 #100100 07:00 AM, 08 May 2019
    Но спасибо, буду копать
  • https://t.me/clickhouse_ru
    @p141592 #100101 07:01 AM, 08 May 2019
    А какой материал посоветуете прочитать, кроме документации? Может книга какая-нибудь или видео
  • https://t.me/clickhouse_ru
    @p141592 #100102 07:03 AM, 08 May 2019
    clickhouse заставляет посмотреть по другому на привычные вещи, хотелось бы втянуться
  • Докладов с highload очень много с юз кейсами (от Altinity, Badoo и других классных ребят), в ютубе можно найти. Я бы начал с этого.
    У Altinity есть хороший блог:
    https://www.altinity.com/blog

    Из интересных статей, которые я помню:
    https://dou.ua/lenta/articles/experience-with-clickhouse/
    Но их очень много, гуглятся по ‘опыт перехода на clickhouse’

    Ну и еще этот чат) Мне кажется, что тут любую типовую задачу уже можно найти, тут уже столько наспрашивали и наотвечали. Так что в любой непонятной ситуации я сначала пользуюсь поиском в этом чатике 🙂
  • https://t.me/clickhouse_ru
    Шикарно! Спасибо
  • https://t.me/clickhouse_ru
    @sfsharapov #100105 07:25 AM, 08 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    нет. иногда да, скорее причина в одновременном большом количестве запросов
  • https://t.me/clickhouse_ru
    @erombombom #100108 08:00 AM, 08 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    начинаю собирать. сейчас накатим фикс наш (функцич geoToH3) протестирую, отпишусь
  • https://t.me/clickhouse_ru
    @ployd #100110 08:31 AM, 08 May 2019
    А почему в ключах (ORDER BY, PARTITION BY) нельзя использовать алиасы? С чем связано это ограничение?
  • @sabonar #100111 08:38 AM, 08 May 2019
    Вопрос по Mysql Engine.
    В документации написано:
    The MySQL engine does not support the Nullable data type, so when reading data from MySQL tables, NULL is converted to default values for the specified column type (usually 0 or an empty string).

    Существует ли известный обход этого правила? Допустим, чтобы брались дефолтные значения не ТИПА, а дефолтное значение из MYSQL?
  • https://t.me/clickhouse_ru
    В релизе 19.3.3
    https://github.com/yandex/ClickHouse/blob/master/CHANGELOG_RU.md#clickhouse-release-1933-2019-02-13
    "Добавлена поддержка Nullable типов в табличной функции mysql"
    Насколько хорошо работает - не скажу, пробуйте
  • @sabonar #100114 08:42 AM, 08 May 2019
    Спасибо
  • https://t.me/clickhouse_ru
    @ValievIsmail #100115 08:45 AM, 08 May 2019
    Коллеги, добрый день, подскажите пожалуйста нюанс по воронкам windowFunnel

    Есть запрос на 9 этапов воронки

    SELECT level, COUNT() AS Count
    FROM (SELECT UserId, windowFunnel(86400)
    (EventDateTime,
    EventId = 'BSE' AND Param1 = '0045fc6b-95db-4be1-b728-b387b6ed34cd',
    EventId = 'BCE' AND Param1 = '0045fc6b-95db-4be1-b728-b387b6ed34cd',
    EventId = 'CTO', EventId = 'GCO' OR EventId = 'GCOP', EventId = 'ATB',
    EventId = 'BK1', EventId = 'BKD', EventId = 'BKP', EventId = 'ORC') AS level
    FROM statdb.events
    WHERE EventDate = '2019-05-07'
    AND ApplicationType = 1
    AND EventId in ('BSE', 'BCE', 'CTO', 'GCO', 'GCOP', 'ATB', 'BK1', 'BKD', 'BKP', 'ORC')
    GROUP BY UserId)
    GROUP BY level

    воронка говорит что событий 'BSE' 250 тысяч

    если делать отдельный запрос на данный этап (а он первый в воронке)

    SELECT EventId, count()
    FROM statdb.events
    WHERE EventDate = '2019-05-07'
    And EventId = 'BSE'
    AND ApplicationType = 1
    AND Param1 = '0045fc6b-95db-4be1-b728-b387b6ed34cd'
    GROUP BY EventId

    то получается 1 млн, событий,
    если делать запрос через count(distinct(UserId))
    то выходит 250 тысяч,

    windowFunnel только уникальных юзеров считает получается?
    есть возможность считать от всех юзеров?
  • @pookieShmukie #100116 08:57 AM, 08 May 2019
    Всем привет! Столкнулись с интересной ошибкой. В таблице есть колонка ratedAt, я делаю вот такой запрос:

    SELECT rate, `courseId` FROM `cursometr`.`rate_history_distributed` PREWHERE `courseId` IN 93 WHERE `rate` > 0 AND `isCourse` = 1 ORDER BY `ratedAt` DESC, `rate` DESC LIMIT 1 BY `learnerId`

    И вижу ошибку Not found column ratedAt in block. There are only columns: courseId, learnerId, rate.. Хотя если явно добавить эту колонку в select, то все ок. Версия: 19.5.3.8

    Это как-то лечится настройками? В чейджлоге не нашел пока ничего.

    Причем если убрать LIMIT 1 BY learnerId, то все ок работает.
  • Работает. Только нужно изменить тип поля: Int64 —> Nullable(Int64)
  • @AS12389 #100118 11:41 AM, 08 May 2019
    Есть данные в таблице
    ┌───────────────────t─┬──────doldids_object─┬──────lin─┬──────lout─┐
    │ 2019-05-07 18:29:20 │ 8943830673763257145 │ 11207831 │ 218605070 │
    │ 2019-05-07 18:29:38 │ 2071505660187816938 │ 17172263 │ 227922573 │
    │ 2019-05-07 18:34:20 │ 8943830673763257145 │ 12023280 │ 245116349 │
    │ 2019-05-07 18:34:39 │ 2071505660187816938 │ 14227229 │ 227032367 │
    │ 2019-05-07 18:39:20 │ 8943830673763257145 │ 14895851 │ 281474903 │
    │ 2019-05-07 18:39:37 │ 2071505660187816938 │ 16141559 │ 272949789 │
    Подскажите пожалуйста как суммировать пойты по 10 минут?
  • https://t.me/clickhouse_ru
    @dbalashov #100119 11:55 AM, 08 May 2019
    select (toMinute(d) % 10) * 10 as t1 ... group by t1
  • https://t.me/clickhouse_ru
    @dbalashov #100120 11:55 AM, 08 May 2019
    не?
  • @RostyslavM #100121 12:01 PM, 08 May 2019
    Плиз, подскажите, как этим бороться?

    Code: 102. Unexpected packet from server clickhouse-cl:9000 (expected Hello or Exception, got Unknown packet)

    server version 19.5.3 revision 54417
  • @slnnk ↶ Reply to #100118 #100122 12:01 PM, 08 May 2019
    SELECT t-t%600 AS t10, doldids_object, SUM(lin), SUM(lout) GROUP BY t10, doldids_object
  • Оно
    Спасибо!
  • Ммм
    Сработало, только графана не может работать с такими данными, потому как колонка t меняется
  • https://t.me/clickhouse_ru
    @metikovvadim #100125 12:08 PM, 08 May 2019
    графана замечательно отображает данные, возвращаемые как графит-метрики
  • Графана отлично работает, проблема с точками
  • https://t.me/clickhouse_ru
    Ну так возвращайте ей t, обернув запрос в ещё один select, если внутри запроса не получается выдать нужное
  • @AS12389 #100128 12:12 PM, 08 May 2019
    эм…
  • https://t.me/clickhouse_ru
    @den_crane #100129 12:14 PM, 08 May 2019
    Есть кстати toStartOfTenMinutes toStartOfInterval
  • https://t.me/clickhouse_ru
    графана хочет время в формате unixtime*1000
  • https://t.me/clickhouse_ru
    Всегда? Иногда? Для определнного запроса? Раньше работало? Докер?
  • @AS12389 #100132 12:17 PM, 08 May 2019
    проблема в том, что одна и та же метрика собирается с разных устройств. Хочу аггрегировать по 10 минтуным интервалам, спасибо @dbalashov собрал запрос, но графана такое не понимает
  • https://t.me/clickhouse_ru
    будет что-то вроде:
    SELECT toUInt32(toStartOfTenMinutes(datetime)) * 1000 as t, sum(data) as dsum FROM $table WHERE ... GROUP BY t
  • @AS12389 #100134 12:17 PM, 08 May 2019
    ┌───────────────────t─┬──────doldids_object─┬──────lin─┬──────lout─┐
    │ 2019-05-07 18:29:20 │ 8943830673763257145 │ 11207831 │ 218605070 │
    │ 2019-05-07 18:29:38 │ 2071505660187816938 │ 17172263 │ 227922573 │
    │ 2019-05-07 18:34:20 │ 8943830673763257145 │ 12023280 │ 245116349 │
    │ 2019-05-07 18:34:39 │ 2071505660187816938 │ 14227229 │ 227032367 │
    │ 2019-05-07 18:39:20 │ 8943830673763257145 │ 14895851 │ 281474903 │
    │ 2019-05-07 18:39:37 │ 2071505660187816938 │ 16141559 │ 272949789 │
    dev1 8943830673763257145
    dev2 2071505660187816938
  • @RostyslavM #100135 12:17 PM, 08 May 2019
    @den_crane - спасибо. Добавили новый апп клиент и взяли некорректный haproxy конфиг. В нем не было. mode tcp

    backend clickhouse-cl
    mode tcp
    ...

    Ошибка пропала.
  • https://t.me/clickhouse_ru
    А в чём, собственно, проблема? Требуется агрегировать без учёта устройства или что?
  • да
  • https://t.me/clickhouse_ru
    И в чём именно тут проблема?
  • https://t.me/clickhouse_ru
    Хотя... Тип данных там какой?
  • @AS12389 #100140 12:21 PM, 08 May 2019
    uint
  • https://t.me/clickhouse_ru
    Не в этом смысле. Нарастающий итог или просто значение с датчика?
  • https://t.me/clickhouse_ru
    И что именно требуется сагрегировать?
  • @AS12389 #100143 12:23 PM, 08 May 2019
    lin и lout
  • @AS12389 #100144 12:23 PM, 08 May 2019
    разница между точками 30 сек
  • @AS12389 #100145 12:23 PM, 08 May 2019
    если аггрегировать по 10 минут, думаю должно нормально получится
  • @AS12389 #100146 12:23 PM, 08 May 2019
    сбор со всех устройств каждые 5 минут
  • https://t.me/clickhouse_ru
    Переформулирую вопрос: результат агрегации - это что?
  • @AS12389 #100148 12:24 PM, 08 May 2019
    это сумма значений lin(lout)
  • https://t.me/clickhouse_ru
    Просто сумма, без учёта предыдущих периодов?
  • https://t.me/clickhouse_ru
    Требуется только для графаны?
  • @AS12389 #100151 12:25 PM, 08 May 2019
    да
  • https://t.me/clickhouse_ru
    Сейчас покажу аналог
  • @AS12389 #100154 12:26 PM, 08 May 2019
    Графана с провалами показывает, потому как точки с разных устройств
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @stovm #100156 12:26 PM, 08 May 2019
    Всем привет. Подскажите, пожалуйста… Если на одном хосте из 30 стабильно по таймауту валятся все DDL операции ON CLUSTER, но при локальном выполнении (без ON CLUSTER) всё проходит нормально, как это лечить?
  • https://t.me/clickhouse_ru
    естественно, серверов там далеко не один и не десяток.
  • https://t.me/clickhouse_ru
    см. запрос в графане и опции запроса типа "Step"
  • https://t.me/clickhouse_ru
    У меня на примере - значения берутся на интервале 5 минут.
  • @AS12389 #100160 12:28 PM, 08 May 2019
    а зачем деление?
  • https://t.me/clickhouse_ru
    чтобы получить не количество за период, а сколько в секунду
  • https://t.me/clickhouse_ru
    тебе не требуется
  • @AS12389 #100163 12:29 PM, 08 May 2019
    концепт понятн
    спасибо
    step как-то искажает данные
  • https://t.me/clickhouse_ru
    он влияет на t и только на t
  • https://t.me/clickhouse_ru
    Задаёт шаг. Рекомендую ещё поиграться с Round, кстати. Чтоб начало шага было детерминированным
  • @AS12389 #100166 12:34 PM, 08 May 2019
    Кстати, так выглядит графики с двух устройств. Все красиво
  • https://t.me/clickhouse_ru
    @anywayhowisyourslife #100167 12:35 PM, 08 May 2019
    а можно как-то для 1 запроса убрать кеширование?
  • https://t.me/clickhouse_ru
    @DorianPeregrim #100168 12:40 PM, 08 May 2019
    День добрый. Подскажите бест практис по именованию колонок и таблиц? Камелкейс или снейккейс? Или такогового не имеется?
  • https://t.me/clickhouse_ru
    как угодно, лишь бы везде одинаково.
  • https://t.me/clickhouse_ru
    @DorianPeregrim #100170 12:41 PM, 08 May 2019
    Спасибо
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @stovm ↶ Reply to #100171 #100172 12:45 PM, 08 May 2019
    у меня 18.16.1
  • https://t.me/clickhouse_ru
    @stovm #100173 12:45 PM, 08 May 2019
    К тому же только на 1 хосте
  • https://t.me/clickhouse_ru
    В chproxy? В кх нет кеширования результата
  • https://t.me/clickhouse_ru
    @khvostikovao #100175 12:46 PM, 08 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @anywayhowisyourslife #100176 12:46 PM, 08 May 2019
    т.е надо системно менять найстроки кликхауса?
  • @weery28 #100177 12:47 PM, 08 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @anywayhowisyourslife #100178 12:48 PM, 08 May 2019
    просто я думал можно как-то убрать "разогрев базы" запросом
  • https://t.me/clickhouse_ru
    Если хотете почитать мимо кэша ОС

    SET min_bytes_to_use_direct_io=1, merge_tree_uniform_read_distribution=0
  • https://t.me/clickhouse_ru
    @anywayhowisyourslife #100180 01:07 PM, 08 May 2019
    о
  • https://t.me/clickhouse_ru
    @anywayhowisyourslife #100181 01:07 PM, 08 May 2019
    пасиба!
  • https://t.me/clickhouse_ru
    system drop mark cache;
    sync; echo 2 > /proc/sys/vm/drop_caches
  • https://t.me/clickhouse_ru
    А DDLWorker вообще хоть что-нибудь пишет в лог на том хосте?
    Типа <Debug> DDLWorker: Cleaning queue
  • https://t.me/clickhouse_ru
    @Cthulho #100184 01:33 PM, 08 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @vitroot #100185 01:40 PM, 08 May 2019
    Joined.
  • @VesninAndrey #100186 01:45 PM, 08 May 2019
    Joined.
  • @DivPro #100187 01:51 PM, 08 May 2019
    есть специалисты по hyperscan? интересует группировка похожих строк в ch. Все что накопал в доках CH это
    https://clickhouse.yandex/docs/ru/query_language/functions/string_search_functions/#ngramdistance-haystack-needle
  • Кирилл, а подскажите при использовании TO одинаковые данные хранятся и во вьюхе и в таблице? То есть дублируются? И при создании матвьюхи функции агрегирования нужно использовать без state?
  • https://t.me/clickhouse_ru
    при to вьюха тупо хранит данные в таблице указанной в to вместо неявной .inner таблицы
  • https://t.me/clickhouse_ru
    detach table MV;
    alter table `.inner.MV` add column NEWCOL String;

    ATTACH MATERIALIZED VIEW MV
    ....
    as select , NEWCOL ....
  • А почему тогда нужно агрегировать по count , а не countState.
  • https://t.me/clickhouse_ru
    ?????
  • https://t.me/clickhouse_ru
    @anywayhowisyourslife #100193 02:28 PM, 08 May 2019
    а есть какой-нибудь оператор для пустого условия Where ?
    что-то вроде
    where Date = today() and (1 = 1)
    мб есть что-нибудь получше? а то 1=1 выглядит костыльно
  • https://t.me/clickhouse_ru
    @den_crane #100194 02:29 PM, 08 May 2019
    where 1
  • https://t.me/clickhouse_ru
    @anywayhowisyourslife #100195 02:29 PM, 08 May 2019
    спасибо большое
  • У меня выдало ошибку когда я пытался занести данные в матвью, которая была создана как select col1, countState(). Как я понимаю из за того что колонка в таблице типа UInt64 не соответствует countState, или в таблице нужно использовать другой тип?
  • https://t.me/clickhouse_ru
    Да, у вас разные типы, для хранения каунта стейт не нужен
  • вы либо число храните, либо стейт, разные типы. Если у вас там стейт, то и вставляйте туда стейт
  • https://t.me/clickhouse_ru
    @stovm ↶ Reply to #100183 #100200 02:33 PM, 08 May 2019
    2019.05.08 14:45:03.418293 [ 1276114 ] {3a071405-b760-4431-9a20-1601b337f1a0} <Error> executeQuery: Code: 159, e.displayText()
    = DB::Exception: Watching task /clickhouse/task_queue/ddl/query-0000018900 is executing longer than distributed_ddl_task_timeou
    t (=180) seconds. There are 1 unfinished hosts (0 of them are currently active), they are going to execute the query in backgro
    und, e.what() = DB::Exception (from ….) (in query: DROP TABLE IF EXISTS me_dump.user_d1 ON CLUSTER 'product_ana
    lytics'), Stack trace:

    0. clickhouse-server(StackTrace::StackTrace()+0x16) [0x9c778f6]
    1. clickhouse-server(DB::Exception::Exception(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > c
    onst&, int)+0x22) [0x32b6342]
    2. clickhouse-server(DB::DDLQueryStatusInputSream::readImpl()+0x132c) [0x6e8048c]
    3. clickhouse-server(DB::IProfilingBlockInputStream::read()+0x25a) [0x6d6ac6a]
    4. clickhouse-server(DB::AsynchronousBlockInputStream::calculate()+0x56) [0x6d5fe96]
    5. clickhouse-server() [0x6d60300]
    6. clickhouse-server(ThreadPool::worker()+0x19e) [0x9f3779e]
    7. clickhouse-server() [0xa94e40f]
    8. /lib/x86_64-linux-gnu/libpthread.so.0(+0x7494) [0x7f9d48f60494]
    9. /lib/x86_64-linux-gnu/libc.so.6(clone+0x3f) [0x7f9d48592acf]
  • https://t.me/clickhouse_ru
    примеры

    https://gist.github.com/den-crane/bc5256cb3f64ed3789819d40c11bda84
    https://gist.github.com/den-crane/048ce66bc59f5577d56e42d76934682e
    https://gist.github.com/den-crane/d03524eadbbce0bafa528101afa8f794
    https://gist.github.com/den-crane/49ce2ae3a688651b9c2dd85ee592cb15
    https://gist.github.com/den-crane/f7382cd4f1f859ff6ac46afe7dc9925a
    https://gist.github.com/den-crane/a72614fbe6d23eb9c2f1bce40c66893f
  • В том и вопрос куда туда? С каким типом создавать колонку?
  • ну, матвью пушит данные в таблицу
    о структуре этой таблицы речь и идёт. Создавайте с целочисленным типом.
    И примеры от @den_crane обычно отвечают на множество вопросов, которые ещё могут возникнуть по ходу. Посмотрите.
  • Понял
  • https://t.me/clickhouse_ru
    это ведь хост на котором запускали запрос, а не который по таймауту не выполняет, т.е. вообще не то
  • https://t.me/clickhouse_ru
    @stovm #100206 02:37 PM, 08 May 2019
    Я в processlist смотрел в момент выполнения (висения) - там была пустота.
  • @vasya_p0pkin #100207 02:37 PM, 08 May 2019
    Значит я опять не понимаю где нужно использовать count, а где countState?
  • https://t.me/clickhouse_ru
    А DDLWorker вообще хоть что-нибудь пишет в лог на том хосте?
    Типа <Debug> DDLWorker: Cleaning queue
    за последние 7 дней?
  • https://t.me/clickhouse_ru
    Если таблица aggregating to countState (тип поля AggregateFunction(count))
  • Спасибо, а что плохого если таблица agregating, а я создал поле Uint64 и матвьюху с count?
  • https://t.me/clickhouse_ru
    мусор там будет с результатом перезатирающимся кол-вом строк в последнем insert
  • Фигово, придется переделывать ((
  • https://t.me/clickhouse_ru
    @stovm ↶ Reply to #100208 #100213 03:32 PM, 08 May 2019
    /var/log/clickhouse-server/clickhouse-server.log.5.gz:DDLQueryStatusInputSream
    /var/log/clickhouse-server/clickhouse-server.log.5.gz:2019.05.08 14:45:03.418293 [ 1276114 ] {3a071405-b760-4431-9a20-1601b337f1a0} <Error> executeQuery: Code: 159, e.displayText() = DB::Exception: Watching task /clickhouse/task_queue/ddl/query-0000018900 is executing longer than distributed_ddl_task_timeout (=180) seconds. There are 1 unfinished hosts (0 of them are currently active), they are going to execute the query in background, e.what() = DB::Exception (from 10.156.2.232:54534) (in query: DROP TABLE IF EXISTS me_dump.user_d1 ON CLUSTER 'product_analytics'), Stack trace:
    /var/log/clickhouse-server/clickhouse-server.log.5.gz:2. clickhouse-server(DB::DDLQueryStatusInputSream::readImpl()+0x132c) [0x6e8048c]
    /var/log/clickhouse-server/clickhouse-server.log.6.gz:DDLQueryStatusInputSream
    /var/log/clickhouse-server/clickhouse-server.log.6.gz:DDLQueryStatusInputSream
    /var/log/clickhouse-server/clickhouse-server.log.6.gz:2. clickhouse-server(DB::DDLQueryStatusInputSream::readImpl()+0xb5b) [0x6e7fcbb]
    /var/log/clickhouse-server/clickhouse-server.log.6.gz:DDLQueryStatusInputSream
  • https://t.me/clickhouse_ru
    @stovm #100214 03:32 PM, 08 May 2019
    Это всё, что есть
  • https://t.me/clickhouse_ru
    @stovm #100215 03:32 PM, 08 May 2019
    про DDL
  • https://t.me/clickhouse_ru
    похоже там упал DDLWorker. Я бы рестартанул тот хост и посмотрел что будет в логе при загрузке.
  • https://t.me/clickhouse_ru
    @orloffv #100218 03:57 PM, 08 May 2019
    ребят, а что за ошибка в логах?
    2019.05.08 18:57:07.025857 [ 11 ] {} <Error> rum.delta_lr (StorageReplicatedMergeTree): DB::StorageReplicatedMergeTree::queueTask()::<lambda(DB::StorageReplicatedMergeTree::LogEntryPtr&)>: Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = No message received
  • https://t.me/clickhouse_ru
    или реплика не ответила за таймаут, или баг https://github.com/yandex/ClickHouse/issues/4047#issuecomment-478101442
    Poco::Exception. Code: 1000, e.code() = 0 · Issue #4047 · yandex/ClickHouse

    Using docker clickhouse-server:latest After upgrade - we have many error-log entries such as: 2019.01.14 02:24:10.831297 [ 17 ] {} graphite.metrics_lr (StorageReplicatedMergeTree): DB::StorageRepli...

  • https://t.me/clickhouse_ru
    @stovm ↶ Reply to #100216 #100220 04:20 PM, 08 May 2019
    Рестартанули…
    019.05.08 19:14:45.768547 [ 50 ] {f9ffe958-b537-4c8f-9bb0-e898b1f5469d} <Debug> DDLWorker: Will not execute task query-0000018871: There is no a local address in host list
    2019.05.08 19:14:45.769685 [ 50 ] {f9ffe958-b537-4c8f-9bb0-e898b1f5469d} <Debug> DDLWorker: Will not execute task query-0000018872: There is no a local address in host list
    2019.05.08 19:14:45.770716 [ 50 ] {f9ffe958-b537-4c8f-9bb0-e898b1f5469d} <Debug> DDLWorker: Will not execute task query-0000018873: There is no a local address in host list
    2019.05.08 19:14:45.771817 [ 50 ] {f9ffe958-b537-4c8f-9bb0-e898b1f5469d} <Debug> DDLWorker: Will not execute task query-0000018874: There is no a local address in host list
    2019.05.08 19:14:45.772944 [ 50 ] {f9ffe958-b537-4c8f-9bb0-e898b1f5469d} <Debug> DDLWorker: Will not execute task query-0000018875: There is no a local address in host list
    2019.05.08 19:14:45.774123 [ 50 ] {f9ffe958-b537-4c8f-9bb0-e898b1f5469d} <Debug> DDLWorker: Will not execute task query-0000018876: There is no a local address in host list
    2019.05.08 19:14:45.775122 [ 50 ] {f9ffe958-b537-4c8f-9bb0-e898b1f5469d} <Debug> DDLWorker: Will not execute task query-0000018877: There is no a local address in host list
    2019.05.08 19:14:45.776202 [ 50 ] {f9ffe958-b537-4c8f-9bb0-e898b1f5469d} <Debug> DDLWorker: Will not execute task query-0000018878: There is no a local address in host list
    2019.05.08 19:14:45.777249 [ 50 ] {f9ffe958-b537-4c8f-9bb0-e898b1f5469d} <Debug> DDLWorker: Will not execute task query-0000018879: There is no a local address in host list
    2019.05.08 19:14:45.778297 [ 50 ] {f9ffe958-b537-4c8f-9bb0-e898b1f5469d} <Debug> DDLWorker: Will not execute task query-0000018880: There is no a local address in host list
    2019.05.08 19:14:45.779329 [ 50 ] {f9ffe958-b537-4c8f-9bb0-e898b1f5469d} <Debug> DDLWorker: Will not execute task query-0000018881: There is no a local address in host list
    2019.05.08 19:14:45.780380 [ 50 ] {f9ffe958-b537-4c8f-9bb0-e898b1f5469d} <Debug> DDLWorker: Will not execute task query-0000018882: There is no a local address in host list
    2019.05.08 19:14:45.781391 [ 50 ] {f9ffe958-b537-4c8f-9bb0-e898b1f5469d} <Debug> DDLWorker: Will not execute task query-0000018883: There is no a local address in host list
    2019.05.08 19:14:45.782466 [ 50 ] {f9ffe958-b537-4c8f-9bb0-e898b1f5469d} <Debug> DDLWorker: Will not execute task query-0000018884: There is no a local address in host list
    2019.05.08 19:14:45.784674 [ 50 ] {f9ffe958-b537-4c8f-9bb0-e898b1f5469d} <Debug> DDLWorker: Will not execute task query-0000018885: There is no a local address in host list
    2019.05.08 19:14:45.785785 [ 50 ] {f9ffe958-b537-4c8f-9bb0-e898b1f5469d} <Debug> DDLWorker: Will not execute task query-0000018886: There is no a local address in host list
    2019.05.08 19:14:45.786776 [ 50 ] {f9ffe958-b537-4c8f-9bb0-e898b1f5469d} <Debug> DDLWorker: Will not execute task query-0000018887: There is no a local address in host list
    2019.05.08 19:14:45.789096 [ 50 ] {f9ffe958-b537-4c8f-9bb0-e898b1f5469d} <Debug> DDLWorker: Will not execute task query-0000018888: There is no a local address in host list
  • https://t.me/clickhouse_ru
    @stovm #100221 04:25 PM, 08 May 2019
    Ну после рестарта ATTACH ON CLUSTER прошёл успешно по крайней мере
  • https://t.me/clickhouse_ru
    @dbalashov #100222 04:34 PM, 08 May 2019
    адрес сменился у хоста поди ?
  • https://t.me/clickhouse_ru
    @stovm #100223 04:40 PM, 08 May 2019
    не знаю, но теперь рассинхрон с ZK и пропала таблица)) Видимо, DDL отработали, которые могли
  • @andreysukharev #100224 04:45 PM, 08 May 2019
    подскажите, плиз, когда появится видео запись митапа вчерашнего в Лимассоле?
  • https://t.me/clickhouse_ru
    @dbalashov #100225 04:47 PM, 08 May 2019
    надо было ехать!
  • https://t.me/clickhouse_ru
    В течение недели
  • https://t.me/clickhouse_ru
    👍
  • @whetherharder #100230 05:44 PM, 08 May 2019
    Подскажите пожалуйста про AggregatingMergeTree:
    Насколько вероятно получить при выборке некорректные результаты, если Мердж не успел отработать после вставки?
  • https://t.me/clickhouse_ru
    0-вая, мерж вообще не влияет на результат select from AggregatingMergeTree (в смысле без group by делать запросы туда бессмысленно, мерж может вообще не случится уже никогда).
  • Спасибо!
  • https://t.me/clickhouse_ru
    @den_crane #100233 10:47 PM, 08 May 2019
    Запустил alter delete, он закончился, кроме двух партов (system.mutations) parts_to_do = 2 / is_done 0, причем в этих партах удалять нечего.
    Но у этих двух партов размер чуть больше 200ГБ (max_bytes_to_merge_at_max_space_in_pool=200) (свободно на диске >ТБ).
    Причем таблица в старом формате, поэтому settings туда в sql не подпихнуть (чтобы обойтись без рестарта). Печаль.
    И в логах ни слова об этом, фиг догадаешься что почему застряло.
  • 09 May 2019 (32 messages)
  • https://t.me/clickhouse_ru
    Согласен, это неочевидная засада, мы тоже натыкались. По-хорошему, должно быть хотя бы задокументировано, что мутации не мутируют парты размера больше max_bytes_to_merge_at_max_space_in_pool.
  • https://t.me/clickhouse_ru
    @alexanderzaitsev #100235 12:38 AM, 09 May 2019
    Аналогичная проблема может и с TTL случиться
  • https://t.me/clickhouse_ru
    @den_crane #100236 12:38 AM, 09 May 2019
    Логичней сделать какую-нибудь настройку чтобы проверялось max_bytes_to_merge_at_max_space_in_pool + {10%} например, потому что при мутации размер не особо увеличивается, да и предсказать насколько увеличится нельзя, может апдейт там шире строки сделает в два раза.
  • @1115100 #100238 10:26 AM, 09 May 2019
    господа, а чем вы мигрируете схему? А то в доке ссылок нет, а в github только одно решение на php, в непонятном состоянии
  • ну и тупой, как палка golang-migrate/migrate
  • https://t.me/clickhouse_ru
    @tratatataass #100240 11:27 AM, 09 May 2019
    Подскажите плиз. Хочу из кх запроса достучаться через odbc('DSN=..', 'table') до посгре. Но не могу найти clickhouse-odbc-bridge. Где он лежит?
  • https://t.me/clickhouse_ru
    обычно рядом с clickhouse
    какая ОС?
    откуда взят и как поставлен clickhouse ?
  • https://t.me/clickhouse_ru
    все нашел его. не туда смотрел.
    другой вопрос, я создал таблицу в ch ODBC(...) которая ходит в pg. В pg большая таблица. Я делаю
    SELEC * FROM big_table_odbc LIMIT 1

    Но запрос выполняется оченьь долго. Правильно я понимаю что limit 1 не в pg исполняется?
  • https://t.me/clickhouse_ru
    @rasstr0en #100243 12:28 PM, 09 May 2019
    Привет! А возможно ли, что при записи в ReplacingMergeTree уникальных данных, при очередном селекте попадаются одинаковые строки (при этом вставляли эту строку только 1 раз) ?
  • https://t.me/clickhouse_ru
    @rasstr0en #100244 12:28 PM, 09 May 2019
    без реплик
  • https://t.me/clickhouse_ru
    @rasstr0en #100245 12:28 PM, 09 May 2019
    то есть вставленная 1 раз строка внезапно в select * 2 раза видна
  • @EJ_qq #100246 12:43 PM, 09 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    Нет, что записали то и читаем. Если это так, то это как минимум былабы awful error #2. Читаете пишете в обычную не distributed таблицу?
  • https://t.me/clickhouse_ru
    Дебажу сейчас, очень редкий кейс - записали 10 строк, получили 11 в селекте, пока грешу может на ретрай какой-нибудь не к месту в коде
  • @381244074 #100249 01:30 PM, 09 May 2019
    Есть простая merge tree таблица на 10 ярдов строчек. Сделал materialized view для неё. Не подскажите, как теперь наполнить (materialized view) ?
  • https://t.me/clickhouse_ru
    Оно наполняется само инсертами.
  • А через какое время, не подскажите?
  • @381244074 #100252 01:34 PM, 09 May 2019
    Мне нужно, чтобы эти все 10 ярдов наполнились
  • https://t.me/clickhouse_ru
    @Yuri_Velgosha #100253 01:35 PM, 09 May 2019
    Дык только новые записи появятся. Мат вью работает как триггер на вставку в классическом sql.
  • Понятно, спасибо. А старые наверное нужно перезаливать - только так старые вставятся
  • @381244074 #100255 01:36 PM, 09 May 2019
    Другого нет пути?
  • https://t.me/clickhouse_ru
    тупо заинсертить в MV тем же селектом что и в MV
  • Спасибо
  • https://t.me/clickhouse_ru
    @tratatataass #100258 01:53 PM, 09 May 2019
    а я не могу делать вставки из ch через odbc?
    insert into test_odbc VALUES(100,'odbc')

    INSERT INTO test_odbc VALUES

    Received exception from server (version 19.8.1):
    Code: 86. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Received error from remote server /. HTTP status code: 500 Internal Server Error, body: No 'query' in request body
  • @basharimovvv #100259 02:30 PM, 09 May 2019
    Joined.
  • @weery28 ↶ Reply to #99516 #100261 03:27 PM, 09 May 2019
    Кажется, я столкнулся с таким же, моментально сбрасывает...
  • https://t.me/clickhouse_ru
    нашел вот такое решение https://github.com/Percona-Lab/clickhousedb_fdw попробую
    GitHub - Percona-Lab/clickhousedb_fdw: PostgreSQL's Foreign Data Wrapper For ClickHouse

    PostgreSQL's Foreign Data Wrapper For ClickHouse. Contribute to Percona-Lab/clickhousedb_fdw development by creating an account on GitHub.

  • @RostyslavM #100263 05:23 PM, 09 May 2019
    Доброго вечера, подскажите пожалуйста мануал по Distributed tables. Из найденного описано довольно скудно. Создать получается но данные не распространяются по кластеру, только внутри шарда, где были добавлены.
  • https://t.me/clickhouse_ru
    https://tech.marksblogg.com/billion-nyc-taxi-rides-clickhouse-cluster.html

    <remote_servers>
    <perftest_3shards>
    perftest_3shards -- 3 Шарда по одной реплике в каждом

    CREATE TABLE trips_mergetree_x3
    AS trips_mergetree_third
    ENGINE = Distributed(perftest_3shards,
    default,
    trips_mergetree_third,
    rand());
  • https://t.me/clickhouse_ru
    @den_crane #100265 05:34 PM, 09 May 2019
    Если локально видно только часть данных, значит надо смотреть лог почему Distributed таблица не может вставить в шарды
  • @RostyslavM #100266 05:36 PM, 09 May 2019
    @den_crane спасибо. Попробую.
  • 10 May 2019 (78 messages)
  • @829396817 #100268 06:20 AM, 10 May 2019
    Joined.
  • @nbusorgin #100269 06:25 AM, 10 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @ikostukovski #100271 07:32 AM, 10 May 2019
    Всем привет, столкнулись с такой проблемой сегодня, по сети отвалилась нода кликхауса и все запросы по Distributed таблицам упали с сетевой ошибкой no route to host

    ClickHouse server version 18.14.15 revision 54409

    Code: 209, e.displayText() = DB::NetException: Timeout exceeded while reading from socket (10.2.0.141:9000), e.what() = DB::NetException
    Code: 210, e.displayText() = DB::NetException: Net Exception: No route to host: (xxxx:9000, 10.2.0.141), e.what() = DB::NetException

    соотвествонно вопросы
    1) баг или фича?
    2) спасет ли появление реплик от подобного?
  • https://t.me/clickhouse_ru
    @stufently #100272 07:36 AM, 10 May 2019
    1)ну а какое поведение вы ожидали, если такое то фича, если не такое то для вас это баг , на деле так и долэжно быть
  • https://t.me/clickhouse_ru
    @stufently #100273 07:36 AM, 10 May 2019
    если хоть одна реплик доступна дистрибьютед туда запишет
  • https://t.me/clickhouse_ru
    @ikostukovski #100274 07:36 AM, 10 May 2019
    это селекты
  • https://t.me/clickhouse_ru
    @stufently #100275 07:36 AM, 10 May 2019
    ну а какое вы поведение ожидаете для селектов 7
  • https://t.me/clickhouse_ru
    @stufently #100276 07:36 AM, 10 May 2019
    у вас нет половины данных , что по вашему должен отдавать кликхаус 67
  • https://t.me/clickhouse_ru
    @ikostukovski #100277 07:37 AM, 10 May 2019
    ну половина громко сказано )
  • https://t.me/clickhouse_ru
    @stufently #100278 07:37 AM, 10 May 2019
    ну треть
  • https://t.me/clickhouse_ru
    @stufently #100279 07:37 AM, 10 May 2019
    то есть вас устраивает ответ в половиной данных ? тогда зачем вам дистрибьютед таблица то ?
  • https://t.me/clickhouse_ru
    @stufently #100280 07:38 AM, 10 May 2019
    запрашивайте напрямую с ноды
  • https://t.me/clickhouse_ru
    @ikostukovski #100281 07:38 AM, 10 May 2019
    там не половина а капля)
  • https://t.me/clickhouse_ru
    @ikostukovski #100282 07:38 AM, 10 May 2019
    а основной вопрос был вторым
  • https://t.me/clickhouse_ru
    @ikostukovski #100283 07:38 AM, 10 May 2019
    если будет аналогичная реплика то будет ли no route to host
  • https://t.me/clickhouse_ru
    @stufently #100284 07:38 AM, 10 May 2019
    ну то ест ьу вас тысяча шардов в этой дистрибьютед таблице? или вы специально туда мало ложите
  • https://t.me/clickhouse_ru
    @stufently #100285 07:38 AM, 10 May 2019
    будет на отвалившуюся , потом запрос уйдет к другой
  • https://t.me/clickhouse_ru
    @ikostukovski #100286 07:39 AM, 10 May 2019
    да. шардов много, данных много
  • https://t.me/clickhouse_ru
    это прдположение или задокументированная фича?
  • https://t.me/clickhouse_ru
    @stufently #100289 07:41 AM, 10 May 2019
    это обычное поведение кликхауса
  • https://t.me/clickhouse_ru
    @stufently #100290 07:41 AM, 10 May 2019
    нахрена тогда нужны были бы реплики
  • https://t.me/clickhouse_ru
    @ikostukovski #100291 07:44 AM, 10 May 2019
    ну мы с дистрибуютед таблицами работаем с первых публичных релизов практически, и очень много фич с ними не работают
  • https://t.me/clickhouse_ru
    @ikostukovski #100292 07:44 AM, 10 May 2019
    поэтому вопрос не с потолка
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @ikostukovski #100294 09:49 AM, 10 May 2019
    спс, а по второй части про реплику? именно no route to host с ней обработается?
  • https://t.me/clickhouse_ru
    @den_crane #100298 09:57 AM, 10 May 2019
    Left.
  • https://t.me/clickhouse_ru
    Да
  • https://t.me/clickhouse_ru
    @ikostukovski #100300 10:21 AM, 10 May 2019
    Спс
  • @362726211 #100301 10:36 AM, 10 May 2019
    Joined.
  • @362726211 #100302 10:36 AM, 10 May 2019
    здравствуйте! подскажите кто-то использовал clickhouse в проекте symfony + doctrine? проблема в том, что при вызове flush вызывается метод beginTransaction, а реализация этого метода в FriendsOfDoctrine/dbal-clickhouse бросает исключение.
  • @spavlovichev #100303 11:41 AM, 10 May 2019
    @R0m3g Не думаю что использовать доктрину и clickhouse хорошая идея. Я бы использовал dbal отдельно есть сильно надо.
  • https://t.me/clickhouse_ru
    @241186216 #100304 12:20 PM, 10 May 2019
    Поправте, если не правильно понимаю как кх делает join. Он всегда делает hashjoin. Правую таблицу закачивает в память и сканирует левую.т.е если в join три таблицы A B C, то сначала в память C. Потом читаем C и результат join в памяти. И последней читаем A
  • https://t.me/clickhouse_ru
    все правильно, так и задумано.
  • @424406428 #100306 12:48 PM, 10 May 2019
    Joined.
  • @apmareggoh #100307 12:48 PM, 10 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @fruktik #100308 12:51 PM, 10 May 2019
    Joined.
  • @milovidov_an #100309 02:27 PM, 10 May 2019
    Joined.
  • @milovidov_an #100310 02:27 PM, 10 May 2019
    /start@combot
  • https://t.me/clickhouse_ru
    @stovm #100314 02:30 PM, 10 May 2019
    Всем привет.
    Подскажите, пожалуйста, если у меня версия младше той, где появилось KILL MUTATION, но есть незавершённые мутации типа
    DELETE FROM table WHERE dt = ‘$date’, что делать, чтобы избавиться от этих мутаций и добиться того, чтобы они выоплнились?
  • https://t.me/clickhouse_ru
    @stovm #100315 02:31 PM, 10 May 2019
    Висят уже 3 часа. Нагрузки нет. DETACH/ATTACH не помог
  • https://t.me/clickhouse_ru
    @stovm #100316 02:31 PM, 10 May 2019
    Причём висят только на 1 шарде, - на остальных всё ок. Есть идеи?
  • https://t.me/clickhouse_ru
    поле is_done там в 1? Если да - по-моему, всё ок
  • https://t.me/clickhouse_ru
    @volyx #100318 02:55 PM, 10 May 2019
    здравствуйте, а скажите, можно ли статистику по запросу из java драйвера получить?

    https://github.com/yandex/clickhouse-jdbc
  • https://t.me/clickhouse_ru
    @volyx #100319 02:59 PM, 10 May 2019
    Например вот такое 0 rows in set. Elapsed: 15.616 sec. Processed 41.86 billion rows, 83.72 GB (2.68 billion rows/s., 5.36 GB/s.)
  • https://t.me/clickhouse_ru
    @evsign ↶ Reply to #100316 #100320 03:04 PM, 10 May 2019
    Попробуйте рестартнуть кх
  • https://t.me/clickhouse_ru
    @stovm ↶ Reply to #100320 #100321 03:04 PM, 10 May 2019
    Это точно поможет. Вопрос в том, как сделать без рестарта
  • https://t.me/clickhouse_ru
    Не поможет :-)
  • https://t.me/clickhouse_ru
    В смысле, в system.mutations оно таки лежит после рестарта
  • https://t.me/clickhouse_ru
    Обновится
  • https://t.me/clickhouse_ru
    @stovm #100325 03:15 PM, 10 May 2019
    🙂
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @stovm ↶ Reply to #100326 #100327 03:17 PM, 10 May 2019
    Мне там удалить вообще немного. На диске около 20 Тб свободно
  • https://t.me/clickhouse_ru
    @stovm #100328 03:18 PM, 10 May 2019
    Какая-то грусть-печаль
  • https://t.me/clickhouse_ru
    В моём случае - парты мелкие, точно меньше объёма, при котором не работает удаление
  • https://t.me/clickhouse_ru
    >Мне там удалить вообще немного
    вообще ни при чем.

    >На диске около 20 Тб свободно
    тоже ни при чем.

    дело в размере партов
  • https://t.me/clickhouse_ru
    общий объём файлов одной таблицы, из которой удаляли ошибочные данные (порядка 5-10%) - чуть больше 200кб
  • https://t.me/clickhouse_ru
    Другой вопрос, что у меня данные мутации уже отработали и просто висят в таблице system.mutations
  • https://t.me/clickhouse_ru
    @den_crane #100333 03:21 PM, 10 May 2019
    Любая мутация не завершится для партов

    select * from system.parts where bytes_on_disk > (select toInt64(value) from system.merge_tree_settings where name = 'max_bytes_to_merge_at_max_space_in_pool')
  • https://t.me/clickhouse_ru
    @stufently #100334 03:22 PM, 10 May 2019
    Кстати да, если уменьшить неожиданно этот параметр и есть парты больше его то они не мутируют, но мне кажется тогда бы и на остальных не шло
  • https://t.me/clickhouse_ru
    @stovm ↶ Reply to #100333 #100335 03:22 PM, 10 May 2019
    0 rows in set.
  • https://t.me/clickhouse_ru
    @stufently #100336 03:22 PM, 10 May 2019
    Ещё вариант не хватает свободного места его должно быть 2х размера парта
  • https://t.me/clickhouse_ru
    а в system.replication_queue они есть? MUTATION . ..
  • https://t.me/clickhouse_ru
    @stovm #100338 03:24 PM, 10 May 2019
    есть
  • https://t.me/clickhouse_ru
    @stovm #100339 03:24 PM, 10 May 2019
    last_exception: Code: 159, e.displayText() = DB::Exception: Timeout exceeded: elapsed 300.002097769 seconds, maximum: 300, e.what() = DB::Exception
  • https://t.me/clickhouse_ru
    @stovm #100340 03:24 PM, 10 May 2019
    Мммм
  • https://t.me/clickhouse_ru
    @stovm #100341 03:24 PM, 10 May 2019
    Мутация не прошла за таймаут и упала?
  • https://t.me/clickhouse_ru
    @den_crane #100342 03:26 PM, 10 May 2019
    Да вообще там не должно быть таймаута, сколько угодно времени может выполняться, какая версия КХ?
  • https://t.me/clickhouse_ru
    @stovm #100343 03:28 PM, 10 May 2019
    18.16.1
  • https://t.me/clickhouse_ru
    @stovm #100344 03:28 PM, 10 May 2019
    У нас на 300 секунд выставлен max_execution_time
  • https://t.me/clickhouse_ru
    @stovm #100345 03:28 PM, 10 May 2019
    На кластере прямо
  • https://t.me/clickhouse_ru
    странно это, можно наверное поменять для пользователя default отдельным профилем
  • https://t.me/clickhouse_ru
    @stovm #100347 03:39 PM, 10 May 2019
    rows: 1482773149
    bytes_on_disk: 62247843213
    data_compressed_bytes: 62098329628
    data_uncompressed_bytes: 292985793130
  • https://t.me/clickhouse_ru
    @stovm #100348 03:39 PM, 10 May 2019
    С таким партом мучается
  • https://t.me/clickhouse_ru
    @stovm #100349 03:39 PM, 10 May 2019
    num_tries: 14
    last_exception: Code: 159, e.displayText() = DB::Exception: Timeout exceeded: elapsed 300.002129019 seconds, maximum: 300, e.what() = DB::Exception
    last_attempt_time: 2019-05-10 18:34:36
  • @artemyij #100350 04:09 PM, 10 May 2019
    Joined.
  • @794972431 #100351 08:02 PM, 10 May 2019
    Joined.
  • @801249931 #100353 09:09 PM, 10 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @DavidAvagimyan #100354 09:59 PM, 10 May 2019
    Всем привет! немного не по теме есть сеньеры golang или люди с большим опытом по работе с сетью на этом языке?
  • 11 May 2019 (47 messages)
  • @fromnowheretonoplace #100355 12:20 AM, 11 May 2019
    Joined.
  • @392563009 #100356 07:42 AM, 11 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    вам сюда https://t.me/gogolang
  • @pavel_maksimow #100358 09:41 AM, 11 May 2019
    Подскажите пожалуйста, в чем проблемка.

    Не делается UPDATE, когда есть столбец типа Array(DateTime)

    ALTER TABLE db.t UPDATE PurchaseDateTime = ['2018-05-28 10:04:12'], PurchaseID = ['145194'], PurchaseRevenue = [3550] WHERE VisitID = 6373188956342199024

    Code: 386, e.displayText() = DB::Exception: There is no supertype for types String, DateTime because some of them are String/FixedString and some of them are not
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #100359 09:42 AM, 11 May 2019
    Что значит не делается? Пишет ошибку или что?
  • забыл добавить ошибку, добавил в сообщение выше
  • https://t.me/clickhouse_ru
    @stufently #100361 09:44 AM, 11 May 2019
    Ну у вас типы не те
  • как нужно в запросе написать, чтоб выполнился запрос?
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #100363 09:46 AM, 11 May 2019
    Обернуть строки в массиве в toDateTime
  • спасибо, получилось
  • https://t.me/clickhouse_ru
    @241186216 #100365 11:03 AM, 11 May 2019
    Подскажите какой тип данных использовать ,если хотим логи хранить в КХ. И стоит ли ?
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #100366 11:34 AM, 11 May 2019
    Нужно больше деталей. Это как хочу машину, тут много нюансов. Посмотрите в доке примеры тестовых данных https://clickhouse.yandex/docs/ru/getting_started/example_datasets/ontime/
  • @inscaven #100367 12:03 PM, 11 May 2019
    товарищи, подскажите! можно ли отключить ограничение в 100 млн для range? если да, то какая настройка? что-то не нашел…
  • https://t.me/clickhouse_ru
    Захардкожено. Покажите пример для чего вам.
  • @VitalVas #100369 12:26 PM, 11 May 2019
    есть ли какой-то механизм или скрипт, чтоб перегнать данные с elasticsearch в ch как разовое мероприятия?
  • У logstash есть clickhouse-output например
  • @VitalVas #100371 12:40 PM, 11 May 2019
    у меня нет логстеша
  • @VitalVas #100372 12:40 PM, 11 May 2019
    есть старая система, куда когда-то писалось
  • Не вдаваясь в подробности, я делаю из такой таблички
    id dates
    1 2019-04-01,2019-04-05,2019-04-07
    2 2019-04-28,2019-05-02

    вот такую

    id dates
    1 2019-04-01,2019-04-02,2019-04-03,2019-04-04,2019-04-05,2019-04-06,2019-04-07
    2 2019-04-28,2019-04-29,2019-04-30,2019-05-01,2019-05-02

    используя range от первой до последней даты
    Только периоды у меня порядка года, и строк сотни тысяч, поэтому вылетает исключение
  • @whetherharder #100374 12:45 PM, 11 May 2019
    Готового решения нет, но если сможете выгрузить данные в jsoneachrow (это ближе всего к es) формате в файлы -- можно их залить clickhouse-client ом
  • @whetherharder #100375 12:46 PM, 11 May 2019
    Хотя, имхо,проще логстеш поднять
  • https://t.me/clickhouse_ru
    set max_block_size=10

    а зачем это? вы хотите потом для каждой даты найти что-то ? есть специальный словарь
  • да, там для каждой даты считается в каждой строчке свой показатель, потом все суммирую через sumMap
    уже переписал через левый джоин по крайним датам с подготовленной табличкой дата_начало-дата_конец-range_дат
    так вроде даже быстрее работает) нет худа без добра)
  • https://t.me/clickhouse_ru
    @varennik_as #100378 01:47 PM, 11 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @Krapertyinjoin34 #100379 01:52 PM, 11 May 2019
    Joined.
  • @whetherharder #100380 03:43 PM, 11 May 2019
    Подскажите, где бы почитать про состояния агрегатных функций? Интересует:
    1. Как они хранятся в целом?
    2. Во сколько раз должно быть меньше строк после группировки, чтобы выиграть по занимаемому дисковому пространству ?
    3. Есть ли смысл сжимать столбцы с агрегатными функциями ZSTD например ?
  • https://t.me/clickhouse_ru
    1. имхо только в исходниках, я думаю хитро хранятся только uniqState, остальное попроще.
    2. обычно задача уменьшить кол-во строк, раз в 10 минимум, чтобы ускорить выполнение запросов. Т.к. при этом автоматически уменьшается кол-во полей, то выигрыш обычно раз 10 минимум, естественно если тоже самое(строки и поля), сохранить в обычной таблице, то будет примерно тоже самое, или чуть меньше.
    SummingMergeTree стейтов не хранит поэтому он занимает меньше.
    3. ZSTD всегда все жмет лучше, просто жрет больше цпу.

    ну и с uniq-ми например разницы нету https://gist.github.com/den-crane/32cac4f069f4227b35ab86553bbc649b
  • https://t.me/clickhouse_ru
    @ployd #100382 04:27 PM, 11 May 2019
    При вставке в matview из таблицы не разворачиваются ALIAS-ы. Так и задумывалось?
  • https://t.me/clickhouse_ru
    @ployd #100383 04:27 PM, 11 May 2019
    (при этом MATERIALIZED поля разворачиваются)
  • https://t.me/clickhouse_ru
    @ployd #100384 04:30 PM, 11 May 2019
    Cannot use ALIAS columns when inserting into materialized view · Issue #2285 · yandex/ClickHouse

    Reproduce as: CREATE TABLE test1 ( date Date, datetime DateTime, zoneId UInt64, test ALIAS zoneId == 1 ) ENGINE = MergeTree(date, (date, zoneId), 8192); CREATE MATERIALIZED VIEW test1_view ENGINE =...

  • Спасибо за информацию!
  • https://t.me/clickhouse_ru
    @ployd #100386 05:27 PM, 11 May 2019
    Хм. Есть skipping индекс для timestamp_ns. Когда в WHERE включается фильтр по timestamp_ns — он используется. Когда включается toDateTime(timestamp_ns / 1000000000) ... — уж нет.

    Мне кажется, или это когда-то работало?
  • @pavel_maksimow #100387 06:13 PM, 11 May 2019
    Поясните пожалуйста, что произойдет в следующей ситуации. Я делаю запрос на удаление строки и потом вставляю, новую строку, попадающее под условие удаления. Ведь запрос delete не сразу выполняется. Свежевставленную строку КХ тоже удалит? или распознает, что она была вставлена после заказа удаления и не троет её?
  • https://t.me/clickhouse_ru
    @stufently #100388 06:16 PM, 11 May 2019
    новая вставка попадет в новый парт , а его в списке мутаций не будет и строка останется
  • https://t.me/clickhouse_ru
    крайне наврятли
  • https://t.me/clickhouse_ru
    @stufently #100390 06:17 PM, 11 May 2019
    добавьте просто еще одно поле датетайм
  • https://t.me/clickhouse_ru
    @ployd ↶ Reply to #100389 #100391 06:17 PM, 11 May 2019
    Может с основным индексом такое было?
  • https://t.me/clickhouse_ru
    @stufently #100392 06:18 PM, 11 May 2019
    ну в целом непонятно нафиг такое использовать
  • https://t.me/clickhouse_ru
    @ployd #100393 06:18 PM, 11 May 2019
    Да я уже вернулся к materialized timestamp и по нему индекс (
  • https://t.me/clickhouse_ru
    @stufently #100394 06:18 PM, 11 May 2019
    поле с датой много места не займет
  • https://t.me/clickhouse_ru
    @stufently #100395 06:18 PM, 11 May 2019
    выигрыша в вашей идее нет никакого
  • https://t.me/clickhouse_ru
    @ployd ↶ Reply to #100392 #100396 06:18 PM, 11 May 2019
    Обычно выборки нужны по DateTime (всякие графаны и ручками удобнее), но иногда нужны точные выборки с точностью до ns
  • https://t.me/clickhouse_ru
    @ployd ↶ Reply to #100395 #100397 06:18 PM, 11 May 2019
    один индекс вместо двух
  • https://t.me/clickhouse_ru
    @ployd #100398 06:19 PM, 11 May 2019
    а так получается либо нужно оба индекса, либо один индекс и select-ы одновременно по timestamp и timestamp_ns
  • https://t.me/clickhouse_ru
    @stufently #100399 06:19 PM, 11 May 2019
    ну он тоже много не займет
  • спасибо
  • @VitalVas #100401 08:26 PM, 11 May 2019
    Есть возможность сделать при вставке case insensitive для названий колонок?
  • 12 May 2019 (28 messages)
  • https://t.me/clickhouse_ru
    это для рукожопых программистов что ли ? ну сделайте лоукейс или хайкейс для название колонок при вставке у себя просто если они не могут запомнить как правильно называть колонки
  • https://t.me/clickhouse_ru
    @NanoBjorn #100403 08:18 AM, 12 May 2019
    Есть какой-то способ запустить два сервера на одной виртуалке без докера?
  • https://t.me/clickhouse_ru
    @stepan_matrenin #100404 08:23 AM, 12 May 2019
    kvm
  • https://t.me/clickhouse_ru
    @stepan_matrenin #100406 08:23 AM, 12 May 2019
    qemu
  • https://t.me/clickhouse_ru
    chroot достаточно (можно даже и без него, но конфиги придётся править сильнее) + разные порты. Зачем лишние сущности?
  • https://t.me/clickhouse_ru
    справедливо
  • https://t.me/clickhouse_ru
    не, имелось в виду без докера и других виртуализаций
  • https://t.me/clickhouse_ru
    @boombick #100410 08:35 AM, 12 May 2019
    [зануда моде он] докер — это не виртуализация :)
  • https://t.me/clickhouse_ru
    ну ты всё равно меня понял))
  • https://t.me/clickhouse_ru
    @NanoBjorn #100412 08:36 AM, 12 May 2019
    Я хочу просто бинарь прям на месте запускать, потому что пересобираю его локально (докером пересобирать сильно дольше)
  • https://t.me/clickhouse_ru
    @boombick #100413 08:40 AM, 12 May 2019
    ну на разных портах только, да. Можно в chroot/jail утащить для надежности
  • @821833841 #100414 09:56 AM, 12 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    вообще скорость сборки докером, если на локальном пк может быть такой же как и обычная сборка
    там же главное кеш настроить как нужно
  • https://t.me/clickhouse_ru
    @NanoBjorn #100416 10:00 AM, 12 May 2019
    с нуля он у меня значительно дольше собирался, я и не стал даже пробовать
  • https://t.me/clickhouse_ru
    @NanoBjorn #100417 10:00 AM, 12 May 2019
    Понятно, что можно туда смаунтить папку сборки и будет нормальный кэш сборщика
  • https://t.me/clickhouse_ru
    @emakarov #100418 10:00 AM, 12 May 2019
    ну с нуля он наверное все зависимости ставил сначала
    вот их всех в кеш
  • https://t.me/clickhouse_ru
    Я про всё, что начинается после ninja ..., в этот момент он уже должен только собирать
  • https://t.me/clickhouse_ru
    @emakarov #100420 10:05 AM, 12 May 2019
    какой ninja имеется в виду?
  • https://t.me/clickhouse_ru
    сборщик, который ninja-builder
  • https://t.me/clickhouse_ru
    @emakarov #100422 10:18 AM, 12 May 2019
    а, у вас докерфайл кликхауса не оригинальный а 3rd party
  • https://t.me/clickhouse_ru
    э, нет, внутри docker/builder/build.sh используется ninja в качестве сборщика, всё оригинальное
  • https://t.me/clickhouse_ru
    @emakarov #100424 10:22 AM, 12 May 2019
    понятно
  • Всё ещё хуже - некоторые системы игнорируют правильность найменования ключей в json. Вот и приходится по дороге переписывать. А это требует ресурсов. Иногда даже не малых....
  • https://t.me/clickhouse_ru
    @a1exm0 #100430 08:10 PM, 12 May 2019
    Добрый вечер/ночь! Скажите пожалуйста, что быстрее будет работать: 1) пройти всю таблицу через limit n,m ; 2) Сделать ключ семплирования, и пройти по SAMPLE m / n ?
  • https://t.me/clickhouse_ru
    @a1exm0 #100431 08:13 PM, 12 May 2019
    Таблица 70 миллиардов строк примерно.
  • https://t.me/clickhouse_ru
    @vstepankov #100432 08:14 PM, 12 May 2019
    если вас точность при семплировании устраивает, то почему бы и нет?
  • https://t.me/clickhouse_ru
    @a1exm0 #100433 08:16 PM, 12 May 2019
    Хм, а что за точность? Кол-во строк которые вытаскиваются через такой способ(ведь я же могу подобрать размер кусочка, сделаю его достаточно маленьким 1 / 1_000_000 например) или есть вероятность не получить часть строк таким образом итерируясь? В limit меня не устраивает скорость работы, когда offset уже слишком большой
  • https://t.me/clickhouse_ru
    @a1exm0 #100434 11:48 PM, 12 May 2019
    Кажется я не так понял сэмплирование, вопрос снят. Это не то что мне нужно
  • 13 May 2019 (70 messages)
  • @848472961 #100435 05:39 AM, 13 May 2019
    Joined.
  • @822842424 #100437 05:40 AM, 13 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @f0rden ↶ Reply to #100438 #100439 05:41 AM, 13 May 2019
    /report
  • https://t.me/clickhouse_ru
    @f0rden ↶ Reply to #100436 #100440 05:41 AM, 13 May 2019
    /reporr
  • https://t.me/clickhouse_ru
    @f0rden #100441 05:42 AM, 13 May 2019
    @den_crane
  • @706770333 #100444 05:48 AM, 13 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    ща будет спамить
  • @Artem2200 #100451 07:46 AM, 13 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @606215749 #100452 07:55 AM, 13 May 2019
    привет всем!
    пытаюсь поменять параметр max_partitions_per_insert_block
    <max_partitions_per_insert_block>0</max_partitions_per_insert_block>

    но select * from system.settings; всеравно возвращает 100

    что не так делаю?
  • https://t.me/clickhouse_ru
    @606215749 #100453 08:03 AM, 13 May 2019
    нужно ли сервер рестартовать?
  • https://t.me/clickhouse_ru
    @606215749 #100454 08:08 AM, 13 May 2019
    рестарт не помогает
  • https://t.me/clickhouse_ru
    @AlexTru_1 #100455 09:06 AM, 13 May 2019
    Привет! Подскажите пожалуйста, если лефт джойнить на таблицу с enum полем, и нет совпадений то ругается на то что в енум нет значения с "0" это норм или баг?
  • https://t.me/clickhouse_ru
    @AlexTru_1 #100456 09:06 AM, 13 May 2019
    по идеии должен null возвращать не?
  • https://t.me/clickhouse_ru
    @chertus #100457 09:14 AM, 13 May 2019
    можно выставить настройку join_use_nulls - без нее будет вставляться дефолт для данной колонки. с енумами малость непродумано
  • https://t.me/clickhouse_ru
    @AlexTru_1 #100458 09:15 AM, 13 May 2019
    может какой-то костыль есть, что бы он не пытался искать с 0 значением
  • https://t.me/clickhouse_ru
    @AlexTru_1 #100459 09:15 AM, 13 May 2019
    ?
  • https://t.me/clickhouse_ru
    @chertus #100460 09:15 AM, 13 May 2019
    с нулами все работает дороже, если хочется не терять в скорости и есть возможность для всех енумов держать 0 пустым значением - это предпочтительно
  • https://t.me/clickhouse_ru
    @chertus #100461 09:15 AM, 13 May 2019
    костыль - сделать alter на енум и добавить несуществующее значение
  • https://t.me/clickhouse_ru
    @AlexTru_1 #100462 09:16 AM, 13 May 2019
    да, как варик
  • https://t.me/clickhouse_ru
    @AlexTru_1 #100463 09:16 AM, 13 May 2019
    спасибо
  • @dmitriy_negreev #100464 10:01 AM, 13 May 2019
    подскажи, по какой причине при вставке в таблицу из CSV в атрибут DateTime может прибавляться 6 часов?
  • @dmitriy_negreev #100465 10:01 AM, 13 May 2019
    к значению
  • @dmitriy_negreev #100466 10:01 AM, 13 May 2019
    подскажите*
  • https://t.me/clickhouse_ru
    @frankegoesdown #100467 10:02 AM, 13 May 2019
    Коллеги, добрый день
    Подскажите пожалуйста, как лучше заменить строковую колонку, где всего 500к уникальных строк на словарь, как поэтапно это реализовать, хотелось бы хранить индекс, а не целую строку

    табличка овер 30 миллиардов строк

    спасибо большое
  • разобрался, в данных ок, проблема в IDE
  • я бы добавил колонку с hash строки и с ней дальше работал в индексы в другую таблицу и пр.
  • https://t.me/clickhouse_ru
    @nordluf #100471 10:34 AM, 13 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @nordluf #100474 10:50 AM, 13 May 2019
    Привет
    Есть два вопроса:
    - Где можно искать спецов по кликхаусу на ремоут подработку?
    - Тут же есть люди из Альтитнити? Можно с кем-то из продажников пообщаться?
  • https://t.me/clickhouse_ru
    периодически ищут.
    Да и думаю, что многим было услышать о вакансиях, требованиях и компенсации
  • @nisupov #100476 11:09 AM, 13 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @stovm #100477 11:51 AM, 13 May 2019
    Это какой-то настройкой отыгрывается?
    postpone_reason: Not executing log entry for part all_0_2507_10_2676 because source parts size (57.97 GiB) is greater than the current maximum (4.45 MiB).
  • @AlexanderRodin #100478 12:01 PM, 13 May 2019
    Joined.
  • @AS12389 #100479 12:13 PM, 13 May 2019
    Парни, посоветуйте пожалуйста
    Как перевести (toMinute(ts) % 10) * 10 AS t в unix time вида (intDiv(toUInt32(ts), 10) * 10) ?
  • @AS12389 #100480 12:14 PM, 13 May 2019
    Графана не очень умеет аггрегировать
  • @AS12389 #100481 12:20 PM, 13 May 2019
    решилось после прочтения мануала
    toStartOfFiveMinute
  • https://t.me/clickhouse_ru
    @Actant #100482 12:33 PM, 13 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @nikolaev_dev #100483 12:36 PM, 13 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    Привет. помогло.
  • https://t.me/clickhouse_ru
    @goto95 #100487 01:52 PM, 13 May 2019
    Наконец то интересный контент
  • https://t.me/clickhouse_ru
    @f0rden ↶ Reply to #100486 #100488 01:53 PM, 13 May 2019
    @den_crane
  • @nbusorgin #100489 03:03 PM, 13 May 2019
    Привет.
    Выбираю БД под аналитику для IoT-проекта. Сделал proof-of-concept на Кликхаусе, всё отлично работает, но есть два вопроса:

    1. Как правильнее хранить разнородные данные, учитывая что у разных устройств могут быть разные наборы метрик, при чём в любое время этот набор может быть изменён пользователем?
    Один вариант - использовать широкую таблицу по столбцу на каждую метрику и при пользовательских изменениях набора метрик автоматически выполнять ALTER TABLE. Согласно документации операции ADD\DROP COLUMN достаточно дешёвые, пользовательские изменения ожидаются достаточно редко. Правильно ли я понимаю, что в этом варианте основная проблема в максимальном количестве метрик (столбцов)? Или делать туда-сюда ALTER TABLE - не лучшая идея?
    Другой вариант - использовать длинную таблицу со столбцами (timestamp, device_id, metric_id, value). Точнее даже две таблицы - для числовых и строковых значений, или два столбца int_value\string_value. Вопрос в том, будут ли при этом оптимально работать аналитические запросы, 90% которых заключается в расчёте продолжительности интервалов времени по каждому станку, когда Метрика1 = Значение1, Метрика2 > Значение2, и т.п? Количество разных метрик в условиях запроса может доходить до 10.

    2. Подходит ли кликхаус для данных, которые представляют собой не мгновенные события, а продолжительные по времени значения? Например, устройство сообщает изменение состояния только в момент изменения. При этом всё остальное время оно находится в новом состоянии, которое должно учитываться в запросах по интервалам после времени изменения. В TimescaleDB для таких значений есть функция locf: https://docs.timescale.com/v1.3/using-timescaledb/reading-data#locf
    Думал написать подобный запрос на Кликхаусе, но не могу придумать, как сделать без джойнов и всяких order by timestamp desc limit 1, что выглядит нездорово.
    Сейчас решил этот вопрос так: устройства отправляют данные в Кафку, самописный консьюмер читает оттуда данные и пишет в кликхаус ежесекундно. Это позволяет считать продолжительность интервалов простым count'ом. Хотелось бы упростить эту логику, и по возможности избавиться от консьюмера.
  • https://t.me/clickhouse_ru
    @RecycleSup #100490 03:37 PM, 13 May 2019
    Коллеги, добрый вечер. Подскажите, могу ли я как-то посмотреть строку которой создавалась таблица или первичные ключи таблицы?
  • https://t.me/clickhouse_ru
    @litvinsedaya #100491 03:37 PM, 13 May 2019
    show create table {table name}
  • https://t.me/clickhouse_ru
    @wingrime #100492 03:59 PM, 13 May 2019
    коллеги подскажите как число слов в строке извечь?
  • https://t.me/clickhouse_ru
    Так может вам и использовать какую-нибудь ts db?
  • https://t.me/clickhouse_ru
    @leidruid #100494 04:04 PM, 13 May 2019
    Например Victoria metrics
  • @nbusorgin #100495 04:04 PM, 13 May 2019
    Почти все TSDB умеют работать только с числовыми значениями
  • https://t.me/clickhouse_ru
    @leidruid #100496 04:04 PM, 13 May 2019
    Ничего не мешает использовать строковые емнип
  • https://t.me/clickhouse_ru
    @leidruid #100497 04:05 PM, 13 May 2019
    Формат Prometheus вроде позволяет
  • https://t.me/clickhouse_ru
    @lekspyl #100498 04:05 PM, 13 May 2019
    Ребята, привет.

    У меня есть (была?) очень странная проблема с кластером из трех машин.
    При выполнении одного тяжелого topK()-запроса из distributed таблицы весь кластер "падал". Проявлялось это следующим образом: КХ пытался убить запрос, но, похоже, запрос дергался повторно с горизонтально заскейленых сервисов. В конце концов каждая нода КХ начинала ругаться на Too many simultaneous queries, а дальше становилось только хуже: в логах сыпались Unknown packet 227213735 from client и
    DB::NetException: All connection tries failed. Log:

    Code: 32, e.displayText() = DB::Exception: Attempt to read after eof
    Code: 32, e.displayText() = DB::Exception: Attempt to read after eof
    Code: 32, e.displayText() = DB::Exception: Attempt to read after eof
    словом, ноды теряли связь друг с другом до самого рестарта контейнеров.
    Попытки достучаться к кластеру были безуспешны даже во время подключения к ноде по локалхосту. Такое ощущение, будто каждая нода "залипала" — в логах была тишина, процесс был запущен, но никакой активности не наблюдалось.

    У кого-либо была хотя бы приблизительно похожая проблема? Прошу прощения за довольно размытое описание.
  • https://t.me/clickhouse_ru
    @leidruid #100499 04:05 PM, 13 May 2019
    Возможно, часть строковых метрик на самом деле и не метрики
  • https://t.me/clickhouse_ru
    select length(splitByChar(' ', replace('строка со словами', ' ', '')))
  • https://t.me/clickhouse_ru
    спасибо
  • @nbusorgin #100502 04:13 PM, 13 May 2019
    Строковые можно использовать в тегах, но при этом получается тьма комбинаций, что не рекомендуется в TSDB. В нашем юзкейсе большинство запросов можно сравнить с OLAP-кубом, где в качестве дименшенов используются различные строковые "метрики" (лучше наверно их называть телеметриями, так как метрики - это скорее про числовое), а в качестве мер - только продолжительность. Числовые данные нужны редко и в основном тоже в дименшенах, а не в результатах.
  • @nbusorgin #100503 04:15 PM, 13 May 2019
    Запросы практически всегда вида: "как долго устройство было в Состоянии 1, в Режиме 2, в Статусе 3, в ФазеЛуны 4", и у Состояния\Режима\Статуса\ФазыЛуны может быть до пары десятков возможных значений (у каждого из параметров).
  • https://t.me/clickhouse_ru
    1
    >Метрика1 = Значение1, Метрика2 > Значение2
    для таких запросов лучше много столбцов (каждая метрика = колонка), возможно я бы для каждого типа девайса сделал свою таблицу, со своим набором столбцов

    2 collapsing / aggregating
  • https://t.me/clickhouse_ru
    у меня в подвале стук. Похоже на своппинг
  • @KciNKh #100506 04:34 PM, 13 May 2019
    Подскажите пожалуйста секция yandex\zookeeper-servers применяентся автоматически при перечитывании конфигурации или нет?
    пытаемся перехать на другие физ-сервера ZooKeeper, а КХ подключается к старым zk-нодам. нужно весь КХ кластер рестартовать?
  • https://t.me/clickhouse_ru
    а лучше так: select length(splitByChar(' ', replaceRegexpAll('строка со словами', '[ \t]+', ' ')))
  • https://t.me/clickhouse_ru
    Да, нужно.
  • @KciNKh ↶ Reply to #100508 #100509 04:36 PM, 13 May 2019
    спасибо.
    печально...
  • Спасибо!
    Про отдельную таблицу для каждого типа тоже думал, для некоторых кейсов хороший вариант, но бывают устройства из одной серии, но разных версий, с небольшими различиями в столбцах. В таком случае поддерживать несколько таблиц будет проблемно.

    По п.2. Collapsing ведь поможет только если необходимо хранить последнее состояние? А если старые данные тоже нужны?
    Допустим в таблице есть две строки со значениями ('2000-01-01 02:30:00', 'V1') и ('2000-01-01 04:20:00', 'V2').
    И хотим запросить как долго было значение V1 в интервале от 2000-01-01 01:00:00 до 2000-01-01 03:00:00. В результате должно получиться 30 минут.
  • https://t.me/clickhouse_ru
    @stovm #100511 05:22 PM, 13 May 2019
    После апдейта на последнюю версию проблемы с зависшими мутациями прошли. Более того, мутации успешно выполнились
  • @Derzkii_SPooN #100512 06:00 PM, 13 May 2019
    всем привет, не поможете ли с такой проблемой.
    мы закачали в кх табличку с datetime, а при запросах в нее видим, что все datetime сдвинуты на 3 часа назад, не подскажете, как такое можно поправить?
  • https://t.me/clickhouse_ru
    @sirnie_sosisochki #100513 06:16 PM, 13 May 2019
    Попробуйте SELECT toUnixTimestamp(time_field) и сравните
  • @githubreleases_bot #100514 b o t 06:49 PM, 13 May 2019
    yandex/ClickHouse tagged: v19.4.5.35-stable
    Link: https://github.com/yandex/ClickHouse/releases/tag/v19.4.5.35-stable
    Release notes:
    v19.4.5.35-stable
    yandex/ClickHouse

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

  • @DivPro ↶ Reply to #100515 #100516 07:17 PM, 13 May 2019
    ох уж эти московские пробки 😜
  • https://t.me/clickhouse_ru
    @120048309 #100517 08:48 PM, 13 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @120048309 #100518 08:53 PM, 13 May 2019
    Привет, подскажите, пожалуйста, что делаю не так.
    Запрос с таким select:
    SUM(IF(type = 1, income, 0)) as incomeFirst,
    SUM(IF(type = 2, income, 0)) as incomeSecond,
    SUM(IF(type = 3, income, 0)) as incomeThird

    В ответ получаю ошибку:
    Aggregate function SUM(IF(equals(type, 2), income, 0)) is found inside another aggregate function in query.

    Спасибо.
  • https://t.me/clickhouse_ru
    sumIf(column, cond)
  • 14 May 2019 (115 messages)
  • @kruteev #100521 05:57 AM, 14 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @birdmanp #100522 05:58 AM, 14 May 2019
    Всем привет!
  • https://t.me/clickhouse_ru
    @birdmanp #100523 05:58 AM, 14 May 2019
    Посыпалась сегодня вот такая ошибка ночью
  • https://t.me/clickhouse_ru
    @birdmanp #100524 05:59 AM, 14 May 2019
    HttpCode:500 ; ;Poco::Exception. Code: 1000, e.code() = 2, e.displayText() = File not found: /var/lib/clickhouse/data/backisback/import_reports_temp_1557806640/session_duration_3600.bin
  • https://t.me/clickhouse_ru
    @birdmanp #100525 06:00 AM, 14 May 2019
    С чем может быть связано? Проблема исключительно с этой таблицей. Сапорт Яндекс облака не помог и отправил в чат
  • https://t.me/clickhouse_ru
    @birdmanp #100526 06:00 AM, 14 May 2019
    Или как диагностировать причину? Был бы очень благодарен за помощь!
  • https://t.me/clickhouse_ru
    @akimrx #100527 06:47 AM, 14 May 2019
    Joined.
  • @dosereda #100528 07:44 AM, 14 May 2019
    Утро доброе,
    есть вопрос в отношении связки Grafana + ClickHouse - настраиваю variables в Grafana - variables достаются из таблицы ClickHouse и передаются в запрос строчкой WHERE Position ='$position' - все вполне работает. но, не удается добиться того, чтобы по умолчанию выводились все значения, без этих условий, т.е. по умолчанию нужно, чтобы запрос выдавался полностью, без WHERE, а вот уже при выбраных variables срабатывала сортировка.
    Есть обходной вариант с LIKE '%' (добавить в таблицу значение all = % не проблема, тем более. что в дальнейшем заместо таблицы будет словарь) но, может кто подскажет как это реализовать не прибегая к LIKE
  • https://t.me/clickhouse_ru
    Можно что-нибудь типа WHERE Position = coalesce('$position', Position), а в параметр null по дефолту прокидывать
  • https://t.me/clickhouse_ru
    Доброго утра! может не так понял, но чем плох in?
    например,
    where system in ($systems)
    в настройках переменной установить галку "include All option"
  • https://t.me/clickhouse_ru
    @ondanna #100531 08:18 AM, 14 May 2019
    например такая настройка переменной
  • https://t.me/clickhouse_ru
    @newsettler #100532 08:18 AM, 14 May 2019
    Подскажите, пожалуйста, есть ли какие-то рекомендации по настройке файловой системы, на которой расположены базы? Что-то у меня зачастила ситуация "D 53198 [xfsaild/dm-4]" на диске с базой.
  • Плох лишь тем, что я этим никогда не пользовался, спасибо, протестирую..
  • https://t.me/clickhouse_ru
    @ondanna #100534 08:27 AM, 14 May 2019
    понятно 🙂 при выборе All конструкция вида "system in ($systems)" будет заполнена автоматически всеми значениями из переменной systems то есть на выходе в БД отправится чтото вроде "system in ('1','2','3')"
  • https://t.me/clickhouse_ru
    @deni10o #100535 09:31 AM, 14 May 2019
    Кажется в доке https://clickhouse.yandex/docs/ru/query_language/create/#create-view неточность. Сказано "При создании материализованного представления, нужно обязательно указать ENGINE - движок таблицы для хранения данных." при этом ENGINE необязательный параметр
  • Можно указать Engine=Null
  • @vasya_p0pkin #100537 09:45 AM, 14 May 2019
    Он вроде и есть и нет )
  • https://t.me/clickhouse_ru
    @deni10o #100538 09:46 AM, 14 May 2019
    Можно вообще ничего не указывать и это работает. А вот в доке сказано что нужно обязательно указывать
  • так же, однако, у нас табло ходит с помощью odbc в кликхаус, там все нормально
  • https://t.me/clickhouse_ru
    @Deparus #100540 11:03 AM, 14 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @dmitryq #100541 11:09 AM, 14 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @shapeshifter08 #100542 11:12 AM, 14 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @606215749 #100543 11:15 AM, 14 May 2019
    Коллеги, столкнулся с проблемой

    есть AggregatingMergeTree с несколькими колонками. одни считают униральные значение, вторые общее количество

    uniqIfState(id, type = 'SEND')
    countIfState(type = 'SEND')
    ...

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

    так вот при селекте из аггрегированной таблицы

    select uniqIfMerge, countIfMerge ...

    не хватает данных по countIf
    сравнивая результаты с MergeTree таблицой

    ошибок в логах естественно никаких нет

    сталкивался ктонибудь с такой проблемой?
  • https://t.me/clickhouse_ru
    Поле type в первичном ключе?
  • https://t.me/clickhouse_ru
    нет, не входит
  • https://t.me/clickhouse_ru
    Ну в таймзону переводит ваш клиент из utc. Java jdbc?
  • делаем запросы через clickhouse-client на машине, там возможно и jdbc.а как сделать так, чтобы клиент не переводил, а показывал как есть?
  • https://t.me/clickhouse_ru
    Ну вот, в какой-то момент type у вас вычисляется в any() и приехали.
  • https://t.me/clickhouse_ru
    Какой клиент?
  • Command-line Client
  • https://t.me/clickhouse_ru
    Jdbc никак.
  • https://t.me/clickhouse_ru
    должно быть в составе?
  • https://t.me/clickhouse_ru
    Да
  • https://t.me/clickhouse_ru
    спасибо ! я всю голову уже сломал
  • https://t.me/clickhouse_ru
    TZ=UTC clickhouse-client --use_client_time_zone=1 
  • @suoenrorre #100556 11:46 AM, 14 May 2019
    Joined.
  • @suoenrorre #100557 11:47 AM, 14 May 2019
    Подскажите, есть ли какие-то преимущества или недостатки друг перед другом у двух движков: MySQL и JDBC (соединяемся также с MySQL)?
  • https://t.me/clickhouse_ru
    Т.е. у вас указано TO
  • так на 6 часов отставать стало
  • https://t.me/clickhouse_ru
    Mysql движок использует либу вкомпиленную прямо в кх. Jdbc это бутерброд из кучи слоев, т.е. несколько медленнее.
  • https://t.me/clickhouse_ru
    ок. Какая tz на сервере и какая на клиенте?
  • https://t.me/clickhouse_ru
    jdbc это отдельное приложение-прокси, т.е. там будет ещё один раунд сериализации-десереализации. по-большому счёту, запросы во внешние базы не должны притаскивать слишком много (десятки миллионов) рядов, так что не должны быть сильно заметны различия
  • Там ещё JDBC использует демона через которого ходит, а не даёт ли он профит в виде пула соединений и т. п. и не открывает ли движок MySQL новое соединение на каждый запрос?
  • https://t.me/clickhouse_ru
    к сожалению я был ленив чтобы заюзать пул коннектов, так что не держит :) будет спрос - можно будет допилить.
  • https://t.me/clickhouse_ru
    В mysql коннект очень дешев и если сессий тысячи то легко решается thread_handling=pool-of-threads
  • @suoenrorre #100567 11:57 AM, 14 May 2019
    ОК, спасибо 👍
  • @githubreleases_bot #100568 b o t 12:09 PM, 14 May 2019
    yandex/ClickHouse tagged: v19.6.2.11-stable
    Link: https://github.com/yandex/ClickHouse/releases/tag/v19.6.2.11-stable
    Release notes:
    v19.6.2.11-stable
    yandex/ClickHouse

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

  • @alekseevgena #100569 12:15 PM, 14 May 2019
    Здравствуйте,

    У меня есть колонка AdditionalJson, в ней хранится Json {}, внутри которого есть проперти object {}
    Из него (вложенного объекта) мне надо вытащить два проперти Id, Name

    Что оптимальнее будет работать? Учитывая что object может быть относительно большого размера
    1) select visitParamExtractString(visitParamExtractString(AdditionalJson, 'object'), 'Id'), visitParamExtractString(visitParamExtractString(AdditionalJson, 'object'), 'Name')

    ИЛИ

    2) — select visitParamExtractString(AdditionalJson, 'object') as obj, visitParamExtractString(obj, 'Id'), visitParamExtractString(obj, 'Name')
  • https://t.me/clickhouse_ru
    @inthrax #100570 02:22 PM, 14 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    Welcome!
  • https://t.me/clickhouse_ru
    я изменил и добавил type в ключ,
    но это не помогает..

    может есть еще идеи?
  • https://t.me/clickhouse_ru
    а sumStateIf(1, ) ?
  • https://t.me/clickhouse_ru
    попробую, спасибо!
    подскажите, где можно почитать про разницу countIfState и countStateIf ?
  • https://t.me/clickhouse_ru
    @vladshevl #100575 03:13 PM, 14 May 2019
    Joined.
  • @mminaev #100576 03:27 PM, 14 May 2019
    Всем привет стлокнулись с проблемой что при запросе в кликхаус(19.6.2.11) через го драйвер приходит timezone UCT, кто нибудь с этим сталкивался?
  • @dosereda #100577 03:31 PM, 14 May 2019
    Подскажите, а каким образом результаты запроса можно разбить на части по значению eventtime - например на промежутки по часу каждый..
  • group by toStartOfHour(eventtime)
  • Пасиба
  • @vasya_p0pkin #100580 03:41 PM, 14 May 2019
    Может кто разъяснить. Использую словарь из flat файла. Не совсем понял ограничения ключа значением 500 000. У меня ключ Uint64, но он натуральный, к примеру номер телефона. То есть в словаре может быть одна запись но ch не даст его использовать. Как использовать подобные словари?
  • https://t.me/clickhouse_ru
    использовать hashed или cache
  • @210324702 #100582 03:49 PM, 14 May 2019
    Code: 87. DB::Exception: Received from localhost:9011, 127.0.0.1. DB::ErrnoException. DB::ErrnoException: Cannot seek through file /var/lib/clickhouse/data/default/marks1718/20170901_20170930_3172_3303_2/mark.bin, errno: 22, strerror: Invalid argument: (while reading column mark): (while reading from part /var/lib/clickhouse/data/default/marks1718/20170901_20170930_3172_3303_2/ from mark 0 with max_rows_to_read = 100)

    что делать в этом случае? увеличивать max_rows_to_read?
  • https://t.me/clickhouse_ru
    @askbox #100583 03:50 PM, 14 May 2019
    Joined.
  • @RostyslavM #100584 03:50 PM, 14 May 2019
    Доброго дня,
    Подскажите, плиз, как вставить одинаковые данные в ReplicatedSummingMergeTree?
    Вот такая строка может быть вставленна неограниченное число раз без изменений?
    ('2019-04-23', 10, 'cloud', 2759, 'vast', 1, 9, 184, 1, 5, 4, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)

    Также в мануале нашел "Параметры дедуплицирования регулируются настройками сервера merge_tree" и все... Может кто-то поделится ссылкой на как и где настроить insert_deduplicate?
  • https://t.me/clickhouse_ru
    версия КХ?

    ошибка постоянная для одного и того же запроса?
  • https://t.me/clickhouse_ru
    clickhouse-client --insert_deduplicate =0
  • @RostyslavM #100587 04:01 PM, 14 May 2019
    @den_crane благодарю!
    Я запускаю clickhouse-client --insert_deduplicate=0
    делаю INSERT INTO Distributed.table
    проверяю
    SELECT SUM(show_count) FROM Distributed.table
    значение без изменений :(
  • clickhouse-server-19.3.3-1.el7.x86_64
    да
  • https://t.me/clickhouse_ru
    аа Distributed, там наверное insert_deduplicate не проталкивается.
    В общем единственно решение нормальное, это добавить поле batch_id и для каждого batch заполнять его uuid каким-нибудь, в ключ не добавлять, чтобы Summing схлопывал
  • @RostyslavM #100590 04:06 PM, 14 May 2019
    @den_crane Благодарю!
  • https://t.me/clickhouse_ru
    @den_crane #100591 04:07 PM, 14 May 2019
    в реальной жизни батчи обычно заполнены разными данными, поэтому такой проблемы нет обычно.
  • @RostyslavM #100592 04:15 PM, 14 May 2019
    Попробую с UUID, в доке описано columns для SummingMergeTree
  • https://t.me/clickhouse_ru
    @den_crane #100593 04:18 PM, 14 May 2019
    по большому счету без разницы есть columns или нет
    Если columns не задан, то ClickHouse суммирует значения во всех столбцах с числовым типом данных, не входящих в первичный ключ.

    т.е. если UUID строка то это не важно, если UUID это число, то оно будет суммироваться, и это тоже не важно
  • Вот полный запрос, джойню по строковому ключу, часть обрабатывает и запинается
    SELECT *
    FROM default.marks1718 AS m
    INNER JOIN default.concept_ege AS ege ON ege.predmet = m.subject_name
    LIMIT 100

    ↘️ Progress: 35.96 million rows, 5.26 GB (3.66 million rows/s., 536.31 MB/s.) Received exception from server (version 19.3.3):
    Code: 87. DB::Exception: Received from localhost:9011, 127.0.0.1. DB::ErrnoException. DB::ErrnoException: Cannot seek through file /var/lib/clickhouse/data/default/marks1718/20170901_20170930_3172_3303_2/control_form_name.bin, errno: 22, strerror: Invalid argument: (while reading column control_form_name): (while reading from part /var/lib/clickhouse/data/default/marks1718/20170901_20170930_3172_3303_2/ from mark 0 with max_rows_to_read = 100).

    0 rows in set. Elapsed: 9.891 sec. Processed 35.96 million rows, 5.26 GB (3.64 million rows/s., 532.26 MB/s.)
  • https://t.me/clickhouse_ru
    @den_crane #100595 04:20 PM, 14 May 2019
    т.е. прилетает insert в replicated КХ считает контрольную сумму от всего блока, сравнивает с сотней последних сумм в ZK и если повтор то откидывает, какой тип движка summing или нет не важно
  • https://t.me/clickhouse_ru
    а если limit 10000 ?
  • Мне не совсем понятен смысл таких ограничений при uint64, почему тогда не uint32 или ограничение на количество, вместо размера?
  • @vasya_p0pkin #100598 04:34 PM, 14 May 2019
    И существует ли запрос для ручного обновления словаря без перезапуска ch?
  • https://t.me/clickhouse_ru
    flat это плоский массив, который жрет память на все элементы до максимального id

    т.е. если во flat будет одна строка с id = 500000, он сожрет в 400000 раз больше памяти чем такой же hashed
  • https://t.me/clickhouse_ru
    system reload dictionary DICT_NAME
    system reload dictionaries сразу все
  • Спасибо за пояснение
  • https://t.me/clickhouse_ru
    создал еще одну таблицу с countStateIf..

    аналогичное поведение в обоих таблицах.

    в какую сторону еще можно посмотреть?
  • https://t.me/clickhouse_ru
    уточню, что данные вставляются из кафки.
    если я вручную вставляю данные в агрегированную таблицу - то countMerge возвращает правильное значение
  • https://t.me/clickhouse_ru
    а запрос какой у MV ?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @ployd #100606 05:12 PM, 14 May 2019
    Какой сейчас наиболее простой способ переименовать столбец?
  • https://t.me/clickhouse_ru
    создать новую таблицу и перелить данные фигурным запросом
  • https://t.me/clickhouse_ru
    FR: Renaming Columns · Issue #146 · yandex/ClickHouse

    Hello! Thank you for the great DBMS! It would be nice to have support of renaming columns. For example: ALTER TABLE table_name RENAME [ COLUMN ] column_name TO new_column_name; or RENAME COLUMN tab...

  • https://t.me/clickhouse_ru
    @ployd ↶ Reply to #100607 #100609 05:24 PM, 14 May 2019
    оу (
  • https://t.me/clickhouse_ru
    в логах нашел, в момен обработки ивента:
    <Information> email_stats.email_events_aggregated_2 (Replicated OutputStream): Block with ID 20190514_3736458929129713781_16658284836114761406 already exists; ignoring it.
  • https://t.me/clickhouse_ru
    т.е. в кафку прилетают уникальные (батчи) строки, а после агрегации они становятся не уникальными?
  • https://t.me/clickhouse_ru
    добавить after old, alter update, drop old
  • https://t.me/clickhouse_ru
    @ployd ↶ Reply to #100612 #100613 05:37 PM, 14 May 2019
    Спасибо, попробую
  • https://t.me/clickhouse_ru
    фактически все ивенты отличаются таймстэмпом и типом. остальные поля (в рамках теста) одинаковые.
    в обычную MergeTree данные вставляются.
    в аггригированной не хватает ивентов

    т.е. вставляем 10 ивентов с одним ID но разным timestamp.
    я ожидаю, что uniqMerge вернет 1, а countMerge 10
    а фактически получаю uniq = 1, count = 2
  • https://t.me/clickhouse_ru
    @606215749 #100615 05:41 PM, 14 May 2019
    причем count может быть и больше, закономерности не установленно.
  • https://t.me/clickhouse_ru
    @606215749 #100616 05:42 PM, 14 May 2019
    пример образный
  • https://t.me/clickhouse_ru
    email_events_aggregated_2 = ReplicatedAggregatingMergeTree

    email_stats.email_events_aggregated_2 Block with ID 20190514_3736458929129713781_16658284836114761406 already exists; ignoring it.

    дедупликация, попробуйте на AggregatingMergeTree
  • https://t.me/clickhouse_ru
    на не реплицируемой?
  • https://t.me/clickhouse_ru
    @den_crane #100619 05:44 PM, 14 May 2019
    да
  • https://t.me/clickhouse_ru
    @606215749 #100620 05:45 PM, 14 May 2019
    ок, спасибо, попробую сейчас
  • @milovidov_an #100621 06:43 PM, 14 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @kuznetsov420 #100622 08:06 PM, 14 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @smaxm #100623 09:07 PM, 14 May 2019
    Коллеги, а как можно посчитать средний прирост значений в соседних строках в столбце?
  • https://t.me/clickhouse_ru
    @smaxm ↶ Reply to #100623 #100624 09:08 PM, 14 May 2019
    Есть ли функция для этого?
  • https://t.me/clickhouse_ru
  • @J0hnSmitt #100626 10:07 PM, 14 May 2019
    Joined.
  • @J0hnSmitt #100627 10:11 PM, 14 May 2019
    Доброго времени суток)
    Столкнулся с проблемой. при создании MATERIALIZED VIEW
    запрос, который отрабатывает в консоли, не работает.
    получаю ошибку вида code: 47, message: Unknown identifier: hash, context: query ...
    это как-то связано с ограничениями VIEW?
    p.s. искользую подзапросы и join
  • https://t.me/clickhouse_ru
    @den_crane #100628 10:19 PM, 14 May 2019
    >p.s. искользую подзапросы и join
    подзапросы не работают в MV, join-ы почти не работают в MV.
    Короче текст в студию
  • https://t.me/clickhouse_ru
    @nonamehobo #100629 10:20 PM, 14 May 2019
    Если делается select c limit n,m, то с диска читается только кусок в котором m записей, или серверу надо через себя как то прогнать все n строк чтобы понять какие m отдать?
  • https://t.me/clickhouse_ru
    да
  • @J0hnSmitt #100633 10:23 PM, 14 May 2019
    как я понимаю нужно всё переделывать?)
  • https://t.me/clickhouse_ru
    да - значит только кусок или всё?=)
  • https://t.me/clickhouse_ru
    да всЕ (прочитает offset, и будет читать пока не прочитает limit) , ну если там был order by, то вообще всЕ будет отсортировано.
  • https://t.me/clickhouse_ru
    спасибо
  • https://t.me/clickhouse_ru
    да переделывать все, подзапросы делать нельзя, джойны не рекомендуется, потому что очень медленно и жрут память.
    И MV это такая on insert trigger. При инсерте пачки строк в таблицу, эта пачка попадает во MV и select применяется к этой пачке, саму таблицу MV не читает.
  • @J0hnSmitt #100638 10:43 PM, 14 May 2019
    понял, спасибо
  • 15 May 2019 (202 messages)
  • https://t.me/clickhouse_ru
    @cpro29a #100639 03:21 AM, 15 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @cpro29a #100640 03:23 AM, 15 May 2019
    Привет. Столкнулся с проблемкой.
    Есть таблица
    create table if not exists bans (
    event_timestamp DateTime,
    event_date materialized toDate(event_timestamp),
    user_id Int64,
    account_id Int64,
    comment String,
    task_id Int64
    ) Engine = ReplacingMergeTree
    partition by event_date
    order by (user_id, account_id);
  • https://t.me/clickhouse_ru
    @cpro29a #100641 03:24 AM, 15 May 2019
    если в неё вставляются две записи с одним и тем же первичным ключом (user_id, account_id), они сразу не схлопываются
  • https://t.me/clickhouse_ru
    @cpro29a #100642 03:24 AM, 15 May 2019
    Это ожидаемо
  • https://t.me/clickhouse_ru
    @cpro29a #100643 03:24 AM, 15 May 2019
    но на табличке висит materialized view
  • https://t.me/clickhouse_ru
    @cpro29a #100644 03:25 AM, 15 May 2019
    create materialized view if not exists bans_by_tasks
    Engine = SummingMergeTree
    partition by (user_id, task_id)
    order by (user_id, task_id)
    as select user_id,
    task_id,
    count(distinct account_id) as banned_cnt
    from bans
    group by (user_id, task_id);
  • https://t.me/clickhouse_ru
    @cpro29a #100645 03:25 AM, 15 May 2019
    в нём тоже появляются две записи
  • https://t.me/clickhouse_ru
    @cpro29a #100646 03:25 AM, 15 May 2019
    и более того, если я оптимизирую первую - в ней записи схлопываются и всё красиво
  • https://t.me/clickhouse_ru
    @cpro29a #100647 03:26 AM, 15 May 2019
    но если оптимизирую вторую, то записи, которые по идее в первой превращались в одну, во второй суммируются. Count становится 2
  • https://t.me/clickhouse_ru
    @cpro29a #100648 03:27 AM, 15 May 2019
    идея была в том, чтобы не агрегировать при запросе каждый раз по всем account_id (что относительно долго)
  • https://t.me/clickhouse_ru
    @cpro29a #100649 03:29 AM, 15 May 2019
    как бы сделать так, чтобы не агрегировать каждый раз по task_id при запросе?
  • https://t.me/clickhouse_ru
    @cpro29a #100650 03:30 AM, 15 May 2019
    хочется как то основную часть в бэкграунде делать матвьюхой, а не в момент запроса пересчитывать
  • https://t.me/clickhouse_ru
    @cpro29a #100651 03:35 AM, 15 May 2019
    да, вопрос снимается. никак нельзя. суммарный счётчик в mv не знает ничего про множество account_id уже учтённых в count.
  • https://t.me/clickhouse_ru
    @ployd ↶ Reply to #100651 #100652 06:08 AM, 15 May 2019
    Можно перейти на aggregatingmergetree и заиспользовать uniq/groupBitmap или вообще uniqExact
  • https://t.me/clickhouse_ru
    @cpro29a #100653 06:08 AM, 15 May 2019
    AggregatingMergeTree для первой таблицы bans?
  • https://t.me/clickhouse_ru
    @ployd #100654 06:09 AM, 15 May 2019
    Для матвью
  • https://t.me/clickhouse_ru
    @ployd #100655 06:10 AM, 15 May 2019
    uniqExactState там хранить
  • https://t.me/clickhouse_ru
    @cpro29a #100656 06:44 AM, 15 May 2019
    что то не вижу в доке такого
  • https://t.me/clickhouse_ru
    @ployd #100657 06:49 AM, 15 May 2019
    Чего именно?
  • https://t.me/clickhouse_ru
    @ployd #100658 06:50 AM, 15 May 2019
    uniqExactState это uniqExact с комбинатором State. Посмотри документацию к aggregatingmt https://clickhouse.yandex/docs/en/operations/table_engines/aggregatingmergetree/#example-of-an-aggregated-materialized-view
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #100659 06:52 AM, 15 May 2019
    Коллеги, а ни у кого не осталось статьи сравнеия кликхауса с другими БД для хранения метрик?
  • https://t.me/clickhouse_ru
    @DmitryZaytsev #100660 06:52 AM, 15 May 2019
    там вроде статья из 2х частей была, не могу найти
  • https://t.me/clickhouse_ru
    спасибо, не знал про такое
  • https://t.me/clickhouse_ru
    @Lana_rybalko #100662 06:59 AM, 15 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    https://www.altinity.com/blog/clickhouse-for-time-series
    https://www.altinity.com/blog/clickhouse-timeseries-scalability-benchmarks
    ClickHouse Crushing Time Series

    Nov 15, 2018Once upon a time we spotted TSBS (https://github.com/timescale/tsbs) -- Time Series Benchmark Suite, started by InfluxDB engineers and polished to perfection by TimescaleDB team. The suite allows to compare apples-to-apples when testing different databases: it is a framework to generate test data, load it to different databases, run test queries, and collect statistics to analyse. We could not resist adding ClickHouse to the list of supported databases. It turned out that ClickHouse --- being a general purpose analytical DBMS -- stands very well against proven time series databases. Those benchmarks highlighted strengths and weaknesses of different technologies. Interested? Let’s dig into details.

  • https://t.me/clickhouse_ru
    @DmitryZaytsev #100664 07:03 AM, 15 May 2019
    благодарю
  • Подскажите, чем groupBitmap отличается от uniqExact ? Читаю доку и не понимаю
  • @whetherharder #100666 07:09 AM, 15 May 2019
    State меньше получается при агрегации ?
  • https://t.me/clickhouse_ru
    @ployd ↶ Reply to #100665 #100667 07:12 AM, 15 May 2019
    скорее groupBitmap можно с uniq сравнивать, оба оценивают мощность
  • https://t.me/clickhouse_ru
    @ployd #100668 07:12 AM, 15 May 2019
    А uniqExact точно её выдаёт, т.к. хранит все значения
  • @Noonesthere #100669 07:13 AM, 15 May 2019
    Joined.
  • @whetherharder #100670 07:22 AM, 15 May 2019
    Ок. А профит в чем?
  • https://t.me/clickhouse_ru
    @ployd #100671 07:24 AM, 15 May 2019
    Профит uniq/groupBitmap? Ну не хранит он все значения
  • @778432675 #100672 07:29 AM, 15 May 2019
    Коллеги, здравствуйте. Есть небольшое недопонимание касательно работы ch. Допустим есть набор данных OnTime, который предлагается в документации. Я хочу выбрать несколько записей. Почему серверная часть обрабатывает всегда больше?
  • @778432675 #100673 07:29 AM, 15 May 2019
    019.05.15 14:28:47.284927 [ 42 ] {f2fff439-e781-4ec2-9584-372e05e9dfdd} <Debug> executeQuery: (from 127.0.0.1:52808) select * from ontime where Y
    ear=1987 limit 3
    2019.05.15 14:28:47.290870 [ 42 ] {f2fff439-e781-4ec2-9584-372e05e9dfdd} <Debug> default.ontime (SelectExecutor): Key condition: (column 0 in [198
    7, 1987])
    2019.05.15 14:28:47.290896 [ 42 ] {f2fff439-e781-4ec2-9584-372e05e9dfdd} <Debug> default.ontime (SelectExecutor): MinMax index condition: unknown
    2019.05.15 14:28:47.290973 [ 42 ] {f2fff439-e781-4ec2-9584-372e05e9dfdd} <Debug> default.ontime (SelectExecutor): Selected 6 parts by date, 3 part
    s by key, 161 marks to read from 3 ranges
    2019.05.15 14:28:47.293151 [ 42 ] {f2fff439-e781-4ec2-9584-372e05e9dfdd} <Trace> default.ontime (SelectExecutor): Reading approx. 1318912 rows wit
    h 2 streams
    2019.05.15 14:28:47.293428 [ 42 ] {f2fff439-e781-4ec2-9584-372e05e9dfdd} <Trace> InterpreterSelectQuery: FetchColumns -> Complete
    2019.05.15 14:28:47.294675 [ 42 ] {f2fff439-e781-4ec2-9584-372e05e9dfdd} <Debug> executeQuery: Query pipeline:
    Limit
    Expression
    Union
    Limit × 2
    Expression
    Filter
    MergeTreeThread

    2019.05.15 14:28:47.326763 [ 42 ] {f2fff439-e781-4ec2-9584-372e05e9dfdd} <Trace> UnionBlockInputStream: Waiting for threads to finish
    2019.05.15 14:28:47.330217 [ 42 ] {f2fff439-e781-4ec2-9584-372e05e9dfdd} <Trace> UnionBlockInputStream: Waited for threads to finish
    2019.05.15 14:28:47.330322 [ 42 ] {f2fff439-e781-4ec2-9584-372e05e9dfdd} <Information> executeQuery: Read 16384 rows,
  • Спасибо. Надо попробовать
  • https://t.me/clickhouse_ru
    @den_crane #100675 08:00 AM, 15 May 2019
    https://clickhouse.yandex/docs/ru/operations/table_engines/mergetree/#primary-keys-and-indexes-in-queries

    Разреженный индекс допускает чтение лишних строк. При чтении одного диапазона первичного ключа, может быть прочитано до index_granularity * 2 лишних строк в каждом блоке данных. В большинстве случаев ClickHouse не теряет производительности при index_granularity = 8192
  • @778432675 #100676 08:01 AM, 15 May 2019
    Спасибо. Буду продолжать наблюдение.
  • https://t.me/clickhouse_ru
    да, на нереплицируемой таблице все ровно работает.
    есть возможность что то подкрутить, чтобы с репликацией заработало?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    спасибо, сейчас попробую
  • https://t.me/clickhouse_ru
    generateUUIDv4() - будет работать?
  • https://t.me/clickhouse_ru
    @606215749 #100681 08:24 AM, 15 May 2019
    или для все записей в батче должен быть одинаковый id?
  • https://t.me/clickhouse_ru
    @606215749 #100682 08:24 AM, 15 May 2019
    CREATE MATERIALIZED VIEW IF NOT EXISTS email_stats.email_events_aggregated_view_2
    TO email_stats.email_events_aggregated_2
    AS

    SELECT toDate(timestamp) as date,
    generateUUIDv4() as batch_id,
    brand_id as brand_id,
    ...
  • https://t.me/clickhouse_ru
    Господа, такой странный вопрос... Есть графана, которая более-менее рисует графики из кликхауса. Есть графит, куда пишутся эвенты, которые показываются в виде аннотаций на графиках. Как-то уже можно избавиться от графита в этом месте? Ну хотя бы в виде какого-нибудь graphite-clickhouse или ещё чего-нибудь подобного? А то получается, что графит - только для эвентов и это несколько неправильно, по-моему.
  • https://t.me/clickhouse_ru
    нет пакета clickhouse-server-base_19.6.2.11_amd64.deb для этой версии. Когда стоит ожидать ?
  • https://t.me/clickhouse_ru
    Работает! спасибо большое за помощь!
  • https://t.me/clickhouse_ru
    @Rainb0wD4sh #100686 09:01 AM, 15 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @crapulent #100687 09:12 AM, 15 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    Мы ивенты храним в эластике, но графики все через графит
  • https://t.me/clickhouse_ru
    У нас практически все графики - напрямую из кликхауса, куда пишет telegraf, так что графит тут лишний уже...
  • https://t.me/clickhouse_ru
    интересно как вы будете алертинг на КХ натягивать =)
  • @RostyslavM #100691 09:27 AM, 15 May 2019
    Подскажите, плиз, такая схема будет работать? И чем лучше батчи собирать для инсерта в применении к кликхаусу?
  • https://t.me/clickhouse_ru
    >батчи собирать
    так а буферные таблицы у вас в схеме разве не для этой цели служат?
  • https://t.me/clickhouse_ru
    @akomiagin #100693 09:30 AM, 15 May 2019
    Лучше через Kafka батчи копить
  • @RostyslavM #100694 09:30 AM, 15 May 2019
    В буфферные таблиц тоже же можно инсерты делать, например по 1000 строк за раз.
  • https://t.me/clickhouse_ru
    попробуйте дергать аннотации из эластика, раз графит не нужен
  • https://t.me/clickhouse_ru
    Таблицы с алертами с теми же полями как в графите - достаточно, по-моему. Разве что поле с автоинкрементом заменить на что-то другое.
  • https://t.me/clickhouse_ru
    Тоже вариант, конечно... Но тут опять добавляется сущность типа "ещё одна бд".
  • https://t.me/clickhouse_ru
    @metikovvadim #100698 09:36 AM, 15 May 2019
    ну, люди и логи хранят в КХ, возможно, получится хранить аннотации в нем
  • https://t.me/clickhouse_ru
    угу. Проблема только в графане, которая (пока?) не умеет брать аннотации из кх.
  • А telegraf пользуете патченый, или обычный, через связку json output format -> kafka -> clickhouse ?
  • https://t.me/clickhouse_ru
    С плугином для записи напрямую в кх. Плугин - слегка патченый уже нами.
  • @dosereda #100702 09:44 AM, 15 May 2019
    К слову, я тестировал вариант через kafka - все работает, но, мне нигде не попадалась информация в отношении количества единовременных клиентов, что подключаются к kafka серверу, опасаюсь, что количества в 500-1000 клиентов kafka уже не выдержит. Поэтому протестировал ещё одну связку telegraf (json output через tcp ) -> filebeat -> kafka -> clickhouse. filebeat так как сейчас через него уже отлавливается syslog. Снова все работает, но выглядит уже монструозно.
  • Через graphite-clickhouse или напрямую ?
  • https://t.me/clickhouse_ru
    напрямую, графит тут полное legacy для того софта, который ещё не переведён на кх.
  • А у телеграфа плагин для ch появился ?
  • https://t.me/clickhouse_ru
    базировались на этом (вроде): https://github.com/r3nic1e/telegraf-clickhouse-plugin
    GitHub - r3nic1e/telegraf-clickhouse-plugin: Output plugin for sending telegraf metrics to clickhouse

    Output plugin for sending telegraf metrics to clickhouse - GitHub - r3nic1e/telegraf-clickhouse-plugin: Output plugin for sending telegraf metrics to clickhouse

  • @whetherharder #100707 09:52 AM, 15 May 2019
    Понял. Спасибо
  • @778432675 #100708 09:56 AM, 15 May 2019
    Ещё интересное наблюдение... есть табличка с настройками движка хранения данных ENGINE = MergeTree() PRIMARY KEY (documentid, workshiftid) ORDER BY (documentid, workshiftid)
  • @778432675 #100709 09:57 AM, 15 May 2019
    Таблица содержит около миллиарда записей. Если я делаю выборку по полю workshiftid, то сканируются все записи. Предположим я знаю их число. Добавив оператор limit, записей обработается серверной частью меньше.
  • тот же результат, похоже на багу, сваливается на~35млн строке

    SELECT *
    FROM default.marks1718 AS m
    INNER JOIN default.concept_ege AS ege ON ege.predmet = m.subject_name
    LIMIT 10000

    ↑ Progress: 35.81 million rows, 5.24 GB (6.50 million rows/s., 950.89 MB/s.) Received exception from server (version 19.3.3):
    Code: 87. DB::Exception: Received from localhost:9011, 127.0.0.1. DB::ErrnoException. DB::ErrnoException: Cannot seek through file /var/lib/clickhouse/data/default/marks1718/20170901_20170930_3172_3303_2/mark.bin, errno: 22, strerror: Invalid argument: (while reading column mark): (while reading from part /var/lib/clickhouse/data/default/marks1718/20170901_20170930_3172_3303_2/ from mark 0 with max_rows_to_read = 1000).

    0 rows in set. Elapsed: 5.534 sec. Processed 35.81 million rows, 5.24 GB (6.47 million rows/s., 946.90 MB/s.)
  • https://t.me/clickhouse_ru
    Так умеет же (я правда не помню точно это из коробки в вертамеади плагине или мы патчили). У нас сейчас полный цикл, включая алертинг работает, telegraf - clickhouse - grafana, без лишних костылей в виде графита, кафки и прочего
  • https://t.me/clickhouse_ru
    Тогда, какие версии у графаны и т.п.?
  • https://t.me/clickhouse_ru
    И эта, не алерты, а эвенты. Это разные вещи. Эвенты могут быть алертами, а могут и не быть. У вас точно эвенты, а не алерты средствами графаны?
  • https://t.me/clickhouse_ru
    @Fiery_Fenix #100714 10:14 AM, 15 May 2019
    И то и другое, если под ивентами подразумевается вывод событий через аннотации на график в графане
  • https://t.me/clickhouse_ru
    ок, значит оно. Посмотрите, пожалуйста, версии того, что относится к графане.
  • https://t.me/clickhouse_ru
    Никогда.
    пакетов clickhouse-server-base и clickhouse-server-common больше не будет.
    У них были непонятные названия.
    Теперь удобнее всего устанавливать clickhouse-client clickhouse-server и все их зависимости ( clickhouse-common-static ) должны устанавливаться автоматически.
  • https://t.me/clickhouse_ru
    @241186216 #100717 10:28 AM, 15 May 2019
    Подскпдите. КХ когда делает вычисления, которые требуют много памяти может сбрасывать на диск или он требует, что бы все в памяти было? Пример таких действий - аггрегатор, сортировка и т.д
  • https://t.me/clickhouse_ru
    Датасорс кх имеет интеграцию с евентами в графане. Ложите всё в кх и вперёд
  • https://t.me/clickhouse_ru
    С какой версии? А то, похоже, пора обновлять...
  • https://t.me/clickhouse_ru
    @newsettler #100720 10:34 AM, 15 May 2019
    Требуется перенести данные за 3 дня из одной графитовской таблицы в другую. Как бы это попроще и наименее затратно сделать? INSERT INTO ... SELECT ... FROM ... WHERE - выжрало все ресурсы сервера, как бы в фоне сделать?
  • @778432675 #100721 10:37 AM, 15 May 2019
    Шальная мысль... создать файл swap на сервере
  • https://t.me/clickhouse_ru
    Графана 6.1.6, vertamedia-clickhouse-datasource 1.8.1, с набором наших фиксов, они вроде не влияют на работу аннотаций
  • https://t.me/clickhouse_ru
    Благодарю! Уже таки нашел в исходниках плугина редактирование аннотаций. Заодно выяснил, что обновлять надо вообще всё и это чревато. Вобщем, повод всё переделать нашелся :-)
  • https://t.me/clickhouse_ru
    @tsvtitan #100724 10:50 AM, 15 May 2019
    Кто подскажет на уровне конфигурации серевера, как поставить kafka_skip_broken_messages=1?
  • @whetherharder #100725 10:50 AM, 15 May 2019
    Подскажите, нет ли у кого решения чтобы генерить ddl из типов полей селекта?
  • https://t.me/clickhouse_ru
    max_bytes_before_external_sort max_bytes_before_external_group_by
    https://clickhouse.yandex/docs/en/query_language/select/#order-by-clause
  • https://t.me/clickhouse_ru
    @yurytrostin #100727 11:48 AM, 15 May 2019
    Joined.
  • @ramun25 #100728 12:04 PM, 15 May 2019
    Есть разница использовать avg или целочисленное деление суммы на количество?
  • https://t.me/clickhouse_ru
    @Miwwa #100729 12:08 PM, 15 May 2019
    Joined.
  • @Valerii_Zhuk #100730 12:12 PM, 15 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    если это номер смены (8 часов) то надо просто сделать партиционирование по функции от этого поля.
  • @efreeman #100733 12:24 PM, 15 May 2019
    салют всем!
    что может быть причиной такого поведения?
  • @efreeman #100734 12:24 PM, 15 May 2019
    почему так много процессов?
  • @efreeman #100735 12:24 PM, 15 May 2019
    и нормально ли это?
  • https://t.me/clickhouse_ru
    @bobrovskiy_roman #100736 12:25 PM, 15 May 2019
    сколько ядер столько и процессов
  • https://t.me/clickhouse_ru
    @solomein #100737 12:25 PM, 15 May 2019
    F2 -> "Display options" -> "Hide userland process threads", не?
  • @efreeman #100738 12:26 PM, 15 May 2019
    и $ sudo service clickhouse-server restart
    Stop clickhouse-server service:

    занимает очень долго
  • @efreeman #100739 12:26 PM, 15 May 2019
    $ nproc
    1
  • минут по 5 жду или вообще не дожидаюсь
  • https://t.me/clickhouse_ru
    а что в логе во время остановки? какое время запуска процессов? возможно это старые висящие
  • https://t.me/clickhouse_ru
    какая версия КХ? Было проблема раньше, КХ ждал завершения мержей. Проверьте iostat в момент остановки, есть i/o или нет, free возможно у вас из свопа поднимается что-то.
  • @efreeman #100743 12:36 PM, 15 May 2019
    ClickHouse client version 18.14.8
  • @efreeman #100744 12:37 PM, 15 May 2019
    $ free -h
    total used free shared buff/cache available
    Mem: 990M 608M 64M 56M 317M 133M
  • @efreeman #100745 12:39 PM, 15 May 2019
    это довольно слабенькая машинка, но тем не менее, он выедает все память, он видимо пока всю память не заберет - эти процессы не остановятся, судя по тому как это сейчас происходит
  • @efreeman #100746 12:43 PM, 15 May 2019
    в файле логов с ошибками ничего, последняя запись пол часа назад. т.е. понять почему он упал нельзя.
  • @efreeman #100747 12:43 PM, 15 May 2019
    в clickhouse-server.log:

    оочень много записей вида:
    2019.05.15 12:40:03.175933 [ 19 ] {} <Debug> events_dev.pub_demand (Data): Removing part from filesystem 1540425600_1_800_160_44157
    2019.05.15 12:40:03.185938 [ 19 ] {} <Debug> events_dev.pub_demand (Data): Removing part from filesystem 1540425600_1_800_160_44158
    2019.05.15 12:40:03.195934 [ 19 ] {} <Debug> events_dev.pub_demand (Data): Removing part from filesystem 1540425600_1_800_160_44159
    2019.05.15 12:40:03.206007 [ 19 ] {} <Debug> events_dev.pub_demand (Data): Removing part from filesystem 1540425600_1_800_160_44160
    2019.05.15 12:40:03.215982 [ 19 ] {} <Debug> events_dev.pub_demand (Data): Removing part from filesystem 1540425600_1_800_160_44161
  • @efreeman #100748 12:43 PM, 15 May 2019
    $ sudo cat /var/log/clickhouse-server/clickhouse-server.log | grep "Removing part from filesystem" | wc -l
    258873
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #100748 #100749 12:45 PM, 15 May 2019
    Ну у вас Сержи скорее всего бегут.. Партиционирована таблица?
  • @efreeman #100750 12:46 PM, 15 May 2019
    да, есть
  • @efreeman #100751 12:47 PM, 15 May 2019
    ааа
  • @efreeman #100752 12:47 PM, 15 May 2019
    треч
  • https://t.me/clickhouse_ru
    А много ли файлов вот тут: /var/lib/clickhouse/data/{database_name}/{table_name}/?
  • @efreeman #100754 12:59 PM, 15 May 2019
    как удалить партицированную таблицу?
  • @efreeman #100755 01:00 PM, 15 May 2019
    делаю drop table mytable,
    ругается DB::Exception: Table mydb.mytable_replica doesn't exist
  • https://t.me/clickhouse_ru
    точно так же как и обычную
  • @efreeman #100757 01:01 PM, 15 May 2019
    это engine mytable:
    ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/events_dev/mytable', '{replica}') PARTITION BY date ORDER BY date SETTINGS index_granularity = 8192
  • @efreeman #100758 01:01 PM, 15 May 2019
    была еще таблица mytable_replica
  • @efreeman #100759 01:02 PM, 15 May 2019
    но ее удалил
  • @efreeman #100760 01:02 PM, 15 May 2019
    как они связаны, вообще не понимаю
  • https://t.me/clickhouse_ru
    @606215749 #100761 01:03 PM, 15 May 2019
    вероятно при создании вы использовали один и тот же путь в зукипере
  • @efreeman #100762 01:03 PM, 15 May 2019
    можно как-то обойти?
  • https://t.me/clickhouse_ru
    @606215749 #100763 01:04 PM, 15 May 2019
    не встречалось такое..
  • @efreeman #100764 01:04 PM, 15 May 2019
    просто сейчас в /etc/clickhouse-server/config.xml нет никаких настроект для ширдирования. а эти таблицы остались, мне нужно их вычистить
  • @efreeman #100765 01:13 PM, 15 May 2019
    Cannot get replica delay for table: events_dev.pub_revenue: Code: 242, e.displayText() = DB::Exception: Table is in readonly mode, e.what() = DB::Exception, Stack trace:
  • @efreeman #100766 01:13 PM, 15 May 2019
    что такое...
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @606215749 #100768 01:15 PM, 15 May 2019
    sudo -u clickhouse touch /var/lib/clickhouse/flags/force_restore_data
  • @Igorut #100769 01:22 PM, 15 May 2019
    Joined.
  • @efreeman #100770 01:25 PM, 15 May 2019
    беда...
  • @efreeman #100771 01:28 PM, 15 May 2019
    Error> events_dev.pub_revenue (StorageReplicatedMergeTree): Removing missing part from ZooKeeper and queueing a fetch: 1548907200_0_0_0
  • https://t.me/clickhouse_ru
    если именно удалить таблицы -
    то удалять соотвествующие файлы в /var/lib/clickhouse/metadata/
    и директории с данными в /var/lib/clickhouse/data/
  • https://t.me/clickhouse_ru
    @MaximStanovov #100773 01:32 PM, 15 May 2019
    Привет, а поделитесь, как правильно собрать asof join
  • https://t.me/clickhouse_ru
  • @dosereda #100775 01:52 PM, 15 May 2019
    Снова мучаю grafana в настоящий момент получается следующее - составляю запрос в grafana из последнего:
    Добавляю в график сортировку по полю связанной таблицы, для этого просто оборачиваю select в ещё один select
    select * from (
    select ...
    )
    после чего график перестает строится, но, при этом если нажать кнопку generated SQL и выполнить запрос в tabix, то все отрабатывает.
    то же самое с таблицей, когда добавляю к запросу WHERE Name IN ($name), где $name - grafana variables. Таблица строится лишь при небольшом количестве variables в скобках, при выбранном значении all (порядка 50 значений) таблица уже не строится, и, снова, если нажать кнопку generated SQL и выполнить запрос в tabix все отрабатывает.
    На лимиты grafana не похоже, потому что если убрать ограничение WHERE Name IN ($name) вовсе, то таблица строится, т.е. количество возвращаемых данных не причем. Версии и плагина clickhouse и grafana - последние.
    Кто-нибудь сталкивался с такими ограничениями в grafana?
  • да, помогло. дзякуй!
  • https://t.me/clickhouse_ru
    @mister_blblbl #100777 02:01 PM, 15 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    1ГБ это очень мало. Надо настраивать КХ, кеш марков пытается сожрать 5ГБ.
    Непонятно своп есть или нет?

    >в файле логов с ошибками ничего, последняя запись пол часа назад. т.е. понять почему он упал нельзя.
    он не упал, его убил oom killer (sudo dmesg|tail)
  • https://t.me/clickhouse_ru
    там память течет кстати (чинится compile_expressions = 0 или обновится до 18.14.19)
  • https://t.me/clickhouse_ru
    @beglaryanartur #100780 02:24 PM, 15 May 2019
    Здравствуйте. Не подскажите что будет если на лету включить compression? или надо обязательно сделать реастарт сервера? server version 19.4.1
  • https://t.me/clickhouse_ru
    какой из ?
    нет не надо ничего рестартовать, само и сразу.
  • https://t.me/clickhouse_ru
    ZSTD для всего сервера.
  • https://t.me/clickhouse_ru
    @bezuskyi #100783 02:28 PM, 15 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    т.е. не включить, а поменять lz4 на ZSTD. После изменения конфига начнет применятся к новым партам ( без рестарта ).
  • https://t.me/clickhouse_ru
    нет, прям включить сразу zstd. Шас никакого compression-а нету
  • https://t.me/clickhouse_ru
    Каким образом? По дефолту lz4.
  • https://t.me/clickhouse_ru
    по умолчанию включен lz4?
  • https://t.me/clickhouse_ru
    если да, то да, получается просто октрыть коментарий в настройках по умолчанию
  • https://t.me/clickhouse_ru
    @shoguevara #100789 03:13 PM, 15 May 2019
    Всем привет!
    Пытаюсь собрать мат представление, но СН плюется ошибками.
    Запросы пишу по необходимости, а не по специализации.
    Есть табличка, в которой лежит время (time_local) и сайт (site), куда обращаются.
    Нужно посчитать количество обращений в час на каждый сайт.
    Собрал SELECT, который выводит необходимые данные:
    SELECT toStartOfHour(time_local), count(*),site FROM test_database.auths GROUP BY toStartOfHour(time_local),site order by toStartOfHour(time_local)

    Но при этом фейлится создание следующего представления:
    CREATE MATERIALIZED VIEW site_stat
    ENGINE = AggregatingMergeTree(time_hour, hits, site) POPULATE AS
    SELECT
    toStartOfHour(time_local) as time_hour,
    count(*) as hits,
    site
    FROM test_database.auths
    GROUP BY
    time_hour,
    site
    order by
    time_hour

    ЧЯДНТ? Или тыкните, плз, носом куда почитать, чтобы правильно писать матпредставления. Документашка СН тут не сильно помогает, ибо предаолагает dba бэкграунд и знакомство с матпредставлениями в общем и какой надо использовать с ними синтаксис.
    Спасибо!
  • а какая именно ошибка?
  • @mminaev #100791 03:20 PM, 15 May 2019
  • @mminaev #100792 03:20 PM, 15 May 2019
    как минимум нужно делать countState
  • https://t.me/clickhouse_ru
    @shoguevara #100793 03:20 PM, 15 May 2019
    Сорри, забыл указать ошибку:
    Code: 36. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Index granularity must be a positive integer
  • https://t.me/clickhouse_ru
    @606215749 #100794 03:21 PM, 15 May 2019
    AggregatingMergeTree(time_hour, hits, site) - уберите отсюда time_hour, hits, site
  • https://t.me/clickhouse_ru
    Точно, и про это забыл ><
  • https://t.me/clickhouse_ru
    Тогда другая ошибка:
    Exception: Storage AggregatingMergeTree requires 3 to 4 parameters:
    name of column with date,
    [sampling element of primary key],
    primary key expression,
    index granularity
  • https://t.me/clickhouse_ru
    @606215749 #100797 03:25 PM, 15 May 2019
    AggregatingMergeTree() PARTITION BY toDate(time_local) ORDER BY (time_hour) SETTINGS index_granularity = 8192
    попробуйте так
  • https://t.me/clickhouse_ru
    есть два синтаксиса
    старый AggregatingMergeTree(part_date, order_by_expr, granular)
    и
    новый AggregatingMergeTree partition by .... order by ...

    похоже вам нужен AggregatingMergeTree partition by toYYYYMM(time_hour) order by (site,time_hour)
  • https://t.me/clickhouse_ru
    @den_crane #100800 03:31 PM, 15 May 2019
    не нужен в запросе
    order by
    time_hour

    MV это такой on insert trigger. При инсерте пачки строк в таблицу, эта пачка попадает во MV и select применяется к этой пачке, саму таблицу MV не читает.
  • https://t.me/clickhouse_ru
    Спасибо! Вроде создалась без ексепшнов. Буду дальше чекать.
  • @309626333 #100804 04:17 PM, 15 May 2019
    Joined.
  • воу, а можно ссылку на issue?
  • согласен, мало, но это стг, там данных совсем чуть-чуть
  • https://t.me/clickhouse_ru
    @Pershin_Artem_spb #100807 04:23 PM, 15 May 2019
    alter table impressions modify column node_name LowCardinality(String);

    ALTER TABLE impressions
    MODIFY COLUMN
    node_name LowCardinality(String)

    Received exception from server (version 19.4.3):
    Code: 76. DB::Exception: Received from localhost:9000, ::1. DB::ErrnoException. DB::ErrnoException: Cannot open file /storage/clickhouse/data/default/impressions/197001_1_74428_7_102752/checksums.txt.tmp, errno: 13, strerror: Permission denied.
  • https://t.me/clickhouse_ru
    @Pershin_Artem_spb #100808 04:24 PM, 15 May 2019
    кто-нибудь в курсе в чем может быть причина? хочу поменять Enum8 на LowCardinality
  • https://t.me/clickhouse_ru
    https://github.com/yandex/ClickHouse/issues/3410
    https://github.com/yandex/ClickHouse/issues/3976 -- там написано 18.16.1, но в 18.14 это тоже есть, просто я нашел позже
  • https://t.me/clickhouse_ru
    @vfomkin #100810 04:27 PM, 15 May 2019
    Коллеги, а как часто перечитывается конфиг? поменял количество одновременных запросов со 100 на 200, сделал даже system reload config, но в логи все равно сыпятся ошибки Too many simultaneous queries. Maximum: 100
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #100811 #100812 04:32 PM, 15 May 2019
    Посмотрите в processed, есть эти данные или нет.
  • https://t.me/clickhouse_ru
    извинясь за глупый вопрос, но где оно лежит? не могу найти
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #100813 #100814 04:37 PM, 15 May 2019
    Покажите что у вас в /etc/clickhouse-server/
  • https://t.me/clickhouse_ru
    для многих параметров (включая max_concurrent_queries ) - никогда и нужен перезапуск сервера.
  • https://t.me/clickhouse_ru
    там два конфига, config и users. Препроцессед нашел в папке рабочей, там 200
  • https://t.me/clickhouse_ru
    т.е. без рестарта никак?
  • https://t.me/clickhouse_ru
    никак. Ну возможно можно пошаманить с gdb и поменять на лету, но лучше так не делать
  • https://t.me/clickhouse_ru
    @Pershin_Artem_spb #100819 04:41 PM, 15 May 2019
    2019.05.15 19:37:45.804094 [ 234 ] {} <Error> BaseDaemon: ########################################
    2019.05.15 19:37:45.804237 [ 234 ] {} <Error> BaseDaemon: (from thread 33) Received signal Segmentation fault (11).
    2019.05.15 19:37:45.804273 [ 234 ] {} <Error> BaseDaemon: Address: NULL pointer.
    2019.05.15 19:37:45.804293 [ 234 ] {} <Error> BaseDaemon: Access: read.
    2019.05.15 19:37:45.804310 [ 234 ] {} <Error> BaseDaemon: Address not mapped to object.
    2019.05.15 19:37:45.858422 [ 234 ] {} <Error> BaseDaemon: 0. clickhouse-server() [0x54ec03b]
    2019.05.15 19:37:45.858558 [ 234 ] {} <Error> BaseDaemon: 1. clickhouse-server(DB::DataTypeLowCardinality::serializeBinaryBulkStateSuffix(DB::IDataType::SerializeBinaryBulkSettings&, std::shared_ptr<DB::IDataType::SerializeBinaryBulkState>&) const+0x1f) [0x54eddcf]
    2019.05.15 19:37:45.858589 [ 234 ] {} <Error> BaseDaemon: 2. clickhouse-server(DB::MergedColumnOnlyOutputStream::writeSuffixAndGetChecksums()+0x1b6) [0x58ec396]
    2019.05.15 19:37:45.858615 [ 234 ] {} <Error> BaseDaemon: 3. clickhouse-server(DB::MergeTreeData::alterDataPart(std::shared_ptr<DB::MergeTreeDataPart const> const&, DB::NamesAndTypesList const&, std::vector<std::shared_ptr<DB::ASTIndexDeclaration>, std::allocator<std::shared_ptr<DB::ASTIndexDeclaration> > > const&, bool)+0x973) [0x587a533]
    2019.05.15 19:37:45.858639 [ 234 ] {} <Error> BaseDaemon: 4. clickhouse-server(DB::StorageMergeTree::alter(DB::AlterCommands const&, std::string const&, std::string const&, DB::Context const&)+0x384) [0x57cb3b4]
    2019.05.15 19:37:45.858659 [ 234 ] {} <Error> BaseDaemon: 5. clickhouse-server(DB::InterpreterAlterQuery::execute()+0x833) [0x5b78233]
    2019.05.15 19:37:45.858689 [ 234 ] {} <Error> BaseDaemon: 6. clickhouse-server() [0x56f5fb6]
    2019.05.15 19:37:45.858709 [ 234 ] {} <Error> BaseDaemon: 7. clickhouse-server(DB::executeQuery(std::string const&, DB::Context&, bool, DB::QueryProcessingStage::Enum, bool)+0x61) [0x56f7eb1]
    2019.05.15 19:37:45.858730 [ 234 ] {} <Error> BaseDaemon: 8. clickhouse-server(DB::TCPHandler::runImpl()+0x47c) [0x2e1676c]
    2019.05.15 19:37:45.858754 [ 234 ] {} <Error> BaseDaemon: 9. clickhouse-server(DB::TCPHandler::run()+0x1c) [0x2e17b0c]
    2019.05.15 19:37:45.858779 [ 234 ] {} <Error> BaseDaemon: 10. clickhouse-server(Poco::Net::TCPServerConnection::start()+0xf) [0x613634f]
    2019.05.15 19:37:45.858795 [ 234 ] {} <Error> BaseDaemon: 11. clickhouse-server(Poco::Net::TCPServerDispatcher::run()+0x110) [0x61369b0]
    2019.05.15 19:37:45.858812 [ 234 ] {} <Error> BaseDaemon: 12. clickhouse-server(Poco::PooledThread::run()+0x77) [0x621e117]
    2019.05.15 19:37:45.858828 [ 234 ] {} <Error> BaseDaemon: 13. clickhouse-server(Poco::ThreadImpl::runnableEntry(void*)+0x38) [0x621b678]
    2019.05.15 19:37:45.858843 [ 234 ] {} <Error> BaseDaemon: 14. clickhouse-server() [0x692ecef]
    2019.05.15 19:37:45.858863 [ 234 ] {} <Error> BaseDaemon: 15. /lib64/libpthread.so.0(+0x7e25) [0x7f951025ce25]
  • https://t.me/clickhouse_ru
    @Pershin_Artem_spb #100820 04:41 PM, 15 May 2019
    при попытке сконверитть Enum8 в LowCardinality(String)
  • https://t.me/clickhouse_ru
    @Pershin_Artem_spb #100821 04:42 PM, 15 May 2019
    ClickHouse client version 19.4.3.11.
    Connecting to localhost:9000 as user default.
    Connected to ClickHouse server version 19.4.3 revision 54416.
  • https://t.me/clickhouse_ru
    @Pershin_Artem_spb #100822 04:42 PM, 15 May 2019
    на маленьких табличках вроде норм работает а вот на нескольких миллиардах не очень
  • https://t.me/clickhouse_ru
    @Pershin_Artem_spb #100823 04:42 PM, 15 May 2019
    и значений немного по идее словарь не гигансткий должен формироваться - пару десятков разных значений всего
  • Попробую завтра воспроизвести.
  • https://t.me/clickhouse_ru
    @Pershin_Artem_spb #100825 04:57 PM, 15 May 2019
    заведу ишью в гитхабе пока
  • @vstakhov #100827 05:27 PM, 15 May 2019
    140092800087712:error:25FFF06C:DSO support routines:CRYPTO_internal:functionality not supported:../contrib/ssl/crypto/dso/dso_lib.c:224:
    140092800087712:error:0EFFF06E:configuration file routines:CRYPTO_internal:error loading dso:../contrib/ssl/crypto/conf/conf_mod.c:273:module=ssl_conf, path=ssl_conf

    debian-buster
  • @vstakhov #100828 05:28 PM, 15 May 2019
    OpenSSL 1.1.1b 26 Feb 2019
  • @vstakhov #100829 05:28 PM, 15 May 2019
    сабж из репозитория яндекса
  • https://t.me/clickhouse_ru
    @proller #100830 05:28 PM, 15 May 2019
    он не использует системный openssl
  • @vstakhov #100831 05:30 PM, 15 May 2019
    ок, тогда что с пациентом?
  • https://t.me/clickhouse_ru
    чтобы КХ работал придется
    закоментировать строчку в /etc/ssl/openssl.cnf
    [default_conf]
    #ssl_conf = ssl_sect

    https://medium.com/@andrewhowdencom/mysterious-ssl-tls-network-connection-failures-in-debian-buster-52c29a661cb3

    https://github.com/yandex/ClickHouse/issues/4470
  • Большое спасибо, заработало
  • https://t.me/clickhouse_ru
    @den_crane #100834 05:48 PM, 15 May 2019
    я наступил на это с официальным 19.4.3.11
  • https://t.me/clickhouse_ru
    @SergeyLossev #100835 07:00 PM, 15 May 2019
    Всем привет!

    А как по-грамотному распарсить юзер-агент, чтобы он был максимально похож на тот, что в Logs API?
  • https://t.me/clickhouse_ru
    @dbalashov #100836 07:02 PM, 15 May 2019
    ты достучался до моего сердца (с) заставил открыть консоль и полезть посмотреть как оно выглядит
  • Там сложно, и ни библиотека, ни набор правил, не в open-source.
  • @milovidov_an #100838 08:48 PM, 15 May 2019
    Выложены все презентации с митапа на Кипре:

    https://yandex.github.io/clickhouse-presentations/meetup22/strategies.pdf
    https://yandex.github.io/clickhouse-presentations/meetup22/exness.pdf
    https://yandex.github.io/clickhouse-presentations/meetup22/new_features/
    https://yandex.github.io/clickhouse-presentations/meetup22/kubernetes.pdf
    https://yandex.github.io/clickhouse-presentations/meetup22/aloha.pdf

    Видео записывалось, ожидается скоро.
  • https://t.me/clickhouse_ru
    @dtroyan #100839 08:52 PM, 15 May 2019
    Спасибо!
  • @milovidov_an #100840 09:46 PM, 15 May 2019
    Привет. А как безопасно включить use_minimalistic_part_header_in_zookeeper
    1) Надо ли перегружать сервер?
    2) Если включить на одной реплике — то будет ли работать вторая или надо обновлять обе? Если работать не будет — то как? Не пойдут инсерты совсем или только репликация?
  • @milovidov_an #100841 09:46 PM, 15 May 2019
    1. Да.
    2. На одной не имеет смысла - лучше сразу на всех (если включить на одной, на самом деле обе реплики будут затронуты, но часть кусков будет не в новом формате).

    Будет работать гарантированно.

    Единственная особенность - после включения невозможно будет использовать старую версию clickhouse-server, в которой не было такой опции.
  • @milovidov_an #100842 09:46 PM, 15 May 2019
    У нас нет никаких опасений по поводу этой опции, используем в продакшене несколько месяцев. Админы постепенно включали на разных шардах, потом на разных кластерах, а сейчас осмелились поставить по-умолчанию везде.
  • @milovidov_an #100843 09:46 PM, 15 May 2019
    Плюс мы ещё сконвертировали старые куски специальной конвертировалкой... И ещё коллеги из одного из соседних отделов сделали то же самое.
  • 16 May 2019 (113 messages)
  • https://t.me/clickhouse_ru
    @inleskin #100844 05:30 AM, 16 May 2019
    Joined.
  • @854027210 #100852 05:58 AM, 16 May 2019
    Joined.
  • @pavel_maksimow #100853 06:35 AM, 16 May 2019
    Подскажите, как экранировать вопрос. знак в функции замены. Так не работает:
    replaceRegexpOne(URLPath, '\?.*', '')

    UPD:
    Надо так экранировать:
    replaceRegexpOne(URLPath, '\\?.*', '')
  • https://t.me/clickhouse_ru
    @vmoshikov #100854 07:18 AM, 16 May 2019
    Господа, не могу понять как работает AggregatingMergeTree

    Я обновляю исходную таблицу раз в сутки, но данные не подтягиваются в агрегируованную. Как такое возможно?
  • https://t.me/clickhouse_ru
    А какого профита ожидать от этой фичи?
  • https://t.me/clickhouse_ru
    Спасибо. На сколько широко распространена практика использования этих параметров?
  • https://t.me/clickhouse_ru
    @f0rden #100857 07:41 AM, 16 May 2019
    Репликацию можно использовать для переезда на другой сервер? Или лучше все таки морозить партиции и так переносить данные?
  • @Shazo_Rus #100858 07:42 AM, 16 May 2019
    мы с репликацией переезжали, единственное, что при этом нет лимитов на сеть и ресурсы, поэтому хосты могут напрячься)
  • @Nikqwag #100859 08:07 AM, 16 May 2019
    Здравствуйте! Подскажите, пожалуйста,
    - если перед серверами КХ стоит chproxy, то:
    # curl 'http://***/?session_id=123&session_timeout=10' -d 'CREATE TEMPORARY TABLE t AS SELECT 1'
    Code: 113, e.displayText() = DB::Exception: There is no session (version 19.5.3.8 (official build))'
    - если без chproxy (сразу на ноду КХ) то:
    # curl 'http://***/?session_id=123&session_timeout=10' -d 'CREATE TEMPORARY TABLE t AS SELECT 1'
    # curl 'http://***/?session_id=123&session_timeout=10' -d 'SELECT * from t'
    1
    Что-то нужно добавить в настройки chproxy или такое через него не будет работать?
  • Уменьшение объёма данных в zk в несколько раз.
  • https://t.me/clickhouse_ru
    @fruktik #100861 08:27 AM, 16 May 2019
    Доброго дня! Как видно из видео Алексея Миловидова, вставка в CH предпочтительна батчами. Была идея сначала собирать в mongodb, а после в CH. Судя по тесту на хабре, mongodb не отличается особой скоростью записи https://habr.com/ru/post/320762/ .А как вы собираете данные перед заливкой в ch?
    Небольшое сравнение производительности СУБД «MongoDB vs ClickHouse»

    Так как колоночная СУБД ClickHouse (внутренняя разработка Яндекс) стала доступна каждому, решил использовать эту СУБД заместо MongoDB для хранения аналитических...

  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
  • @SWx5YQ ↶ Reply to #100861 #100864 08:29 AM, 16 May 2019
    buffer table 😄
  • https://t.me/clickhouse_ru
    Из кафки
  • https://t.me/clickhouse_ru
    Спасибо!)) Почитаю)
  • https://t.me/clickhouse_ru
    Спасибо! 🙏
  • https://t.me/clickhouse_ru
    @dtroyan #100868 08:35 AM, 16 May 2019
    Как вы справляетесь с дедупликацией данных из Кафки, у которых нет первичного ключа?
  • https://t.me/clickhouse_ru
    схлопыванием, но ключ должен быть
  • https://t.me/clickhouse_ru
    Айдишники хэшами генерировать?
  • https://t.me/clickhouse_ru
    Уникальность определяется вами, на основании требований
  • https://t.me/clickhouse_ru
    Например, если взять логи
  • https://t.me/clickhouse_ru
    Можно хешами
  • https://t.me/clickhouse_ru
    @dtroyan #100874 08:40 AM, 16 May 2019
    Думал, есть какой-то более фэнси способ exactly-once delivery
  • https://t.me/clickhouse_ru
    @AlexanderChadin #100875 08:42 AM, 16 May 2019
    Joined.
  • @hagen1778, @valyala , подскажите, пожалуйста или лучше создать issue ?
  • https://t.me/clickhouse_ru
    chproxy удаляет все параметры из query string, которые отсутсьвуют в списке разрешенных. Поэтому session_id удаляется. Даже если бы он не удалялся, то сечсии бы непоавильно работали, если за chproxy будет стоять больше одного сервера КХ, т.к. запросы с одним идентификатором сессии попадвли бы на разные сервера кликхауса
  • @andreysukharev #100878 08:49 AM, 16 May 2019
    подскажите а в движке для кластера - replicated merge tree, не запускается на стороне базы поток с автоматической дедупликации данных даже если есть примари ключ?
  • Надежда - она такая... спасибо!
  • @871552756 #100880 09:07 AM, 16 May 2019
    Joined.
  • @registiy #100883 09:28 AM, 16 May 2019
    всем привет!

    Есть ли у кого-то опыт работы tableau-clickhouse? Поставили драйвер ODBC и сталкиваемся с периодическими ошибками на tableau desktop. Не совсем понятно, куда двигаться.
  • https://t.me/clickhouse_ru
    @mukhametov_v #100884 09:28 AM, 16 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    какие именно ошибки ?
  • @registiy #100886 10:03 AM, 16 May 2019
    например, в произвольный момент времени возникает

    Tableau was unable to generate a query to perform this operation.
    Generic ODBC requires additional configuration. The driver and DSN (data source name) must be installed and configured to match the connection.
    Unable to connect using the DSN named "ClickHouse". Check that the DSN exists and is a valid connection.
  • @registiy #100887 10:05 AM, 16 May 2019
    хотя odbc в порядке, локально можно приконнектиться через него, без использования табло
  • @random_id #100888 10:37 AM, 16 May 2019
    Ребята не могу сообразить с запросом. Вспомогите пожалуйста.
    Есть таблица item, cost, sum - цена и за товар и сумма чека. Одна строка описывает один товар.
    Надо выбрать за месяц данные для графика уровней цен. 10 столбиков, длина столбика - общая суммаь по этой цене, сам столбик это уровень цены от-до.
  • https://t.me/clickhouse_ru
    @g0dlike_man #100889 10:39 AM, 16 May 2019
    Joined.
  • Достаточно странный вопрос (это все в продолжении разбирательств с Grafana), что можно подставить в переменную $systems (какой символ или регулярку?) чтобы на запрос вида:
    where system in ($systems)
    возвращались все значения таблицы?
  • https://t.me/clickhouse_ru
    Variables: when "Include All option" is set · Issue #72 · Vertamedia/clickhouse-grafana

    Is it possible, do not include "IN" operator to query if the variable has a too many values and "All" is selected?

  • https://t.me/clickhouse_ru
    проверьте что приходит в ответе на запрос в DeveloperTools - https://developers.google.com/web/tools/chrome-devtools/network/reference
    Network features reference - Chrome Developers

    A comprehensive reference of Chrome DevTools Network panel features.

  • там приходил Bad Request, при том, что и tabix и grafana работают по http протоколу
  • Это как раз то, что мне нужно, и, оно работает!!
  • https://t.me/clickhouse_ru
    @andrey_konyaev #100895 11:07 AM, 16 May 2019
    Подскажите, как удалить конретный кусок из таблицы. Я вижу только удаление партиции
  • https://t.me/clickhouse_ru
    возможно, вы превысили размер GET запроса и тогда нужно переключить на POST в настройках. Но лучше посмотреть сам HTTP запрос и разобраться почему он не работает
  • В том то и дело, что запрос не работал ( без хаков, что привели выше ) в Grafana, но, при этом работал в Tabix.
    В отношении предположения про Post - посмотрю.
  • https://t.me/clickhouse_ru
    @hagen1778 #100898 11:10 AM, 16 May 2019
    возможно, табикс по умолчанию использует POST метод
  • В любом случае спасибо за решение, а то я уже прям отчаялся.
  • https://t.me/clickhouse_ru
    вроде нет такой возможности
  • @Derzkii_SPooN #100901 11:22 AM, 16 May 2019
    Привет, а чтобы юзера в кх добавить надо только users.xml исправить, рестартовать не надо?
  • ALTER TABLE <table_name> DELETE WHERE <filter>
  • Updates and Deletes in ClickHouse

    Oct 16, 2018It’s been two years already ago when ClickHouse development team published an excellent blog post “How to update data in ClickHouse”. In that old times ClickHouse supported only monthly partitions, and for mutable data structures, they suggested to use pretty exotic data structures. We were all waiting for a more convenient approach, and finally, it is there: ClickHouse now supports updates in deletes! In this article, we will see how it works.

  • https://t.me/clickhouse_ru
    В filter здесь нельзя задать part_name. Только колонки из таблицы
  • https://t.me/clickhouse_ru
    @andrey_konyaev #100905 11:28 AM, 16 May 2019
    Мне же нужно дробнуть конкретный кусок
  • https://t.me/clickhouse_ru
    все пользуются.
  • https://t.me/clickhouse_ru
    @DmitryMishchenko #100907 12:25 PM, 16 May 2019
    Всем привет, есть вопрос, после инсерта бывает у меня иногда так, что идет сразу селект и данные видимо не успевают доезжать до реплики и их нет. Можно ли как-то указать в параметрах чтобы ответ об успешном инсерте получать только после того как все записалось и доступно к выборке?
  • https://t.me/clickhouse_ru
    В КХ нет транзакционности, так что не факт, что возможно.
  • Возможно помогут настройки insert_quorum и select_sequential_consistency

    https://clickhouse.yandex/docs/ru/operations/settings/settings/#settings-insert_quorum
  • https://t.me/clickhouse_ru
    @DmitryMishchenko #100910 12:33 PM, 16 May 2019
    Понял, всем спасибо
  • то есть какие-то операции (в Tableau Desktop) все-таки проходят? Ну там подключиться к CH и увидеть таблицы в Datasource Pane. Или до этого не доходит?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    detach partition / mv каталог_парта куда_нибудь на всех репликах / attch partition
  • https://t.me/clickhouse_ru
    @radya100 #100914 01:05 PM, 16 May 2019
    Добрый день. Есть необходимость в создании словаря с иерархическим атрибутом и типом Int64 (ключевое поле - тоже Int64) / Возможно ли такое ? Версия 19.5.3
  • Получается подключиться и делать выборки. Затем по прошествии некоторого времени просто внезапно может вылезти ошибка дата сорца. Пока связываю это с использованием одного calculated field(очень простой - конкатенация двух полей).
    Причём на сервере после паблиша может работать а потом перестать аналогично. Быть может надо копать куда то в сторону tdc и каких то настроек odbc?
  • @registiy #100916 01:09 PM, 16 May 2019
    Desktop mac если это важно и драйвер скомпиленный из сорцов на гитхабе
  • https://t.me/clickhouse_ru
    про какой тип словаря речь?
  • https://t.me/clickhouse_ru
    Пробовал flat - ошибка "Code: 1, e.displayText() = DB::Exception: 'key' is not supported for dictionary of layout 'flat' (version 19.5.3.8 (official build))"
  • https://t.me/clickhouse_ru
    ок, тогда что такое "иерархическим атрибутом"
  • если на сервере (под виндой наверное?) тоже что-то работает, но где-то отваливается, то можно ковырять и в десктопе. вот на всякий случай мой TDC файл -- сравните, если у Вас как-то по-другому, можно попробовать с моим.
  • https://t.me/clickhouse_ru
    <hierarchical>true</hierarchical>
  • и какую версию ODBC драйвера скомпилили? последний релиз стабильно работает.
  • https://t.me/clickhouse_ru
    так это про mongo, у вас mongo ? и про атрибуты , а не ключи
  • https://t.me/clickhouse_ru
    нет конечно. Это не про монго : )
  • https://t.me/clickhouse_ru
    ясно, видимо я чего-то не знаю.
  • https://t.me/clickhouse_ru
    вот из документации : hierarchical - Поддержка иерархии. Отображение в идентификатор родителя. По умолчанию, false.
  • https://t.me/clickhouse_ru
    @radya100 #100928 01:18 PM, 16 May 2019
    Смысл в том , что в словаое можно создать Парент-Чайлд несбалансированную иерархию. Но похоже на засаду - только UInt64
  • https://t.me/clickhouse_ru
    @radya100 #100930 01:33 PM, 16 May 2019
    А потом в работе получить всех родителей с помощью функции dictGetHierarchy https://clickhouse.yandex/docs/ru/query_language/functions/ext_dict_functions/#dictgethierarchy
  • https://t.me/clickhouse_ru
    @den_crane #100931 01:35 PM, 16 May 2019
    в любом случае flat это плоский массив, с адресацией по индексу, индекс не может быть отрицательным. Можно использовать complex словари и сделать ключом tuple(Int64)
  • @BioQwer #100932 01:37 PM, 16 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    Это идея ! Спасибо - попробую
  • https://t.me/clickhouse_ru
    DB::Exception: h: hierarchical attributes not supported for dictionary of type ComplexKeyHashed.
  • https://t.me/clickhouse_ru
    @radya100 #100935 01:51 PM, 16 May 2019
    У меня другая ошибка - Code: 53, e.displayText() = DB::Exception: Kladr: hierarchical attribute must be UInt64. (version 19.5.3.8 (official build))
  • https://t.me/clickhouse_ru
    @radya100 #100936 01:52 PM, 16 May 2019
    Хотя явно указал expression : <attribute>
    <name>kladr_pid</name>
    <type>Int64</type>
    <expression>tuple(kladr_pid)</expression>
    <null_value>0</null_value>
    <hierarchical>true</hierarchical>
    <injective>true</injective>
    </attribute>
  • https://t.me/clickhouse_ru
    @radya100 #100937 01:54 PM, 16 May 2019
    А , да , , та-же ошибка hierarchical attributes not supported for dictionary of type ComplexKeyHashed.
  • https://t.me/clickhouse_ru
    но вообще какая вам разница, положите в словарь UInt
    select toInt64(toUInt64(-100))
    -100

    select toUInt64(-100)
    18446744073709551516
  • https://t.me/clickhouse_ru
    @radya100 #100939 02:01 PM, 16 May 2019
    Да. Вот сейчас пробую вот что :
  • https://t.me/clickhouse_ru
    @radya100 #100940 02:01 PM, 16 May 2019
    <id>
    <name>kladr_id</name>
    <type>UInt64</type>
    <expression>tuple(pid)</expression>
    <null_value>0</null_value>
    </id>
    <attribute>
    <name>kladr_pid</name>
    <type>Int64</type>
    <expression>tuple(kladr_pid)</expression>
    <null_value>0</null_value>
    <hierarchical>true</hierarchical>
    <injective>true</injective>
    </attribute>
  • https://t.me/clickhouse_ru
    @radya100 #100941 02:02 PM, 16 May 2019
    не уверен , что заработает. Expression в ключе не задокументирован
  • https://t.me/clickhouse_ru
    Разницы нет. Действительно. Вылезла другая ошибка : 500 Internal Server Error, body: Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = Out of range: Value too small. <id>
    <name>kladr_id</name>
    <type>UInt64</type>
    <null_value>0</null_value>
    </id>
    <attribute>
    <name>kladr_pid</name>
    <type>UInt64</type>
    <null_value>0</null_value>
    <hierarchical>true</hierarchical>
    <injective>true</injective>
    </attribute>
  • https://t.me/clickhouse_ru
    я имел в виду конвертировать в источнике, вьюхой в mysql или что там у вас.
  • для конкатенации нужно каждое поле явно обернуть в STR(), то есть например [Origin] + ' - ' + [Dest] не прокатит, а вот STR( [Origin] ) + ' - ' + STR( [Dest] ) -- вполне себе
  • @registiy #100945 02:27 PM, 16 May 2019
    ошибки без обертки не происходит.
    tdc сравнил, то же. Локально tableau подгружает tdc, вижу по логу
  • можете лог Tableau Desktop прислать (содержимое папки My Tableau Repository/Logs)?
  • https://t.me/clickhouse_ru
    @kvosha #100947 03:12 PM, 16 May 2019
    Всем привет!
    Пытаюсь синхронизировать Logs API и локальный КХ. Периодически ловлю ошибки такого рода
    <Error> void DB::BackgroundProcessingPool::threadFunction(): Code: 84, e.displayText() = DB::Exception: Directory /var/lib/clickhouse/data/default/visits_all_KS/tmp_merge_20180601_20180630_161_232_1/ already exists, e.what() = DB::Exception, Stack trace:

    0. /usr/bin/clickhouse-server(StackTrace::StackTrace()+0x16) [0x6cd78e6]
    1. /usr/bin/clickhouse-server(DB::Exception::Exception(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)+0x22) [0x32febe2]
    2. /usr/bin/clickhouse-server(DB::MergeTreeDataMergerMutator::mergePartsToTemporaryPart(DB::MergeTreeDataMergerMutator::FuturePart const&, DB::MergeListEntry&, long, DB::DiskSpaceMonitor::Reservation*, bool)+0x476b) [0x5a3e3ab]
    3. /usr/bin/clickhouse-server(DB::StorageMergeTree::merge(bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)+0x432) [0x5976b72]
    4. /usr/bin/clickhouse-server(DB::StorageMergeTree::backgroundTask()+0x135) [0x5979625]
    5. /usr/bin/clickhouse-server(DB::BackgroundProcessingPool::threadFunction()+0x43e) [0x59ebeae]
    6. /usr/bin/clickhouse-server() [0xa9b74ff]
    7. /lib/x86_64-linux-gnu/libpthread.so.0(+0x76db) [0x7f65015d66db]
    8. /lib/x86_64-linux-gnu/libc.so.6(clone+0x3f) [0x7f6500b5588f]
    Насколько я понимаю это происходит, когда КХ упирается в диск. Так как данные приходяшие из Logs API объемные и дефраментированные по времени. При этом мерждей не висит. Ловит ошибку и уходит в рестарт.
    Можете подсказать чем ему можно помочь?
  • а могу я в свою очередь попросить у вас скомпилированный драйвер dylib? 🙂
    пересобрал последнюю версию через brew и теперь получаю Cannot parse connection timeout value [y????????????5??e????e????????????].
  • https://t.me/clickhouse_ru
    Версия КХ?

    >Ловит ошибку и уходит в рестарт.
    sudo dmesg| tail -50
    есть сообщения oom killer ?
  • https://t.me/clickhouse_ru
    @proller #100951 03:30 PM, 16 May 2019
    я поисправлял рабочесть odbc драйвера во всех вариантах unixodbc-iodbc под линуксом, а вот макоси пока нет под ругой проверить - может кто-нибудь собрать-поиспользовать? https://github.com/yandex/clickhouse-odbc/pull/173
  • https://t.me/clickhouse_ru
    @kvosha ↶ Reply to #100949 #100952 03:35 PM, 16 May 2019
    Версия 19.1.9
  • https://t.me/clickhouse_ru
    @kvosha ↶ Reply to #100949 #100953 03:35 PM, 16 May 2019
    Команду необходимо выполнить в контейнере?
  • https://t.me/clickhouse_ru
    @smaxm #100954 03:41 PM, 16 May 2019
    коллеги, а подскажите пожалуйста как скрыть один из результатов селекта
    например
    SELECT
    3 AS a,
    6 AS b,
    a / b

    ┌─a─┬─b─┬─divide(3, 6)─┐
    │ 3 │ 6 │ 0.5 │
    └───┴───┴──────────────┘
  • https://t.me/clickhouse_ru
    @smaxm #100955 03:41 PM, 16 May 2019
    как скрыть a и b
  • https://t.me/clickhouse_ru
    @stovm #100956 03:42 PM, 16 May 2019
    SELECT c
    FROM
    (
    SELECT
    3 AS a,
    6 AS b,
    a / b AS c
    )
  • https://t.me/clickhouse_ru
    @orantius #100957 03:42 PM, 16 May 2019
    with 3 as a select 1/a
  • https://t.me/clickhouse_ru
    @smaxm #100958 03:44 PM, 16 May 2019
    какой вариант экономичнее или без разницы?
  • Большое спасибо!
  • Запрос покажите и что в нем не работает. Устно сложно воспринимать
  • Да я и не могу запрос придумать, как его вообще построить. За что уцепиться.
    Нужно с таблицы item, cost, num выбрать за неделю распределение продаж по уровням цен. К примеру по 20р - 40р продано 200шт, по 40 - 60 р продано 120шт и тэдэ
  • @GeorgySt #100964 04:17 PM, 16 May 2019
    что то вроде такого ?
    select toInt(cost/20)*20 as priceLevel, count() as cnt from table group by priceLevel order by priceLevel
  • Наверное )) завтра покручу эту идею и отпишусь.
    Спасибо 🤝
  • https://t.me/clickhouse_ru
    не важно, в том же ядре
  • https://t.me/clickhouse_ru
    и это может быть awful error, я обновился до 19.1.14

    Fixed error in #3920. This error manifestate itself as random cache corruption (messages Unknown codec family code, Cannot seek through file) and segfaults. This bug first appeared in version 19.1 and is present in versions up to 19.1.10 and 19.3.6.
  • https://t.me/clickhouse_ru
    @AnnaQve #100968 06:00 PM, 16 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @128561184 #100969 08:40 PM, 16 May 2019
    Joined.
  • 17 May 2019 (74 messages)
  • https://t.me/clickhouse_ru
    @Daraning #100971 03:17 AM, 17 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @Daraning #100972 03:35 AM, 17 May 2019
    Привет всем. Подскажите пожалуйста правда что у CLickHouse довольно низкий порог вхождения, и он относительно прост в эксплуатации и сопровождении?
  • https://t.me/clickhouse_ru
    попробовав кликхаус на каком нибудь тесте и прочитав историю этого чата вы можете составить свое впечатление
  • https://t.me/clickhouse_ru
    Ну он бесплатен, что же еще тут желать 😊
    Юзаем в продукшене уже почти год, никаких проблем.
  • Спасибо огромное! Все получилось
  • @778432675 #100976 06:06 AM, 17 May 2019
    Всем доброго дня. Возможно кто-то сталкивался с проблемой. Пусть есть две таблицы, которые имеют большой набор данных. Поле, по которому будет объединение, добавлено в первичный ключ и ключ сортировки. Почему запрос
  • @778432675 #100977 06:06 AM, 17 May 2019
    select w.workshiftid, d.documentid from (select * from workshift where workshiftid = 3558114) as w left join document as d using workshifti
  • @778432675 #100978 06:07 AM, 17 May 2019
    приводит к чтению всех данных, при выполнении оператора join, а не использует записи из подзапроса
  • @778432675 #100979 06:08 AM, 17 May 2019
    2019.05.17 13:03:19.241145 [ 43 ] {8cf4fbe2-e179-48e0-a9b3-8b0cbe064cda} <Debug> Join: setSampleBlock: documentid UInt32 UInt32(size = 0), d.works
    hiftid UInt32 UInt32(size = 0), checknum UInt8 UInt8(size = 0), cashcode String String(size = 0)
    2019.05.17 13:03:19.242080 [ 43 ] {8cf4fbe2-e179-48e0-a9b3-8b0cbe064cda} <Debug> default.workshift (SelectExecutor): Key condition: (column 0 in [
    3558114, 3558114])
    2019.05.17 13:03:19.242126 [ 43 ] {8cf4fbe2-e179-48e0-a9b3-8b0cbe064cda} <Debug> default.workshift (SelectExecutor): Selected 3 parts by date, 2 p
    arts by key, 2 marks to read from 2 ranges
    2019.05.17 13:03:19.242223 [ 43 ] {8cf4fbe2-e179-48e0-a9b3-8b0cbe064cda} <Trace> default.workshift (SelectExecutor): Reading approx. 16384 rows wi
    th 2 streams
    2019.05.17 13:03:19.242259 [ 43 ] {8cf4fbe2-e179-48e0-a9b3-8b0cbe064cda} <Trace> InterpreterSelectQuery: FetchColumns -> Complete
    2019.05.17 13:03:19.242316 [ 43 ] {8cf4fbe2-e179-48e0-a9b3-8b0cbe064cda} <Trace> InterpreterSelectQuery: FetchColumns -> Complete
    2019.05.17 13:03:19.242563 [ 43 ] {8cf4fbe2-e179-48e0-a9b3-8b0cbe064cda} <Debug> executeQuery: Query pipeline:
    Expression
    CreatingSets
    Lazy
    Union
    Expression × 2
    Expression
    Expression
    Expression
    Filter
    MergeTreeThread

    2019.05.17 13:03:19.242802 [ 47 ] {} <Trace> CreatingSetsBlockInputStream: Creating join.
  • @778432675 #100980 06:08 AM, 17 May 2019
    2019.05.17 13:03:19.243075 [ 47 ] {} <Debug> default.document (SelectExecutor): Key condition: unknown
    2019.05.17 13:03:19.243099 [ 47 ] {} <Debug> default.document (SelectExecutor): Selected 6 parts by date, 6 parts by key, 1941 marks to read from
    6 ranges
    2019.05.17 13:03:19.243335 [ 47 ] {} <Trace> default.document (SelectExecutor): Reading approx. 15900672 rows with 2 streams
    2019.05.17 13:03:19.243367 [ 47 ] {} <Trace> InterpreterSelectQuery: FetchColumns -> Complete
    2019.05.17 13:03:19.622196 [ 47 ] {} <Debug> CreatingSetsBlockInputStream: Created. Join with 139796 entries from 15864986 rows. In 0.379 sec.
  • https://t.me/clickhouse_ru
    @430572334 #100981 07:21 AM, 17 May 2019
    Привет!
    Вопрос возник является ли операция вставки блока записей (в пределах параметра max_insert_size) в таблицу на основе которой создано материализованное представление атомарной?
    т.е. может ли возникнуть такая ситуация, что данные в таблице буду записаны, а в представление не добавлены?
    В документации на эту тему четко не сказано, в чате и гугле противоречивые данные, которые скорее говорят о том, что это не гарантируемая/автомарная операция, но тогда вопрос другой - а как пользоваться этими представлениями?
  • https://t.me/clickhouse_ru
    @danilgrig #100982 07:26 AM, 17 May 2019
    Привет! Кто-нибудь знает, можно ли отменить начавшиеся мержи?
    Я случайно запустил optimize table final на большой таблице и все начало тормозить, query я прибил, но в system.merges остались записи.
  • https://t.me/clickhouse_ru
    @danilgrig #100983 07:27 AM, 17 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    И да и нет. Легко поставить, легко начать использовать, но одновременно с этим нужно понимать его архитектуру и ограничения, чтобы использовать его действительно эффективно. ClickHouse не является серебряной пулей, и при неправильном использовании он будет работать намного хуже обычных реляционных СУБД
  • https://t.me/clickhouse_ru
    @yourock88 #100985 09:12 AM, 17 May 2019
    В эксплуатации довольно неприхотлив, но зависит от версии — не все версии одинаково стабильны
  • https://t.me/clickhouse_ru
    @kvosha ↶ Reply to #100967 #100986 09:13 AM, 17 May 2019
    После обновления ошибки ушли, но проблема осталась. При вставке контейнер начинает рестартится и впадает в кому
  • https://t.me/clickhouse_ru
    @kvosha ↶ Reply to #100949 #100987 09:15 AM, 17 May 2019
    Есть такое
    [6725653.434045] Out of memory: Kill process 18211 (clickhouse-serv) score 574 or sacrifice child
    [6725653.435065] Killed process 18211 (clickhouse-serv) total-vm:4136136kB, anon-rss:583824kB, file-rss:0kB, shmem-rss:0kB
    [6725653.522400] oom_reaper: reaped process 18211 (clickhouse-serv), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB
  • @sabonar #100988 09:33 AM, 17 May 2019
    Коллеги, я видел в чате, что кто-то сталкивался с проблемой для Mysql engine таблиц, что нельзя сделать больше двух AND в WHERE:
    Пример:
    Можно
    select a WHERE b = 1 AND c = 2
    Нельзя
    select a WHERE b = 1 AND c = 2 AND d = 3

    А вот так работает
    select a WHERE 1 AND(b = 1, c = 2, d = 3)
    Кто-то решил эту проблему правильнее, чем регулярка?
  • https://t.me/clickhouse_ru
    Это ООМ киллер, не хватает памяти
  • https://t.me/clickhouse_ru
    @kvosha ↶ Reply to #100989 #100990 10:02 AM, 17 May 2019
    да, попробовал уменшить параметр max_memory_usage до половины доступной оперативки, но не помогло
    правда и доступно совсем мало
  • https://t.me/clickhouse_ru
    @AlexTru_1 #100991 10:45 AM, 17 May 2019
    Всем привет, а можно ли джойнить таблицы по массиву? по пересечению например двух массивов
  • https://t.me/clickhouse_ru
    @smaxm #100992 10:51 AM, 17 May 2019
    Коллеги а кто нибудь делал аналог rate, irate на данных promhouse в clickhouse?
  • https://t.me/clickhouse_ru
    по пересечению - нет. по точному равенству должно быть можно (array это просто колонка). если не получается - можно сделать issue, на вскидку не нашел теста. еще в массивах не должно быть null-ов. ну и очевидное - можно вызывать какую-то функцию от массива из обеих таблиц и джойнить по ней.
  • https://t.me/clickhouse_ru
    понятно, спасибо
  • https://t.me/clickhouse_ru
    у вас 1гб памяти, вам надо специально настроить кх (вертикальные мержи, урезать кеши) и добавить своп. Это бесмысленно, воткните 16гб.
  • https://t.me/clickhouse_ru
    @f0rden ↶ Reply to #100987 #100996 11:00 AM, 17 May 2019
    Ох, бедняга, с 1гб тестить кх..
  • https://t.me/clickhouse_ru
    Кх не использует индексы при джойне, правая таблица всегда читается целиком и кладется в память целиком (не таблица там подзапрос будет ограничен по where).
  • https://t.me/clickhouse_ru
    @f0rden ↶ Reply to #100997 #100998 11:00 AM, 17 May 2019
    Это фича?
  • https://t.me/clickhouse_ru
    Да. Так делают ВСЕ olap бд.
  • https://t.me/clickhouse_ru
    @f0rden ↶ Reply to #100999 #101000 11:02 AM, 17 May 2019
    В чем выигрыш? Почему не использовать индексы?
  • https://t.me/clickhouse_ru
    system stop merges (или ребутнуть)
  • https://t.me/clickhouse_ru
    проход по индексу начинает тормозить на джойне уже 5млн. Оракл и информикс и постгре тоже начинают джйнить хешем на таких кол-х.
  • https://t.me/clickhouse_ru
    https://t.me/clickhouse_ru/91910
    https://t.me/clickhouse_ru/91945
  • @emptyname #101004 11:27 AM, 17 May 2019
    Добрый день, на одном из серверов постепенно в течение аптайма растет потребление памяти.

    Нагрузки на нем почти нет, версия 18.14.15

    MemoryTrackingInBackgroundProcessingPool имеет большие отрицательные значения

    Увидел, что советуют compile_expressions поставить в 0. Что-то в новых версиях относительно этого поменялось? Имеет смысл обновиться?
  • https://t.me/clickhouse_ru
    @IldarZaynullin #101005 11:30 AM, 17 May 2019
    Joined.
  • @apple_seen #101006 11:35 AM, 17 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    в вашем случае можно поменять таблицы местами. позиция таблицы в джойне имеет значение. лукап джойна принципиально нет. Есть планы сделать еще merge джойн, который должен быть эффективней на заведомо отсортированных данных. Там тоже будут читаться обе выборки целиком (но возможна экономия памяти, т.к. не обязательно держать всю правую таблицу в оперативке)
  • https://t.me/clickhouse_ru
    Это исправлено давно и можно пофиксить установкой параметра https://github.com/yandex/ClickHouse/issues/3976#issuecomment-454009626
  • https://t.me/clickhouse_ru
    @ivymike_b #101009 12:07 PM, 17 May 2019
    Всем привет.
    Скажите, есть какая стандартная, наиболее короткая процедура действий после добавления колонки в таблицу, у которой есть materialized view???
  • https://t.me/clickhouse_ru
    ## добавляем поле NEWCOL
    detach table kostya_test.view_table;

    alter table kostya_test.`.inner.view_table` add column NEWCOL String;

    ATTACH MATERIALIZED VIEW kostya_test.view_table( date Date, customer_id UInt32, val AggregateFunction (sum, UInt32), NEWCOL String) ENGINE = ReplicatedAggregatingMergeTree('/clickhouse/tables/kostya_test.view_table', '{replica}', date, (date, prom_customer_id, val), 8192)AS SELECT date, customer_id, sumState(val) AS val,NEWCOL FROM test_db.log_41949_pageviews_product GROUP BY date, customer_id;
  • https://t.me/clickhouse_ru
    stop merges помогло, спасибо! А вот рестарт сервера не помог.
  • https://t.me/clickhouse_ru
    @danilgrig #101012 12:23 PM, 17 May 2019
    только я не понял, эта команда совсем мержи отключает или только текущие прибивает?)
  • https://t.me/clickhouse_ru
    @danilgrig #101013 12:24 PM, 17 May 2019
    сделал start merges на всякий, те тяжелые мержы не воскресли.
  • https://t.me/clickhouse_ru
    @ygrishaev #101014 01:57 PM, 17 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @dvpost #101015 01:58 PM, 17 May 2019
    Joined.
  • @J0hnSmitt #101016 02:22 PM, 17 May 2019
    подскажите как реализовать:
    есть таблица с пятиминутной статистикой в таком виде:
    2019-05-13 13:55:00 985162418487296
    2019-05-13 14:00:00 774056185954304

    нужно эти пятиминутные индервалы усреднить до часа и потом отобразить в виде пятиминутных интервалов... вот в таком виде (левый столбец для наглядности)
    12:55:00-13:55:00 2019-05-13 13:55:00 985162418487296
    13:00:00-14:00:00 2019-05-13 14:00:00 774056185954304

    как такое реализовать?)
  • @GeorgySt #101017 02:35 PM, 17 May 2019
    select toStartOfHour(td) as start, avg( ... ) from ... group by start
  • это вернет часовые интервалы, а нужны пятиминутные агрегации часовых выборок) вот как сказал)
  • https://t.me/clickhouse_ru
    скользящее среднее?
  • @J0hnSmitt #101020 02:48 PM, 17 May 2019
    да
  • https://t.me/clickhouse_ru
  • @J0hnSmitt #101022 02:49 PM, 17 May 2019
    спасибо) буду смотреть)
  • https://t.me/clickhouse_ru
    @mgolubev #101023 03:11 PM, 17 May 2019
    Добрый день нужна помощь
    Есть словарь в котором есть поле типа Decimal32
    select dictGetDecimal32('dictionary', 'column', id)
    Code: 46. DB::Exception: Unknown function dictGetDecimal32. Maybe you meant: ['dictGetFloat32','toDecimal32'].

    select dictGetFloat32('dictionary', 'column', id)
    Code: 53. DB::Exception: service: type mismatch: attribute price has type Decimal32.
    но при попытке прочитать такое поле выходит ошибка
    пробовали dictGetDecimal32 и dictGetFloat32
    спасибо заранее
  • https://t.me/clickhouse_ru
    Может версия КХ старая и не понимает новых функций, которые в доке описаны?
  • https://t.me/clickhouse_ru
    @mgolubev #101025 03:32 PM, 17 May 2019
    но в доке я тоже не нашел такой функции - мне нужна функция которая может вытащить значение Decimal32 из дикта
    https://clickhouse.yandex/docs/en/query_language/functions/ext_dict_functions/
  • https://t.me/clickhouse_ru
    хм, я не нашел специализации для этого типа, видимо ее просто еще нет.
  • @Noonesthere #101028 03:38 PM, 17 May 2019
    /stat@combot
  • https://t.me/clickhouse_ru
    @pspetrov91 #101030 03:46 PM, 17 May 2019
    Joined.
  • @pavel_maksimow #101033 04:03 PM, 17 May 2019
    Появился на новом развернутом сервере какой-то лимит. Подскажите, как исправить?

    Code: 159, e.displayText() = DB::Exception: Timeout exceeded: elapsed 5.000000708 seconds, maximum: 5:
  • @181568392 #101034 04:20 PM, 17 May 2019
    /stat@combot
  • https://t.me/clickhouse_ru
    в профиле пользователя
    <max_execution_time>900</max_execution_time>
  • поставлю, спасибо!
  • https://t.me/clickhouse_ru
    @241186216 #101038 05:15 PM, 17 May 2019
    КХ падает при старте т.к есть поле с названием Index в таблице
    .. как починить ?
  • https://t.me/clickhouse_ru
    @proller #101039 05:22 PM, 17 May 2019
    пойти в .sql файл в metadata и слово index взять в ковычки `
  • https://t.me/clickhouse_ru
    @proller #101040 05:24 PM, 17 May 2019
    /var/lib/clickhouse/metadata/[dbname]/[tablename].sql
  • https://t.me/clickhouse_ru
    @stovm #101041 06:47 PM, 17 May 2019
    Периодически сталкиваюсь с тем, что пишу что-то в клиенте 19.5.3.8 и в этот момент всё крашится, сервер падает, дальше connection refused =/
  • https://t.me/clickhouse_ru
    @stovm #101042 06:47 PM, 17 May 2019
    В логах ничего внятного. Никто не сталкивался?
  • https://t.me/clickhouse_ru
    @stovm #101043 06:50 PM, 17 May 2019
    Последняя версия как сервера, так и клиента. Ну одна из последних
  • https://t.me/clickhouse_ru
    19.5.3.8 (19.4.4.33+) segmentation fault on CH-client query to system catalog. · Issue #5066 · yandex/ClickHouse

    I experienced several crashes right after I ran create table from CH client. Probably the cause is the CH cli 'auto-complete' query: SELECT DISTINCT arrayJoin(extractAll(name, &...

  • https://t.me/clickhouse_ru
    @den_crane #101045 06:53 PM, 17 May 2019
    я тупо сделал alias clickhouse-client = clickhouse-client -A
  • https://t.me/clickhouse_ru
    @den_crane #101046 06:53 PM, 17 May 2019
    но уже пофикшено (19.5.4.22)
  • https://t.me/clickhouse_ru
    @stovm #101047 07:07 PM, 17 May 2019
    Ух. Спасибо большое!
  • https://t.me/clickhouse_ru
    @travelmamago #101048 08:33 PM, 17 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @un000 #101050 10:50 PM, 17 May 2019
    Порадовал
  • 18 May 2019 (29 messages)
  • @Nvarchar495 #101051 07:24 AM, 18 May 2019
    Привет! У меня маленькая победа. Яндекс вывел на 1 место мой сайт по слову "clickhouse мануал" даже с зелёным значком 😀
  • Проблема за малым, чтобы там действительно был какой-то мануал, или хотя бы нечто, превосходящее по возможностям поиск по истории телеграм канала. Пока ваш подвиг легко повторить воспользовавшись кнопкой "экспорт истории канала", и загрузив результат на какой-нибудь бесплатный хостинг. И кстати результат экспорта выглядит красивее :)
  • @mfilimonov #101053 07:52 AM, 18 May 2019
    Это я не в смысле что то не нужно этого делать, а в смысле что если это хорошо сделать, то и никакое позиционирование сайту не понадобится. А сейчас поисковик выдаёт ваш сайт, заходит человек, думает "куда я попал?" и немедленно выходит
  • https://t.me/clickhouse_ru
    @ployd #101054 07:53 AM, 18 May 2019
    ++
  • https://t.me/clickhouse_ru
    @hagen1778 #101055 08:01 AM, 18 May 2019
    Немного демотивации прямо с утра)
  • @mfilimonov #101058 08:10 AM, 18 May 2019
    Чтобы сделать это хорошо нужно как минимум попробовать показывать цепочки связанных сообщений как единый тред, чтобы был поиск который находит нужные треды. Ещё лучше - чтобы можно было полезность тредов /конкретных сообщений оценивать, можно как-то по тематике треды отэговать, в идеале чтобы оно само тэговалось в реалтайме с помощью NLP, фильтры всякие и т.п.
  • @mfilimonov #101061 08:12 AM, 18 May 2019
    В общем StackOverflow поверх истории чата :-)
  • @Nvarchar495 #101062 08:21 AM, 18 May 2019
    Лайкалку сделать просто, а треды покапаю, спасибо
  • https://t.me/clickhouse_ru
    @kshvakov #101066 08:29 AM, 18 May 2019
    Выложил к себе видео с митапа на Кипре, чуть позже мы его куда-то более официально положим :) https://exness-2019.clickhouse.ninja/
  • https://t.me/clickhouse_ru
    @ivymike_b #101069 09:11 AM, 18 May 2019
    Всем привет. Как подружить КХ и Tableau??? С драйвером, скомпилированным под мак периодически выдает ошибку DSN
  • Ходите по хттп
  • https://t.me/clickhouse_ru
    А по чему еще ходить можно? К кх же и так по хттп только ходят большинство клиентов
  • https://t.me/clickhouse_ru
    @stufently #101072 11:56 AM, 18 May 2019
    по тисипи
  • https://t.me/clickhouse_ru
    Да. Но в odbc для кх вроде ж хттп прописывается. Не могу утверждать точно, на работе все инструменты.
  • https://t.me/clickhouse_ru
    Да и тот же хттп поверх тсп
  • https://t.me/clickhouse_ru
    @stufently #101075 12:58 PM, 18 May 2019
    Там нет ограничений протокола хттп )))
  • https://t.me/clickhouse_ru
    @stufently #101076 12:58 PM, 18 May 2019
    То гет длинный то ещё что нибудь
  • https://t.me/clickhouse_ru
    @EKbfh #101077 01:17 PM, 18 May 2019
    Привет!
    Релиз-ноутс для 19.6.2.11 нет?
  • https://t.me/clickhouse_ru
    @n_e0h #101078 01:26 PM, 18 May 2019
    Joined.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @valyala #101080 04:26 PM, 18 May 2019
    Join Cloudflare & Yandex at our Moscow meetup! Присоединяйтесь к митапу в Москве!

    Are you based in Moscow? Cloudflare is partnering with Yandex to produce a meetup this month in Yandex's Moscow headquarters. We would love to invite you to join us to learn about the newest in the Internet industry.

  • https://t.me/clickhouse_ru
    @ivldops #101081 04:46 PM, 18 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @umbertolopes #101082 06:52 PM, 18 May 2019
    Есть такое условие в запросе:
    where ‘’ = ‘’ or url like ‘’
    Оно генерируется графаной когда variable пустая.
    (Вот так в графане:
    where ‘’ = ‘$url’ or url like ‘$url’)
    Запрос с таким условием отрабатывается медленнее в кликхаусе, чем если бы такого условия не было. Такое ощущение, что кх считывает данные из колонки url, хотя первое условие true и по идее второе условие не нужно проверять.
    Подскажите, пожалуйста, как лучше переписать такое условие, чтобы колонка url не считывалась?
  • https://t.me/clickhouse_ru
    можно попробовать использовать where if(''='$url', 1, url like '$url'). См. https://github.com/yandex/ClickHouse/issues/658
    Feature request: evaluate and prune constant expressions before columns' scanning · Issue #658 · yandex/ClickHouse

    The issue Suppose the following table exists: CREATE TABLE events ( EventDate Date, ClientID UInt32 ) Engine = MergeTree(EventDate, (EventDate, ClientID), 8192); We use the following query template...

  • https://t.me/clickhouse_ru
    @umbertolopes #101084 07:45 PM, 18 May 2019
    Отлично! Попробую. Спасибо!
  • https://t.me/clickhouse_ru
    @umbertolopes #101085 08:10 PM, 18 May 2019
    Хм, похоже, не помогло использование if. Сделал как вы написали выше, объём обработанных данных остался прежним. Вот если вообще убрать это условие, то данных обрабатывается меньше и запрос быстрее выполняется.
  • https://t.me/clickhouse_ru
    @umbertolopes #101086 08:11 PM, 18 May 2019
    Версия сервера 19.1.6. Может в последних версиях это оптимизировано уже
  • https://t.me/clickhouse_ru
    @IgorRekun #101087 08:27 PM, 18 May 2019
    Ребята, хочу узнать ваше мнение по следующему сценарию использования: есть жирная база, которая уже в КХ, в ней есть таблица на около 50млрд строчек, в таблице есть колонка last_updated. Сейчас в эту таблицу в основном пишется, а через какое то время нагрузка сместится в сторону апдейтов. Движок Replacing.

    Не ляжет ли КХ если я планомерно буду вытаскивать N самых старых записей обновлять их и писать обратно?
  • https://t.me/clickhouse_ru
    @EKbfh ↶ Reply to #101079 #101088 08:47 PM, 18 May 2019
    спс. Искал в основной ветке.
  • 19 May 2019 (14 messages)
  • https://t.me/clickhouse_ru
    @f0rden #101089 12:13 AM, 19 May 2019
    здравствуйте
    есть таблица со постоянно растущими значениями
    нужно вычислять разницу
    то есть грубо говоря есть столбец count
    в полночь count = 0
    через час count = 50
    через 2 часа count = 58
    нужно вычислить разность на каждом промежутке
    как это сделать силами КХ?
  • https://t.me/clickhouse_ru
    @un000 #101090 12:17 AM, 19 May 2019
    group by formatDateTime('%F %H') ?
  • https://t.me/clickhouse_ru
    @un000 #101091 12:19 AM, 19 May 2019
    либо
    https://clickhouse.yandex/docs/ru/query_language/functions/other_functions/#runningdifference-x
  • https://t.me/clickhouse_ru
    @f0rden ↶ Reply to #101091 #101092 12:24 AM, 19 May 2019
    идеально подошло, спасибо
  • Можете пример показать, какой url нужен веб дата коннектору в табло, то в той что в документации просит авторизацию
  • https://t.me/clickhouse_ru
    @fameowner #101094 09:39 AM, 19 May 2019
    Joined.
  • @mobydi #101097 11:25 AM, 19 May 2019
    В как вы версионируете sql скрипты создания и обновления таблиц? Как делаете миграцию если меняется тип?
  • https://t.me/clickhouse_ru
    @kTelyakov #101098 12:37 PM, 19 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @renatikmaratik #101099 12:38 PM, 19 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @a1exm0 #101100 01:53 PM, 19 May 2019
    Добрый день! А кто-нибудь использует внешние словари из постгреса 11 версии, через odbc? После обновы пг и кх столкнулся с такой ошибкой
  • https://t.me/clickhouse_ru
    @a1exm0 #101101 01:53 PM, 19 May 2019
    Received exception from server (version 19.6.2):
    Code: 86. DB::Exception: Received from localhost:9000, ::1. DB::Exception: Received error from remote server /identifier_quote?connection_string=DSN%3Dpgconnection. 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:pgconnection
    ===========================
    ODBC Diagnostic record #1:
    ===========================
    SQLSTATE = 01000
    Native Error Code = 0
    [unixODBC][Driver Manager]Can't open lib 'psqlodbcw.so' : file not found
  • https://t.me/clickhouse_ru
    @a1exm0 #101102 01:53 PM, 19 May 2019
    Pg 11.2 ch 19.6.2
  • https://t.me/clickhouse_ru
    @a1exm0 #101103 02:02 PM, 19 May 2019
    хм. Кажется понял, похоже драйвера нет. На 9.x без явного указания работало.
  • https://t.me/clickhouse_ru
    @a1exm0 #101104 02:47 PM, 19 May 2019
    Тэкс с драйвером я подшаманил, но теперь новая проблема. А почему запросы теперь для словарей экранируются кавычками?
    2019-05-19 17:26:31.749 MSK [7943] postgres@master ERROR: relation "USERS" does not exist at character 64
    2019-05-19 17:26:31.749 MSK [7943] postgres@master STATEMENT: PREPARE "_PLAN0x7f5115712c00" as SELECT "id", "username" FROM "USERS";;EXECUTE "_PLAN0x7f5115712c00"
  • 20 May 2019 (121 messages)
  • @molchanovdp #101106 06:20 AM, 20 May 2019
    Коллеги, доброе утро. Подскажите решение проблемы.
    Есть таблица с 2500 колонок. 4 шарда, на каждом distributed таблица и buffer перед ней.
    В ситуации когда одновременно приходит около 100 инсертов падает ошибка с too many open files.
    В операционной системе ограничение на кол-во открытых файлов поставили 999999. В КХ нет ограничения.
    Понимаю, что слишком много колонок, но можно ли решить проблему без изменения схемы хранения?
  • https://t.me/clickhouse_ru
    @GenieTonik #101107 06:21 AM, 20 May 2019
    Добрый день коллеги! Я чувствую что задача очень типична для CH, подскажите есть ли решение лучше.

    есть видеохостинг. Есть события (datatime, user_id, file_id, start_play| stop_play)
    ... можно еще какие то данные добавить
    Нужно получить список тех кто вот сейчас смотрит видео. Их может быть в районе 40-60 тыс. Между start и stop может пройти до двух часов.

    Мне в голову приходит схема

    Events (datatime, user_id, file_id, action Int )
    где action может быть
    1 (start_play)
    -1 (stop_play)

    тогда активные сессии это (псевдокод)

    SELECT user_id, file_id, sum(action) as session_state
    FROM Events
    WHERE datatime > NOW() - 1 DAY
    HAVING session_state > 0

    но чтото я не уверен что это лучше решение именно в рамках CH
  • https://t.me/clickhouse_ru
    @stovm ↶ Reply to #101107 #101108 06:25 AM, 20 May 2019
    Можно сделать mv и группировать в сумму стэйтов по паре пользователь, файл и некоторому интервалу. Там, где sumMerge() = 1, там сессия активна
  • https://t.me/clickhouse_ru
    @stovm #101109 06:26 AM, 20 May 2019
    По крайней мере можно попробовать
  • https://t.me/clickhouse_ru
    @GenieTonik #101110 06:27 AM, 20 May 2019
    Речь про https://clickhouse.yandex/docs/en/operations/table_engines/merge/ ? Я просто понял из док и обсуждения, что он рулит когда записи схлопываются быстро. А если до 2 часов будет ли профит?
  • https://t.me/clickhouse_ru
    @GenieTonik #101111 06:28 AM, 20 May 2019
    упс, я хотел дать сыслку на https://clickhouse.yandex/docs/en/operations/table_engines/mergetree/
  • https://t.me/clickhouse_ru
    @GenieTonik #101112 06:28 AM, 20 May 2019
    ну в любом случае буду благодарен за пояснение. Как раз понимания конкретного инструментария СH мне и не хватает
  • https://t.me/clickhouse_ru
    @stovm ↶ Reply to #101107 #101113 06:37 AM, 20 May 2019
    зависит от объёмов. Если Вас устраивают скорости в этом решении, то всё ок. Если не устраивают, то Materialized View с некоторой предагрегацией
  • https://t.me/clickhouse_ru
    @stovm #101114 06:37 AM, 20 May 2019
    не очень понятно это: WHERE datatime > NOW() - 1 DAY, так как по Вашему условию сессия до двух часов
  • https://t.me/clickhouse_ru
    @GenieTonik #101115 06:38 AM, 20 May 2019
    Ну то есть ни чего сильно проще и CH-way в голову не приходит. Ок спасибо
  • https://t.me/clickhouse_ru
    @GenieTonik #101116 06:39 AM, 20 May 2019
    Ну это я так, не сильно думая, с запасом. Вопрос был скорее - нет ли какого то заточенного под это движка / механизма. буду пробовать
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @stovm #101118 06:41 AM, 20 May 2019
    А вот это https://clickhouse.yandex/docs/ru/operations/table_engines/collapsingmergetree/
    Судя по доке, - то, что Вы ищете
  • https://t.me/clickhouse_ru
    @stovm #101119 06:41 AM, 20 May 2019
    🙂
  • https://t.me/clickhouse_ru
    @stovm #101120 06:43 AM, 20 May 2019
    Никогда не пробовал Collapsing
  • https://t.me/clickhouse_ru
    @GenieTonik #101121 06:43 AM, 20 May 2019
    А вот тут я не твердо еще разбираюсь
    > при слиянии кусков данных
    > алгоритм слияния кусков данных логику

    куски сливаются до какого размера? сколько их будет за день? В теории механизм понимаю, но конкретные цифры чтото сходу не найду
  • https://t.me/clickhouse_ru
    @GenieTonik #101122 06:43 AM, 20 May 2019
    я переживаю что если колапсинг будет, ну скажем, в в приделах 5-10 минут, то и профита мало будет, так как сессии длинее
  • https://t.me/clickhouse_ru
    @ployd #101123 07:12 AM, 20 May 2019
    Господа, а есть ли настройка, чтобы в FORMAT JSON FIxedString без нулей на конце выдавался?
  • @dosereda #101124 07:40 AM, 20 May 2019
    Всем привет. прошу оценить на сколько я на верном пути:
    есть таблица с значениями: eventtime, login и action [login/logout], но, результат нужен в grafana, в виде графика login и линии отображающей присутствие на ресурсе (аналогичный график уже имеется, и такое отображение устраивает) я собираюсь (не знаю подходящую функцию) исходя из времени login - время timeout генерировать значения с шагом в 10 мин, чтобы их отображать их на графике.
    Правильный ли такой подход, как реализовать в запросе вычисление (времени logout-а - время login-а)?
  • Чтобы по завершении выполнить group by toStartOfTenMinutes() и получить значения зарегистрированного в системе login-а с шагом в 10 минут
  • datadiff ('minute', login_time, now() ) ?
  • Буду пробывать, спасибо.
  • https://t.me/clickhouse_ru
    @IgorRekun #101128 08:14 AM, 20 May 2019
    Ребят, все еще актуально.

    Можно ли реализовать обновление last_updated в CH. Из таблицы выстаскиваются bulk'ом старые записи и обновляется состояние. Не ляжет ли при большом объеме таблицы?
  • @mobydi ↶ Reply to #101097 #101129 08:22 AM, 20 May 2019
    ?
  • @justoncee #101130 09:28 AM, 20 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @vbuttermaan #101131 09:32 AM, 20 May 2019
    Всем привет! Подскажите пожалуйста, можно ли как то прописать в конфиг
    allow_experimental_data_skipping_indices = 1 чтобы не задавать каждый раз SET перед запросом?
  • https://t.me/clickhouse_ru
    @zahnik #101132 09:50 AM, 20 May 2019
    /stat@combot
  • @vstakhov #101134 09:51 AM, 20 May 2019
    отцы, а есть у кого какие-то цифры по занимаемому объему колонки в сабже на тему float32 vs int32(float32 * precision), где precision будет, скажем, 3 знака - 1000
  • https://t.me/clickhouse_ru
    @stovm #101135 10:34 AM, 20 May 2019
    Задамся общим вопросом. А для всех ожидаемо поведение, что lower() не срабатывает для utf8 и надо использовать lowerUTF8 ?
  • https://t.me/clickhouse_ru
    зависит от самих данных и метода сжатия - https://clickhouse.yandex/docs/en/query_language/create/#column-compression-codecs
    проще проверить на чем-то похожем на твои данные.
  • https://t.me/clickhouse_ru
    up. Вопрос всё еще актуален.
  • Можно прописать в конфиг на сервере или в конфиг на клиенте. На сервере нужно править users.xml:
    <profiles>
    <default>
    <allow_experimental_data_skipping_indices>1</allow_experimental_data_skipping_indices>
    </default>
    </profiles>
  • https://t.me/clickhouse_ru
    Можно через stdout и ограничить в pv.
  • https://t.me/clickhouse_ru
    В чем проблема увеличить до 9999999?
  • https://t.me/clickhouse_ru
    40 тыс. и кх? Mysql / redis / cassandra. Лить в кх уже готовые данные.
  • https://t.me/clickhouse_ru
    Неправильно переживаете.
  • https://t.me/clickhouse_ru
    @GenieTonik #101143 11:41 AM, 20 May 2019
    Да понятно что на редисе решается, но CH как раз уже есть и чтото новое ставить не сильно хочется.
  • @dmitqrt #101144 11:41 AM, 20 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @GenieTonik #101145 11:41 AM, 20 May 2019
    вот тут можно подробней, если не сложно - сильно плаваю в понмание
  • https://t.me/clickhouse_ru
    @GenieTonik #101146 11:41 AM, 20 May 2019
    он мерджит за какой период времени?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @GenieTonik #101148 11:42 AM, 20 May 2019
    ооо, спасбо буду разбираться
  • https://t.me/clickhouse_ru
    Нет ограничений по времени, есть по размеру (по дефолту 150гб). Другое дело мерж приходит когда-нибудь, может никогда.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @GenieTonik #101151 11:45 AM, 20 May 2019
    то есть если партиции делать по месяцам, скажем, в бекграунде весь месяц может смерджиться в один блоб?
    Это фишка именно mergetree подсимейства ?
  • https://t.me/clickhouse_ru
    Да и да.
  • https://t.me/clickhouse_ru
    @GenieTonik #101153 11:46 AM, 20 May 2019
    Спасибо, я как то по другому из докладов понял.
  • https://t.me/clickhouse_ru
    Надо тестить. Сколько у вас записей в день?
  • https://t.me/clickhouse_ru
    @ployd ↶ Reply to #101150 #101155 11:51 AM, 20 May 2019
    То есть нету? Ну ок (
  • https://t.me/clickhouse_ru
    В чем проблема написать toString в select?
  • https://t.me/clickhouse_ru
    @ployd ↶ Reply to #101156 #101157 11:58 AM, 20 May 2019
    Запрос автоматически набирается из system.columns. С другой стороны, я уже достаю тип, как раз, чтобы обрезать нули лишние
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Супер! Спасибо, помогло!
  • @alp26 #101160 12:22 PM, 20 May 2019
    Joined.
  • @Arheich #101161 12:25 PM, 20 May 2019
    Joined.
  • @Arheich #101162 12:30 PM, 20 May 2019
    Коллеги привет! Решили обновить сервера с КХ, версия 1.1.54231 до 19.6, после обновления получил ошибку:
    <Error> analytics..inner.main_page_hits (StorageReplicatedMergeTree): Code: 40, e.displayText() = DB::Exception: Checksums of parts don't match: hash of uncompressed files doesn't match (version 19.6.2.11 (official build)). Data after merge is not byte-identical to data on another replicas. There could be several reasons

    Сервер завелся, данные с диска видны, новые с Зоокипера не затягивает. Куда капать?
    Несовместимость версий или что-то другое?
  • https://t.me/clickhouse_ru
    Обновили на всех серверах? Конфиги на всех серверах идентичные?
  • обновление начали с слейвов, дальше не стали рисковать. Запись происходит со старых серверов 1.1
  • конфиг идентичен
  • https://t.me/clickhouse_ru
    Вы вообще тестили на стейдже? Приложение 100% не заработает.
  • полноценного кластерного тестового стенда нет, тестили на отдельных нодах. Все было норм пока не завели их в кластер со старыми серверами, которые пока пишут данные
  • https://t.me/clickhouse_ru
    @radya100 #101168 12:41 PM, 20 May 2019
    Привет. А как правильно удалить из файловой системы неиспользуемые мат. вью ? версия КХ - последняя, Осталось на диске с прежних версий в /var/lib/ch... - занимает место. При попытке удаления drop table mvTab говорит , что такой таблицы нет...
  • https://t.me/clickhouse_ru
    в общем например были исправления багов, старые версии иногда мержили с ошибками, поэтому старая и новая могут помержить с разным результатом.
  • https://t.me/clickhouse_ru
    В день до 10 млн записей обновляется. Сейчас я их буферизую, склеиваю и раз в час лью в таблицу. Работает но нервничаю что перестанет когда таблица большой совсем станет.
  • Ясно, я верно понял, если обновить разом все сервера(те что пишут и читают) то скорее всего данная проблема уйдет?
  • https://t.me/clickhouse_ru
    да
  • Спасибо за оперативность!
  • https://t.me/clickhouse_ru
    Ну я бы начал с mv каталога таблицы в другое место потом rm. Как вообще так получилось?
  • https://t.me/clickhouse_ru
    недоглядел. Удаляли старые данные при переходе на новую схему загрузки. Но проблема , что МВ была реплицируемой. И в ЗК остались записи о ней
  • https://t.me/clickhouse_ru
    можно сделать attach / drop тогда и с диска и из зк удалится
  • https://t.me/clickhouse_ru
    @IgorRekun #101177 01:03 PM, 20 May 2019
    За issue спасибо, то что нужно. Недооценил возможности, 5млн в секунду перекрывает мои нужды по апдейтам.
  • https://t.me/clickhouse_ru
    там довольно нетривиальный вариант (я его не проверял) и ENGINE = JOIN кушает память, но млн. можно туда засунуть.
  • @Nikqwag #101179 01:20 PM, 20 May 2019
    Подскажите, пожалуйста, какой параметр нужно использовать у пользователя для отключения кэширования при повторной отправке аналогичного запроса за короткий срок.
    Т.е. работая над оптимизацией запроса, нужно понимание насколько он стали бустрее/медленнее и точно быть уверенным, что данные вычитываются "как в первый раз", а не попадают в "горячий кэш".
  • https://t.me/clickhouse_ru
    @MaximStanovov #101180 01:28 PM, 20 May 2019
    Привет, с версии 19.6 посыпались ошибки:

    1. Code: 9, e.displayText() = DB::Exception: Size of filter (1944) doesn't match size of column (1948) (version 19.6.2.11 (official build))

    2. Incorrect size of index granularity expect mark 1080 totally have marks 1080, Stack trace

    Как с этим бороться?
  • https://t.me/clickhouse_ru
  • Прошу прощения, не нашел. Спасибо!
  • https://t.me/clickhouse_ru
    вы второй кто наступил на это. Это неведомая хрень и она не починена, так как первый не открыл тикет, не смог найти и прислать разработчикам парт на котором это происходит, это никто не смог воспроизвести.
  • https://t.me/clickhouse_ru
    @broderix #101184 02:45 PM, 20 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @filippchistiakov #101185 02:50 PM, 20 May 2019
    Sqlalchemy нормально работает с кх?

    Есть у кого-то опыт?
  • Есть, нормально.
  • Бывает проблемы вылезают, но их фиксят периодически
  • @justoncee #101188 03:12 PM, 20 May 2019
    Была проблема с лимитированием выборки (limit, offset). В оригинальном репозитории с коннектором вроде бы не исправлено до сих пор. В моем форке поправлено https://github.com/JustOnce/sqlalchemy-clickhouse/. Может пригодится.
  • https://t.me/clickhouse_ru
    Спасибо!
  • К слову, зависит от диалект для кх. От флары диалект плоский, почти без фич. Есть ещё один, clickhouse-sqlalchemy, вот он пободрей будет на фичи. Пользуюсь им, проблем нет
  • @weery28 #101193 05:24 PM, 20 May 2019
    А типа jooq есть что-то для CH ?
  • https://t.me/clickhouse_ru
    @orantius #101194 05:25 PM, 20 May 2019
    смотря у кого.
  • https://t.me/clickhouse_ru
    @un000 #101195 05:27 PM, 20 May 2019
    а зачем?
  • https://t.me/clickhouse_ru
    @stovm #101196 05:48 PM, 20 May 2019
    Добрый вечер!
    Подскажите, пожалуйста.

    CREATE TABLE a
    (
    a_field_1 Int32,
    a_field_2 Int32
    )
    ENGINE = Log();

    CREATE TABLE b
    (
    b_field_1 Int32,
    b_field_2 Int32
    )
    ENGINE = Log();

    INSERT INTO a VALUES (1,2);
    INSERT INTO b VALUES (3,4);

    Существует ли какой-то отличный от приведённого ниже способа получить объединение, чтобы всё само заполнилось дефлотными значениями. А то мне надо сделать union all последовательный многих таблиц, а то, что ниже написано, превращается в монстра, так как надо следить за названиями полей и подстановкой дефолтных значений:
    select
    a_field_1,
    a_field_2,
    0 as b_field_1,
    0 as b_field_2
    from a
    union all
    select
    0 as a_field_1,
    0 as a_field_2,
    b_field_1,
    b_field_2
    from b
  • https://t.me/clickhouse_ru
    В классическом sql все решается алиасами для полей, чьи названия не совпадают.
  • https://t.me/clickhouse_ru
    union не учитывает названия полей в любом sql, только порядок
  • https://t.me/clickhouse_ru
    @stovm ↶ Reply to #101197 #101199 05:54 PM, 20 May 2019
    Ну я алиасы и написал, но это вариант так себе.
    Кажется, очень в стиле колоночного мира будет если
    SELECT
    a_field_1,
    a_field_2
    FROM a
    UNION ALL
    SELECT
    b_field_1,
    b_field_2
    FROM b

    будет возвращать как раз таблицу с a_field_1, a_field_2, b_field_1, b_field_2 и заполнять дефолтными значениями
  • https://t.me/clickhouse_ru
    @stovm #101200 05:54 PM, 20 May 2019
    Сейчас кстати результат выполнения запроса:
    ┌─a_field_1─┬─a_field_2─┐
    │ 3 │ 4 │
    └───────────┴───────────┘
    ┌─a_field_1─┬─a_field_2─┐
    │ 1 │ 2 │
    └───────────┴───────────┘

    2 rows in set. Elapsed: 0.004 sec.
  • Так было бы даже логичнее, но в SQL не так.
  • https://t.me/clickhouse_ru
    @litvinsedaya #101202 05:56 PM, 20 May 2019
    select field1, field2 from (select field1, field2 from table1 union all select field1, field2 from table2)
  • https://t.me/clickhouse_ru
    @litvinsedaya #101203 05:56 PM, 20 May 2019
    Если я правильно поняла задачу
  • https://t.me/clickhouse_ru
    @stovm #101204 05:56 PM, 20 May 2019
    поля имеют разные названия
  • https://t.me/clickhouse_ru
    @stovm #101205 05:56 PM, 20 May 2019
    в разных таблицах
  • https://t.me/clickhouse_ru
    @stovm #101206 05:56 PM, 20 May 2019
    а моугт иметь и одинаковые
  • https://t.me/clickhouse_ru
    @litvinsedaya #101207 05:57 PM, 20 May 2019
    После юниона колонка имеет то название, что первая выбранная
  • https://t.me/clickhouse_ru
    @litvinsedaya #101208 05:57 PM, 20 May 2019
    Т.е. Select field1 union all select field2737378 - колонка будет называться field1
  • https://t.me/clickhouse_ru
    @stovm #101209 05:59 PM, 20 May 2019
    наверное, я плохо объясняю:
    table1
    колонки: a,b,c
    значения: 1,2,3

    table2
    колонки: b,c,d
    значения: 4,5,6

    Как мне после union all получить,
    a,b,c,d:
    1,2,3,0
    0,4,5,6
    кроме как прямо указав
    select
    a,b,c, 0 as d
    from table1
    union all
    0 as a, b,c,d
    from table2
  • https://t.me/clickhouse_ru
    никак это не сделать, кроме вашего громоздкого варианта
  • https://t.me/clickhouse_ru
    @stovm ↶ Reply to #101210 #101211 06:01 PM, 20 May 2019
    Печаль. Даже issue на такую «фичу» заводить не стоит?
  • @milovidov_an #101212 06:03 PM, 20 May 2019
    Можно было бы feature request, но пока мало перспективно.
  • https://t.me/clickhouse_ru
    @stovm ↶ Reply to #101212 #101213 06:03 PM, 20 May 2019
    Ясно. Спасибо, Алексей
  • https://t.me/clickhouse_ru
    как это в sql вписать? это нужен какой-то engine = SuperMerge или табличная функция.
  • https://t.me/clickhouse_ru
    @stovm #101215 06:03 PM, 20 May 2019
    UNION ALL EXTENDED
  • https://t.me/clickhouse_ru
    @stovm #101216 06:03 PM, 20 May 2019
    🙂
  • @milovidov_an #101217 06:04 PM, 20 May 2019
    Или настройка "делать UNION по особенному".
  • https://t.me/clickhouse_ru
    @stovm #101218 06:05 PM, 20 May 2019
    Тоже вариант. Кажется, что если совпадают названия колонок, но не совпадают типы - ошибка. Если совпадают названия и типы - как обычный union, если колонка с уникальным названием, значение и заполнить остальное дефолтным значением типа
  • https://t.me/clickhouse_ru
    кстати, altinity делает фичи за деньги
  • https://t.me/clickhouse_ru
    @stovm ↶ Reply to #101219 #101220 06:09 PM, 20 May 2019
    Да если честно, мне проще утилиту написать, которая сама развернёт в эти алиасы. Тратить деньги, чтобы экономить на тексте, который итак можно сгенерить, так себе. Я скорее как математик смотрю на это, как на некоторое объединение множеств. В колоночном мире оно выглядит достаточно понятным образом
  • @milovidov_an #101221 06:09 PM, 20 May 2019
    Если кто-то хочет сделать, то я напишу, в какие места кода смотреть. Внутри кода такая логика работы уже поддержана и используется, например, для таблиц типа Merge.
  • https://t.me/clickhouse_ru
    @stovm ↶ Reply to #101221 #101222 06:10 PM, 20 May 2019
    Хорошо, спасибо. Поспрашиваю, - вдруг найдутся у меня коллеги заинтересованные
  • @431883238 #101223 06:32 PM, 20 May 2019
    Joined.
  • @431883238 #101224 06:33 PM, 20 May 2019
    Доброго времени дня. Весь день пытаюсь заставить CH читать данные из kafka. Похоже наткнулся на https://github.com/yandex/ClickHouse/issues/4248 . Кто-нибудь знает какая версия стабильно работает с кафкой ?
    Kafka offset commit failed · Issue #4248 · yandex/ClickHouse

    Sometimes clickhouse stop commiting offset for consumergroup. And then it take duplicated messages into DB. Just in random time it start this logs Feb 04 07:07:35 clickhouse-server[400]: %4|1549253...

  • https://t.me/clickhouse_ru
    @kopurando #101225 06:36 PM, 20 May 2019
    приветствую,
    Секция WITH упомянута в доках мельком, и не могу понять, есть ли возможность вынести её на верхний уровень в запросах с JOIN или UNION, чтоб избежать повторов:

    WITH 42 AS x
    SELECT x
    UNION ALL
    WITH 42 AS x
    SELECT x

    Вот можно ли тут как-то обойтись одним WITH?
  • https://t.me/clickhouse_ru
    @kopurando #101226 06:41 PM, 20 May 2019
    или есть другой способ обозначить "константу" и спустить её во все подзапросы ниже
  • @GeorgySt #101227 10:17 PM, 20 May 2019
    Support for WITH clause · Issue #2416 · yandex/ClickHouse

    Will ClickHouse support WITH clause (common table expression, cte)? Like https://www.postgresql.org/docs/9.1/static/queries-with.html The thing that with CTE I can define temp dataset I can then qu...

  • Давайте спросим у @ilezhankin.
  • Такого способа нет, пока только рассматриваются варианты, как лучше будет оформить эту возможность.
  • 21 May 2019 (220 messages)
  • https://t.me/clickhouse_ru
    @kopurando #101230 12:48 AM, 21 May 2019
    спасибо, будем ждать. Даже возможность использовать в подзапросах скаляры и массивы из WITH -- уже полезно
  • Похоже с 19.1 ситуация немного лучше, но возможно работают и более новые версии. Читал про проблемы и нашёл https://github.com/yandex/ClickHouse/issues/4736. Решил попробовать версию до появления бага, и оно заработало. Возможно проблему с коммитом оффсетов внесли при решении этой с потерей сообщений?
    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
    @jerrodpy #101232 06:46 AM, 21 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @jerrodpy #101233 07:08 AM, 21 May 2019
    добрый день
    только начал знакомится с clickhouse
    возникли сложности с подключением PHPStorma к БД
    получаю ошибку
    [210] ClickHouse exception, code: 210, host: localhost, port: 8123; Connect to localhost:8123 [localhost/127.0.0.1] failed: В соединении отказано (Connection refused)
    но из консоли
    clickhouse-client -u web --password 147852369 -m test
    заходит без проблем,
    в файле логов при конекте из PHPStorma никаких ошибок не вижу
    подскажите пожалуйста как можно устранить ошибку?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @dbalashov #101235 07:15 AM, 21 May 2019
    а кнопку view не думал нажать?
  • https://t.me/clickhouse_ru
    @dbalashov #101236 07:15 AM, 21 May 2019
    там наверняка причина есть
  • https://t.me/clickhouse_ru
    @jerrodpy #101237 07:15 AM, 21 May 2019
    думал, текст в начале моего сообщения
  • https://t.me/clickhouse_ru
    @jerrodpy #101238 07:15 AM, 21 May 2019
    [210] ClickHouse exception, code: 210, host: localhost, port: 8123; Connect to localhost:8123 [localhost/127.0.0.1] failed: В соединении отказано (Connection refused)
  • https://t.me/clickhouse_ru
    @dbalashov #101239 07:15 AM, 21 May 2019
    а
  • https://t.me/clickhouse_ru
    @dbalashov #101240 07:16 AM, 21 May 2019
    так видимо не слушает никто на 8123. проверяй фаер на CH и что он слушает на внешнем IP
  • https://t.me/clickhouse_ru
    @dbalashov #101241 07:16 AM, 21 May 2019
    точнее не только на 127.0.0.1
  • https://t.me/clickhouse_ru
    @jerrodpy #101242 07:16 AM, 21 May 2019
    порт слушается
  • https://t.me/clickhouse_ru
    @dbalashov #101243 07:17 AM, 21 May 2019
    у тебя прямо точно clickhouse на localhost?
  • https://t.me/clickhouse_ru
    @jerrodpy #101244 07:17 AM, 21 May 2019
    root@localhost:/var/www/gios.lo# lsof -i:8123
    COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
    clickhous 562 clickhouse 41u IPv6 12237 0t0 TCP localhost:8123 (LISTEN)
  • https://t.me/clickhouse_ru
    @dbalashov #101245 07:17 AM, 21 May 2019
    IPv6 ?
  • https://t.me/clickhouse_ru
    @dbalashov #101246 07:17 AM, 21 May 2019
    ну ок
  • https://t.me/clickhouse_ru
    @metikovvadim #101247 07:17 AM, 21 May 2019
    localhost = не слушает внешних
  • https://t.me/clickhouse_ru
    он мне не нужет
  • https://t.me/clickhouse_ru
    @dbalashov #101249 07:18 AM, 21 May 2019
    подозреваю что localhost это у тебя 127.0.0.1, а CH слушает на интерфейсе с IPv6
  • https://t.me/clickhouse_ru
    @metikovvadim #101250 07:18 AM, 21 May 2019
    Должно быть так:
    netstat -lnt |grep 8123
    tcp 0 0 0.0.0.0:8123 0.0.0.0:* LISTEN -
    [user@host ~]$
  • https://t.me/clickhouse_ru
    @jerrodpy #101251 07:19 AM, 21 May 2019
    да ты прав
  • https://t.me/clickhouse_ru
    @metikovvadim #101252 07:20 AM, 21 May 2019
    в config.xml :
    <!-- <listen_host>::</listen_host> -->
    <!-- <listen_host>::1</listen_host> -->
    <listen_host>0.0.0.0</listen_host>
  • https://t.me/clickhouse_ru
    @jerrodpy #101253 07:22 AM, 21 May 2019
    супер, большое спасибо
  • @AlyushkinVA #101254 07:37 AM, 21 May 2019
    добрый день, можно ли ограничить потредление Clickhouse CPU и RAM на сервере, и как это сделать?
  • Если сервер на ОС Linux с ядром версии 2.6.24 и выше, можно использовать cgroups. В интернете должна быть куча статей на эту тему
  • https://t.me/clickhouse_ru
    @Zombarium #101256 07:45 AM, 21 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @v4sergey #101257 07:47 AM, 21 May 2019
    Joined.
  • @431883238 #101258 07:49 AM, 21 May 2019
    либо запускать в Docker, тогда все становится еще проще
  • https://t.me/clickhouse_ru
    @newsettler #101259 07:50 AM, 21 May 2019
    Сложилась ситуация:
    ┌─table───────┬─size───────┐
    │ query_log_0 │ 3.25 GiB │
    │ query_log │ 91.20 GiB │
    └─────────────┴────────────┘
    Стоят два извечных вопроса: "кто виноват?" (чтобы предотвратить повторение) и "что делать?" (как освободить место на диске)
  • https://t.me/clickhouse_ru
    сделайте TRUNCAT TABLE system.query_log, query_log_0 просто удалите
  • https://t.me/clickhouse_ru
    Можно ограничить. КХ запускается как сервис /etc/systemd/system/clickhouse-server.service. При лимите по памяти его будет убивать OOM, поэтому настройки потребления памяти самим КХ тоже придется крутить. Но лучше его просто вынети на отдельную железяку и не ограничивать;)
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Не надо докер, у ОС есть ручки для всего этого
  • @431883238 #101264 07:57 AM, 21 May 2019
    Ну я предложил 2 варианта, выбор уже остается за пользователем )
  • https://t.me/clickhouse_ru
    @stovm #101265 07:59 AM, 21 May 2019
    А такой вопрос. Допустим у меня есть несколько шардов - несколько хостов в каждом, локальные таблицы с репликацией и Distributed таблица.
    Я делаю insert в один из хостов шарда. И сразу потом делаю select из distributed таблицы, - пока ещё данные не успели перелиться на реплику. Есть ли гарантия того, что Distributed таблица пойдёт за данными в хост, где данные точно есть, а не туда, куда они реплицируются?
  • https://t.me/clickhouse_ru
    Моя практика показывает, что нет.
  • А вы могли бы открыть ишью и попробовать описать сценарий появления ошибки? Может быть её как-то можно воспроизвести?
  • https://t.me/clickhouse_ru
    Разве кластер не отслеживает, какие реплики in-sync, а какие нет?
  • https://t.me/clickhouse_ru
    Я в максимально жестких условиях проверял, при временно отключенных запросах на репликацию. При большой нагрузке на объединение партиций.
  • https://t.me/clickhouse_ru
    @gecube #101270 08:21 AM, 21 May 2019
    всем привет
  • https://t.me/clickhouse_ru
    @gecube #101271 08:21 AM, 21 May 2019
    идиотский вопрос - кто-нибудь ФИАС в кликхаус загружал?
  • @AlyushkinVA #101272 08:23 AM, 21 May 2019
    спасибо почитаю
  • https://t.me/clickhouse_ru
    @dmitryq #101273 08:28 AM, 21 May 2019
    всем привет, может подскажет кто. создал materialized view, приаттаченный к таблице.

    потом удалил его через drop table, теперь при записи в основную таблицу пишет, что он требуется)
    нашёл инфу про команду detach, но в документации почти ничего про неё нет.
    снова создал таблицу, сделал detach - та же ошибка
    ERROR:Table default.`.inner.news_hours` doesn't exist.
    как правильно отвязать materialized view?
  • https://t.me/clickhouse_ru
    Да, я сегодня сделаю
  • https://t.me/clickhouse_ru
    @dmitryq #101275 08:37 AM, 21 May 2019
    и теперь при попытке повторно создать таблицу SQL Error [231]: ClickHouse exception, code: 231, host: ..., port: 8123; Code: 231, e.displayText() = DB::Exception: Suspiciously many (32) broken parts to remove. (version 19.6.2.11 (official build))
  • https://t.me/clickhouse_ru
    @dmitryq #101276 08:48 AM, 21 May 2019
    а всё, нашёл как отвязывать
  • https://t.me/clickhouse_ru
    @bambaleeyo #101277 08:59 AM, 21 May 2019
    Коллеги, приветствую, подскажите с таймзоной, что делаю не так, и на сервере стоит Europe/Moscow, и в кх, но при запросе прям вот сейчас в разрезе часа toHour получаю значения от 0 до 8 (как будто я в UTC).. не могу понять что делаю не так, а хочу получить от 0 до 11
  • https://t.me/clickhouse_ru
    @dmitryq #101278 09:00 AM, 21 May 2019
    есть ещё один вопрос.
    вот есть функция sum и sumState. Первая просто запишет число в ячейку, вторая некие бинарные данные. Для первой при выборке из materialized view я могу просто sum использовать, для второй нужно sumMerge.
    По документации рекомендуют именно второй вариант использовать, но чем хуже первый? Быстродействие?
    по uniq и uniqState понимаю, в чём может быть разница, а с суммой - нет
  • https://t.me/clickhouse_ru
    можно вторым аргументом принудительно таймзону задать, но хз почему так
  • https://t.me/clickhouse_ru
    @bambaleeyo #101280 09:01 AM, 21 May 2019
    пробовал, не помогло..
  • https://t.me/clickhouse_ru
    @dmitryq #101281 09:01 AM, 21 May 2019
    может данных просто нет?
  • https://t.me/clickhouse_ru
    @bambaleeyo #101282 09:02 AM, 21 May 2019
    хм, и правда, последняя запись в 9 утра, а не в 12 ..
  • https://t.me/clickhouse_ru
    @dmitryq #101283 09:02 AM, 21 May 2019
    🙂
  • https://t.me/clickhouse_ru
    @tarabanton #101284 09:04 AM, 21 May 2019
    Добрый день.
    Планируем обновление с 1.1.54370 до 18.14.19 с даунтаймом кластера т.к., насколько нам известно:
    ClickHouse release 18.4.0, 2018-07-28
    Настройка use_minimalistic_checksums_in_zookeeper таблиц семейства ReplicatedMergeTree включена по-умолчанию. Эта настройка была добавлена в версии 1.1.54378, 2018-04-16. Установка версий, более старых, чем 1.1.54378, становится невозможной.

    Схема стандартная, 3 шарда по 2 реплики. Итого 6 нод. 3 ноды Zookeeper.
    Данных не много. Около 1ТБ в сжатом виде.
    Хотелось бы узнать:
    - был ли у кого опыт такого большого скачка в версиях?
    - насколько 18.14.19 стабильна. Нет ли там критичных багов и "особенностей"?
    Спасибо 😊

    P.S. Версии новее не предлагать. У нас не готов для этого код
  • https://t.me/clickhouse_ru
    у эльёра спроси)
  • https://t.me/clickhouse_ru
    Движок aggregating не знает что надо суммировать или считать средниее или брать мин. при мержах, он просто берет any, поэтому ему нужен намек .state. Запрос во вью никак не связан с движком таблицы, движок который мержит просто не в курсе про наличие mv.
    Движок summing суммирует по умолчанию, ему state не нужен.
  • https://t.me/clickhouse_ru
    18.14.19 одна из самых стабильных и безглючных версий. Там есть мелкие пролемы типа https://github.com/yandex/ClickHouse/issues/4162
    переходить не страшно, но тестить надо приложение, есть еще несколько мелких багов.
  • @381244074 #101288 10:09 AM, 21 May 2019
    Добрый день! Не подскажите, какое количество партиций считается уже большим количеством?
  • https://t.me/clickhouse_ru
    Для риалтайм запроса 10.
    При 5000 сломаются мутации, при 10000 кх начнет ребутится 3 часа.
  • https://t.me/clickhouse_ru
    В пятницу количество файлов в каталоге таблицы превысило 70 000. Тормоза были знатными.
  • Спасибо большое
  • https://t.me/clickhouse_ru
    то есть если регулярно собираются данные за месяц, то партиции лучше не по дням делать, а больше?
  • https://t.me/clickhouse_ru
    спасибо
  • https://t.me/clickhouse_ru
    риалтайм запросы? 100мс?
  • https://t.me/clickhouse_ru
    ручная выборка человеком. пользователь может и десятки секунд подождать
  • https://t.me/clickhouse_ru
    Я не знаю тогда стоит или нет.
    Т.е. вы наверно чем-то руководствовались когда решили сделать партиции по дням, у всех все по разному некоторые перезаливают партиции через drop. Изначально кх был с по-месячными партициями.
  • https://t.me/clickhouse_ru
    мы пока только внедряем, поэтому и вопрос. будем ещё тестировать
  • https://t.me/clickhouse_ru
    Начинайте с по-месячных toYYYYMM(
  • https://t.me/clickhouse_ru
    спасибо
  • https://t.me/clickhouse_ru
    @studnev #101300 11:06 AM, 21 May 2019
    Добрый день! Кто нибудь смог изавиться от ошибки запуска под контейнером LXC?: Application: It looks like the process has no CAP_NET_ADMIN capability, 'taskstats' performance statistics will be disabled. It could happen due to incorrect ClickHouse package installation. You could resolve the problem manually with 'sudo setcap cap_net_admin=+ep /usr/bin/clickhouse'. Note that it will not work on 'nosuid' mounted filesystems. It also doesn't work if you run clickhouse-server inside network namespace as it happens in some containers
  • https://t.me/clickhouse_ru
    @studnev #101301 11:07 AM, 21 May 2019
    lxc.cap.keep = net_admin

    LXC 3.0.3 / linux 5.0.0 - с этой опцией контейнер не стартует
  • https://t.me/clickhouse_ru
    @studnev #101302 11:08 AM, 21 May 2019
    И на что эта ошиюка влияет?
  • https://t.me/clickhouse_ru
    Это не ошибка это ворнинг, кх не будет собирать некоторые статистики из ядра.
    Теоритически на хосте можно разрешить контейнеру лазить за ними.
  • https://t.me/clickhouse_ru
    практически не получилось
  • @milovidov_an #101305 11:20 AM, 21 May 2019
    Опубликовали пост про одну из низкоуровневых оптимизаций в ClickHouse. Довольно детальное рассмотрение, начиная от высокого уровня до перекладывания байт. Будет интересно для разработчиков :)

    https://habr.com/en/company/yandex/blog/452778/
  • None
  • https://t.me/clickhouse_ru
    Резюме. Обсудили в личной переписке: более детально проблему получится изучить завтра или после-завтра.
  • https://t.me/clickhouse_ru
    Хорошая статья. Только не понял, чем скайнет на серверах не угодил. 🙂
  • Это на самом деле неплохая штука - наш внутренний агент для мониторинга серверов и операций. Но так как там Python, периодически просыпается на пару секунд и использует 100% одного ядра CPU, на всякий случай на время бенчмарков тоже останавливаем.
  • https://t.me/clickhouse_ru
    Цитата:"Из опыта известно, что среднее время выполнения запроса, загрузки сайта и так далее представляет собой «мусор»"
    Как же немного людей это понимает.
    антиоффтоп: вынужденно пишу в КХ усреднённые значения. 🙂
  • @mobydi #101311 11:45 AM, 21 May 2019
    Подскажите как настраивать click house на сервере с множеством дисков
  • https://t.me/clickhouse_ru
    LVM
  • RAID
  • https://t.me/clickhouse_ru
    :)
    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
  • @mobydi #101315 11:54 AM, 21 May 2019
    а что тогда делает фича? https://nuget.pkg.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...

  • @mobydi #101317 11:57 AM, 21 May 2019
    Там написано что Q1-Q2 / 2018, clickhouse support store data at multiple disk volumes of a single server а как настраивать это?
  • https://t.me/clickhouse_ru
    Пока никак. Фича в разработке. Но уже близко
  • @mobydi #101319 11:59 AM, 21 May 2019
    понял спасибо
  • https://t.me/clickhouse_ru
    @Sablast #101320 12:07 PM, 21 May 2019
    подскажите, результаты выполнения WITH - не прокидываются в подзапросы ? пытаюсь обратиться к алиасу с 5 уровня вложенности - говорит Unknown identifier
  • https://t.me/clickhouse_ru
    @kkovalesha #101321 12:09 PM, 21 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    Эта фича в основном для того чтобы использовать разнородные диски (ssd - hot / hdd - cold) для однородных раид даст перфоманс.
  • @mobydi ↶ Reply to #101322 #101323 12:12 PM, 21 May 2019
    Вот это и интересно. Есть планы когда будет закончено ?
  • https://t.me/clickhouse_ru
    https://t.me/clickhouse_ru/101318
    Я не имею отношения к разработке. я ненастоящий сварщик.
  • https://t.me/clickhouse_ru
    @SoHellen #101325 12:30 PM, 21 May 2019
    Добрый день! Подскажи пожалуйста, как происходит авторизация между серверами КХ при шардинге данных?
  • https://t.me/clickhouse_ru
    @ifoton #101326 12:31 PM, 21 May 2019
    Подскажите чем отличается FINAL от DEDUPLICATE в OPTIMIZE TABLE?
  • https://t.me/clickhouse_ru
    Вопрос про distributed таблицу или про replicated?
  • https://t.me/clickhouse_ru
    Final оставит одинаковые записи в mergetree
  • https://t.me/clickhouse_ru
    проблема с distributed, но и про replicated тоже интересно. если есть ссылочка на документацию - буду признательна
  • https://t.me/clickhouse_ru
    @ifoton ↶ Reply to #101328 #101330 12:38 PM, 21 May 2019
    Будет ли DEDUPLICATE схлопывать строки с одинаковым ключем или он просто убирает строки идентичные по всем полям?
  • https://t.me/clickhouse_ru
    Для distributed в документации есть параметра для доступа (user и password) https://clickhouse.yandex/docs/en/single/#distributed. Для реплицируемых таблиц КХ ходит только если хочет пробросить запрос с не лидера на лидера, например ALTER запросы. Раньше ходил от default пользователя, сейчас должна быть возможность указать системного пользователя (но это не точно, надо проверить)
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Да, можно профиль отличный от default указывать https://github.com/yandex/ClickHouse/blob/master/dbms/programs/server/config.xml#L127
  • https://t.me/clickhouse_ru
    @ifoton #101334 12:43 PM, 21 May 2019
    ENGINE = ReplacingMergeTree() ORDER BY (x,y) две строки с одинаковыми полями x,y но различными другими полями, они схлобнутся дедупом или только финал спасет?
  • https://t.me/clickhouse_ru
    спасибо!
  • https://t.me/clickhouse_ru
    Спасибо, прям очень качественно
  • https://t.me/clickhouse_ru
    @Egorov_Aleksey_0 #101338 12:47 PM, 21 May 2019
    Joined.
  • @RostyslavM #101339 12:50 PM, 21 May 2019
    Подскажите плиз, где детльнее можно ознакомится с "отдельным решением"

    Наибольшие преимущества от оптимизации разжатия наблюдаются на сильно сжимающихся данных — например, на столбцах с повторяющимися строковыми значениями. Но специально для этого сценария у нас разработано отдельное решение, которое позволяет ускорить такие запросы на порядки - https://habr.com/en/company/yandex/blog/452778/
  • https://t.me/clickhouse_ru
    Вероятно, имеется в виду LowCardinality (String)
  • @RostyslavM #101341 12:54 PM, 21 May 2019
    @yourock88 благодарю. На сйте с описанием, к сожалению, не густо.
  • https://t.me/clickhouse_ru
    https://events.yandex.ru/lib/talks/6166/ -- must

    https://www.altinity.com/blog/2019/3/27/low-cardinality
  • @milovidov_an #101343 12:58 PM, 21 May 2019
    Да, имелось ввиду LowCardinality.
  • https://t.me/clickhouse_ru
    @yourock88 #101344 12:58 PM, 21 May 2019
    Я так понимаю, что LowCardinality либо только-только стал стабильным, либо он до сих считается "экспериментальным", поэтому документации пока что малр
  • @RostyslavM #101345 12:58 PM, 21 May 2019
    @den_crane благодарю
  • Уже считается стабильным. А то, что документации мало - это постепенно исправим.
  • https://t.me/clickhouse_ru
    для репликации тожно можно включить аутентификацию
    https://github.com/alesapin/ClickHouse/blob/master/dbms/tests/integration/test_replication_credentials/configs/credentials1.xml

    правда удобнее ограничить доступ по хостам
    alesapin/ClickHouse

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

  • https://t.me/clickhouse_ru
    @paveltyavin #101348 01:26 PM, 21 May 2019
    а есть сейчас какие-нибудь проблемы с LowCardinality-полями при заливке?
  • https://t.me/clickhouse_ru
    кажется да
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #101350 01:35 PM, 21 May 2019
    если их много оно делает оч долго инсерты.
  • https://t.me/clickhouse_ru
    @vld_ivn #101351 02:04 PM, 21 May 2019
    Коллеги, не могу запустить ch после перезагрузки сервера
  • https://t.me/clickhouse_ru
    @vld_ivn #101352 02:04 PM, 21 May 2019
    Either 'password' or 'password_sha256_hex' must be specified for user readonly.
  • @Shazo_Rus #101354 02:19 PM, 21 May 2019
    а что в настройках пользователя readonly?
  • @kanterov #101355 02:43 PM, 21 May 2019
    Такое ощущение, что дедупликация в ReplicatedMergeTree происходит блоками по 1048576. Делаю много вставок по несколько миллионов очень похожих элементов, выкручен max_insert_block_size на максимум. Ни один инсер не повторяется, но внутри одного инсерта могут быть одинаковые элементы, стабильно продатает ровно 1048576 элементов. Дедупликацию отключить нельзя, потому что она нужна, что-нибудь еще можно выкрутить?
  • https://t.me/clickhouse_ru
    Anton Liashenka in ClickHouse не тормозит

    Работает! спасибо большое за помощь!

  • https://t.me/clickhouse_ru
    @606215749 #101357 03:09 PM, 21 May 2019
    почитайте этот тред
  • Спасибо, уже пробую добавить id. Но неожиданно, что размер блока не равен max_insert_block_size.
  • https://t.me/clickhouse_ru
    @KretsuEvgeniy #101359 03:21 PM, 21 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @KretsuEvgeniy #101360 03:22 PM, 21 May 2019
    Коллеги всем привет! Подскажите а фичу "Mutations" уже кто то применял? обновлял данные и на каком обьеме строк?
  • https://t.me/clickhouse_ru
    @stufently #101361 03:27 PM, 21 May 2019
    Да уже наверно всё, скоро как год ей будет
  • https://t.me/clickhouse_ru
    @stufently #101362 03:27 PM, 21 May 2019
    В принципе любой объем данных можно обновить
  • https://t.me/clickhouse_ru
    @stufently #101363 03:27 PM, 21 May 2019
    Обновлял на 8 тб данных но понятное дело не все
  • https://t.me/clickhouse_ru
    @KretsuEvgeniy #101364 03:29 PM, 21 May 2019
    круто - спасибо!
  • https://t.me/clickhouse_ru
    @Randomazer #101365 03:42 PM, 21 May 2019
    Есть пример создание таблицы с TTL?
  • https://t.me/clickhouse_ru
    как вы выставляете max_insert_block_size и для какого запроса (insert / insert from select)? Там много хитрости.
  • https://t.me/clickhouse_ru
    поискал тупо TTL в репе
    https://github.com/yandex/ClickHouse/blob/7a6365dbf1436e82ddd2bd1c3642040a95e88afe/dbms/tests/queries/0_stateless/00933_ttl_simple.sql
  • Выставлен в Long.MAX_VALUE через Properties в clickhouse-jdbc, вставка идет через RowBinary протокол по HTTP. Код здесь https://github.com/apache/beam/blob/master/sdks/java/io/clickhouse/src/main/java/org/apache/beam/sdk/io/clickhouse/ClickHouseIO.java#L175. Запрос вида INSERT INTO replicated_merge_tree;
    apache/beam

    Apache Beam is a unified programming model for Batch and Streaming - apache/beam

  • https://t.me/clickhouse_ru
    а тип таблицы mergetree?
  • https://t.me/clickhouse_ru
    @stufently #101370 03:50 PM, 21 May 2019
    Да
  • https://t.me/clickhouse_ru
    я не пробовал через jdbc.

    попробуйте еще добавить
    min_insert_block_size_rows = 10000000000,
    min_insert_block_size_bytes = 10000000000000;
  • https://t.me/clickhouse_ru
    я искал тупо в документации
  • https://t.me/clickhouse_ru
    @Randomazer #101373 03:52 PM, 21 May 2019
    но спасибо
  • @kanterov #101374 03:52 PM, 21 May 2019
    Спасибо, делал тоже в Long.MAX_VALUE, но не помогло. Начинаю подозревать что Long.MAX_VALUE было зря, надо было выставить много нулей
  • https://t.me/clickhouse_ru
    @SoHellen #101375 03:55 PM, 21 May 2019
    Подскажите, пожалуйста. Сейчас одинокий КХ, таблички на нем ReplacingMergeTree, не уникальные данные - схлопываются. Появилась необходимость использовать шардинг данных ну и репликацию. У меня теоретический вопрос, после миграции на схему distributed таблица + две ноды, если на разные ноды запишутся одни и те же данные (условно один и те же), при запросе через distributed таблицу они будут схлопываться или же нет?
  • https://t.me/clickhouse_ru
    @un000 #101376 03:57 PM, 21 May 2019
    я думаю будут, иначе в чем смысл
  • https://t.me/clickhouse_ru
    нет
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #101375 #101378 04:00 PM, 21 May 2019
    Из таких движков всегда надо брать с группировками и доаггрегациями. Даже на одной ноде не гарантируется схлопывание и аггрегация
  • https://t.me/clickhouse_ru
    @stufently #101379 04:01 PM, 21 May 2019
    дистрибьютед таблица не умеет быть коллапсинг она просто раскидывает запросы на две ноды и клеит по сути результат
  • https://t.me/clickhouse_ru
    @shedx #101380 04:06 PM, 21 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    наверное где-то в jdbc зарыто. Через клиент и http работает

    3 повтора по млн.
    clickhouse-client -q 'select today()+number%3, number from numbers(1048576) format CSV' > test1.csv
    clickhouse-client -q 'select today()+number%3, number from numbers(1048576) format CSV' >> test1.csv
    clickhouse-client -q 'select today()+number%3, number from numbers(1048576) format CSV' >> test1.csv

    cat test1.csv|clickhouse-client -q 'insert into Replicate format CSV'
    clickhouse-client -q 'select count() from Replicate'
    1048576

    cat test1.csv|clickhouse-client --max_insert_block_size=50000000 -q 'insert into Replicate format CSV'
    clickhouse-client -q 'select count() from Replicate'
    3145728

    cat test1.csv | curl 'http://localhost:8123/?query=INSERT%20INTO%20Replicate%20FORMAT%20CSV' --data-binary @-
    clickhouse-client -q 'select count() from Replicate'
    1048576

    cat test1.csv | curl 'http://localhost:8123/?max_insert_block_size=5000000&query=INSERT%20INTO%20Replicate%20FORMAT%20CSV' --data-binary @-
    clickhouse-client -q 'select count() from Replicate'
    3145728
  • @vstakhov #101383 04:17 PM, 21 May 2019
    ALTER TABLE rspamd MODIFY COLUMN Symbols.Names Array(LowCardinality(String)); - очень долго работает: ~300 гб данных и уже больше получаса
  • @vstakhov #101384 04:17 PM, 21 May 2019
    это я дурак или что-то не так?
  • https://t.me/clickhouse_ru
    например у вас ключ в таблице order by (Имя, Фамилия).
    Нужно сделать шардирование в distributed не по rand() , а по например cityHash64(ИмяФамилия).
    Тогда все одинаковые ключи окажутся на одном шарде.
  • https://t.me/clickhouse_ru
    alter однопоточный, 300 ГБ прочитать, разжать, назад зажать и записать
  • @vstakhov #101387 04:34 PM, 21 May 2019
    все равно как-то много. его не могут тормозить уже идущие инсерты?
  • @vstakhov #101388 04:34 PM, 21 May 2019
    блин `Timeout exceeded while receiving data from server. Waited for 3600 seconds, timeout is 3600 seconds.
    Cancelling query.`
  • @vstakhov #101389 04:34 PM, 21 May 2019
    за час не успел
  • https://t.me/clickhouse_ru
    не отменит, это фигня, будет дальше до победного
  • @vstakhov #101391 04:35 PM, 21 May 2019
    Timeout exceeded while receiving data from server. Waited for 3600 seconds, timeout is 3600 seconds.
    Cancelling query.
    Ok.
    Query was cancelled.

    0 rows in set. Elapsed: 3773.435 sec.
  • @vstakhov #101392 04:35 PM, 21 May 2019
    но по show create table запрос отработал
  • @vstakhov #101393 04:36 PM, 21 May 2019
    ┌─column──────────────────┬─any(type)──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬─compressed_bytes_per_row─┬─raw_bytes_per_row─┐
    │ Symbols.Names │ Array(String) │ 34.962 │ 462.882 │ - было
    │ Symbols.Names │ Array(LowCardinality(String)) │ 14.87 │ 67.994 │ - стало
  • @vstakhov #101394 04:36 PM, 21 May 2019
    больше двух раз выигрыш - очень круто
  • Да, верно, посмотрел PROCESSLIST, не передались в запрос параметры, кажется, нашел место куда надо было подпихнуть, странно, вроде раньше работало ¯\_(ツ)_/¯
  • https://t.me/clickhouse_ru
    @stovm #101396 06:13 PM, 21 May 2019
    Снова с глупыми вопросами. Начал уже писать свой, а тут подумал, что может быть уже есть. Ищу Reports Service, где я мог бы создавать отчёты и давать пользователям возможность выполнять выгрузки отчётов этих. Что-нибудь опенсорсное
  • https://t.me/clickhouse_ru
    @archimed_shaman #101397 06:19 PM, 21 May 2019
    Всем привет, а скажите, executable словари - это не какой-нибудь deprecated? Прыгаю уже с бубном весь день, конфиг вроде валидный, не цепляется и в логах ни слова
  • https://t.me/clickhouse_ru
    рабочие, вот месяц назад чинили частичное обновление, люди используют чтобы в редис ходить
  • https://t.me/clickhouse_ru
    @den_crane #101399 06:27 PM, 21 May 2019
    покажите что-ли конфиг (словарь)
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @archimed_shaman #101401 06:30 PM, 21 May 2019
    если рабочие - уже радует) скорее сам тогда накосячил где-то
  • https://t.me/clickhouse_ru
    я бы начал с полного пути к питону, КХ не человек, башем не пользуется скорее всего
  • https://t.me/clickhouse_ru
    попробовал, но не помогло. к тому же, раньше был просто путь к питоновскому скрипту (он executable)
  • https://t.me/clickhouse_ru
    @archimed_shaman #101404 06:37 PM, 21 May 2019
    мне кажется, что-то где-то может быть с правами, но не пойму где
  • https://t.me/clickhouse_ru
    @den_crane #101405 06:38 PM, 21 May 2019
    в preprocessed xml рендерится?
  • https://t.me/clickhouse_ru
    @archimed_shaman #101406 06:38 PM, 21 May 2019
    на конфиг + скрипт права clickhouse:clickhouse стоят
  • https://t.me/clickhouse_ru
    неа, и в логах ни слова. это и удивляет
  • https://t.me/clickhouse_ru
    ну а куда вообще xml положили?
  • https://t.me/clickhouse_ru
    /etc/clickhouse-server. там у меня рядом еще 4 словаря рабочих лежат. два на таблицы смотрят, два - на csv
  • https://t.me/clickhouse_ru
    @archimed_shaman #101410 06:40 PM, 21 May 2019
    и рабочие словари апдейтятся, видно по system.dictionaries
  • https://t.me/clickhouse_ru
    @proller #101411 06:40 PM, 21 May 2019
    имена с dictionaries_config матчатся?
  • https://t.me/clickhouse_ru
    О! спасибо) я олень. vanga_dictnary.xml было) не углядел, а тут проверил
  • https://t.me/clickhouse_ru
    @stovm ↶ Reply to #101396 #101413 06:48 PM, 21 May 2019
    Судя по всему, пишу самостоятельно)
  • https://t.me/clickhouse_ru
    Grafana. Можно выгружать csv из графиков и табличек
  • https://t.me/clickhouse_ru
    @stovm ↶ Reply to #101414 #101415 07:04 PM, 21 May 2019
    Не. Совсем не то
  • Недавно упоминалось:
    https://redash.io/
    https://metabase.com/
    Redash helps you make sense of your data

    Use Redash to connect to any data source (PostgreSQL, MySQL, Redshift, BigQuery, MongoDB and many others), query, visualize and share your data to make your company data driven.

  • https://t.me/clickhouse_ru
    @stovm #101417 07:30 PM, 21 May 2019
    redash про визуализацию, а не про репортинг
    metabase вроде в ClickHouse не умеет
  • https://t.me/clickhouse_ru
    @stovm #101418 07:30 PM, 21 May 2019
    Сейчас ищу в сторону чего-то на Java опенсорсного с JDBC, чтобы допилить напильником
  • https://t.me/clickhouse_ru
    @den_crane #101419 07:45 PM, 21 May 2019
    метабейз работает https://t.me/clickhouse_ru/88277
  • https://t.me/clickhouse_ru
    в редаше сценарий «сделать отчет и давать выгружать пользователям» очень хорошо работает
  • https://t.me/clickhouse_ru
    @DavidAvagimyan #101421 07:48 PM, 21 May 2019
    Помогите пожалуйста. Настроил шардирование добавил шарды на сервере но при попытке забрать из dist таблицы данные выдает ошибку.
  • https://t.me/clickhouse_ru
    @DavidAvagimyan #101422 07:48 PM, 21 May 2019
    там еще что то открывать нужно?
  • https://t.me/clickhouse_ru
    а если туда curl-м , фаервол?
  • https://t.me/clickhouse_ru
    <listen_host>::</listen_host>
  • https://t.me/clickhouse_ru
    @DavidAvagimyan #101425 07:52 PM, 21 May 2019
    курлом висит) а где прописать это?
  • https://t.me/clickhouse_ru
    @DavidAvagimyan #101426 07:52 PM, 21 May 2019
    в config.xml ?
  • https://t.me/clickhouse_ru
    @DavidAvagimyan #101427 07:53 PM, 21 May 2019
    а кажется понял
  • https://t.me/clickhouse_ru
    @DavidAvagimyan #101428 07:53 PM, 21 May 2019
    спасибо)
  • https://t.me/clickhouse_ru
    @DavidAvagimyan #101429 07:53 PM, 21 May 2019
    ща попробую
  • https://t.me/clickhouse_ru
    @proller #101430 07:53 PM, 21 May 2019
    да, найти и раскоментировать
  • https://t.me/clickhouse_ru
    @DavidAvagimyan #101431 07:58 PM, 21 May 2019
    не помогло, расскометировал и перезапустил кликхаус
  • https://t.me/clickhouse_ru
    @DavidAvagimyan #101432 08:03 PM, 21 May 2019
    ноды не располагаются на одной локалке. они в одной подсети но не по локалке.
  • https://t.me/clickhouse_ru
    @proller #101433 08:07 PM, 21 May 2019
    а при старте какие Application: Listening ?
  • https://t.me/clickhouse_ru
    @DavidAvagimyan #101434 08:09 PM, 21 May 2019
    я боюсь не совсем понимаю сейчас)
  • https://t.me/clickhouse_ru
    @DavidAvagimyan #101435 08:09 PM, 21 May 2019
    где можно это увидеть?
  • https://t.me/clickhouse_ru
    @proller #101436 08:11 PM, 21 May 2019
    /var/log/clickhouse-server/clickhouse-server.log
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @DavidAvagimyan #101438 08:20 PM, 21 May 2019
    странно но при попытке отправить запрос курлом даже на 9009 порт, все висит. будем разбираться , Спасибо.
  • @aopetrov86 #101439 08:39 PM, 21 May 2019
    Сервер localhost слушает же, не? Снаружи он не должен отвечать.
  • https://t.me/clickhouse_ru
    @DavidAvagimyan #101440 08:49 PM, 21 May 2019
    ну да ток я вроде открыл на все
  • https://t.me/clickhouse_ru
    @DavidAvagimyan #101441 08:51 PM, 21 May 2019
    <listen_host>::</listen_host> расскоментировал
  • @whetherharder #101442 09:31 PM, 21 May 2019
    0.0.0.0
  • https://t.me/clickhouse_ru
    @mangoat #101443 10:09 PM, 21 May 2019
    Парни, подскажите пожалуйста есть ли ограничение на количество колонок?
    У меня есть большой и толстый XML с 50 параметрами. Нормально ли будет запамить все параметры в колонки ?
  • https://t.me/clickhouse_ru
    @mangoat #101444 10:09 PM, 21 May 2019
    Данных достаточно много 3к в секунду
  • https://t.me/clickhouse_ru
    @mangoat #101445 10:09 PM, 21 May 2019
    3к строчек имеется в виду
  • https://t.me/clickhouse_ru
    @den_crane #101446 10:15 PM, 21 May 2019
    это копейки для КХ, обычно под 400 колонок и 100к в секунду
  • https://t.me/clickhouse_ru
    @f0rden ↶ Reply to #101446 #101447 10:16 PM, 21 May 2019
    Все зависит от размеров кластера)
  • https://t.me/clickhouse_ru
    @f0rden #101448 10:17 PM, 21 May 2019
    Сильно сомневаюсь что впс на 4 гб оперативки и 2 ядра потянет столько
  • https://t.me/clickhouse_ru
    а на скриншоте ::1 что и есть только локалхост
  • https://t.me/clickhouse_ru
    @DavidAvagimyan #101450 10:37 PM, 21 May 2019
    уже пофиксили
  • https://t.me/clickhouse_ru
    @DavidAvagimyan #101451 10:38 PM, 21 May 2019
    оказывается конфиг почему то появился еще в conf.d/ а не только в корне
  • https://t.me/clickhouse_ru
    @DavidAvagimyan #101452 10:38 PM, 21 May 2019
  • 22 May 2019 (150 messages)
  • @milovidov_an #101453 12:33 AM, 22 May 2019
    Видео с митапа на Кипре:
    https://clickhouse-meetup-04037ee6.cdn.integros.com/cyprus_clickhouse_meetup_2019/1080.mp4

    (все доклады были на русском)
  • None
  • None
  • @milovidov_an #101456 12:35 AM, 22 May 2019
    Почему-то сразу два сообщения не получается закрепить в шапке.
  • https://t.me/clickhouse_ru
    что-то не качается
  • @sklepych #101458 12:38 AM, 22 May 2019
    качается вроде
  • Можно попробовать jasper
  • https://t.me/clickhouse_ru
    Я еще с плеером выложил https://exness-2019.clickhouse.ninja/
  • https://t.me/clickhouse_ru
    @markerus17 #101464 05:19 AM, 22 May 2019
    Joined.
  • А можете подробнее по требованиям к Reports Service и сути отличий между искомым функционалом и существующим в Grafana/Redash/Metabase?
  • https://t.me/clickhouse_ru
    @Dok2d #101466 06:13 AM, 22 May 2019
    Можно все эти пины перенести в канал?
  • https://t.me/clickhouse_ru
    @Dok2d #101467 06:16 AM, 22 May 2019
    Чат замьючен, пишут десятки человек и вот это ещё в пушах.. вот нафига?
  • Порежьте видео на части пожалуйста. Почти 4 часа fullhd тяжеловато
  • https://t.me/clickhouse_ru
    @105390624 #101469 07:27 AM, 22 May 2019
    что происходит, никак не могу достучаться до бэкенда
  • https://t.me/clickhouse_ru
  • Он не хочет вам отвечать....
    Там на бекенде сидит девушка....;)
  • https://t.me/clickhouse_ru
    @un000 ↶ Reply to #101471 #101472 07:46 AM, 22 May 2019
    И сколько ей нужно заплатить?
  • https://t.me/clickhouse_ru
    @papok ↶ Reply to #101472 #101473 07:53 AM, 22 May 2019
    Она принимает только длинные url
  • Я все узнал... Нужно передавать данные кредитки в заголовках запросов..... Она спишет 100 баксьонков и начнет отвечать 😆
  • https://t.me/clickhouse_ru
    @un000 #101475 08:17 AM, 22 May 2019
    Спасибо
  • https://t.me/clickhouse_ru
    @zborovskii_andrei #101476 08:46 AM, 22 May 2019
    Здравствуйте, можно сделать два разных шарда одной таблицы на единственной ноде?
  • https://t.me/clickhouse_ru
    @stovm ↶ Reply to #101465 #101477 08:48 AM, 22 May 2019
    Покручу ещё разок Redash, потом отпишусь
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @vladiverev #101479 08:52 AM, 22 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    Но лучше не надо :)
  • Там 5 gb
  • https://t.me/clickhouse_ru
    @makrushin_evgenii_work #101482 09:50 AM, 22 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @makrushin_evgenii_work #101483 09:53 AM, 22 May 2019
    Привет

    Сейчас столкнулся с странным поведением Nullable(DateTime):

    select DateConversationBegin, DateClear, DateClear - DateConversationBegin as ConversationLengthInSeconds
    from Calls
    >
    2018-01-01 01:03:30
    2018-01-01 01:19:29 2018-01-01 01:19:29 0
    2018-01-01 01:06:42 2018-01-01 01:13:51 429

    select DateConversationBegin, DateClear, DateClear - DateConversationBegin as ConversationLengthInSeconds
    where DateConversationBegin != NULL
    from Calls
    >
    0 records

    В tabix заметил, что пустые поля с датами не помечены NULL. Кто-нибудь уже сталкивался с таким?
  • С null нельзя сравнивать напрямую (во всех БД) используйте x IS NULL или x IS NOT NULL
  • https://t.me/clickhouse_ru
    Спасибо
  • https://t.me/clickhouse_ru
    @f0rden #101486 10:13 AM, 22 May 2019
    почему clickhouse не может импортировать дамп из mysql?
    дамп делаю в формате CSV через select .. into outfile
    находит какие-то символы и отказывается их читать
  • https://t.me/clickhouse_ru
    @stufently #101487 10:13 AM, 22 May 2019
    ну вы посмотрите какие
  • https://t.me/clickhouse_ru
    @f0rden #101488 10:15 AM, 22 May 2019
    ERROR: garbage after DateTime: "t<LINE FEED>69377157"
    ERROR: DateTime must be in YYYY-MM-DD hh:mm:ss or NNNNNNNNNN (unix timestamp, exactly 10 digits) format.

    вот такая ошибка, например
  • https://t.me/clickhouse_ru
    @f0rden #101489 10:16 AM, 22 May 2019
    в mysql хранится в виде integer длиной 10
  • Да, так намного лучше!
  • https://t.me/clickhouse_ru
    @olimsaidov #101491 10:18 AM, 22 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @mo1seev #101492 10:29 AM, 22 May 2019
    Господа, а отправьте меня в доку по нужному адресу по следующим 2 вопросам:
    1. можно ли в КХ указывать timestamp, как now?
    2. Мне нужно сделать селект с условием timestamp now - 5 min. Это возможно?
  • https://t.me/clickhouse_ru
    @Syakovlev292 #101493 10:43 AM, 22 May 2019
    Добрый день. при переходе с версии 19.5.3, например на 19.6.2 стал по другому работать планировщик запрос вместо 2 секунд на тех же данных стал работать за 125 секунд
    SELECT
    date,
    countIf(status IN ('CP', 'A', 'OW', 'RC')) AS fact,
    count(*) AS fact
    FROM
    (
    SELECT
    toDateTime(floor(toRelativeSecondNum(OrderedDate) / 1200) * 1200) AS date,
    companyid,
    id,
    status
    FROM mysql('ip', 'csts', 'order', '', '')
    WHERE OrderedDate >= toString(toStartOfDay(now()))
    )
    WHERE companyid = 1
    GROUP BY date

    могу предоставить дебаг с send_logs_level
  • https://t.me/clickhouse_ru
    в select datetime::timestamp? 🤔
  • Да, недавно были изменения в передаче параметров в MySQL. Покажите какой запрос он отправляет в MySQL в одном и втором случае.
  • Так у вас же 8 вместо 10
  • Есть ещё zeppelin.
  • https://t.me/clickhouse_ru
    @Cynephy6 #101499 11:05 AM, 22 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @rheinx #101500 11:09 AM, 22 May 2019
    Ребят, а ORDER BY (ss_datetime, event_id) будет работать для запросов с WHERE event_id = 3 AND ss_datetime BETWEEN %some_date1% AND %some_date2% ?
  • https://t.me/clickhouse_ru
    @al_tush #101501 11:20 AM, 22 May 2019
    Не вижу причин не работать, но и смысла в сортировке по event_id тоже не вижу
  • https://t.me/clickhouse_ru
    @ZaytsevSer #101502 11:32 AM, 22 May 2019
    Спасибо чату что он есть!

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

    Есть таблица условно:
    uid, ev, ts
    1, a, 10
    1, b, 11
    1, a, 12
    1, b, 13
    1, c, 14
    1, a, 15
    1, b, 16
    1, c, 17
    1, a, 18
    1, a, 19
    1, c, 20

    uid - id пользователя
    ev - событие (a, b или с)
    ts - timestamp (для Uint8)

    Группировка по uid: ищу подпоследовательность a->b->c:
    sequenceMatch = 1,
    sequenceCount = 2

    Столкнулся с двумя вопросами:
    1. А возможно ли получить ts по первой найденной подпоследовательности время начала и окончания? (И если можно, чему будет равно время начало в примере)
    2. и по sequenceMatch: ей нужен DateTime для сортировки, но там будет с точностью до одной секунды: т.е. toDateTime(10) = toDatetime(11) = '2019-01-10 01:20:01' (условно, я храню в Uint64 до миллисекунд), если в подзапросе будет сортировка по ts, это решит возможную проблему сортировки в рамках одной секунды?
  • https://t.me/clickhouse_ru
    @241186216 #101503 11:44 AM, 22 May 2019
    Привет всем. Каk kill работает в КХ. Нельзя же просто убить поток. Он наверное флажек взводит и поток потом сам завершается ?
  • https://t.me/clickhouse_ru
    сейчас пришлю
  • https://t.me/clickhouse_ru
    @Pershin_Artem_spb #101505 11:58 AM, 22 May 2019
    А можно как то сделать чтобы писало строчки в которых ошибка с опцией
    --input_format_allow_errors_ratio=0.001
    а то непонятно почему строки не попали - то ли скипнулись , толи еще что-то
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #101501 #101506 12:00 PM, 22 May 2019
    Разве она не даст прирост в скорости при селектах по определенному event_id?
  • https://t.me/clickhouse_ru
    Первая часть - это из create table? Должна дать прирост, но проверять лучше, выполнив запрос и посмотреть, сколько строк было обработано в выборке
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #101507 #101508 12:02 PM, 22 May 2019
    А черт, да. ORDER BY это из create table;
  • https://t.me/clickhouse_ru
    написал в личку
  • https://t.me/clickhouse_ru
    @Kakazogl #101510 12:23 PM, 22 May 2019
    Всем привет!
    Обновили CH с 18.16.1 на 19.6.2.11
    После обновления CH стартует около 30 минут( было 5 минут)
    В логах наблюдаю следующее:
    <Information> DatabaseOrdinary (%db_name%): 0% - 100%

    Инсталяция представляет собой 2 шарда по 2 ноды

    Известно ли подобное поведение и в какую сторону стоит посмотреть?
  • https://t.me/clickhouse_ru
    SELECT companyid, status, OrderedDate FROM csts.order WHERE (companyid = 1)

    когда хорошо
    SELECT companyid, status, OrderedDate FROM csts.order WHERE OrderedDate >= '2019-05-22 00:00:00'
  • 1. С помощью sequenceMatch / Count - нет. Выбирает первое встретившееся, т.е. в вашем случае a10, b11 c14. Count найдет 2 цепочки в вашем примере.
    2 Про таймстампы не уверен поможет или нет предварительная сортировка. Если сделать в один поток - то должно помочь, иначе - кажется будет зависеть от скорости обработки разных блоков. Там можно эту проблему по другому обойти - перемаповать диапазон времени. Например просто взять мс и вычесть минимальное значение, а результат скастовать в DateTime.
    3. Там сейчас добавляют поддержку других (64 битных) типов, чтобы можно было использовать вместо DateTime в этих фунциях про последовательности
  • Хм. А если выключить enable_optimize_predicate_expression ?
  • Это не связано с пропорциональным ростом количества данных (таблиц и партиций) от момента растарта 18.16?
  • @mfilimonov #101515 01:02 PM, 22 May 2019
    Или при даунгрейде снова 5 мин стартует?
  • https://t.me/clickhouse_ru
    @Cynephy6 #101516 01:04 PM, 22 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @Mike_Er #101517 01:04 PM, 22 May 2019
    19.5.3.1 -> 19.6.2.11 обновлять безопасно?
  • https://t.me/clickhouse_ru
    @Kakazogl #101518 01:05 PM, 22 May 2019
    Даунтгредить не пробовал, но однозначно протестирую
    Количество данных не сильно изменилось(100-200мб)
  • Над чем "думает" в момент старта? Там по логам должно быть видно.
  • Важнее количество партов / таблиц чем размер
  • @mfilimonov #101521 01:06 PM, 22 May 2019
    Т.е. если у вас 20000 партов - то даже если они будут все вместе 10 мб занимать - то будет запускаться еле-еле
  • https://t.me/clickhouse_ru
    @Kakazogl #101522 01:07 PM, 22 May 2019
    в логах последовательно по всем базам идет сообщение:
    <Information> DatabaseOrdinary (%db_name%): от 0% до 100% постепенно
  • https://t.me/clickhouse_ru
    @Cynephy6 #101523 01:07 PM, 22 May 2019
    Всем привет.
    подскажите как правильно забирать данные из яндекс-метрики

    проблема:
    пытаюсь скачать метрики с яндекс счетчика через скрипт https://github.com/yndx-metrika/logs_api_integration
    и постоянно ошибки.
    сейчас "Logs API can't load data: max_possible_day_quantity = 0"
    до этого было "DB::Exception: Cannot parse input: expected \t before: \n"
    GitHub - yndx-metrika/logs_api_integration: Script for integration with Logs API

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

  • https://t.me/clickhouse_ru
    @baltazorbest #101524 01:09 PM, 22 May 2019
    Привет, а подскажите пожалуйста, как сделать interval 3 month правильно?
    пробовал:
    select toStartOfInterval(today(), interval 3 month);
    но выдало 2019-04-01 не сильно похоже на 3 месяца
  • https://t.me/clickhouse_ru
    @baltazorbest #101525 01:10 PM, 22 May 2019
    вообще интересует такое как в мускуле:
    select date_sub(curdate(), interval 3 month);
    +---------------------------------------+
    | date_sub(curdate(), interval 3 month) |
    +---------------------------------------+
    | 2019-02-22 |
    +---------------------------------------+
  • https://t.me/clickhouse_ru
    now() - INTERVAL 3 MONTH
  • https://t.me/clickhouse_ru
    @baltazorbest #101527 01:14 PM, 22 May 2019
    select today()- interval 3 month;
  • https://t.me/clickhouse_ru
    @baltazorbest #101528 01:14 PM, 22 May 2019
    во, спасибо большое
  • https://t.me/clickhouse_ru
    Если уровень логирования понизить до trace то будет больше писать. Но в общем скорее всего из-за партиционирования, слоишком много партиций.
  • https://t.me/clickhouse_ru
    @Kakazogl #101530 01:16 PM, 22 May 2019
    Спасибо, буду смотреть в этом направлении
  • https://t.me/clickhouse_ru
    @inv2004 #101531 01:54 PM, 22 May 2019
    А можно из CH как-то обратно данные в Kafka посылать?
  • https://t.me/clickhouse_ru
    @inv2004 #101532 01:54 PM, 22 May 2019
    По сути проэмулировать Kafka->ktable->Kafka
  • https://t.me/clickhouse_ru
    @Randomazer #101533 01:55 PM, 22 May 2019
    подскажите пожалуйста в чем суть ошибки? DB::Exception: Unknown data type family: Uint32.
  • https://t.me/clickhouse_ru
    UInt32
  • https://t.me/clickhouse_ru
    @Randomazer #101535 01:56 PM, 22 May 2019
    и?
  • https://t.me/clickhouse_ru
    @tratatataass #101536 01:56 PM, 22 May 2019
    i -> I
  • https://t.me/clickhouse_ru
    @Randomazer #101537 01:56 PM, 22 May 2019
    блин
  • https://t.me/clickhouse_ru
    @Randomazer #101538 01:56 PM, 22 May 2019
    спасибо
  • https://t.me/clickhouse_ru
    @Sablast #101539 02:08 PM, 22 May 2019
    не дропается таблица с движком kafka - в чем может быть проблема? поверх таблицы mv не создавали
  • https://t.me/clickhouse_ru
    Спасибо большое!
    1. т.е. сейчас это никак не вытащить?
    2. Прошу прощения, но я не очень понял как обойти проблему, вот что имеем:
    Select
    1555793527197 as ts_int,
    toDateTime(ts_int/1000) as ts_dt,
    ts_int % 1000 as ts_ms3. Буду ждать 🙏
  • https://t.me/clickhouse_ru
    @Danlark #101541 02:32 PM, 22 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    А какую версию используешь? Должна была быть подсказка
  • toStartOfInterval возвращает начало интервала, в данном случае год делится на интервалы по три месяца: 1 января - 31 марта, 1 апреля-30 июня, 1 июля - 31 сентября, 1 октября - 31 декабря. Сейчас май, toStartOfInterval(today(), interval 3 month) возвращает 1 апреля.
  • https://t.me/clickhouse_ru
    @baltazorbest #101544 02:44 PM, 22 May 2019
    Понял, спасибо
  • https://t.me/clickhouse_ru
    @241186216 #101545 02:49 PM, 22 May 2019
    Подскажите плиз. Настройка max_memory_usage на один запрос влияет ?
  • https://t.me/clickhouse_ru
    @den_crane #101546 02:52 PM, 22 May 2019
    да
  • https://t.me/clickhouse_ru
    @241186216 #101547 02:55 PM, 22 May 2019
    А как тогда не превосходить лимит памяти на сервере ? Параллельных запросов же может быть много
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Лимит сервера / количество одновременных запросов = лимит на 1 запрос
  • https://t.me/clickhouse_ru
    А что будет , если с вот все запросы подойдут суммарно к usage_for_all_queries ?
  • https://t.me/clickhouse_ru
    ошибка в следующем запросе
  • https://t.me/clickhouse_ru
    спасибо, разобрался
  • https://t.me/clickhouse_ru
    А текущий же все равно лимит привысит ? Т.е следующий не запустится, но это му ведь тоже память нужна (ещё больше )
  • https://t.me/clickhouse_ru
    В новых версиях должно быть так

    DB::Exception: Unknown data type family: Uint32. Maybe you meant: ['UInt32','Int32'].
  • https://t.me/clickhouse_ru
    я думаю мало кто пользуется clickhouse-client-м
  • https://t.me/clickhouse_ru
    нет, такого не было, хотя, ставил 2 недели назад
  • https://t.me/clickhouse_ru
    В exception message должно было прилететь
  • https://t.me/clickhouse_ru
    @den_crane #101558 03:08 PM, 22 May 2019
    а хотя, да я затупил
  • https://t.me/clickhouse_ru
    любой запрос с превышением лимита получит ошибку.
    в чем вообще вопрос?
  • https://t.me/clickhouse_ru
    @241186216 #101560 03:15 PM, 22 May 2019
    Как избежать ошибки. Вот в оракое если поставить memory_target то он будет использовать только столько памяти, а если нужно, то сбросит на диск. Как мне такое же сделать в КХ? Что бы memory kilker не приходил .
  • https://t.me/clickhouse_ru
    все несколько сложнее, memory_target балансирует кол-во под кеш и под запросы. В КХ примерно тоже самое и будет если выставить max_memory_usage_for_all_queries + max_bytes_before_external_group_by+ max_bytes_before_external_sort
  • https://t.me/clickhouse_ru
    @vlkolobaev #101562 03:22 PM, 22 May 2019
    Ребят есть вот такой вопрос:
    делаю set max_partitions_per_insert_block=10000 - все равно выдается Error: Too many partitions for single INSERT block (more than 100).. Выставляю в конфиге, в корне: <max_partitions_per_insert_block>0</max_partitions_per_insert_block>, рестартую КХ, смотрю в system.settings, а там 100
  • Надеюсь, таких всё же меньшинство. Не знают, что теряют... ;)
  • user.xml profile default
  • https://t.me/clickhouse_ru
    @SoHellen #101565 03:25 PM, 22 May 2019
    Подскажи пожалуйста, а как правильно выставить параметр distributed_product_mode в конфиг файле? выставила через клиента, set distributed_product_mode='allow', но всеравно получаю Double-distributed IN/JOIN subqueries is denied (distributed_product_mode = 'deny').
  • https://t.me/clickhouse_ru
    set меняет состояние сессии, т.е. действует на запросы после него.
    можно выставить в профиле пользователя.
  • https://t.me/clickhouse_ru
    Спасибо помогло
  • https://t.me/clickhouse_ru
    а профиль пользователя это где? users.xml секция user?
  • https://t.me/clickhouse_ru
    секция <profiles>
  • https://t.me/clickhouse_ru
    Спасибо. Но тут вроде как тоже возможны падения ? Каждая новый запрос будет пожирать память до параметров external sort/group by?
  • https://t.me/clickhouse_ru
    сколько у вас памяти и сколько одновременно запросов выполняется?
    max_memory_usage_for_all_queries -- рекомендуется выставить в половину от имеющейся озу. Т.е. если у меня у сервера 500ГБ озу то я ставлю max_memory_usage_for_all_queries = 250GB что бы еще 250 остались под кеш диска.
  • https://t.me/clickhouse_ru
    завелось. спасибо!
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #101573 03:45 PM, 22 May 2019
    привет, подскажие а когда такое происходит [CH Error 242] DB::Exception: Table is in readonly mode?
  • https://t.me/clickhouse_ru
    отвал от зукипера
  • https://t.me/clickhouse_ru
    @andrei_tserakhau #101575 03:47 PM, 22 May 2019
    а чего с таким делать?
  • Чинить соединение с зукиперем.
  • Подскажите, пожалуйста, можно ли менять число повторов на вставку Distributed таблицей?
  • https://t.me/clickhouse_ru
    @den_crane #101578 03:51 PM, 22 May 2019
    чинить зукипер / связь с зукипером. Старые версии кх плохо выходили из RO, приходилось ребутить или detach/attach
  • https://t.me/clickhouse_ru
    @jerrodpy #101579 03:57 PM, 22 May 2019
    добрый вечер
    хочу создать копию таблицы из мускуля
    возник вопрос даные/таблицы по связым (которые в реляционых БД) как в кликхаузе создавать?
    предполагаю это будет одна большая таблица где все даные будут объединены
    но в доке вижу тип даных nested может правильнее такими типами создавать связаные таблицы ?
  • https://t.me/clickhouse_ru
    @designerfromsanpaulo #101580 04:44 PM, 22 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    ну это не проблема, проблема в том что очень медленно и закачка уже 3 или 4 раза обрывалась (я в америке), хром не хочет продолжать закачку и все начинается с начала каждый раз. Интернет в офисе быстрый, так что я не думаю, что это наше ограничение
  • https://t.me/clickhouse_ru
    лучше одну очень широкую, избегая nested пока возможно
  • https://t.me/clickhouse_ru
    @IldarZaynullin #101584 05:34 PM, 22 May 2019
    Добрый день!

    Подскажите, пожалуйста, отличаются ли как-то структуры хранения данных в таблицах MergeTree, созданных командой нового формата и командой старого формата. Были ли добавлены какие-то существенные оптимизации в формат хренения? Если да, то как форматировать таблицу для хранения по новому формату с сохренением данных и с минимальным простоем?
    Вопрос возник в связи с обновлением сервера clickhouse с версии 1.1.54388 до версии 19.4.2.7 и преобразованием таблицы в реплицируемую.
    Новая реплицируемая таблица была создана с использованием нового формата и на этапе добавления кусков данных из старой таблицы, созданной командой старого формата, была получена ошибка No count.txt in part 20190404_20190404_50865_50865_0
    Если использовать устаревший синтаксис создания реплицируемой таблицы, то инструкция преобразования таблицы MergeTree в ReplicatedMergeTree работает отлично.
  • https://t.me/clickhouse_ru
    @gorsil #101585 06:04 PM, 22 May 2019
    Привет. Почитал доку, но не смог найти. Как при создании таблички с движком AggregatingMergeTree указывать аггрегирующую функцию для колонки? Нашел примеры для представления, но не для обычной таблицы
  • https://t.me/clickhouse_ru
    CREATE TABLE final_states_by_month(d date, uid UInt64, a_state AggregateFunction(groupArray, String))
    ENGINE = AggregatingMergeTree PARTITION BY toYYYYMM(d) ORDER BY (uid);
  • https://t.me/clickhouse_ru
    @den_crane #101587 06:06 PM, 22 May 2019
    create table mv_z_store(a date, max_b AggregateFunction(MAX,Int64)) ENGINE = AggregatingMergeTree Partition by toYYYYMM(a) order by a;
  • https://t.me/clickhouse_ru
    утилита есть, но видимо она не публична
    https://github.com/yandex/ClickHouse/pull/4195/
  • https://t.me/clickhouse_ru
    @gorsil #101589 06:09 PM, 22 May 2019
    хм, в целом синтаксис понятен, но как например сделать вот такой агрегат anyIf(x, x != 0)?
  • https://t.me/clickhouse_ru
    create table yy (x Int64) engine=Null;
    create materialized view yy_v Engine AggregatingMergeTree order by tuple() as select x, anyIfState(x, x != 0) from yy group by x;
    desc yy_v
    AggregateFunction(anyIf, Int64, UInt8)
  • https://t.me/clickhouse_ru
    @gorsil #101591 06:15 PM, 22 May 2019
    т,е. без materialized view не обойтись, получается :(
  • https://t.me/clickhouse_ru
    @gorsil #101592 06:16 PM, 22 May 2019
    На моем объеме не взлетит такое, кажется
  • https://t.me/clickhouse_ru
    @den_crane #101593 06:16 PM, 22 May 2019
    ??? я показал пример как узнать функцию
  • https://t.me/clickhouse_ru
    @gorsil #101594 06:17 PM, 22 May 2019
    Ну получается же что x хранится в табличке yy, и если там не 1 колонка, а много, то там будут лежать дубликаты строк с разными значениями в колонке x
  • https://t.me/clickhouse_ru
    @gorsil #101595 06:18 PM, 22 May 2019
    desc yy_v
    AggregateFunction(anyIf, Int64, UInt8) вот эту часть я не очень понял
  • https://t.me/clickhouse_ru
    @gorsil #101596 06:19 PM, 22 May 2019
    а, кажется понял
  • https://t.me/clickhouse_ru
    чего? я показал пример как узнать AggregateFunction(anyIf, Int64, UInt8)
    а сам код и всякие gruop by я писал от балды
  • https://t.me/clickhouse_ru
    @gorsil #101598 06:20 PM, 22 May 2019
    хм
  • https://t.me/clickhouse_ru
    @gorsil #101599 06:20 PM, 22 May 2019
    ок, попробую
  • https://t.me/clickhouse_ru
    спасибо
  • Я думал, что в параметрах типа надо объявлять входные параметры функции
    Тогда получается
    UInt64,UInt64
  • https://t.me/clickhouse_ru
    @den_crane #101602 07:40 PM, 22 May 2019
    UInt8 -- это bool ( != )
  • Логично. У if параметр bool.
  • https://t.me/clickhouse_ru
    @270358043 #101604 08:36 PM, 22 May 2019
    в clickhouse есть prepared ? как минимум с этим 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
    @den_crane #101605 08:44 PM, 22 May 2019
    нету ни prepared ни параметров. SQL планера нет, грантов нет, нечего preparить
  • https://t.me/clickhouse_ru
    @270358043 #101606 08:49 PM, 22 May 2019
    понятно. Спасибо!
  • @OxOps #101607 09:27 PM, 22 May 2019
    Joined.
  • 23 May 2019 (182 messages)
  • @lagurev #101608 05:09 AM, 23 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @AlexSkopin #101609 05:19 AM, 23 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    @newsettler #101610 06:37 AM, 23 May 2019
    Как сильно влияет на скорость выборки различное партицирование? Сейчас партицирование по дням по полю Date, исходя из того, что наиболее часты выборки за текущие сутки. Но, с учётом хранения данных более года, количество партиций большое и, если правильно понимаю, запрос данных за две недели (месяц) должен быть заметно дольше?
  • https://t.me/clickhouse_ru
    Пока нет
  • https://t.me/clickhouse_ru
    При запросах делается чтение из всех партиций, которые указаны в WHERE. Соответственно, в худшем случае, если данные не в кэше, то чтение из 100 партиций приведет к N*100 случайных чтений, где N — число колонок, участвующих в запросе
  • https://t.me/clickhouse_ru
    @yourock88 #101613 07:21 AM, 23 May 2019
    Я думаю, что на запросах за 14-30 дней вы ещё ничего особого страшного можете и не заметить, а вот выборки за год уже могут начать хорошо так тормозить
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #101610 #101614 07:21 AM, 23 May 2019
    Там еще сортировка роль играет. В любом случае партиции по дням для сильно специфичных случаев. Попробуйте хотя бы нелели, а лучше месяцы.
  • https://t.me/clickhouse_ru
    @yourock88 #101615 07:23 AM, 23 May 2019
    В качестве небольшого "трюка" можно поставить дату в качестве первого компонента первичного ключа, и партиционионирование по месяцу, и тогда чтение по диапазону дат будет намного более последовательным. Минусом такого решения является то, что удалять данные быстро можно будет только по месяцам.
  • https://t.me/clickhouse_ru
    @yourock88 #101616 07:24 AM, 23 May 2019
    Ну и будет немного больше записи на диск в целом, потому что будет требоваться больше мержей (ибо сами партиции больше)
  • https://t.me/clickhouse_ru
    99% запросов - текущий день. Движок GraphiteMergeTree c репликой.
  • https://t.me/clickhouse_ru
    @newsettler #101618 07:26 AM, 23 May 2019
    То есть в основном - отображаемые графаной срезы значений за полчаса-час до текущего момента. Хочется максимально уменьшить время отклика.
  • https://t.me/clickhouse_ru
    @newsettler #101619 07:28 AM, 23 May 2019
    Плюс, дерево путей очень большое, десяками миллионов обозначаемое.
  • https://t.me/clickhouse_ru
    @yourock88 #101620 07:28 AM, 23 May 2019
    GraphiteMergeTree вообще интересный зверь: он поддерживает агрегацию на фоне, но сама агрегация делается только во время мержей, и "сами" мержи могут и не триггериться, так что нам пришлось в кроне делать OPTIMIZE партиций на регулярной основе, чтобы данные схлопывались
  • https://t.me/clickhouse_ru
    @Cynephy6 #101621 07:28 AM, 23 May 2019
    Joined.
  • https://t.me/clickhouse_ru
    Это и сейчас так? В последних версиях?
  • https://t.me/clickhouse_ru
    Честно скажу, не знаю. Я вообще не видел слишком много жалоб про этот движок, вероятно у людей обычно все более-менее нормально работает и без плясок с бубном. У нас просто объем записи был очень большой, несколько Тб на каждом сервере набегало за месяц
  • https://t.me/clickhouse_ru
    А вам решардить приходилось?
  • https://t.me/clickhouse_ru
    @ployd ↶ Reply to #101623 #101625 07:33 AM, 23 May 2019
    Сколько же optimize длился на таких партициях?
  • https://t.me/clickhouse_ru
    А что значит срезы? Вы делаете агрегацию по нескольким миллионам метрик за раз?
  • https://t.me/clickhouse_ru
    Отличный вопрос! У меня по простому не получилось.
  • https://t.me/clickhouse_ru
    Партиции мы делали по 2 Тб, так что длился он много часов :))
  • https://t.me/clickhouse_ru
    Не могу сказать, не уверен, что знаю ответ :)
  • https://t.me/clickhouse_ru
    Мне кажется, что без stop the world тут не обойтись :)
    Т.е. надо останавливать мержи для архивов, переносить из них данные на новые ноды. Ну и до кучи можно присочинить, что запись надо делать через Distributed таблицу с ключом шардирования - функцией из семейства consistent hashing (чтобы меньше перегонять на новые шарды).
    Но я даже боюсь думать о такой процедуре, когда речь будет идти о таких размерах партиций, как Юра привёл.