• 01 March 2018 (136 messages)
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #43927 #43930 04:44 AM, 01 Mar 2018
    На первый взгляд с ними всё ОК и версию через --build-arg указать можно. Что с ними не так, что пришлось править?
  • @cm4ker #43931 07:02 AM, 01 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @343206394 #43932 07:20 AM, 01 Mar 2018
    Доброе утро.
    Появилась надобность хранить HDRHistagram структуры данных в КХ.
    Складывать будем в String я так понял это типа blob.
    Есть проблемка. Очень бы хотелось организовать пггрегацию на стороне КХ, а для этого КХ должен понимать что мы в blob храним.
    UDF как я понял нет. Получаеться единственный спосб научить КХ работать с HDRHistagram это предоставить PR и надеяться что его вмержат?
    Или может есть какой-то способ подложить dll куда-то и подцепить кастомную функцию?
    Хелп!
  • @sr_maks1 #43933 07:31 AM, 01 Mar 2018
    /stat@combot
  • https://t.me/clickhouse_ru
    @343206394 #43935 07:31 AM, 01 Mar 2018
    /stat@combot
  • https://t.me/clickhouse_ru
    @mrlamberg #43939 07:33 AM, 01 Mar 2018
    чо вам дает эта статистика?
  • А чем вам собственно эта статистика мешает? )
  • https://t.me/clickhouse_ru
    @mrlamberg #43941 07:37 AM, 01 Mar 2018
    ну каждый человек запрашивает
  • https://t.me/clickhouse_ru
    @mrlamberg #43942 07:37 AM, 01 Mar 2018
    и телеграм показывает новое сообщение)
  • https://t.me/clickhouse_ru
    @mrlamberg #43943 07:37 AM, 01 Mar 2018
    главный вопрос, а что она дает
  • https://t.me/clickhouse_ru
    @mrlamberg #43944 07:38 AM, 01 Mar 2018
    ну по ней только меня за флуд можно забанить
  • https://t.me/clickhouse_ru
    @mrlamberg #43945 07:38 AM, 01 Mar 2018
    а остальное вторично)
  • Добавить непосредственно в код ClickHouse (см. AggregateFunctions) и прислать pull request - самый перспективный вариант. На реализацию гистограмм есть несколько запросов снаружи и один внутри - то есть, мы хотим, чтобы это было в ClickHouse.
  • https://t.me/clickhouse_ru
    @343206394 #43947 07:47 AM, 01 Mar 2018
    Понятно, спсб, пару уточнении по реализации
    1. Где-то тут кидаем файлики с гистограммой https://github.com/yandex/ClickHouse/tree/master/dbms/src/AggregateFunctions
    2. Работать будет поверх типа string ?
    3. Не против если вот это будет использовано? https://github.com/HdrHistogram/HdrHistogram_c
    yandex/ClickHouse

    ClickHouse is a free analytic DBMS for big data.

  • https://t.me/clickhouse_ru
    @343206394 #43948 07:49 AM, 01 Mar 2018
    Создам тикет на ГХ и буду колупать босса что надо сделать это нам.
    Если подтвердите пункты 1-3 (или подкорректируете), спсб @milovidov_an
  • @milovidov_an #43949 07:54 AM, 01 Mar 2018
    > Где-то тут кидаем файлики с гистограммой

    Да.

    > Работать будет поверх типа string ?

    Не понял, почему. Разве там не гистограмма с int границами?

    > Не против если вот это будет использовано?

    Не против. Библиотеку можно положить в contrib либо с помощью git submodule либо скопировав исходники.

    При желании можете также посмотреть на алгоритм работы функции quantileTDigest. Этот алгоритм также позволяет строить гистограммы с адаптивными границами корзин.

    > Создам тикет на ГХ

    Уже есть: https://github.com/yandex/ClickHouse/issues/9
    Aggregation function: HDR Histograms #9

    As a complement to quantile(s) aggregation function, it could be useful to have a histogram aggregation function based on https://github.com/HdrHistogram/HdrHistogram_c where you specify the min, ...

  • https://t.me/clickhouse_ru
    @343206394 #43950 08:10 AM, 01 Mar 2018
    >Не понял, почему. Разве там не гистограмма с int границами?
    Я так понимаю что смысл в том что ОНО оперирует кастомной структурой данных (как другие скетч алгоритмы) и эту структуру надо где-то хранить
    Единственный способ который я вижу в КХ это String.
    Может мы немного одругом говорим?
    Я не про построение гостограм по какой-то колонке.
    Я об возможности хранения и обработки внутренней HDRHistogram структуры в КХ непосредственно
  • @milovidov_an #43951 08:12 AM, 01 Mar 2018
    В ClickHouse есть тип данных AggregateFunction, он хранит любое состояние.
  • https://t.me/clickhouse_ru
    @343206394 #43952 08:12 AM, 01 Mar 2018
    Это для промежуточных результатов, разве нет?
  • @milovidov_an #43953 08:13 AM, 01 Mar 2018
    Эти промежуточные результаты также можно получать с помощью добавления -State к имени агрегатной функции, и хранить в таблице.
  • https://t.me/clickhouse_ru
    @343206394 #43954 08:14 AM, 01 Mar 2018
    Так, давайте я подробнее опишу наш кейс чтобы не было испорченного телефона. Чувствую мы о разном говорим немного
  • https://t.me/clickhouse_ru
    @343206394 #43957 08:19 AM, 01 Mar 2018
    Есть где-то клиент. Он не может слать числа тк их очень много.
    Но он может внутри себя завести HDRHistogram объект с какими-то параметрами и скармливать в эту структуру все числа.
    Раз в пару минут этот наполненныый HDRHistogram посылать на сервер.
    Сервер сериализует HDRHistogram в байты и пишет в КХ как Стринг.

    Через 2 дня надо вычитать все HDRHistogram из КХ и смержить.

    Так вот очень хочеться мержить на стороне КХ не вычитывая на сервер, тоесть КХ должен понять что Стринг это не просто Стринг а сериализованный HDRHistogram

    Может непонятно описал, спрашивайте пожалуйста
  • @milovidov_an #43958 08:21 AM, 01 Mar 2018
    Да, всё понятно. Как раз тип данных AggregateFunction подходит для этого. Вы можете создать таблицу со столбцом, например, state AggregateFunction(HDRHistogram, UInt64). Затем записывать туда данные INSERT-ом, передавая сериализованное состояние - набор байт, в качестве значения этого столбца. И далее мержить эти состояния с помощью агрегатной функции с комбинатором -Merge: SELECT HDRHistogramMerge(state) FROM table.
  • https://t.me/clickhouse_ru
    @343206394 #43959 08:23 AM, 01 Mar 2018
    Отлично, пока не понимаю о чем это тк в с++ не силен и код КХ не знаю но путь понятен.
    Спасибо.
  • https://t.me/clickhouse_ru
    @343206394 #43960 08:29 AM, 01 Mar 2018
    Тут подробнее о State как я понял если кому-то будет интересно
  • https://t.me/clickhouse_ru
    @343206394 #43961 08:29 AM, 01 Mar 2018
    ClickHouse AggregateFunctions and AggregateState

    There is probably an unique feature of ClickHouse — aggregate states (addition to aggregate functions). You could refer to the…

  • @pookieShmukie #43962 08:47 AM, 01 Mar 2018
    @milovidov_an спасибо за фикс https://github.com/yandex/ClickHouse/issues/859 !
    Wrong query optimisation throws out required columns from subqueries. #859

    Query below works fine. SELECT * FROM ( SELECT learnerHash, passed - eventTime AS diff FROM statements GLOBAL ANY INNER JOIN ( SELECT learnerHash...

  • https://t.me/clickhouse_ru
    @kshvakov #43963 08:49 AM, 01 Mar 2018
    Да, если все заработает как надо это будет очень круто, правда придется переписать огромное количество достаточно странно выглядищих запросов )
  • https://t.me/clickhouse_ru
    @arsen #43964 09:12 AM, 01 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    Как то так: https://gist.github.com/VladRassokhin/9d93866315ccabf62ae334c59d0f57df
    Думаю из кода понятно что происходит (кто-то не тестировал что коммитил)
  • @251174194 #43966 10:46 AM, 01 Mar 2018
    Joined.
  • @kgdrusaaremaa #43967 11:06 AM, 01 Mar 2018
    Приветствую, Сообщество. Может кто подсказать как применять в SELECT'е timeSlots? Образец запроса.
  • https://t.me/clickhouse_ru
    select arrayJoin([1,2,3]) ?
  • @vchizi #43971 11:49 AM, 01 Mar 2018
    Всем привет. Пытаюсь создать MATERIALIZED VIEW
    CREATE MATERIALIZED VIEW stat
    ENGINE = AggregatingMergeTree(date, date, 8192) POPULATE
    AS SELECT
    ...
    FROM blabla
    WHERE ...
    GROUP BY
    ...
    Сделал count from select на основе которого создаю view, то получается 2,5кк
    А когда создается view и делаю select count() from stat то значения постоянно отличаются,
    то выводит 8762 и начинает расти 100к, то опять падает.

    Я что то не так делаю? Или это какое то специфическое поведение у view?
  • @kochetovnicolai #43972 12:00 PM, 01 Mar 2018
    наверное, что-то агрегируется в процессе вставки?
  • @kochetovnicolai #43973 12:02 PM, 01 Mar 2018
    если добавить countState и сделать запрос с countMerge, числа совпадают?
  • @vchizi #43974 12:06 PM, 01 Mar 2018
    я в этот момент никакие вставки не делаю, пытаюсь сдлеать POPULATE
  • @kochetovnicolai #43975 12:10 PM, 01 Mar 2018
    populate же сам делает вставки
  • @kochetovnicolai #43976 12:12 PM, 01 Mar 2018
    если я не ошибаюсь, select count() показывает число состояний в AggregatingMergeTree, которое может меняться в процессе фоновых мержей
  • @vchizi #43977 12:13 PM, 01 Mar 2018
    count показывает правильно
  • @vchizi #43978 12:20 PM, 01 Mar 2018
    в движке AggregatingMergeTree вторым параметром должны быть все поля по которым делается group by?
    Вот пример в доки
    CREATE MATERIALIZED VIEW test.basic
    ENGINE = AggregatingMergeTree(StartDate, (CounterID, StartDate), 8192)
    AS SELECT
    CounterID,
    StartDate,
    sumState(Sign) AS Visits,
    uniqState(UserID) AS Users
    FROM test.visits
    GROUP BY CounterID, StartDate;
  • @kochetovnicolai #43979 12:23 PM, 01 Mar 2018
    да
  • @vchizi #43980 12:23 PM, 01 Mar 2018
    тогда понял
  • @vchizi #43981 12:28 PM, 01 Mar 2018
    да, все, вроди теперь как надо, спасибо большое
  • https://t.me/clickhouse_ru
    @negasus #43983 12:55 PM, 01 Mar 2018
    Господа, есть такой вопрос, не получается понять
    Создано MATERIALIZED VIEW с движком ReplicatedAggregatingMergeTree

    Внутри есть два поля, по которым делается GROUP BY и пара полей с sum

    Делаю подряд два запроса, вида select net_id, tag_date, sumMerge(amount) from view_table_name where tag_date between '2018-03-01' and '2018-03-01' group by net_id, tag_date

    И в первый раз получаю три строки (так как есть три net_id, это корректно) в выборке, но второй раз могу получить одну строку. Или опять три (систему не понял)
  • https://t.me/clickhouse_ru
    @negasus #43984 12:55 PM, 01 Mar 2018
    упс, похоже выше вопрос был, который как раз меня касается)
  • https://t.me/clickhouse_ru
    @negasus #43985 12:55 PM, 01 Mar 2018
    пока отбой тревоги, пойду проверять
  • https://t.me/clickhouse_ru
    @379388202 #43986 01:03 PM, 01 Mar 2018
    Коллеги, заметил, что groupArray функция выкидывает null'ы:
  • https://t.me/clickhouse_ru
    @379388202 #43987 01:03 PM, 01 Mar 2018
    select groupArray(c) from (select cast(null as Nullable(UInt64)) as c)
  • https://t.me/clickhouse_ru
    @379388202 #43988 01:04 PM, 01 Mar 2018
    возвращает пустой массив типа UInt64 вместо массива Nullable(Uint64) с одним null'ом. Это баг или фича?
  • @kochetovnicolai #43989 01:13 PM, 01 Mar 2018
    это баг
  • https://t.me/clickhouse_ru
    @379388202 #43990 01:15 PM, 01 Mar 2018
    спасибо. завёл на гитхабе: https://github.com/yandex/ClickHouse/issues/1980
    groupArray and Nullable #1980

    Hello! I have noticed, that groupArray function ignores null in nullable columns, and changes type from nullable to not nullable: select groupArray(c) from (select cast(null as Nullable(UInt64)) a...

  • @vchizi ↶ Reply to #43985 #43991 01:20 PM, 01 Mar 2018
    скажешь, получилось ли)
  • https://t.me/clickhouse_ru
    @negasus ↶ Reply to #43991 #43992 01:36 PM, 01 Mar 2018
    Да, дело было ровно в этом. Добавил колонку в таблицу, но забыл добавить в параметры движка)
  • @tg_ilia #43993 01:44 PM, 01 Mar 2018
    Joined.
  • @251174194 #43994 02:32 PM, 01 Mar 2018
    Привет. Кто нибудь делал пример из get started c 60gb данных в докере? При импорте просто контейнер падает без каких либо ошибок
  • https://t.me/clickhouse_ru
    @degibenz #43995 02:32 PM, 01 Mar 2018
    EOF?
  • @251174194 #43996 02:32 PM, 01 Mar 2018
    подключил в докере volume где лежат данные, но ума не приложу как их импортнуть
  • @251174194 #43997 02:33 PM, 01 Mar 2018
    ага
  • @251174194 #43998 02:33 PM, 01 Mar 2018
    ну вообще в клиенте сокет таймаут
  • @251174194 #43999 02:33 PM, 01 Mar 2018
    а на сервере ничего
  • https://t.me/clickhouse_ru
    @degibenz #44000 02:33 PM, 01 Mar 2018
    Настройки по умолчанию?
  • @251174194 #44001 02:33 PM, 01 Mar 2018
    да
  • https://t.me/clickhouse_ru
    @degibenz #44002 02:33 PM, 01 Mar 2018
    Докера
  • @251174194 #44003 02:33 PM, 01 Mar 2018
    да
  • @251174194 #44004 02:33 PM, 01 Mar 2018
    докер на макоси стоит
  • https://t.me/clickhouse_ru
    @Deazer123 #44005 02:36 PM, 01 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @molo4ko007 #44006 03:01 PM, 01 Mar 2018
    Привет. Кто-то из команды может глянуть https://github.com/yandex/clickhouse-jdbc/pull/176? Если можно, то и хотфикс-релиз хотелось бы асап.
    Fix #175 by tkroman · Pull Request #176 · yandex/clickhouse-jdbc

    Quick and dirty - just making sure we don't ask anything on closed streams. Added ttest w/o this fix fails on the first rs.next() call after we reach end of RS.

  • https://t.me/clickhouse_ru
    @aloneibreak #44007 04:02 PM, 01 Mar 2018
    коллеги, есть вопрос
    приложение общается с КХ по http и отправляет туда insert'ы
    судя по всему КХ закрывает http подключение до того как закончит insert
    есть ли возможность заставить ее подежать коннект? или как-то иначе выяснить что insert завершен?
  • https://t.me/clickhouse_ru
    @stufently #44008 04:04 PM, 01 Mar 2018
    там же все равно очередь, проверить наверно можно селектом
  • https://t.me/clickhouse_ru
    @tommi_v #44009 04:14 PM, 01 Mar 2018
    парни, а у хттп-интерфейса нет никакого биндинга параметров?
  • https://t.me/clickhouse_ru
    @tommi_v #44010 04:14 PM, 01 Mar 2018
    ну вроде SELECT * FROM table WHERE cluster_id = ?
  • https://t.me/clickhouse_ru
    @tommi_v #44011 04:15 PM, 01 Mar 2018
    мне просто посчастливилось писать на ноде и в тамошнем драйвере нет ни конструктора запросов, ничего такого, боюсь инъекций
  • https://t.me/clickhouse_ru
    если для инсерта - сам statement как урл запроса а values как post body
  • https://t.me/clickhouse_ru
    @tommi_v #44014 04:28 PM, 01 Mar 2018
    нет, для селекта
  • https://t.me/clickhouse_ru
    @tommi_v #44015 04:28 PM, 01 Mar 2018
    ридонли это конечно хорошо, но инъекции можно и на чтение сделать
  • https://t.me/clickhouse_ru
    добавьте GET ?readonly=true
  • https://t.me/clickhouse_ru
    @tommi_v #44017 04:28 PM, 01 Mar 2018
    меня интересовал родной механизм эскейпа значений
  • https://t.me/clickhouse_ru
    @tommi_v #44018 04:28 PM, 01 Mar 2018
    но похоже что ничего такого нет
  • https://t.me/clickhouse_ru
    @aloneibreak #44019 04:29 PM, 01 Mar 2018
    КХ достаточно умный и двух запросов в одном http коннекте не пропускает
  • https://t.me/clickhouse_ru
    @tommi_v #44020 04:29 PM, 01 Mar 2018
    ну так можно же UNION сделать
  • UNION сработает только в случае, если в обоих результатах одинаковое количество колонок и они одного типа и названия
  • https://t.me/clickhouse_ru
    @tommi_v #44022 04:42 PM, 01 Mar 2018
    даже названия? прикольно
  • https://t.me/clickhouse_ru
    @tommi_v #44024 04:42 PM, 01 Mar 2018
    ну про тип-то понятно
  • https://t.me/clickhouse_ru
    @tommi_v #44026 04:42 PM, 01 Mar 2018
    хорошо, спасибо
  • @pookieShmukie #44027 04:43 PM, 01 Mar 2018
    Поэтому тут при всем желании что-то "сломать" не получится. В крайнем случае можно только эксепшен словить и это просто сломает работу приложения - не больше.
  • @pookieShmukie #44028 04:43 PM, 01 Mar 2018
    Главное вот такое:

    1 String String(size = 0)

    while expecting:

    1 UInt8 UInt8(size = 0)

    instead.

    Не отдать пользователю :))
  • https://t.me/clickhouse_ru
    @tommi_v #44029 04:44 PM, 01 Mar 2018
    справедливо
  • @xaphoon #44030 05:12 PM, 01 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @count0ru #44031 06:02 PM, 01 Mar 2018
    подскажите, если просто подсунуть кх директорию с данными от другого сервера - заработает?
  • @kochetovnicolai #44032 06:05 PM, 01 Mar 2018
    должно заработать (если тот же конфиг и зукипер, а также нет другого работающего процесса в той же директории)
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44010 #44033 06:09 PM, 01 Mar 2018
    Нет, ClickHouse на данный момент не поддерживает подготовленные запросы
  • @cosmokit #44034 07:06 PM, 01 Mar 2018
    Подскажите пожалуйста. Необходимо поднять резервный сервер с репликой на случай ЧП и о мощности железа этого резервного сервера. Как происходит передача данных на реплику? Реплика повторяет те же запросы и нужно железо такой же мощности?
  • https://t.me/clickhouse_ru
    @stufently #44035 07:08 PM, 01 Mar 2018
    Можно и слабенький, реплика просто получает данные
  • @cosmokit #44036 07:17 PM, 01 Mar 2018
    Мы используем CollapsingMergeTree и меня смущает одна операция. Периодически нужно "обновлять данные". Делается это так: создается временная таблица, в которую из основной селектятся данные для апдейта. "Заменяются" значения в колонках и делаются инсерт (-1) и инсерт (1) в основную. Как эта операция будет воспринята репликой? Придут уже обработанные (схлопнутые) данные или эти два мегаинсерта тоже прилетят?
  • https://t.me/clickhouse_ru
    @stufently #44037 07:19 PM, 01 Mar 2018
    селекты не прилетают
  • @cosmokit #44038 07:21 PM, 01 Mar 2018
    Понял, спасибо
  • @cosmokit #44039 07:21 PM, 01 Mar 2018
    Буду пробовать
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44034 #44041 07:31 PM, 01 Mar 2018
    Если резервный то берите такой же, т.к. если ваш "мастер" выйдет из строя то все запросы уйдут на резервный. Хотя понятие "резервный" в КХ достаточно условное, это будут равноправные сервера и читать/пасать вы можете в любой
  • https://t.me/clickhouse_ru
    @stufently #44042 07:34 PM, 01 Mar 2018
    Если брать впс можно мелкую смысла нет держать большую, потом можно руками увеличить, если простой не сильно страшен
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44036 #44043 07:35 PM, 01 Mar 2018
    Прилетят, как только информация о блоках с данными попадет в Zookeeper реплика их скачает
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44042 #44044 07:38 PM, 01 Mar 2018
    Сервер будет делать точно такие же мерджи как и основной, для этого нужны ресурсы
  • https://t.me/clickhouse_ru
    @stufently #44045 07:38 PM, 01 Mar 2018
    Ну на бекапе можно просто и подождать, ничего страшного в этом нет
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44045 #44046 07:50 PM, 01 Mar 2018
    Там очередь назначенных мержей, если будет долго мержить вполне можно словить ошибку про то что мержи идут медленнее чем инсерты
  • https://t.me/clickhouse_ru
    @stufently #44047 07:51 PM, 01 Mar 2018
    Мне кажется надо просто проверить, сильно зависит от инсертов и нагрузки
  • @cosmokit ↶ Reply to #44046 #44048 07:52 PM, 01 Mar 2018
    Правильно ли я понимаю - мержи столько же процессорного времени занимают?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44048 #44049 07:54 PM, 01 Mar 2018
    Да, все сервера делают одно и тоже, синхронизируется все это дело через Zookeeper, там ставится задача: "мержим такие-то куски"
  • @cosmokit #44050 07:56 PM, 01 Mar 2018
    То есть если на проде в один прекрасный день существенно вырастет нагрузка, то слабая реплика просто загнётся?
  • https://t.me/clickhouse_ru
    @kshvakov #44051 07:57 PM, 01 Mar 2018
    Если сильно слабее то возможно что и загнется
  • @cosmokit #44052 07:57 PM, 01 Mar 2018
    6 ядер против 24
  • https://t.me/clickhouse_ru
    @stufently #44053 07:58 PM, 01 Mar 2018
    а много прямо данных и тяжелые мержи
    ?
  • https://t.me/clickhouse_ru
    @kshvakov #44054 07:59 PM, 01 Mar 2018
    Ну, мержи оно, скорее всего, вытащит, а вот что вы будете делать когда ваш основной сервер упадет? Куда пойдут запросы на чтение/запись?
  • https://t.me/clickhouse_ru
    @stufently #44055 08:00 PM, 01 Mar 2018
    у меня просто кх крутится везде на 4 ядрах
  • https://t.me/clickhouse_ru
    @stufently #44056 08:00 PM, 01 Mar 2018
    в целом на 10-20 млн записей в день не наблюдаю проблем с производительностью
  • @70532431 #44057 08:03 PM, 01 Mar 2018
    Joined.
  • @cosmokit #44058 08:03 PM, 01 Mar 2018
    Этот сервак используется для сбора и анализа статистки, 1-2 часа потери статы особо погоды не сделают на общем фоне. Переплачивать за отдельный сервак особо нет смысла, но хранить резерв нужно. Вот пытаюсь определиться как рациональнее поступить.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44058 #44059 08:04 PM, 01 Mar 2018
    Тогда просто бекап и возможность быстро взять новый сервер в аренду
  • @70532431 #44060 08:05 PM, 01 Mar 2018
    Ребята, что я делаю не так?

    Пытаюсь создать таблицу типа ReplicatedMergeTree, шаблон пути ZK /clickhouse/tables/shard-{shard}/testtable

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

    Received exception from server (version 1.1.54343):
    Code: 62. DB::Exception: Received from localhost:9000, ::1. DB::Exception: No macro shard in config.

    Хотя секция macros в config.xml имеется:

    <macros>
    <cluster>odissey</cluster>
    <replica>centos7_129</replica>
    <shard>01</shard>
    </macros>
  • @70532431 #44061 08:06 PM, 01 Mar 2018
    Раньше по чату были подобные вопросы, но решения данной проблеме так и не нашёл.
  • https://t.me/clickhouse_ru
    @count0ru ↶ Reply to #44060 #44062 08:07 PM, 01 Mar 2018
    А если не tables-{shard} а просто {shard}
  • @70532431 #44063 08:09 PM, 01 Mar 2018
    Поменял /clickhouse/tables/shard-{shard}/testtable на /clickhouse/tables/{shard}/testtable, рестартанул сервер, не помогло - при создании таблицы та же ошибка.
  • @kochetovnicolai #44064 08:10 PM, 01 Mar 2018
    куда вложен <macros> в конфиге? и в каком конфиге?
  • @70532431 #44065 08:14 PM, 01 Mar 2018
    /etc/clickhouse-server/config.xml
    Выше macros только yandex в xml
  • @kochetovnicolai #44066 08:15 PM, 01 Mar 2018
    вроде все правильно
  • @kochetovnicolai #44067 08:16 PM, 01 Mar 2018
    а другие макросы находит?
  • @70532431 #44068 08:17 PM, 01 Mar 2018
    попробовал ReplicatedMergeTree('/clickhouse/tables/shard/dditest', '{replica}'
    тоже экспшн
    DB::Exception: No macro replica in config.
  • @70532431 #44069 08:18 PM, 01 Mar 2018
    Версия Clickhouse последняя из https://github.com/Altinity/clickhouse-rpm-install
    1.1.54343
    GitHub - Altinity/clickhouse-rpm-install: How to install clickhouse RPM packages

    How to install clickhouse RPM packages. Contribute to Altinity/clickhouse-rpm-install development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @stufently #44070 08:37 PM, 01 Mar 2018
    макросы не подгрузились, насколько помню если они в отдельном файле то их кх автоматом не подхватывает, и надо его рестартить хотя может уже поправили
  • @70532431 ↶ Reply to #44070 #44071 08:38 PM, 01 Mar 2018
    попытка в отдельном файле их разместить оказалась невыполнимой эпопеей на 2 часа, в итоге решил в config.xml закинуть, и там та же ерунда. есть подозрение, что что-то с версией из rpm, сейчас на debian 8 то же пробовать буду
    как пофикшу - напишу тут
  • https://t.me/clickhouse_ru
    @Andrew_Pikulik #44072 08:55 PM, 01 Mar 2018
    Joined.
  • @70532431 #44073 09:06 PM, 01 Mar 2018
    По проблеме DB::Exception: No macro ... in config
    - помог метод "снести всё и поставить заново". Файл конфига config.xml с которым изначально не работало, но в котором я был уверен, забэкапил и потом им заменил после установки пакетов.
    Взлетело и на Centos7, и на Debian 8.
    есть подозрение, что что-то было с правами.

    Вот так сработало, сам процесс запущен под юзером clickhouse.
    CentOS7:
    [root@test10 clickhouse-server]# ls -l
    total 48
    -rw-r-----. 1 clickhouse clickhouse 14438 Mar 1 23:53 config-preprocessed.xml
    -rw-r--r--. 1 root root 14229 Mar 1 23:53 config.xml
    -rw-r-----. 1 clickhouse clickhouse 4852 Mar 1 23:53 users-preprocessed.xml
    -rw-r--r--. 1 root root 4664 Feb 9 23:02 users.xml
    Debain8:
    root@test12:/etc/clickhouse-server# ls -l
    total 48
    -rw-r--r-- 1 clickhouse clickhouse 14438 Mar 1 23:42 config-preprocessed.xml
    -rw-r--r-- 1 clickhouse clickhouse 14229 Mar 1 23:39 config.xml
    -rw-r--r-- 1 clickhouse clickhouse 4852 Mar 1 23:42 users-preprocessed.xml
    -rw-r--r-- 1 clickhouse clickhouse 4664 Jan 25 00:12 users.xml
  • @70532431 #44074 09:08 PM, 01 Mar 2018
    А, да, ещё у меня сервера с zookeeper были отключены, но в конфиге указаны. Возможно, это тоже повлияло на решение проблемы.
  • https://t.me/clickhouse_ru
    @stufently #44075 09:10 PM, 01 Mar 2018
    ну без зукипера он бы тоже не дал создать репликейтед таблицу
  • @70532431 #44076 09:13 PM, 01 Mar 2018
    clickhouse при попытке создать таблицу выдавал исключение именно на macros - это смущало
  • 02 March 2018 (155 messages)
  • Это вредный совет. Если не экранировать значения при подстановке в запрос, то злоумышленник может легко получить на чтение чужые данные (' OR '' = ') или даже записать значение в какой-нибудь memcached, который расположен в вашей сети: (' OR 1 IN (SELECT 1 FROM remote('host'...) OR ')
  • https://t.me/clickhouse_ru
    @tommi_v #44078 04:56 AM, 02 Mar 2018
    да, я все равно взял пакет для экранирования значений, от греха подальше
  • https://t.me/clickhouse_ru
    @tommi_v #44079 04:56 AM, 02 Mar 2018
    спасибо
  • @358072934 #44080 05:16 AM, 02 Mar 2018
    Joined.
  • Я не подразумевал дачу вредных советов :) Я просто хотел указать на то, что в случае с КХ сделать инъекцию с union гораздо сложнее чем в других БД. А вообще, спасибо за пример!
  • https://t.me/clickhouse_ru
    @149051052 #44082 05:54 AM, 02 Mar 2018
    Доброе утро! В CH нелья переименовывать столбцы?
  • Нельзя.
  • @alexander_sabaev #44084 08:07 AM, 02 Mar 2018
    Joined.
  • @alexander_sabaev #44085 08:09 AM, 02 Mar 2018
    Доброе утро - я обновил clickhouse-server на ubuntu - и он теперь не стартует - ругается - Engine TinyLog doesn't support any arguments (3 given), stack trace: на /home/clickhouse/data/metadata/default//image_stat_buf.sql
    содержимое у него такое
    ATTACH TABLE image_stat_buf
    (
    date Date DEFAULT toDate(event_date),
    event_date DateTime DEFAULT now(),
    id UInt32,
    hash1 UInt64,
    hash2 UInt64,
    url String,
    image_url String,
    image_hash FixedString(32),
    score Float64
    ) ENGINE = TinyLog(date, (hash1, hash2), 8192)
  • @alexander_sabaev #44086 08:11 AM, 02 Mar 2018
    что то поменялось в оприсании параметров этого энджина ?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44086 #44087 08:21 AM, 02 Mar 2018
    Там же написано, вообще не надо параметров
  • https://t.me/clickhouse_ru
    @379388202 #44088 08:22 AM, 02 Mar 2018
    Коллеги, а то, что при сравнение с null в tuple null считается любым значением, это баг или фича:
  • https://t.me/clickhouse_ru
    @379388202 #44089 08:22 AM, 02 Mar 2018
    select (1,null)=(1,1)
  • https://t.me/clickhouse_ru
    @379388202 #44090 08:22 AM, 02 Mar 2018
    возвращает 1
  • @alexander_sabaev #44091 08:22 AM, 02 Mar 2018
    я руками поправил - однако странно что при смене версии начало ругаться - вот и спросил
  • @70532431 #44092 09:11 AM, 02 Mar 2018
    Вроде где-то мелькало, что вынесенные в conf.d/ папку конфиги не перечитываются в реальном времени при изменении без рестарта сервера, так ли это? config.xml постоянно мониторится на правки и применяет их?
  • https://t.me/clickhouse_ru
    у меня, вроде как, перчитываются, когда я отдельные xml под каждого юзера туда кидаю
  • https://t.me/clickhouse_ru
    @nonamehobo #44094 09:13 AM, 02 Mar 2018
    а, не, юзеров я в users.d кидаю
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44092 #44095 09:17 AM, 02 Mar 2018
    Перечитываются, но не все настройки подхватываются налету. Подхватываются: пользователи, словари, список серверов для distributed
  • @70532431 #44096 09:18 AM, 02 Mar 2018
    Спасибо! @kshvakov
  • https://t.me/clickhouse_ru
    @fiksilya #44097 09:59 AM, 02 Mar 2018
    Joined.
  • @pavlov_m #44098 11:41 AM, 02 Mar 2018
    Добрый день, а есть ченджлог по 1.1.54343 ?
  • @pavlov_m #44099 11:42 AM, 02 Mar 2018
    а, сорри. нашел
  • https://t.me/clickhouse_ru
    @proller ↶ Reply to #44095 #44100 11:48 AM, 02 Mar 2018
    вчера еще замержили автообновление всех настроек логгирования
  • https://t.me/clickhouse_ru
    @tommi_v #44101 12:00 PM, 02 Mar 2018
    а кто может посоветовать выход? у меня есть довольно сложный вопрос, подсчет ретеншена юзеров; в пг я использовал CTE, чтобы сделать несколько предварительных выборок и посчитать данные уже на их основе, ну то есть

    WITH
    regs as (SELECT ...),
    other as (SELECT * FROM regs where ...)

    SELECT ... FROM other ...

    в CH я поддержки CTE не нашел, поэтому переписал на временные таблицы, типа

    CREATE TEMPORARY TABLE temp_regs (
    day Date,
    user_id UInt32
    );

    INSERT INTO temp_regs ...;

    SELECT ... FROM ...;

    в нативном клиенте это работает, но по хттп запрещены мульти-стейтменты (Syntax error (Multi-statements are not allowed): failed at position 88 (end of query) (line 4, col 6): ;)

    без временных таблиц придется дублировать подзапросы и вообще все станет очень нечитаемым. Может есть какой-нибудь в обход?
  • https://t.me/clickhouse_ru
    @tommi_v #44102 12:01 PM, 02 Mar 2018
    я пока придумал только генерить какой-нибудь ключ, прибавлять его к названию таблиц и делать их не-временными, а после расчета удалять
  • https://t.me/clickhouse_ru
    @tommi_v #44103 12:01 PM, 02 Mar 2018
    но тоже такое костылище
  • https://t.me/clickhouse_ru
    @timkukskiy #44104 12:04 PM, 02 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44100 #44105 12:04 PM, 02 Mar 2018
    Это здорово👍
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44101 #44106 12:06 PM, 02 Mar 2018
    В HTTP есть сессии, там можно работать с временными таблицами, сначала создаете таблицы отдельными запросами, потом делаете результирующий
  • https://t.me/clickhouse_ru
    @tommi_v #44107 12:07 PM, 02 Mar 2018
    понял, попробую, спасибо
  • https://t.me/clickhouse_ru
    @Shegloff #44108 12:07 PM, 02 Mar 2018
    на ту тачку, с которой идут http-запросы, нельзя клиент установить?
  • https://t.me/clickhouse_ru
    @tommi_v #44109 12:07 PM, 02 Mar 2018
    мне программно надо
  • https://t.me/clickhouse_ru
    @tommi_v #44110 12:08 PM, 02 Mar 2018
    клиентом я пользовался пока запрос составлял
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44107 #44111 12:09 PM, 02 Mar 2018
    Там нужно будет к GET-запросу добавить параметр session_id
  • @antonio_antuan #44112 12:09 PM, 02 Mar 2018
    а программно несколько запросов нельзя отправлять?
  • @antonio_antuan #44113 12:09 PM, 02 Mar 2018
    по очереди
  • https://t.me/clickhouse_ru
    @tommi_v #44114 12:10 PM, 02 Mar 2018
    можно, но вот выше пишут, нужно передавать сессию
  • https://t.me/clickhouse_ru
    @tommi_v #44115 12:10 PM, 02 Mar 2018
    интересно, умеет ли это нодовский клиент
  • @antonio_antuan #44116 12:11 PM, 02 Mar 2018
    упустил =\
  • https://t.me/clickhouse_ru
    @timkukskiy #44117 12:17 PM, 02 Mar 2018
    Можно ли установить clickhouse на ubuntu под windows 10 поиграться?
  • https://t.me/clickhouse_ru
    @egorist ↶ Reply to #44117 #44118 12:19 PM, 02 Mar 2018
    я ставил, но были проблемы с временной зоной
  • https://t.me/clickhouse_ru
    @egorist #44119 12:20 PM, 02 Mar 2018
    в локали не было зоны, пришлось ручками добавить
  • https://t.me/clickhouse_ru
    @negasus #44120 12:20 PM, 02 Mar 2018
    Господа, а как узнать размер на диске materialized view?
  • https://t.me/clickhouse_ru
    root@guest:~# clickhouse-client
    ClickHouse client version 1.1.54198.
    Connecting to localhost:9000.
    Code: 210. DB::NetException: Connection refused: (localhost:9000, 127.0.0.1)
    Вот такая ошибка возникает. По загубленным данным менял listen host с ::1 на ::, но все равно не запускается
  • https://t.me/clickhouse_ru
    @mrlamberg #44122 12:22 PM, 02 Mar 2018
    может проще докер поставить?
  • https://t.me/clickhouse_ru
    @mrlamberg #44123 12:22 PM, 02 Mar 2018
    чем разбиратся с этим
  • https://t.me/clickhouse_ru
    @mainnika ↶ Reply to #44121 #44124 12:23 PM, 02 Mar 2018
    А сервер-то запустился?
  • https://t.me/clickhouse_ru
    @timkukskiy #44125 12:23 PM, 02 Mar 2018
    Да
  • https://t.me/clickhouse_ru
    @mainnika #44126 12:23 PM, 02 Mar 2018
    Через nc дает доступ? nc -v 127.0.0.1 9000
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44120 #44127 12:23 PM, 02 Mar 2018
    SELECT
    formatReadableSize(sum(bytes))
    FROM system.parts
    WHERE database = 'ВАША БД'
    AND table = 'ВАША ТАБЛИЦА'
    или через du посмотреть в /var/lib/clickhouse/data
  • https://t.me/clickhouse_ru
    @negasus ↶ Reply to #44127 #44128 12:23 PM, 02 Mar 2018
    Вот тут то как раз почему то их нет
  • https://t.me/clickhouse_ru
    @negasus #44129 12:24 PM, 02 Mar 2018
    точнее есть, но не сами вьюхи, а начинающееся с .inner
  • https://t.me/clickhouse_ru
    Как буду рядом с компом попробую
  • https://t.me/clickhouse_ru
    @negasus #44131 12:24 PM, 02 Mar 2018
    Или это оно и есть?
  • https://t.me/clickhouse_ru
    @kshvakov #44132 12:24 PM, 02 Mar 2018
    Это и есть оно
  • https://t.me/clickhouse_ru
    @negasus #44133 12:24 PM, 02 Mar 2018
    А то, что в show tables есть и просто вьюхи с названиями и они же с .inner - это норм?
  • @kochetovnicolai #44134 12:25 PM, 02 Mar 2018
    да, это нормально
  • https://t.me/clickhouse_ru
    @negasus #44135 12:26 PM, 02 Mar 2018
    Ага, спасибо.
  • @kochetovnicolai #44136 12:26 PM, 02 Mar 2018
    в system.parts тоже имена с inner
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44133 #44137 12:26 PM, 02 Mar 2018
    CREATE MATERIALIZE VIEW создает обычную таблицу в которой будет хранить данные, просто к названию view добавляет .inner.
  • https://t.me/clickhouse_ru
    @negasus #44138 12:26 PM, 02 Mar 2018
    Ну я о том, что в system.parts нет имен без .inner. а в выводе show tables есть
  • https://t.me/clickhouse_ru
    @negasus #44139 12:27 PM, 02 Mar 2018
    То есть в show tables просто для удобства добавляются имена без .inner?
  • https://t.me/clickhouse_ru
    @Shegloff #44140 12:27 PM, 02 Mar 2018
    считайте, что просто вьюха - это как mysql-триггер, а inner - это и есть таблица с данными :)
  • https://t.me/clickhouse_ru
    @Shegloff #44141 12:27 PM, 02 Mar 2018
    это inner-таблицу и проальтерить можно, и данные в нее сунуть
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44139 #44142 12:28 PM, 02 Mar 2018
    Не совсем для удобства, просто когда вы делаете тот же SELECT * FROM materialize.view таблицу искать где-то надо
  • https://t.me/clickhouse_ru
    @negasus #44144 12:28 PM, 02 Mar 2018
    Да, ясно. Спасибо
  • https://t.me/clickhouse_ru
    @Valenvaryon #44145 12:29 PM, 02 Mar 2018
    При репликации странная ошибка: [ 22 ] <Error> DB::StorageReplicatedMergeTree::queueTask()::<lambda(DB::StorageReplicatedMergeTree::LogEntryPtr&)>: Code: 33, e.displayText() = DB::Exception: Cannot read all data, e.what() = DB::Exception, Stack trace:
  • https://t.me/clickhouse_ru
    @Valenvaryon #44146 12:29 PM, 02 Mar 2018
    что это может быть?
  • https://t.me/clickhouse_ru
    @Valenvaryon #44147 12:29 PM, 02 Mar 2018
  • https://t.me/clickhouse_ru
    @Shegloff #44148 12:30 PM, 02 Mar 2018
    что-то урл не открывается )))
  • а реплики одинаковой версии?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @Valenvaryon #44151 12:33 PM, 02 Mar 2018
    сейчас посмотрю
  • https://t.me/clickhouse_ru
    все один к одному
  • https://t.me/clickhouse_ru
    @Valenvaryon #44153 12:34 PM, 02 Mar 2018
    как будто данные виноваты
  • @kochetovnicolai #44154 12:36 PM, 02 Mar 2018
    да. очень похоже, будто кусок не до конца вычитывается
  • https://t.me/clickhouse_ru
    @Valenvaryon #44155 12:36 PM, 02 Mar 2018
    на обоих серверах такие ошибки
  • https://t.me/clickhouse_ru
    @Valenvaryon #44156 12:41 PM, 02 Mar 2018
    попробую рестартануть, есть идея, что сломались из-за обновления железа на одной из машин
  • https://t.me/clickhouse_ru
    @Valenvaryon #44157 12:49 PM, 02 Mar 2018
    да, рестарт помог, походу одна реплика запомнила неправильный ip другой
  • @kochetovnicolai #44158 12:54 PM, 02 Mar 2018
    отлично!
  • @saamich #44159 12:57 PM, 02 Mar 2018
    доброгов времени суток, есть таблица, над ней есть materialized view (с именем metric) - задача почистить данные с таблицы старше N месяцев. С самой таблицей все понятно- делаем drop на партицию, а вот с представлением проблемы - активные партиции показывает только при использовнаии в запросе имении .inner.metric и alter drop partition с не проходит не с самого представленя - metric ни с .inner.metric. Как то можэно чистить данные с материализованного представления? (без drop table)
  • https://t.me/clickhouse_ru
    @kshvakov #44160 12:58 PM, 02 Mar 2018
    С inner должно работать, это обычная таблица
  • @saamich #44162 01:01 PM, 02 Mar 2018
    но не работает
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44162 #44163 01:03 PM, 02 Mar 2018
    Таблицу в двойные кавычки возьмите
  • @saamich #44164 01:04 PM, 02 Mar 2018
    хм, прошло- спасибо
  • https://t.me/clickhouse_ru
    @tommi_v ↶ Reply to #44111 #44165 01:26 PM, 02 Mar 2018
    что-то у меня не особо получилось
  • https://t.me/clickhouse_ru
    @tommi_v #44166 01:26 PM, 02 Mar 2018
    > In contrast to the native interface, the *HTTP interface does not support the concept of sessions or session settings*, does not allow aborting a query (to be exact, it allows this in only a few cases), and does not show the progress of query processing.
  • https://t.me/clickhouse_ru
    @tommi_v #44167 01:26 PM, 02 Mar 2018
    в доке
  • https://t.me/clickhouse_ru
    @tommi_v #44168 01:26 PM, 02 Mar 2018
    а при попытке передать какой-нибудь session_id приходит эксепшен "There is no session"
  • https://t.me/clickhouse_ru
    @hulponot #44169 01:29 PM, 02 Mar 2018
    а какая версия?
  • https://t.me/clickhouse_ru
    @hulponot #44170 01:29 PM, 02 Mar 2018
    1.1.54245, 2017-07-04
    с этой и больше надо
  • https://t.me/clickhouse_ru
    @tommi_v #44171 01:42 PM, 02 Mar 2018
    SELECT version()

    ┌─version()─┐
    │ 1.1.54342 │
    └───────────┘
  • https://t.me/clickhouse_ru
    @tommi_v #44172 01:42 PM, 02 Mar 2018
    может ее инициировать как-то надо сначала?
  • https://t.me/clickhouse_ru
    @tommi_v #44173 01:42 PM, 02 Mar 2018
    в доке просто ничего про это нет
  • https://t.me/clickhouse_ru
    @tommi_v #44174 01:43 PM, 02 Mar 2018
    даже наоборот, ну я выше скинул
  • https://t.me/clickhouse_ru
    @tommi_v #44176 01:45 PM, 02 Mar 2018
    спасибо, поковыряю
  • https://t.me/clickhouse_ru
    @PolyakovAV #44177 01:46 PM, 02 Mar 2018
    как-то можно ограничить размер куска, чтобы не мержило большие куски? в доке не нашёл такой настройки
  • @kochetovnicolai #44178 01:47 PM, 02 Mar 2018
    есть настройка max_bytes_to_merge_at_max_space_in_pool
  • https://t.me/clickhouse_ru
    @PolyakovAV #44179 01:47 PM, 02 Mar 2018
    она там выставлена в 150гб, а у меня создало кусок в 220гб
  • @kochetovnicolai #44180 01:50 PM, 02 Mar 2018
    странно. а руками при создании таблицы это значение не менялось?
  • @kochetovnicolai #44181 01:53 PM, 02 Mar 2018
    в show create table эти настройки показываются, если они изменялись при создании
  • https://t.me/clickhouse_ru
    @tommi_v ↶ Reply to #44168 #44182 01:55 PM, 02 Mar 2018
    все работало правильно, я просто немного мудак и не разобрался в интерфейсе либы
  • https://t.me/clickhouse_ru
    @tommi_v #44183 01:55 PM, 02 Mar 2018
    в результате до CH айди сессии просто не доходил
  • @70532431 #44184 02:09 PM, 02 Mar 2018
    Кому-нибудь знакома такая проблема, когда при INSERT-e данных на шарды через Distributed таблицу даже минимальные файлы csv по 500м кушают по 30 гигов RAM и сообщают об ошибке?

    2018.03.02 17:05:21.955651 [ 17 ] <Error> executeQuery: Code: 241, e.displayText() = DB::Exception: Memory limit (for query) exceeded: would use 27.94 GiB (attempt to allocate chunk of 8388608 bytes), maximum: 27.94 GiB, e.what() = DB::Exception (from 192.168.10.132:56482)

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

    CREATE TABLE IF NOT EXISTS distributedbd.ppitest_sharded (
    ...
    REC_DATE Date DEFAULT toDate(FLOW_END)
    ) ENGINE = ReplicatedMergeTree('/clickhouse/{cluster}/tables/shard-{shard}/ppitest_sharded', '{replica}', REC_DATE, (...), 8192);
  • @kochetovnicolai #44185 02:13 PM, 02 Mar 2018
    при вставке в обычный MergeTree сколько памяти уходит?
  • @kochetovnicolai #44186 02:14 PM, 02 Mar 2018
    и сколько реплик в Distributed таблице? возможно, блок размножается на каждую.
  • @70532431 #44187 02:17 PM, 02 Mar 2018
    >при вставке в обычный MergeTree сколько памяти уходит?
    Я не замерял, но датасет с теми же данными на 10Г залетел в standalone MergeTree с такой же схемой без проблем при RAM 8G на сервере. Уже после того, как столкнулся с данной ошибкой, накинул на ноды 32Г, всё равно та же проблема, сколько лимит не повышай. Уменьшил вот split-ом файл до 500М для тестов.
    >и сколько реплик в Distributed таблице? возможно, блок размножается на каждую.
    3 шарда, каждый шард имеет по одной реплике.
  • @kochetovnicolai #44188 02:19 PM, 02 Mar 2018
    есть возможность прислать данные и схему таблиц?
  • @70532431 #44189 02:21 PM, 02 Mar 2018
    да, в личные сообщения можно?
  • @kochetovnicolai #44190 02:22 PM, 02 Mar 2018
    да, конечно
  • @416221832 #44191 02:27 PM, 02 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @tatyana_khoreva #44192 02:29 PM, 02 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @mvikharev #44193 03:26 PM, 02 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @ka_ktus #44195 03:45 PM, 02 Mar 2018
    Похоже, наткнулся на утечку памяти в go либе kshvakov/clickhouse.
    Течёт память, если на стороне CH произошла ошибка (например, вставка невалидного значения). И либа не освобождает какие-то ресурсы.
  • https://t.me/clickhouse_ru
    а сделайте issue ? есть какой то код для reproduce?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44195 #44197 03:47 PM, 02 Mar 2018
    На выходных посмотрю
  • https://t.me/clickhouse_ru
    @ka_ktus #44198 03:48 PM, 02 Mar 2018
    Да, попробую воспроизвести в тесте.
  • https://t.me/clickhouse_ru
    @ka_ktus #44199 03:49 PM, 02 Mar 2018
    В профайлере так
    flat flat% sum% cum cum%
    48.02MB 35.29% 35.29% 48.02MB 35.29% bufio.NewReaderSize (inline)
    29.86MB 21.95% 57.24% 29.86MB 21.95% github.com/kshvakov/clickhouse/lib/writebuffer.(*WriteBuffer).addChunk
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44195 #44200 03:52 PM, 02 Mar 2018
    Сделайте пример для воспроизведения, просто не очень понятно про невалидные значения, как они вообще до КХ доезжают?
  • https://t.me/clickhouse_ru
    @ka_ktus #44201 03:54 PM, 02 Mar 2018
    Да, чуть позже попробую сделать, чтобы воспроизводилось.
    Невалидные - например, если поле NOT NULL, а мы вставляем NULL.
  • https://t.me/clickhouse_ru
    @kshvakov #44202 03:56 PM, 02 Mar 2018
    Да, такой кейс я точно не проверял, у нас нет NULL )
  • https://t.me/clickhouse_ru
    @aloneibreak #44205 05:53 PM, 02 Mar 2018
    подскажите а есть ли способ при выборке count() с группировкой по дате получить 0 для пустых дней, вместо пропущенных строк в результате?
  • https://t.me/clickhouse_ru
    @aloneibreak #44206 05:54 PM, 02 Mar 2018
    вместо
    20180102 1
    20180104 1
    получить
    20180102 1
    20180103 0
    20180104 1
  • Есть вариант, но он крайне навороченный...нужно взять минимальную дату, максимальную, найти между ними разницу в днях, сделать массив длинной в полученную разницу, разложить на строки таким образом, что бы получилось в каждой строке: минимальная дата + индекс массива (по сути кол-во дней), затем это все приджоинить к запросу который группирует по датам
  • https://t.me/clickhouse_ru
    @aloneibreak #44208 06:03 PM, 02 Mar 2018
    жесть =)
  • @pookieShmukie #44209 06:03 PM, 02 Mar 2018
    Я так делал для подсчета кол-ва просмотров каждой секунды видео :) только группировка была по секундам
  • https://t.me/clickhouse_ru
    @Ed_90 #44210 07:00 PM, 02 Mar 2018
    Всем привет!
    Кто нибудь использует https://github.com/mymarilyn/clickhouse-driver/ (драйвер для Python)?
    GitHub - mymarilyn/clickhouse-driver: ClickHouse Python Driver with native interface support

    ClickHouse Python Driver with native interface support - GitHub - mymarilyn/clickhouse-driver: ClickHouse Python Driver with native interface support

  • https://t.me/clickhouse_ru
    @Ed_90 #44211 07:05 PM, 02 Mar 2018
    то там кажется не работают nested поля ... (вставка значений в эти поля)
  • https://t.me/clickhouse_ru
    @ka_ktus ↶ Reply to #44200 #44212 07:30 PM, 02 Mar 2018
    https://github.com/kshvakov/clickhouse/issues/93
    Память не освобождается в тех случаях, когда используется транзакция и транзакция не завершается коммитом или роллбэком (а делается выход из функции вставки [например, при ошибке]).
    Memory leak in case of error from Clickhouse #93

    In case of Clickhouse error, we got unfreed memory, because of uncommited transaction handler. Reproduce example package main import ( "database/sql" "fmt" "time" _ "github.com/kshvakov/click...

  • https://t.me/clickhouse_ru
    @tkostyan ↶ Reply to #44211 #44213 07:31 PM, 02 Mar 2018
    Нестед поля не работают, да. Создайте issue. Как руки дойдут — сделаем. В последнее время со временем туго
  • https://t.me/clickhouse_ru
    Помоему для го это как раз правильно - деструторов ведь нет, нужно самому делать чтото по завершении транзакции, даже при ошибке
  • https://t.me/clickhouse_ru
    @IlyaSinelnikov #44218 07:43 PM, 02 Mar 2018
    В плюсах конечно деструктор роллбек сделает
  • https://t.me/clickhouse_ru
    @IlyaSinelnikov #44219 07:43 PM, 02 Mar 2018
    А в го дефер
  • https://t.me/clickhouse_ru
    @ka_ktus #44220 07:47 PM, 02 Mar 2018
    Это согласен, только проблема в том, что после ошибки CH - tx становится недоступен и роллбэк не получается сделать :)
  • https://t.me/clickhouse_ru
    @ka_ktus #44221 07:48 PM, 02 Mar 2018
    Ну или я не понял как.
  • https://t.me/clickhouse_ru
    @IlyaSinelnikov #44222 07:49 PM, 02 Mar 2018
    Недоступен в каком смысле? Инстанс есть, доступен
  • https://t.me/clickhouse_ru
    @IlyaSinelnikov #44223 07:49 PM, 02 Mar 2018
    В ифе с ошибкой
  • https://t.me/clickhouse_ru
    @ka_ktus #44224 07:51 PM, 02 Mar 2018
    При попытке tx.Rollback() после ошибки выдаёт сегментейшен фолт.
  • https://t.me/clickhouse_ru
    @IlyaSinelnikov #44225 07:52 PM, 02 Mar 2018
    Аааа
  • https://t.me/clickhouse_ru
    @IlyaSinelnikov #44226 07:52 PM, 02 Mar 2018
    Я бы тогда это в issue уточнил
  • https://t.me/clickhouse_ru
    @IlyaSinelnikov #44227 07:52 PM, 02 Mar 2018
    А то не понятно было
  • https://t.me/clickhouse_ru
    @ka_ktus #44228 07:52 PM, 02 Mar 2018
    Спасибо, поправлю.
  • https://t.me/clickhouse_ru
    @baltazorbest #44229 07:53 PM, 02 Mar 2018
    Приветствую, такой странный вопрос, можно ли как то старые данные переносить автоматом на другой сторедж? Например данные страрше пол года переносить на другой диск. Спасибо.
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #44229 #44230 08:01 PM, 02 Mar 2018
    Автоматически такого нет. Но технически отцепить партицию и перенести на другой хост можно без особых проблем.
    Механизма вроде tablespace на сколько я знаю, как минимум пока, нет.
  • https://t.me/clickhouse_ru
    @baltazorbest #44231 08:01 PM, 02 Mar 2018
    но при детач партиции на сколько я понимаю по ней данных уже нельзя получить?
  • https://t.me/clickhouse_ru
    @stufently #44232 08:02 PM, 02 Mar 2018
    Мне кажется через реплики это безопаснее сделать
  • https://t.me/clickhouse_ru
    @baltazorbest #44233 08:07 PM, 02 Mar 2018
    а как через реплику можно разделить данные? я пока не могу это представить
  • https://t.me/clickhouse_ru
    @stufently #44234 08:08 PM, 02 Mar 2018
    Ну изначально их делите в шардах по времени
  • https://t.me/clickhouse_ru
    @stufently #44236 08:09 PM, 02 Mar 2018
    Если вы их можете через партиции доставать
  • https://t.me/clickhouse_ru
    @baltazorbest #44237 08:11 PM, 02 Mar 2018
    хм, спасибо подумаю над такой схемой деления
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44217 #44238 09:33 PM, 02 Mar 2018
    Нет, это баг, там в случае ошибки нужно буферы сданными обнулять. Другая проблема что если не завершать "транзакцию" то стандартная библиотека не будет возвращать соединение в пул и все равно расход памяти будет расти, т.к. бедет плодиться новые соединения
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #44205 #44239 11:01 PM, 02 Mar 2018
    Немного наркомании
    :) select day, count() from test.huest group by day

    ┌────────day─┬─count()─┐
    │ 2018-02-21 │ 1 │
    │ 2018-03-03 │ 1 │
    └────────────┴─────────┘

    :) select day, sum(c) as count from (select day, count() as c from test.huest group by day) ALL RIGHT JOIN (select day, c from (select toDate('1970-01-01') + number as day, 0 as c from system.numbers limit 30000) where day between (select min(day) from test.huest) and (select max(day) from test.huest)) USING(day) group by day

    ┌────────day─┬─count─┐
    │ 2018-02-21 │ 1 │
    │ 2018-02-22 │ 0 │
    │ 2018-02-23 │ 0 │
    │ 2018-02-24 │ 0 │
    │ 2018-02-25 │ 0 │
    │ 2018-02-26 │ 0 │
    │ 2018-02-27 │ 0 │
    │ 2018-02-28 │ 0 │
    │ 2018-03-01 │ 0 │
    │ 2018-03-02 │ 0 │
    │ 2018-03-03 │ 1 │
    └────────────┴───────┘
  • 03 March 2018 (38 messages)
  • https://t.me/clickhouse_ru
    @narmaru #44240 12:02 AM, 03 Mar 2018
    Упрлс нмншк
  • https://t.me/clickhouse_ru
    NYEPLOHO
  • https://t.me/clickhouse_ru
    @openbsod ↶ Reply to #44239 #44242 01:03 AM, 03 Mar 2018
    Белая зависть)
  • Аналогичный подход описан выше :) только в вашем случае используется system.numbers.
  • @pavel_maksimow #44244 06:27 AM, 03 Mar 2018
    Всем привет. КХ упал и не поднимается. Ошибка вот такая. Подскажите, что нужно исправить?
    перезагрузка сервера не помогла
  • @Lamobot #44245 07:10 AM, 03 Mar 2018
    Не видно самой ошибки, сделайте tail -n 50 хотя бы
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #44243 #44246 07:44 AM, 03 Mar 2018
    Ваш подход и вдохновил на свершения :)
  • Спасибо ) Ваш выглядит попроще, без массивов)
  • @70532431 #44248 09:01 AM, 03 Mar 2018
    Удалось локализовать проблему - видимо, память утекает при работе функции cityHash64, если в движке Distributed использовать. Поменял на rand() - успешно произошёл импорт на шарды.

    CREATE TABLE distributedbd.ppitest_datagate AS distributedbd.ppitest_sharded ENGINE = Distributed( odissey, distributedbd, ppitest_datagate , rand() ); @kochetovnicolai
  • @70532431 #44249 09:01 AM, 03 Mar 2018
    Кому-нибудь знакома такая проблема, когда при INSERT-e данных на шарды через Distributed таблицу даже минимальные файлы csv по 500м кушают по 30 гигов RAM и сообщают об ошибке?

    2018.03.02 17:05:21.955651 [ 17 ] <Error> executeQuery: Code: 241, e.displayText() = DB::Exception: Memory limit (for query) exceeded: would use 27.94 GiB (attempt to allocate chunk of 8388608 bytes), maximum: 27.94 GiB, e.what() = DB::Exception (from 192.168.10.132:56482)

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

    CREATE TABLE IF NOT EXISTS distributedbd.ppitest_sharded (
    ...
    REC_DATE Date DEFAULT toDate(FLOW_END)
    ) ENGINE = ReplicatedMergeTree('/clickhouse/{cluster}/tables/shard-{shard}/ppitest_sharded', '{replica}', REC_DATE, (...), 8192);
  • @yurifal #44250 10:36 AM, 03 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @arduanov #44251 11:43 AM, 03 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @arduanov #44252 11:50 AM, 03 Mar 2018
    Привет всем. Cобрал Кликхаус под мак Sierra и High Sierra, установка через brew. Может кому пригодится)
    https://github.com/arduanov/homebrew-clickhouse
    GitHub - arduanov/homebrew-clickhouse: ClickHouse for MacOS Sierra and High Sierra.

    ClickHouse for MacOS Sierra and High Sierra. Contribute to arduanov/homebrew-clickhouse development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    👍
  • https://t.me/clickhouse_ru
    @149051052 #44254 04:15 PM, 03 Mar 2018
    Добрый день!
    Есть ли возможность в CH отправлять запрос в MySQL для включения результата в JOIN?
    Словарь не подходит, так как каждая размер талицы в MySQL большой и постоянно меняется.
  • Есть новый движок - MySQL. ENGINE = mysql(host_port, database_name, table_name, user_name, password)
  • https://t.me/clickhouse_ru
    Огромная благодароность!
  • Таблицы с этим движком read only. Так, на всякий случай :)
  • https://t.me/clickhouse_ru
    @149051052 #44258 04:36 PM, 03 Mar 2018
    Да, то что нужно)
  • Супер!
  • https://t.me/clickhouse_ru
    @mrlamberg #44260 04:37 PM, 03 Mar 2018
    а вместо mysql постгрес в него нельзя подставить?)
  • Не знаю. Попробуйте :)
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #44257 #44262 04:42 PM, 03 Mar 2018
    Вааа как круто. Надо и правда pg попробовать.
  • На счет PG не уверен. У них не разные протоколы?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #44263 #44264 04:47 PM, 03 Mar 2018
    я думаю что да. В PG обычно по odbc ходят. Но вдруг)
  • @pookieShmukie #44265 04:47 PM, 03 Mar 2018
    Знаю, что например с mysql движком можно и sphinx подключить, т.к. он реализует протокол mysql, а вот на счет PG не уверен
  • @pookieShmukie #44266 04:48 PM, 03 Mar 2018
    Вобщем если получится проверить, то было бы супер узнать о результатах :) Мы планируем съехать на PG в какой то момент
  • https://t.me/clickhouse_ru
    @kron4eg #44271 05:07 PM, 03 Mar 2018
    Хорошая платформа для инвестиций видимо, раз считает приемлемым тупейший спам
  • https://t.me/clickhouse_ru
    @ivmaks #44273 05:37 PM, 03 Mar 2018
    Там вроде odbc было заявлено
  • https://t.me/clickhouse_ru
    @proller #44274 05:39 PM, 03 Mar 2018
    У pg точно свой протокол и его пока никто не прикрутил
  • https://t.me/clickhouse_ru
    @rheinx #44275 05:44 PM, 03 Mar 2018
    Я pull нашел. Тока доков нет(((
    https://github.com/yandex/ClickHouse/pull/1572
    Там и mysql и odbc
    Implemented MySQL and ODBC table engines. by aavdonkin · Pull Request #1572 · yandex/ClickHouse

    Implemented MySQL and ODBC storages; implemented mysql and odbc table functions

  • https://t.me/clickhouse_ru
    @rheinx #44276 05:45 PM, 03 Mar 2018
    @FacedSID ^
  • https://t.me/clickhouse_ru
    @artem1406 #44277 07:12 PM, 03 Mar 2018
    Подскажите пожалуйста, есть ли движок для postgres?
  • @pavel_maksimow #44278 07:16 PM, 03 Mar 2018
    Нашел баг. Создал таблицу из словаря командой:
    CREATE TABLE %table_name% (%fields%) engine = Dictionary(%dictionary_name%)
    Изменил конфиг словаря(например смена типа) и при перезапуске, КХ перестает запускаться т.к. КХ активирует таблицы командой ATTACH:
    ATTACH TABLE direct_retargeting_attribut
    (
    AudienceId UInt64,
    Name String,
    IsAvailable String,
    Description String,
    Scope String,
    AccountId UInt64,
    AccountName String
    )
    ENGINE = Dictionary(hrukmuh_direct_retargeting)

    а тут конфиг активации таблицы не меняется.
  • не умею в плюсы, но в изменениях есть вот это:

    +/** Implements storage in the ODBC database.
    + * Use ENGINE = odbc(odbc connection string, table name)
    + Example ENGINE = odbc('dsn=test', table)
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #44279 #44280 07:37 PM, 03 Mar 2018
    Да, просто видимо это еще не в релизе((

    CREATE TABLE products_ext
    (
    title String
    )
    ENGINE = odbc('dsn=mydsn', products)

    Received exception from server (version 1.1.54292):
    Code: 56. DB::Exception: Received from clickhouse-test:9000, 127.0.1.1. DB::Exception: Unknown storage odbc.
  • https://t.me/clickhouse_ru
    @ivmaks ↶ Reply to #44280 #44281 10:07 PM, 03 Mar 2018
    попробуй
    ENGINE = ODBC('dsn=mydsn', products)
    такое впечатление что оно регистрозависимо
  • https://t.me/clickhouse_ru
    @volday #44282 10:11 PM, 03 Mar 2018
    Joined.
  • 04 March 2018 (63 messages)
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #44281 #44284 12:13 AM, 04 Mar 2018
    Неа, видимо еще не врелизе. У меня версия с deb репозитория
  • https://t.me/clickhouse_ru
    @ivmaks #44285 12:14 AM, 04 Mar 2018
    У меня тоже, с мускулем заработало когда написал MySQL
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #44285 #44286 12:21 AM, 04 Mar 2018
    Какая версия?
  • https://t.me/clickhouse_ru
    @ivmaks #44287 12:22 AM, 04 Mar 2018
    Не помню, вчера из деб репозитория ставил для экспериментов
  • https://t.me/clickhouse_ru
    @ivmaks #44288 12:22 AM, 04 Mar 2018
    Под 16.04
  • https://t.me/clickhouse_ru
    @ivmaks #44289 12:24 AM, 04 Mar 2018
    Даже памятку себе написал
  • https://t.me/clickhouse_ru
    @ivmaks #44290 12:24 AM, 04 Mar 2018
    ClickHouse from mysql

    Maksim Ридонли вьюшка из мускуля: CREATE TABLE testdata(   ID Int32,   TEXT String )ENGINE = MySQL(host:port, database_name, table_name, user_name, password); Как это происходит (MySQL пока нужно писать именно так)

  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #44290 #44291 12:34 AM, 04 Mar 2018
    Огонь, спасибо. Завтра буду разбираться
  • @70532431 #44292 10:37 AM, 04 Mar 2018
    Кто-нибудь может пояснить, зачем Clickhouse для ReplicatedMergeTree в режиме 3 шарда по 2 реплики создаёт на каждом серврере какие-то бинарники в папках с хостами каждой ноды, и вес этих бинарников больше импортируемого несжатого файла с данными?
    Сжатие включено zstd на каждой из 6 нод, был на одну ноду в Distibuted импортирован файл 10G.

    root@ch-node-4:/var/lib/clickhouse/data/distributedbd/ppitest_datagate# ls -l
    total 144304
    drwxr-xr-x 3 clickhouse clickhouse 33476608 Mar 4 05:34 default@192%2E168%2E10%2E129:9000
    drwxr-xr-x 3 clickhouse clickhouse 28807168 Mar 4 05:34 default@192%2E168%2E10%2E130:9000
    drwxr-xr-x 2 clickhouse clickhouse 27439104 Mar 4 05:34 default@192%2E168%2E10%2E132:9000
    drwxr-xr-x 3 clickhouse clickhouse 29003776 Mar 4 05:34 default@192%2E168%2E10%2E134:9000
    drwxr-xr-x 2 clickhouse clickhouse 28667904 Mar 4 05:34 default@192%2E168%2E10%2E135:9000
    root@ch-node-4:/var/lib/clickhouse/data/distributedbd/ppitest_datagate# du . -hx --max-depth=1 2> /dev/null
    4.9G ./default@192%2E168%2E10%2E134:9000
    34M ./default@192%2E168%2E10%2E135:9000
    5.7G ./default@192%2E168%2E10%2E129:9000
    4.6G ./default@192%2E168%2E10%2E132:9000
    273M ./default@192%2E168%2E10%2E130:9000
    16G .
  • @70532431 #44293 10:37 AM, 04 Mar 2018
    ppitest_datagate - имя таблицы Distributed. Как-то плюс очень активно кушаются inodes, это напрягает.
  • @nickname909 #44294 10:53 AM, 04 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @webmaks #44295 11:48 AM, 04 Mar 2018
    Привет.
    Не подскажите как перенести одну базу данных с одного CH сервера на другой? Репликация не настроена, но там куда будет пернесена база планируется настроить реприкацию этой базы с другим, 3-м сервером
  • https://t.me/clickhouse_ru
    @webmaks #44296 11:49 AM, 04 Mar 2018
    Какой besh practics будет в данном случае?
  • https://t.me/clickhouse_ru
    @stufently #44297 12:00 PM, 04 Mar 2018
    Ну можно тупо дамп импорт если не сильно нужен онлайн
  • https://t.me/clickhouse_ru
    https://clickhouse.yandex/docs/ru/query_language/queries/#_5
    - бекап (FREEZE PARTITION)
    - перенос бекапа в БД на другом сервере
    - создание точно такой же таблицы, но с указанием репликации
    - подключение ранее сделанного бекапа в таблицу с репликацией (ATTACH PARTITION)
  • @milovidov_an #44299 12:06 PM, 04 Mar 2018
    Добрый день!
    Кто занимается разработкой Engine MySQL?
    Вопрос в следующем: можно ли ожидать, что в будущей версии LIKE так же будут обрабатываться на стороне MySQL так же как и "="?
    Пример: WHERE url LIKE '...' - выполняется на локальной машине, из-за чего по каналу между серверами перегоняется много ненужных данных, которые можно было бы отсечь, если бы LIKE / REGEXP / IN выполнялись на стороне MySQL.
  • @milovidov_an #44300 12:06 PM, 04 Mar 2018
    Добрый день. В данный момент никто не занимается - остались простые задачи по доработке, которые хотелось бы как-то между делом реализовать. Там три пункта: поддержка не только констант, но и константных выражений в условиях, которые передаются на удалённые серверы (например, x = today() - должно вычисляться и передаваться); поддержка IN и LIKE; интеграционные тесты.
  • @70532431 ↶ Reply to #44292 #44301 12:14 PM, 04 Mar 2018
    Решилось установкой параметра internal_replication в true для шард и рестартом серверов. В документации очень блекло написано и сходу непонятно, к чему этот параметр и чем он грозит, когда Destributed пишет в Replicated, пока на практике не столкнёшься...
  • https://t.me/clickhouse_ru
    @webmaks ↶ Reply to #44298 #44302 12:35 PM, 04 Mar 2018
    1. freeze partition не заблокирует ли запись в эту базу?
    2. Перенос бэкапа в БД на другом сервере - это просто rsync каких-то каталогов?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #44302 #44303 12:37 PM, 04 Mar 2018
    Если верно помню, это нечто вроде снапшота текущей патриции в папку с бекапом
  • https://t.me/clickhouse_ru
    Все верно, запись блокироваться не будет
  • https://t.me/clickhouse_ru
    @AlexanderBurmak #44305 01:10 PM, 04 Mar 2018
    https://clickhouse.yandex/docs/ru/query_language/queries/
    Создание бэкапа происходит почти мгновенно (но сначала дожидается окончания выполняющихся в данный момент запросов к соответствующей таблице). Бэкап изначально не занимает места на диске. При дальнейшей работе системы, бэкап может отнимать место на диске, по мере модификации данных. Если бэкап делается для достаточно старых данных, то он не будет отнимать место на диске.
  • https://t.me/clickhouse_ru
    @webmaks #44307 02:29 PM, 04 Mar 2018
    Ога, спасибо, вроде разобрался. Бэкап сделал. Теперь на новом сервере необходимо создать табличку, но там она уже будет учавствовать в репликации. Установил и запустил zookeeper теперь нужно для таблички указать параметры движка. Выбрал для этого ReplicatedMergeTree. Но вот теперь немного непонятно с макросами. Мне на обоих серверах CH в config указать нужно два одинаковым макроса или на одном макрос удаленного сервера, а на удаленном макрос текущего?
    <macros>
    <shard>01</shard>
    <replica>server-1.yandex.ru</replica>
    </macros>
    <macros>
    <shard>01</shard>
    <replica>server-1</replica>
    </macros>

    И да, я на обоих CH серверах указал два шарда
    <01>
    <shard>
    <replica>
    <host>server-1</host>
    <port>9000</port>
    </replica>
    </shard>
    <shard>
    <replica>
    <host>server-2</host>
    <port>9000</port>
    </replica>
    </shard>
    </ivinco_shard>
  • https://t.me/clickhouse_ru
    Можете попробовать начать с одного шарда и 2 реплик.
    Будет один шард 01 и две реплики:
    - server-01-1
    - server-01-2
    На каждом сервере будет свой <replica>server-01-N</replica>
    Указание "01" в имени реплики - позволит по имени определять, для какого шарда была поднята реплика
  • https://t.me/clickhouse_ru
    @149051052 #44309 02:40 PM, 04 Mar 2018
    Позже можно будет заняться перешардированием и поднятием для них своих реплик
  • https://t.me/clickhouse_ru
    @webmaks #44310 02:42 PM, 04 Mar 2018
    хорошо, благодарю
  • https://t.me/clickhouse_ru
    @webmaks #44311 02:42 PM, 04 Mar 2018
    а по макросам все также остается?
  • https://t.me/clickhouse_ru
    @webmaks #44312 02:42 PM, 04 Mar 2018
    или там только один макрос будет?
  • https://t.me/clickhouse_ru
    Этого достаточно (на каждом сервере разный):
    <macros>
    <shard>01</shard>
    <replica>server-1</replica>
    </macros>

    Это ипользуется в {shard} и {replica} при создании таблицы репликации для zookeeper. В теории можно обойтись и без указания таких макросов

    > '/clickhouse/tables/{shard}/TableName' - взять из макроса
    > '/clickhouse/tables/01/TableName' - без макроса
  • @cosmokit #44316 04:55 PM, 04 Mar 2018
    Здравствуйте. В документации, в разделе "MergeTree в ReplicatedMergeTree" сказано, что можно перенести папки из другой таблицы в detached, а потом сделать поочередный ATTACH к каждой из директорий. Значит ли это, что при файловом бэкапе с помощью rsync, данные из папки таблицы можно использовать в качестве резервной копии ?
  • https://t.me/clickhouse_ru
    @rheinx #44317 05:02 PM, 04 Mar 2018
    Коллеги, а как такое возможно?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @rheinx #44319 05:02 PM, 04 Mar 2018
    apt update && apt upgrade && service clickhouse-server restart сделан
  • https://t.me/clickhouse_ru
    @mrlamberg #44320 05:03 PM, 04 Mar 2018
    может надо не рестарт
  • https://t.me/clickhouse_ru
    @mrlamberg #44321 05:03 PM, 04 Mar 2018
    а стоп и старт
  • https://t.me/clickhouse_ru
    @mrlamberg #44322 05:03 PM, 04 Mar 2018
    у меня в постгре подобное было
  • https://t.me/clickhouse_ru
    +1. Старое доброе админское правило
  • https://t.me/clickhouse_ru
    @rheinx #44324 05:04 PM, 04 Mar 2018
    Не, без изменений
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @mrlamberg #44326 05:04 PM, 04 Mar 2018
    сервер не обновился
  • https://t.me/clickhouse_ru
    @mrlamberg #44327 05:04 PM, 04 Mar 2018
    хз как такое может быть)
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #44328 05:05 PM, 04 Mar 2018
    Так вы клиент тоже обновите. На вашем скрине установка только сервера
  • https://t.me/clickhouse_ru
    @rheinx #44329 05:05 PM, 04 Mar 2018
    Ну да, получается что версия в пакетном менеджере сменилась, а новые бинари не пришли
  • https://t.me/clickhouse_ru
    @mrlamberg #44330 05:05 PM, 04 Mar 2018
    запрос то сервер посылает
  • https://t.me/clickhouse_ru
    @mrlamberg #44331 05:05 PM, 04 Mar 2018
    всмысле ответ на вопрос
  • https://t.me/clickhouse_ru
    @rheinx #44332 05:06 PM, 04 Mar 2018
    Вообще в репах 3 пакета:
    clickhouse-common-dbg/unknown 1.1.54343 amd64
    clickhouse-server-base/unknown,now 1.1.54343 amd64 [installed,automatic]
    clickhouse-server-common/unknown,now 1.1.54343 amd64 [installed]
  • https://t.me/clickhouse_ru
    @rheinx #44333 05:06 PM, 04 Mar 2018
    Ну и при коннекте видно что сервер старой версии, а клиент новой
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @rheinx #44335 05:12 PM, 04 Mar 2018
    Разобрался. init скрипт почему то не килял процесс. Это странно, потому что установка была полностью штатная apt install /apt update / apt upgrade
  • @70532431 #44336 05:18 PM, 04 Mar 2018
    А Clickhouse все еще обязательно нужно использовать именно DNS имена для репликации, или уже можно IP?
    Версия сервера 1.1.54343

    К проблеме https://groups.google.com/forum/#!topic/clickhouse/RlVBvJD-vtw
  • https://t.me/clickhouse_ru
    Данные из папок таблиц можно копировать, но лучше с отключенным ClickHouse. Лучше копирвоать данные командой FREEZE PARTITION.
  • @cosmokit ↶ Reply to #44337 #44338 06:08 PM, 04 Mar 2018
    А если использовать rsync для бэкапа на удаленном сервере? Теоретически какие могут быть проблемы?
  • https://t.me/clickhouse_ru
    Для переноса данных из папки shadow rsync подойдет.

    Если хотите делать это на живых данных, то лучше этого не делать. ClickHouse постоянно пересобирает куски данных (part) и сортирует данные в партиции последнего месяца (или иного первичного ключа).
  • @cosmokit ↶ Reply to #44339 #44340 06:19 PM, 04 Mar 2018
    Интересно, а почему же прямое копирование подходит в случае преобразования MergeTree в ReplicatedMergeTree?
  • https://t.me/clickhouse_ru
    Там подразумевается прямое копирование при отклчюенной таблице, так как при копировании старая таблица с MergeTree уже считается нерабочей и в нее уже ничего не пишется (ее имя меняется и она отключается). На ее место поднимается новая.
  • https://t.me/clickhouse_ru
    @webmaks #44342 06:25 PM, 04 Mar 2018
    Artemeey а не подскажете еще для восстановления нужно выполнить команду ALTER TABLE ... ATTACH PARTITION YYYYMM, где YYYYMM - месяц, для каждого месяца. А можно wildcard использовть для YYYYMM? А то у меня там очень много месяцев и каждый месяц вставлять не очень удобно.
  • https://t.me/clickhouse_ru
    К сожалению я не знаю такого способа. Но можно сгенерирвоать много запросов и выполнить один раз.

    Про перенос всех файлов из папки detached в рабочую папку с таблицей с отключенным сервером не буду говорить, так как это не рекомендуется.
  • https://t.me/clickhouse_ru
    @webmaks #44344 06:34 PM, 04 Mar 2018
    благодарю за ответ
  • @cosmokit ↶ Reply to #44341 #44345 06:39 PM, 04 Mar 2018
    Понял, благодарю!
  • https://t.me/clickhouse_ru
    @webmaks #44346 07:23 PM, 04 Mar 2018
    Artemeey еще вопрос возник. я все данные импортировал в таблицу, однако, репликация не сработала или вернее сработала как-то половинчато. На втором сервере через репликацию база данных создалась, а табличка нет. Или табличку нужно в любом случае создавать вручную на двух серверах? Zookeeper поднят и работает корректно, в логах кликхауса я вижу, что он успешно видит все 3 сервера zookeepera.
  • https://t.me/clickhouse_ru
    На каждому сервере табилцу с репликой надо поднимать вручную. Она как раз и будет являться отправной точкой связи с zookeeper.
  • https://t.me/clickhouse_ru
    @webmaks #44348 07:26 PM, 04 Mar 2018
    ааа, ок, спасибо
  • https://t.me/clickhouse_ru
    @rheinx #44349 07:47 PM, 04 Mar 2018
    Ребят, а есть возможность из иерархического словаря получить "всех детей уровня Х" ?
  • 05 March 2018 (163 messages)
  • @70532431 #44350 07:55 AM, 05 Mar 2018
    Товарищи, а clickhouse-client в неинтерактивном режиме при INSERT INO (A,B,C,...) ... из TSV, для тестов импорта в Distributed, это вообще нормально?
    Есть ощущение, что таким образом передаётся по одной строке, что противоречит нормальной работе MergeTree, и Clickhouse *очень тормозит*?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44350 #44351 08:00 AM, 05 Mar 2018
    Не должен, размер блока передаваемого на сервер настраивается параметром --max_insert_block_size по умолчанию он равен 1048576
  • https://t.me/clickhouse_ru
    @kshvakov #44352 08:00 AM, 05 Mar 2018
    А вставка в Distributed всегда "тормозит" по сравнению с вставкой напрямую в таблицы
  • https://t.me/clickhouse_ru
    @kshvakov #44353 08:02 AM, 05 Mar 2018
    Кстати, размер пачки вы можете "поймать" в SHOW PROCESSLIST (written_rows)
  • https://t.me/clickhouse_ru
    @nonamehobo #44354 08:15 AM, 05 Mar 2018
    хочу дать chproxy доступ на чтение в определённую бд (allowed databases), но вот вопрос, kill query user должен иметь доступ к system database, я правильно понимаю? и иметь readonly = 0?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44354 #44355 08:20 AM, 05 Mar 2018
    RO могут "килять" только свои запросы, при KILL он, на сколько я помню, ползет в system.processes, но настройки chproxy на это никак не влияют, это внутренняя кухня ClickHouse
  • @343647023 #44356 08:48 AM, 05 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @strangeqargo #44357 09:20 AM, 05 Mar 2018
    насколько разумно менять max_query_size с дефолта в 256 кб на 1мб? я понимаю, что "зависит от запроса", но сама по себе большой запрос не должен КХ взорвать?
  • @70532431 #44358 09:20 AM, 05 Mar 2018
    2018.03.04 23:06:53.872068 [ 9 ] <Error> DDLWorker: Unexpected ZooKeeper error: Code: 999, e.displayText() = zkutil::KeeperException: no node, path: /clickhouse/task_queue/ddl, e.what() = zkutil::KeeperException, Stack trace:

    Значит ли это, что ZK не работает? Такая ошибка в err.log на всех CH - нодах
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #44357 #44359 09:25 AM, 05 Mar 2018
    меняй смело!
  • https://t.me/clickhouse_ru
    !!!
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #44357 #44361 09:27 AM, 05 Mar 2018
    не используй километровые селекты в продакшене, чем проще тем лучше!
  • https://t.me/clickhouse_ru
    ну это ясно, а если селект простой, но большой, с горой айдишек допустим. это ведь норм?
  • https://t.me/clickhouse_ru
    @Shegloff #44363 09:29 AM, 05 Mar 2018
    да конечно норм, тут Марчук такие многостраничные выдает, плакаю
  • https://t.me/clickhouse_ru
    спасибо, М. привет сердечный
  • https://t.me/clickhouse_ru
    @querido_amigo #44365 09:31 AM, 05 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    Господа, есть таблица ReplicatedMergeTree, в которой сделано PARTITION BY toMonday(date)
    Пришла пора почистить. Вижу следующие разделы:
    \'2018-02-12\'
    \'2018-02-19\'
    \'2018-02-26\'
    \'2018-03-05\'
    При попытке сделать на узле click1 ALTER TABLE telegraf.processlist DROP PARTITION '\'2018-02-12\'' получаю:
    Received exception from server (version 1.1.54337):
    Code: 0. DB::Exception: Received from localhost:9000, ::1. DB::Exception: Received from click3.netangels.ru:9000, 192.168.110.243. DB::Exception: String is too long for Date: '2018-02-12'.

    Что это и как с этим бороться?
  • https://t.me/clickhouse_ru
    @149051052 #44367 09:46 AM, 05 Mar 2018
    Возможно вы имели ввиду это:
    >DROP PARTITION '201802'
  • https://t.me/clickhouse_ru
    @thejackgatsby #44368 09:46 AM, 05 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    Точно не это
  • https://t.me/clickhouse_ru
    Там PARTITION BY toMonday(date), а не по-месячно
  • https://t.me/clickhouse_ru
    @thejackgatsby #44372 09:47 AM, 05 Mar 2018
    Доброго времени суток всем. Может кто то привести пример работы с MAXIF и MINIF ? мне нужно передать в функции условие. как это сделать?
  • https://t.me/clickhouse_ru
    Партиция как называется? Возможно формат просто не такой
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44366 #44374 09:48 AM, 05 Mar 2018
    ALTER TABLE telegraf.processlist DROP PARTITION toDate('2018-02-12')
  • https://t.me/clickhouse_ru
    # echo "select partition from system.parts where database = 'telegraf' and table = 'processlist' and active group by partition order by partition" | curl -s --netrc http://localhost:8123/?query= --data-binary @-
    \'2018-02-12\'
    \'2018-02-19\'
    \'2018-02-26\'
    \'2018-03-05\'
  • https://t.me/clickhouse_ru
    Ну то есть, ровно так оно и называется, с кавычками
  • https://t.me/clickhouse_ru
    Хм... Сработало. Интересно, а накой тогда там кавычки в system.parts?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44372 #44378 09:50 AM, 05 Mar 2018
    Первый параметр поле, второй условие
  • https://t.me/clickhouse_ru
    @thejackgatsby #44379 09:50 AM, 05 Mar 2018
    @kshvakov условие типа HeartRate > 0 например?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44379 #44380 09:52 AM, 05 Mar 2018
    Да, minIf(column, HeartRate > 0)
  • @70532431 #44381 10:06 AM, 05 Mar 2018
    Подскажите, кто в теме и использует репликацию, у вас по пути /replicas в ZK все реплики отображаются, или только одна last added?

    [zk: localhost:2181(CONNECTED) 12] get /clickhouse/tables/01/distributedbd/ppitest_sharded/replicas
    last added replica: ch-node-2_130
    [zk: localhost:2181(CONNECTED) 13] get /clickhouse/tables/02/distributedbd/ppitest_sharded/replicas
    last added replica: ch-node-4_133
    [zk: localhost:2181(CONNECTED) 14] get /clickhouse/tables/03/distributedbd/ppitest_sharded/replicas
    last added replica: ch-node-6_135
  • https://t.me/clickhouse_ru
    @kmarenov #44382 10:09 AM, 05 Mar 2018
    Всем привет. Никто не сталкивался с проблемой сохранения полей типа date при подключении внешних словарей из postgresql через ODBC?
    При указании в конфиге словаря в кликхаусе типа Date для таких полей, в них всегда сохраняется значение, указанное в null_value, вместо того, что реально сохранено в postgresql. При указании типа String сохраняется реальное значение в формате YYYY/MM/DD. Понятно, что его можно преобразовать с помощью toDate(), но хотелось бы все таки в словаре иметь поле типа Date, а не String.
  • https://t.me/clickhouse_ru
    @Shegloff #44383 10:17 AM, 05 Mar 2018
    я так понял, проблема в /?
  • https://t.me/clickhouse_ru
    @Shegloff #44384 10:17 AM, 05 Mar 2018
    у тип Date в кликхаусе дефисы, а у вас там слеши
  • https://t.me/clickhouse_ru
    @kmarenov ↶ Reply to #44383 #44385 10:21 AM, 05 Mar 2018
    Нет, у меня там постгресовский тип date, кликхаус почему-то не хочет оттуда сохранять значения в свой тип Date, а при сохранении в строку видит дату в формате со слэшами.
  • @antonio_antuan #44386 10:25 AM, 05 Mar 2018
    попробуйте задать expression этому полю в конфиге, который будет приводить дату пгшную к дате в формате кх
  • https://t.me/clickhouse_ru
    @leidruid #44387 10:41 AM, 05 Mar 2018
    Я уже как-то спрашивал, но поиск не находит - пожскажите годную стабильную версию из последних
  • https://t.me/clickhouse_ru
    @kmarenov ↶ Reply to #44386 #44388 10:44 AM, 05 Mar 2018
    да, помогло, спасибо. вот так сделал:
    <expression>to_char(date_start, 'YYYY-MM-DD')</expression>
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #44387 #44389 10:45 AM, 05 Mar 2018
    1.1.54343 давно живет уже на проде, 3 шарда по 2 реплики, проблем нет
  • https://t.me/clickhouse_ru
    @leidruid #44390 10:46 AM, 05 Mar 2018
    спасибо
  • https://t.me/clickhouse_ru
    @thejackgatsby #44391 11:21 AM, 05 Mar 2018
    Еще раз добрый день. В функцию toDateTime можно передать часовой пояс в IANA формате. Подскажите могу ли я просто передать туда offset. Или есть какие то другие способы решения данного вопроса.
  • https://t.me/clickhouse_ru
    @ksolokhov #44392 12:06 PM, 05 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @ksolokhov #44393 12:09 PM, 05 Mar 2018
    Коллеги, можете подсказать, что может означать данная ошибка: DB::Exception: Cannot convert data from a nullable type to a non-nullable type
  • https://t.me/clickhouse_ru
    @ksolokhov #44394 12:09 PM, 05 Mar 2018
    практически все колонки (кроме индекса) у меня Nullable
  • https://t.me/clickhouse_ru
    @ksolokhov #44395 12:10 PM, 05 Mar 2018
    это при инсерте через jdbc
  • https://t.me/clickhouse_ru
    @vladimirmyuge #44396 12:44 PM, 05 Mar 2018
    Коллеги, добрый день. Постоянно отваливается КХ (кажется, что после большего сложного запроса), но в clickhouse-server.err.log новых записей не добавляется. Подскажите, куда копать?
  • @pavlov_m #44397 12:44 PM, 05 Mar 2018
    dmesg?
  • @pavlov_m #44398 12:44 PM, 05 Mar 2018
    OOM Killer?
  • https://t.me/clickhouse_ru
    @vladimirmyuge #44399 12:46 PM, 05 Mar 2018
    Это что такое?
  • @pavlov_m #44400 12:46 PM, 05 Mar 2018
    если убивает система то в dmesg будет сообщения вида Out of memory: Kill process 11270 (clickhouse-serv)
  • @pavlov_m #44401 12:46 PM, 05 Mar 2018
    в целом если большой запрос, который съедает много памяти - то система может его за это прибить
  • @pavlov_m #44402 12:46 PM, 05 Mar 2018
    тогда в логи не попадет ничего
  • https://t.me/clickhouse_ru
    @vladimirmyuge #44403 12:46 PM, 05 Mar 2018
    [8805958.859288] Out of memory: Kill process 17099 (clickhouse-serv) score 576 or sacrifice child
    [8805958.859354] Killed process 17099 (clickhouse-serv) total-vm:25730516kB, anon-rss:24507356kB, file-rss:0kB
  • @pavlov_m #44404 12:47 PM, 05 Mar 2018
    ну вот
  • https://t.me/clickhouse_ru
    @vladimirmyuge #44405 12:47 PM, 05 Mar 2018
    Да, и правда так. а как с этим борются?
  • @pavlov_m #44406 12:47 PM, 05 Mar 2018
    :)
  • https://t.me/clickhouse_ru
    @vladimirmyuge #44407 12:47 PM, 05 Mar 2018
    И можно ли как то посмотреть сколько памяти словари отъедают?
  • @pavlov_m #44408 12:47 PM, 05 Mar 2018
    лимиты на запрос
  • @pavlov_m #44409 12:47 PM, 05 Mar 2018
    больше памяти поставить
  • @pavlov_m #44410 12:47 PM, 05 Mar 2018
    можно уменьшить Nice Level на процессе, чтобы OOM киллер им меньше интересовался
  • @pavlov_m ↶ Reply to #44407 #44411 12:48 PM, 05 Mar 2018
    Select * from system.dictionaries
  • @pavlov_m #44412 12:48 PM, 05 Mar 2018
    там будет размер
  • https://t.me/clickhouse_ru
    @vladimirmyuge #44413 12:56 PM, 05 Mar 2018
    Правильно понимаю, что это они всего 800 МБ занимают?
  • @pavlov_m #44414 12:56 PM, 05 Mar 2018
    bytes_allocated UInt64 - количество оперативной памяти, которое использует словарь
  • @pavlov_m #44415 12:56 PM, 05 Mar 2018
    да
  • @70532431 #44416 12:57 PM, 05 Mar 2018
    Получить вес всех таблиц в MB/GB

    SELECT
    table,
    formatReadableSize(sum(bytes)) AS size,
    min(min_date) AS min_date,
    max(max_date) AS max_date
    FROM system.parts
    WHERE active
    GROUP BY table;
  • @garikanet #44417 01:02 PM, 05 Mar 2018
    Коллеги | сообщество -- подскажите как вам версия 1.1.54343 от 2018-02-05 можно запускать в прод. ?)
  • https://t.me/clickhouse_ru
    @kshvakov #44418 01:03 PM, 05 Mar 2018
    Вроде всё ОК, работает
  • https://t.me/clickhouse_ru
    @deance #44419 01:08 PM, 05 Mar 2018
    Ребят, такой вопрос - возникает ошибка

    "Types must be the same for columns at same position. Column event_val has type UInt8, but column event_val has type UInt64"

    При запросе "INSERT INTO table (event_val) SELECT 1 as event_val"

    Причем у меня два кликхауза, один в докере, другой с дистрибутива под ubuntu. В одном работает такой запрос, в другом нет.
    Может кто знает, какая настройка кликхауза отвечает за приведение типов при таких запросах?
  • https://t.me/clickhouse_ru
    @vladimirmyuge #44420 01:15 PM, 05 Mar 2018
    А можно как-то запретить пользователям самостоятельно выставлять настройку max_memory_usage ?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44420 #44421 01:17 PM, 05 Mar 2018
    readonly=1
  • https://t.me/clickhouse_ru
    Tabix против (
  • https://t.me/clickhouse_ru
    @kshvakov #44423 01:17 PM, 05 Mar 2018
    Тогда никак
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44419 #44424 01:18 PM, 05 Mar 2018
    Скорее всего у вас просто версии ClickHouse разные
  • https://t.me/clickhouse_ru
    @vladimirmyuge #44425 01:19 PM, 05 Mar 2018
    То есть по сути любой пользователь из табикса может уронить КХ, выставив огромное значение max_memory_usage и написав большой запрос?
  • https://t.me/clickhouse_ru
    @kshvakov #44426 01:19 PM, 05 Mar 2018
    Да
  • https://t.me/clickhouse_ru
    @vladimirmyuge #44427 01:20 PM, 05 Mar 2018
    Это печально, но большое спасибо, пойду менять права :)
  • @pavlov_m ↶ Reply to #44425 #44428 01:23 PM, 05 Mar 2018
    а поставить квоты никак нельзя?
  • https://t.me/clickhouse_ru
    @leidruid #44429 01:36 PM, 05 Mar 2018
    Товарищи, никто не поделится чуть более расширенным примером по использованию kafka engine ?
  • https://t.me/clickhouse_ru
    @vladimirmyuge #44430 01:46 PM, 05 Mar 2018
    У меня есть ещё вопрос, а операторы with cube и with rollup пока не реализованы?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44428 #44431 01:47 PM, 05 Mar 2018
    Нет, если для Tabix нужен readonly=2 то это разрешает менять настройки
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44429 #44432 01:48 PM, 05 Mar 2018
    Там, вроде, всё предельно просто, что не так?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44430 #44433 01:49 PM, 05 Mar 2018
    В мастере пока их нет, возможно пока ещё вообще их нигде нет)
  • https://t.me/clickhouse_ru
    @leidruid ↶ Reply to #44432 #44434 01:53 PM, 05 Mar 2018
    Я сделал как в доке, делаю запрос
    SELECT *
    FROM queue
    LIMIT 5

    Received exception from server (version 1.1.54343):
    Code: 117. DB::Exception: Received from 185.9.185.65:9000. DB::Exception: Unexpected nested field for key 'llsSensors'.
  • https://t.me/clickhouse_ru
    @leidruid #44435 01:54 PM, 05 Mar 2018
    Да, там есть nested, но как это совокупить со структурой консюмера. И что обычно делают, если набор полей в сообщении разный ?
  • https://t.me/clickhouse_ru
    @kshvakov #44436 01:59 PM, 05 Mar 2018
    Структура в json сообщении должна быть одинаковой
  • https://t.me/clickhouse_ru
    @leidruid #44437 01:59 PM, 05 Mar 2018
    А что делать с nested ?
  • https://t.me/clickhouse_ru
    @kshvakov #44438 02:00 PM, 05 Mar 2018
    Сделать пример для воспроизведения и написать issue
  • https://t.me/clickhouse_ru
    @leidruid #44439 02:01 PM, 05 Mar 2018
    хорошо
  • @cosmokit #44440 02:52 PM, 05 Mar 2018
    Коллеги, подскажите. Есть идея каждый час через cron выполнять запрос вида clickhouse-client —query="alter table db.table freeze partition '2018';" с последующим rsync в бэкап хранилище. Собственно вопрос - есть ли какой-нибудь лимит на значение инкремента? И в случае ЧП как всю эту гору папок восстановить?
  • https://t.me/clickhouse_ru
    @mrlamberg #44441 02:56 PM, 05 Mar 2018
    может реплику проще?)
  • https://t.me/clickhouse_ru
    @b0ch4r0v #44442 02:59 PM, 05 Mar 2018
    Есть ли способ настроить ClickHouse кластер(а) таким образом, чтобы поделить условно на 2 части:
    1. 1 часть кластера обслуживает запросы API и основной use case получать данные по конкретному пользователю. Здесь высокий qps.
    2. 2 часть кластера обслуживает внутренние запросы от аналитиков, которые необязательно запрашивают данные по конкретному пользователю, а сразу по всем. Здесь низкий qps, но перебирается больше данных.

    Задача такая, чтобы запросы из 2 пункта не влияли или слабо влияли на запросы 1 пункта, чтобы эти части кластера были условно независимыми, но при этом данные чтобы были консистентными в итоге.
    Как данная проблема решена внутри Yandex?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44441 #44443 02:59 PM, 05 Mar 2018
    На реплике данные можно убить через DROP PARTITION
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44440 #44444 03:00 PM, 05 Mar 2018
    Последнюю и востанавливайте
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44442 #44445 03:02 PM, 05 Mar 2018
    Если есть реплики пустите на них аналитиков и уберите их из distributed куда ходит API, а вообще не должно сильно афектить, у нас, например, аналитик вполне себе в тотже кластер ходит
  • @cosmokit ↶ Reply to #44441 #44446 03:06 PM, 05 Mar 2018
    реплику не целесообразно, так как повышение нагрузки не планируется. а вот данных уже много и нужно бэкапить.
  • https://t.me/clickhouse_ru
    @mrlamberg #44447 03:06 PM, 05 Mar 2018
    просто с какихто объемов бекап будет очень долго делатся
  • https://t.me/clickhouse_ru
    @b0ch4r0v #44448 03:06 PM, 05 Mar 2018
    если запрос сильно тяжелый, то может легко занять всё доступное CPU/disk IO. С запросами только на реплики может негативно повлиять на процесс репликации.
  • @cosmokit ↶ Reply to #44444 #44449 03:06 PM, 05 Mar 2018
    то есть по высшему номеру инкремента директорий?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44449 #44450 03:11 PM, 05 Mar 2018
    Ну да, у вас после фриза партиции будут данные на определенное время, WAL как в постгресе нет, поэтому можно ориентироваться на время фриза чтоб восстановиться на определенное время
  • @cosmokit ↶ Reply to #44450 #44451 03:12 PM, 05 Mar 2018
    понял, благодарю вас!
  • @70532431 #44452 04:58 PM, 05 Mar 2018
    если у кого-то clickhouse тормозит и выжирает-потребляет всю доступную память в режиме репликации и шардирования, проверяйте по буквам схемы таблиц.
    это первый симптом того, что где-то что-то смотрит само на себя и входит в цикл порождения сущностей
    всё настроил и могу уверить, что нет, не тормозит 🔥
    спасибо всем за помощь, кто отвечал, @kshvakov особенно
  • @milovidov_an #44453 05:26 PM, 05 Mar 2018
    Мы планируем организовать ClickHouse meetup для контрибьюторов. Но пока непонятно, на какие темы лучше сделать специализацию. Интересно, какие у вас есть пожелания?
  • @70532431 ↶ Reply to #44453 #44454 05:26 PM, 05 Mar 2018
    - Взаимодействие с другими СУБД
    - Best practice в плане создания схем на конкретных примерах
  • @milovidov_an #44455 05:32 PM, 05 Mar 2018
    Эта тема подходит на широкую аудиторию, не только для контрибьюторов. Интересует именно для контрибьюторов. При чём, пока ещё непонятно, как лучше таргетировать мероприятие - для разработчиков всевозможных инструментов и интеграций для ClickHouse, или для C++ разработчиков (их намного меньше). Например, про "Взаимодействие с другими СУБД" можно рассказать, как оно устроено, и показать пример, как легко добавить Монгу.
  • @70532431 #44456 05:38 PM, 05 Mar 2018
    Лично я предпочитаю мероприятия, где не долго и подробно о чём-то конкретном, а довольно широко и с последующим обменом данными, где или у кого можно получить информации в конкретных предметных областях больше. Или классические минуты на вопросы после докладов, где в случае обнаружения интересных собеседников можно обменяться контактами и продолжить обсуждение алгоритмов и методов их улучшения в оффлайне, или в issues например.
    Такой формат будет иметь пользу для более широкого круга людей, которым как-то интересен Clickhouse, кмк.
    Для разработчиков инструментов и интеграций выглядит интересно
  • https://t.me/clickhouse_ru
    @thejackgatsby #44457 05:40 PM, 05 Mar 2018
    @milovidov_an есть ли информация по UPDATE/DELETE ?
  • @70532431 ↶ Reply to #44457 #44458 05:41 PM, 05 Mar 2018
    недавно вверху писали, что Q2 2018, май скорее всего
  • Да. Планируем сделать доступным до середины мая. Уже есть работающий прототип.
  • @61322181 ↶ Reply to #44459 #44460 05:42 PM, 05 Mar 2018
    Есть что почитать?
  • @milovidov_an #44461 05:42 PM, 05 Mar 2018
    Разве что найти ветку одного из разработчиков и почитать её...
  • https://t.me/clickhouse_ru
    @thejackgatsby #44462 05:42 PM, 05 Mar 2018
    Хорошо, спасибо. Было бы отлично уже хотябы альфу получить.
  • @61322181 ↶ Reply to #44461 #44463 05:43 PM, 05 Mar 2018
    Хорошо )
  • @milovidov_an #44464 05:44 PM, 05 Mar 2018
    В первую очередь будет доступен "тяжёлый" вариант UPDATE/DELETE, подходящий для редких запросов.

    То есть, изредка исправлять данные или удалять часть данных - Ок, постоянные апдейты - нет.
  • https://t.me/clickhouse_ru
    @thejackgatsby #44465 05:46 PM, 05 Mar 2018
    В данный момент, только такое и требуется. Мне, во всяком случае.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44453 #44466 05:47 PM, 05 Mar 2018
    Это очень круто, на вскидку интересно:
    * расширение синтаксиса SQL и работа с AST
    * создание новых движков
    * создание новых типов (сейчас там все очень не тривиально)
    * добавление новых функций
    * работа с партициями, таблицами "изнутри". Получение информации о таблице, как добавить новые свойства; управление партициями. Как работают ключи партиционирования изнутри.

    вообще много всего хочется узнать)
  • Как раз с удовольствием можно будет всё это рассказать :) Пока не определились с форматом мероприятия (можно в разном режиме это всё рассказывать). А сколько примерно людей из вашей компании и близких хотели бы в этом участвовать?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44467 #44468 05:50 PM, 05 Mar 2018
    Я завтра узнаю, но я обеими руками "ЗА"
  • https://t.me/clickhouse_ru
    @kshvakov #44469 05:54 PM, 05 Mar 2018
    Еще попробую через знакомых в Еxness закинуть информацию, они используют ClickHouse и у них много C++ разработчиков, правда не знаю дописывают ли они что-то под себя, но я думаю им должно быть это интересно
  • @milovidov_an #44470 05:56 PM, 05 Mar 2018
    Наличие примерно 20 C++ разработчиков достаточно, чтобы сделать отдельный митап именно для них.
  • @70532431 #44471 05:56 PM, 05 Mar 2018
    Нашим C++ также предложу. А где планируется митап устраивать, в каком городе? Питер/МСК?
  • @milovidov_an #44472 05:57 PM, 05 Mar 2018
    Мск.
  • @milovidov_an #44473 05:57 PM, 05 Mar 2018
    В Санкт-Петербурге будет ещё большой митап, наверное летом. И в Москве тоже :)
  • https://t.me/clickhouse_ru
    @strangeqargo #44474 06:07 PM, 05 Mar 2018
    Очень интересно
  • @pavel_maksimow #44475 06:16 PM, 05 Mar 2018
    Подскажите, функция argMax работает по данным DateTime? что-то не выбирает максимальное значение.
  • https://t.me/clickhouse_ru
    @orantius #44476 06:17 PM, 05 Mar 2018
    а пример есть?
  • сейчас сделаю его поменьше
  • https://t.me/clickhouse_ru
    @plitv ↶ Reply to #44455 #44478 06:39 PM, 05 Mar 2018
    Это не совсем так. Я пришел к выводу, что текущая имплементация основанная на POCO драйвере очень ограничена (нет поддержки view, нельзя использовать ключи внутри вложенных структур), нужно чинить или переписывать.
    Пока что я пришел к executable словарям, написал на go маленькую программку которая вытаскивает данные из монги. Решение оказалось тоже не айс, cache словари не работают, clickhouse как оказалось не отправляет запрос в stdin при работе с executable словарями. А так да, монгу подключить можно:)
  • нашел ошибку, пока готовил пример)
  • https://t.me/clickhouse_ru
    @thejackgatsby #44480 06:40 PM, 05 Mar 2018
    Можете сказать почему OPTIMIZE может не сработать? Использую для CollapsingMergeTree
  • Да, для Монги в Poco какой-то трешовый драйвер. Можно заменить на официальный. Но когда мы добавляли это, то как раз был период, когда какой-то официальный драйвер, который мы использовали, устарел, и проще всего оказалось подключить драйвер из Poco.
  • > clickhouse как оказалось не отправляет запрос в stdin при работе с executable словарями

    @proller Наверное ты смотрел на эту проблему?
  • @vludv ↶ Reply to #44480 #44483 06:44 PM, 05 Mar 2018
    Попробуйте запустить OPTIMIZE с настройкой optimize_throw_if_noop=1, он сможет выдать какую-нибудь диагностику
  • https://t.me/clickhouse_ru
    @proller ↶ Reply to #44482 #44484 06:47 PM, 05 Mar 2018
    нет. а проблема описана где-нибудь?
  • Да. И если правильно помню, ты в GitHub стоишь исполнителем.
  • @70532431 ↶ Reply to #28276 #44486 07:08 PM, 05 Mar 2018
    То есть в SELECT-ах участвуют всё же и реплики, которые не is_leader, но каждый отдельный селект выполняется только на 1 из доступных? @kochetovnicolai
  • @kochetovnicolai #44487 07:09 PM, 05 Mar 2018
    да
  • https://t.me/clickhouse_ru
    @neiwick ↶ Reply to #44453 #44488 07:46 PM, 05 Mar 2018
    А сторонних разработчиков, которые не контрибьютят в сам кх-сервер но пишут инструменты интеграции с ним тоже касается? Например очень интересно почему Native сетевой протокол получился таким каким получился и есть ли какие-то планы его улучшать?
    Конкретно очень смущает его заточенность на блокирующийся сетевой i/o, если отправлять в него ещё худо-бедно можно асинхронно, то доставать блоки из сети чаще всего означает отдать под это отдельную нитку (полагаю на сервере тоже отдается thread-per-connection) т.к. у нежатого блока нет никакой информации в заголовке о том сколько там ещё осталось до конца данных. Конечно ввод можно буфферизовать, но тогда снежным комом возникает необходимость делать много разноразмерных аллокаций, копирований, что тоже не круто.
    При сжатии все чуть лучше, т.к. есть возможность выудить размер, но часть драйверов на нативном протокле не умеет в сжатие из-за того что оно всецело полагается на CityHash 1.0.2, что является следующей проблемой ибо в природе готового алгоритма именно такой версии да ещё и под разные языки достаточно мало и разработчики страдают переписыванием с c++ и коммитят очередные баги в продакшны.
    Это что касается контрибьюшна в экосистему с другой точки зрения, хочется чтоб внешние интерфейсы кликхауса были простыми и в то же время быстрыми. Сетевой стек пока не про это.
  • Да, контрибьюторы рассматриваются не только те, что коммитят в основной репозиторий.

    > Например очень интересно почему Native сетевой протокол получился таким каким получился и есть ли какие-то планы его улучшать?

    Для некоторых вещей умных объяснений нет, но можно рассказать, почему всё так как есть. В самое ближайшее время менять протокол не планируется. Но есть одна связанная задача, для которой это было бы полезно - менять как раз в том направлении, которое вы имеете ввиду - например, чтобы можно было передавать несколько resultset-ов в перемешку в одном соединении, и чтобы в целом протокол состоял из простых асинхронных команд, а не сложной "стейт-машины", в которой надо очень аккуратно в правильной последовательности правильные кусочки данных передавать.
  • https://t.me/clickhouse_ru
    @proller ↶ Reply to #44391 #44490 08:13 PM, 05 Mar 2018
    можно но не нужно передать offset в часах используя хитрозону Etc/GMT+3 , ... , Etc/GMT-13
  • https://t.me/clickhouse_ru
    @salttan #44491 08:13 PM, 05 Mar 2018
    Подскажите, пожалуйста, какой уровень сжатия по умолчанию при использовании алгоритма zstd
  • @70532431 #44492 08:19 PM, 05 Mar 2018
    У нас при импорте 357Гб экономия составляет, например, 87%. Всё зависит от данных, но насколько я знаю в zstd нет стандартизированных уровней как в lz4
  • 1.

    Также есть возможность изменить уровень сжатия.
  • https://t.me/clickhouse_ru
    @salttan #44494 08:23 PM, 05 Mar 2018
    Спасибо
    Я как раз и хочу изменить, хотелось точку отсчета 🙂
  • @vstakhov #44495 08:23 PM, 05 Mar 2018
    @milovidov_an а зачем вы вообще делали какой-то отдельный протокол над http?
  • @vstakhov #44496 08:24 PM, 05 Mar 2018
    @milovidov_an тот же zstd могли бы добавить в Accept-Encoding, и все
  • @vstakhov #44497 08:24 PM, 05 Mar 2018
    ну и бинарную сериализацию самого протокола уже внутри http энкапсуляции
  • @70532431 ↶ Reply to #44493 #44498 08:26 PM, 05 Mar 2018
    M(SettingInt64, network_zstd_compression_level, 1, "Allows you to select the level of ZSTD compression.") \
    \

    Нашлось в коде, стало быть <network_zstd_compression_level></network_zstd_compression_level>
  • @70532431 #44499 08:27 PM, 05 Mar 2018
    по умолчанию 1
  • Используется двустороннее взаимодействие - возможность отмены запроса, получение прогресса, и т. п. Оборачивать всё в HTTP возможно, но нецелесообразно (приведёт только к усложнению). Плюс лишние копирования из-за chunked transfer encoding. Внутренний протокол (для взаимодействия между серверами) первичен, а HTTP интерфейс - отдельно.
  • https://t.me/clickhouse_ru
    @proller ↶ Reply to #44485 #44501 08:28 PM, 05 Mar 2018
    У меня работает с тем примером.
  • @vstakhov #44502 08:29 PM, 05 Mar 2018
    да, chunked - это боль
  • @vstakhov #44503 08:30 PM, 05 Mar 2018
    тогда я правильно понимаю, что http дает не особо значимый оверхед на batch inserts?
  • @vstakhov #44504 08:30 PM, 05 Mar 2018
    просто по-хорошему в таких случаях я бы передавал данные в виде колонок в бинарной кодировке
  • Framing format отличается от стандартного для zstd и lz4. Мы использовали lz4 до появления framing формата для него. Это используется не только для передачи данных по сети, но и для хранения на диске.

    Тем не менее, Content-Encoding со стандартным framing format-ом, для HTTP интерфейса, тоже можно добавить.
  • @vstakhov #44506 08:31 PM, 05 Mar 2018
    типа, INSERT VALUES (col1, col2... coln), а дальше просто N*(col1)*sizeof(typeof(col1)) ... и так далее
  • @vstakhov #44507 08:32 PM, 05 Mar 2018
    да я сам пробовал с накрапу добавить к вам zstd, там не все так просто получилось из-за самого формата, да
  • Да, HTTP даёт небольшой оверхед при INSERT, если использовать Native формат или хотя бы RowBinary. При вставке в MergeTree обычно основное время тратится на сортировку на стороне сервера. Оверхед от HTTP будет более заметным, если передавать заранее отсортированные данные (сервер это понимает), или если вставлять в простые таблицы типа Log или Memory, но он всё равно остаётся небольшим.
  • @milovidov_an #44509 08:35 PM, 05 Mar 2018
    Вы можете изучить оверхед, вставляя данные по HTTP на localhost, в таблицу с движком Null - запустите perf top и смотрите.
  • @vstakhov #44510 08:36 PM, 05 Mar 2018
    я думаю, у нас в почте смешные объемы в плане requests per second в сравнении с вебом
  • @vstakhov #44511 08:38 PM, 05 Mar 2018
    я просто не очень люблю zlib :)
  • https://t.me/clickhouse_ru
    просто отсортировать по первичному ключу, или какие-то хинты нужны?
  • @milovidov_an #44513 09:43 PM, 05 Mar 2018
    Просто отсортировать. Но если делать это самостоятельно, то скорее всего, будет медленнее.
  • 06 March 2018 (152 messages)
  • https://t.me/clickhouse_ru
    @imzhukov ↶ Reply to #44466 #44514 07:06 AM, 06 Mar 2018
    Готовы принять участие. Именно такие вопросы в основном и волнуют.
  • https://t.me/clickhouse_ru
    @imzhukov ↶ Reply to #44453 #44515 07:20 AM, 06 Mar 2018
    * Вообще интересуют инструменты интеграции через C++.
    * Альтернатива clickhouse-cpp. Рекомендации разработчиков по организации такой интеграции
    * Новые движки
    * Новые типы
    * Может не совсем уместно, но планируется ли сертификация системы во ФСТЭК по аналогии c PostgreSQL Professional? Опыт использования CH в системах, где такое требуется.
  • https://t.me/clickhouse_ru
    @AlexanderBurmak #44516 07:21 AM, 06 Mar 2018
    После обновления с версии 1.1.54327 на 1.1.54342 появились ошибки "Another quorum insert has been already started". Подскажите, пожалуйста, в чем может быть дело.
  • https://t.me/clickhouse_ru
    and warnings: "Tried to add obsolete part"
  • https://t.me/clickhouse_ru
    @plitv ↶ Reply to #44501 #44518 08:07 AM, 06 Mar 2018
    Ты не мог бы прислать рабочий конфиг? Я пробовал делать так как ты писал выше, через tee, к сожалению в лог файл так ничего и не попало. Я тестирую используя последний docker образ.
  • https://t.me/clickhouse_ru
    @proller #44519 08:08 AM, 06 Mar 2018
    вот ровно конфиг из таска но путь поменял чтоб к нему доступ был
  • только что проверил на последней стабильной версии ch. Действительно, все работает
  • @AlexanderMillin #44521 08:10 AM, 06 Mar 2018
    на v1.1.54318, v1.1.54327 не работало почему-то
  • https://t.me/clickhouse_ru
    @nengchak #44522 08:11 AM, 06 Mar 2018
    на последних версиях юзает кто связку кафка-кафка энджайн-мвью-мерджтри?
  • @AlexanderMillin #44523 08:11 AM, 06 Mar 2018
    конфиг не менял, права не менял. Только версия ch была обновлена на сервере
  • https://t.me/clickhouse_ru
    @xammett #44526 08:35 AM, 06 Mar 2018
    Joined.
  • Эта ошибка может возникать только при использовании кворумной записи (insert_quorum).
    В этом случае все INSERT-ы линеаризуются - следующий INSERT может быть сделан только после того, как предыдущий либо подтверждён на кворуме реплик, либо отменён. Если есть кворум живых реплик, то это должно произойти в течение короткого времени - как только реплики скачают кусок. При получении такой ошибки можно сделать ретрай с каким-нибудь backoff. Если никаких INSERT-ов одновременно не делается, а ошибка не исчезает, то это - проблема (если перезапустить сервер, то она исправится).
    PS. Не понял, как это может быть связано с обновлением на версию 1.1.54342.
  • https://t.me/clickhouse_ru
    @dautovri #44528 08:53 AM, 06 Mar 2018
    Joined.
  • @aibulatik #44529 10:15 AM, 06 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @SomeTelegramUser #44530 11:08 AM, 06 Mar 2018
    Можно каким-либо образом воссстановить структуру таблицы из дампа формата Native?
  • Да, можно. В дампе указаны имена и типы столбцов. Хотя прочитать их оттуда не очень удобно, так как они идут вперемешку с самими данными.
    При необходимости можно сделать утилиту, которая по дампу в Native формате выведет его структуру.
  • https://t.me/clickhouse_ru
    @SomeTelegramUser #44533 11:17 AM, 06 Mar 2018
    А где-нибудь сам формат то есть в открытом доступе?
  • https://t.me/clickhouse_ru
    @stufently #44534 11:21 AM, 06 Mar 2018
    можно открыть просто текстовым редактором , если на раз
  • https://t.me/clickhouse_ru
    @stufently #44535 11:21 AM, 06 Mar 2018
    там все довольно понятно
  • https://t.me/clickhouse_ru
    @leidruid #44536 11:47 AM, 06 Mar 2018
    Товарищи, а [ParalInputsProc] - это какая именно запчасть? Чтение или запись?
  • @milovidov_an #44537 11:52 AM, 06 Mar 2018
    Чтение - выполнение SELECT.
  • https://t.me/clickhouse_ru
    @leidruid #44538 12:04 PM, 06 Mar 2018
    спасибо
  • @304168605 #44539 12:11 PM, 06 Mar 2018
    подскажите, как должен выглядить формат TSV файла для встаки его содежимого в таблицу из двух полей типа Int32, как разделить значенния и конец строки ?
  • @pavlov_m #44540 12:11 PM, 06 Mar 2018
    int\tint\nint\tint\n
  • @304168605 #44541 12:12 PM, 06 Mar 2018
    спасибо
  • @304168605 #44542 12:15 PM, 06 Mar 2018
    не получилось, выдает Column 0, name: a, type: Int32, ERROR: text "1<BACKSLASH>t0<BACKSLASH>n<CARRIAGE RETURN>" is not like Int32
  • https://t.me/clickhouse_ru
    @stufently #44543 12:16 PM, 06 Mar 2018
    \t это табуляция \n перенос строки
  • https://t.me/clickhouse_ru
    @tommi_v #44544 12:16 PM, 06 Mar 2018
    это табуляция, а не буквальные слеш и буква t
  • @304168605 #44545 12:18 PM, 06 Mar 2018
    пробовал по всякому, сейчас выдает Column 0, name: a, type: Int32, ERROR: text "1<TAB>0<CARRIAGE RETURN><LINE FEED>2<TAB>" is not like Int32 файл редактирую в notepad++ кодировка utf-8
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #44539 #44546 12:18 PM, 06 Mar 2018
    Наверн проще будет сделать инсерт а потом дамп в tsv. Увидишь сразу нужный формат.
  • @pavlov_m #44547 12:19 PM, 06 Mar 2018
    а в запросе inert есть в конце FORMAT TSV ?
  • https://t.me/clickhouse_ru
    Судя по <CARRIAGE RETURN> - данный символ лишний
  • https://t.me/clickhouse_ru
    Концы строк не той системы :-)
  • https://t.me/clickhouse_ru
    \r\n вместо \n
  • @304168605 #44551 12:22 PM, 06 Mar 2018
    cat /media/sf_test/journal.tsv | clickhouse-client —query="INSERT INTO dictions.jjj FORMAT TSV"
  • @304168605 #44552 12:23 PM, 06 Mar 2018
    как вставить нужный? нотепад++ только CRLF вставляет в конце
  • https://t.me/clickhouse_ru
    Взять редактор, который умеет сохранять с юниксовыми концами строк, наверное.
  • https://t.me/clickhouse_ru
    @stufently #44554 12:24 PM, 06 Mar 2018
    используйте sublime text
  • https://t.me/clickhouse_ru
    Не в курсе, если честно, кто там сейчас под винды котируется.
  • https://t.me/clickhouse_ru
    @stufently #44556 12:24 PM, 06 Mar 2018
    там все это конфигурится
  • https://t.me/clickhouse_ru
    @Shegloff #44557 12:24 PM, 06 Mar 2018
    нотепад++ прекрасно это умеет, кстати
  • https://t.me/clickhouse_ru
  • @milovidov_an #44559 12:24 PM, 06 Mar 2018
    Если набирать текст вручную, то проще VALUES.
  • @milovidov_an #44560 12:25 PM, 06 Mar 2018
    Или CSV - в нём есть поддержка CR LF на всякий случай.
  • https://t.me/clickhouse_ru
    @Shegloff #44561 12:25 PM, 06 Mar 2018
    в нотепад++ выбрать юниксовую кодировку и просто tab нажимать на клавиатуре и enter :) и все получится
  • @304168605 #44562 12:26 PM, 06 Mar 2018
    с CSV я разобрался, хотел TSV -поробовать
  • @486642683 #44563 12:26 PM, 06 Mar 2018
    привет, команда, каков прогресс «с rollup»,
  • @304168605 #44564 12:26 PM, 06 Mar 2018
    именно так я и делаю, нотепат все рисует как и должно быть а вот импорт не парсится из этого файла
  • Имеется ввиду GROUP BY ... WITH ROLLUP/WITH CUBE? Сейчас эту задачу никто не делает, хотя сделать её уже не так сложно.
  • @486642683 #44568 12:31 PM, 06 Mar 2018
    хорошо понял
  • @417576685 #44569 12:38 PM, 06 Mar 2018
    Задам вопрос туту
  • @417576685 #44570 12:38 PM, 06 Mar 2018
    После удаления партиций у меня не освобождается место
  • @417576685 #44571 12:39 PM, 06 Mar 2018
    Это баг?
  • https://t.me/clickhouse_ru
    А если подождать минут 15-20?
  • https://t.me/clickhouse_ru
    У меня удаляется, но не сразу.
  • @417576685 #44574 12:39 PM, 06 Mar 2018
    гм
  • @417576685 #44575 12:39 PM, 06 Mar 2018
    ну щас подожду
  • @417576685 #44576 12:40 PM, 06 Mar 2018
    дествительно недавно удалил
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #44567 #44577 12:41 PM, 06 Mar 2018
    google: notepad++ unix line endings
  • @304168605 #44578 12:43 PM, 06 Mar 2018
    спасибо! получилось\
  • https://t.me/clickhouse_ru
    Спасибо! Выяснилось, что проблемы были вызваны переносом нод в ZK.
  • @70532431 #44580 01:09 PM, 06 Mar 2018
    А какой приоритет имеет конфиг в папках conf.d и users.d?
    Если в /etc/clickhouse-server/config.xml значение ключа A к примеру 1, а в папке conf.d в файлике прописано, что A это 0, что будет использовать Clickhouse?
  • @teknik2008 #44581 01:09 PM, 06 Mar 2018

    Словари
    <attribute>
    <name>title</name>
    <type>String</type>
    <null_value></null_value>
    </attribute>Могу ли я указать дефолтные параметры и не передовать их в tuple dictGetString('user','name',tuple(toUInt64(`user_id`)))? Есть дефолтные параметрый в таблице, которые проще указать в словаре, чем каждый раз в запросе
  • https://t.me/clickhouse_ru
    @proller ↶ Reply to #44580 #44582 01:25 PM, 06 Mar 2018
    сначала главный конфиг, потом все что в папках
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44467 #44583 01:40 PM, 06 Mar 2018
    У нас из желающих только я:) Кстати, было бы интересно еще узнать про разработку словарей.
    Если делить мероприятие на 2-а митапа, для разработчиков Clickhouse для разработчиков различных утилит для дего,
    то хотелось бы чтоб они были одним днем, а то не все живут в Москве и многим захочется попасть на оба, хотя, как мне кажется,
    в любом случае информация о внутреннем утройстве полезна всем.
  • @aibulatik #44584 01:43 PM, 06 Mar 2018
    Всем привет, можно ли как-нибудь схлопнуть данные обращаясь к шардам (ReplicatedReplacingMergeTree) через distributed таблицу? В самих шард-таблицах данные схлопнуты, но при обращении в distributed - нет, найденные варианты пока такие: 1) создавать ключ шардирования такой же как и для дедупликации. 2) LIMIT 1 BY.
  • https://t.me/clickhouse_ru
    @Shegloff #44585 01:45 PM, 06 Mar 2018
    1) так и делаю, как раз для таких ситуаций
  • https://t.me/clickhouse_ru
    @Shegloff #44586 01:45 PM, 06 Mar 2018
    но изначально, кстати, в доке про это прочитал
  • https://t.me/clickhouse_ru
    @Shegloff #44587 01:47 PM, 06 Mar 2018
    или в доке, или в группах гугл
  • https://t.me/clickhouse_ru
    @dautovri #44588 01:48 PM, 06 Mar 2018
    Есть ли применения в анализе графов у ClickHouse?
  • https://t.me/clickhouse_ru
    @orantius #44589 01:49 PM, 06 Mar 2018
    cypher для clickhouse нет, индексов графовых тоже.
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #44584 #44590 01:50 PM, 06 Mar 2018
    Google Groups

    Google Groups allows you to create and participate in online forums and email-based groups with a rich experience for community conversations.

  • ага, значит первый вариант, думал может существует что-то типа FINAL для distributed, спасибо!
  • https://t.me/clickhouse_ru
    @Shegloff #44592 01:54 PM, 06 Mar 2018
    я бы например выселектил, в каких партициях есть дубли, потом эти партиции залил в соседнюю таблицу, в шард-таблицах дропнул эти партиции, и залил бы из соседней в одну шард-таблицу
  • https://t.me/clickhouse_ru
    @Shegloff #44593 01:55 PM, 06 Mar 2018
    ну это, конечно, смотря какой объем данных
  • https://t.me/clickhouse_ru
    @SpicyCrack3r #44594 02:20 PM, 06 Mar 2018
    Как удалить все запси без удаления всей таблицы ?
  • Такой возможности (TRUNCATE TABLE) нет.
  • @solhov #44596 02:26 PM, 06 Mar 2018
    а если все партиции удалить?
  • https://t.me/clickhouse_ru
    @SpicyCrack3r #44597 02:26 PM, 06 Mar 2018
    Это как?
  • https://t.me/clickhouse_ru
    ALTER TABLE ... DROP PARTITION ...
  • https://t.me/clickhouse_ru
    Имена можно подсмотреть в system.parts
  • https://t.me/clickhouse_ru
    Что-то типа:
    SELECT partition FROM system.parts WHERE (database = '${DB}') AND (table = '${TB}') AND active GROUP BY partition ORDER BY partition ASC
  • https://t.me/clickhouse_ru
    @SpicyCrack3r #44601 02:32 PM, 06 Mar 2018
    Спасибо, помогло
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44595 #44602 02:37 PM, 06 Mar 2018
    А её нет по соображениям безопасности, а вдруг рука дрогнет? Или можно сделать, но завязаться на тот же "предохранитель" что и DROP TABLE ?
  • Для всего кроме Replicated таблиц можно было бы легко сделать с помощью rename + создания новой таблицы под блокировкой + drop старой таблицы. Но для Replicated DROP удаляет только одну реплику, а RENAME не меняет путь в ZK. Поэтому получается, что нет общей реализации для разных движков таблиц.
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #44602 #44604 02:46 PM, 06 Mar 2018
    меня так один раз спасло, после чего темповые таблицы создаю в другой бд и непохожими именами, типа mafaka.kakaha, чтоб не опечататься :)
  • https://t.me/clickhouse_ru
    @SpicyCrack3r #44605 02:47 PM, 06 Mar 2018
    Как то можно сиволы без экранирования вставить? типо '
  • https://t.me/clickhouse_ru
    @kshvakov #44606 02:51 PM, 06 Mar 2018
    @Shegloff Чтоб меньше ошибаться есть еще "обсуждаемая" фича с кастомным промтом чтоб было видно в кленте где сейчас находишься, у меня выглядит так
  • https://t.me/clickhouse_ru
    @Shegloff #44607 02:52 PM, 06 Mar 2018
    хорошая фича!
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #44605 #44608 03:03 PM, 06 Mar 2018
    можно использовать формат TSVRaw для вывода без экранирования
    # cat test.tsv
    1 'sdasdasdaff'dfgsdfg'dfgdfg'

    # cat test.tsv | clickhouse-client -q "insert into test.test (num, kolonka) FORMAT TabSeparated"

    # clickhouse-client -q "select * from test.test FORMAT TSVRaw"
    1 'sdasdasdaff'dfgsdfg'dfgdfg'
  • https://t.me/clickhouse_ru
    @SpicyCrack3r #44609 03:03 PM, 06 Mar 2018
    спасибо
  • https://t.me/clickhouse_ru
    @chubukov #44610 03:20 PM, 06 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @chubukov #44611 03:22 PM, 06 Mar 2018
    Помогите посчитать последний столбец с накоплением.
  • https://t.me/clickhouse_ru
    @chubukov #44612 03:23 PM, 06 Mar 2018
    Запрос:
    select
    date_created_at as "Дата",
    language "Язык",
    count() "Новые подписчики" -- ,
    -- ... as "Всего подписчиков"
    from default.push_users
    group by "Дата","Язык"
    order by "Дата" desc,"Язык"
  • @antonio_antuan #44613 03:23 PM, 06 Mar 2018
    sum?
  • @antonio_antuan #44614 03:24 PM, 06 Mar 2018
    а, с таким накоплением
  • @antonio_antuan #44615 03:24 PM, 06 Mar 2018
    пардоньте
  • https://t.me/clickhouse_ru
    @chubukov #44616 03:24 PM, 06 Mar 2018
    ага
  • https://t.me/clickhouse_ru
    @tommi_v #44617 03:36 PM, 06 Mar 2018
    аж интересно стало
  • https://t.me/clickhouse_ru
    @tommi_v #44618 03:36 PM, 06 Mar 2018
    по сути надо при выборке текущей строки иметь доступ к предыдущей
  • https://t.me/clickhouse_ru
    @tommi_v #44619 03:37 PM, 06 Mar 2018
    в пг это можно было сделать оконной функцией, но в кх их вроде нет
  • https://t.me/clickhouse_ru
    @tommi_v #44620 03:37 PM, 06 Mar 2018
    может проще посчитать на клиенте? простейший цикл, с одной строчкой в теле
  • https://t.me/clickhouse_ru
    @kshvakov #44621 03:39 PM, 06 Mar 2018
    Смотря что делать, в КХ есть https://clickhouse.yandex/docs/en/single/#runningdifferencex
    ClickHouse Documentation | ClickHouse Documentation

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

  • https://t.me/clickhouse_ru
    @hulponot #44622 03:42 PM, 06 Mar 2018
    еще есть runningAccumulate, но ему не важна группировка, так что для каждого языка отдельный столбик
  • https://t.me/clickhouse_ru
    @tommi_v #44623 03:42 PM, 06 Mar 2018
    забавно, работает
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Алексей, спасибо.
    А изредка, это с какой частотой?
  • https://t.me/clickhouse_ru
    @Shegloff #44626 03:43 PM, 06 Mar 2018
    можно было бы что-то придумать с arrayCumSum([func,] arr1, ...)
    Возвращает массив из частичных сумм элементов исходного массива (сумма с накоплением).
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @Shegloff #44628 03:45 PM, 06 Mar 2018
    только у меня на последней версии не работает
    Received exception from server (version 1.1.54343):
    Code: 46. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Unknown function arrayCumSum.
  • https://t.me/clickhouse_ru
    Меня хоть и не зовут Алексей, но дерзану ответить. Я думаю, что редко — это значит, что операции предполагаются разовые, чтобы один раз исправить исторические данные. Потому что для штатного изменения множетсва строк уже есть append-only механизмы вроде SummingMergeTree, которые не накладывают на репликацию кликхауса особых ограничений. А для UPDATE/DELETE ему нужно полностью заблокировать запись в таблицы, дождаться того, чтобы догналась реплиацию, выполнить эту операцию, и только потом продолжить (потому что UPDATE/DELETE зависят от порядка).
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #44611 #44630 04:05 PM, 06 Mar 2018
    :) select groupArray(day) as day, groupArray(lang) as lang, groupArray(c) from (select day, lang, count() as c from test.test where lang = 'ru' group by day, lang)

    ┌─day───────────────────────────────────────────────────┬─lang──────────────────┬─groupArray(c)─┐
    │ ['2018-03-06','2018-03-04','2018-03-05','2018-03-03'] │ ['ru','ru','ru','ru'] │ [2,2,2,3] │
    └───────────────────────────────────────────────────────┴───────────────────────┴───────────────┘
    ну вот если развернуть это все в массивы, то как раз над groupArray(c) можно было применить arrayCumSum, который бы и посчитал накопление, а потом обратно в строки
  • https://t.me/clickhouse_ru
    @chubukov ↶ Reply to #44622 #44631 04:05 PM, 06 Mar 2018
    И прадва пофиг, шит
  • https://t.me/clickhouse_ru
    @Shegloff #44632 04:05 PM, 06 Mar 2018
    только arrayCumSum не фурыкает
  • https://t.me/clickhouse_ru
    @chubukov ↶ Reply to #44620 #44633 04:06 PM, 06 Mar 2018
    похоже вы правы
  • https://t.me/clickhouse_ru
    @hulponot #44634 04:07 PM, 06 Mar 2018
    select lang,a,runningAccumulate(sumIfState(a,lang='a')) as langA,runningAccumulate(sumIfState(a,lang='b')) as langB from (select arrayJoin(['a','b']) lang,arrayJoin([1,2,3,4,5]) as a) group by a,lang
  • https://t.me/clickhouse_ru
    @tommi_v #44635 04:07 PM, 06 Mar 2018
    если отсортировать по lang ASC, date ASC, должно работать с runningDifference
  • Зависит от объёма данных в затронутых партициях. По скорости работает примерно так же как OPTIMIZE FINAL.
  • https://t.me/clickhouse_ru
    @tommi_v ↶ Reply to #44635 #44637 04:08 PM, 06 Mar 2018
    если важно именно как у вас, можно завернуть в сабквери и пересортировать
  • Реализация всё-таки без длинных блокировок.
  • https://t.me/clickhouse_ru
    как вы тогда решаете вопрос консистентности?
  • https://t.me/clickhouse_ru
    @chubukov ↶ Reply to #44632 #44640 04:09 PM, 06 Mar 2018
    жаль, выгладит ахеренно)
  • Известно, на каком наборе кусков данных нужно будет выполнять DELETE/UPDATE.
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #44640 #44642 04:12 PM, 06 Mar 2018
    осталось понять как из массива [2,2,2,3] сделать [2,4,6,9] без функции arrayCumSum, и можно фигарить =)
  • https://t.me/clickhouse_ru
    @chubukov ↶ Reply to #44634 #44643 04:12 PM, 06 Mar 2018
    Походу то что нужно. Большое спасибо!
  • https://t.me/clickhouse_ru
    Репликацию тоже не ждете? То есть если я пошлю сразу INSERT и потом UPDATE, то на каких кусках выполнится UPDATE на реплике?
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #44634 #44645 04:15 PM, 06 Mar 2018
    зачот!
  • Порядок всех модифицирующих операций (INSERT, ALTER...) определяется глобально. Реплика сначала скачает кусок с INSERT, потом сделает UPDATE, или скачает готовый обновлённый кусок.
  • https://t.me/clickhouse_ru
    Круто :)! Было бы классно, если бы где-то рассказывалось более подробно об устройстве репликации в ClickHouse, а то пока что я только от ваших коллег узнаю, как она работает :).
  • @milovidov_an #44648 04:19 PM, 06 Mar 2018
    У нас был доклад (РИТ++ и DevConf), где в общих чертах рассказывается. Правда для него не сохранилось видео. Также есть весьма поверхностное описание здесь: https://clickhouse.yandex/docs/en/development/architecture/ в конце.
  • https://t.me/clickhouse_ru
    Тогда у меня пара вопросов осталось:

    1. как определяется, какой список кусков надо скачать, когда появляется новая реплика?
    2. что будет, если хост с репликой «упадет» навсегда? для него будет копиться очередь для репликации в зукипере?
    3. как определяется, каких кусков на реплике не хватает? полный список кусков хранится в индексе колонок, или где-то отдельно? как высчитывается разница, ведь кусков может быть очень много?
  • @milovidov_an #44650 04:35 PM, 06 Mar 2018
    1. Есть глобальный лог операций. Все реплики смотрят на этот лог, запоминают позицию, до куда его дочитали, копируют записи в свою очередь задач, и потом выполняют эти задачи.

    При создании новой реплики, она копирует позицию в логе, очередь задач, и множество кусков, у какой-то существующей реплики. Далее куски из множества кусков скачиваются, а затем задачи в очереди выполняются как обычно.
  • @milovidov_an #44651 04:37 PM, 06 Mar 2018
    2. В глобальном логе не будут удаляться старые записи и он будет накапливаться, пока ноду с репликой не удалят из ZooKeeper окончательно вручную. Это одна из известных проблем. Для решения предлагается сделать режим восстановления реплики без использования лога, а по состоянию другой реплики.
  • @milovidov_an #44652 04:38 PM, 06 Mar 2018
    3. Список кусков, которые должны быть на реплике, хранится в ZooKeeper. Кусков не может быть очень много.
  • https://t.me/clickhouse_ru
    @yourock88 #44653 04:42 PM, 06 Mar 2018
    @milovidov_an спасибо, стало яснее :)
  • https://t.me/clickhouse_ru
    интересно, сколько места занимает снапшот зукипера в яндексе и за какое время он там накопился?
  • @milovidov_an #44655 05:16 PM, 06 Mar 2018
    Чуть больше 10 GB, размер с течением времени более-менее стабилен. Реплицируемые таблицы используются с осени 2014 года.
  • https://t.me/clickhouse_ru
    Только я успел перевести все вопросы в своем faq, так еще простыню текста подкинули
  • https://t.me/clickhouse_ru
    @vKoroteev #44657 05:28 PM, 06 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Shegloff #44658 05:33 PM, 06 Mar 2018
    Группы гугл читал? Фак на факе
  • https://t.me/clickhouse_ru
    @stufently #44659 05:36 PM, 06 Mar 2018
    Причем и в прямом и переносном смысле
  • https://t.me/clickhouse_ru
    @strangeqargo #44660 05:38 PM, 06 Mar 2018
    Кек
  • https://t.me/clickhouse_ru
    @tommi_v #44661 06:33 PM, 06 Mar 2018
    господа, а есть ли что-то подобное unique constraint в традиционных бд?
  • https://t.me/clickhouse_ru
    @tommi_v #44662 06:34 PM, 06 Mar 2018
    можно конечно проверить, есть ли значение, а потом вписать, но 1) могут быть рейс кондишены 2) довольно медленное чтение, если записи в таблице не нашлось
  • https://t.me/clickhouse_ru
    @Shegloff #44663 07:06 PM, 06 Mar 2018
    Кроме движка ReplacingMergeTree нет
  • https://t.me/clickhouse_ru
    @tommi_v #44664 09:46 PM, 06 Mar 2018
    если он умеет сохранять только самую раннюю версию, то это то, что надо
  • https://t.me/clickhouse_ru
    @tommi_v #44665 09:46 PM, 06 Mar 2018
    из описания не очень понятно
  • Наоборот, сохраняет самую позднюю.
  • https://t.me/clickhouse_ru
    @Civiloid #44667 11:17 PM, 06 Mar 2018
    @milovidov_an https://blog.cloudflare.com/http-analytics-for-6m-requests-per-second-using-clickhouse/ тут вот новое от cloudflare :)
    HTTP Analytics for 6M requests per second using ClickHouse

    One of our large scale data infrastructure challenges here at Cloudflare is around providing HTTP traffic analytics to our customers. HTTP Analytics is available to all our customers via two options:

  • @milovidov_an #44668 11:33 PM, 06 Mar 2018
    Спасибо, сейчас почитаем... (или завтра утром)
  • https://t.me/clickhouse_ru
    @freeseacher #44669 11:49 PM, 06 Mar 2018
    Translation from Russian: ClickHouse doesn't have brakes (or isn't slow)
  • 07 March 2018 (232 messages)
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #44664 #44670 05:34 AM, 07 Mar 2018
    А в какой бд unique ключ сохраняет самую раннюю?
  • https://t.me/clickhouse_ru
    @mrlamberg #44671 05:36 AM, 07 Mar 2018
    в других бд он ругается просто
  • https://t.me/clickhouse_ru
    @mrlamberg #44672 05:36 AM, 07 Mar 2018
    в постгресе можно написать on conflict do nothing
  • https://t.me/clickhouse_ru
    @mrlamberg #44673 05:36 AM, 07 Mar 2018
    и будет оставатся старая версия
  • https://t.me/clickhouse_ru
    @nengchak #44674 05:38 AM, 07 Mar 2018
    ПРиветы, кто подскажет, какие либы под питон уже юзали для работы с CH?
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #44672 #44675 05:42 AM, 07 Mar 2018
    Ну так то и в мускуле on duplicate key update есть, и insert ignore, я думал есть прям индекс такой где то :)
  • https://t.me/clickhouse_ru
    зачем, если есть import requests
  • https://t.me/clickhouse_ru
    @leidruid ↶ Reply to #44674 #44677 06:24 AM, 07 Mar 2018
    GitHub - Infinidat/infi.clickhouse_orm: A Python library for working with the ClickHouse database (https://clickhouse.yandex/)

    A Python library for working with the ClickHouse database (https://clickhouse.yandex/) - GitHub - Infinidat/infi.clickhouse_orm: A Python library for working with the ClickHouse database (https://c...

  • https://t.me/clickhouse_ru
    clickhouse-sqlalchemy.
  • https://t.me/clickhouse_ru
    @cmdrosmium #44679 06:25 AM, 07 Mar 2018
    http api мне вполне хватает. а либы вот, уже скинули
  • https://t.me/clickhouse_ru
    @underbird #44680 06:25 AM, 07 Mar 2018
    Не без костылей, но работает. И имеет хорошие перспективы, на мой взгляд.
  • https://t.me/clickhouse_ru
    @leidruid ↶ Reply to #44676 #44681 06:25 AM, 07 Mar 2018
    requests - это как бэ, простите, говно, спички и желуди
  • https://t.me/clickhouse_ru
    @underbird #44682 06:26 AM, 07 Mar 2018
    Согласен. Сколько ни пытался обойтись без ORM-ки - даже на мелких проектах ловил себя на том, что начинаю писать ORM-ку сам.
  • https://t.me/clickhouse_ru
    @leidruid #44683 06:26 AM, 07 Mar 2018
    зачем же сразу начинать с костылей ? :) Может, у человека все получится естественным способом
  • https://t.me/clickhouse_ru
    @underbird #44684 06:26 AM, 07 Mar 2018
    И, естественно, самописное всегда получается хуже уже готового и поддерживаемого.
  • https://t.me/clickhouse_ru
    @leidruid #44685 06:27 AM, 07 Mar 2018
    Мы ещё юзали pandas, но лично я не пробовал
  • https://t.me/clickhouse_ru
    @leidruid #44686 06:27 AM, 07 Mar 2018
    GitHub - kszucs/pandahouse: Pandas interface for Clickhouse database

    Pandas interface for Clickhouse database. Contribute to kszucs/pandahouse development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @leidruid #44687 06:27 AM, 07 Mar 2018
    Говорят, быстрее
  • https://t.me/clickhouse_ru
    @149051052 #44688 06:37 AM, 07 Mar 2018
    Привет!
    Есть ли возможность привести строку с IDs через запятую в тип tuple. Например у меня есть ячейка, в которой хранятся идентификаторы и мне нужно сделать IN по этим идентификаторам.
  • Лучше external data использовать, если идентификаторов много
  • @pookieShmukie #44690 06:39 AM, 07 Mar 2018
    Да и я не уверен, что tuple отработает как ожидается
  • @110657893 #44691 06:40 AM, 07 Mar 2018
    Ребята, zookeeper 3.5 будет работать с clickhouse? Нормально его (zookeeper 3.5) вообще использовать?
  • https://t.me/clickhouse_ru
    Спасибо. Их много. Но и самих знаений со списком IDs может быть много.
  • плюсую. в sqlalchemy-clickhouse от cloudflare возможностей немношк пожиже
  • Тогда однозначно лучше external data. У нас КХ начинал думать над парсингом когда в запрос прилетало 40к идентификаторов
  • @304168605 #44695 06:44 AM, 07 Mar 2018
    подскажите, реплики используются только для отказоустойчивости? на производительность запросов как то влияет их наличие/количество?
  • Мы используем такой подход. Пускаем туда запросы.
  • @pookieShmukie #44697 06:46 AM, 07 Mar 2018
    Влияет на скорость
  • @pookieShmukie #44698 06:46 AM, 07 Mar 2018
    Но лучше шардов добавлять :)
  • @304168605 #44699 06:48 AM, 07 Mar 2018
    а какая зависимость в производительности запросов от количества шардов? запрос делается на одном шарде 10с а на двух будет 5 с ?
  • https://t.me/clickhouse_ru
    у нас было так, при условии, что шарды одинаковые по стате
  • @304168605 #44701 06:50 AM, 07 Mar 2018
    спасибо
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44691 #44702 07:01 AM, 07 Mar 2018
    Должен работать
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44695 #44703 07:02 AM, 07 Mar 2018
    Не только, у вас запросы могут "улетать" на разные реплики, т.е. фактически вы сможете выполнить больше запросов за единицу времени
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44699 #44704 07:03 AM, 07 Mar 2018
    Да, в общем случае почти линейно растет
  • @304168605 #44705 07:04 AM, 07 Mar 2018
    а распаралеливание на разные реплики проиходит прозрачно?
  • https://t.me/clickhouse_ru
    @nengchak ↶ Reply to #44677 #44706 07:07 AM, 07 Mar 2018
    не будет как пушкой по воробьям, если никаких инсертов, а только селекты
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44705 #44707 07:09 AM, 07 Mar 2018
    Запросы будут приходить то на одну машину, то на другую, в зависимости от настроек (https://clickhouse.yandex/docs/en/single/#load_balancing). Если у вас всего один шард и несколько реплик то такое поведение необходимо реализовывать самим
  • https://t.me/clickhouse_ru
    @leidruid ↶ Reply to #44706 #44708 07:14 AM, 07 Mar 2018
    имхо, все остальное не лучше
  • https://t.me/clickhouse_ru
    @nengchak ↶ Reply to #44708 #44709 07:15 AM, 07 Mar 2018
    хотя я вижу, в него уже вложено почти все что нужно, пагинация/агрегация и итд
  • https://t.me/clickhouse_ru
    @leidruid #44710 07:15 AM, 07 Mar 2018
    Попробуйте pandas, он побыстрее, говорят коллеги
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44708 #44711 07:17 AM, 07 Mar 2018
    Ну, для Python есть https://github.com/mymarilyn/clickhouse-driver , ORM это путь "в никуда" :)
    GitHub - mymarilyn/clickhouse-driver: ClickHouse Python Driver with native interface support

    ClickHouse Python Driver with native interface support - GitHub - mymarilyn/clickhouse-driver: ClickHouse Python Driver with native interface support

  • https://t.me/clickhouse_ru
    @nengchak ↶ Reply to #44710 #44712 07:18 AM, 07 Mar 2018
    не работал раньше с ним, это как понял, готовый инструментарий для работы с стат. данными?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44712 #44713 07:19 AM, 07 Mar 2018
    Да, достаточно крутая штука для работы с данными
  • https://t.me/clickhouse_ru
    @leidruid ↶ Reply to #44711 #44714 07:23 AM, 07 Mar 2018
    Или я такой криворукий, или лыжи не едут, мне не удалось его собрать под центосью :(
    Ругался на все, что ни попадя
  • https://t.me/clickhouse_ru
    @nengchak ↶ Reply to #44714 #44715 07:25 AM, 07 Mar 2018
    через пип ставил?
  • https://t.me/clickhouse_ru
    @nengchak #44716 07:26 AM, 07 Mar 2018
    у меня все собралось на 7.4, точнее установилось
  • https://t.me/clickhouse_ru
    @leidruid ↶ Reply to #44715 #44717 07:27 AM, 07 Mar 2018
    да
  • https://t.me/clickhouse_ru
    @nengchak ↶ Reply to #44717 #44718 07:30 AM, 07 Mar 2018
    сетаптулс должен сказать что и чего не хватает
  • https://t.me/clickhouse_ru
    @nengchak #44719 07:30 AM, 07 Mar 2018
    а вот с пандой у меня чет не получается, просто не врубаюсь как юзать )
  • https://t.me/clickhouse_ru
    Если на этапе сборки сишной ломается, то не скажет. А если центось, то небось устаревшая как хрен знает што.
  • https://t.me/clickhouse_ru
    @nengchak ↶ Reply to #44720 #44721 07:35 AM, 07 Mar 2018
    хмм, разве не говорит? у меня всегда говорила, типа того нету, этого.
  • https://t.me/clickhouse_ru
    @leidruid ↶ Reply to #44720 #44722 07:35 AM, 07 Mar 2018
    Новая центось, старой не держим
  • https://t.me/clickhouse_ru
    @strangeqargo #44723 07:35 AM, 07 Mar 2018
    Ну он может и скажет, когда сломается %)
  • https://t.me/clickhouse_ru
    Забросили бы логи на pastebin или в issues к чувакам
  • https://t.me/clickhouse_ru
    @leidruid #44725 07:37 AM, 07 Mar 2018
    Если на следующую попытку будет аналогичный результат - так и сделаю
  • https://t.me/clickhouse_ru
    @nengchak #44726 07:38 AM, 07 Mar 2018
    Может кто примерчиком кинуть в меня по панде?
  • https://t.me/clickhouse_ru
    @jusamorez #44727 07:38 AM, 07 Mar 2018
    Введение в pandas: анализ данных на Python

    pandas это высокоуровневая Python библиотека для анализа данных. Почему я её называю высокоуровневой, потому что построена она поверх более низкоуровневой библиотеки NumPy (написана на Си), что явл…

  • https://t.me/clickhouse_ru
    @nengchak ↶ Reply to #44727 #44728 07:39 AM, 07 Mar 2018
    да не, я про как его подружить с кликхаусом )
  • https://t.me/clickhouse_ru
    @nengchak #44729 07:39 AM, 07 Mar 2018
    или лучше запросы отдельно, работа с данными отдельно?
  • https://t.me/clickhouse_ru
    @nengchak #44730 07:39 AM, 07 Mar 2018
    https://github.com/kszucs/pandahouse

    Вот нашел, но что такое df -
    GitHub - kszucs/pandahouse: Pandas interface for Clickhouse database

    Pandas interface for Clickhouse database. Contribute to kszucs/pandahouse development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @nengchak #44731 07:39 AM, 07 Mar 2018
    это сама панда чтоли?
  • https://t.me/clickhouse_ru
    @leidruid #44733 07:40 AM, 07 Mar 2018
    kszucs/pandahouse

    Pandas interface for Clickhouse database. Contribute to kszucs/pandahouse development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @nengchak #44734 07:40 AM, 07 Mar 2018
    а туплю
  • https://t.me/clickhouse_ru
    @b0ch4r0v ↶ Reply to #44667 #44735 08:52 AM, 07 Mar 2018
    Спасибо ещё раз core разработчикам ClickHouse за отличный инструмент позволяющий решать проблемы подобного масштаба, и за быструю реакцию на пул реквесты.
  • https://t.me/clickhouse_ru
    @ihard #44736 09:05 AM, 07 Mar 2018
    подскажите в чем может быть проблема с неверным паролем для пользователя default в error логе?
    CH 1.1.54343, 4 сервера 2 шарда по 2 реплики при создании кластера для пользователя default был задан пароль, но затем убран т.е. сейчас пустой. Все 4 сервера по очереди порестартил - но ошибка не ушла - где можно посмотреть логин для реплик и возможно почистить пароль для использования репликации?
    https://pastebin.com/52c4frdb
  • https://t.me/clickhouse_ru
    @ihard #44737 09:06 AM, 07 Mar 2018
    при этом на всех серверах безпарольный вход работает для default успешно работает
  • https://t.me/clickhouse_ru
    @kshvakov #44738 09:11 AM, 07 Mar 2018
    Если у вас 2-а шарда, то, возможно, у вас и distributed таблицы есть, в remote_servers логин/пароль не писали?
  • https://t.me/clickhouse_ru
    @baltazorbest #44739 09:18 AM, 07 Mar 2018
    Приветствую. Наше опечатку в документации:
    https://clickhouse.yandex/docs/ru/operations/settings/settings/#settings_settings_max_replica_delay_for_distributed_queries - тут
    Сейчас: Если оставание реплики
    Нужно: Если отставание реплики

    Поправите пожалуйста 🙂
  • https://t.me/clickhouse_ru
    @149051052 #44740 09:19 AM, 07 Mar 2018
    Заявки на редактирвоание лучше сотавлять в github: https://github.com/yandex/ClickHouse/blob/master/docs/ru/operations/settings/settings.md
    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
    @125885693 #44741 09:22 AM, 07 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44739 #44742 09:32 AM, 07 Mar 2018
    Вы можете смело делать пулреквест и никого не ждать;)
  • https://t.me/clickhouse_ru
    @Sharmanshik #44743 09:43 AM, 07 Mar 2018
    Всем привет, столкнулся с странной ситуацией, пишем в КХ через HTTP POSTом, в том числе создаем таблицы, например tinylog, так вот периодически create table внезапно может занять до 10 секунд (судя по логам KX сервера), причем следующий подобный квери заходит моментально. Версия clickhouse-server-1.1.54343-1.el7.x86_64
  • @DeamonMV #44744 09:49 AM, 07 Mar 2018
    Доброго времени суток
    соорентируйте пожалуйста как такое может быть, что дата которая пишется в КХ и функция toMonday от этой даты - разные.
    SELECT
    date,
    toMonday(date) AS tomonday,
    count()
    FROM events_tv21
    GROUP BY date

    ┌───────date─┬───tomonday─┬────count()─┐
    │ 1974-01-11 │ 1974-01-07 │ 1 │
    │ 2017-08-15 │ 2017-08-14 │ 1 │
    │ 2017-08-27 │ 2017-08-21 │ 1 │
    │ 2017-09-02 │ 2017-08-28 │ 40 │
    │ 2017-09-15 │ 2017-09-11 │ 48 │
    │ 2017-09-16 │ 2017-09-11 │ 1 │
    │ 2017-09-21 │ 2017-09-18 │ 1 │
    │ 2017-10-13 │ 2017-10-09 │ 3 │
    │ 2017-10-16 │ 2017-10-16 │ 1 │
    │ 2017-11-12 │ 2017-11-06 │ 2 │
  • @DeamonMV #44745 09:49 AM, 07 Mar 2018

    │ 2017-12-10 │ 2017-12-04 │ 1 │
    │ 2018-01-01 │ 2018-01-01 │ 2155210203 │
    │ 2018-01-02 │ 2018-01-01 │ 2267525304 │
    │ 2018-01-03 │ 2018-01-01 │ 1886837768 │
    │ 2018-01-04 │ 2018-01-01 │ 1459539656 │
    │ 2018-01-05 │ 2018-01-01 │ 1488519391 │
    │ 2018-01-06 │ 2018-01-01 │ 1434134562 │
    │ 2018-01-07 │ 2018-01-01 │ 1471809615 │
    │ 2018-01-08 │ 2018-01-08 │ 1641828748 │

    И подскажите как сделать детач партиции если

    ENGINE = MergeTree PARTITION BY toMonday(date)
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44745 #44746 09:53 AM, 07 Mar 2018
    ALTER TABLE table DETACH PARTITION '2018-01-08', что вас удивляет в toMonday, она возвращает дату "понедельника" недели в которую попала ваша дата, т.е. они действительно могут быть разными
  • @DeamonMV #44747 09:54 AM, 07 Mar 2018
    сработало.
    я почемуто подумал что ф-ция возвращает день в месяце.
    Спасибо
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #44744 #44748 09:59 AM, 07 Mar 2018
    toMonday это такой toStartOfWeek. неделя в разных местах может начинаться с разных дней, в clickhouse неделя начинается с понедельника. и чтобы не путать лишний раз пользователей, функция называется соответственно.
  • https://t.me/clickhouse_ru
    @orantius #44749 10:00 AM, 07 Mar 2018
    для дня месяца есть функция toDayOfMonth
  • https://t.me/clickhouse_ru
    @nicname #44750 11:06 AM, 07 Mar 2018
    а в кх как-то можно вывести тип поля из получившейся выборки?
    выбираю SELECT toString(поле_с_типом_UInt32) as myfield и на выходе уже после драйвера получаю тип myfield = int64, хочу диагностировать – это проблема драйвера или чего
  • https://t.me/clickhouse_ru
    @orantius #44751 11:07 AM, 07 Mar 2018
    toTypeName?
  • https://t.me/clickhouse_ru
    @nicname #44752 11:09 AM, 07 Mar 2018
    ага, спасибо, проблема драйвера
  • @364531390 #44753 11:36 AM, 07 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @michael_perlov #44754 11:56 AM, 07 Mar 2018
    Joined.
  • @pavel_maksimow #44755 12:03 PM, 07 Mar 2018
    Ребят, в чем может быть причина. Загружаю в КХ данные из Яндекс Директ. Но в КХ они отличаются от тех, что я скачиваю. Но не все отличается, а только поле Cost. Кол-во строк одинаковое.
  • на скрине, разница видна в поле cost_differend.
    cost_x эталонные, cost_y это данные в КХ
  • https://t.me/clickhouse_ru
    Возможно меньше разрядности в созданной вами таблице или не та знаковость. Число скастилось.
  • в cost_differend данные поделены на 1млн. в исходных столбцах забыл сделать
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #44758 #44759 12:07 PM, 07 Mar 2018
    Скорее всего типы данных. Проверьте что они подходят.
  • https://t.me/clickhouse_ru
    @xammett #44760 12:19 PM, 07 Mar 2018
    Коллеги, привет. Ради интереса, не замечали через сколько схлопывается SummingMergeTree при добавлении новых данных?
  • https://t.me/clickhouse_ru
    @Shegloff #44761 12:22 PM, 07 Mar 2018
    если сразу после insert'а впендюрить optimize table partition final, то быстро :)
  • https://t.me/clickhouse_ru
    @mrlamberg #44762 12:23 PM, 07 Mar 2018
    ага быстро)
  • https://t.me/clickhouse_ru
    @mrlamberg #44763 12:23 PM, 07 Mar 2018
    у меня 10 гб это занимает секунду
  • https://t.me/clickhouse_ru
    @xammett ↶ Reply to #44761 #44764 12:23 PM, 07 Mar 2018
    это понятно)хочется знать, когда без optimze table сделается
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #44764 #44765 12:23 PM, 07 Mar 2018
    После Мержа
  • https://t.me/clickhouse_ru
    @xammett #44766 12:24 PM, 07 Mar 2018
    по мне вызов optimze table и есть мердж)
  • https://t.me/clickhouse_ru
    @xammett #44767 12:24 PM, 07 Mar 2018
    просто когда он пассивно произойдет
  • https://t.me/clickhouse_ru
    @xammett #44768 12:24 PM, 07 Mar 2018
    хочется иметь такой lazy куб
  • https://t.me/clickhouse_ru
    @rheinx #44769 12:24 PM, 07 Mar 2018
    Селектить все равно рекомендуют с допгрегацией
  • https://t.me/clickhouse_ru
    @rheinx #44770 12:25 PM, 07 Mar 2018
    Нет гарантированного времени мержа
  • https://t.me/clickhouse_ru
    @rheinx #44771 12:25 PM, 07 Mar 2018
    Он может вообще не произойти
  • https://t.me/clickhouse_ru
    @xammett ↶ Reply to #44771 #44772 12:25 PM, 07 Mar 2018
    надо померить это
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #44772 #44773 12:25 PM, 07 Mar 2018
    Это зависит ещё и от интенсивности записи.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44764 #44774 12:26 PM, 07 Mar 2018
    Тут правильный ответ: "когда-нибудь"
  • https://t.me/clickhouse_ru
    @xammett #44775 12:26 PM, 07 Mar 2018
    тестовый стенд, инетнсивность 0
  • https://t.me/clickhouse_ru
    @xammett #44776 12:26 PM, 07 Mar 2018
    = )
  • https://t.me/clickhouse_ru
    @xammett #44777 12:26 PM, 07 Mar 2018
    ясно, в общем делать руками optimize
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #44777 #44778 12:27 PM, 07 Mar 2018
    А зачем? Почему просто не оставить это самому СН?
  • https://t.me/clickhouse_ru
    @kshvakov #44779 12:27 PM, 07 Mar 2018
    Не надо делать руками OPTIMIZE, зачем оно вам?
  • https://t.me/clickhouse_ru
    @xammett ↶ Reply to #44778 #44780 12:27 PM, 07 Mar 2018
    неизвестно когда он это сделает, а если данные нужны сейчас
  • https://t.me/clickhouse_ru
    @xammett #44781 12:27 PM, 07 Mar 2018
    по сути это кубовая таблица
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #44780 #44782 12:27 PM, 07 Mar 2018
    Берите с доагрегацией
  • https://t.me/clickhouse_ru
    @xammett #44783 12:27 PM, 07 Mar 2018
    в идеале после инсерта, должен следовать optimize
  • https://t.me/clickhouse_ru
    @kshvakov #44784 12:28 PM, 07 Mar 2018
    Нет же
  • https://t.me/clickhouse_ru
    @kshvakov #44785 12:28 PM, 07 Mar 2018
    Всегда группируйте
  • https://t.me/clickhouse_ru
    @rheinx #44786 12:28 PM, 07 Mar 2018
    Потому что даже optimize может не все смержить если я верно помню
  • https://t.me/clickhouse_ru
    @xammett #44787 12:28 PM, 07 Mar 2018
    почему же?это по сути куб без group by, мы задаем индекс и по нему создается куб по сути после optimize
  • https://t.me/clickhouse_ru
    @Shegloff #44788 12:28 PM, 07 Mar 2018
    FINAL по идее должен все. Или нет?...
  • https://t.me/clickhouse_ru
    @xammett #44789 12:29 PM, 07 Mar 2018
    не все верно, если поля не указаны явно может их не смержить, но я еще это не проверял
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44787 #44790 12:29 PM, 07 Mar 2018
    Потому, что это должно работать в паре с агрегатными функциями, т.к. фоновое слияние не гарантируется
  • https://t.me/clickhouse_ru
    @vladimirmyuge #44791 12:29 PM, 07 Mar 2018
    А ещё optimize final может не сработать вообще и без предупреждения
  • https://t.me/clickhouse_ru
    @vladimirmyuge #44792 12:29 PM, 07 Mar 2018
    Например, если места на диске не так много, как было раньше
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #44787 #44793 12:30 PM, 07 Mar 2018
    Правильно делать с group by)
  • https://t.me/clickhouse_ru
    @xammett ↶ Reply to #44792 #44794 12:30 PM, 07 Mar 2018
    это нюансы уже, по мне кейс этого движка простой - куб по индексу для рассчета
  • https://t.me/clickhouse_ru
    @xammett #44795 12:31 PM, 07 Mar 2018
    если нужные поля обозначить последним параметром, то не нужно делать group by
  • https://t.me/clickhouse_ru
    @xammett #44796 12:31 PM, 07 Mar 2018
    если мы хотим тупо сумму считать
  • https://t.me/clickhouse_ru
    @mrlamberg #44797 12:31 PM, 07 Mar 2018
    мне перед запросом делать груп бай по айдишнику надо чтоли?)
  • https://t.me/clickhouse_ru
    @xammett #44798 12:31 PM, 07 Mar 2018
    зачем?)
  • https://t.me/clickhouse_ru
    @xammett #44799 12:31 PM, 07 Mar 2018
    мы при создании таблицы все правила задаем
  • https://t.me/clickhouse_ru
    @xammett #44800 12:31 PM, 07 Mar 2018
    задали и поехали
  • https://t.me/clickhouse_ru
    @kshvakov #44801 12:33 PM, 07 Mar 2018
    Почему-то всегда находятся люди которые хотят делать что-то вопреки документации и функционалу, почему не ясно
  • https://t.me/clickhouse_ru
    @kshvakov #44802 12:33 PM, 07 Mar 2018
    Это как автовакум в PostgreSQL отключить и считать что всё в порядке )
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #44801 #44803 12:33 PM, 07 Mar 2018
    Потому что CH видится серебряной пулей. И с каждой новой функцией блестит все сильнее.
  • https://t.me/clickhouse_ru
    @rheinx #44804 12:34 PM, 07 Mar 2018
    Сейчас после того как народ до конца узнает про возможности чтения из mysql/odbc, вообще движуха костылей начнётся.
  • https://t.me/clickhouse_ru
    @xammett ↶ Reply to #44801 #44805 12:35 PM, 07 Mar 2018
    вы куба использовали? вот это прям оно, только без процедур
  • https://t.me/clickhouse_ru
    @xammett #44806 12:36 PM, 07 Mar 2018
    если вам ничего кроме cуммы считать не нужно, по опр полям
  • https://t.me/clickhouse_ru
    @xammett #44807 12:36 PM, 07 Mar 2018
    это не для всех кейсов подходит
  • https://t.me/clickhouse_ru
    @xammett #44808 12:36 PM, 07 Mar 2018
    но как написано в той же документации imps,clicks идеально
  • @Myousai #44809 12:36 PM, 07 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44805 #44810 12:37 PM, 07 Mar 2018
    Я примерно представляю как работает ClickHouse и рекомендую вам не полагаться на OPTIMIZE, а доагрегировать результаты не думая был мерж или нет
  • https://t.me/clickhouse_ru
    @xammett ↶ Reply to #44810 #44811 12:37 PM, 07 Mar 2018
    спасибо
  • https://t.me/clickhouse_ru
    @rheinx #44812 12:37 PM, 07 Mar 2018
    Кароч это какой то пустой тред. По докам и рекомендациям делать оптимайз без особой надобности не надо. Из агрегационных таблиц надо всегда брать допгрегацией.
  • https://t.me/clickhouse_ru
    @rheinx #44813 12:38 PM, 07 Mar 2018
    Время и факт мержа не гарантирован и не регламентирован
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #44814 #44815 12:39 PM, 07 Mar 2018
    Это оконные функции ?
    У СН их нет но посмотрите в доках, там есть нечто похожее на то что вам нужно.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44816 #44817 12:57 PM, 07 Mar 2018
    вот именно такой чтоб общее в соседней колонке выводило нет
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #44816 #44818 01:00 PM, 07 Mar 2018
    arrayCumSum
    sumif
    Не то?
  • https://t.me/clickhouse_ru
    @Shegloff #44819 01:02 PM, 07 Mar 2018
    arrayCumSum кстати не работает на последней версии КХ, говорит неизвестная функция
  • https://t.me/clickhouse_ru
    @rheinx #44820 01:04 PM, 07 Mar 2018
    Где то блин я точно видел ограниченные немного но похожие на оконные функции
  • https://t.me/clickhouse_ru
    @orantius #44821 01:05 PM, 07 Mar 2018
    SELECT version()
    ┌─version()─┐
    │ 1.1.54356 │
    └───────────┘
    SELECT arrayCumSum([1, 1, 1])
    ┌─arrayCumSum([1, 1, 1])─┐
    │ [1,2,3] │
    └────────────────────────┘
  • https://t.me/clickhouse_ru
    @tommi_v ↶ Reply to #44820 #44822 01:06 PM, 07 Mar 2018
    вчера было, runningDifference и runningAggregation кажется
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #44821 #44823 01:06 PM, 07 Mar 2018
    так нечестно, вчера 343 была последняя :)
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #44823 #44824 01:06 PM, 07 Mar 2018
    😂😂😂
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #44823 #44825 01:06 PM, 07 Mar 2018
    динамично развивающийся продукт
  • https://t.me/clickhouse_ru
    @kshvakov #44826 01:08 PM, 07 Mar 2018
    Если уж на то пошло то и 54356 уже не последняя )
  • https://t.me/clickhouse_ru
    @ITishkin #44827 01:33 PM, 07 Mar 2018
    Подскажите, пожалуйста, а ENGINE = mysql с какой версии реализовано?
  • https://t.me/clickhouse_ru
    @mikmak84 #44828 01:35 PM, 07 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44827 #44830 01:35 PM, 07 Mar 2018
    1.1.54337
  • https://t.me/clickhouse_ru
    @ITishkin #44831 01:36 PM, 07 Mar 2018
    спасибо,я правильно понимаю, это движок для таблицы?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44829 #44832 01:37 PM, 07 Mar 2018
    У вас же написано было что группируете, да это и не важно, всёравно эти функции не дадут вам нужного результата
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44831 #44833 01:37 PM, 07 Mar 2018
    И движок и функции, т.е. чтоб сходить в MySQL не обязательно таблицу создавать
  • https://t.me/clickhouse_ru
    @ITishkin ↶ Reply to #44833 #44834 01:39 PM, 07 Mar 2018
    просто у меня на 1.1.54342 на CREATE TABLE ругается DB::Exception: Unknown table engine mysql. Может в конфиге чего поправить ещё надо?
  • https://t.me/clickhouse_ru
    @kshvakov #44835 01:41 PM, 07 Mar 2018
    Engine называется MySQL
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @ITishkin ↶ Reply to #44835 #44837 01:42 PM, 07 Mar 2018
    огромное спасибо :)
  • https://t.me/clickhouse_ru
    @nicname #44838 01:44 PM, 07 Mar 2018
    а табикс про временные таблицы с движком Memory не знает?
  • А разве они не в рамках сессии живут?
  • @garikanet #44840 01:55 PM, 07 Mar 2018
    табикс не умеет сессии явно, можно попробовать указать как доп.параметр при подключении
  • https://t.me/clickhouse_ru
    @nicname #44841 01:55 PM, 07 Mar 2018
    а, видимо, я в консоле ее создал, из табикса не видно, ясно, спасибо
  • https://t.me/clickhouse_ru
    @ITishkin ↶ Reply to #44835 #44842 01:58 PM, 07 Mar 2018
    Подскажите, пожалуйста, ещё. Создал таблицу, пароль к БД - пустая строка. при попытке получить данные из таблицы возникает ошибка: Can't connect to MySQL server on '3306' (22 "Invalid argument") ((nullptr):0), e.what() = mysqlxx::ConnectionFailed Какой аргумент ему может не нравиться?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44842 #44843 02:08 PM, 07 Mar 2018
    А как создали? Есть пример ?
  • https://t.me/clickhouse_ru
    @ITishkin #44844 02:09 PM, 07 Mar 2018
    CREATE TABLE stats.mysql (
    id UInt32
    )
    ENGINE = MySQL('3306', '10.250.1.1', 'inv', 'root', '');
  • https://t.me/clickhouse_ru
    @kshvakov #44845 02:10 PM, 07 Mar 2018
    надо не так, секунду
  • https://t.me/clickhouse_ru
    @kshvakov #44846 02:12 PM, 07 Mar 2018
    ENGINE = MySQL('10.250.1.1:3306', 'тут имя бд', 'тут имя таблицы', 'root', '');
  • https://t.me/clickhouse_ru
    @ITishkin ↶ Reply to #44846 #44847 02:13 PM, 07 Mar 2018
    я тормоз :( спасибо :)
  • @stackflow #44848 02:23 PM, 07 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @kmarenov #44849 02:34 PM, 07 Mar 2018
    Добрый день. При выполнении несколько раз одного и того же запроса с ANY LEFT JOIN получаем каждый раз абсолютно одинаковый результат, то есть соединение происходит одинаково, не смотря на то, что в правой таблице присутствует более одной записи для каждого значения поля, по которому делается join.
    Подскажите, пожалуйста, можно ли как-то добиться, чтобы каждый раз join выполнялся по-разному - то есть из правой таблицы выбиралсь каждый раз разные записи?
  • https://t.me/clickhouse_ru
    @orantius #44850 02:41 PM, 07 Mar 2018
    но зачем
  • https://t.me/clickhouse_ru
    @orantius #44851 02:42 PM, 07 Mar 2018
    каждый раз берется первая попавшаяся
  • https://t.me/clickhouse_ru
    Может быть попробовать правую таблицу в подзапросе отсортировать по рандому?
  • https://t.me/clickhouse_ru
    @kmarenov ↶ Reply to #44851 #44853 02:43 PM, 07 Mar 2018
    у нас каждый раз одинаково получается
  • https://t.me/clickhouse_ru
    @kmarenov ↶ Reply to #44852 #44854 02:44 PM, 07 Mar 2018
    пробовали, не помогает
  • https://t.me/clickhouse_ru
    @kmarenov #44855 02:44 PM, 07 Mar 2018
    может дело в кэше каком-нибудь?
  • https://t.me/clickhouse_ru
    @kmarenov #44856 02:44 PM, 07 Mar 2018
    как-то можно обойти это?
  • https://t.me/clickhouse_ru
    @orantius #44857 02:51 PM, 07 Mar 2018
    обычно проблемой является недетерминизм выполнения запросов
  • https://t.me/clickhouse_ru
    @orantius #44858 02:51 PM, 07 Mar 2018
    а как так получилось что вам нужен случайный ответ?
  • https://t.me/clickhouse_ru
    @michael_perlov #44859 02:52 PM, 07 Mar 2018
    rr dns на КХ 😂
  • https://t.me/clickhouse_ru
    @Shegloff #44860 02:54 PM, 07 Mar 2018
    простите, но угорел!))) это хорошо
  • https://t.me/clickhouse_ru
    @ihard ↶ Reply to #44738 #44861 02:57 PM, 07 Mar 2018
    таблицы есть - логин пароль писал - но убрал потом, сейчас там без пароля все
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #44849 #44862 02:59 PM, 07 Mar 2018
    может быть, сначала надо добиться, чтобы в подзапросе рандомно данные выдавались?
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #44854 #44863 03:08 PM, 07 Mar 2018
    а вот у меня например, если в подзапросе указать ORDER BY rand(), выдает случайным образом
  • https://t.me/clickhouse_ru
    @kmarenov ↶ Reply to #44858 #44864 03:08 PM, 07 Mar 2018
    задача состоит в генерации тестовых наборов данных
  • https://t.me/clickhouse_ru
    @kmarenov ↶ Reply to #44863 #44865 03:09 PM, 07 Mar 2018
    да, результат подзапроса сортируется случайным образом, но результат join'а всё равно тот же самый
  • https://t.me/clickhouse_ru
    @kmarenov ↶ Reply to #44863 #44866 03:10 PM, 07 Mar 2018
    у вас any left join выдает разный результат?
  • https://t.me/clickhouse_ru
    @Shegloff #44867 03:10 PM, 07 Mar 2018
    да, щас попробую написать селект
  • https://t.me/clickhouse_ru
    @kmarenov #44868 03:12 PM, 07 Mar 2018
    Еще один скорее всего важный момент, который я упустил при описании проблемы - используется GLOBAL ANY LEFT JOIN, потому что запрос делается к Distributed таблицам и в подзапросе есть условие NOT IN
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #44866 #44869 03:17 PM, 07 Mar 2018
    хотя нет, вы правы
    select id, str from (select 1 as id) ANY LEFT JOIN (select 1 as id, arrayJoin(['a','b','c','d','e']) as str) USING(id)
    всегда выдает 1, а
  • https://t.me/clickhouse_ru
    @Shegloff #44870 03:23 PM, 07 Mar 2018
    а вот так случайно уже, но это заслуга rand(), а не join'a
    select id, str from (select 1 as id) ANY LEFT JOIN (select 1 as id, arrayJoin(['a','b','c','d','e']) as str order by rand(str)) USING(id)
  • https://t.me/clickhouse_ru
    @Shegloff #44871 03:25 PM, 07 Mar 2018
    а может быть, все правильно? Ведь в доке написано: "будет присоединена только первая попавшаяся.". В предыдущем запросе первая всегда a, она всегда и выводится. Не написано же, что случайным образом.
  • https://t.me/clickhouse_ru
    @kmarenov #44872 03:26 PM, 07 Mar 2018
    ну без order by по идее "первая попавшаяся" не детерменирована должна быть
  • https://t.me/clickhouse_ru
    @Shegloff #44873 03:30 PM, 07 Mar 2018
    почему
  • https://t.me/clickhouse_ru
    @Shegloff #44874 03:30 PM, 07 Mar 2018
    первая же =)
  • https://t.me/clickhouse_ru
    @Shegloff #44875 03:32 PM, 07 Mar 2018
    первая, которая попадется - из ['a', 'b', 'c', 'd', 'e'] это всегда будет 'a'
  • https://t.me/clickhouse_ru
    @Shegloff #44876 03:34 PM, 07 Mar 2018
    в общем, не знаю, это уже мои придирки к словам, как оно есть на самом деле, скажет создатель)
  • https://t.me/clickhouse_ru
    @kmarenov #44877 03:35 PM, 07 Mar 2018
    в sql это нигде не прописано например. хотите детерминированный порядок - используйте order by, без order by порядок не гарантируется
  • https://t.me/clickhouse_ru
    @kmarenov #44878 03:35 PM, 07 Mar 2018
    в кликхаусе тоже, насколько помню из документации
  • https://t.me/clickhouse_ru
    @Shegloff #44879 03:36 PM, 07 Mar 2018
    это-то понятно
  • https://t.me/clickhouse_ru
    @kmarenov #44880 03:37 PM, 07 Mar 2018
    тогда уж назовите first left join, а не any )
  • https://t.me/clickhouse_ru
    Первая попавшаяся в файле как правило неизменна до перемешивания файла, а добавленные записи отсортированные по ключу редко премешиваются.
    В данном случае первая попавшайся не есть случайна.
  • https://t.me/clickhouse_ru
    @Shegloff #44882 03:38 PM, 07 Mar 2018
    так вы так и не рассказали, зачем вам разные результаты
  • https://t.me/clickhouse_ru
    @Shegloff #44883 03:38 PM, 07 Mar 2018
    отчеты для фин.депа, готовитесь к 1 апреля? =)
  • https://t.me/clickhouse_ru
    @kmarenov #44884 03:38 PM, 07 Mar 2018
    рассказал
  • https://t.me/clickhouse_ru
    @kmarenov #44885 03:38 PM, 07 Mar 2018
    задача состоит в генерации тестовых наборов данных
  • https://t.me/clickhouse_ru
    @kmarenov ↶ Reply to #44883 #44886 03:38 PM, 07 Mar 2018
    😅
  • https://t.me/clickhouse_ru
    @orantius #44887 03:41 PM, 07 Mar 2018
    SELECT
    id,
    v
    FROM
    (
    SELECT 1 AS id
    )
    ALL LEFT JOIN
    (
    SELECT
    1 AS id,
    number AS v
    FROM numbers(42)
    ) USING (id)
    ORDER BY rand() ASC
    LIMIT 1 BY id
  • @540801010 #44888 05:49 PM, 07 Mar 2018
    Joined.
  • Можно будет добавить функцию anyRandom, чтобы можно было в GROUP BY использовать.
  • https://t.me/clickhouse_ru
    @270358043 #44891 05:55 PM, 07 Mar 2018
    Можно ли как-то сказать SELECT every 1000s или что подобное? Данных много и достаточно выборки каждого тысячного значения
  • https://t.me/clickhouse_ru
    @orantius #44893 05:59 PM, 07 Mar 2018
    sample 0.001
  • @milovidov_an #44894 06:02 PM, 07 Mar 2018
    Если сэмплирование не задано, то можно просто WHERE rand() % 1000 = 0. Это менее эффективно, так как читаются все данные.
  • Можно argMax(x, rand()).
  • https://t.me/clickhouse_ru
    @270358043 #44896 06:03 PM, 07 Mar 2018
    ага, кажется понимаю. Спасибо!
  • @m002201 #44898 08:12 PM, 07 Mar 2018
    Joined.
  • @m002201 #44899 08:13 PM, 07 Mar 2018
    Всем привет! Кто может помочь со связкой Clikchouse+Kafka?
  • @m002201 #44900 08:17 PM, 07 Mar 2018
    Делаю по мануалу https://clickhouse.yandex/docs/en/table_engines/kafka/ . Сообщения в кафку уходят, clickhouse их не видит (из доки SELECT * FROM queue LIMIT 5;).

    В логах CH:
    2018.03.07 20:08:15.894921 [ 3 ] <Trace> StorageKafka (queue): Committing 0 messages
    Если к кафке подключиться, например, kafkacat, то сообщения видны.

    Куда копать?
  • https://t.me/clickhouse_ru
    + таже ботва, не разбирался, но плюсую
  • @anotherbugmaster #44902 08:20 PM, 07 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @leidruid ↶ Reply to #44900 #44903 08:43 PM, 07 Mar 2018
    Только вчера сам пробовал. Похоже, что оффсет сдвигается после запроса. Если сделать select из Kafka engine, показывает только новые сообщения.
    Если после завешения запроса напродюсить сообщений - вычитает их при следующем селекте.

    BTW, @milovidov_an, можно ли предусмотреть вычитывание данных из топика при указании новой consumer group с первых, а не с новых, как сейчас ?
  • @m002201 ↶ Reply to #44903 #44904 08:46 PM, 07 Mar 2018
    Пробовал после завершения запроса продьюсить новые сообщения, CH их не видит.
    Попробую с утра, на свежую голову, заново собрать связку.
  • Я уже не помню, как устроен движок Kafka. Если я правильно помню, offset сохраняется в Kafka и сдвигается после чтения. Чтобы читать с начала, надо его сбросить?
  • https://t.me/clickhouse_ru
    @Sharmanshik #44906 09:49 PM, 07 Mar 2018
    @milovidov_an если вас не затруднит прокомментировать - я столкнулся с странной ситуацией, пишем в КХ через HTTP POSTом, в том числе создаем таблицы, например tinylog, так вот периодически create table внезапно может занять до 40 секунд (судя по логам KX сервера), причем следующий подобный квери заходит моментально. Версия clickhouse-server-1.1.54343-1.el7.x86_64
  • А где всё это происходит - на физическом сервере, на виртуальной машине? Какая дисковая подсистема, какая ФС? Что происходит на сервере во время этих 40 секунд? Можно посмотреть нагрузку на диски (iostat -dmx 1, dstat), а также la. Если не очевидно, то можно посмотреть с помощью strace -f -tt -T - в каком именно месте тратится это время.
  • @milovidov_an #44908 10:30 PM, 07 Mar 2018
    Также вы можете снять стек трейс всех потоков во время этих 40 секунд: sudo gdb -batch -ex 't apply all bt' -p $(pidof clickhouse-server) - читать его будет трудно, но вы можете скинуть на pastebin.

    Если очень часто делаются операции с метаданными, то обратите также внимание на системную метрику ContextLockWait - количество одновременных потоков, ожидающих глобальной блокировки. В один момент времени смотреть бессмысленно, лучше есть есть график в Графите, желательно посекундный. Настроить выгрузку в Графит можно в config.xml, секция graphite.
  • 08 March 2018 (22 messages)
  • https://t.me/clickhouse_ru
    @Sharmanshik #44909 12:07 AM, 08 Mar 2018
    @milovidov_an Cпасибо за комментарий, будем искать, как говорится.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44903 #44910 05:42 AM, 08 Mar 2018
    Можно, нужно в конфиге указать настройку auto.offset.reset, там есть недокументированная возможность как задавать настройки https://github.com/yandex/ClickHouse/blob/master/dbms/src/Storages/StorageKafka.cpp#L201
    т.е. примерно так:

    <kafka>
    <key>value</key> <!-- точки в ключе заменять на _ (auto_offset_reset)-->
    </kafka>
    yandex/ClickHouse

    ClickHouse is a free analytic DBMS for big data.

  • https://t.me/clickhouse_ru
    @kshvakov #44911 05:43 AM, 08 Mar 2018
    И сами настройки которые можно задать https://github.com/edenhill/librdkafka/blob/master/CONFIGURATION.md
    librdkafka/CONFIGURATION.md at master · edenhill/librdkafka

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

  • https://t.me/clickhouse_ru
    @leidruid ↶ Reply to #44905 #44912 06:27 AM, 08 Mar 2018
    Зависит от настроек консюмеров - если кафку еще не видела такую группу, то чтение может начаться как с самого раннего, так и с последнего сообщения. Хорошо бы иметь возможность указать это при создании "таблицы"
  • https://t.me/clickhouse_ru
    @leidruid ↶ Reply to #44910 #44913 06:27 AM, 08 Mar 2018
    Спасибо
  • https://t.me/clickhouse_ru
    @leidruid ↶ Reply to #44910 #44914 06:29 AM, 08 Mar 2018
    Единственный нюанс в том, что это глобальная настройка
  • https://t.me/clickhouse_ru
    @leidruid #44915 06:29 AM, 08 Mar 2018
    А иногда нужно и так и сяк в рамках одной бд
  • https://t.me/clickhouse_ru
    @kshvakov #44916 06:59 AM, 08 Mar 2018
    Это, в принципе, не очень сложно, можно даже сделать чтоб указывать какой-то кастомный offset при создании таблицы, но всё это лучше выносить из параметров движка и использовать для этого что-то вроде SETTINGS т.к. там сейчас и так параметров полно
  • @70532431 #44917 08:21 AM, 08 Mar 2018
    @Sharmanshik я сталкивался с затупами при создании Replicated*MergeTree таблиц, где путь для ZK прописывать надо, и вот когда ZK работает нехорошо, тогда и создание таблиц таких тормозит
  • https://t.me/clickhouse_ru
    @alena_text #44918 08:34 AM, 08 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @aloneibreak #44919 11:53 AM, 08 Mar 2018
    коллеги, а как вы вставляете одинарные кавычки в строках?
  • https://t.me/clickhouse_ru
    @tarabanton #44920 11:59 AM, 08 Mar 2018
    \'
  • @githubreleases_bot #44921 b o t 01:59 PM, 08 Mar 2018
    yandex/ClickHouse was tagged: v1.1.54358-stable
    Link: https://github.com/yandex/ClickHouse/releases/tag/v1.1.54358-stable
    Release notes:
    v1.1.54358-stable
  • https://t.me/clickhouse_ru
    @Civiloid #44922 02:20 PM, 08 Mar 2018
    @milovidov_an если вы будете в tag'е писать краткий чейнджлог то бот его будет подтягивать )
  • @milovidov_an #44923 02:31 PM, 08 Mar 2018
    git tag -m ?
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #44923 #44924 02:39 PM, 08 Mar 2018
    ага
  • https://t.me/clickhouse_ru
    @Civiloid #44925 02:40 PM, 08 Mar 2018
    ща там v1.1.54358-stable - и бот это как Release notes берет
  • https://t.me/clickhouse_ru
    @Civiloid #44926 02:40 PM, 08 Mar 2018
    например так выглядит то же самое если указать что-нибудь другое (про другую репу сообщение)
  • https://t.me/clickhouse_ru
    @Civiloid #44927 02:40 PM, 08 Mar 2018
    lomik/carbon-clickhouse was tagged: v0.8.1
    Link: https://github.com/lomik/carbon-clickhouse/releases/tag/v0.8.1
    Release notes:
    ### Bugfix

    * Fix panic [#16](https://github.com/lomik/carbon-clickhouse/issues/16)
  • У нас пока всё сложнее - собирать changelog занимает целый день, а английская версия иногда пишется не сразу, а отдаётся переводчику. Хотелось бы более частые релизы, но последнее время, наоборот, просадили до месяца.
  • @dj_slava #44929 03:49 PM, 08 Mar 2018
    Joined.
  • @umatomba #44930 07:17 PM, 08 Mar 2018
    Joined.
  • 09 March 2018 (73 messages)
  • @slfmangol #44931 09:56 AM, 09 Mar 2018
    Возможно тут есть те кто сталкивался с большими объемами данных mysql, суть проблемы, нужно скопировать данные из таблицы А, в таблицу B INSERT INTO B .... SELECT FROM A; слишком медленный, 1 млн данных обрабатывает за 3 минуты, есть варианты как это сделать быстрее?
  • https://t.me/clickhouse_ru
    @mrlamberg #44932 10:00 AM, 09 Mar 2018
    делать в цикле маленькими пачками не пробовал?
  • @slfmangol #44933 10:01 AM, 09 Mar 2018
    По сути это операция mysql, и тут пачки не нужны, наверное.
  • https://t.me/clickhouse_ru
    1) Вероятно это связано с ограничением по памяти, во время переноса MySQL не позволяет использовать оперативки больше чем можно (или ее физически не хватает).
    В таком случе выполнение 100 последовательных запросов по фильтру по какому-то ключу может работать в 10-ки раз быстрее, чем одного запроса без фильтра.

    Пример (выдуманный): у нас есть БД с 10 месяцами. В каждом месяце 1000000 строк. Выгрузка всей БД будет проихсодить дольше, чем если мы сделай 10 полсдеовательных выгрузок по ключу month.
    Такая же проблема может быть и при сгоне данных в CSV файл и последущей его загрузкой. Тут узкое место в запросе на получение данных, которому не удатеся свободно уместиться в оперативке.

    2) В табилце, в котороую копируются данные, имеет смысл отключить индексы перед копированием, если это еще не сделано
  • @slfmangol #44935 10:26 AM, 09 Mar 2018
    2) В табилце, в котороую копируются данные, имеет смысл отключить индексы перед копированием, если это еще не сделано

    Индексы отключил, забыл добавить, движек Innodb
  • https://t.me/clickhouse_ru
    @kshvakov #44936 10:26 AM, 09 Mar 2018
    там INSERT INTO t SELECT FROM t2 обычно на такие запросы память не нужна, там должен выделяться фиксированный буфер
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44931 #44937 10:30 AM, 09 Mar 2018
    А не смотрели куда упираетесь, что с диском?
  • @slfmangol #44938 10:32 AM, 09 Mar 2018
    сейчас посмотрю настройки.
  • https://t.me/clickhouse_ru
    Триггеров случайно нет?
  • @slfmangol #44940 10:57 AM, 09 Mar 2018
    -
  • @slfmangol #44941 10:57 AM, 09 Mar 2018
    Нету триггеров
  • @pookieShmukie #44942 11:02 AM, 09 Mar 2018
    Вообще посмотрите для начала настройку innodb_flush_log_at_trx_commit. Поставьте значение в 0. Предварительно вообще почитайте про эту настройку, если не хотите потерять данные. Так же индексы очень сильно убивают скорость при вставке данных в таблицу. Желательно убрать индексы в таблице в которую идет запись.
  • @pookieShmukie #44943 11:03 AM, 09 Mar 2018
    Можно еще попробовать запустить mysql_tuner :) банально, но поможет произвести базовую настройку, которой хватает в большинстве случаев
  • https://t.me/clickhouse_ru
    @stufently #44944 11:03 AM, 09 Mar 2018
    Все таки не убрать, а выключить перед большой вставкой, и включить после вставки
  • @pookieShmukie #44945 11:03 AM, 09 Mar 2018
    Я это и подразумевал :) не так выразился.
  • @slfmangol #44949 11:12 AM, 09 Mar 2018
    innodb_flush_log_at_trx_commit=1
  • @slfmangol #44950 11:12 AM, 09 Mar 2018
    стоит
  • https://t.me/clickhouse_ru
    @stufently #44951 11:15 AM, 09 Mar 2018
    сорри не тот чат (
  • https://t.me/clickhouse_ru
    @themikex #44953 11:58 AM, 09 Mar 2018
    Ребят, посоветуйте как решить задачу: разрабатываю сейчас инструмент для сео аналитики, необходимо в КХ писать данные по источникам трафика с привязкой к урлу страницы сайта, но урл может поменяться. Саму смену урла я смогу отловить по 301 редиректу, но вот как организовать хранение данных? Мускул уже не справляется(((
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44953 #44954 12:03 PM, 09 Mar 2018
    А в MySQL вы это как решаете?
  • @vstakhov #44955 12:04 PM, 09 Mar 2018
    а можно ли вообще сравнивать elasticsearch и сабж?
  • https://t.me/clickhouse_ru
    Ы. Все можно назвать базой данных, если у тебя достаточно мощностей
  • https://t.me/clickhouse_ru
    @themikex #44957 12:06 PM, 09 Mar 2018
    @kshvakov в мускуле хранится измененный урл, данные для аналитики выкачиваются из метрики каждый месяц, при этом для каждого урла полученного из метрики проверяется конечный урл при присутсвии редиректов и данные заносятся в мускул
  • @vstakhov #44958 12:06 PM, 09 Mar 2018
    https://github.com/Menta2L/rspamd-elastic/ - мне тут чувак какой-то вот такое с помощью elastic/kibana сделал. вопрос заключается в том, можно ли подобное сделать на сабже и если можно, то в какую сторону смотреть?
    Menta2L/rspamd-elastic

    Metadata collector for rspamd using elasticsearch backend - Menta2L/rspamd-elastic

  • https://t.me/clickhouse_ru
    Вроде как они все-таки для разного. ClickHouse для аналитики, а ElasticSearch — прежде всего для полнотекстового поиска (не по логам, а просто полнотекстового поиска).
  • @vstakhov #44960 12:07 PM, 09 Mar 2018
    я в визуализациях этих ни в зуб ногой, если что
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44957 #44961 12:07 PM, 09 Mar 2018
    И держите их в MySQL, к КХ подключите как словарь
  • https://t.me/clickhouse_ru
    @themikex #44962 12:09 PM, 09 Mar 2018
    @kshvakov правильно ли я понимаю что в мускуле буду хранить связку id и url, а в КХ вносить данные уже по этому id?
  • https://t.me/clickhouse_ru
    @mrlamberg #44963 12:09 PM, 09 Mar 2018
    а зачем в кх вообще урл хранить?)
  • https://t.me/clickhouse_ru
    @mrlamberg #44964 12:09 PM, 09 Mar 2018
    только id
  • https://t.me/clickhouse_ru
    @mrlamberg #44965 12:09 PM, 09 Mar 2018
    а урл внешний справочник
  • https://t.me/clickhouse_ru
    @themikex #44966 12:10 PM, 09 Mar 2018
    Максим ну я примерно то же написал выше
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44962 #44967 12:11 PM, 09 Mar 2018
    Да
  • https://t.me/clickhouse_ru
    @mrlamberg #44968 12:11 PM, 09 Mar 2018
    вообще выходной сегодня)
  • https://t.me/clickhouse_ru
    @kshvakov #44969 12:11 PM, 09 Mar 2018
    Тут не все из России;)
  • https://t.me/clickhouse_ru
    @themikex #44970 12:11 PM, 09 Mar 2018
    ))
  • https://t.me/clickhouse_ru
    @themikex #44971 12:13 PM, 09 Mar 2018
    и еще вопрос, кто как решает вопрос стран/городов в КХ? мне на ум приходит по geo ip получать страну+город и писать текстом в КХ. Это оптимально? И есть ли какие-либо базы получше geo ip?
  • https://t.me/clickhouse_ru
    @themikex #44972 12:14 PM, 09 Mar 2018
    в доке КХ видел упоминание баз, но как я понял они доступны только сотрудникам Яндекса
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44971 #44973 12:21 PM, 09 Mar 2018
    Есть словарь ip_trie, но проблема с IP в том, что привязка к региону/городу со временем для IP может измениться и исторические данные "поедут", вероятность небольшая, но она есть
  • https://t.me/clickhouse_ru
    @stufently #44974 12:30 PM, 09 Mar 2018
    К сожалению вероятность сто процентная, что они поедут, просто поедет со сто процентной вероятностью небольшой процент данных.
  • https://t.me/clickhouse_ru
    @themikex #44975 12:39 PM, 09 Mar 2018
    а чем наполнять ip_trie?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #44975 #44976 12:44 PM, 09 Mar 2018
    Пример

    <?xml version="1.0" encoding="UTF-8"?>
    <dictionaries>
    <dictionary>
    <name>GEOIP</name>
    <source>
    <file>
    <path>geoip.tsv</path>
    <format>TabSeparated</format>
    </file>
    </source>
    <lifetime>300</lifetime>
    <layout>
    <ip_trie />
    </layout>
    <structure>
    <key>
    <attribute>
    <name>prefix</name>
    <type>String</type>
    </attribute>
    </key>
    <attribute>
    <name>Country</name>
    <type>String</type>
    <null_value />
    </attribute>
    <attribute>
    <name>City</name>
    <type>String</type>
    <null_value />
    </attribute>
    </structure>
    </dictionary>
    </dictionaries>

    В файле
    87.250.250.0/24 Russia Moscow
  • https://t.me/clickhouse_ru
    @themikex #44977 12:45 PM, 09 Mar 2018
    ох, пасиба!
  • https://t.me/clickhouse_ru
    @monoflash #44978 03:56 PM, 09 Mar 2018
    Можно ли заставить clickhouse возвращать ошибку если при вставке данных primary key совпадает с имеющимся в таблице?
    Если да, то киньте плих ссылку на документацию где почитать.
  • https://t.me/clickhouse_ru
    Такого встроеного функционала нет
  • https://t.me/clickhouse_ru
    @maxlapshin #44981 05:44 PM, 09 Mar 2018
    я вот много чего пропустил, хочу уточнить: сейчас есть готовая рекомендация по тому, как организовать хранение на серверах с большими дешевыми шпинделями под старые данные + сервера с SSD под новые винты.
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #44981 #44982 05:51 PM, 09 Mar 2018
    Реплики/distributed. Готового нет.
  • https://t.me/clickhouse_ru
    @monoflash #44983 05:54 PM, 09 Mar 2018
    Почему SELECT ID FROM table_name WHERE ID = 1520199205783912726 работает, а SELECT ID FROM table_name WHERE ID >= 1520199205783912726 не работает и возвращает совсем не то.
    Где почитать на тему правильных выборок из БД?
  • https://t.me/clickhouse_ru
    @orantius #44984 05:58 PM, 09 Mar 2018
    так не работает, или возвращает не то?
  • Пока нет. Можно только вручную (неудобно) заменять отдельные куски на симлинки.
    Удобная реализация есть в планах: https://clickhouse.yandex/presentations/meetup11/news_and_plans/#25
  • https://t.me/clickhouse_ru
    Возвращает не то.
  • https://t.me/clickhouse_ru
    @orantius #44987 06:00 PM, 09 Mar 2018
    хорошо. и что не то возвращается, лишнее или чего-то не хватает?
  • https://t.me/clickhouse_ru
    В базе тысячи ID, ID=1520199205783912726 предпоследний. То есть ID>=1520199205783912726 должен вернуть 2 записи. Но возвращается Showed first 10000.
  • https://t.me/clickhouse_ru
    @orantius #44989 06:04 PM, 09 Mar 2018
    то есть среди тех id которые вернулись есть те, которые меньше 1520199205783912726?
  • https://t.me/clickhouse_ru
    @monoflash #44990 06:06 PM, 09 Mar 2018
    да
  • https://t.me/clickhouse_ru
    @monoflash #44991 06:07 PM, 09 Mar 2018
    Если коротко о таблице:
    CREATE TABLE IF NOT EXISTS table_name (
    ID Int64 DEFAULT CAST(0 AS Int64),
    IDDate Date DEFAULT CAST(now() AS Date),



    ) Engine=MergeTree(IDDate, (ID, IDDate), 8192);
  • https://t.me/clickhouse_ru
    @orantius #44992 06:12 PM, 09 Mar 2018
    не относится к делу, но СAST(now() AS Date) - это что-то вроде today() ?
  • https://t.me/clickhouse_ru
    @monoflash #44993 06:14 PM, 09 Mar 2018
    Скорее всего да. Я только начал изучать clickhouse. Подобное подсмотрено в каком-то из скриптов.

    Но проблема не в этом, а в том что сравнение = работет, а сравнение < или > для Int64 не работает.
    Почему?
  • https://t.me/clickhouse_ru
    @orantius #44994 06:15 PM, 09 Mar 2018
    если бы у вас значения пропали, я бы сказал что что-то с индексом, а вот раз значени добавились, то интересно. теоретически может что-то быть на стыке Int64 - UInt64, т.к. по дефолту литерал приведется к Uint64, но на тупых примерах у меня не воспроизводится
  • https://t.me/clickhouse_ru
    @orantius #44995 06:18 PM, 09 Mar 2018
    CREATE TABLE IF NOT EXISTS zz
    (
    ID Int64 DEFAULT CAST(0 AS Int64),
    IDDate Date DEFAULT CAST(now() AS Date)
    )
    ENGINE = MergeTree(IDDate, (ID, IDDate), 8192)

    insert into zz (ID) values (1520199205783912725)
    insert into zz (ID) values (1520199205783912726)
    insert into zz (ID) values (1520199205783912727)

    SELECT *
    FROM zz
    WHERE ID >= 1520199205783912726
    ┌──────────────────ID─┬─────IDDate─┐
    │ 1520199205783912726 │ 2018-03-09 │
    └─────────────────────┴────────────┘
    ┌──────────────────ID─┬─────IDDate─┐
    │ 1520199205783912727 │ 2018-03-09 │
    └─────────────────────┴────────────┘
  • https://t.me/clickhouse_ru
    @orantius #44996 06:19 PM, 09 Mar 2018
    у вас там какие-то специальные числа прорываются, или обычные?
  • https://t.me/clickhouse_ru
    @monoflash #44997 06:19 PM, 09 Mar 2018
    Подсказка про UInt64 помогла
    Вот так вот заработало:
    WHERE ID > toInt64(1520326535681143339)
  • https://t.me/clickhouse_ru
    @orantius #44998 06:20 PM, 09 Mar 2018
    хорошо, но если у вас получится отчуждаемый пример, то было бы интересно.
  • https://t.me/clickhouse_ru
    Int64 это time.Now().UnixNano() так как нужно идентифицировать с большой точностью, просто DateTime не подходит.
  • https://t.me/clickhouse_ru
    @orantius #45000 06:21 PM, 09 Mar 2018
    действительно, не узнал 152 сразу
  • А у вас версия ClickHouse насколько старая? Может быть такое, что где-то на 1.5 года устарела?
  • https://t.me/clickhouse_ru
    @monoflash #45002 06:24 PM, 09 Mar 2018
    Connected to ClickHouse server version 1.1.54342.

    Для тестов, я сейчас запускаю ту версию что в докере yandex/clickhouse-server:latest
  • Это Ок.
  • https://t.me/clickhouse_ru
    Супер!
  • https://t.me/clickhouse_ru
    @maxlapshin #45005 06:30 PM, 09 Mar 2018
    Вам odirect помогает? Кеш не вымывает?
  • @milovidov_an #45006 06:32 PM, 09 Mar 2018
    Если про пункт "использование O_DIRECT для больших мержей", то это ещё не реализовано - тоже в планах. И нужно как раз для того, чтобы не вымывать кэш. Для обычных запросов O_DIRECT по большей части мешает.
  • https://t.me/clickhouse_ru
    @maxlapshin #45007 06:35 PM, 09 Mar 2018
    Мы как-то раз решили в видеоархиве поиграть с fadvise. Было больно и стыдно делать такое не собрав статистику :)
  • @300001278 #45008 06:54 PM, 09 Mar 2018
    Joined.
  • 10 March 2018 (14 messages)
  • https://t.me/clickhouse_ru
    @BloodJazMan #45010 09:01 AM, 10 Mar 2018
    https://hub.docker.com/r/yandex/clickhouse-server/builds/bqnfjwixqyq4xwdpgsjdcfk/

    а кто нибудь может починить официальный образ в докерхаб?
  • @whetherharder #45011 09:43 AM, 10 Mar 2018
    Joined.
  • @pookieShmukie #45012 10:22 AM, 10 Mar 2018
    Ребята, спасибо за чейнджлог! Жирный апдейт получился :)
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @ivmaks ↶ Reply to #45013 #45014 11:14 AM, 10 Mar 2018
    его бы закреплять в чате
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45014 #45015 11:21 AM, 10 Mar 2018
    Зачем, он на GitHub есть, а его адрес и так все знают ;)
  • https://t.me/clickhouse_ru
    @ivmaks #45016 11:22 AM, 10 Mar 2018
    не все, особенно те кто только начинает работать с КХ, а с такой динамикой развития это вторая по важности страница после доки
  • https://t.me/clickhouse_ru
    @kshvakov #45017 11:24 AM, 10 Mar 2018
    Да ладно, в любом случае обновления прилетают и их видно, да и в документации это вторая ссылка сверху.
  • @anahan_me #45018 11:57 AM, 10 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    Он уже почти два месяца как сломан. Видимо сам не починишь - никто не починит 😕 Вот небольшая подсказка как самому собрать: t.me/clickhouse_ru/43923
    Vladislav Rassokhin in ClickHouse не тормозит

    Спасибо за наводку. После некоторых плясок с бубном (отката коммитов 9ec8a576 и 2d9f6611 стоя на тэге v1.1.54353-testing) это вполне удалось. Неудивительно что официального образа 343 версии нету т.к. он не собирается на этом теге (первый коммит) а когда собирается то криво работает (фэйлится ipv6, второй коммит). В итоге в проде получился нормальный 52343 с быстрыми запросами, всем спасибо.

  • @Edggomes #45020 03:41 PM, 10 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @playboyko #45021 05:12 PM, 10 Mar 2018
    Привет! Нигде не нашел, может кто-нибудь знает. Есть ли какая-нибудь возможность заставить кх выполнять UNION ALL локально при выборке из distributed таблицы? Т.е. чтобы при запросе на шарды отправлялись локальные имена таблиц с union внутри, а не по одному запросу из всех подзапросов?
  • @gro93 #45022 09:05 PM, 10 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @neiwick #45023 10:17 PM, 10 Mar 2018
    Всем привет. Мы подвели наш java мостик для кликхауса к пред. релизным версиям. Напомню, он получился путем выкусывания из внутренних проектов. Основная задача состоит в том чтоб гнать как можно больший объем данных внутрь базы, с чем обычный clickhouse-jdbc не очень справляется, а также простом и удобном внешнем интерфейсе, скрывая весь ад и вакханалию от разработчика. В планах на Q2 есть некоторые доработки, которые можно перенести из private-api в опенсорс, но приоритет может зависеть от востребованности, поэтому смелее кидайте ваши тикеты.
    Ссылка на посмотреть/скачать: https://github.com/Mangelion/achord

    Для любителей циферок - быстрее, это x2 в обычных режимах и x3-4 в ряде угловых для clickhouse-jdbc случаев.
    Mangelion/achord

    Fast reactive bridge between Java applications and Yandex.ClickHouse database - Mangelion/achord

  • 11 March 2018 (93 messages)
  • https://t.me/clickhouse_ru
    @ksolokhov #45024 07:48 AM, 11 Mar 2018
    @neiwick ваш мостик также на http работает?
  • https://t.me/clickhouse_ru
    @neiwick ↶ Reply to #45024 #45025 07:59 AM, 11 Mar 2018
    Нет, на native протоколе
  • https://t.me/clickhouse_ru
    @ksolokhov #45026 08:00 AM, 11 Mar 2018
    ого, звучит интересно
  • https://t.me/clickhouse_ru
    @ksolokhov #45027 08:00 AM, 11 Mar 2018
    но пока четсно говоря и clickhouse-jdbc хватает
  • https://t.me/clickhouse_ru
    @ksolokhov #45028 08:01 AM, 11 Mar 2018
    а что имеется ввиду под угловыми случаями?
  • https://t.me/clickhouse_ru
    @volyx #45029 08:09 AM, 11 Mar 2018
    @neiwick А почему такое же апи не сделать как у clickhouse-jdbc? Обычное jdbc'шное
  • https://t.me/clickhouse_ru
    @neiwick ↶ Reply to #45028 #45030 08:11 AM, 11 Mar 2018
    запись 64 битных значений создает огромное gc-pressure, что просаживает работу всего приложения.
  • https://t.me/clickhouse_ru
    @neiwick ↶ Reply to #45029 #45031 08:16 AM, 11 Mar 2018
    JDBC ещё не научился асинхронности, обещали в Java 9 но похоже отложили, т.к. нет в proposal даже на 11. Есть мысли сделать асинхронный драйвер с собственным API, и уже сверху создать api для работы по спецификации JDBC
  • https://t.me/clickhouse_ru
    @volyx #45032 08:17 AM, 11 Mar 2018
    Это бы сильно помогло при миграции, чтобы взял - подменил и все продолжилов работать, только быстрее =)
  • https://t.me/clickhouse_ru
    @neiwick #45033 08:20 AM, 11 Mar 2018
    да, тут я согласен с вами. Основная проблема в том, что сейчас из clickhouse-jdbc торчит много неспецифицированных вещей, которые не хотелось бы тащить за собой. Например sendRowBinaryStream. Поэтому просто так взять и заменить вряд-ли получится.
  • https://t.me/clickhouse_ru
    @mo1seev #45034 11:22 AM, 11 Mar 2018
    Добрый день! Я только недавно начал работать с КХ и еще не все нюансы для меня очевиды. И если то, как он кушает ЦПУ меня больше не удивляет, то к работе с памятью у меня есть вопросы.
    Имеем:
    12 core
    16gb RAM
    100GB SSD

    БД весит ~5GB
    строк там под 500 тыс

    И вроде бд совсем маленькая и должна не так много кушать, но она съела все 16гб RAM из которых 11гб уши в кэш.

    Насколько это нормально или где я что-то недоконфигурировал? Бездумно увеличивать память, не понимая почему он так её жрет, совсем не хочется.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @mo1seev #45036 11:23 AM, 11 Mar 2018
    для наглядности
  • https://t.me/clickhouse_ru
  • @yakushevas #45038 11:27 AM, 11 Mar 2018
    cache
  • https://t.me/clickhouse_ru
    @mo1seev ↶ Reply to #45038 #45039 11:27 AM, 11 Mar 2018
    яннп
  • @yakushevas #45040 11:29 AM, 11 Mar 2018
    это нормально, ОС будет стараться все запихнуть в кэш
  • https://t.me/clickhouse_ru
    @mo1seev #45041 11:30 AM, 11 Mar 2018
    А как-то сбрасывать его или ограничить? Как-то не очень хорошо, что бд, которая почти ничего не весит жрет столько ресурсов.
  • https://t.me/clickhouse_ru
    Главное, чтобы за обналичку не предьявили. Бадум-тс!
  • https://t.me/clickhouse_ru
    Ос сама сбросить кэши
  • https://t.me/clickhouse_ru
    @mo1seev ↶ Reply to #45043 #45044 11:31 AM, 11 Mar 2018
    чет как-то не стремится она этого делать. Я думал, что причина в самом КХ
  • @yakushevas #45045 11:31 AM, 11 Mar 2018
    да не жрет она столько реусрсов, в прямом понимании этого слова
  • https://t.me/clickhouse_ru
    @mo1seev #45046 11:32 AM, 11 Mar 2018
    Ладно, окей. Мои какие действия? Докинуть еще ОЗУ?
  • https://t.me/clickhouse_ru
    @strangeqargo #45047 11:32 AM, 11 Mar 2018
    Игнорить
  • https://t.me/clickhouse_ru
    @mo1seev ↶ Reply to #45047 #45048 11:32 AM, 11 Mar 2018
    чет такое себе отношение)
  • https://t.me/clickhouse_ru
    @strangeqargo #45049 11:32 AM, 11 Mar 2018
    Почитать как линукс управляет памятью и игнорить
  • https://t.me/clickhouse_ru
    @yourock88 #45050 11:34 AM, 11 Mar 2018
    В общем, да, у вас всё в кеше и это норм. Собственно, так и должно всё работать. Это кеш ОС, а не самого кликхауса, так что если память кому-то ещё на машине потребуется, то ОС её радостно отдаст.
  • https://t.me/clickhouse_ru
    @strangeqargo #45051 11:34 AM, 11 Mar 2018
    Докинуть можно, но ос опять все в кэш станет, либо поделится им с другим процессом потом. Но те.е же там не нужны другие жирные процессы
  • https://t.me/clickhouse_ru
    @mo1seev ↶ Reply to #45050 #45052 11:34 AM, 11 Mar 2018
    Окей. Я думал, что это именно КХ
  • https://t.me/clickhouse_ru
    @mo1seev #45053 11:34 AM, 11 Mar 2018
    тогда пойду отдыхать) Спасибо!
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    +++
  • https://t.me/clickhouse_ru
    @ka_ktus #45056 02:27 PM, 11 Mar 2018
    Подскажите, содержимое исходного dynamicConfigFile в zookeeper 3.5 должно меняться при добавлении сервера командой реконфигурации?
    В документации написано что да, а у меня - не меняется, хотя сервер входит в кластер.
    Но у меня докер, может с правами что не то (хотя, права на файл выдавал).
  • @70532431 ↶ Reply to #45056 #45057 02:29 PM, 11 Mar 2018
    Исходные никогда не меняется, должны создаваться новые файлы типа *.001212 *.012121c где постфикс - версия глобального для кластера конфига.
    докер зло для ZK
  • https://t.me/clickhouse_ru
    @gtbear ↶ Reply to #45057 #45058 02:30 PM, 11 Mar 2018
    а можно подробнее почему зло? тоже используем зукипер в контейнере
  • https://t.me/clickhouse_ru
    @ka_ktus ↶ Reply to #45057 #45059 02:30 PM, 11 Mar 2018
    Да, видел похожие новые. Спасибо.
  • https://t.me/clickhouse_ru
    @webmaks #45060 02:49 PM, 11 Mar 2018
    Приветствую. Не могли бы подсказать почему название директорий, в который КХ хранит данные стали называться с начала unix time. То есть раньше все было хорошо и они назывались
    ls -1 clickhouse/data/mydb/mytable/ | tail -1
    20180101_20180128_4075_4302_3
    20180101_20180131_4303_4507_3

    (год, месяц, день)

    а сейчас начали записываться как

    ls -1 clickhouse/data/mydb/mytable/ | head -3
    19700101_19700101_163090_225967_30
    19700101_19700101_1_75376_31
    19700101_19700101_225968_226972_14
  • https://t.me/clickhouse_ru
    @webmaks #45061 02:49 PM, 11 Mar 2018
    вопрос в том, откуда он берет дату для названия этих дирректорий
  • https://t.me/clickhouse_ru
    Вероятно у вас есть данные с "нулевой" датой
  • https://t.me/clickhouse_ru
    @webmaks #45063 03:13 PM, 11 Mar 2018
    а как он понимает нулевую дату? Или он смотрит все колонки, которые имеют тип данных дата и время и по ним ориентируется?
  • @gantzers ↶ Reply to #45063 #45064 03:17 PM, 11 Mar 2018
    При создание таблицы должен был быть указан стобец который использовать для даты по которой как раз название файлов и указываться
  • https://t.me/clickhouse_ru
    @webmaks ↶ Reply to #45064 #45065 03:19 PM, 11 Mar 2018
    если я сейчас сделаю show create table то что мне там нужно искать? Какой признак должен быть?
  • @gantzers #45066 03:19 PM, 11 Mar 2018
    в настройках движка таблицы это
  • https://t.me/clickhouse_ru
    @webmaks #45067 03:20 PM, 11 Mar 2018
    оГа, вижу
    MergeTree(my_date
  • https://t.me/clickhouse_ru
    @webmaks #45068 03:20 PM, 11 Mar 2018
    благодарю
  • https://t.me/clickhouse_ru
    @yourock88 #45069 03:23 PM, 11 Mar 2018
    Хотелось бы в документации иметь больше информации о том, при каких условиях нормально работает topK . Потому что в моем случае (2 млрд записей и 30 млн уникальных значений) topK выдает, конечно, довольно часто встречающиеся значения, но они далеки от настоящего топа, который считается через ORDER BY count(). Но запрос с честной группировкой жрет уж больно дофига оперативки. Записи распределены по-разному, но в основном они распределены более-менее равномерно.
  • https://t.me/clickhouse_ru
    видимо, из system.parts
  • Я и сам не помню формулы про точность алгоритма topK. В документации есть ссылки на статьи... А ещё есть константа в коде (наверное её надо превратить в задаваемый пользователем параметр), что мы выделяем место для подсчёта в три раза больше, чем k.

    // Allow NxK more space before calculating top K to increase accuracy
    #define TOP_K_LOAD_FACTOR 3
  • https://t.me/clickhouse_ru
    Вот у меня такое наблюдаетс я далеко не всегда

    К примеру, закешировано 60гб, запускаю новую прилагу и та..падает по оом
  • https://t.me/clickhouse_ru
    @JenZolotarev #45073 04:53 PM, 11 Mar 2018
    Или лезет в своп
  • https://t.me/clickhouse_ru
    Надо смотреть, как память распределяется, падает-то не из за кэша ос, а из-за того, что приложение запросило больше чем есть всего памяти
  • https://t.me/clickhouse_ru
    @JenZolotarev #45075 04:56 PM, 11 Mar 2018
    Не соглашусь, я знаю, что прилаге нужно 20гб
  • https://t.me/clickhouse_ru
    @JenZolotarev #45076 04:57 PM, 11 Mar 2018
    То есть если я принудительно дропаю кеш, то все работает без проблем
  • @pookieShmukie #45077 04:57 PM, 11 Mar 2018
    Ребят. Кто-то ловил подобное?

    Application: DB::Exception: Cannot create table from metadata file /var/lib/clickhouse/metadata/cursometr//learners.sql, error: DB::Exception: The local set of parts of table learners doesn't look like the set of parts in ZooKeeper. There are 0 unexpected parts (0 of them is not just-written), 0 unexpectedly merged parts, 0 missing obsolete parts, 4 missing parts, stack trace
  • 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
    @strangeqargo #45083 05:03 PM, 11 Mar 2018
    Если только не edge case с багом
  • https://t.me/clickhouse_ru
    В NUMA-системах очень интересно (нет) распределяется память — обычно она распределяется для каждого NUMA-узла независимо. То есть, если в системе свободно 60 Гб памяти, то оно может быть, к примеру, быть распределено как 10 Гб на одном NUMA-узле и 50 Гб на втором. Если процесс запустится на первом, то он залезет в своп
  • https://t.me/clickhouse_ru
    @yourock88 #45085 05:04 PM, 11 Mar 2018
    Конечно, в Linux (и наверное в других системах) есть механизмы борьбы с этим, но на такие грабли в принципе можно наступить.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Тем не менее, можно для прилаги на одной нуме выделить память на другой

    Работать будет медленее, но будет

    Эти мисы по выделению даже посмотреть можно
  • Можно выключить swap и включить numa interleave для каких-нибудь приложений, которые используют много памяти (правда я этого не делал, у меня всё и так нормально работает; но есть известная проблема, если программа выделяет большую часть памяти из одного потока - возможен OOM, когда ещё есть много free+cache памяти).
  • Со своей проблемой разобрался. /var/lib/clickhouse/flags/force_restore_data спас меня. Непонятно почему такая ситуация возникла :(
  • Это сообщение как правило не говорит о каких-то проблемах. Посмотрите в документации флаг "force_restore_data".
  • Спасибо за ответ! Вспомнил про него после того как осмыслил в чем проблема )
  • @githubreleases_bot #45092 b o t 05:59 PM, 11 Mar 2018
    yandex/ClickHouse was tagged: v1.1.54362-stable
    Link: https://github.com/yandex/ClickHouse/releases/tag/v1.1.54362-stable
    Release notes:
    v1.1.54362-stable
    yandex/ClickHouse

    ClickHouse is a free analytic DBMS for big data.

  • @70532431 ↶ Reply to #45092 #45093 06:01 PM, 11 Mar 2018
    А где можно почитать changelog?
  • https://t.me/clickhouse_ru
    @stufently #45094 06:01 PM, 11 Mar 2018
    На гитхабе
  • https://t.me/clickhouse_ru
  • @pavel_maksimow #45096 06:15 PM, 11 Mar 2018
    Ребят, нужно перекодировать, к примеру символ с %22 в "
    Я так понимаю это возможно сделать через функцию convertCharset(s, from, to)
    Но какие кодировки поставить не знаю, пробовал по разному. Подскажите.
  • @milovidov_an #45097 06:19 PM, 11 Mar 2018
    Эта "кодировка" не относится к charset-ам, и поэтому функция "convertCharset" не подходит. Но зато для неё есть другая функция:

    SELECT decodeURLComponent('a%22b')
  • спасибо
  • https://t.me/clickhouse_ru
    @webmaks #45099 06:24 PM, 11 Mar 2018
    А не подскажете вот какой момент. Настраиваю репликацию из mysql в clickhouse (https://github.com/Altinity/clickhouse-mysql-data-reader#rpm-installation) в базе MySQL есть колонка только с DateTime типом данных, а для движка MergeTree требуется просто Date. Что посоветуете?
    GitHub - Altinity/clickhouse-mysql-data-reader: utility to read mysql data

    utility to read mysql data. Contribute to Altinity/clickhouse-mysql-data-reader development by creating an account on GitHub.

  • @AlexanderMillin #45100 06:25 PM, 11 Mar 2018
    toDate()
  • https://t.me/clickhouse_ru
    @webmaks ↶ Reply to #45100 #45101 06:29 PM, 11 Mar 2018
    вот так

    engine = MergeTree(…, toDate(requestdate),…)

    Вы имеете ввиду?
  • https://t.me/clickhouse_ru
    @mainnika ↶ Reply to #45034 #45102 06:36 PM, 11 Mar 2018
    У меня такая картина на графиках была когда пихал данные в КХ в рилтайме по строчке за раз (я тогда только его установил). Я быстро понял что сделал фигню, остановил, КХ за некоторое время переварил поступившие данные и потребление памяти упало с 40гб до 2гб.
  • Попробуйте расширенный синтаксис, где указывается PARTITION BY, ORDER BY. В PARTITION BY пропишите:
    PARTITION BY toYYYYMM(requestdate)
  • https://t.me/clickhouse_ru
    @mo1seev ↶ Reply to #45102 #45104 06:37 PM, 11 Mar 2018
    нееее, там целери и и редис и он собирает по 1000 строчек и делает один инсерт
  • В этом случае наличие столбца с датой в таблице не требуется.
    Ещё один способ - можно объявить столбец с датой так:

    date Date MATERIALIZED toDate(requestdate)

    (я не уверен, что утилита для репликации из MySQL поддерживает такие столбцы)
  • https://t.me/clickhouse_ru
    @webmaks ↶ Reply to #45103 #45106 06:40 PM, 11 Mar 2018
    Вот такое сообщение получил

    ENGINE = ReplicatedMergeTree(..., PARTITION BY toYYYYMM(requestdate), ...);

    Expected one of: AND, AS, BETWEEN, NOT LIKE, LIKE, GLOBAL IN, IN, GLOBAL NOT IN, NOT IN, Comma, Dot, Arrow, QuestionMark, alias, IS, OR, token
  • https://t.me/clickhouse_ru
    @ka_ktus #45108 06:46 PM, 11 Mar 2018
    Вопрос разработчикам loghouse - что будет, если в исходном json в каком-то ключе приходит вложенный json? Судя по конфигу fluent - этот ключ просто пропускается и не попадёт в CH.
    Сейчас думаю над написанием некоего loghouse-proxy на go, который будет писать в CH в loghouse-совместимом формате и вот наткнулся на такое поведение.
  • https://t.me/clickhouse_ru
    @webmaks ↶ Reply to #45107 #45109 06:51 PM, 11 Mar 2018
    получилось сделать путем создания еще одной колонки, которая данные берет из существующей колонки и форматирует ее в дату

    CREATE TABLE PROJECT_TRASH

    requestdate DateTime,
    requestdate_date Date DEFAULT toDate(requestdate),

    ENGINE = ReplicatedMergeTree(..., requestdate_date, ...);
  • https://t.me/clickhouse_ru
    @bearded_coder_official #45110 07:06 PM, 11 Mar 2018
    /stat@combot
  • https://t.me/clickhouse_ru
    @bearded_coder_official #45111 07:06 PM, 11 Mar 2018
    /stat@combot
  • https://t.me/clickhouse_ru
    @bearded_coder_official #45112 07:06 PM, 11 Mar 2018
    /stat@combot
  • https://t.me/clickhouse_ru
    @bearded_coder_official #45114 07:06 PM, 11 Mar 2018
    /stat@combot
  • https://t.me/clickhouse_ru
    Можно было и без этого же. Кастомное паотицирование дало бы тот же эффект без лишней колонки
  • https://t.me/clickhouse_ru
    @grigorka #45119 07:53 PM, 11 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @nonamehobo #45120 09:37 PM, 11 Mar 2018
    Не могу понять в чем дело?
    Chrome 65, Tabix Build 18.02.2
    галки HTTP Base auth и Include Credentials никак не влияют на наличие или отсутствие хедера Authorization в запросе, те его там нет (проверяется tcpdump)
    Никто с такой проблемой не сталкивался?
  • 12 March 2018 (226 messages)
  • https://t.me/clickhouse_ru
    @leidruid #45121 06:18 AM, 12 Mar 2018
    Коллеги! А какие best practice существуют для добавления реплик в кластер?
    Есть ли возможность получить полностью консистентную реплику без остановки продакшен-сервера ?
  • https://t.me/clickhouse_ru
    @ivmaks ↶ Reply to #45121 #45122 06:47 AM, 12 Mar 2018
    Если таблички уже реплицируемые, то нужно просто создать такие же на соседнем сервере. Если не реплицируемые, то будет простой в момент конвертации.
  • https://t.me/clickhouse_ru
    @ivmaks #45123 06:47 AM, 12 Mar 2018
    Конвертация быстрая, но ручная
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @leidruid #45125 07:03 AM, 12 Mar 2018
    А потом синхронизируется свесь архив или только новые записи ?
  • https://t.me/clickhouse_ru
    @leidruid #45126 07:04 AM, 12 Mar 2018
    И можно ли потом подключить ещё условно "старые" партиции к одному из серверов?
  • https://t.me/clickhouse_ru
    @leidruid #45127 07:07 AM, 12 Mar 2018
    Цель - иметь "оперативный" и "архивный" набор даных
  • https://t.me/clickhouse_ru
    @mikeangel #45128 07:13 AM, 12 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @ivmaks ↶ Reply to #45125 #45129 07:14 AM, 12 Mar 2018
    Реплики та блиц будут консистентны, причем тут нет понятия "слейв" можно писать в любую копию таблицы, которая имеет того же путь в зукипере
  • https://t.me/clickhouse_ru
    @ivmaks ↶ Reply to #45126 #45130 07:14 AM, 12 Mar 2018
    Да
  • https://t.me/clickhouse_ru
    @ivmaks ↶ Reply to #45127 #45131 07:16 AM, 12 Mar 2018
    Разные наборы данных только в таблицах с разными путями в зукипере, но при условии одинаковых схем, можно между ними перемещать партиции, как в ссылке выше
  • https://t.me/clickhouse_ru
    @leidruid ↶ Reply to #45130 #45132 07:19 AM, 12 Mar 2018
    А они потом не решат среплицироваться ?
  • https://t.me/clickhouse_ru
    @leidruid #45133 07:20 AM, 12 Mar 2018
    Я что-то не очень этот момент понял из доки
  • https://t.me/clickhouse_ru
    @ivmaks ↶ Reply to #45132 #45134 07:21 AM, 12 Mar 2018
    Они это начнут делать сразу
  • https://t.me/clickhouse_ru
    @leidruid ↶ Reply to #45134 #45135 07:21 AM, 12 Mar 2018
    А как правильно сделать, чтобы не начали ?
  • https://t.me/clickhouse_ru
    @leidruid #45136 07:22 AM, 12 Mar 2018
    Вроде было что-то такое в чате, но найти не могу
  • https://t.me/clickhouse_ru
    @ivmaks ↶ Reply to #45135 #45137 07:23 AM, 12 Mar 2018
    На сколько я знаю, в репликах могут быть только одинаковые наборы данных
  • https://t.me/clickhouse_ru
    @149051052 #45138 07:23 AM, 12 Mar 2018
    Привет!
    Есть запрос вида:
    >SELECT ... INNER JOIN (SELECT ... WHERE id IN (A)) USING id WHERE id IN (A)
    - вместо (A) может быть подзапрос на получение IDs (запрос к другой БД или запрос к удаленной таблице)
    - если не указывать в каждом JOIN - IN(A), то в память грузятся все записи
    - выборка (A) не кешируется, таким образом, если написать IN(A) N раз, то будетзатрачено в N раз больше времени
    Вопрос:
    - Можно ли как-то переписать запрос, чтобы USING id накладывался как условие для внешней табилцы (чтобы можно было отказаться от IN(N) везде кроме внутренних JOIN)
    - Либо можно ли как-то заставить кешировать подзапрос (A), чтобы он выполнялся всего один раз
  • https://t.me/clickhouse_ru
    @leidruid ↶ Reply to #45137 #45139 07:25 AM, 12 Mar 2018
    @milovidov_an , @kochetovnicolai , не могли бы вы прояснить ситуацию? Есть ли "легальный" способ держать в одной из реплик расширенный набор данных ?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45139 #45140 07:32 AM, 12 Mar 2018
    Если вы имеете ввиду разный набор таблиц то да, в ClickHouse репликация сделана на уровне таблиц, а не всего сервера.
  • @lexa_work #45141 07:33 AM, 12 Mar 2018
    Ручное секционирование через таблицы и формирование нужных наборов данных через Merge/View
  • https://t.me/clickhouse_ru
    @leidruid ↶ Reply to #45140 #45142 07:33 AM, 12 Mar 2018
    Я имел в виду разный набор партиций в таблицах
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45142 #45143 07:34 AM, 12 Mar 2018
    Нет конечно, в реплике будет полная копия
  • https://t.me/clickhouse_ru
    @nengchak #45144 07:35 AM, 12 Mar 2018
    Приветы, можете подсказать, есть ли графано/кибаноподобная штука для кликхауса?
  • https://t.me/clickhouse_ru
    @leidruid ↶ Reply to #45144 #45145 07:36 AM, 12 Mar 2018
    Если clickhouse-datasource для Grafana
  • https://t.me/clickhouse_ru
    @leidruid #45146 07:36 AM, 12 Mar 2018
    Или вы что-то не то имеете в виду ?
  • https://t.me/clickhouse_ru
    @nengchak ↶ Reply to #45146 #45147 07:37 AM, 12 Mar 2018
    ну да типа такого, чтобы данные брал из кликхауса и рисовал красивые графики
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45147 #45148 07:37 AM, 12 Mar 2018
    GitHub - Vertamedia/clickhouse-grafana: Clickhouse datasource for grafana

    Clickhouse datasource for grafana. Contribute to Vertamedia/clickhouse-grafana development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @nengchak #45149 07:38 AM, 12 Mar 2018
    а кстати, графана умеет в роли? т.е. скажем манагеру доступ дать только до скажем грубо говоря WHERE site='site1.ru' а второму доступ только WHERE site='site2.ru'
  • https://t.me/clickhouse_ru
    @nengchak #45150 07:38 AM, 12 Mar 2018
    ?
  • https://t.me/clickhouse_ru
    @kshvakov #45151 07:40 AM, 12 Mar 2018
    Нет, так графана не умеет, но можно создать разных пользователей и сделать им разные дашборды без возможности изменять запросы
  • https://t.me/clickhouse_ru
    @nengchak ↶ Reply to #45151 #45152 07:43 AM, 12 Mar 2018
    что можете посоветовать? с учетом того, что они могут почти все фильтровать. т.е. по дате, по другим показателям, но в пределах только своих сайтов
  • https://t.me/clickhouse_ru
    @nengchak #45153 07:43 AM, 12 Mar 2018
    сам я искал, но не нашел, поэтому начал писать с нуля..но стоит ли...
  • Ещё поведение зависит от настроек overcommit_memory и overcommit_ratio. И дефолт там не самый очевидный.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45152 #45155 07:54 AM, 12 Mar 2018
    Вхардкодте для каждого из них свой домен, остальное оставьте переменными для фильтров
  • https://t.me/clickhouse_ru
    @mrlamberg #45156 07:56 AM, 12 Mar 2018
    можно еще вью для каждого домена сделать)
  • https://t.me/clickhouse_ru
    @mrlamberg #45157 07:56 AM, 12 Mar 2018
    и права выдавать только на нее
  • https://t.me/clickhouse_ru
    @nengchak #45158 07:56 AM, 12 Mar 2018
    О как, спасибо, покопаюсь
  • https://t.me/clickhouse_ru
    @mrlamberg #45159 07:56 AM, 12 Mar 2018
    или нельзя?
  • https://t.me/clickhouse_ru
    @nengchak #45160 07:57 AM, 12 Mar 2018
    я графану видел как юзер, кибану тыкал уже как админ ) так что не знаю
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45156 #45161 07:58 AM, 12 Mar 2018
    Для View пока нет проброса условий в WHERE, может достаточно накладо получиться
  • https://t.me/clickhouse_ru
    @mrlamberg #45162 07:58 AM, 12 Mar 2018
    печально
  • https://t.me/clickhouse_ru
    @mrlamberg #45163 07:58 AM, 12 Mar 2018
    а когда odbc движок и alter table delete планируется?)
  • https://t.me/clickhouse_ru
    @kshvakov #45164 08:11 AM, 12 Mar 2018
    ODBC уже есть
  • https://t.me/clickhouse_ru
    @mrlamberg #45165 08:12 AM, 12 Mar 2018
    в stable ?
  • https://t.me/clickhouse_ru
    @kshvakov #45166 08:14 AM, 12 Mar 2018
    Да
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45165 #45167 08:16 AM, 12 Mar 2018
    CREATE TABLE t_odbc(columns....) Engine=ODBC('DSN', database, table)
  • https://t.me/clickhouse_ru
    @mrlamberg #45168 08:17 AM, 12 Mar 2018
    надо обновлятся значит
  • https://t.me/clickhouse_ru
    @mrlamberg #45169 08:18 AM, 12 Mar 2018
    а он where умеет прокидывать?
  • @ztlpn #45170 08:20 AM, 12 Mar 2018
    В простых случаях да
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45169 #45171 08:20 AM, 12 Mar 2018
    IN и LIKE пока не умеет, вот список того что может прокинуть https://github.com/yandex/ClickHouse/blob/9c0bbaaa4773a2e1fad2c45c631d49cf94d524dc/dbms/src/Storages/transformQueryForExternalDatabase.cpp#L22
    yandex/ClickHouse

    ClickHouse is a free analytic DBMS for big data.

  • https://t.me/clickhouse_ru
    @emakarov #45172 08:20 AM, 12 Mar 2018
    привет всем. вопрос
    при HTTP запросе (JSON формат) DateTime выводится в следующем виде "2017-12-08 12:05:20"
    Есть ли возможность поменять формат сериализации DateTime ?
  • https://t.me/clickhouse_ru
    @mrlamberg #45173 08:23 AM, 12 Mar 2018
    а можно использовать odbc движок для импорта?
  • https://t.me/clickhouse_ru
    @mrlamberg #45174 08:24 AM, 12 Mar 2018
    написать insert .. select from odbc
  • https://t.me/clickhouse_ru
    @mrlamberg #45175 08:24 AM, 12 Mar 2018
    или будет печально?
  • @pavlov_m #45176 08:28 AM, 12 Mar 2018
    Добрый день. После обновления наблюдаю ошибку Logical error: part spans more than one month.
  • @pavlov_m #45177 08:28 AM, 12 Mar 2018
    разве уже нельзя вставлять данные больше чем за 1 месяц?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45173 #45178 08:29 AM, 12 Mar 2018
    Должно работать, насколько оно будет печально можете проверить ;)
  • @70532431 #45179 09:26 AM, 12 Mar 2018
    Нужно хранить в колонке значения от 0 до 5, какой тип данных лучше покажет себя в быстродействии и экономии диска - String или (U)Int8?
  • @esurovskiy #45180 09:30 AM, 12 Mar 2018
    может Enum подойдет? и String и Int одновременно)
  • @pavlov_m ↶ Reply to #45179 #45181 09:33 AM, 12 Mar 2018
    лучше UInt8
  • https://t.me/clickhouse_ru
    @atutik #45182 09:33 AM, 12 Mar 2018
    uInt8 - 1 байт
  • @70532431 #45183 09:35 AM, 12 Mar 2018
    1 символ char тоже 1 байт, в том-то и дело
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45179 #45184 09:35 AM, 12 Mar 2018
    String состоит из длины строки uvarint и самих данных, в вашем случае под 0..5 уже нужен 1 байт + сами данные. Все это конечно пожмется, но тут вопрос строки это у вас изначально или цыфры, если строки берите FixedString чтоб не конвертировать туда-сюда
  • https://t.me/clickhouse_ru
    @kharu5 #45185 09:42 AM, 12 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @fiksilya #45187 10:18 AM, 12 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @fiksilya #45188 10:19 AM, 12 Mar 2018
    /stat@combot
  • https://t.me/clickhouse_ru
    @JenZolotarev #45190 10:20 AM, 12 Mar 2018
    Это поиск каналов для спама или что?
  • @70532431 #45191 10:24 AM, 12 Mar 2018
    /stat@combot
  • https://t.me/clickhouse_ru
    @fiksilya ↶ Reply to #45190 #45193 10:28 AM, 12 Mar 2018
    Нет, просто у меня появилась эта кнопка... не знал что делает
  • https://t.me/clickhouse_ru
    @Sablast #45194 10:31 AM, 12 Mar 2018
    коллеги, подскажите - установил КХ в убунте, которая в Windows Store для Win 10, при подключении пишет:
    Code: 210. DB::NetException: Connection refused: (localhost:9000, 127.0.0.1)
    в конфиге прописано: <listen_host>0.0.0.0</listen_host>
    в чем может быть беда?)
  • @vstakhov #45195 10:32 AM, 12 Mar 2018
    --host=127.0.0.1 ?
  • https://t.me/clickhouse_ru
    @JenZolotarev #45196 10:32 AM, 12 Mar 2018
    hosts кривой :)
  • https://t.me/clickhouse_ru
    @JenZolotarev #45197 10:33 AM, 12 Mar 2018
    Поэтому сам на lo не подключается
  • @vstakhov #45198 10:33 AM, 12 Mar 2018
    да нет, это сабж криво ipv6 поддерживает
  • @vstakhov #45199 10:33 AM, 12 Mar 2018
    у меня на центоси у пользователя как раз откусан кусачками ipv6, и ровно та же проблема
  • https://t.me/clickhouse_ru
    уже наступал с подобным (не в кх) - localhost в ipv6, а слушает ipv4 или наоборот.
  • https://t.me/clickhouse_ru
    @Sablast ↶ Reply to #45196 #45201 10:33 AM, 12 Mar 2018
    думаете hosts винды влияет на консоль вируталки?
  • https://t.me/clickhouse_ru
    @JenZolotarev #45202 10:33 AM, 12 Mar 2018
    Я такое ловил когда hosts правил, на дефолтном подключается сразу
  • https://t.me/clickhouse_ru
    @Sablast ↶ Reply to #45195 #45203 10:34 AM, 12 Mar 2018
    это где то надо прописать?)
  • https://t.me/clickhouse_ru
    @JenZolotarev #45204 10:34 AM, 12 Mar 2018
    clickhouse-client -h 127.0.0.1
  • https://t.me/clickhouse_ru
    @Sablast ↶ Reply to #45204 #45210 10:35 AM, 12 Mar 2018
    та же ошибка
  • https://t.me/clickhouse_ru
    @JenZolotarev #45211 10:36 AM, 12 Mar 2018
    А порт то слушается?
  • https://t.me/clickhouse_ru
    @Sablast ↶ Reply to #45211 #45212 10:45 AM, 12 Mar 2018
    как проверить? почитал про WSL - пишут что тут фактически порты винды надо проверять а не линукса =/
  • https://t.me/clickhouse_ru
    netstat и проверять
  • https://t.me/clickhouse_ru
    только синтаксис вызова уточнить
  • https://t.me/clickhouse_ru
    @JenZolotarev #45215 10:49 AM, 12 Mar 2018
    netstat -pan | grep 9000
  • https://t.me/clickhouse_ru
    @Sablast #45216 10:50 AM, 12 Mar 2018
    пусто
  • https://t.me/clickhouse_ru
    @JenZolotarev #45217 10:50 AM, 12 Mar 2018
    Очевидно, сервер не запущен
  • https://t.me/clickhouse_ru
    @Sablast #45218 10:53 AM, 12 Mar 2018
    хм, лог чистый
  • https://t.me/clickhouse_ru
    значит, не запускался
  • https://t.me/clickhouse_ru
    ну или прав на запись в логи нет
  • @pavel_maksimow #45221 10:58 AM, 12 Mar 2018
    Ребята из Яндекс Метрики/Директа, в каком типе словарей вы храните атрибуты из Яндекс Директа, например названия кампаний и т.п?
  • https://t.me/clickhouse_ru
    @Sablast ↶ Reply to #45219 #45222 10:59 AM, 12 Mar 2018
    clickhouse-server --config-file=/etc/clickhouse-server/config.xml
    Include not found: clickhouse_remote_servers
    Include not found: clickhouse_compression
    Logging trace to /var/log/clickhouse-server/clickhouse-server.log
    Logging errors to /var/log/clickhouse-server/clickhouse-server.err.log
    Logging trace to console
    Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = Exception: Could not determine local time zone: custom time zone file used., e.what() = Exception
    вроде и ошибок нет на старте =/
  • https://t.me/clickhouse_ru
    @Sablast #45223 11:13 AM, 12 Mar 2018
    всем спасибо, все решилось из-за timezone не стартовал
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #45221 #45224 11:33 AM, 12 Mar 2018
    зависит от размера этого вида данных. если меньше 100М, то hashed, если больше то cached
  • @vstakhov #45225 11:34 AM, 12 Mar 2018
    гм, а вот можно ли сабж использовать в таком виде: писать на локальный сервер, а при чтении аггрегировать данные со, скажем, 100+ серверов?
  • @vstakhov #45226 11:34 AM, 12 Mar 2018
    смотрю в distributed и не понимаю, оно то, что я хочу, или нет
  • https://t.me/clickhouse_ru
    @neiwick #45227 11:36 AM, 12 Mar 2018
    пишите в локальные таблицы, а читайте из distributed. По вашему описанию оно подходит
  • @vstakhov #45228 11:36 AM, 12 Mar 2018
    не очень понимаю, как это сконфигурировать
  • @vstakhov #45229 11:37 AM, 12 Mar 2018
    задать один ch сервер, где настроить все таблицы как distributed, а на локальных нодах вообще притвориться, что кластера нет, так?
  • https://t.me/clickhouse_ru
    да так можно сделать

    также можно на всех сервера remote_servers кластера прописать
    и на всех серверах объявить distributed таблицы
    чтение с любого сервера из distributed будет читать со всех таблиц доступных по кластеру с этого сервера
    и запись тоже будет стараться на все шарды раскатить в соответсвии с ключом шардирования

    сопровождать такое конечно геморойнее, но "типа надежность"

    писать в локальную таблицу с движком семейства MergeTree, можно в обоих случаях
  • @vstakhov #45231 11:40 AM, 12 Mar 2018
    супер, спасибо
  • @vstakhov #45232 11:41 AM, 12 Mar 2018
    а можно ли при этой аггрегации еще и шифровать трафик между нодами без костылей навроде stunnel?
  • https://t.me/clickhouse_ru
    @neiwick #45233 11:51 AM, 12 Mar 2018
    В коде я натыкался на ssl порты для tcp соединений для общения между клиентом и сервером. Возможно ssl между серверами в кластере тоже присутствует.
  • @vstakhov #45234 11:52 AM, 12 Mar 2018
    наверное, это вопрос к @milovidov_an
  • https://t.me/clickhouse_ru
    А обмен тормозить этот ssl не будет?
  • @kgdrusaaremaa #45236 11:59 AM, 12 Mar 2018
    Это баг или фича?
  • @kgdrusaaremaa #45237 11:59 AM, 12 Mar 2018
    SELECT (intDiv(toUInt32(EventTimeStamp), 60) * 60) * 1000 AS t, SUM(octetDeltaCount * 8 /(60 * 1024 * 1024)) AS 14065241out FROM default.ipfix20180311 WHERE sourceLogin LIKE '14065241' GROUP BY t ORDER BY t ASC

    Wrong number
  • @kgdrusaaremaa #45238 11:59 AM, 12 Mar 2018
    но в то же время SELECT
    (intDiv(toUInt32(EventTimeStamp), 60) * 60) * 1000 AS t,
    SUM((octetDeltaCount * 8) / ((60 * 1024) * 1024)) AS out14065241
    FROM default.ipfix20180311
    WHERE sourceLogin LIKE '14065241'
    GROUP BY t
    ORDER BY t ASC
  • @kgdrusaaremaa #45239 11:59 AM, 12 Mar 2018
    ок
  • https://t.me/clickhouse_ru
    @BloodJazMan #45240 12:00 PM, 12 Mar 2018
    octetDeltaCount
    какой тип у колонки?
  • @kgdrusaaremaa #45241 12:00 PM, 12 Mar 2018
    octetDeltaCount UInt64,
  • @lexa_work #45242 12:00 PM, 12 Mar 2018
    как я понял смысл в 14065241out vs out14065241
  • @lexa_work #45243 12:01 PM, 12 Mar 2018
    для алиаса колонки
  • @kgdrusaaremaa #45244 12:01 PM, 12 Mar 2018
    тут вопрос про то что AS 14065241out неправильно а AS out14065241 правильно
  • @kgdrusaaremaa #45245 12:01 PM, 12 Mar 2018
    да
  • @lexa_work #45246 12:01 PM, 12 Mar 2018
    возьмите в кавычки
  • https://t.me/clickhouse_ru
    @orantius #45247 12:01 PM, 12 Mar 2018
    у вас токен начинается с цифр и видимо пытается распарситься как число, и оказывается не числом
  • @kgdrusaaremaa #45248 12:01 PM, 12 Mar 2018
    SELECT (intDiv(toUInt32(EventTimeStamp), 60) * 60) * 1000 AS t, SUM(octetDeltaCount * 8 /(60 * 1024 * 1024)) AS '14065241out' FROM default.ipfix20180311 WHERE sourceLogin LIKE '14065241' GROUP BY t ORDER BY t ASC

    "понаделают кавычек" :D
  • https://t.me/clickhouse_ru
    @orantius #45249 12:02 PM, 12 Mar 2018
    не те кавычки
  • https://t.me/clickhouse_ru
    @orantius #45250 12:02 PM, 12 Mar 2018
    `
  • https://t.me/clickhouse_ru
    @orantius #45251 12:02 PM, 12 Mar 2018
    или "
  • @kgdrusaaremaa #45252 12:02 PM, 12 Mar 2018
    c ` работает - спасибо
  • https://t.me/clickhouse_ru
    @valericus #45253 12:26 PM, 12 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Deleveraged #45254 12:26 PM, 12 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @TEkoOne #45255 12:26 PM, 12 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Bustig #45256 12:27 PM, 12 Mar 2018
    /stat@combot
  • https://t.me/clickhouse_ru
    @irogov2 #45258 12:27 PM, 12 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Bustig #45259 12:28 PM, 12 Mar 2018
    Привет!
    Есть запрос вида:
    >SELECT ... INNER JOIN (SELECT ... WHERE id IN (A)) USING id WHERE id IN (A)
    - вместо (A) может быть подзапрос на получение IDs (запрос к другой БД или запрос к удаленной таблице)
    - если не указывать в каждом JOIN - IN(A), то в память грузятся все записи
    - выборка (A) не кешируется, таким образом, если написать IN(A) N раз, то будетзатрачено в N раз больше времени
    Вопрос:
    - Можно ли как-то переписать запрос, чтобы USING id накладывался как условие для внешней табилцы (чтобы можно было отказаться от IN(N) везде кроме внутренних JOIN)
    - Либо можно ли как-то заставить кешировать подзапрос (A), чтобы он выполнялся всего один раз
  • @417576685 #45260 12:30 PM, 12 Mar 2018
    Ребят, есть вопрос по graphite merge tree
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #45261 12:31 PM, 12 Mar 2018
    "- Либо можно ли как-то заставить кешировать подзапрос (A), чтобы он выполнялся всего один раз" - сделай данные A в виде временной таблицы с движком Set
  • https://t.me/clickhouse_ru
    @Elena_actress #45262 12:31 PM, 12 Mar 2018
    Joined.
  • @417576685 #45263 12:32 PM, 12 Mar 2018
    Есть у меня данные хранящие в CH в graphite merge tree
  • @417576685 #45264 12:32 PM, 12 Mar 2018
    d 2 nf,kbwf[ gj hfpltkmyjcnb
  • @417576685 #45265 12:32 PM, 12 Mar 2018
    в 2 таблицах по раздельности
  • @417576685 #45266 12:32 PM, 12 Mar 2018
    минутные аггрегаты
  • @417576685 #45267 12:32 PM, 12 Mar 2018
    и 5-ти минутные
  • @417576685 #45268 12:32 PM, 12 Mar 2018
    пример
  • @417576685 #45271 12:34 PM, 12 Mar 2018
    то же значение из 5-ти минутной таблицы
  • @417576685 #45272 12:34 PM, 12 Mar 2018
    так вот сам вопрос
  • @417576685 #45273 12:35 PM, 12 Mar 2018
    какого у меня на 5-ти минутных аггрегатах значение больше чем на минутных
  • @417576685 #45274 12:35 PM, 12 Mar 2018
    функция аггрегации - max
  • https://t.me/clickhouse_ru
    @marshalov #45275 12:41 PM, 12 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @marshalov #45276 12:44 PM, 12 Mar 2018
    @milovidov_an Добрый день, подскажи, пожалуйста: 1) есть какие-то планы по реализации Decimal - стоит ли ждать, например, в ближайшие полгода? или год? 2) куда/кому написать, если наша компания строит тиражируемый продукт на Clickhouse и мы желаем стать партнёром в части поддержки Clickhouse?
  • https://t.me/clickhouse_ru
    @kshvakov #45277 12:46 PM, 12 Mar 2018
    GitHub открыт для пулреквестов :)
  • https://t.me/clickhouse_ru
    Если эта реплика относится к п. 1 моего сообщения, то да - я в курсе, именно поэтому спрашиваю: я же не знаю, может кто-то из коммитеров уже сидит и пишет (или собирается в ближайшее время написать) этот функционал, а если нет - то следующим моим вопросом будет такой - "нет ли концептуальных возражений по поводу того, что я попробую написать поддержку Decimal?"
  • https://t.me/clickhouse_ru
    Данные А - в каждом отедльном случае это разные данные
  • https://t.me/clickhouse_ru
    @hulponot #45281 01:16 PM, 12 Mar 2018
    можно через WITH сделать подзапрос
    https://github.com/yandex/ClickHouse/blob/master/CHANGELOG_RU.md#%D0%9D%D0%BE%D0%B2%D1%8B%D0%B5-%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B8-6
  • https://t.me/clickhouse_ru
    Можно:
    1. использовать сессию (не каждый драйвер поддерживает). В рамках сессии временные таблицы вроде как изолированы (нужно проверить, могу ошибаться)
    2. задавать для временой талбицы явно уникальное имя, что-то типа 'temp__table_a_' + request_id
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45281 #45283 01:17 PM, 12 Mar 2018
    нельзя, в КХ нет CTE
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45282 #45284 01:18 PM, 12 Mar 2018
    Да, временные таблицы изолированы
  • @z001ev #45285 01:36 PM, 12 Mar 2018
    Кто-нибудь пользуется AggregatingMergeTree с Nullable колонками? Помогите объяснить такое поведение агрегатных функций:

    1) Если использовать агрегатную функцию напрямую, то она успешно сохраняет NULL и возвращает его как результат.
    SELECT any(CAST(NULL AS Nullable(UInt8)))
    ┌─any(CAST(NULL, \'Nullable(UInt8)\'))─┐
    │ \N │
    └──────────────────────────────────────┘

    2) Если разделить этот этап на две части (ну т.е. например сделать таблицу с колонками-состояниями и вьюху, которая будет доагрегировать их... по некоторой аналогии как cloudflare описывало в своей статье) то NULL пропадает начисто и превращается в 0 для чисел.
    SELECT anyMerge(a) FROM ( SELECT anyState(CAST(NULL AS Nullable(UInt8))) AS a)
    ┌─anyMerge(a)─┐
    │ 0 │
    └─────────────┘

    Судя по исходникам (https://github.com/yandex/ClickHouse/blob/486a498b9f6300ee432074cffdd889e485b5c1c1/dbms/src/AggregateFunctions/AggregateFunctionNull.cpp) такое поведение корректно. И почему "Aggregate function combinator 'Null' is only for internal usage" так сделано? вроде как этот комбинатор решил бы проблему если бы был доступен.
    Есть варианты?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45276 #45286 02:07 PM, 12 Mar 2018
    Кстати, а что за продукт?
  • https://t.me/clickhouse_ru
    Пока не могу разглашать.
  • @70532431 #45288 02:20 PM, 12 Mar 2018
    Кстати, да, не нашёл нигде информации, под какой лицензией распространяется CH?
    UPD нашёл - надо бы сделать где-то явнее, чем в футере мелким шрифтом)))
    https://github.com/yandex/ClickHouse/blob/master/LICENSE
    ClickHouse/ClickHouse

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

  • @70532431 #45289 02:22 PM, 12 Mar 2018
    Из Вики:
    " Единственным условием, накладываемым лицензией Apache, является информирование получателя о факте использования исходного кода."
    То есть в описании продукта, в котором используется CH, должно быть указано, что продукт содержит Clickhouse?
  • @vstakhov #45290 02:26 PM, 12 Mar 2018
    Apache License 2.0 (Apache-2.0) Explained in Plain English - TLDRLegal

    The Apache License 2.0 (Apache-2.0) summarized/explained in plain English.

  • @vstakhov #45291 02:27 PM, 12 Mar 2018
    не только информирование о факте, но и полный текст лицензии
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45287 #45292 02:27 PM, 12 Mar 2018
    OK, а что за компания? )
  • @vstakhov #45293 02:28 PM, 12 Mar 2018
    а если внесены значительные изменения, то и описание этих изменений
  • @70532431 ↶ Reply to #45290 #45294 02:28 PM, 12 Mar 2018
    Суперсайт, спасибище
  • https://t.me/clickhouse_ru
    @149051052 #45295 02:29 PM, 12 Mar 2018
    Запрос:
    >CREATE TEMPORARY TABLE IF NOT EXISTS tableTest (colTest UInt32) ENGINE = Memory
    Возвращает ошибку:
    >57 - DB::Exception: Temporary table tableTest already exists
    Почему так происходит?
  • https://t.me/clickhouse_ru
    ЦФТ
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #45295 #45297 02:31 PM, 12 Mar 2018
    мож зарезервированное слово
  • https://t.me/clickhouse_ru
    Таблица создается, ошибка при повтрном запросе
  • https://t.me/clickhouse_ru
    @gurkalov #45299 02:32 PM, 12 Mar 2018
    Свежий докер образ снова не работает.
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #45298 #45300 02:32 PM, 12 Mar 2018
    А, ну так тогда все ок. Она ж есть, в чем проблема?
  • https://t.me/clickhouse_ru
    Проблема в том, что ошибки не должно быть, если указано "IF NOT EXISTS"
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45295 #45302 02:33 PM, 12 Mar 2018
    Просто при создании там нет проверки на if exists, щас поправлю )
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #45301 #45303 02:33 PM, 12 Mar 2018
    А да, сори. Чет туплю люто.)
  • https://t.me/clickhouse_ru
    Спасибо
  • https://t.me/clickhouse_ru
    @nonamehobo #45305 02:47 PM, 12 Mar 2018
    Опция allow_databases работает на system?
    Создал RO пользователя у которого в allow_databases нет system,
    Но в tabix при этом отрисовываются все бд(system + default + all other created dbs)
    + describe table работает на таблицы в system помимо разрешённой базы данных, хотя на другие denied
  • https://t.me/clickhouse_ru
    @Valenvaryon #45306 03:01 PM, 12 Mar 2018
    Привет
    Как бороться с ошибкой "Part XXX intersects previous part YYY" ? Весь лог забит одним и тем же сообщением
  • https://t.me/clickhouse_ru
    @vse_chetk0 #45307 03:08 PM, 12 Mar 2018
    господа, а можно в докере получить какой то конкретный стабильный релиз КХ кроме последнего ?
  • https://t.me/clickhouse_ru
    Какая версия Clickhouse?
  • https://t.me/clickhouse_ru
    https://github.com/yandex/ClickHouse/blob/481f29b451f23b33e828b1dcd32fbf038f05bd35/CHANGELOG_RU.md
    Исправлена ошибка, в связи с которой запрос OPTIMIZE к Replicated таблицам мог приводить к неконсистентным мержам (в логах видно по сообщениям Part ... intersects previous part).
    yandex/ClickHouse

    ClickHouse is a free analytic DBMS for big data.

  • https://t.me/clickhouse_ru
    @Valenvaryon #45310 03:08 PM, 12 Mar 2018
    1.1.54245
  • https://t.me/clickhouse_ru
    @Valenvaryon #45311 03:09 PM, 12 Mar 2018
    ну этого обновления у нас точно нет
  • https://t.me/clickhouse_ru
    @Valenvaryon #45312 03:10 PM, 12 Mar 2018
    ясно, надо будет подумать об обновлении
  • https://t.me/clickhouse_ru
    Насколько я понимаю описание из документации, на system нельзя ограничить доступ
  • @ztlpn ↶ Reply to #45299 #45314 03:26 PM, 12 Mar 2018
    Починили. В latest тэге сейчас рабочий 54362.
  • а что починили?
  • https://t.me/clickhouse_ru
    @freemike42 #45316 04:08 PM, 12 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Valenvaryon #45317 04:11 PM, 12 Mar 2018
    а как может быть, что на некоторых хостах select count() from some_distributed_table возвращает результатов больше, чем на других?
  • https://t.me/clickhouse_ru
    @Valenvaryon #45318 04:12 PM, 12 Mar 2018
    притом, что в нижележащих мерж-таблицах все одинаково
  • @pookieShmukie #45319 04:13 PM, 12 Mar 2018
    А кто подскажет как такое возможно: https://img.facedsid.ru/eu8wk.jpg ? )
  • @antonio_antuan #45320 04:13 PM, 12 Mar 2018
    Ютц-москва
  • @antonio_antuan #45321 04:13 PM, 12 Mar 2018
    Таймзоны
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45317 #45322 04:14 PM, 12 Mar 2018
    например если что-то напутано в remote_servers
  • А сервер по умолчанию в UTC все конвертирует?
  • @pookieShmukie #45324 04:14 PM, 12 Mar 2018
    Ага...понял...на машине с клиентом UTC стоит
  • @pookieShmukie #45325 04:14 PM, 12 Mar 2018
    *рука-лицо*
  • https://t.me/clickhouse_ru
    @orantius #45326 04:21 PM, 12 Mar 2018
    unix timestamp: переносимость куда угодно
  • Это все замечательно. Только при конвертировании даты в ts зона тоже может учитываться :)
  • https://t.me/clickhouse_ru
    да вроде на всех серверах один конфиг, однако для одной таблицы проблема на одном хосте, для другой таблицы - на другом
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45328 #45329 04:36 PM, 12 Mar 2018
    тогда, возможно, у вас что-то напутано на всех серверах, давайте конфиг, что там у вас?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @Valenvaryon #45331 04:44 PM, 12 Mar 2018
    везде абсолютно идентично
  • @ztlpn ↶ Reply to #45315 #45332 05:09 PM, 12 Mar 2018
    https://github.com/yandex/ClickHouse/commit/e42a25749276958149eedc3f32fccd37512795c5
    https://github.com/yandex/ClickHouse/commit/3cfa4c3e650d9d3d6037e3a18454b7f3e04d807b
    Docker fix · yandex/ClickHouse@e42a257

    ClickHouse is a free analytic DBMS for big data.

  • https://t.me/clickhouse_ru
    select hostName(), * from distributed именно на проблемной машине выдает по две записи одинаковых
  • https://t.me/clickhouse_ru
    @Valenvaryon #45334 05:16 PM, 12 Mar 2018
    но при чтении из мерж-таблицы - запись одна
  • https://t.me/clickhouse_ru
    @Valenvaryon #45335 05:16 PM, 12 Mar 2018
    интересно, что если в запрос добавить order by - две таблички в результате не склеиваются в одну
  • https://t.me/clickhouse_ru
    @Valenvaryon #45336 05:18 PM, 12 Mar 2018
    Возникает ощущение, будто сервер дважды ходит в самого себя
  • https://t.me/clickhouse_ru
    @Valenvaryon #45337 05:19 PM, 12 Mar 2018
    Сейчас рестартанул, проверю после рестарта
  • https://t.me/clickhouse_ru
    @b0ch4r0v #45338 05:28 PM, 12 Mar 2018
    В презентации https://clickhouse.yandex/presentations/meetup12/internals.pdf, на слайде №30 говорится о CAP теореме, и упоминается что
    "Not consistent
    As is any system with async replication

    But you can turn linearizability on"
    Каким способом можно включить linearizability? Речь идёт об этой настройке - fallback_to_stale_replicas_for_distributed_queries или есть еще какие-то механизмы чтобы влиять на это?
  • https://t.me/clickhouse_ru
    рестарт не помог
  • https://t.me/clickhouse_ru
    @sst_tiffany #45340 05:29 PM, 12 Mar 2018
    Joined.
  • @ztlpn ↶ Reply to #45338 #45341 05:30 PM, 12 Mar 2018
    Нужно вставлять с настройкой insert_quorum > N/2, а читать с настройкой select_sequential_consistency
  • https://t.me/clickhouse_ru
    @b0ch4r0v ↶ Reply to #45341 #45342 05:31 PM, 12 Mar 2018
    спасибо.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45336 #45343 05:31 PM, 12 Mar 2018
    Проверьте ещё раз хосты в remote_servers и куда они с этой машины идут
  • https://t.me/clickhouse_ru
    удалось разобраться) были конфликтующие конфиги
  • https://t.me/clickhouse_ru
    @Valenvaryon #45345 05:39 PM, 12 Mar 2018
    и в system.clusters был дважды один и тот же хост на каждый шард
  • https://t.me/clickhouse_ru
    @Valenvaryon #45346 05:42 PM, 12 Mar 2018
    В логах впрочем ничего не было по этому поводу
  • https://t.me/clickhouse_ru
    @Valenvaryon #45347 05:42 PM, 12 Mar 2018
    Может ворнинг нужен?
  • https://t.me/clickhouse_ru
    @stufently #45348 05:45 PM, 12 Mar 2018
    Это нормально может вы так и хотели
  • https://t.me/clickhouse_ru
    @Valenvaryon #45349 05:52 PM, 12 Mar 2018
    Странный какой-то кейс
  • https://t.me/clickhouse_ru
    @Elena_actress #45350 06:04 PM, 12 Mar 2018
    Всем привет!
    Я первый день работаю с ClickHouse, помогите, пожалуйста, привести текст к DateTime.
  • https://t.me/clickhouse_ru
  • @bymslf #45352 06:07 PM, 12 Mar 2018
    Уберите все запросы, оставьте только один
  • https://t.me/clickhouse_ru
    @Elena_actress #45353 06:16 PM, 12 Mar 2018
    Ага, помогло убрать точку с запятой
  • https://t.me/clickhouse_ru
    @Elena_actress #45354 06:16 PM, 12 Mar 2018
    Спасибо!
  • https://t.me/clickhouse_ru
    Спасибо. А тесты теперь есть на это? :) Т.е. я точно уверен что в Яндексе могут сделать тесты, даже знаю с ипользованием каких тулов и если нужно могу помочь с этим (в DM)
  • @ztlpn #45356 08:50 PM, 12 Mar 2018
    Тестов к сожалению нет, так как сейчас образ неудобно собирается - на стороне докер хаба. Отсюда и дурацкие ошибки типа «тег образа и версия сервера не совпадают» (в сборку на стороне хаба вроде бы нельзя передать параметры). Будем переделывать и собирать на своей стороне, тогда и тестировать будет проще.
  • 13 March 2018 (165 messages)
  • https://t.me/clickhouse_ru
    @fiksilya #45358 03:16 AM, 13 Mar 2018
    Пытаюсь выполнить такой запрос
  • https://t.me/clickhouse_ru
    @fiksilya #45360 03:16 AM, 13 Mar 2018
    Получаю такой error
    Received exception from server (version 1.1.54343):
    Code: 10. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Not found column arrayFirstIndex(lambda(tuple(x), and(greater(plus(plus(multiply(toHour(ENTRY_DT), 3600), multiply(toMinute(ENTRY_DT), 60)), toSecond(ENTRY_DT)), x), less(plus(plus(multiply(toHour(ENTRY_DT), 3600), multiply(toMinute(ENTRY_DT), 60)), toSecond(ENTRY_DT)), plus(x, 300)))), [36000, 36002.70428165878, 36024.55641325374]) in block. There are only columns: index, ENTRY_DT, toHour(ENTRY_DT), 3600, multiply(toHour(ENTRY_DT), 3600), toMinute(ENTRY_DT), 60, multiply(toMinute(ENTRY_DT), 60), plus(multiply(toHour(ENTRY_DT), 3600), multiply(toMinute(ENTRY_DT), 60)), toSecond(ENTRY_DT), plus(plus(multiply(toHour(ENTRY_DT), 3600), multiply(toMinute(ENTRY_DT), 60)), toSecond(ENTRY_DT)), [36000., 36002.70428165878, 36024.55641325374], 300, __lambda1, replicate(plus(plus(multiply(toHour(ENTRY_DT), 3600), multiply(toMinute(ENTRY_DT), 60)), toSecond(ENTRY_DT)), [36000., 36002.70428165878, 36024.55641325374]), replicate(300, [36000., 36002.70428165878, 36024.55641325374]), arrayFirstIndex(lambda(tuple(x), and(greater(plus(plus(multiply(toHour(ENTRY_DT), 3600), multiply(toMinute(ENTRY_DT), 60)), toSecond(ENTRY_DT)), x), less(plus(plus(multiply(toHour(ENTRY_DT), 3600), multiply(toMinute(ENTRY_DT), 60)), toSecond(ENTRY_DT)), plus(x, 300)))), [36000., 36002.70428165878, 36024.55641325374]).

    0 rows in set. Elapsed: 0.051 sec.
  • https://t.me/clickhouse_ru
    @fiksilya #45361 03:17 AM, 13 Mar 2018
    Внутренний SELECT работает без проблем.
  • https://t.me/clickhouse_ru
    @fiksilya #45362 03:20 AM, 13 Mar 2018
    Какая-то проблема с alias 😊
  • https://t.me/clickhouse_ru
    спасибо большое!
  • Обновитесь до последней версии. Там этот баг пофиксили.
  • https://t.me/clickhouse_ru
    @fiksilya ↶ Reply to #45364 #45365 05:09 AM, 13 Mar 2018
    Благодарю
  • https://t.me/clickhouse_ru
    @kshvakov #45366 05:10 AM, 13 Mar 2018
    Только она, последняя версия где это исправленно, ещё RC
  • Главное исправили :) для кого то это критично
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #45364 #45368 06:15 AM, 13 Mar 2018
    Обновление безболезненно у вам прошло, все чики-пики?
  • Да, безболезненно! Проблем не было, обновили 8 машин
  • https://t.me/clickhouse_ru
    @Shegloff #45370 06:19 AM, 13 Mar 2018
    Спс, надо тоже обновиться
  • @417576685 #45371 06:50 AM, 13 Mar 2018
    Коллеги, не подскажите как работает функция max ?
  • @562748877 #45372 07:32 AM, 13 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    По дате сегодня так искала максимум:
    select max(CAST(substring(create_date, 1, 19) AS Date)) from table
  • https://t.me/clickhouse_ru
    @iusik #45374 07:51 AM, 13 Mar 2018
    Подскажите, на сколько это нормальный юзкайс шардировать MATERIALIZED таблицу?

    Схема примерна след.

    statistic <- statistic_distributed
    view_statistic <- view_statistic_distrebuted <- statistic_distributed

    где
    statistic – ReplicatedMergeTree
    view_statistic - MATERIALIZED ReplicatedSummingMergeTree
  • https://t.me/clickhouse_ru
    @BloodJazMan #45375 07:54 AM, 13 Mar 2018
    а в чем проблема то ??

    каждый view_statictic ссылается на statistic
    а потом при чтении из distributed сервер которому вы задали запрос просто читает со всех view_staticstic

    тут главное ключ шардирования в distributed таблицах правильно подобрать для записи (для чтения он не используется)
  • https://t.me/clickhouse_ru
    @iusik ↶ Reply to #45375 #45377 07:56 AM, 13 Mar 2018
    Спасибо.
    Ключ шардирование rand()
  • https://t.me/clickhouse_ru
    писать будете в statictic_distributed ?

    вот тут непонятно
    statistic <- statistic_distributed
    view_statistic <- view_statistic_distrebuted <- statistic_distributed
    почему
    statistic_distributed
    дважды

    из вьюхи только читать можно писать туда нежелательно =)
  • https://t.me/clickhouse_ru
    @iusik ↶ Reply to #45378 #45379 07:59 AM, 13 Mar 2018
    Конечно, писать только в statictic_distributed.
  • https://t.me/clickhouse_ru
    @iusik ↶ Reply to #45378 #45380 08:03 AM, 13 Mar 2018
    Ошибочка наверно, хотел показать
    то что view_statistic напоняется от данных которые поступают в statistic (шард)
  • https://t.me/clickhouse_ru
    @iusik ↶ Reply to #45378 #45381 08:04 AM, 13 Mar 2018
    У меня по крайней мере все работает, хотел просто подтвердить то что данная схема (подход) верный.
  • https://t.me/clickhouse_ru
    @patrakovdg #45382 08:12 AM, 13 Mar 2018
    привет! а если в шарде стало кончаться место, и мы решили добавить ещё пару машинок - надо просто их прописать в конфиге на всех серверах как ещё один набор реплик? Есть какая то обкатанная процедура?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45382 #45383 08:14 AM, 13 Mar 2018
    Да, так и есть, еще можете отцепить некоторые партиции и перекинуть в новый шард. В новой версии есть clickhouse-copier, но на продакшене его пробовать пока рано
  • https://t.me/clickhouse_ru
    Эм. Я имею в виду не отдельный "новый шард", а именно в текущий шард добавить <shard><replica>... </replica><replica>... </replica></shard>. Я правильно понял?
  • https://t.me/clickhouse_ru
    @kshvakov #45385 08:19 AM, 13 Mar 2018
    Если просто докинуть реплику она будет копией данных шарда и все
  • https://t.me/clickhouse_ru
    @kshvakov #45386 08:21 AM, 13 Mar 2018
    Пример
    <?xml version="1.0"?>
    <yandex>
    <remote_servers>
    <cluster>
    <shard> <!-- Это шард-->
    <replica>
    <host>replica_1_shard_1</host>
    <port>9000</port>
    </replica>
    <replica>
    <host>replica_2_shard_1</host>
    <port>9000</port>
    </replica>
    </shard>
    <shard> <!-- Это шард-->
    <replica>
    <host>replica_1_shard_2</host>
    <port>9000</port>
    </replica>
    <replica>
    <host>replica_2_shard_2</host>
    <port>9000</port>
    </replica>
    </shard>
    </cluster>

    </remote_servers>
    </yandex>
  • https://t.me/clickhouse_ru
    @patrakovdg #45387 08:22 AM, 13 Mar 2018
    да, и нам (как я понял) надо добавить ещё один набор, типа:

    <shard> <!— Это шард-->
    <replica>
    <host>replica_1_shard_3</host>
    <port>9000</port>
    </replica>
    <replica>
    <host>replica_2_shard_3</host>
    <port>9000</port>
    </replica>
    </shard>
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45387 #45388 08:23 AM, 13 Mar 2018
    Да
  • https://t.me/clickhouse_ru
    @patrakovdg #45389 08:23 AM, 13 Mar 2018
    спасибо
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #45374 #45390 08:36 AM, 13 Mar 2018
    У вас SummingMergeTree, вам rand() не подходит, надо шардировать по ключу, иначе записи с одним ключом на разных шардах окажутся, и не схлопнуться
  • https://t.me/clickhouse_ru
    @Shegloff #45391 08:37 AM, 13 Mar 2018
    Не схлопнутся, без "ь", простите
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45390 #45392 08:40 AM, 13 Mar 2018
    Это тоже не всегда хорошо, например у нас есть "пользователь" и он генерит ~50% трафика, его как раз лучше рандомом по разным шардам укладывать
  • https://t.me/clickhouse_ru
    @Shegloff #45393 08:42 AM, 13 Mar 2018
    Согласен
  • https://t.me/clickhouse_ru
    @Shegloff #45394 08:43 AM, 13 Mar 2018
    Если там в запросах всегда sum(), то можно и rand() оставить вообще например
  • @70532431 ↶ Reply to #45392 #45395 08:44 AM, 13 Mar 2018
    Все тесты показывают, не ленитесь их делать на своих данных, в нашем кейсе например каждой записи соответствует epoch и вот его шардировать наиболее равномерно получается
  • https://t.me/clickhouse_ru
    @Akrillis #45396 08:58 AM, 13 Mar 2018
    Joined.
  • @AntonVedeneev #45397 09:13 AM, 13 Mar 2018
    Всем привет, вопрос наверное набил уже всем оскомину, хотелось бы понять как осуществлять контроль памяти в КХ можно осуществить ограничение на выполнение query можно ограничить сумму query также я наблюдаю что КХ и без выполнения query потребляет память и потребление с временем растет. Как отрегулировать это потребление чтоб при достижение пиков по предыдущим показателям не сваливалась нода?
  • @AntonVedeneev #45398 09:14 AM, 13 Mar 2018
    Кто то уже решал подобную проблему?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45397 #45399 09:23 AM, 13 Mar 2018
    Версия КХ какая, в 1.1.54310 он действительно "подтикал". Как вы правильно указали там есть возможность задания лимитов по памяти на запрос, группировки и т.д.
  • @AntonVedeneev #45400 09:24 AM, 13 Mar 2018
    1.1.54190
  • @AntonVedeneev #45401 09:25 AM, 13 Mar 2018
    в этой версии уже не тек?
  • https://t.me/clickhouse_ru
    @Synoecium #45402 09:25 AM, 13 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45400 #45403 09:25 AM, 13 Mar 2018
    ? Обновитесь )
  • @AntonVedeneev #45404 09:26 AM, 13 Mar 2018
    Само собой, у меня есть тестовый стенд. Но там тоже не все так однозначно.
  • https://t.me/clickhouse_ru
    @Synoecium #45405 09:26 AM, 13 Mar 2018
    подскажите где можно взять тестовый набор данных о полетах как в туториалах, но маленького размера (3Гб качать не вариант, 3Мб устроило бы вполне)
  • @AntonVedeneev #45406 09:27 AM, 13 Mar 2018
    Я хочу понять какое процентное соотношение мне нужно чтоб в момент нагрузки его не убивал ООМ.
  • @AntonVedeneev #45407 09:28 AM, 13 Mar 2018
    словари можно как то ограничивать по памяти?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45406 #45408 09:29 AM, 13 Mar 2018
    echo -1000 > /proc/self/oom_score_adj
    , а на каких запросах он у вас использует памяти больше чем ему выдано?
  • Смотрите ситуация такая, мы запускаем нагрузку в виде запросов, они могут быть как быстрые так и долгие. Сначала он например при 30гиг рам и ограничении в 20гиг алл кверис работает нормально. Потом при росте внуттреннего потребления он просто выскакивает за отведенный счетчик и его прибивает ООМ
  • @AntonVedeneev #45410 09:34 AM, 13 Mar 2018
    ну тоесть если сам процесс КХ скушал 18 гиг памяти то алл кверис может кушать 20 гиг
  • @AntonVedeneev #45411 09:34 AM, 13 Mar 2018
    а памяти все еще 30
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45409 #45412 09:35 AM, 13 Mar 2018
    Задайте лимит на пользователя/все запросы, настройки:
    max_memory_usage_for_user
    max_memory_usage_for_all_queries

    https://github.com/yandex/ClickHouse/blob/master/dbms/src/Interpreters/Settings.h#L243
  • @AntonVedeneev #45413 09:36 AM, 13 Mar 2018
    можете пояснить что это даст если не сложно?
  • https://t.me/clickhouse_ru
    @kshvakov #45414 09:36 AM, 13 Mar 2018
    + max_bytes_before_external_sort, max_bytes_before_external_group_by если ещё не выставлены
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45413 #45415 09:38 AM, 13 Mar 2018
    Вы выставляете лимит памяти на один запрос, данные настройки могут выставить лимит на все конкурентные запросы. Т.е. лимит в 1 Gb на запрос при 100 конкурентных запросах может дать вам потребление в 100Gb
  • https://t.me/clickhouse_ru
    >max_memory_usage_for_all_queries
    Я правильно понимаю, что тут я могу устанвоить ограничение на общее потребление памяти CH сервером?
    Если да, то что будет при превышении этого порога?
  • https://t.me/clickhouse_ru
    @mainnika ↶ Reply to #45405 #45417 09:43 AM, 13 Mar 2018
    Можно руками нагенерить за пару часов
  • https://t.me/clickhouse_ru
    @Synoecium #45418 09:43 AM, 13 Mar 2018
    уже не надо, нашел параметризуемый http запрос, сделал выборку за месяц, спасибо
  • https://t.me/clickhouse_ru
    а вы легких путей не ищете)
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45416 #45420 09:46 AM, 13 Mar 2018
    По идее запрос который вылез отвалится
  • https://t.me/clickhouse_ru
    @mainnika ↶ Reply to #45419 #45421 09:47 AM, 13 Mar 2018
    Ну руками, конечно, не в прямом смысле 🙂 Но зато можно нагенерить примерную дату которую предполагается использовать
  • https://t.me/clickhouse_ru
    тоже вариант, но мне по-быстрому, просто потестить как оно все работает
  • https://t.me/clickhouse_ru
    @fiksilya #45423 09:49 AM, 13 Mar 2018
    Сижу уже 3 часа никак не могу сделать следующий запрос: есть 2 массива min и max одинаковой длины N. В таблице есть столбец value. Для каждого min[i] и max[i] надо выбрать случайную строчку с min[i] <= value <=max[i]
  • https://t.me/clickhouse_ru
    @orantius #45425 09:58 AM, 13 Mar 2018
    SELECT
    v,
    nn.index
    FROM
    (
    WITH
    [10, 20, 30, 40] AS mini,
    [60, 70, 80, 90] AS maxi
    SELECT
    value AS v,
    arrayMap((x, y) -> ((value >= x) AND (value <= y)), mini, maxi) AS `N.v`,
    arrayEnumerate(mini) AS `N.index`
    FROM
    (
    SELECT number AS value
    FROM numbers(100)
    )
    )
    ARRAY JOIN N AS nn
    WHERE nn.v = 1
    ORDER BY rand() ASC
    LIMIT 1 BY nn.index

    ┌──v─┬─nn.index─┐
    │ 46 │ 3 │
    │ 58 │ 1 │
    │ 77 │ 4 │
    │ 27 │ 2 │
    └────┴──────────┘
    ┌──v─┬─nn.index─┐
    │ 17 │ 1 │
    │ 67 │ 4 │
    │ 59 │ 2 │
    │ 74 │ 3 │
    └────┴──────────┘
  • https://t.me/clickhouse_ru
    @fiksilya #45426 10:01 AM, 13 Mar 2018
    @orantius Дай бог тебе здоровья!
  • https://t.me/clickhouse_ru
    @Shegloff #45427 10:11 AM, 13 Mar 2018
    ))))
  • https://t.me/clickhouse_ru
    @sirs85 #45428 10:16 AM, 13 Mar 2018
    Joined.
  • @amuhametov #45429 10:38 AM, 13 Mar 2018
    Joined.
  • @amuhametov #45430 10:39 AM, 13 Mar 2018
    колеги, подскажите, как правильно интерпретировать метрику leaderreplica отправляемую в графит?
  • @70532431 #45431 10:48 AM, 13 Mar 2018
    полагаю, это реплика, на которую пишутся данные, актуально в случае, если параметр
    <internal_replication>true</internal_replication>
  • @amuhametov #45432 10:51 AM, 13 Mar 2018
    да вот у меня-то оно в false
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @Elena_actress #45434 11:39 AM, 13 Mar 2018
    Подскажите, пожалуйста, как написать общее табличное представление в ClickHouse ?
  • https://t.me/clickhouse_ru
    @orantius #45435 11:53 AM, 13 Mar 2018
    cte нет.
  • https://t.me/clickhouse_ru
    @Elena_actress #45436 11:53 AM, 13 Mar 2018
    Спасибо, понятно.
  • https://t.me/clickhouse_ru
    @yourock88 #45437 12:08 PM, 13 Mar 2018
    Господа знатоки, скажите пожалуйста, можно ли считать багом то, что в случае ошибки при запросе “create table as select ...” пустая таблица остается?
  • https://t.me/clickhouse_ru
    @kshvakov #45438 12:10 PM, 13 Mar 2018
    Это скорее фича при отсутствии транзакций, хотя, эту ситуацию можно обрабатывать https://github.com/yandex/ClickHouse/blob/master/dbms/src/Interpreters/InterpreterCreateQuery.cpp#L549
  • @catmeowma #45439 12:14 PM, 13 Mar 2018
    Joined.
  • @vludv ↶ Reply to #45430 #45440 12:42 PM, 13 Mar 2018
    Это кол-во всех Replicated таблиц на сервере, которые в данный момент являются лидирующей репликой. Лидирующая реплика отвечает за начначение мержей, OPTIMIZE, DROP PARTITION и т.п.
  • спасибо!
  • @70532431 ↶ Reply to #45440 #45442 12:51 PM, 13 Mar 2018
    "is_leader: является ли реплика лидером" из документации означает то же, только сам факт лидерства репликой, на которой выполнен запрос?

    Как тогда, кстати, можно мониторить, на какую из реплик в данный момент осуществляется запись, если internal_replication в true у шарда?
  • а есть какой-то механизм балансировки числа таблиц на сервер или в этом нет необходимости?
  • @vludv ↶ Reply to #45442 #45444 12:54 PM, 13 Mar 2018
    Запись можно осуществлять на любую из реплик, репликация master-master (не надо путать лидера и мастера-) ). Посмотреть где какие инсерты сейчас обрабатываются можно по содержимому system.processes.
  • @vludv ↶ Reply to #45443 #45445 12:56 PM, 13 Mar 2018
    В смысле баланисровки количества лидирующих реплицируемых таблиц?
  • @vludv #45446 12:57 PM, 13 Mar 2018
    Реплика-лидер не делает никакой существенно тяжелой работы, поэтому, если вы про это спрашиваете, баланисровать это не имеет смысла.
  • да, я об этом. спасибо.
  • @j_zverovich #45448 01:58 PM, 13 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Elena_actress #45449 02:09 PM, 13 Mar 2018
    А есть что-то похожее на NULLIF ?
  • https://t.me/clickhouse_ru
    @tommi_v #45450 02:11 PM, 13 Mar 2018
    есть ifNull
  • https://t.me/clickhouse_ru
    @Elena_actress #45451 02:11 PM, 13 Mar 2018
    Спасибо!
  • https://t.me/clickhouse_ru
    @tommi_v #45452 02:11 PM, 13 Mar 2018
    ifNull(date, today()) as coalesced_date,
  • https://t.me/clickhouse_ru
    @moonpie #45453 02:35 PM, 13 Mar 2018
    Привет всем. Увидел в роадмапе на второй квартал пункт "UPDATE/DELETE соответствующие Europe GDPR." @milovidov_an вы предполагаете сделать нечто отличное от традиционного update/delete?
  • https://t.me/clickhouse_ru
    @Elena_actress #45454 02:39 PM, 13 Mar 2018
    На что можно заменить trim() ?
  • https://t.me/clickhouse_ru
    @Elena_actress #45455 02:40 PM, 13 Mar 2018
    Чтобы убрать лишние пробелы слева и справа
  • https://t.me/clickhouse_ru
    @Elena_actress #45457 02:52 PM, 13 Mar 2018
    Большое спасибо! 😊
  • https://t.me/clickhouse_ru
    @orantius #45458 02:53 PM, 13 Mar 2018
    SELECT
    replaceRegexpAll(text, '(^ | $)', '') AS r,
    ' abc ' AS text,
    length(r) AS lr,
    length(text) AS lt

    ┌─r───────┬─text──────┬─lr─┬─lt─┐
    │ abc │ abc │ 7 │ 9 │
    └─────────┴───────────┴────┴────┘
  • https://t.me/clickhouse_ru
    @Elena_actress #45459 02:54 PM, 13 Mar 2018
    Здорово! Благодарю!
  • https://t.me/clickhouse_ru
    replaceRegexpAll(text, '(^ *| *$)', '')
  • https://t.me/clickhouse_ru
    Ага, спасибо
  • https://t.me/clickhouse_ru
    @Elena_actress #45462 02:57 PM, 13 Mar 2018
    Поняла)
  • @3334085 #45463 03:18 PM, 13 Mar 2018
    Коллеги, а где почитать про VersionedCollapsingMergeTree и что нам даёт функция throwIf
  • Достаточно 2.
  • 1. DECIMAL пока не запланирован. У меня есть только в длинном списке задач. Про пол года не уверен.

    2. Надо написать на clickhouse-feedback@yandex-team.ru
    Да, есть возможность стать партнёром по поддержке ClickHouse.
  • Да, есть фича - поддержка TLS во внутреннем протоколе. К сожалению, для неё не дописали тестов, и она нигде у нас не используется, и поэтому я не уверен, что она работает (проще говоря, эту фичу пока имеет смысл считать отсутствующей). Но было бы хорошо проверить и доделать. Эту возможность разрабатывал @proller - обращайтесь к нему с вопросами по настройке.
  • Скажите, что именно вы изменили, чтобы сервер (в Ubuntu под Windows) не ругался на таймзоны?
  • https://t.me/clickhouse_ru
    Нет принципиальных возражений, если я попробую реализовать Decimal?
  • https://t.me/clickhouse_ru
    @Sablast ↶ Reply to #45467 #45469 03:49 PM, 13 Mar 2018
    Алексей, сейчас доступа нет к компу - завтра с утра напишу
  • Агрегатные функции от Nullable аргументов работают так:
    - пропускают все NULL;
    - если других значений не было вообще, то возвращает NULL;
  • Было бы хорошо!
    https://github.com/yandex/ClickHouse/issues/2021
    Any plan to support decimal? #2021

    I don't see it on the roadmap, any chance we can have it? Time have passed since #253, so I hope you don't mind I asked this again. Thanks for the great works :D

  • @ABushev #45476 03:51 PM, 13 Mar 2018
    Joined.
  • @z001ev ↶ Reply to #45470 #45477 03:51 PM, 13 Mar 2018
    А почему тогда агрегатные функции с суффиксами State и Merge действуют иначе и теряют информацию о Null, возвращая 0 для числовых колонок, хотя 0 там не было?
  • Не припоминаю такого. Пример?
  • @z001ev ↶ Reply to #45285 #45479 03:52 PM, 13 Mar 2018
    Тут пример
  • @z001ev #45480 03:53 PM, 13 Mar 2018
    На входе подаем Null. На реальной таблице такое же поведение
  • https://t.me/clickhouse_ru
    Ок, попробую.
  • Да, это действительно так - состояние теряет информацию о том, что аргументы были Nullable и на пустом состоянии следовало бы вернуть NULL.
  • https://t.me/clickhouse_ru
    @marshalov #45483 03:56 PM, 13 Mar 2018
    Alexey и ещё подскажи - правильно я понимаю, что материализованные представления работают только для простых выборок "select * from table", и не работают, если появляется что-то более сложное - например, join? это баг или фича? сегодня пол дня убили, чтобы понять, почему у нас витрины не материализуются.
  • Есть несколько вариантов реализации.

    Плохие:

    1. floating point decimal
    https://gcc.gnu.org/onlinedocs/gcc/Decimal-Float.html
    Скорее всего плохо работает и будет неочевидно для использования.

    2. decimal с динамическим выделение памяти кусочками. Например, это - реализация в MySQL. Использовать не нужно, потому что будет плохо работать.

    Нормальный:

    3. decimal на основе int достаточной разрядности. Домножаем и делим на степень 10, где нужно. Вроде такая реализация в Hive, Impala и ещё каком-то форке Greenplum, который я зыбыл как называется.

    Для него нужно, чтобы был int128.
    int128 есть в gcc, clang, но он не портируемый (например, нет поддержки на 32-битных архитектурах, но это не важно для нас).
    Есть gmp, но её использовать нельзя из-за лицензии.
    Поэтому возьмите вариант из boost. Кажется называется boost::bigint.

    Потом посмотрим, насколько нормально будет работать.
    Decimal Float (Using the GNU Compiler Collection (GCC))

    Next: Hex Floats, Previous: Half-Precision, Up: C Extensions   [Contents][Index]

  • Материализованные представления работают всего лишь как триггеры на INSERT в левую таблицу.
  • https://t.me/clickhouse_ru
    Это печально. Тогда стоит об этом явно сказать в документации, так как из неё это сейчас совсем не очевидно.
  • https://t.me/clickhouse_ru
    @ayurjev #45487 04:07 PM, 13 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @ayurjev #45488 04:10 PM, 13 Mar 2018
    Всем привет!
    Подскажите пожалуйста стоит ли смотреть на КХ для такой задачи:
    Хранить надо быстро приростающие данные вида:
    UUID - BLOB (Размер 250-500 байт)
    Прирост может достигать нескольких десятков гигабайт в день.
    Хранить минимум 2-3 мес, потом можно чистить.

    Чтения только одной записи - по UUID вытащить BLOB,
  • https://t.me/clickhouse_ru
    То есть просто key-value хранилище блобов?
  • https://t.me/clickhouse_ru
    @ayurjev #45490 04:11 PM, 13 Mar 2018
    То есть по сути Key-Value случай такой
  • https://t.me/clickhouse_ru
    @ayurjev #45491 04:11 PM, 13 Mar 2018
    да)
  • https://t.me/clickhouse_ru
    @gtbear ↶ Reply to #45488 #45492 04:11 PM, 13 Mar 2018
    вам скорее монгу
  • https://t.me/clickhouse_ru
    @ayurjev #45493 04:11 PM, 13 Mar 2018
    тоже смотрим...
  • https://t.me/clickhouse_ru
    Думаю, КХ вам для этого не очень подходит.
  • https://t.me/clickhouse_ru
    @nikitosiusis #45495 04:12 PM, 13 Mar 2018
    только не монгу, а кассандру
  • https://t.me/clickhouse_ru
    @ayurjev #45496 04:12 PM, 13 Mar 2018
    :)
  • https://t.me/clickhouse_ru
    @nikitosiusis #45497 04:13 PM, 13 Mar 2018
    это не шутка)
  • https://t.me/clickhouse_ru
    @ayurjev #45498 04:15 PM, 13 Mar 2018
    спасибо! посмотрю в эту сторону)
  • @70532431 #45499 04:19 PM, 13 Mar 2018
    key-value Redis крут, особенно их кластер
  • https://t.me/clickhouse_ru
    @nikitosiusis #45500 04:19 PM, 13 Mar 2018
    только не когда тебе надо хранить "быстро прирастающие данные"
  • @70532431 #45501 04:21 PM, 13 Mar 2018
    Achieve 1.5 Million Ops/Second with Redis | Redis Labs

    Learn how to enhance throughput and reduce latency with Redis so that you can achieve 1.5 million ops per second.

  • https://t.me/clickhouse_ru
    @ayurjev #45502 04:22 PM, 13 Mar 2018
    так ведь на сколько я понимаю в случае с редисом все данные должны по объему влезать в память?
  • https://t.me/clickhouse_ru
    @ayurjev #45503 04:23 PM, 13 Mar 2018
    даже при persistent режиме... это явно не мой случай, если так
  • https://t.me/clickhouse_ru
    @mrykin #45504 04:24 PM, 13 Mar 2018
    Всем привет!
    А есть ли здесь кто-то, кто использует R для передачи данных в КХ?
    Пакет R отправляет строки в КХ с кавычками, есть идеи как это побороть?
  • @vstakhov #45505 04:24 PM, 13 Mar 2018
    поставить терабайт памяти, и все дела
  • https://t.me/clickhouse_ru
    да, редис тебе не подходит
  • @70532431 #45507 04:25 PM, 13 Mar 2018
    шардинг в кластере есть... да, будет дорого, но будет работать
  • @vstakhov #45508 04:25 PM, 13 Mar 2018
    kv storage, не влазящий в память, - это очень грустно
  • https://t.me/clickhouse_ru
    @shkrid ↶ Reply to #45505 #45509 04:25 PM, 13 Mar 2018
    x6 для кластера?
  • @vstakhov #45510 04:25 PM, 13 Mar 2018
    шардинг элементарно делается клиентом
  • @vstakhov #45511 04:26 PM, 13 Mar 2018
    server = uuid % nservers, ну или консистентным хешем, если хочется заморочиться
  • @70532431 ↶ Reply to #45509 #45512 04:26 PM, 13 Mar 2018
    там кластер от 3 начинается, но это без реплик. амазону какому я бы и доверился даже...
  • Это - количество реплицируемых таблиц, которые в данный момент являются лидерами. Лидер отвечает за назначение мержей. Только одна реплика каждой таблицы в один момент времени может являться лидером.

    Стоит иметь ввиду, что лидерство никак не связано с SELECT, INSERT. Читать и писать можно на любую реплику, независимо от лидерства.

    На что обратить внимание при взгляде на график?
    - когда он меняется - значит потеряна и восстановлена сессия с ZK - это нормально, если не слишком часто;
    - если вдруг на всех репликах нет лидера, то это плохо.
  • Если вы используете Replicated таблицы и пишете в Distributed таблицу, то internal_replication следует выставить в true.
  • Есть как ifNull, так и nullIf.
  • https://t.me/clickhouse_ru
    Добрый вечер. Подскажите, у меня один и тот же IN (SELECT FROM mysql) встречается в одном запросе в разных местах (вложенные JOIN), обращение к MySQL происходит несолкьо раз. Как можно переписать, чтобы один и тот же IN выполнялся один раз?
  • @milovidov_an #45517 04:37 PM, 13 Mar 2018
    Можно через отдельную таблицу. Тип TinyLog/StripeLog - хорошо подходит для таких временных данных.

    Более глубоко - задумывалось, чтобы полностью одинаковые подзапросы выполнялись один раз. Надо посмотреть, почему это не так.
  • throwIf - функция для разработки и отладки; как например dumpColumnStructure, blockSize и т. п.
  • VersionedCollapsingMergeTree - расширение (и в некотором смысле упрощение) функциональности CollapsingMergeTree. Разработано для Яндекс.Метрики. Чтобы было действительно понятно, зачем оно понадобилась - какой сценарий использования, придётся написать более подробный текст...

    Может быть @kochetovnicolai в этом поможет.
  • @ztlpn ↶ Reply to #45453 #45520 04:41 PM, 13 Mar 2018
    Формулировка довольно неудачная. Предполагается реализация, подходящая для сравнительно редких и тяжёлых UPDATE/DELETE (по тяжести примерно как ALTER). О быстрых точечных операциях речи пока не идёт.
  • @3334085 ↶ Reply to #45519 #45521 04:42 PM, 13 Mar 2018
    Понял, спасибо, будем надеется на текст и доку :)
  • @pookieShmukie #45522 08:22 PM, 13 Mar 2018
    @milovidov_an @ztlpn The repository 'http://repo.yandex.ru/clickhouse/xenial stable Release' does not have a Release file. - это не нормально )

    Делалось все по http://img.facedsid.ru/phkod.jpg
  • @pookieShmukie #45523 08:23 PM, 13 Mar 2018
    Понятно...походу опять CDN отвалился.
  • @pookieShmukie #45524 08:25 PM, 13 Mar 2018
    И по http://repo.yandex.ru/clickhouse/xenial вообще 404
  • Только что изменили адрес репозитория.
    Теперь
    sudo apt-add-repository "deb http://repo.yandex.ru/clickhouse/deb/stable/ main/"
  • Спасибо! :)
  • https://t.me/clickhouse_ru
    @iusik #45527 09:24 PM, 13 Mar 2018
    Подскажите как решить данную проблему:
    CREATE MATERIALIZED VIEW default.view_statistic_by_days_4
    (
    event_date Date,
    event_date_1 Date,
    campaign_id UInt32,
    impression_cnt UInt32,
    click_cnt UInt32
    ) ENGINE = SummingMergeTree(event_date, (event_date, campaign_id), 8192, (impression_cnt, click_cnt)) AS
    SELECT
    toDate(event_datetime) AS event_date,
    toDate(event_datetime, 'Asia/Vladivostok') AS event_date_1,
    campaign_id,
    sum(impression_cnt) AS impression_cnt,
    sum(click_cnt) AS click_cnt
    FROM default.statistic_by_minutes_4
    GROUP BY
    event_date,
    campaign_id

    Received exception from server:
    Code: 215. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Column event_datetime is not under aggregate function and not in GROUP BY..
  • @milovidov_an #45528 09:25 PM, 13 Mar 2018
    GROUP BY event_date, event_date_1, campaign_id
  • @milovidov_an #45529 09:26 PM, 13 Mar 2018
    Или (другой вариант) - обернуть toDate(event_datetime, 'Asia/Vladivostok') в any: any(toDate(event_datetime, 'Asia/Vladivostok'))
  • https://t.me/clickhouse_ru
    @iusik #45530 09:27 PM, 13 Mar 2018
    Огромное спасибо!
  • 14 March 2018 (159 messages)
  • https://t.me/clickhouse_ru
    @ilyaRv #45531 03:36 AM, 14 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @kshvakov #45532 04:20 AM, 14 Mar 2018
    Пора и ClickHouse обзавестись своими футболками и носками 🙂
    https://pbs.twimg.com/media/DYMv7x0WsAAAgEj.jpg:large
  • https://t.me/clickhouse_ru
    @Synoecium #45533 04:22 AM, 14 Mar 2018
    пытаюсь собрать ODBC драйвер для ClickHouse по мануалу из гихаба, дошел до строчки "vim ~/.odbc.ini", этот файл где искать или создавать самому?
  • https://t.me/clickhouse_ru
    @leidruid #45534 05:44 AM, 14 Mar 2018
    Когда выполнишь команду - он сам создастся при сохранении
  • https://t.me/clickhouse_ru
    @leidruid #45535 05:44 AM, 14 Mar 2018
    Но если такой вопрос, то лучше использовать nano :)
  • https://t.me/clickhouse_ru
    @leidruid #45536 05:45 AM, 14 Mar 2018
    Потому что следующим будет самый частый вопрос по vi: "Как выйти из этого гребаного vi?"
  • https://t.me/clickhouse_ru
    @mrykin ↶ Reply to #45536 #45537 05:50 AM, 14 Mar 2018
    :D я себе список команд в закладки добавил. С nano таких вопросов нет? )
  • https://t.me/clickhouse_ru
    ну уж как вписать gedit вместо vim я соображу)
  • https://t.me/clickhouse_ru
    @Synoecium #45540 05:56 AM, 14 Mar 2018
    просто смутило что такого файла нет. Так кстати не работает, пришлось еще создавать odbcinst.ini, в котором прописывать путь до драйвера, тогда только получилось
  • @304168605 #45541 06:13 AM, 14 Mar 2018
    подскажите новичку, надо ли обновлять 1.1.54343 ?
  • https://t.me/clickhouse_ru
    Использование индекса таблиц семейства MergeTree при наличии условия IN на кортеж от выражений от столбцов первичного ключа. Пример WHERE (UserID, EventDate) IN ((123, '2000-01-01'), ...) (Anastasiya Tsarkova).
  • https://t.me/clickhouse_ru
    Лично мне надо в основном из-за этого.
  • https://t.me/clickhouse_ru
    Если вас устраивает работа - можно и не трогать
  • https://t.me/clickhouse_ru
    @Sablast ↶ Reply to #45467 #45545 06:18 AM, 14 Mar 2018
    Алексей, я выполнил настройку через:
    sudo dpkg-reconfigure tzdata
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45541 #45546 07:08 AM, 14 Mar 2018
    А почему бы и нет? Сразу обновлять только продакшен не рекомендуется
  • @70532431 #45547 09:09 AM, 14 Mar 2018
    Куда прописывать insert_distributed_sync всё же?
    Где-то говорят про config.xml , где-то про users.xml, а как на самом деле?
    нашёл, В users.xml, в profiles/default.
    на гите кто-то неправильно отвечал в issue)
  • https://t.me/clickhouse_ru
    @AlexanderRomanov46 #45548 09:16 AM, 14 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    sudo apt-get update
    .......
    Reading package lists... Done
    W: Conflicting distribution: http://repo.yandex.ru main/ Release (expected main but got clickhouse stable)
  • https://t.me/clickhouse_ru
    @Synoecium #45550 09:20 AM, 14 Mar 2018
    Не получается получить доступ через ODBC драйвер к серверу ClickHouse на VirtualBox. Хост - Windows 7, гостевая - Ubuntu 16. CH на гостевой системе работает нормально, клиент запускается, запросы из консоли выполняются. Драйвер ODBC на гостевой системе скомпилировал по мануалу и установил (хотя тут он наверно не нужен). На хосте драйвер ODBC установил из готовых бинарников. На попытку подключиться к серверу КХ пишет: Connection refused или Host not found. Куда копать? может есть какие то подробные мануалы как подключаться к виртуалке?
  • https://t.me/clickhouse_ru
    @proller #45551 09:30 AM, 14 Mar 2018
    какой ip слушает clickhouse в виртуалке и есть ли контакт если просто с браузера на 8123 порт зайти
  • https://t.me/clickhouse_ru
    @Synoecium #45552 09:31 AM, 14 Mar 2018
    если заходить в гостевой в мозилле по адресу http://localhost:8123/, то пишет ОК. как посмотреть какой порт слушает КХ в вируталке?
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #45553 09:31 AM, 14 Mar 2018
    Почему может ругаться http://prntscr.com/iqztsa?
    Screenshot

    Captured with Lightshot

  • https://t.me/clickhouse_ru
    @Synoecium #45554 09:32 AM, 14 Mar 2018
    sega@sega-VirtualBox:~$ sudo netstat -ltupn|grep clickhouse
    [sudo] password for sega:
    tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 10906/clickhouse-se
    tcp 0 0 127.0.0.1:9009 0.0.0.0:* LISTEN 10906/clickhouse-se
    tcp 0 0 127.0.0.1:8123 0.0.0.0:* LISTEN 10906/clickhouse-se
    tcp6 0 0 ::1:9000 :::* LISTEN 10906/clickhouse-se
    tcp6 0 0 ::1:9009 :::* LISTEN 10906/clickhouse-se
    tcp6 0 0 ::1:8123 :::* LISTEN 10906/clickhouse-se
    вот эта информация нужна, правильно понял?
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #45553 #45555 09:35 AM, 14 Mar 2018
    видимо a in b интерпретируется как имя таблицы.
  • https://t.me/clickhouse_ru
    @orantius #45556 09:35 AM, 14 Mar 2018
    и даже если заинлайнить список, то это должен быть не массив
  • https://t.me/clickhouse_ru
    @alexey_konkov #45557 09:40 AM, 14 Mar 2018
    коллеги, добрый день!
    напомните, пожалуйста, как дропнуть партицию из MV?
  • https://t.me/clickhouse_ru
    Странно, что так работает http://prntscr.com/iqzx27, а в моем случае - нет. Я где-то читал что в IN можно указывать имя таблицы http://prntscr.com/iqzyh2, похоже это как-то приоритетнее срабатывает
    Screenshot

    Captured with Lightshot

  • @ztlpn ↶ Reply to #45554 #45559 09:41 AM, 14 Mar 2018
    У вас в гостевой ОС всё нормально, осталось настроить сеть в самом VirtualBox. Вот документация как это сделать: https://www.virtualbox.org/manual/ch06.html#natforward
  • https://t.me/clickhouse_ru
    спасибки, сейчас попробую
  • https://t.me/clickhouse_ru
    вспомнил: дропаем партишн для таблицы .inner.mv
    вот только название .inner.mv надо брать в двойные кавычки
  • @70532431 ↶ Reply to #45549 #45562 09:46 AM, 14 Mar 2018
    у меня такая же ошибка
  • https://t.me/clickhouse_ru
    @proller ↶ Reply to #45560 #45563 09:47 AM, 14 Mar 2018
    а еще в гостевой слушает только localhost - это значит что снаружи доступа не будет. нужно поменять listen_host на ::
  • https://t.me/clickhouse_ru
    насчет этого находил информацию на stackoverflow, вроде еще советуют поменять на 127.0.0.1 это значение
  • https://t.me/clickhouse_ru
    @proller #45565 09:53 AM, 14 Mar 2018
    нет, 127.0.0.1- будет доступ только с гостевой системы, нужно ставить :: и/или 0.0.0.0 (лучше оба)
  • https://t.me/clickhouse_ru
    @Synoecium #45567 10:04 AM, 14 Mar 2018
    настроил проброс портов, как описано в справке к Virtual Box, но проблема осталась
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @proller #45569 10:05 AM, 14 Mar 2018
    в справке точно 127.0.0.1 пробрасывают?
  • https://t.me/clickhouse_ru
    точно не знаю, там пример через консоль, а я использовал способ через GUI, в примере есть такая строка: VBoxManage modifyvm "VM name" —natpf1 "guestssh,tcp,127.0.0.1,2222,,22"
  • https://t.me/clickhouse_ru
    @proller #45571 10:09 AM, 14 Mar 2018
    но слушать всеравно лучше 0.0.0.0
  • https://t.me/clickhouse_ru
    имеете ввиду чтрока подключения будет выглядеть так? "DRIVER={ClickHouse ANSI};SERVER=0.0.0.0;DATABASE=default"
  • https://t.me/clickhouse_ru
    @proller #45573 10:11 AM, 14 Mar 2018
    нет, конфиге кликхауса <listen_host>0.0.0.0<listen_host>
  • https://t.me/clickhouse_ru
    в конфиге сейчас так
  • https://t.me/clickhouse_ru
    @proller #45575 10:12 AM, 14 Mar 2018
    потом нужно добиться чтоб просто в браузере заходило на http://localhost:8123 (а может быть и не localhost)
  • https://t.me/clickhouse_ru
    @proller #45576 10:13 AM, 14 Mar 2018
    из венды
  • https://t.me/clickhouse_ru
    это уже на хосте получается?
  • https://t.me/clickhouse_ru
    @proller #45578 10:13 AM, 14 Mar 2018
    да
  • https://t.me/clickhouse_ru
    @proller #45579 10:13 AM, 14 Mar 2018
    если ok. напишет - можно уже odbc настраивать
  • https://t.me/clickhouse_ru
    @Synoecium #45580 10:14 AM, 14 Mar 2018
    похоже в этом месте где-то затык, из хоста ни в какую из браузера не видит этот адрес
  • https://t.me/clickhouse_ru
    @proller ↶ Reply to #45574 #45581 10:14 AM, 14 Mar 2018
    там все закоментировано - значит будет слушать ::1 и 127.0.0.1 , надо раскомментировать
  • https://t.me/clickhouse_ru
    @Synoecium #45582 10:15 AM, 14 Mar 2018
    а ниже разве не действуют строки?
  • https://t.me/clickhouse_ru
    @proller #45583 10:15 AM, 14 Mar 2018
    там же общий <!— —>
  • https://t.me/clickhouse_ru
    @Synoecium #45584 10:15 AM, 14 Mar 2018
    а, все дошло, там многострочный коммент
  • https://t.me/clickhouse_ru
    заработало подключение из браузера хоста, ура! спасибо большое
  • https://t.me/clickhouse_ru
    @Synoecium #45586 10:20 AM, 14 Mar 2018
    получается я по невнимательности коммент просмотрел в конфигах, в остальном настройки так примерно и были сделаны
  • https://t.me/clickhouse_ru
    @Synoecium #45587 10:25 AM, 14 Mar 2018
    плюс я еще очистил адрес в настройках проброса портов VirtualBox, вместо 127.0.0.1 указал пустые значения. Без этого тоже не работало
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45557 #45588 10:34 AM, 14 Mar 2018
    @milovidov_an Кстати, очень частый вопрос. Тут несколько вариантов: выкидывать исключение для какой таблицы нужно делать ALTER TABLE DROP PARTITION или можно выполнять ALTER для целевой таблицы, но тут логичнее, наверно, прозрачно работать с партициями которые были созданы без CREATE MATERIALIZED VIEW TO table (has_inner_table таблицами) и кидать исключение для тех что были созданы с TO т.к. они менее связаны с materialized view ?
  • https://t.me/clickhouse_ru
    @mrlamberg #45589 10:48 AM, 14 Mar 2018
    а подскажите как можно оптимально доставать из кх записи, у меня есть небольшой запрос который возвращает чтото после фильтра, с лимитом в каждой группе, в постгресе мы просто через union all соединяли 5-6 маленьких запросов и скорость падала только на 10-20%, но в кх получается он каждый запрос по отдельности считает, и только потом уже оъединяет
  • https://t.me/clickhouse_ru
    @mrlamberg #45590 10:49 AM, 14 Mar 2018
    в идеале бы limit в каждой группе после group by
  • https://t.me/clickhouse_ru
    может быть limit by field1 10 вам поможет?
  • https://t.me/clickhouse_ru
    @mrlamberg #45592 10:52 AM, 14 Mar 2018
    а чо так можно?)
  • https://t.me/clickhouse_ru
    @Shegloff #45593 10:53 AM, 14 Mar 2018
    это вообще законно?
  • https://t.me/clickhouse_ru
    @mrlamberg #45594 10:53 AM, 14 Mar 2018
    а field1 это поле по которому сортировка?
  • https://t.me/clickhouse_ru
    Это что-то типа оконных функций, похоже это то что вам нужно
  • https://t.me/clickhouse_ru
    @Synoecium #45596 11:36 AM, 14 Mar 2018
    К вопросу о КХ на виртуалке, адрес сервера КХ из браузера хоста виден теперь, но дальше не получается. Пробую выполнить запрос по такой строке подключения: "DRIVER={ClickHouse ANSI};SERVER=localhost:8123;DATABASE=default", выдает "Host not found"
  • https://t.me/clickhouse_ru
    @Synoecium #45597 11:40 AM, 14 Mar 2018
    Microsoft Query вообще падает с ошибкой, при попытке подключения
  • https://t.me/clickhouse_ru
    @proller #45598 12:01 PM, 14 Mar 2018
    server=localhost просто
  • https://t.me/clickhouse_ru
    @proller #45599 12:01 PM, 14 Mar 2018
    или вообще попробовать не указывать, по умолчанию должен localhost заиспользоваться
  • https://t.me/clickhouse_ru
    @proller #45600 12:02 PM, 14 Mar 2018
    а порт по идее отдельной PORT=8123 но есть смысл указывать только если от 8123 отличается
  • https://t.me/clickhouse_ru
    @EKbfh #45601 12:49 PM, 14 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @EKbfh ↶ Reply to #45525 #45602 01:01 PM, 14 Mar 2018
    Добрый день, а какой кей-сервер теперь? deb говорит, что репозиторий не подписан, --keyserver keyserver.ubuntu.com --recv C8F1E19FE0C56BD4 притаскивает старый ключ signatures were invalid: 9EBB357BC2B0876A774500C7C8F1E19FE0C56BD4
  • https://t.me/clickhouse_ru
    спасибо, попробую завтра, как доступ будет
  • @k1rk_t #45604 01:22 PM, 14 Mar 2018
    Ребятки, нужна консультация.
    есть таблица replicatedMergeTree. и есть ситтуация когда один час данных может быть обновлен а значит нужно его переписать.
    как это правильнее всего сделать что бы для клиентов кликхауса не было провалов
  • @k1rk_t #45605 01:23 PM, 14 Mar 2018
    думал делать таблицы по месяцам а над ними мердж. и в случае обновления переливать месяц и переключать как то
  • @k1rk_t #45606 01:24 PM, 14 Mar 2018
    например переливать в соседнюю а потом ринеймить что бы в мердж попала
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45604 #45607 01:46 PM, 14 Mar 2018
    Для этого нужно использовать https://clickhouse.yandex/docs/ru/table_engines/collapsingmergetree/
  • https://t.me/clickhouse_ru
    @kshvakov #45608 01:48 PM, 14 Mar 2018
    В принципе тоже самое можно делать и на обычном MergeTree, просто Collapsing ненужные данные при мерже удалит
  • @k1rk_t #45609 01:51 PM, 14 Mar 2018
    я не совсем понимаю. по дефолту я какой sign ставлю?
  • https://t.me/clickhouse_ru
    @windoozatnick #45610 01:51 PM, 14 Mar 2018
    По дефолту пишется Sign 1
  • @k1rk_t #45611 01:52 PM, 14 Mar 2018
    ага
  • https://t.me/clickhouse_ru
    @windoozatnick #45612 01:52 PM, 14 Mar 2018
    Если надо перезаписать строку, дублируешь текущую с Sign -1, и пишешь новую с Sign 1
  • @k1rk_t #45613 01:52 PM, 14 Mar 2018
    ага
  • @k1rk_t #45614 01:53 PM, 14 Mar 2018
    но мне тогда и индекс же нужно использовать с максимально гранулярностью правильно?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @windoozatnick #45616 01:54 PM, 14 Mar 2018
    на пальцах, вот так это работает
  • https://t.me/clickhouse_ru
    @windoozatnick #45617 01:54 PM, 14 Mar 2018
    для ID 777 перезаписано количество хитов
  • https://t.me/clickhouse_ru
    @beeblebrox #45618 01:54 PM, 14 Mar 2018
    а наведите на мысли, как можно написать запрос, который просуммировал бы столько строк из подзапроса, чтобы сумма по некоему столбцу оказалась больше, например, 10000?

    то есть, если конкретнее:
    - подзапрос возвращает дату, количество загрузок рекламы, количество доскроллов до рекламы
    отсортированное от сегодняшнего дня до недели назад
    - хочется посчитать процент доскролла, взяв столько строк, чтобы набрать в сумме 10к загрузок; ну или все 7 строк, если столько не набирается
  • https://t.me/clickhouse_ru
    @windoozatnick #45619 01:55 PM, 14 Mar 2018
    А CollapsingMergeTree делает это сам – схлопывает записи
  • https://t.me/clickhouse_ru
    @windoozatnick #45620 01:56 PM, 14 Mar 2018
    Я показал пример, если записи не схлопнуты
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #45618 #45621 02:16 PM, 14 Mar 2018
    например, в подзапросе у вас вот так:
    :) select (today() - number) as day, number+3000 as downloads from system.numbers limit 7

    ┌────────day─┬─downloads─┐
    │ 2018-03-14 │ 3000 │
    │ 2018-03-13 │ 3001 │
    │ 2018-03-12 │ 3002 │
    │ 2018-03-11 │ 3003 │
    │ 2018-03-10 │ 3004 │
    │ 2018-03-09 │ 3005 │
    │ 2018-03-08 │ 3006 │
    └────────────┴───────────┘
  • https://t.me/clickhouse_ru
    runningAccumulate( sumState(shows) )
  • https://t.me/clickhouse_ru
    @Shegloff #45623 02:16 PM, 14 Mar 2018
    дальше с помощью runningAccumulate и having
  • https://t.me/clickhouse_ru
    @Shegloff #45624 02:16 PM, 14 Mar 2018
    :) select day, sum(downloads), runningAccumulate(sumState(downloads)) as sumacc from (select (today() - number) as day, number+3000 as downloads from system.numbers limit 7) group by day having sumacc > 10000 order by day desc

    ┌────────day─┬─sum(downloads)─┬─sumacc─┐
    │ 2018-03-14 │ 3000 │ 21021 │
    │ 2018-03-13 │ 3001 │ 18021 │
    │ 2018-03-12 │ 3002 │ 15020 │
    │ 2018-03-11 │ 3003 │ 12018 │
    └────────────┴────────────────┴────────┘

    4 rows in set. Elapsed: 0.004 sec.
  • https://t.me/clickhouse_ru
    йеп, спасибо!
  • https://t.me/clickhouse_ru
    @Shegloff #45626 02:17 PM, 14 Mar 2018
    хм, ну тут подсчет идет видимо в обратную сторону, с 8-го, а вам надо с 14-го, ну там дальше сами :)
  • https://t.me/clickhouse_ru
    @beeblebrox #45627 02:18 PM, 14 Mar 2018
    да, все ингредиенты у меня теперь есть :)
  • https://t.me/clickhouse_ru
    @EKbfh ↶ Reply to #45526 #45628 02:18 PM, 14 Mar 2018
    у тебя получилось обновиться с новой репы?
  • Я с нуля ставил. Машинка чистая была. Обновляться еще не пробовал.
  • https://t.me/clickhouse_ru
    @EKbfh ↶ Reply to #45629 #45630 02:20 PM, 14 Mar 2018
    спс.
  • https://t.me/clickhouse_ru
    @Sablast #45631 02:48 PM, 14 Mar 2018
    коллеги, помню кто то пробовал подключаться к КХ из tableau - подскажите как настраивали подключение?
  • https://t.me/clickhouse_ru
    @zavazavazava #45632 02:50 PM, 14 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    полностью получилось так:

    SELECT date, runningAccumulate(viewState)/runningAccumulate(showState) AS viewrate
    FROM (
    SELECT date, sumState(show) AS showState, sumState(view) AS viewState
    FROM table
    WHERE date >= today()-7 AND your_conditions
    GROUP BY date
    HAVING sum(show) > 0
    ORDER BY date DESC
    )
    WHERE runningAccumulate(showState) > 10000 LIMIT 1
  • https://t.me/clickhouse_ru
    @beeblebrox #45634 03:03 PM, 14 Mar 2018
    хотя, если не наберётся 10к, то всё сломается :)
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @Sablast #45636 03:33 PM, 14 Mar 2018
    вы запустили КХ на столешнице? оО
  • @AlexanderMillin #45637 03:34 PM, 14 Mar 2018
    портировали )
  • https://t.me/clickhouse_ru
    @beeblebrox #45638 03:34 PM, 14 Mar 2018
    а мне кажется, это имеет отношение к подключению к tableau
  • @70532431 #45639 03:35 PM, 14 Mar 2018
    судя по фото, подключение прошло гладко
  • @antonio_antuan #45640 03:36 PM, 14 Mar 2018
    однако видны "стыки"
  • @AlexanderMillin #45641 03:37 PM, 14 Mar 2018
    необходима отладка
  • @emptyname #45642 03:37 PM, 14 Mar 2018
    Партишны видны
  • @k1rk_t #45643 03:37 PM, 14 Mar 2018
    ребятки а еще вопрос
  • @k1rk_t #45644 03:38 PM, 14 Mar 2018
    как вообще решаете вопрос отправить запрос "create table" или "rename table" если у вас N реплик
  • @vbabaev #45645 03:39 PM, 14 Mar 2018
    create table ... on cluster
  • @k1rk_t #45646 03:40 PM, 14 Mar 2018
    это ж только если шарды есть
  • @k1rk_t #45647 03:40 PM, 14 Mar 2018
    а я только про реплики
  • https://t.me/clickhouse_ru
    @ascrus ↶ Reply to #45636 #45648 03:43 PM, 14 Mar 2018
    Сорри. Попробовал, не запускается )
  • https://t.me/clickhouse_ru
    @ascrus #45649 03:43 PM, 14 Mar 2018
    Промахнулся
  • https://t.me/clickhouse_ru
    @Nordskolian #45650 03:45 PM, 14 Mar 2018
    братцы подскажите либу к python для взаимодействия с clickhouse =)
  • @antonio_antuan #45651 03:47 PM, 14 Mar 2018
    Для алхимии - sqlalchemy-clickhouse и clickhouse-sqlalchemy :) также есть infri.clickhouse
  • @antonio_antuan #45652 03:47 PM, 14 Mar 2018
    И вроде бы ещё что-то, но не точно
  • https://t.me/clickhouse_ru
    @Nordskolian #45654 03:47 PM, 14 Mar 2018
    thx a lot
  • @k1rk_t #45655 03:53 PM, 14 Mar 2018
    так что, никакого варианта кроме руками пока не придумали?
  • https://t.me/clickhouse_ru
    @Shegloff #45656 04:00 PM, 14 Mar 2018
    по идее запрос создает на всех хостах кластера
  • https://t.me/clickhouse_ru
    @Shegloff #45657 04:01 PM, 14 Mar 2018
    то есть и на всех репликах тоже
  • https://t.me/clickhouse_ru
    @Shegloff #45658 04:01 PM, 14 Mar 2018
    судя по доке
  • https://t.me/clickhouse_ru
    @veggi #45659 04:03 PM, 14 Mar 2018
    Подскажите пожалуйста, есть ли способ подключиться к КХ от имени read only пользователя через какой-нибудь графический клиент. Tabix и DataGrip такого не умеют, похоже
  • https://t.me/clickhouse_ru
    @ivmaks ↶ Reply to #45659 #45660 04:03 PM, 14 Mar 2018
    табикс умеет
  • https://t.me/clickhouse_ru
    @ivmaks #45661 04:03 PM, 14 Mar 2018
    сек
  • https://t.me/clickhouse_ru
    @veggi #45662 04:03 PM, 14 Mar 2018
    read-only с уровнем 1, имеется в виду
  • @k1rk_t #45663 04:03 PM, 14 Mar 2018
    второй вопрос. а как репроцесите данные если нужно? что бы при этом небыло для клиента провалов
  • https://t.me/clickhouse_ru
    @ivmaks ↶ Reply to #45662 #45664 04:05 PM, 14 Mar 2018
    тогда молчу
  • @garikanet #45665 04:07 PM, 14 Mar 2018
    Tabix умеет "readonly user can if setting readonly=2"
  • @garikanet #45666 04:09 PM, 14 Mar 2018
    Если очень нужно можно попробовать и с readonly=1

    Но тогда в настройках сервера для этого пользователя нужно ставить
    `add_http_cors_header=1&log_queries=1&output_format_json_quote_64bit_integers=1&output_format_json_quote_denormals=1&result_overflow_mode=throw&max_result_rows=5000&timeout_overflow_mode=throw&max_execution_time=212&output_format_json_quote_64bit_integers=1``

    max_execution_time + max_result_rows - должны совпадать
  • @garikanet #45667 04:10 PM, 14 Mar 2018
    Но честно я не тестировал - это только теория )
  • https://t.me/clickhouse_ru
    @veggi #45668 04:10 PM, 14 Mar 2018
    Спасибо
  • https://t.me/clickhouse_ru
    Было бы очень круто, если работает, потому что как показала практика - любой пользователь с ро=2 может положить сервер :(
  • https://t.me/clickhouse_ru
    попробуйте использовать chproxy https://github.com/tabixio/tabix/issues/41
    Mention chproxy in docs #41

    chproxy provides the following features to tabix: chproxy may accept requests from readonly=1 users if allow_cors config is set. There is no need in add_http_cors_header hack. chproxy supports htt...

  • https://t.me/clickhouse_ru
    в этой доментации странно написано
    chproxy may accept requests from readonly=1
    у chproxy же нет никаких настроек readonly, тут имеется ввиду to_user? который на стороне кликхауса делается readonly=1?
  • https://t.me/clickhouse_ru
    @dennyche #45672 04:42 PM, 14 Mar 2018
    Joined.
  • @garikanet #45673 05:09 PM, 14 Mar 2018
    chproxy я сам не тестировал подсказать не могу как работать с tabix (
    В доку включил как описанно в issue )
  • А пользователи просто переопределили параметры при подключении?
  • https://t.me/clickhouse_ru
    Ага, и запрос, который выедает больше памяти, чем досиупно на сервере
  • @garikanet #45676 05:45 PM, 14 Mar 2018
    Я думал сделать что то на js чтобы помочь, но тут получается это все на клиенте ) и можно обойти
    Без прослойки пока никак (
  • @s3rgm #45677 06:11 PM, 14 Mar 2018
    Joined.
  • @407710861 #45678 06:13 PM, 14 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @EKbfh #45679 06:25 PM, 14 Mar 2018
    Никто про репу не подскажет?
  • Наверное уже говорил - сейчас пользователь может передавать настройки и в случае readonly=1, но только если эти настройки ничего не меняют (имеют такое же значение, какое уже есть).

    То есть, если на стороне ClickHouse сервера выставить в users.xml такие же настройки, какие хочет Tabix, то Tabix будет работать и в случае readonly = 1.
  • Про новый репозиторий, о том, что он стал ругаться на ключ. Говорят, что ключ остался тот же самый и ничего менять не нужно.

    Вчера проверял - apt-add-repository всё добавляет, update проходит нормально. Возможно, я что-то недопроверял?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #45680 #45682 06:27 PM, 14 Mar 2018
    Алексей, а вот если выполняется запрос create database of not exist(этим грешит sql алхимия питонячья) но бд уже есть. Т.е по факту ничего не меняется. Readonly не прокатит?
  • @70532431 ↶ Reply to #45681 #45683 06:28 PM, 14 Mar 2018
    Подтверждаю, рабочий, только warning показывает
  • Не прокатит, так как такой случай не поддерживали.
  • Про Warning знаем. Наверное так и останется.
  • https://t.me/clickhouse_ru
    @EKbfh ↶ Reply to #45681 #45687 07:35 PM, 14 Mar 2018
    Сейчас проверю на другой машине.
    Мануал на https://clickhouse.yandex/docs/en/getting_started/ актуален получается?
  • @milovidov_an #45688 07:44 PM, 14 Mar 2018
    Да.
  • @milovidov_an #45689 07:45 PM, 14 Mar 2018
    Там абсолютно то же самое, что и на https://clickhouse.yandex/ внизу.
    ClickHouse DBMS

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

  • https://t.me/clickhouse_ru
    @EKbfh #45690 07:47 PM, 14 Mar 2018
    deb http://repo.yandex.ru/clickhouse/deb/stable/ main/

    W: Ошибка GPG: http://repo.yandex.ru/clickhouse/deb/stable main/ Release: Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY C8F1E19FE0C56BD4
    E: Репозиторий «http://repo.yandex.ru/clickhouse/deb/stable main/ Release» не подписан.

    apt-key adv --keyserver keyserver.ubuntu.com --recv E0C56BD4
    Executing: /tmp/apt-key-gpghome.nIKryqreGp/gpg.1.sh --keyserver keyserver.ubuntu.com --recv E0C56BD4
    gpg: key C8F1E19FE0C56BD4: public key "ClickHouse Repository Key <milovidov@yandex-team.ru>" imported
    gpg: Total number processed: 1
    gpg: imported: 1

    W: Ошибка GPG: http://repo.yandex.ru/clickhouse/deb/stable main/ Release: Следующие подписи неверные: 9EBB357BC2B0876A774500C7C8F1E19FE0C56BD4
    E: Репозиторий «http://repo.yandex.ru/clickhouse/deb/stable main/ Release» не подписан.
    Только не ubuntu, а debian 9.
  • @milovidov_an #45691 07:49 PM, 14 Mar 2018
    Спасибо, попробуем разобраться.
  • https://t.me/clickhouse_ru
    @EKbfh #45692 08:01 PM, 14 Mar 2018
    Пингуйте, если что.
  • 15 March 2018 (185 messages)
  • https://t.me/clickhouse_ru
    у меня еще апач развернут на локалхосте, с такой строчкой возвращает Connection refused, а если в браузере на хосте перейти по адресу localhost, то пишет "It works!" - стандартное сообщение апача
  • https://t.me/clickhouse_ru
    @spes1vtsev #45694 04:30 AM, 15 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Synoecium #45695 06:03 AM, 15 Mar 2018
    появился вопрос, как скомпилировать драйвер ODBC под 32 битную платформу на стороне гостевой ОС linux. Я так понимаю по умолчанию компилируется 64 битная версия
  • https://t.me/clickhouse_ru
    W: http://repo.yandex.ru/clickhouse/deb/stable/main/Release.gpg: Signature by key 9EBB357BC2B0876A774500C7C8F1E19FE0C56BD4 uses weak digest algorithm (SHA1)
  • https://t.me/clickhouse_ru
    не то чтобы это имело большое значение, но неаккуратненько как-то :-)
  • https://t.me/clickhouse_ru
    @EKbfh ↶ Reply to #45697 #45698 06:28 AM, 15 Mar 2018
    А у меня не желает апдейтитьсч. Как заставить?
  • https://t.me/clickhouse_ru
    @EKbfh ↶ Reply to #45690 #45699 06:28 AM, 15 Mar 2018
    Я вот тут выше писал
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @EKbfh #45701 06:30 AM, 15 Mar 2018
    И подпись старая работает? Убунту?
  • https://t.me/clickhouse_ru
    пока ещё не апгрейдил - выбираю версию, так как последняя RC, но в ней хорошие изменения...
  • https://t.me/clickhouse_ru
    Впрочем, на тестовом точно накачу последнюю.
  • https://t.me/clickhouse_ru
    Скачивает по-крайней мере нормально.
  • https://t.me/clickhouse_ru
    Таки да, убунта.
  • https://t.me/clickhouse_ru
    @Guerella #45706 06:45 AM, 15 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Guerella #45707 06:52 AM, 15 Mar 2018
    Всем привет!
    Подскажите, пожалуйста, по строковым функциям?

    replaceRegexpAll(Certs, '"','') as Ce2
    - ругается на первый аргумент, Illegal type Array(String) of first argument of function replaceRegexpAl

    если на место Cetrs пишу строку которая по факту в Certs - всё норм
    Certs получаю распарсивая строчку, вдруг это важно:
    extractAll(Variables, 'Th":\\[("\.+)+",?]}') as Certs
  • https://t.me/clickhouse_ru
    @akisin #45708 06:58 AM, 15 Mar 2018
    Joined.
  • @teknik2008 #45709 06:59 AM, 15 Mar 2018
    подскажите как при группировке user, подсчитать кол-во записей больше value>5 и value<0
    |user|value|
    |1 |6 |
    |2 |-5 |
    |3 |2 |
  • https://t.me/clickhouse_ru
    После обновления до RC наблюдаю ошибки при создании БД/таблиц с параметром ON CLUSTER:
    Code: 49, e.displayText() = DB::Exception: Query id cannot be empty, e.what() = DB::Exception
  • https://t.me/clickhouse_ru
    после отката до 1.1.54343 - нормально
  • select countIf(value between 0 and 5) from table group by user
  • Спасибо
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45712 #45714 07:17 AM, 15 Mar 2018
    Я так понимаю можно его и в WHERE запихнуть?
  • Вполне себе
  • @pookieShmukie #45716 07:21 AM, 15 Mar 2018
    select user, count() from table where value between 0 and 5 group by user
  • https://t.me/clickhouse_ru
    какие-то отличия в работе с индексами есть между запросами?
  • В первом случае читаются все данные и агрегация выполняется при выполнении условия. Во втором случае выбираются все данные подходящие под условия, затем выполняется агрегация.
  • https://t.me/clickhouse_ru
    @173448324 #45719 07:32 AM, 15 Mar 2018
    Коллеги, есть ли где-то информация по расчёту сайзинга ClickHouse?
  • https://t.me/clickhouse_ru
    @173448324 #45720 07:39 AM, 15 Mar 2018
    кроме https://clickhouse.yandex/docs/ru/operations/tips/ ничего не удаётся найти, есть ли информация описывающая соответствие нагрузочной способности требованиям к суммарному количеству ядер/памяти/диска для обеспечения заданной нагрузочной способности? или результаты тестов конкретного железа и результирующие значения показателей производительности в единицах TPC-H http://www.tpc.org/tpch/
  • https://t.me/clickhouse_ru
    @alexey_konkov #45721 08:04 AM, 15 Mar 2018
    коллеги, добрый день!
    подскажите, может есть какая-то хорошая практика для такой вот ситуации:
    1. MergeTree с партицированием по месяцам, соответственно, колонка date Date
    2. также есть колонка time UInt32, где хранится timestamp события

    хочется уберечься от ситуаций, когда в date и time вставляются несогласованные значения, например, '2017-01-01' и 1504126800

    есть какие-то проверенные/рабочие методы?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45721 #45722 08:05 AM, 15 Mar 2018
    Сделайте колонку date как materialized и пишите туда дату от значения time
  • https://t.me/clickhouse_ru
    @kshvakov #45723 08:07 AM, 15 Mar 2018
    Или просто в default пропишите расчет дыты от time
  • https://t.me/clickhouse_ru
    @alexey_konkov #45724 08:07 AM, 15 Mar 2018
    колонку, как материалайзед — это как?
    про MV для таблиц знаю, а для колонок — пока нет
  • https://t.me/clickhouse_ru
    @kshvakov #45725 08:08 AM, 15 Mar 2018
    https://clickhouse.yandex/docs/ru/single/ MATERIALIZED expr, но проще сделать default
  • https://t.me/clickhouse_ru
    @alexey_konkov #45726 08:10 AM, 15 Mar 2018
    ясно. спасибо!
  • https://t.me/clickhouse_ru
    @kshvakov #45727 08:12 AM, 15 Mar 2018
    Пример

    CREATE TABLE t_m
    (
    date Date MATERIALIZED toDate(time),
    time UInt32
    )
    ENGINE = MergeTree(date, date, 8192);

    INSERT INTO t_m (time) VALUES (1504126800);

    Данные

    :) SELECT date, time FROM t_m;

    SELECT
    date,
    time
    FROM t_m

    ┌───────date─┬───────time─┐
    │ 2017-08-30 │ 1504126800 │
    └────────────┴────────────┘

    1 rows in set. Elapsed: 0.011 sec.
  • https://t.me/clickhouse_ru
    @alexey_konkov #45728 08:16 AM, 15 Mar 2018
    ага. почитал по докам.
    DEFAULT обеспечит консистентность, но вариант выстрелить в ногу остаётся
    MATERIALIZED гарантирует консистентность, но есть нюансы со вставками и SELECT *
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45720 #45729 08:16 AM, 15 Mar 2018
    Никто же не знает что у вас заданные, сколько и какие запросы. Вот тут есть бенчмарки разных СУБД на одних и тех же данных http://tech.marksblogg.com/
    Tech Blog

    Benchmarks & Tips for Big Data, Hadoop, AWS, Google Cloud, PostgreSQL, Spark, Python & More...

  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45728 #45730 08:16 AM, 15 Mar 2018
    Да, всё так
  • https://t.me/clickhouse_ru
    @zavazavazava #45731 08:19 AM, 15 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    на сайте http://www.tpc.org собраны результаты бенчмарков железа и большого количества разных СУБД, использованы стандартные тесты для тестирования производительности и получены результаты в единицах TPC-H для OLAP систем: соответствие количества процессоров их типа и ядер определённой нагрузочной способности в единицах теста TPC-H.
    У Oracle например есть инструменты примерного расчёта сайзинга по количеству ядер для Essbase (экселевская считалка) где можно задать профиль нагрузки и на выходе получить количество серверов/процессоров аналогичное использованному в лабораторных испытаниях для конкретного профиля нагрузки и заданного колличества пользователей выполняющих запросы.
    Хочется найти что то похожее в виде примеров расчётов или готового инструмента для ClickHouse
    TPC-Homepage

    The Transaction Processing Performance Council defines transaction processing and database benchmarks and delivers trusted results to the industry.

  • @70532431 #45733 08:28 AM, 15 Mar 2018
    Как-то спрашивал, что лучше для производительности - Uint8 или Int8, если предполагается хранить небольшое число.
    Наши бенчмарки показали, что Uint8 всегда быстрее немного.
  • @anton_d_zhukov #45734 08:29 AM, 15 Mar 2018
    Это довольно очевидно... unsigned всегда немного быстрее
  • @70532431 #45735 08:30 AM, 15 Mar 2018
    Мне наоборот Int советовали - так что очевидно не всем.
  • @anton_d_zhukov #45736 08:31 AM, 15 Mar 2018
    Это странный совет. Беззнаковое число исключает дополнительные операции, как следствие меньше действий, как следствие выше производительность
  • @70532431 #45737 08:31 AM, 15 Mar 2018
    А где почитать можно матчасть?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45732 #45738 08:32 AM, 15 Mar 2018
    Этого точно нет, может кто-то и заморочается и сделает такие тесты + денюжку в tpc.org чтоб их опубликовать, я не знаю. Это сильно критично?
  • https://t.me/clickhouse_ru
    Это очень критично для расчёта сайзинга в рамках осуществления работ по реализации аналитической системы на базе ClickHouse и подготовки технической документации на эту аналитческую систему для нашего заказчика, который планирует в рамках программы по импортозамещению Oracle использовать ClickHouse, но требуется четкий расчёт с обоснованием каждой цифры
  • https://t.me/clickhouse_ru
    tpc.org - не сильно. Скорее требуются гайды на тему "данные типа n столбцов таких-то типов, общий объём - N записей, рекомендуемые параметры сервера для K параллельных запросов, использующих индексы - такие-то + NN Гб памяти на каждый запрос"
  • https://t.me/clickhouse_ru
    @mrlamberg #45741 08:37 AM, 15 Mar 2018
    версии же еще часто выходят, придется каждый релиз бенчи проводить?
  • https://t.me/clickhouse_ru
    Ну или примерное потребление памяти при работе с конкретными типами столбцов
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45742 #45743 08:37 AM, 15 Mar 2018
    Смотря что вы с ними будете делать
  • https://t.me/clickhouse_ru
    это понятно. Тут требуется описать пиковые случаи.
  • https://t.me/clickhouse_ru
    @173448324 #45745 08:39 AM, 15 Mar 2018
    сейчас есть конкретный объём данных, который переваривает Oracle, есть определённые показатели по производительности боевого железа, и требуется пересчитать эти показатели в железо необходимое для ClickHouse
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45739 #45746 08:39 AM, 15 Mar 2018
    Пока вы не проведете свои тесты на реальных данных и запросах вы не будете иметь никакого представления что вам потребудется. Всё остальное бесполезные тесты которые не о чем не говорят относительно реального применения
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45745 #45747 08:40 AM, 15 Mar 2018
    Возьмите их залейте в КХ, самый простой и надежный способ проверить
  • https://t.me/clickhouse_ru
    То есть, выяснять, что добавлять в сервер: память или ещё один процессор - чисто эмпирически?
  • https://t.me/clickhouse_ru
    А есть ли какая либо методика, прозрачно описывающая расчёт при заданном профиле нагрузки и наборе данных необходимого железа для корректной работы СУБД?
  • https://t.me/clickhouse_ru
    @kshvakov #45750 08:46 AM, 15 Mar 2018
    Для ClickHouse таких расчетов я не видел. Мы сами тестировали железо на наших нагрузках после чего съехали с Vertica и Citus. PS: для ClickHouse, как оказалось, железа нужно меньше
  • https://t.me/clickhouse_ru
    @173448324 #45751 08:47 AM, 15 Mar 2018
    Главная причина по которой требуется такойпрозрачный расчёт это используемая модель разработки, не применимы гибкие методы для нашего заказчика, используется Waterfall : для закупки и объявления тендеров на закупки конкретного железа под ClickHouse требуется предварительный прозрачный расчёт его нагрузочной способности на основании официальных данных тесвтов и рекомендаций производителя СУБД ClickHouse
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45748 #45752 08:48 AM, 15 Mar 2018
    На нагрузку, обычно, больше всего влияет то, что там за запросы в новом релизе понаписали
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45751 #45753 08:49 AM, 15 Mar 2018
    Напишите о своей проблеме на clickhouse-feedback@yandex-team.com
  • https://t.me/clickhouse_ru
    Ну то есть, пока что не предсказать, что за сервер понадобится под указанной нагрузкой под тестовым датасетом?
  • https://t.me/clickhouse_ru
    Так протестируйте, в чем сложность?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45754 #45756 08:50 AM, 15 Mar 2018
    Нет, особенно что от версии к версии производительность меняется
  • https://t.me/clickhouse_ru
    Ага, надо предсказать сколько серверов, дисков и памяти понадобится при миграции из Oracle в ClickHouse
  • https://t.me/clickhouse_ru
    дисков - лучше взять столько же, по-моему... Вот сколько брать остального...
  • https://t.me/clickhouse_ru
    @kshvakov #45759 08:52 AM, 15 Mar 2018
    Нужно брать деньгами, с остальным можно по ходу разобраться ;)
  • @vstakhov #45760 08:52 AM, 15 Mar 2018
    беззнаковое дольше конвертировать во floating point
  • https://t.me/clickhouse_ru
    Мы не можем протестировать: нет доступа к исходным данным, конфиденциальная база большого объёма
  • https://t.me/clickhouse_ru
    Тады проще взять тестовый датасет и засунуть его в оракл и кликхаус...
  • https://t.me/clickhouse_ru
    @alexanderzaitsev #45763 08:53 AM, 15 Mar 2018
    Объем, структура, потоки на вход-выход известны? Если да, то сами данные не нужны, можно сэмулирвать
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45761 #45764 08:54 AM, 15 Mar 2018
    Это всегда самая большая сложность, просто вам нужно нагенерить похожий набор. Для этого вам нужно знать структуру в Oracle и посчитать что там как распределено
  • https://t.me/clickhouse_ru
    @173448324 #45765 08:55 AM, 15 Mar 2018
    есть описание структуры и объём, который занимает база на диске, а так же примерное описание аналитической отчётности, которая строится по базе на Oracle, требуется хоть как то попробовать оценить пропорции в которых изменится требования к железу
  • https://t.me/clickhouse_ru
    @kshvakov #45766 08:56 AM, 15 Mar 2018
    Можете @alexanderzaitsev привлечь, они (https://www.altinity.com/) занимаются консалтингом и за денюжку вам с удовольствием могут помочь ;)
    ClickHouse Software And Services — Altinity

    Deploy and operate ClickHouse, a lightning fast, open source SQL data warehouse for real-time analytics, time series, and log analysis.

  • https://t.me/clickhouse_ru
    @kshvakov #45767 08:56 AM, 15 Mar 2018
    Ведь так?)
  • соорудите аналогичный сервис, набейте 1/100 данных, смигрируйте его, оцените
  • Дональд Кнут, первый том по алгоритмам
  • https://t.me/clickhouse_ru
    Помочь сможем. Но тут даже помогать не о чем :) Попросите размер таблиц (в строках и байтах) — это не должно быть конфидициальным. Хотя бы самых крупных. Оцените, как вы их сделаете в КХ — сколько там и каких колонок получится. После этого можно прикинуть объем данных на диске. Дальше смотреть по нагрузке и типам запросов, сколько надо серверов, памяти и т.д. Но как правильно заметил Кирилл, скорее всего железа понадобится меньше, чем на Оракле
  • https://t.me/clickhouse_ru
    @alexanderzaitsev #45771 08:59 AM, 15 Mar 2018
    Если заказчика это устроит, можно дать оценку сверху сразу, пообещав уточнить в процессе реализации.
  • https://t.me/clickhouse_ru
    @alexanderzaitsev #45772 09:02 AM, 15 Mar 2018
    Все компании, с которыми мы работали или работаем, начинают с прототипа, где на подмножестве своих данных проверяют и уточняют требования к железу. Общего подхода тут быть не может, так как каждый случай уникальный. Только тестировать.
  • https://t.me/clickhouse_ru
    объём, структура изветстны и прогнозы роста за несколько лет эксплуатации тоже есть, есть потребность делать как регламентированную отчётность (да, под неё можно оптимизировать модель данных и добиться производительности) так и не регламентированную отчётность в рамках выполнения Ad-Hoc анализа в конструкторе данных. Есть понимание как при такой нагрузке работает Essbase но нет понимания того как работает КХ
  • https://t.me/clickhouse_ru
    Ну ведь понимание, как работает Essbase, оно возникло не абстрактно, а в процессе эксплуатации. Было бы странно ожидать другого от ClickHouse
  • https://t.me/clickhouse_ru
    оно возникло из результатов тестов Ораклом Essbase при разных типах нагрузки, высчитаны поправочные коэффициенты, которые оценивают процент загрузки ядра процессора какждым из видов нагрузки в расчёте на одного пользователя, данные получены в лабораторных испытаниях и создан инструмент для расчёта
  • https://t.me/clickhouse_ru
    @173448324 #45776 09:07 AM, 15 Mar 2018
    вот так выглядит инструмент:
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45777 #45778 09:09 AM, 15 Mar 2018
    Судя по процессору и ядру не очень свежий гайд
  • https://t.me/clickhouse_ru
    @alexanderzaitsev #45779 09:09 AM, 15 Mar 2018
    Честно говоря, это выглядит как сферический конь в вакууме, но, конечно, понятно, зачем это нужно.
  • https://t.me/clickhouse_ru
    @173448324 #45780 09:12 AM, 15 Mar 2018
    этот конь в вакууме даёт понимание сколько QphH будет прилетать на базу, сколько переваривает древний процессор, можно найти на http://www.tpc.org/tpch/ тесты свежих процессоров и по единицам QphH подобрать свежий процессор, эта методика прозрачна и понятна заказчикам, требуется что то аналогичное для КХ
  • https://t.me/clickhouse_ru
    @kshvakov #45781 09:18 AM, 15 Mar 2018
    Придется самим пока делать, пока не наберется критическое число заказчиков никто не форкнет ClickHouse в какой-нибудь ClickHouse Pro/Enterprise etc и не будет делать вот-такие вот гайды и подписываться под ними, так как отвечать, в случае чего, придется и к Open Source продукту тут сложно будет что-то предъявить.
  • https://t.me/clickhouse_ru
    Для ClickHouse это не очень подходит, потому что все очень сильно зависит от реализации, которую в таблицу не впишешь. Разница может быть в 100 раз.
  • https://t.me/clickhouse_ru
    Вот как раз тут заказчик из мира, где только Eterprise решения со всем вытекающим в виде потребности вот в таких расчётах
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45783 #45784 09:23 AM, 15 Mar 2018
    Ему еще и тулинг нужен будет, после Oracle его в других продуктах очень не хватает
  • https://t.me/clickhouse_ru
    Если вы хотите, мы проведем для вас такой анализ, покажете заказчику. Altinity — официальный партнер Яндекса, то есть вполне компетентная оценка. Пишите в личку.
  • https://t.me/clickhouse_ru
    Спасибо за информацию!
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #45707 #45787 09:34 AM, 15 Mar 2018
    SELECT
    extractAll(Variables, 'Th":\\[(".+)+",?]}') AS Certs,
    arrayMap(x -> replaceRegexpAll(x, '"', ''), Certs) AS Ce2
    FROM ( SELECT 'Th":["42"]}' AS Variables )
    ┌─Certs───┬─Ce2────┐
    │ ['"42'] │ ['42'] │
    └─────────┴────────┘
  • https://t.me/clickhouse_ru
    @Guerella #45788 09:35 AM, 15 Mar 2018
    Спасибо!
  • https://t.me/clickhouse_ru
    Насчет TPC-H — там сложный тест и он не очень релевантен для ClickHouse. Есть модифицированный тест SSB — Star Schema Benchmark — для него есть измерения ClickHouse, но нет сводной таблицы сравнений с другими системами (https://www.altinity.com/blog/2017/6/16/clickhouse-in-a-general-analytical-workload-based-on-star-schema-benchmark). Если есть TPC-H или SSB для Amazon RedShift — то можно взять его за основу. ClickHouse быстрее в 2-3 раза, чем RedShift на аналогичном железе.
    ClickHouse in a general analytical workload (based on Star Schema Benchmark) – ClickHouse Software And Services | Altinity

    Jun 26, 2017   In this blog post, we’ll look at how ClickHouse performs in a general analytical workload using the star schema benchmark test.

  • @AndrewRazumovskiy #45790 09:50 AM, 15 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @jorrygo #45791 11:22 AM, 15 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @jorrygo #45792 11:24 AM, 15 Mar 2018
    Всем привет, есть таблица с колонками event_time(DateTime), comment_id(int), status_id(int), любое действие (например оставляют новый коммент и т.п. записывается в таблицу)
    И есть задача "среднее время которое комменты находятся в определенном статусе"
    Как бы такое сделать?
  • https://t.me/clickhouse_ru
    @orantius #45793 12:11 PM, 15 Mar 2018
    и конечно не каждая строка этой истории меняет статус комменту?
  • https://t.me/clickhouse_ru
    @orantius #45794 12:24 PM, 15 Mar 2018
    SELECT avgArray(y)
    FROM (
    WITH 1 AS S, 10 AS NOW
    SELECT
    N.comm,
    groupArray(N.dt) AS dt,
    groupArray(N.sta) AS sta,
    arrayMap(i -> if(sta[i] = S, if(i < length(dt), dt[(i + 1)], NOW) - dt[i], 0), arrayEnumerate(dt)) AS x,
    arrayFilter(xx -> (xx > 0), x) AS y
    FROM
    ( SELECT * FROM
    ( SELECT
    [2, 4, 6, 8, 1, 2, 4, 3] AS `N.dt`,
    [1, 1, 1, 1, 2, 2, 3, 3] AS `N.comm`,
    [1, 2, 3, 1, 2, 3, 1, 2] AS `N.sta`
    )
    ARRAY JOIN N
    ORDER BY `N.dt` ASC
    )
    GROUP BY N.comm
    )
    ┌─avgArray(y)─┐
    │ 3.33 │
    └─────────────┘
  • https://t.me/clickhouse_ru
    @jorrygo #45795 01:02 PM, 15 Mar 2018
    Да, не каждая. Спасибо большое.
    Конечно когда запрос этот увидел у меня глаза на лоб вылезли. Буду разбираться и обратно глаза на свое место стягивать.
    Спасибо еще раз
  • https://t.me/clickhouse_ru
    @orantius #45796 01:02 PM, 15 Mar 2018
    для не каждой надо будет еще выкинуть те точки истории, в которых не меняется состояние
  • https://t.me/clickhouse_ru
    @orantius #45797 01:02 PM, 15 Mar 2018
    до того как брать дифф по времени.
  • @pavlov_m #45798 01:03 PM, 15 Mar 2018
    Добрый день. Это что-то случилось?
    apt-update
    E: The repository 'http://repo.yandex.ru/clickhouse/xenial stable Release' does not have a Release file.
    N: Updating from such a repository can't be done securely, and is therefore disabled by default.
    N: See apt-secure(8) manpage for repository creation and user configuration details.

    вродь пару дней назад было нормально
  • https://t.me/clickhouse_ru
    @stufently #45799 01:04 PM, 15 Mar 2018
    выще уже писали сменили адрес репо
  • https://t.me/clickhouse_ru
    @stufently #45800 01:04 PM, 15 Mar 2018
    в доке наверно тоже уже обновили
  • Это репу поменяли два дня назад
  • @pavlov_m #45802 01:04 PM, 15 Mar 2018
    понял. спасибо
  • @alexeysetevoi #45803 01:04 PM, 15 Mar 2018
    да, в доке обновили
  • @alexeysetevoi #45804 01:04 PM, 15 Mar 2018
    clickhouse_repo: "deb http://repo.yandex.ru/clickhouse/deb/stable/ main/"
  • @alexeysetevoi #45805 01:18 PM, 15 Mar 2018
    13.03.2018.
    Уважаемые пользователи deb-репозитория clickhouse, url репозитория был обновлен. Новый url в документации: https://clickhouse.yandex/docs/ru/getting_started/

    Dear clickhouse users! deb-repository has been changed. You can see new deb-repository url in doc: https://clickhouse.yandex/docs/en/getting_started/
  • @alexeysetevoi #45806 01:18 PM, 15 Mar 2018
    @milovidov_an Алексей, может запинить выше про репу?
  • @358181242 #45807 02:34 PM, 15 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Cir0p #45808 02:41 PM, 15 Mar 2018
    индексы когда планируються?
  • @king5551 #45809 02:43 PM, 15 Mar 2018
    Использование индексов в Clickhouse

    Как работают индексы в Clickhose и как их использовать.

  • https://t.me/clickhouse_ru
  • @70532431 #45811 02:47 PM, 15 Mar 2018
    кстати интересное про индексы. от их очерёдности в ключе напрямую зависит производительность, но как-то про это нигде не пишут
  • @70532431 #45812 02:48 PM, 15 Mar 2018
    вот бы инфу из этой гугл группы да в официальные доки)
  • @ztlpn где то на конференции рассказывал про внутреннее устройство КХ и там тоже очень разжеванно объясняется что и как работает.
  • @pookieShmukie #45814 02:49 PM, 15 Mar 2018
    А вообще в доке есть раздел с подробным описанием https://clickhouse.yandex/docs/ru/development/architecture/
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45811 #45815 02:52 PM, 15 Mar 2018
    Считается что это очевидно )
  • @70532431 #45816 02:52 PM, 15 Mar 2018
    Прямо как в универе, моей преподавательнице по матану было многое очевидно, но увы зачастую только ей и ещё паре людей(
  • https://t.me/clickhouse_ru
    @Pok_pok_pok #45817 03:55 PM, 15 Mar 2018
    Joined.
  • None
  • https://t.me/clickhouse_ru
    это очень печально
  • @milovidov_an #45820 04:29 PM, 15 Mar 2018
    Адрес deb репозитория с пакетами был изменён:
    https://clickhouse.yandex/#quick-start
    ClickHouse DBMS

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

  • None
  • А что это означает? что то изменить нужно?
  • https://t.me/clickhouse_ru
    @alexeyche_17 #45823 04:30 PM, 15 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    и не такое бывало!
  • Ну я сначала удивился - а потом просто подправил свою роль для ансибла и живу дальше
  • https://t.me/clickhouse_ru
    @freeseacher #45826 04:30 PM, 15 Mar 2018
    печально что у меня сначала сломались плейбуки а только потом я узнал что они изменились и через 2 дня я увидел пин.
  • https://t.me/clickhouse_ru
    @cmdrosmium #45827 04:30 PM, 15 Mar 2018
    ещё оправдание — это, простите, международная практика, докер тоже так менял адреса репозиториев, с тем же откликом в сообществе
  • @milovidov_an #45828 04:31 PM, 15 Mar 2018
    Изменилась вот эта строка. Теперь так:

    deb http://repo.yandex.ru/clickhouse/deb/stable/ main/

    Это то, что прописывается в /etc/apt/sources.list или указывается в apt-add-repository.
  • https://t.me/clickhouse_ru
    для плейбуков ансибла это привело к тому что приходится делать миграцию для этого дела...
  • https://t.me/clickhouse_ru
    @freeseacher #45830 04:32 PM, 15 Mar 2018
    ибо старый файл по умолчанию остаётся а новый не выглядит сильно олично. поэтому apt update падает ага.
  • @ztlpn #45831 04:32 PM, 15 Mar 2018
    Зато в новом репозитории сохраняются все версии пакетов, а не только последние.
  • https://t.me/clickhouse_ru
    @freeseacher #45832 04:32 PM, 15 Mar 2018
    и для решения надо удалить старый файл.
  • https://t.me/clickhouse_ru
    еще я заметил что там нет разделения на версии осей
  • https://t.me/clickhouse_ru
    @freeseacher #45834 04:33 PM, 15 Mar 2018
    это значит что на деб 8 и 9 встанет одинаковый кх ?
  • Да, все верно. через apt_repository через absent работает
  • https://t.me/clickhouse_ru
    @nonamehobo #45836 04:33 PM, 15 Mar 2018
    неужели на aptly переехали
  • @milovidov_an #45837 04:34 PM, 15 Mar 2018
    Почему сделано изменение?

    Нам было необходимо, чтобы:

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

    2. Убрать разделение по ОС (precise/trusty/xenial), так как пакет для всех систем стал одинаковым.

    Почему изменение сделано несовместимым образом?

    Тот, кто разбирается в настройке .deb репозитория утверждает, что вариант с изменением адреса - это единственный способ.
  • https://t.me/clickhouse_ru
    @freeseacher #45838 04:34 PM, 15 Mar 2018
    вопросов почему нету. есть печаль про уведомление :)
  • https://t.me/clickhouse_ru
    @mrlamberg #45839 04:35 PM, 15 Mar 2018
    а репозитория для centos не планируется?
  • https://t.me/clickhouse_ru
    @freeseacher #45840 04:36 PM, 15 Mar 2018
    там какая то мутная тема. но в целом есть альтинити
  • @alexeysetevoi #45841 04:36 PM, 15 Mar 2018
    Там же был какой-то неофициальный, собирал кто-то из сорцов вроде
  • https://t.me/clickhouse_ru
    @freeseacher #45842 04:36 PM, 15 Mar 2018
    но там стремный пакет с граблями при обновлении
  • https://t.me/clickhouse_ru
    @mrlamberg #45843 04:36 PM, 15 Mar 2018
    я не хочу брать от неизвестно кого сборку
  • https://t.me/clickhouse_ru
    @freeseacher #45844 04:36 PM, 15 Mar 2018
    альтинити не неизвестно кто
  • https://t.me/clickhouse_ru
    @freeseacher #45845 04:37 PM, 15 Mar 2018
    команду посмотри там. думаю ты там всех знаешь :)
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @ivmaks ↶ Reply to #45837 #45847 04:38 PM, 15 Mar 2018
    Что мешает для совместимости просто добавлять 1 и тот же пакет в разные репозитории?
  • https://t.me/clickhouse_ru
    @ivmaks #45848 04:40 PM, 15 Mar 2018
    Репозитории это святое, только утром хотел проверить есть ли в нем ваши другие продукты для кх (jdbc, odbc) но руки не дошли
  • https://t.me/clickhouse_ru
    @EKbfh ↶ Reply to #45828 #45849 04:45 PM, 15 Mar 2018
    Т.е. с ключами больше ни у кого проблем нет?
  • https://t.me/clickhouse_ru
    ключи не менялись же
  • По прежнему weak-key
  • https://t.me/clickhouse_ru
    @EKbfh ↶ Reply to #45850 #45852 04:47 PM, 15 Mar 2018
    W: GPG error: http://repo.yandex.ru/clickhouse/deb/stable main/ Release: The following signatures were invalid: 9EBB357BC2B0876A774500C7C8F1E19FE0C56BD4
    у меня вот такое после смены репы.
    Удалять и импортировать ключ я пробовал.
  • https://t.me/clickhouse_ru
    @EKbfh ↶ Reply to #45851 #45853 04:48 PM, 15 Mar 2018
    Возможно, в Deb9 оно считается неприличным.
  • https://t.me/clickhouse_ru
    @freeseacher #45854 04:49 PM, 15 Mar 2018
    E0C56BD4 key же. нет ?
  • @alexeysetevoi #45855 04:52 PM, 15 Mar 2018
    - name: Install by APT | Apt-key add yandex repo key
    apt_key:
    keyserver: keyserver.ubuntu.com
    id: E0C56BD4
    become: true
  • https://t.me/clickhouse_ru
    Altinity/clickhouse - Packages · packagecloud

    Browse packages for the Altinity/clickhouse repository. Host your own repository by creating an account on packagecloud.

  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45847 #45857 04:59 PM, 15 Mar 2018
    Зачем их несколько поддерживать, лучше сразу один "отстрелить" и все. Сейчас с единым репозиторием для всех debian based бедут удобнее. При этом многие вообще пользуются своими репозиториями, что тоже правильно.
  • https://t.me/clickhouse_ru
    @ivmaks #45858 05:08 PM, 15 Mar 2018
    Странно ломать то что ничего не стоит не ломать
  • https://t.me/clickhouse_ru
    @f1llon #45859 05:12 PM, 15 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @f1llon #45860 05:13 PM, 15 Mar 2018
    привет всем!
    сможет кто-то глянуть ПР на clickhouse-jdbc?
    https://github.com/yandex/clickhouse-jdbc/pull/186
    Maven shade plugin for uber jars with shaded dependencies by f1llon · Pull Request #186 · yandex/clickhouse-jdbc

    The clickhouse-jdbc strictly depends on such libraries like com.google.guava & com.fasterxml.jackson.core well known of its issues with backward/forward compatibilities. I faced the classpath i...

  • https://t.me/clickhouse_ru
    @molo4ko007 #45861 05:33 PM, 15 Mar 2018
    Anton а можете еще правило для joda time добавить? или просто все в один путь положить? просто чтоб наверняка
  • https://t.me/clickhouse_ru
    @f1llon #45862 05:34 PM, 15 Mar 2018
    joda time попадает в ru.yandex.repackaged.org
  • https://t.me/clickhouse_ru
    @molo4ko007 #45863 05:35 PM, 15 Mar 2018
    а, точно, по имени класса же
  • https://t.me/clickhouse_ru
    @molo4ko007 #45864 05:35 PM, 15 Mar 2018
    я посмотрел на группу и запутался)
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @molo4ko007 #45866 05:38 PM, 15 Mar 2018
    ну да. я у себя какими-то костылями зафорсил версии так, что вроде все +- стабильно, но ощущение пороховой бочки осталось
    👍
  • https://t.me/clickhouse_ru
    @f1llon #45867 05:40 PM, 15 Mar 2018
    я пробовал подложить 14 гуаву - драйвер упал с NoClassDeFound
  • https://t.me/clickhouse_ru
    @EKbfh ↶ Reply to #45854 #45868 06:11 PM, 15 Mar 2018
    Да, он и есть. Последние символы строки.
  • @lemmsh #45869 06:26 PM, 15 Mar 2018
    временно можно сделать так deb [trusted=yes] http://repo.yandex.ru/clickhouse/deb/stable/ main/
  • @lemmsh #45870 06:26 PM, 15 Mar 2018
    но это так себе решение
  • @lemmsh #45871 06:29 PM, 15 Mar 2018
    остается еще этот ворнинг W: Conflicting distribution: http://repo.yandex.ru/clickhouse/deb/stable main/ Release (expected main/ but got clickhouse stable), но с ним можно жить
  • https://t.me/clickhouse_ru
    @EKbfh ↶ Reply to #45869 #45872 06:31 PM, 15 Mar 2018
    Большое спасибо, работает.
    один из ворнингов: W: Conflicting distribution: http://repo.yandex.ru/clickhouse/deb/stable main/ Release (expected main/ but got clickhouse stable) я так понимаю, что это из-за "унификации"
  • @lemmsh #45873 06:31 PM, 15 Mar 2018
    ага
  • https://t.me/clickhouse_ru
    @EKbfh #45874 06:32 PM, 15 Mar 2018
    Я не поднимал репы, а разве сложно несколько папок сделать, хоть с симлинками?
  • Планируется. Есть пакеты, но мы ещё не успели их туда залить.
  • @milovidov_an #45876 07:32 PM, 15 Mar 2018
    Про weak digest algorithm посмотрели и что-то исправили.
  • https://t.me/clickhouse_ru
    @proller ↶ Reply to #45695 #45877 08:41 PM, 15 Mar 2018
    1. взять файл из clickhouse - debian/.pbuilderrc и положить его в -odbc в debian/.pbuilderrc
    2. запустить: sudo DIST=artful ARCH=i386 pbuilder create —configfile debian/.pbuilderrc && DIST=artful ARCH=i386 pdebuild —configfile debian/.pbuilderrc
    3 - вот он, /var/cache/pbuilder/artful-i386/result/clickhouse-odbc_1.1.1_i386.deb
  • 16 March 2018 (237 messages)
  • https://t.me/clickhouse_ru
    @bufoviridis #45878 01:41 AM, 16 Mar 2018
    Помогите, пожалуйста! После обновления до 1.1.54362 получаю ошибку Size of filter doesn't match size of column при работе со свежедобавленным столбцом с прописанным дефолтным значением (т.е. согласно документации, ch значение налету вычисляет для созданных ранее записей). Например, select sum(ve) from nr_views_t8 - так работает, а так нет: select sum(ve) from nr_views_t8 where a_s_o=1. ve UInt8 DEFAULT 1
  • Мы пока ещё не сталкивались с такой проблемой (хотя тоже недавно обновились до 54362).

    Поэтому нужна диагностика.

    Проверьте, не исчезает ли ошибка, если выставить
    SET optimize_move_to_prewhere = 0

    Также попробуйте выбрать какой-нибудь минимальный кусок данных, на котором проявляется проблема. Как это сделать? Смотрите, какие есть куски данных с помощью SELECT * FROM system.parts WHERE active AND table = 'nr_views_t8'. name - это имя куска данных.
    В оригинальный запрос SELECT из nr_views_t8 можно добавить условие на кусок данных, вот так:
    ... AND _part = 'name'

    Если есть такой небольшой кусок данных, то вы можете достать его из файловой системы и переслать нам (clickhouse-feedback@yandex-team.ru). Понадобится также схема таблицы.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45874 #45880 04:43 AM, 16 Mar 2018
    Там не просто в папку закинул и всё. В общем решение сделать общий репозиторий правильное и рано или поздно это сделать бы пришлось. Единственное что это произошло несколько внезапно.
  • https://t.me/clickhouse_ru
    @coolshuma #45881 07:23 AM, 16 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @vse_chetk0 #45882 07:35 AM, 16 Mar 2018
    Коллеги, для КХ это стандартное поведение что при вставке поля DateTime КХ его модифицирует и приводит к своей таймзоне ?
  • https://t.me/clickhouse_ru
    @vse_chetk0 #45883 07:40 AM, 16 Mar 2018
    можно ли через http запрос, как то указать КХ не модифицировать время
  • @aibulatik #45884 07:44 AM, 16 Mar 2018
    может при чтении преобразовывается дата к установленной таймзоне?
  • @yakushevas #45885 07:51 AM, 16 Mar 2018
    https://clickhouse.yandex/docs/ru/data_types/datetime/
    По умолчанию клиент переключается на часовой пояс сервера при подключении. Это поведение можно изменить, включив у клиента параметр командной строки --use_client_time_zone.
  • https://t.me/clickhouse_ru
    А в случае вставки по http?
  • @yakushevas #45887 07:53 AM, 16 Mar 2018
    это на отображение влияет
  • @yakushevas #45888 07:53 AM, 16 Mar 2018
    хранится она в unix timestamp формате
  • https://t.me/clickhouse_ru
    @marshalov #45890 08:04 AM, 16 Mar 2018
    Подскажите, есть нормальный способ в python получать данные запроса не одним огромным списком, а вычитывать потоково? Есть хоть одна библиотека, умеющая это?
  • https://t.me/clickhouse_ru
    так и есть
  • @61322181 ↶ Reply to #45890 #45892 08:11 AM, 16 Mar 2018
    Http запрос и декодировать стрим?
  • нужно поставить зону в клиенте, которым читаете
  • https://t.me/clickhouse_ru
    То есть "нет, пиши сам"?
  • https://t.me/clickhouse_ru
    использую Datagrip, но в нем какие то траблы с настройкой таймзоны
  • @61322181 ↶ Reply to #45894 #45896 08:21 AM, 16 Mar 2018
    скорее это один из вариантов )
  • https://t.me/clickhouse_ru
    @tommi_v ↶ Reply to #45895 #45897 08:21 AM, 16 Mar 2018
    а можете рассказать, как вы датагрип прикрутили?
  • https://t.me/clickhouse_ru
    @tommi_v #45898 08:22 AM, 16 Mar 2018
    я пробовал jdbc драйвер, но он эксепшенами кидался, ничего не вышло
  • https://t.me/clickhouse_ru
    вот через него и подключился, впринципе завелся без проблем
  • @3334085 #45900 08:23 AM, 16 Mar 2018
    Господа, а кто Oracle через odbc к кликхаусу подключал? Каков алгоритм?
  • https://t.me/clickhouse_ru
    @tommi_v #45901 08:23 AM, 16 Mar 2018
    хмм
  • https://t.me/clickhouse_ru
    @tommi_v #45902 08:23 AM, 16 Mar 2018
    а драйвер сами собирали?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45890 #45903 08:23 AM, 16 Mar 2018
    Вот эта https://github.com/mymarilyn/clickhouse-driver с нативным протоколом работает, в нем (протоколе) есть возможность не все сразу вытаскивать
    GitHub - mymarilyn/clickhouse-driver: ClickHouse Python Driver with native interface support

    ClickHouse Python Driver with native interface support - GitHub - mymarilyn/clickhouse-driver: ClickHouse Python Driver with native interface support

  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45892 #45904 08:24 AM, 16 Mar 2018
    В ClickHouse не только HTTP интерфейс есть
  • @61322181 ↶ Reply to #45904 #45905 08:25 AM, 16 Mar 2018
    ага
  • https://t.me/clickhouse_ru
    вот по этому туториалу
    http://blog.magazov.com/clickhouse-intellij-idea/
    Clickhouse + Intellij Idea

    Чтобы подключить clickhouse к вашему любимому продукту от JetBrains, выкачаем репозиторий с jdbc клиентом: ➜ git clone https://github.com/yandex/clickhouse-jdbc.git соберем драйвер: ➜ cd clickhouse-jdbc ➜ mvn package assembly:single -DskipTests=true В директори target/ получим наш jar ➜ clickhouse-jdbc git:(master) ls target/*dependencies.jar target/clickhouse-jdbc-0.1-SNAPSHOT-jar-with-dependencies.jar Открываем

  • @aibulatik #45908 08:29 AM, 16 Mar 2018
    драйвер из коробки тоже не сразу заработал, помогло переключить java на 8ую версию и собрать пакет вручную
  • https://t.me/clickhouse_ru
    не помогло(
  • https://t.me/clickhouse_ru
    Вот с ним как раз и мучаюсь, он долго синхронно загружает все данные и потом выплевывает единым списком
  • https://t.me/clickhouse_ru
    @tommi_v ↶ Reply to #45907 #45911 08:34 AM, 16 Mar 2018
    спасибо
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45910 #45912 08:53 AM, 16 Mar 2018
    Тут где-то автор был, можно попробовать с ним связаться, в нативном протоколе данные передаются блоками, т.е. не нужно вытягивать весь результат перед тем как начать отдавать
  • https://t.me/clickhouse_ru
    @kshvakov #45913 08:54 AM, 16 Mar 2018
    Автор @tkostyan
  • https://t.me/clickhouse_ru
    @mo1seev ↶ Reply to #45907 #45914 09:05 AM, 16 Mar 2018
    чет и у меня не взлетело(
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @tkostyan ↶ Reply to #45910 #45916 09:08 AM, 16 Mar 2018
    Добрый день. Вам нужна асинхронность или потоковая обработка данных?
  • https://t.me/clickhouse_ru
    какая версия java ?
  • https://t.me/clickhouse_ru
    @mo1seev #45918 09:15 AM, 16 Mar 2018
    Взял готовый отсюда:
    https://mvnrepository.com/artifact/ru.yandex.clickhouse/clickhouse-jdbc/0.1.39
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @mo1seev ↶ Reply to #45917 #45920 09:16 AM, 16 Mar 2018
    Moiseevs-MacBook-Pro:clickhouse-jdbc mo1seev$ java -version
    java version "9.0.4"
    Java(TM) SE Runtime Environment (build 9.0.4+11)
    Java HotSpot(TM) 64-Bit Server VM (build 9.0.4+11, mixed mode)
  • https://t.me/clickhouse_ru
    @mo1seev #45921 09:17 AM, 16 Mar 2018
    "уронить" до 8й?
  • https://t.me/clickhouse_ru
    Потоковое вычитывание данных
  • https://t.me/clickhouse_ru
    @tkostyan ↶ Reply to #45922 #45923 09:20 AM, 16 Mar 2018
    Такой возможности пока нет. Возможно в будущем оно появится
  • https://t.me/clickhouse_ru
    @tkostyan #45924 09:20 AM, 16 Mar 2018
    Лучше завести issue, чтобы не забылось
  • https://t.me/clickhouse_ru
    Да я собственно для себя уже начал добавлять поддержку, но она пока не очень стабильно работает
  • https://t.me/clickhouse_ru
    в 9 класса Loggerfactory нету, поставь 8
  • https://t.me/clickhouse_ru
    @mo1seev ↶ Reply to #45926 #45927 09:25 AM, 16 Mar 2018
    в процессе
  • https://t.me/clickhouse_ru
    @mo1seev ↶ Reply to #45926 #45928 09:28 AM, 16 Mar 2018
    пасиба, завелось!
  • @massbeat #45929 09:38 AM, 16 Mar 2018
    Joined.
  • @nessero #45931 10:18 AM, 16 Mar 2018
    Подскажите не работает autopurge в зукепере. В конфиге
    autopurge.snapRetainCount=10
    autopurge.purgeInterval=1
    snapCount=3000000
    когда zkCleanup.sh запускаю ничего не происходит. Если из доки зукипера взять java -cp zookeeper.jar:log4j.jar:conf org.apache.zookeeper.server.PurgeTxnLog /opt/zoo/data/ /opt/zoo/logs/ -n 10 то выдает Error: Could not find or load main class org.apache.zookeeper.server.PurgeTxnLog
  • @nessero #45932 10:19 AM, 16 Mar 2018
    не видал я этот класс в либах не одной версии зукипера чего то
  • https://t.me/clickhouse_ru
    @catless #45933 10:26 AM, 16 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @149051052 #45934 11:19 AM, 16 Mar 2018
    Привет!
    Есть ли возможность поулчать данные в формате JSON: Ключ => Значение, с вычисляемым ключом?
    Пример (псевдо код, так конечно не работает):
    >SELECT 1 as NOW() FORMAT JSONEachRow
    Желаемый результат:
    >{"2018-03-16 14:13:52":1}
    Можно было бы написать так и потом привести в нужный формат в своей программе, это решение не подходит:
    >SELECT 1, NOW() FORMAT JSONEachRow
  • https://t.me/clickhouse_ru
    @orantius #45935 11:25 AM, 16 Mar 2018
    вам конечно виднее, но по-моему получать данные в виде структуры которая заранее известна удобнее, чем перебирать ответ в поисках чего-то нужного.
  • https://t.me/clickhouse_ru
    Структура будет известна и определяется группировкой. Например "UserId" => "Какие то данные группировки по пользователю"
  • https://t.me/clickhouse_ru
    @orantius #45937 11:38 AM, 16 Mar 2018
    формат ответа о котором вы говорите возможен не для всех запросов. нужно чтобы в ответе было два столбца, чтобы столбец с ключом был строкой, чтобы значения в нем не повторялись.
  • https://t.me/clickhouse_ru
    @edyya #45938 11:38 AM, 16 Mar 2018
    Завел пару тикетов на гитхабе по ODBC. Посмотрите, пожалуйста, как будет время.
    https://github.com/yandex/clickhouse-odbc/issues/67
    ODBC with Tableau #67

    Hi, I have a problem with ODBC using Tableau. Outcoming query: SELECT CAST({fn TRUNCATE(EXTRACT(YEAR FROM `adv_watch`.`rocket_date`),0)} AS INTEGER) AS `yr_rocket_date_ok` FROM `adv_watch` GROUP BY...

  • https://t.me/clickhouse_ru
    там есть тикеты без ответа около 20 дней, скорее здесь ответят или на фриноде
  • https://t.me/clickhouse_ru
    SET optimize_move_to_prewhere = 0 помогло, спасибо! Но в момент написания просьбы о помощи не помогало. Правда тогда я пробовал почти сразу после апгрейда, может это повлияло. И да - если написать запрос с prewhere, ошибка есть. прогнал с условием по _part - ошибка на всех больших кусках (больше 4ГБ), на остальных ( менее 1ГБ) её нет.
  • https://t.me/clickhouse_ru
    @edyya ↶ Reply to #45939 #45941 11:45 AM, 16 Mar 2018
    там скорее не вопросы, а баг-репорты. В чате забудется и потеряется :)
  • https://t.me/clickhouse_ru
    @proller ↶ Reply to #45938 #45942 11:47 AM, 16 Mar 2018
    Кликхаус пока не понимает EXTRACT , проблема известная, скоро поправим
  • https://t.me/clickhouse_ru
    @edyya #45943 11:49 AM, 16 Mar 2018
    Спасибо, буду ждать.
  • https://t.me/clickhouse_ru
    @nikita_nmk #45944 12:08 PM, 16 Mar 2018
    а как-то возомжно изменить тип столбца, у которого указано default? я хочу добавить столбец, с помощью default "заполнить" его какими-то значениями, а потом поменять тип, что бы все дефолтные значения записались на диск и у колонки не было дефолтного значения. что бы optimize final не делать..
  • @AlexanderMillin #45945 12:23 PM, 16 Mar 2018
    без optimize final default данные не запишутся на диск, если столбец новый
  • @AlexanderMillin #45946 12:24 PM, 16 Mar 2018
    мы делали так: добавляли столбец с default, делали optimize final, потом убирали default. Другого способа не нашли
  • https://t.me/clickhouse_ru
    @Elena_actress #45947 01:23 PM, 16 Mar 2018
    Всем привет!
    Помогите, пожалуйста, привести дату '2017-04-13' к виду DD.MM.YYYY
  • https://t.me/clickhouse_ru
    @Elena_actress #45948 01:23 PM, 16 Mar 2018
    Нужно использовать substring? Или можно как-то еще?
  • https://t.me/clickhouse_ru
    @qweran ↶ Reply to #45948 #45949 01:26 PM, 16 Mar 2018
    :) select replaceAll(toString(toDate(now())), '-', '.') as new_date_format

    SELECT replaceAll(toString(toDate(now())), '-', '.') AS new_date_format

    ┌─new_date_format─┐
    │ 2018.03.16 │
    └─────────────────┘

    1 rows in set. Elapsed: 0.002 sec.

    :)
    А так нельзя?
  • https://t.me/clickhouse_ru
    @Elena_actress #45950 01:26 PM, 16 Mar 2018
    хотят сначала день, потом месяц и в конце год
  • https://t.me/clickhouse_ru
    @qweran #45951 01:26 PM, 16 Mar 2018
    А, я упоролся
  • https://t.me/clickhouse_ru
    Как то так
    select replaceRegexpOne('2018-03-15', '(\\d{4})-(\\d{2})-(\\d{2})', '\\3.\\2.\\1') AS d

    Поправил
  • @70532431 #45953 01:30 PM, 16 Mar 2018
    тестируйте как просядет производительность. такие вещи можно даже на стороне фронтенда разруливать куда быстрее, не грузя сервера
  • https://t.me/clickhouse_ru
    Э... Есть же всякие toDayOfMonth() и т.п.
  • https://t.me/clickhouse_ru
    @kshvakov #45955 01:32 PM, 16 Mar 2018
    Вроде что-то делали с датами произвольного вормата, я, если честно не помно. Вообще пора сделать привычную to_char для Date/DateTime
  • https://t.me/clickhouse_ru
    может, сразу sprintf?
  • https://t.me/clickhouse_ru
    @kshvakov #45957 01:34 PM, 16 Mar 2018
    Нет, тут же даты. Вот пример https://www.postgresql.org/docs/9.5/static/functions-formatting.html
  • https://t.me/clickhouse_ru
    @Elena_actress #45958 01:38 PM, 16 Mar 2018
    я тоже привыкла к to_char.
    Всем большое спасибо!
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #45959 01:57 PM, 16 Mar 2018
    Что делаю не так http://joxi.ru/ZrJGWNLi1Y4o3m?
  • https://t.me/clickhouse_ru
    @Sablast ↶ Reply to #45959 #45960 02:00 PM, 16 Mar 2018
    мб добавить в таблицу столбец date Date DEFAULT toDate(created) и по нему мержить?
  • https://t.me/clickhouse_ru
    @BloodJazMan #45961 02:00 PM, 16 Mar 2018
    created_date MATERIALIZED toDate(created)
    и в ENGINE его добавь
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45959 #45962 02:01 PM, 16 Mar 2018
    1) Вставляете скриншоты
    2) Для всего используете String
    )
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #45963 02:01 PM, 16 Mar 2018
    Я вообще такое хотел: есть таблица с движком MySQL, которая смотрит на большую таблицу в мускуле (23кк строк). И создать таблицу по образу
  • https://t.me/clickhouse_ru
    Про стринг понятно, а что не так со скриншотами?
  • https://t.me/clickhouse_ru
    @Sablast #45965 02:02 PM, 16 Mar 2018
    ну не ссылками на сторонние ресурсы а ctrl-c ctrl-v)
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45964 #45966 02:03 PM, 16 Mar 2018
    Ну, код обычно текстом вставлять лучше, можно скопипастить и посмотреть что не так
  • @mfilimonov #45967 02:04 PM, 16 Mar 2018
    А есть ли какой-то движок / способ который при слиянии позволял бы УДАЛЯТЬ ненужные строки? Задача на самом деле - позволить изменять некоторые столбцы, входящие в PK. ReplacingMegreTree не схлопнет 2 строки если у них отличается PK. Вот если бы можно было рядом со старой строкой вставить новую c тем же PK и скажем флагом "удали это" и вставить ещё раз новую строку с новым PK.
  • https://t.me/clickhouse_ru
    @kshvakov #45968 02:07 PM, 16 Mar 2018
    Пока все завязано на ключ, несмотря на то, что к маю обещают UPDATE/DELETE - это не сильно поможет, так как расчитано на не очень частое применение
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45967 #45969 02:07 PM, 16 Mar 2018
    Часто нужно обновлять?
  • @mfilimonov #45970 02:07 PM, 16 Mar 2018
    И кстати что это за зверь: VersionedCollapsingMergeTree ,
  • @mfilimonov #45971 02:08 PM, 16 Mar 2018
    ?
  • @201321484 #45972 02:08 PM, 16 Mar 2018
    VersionedCollapsingMergeTree - расширение (и в некотором смысле упрощение) функциональности CollapsingMergeTree. Разработано для Яндекс.Метрики. Чтобы было действительно понятно, зачем оно понадобилась - какой сценарий использования, придётся написать более подробный текст...

    Может быть @kochetovnicolai в этом поможет.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #45974 02:09 PM, 16 Mar 2018
    CREATE TABLE referer_histories_copy ( _id String, guestId String, nginxRequestId String, originalUrl String, referer String, ip String, userAgent String, created Date, userId String, landing String, groupRef String, groupName String, created_date MATERIALIZED toDate(created)) ENGINE=MergeTree(toDate(created_date), (create_date, userId), 8192)
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #45975 02:09 PM, 16 Mar 2018
    Не помогло с MATERIALIZED, такое ощущение что какой-то символ что ли не нравится
  • @201321484 #45976 02:10 PM, 16 Mar 2018
    очень хочется чтобы replacingmergetree без танцев с бубном отдавал сразу последние версии записей.
    и сортировку desc по primary key

    мечты
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45974 #45977 02:11 PM, 16 Mar 2018
    created_date, а не строку в параметры движка пихайте, без вызова функции
  • https://t.me/clickhouse_ru
    @Sablast ↶ Reply to #45975 #45978 02:12 PM, 16 Mar 2018
    ENGINE = MergeTree(created_date,...
  • Скорее редко. В принципе эта планируемая реализация UPDATE / DELETE должна удовлетворить эти потребности (речь не о GDPR, а о скажем так - исправлению ошибок после неверной конфигурации тракинга) если использовать достаточно мелкие партиции.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45979 #45980 02:14 PM, 16 Mar 2018
    Если партиции мелкие то можно перелить без этих ключей в новую партицию, а старую дропнуть
  • Ну в принципе тоже можно бы. Только момент переливания получится эээ... неловкий. В смысле будет какой-то (пусть небольшой) момент времени когда партиция отсутствует.
  • @mfilimonov #45982 02:17 PM, 16 Mar 2018
    Атомарности не хватает этому варианту.
  • https://t.me/clickhouse_ru
    @Sablast ↶ Reply to #45982 #45983 02:18 PM, 16 Mar 2018
    можно заливать в другую таблицу с такой же структурой и делать ренейм партиций) в пару секунд уложитесь)
  • https://t.me/clickhouse_ru
    Спасибо, помогло. Был почему-то уверен что в MergeTree можно вызвать toDate
  • https://t.me/clickhouse_ru
    @kshvakov #45985 02:27 PM, 16 Mar 2018
    Можно, если синтаксис создания новый
  • https://t.me/clickhouse_ru
    @kshvakov #45986 02:28 PM, 16 Mar 2018
    CREATE TABLE T () Engine = MergeTree PARTITION BY ...
  • https://t.me/clickhouse_ru
    зачем писать toDate второй раз???
  • https://t.me/clickhouse_ru
    Ошибка копипасты
  • https://t.me/clickhouse_ru
    ну в общем суть ошибки которая написана
    поле даты должно быть просто именем а не функцией
  • https://t.me/clickhouse_ru
    @alekseythe1st #45990 02:57 PM, 16 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @SpicyCrack3r #45991 03:14 PM, 16 Mar 2018
    CH возвращает после импорта какой-либо код ?
  • @VitalVas #45992 03:17 PM, 16 Mar 2018
    У меня ушалось публичное зеркало, кроме deb пакетов (я их принципиально не удаляю)
    по логам в 19.15 utc ушло все
    @milovidov_an может не нада так, а?
  • https://t.me/clickhouse_ru
    @galyamrusl #45993 03:19 PM, 16 Mar 2018
    Joined.
  • https://t.me/clickhouse_ru
    @galyamrusl #45994 03:21 PM, 16 Mar 2018
    всем привет!
    у меня есть таблица 10 миллионов записей, движок CollapsingMergeTree
    я пытаюсь с помощью inserta обновить первую запись в этой таблице
    optimize не схлопывает 1ую и последнюю записи
    при этом если добавить новую запись и обновить ее через схлопывание то все работает
    подскажите пожалуйста в чем может быть проблема?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45994 #45995 03:24 PM, 16 Mar 2018
    А что у вас в
    select distinct name from system.parts where active and table = 'ваша таблица' ?
  • @antonio_antuan #45996 03:25 PM, 16 Mar 2018
    подозреваю, что вопрос глупый, но: я действительно не могу добавить колонку в таблицу, полученную из dictionary?:(
    :) alter table offers add column flow String;

    ALTER TABLE offers
    ADD COLUMN
    flow String

    Received exception from server (version 1.1.54343):
    Code: 48. DB::Exception: Received from localhost:9000, ::1. DB::Exception: Method alter is not supported by storage Dictionary.
  • https://t.me/clickhouse_ru
    @galyamrusl #45997 03:25 PM, 16 Mar 2018
    ┌─partition─┐
    │ 201301 │
    │ 201302 │
    │ 201303 │
    │ 201304 │
    │ 201305 │
    │ 201306 │
    │ 201307 │
    │ 201308 │
    │ 201309 │
    │ 201310 │
    │ 201311 │
    │ 201312 │
    │ 201401 │
    ┌─partition─┐
    │ 201301 │
    │ 201302 │
    │ 201303 │
    │ 201304 │
    │ 201305 │
    │ 201306 │
    │ 201307 │
    │ 201308 │
    │ 201309 │
    │ 201310 │
    │ 201311 │
    │ 201312 │
    │ 201401 │
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45997 #45998 03:27 PM, 16 Mar 2018
    Это я там напутал, нужно не partition, а name. Скорее всего они (записи), лежат в кусках которые между собой ещё не мержились
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #45996 #45999 03:28 PM, 16 Mar 2018
    Да, не можете, ClickHouse вам об этом намекает своим Exception
  • https://t.me/clickhouse_ru
    @galyamrusl #46000 03:28 PM, 16 Mar 2018
    ─name──────────────────────────┐
    │ 20130101_20130131_1_89_16 │
    │ 20130131_20130131_90_90_0 │
    │ 20130101_20130101_1070_1070_0 │
    │ 20130201_20130227_91_166_14 │
    │ 20130227_20130228_167_171_1 │
    │ 20130301_20130331_172_261_16 │
    │ 20130331_20130331_262_262_0 │
    │ 20130401_20130429_263_344_15 │
    │ 20130429_20130430_345_349_1 │
    │ 20130501_20130529_350_431_15 │
    │ 20130529_20130531_432_439_2 │
    │ 20130601_20130629_440_521_15 │
    │ 20130629_20130630_522_527_1 │
    │ 20130701_20130731_528_617_16 │
    │ 20130801_20130831_618_707_16 │
    │ 20130901_20130929_708_789_15 │
    │ 20130929_20130930_790_795_1 │
    │ 20131001_20131031_796_884_16 │
    │ 20131031_20131031_885_885_0 │
    │ 20131101_20131129_886_967_15 │
    │ 20131129_20131130_968_972_1 │
    │ 20131201_20131231_973_1062_16 │
    │ 20131231_20131231_1063_1063_0 │
    │ 20140101_20140101_1064_1073_3
  • https://t.me/clickhouse_ru
    @galyamrusl #46001 03:28 PM, 16 Mar 2018
    я же делал optimize table hit
  • https://t.me/clickhouse_ru
    @galyamrusl #46002 03:29 PM, 16 Mar 2018
    он не сработал