• 01 June 2017 (154 messages)
  • https://t.me/clickhouse_ru
    @pygeorge #15608 08:47 AM, 01 Jun 2017
    Привет, а есть возможность соеденить два массива в select запросе?
  • https://t.me/clickhouse_ru
    @rheinx #15609 08:55 AM, 01 Jun 2017
    У кого нибудь была задача посчитать номер недели с начала года? Как решали?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @rheinx #15611 08:57 AM, 01 Jun 2017
    relativeweeknum возвращает относительно некоторого момента в прошлом. А хотелось бы номер недели с начала определенного года. т.е. я передаю год и число, а получаю номер недели
  • https://t.me/clickhouse_ru
    @miptgirl #15613 08:58 AM, 01 Jun 2017
    Хочется с начала того же года. что и дата, или какого-то определенного года в прошлом?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #15613 #15615 09:00 AM, 01 Jun 2017
    того же года что и дата. Аналог SELECT EXTRACT(WEEK FROM now()); в Postgres.
  • https://t.me/clickhouse_ru
    @miptgirl #15616 09:12 AM, 01 Jun 2017
    Кажется, должна помочь комбинация toStartOfYear и toMonday. Что-то типа такого
    SELECT (toMonday(now()) - toMonday(toStartOfYear(now()))) / 7
  • https://t.me/clickhouse_ru
    @hagen1778 #15617 09:29 AM, 01 Jun 2017
    Вопрос: если инициировать выборку из дистрибьютед таблицы под пользователем с ограниченными правами, то запросы в остальные шарды пойдут от имени какого пользователя? Указанного в конфигурации кластера <remote_servers> ?
  • https://t.me/clickhouse_ru
    @AndreevDm #15618 09:30 AM, 01 Jun 2017
    Да, от указанного в <remote_servers>
  • https://t.me/clickhouse_ru
    @SomeTelegramUser #15619 09:43 AM, 01 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @SomeTelegramUser #15620 10:03 AM, 01 Jun 2017
    Просите за нубский вопрос, но в ClickHouse возможно использование алиасов для неагреггированных полей?

    select t.field as SomeField from t
  • https://t.me/clickhouse_ru
    @SomeTelegramUser #15621 10:06 AM, 01 Jun 2017
    Возможно.
  • @m_motylkov #15622 10:06 AM, 01 Jun 2017
    select field as SomeField from t будет работать
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #15616 #15623 10:07 AM, 01 Jun 2017
    Спасибо! Это похоже то что нужно!
  • https://t.me/clickhouse_ru
    Спасибо, разобрался
  • @alexolaf #15626 10:37 AM, 01 Jun 2017
    Коллеги, кто-то в курсе проектов использования кх как централизованного хранилища логов приложения? Каждая запись кроме стандартных атрибутов содержит еще json размером до 10-20кб. Известны ли подводные камни ?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #15627 10:41 AM, 01 Jun 2017
    зависит от объема "стандартных аттрибутов"
  • https://t.me/clickhouse_ru
    @pavel_odintsov #15628 10:41 AM, 01 Jun 2017
    если их пять штук и 20 килобайт блоба - кликхаусу тут делать нечего
  • https://t.me/clickhouse_ru
    @pavel_odintsov #15629 10:42 AM, 01 Jun 2017
    он не предназначен для логов в "свободном формате"
  • https://t.me/clickhouse_ru
    Тогда возникает вопрос использования лимитов и квот. Если запрос приходит от условного юзера web с лимитами на память и время, то на другие шарды он уходит от уже другого пользователя без этих лимитов
  • https://t.me/clickhouse_ru
    @AndreevDm #15631 11:01 AM, 01 Jun 2017
    Параметры попадаются на реплики
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #15625 #15632 11:04 AM, 01 Jun 2017
    а что вы хотите сделать, допустим у вас есть логи (user_id, visit_date) и (user_id, purchase_date), и вам нужно по ним посчитать что?
  • https://t.me/clickhouse_ru
    @emtsptth #15634 11:21 AM, 01 Jun 2017
    Всем привет, подскажите, вот в ReplicatedMergeTree работает дедупликация, если в батче <100 строк, верно? Есть возможность обойти ее? Использовать Buffer перед RMT? Или может настройка use_uncompressed_cache влияет?
  • https://t.me/clickhouse_ru
    @taroff #15635 11:23 AM, 01 Jun 2017
    > Запрос INSERT разбивается на блоки данных размером до max_insert_block_size = 1048576 строк.
  • https://t.me/clickhouse_ru
    @taroff #15636 11:24 AM, 01 Jun 2017
    >Блоки данных дедуплицируются.
  • https://t.me/clickhouse_ru
    @taroff #15637 11:24 AM, 01 Jun 2017
    зачем обходить?
  • https://t.me/clickhouse_ru
    т.е. можно быть увереным, что лимиты установленные на пользователе-инициаторе запроса к дистрибьютед таблице будут распространятся на все ноды кластера?
  • https://t.me/clickhouse_ru
    @emtsptth ↶ Reply to #15637 #15639 11:28 AM, 01 Jun 2017
    у меня возможны дубли сингл инсертами, которые нельзя терять.
  • https://t.me/clickhouse_ru
    @taroff #15640 11:29 AM, 01 Jun 2017
    а, ну сингл инсерты не рекомендуют, если батчи копить, то дублей не будет. Buffer да, решение. Но может что-то получше подскажут
  • https://t.me/clickhouse_ru
    @alstepanov #15641 11:31 AM, 01 Jun 2017
    День защиты детей 2017 #GoogleDoodle
    https://g.co/doodle/u9cqwz
    День защиты детей 2017

    День защиты детей 2017 #GoogleDoodle

  • https://t.me/clickhouse_ru
    @emtsptth #15642 11:31 AM, 01 Jun 2017
    Оке, а вот еще момент, который мне непонятен, если батчем, но в батче менее 100 строк? или там априори не работает дедупликация?
  • https://t.me/clickhouse_ru
    @taroff #15643 11:33 AM, 01 Jun 2017
    работает. В доке речь про последние 100 блоков. Про 100 строк ничего не написано.
  • https://t.me/clickhouse_ru
    @emtsptth #15644 11:34 AM, 01 Jun 2017
    Да верно.. Спасибо
  • https://t.me/clickhouse_ru
    @megachel ↶ Reply to #15641 #15645 11:35 AM, 01 Jun 2017
    1 июня — детский логотип на Яндексе

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

  • @alexolaf ↶ Reply to #15628 #15646 11:38 AM, 01 Jun 2017
    Что значит делать нечего ? Есть более эффективные хранилища ? Или кх будет падать ? Тормозить при 5 rps ?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #15647 11:39 AM, 01 Jun 2017
    Это значит, что Кликхаус не проектировался для подобного и не даст никаких преимуществ против варианта "положить все в мускул"
  • https://t.me/clickhouse_ru
    @pavel_odintsov #15648 11:39 AM, 01 Jun 2017
    тормозить не будет, падать не будет
  • @alexolaf #15649 11:39 AM, 01 Jun 2017
    Это обоснованное утверждение или просто мнение ?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #15650 11:40 AM, 01 Jun 2017
    это мнение основанное на базовом понимании дизайна column ориентированных БД и небольшом опыте эксплутации CH в случае когда данные в формате, который CH обрабатывает хорошо
  • https://t.me/clickhouse_ru
    @bezyury ↶ Reply to #15646 #15651 11:41 AM, 01 Jun 2017
    logstash+kibana+elasticsearch
  • @alexolaf ↶ Reply to #15651 #15652 11:41 AM, 01 Jun 2017
    В чем преимущество ?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #15653 11:42 AM, 01 Jun 2017
    именно так, ELK просто создана для такого
  • https://t.me/clickhouse_ru
    @bezyury #15654 11:42 AM, 01 Jun 2017
    оно создавалась для этого
  • https://t.me/clickhouse_ru
    @pavel_odintsov #15655 11:42 AM, 01 Jun 2017
    а кликхаус не создавался))))
  • @alexolaf #15656 11:42 AM, 01 Jun 2017
    Оракл например для всего создавался, но тормозить везде ему это не мешает.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #15657 11:43 AM, 01 Jun 2017
    это офтоп, CH - это не "обычная субд"
  • https://t.me/clickhouse_ru
    @pavel_odintsov #15658 11:43 AM, 01 Jun 2017
    это узко-специализированная СУБД
  • @alexolaf #15659 11:43 AM, 01 Jun 2017
    Да, отлично она заточена под то, что данные только вставляются.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #15660 11:43 AM, 01 Jun 2017
    нет, опять нет.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #15661 11:44 AM, 01 Jun 2017
    это не причина, это следствие
  • @alexolaf #15662 11:44 AM, 01 Jun 2017
    Павел, давайте начнем с простого. Вы разработчик кх ?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #15663 11:44 AM, 01 Jun 2017
    нет, я его пользователь
  • @alexolaf #15664 11:44 AM, 01 Jun 2017
    Вы изучали его код ?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #15665 11:44 AM, 01 Jun 2017
    который внимательно прочитал документацию и имеет пару баз в продакшене
  • @alexolaf #15666 11:45 AM, 01 Jun 2017
    Понятно. Значит просто мнение.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #15667 11:45 AM, 01 Jun 2017
    я это изначально сказал, выше
  • @alexolaf #15668 11:46 AM, 01 Jun 2017
    Спасибо за него. Но я бы хотел услышать обоснованное мнение по моему вопросу. Которое базируется на фактах а не на базовом понимании колоночных субд.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #15669 11:49 AM, 01 Jun 2017
    Яндекс открывает ClickHouse

    Сегодня внутренняя разработка компании Яндекс — аналитическая СУБД ClickHouse, стала доступна каждому. Исходники опубликованы на GitHub под лицензией Apache 2.0.

  • https://t.me/clickhouse_ru
    @pavel_odintsov #15670 11:49 AM, 01 Jun 2017
    Если вам нужно просто хранить логи, у вас есть много вариантов. Вы можете загружать логи в Hadoop, анализировать их с помощью Hive, Spark или Impala. В этом случае вовсе не обязательно использовать ClickHouse. Всё становится сложнее, если вам нужно выполнять запросы в интерактивном режиме по неагрегированным данным, поступающим в систему в реальном времени. Для решения этой задачи, открытых технологий подходящего качества до сих пор не существовало.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #15671 11:49 AM, 01 Jun 2017
    этого достаточно, как ответ разработчиков?
  • https://t.me/clickhouse_ru
    @zukrain #15672 11:50 AM, 01 Jun 2017
    Вопрос в количестве записей логов. Профит вы будете получать в случае множества записей. Например если льете логи доступа и разбиваете на нужные колонки для хранения в КХ миллион событий в день. Тогда дальнейший анализ или аналитика будет выполняться Очень Быстро.
    Если логов мало, то смысл КХ теряется
  • @alexolaf #15673 11:50 AM, 01 Jun 2017
    У меня ведь другой вопрос был.
  • @alexolaf #15674 11:52 AM, 01 Jun 2017
    Меня больше интересует сколько рпс можно ожидать ( при заданном сайзинге серверов) на вставку данных. Анализ логов будет ограничен только выборкой по нескольким полям. Никаких группировок и тп не требуется. Время на выполнение запросов на чтение достаточно "разумное для ожидания" может составлять и минуты.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #15674 #15675 11:53 AM, 01 Jun 2017
    1 реквест в секунду, расчитывайте на это
  • @alexolaf #15676 11:54 AM, 01 Jun 2017
    Это для какого сервера ? Откуда взята такая оценка ?
  • https://t.me/clickhouse_ru
    @kshvakov #15677 11:55 AM, 01 Jun 2017
    Потому, что в CH запиь не меряется в рпс
  • https://t.me/clickhouse_ru
    @kshvakov #15678 11:55 AM, 01 Jun 2017
    нужно вставлять редко, но много
  • https://t.me/clickhouse_ru
    @pavel_odintsov #15679 11:55 AM, 01 Jun 2017
    а скорее в размере батча, который, желательно в тащах штук строк измеряется
  • @alexolaf #15680 11:56 AM, 01 Jun 2017
    Ок, уже лучше
  • https://t.me/clickhouse_ru
    @kshvakov #15681 11:56 AM, 01 Jun 2017
    батчи в несколько десятков/сотен тысяч строк в секунду - это норм
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #15674 #15682 11:57 AM, 01 Jun 2017
    Зависит и от сложности вставки
  • @alexolaf #15683 11:57 AM, 01 Jun 2017
    Что значит сложность вставки ?
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #15683 #15684 11:58 AM, 01 Jun 2017
    Я писал графитные данные, сразу в бинарном формате. Это string, float64, int 32, date
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #15683 #15685 11:58 AM, 01 Jun 2017
    чем больше колонок и данных в них тем медленнее
  • https://t.me/clickhouse_ru
    @hagen1778 #15686 11:58 AM, 01 Jun 2017
    У меня есть опыт записи логов с приложений в кх. Стр-ра примерно следующая: Date, Time, appName, Type, Message, где Message json в несколько kb. Логи собираются в батчере и пушаться по достижению лимита или таймаута. Вставка примерно 20к/с на 16core, 32gb ram. Существенной нагрузки сервер не испытывает. Но были проблемы с выводом последних сообщений из таблицы в графане, т.к. колонка Message имеет огромный размер. имхо
  • https://t.me/clickhouse_ru
    @Civiloid #15687 11:59 AM, 01 Jun 2017
    Таких строк я впихивал 2.5млн в секунду, батчами по примерно 250 тысяч.
  • @alexolaf ↶ Reply to #15686 #15688 11:59 AM, 01 Jun 2017
    Ура !
  • https://t.me/clickhouse_ru
    @Civiloid #15689 11:59 AM, 01 Jun 2017
    Но на 16 ядерном цпу, 128гб рам
  • @alexolaf #15690 11:59 AM, 01 Jun 2017
    В смысле задача аналогичная
  • @alexolaf #15691 12:00 PM, 01 Jun 2017
    20к/с это чего ?
  • @alexolaf #15692 12:00 PM, 01 Jun 2017
    Строк или запросов с батчами ?
  • https://t.me/clickhouse_ru
    @Civiloid #15693 12:00 PM, 01 Jun 2017
    Кх по структуре оптимизирован под обработку хорошо структурированных данных с разумно маленькими полями
  • https://t.me/clickhouse_ru
    @Civiloid #15694 12:00 PM, 01 Jun 2017
    10 полей по 1кб ему лучше чем 1 поле на 10кб
  • https://t.me/clickhouse_ru
    20 тыс строк в секунду. Соглашусь с отсальными, что этот кейс не самым лучшим образом подходит для кх. Нужно как-можно лучше структурировать логи
  • @alexolaf #15696 12:02 PM, 01 Jun 2017
    Роман батчер самописное что то?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #15697 12:03 PM, 01 Jun 2017
    было дело, такое еще умела RethinkDB, которая как монга, но сильно легче
  • https://t.me/clickhouse_ru
    @pavel_odintsov #15698 12:04 PM, 01 Jun 2017
    вот там можно было без индексаци и прочего трамбовать довольно много данных, но я до продакшена ее не дотаищил, а потом они и сами свернули лавочку
  • @shinebell #15699 12:04 PM, 01 Jun 2017
    а что, закрыли разработку ?
  • @alexolaf #15700 12:04 PM, 01 Jun 2017
    Рефинк да
  • https://t.me/clickhouse_ru
    да, собирает записи в один запрос и по достижению лимита записей или по таймауту отправляет запрос в кх
  • https://t.me/clickhouse_ru
    асболютно верно, писать json не самая лучшая идея
  • @alexolaf #15703 12:07 PM, 01 Jun 2017
    К сожалению, такая специфика приложения
  • https://t.me/clickhouse_ru
    @pavel_odintsov #15704 12:08 PM, 01 Jun 2017
    а можно уплотнить json в messagepack
  • https://t.me/clickhouse_ru
    @pavel_odintsov #15705 12:08 PM, 01 Jun 2017
    и сжать его эдак раза в полтора, это конечно не решит проблемы с 20кб
  • @alexolaf #15706 12:08 PM, 01 Jun 2017
    Сериализовать объект как угодно можно
  • @alexolaf #15707 12:09 PM, 01 Jun 2017
    Но это не решает проблемы реляционного преобразования
  • @ztlpn #15708 12:09 PM, 01 Jun 2017
    А какого вида будут запросы? Раз группировок не предвидится.
  • @alexolaf #15709 12:10 PM, 01 Jun 2017
    Просто выбрать эти самые сообщения по заданным критериям
  • https://t.me/clickhouse_ru
    @DOSuvorov #15710 12:12 PM, 01 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @DOSuvorov #15711 12:13 PM, 01 Jun 2017
    Привет, есть ли возможность подключить SPSS Modeller к ClickHouse?
  • @enetrebko #15712 12:17 PM, 01 Jun 2017
    Joined.
  • @ztlpn #15713 12:18 PM, 01 Jun 2017
    Проблема с жирными столбцами в том, что разреженный индекс с ними плохо справляется. Если взять дефолтное значение гранулярности 8192, то будет вообще плохо - в худшем случае для чтения одного сообщения придётся зачитать 20кб * 8192 = примерно 160МБ данных (с диска, конечно, меньше, но ведь их ещё и разжимать...) Можно взять гранулярность поменьше, но тогда вырастет размер индекса, а он резидентный в памяти.
  • @alexolaf #15714 12:19 PM, 01 Jun 2017
    Угу этого я и опасался
  • @alexolaf #15715 12:20 PM, 01 Jun 2017
    Есть какието эмпирики оценки объема индекса к гранулярности ?
  • @ztlpn #15716 12:22 PM, 01 Jun 2017
    Чтобы прикинуть, можно посчитать сумму размеров полей индекса * количество строк / гранулярность и округлить вверх до ближайшей степени двойки
  • @ztlpn #15717 12:22 PM, 01 Jun 2017
    Ну или заглянуть в system.parts
  • @ztlpn #15718 12:23 PM, 01 Jun 2017
    столбец primary_key_bytes_in_memory_allocated
  • https://t.me/clickhouse_ru
    @weekens #15719 01:32 PM, 01 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @weekens #15720 01:33 PM, 01 Jun 2017
    Привет, коллеги! А как из count() возвращать 0, если нет совпадений?
  • https://t.me/clickhouse_ru
    @weekens #15721 01:33 PM, 01 Jun 2017
    How to make ClickHouse count() function return 0 in case of zero matches?

    Our task is to run a batch of ~20000 queries in ClickHouse and store results into a CSV file. Each query is a count() aggregation returning a single number. We do it like this: ./generate_queries...

  • @TanVD #15722 01:37 PM, 01 Jun 2017
    А никто не сталкивался с проблемой " DB::Exception: Cannot read all data in NativeBlockInputStream."? При записи в MaterializedVieew
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #15720 #15723 01:48 PM, 01 Jun 2017
    про это есть тикет
  • https://t.me/clickhouse_ru
    @weekens #15724 01:55 PM, 01 Jun 2017
    👍
  • https://t.me/clickhouse_ru
    @weekens #15725 01:58 PM, 01 Jun 2017
    Что-то не нашёл на Github, а ссылочкой не поделитесь?
  • https://t.me/clickhouse_ru
    @citronix #15726 02:11 PM, 01 Jun 2017
    Коллеги, а есть поддержка Liquibase для Clickhouse ?
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #15725 #15727 02:14 PM, 01 Jun 2017
    что-то тоже не нашел. хотя задача уже успела стать классической.
  • https://t.me/clickhouse_ru
    @weekens #15728 02:15 PM, 01 Jun 2017
    Приятно, что мы не одни.
  • @DigDiver ↶ Reply to #15713 #15729 02:36 PM, 01 Jun 2017
    Тут немного не понятно - индекс одной партиции должен влезать в память или всех одновременно?
  • @ztlpn #15730 02:36 PM, 01 Jun 2017
    Всей таблицы
  • @DigDiver #15731 02:39 PM, 01 Jun 2017
    Спасибо. А что произойдет, если размер индекса превысит размер памяти? Сервер упадет?
  • @DigDiver #15732 02:40 PM, 01 Jun 2017
    столбец primary_key_bytes_in_memory_allocated показывает размер индекса партиции или всей таблицы?
  • https://t.me/clickhouse_ru
    @inv2004 #15733 02:41 PM, 01 Jun 2017
    Вопрос: а хранимые функции будут или лучше про это забыть?
  • @ztlpn ↶ Reply to #15732 #15734 02:42 PM, 01 Jun 2017
    Размер индекса куска (парта) (небольшая терминологическая путаница - партиция это всё-таки один месяц) - всё-таки таблица system.parts :) Для всей таблицы надо просуммировать.
  • @ztlpn #15735 02:43 PM, 01 Jun 2017
    Интересно, надо ли учитывать неактивные куски
  • @zueve #15736 03:20 PM, 01 Jun 2017
    Joined.
  • @khivin #15737 03:22 PM, 01 Jun 2017
    Привет! скажите, а кто-нибудь пытался запускать клик-хаус в кластерном режиме, используя вместо zookeeper что-то иное?
    например, etcd с оберткой с эмуляцией zookeeper api?
    как быть, если ничего на яве использовать нельзя в проекте?
  • https://t.me/clickhouse_ru
    @maxlapshin #15738 03:22 PM, 01 Jun 2017
    Техдир обещает распять?
  • https://t.me/clickhouse_ru
    @dishsh #15739 03:23 PM, 01 Jun 2017
    А то и раз шесть ;)
  • @TanVD #15740 03:23 PM, 01 Jun 2017
    Привет :) А ни у кого не возникало проблем с groupArrayUniq(...) от Tuple
  • @khivin #15741 03:23 PM, 01 Jun 2017
    хуже)
  • @zueve #15742 03:26 PM, 01 Jun 2017
    Всем привет! На сколько подходит кликхаус для систем с большим колличеством запросов на чтение?
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #15740 #15743 03:26 PM, 01 Jun 2017
    а что с ним?
  • @TanVD #15744 03:27 PM, 01 Jun 2017
    Пытаюсь сделать groupArrayUniq от нескольких колонок объединённых в tuple. Получаю DB::Exception: Cannot read all data in NativeBlockInputStream при чтении
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #15737 #15745 03:28 PM, 01 Jun 2017
    Тут кто то пробовал, не работает ничего кроме зукипера
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #15737 #15746 03:28 PM, 01 Jun 2017
    Кх использует функционал ЗК которого нет в zetcd
  • @TanVD #15747 03:29 PM, 01 Jun 2017
    Сам groupArrayUniq в MaterializedView вставляется
  • @khivin ↶ Reply to #15745 #15748 03:32 PM, 01 Jun 2017
    спасибо, Владимир
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #15748 #15749 03:33 PM, 01 Jun 2017
    multiop · Issue #38 · coreos/zetcd

    ZK's transactions. Haven't seen it used in the wild.

  • https://t.me/clickhouse_ru
    @Civiloid #15750 03:34 PM, 01 Jun 2017
    Но вообще Джава в проде это не так больно
  • https://t.me/clickhouse_ru
    @maxlapshin #15751 03:35 PM, 01 Jun 2017
    А где можно почитать: что такое зукипер, чем он отличается от zetcd?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @Civiloid #15753 03:36 PM, 01 Jun 2017
    Zetcd реализация протоеола зукипера поверх etcd
  • @ztlpn #15754 03:40 PM, 01 Jun 2017
    Кстати, пару дней назад появился пулреквест в zetcd, который вроде бы добавляет поддержку multiop (то, чего не хватало)
  • @ztlpn #15755 03:40 PM, 01 Jun 2017
    Желающие могут протестировать, вдруг не упадёт :)
  • @khivin #15756 03:49 PM, 01 Jun 2017
    интересно, гляну. спасибо
  • https://t.me/clickhouse_ru
    @Civiloid #15757 03:52 PM, 01 Jun 2017
    Тут дело в том что по производительности zetcd будет хуже
  • https://t.me/clickhouse_ru
    @Civiloid #15758 03:52 PM, 01 Jun 2017
    Правда вопрос в том упретесь ли вы в нее
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #15757 #15759 04:02 PM, 01 Jun 2017
    А есть бенчмарки?
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #15759 #15760 04:05 PM, 01 Jun 2017
    Я где то находил, zetcd был в 2-3 раза медленнее
  • https://t.me/clickhouse_ru
    @Civiloid #15761 04:05 PM, 01 Jun 2017
    После этого я для себя решил что в нем как то смысла пока нет
  • @Sobikmolodec #15762 05:56 PM, 01 Jun 2017
    Joined.
  • @Sobikmolodec #15763 05:58 PM, 01 Jun 2017
    Добрый вечер. Передаю через GET запрос запрос, содержащий regexp. Символы \\ URL-энкодятся и регэксп не срабатывает. Не подскажите, что делать?
  • https://t.me/clickhouse_ru
    @yuyugame #15764 06:45 PM, 01 Jun 2017
    Для загрузки данных из умирающей influx в КХ надо из csv файла со строками типа:
    timestamp,tag, A=<значение>
    ...
    timestamp, tag, B=<значение>
    ...
    положить данные в таблицу КХ со структурой:
    (timestamp, tag, A, B)
    Засада в том, что строки с A и B для совпадающих значений timestamp,tag разбросаны случайно по csv файлу. gzip-нутых csv данных порядка 50-100 гигов.

    Как лучше это сделать?
    Пока надумал такое :
    1) grep A < file | clickhouse-local -S ... -if CSV -q 'SELECT ... format CSV ' | clickhouse-client —query="INSERT INTO DB.tableA FORMAT CSV"
    2) grep B < file | clickhouse-local -S ... -if CSV -q 'SELECT ... format CSV' | clickhouse-client —query="INSERT INTO DB.tableB FORMAT CSV"
    3) INSERT INTO FinalTable FROM SELECT timestamp, tag, A, B FROM tableA INNER JOIN tableB USING timestamp, tag
    4) DROP table tableA; DROP table tableB

    Или есть более оптимальный КХ-way способ?
  • https://t.me/clickhouse_ru
    @soyayaos ↶ Reply to #15764 #15765 08:11 PM, 01 Jun 2017
    linux group by date column and show count

    i have a CSV file that looks like this: aaa bbb ccc, 2015-01-01 fff ggg ddd, 2015-01-01 ggg hhh sss, 2015-01-02 ddd fff aaa, 2015-01-03 sss kkk www, 2015-01-03 i want to group by the second field...

  • 02 June 2017 (159 messages)
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #15767 07:19 AM, 02 Jun 2017
    Добрый день подскажите пожалуйста, я сделал бэкапирование данных в кх методом копирования data папки во процессе работающего сервера, по размеру бэкапов вижу что они отличаются по размерам такое чувство что не все файлы копируются и включаются в архив - возможно по причине того что некоторые файлы не доступны для копирования т.к. используются сервером, но не уверен. Был бы рад любой критике
  • @lexa_work #15768 07:25 AM, 02 Jun 2017
    т.е. процессе clickhouse-server пишет/изменяет файлы, а вы в это время копируете их в другое место через обычные механизмы вроде "cp"?
  • @lexa_work #15769 07:25 AM, 02 Jun 2017
    и ожидаете, что при восстановлении у вас будут нормальные данные?
  • @lexa_work #15770 07:26 AM, 02 Jun 2017
    конечно схема mergetree - это не изменение "in place", но я бы все равно не надеялся на удачное восстановление из таких бэкапов
  • @DenysLamanov #15771 07:27 AM, 02 Jun 2017
    а как насчет ФС со snapshot?
  • https://t.me/clickhouse_ru
    Какого типа a и b и есть ли какие-нибудь характеристики по их физической близости друг к другу на диске?
  • https://t.me/clickhouse_ru
    @maxlapshin #15773 07:30 AM, 02 Jun 2017
    Я сегодня первый раз столкнулся с тем, что кликхаус прекратил запрос со словами: 9g is too much for query, stop it
  • @iamigor #15774 07:31 AM, 02 Jun 2017
    max_memory_usage или как-то так
  • https://t.me/clickhouse_ru
    @maxlapshin #15775 07:31 AM, 02 Jun 2017
    Я скорее про то, что считать нормальным
  • https://t.me/clickhouse_ru
    @maxlapshin #15776 07:31 AM, 02 Jun 2017
    Пока что у меня под это рабоает только один сервер с 32 гб памяти, очевидно надо просить хостера расширять
  • https://t.me/clickhouse_ru
    @maxlapshin #15777 07:32 AM, 02 Jun 2017
    Какие разумные цифры тут ставить? 16 гигов на запрос? Или лучше попробовать пооптимизировать запрос?
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #15767 #15778 07:37 AM, 02 Jun 2017
    я вроде где-то в этом канальчике видел советы делать просто select * fromat RowBinary в файл или что-то в таком духе
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #15767 #15779 07:37 AM, 02 Jun 2017
    Консистентность бекапов проверяли? Далеко не факт что такой бекап нормально будет ресториться.
    Как по мне, лучше выделить сервак, на него сделать реплики и уже на них FREEZE PARTITION.
    Подробнее тут: https://clickhouse.yandex/docs/ru/query_language/queries.html#id5
  • https://t.me/clickhouse_ru
    что-то типо того. но на счет пишет сомневаюсь но на выходе в облаке вижу разного размера бэкапы
  • https://t.me/clickhouse_ru
    привет. этот способ хорошо, но что будет если я буду селектит в файл 1 млрд данных это будет по времени наверное намного дольше чем копирование?
  • https://t.me/clickhouse_ru
    @yuyugame ↶ Reply to #15772 #15782 08:02 AM, 02 Jun 2017
    a и b - UInt64 (счётчики пакетов и байтов). Про близость строк с a и b и одинаковым набором остальных полей (тегов и timestamp) ничего определённого сказать нельзя. Насколько я понимаю это просто тупой дамп из key-value storage в потрохах InfluxDB. Маловероятно, что там будет какая-то гарантированная упорядоченность.

    Теоретически можно задачку решить чисто линуксовыми тулзами - слиянием через paste двух потоков (grep A|sort ...) и (grep B | sort ...), но я не пробовал и не знаю, как поведёт себя sort на многогигабайтном текстовом файле.

    Вот пример куска исходного файла:
    device_srcAS_nexthop_interfaces,device=10.146.0.1,iface_in=0,iface_out=22,nexthop=149.6.168.201,src_as=0 bytes=960000i 1488480600000000000
    device_srcAS_nexthop_interfaces,device=10.146.0.1,iface_in=0,iface_out=22,nexthop=149.6.168.201,src_as=0 bytes=960000i 1488481200000000000
    device_srcAS_nexthop_interfaces,device=10.146.0.1,iface_in=0,iface_out=22,nexthop=149.6.168.201,src_as=0 packets=10000i 1488479100000000000
    device_srcAS_nexthop_interfaces,device=10.146.0.1,iface_in=0,iface_out=22,nexthop=149.6.168.201,src_as=0 packets=20000i 1488479400000000000
    device_srcAS_nexthop_interfaces,device=10.146.0.1,iface_in=0,iface_out=22,nexthop=149.6.168.201,src_as=0 packets=10000i 1488480600000000000
  • https://t.me/clickhouse_ru
    реплики не планируем пока использовать. FREEZE PARTITION создает ведь в папку detached партишины? может оттуда их копировать?
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #15782 #15784 08:15 AM, 02 Jun 2017
    Я думал где-то с месяц назад написать конвертер из InfluxDB в CH. Имя метрики - таблица. Но пока застопорилось на том что кажется надо свою библиотечку для КХ писать.
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #15783 #15785 08:28 AM, 02 Jun 2017
    О том и речь. Отдельный сервер с репликами чтобы не аффектить на продуктивный кластер.
  • https://t.me/clickhouse_ru
    я думаю, что стоит попробовать написать код, который будет читать из инфлюкса два синхронизированных по времени стрима для A и B и их заливать в кликхаус
  • https://t.me/clickhouse_ru
    @maxlapshin #15787 09:02 AM, 02 Jun 2017
    другой вариант могу предложить: сделать собственный сторадж в котором строки вида: UTC:Int32, A:Int64, B:Int64 и пройтись по нему, перезаписав inplace
  • https://t.me/clickhouse_ru
    @maxlapshin #15788 09:02 AM, 02 Jun 2017
    это вот два варианта, которые могу посоветовать
  • https://t.me/clickhouse_ru
    @yuyugame ↶ Reply to #15784 #15789 09:08 AM, 02 Jun 2017
    Для КХ вроде достаточно связки "clickhouse-local | clickhouse-client". У меня засада в кривости Influx и его cmdline клиентов - вроде бы простой select * from somemeasurement where time > t1 and time < t2 легко выжирает всю память (50 свободных гигов не хватает). Пришлось influx_inspect export использовать, а он, как оказалось, поля (fields) в отдельные строки дампа выводит 😞 Что-то специально писать не хочется - задача миграции разовая.
  • https://t.me/clickhouse_ru
    @maxlapshin #15790 11:30 AM, 02 Jun 2017
    Я с вопросом про размер query. Это вообще разумно поднимать max query memory до 20 или 30 гигабайт? Т.е. я задрать могу, а насколько это оправдано? Может я просто не так пользуюсь и это уже неправильное использование инструмента?
  • https://t.me/clickhouse_ru
    @mochalygin #15791 11:43 AM, 02 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @xsikor #15792 11:53 AM, 02 Jun 2017
    @maxlapshin возможно вы не совсем правильно используете кликхаус? Если был инфлюкс, где нормальной аграгации нету - а вы перешли на кликхаус, который заточен под агрегацию (т.е. не на стороне софта, а прямыми sql вытягивать данные) вот здесь уже нужно или лимитировать, или добавлять максимально доступное ОЗУ исходя из того, сколько может быть одновременных запросов т.к. при переполнении - падает весь демон, а не выдает ошибку для запроса
  • https://t.me/clickhouse_ru
    @xsikor #15793 11:55 AM, 02 Jun 2017
    Не знаю как у кликхауса, но к примеру в касандре есть потоковое чтение что в вашем случае очень может помочь, т.е. оперативная память не будет сильно забиваться: прочитал->отдал, но с касандры только сырые данные можно будет получить + очень критично к параметрам WHERE по порядку выборки, или использовать ALLOW FILTERING и терять в скорости
  • https://t.me/clickhouse_ru
    @kirilly4 #15794 11:56 AM, 02 Jun 2017
    Всем добрый день!
    Подскажите, можно ли корректно удалить партицию из materialized view вида MergeTree?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #15794 #15795 12:07 PM, 02 Jun 2017
    Ну да, вроде так и удаляется как у обычной таблицы на MergeTree
  • https://t.me/clickhouse_ru
    @kirilly4 #15796 12:08 PM, 02 Jun 2017
    Говорит, Method dropPartition is not supported by storage MaterializedView.
  • https://t.me/clickhouse_ru
    @kirilly4 #15797 12:09 PM, 02 Jun 2017
    Если указать .inner, ругается на синтаксис
  • https://t.me/clickhouse_ru
    не уверен, что вас понял, но у меня именно агрегация в SQL.
  • https://t.me/clickhouse_ru
    @maxlapshin #15799 12:16 PM, 02 Jun 2017
    я беру хиты за день и группирую все, которые выглядят как от одного клиента: group by ip, streamname, useragent и потом сгруппированное сортирую и выдаю
  • https://t.me/clickhouse_ru
    @orantius #15800 12:19 PM, 02 Jun 2017
    и сколько у вас разных (ip, streamname,useragent) ?
  • https://t.me/clickhouse_ru
    @orantius #15801 12:20 PM, 02 Jun 2017
    и какая средняя длина у строк
  • https://t.me/clickhouse_ru
    @loqutus #15802 12:39 PM, 02 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @mavlyutov_official #15803 12:40 PM, 02 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @iMissile #15804 12:55 PM, 02 Jun 2017
    Коллеги, подскажите, пожалуйста. В локальной сети на выделенную машину поставил CH в дефолтовых настройках. Как подключиться с dev машины к CH через Tabix в реализации "без инсталляции", если такое вообще возможно. Перепробовал все, коннекта нет
  • https://t.me/clickhouse_ru
    @proller #15805 12:57 PM, 02 Jun 2017
    с дефолтными настройками подключиться из сети нельзя.
  • https://t.me/clickhouse_ru
    @proller #15806 12:57 PM, 02 Jun 2017
    надо править listen_host
  • https://t.me/clickhouse_ru
    @iMissile #15807 01:02 PM, 02 Jun 2017
    я комментарии убрал
  • https://t.me/clickhouse_ru
    @iMissile #15808 01:03 PM, 02 Jun 2017
    <http_server_default_response>... понял, сейчас попробую
  • https://t.me/clickhouse_ru
    всего их около 2 млн, разных где-то в три раза меньше. Ширина думаю под килобайт
  • https://t.me/clickhouse_ru
    @xsikor #15810 01:07 PM, 02 Jun 2017
    Как-то странно, что отжирает настолько много памяти
  • https://t.me/clickhouse_ru
    @maxlapshin #15811 01:09 PM, 02 Jun 2017
    ок, разберусь ещё
  • https://t.me/clickhouse_ru
    @xsikor #15812 01:15 PM, 02 Jun 2017
    @maxlapshin вот пример по нашей базе.
    SELECT *
    FROM
    (
    SELECT
    COUNT() AS c,
    UserIP
    FROM impressions
    WHERE EventDate >= '2017-05-20'
    GROUP BY UserIP
    ORDER BY c DESC
    )
    LIMIT 5

    5 rows in set. Elapsed: 1.612 sec. Processed 145.22 million rows, 1.93 GB (90.09 million rows/s., 1.20 GB/s.)
  • https://t.me/clickhouse_ru
    @xsikor #15813 01:15 PM, 02 Jun 2017
    ОЗУ скушало копейки
  • https://t.me/clickhouse_ru
    @xsikor #15814 01:19 PM, 02 Jun 2017
    Если начинать добавлять в связку GROUP BY - после этого растёт потребление памяти, что в принципе логично, но не настолько критично как у вас. Возможно получается всё же слишком много записей? Стоит попробовать как-то групировать пользователей сразу, к примеру генерировать какой-то fingerprint
  • https://t.me/clickhouse_ru
    @iMissile #15815 01:25 PM, 02 Jun 2017
    поставил <listen_host>::</listen_host> и рестартовал. но сервер через tabix все равно не доступен
  • https://t.me/clickhouse_ru
    @iMissile #15816 01:25 PM, 02 Jun 2017
    может еще что надо сделать?
  • https://t.me/clickhouse_ru
    @rheinx #15817 01:38 PM, 02 Jun 2017
    netstat -natp | grep LISTEN
  • https://t.me/clickhouse_ru
    хорошо, я попробую разобраться с тем, что я делаю не так
  • https://t.me/clickhouse_ru
    @soyayaos ↶ Reply to #15816 #15820 01:47 PM, 02 Jun 2017
    Или посмотреть что говорит curl -i http://host:port
  • https://t.me/clickhouse_ru
    @iMissile #15821 01:49 PM, 02 Jun 2017
    хм, сказал Ок
  • https://t.me/clickhouse_ru
    @iMissile #15822 01:49 PM, 02 Jun 2017
    я пытаюсь зайти, используя http://ui.tabix.io/#/login
  • https://t.me/clickhouse_ru
    @rheinx #15823 01:53 PM, 02 Jun 2017
    Вы curl на сервере делали или на своей тачке?
  • https://t.me/clickhouse_ru
    @iMissile #15824 01:55 PM, 02 Jun 2017
    curl на сервере с использованием внешнего IP, на локальной win машине открыл браузером
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #15824 #15825 01:56 PM, 02 Jun 2017
    Браузером "Ок" увидели?
  • https://t.me/clickhouse_ru
    @iMissile #15826 01:56 PM, 02 Jun 2017
    да
  • https://t.me/clickhouse_ru
    @rheinx #15827 01:56 PM, 02 Jun 2017
    В tabbix указываете с портом или без?
  • https://t.me/clickhouse_ru
    @rheinx #15828 01:56 PM, 02 Jun 2017
    Порт у вас стандартный?
  • https://t.me/clickhouse_ru
    @iMissile #15829 01:56 PM, 02 Jun 2017
    с портом
  • https://t.me/clickhouse_ru
    @iMissile #15830 01:57 PM, 02 Jun 2017
    8123
  • https://t.me/clickhouse_ru
    @rheinx #15831 01:57 PM, 02 Jun 2017
    А что в консоли браузера при подключении через tabbix?
  • https://t.me/clickhouse_ru
    @iMissile #15832 01:58 PM, 02 Jun 2017
    Хост: http://10.0.0.234:8123, login default, pass пустой.... ВЫдает "ошибка доступа"
  • https://t.me/clickhouse_ru
    @iMissile #15833 01:59 PM, 02 Jun 2017
    Direct CH
  • https://t.me/clickhouse_ru
    @rheinx #15834 01:59 PM, 02 Jun 2017
    В консоли, не на странице
  • https://t.me/clickhouse_ru
    @rheinx #15835 02:00 PM, 02 Jun 2017
    В хроме под виндой открывается по F12 вроде
  • https://t.me/clickhouse_ru
    @iMissile #15836 02:01 PM, 02 Jun 2017
    /#/login:1 XMLHttpRequest cannot load http://10.0.0.234:8123/s1/query.
  • https://t.me/clickhouse_ru
    @iMissile #15837 02:02 PM, 02 Jun 2017
    OPTIONS http://10.0.0.234:8123/s1/query 501 (Not Implemented)
  • https://t.me/clickhouse_ru
    @iMissile #15838 02:02 PM, 02 Jun 2017
    /#/login:1 XMLHttpRequest cannot load http://10.0.0.234:8123/s1/query. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://ui.tabix.io' is therefore not allowed access. The response had HTTP status code 501.
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #15838 #15839 02:02 PM, 02 Jun 2017
    Вот оно
  • https://t.me/clickhouse_ru
    @rheinx #15840 02:03 PM, 02 Jun 2017
    Ребзя, а как это в CH настраивается? Cors в смысле
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #15809 #15841 02:06 PM, 02 Jun 2017
    а агрегируете как, суммы или уники?
    может можно группироать по хешам фиксированной ширины, а потом джойнить к ним исходные строки.
  • https://t.me/clickhouse_ru
    @maxlapshin #15842 02:07 PM, 02 Jun 2017
    SELECT
    ip, name, type, user_id, country, referer, useragent,
    dictGetString('useragents','browser_type',tuple(useragent))
    AS ua_browser_type,
    sum(deleted_at - created_at) AS view_time,
    um(bytes_sent) AS bytes_sent,
    min(toUnixTimestamp(created_at)) AS created_at_,
    max(toUnixTimestamp(deleted_at)) AS deleted_at_,
    min(id) AS id_,
    count(distinct id) AS count
    FROM sessions
    WHERE
    account_id=19446
    AND created_at_date='2017-06-02'
    AND created_at > (toDateTime(1495148194))
    GROUP BY
    ip, name, type, user_id, country, referer, useragent,
    created_at_date
    ORDER BY created_at_ asc
    LIMIT 200
  • https://t.me/clickhouse_ru
    @maxlapshin #15843 02:09 PM, 02 Jun 2017
    вот, даже без вложенного селекта
  • https://t.me/clickhouse_ru
    @maxlapshin #15844 02:12 PM, 02 Jun 2017
    я группирую всё, что похожее и вот оно не влезает в 9 гигабайт
  • https://t.me/clickhouse_ru
    @orantius #15845 02:19 PM, 02 Jun 2017
    count(distinct id) =uniq(id)
  • @DigDiver #15846 02:19 PM, 02 Jun 2017
    referer и useragent - длинные строки. Используйте hash функции, намного сэкономите памяти при Group By
  • https://t.me/clickhouse_ru
    @orantius #15847 02:20 PM, 02 Jun 2017
    т.е. тяжелый агрегат, тяжелые ключи. миллион кардинальность. может, так и должно быть.
  • @DigDiver #15848 02:22 PM, 02 Jun 2017
    была где-то ссылка здесь на то, как делать Group By, если не влезает в память. Поищите.
  • @DigDiver #15849 02:22 PM, 02 Jun 2017
    GROUP BY и Memory limit exceeded
  • @DigDiver #15850 02:23 PM, 02 Jun 2017
    Link

    Приглашаем всех, кто анализирует большие объёмы данных, на встречу, посвящённую СУБД ClickHouse. СУБД ClickHouse, разработанная в Яндексе для нужд Яндекс.Метрики, почти сразу стала использоваться для решения самых разных аналитических задач. ClickHouse работает быстрее всех известных нам СУБД и легко обрабатывает петабайты данных. Это делает СУБД незаменимым инструментом в руках аналитика. Сейчас ClickHouse стала открытым программным обеспечением, так что её могут свободно использовать все. На встрече будет два доклада. Аналитик Яндекса Мария Рыжова покажет типичные задачи, которые легко решаются с помощью этой СУБД, а технический директор проекта СМИ2 Игорь Стрыхарь расскажет о созданном командой СМИ2 Tabix — графическом интерфейсе для работы с ClickHouse. После докладов пройдёт сессия вопросов и ответов. С собравшимися пообщаются аналитики Яндекса, использующие ClickHouse в самых разных сферах. Их можно будет расспросить, как эффективнее всего применять эту СУБД к конкретным задачам. Участие бесплатно…

  • https://t.me/clickhouse_ru
    @orantius #15851 02:25 PM, 02 Jun 2017
    вообще, если память у вас есть, и никому кроме себя вы не мешаете, то ставьте сколько нужно. иногда можно оценить какой у вас рост данных в этом запросе будет в ближайшие пару лет, т.е. когда этот вопрос встанет опять.
  • https://t.me/clickhouse_ru
    @maxlapshin #15852 02:28 PM, 02 Jun 2017
    да, у меня очень много строк после group by остается
  • https://t.me/clickhouse_ru
    @maxlapshin #15853 02:29 PM, 02 Jun 2017
    окей, следующий вопрос: если я задеру max_query_memory до, скажем, 24 гигабайт при том, что на сервере сейчас 32 гига памяти, кликхаус может упасть с OOM из-за этого?
  • https://t.me/clickhouse_ru
    супер, это именно мой вопрос!
  • https://t.me/clickhouse_ru
    @iMissile #15855 02:40 PM, 02 Jun 2017
    Еще вопрос есть. Как с помощью https://github.com/yandex/clickhouse-odbc подключиться к базе из R (Win)? поставил релиз 64 бит, R 64 бит. Пишу
    library(DBI)
    con <- dbConnect(odbc::odbc(),
    driver = "ClickHouse ANSI",
    # database = "default",
    uid = "default",
    #pwd = "password",
    host = "10.0.0.234",
    port=8123L
    )

    Выдает ошибку: Error: nanodbc/nanodbc.cpp:950: HY000: Cannot parse port number.
    GitHub - ClickHouse/clickhouse-odbc: ODBC driver for ClickHouse

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

  • https://t.me/clickhouse_ru
    @maxlapshin #15856 02:47 PM, 02 Jun 2017
    Ооо, group_by_overflow='any' !!
  • @DigDiver #15857 02:49 PM, 02 Jun 2017
    Вот пример, как hash позволяет уменьшить время запроса и потребление памяти:

    Запрос 1 - используем hash:

    select fromDomainHash, any(fromDomain), count() from test
    group by fromDomainHash
    order by count() desc
    format JSON

    "rows": 375,
    "statistics": {
    "elapsed": 0.026554691,
    "rows_read": 1636501,
    "bytes_read": 39930314
    }

    Второй запрос - без использования hash:

    select fromDomain, count() from test
    group by fromDomain
    order by count() desc
    format JSON

    "rows": 375,
    "statistics": {
    "elapsed": 0.024187994,
    "rows_read": 1636501,
    "bytes_read": 53022322
    }

    В первом случае памяти потребовалось в 1,35 раза меньше!
  • https://t.me/clickhouse_ru
    @maxlapshin #15858 02:51 PM, 02 Jun 2017
    а domainHash при этом надо сохранить при записи? Т.е. мне надо хранить hash(useragent) для этого?
  • @serlex777 #15859 02:54 PM, 02 Jun 2017
    Привет!
    никто не подскажет
    match(haystack, pattern)
    можно сделать icase
  • @serlex777 #15860 02:54 PM, 02 Jun 2017
    ?
  • https://t.me/clickhouse_ru
    @orantius #15861 02:57 PM, 02 Jun 2017
    хотя нет, это для like/position
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #15858 #15862 03:01 PM, 02 Jun 2017
    хранить при чтении быстрее, иначе придется читать длинную колонку и считать по ней хеши.
  • https://t.me/clickhouse_ru
    @maxlapshin #15863 03:02 PM, 02 Jun 2017
    хранить при записи в смысле?
  • https://t.me/clickhouse_ru
    @orantius #15864 03:04 PM, 02 Jun 2017
    да, сохранять при записи. например добавить колонку с default hash(domain)
  • @DigDiver #15865 03:11 PM, 02 Jun 2017
    Мы используем fieldHash Uint64 materialezed cityHash64(field)
  • https://t.me/clickhouse_ru
    @maxlapshin #15866 03:12 PM, 02 Jun 2017
    ну в любом случае надо сделать новую таблицу и туда все данные перелить, верно?
  • @DigDiver #15867 03:13 PM, 02 Jun 2017
    Не помню, почему не подошел default, а materialized сработал
  • https://t.me/clickhouse_ru
    @maxlapshin #15868 03:14 PM, 02 Jun 2017
    > Такой столбец не может быть указан при INSERT, то есть, он всегда вычисляется.
  • https://t.me/clickhouse_ru
    @maxlapshin #15869 03:14 PM, 02 Jun 2017
    а он вычисляется один раз при вставке или всегда потом при каждом обращении?
  • @DigDiver #15870 03:19 PM, 02 Jun 2017
    Судя по информации bytesRead, при вставке
  • https://t.me/clickhouse_ru
    @maxlapshin #15871 03:41 PM, 02 Jun 2017
    помогло!
  • https://t.me/clickhouse_ru
    @maxlapshin #15872 03:43 PM, 02 Jun 2017
    Итак, что у меня было.

    Запрос с group by, оставляющий очень много строк, не влезал в память.

    Я сделал alter table sessions add column ref_hash UInt64 materialized cityHash64(referer);

    и поменял с group by referer на group by ref_hash

    Теперь всё стало сильно лучше и влезает в 10 гигабайт.
  • https://t.me/clickhouse_ru
    @orantius #15873 03:48 PM, 02 Jun 2017
    а исходные рефереры ответе не нужны?
  • https://t.me/clickhouse_ru
    @maxlapshin #15874 03:50 PM, 02 Jun 2017
    неа
  • https://t.me/clickhouse_ru
    @maxlapshin #15875 03:50 PM, 02 Jun 2017
    мне надо по ним сгруппировать
  • https://t.me/clickhouse_ru
    @inv2004 ↶ Reply to #15872 #15876 03:51 PM, 02 Jun 2017
    Вот тут опять про номрмализацию строк, и у меня такая же проблема.
  • https://t.me/clickhouse_ru
    @maxlapshin #15877 03:51 PM, 02 Jun 2017
    и ещё я поменял вложенный селект с count distinct на uniqCombined((field1,field2,field3))
  • @f1yegor ↶ Reply to #15784 #15878 04:17 PM, 02 Jun 2017
    Какой таргет язык?
  • https://t.me/clickhouse_ru
    @IlyaSinelnikov #15879 04:18 PM, 02 Jun 2017
    подскажите пожалуйста какой сейчас Go коннектор к кликхаусу считается самым тру?
  • @f1yegor ↶ Reply to #15790 #15880 04:20 PM, 02 Jun 2017
    А сколько join в запросах?
  • https://t.me/clickhouse_ru
    @maxlapshin #15881 04:20 PM, 02 Jun 2017
    нисколько
  • https://t.me/clickhouse_ru
    @maxlapshin #15882 04:20 PM, 02 Jun 2017
    у меня одна таблица
  • @f1yegor ↶ Reply to #15844 #15883 04:28 PM, 02 Jun 2017
    От Алексея был доклад по способам группировки. Месяц или 2 назад
  • https://t.me/clickhouse_ru
    @maxlapshin #15884 04:28 PM, 02 Jun 2017
    даа, здесь выше выложили
  • https://t.me/clickhouse_ru
    @maxlapshin #15885 04:28 PM, 02 Jun 2017
    я его прослушал уже
  • https://t.me/clickhouse_ru
    @ChuPika #15886 04:30 PM, 02 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #15879 #15887 04:47 PM, 02 Jun 2017
    https://github.com/kshvakov/clickhouse
    Или свой писать
    GitHub - ClickHouse/clickhouse-go: Golang driver for ClickHouse

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

  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #15878 #15888 04:47 PM, 02 Jun 2017
    Го
  • https://t.me/clickhouse_ru
    @Civiloid #15889 04:47 PM, 02 Jun 2017
    А что?
  • https://t.me/clickhouse_ru
    спасибо
  • @f1yegor #15891 04:51 PM, 02 Jun 2017
    Да думал может попрактиковаться
  • https://t.me/clickhouse_ru
    @pavel_odintsov #15892 04:51 PM, 02 Jun 2017
    практикуемся на С++ :)))
  • https://t.me/clickhouse_ru
    @pavel_odintsov #15893 04:51 PM, 02 Jun 2017
    на го три либы, а на плюсах одна, даешь конкуренцию :)
  • @iamigor #15894 04:52 PM, 02 Jun 2017
    уже три? :О
  • https://t.me/clickhouse_ru
    @IlyaSinelnikov #15895 04:52 PM, 02 Jun 2017
    я нашел две более-менее активных
  • https://t.me/clickhouse_ru
    @pavel_odintsov #15896 04:53 PM, 02 Jun 2017
    ок, две, могу ошибаться:)
  • https://t.me/clickhouse_ru
    @pavel_odintsov #15897 04:54 PM, 02 Jun 2017
    вот плюсовому драйверу очень не хватает батчера, красивого
  • https://t.me/clickhouse_ru
    @pavel_odintsov #15898 04:54 PM, 02 Jun 2017
    в проекте я нечто на коленке написал, что задачку решает, но блокирует поток приема данных, некрасиво
  • https://t.me/clickhouse_ru
    @pavel_odintsov #15899 04:55 PM, 02 Jun 2017
    а как красиво с многопоточностью написать, чтобы сброс данных в CH шел в отдельном потоке без блокировки и чтобы таких потоков могло быть несколько - не осилил откровенно
  • https://t.me/clickhouse_ru
    @ChuPika #15900 04:56 PM, 02 Jun 2017
    Как в CH устроенно хранение вложенных стурктур данных?
  • @ztlpn #15901 05:00 PM, 02 Jun 2017
    Вложенная структура почти эквивалентна нескольким массивам с одинаковой длиной
  • @ztlpn #15902 05:00 PM, 02 Jun 2017
    И хранится также
  • @ztlpn #15903 05:01 PM, 02 Jun 2017
    Массивы хранятся как столбец с размерами + столбец с самими значениями, записанными подряд.
  • https://t.me/clickhouse_ru
    @ChuPika #15904 05:10 PM, 02 Jun 2017
    А столбец с размерами содержит смещения относительно головы массива?
  • https://t.me/clickhouse_ru
    @ChuPika #15905 05:11 PM, 02 Jun 2017
    А как хранятся строки переменной длинны? Длинна + последовательность байт или как с массивами?
  • @ztlpn #15906 05:14 PM, 02 Jun 2017
    Столбец с размерами хранит размер массива в каждой строке.
  • @ztlpn #15907 05:14 PM, 02 Jun 2017
    Строки хранятся в одном столбце - длина + последовательность байт
  • @gipperionx #15908 05:52 PM, 02 Jun 2017
    Joined.
  • s1 это лишнее
  • https://t.me/clickhouse_ru
    @rheinx #15910 06:36 PM, 02 Jun 2017
    Друзья, хочется страшного. Группировать выборку по некоторым полям, а остальные поля выводить любые, желательно первые попавшиеся. Это возможно?
  • @garikanet #15911 06:36 PM, 02 Jun 2017
    Any ?
  • @garikanet #15912 06:37 PM, 02 Jun 2017
    anyLast()
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #15911 #15913 06:37 PM, 02 Jun 2017
    Ооо, да, кажись оно.
  • https://t.me/clickhouse_ru
    @rheinx #15914 06:37 PM, 02 Jun 2017
    сек, попробую)
  • https://t.me/clickhouse_ru
    @rheinx #15915 07:03 PM, 02 Jun 2017
    Да, то что нужно! Спасибо!
  • https://t.me/clickhouse_ru
    Это не страшное даже. Тут выше обсуждение как без такого не выжить по памяти
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #15917 #15918 07:37 PM, 02 Jun 2017
    Ну это просто обычно поведение MySQL ) на сколько я знаю только он так умеет.
  • https://t.me/clickhouse_ru
    @maxlapshin #15919 07:49 PM, 02 Jun 2017
    Мускль делает any по умолчанию. Постгрес очень жесткий тут
  • https://t.me/clickhouse_ru
    @ChuPika ↶ Reply to #15906 #15920 09:11 PM, 02 Jun 2017
    Спасибо!
  • https://t.me/clickhouse_ru
    @ChuPika #15921 09:12 PM, 02 Jun 2017
    Имеет смысл в CH делать схему звезда с таблицей фактов и измерений или одна таблица-простыня наше всё?
  • @garikanet #15922 09:16 PM, 02 Jun 2017
    +1 за простыню со словарями
  • https://t.me/clickhouse_ru
    @ChuPika #15923 09:27 PM, 02 Jun 2017
    @garikanet используешь словари только как справочник?
  • @garikanet #15924 09:30 PM, 02 Jun 2017
    да, userAgent, location_id, и другие систем. обьекты через id
  • @garikanet #15925 09:38 PM, 02 Jun 2017
    Так же, мы используем "хитро" таблицы Summing, допустим у нас есть список рекламных компаний(сайтов/товаров...) которые, есть словарь. Мы инсертим в таблицу каждую минуту все активные компании/товары и делаем +1, тогда можно достать все ключи словаря - через запрос в эту таблицу))

    ( в ожидании ф-ционала в самом CH ))
  • https://t.me/clickhouse_ru
    @orantius #15926 09:44 PM, 02 Jun 2017
    а старые удаляете?
  • @garikanet #15927 09:47 PM, 02 Jun 2017
    нет, у нас объекты insert only, у них статус = active|stop

    тут тонкость в виде race condition - но мы списываем на мат.погрешность в наших задачах
  • 03 June 2017 (3 messages)
  • https://t.me/clickhouse_ru
    @maxlapshin #15928 04:15 PM, 03 Jun 2017
    ок, у меня теперь назрел следующий вопрос: а как вы тестируете проекты, которые используют кликхаус?
  • https://t.me/clickhouse_ru
    @maxlapshin #15929 04:58 PM, 03 Jun 2017
    мокаете запросы к кликхаусу или гоняете всё на тестовом сервере?
  • @f1yegor #15930 10:01 PM, 03 Jun 2017
    часть мокаем, для интеграции - в gitlab можно удобно подкючать докер-образы
  • 04 June 2017 (23 messages)
  • https://t.me/clickhouse_ru
    @maxlapshin #15931 08:19 AM, 04 Jun 2017
    а как посоветуете быть с геолокацией. Это то, что лучше писать в базу или это вычислимые данные? Кажется, что это надо писать в базу, потому что данные то меняются.
  • https://t.me/clickhouse_ru
    @masterdizer #15932 08:22 AM, 04 Jun 2017
    у нас событиям добавляется локация пользователя в момент события. А то они любят ее менять произвольно.
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #15931 #15933 01:14 PM, 04 Jun 2017
    зависит от ситуации. координаты москвы не меняются, координаты людей меняются.
  • https://t.me/clickhouse_ru
    @maxlapshin #15934 01:15 PM, 04 Jun 2017
    IP -> координаты
  • https://t.me/clickhouse_ru
    @maxlapshin #15935 01:15 PM, 04 Jun 2017
    я про это
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #15929 #15936 01:15 PM, 04 Jun 2017
    гоняем на сервере.
  • @iamigor #15937 01:15 PM, 04 Jun 2017
    базы geoip меняются, айпишники не меняются
  • https://t.me/clickhouse_ru
    @pavel_odintsov #15938 01:17 PM, 04 Jun 2017
    Для геолокации были патчи на префикс лакапы по айпи
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #15934 #15939 01:18 PM, 04 Jun 2017
    т.к. эта связь меняется со временем, то если нужно знать где было событие, то либо надо помнить всю историю геопривязки и джойнить при чтении, либо джойнить в момент записи. второе по-моему проще.
  • https://t.me/clickhouse_ru
    @maxlapshin #15940 01:18 PM, 04 Jun 2017
    ок
  • https://t.me/clickhouse_ru
    @maxlapshin #15941 01:18 PM, 04 Jun 2017
    разумно
  • https://t.me/clickhouse_ru
    @maxlapshin #15942 01:18 PM, 04 Jun 2017
    хотя я так понимаю, что как раз для этого есть словари с временем?
  • https://t.me/clickhouse_ru
    @orantius #15943 01:20 PM, 04 Jun 2017
    да, кейс примерно этот. по-моему там сейчас гранулярность времени по датам, он только увеличивается в размерах, и при чтении он работает при каждом чтении, а при записи один раз. зато его можно апдейтить, если что-то пошло не так.
  • https://t.me/clickhouse_ru
    @130478617 #15944 02:29 PM, 04 Jun 2017
    /stat@combot
  • https://t.me/clickhouse_ru
    @165386325 #15946 06:25 PM, 04 Jun 2017
    чо там чо там про геолокацию?
  • https://t.me/clickhouse_ru
    @165386325 #15947 06:26 PM, 04 Jun 2017
    тыкдом научился работать с геоданными?
  • https://t.me/clickhouse_ru
    @orantius #15948 06:30 PM, 04 Jun 2017
    смотря что считать "научился"
  • @pookieShmukie #15949 08:03 PM, 04 Jun 2017
    Joined.
  • @pookieShmukie #15950 08:05 PM, 04 Jun 2017
    Всем привет! Кто-то сталкивался с багами оптимизации запросов самим КХ? Когда он выкидывает данные из подзапроса?
  • @pookieShmukie #15951 08:06 PM, 04 Jun 2017
    Вот тут более детальное описание https://groups.google.com/d/msg/clickhouse/tzLZG-FWbvE/siX-Df9tBAAJ

    Если кто-то ловил такое, то получилось как то обойти или нет?
    Google Groups

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

  • https://t.me/clickhouse_ru
    ну там считать пересечения, полигоны, линии, расстояния и прочие плюшки
  • https://t.me/clickhouse_ru
    @orantius #15953 08:48 PM, 04 Jun 2017
    расстояния - да, все остальное - нет.
  • https://t.me/clickhouse_ru
    @orantius #15954 08:48 PM, 04 Jun 2017
    так что скорее нет, чем да.
  • 05 June 2017 (88 messages)
  • https://t.me/clickhouse_ru
    @iMissile #15955 05:52 AM, 05 Jun 2017
    Коллеги, так может подскажете, можно ли доступиться из tabix.io (открываю с сайта, без инсталляции) к серверу CH в локальной сети с другой машины? Консоль хрома дает такую ошибку: XMLHttpRequest cannot load http://10.0.0.234:8123/s1/query. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://ui.tabix.io' is therefore not allowed access. The response had HTTP status code 501.
  • https://t.me/clickhouse_ru
    @iMissile #15956 05:52 AM, 05 Jun 2017
    просто в браузере проверку ok пройти могу
  • https://t.me/clickhouse_ru
    @iMissile #15957 05:52 AM, 05 Jun 2017
    да и запрос тоже получается... если самому query в строке написать
  • @sr_maks1 ↶ Reply to #15957 #15958 05:58 AM, 05 Jun 2017
    Проще в докерер табих запустить. Примерно минут 10 на все про все. Из сообщения неясно - если 10.* сетка до примера тогда приведите лог нормальный. Если сетка не пример - тогда как минимум 8123 порт должен быть выставлен наружу (PAT). и такое ощущение что нужен CORS но это скорее всего уже в настройках самого tabix.io не думаю что под вас будут править. Воспользуйтесь лучше докером + табих. Либо если в локалке поднят nginx or apache тогда скопируйте архив табих с офф страницы и запустить ещё один виртуальный хост
  • https://t.me/clickhouse_ru
    @iMissile #15959 06:00 AM, 05 Jun 2017
    локалка, в одном сегменте. у меня машина 10.0.0.53, CH - 10.0.0.234. никаких проксей, ничего. В принципе можно с веб-based версии tabix достучаться до локального CH или нет?
  • https://t.me/clickhouse_ru
    @iMissile #15960 06:01 AM, 05 Jun 2017
    где лог взять? это единственная ошибка в консоли хрома. информ. сообщения про отсутствие перевода я вырезал
  • @sr_maks1 ↶ Reply to #15959 #15961 06:01 AM, 05 Jun 2017
    Нужен PAT(NAT) если его нет то как с внешнего ресурса к вам в локалку попадёт табих. Упрощенно говоря
  • https://t.me/clickhouse_ru
    @iMissile #15962 06:01 AM, 05 Jun 2017
    просто из браузера я могу вбить строчку и получит select по таблице
  • https://t.me/clickhouse_ru
    @iMissile #15963 06:02 AM, 05 Jun 2017
    а где можно прочитать про необходимые настройки? на сайте пусто
  • https://t.me/clickhouse_ru
    @iMissile #15964 06:02 AM, 05 Jun 2017
    я же не знаю, как табикс устроен. может он все js скрипты к себе затаскивает
  • @sr_maks1 ↶ Reply to #15964 #15965 06:03 AM, 05 Jun 2017
    Нет.
  • @sr_maks1 #15966 06:03 AM, 05 Jun 2017
    У вас линукс?
  • https://t.me/clickhouse_ru
    @iMissile #15967 06:03 AM, 05 Jun 2017
    локалка — винда
  • https://t.me/clickhouse_ru
    @iMissile #15968 06:03 AM, 05 Jun 2017
    CH - ubuntu
  • @sr_maks1 ↶ Reply to #15968 #15969 06:04 AM, 05 Jun 2017
    Могу в личку написать чтобы не разводить флуд
  • https://t.me/clickhouse_ru
    @iMissile #15970 06:05 AM, 05 Jun 2017
    буду благодарен
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #15960 #15971 06:21 AM, 05 Jun 2017
    Ошибка не в кх или табикс, а в браузере
  • https://t.me/clickhouse_ru
    @Civiloid #15972 06:21 AM, 05 Jun 2017
    Для безопасности уже давно браузеры не умеют делать cross site запросы если у сервера не выставлен хедер cors
  • https://t.me/clickhouse_ru
    @Civiloid #15973 06:22 AM, 05 Jun 2017
    Можно искать в гугле по запросам clickhouse cors
  • https://t.me/clickhouse_ru
    @Civiloid #15974 06:26 AM, 05 Jun 2017
    https://github.com/yandex/ClickHouse/pull/83 - кажется вот pr который добавил поддержку этого в кх и там же указано как пользоваться.
    Add CORS hearder,param:add_http_cors_header and check request header by isublimity · Pull Request #83 · yandex/ClickHouse

    В ответе HTTP сервера, отдавать заголовок : Access-Control-Allow-Origin: * Если: Указан параметр add_http_cors_header=1 в параметрах запроса Передан заголовок Origin Пример: curl -v "http:/...

  • У меня без проблем все работает внутри локалки. Сервер на другой тачке, табикс локально поднят
  • @pookieShmukie #15976 07:49 AM, 05 Jun 2017
    Главное кх на этот хост повесить, что бы не 127.0.0.1 слушал
  • https://t.me/clickhouse_ru
    @flashws #15977 07:49 AM, 05 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @madm1ke ↶ Reply to #15796 #15978 11:13 AM, 05 Jun 2017
    Нужно использовать обратные кавычки: alter table DatabaseName.`.inner.TableName`
  • https://t.me/clickhouse_ru
    @snanisimov #15981 11:37 AM, 05 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @ivansid #15982 01:28 PM, 05 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @flashws #15983 01:55 PM, 05 Jun 2017
    Кто-нибудь использовал Clickhouse в Laravel5? Как поступили с миграциями?
  • @iamigor #15984 01:55 PM, 05 Jun 2017
    так в пхп же инструмент был от сми2
  • @iamigor #15985 01:55 PM, 05 Jun 2017
    GitHub - smi2/phpMigrationsClickhouse: Migrations for Clickhouse cluster

    Migrations for Clickhouse cluster. Contribute to smi2/phpMigrationsClickhouse development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @flashws #15986 01:59 PM, 05 Jun 2017
    Igor, спасибо не видел, планировал немного модифицировать стандартные миграции в Laravel, может кто уже это проходил.
  • https://t.me/clickhouse_ru
    @alexey_laptev #15987 02:40 PM, 05 Jun 2017
    в yii2 в одну строчку заработало если что - http://joxi.ru/4vAWKbKhpjDWAW
  • https://t.me/clickhouse_ru
    @evervoid #15988 04:22 PM, 05 Jun 2017
    Ребята, такой вопрос. Есть какие-то минимальные и рекомендуемые требования по железу на одну ноду КХ? И насколько хорошей/плохой практикой может быть расположение нескольких нод на одной физической машине?
  • @garikanet #15989 04:22 PM, 05 Jun 2017
    Миграция в одной базе и миграция в кластере немного разные вещи. Вот моя статья на эту тему https://habrahabr.ru/company/smi2/blog/317682/
    Масштабирование ClickHouse, управление миграциями и отправка запросов из PHP в кластер

    В предыдущей статье мы поделились своим опытом внедрения и использования СУБД ClickHouse в компании СМИ2. В текущей статье мы затронем вопросы масштабирования, к...

  • У вас ошибка в настройке подключения к серверу - должнобыть http://host:IP/ и все без s1
  • Несколько нод на одной машине не рекомендуется, потому что это менее выгодно по ресурсам, чем одна нода на машину.
  • @milovidov_an #15992 04:48 PM, 05 Jun 2017
    Немного информации про железо есть здесь: https://github.com/yandex/ClickHouse/blob/master/doc/administration/tips.txt
  • https://t.me/clickhouse_ru
    @uncol #15993 04:58 PM, 05 Jun 2017
    помогите разобраться, делаю три запроса:
    1. `SELECT uniqExact(managed_object) AS qty
    FROM alarms WHERE
    ts BETWEEN toDateTime('2017-06-01T01:00:00') AND toDateTime('2017-06-01T07:00:00')
    or
    ts BETWEEN toDateTime('2017-05-30T15:00:00') AND toDateTime('2017-05-30T16:00:00')`
    результат = 87238
    2. `SELECT uniqExact(managed_object) AS qty
    FROM alarms WHERE
    ts BETWEEN toDateTime('2017-06-01T01:00:00') AND toDateTime('2017-06-01T07:00:00')`
    результат = 35941
    3. `SELECT uniqExact(managed_object) AS qty
    FROM alarms WHERE
    ts BETWEEN toDateTime('2017-05-30T15:00:00') AND toDateTime('2017-05-30T16:00:00')`
    результат = 52729

    почему 87,238 <> 35,941 + 52,729 (88,670)
  • https://t.me/clickhouse_ru
    @nikita_nmk #15994 05:00 PM, 05 Jun 2017
    потому что один и тот же managed_object появился и в мае и июне?
  • https://t.me/clickhouse_ru
    @uncol #15995 05:01 PM, 05 Jun 2017
    да, это возможно, спасибо
  • https://t.me/clickhouse_ru
    @the_real_jkee #15996 05:02 PM, 05 Jun 2017
    У нас в Яндекс.Метрике это главный вопрос на собеседовании
  • https://t.me/clickhouse_ru
    @the_real_jkee #15997 05:03 PM, 05 Jun 2017
    Ожидаем что люди понимают что уников складывать нельзя
  • https://t.me/clickhouse_ru
    @uncol #15998 05:04 PM, 05 Jun 2017
    ну почему а если primary key?
  • https://t.me/clickhouse_ru
    @the_real_jkee #15999 05:04 PM, 05 Jun 2017
    Иногда можно. Но почти всегда нельзя.
  • https://t.me/clickhouse_ru
    @the_real_jkee #16000 05:04 PM, 05 Jun 2017
    И в ClickHouse нет primary key :)
  • https://t.me/clickhouse_ru
    @uncol #16001 05:05 PM, 05 Jun 2017
    я имел ввиду уникальный идентификатор
  • https://t.me/clickhouse_ru
    @ssemiokhin #16002 05:50 PM, 05 Jun 2017
    Ребяты, не подскажите, необходимо производить выгрузку в Excel (для бизнеса) всей таблицы из КХ (обычный select * from table), для такого простого функционала odbc-драйвер КХ-ный пойдет?
  • @yamlcoder #16003 05:51 PM, 05 Jun 2017
    В Excel же 65000 строк максимум было кажется
  • https://t.me/clickhouse_ru
    @ssemiokhin #16004 05:53 PM, 05 Jun 2017
    Вроде до 10 млн, в любом случае нужно выгружать небольшие агрегатные таблички до 1 млн.
    Для больших объемов, естественно, отдельный скриптец выгрузки
  • https://t.me/clickhouse_ru
    ага, а потом уже начинается bigdata
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #16002 #16006 06:13 PM, 05 Jun 2017
    CSV и импортировать
  • https://t.me/clickhouse_ru
    @Civiloid #16007 06:13 PM, 05 Jun 2017
    или каким-нибудь софтом csv -> xls сделать
  • @garikanet #16008 06:17 PM, 05 Jun 2017
    tabix умеет экспорт в csv
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #16002 #16009 06:20 PM, 05 Jun 2017
    orantius@x:~$ clickhouse-client --query "select * from system.one format TabSeparatedWithNames" > dump.tsv
  • https://t.me/clickhouse_ru
    @orantius #16010 06:21 PM, 05 Jun 2017
    можно и без драйвера, или вам с
    виндовой машины надо это делать?
  • https://t.me/clickhouse_ru
  • @lexa_work #16012 07:12 PM, 05 Jun 2017
    а только у меня CODE 500 возвращается по https://github.com/yandex/ClickHouse?
  • @lexa_work #16013 07:13 PM, 05 Jun 2017
    а не
  • @lexa_work #16014 07:13 PM, 05 Jun 2017
    проблема не в CH
  • @milovidov_an #16015 07:13 PM, 05 Jun 2017
    У меня тоже - это проблема GitHub.
  • @lexa_work #16016 07:13 PM, 05 Jun 2017
    вот жешь
  • https://t.me/clickhouse_ru
    В старом формате, в xls. В xlsx сильно больше
  • @DenysLamanov #16018 07:33 PM, 05 Jun 2017
    Раскроем секреты: excel <= 2003 2^16 строк, после 2^32
  • @f1yegor ↶ Reply to #15997 #16019 08:04 PM, 05 Jun 2017
    ура, я пройду в яндекс. правда полгода назад я пытался их вычитать)
  • В любом случае, люди заморочились написали CH, пошли на кучу компромиссов, чтобы оно шевелилось, а тут хотят бац и в экселюшку все подгрузить.
  • @yamlcoder #16021 09:02 PM, 05 Jun 2017
    Либо не влезет, либо зачем CH со всеми его заморочками?
  • https://t.me/clickhouse_ru
    @orantius #16022 09:31 PM, 05 Jun 2017
    график нарисовать, тренд посчитать.
  • @lexa_work #16023 10:12 PM, 05 Jun 2017
    а есть какие-нибудь ограничение на кол-во колонок в таблице для Distributed движка?
  • @lexa_work #16024 10:13 PM, 05 Jun 2017
    получилась у нас тут таблица на 719 колонок
  • @lexa_work #16025 10:13 PM, 05 Jun 2017
    если пытаться обратиться к ней через Distributed, то сервер падает
  • https://t.me/clickhouse_ru
    @orantius #16026 10:14 PM, 05 Jun 2017
    у нас 500+, не падает.
  • https://t.me/clickhouse_ru
    @orantius #16027 10:14 PM, 05 Jun 2017
    а что говорит при этом?
  • @lexa_work #16028 10:14 PM, 05 Jun 2017
    у клиента Exception on client:
    Code: 32. DB::Exception: Attempt to read after eof: while receiving packet from xdray-3:9000, 192.168.157.3

    Connecting to xdray-3:9000.
    Code: 210. DB::NetException: Connection refused: (xdray-3:9000, 192.168.157.3)
  • @lexa_work #16029 10:15 PM, 05 Jun 2017
    в логах сервера ничего не успевает
  • @lexa_work #16030 10:15 PM, 05 Jun 2017
    корка создается
  • @lexa_work #16031 10:15 PM, 05 Jun 2017
    версия CH старовата
  • @lexa_work #16032 10:15 PM, 05 Jun 2017
    завтра попробуем обновиться
  • @lexa_work #16033 10:16 PM, 05 Jun 2017
    сейчас 1.1.54198
  • https://t.me/clickhouse_ru
    @taroff #16034 10:18 PM, 05 Jun 2017
    можно из любопыства вопрос, что у вас в таком кол-ве колонок хранится?
  • @lexa_work #16035 10:19 PM, 05 Jun 2017
    да пожалуйста
  • @lexa_work #16036 10:20 PM, 05 Jun 2017
    пытаемся сейчас замутить тему с расчетом KPI для оператора сотовой связи
  • @lexa_work #16037 10:20 PM, 05 Jun 2017
    и туда ложатся события сети между MSC и BSC/RNC
  • @lexa_work #16038 10:21 PM, 05 Jun 2017
    они весьма разнообразны и таблица получилась сильно разряжена
  • https://t.me/clickhouse_ru
    @taroff #16039 10:21 PM, 05 Jun 2017
    м, спс. И как скоросьт вставки на такое? Страшно предствить insert запрос
  • @lexa_work #16040 10:21 PM, 05 Jun 2017
    если реально выяснится, что мы переборщили с таким подходом, будим дробить таблицу
  • @lexa_work #16041 10:21 PM, 05 Jun 2017
    ну пока, как вы понимаете, только идут эксперименты
  • @lexa_work #16042 10:22 PM, 05 Jun 2017
    в локальную таблицу завтра попробуем повставлять
  • https://t.me/clickhouse_ru
    @taroff #16043 10:22 PM, 05 Jun 2017
    м, успехов
  • @334196857 #16044 10:52 PM, 05 Jun 2017
    Joined.
  • 06 June 2017 (83 messages)
  • @milovidov_an #16045 12:15 AM, 06 Jun 2017
    Такое количество столбцов - полностью нормально для ClickHouse.

    В логах на 192.168.157.3 есть что-нибудь полезное? Например, фрагмент "###" - говорит, что сервер получил сигнал. Ниже будет указан стек трейс. Если нет - смотрите в dmesg.
  • @lexa_work #16046 07:19 AM, 06 Jun 2017
    один раз на сервере проскочил стектрейс. Не уверен, что он относится к моему случаю, т.к. воспроизвести его не могу.
    2017.06.05 23:45:14.376130 [ 4 ] <Error> ServerErrorHandler: Code: 210, e.displayText() = DB::NetException: Connection reset by peer: while reading from socket (192.168.157.1:58882), e.what() = DB::NetException, Stack trace:

    0. clickhouse-server(StackTrace::StackTrace()+0x16) [0x27a44c6]
    1. clickhouse-server(DB::Exception::Exception(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)+0x1f) [0x27b6ccf]
    2. clickhouse-server(DB::ReadBufferFromPocoSocket::nextImpl()+0x32b) [0x27b682b]
    3. clickhouse-server(DB::TCPHandler::runImpl()+0x1179) [0xff6519]
    4. clickhouse-server(DB::TCPHandler::run()+0x1c) [0xff6eec]
    5. clickhouse-server(Poco::Net::TCPServerConnection::start()+0xf) [0x2fe17cf]
    6. clickhouse-server(Poco::Net::TCPServerDispatcher::run()+0x12b) [0x2fe2e4b]
    7. clickhouse-server(Poco::PooledThread::run()+0xa7) [0x30f5817]
    8. clickhouse-server(Poco::ThreadImpl::runnableEntry(void*)+0x96) [0x30eff76]
    9. /lib64/libpthread.so.0(+0x7dc5) [0x7f8386636dc5]
    10. /lib64/libc.so.6(clone+0x6d) [0x7f8383f07ced]
  • @lexa_work #16047 07:19 AM, 06 Jun 2017
    в dmesg ничего особенного не вижу
  • https://t.me/clickhouse_ru
    @rheinx #16048 07:26 AM, 06 Jun 2017
    так это просто клиент ресетнул коннект, ничего такого
  • @lexa_work #16049 07:27 AM, 06 Jun 2017
    ну вот я и говорю, что следов не остается, но по факту падает clickhouse-server к которому цеплялся клиент
  • @lexa_work #16050 07:28 AM, 06 Jun 2017
    вот так в логе:
    2017.06.06 10:20:56.472875 [ 6 ] <Trace> TCPConnectionFactory: TCP Request. Address: 192.168.157.1:37452
    2017.06.06 10:20:56.472959 [ 6 ] <Debug> TCPHandler: Connected ClickHouse client version 1.1.54198, user: default.
    2017.06.06 10:20:59.446788 [ 6 ] <Debug> executeQuery: (from 192.168.157.1:37452) select Timestamp from omega.omega_sccp
  • @lexa_work #16051 07:28 AM, 06 Jun 2017
    после этого все, сервер упал создал core файл
  • @lexa_work #16052 07:28 AM, 06 Jun 2017
    больше нигде ничего
  • @lexa_work #16053 07:28 AM, 06 Jun 2017
    добавлю, что это все на CentOS 7
  • @lexa_work #16054 07:36 AM, 06 Jun 2017
    коллеги, приношу извинение
  • @lexa_work #16055 07:37 AM, 06 Jun 2017
    "дело было не в бабине"
  • @lexa_work #16056 07:37 AM, 06 Jun 2017
    в общем при создании Distributed таблицы я указал на себя же
  • @lexa_work #16057 07:37 AM, 06 Jun 2017
    в результате такое поведение
  • @lexa_work #16058 07:37 AM, 06 Jun 2017
    таблица создалась, но при обращении к ней получается вот такая штука
  • @lexa_work #16059 07:39 AM, 06 Jun 2017
    выглядело это примерно так
    CREATE TABLE default.test AS default.test_local
    ENGINE = Distributed(cluster1, default, test);
  • @lexa_work #16060 07:40 AM, 06 Jun 2017
    наверное правильней было бы не дать создать такую рекурсию?
  • https://t.me/clickhouse_ru
    @rheinx #16061 07:51 AM, 06 Jun 2017
    нене, ClickHouse way это кинуть предупреждение, но после соглашения все же позволить выстрелить себе в ногу))
  • @lexa_work #16062 07:51 AM, 06 Jun 2017
    ну вот тут не было предупреждений и в момент создания неправильного объекта, ни в момент обращения к оному
  • https://t.me/clickhouse_ru
    Повторюсь, это не более чем дополнительный инструмент, манагерам так удобно, вроде очевидно же
  • https://t.me/clickhouse_ru
    Только при показе 700-800к строк (а в csv выгружается столько, сколько отображено) Хром помирает)
    В общем, поэкспериментирую с odbc-дровами, посмотрим, че как, всем спасибо
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #16064 #16065 08:00 AM, 06 Jun 2017
    У вас какая задача то ? Выхлоп в excel положить?
  • https://t.me/clickhouse_ru
    @ssemiokhin #16066 08:01 AM, 06 Jun 2017
    Ага
  • https://t.me/clickhouse_ru
    @rheinx #16067 08:01 AM, 06 Jun 2017
    так это, CURL + FORMAT CSV чем не подходит?
  • https://t.me/clickhouse_ru
    @bgaifullin #16068 08:02 AM, 06 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    Опишу чуть больше: дать манагерам/аналитикам инструмент выгрузки небольших табличек в excel-е, чтобы они сами могли еще что посмотреть и поработать с данными у себя на машинах.
    Вариант работы прям через excel симпатишный, если он не взлетит, то, конечно, можно через курс и отдавать sh-скрипт, это понятное дело
  • https://t.me/clickhouse_ru
    @rheinx #16070 08:05 AM, 06 Jun 2017
    >Вариант работы прям через excel симпатишный
    тут можно вногу себе выстрелить) Попросив excell показать всю таблицу(а она неожиданно весит терабайты....)
  • https://t.me/clickhouse_ru
    @bgaifullin #16071 08:06 AM, 06 Jun 2017
    привет. не могу создать создать materialzed view с использованием populate, в оригинальной таблице 40млд записей. сначала была ошибка с нехваткой памяти, подкрутил лимиты для group by, теперь ошибка с тем что не хватает файловых дескрипторов

    есть какие нибудь настройки для того чтобы делать populate по кусочкам ?
  • https://t.me/clickhouse_ru
    @alexanderzaitsev #16072 08:16 AM, 06 Jun 2017
    По кусочкам можно, вручную. Делаете MV без populate или с populate на текущий месяц, если там не очень много данных. А потом ручками вставляете в .inner. таблицу кусками
  • https://t.me/clickhouse_ru
    @bgaifullin #16073 08:20 AM, 06 Jun 2017
    спасибо, попробую
  • https://t.me/clickhouse_ru
    А как вы лимитируете кол-во записей для выгрузки? Можно ведь и превысить лимиты экселя.
    Как вы смотрите на вариант создания пользователя КХ с ограниченными правами для манагеров/аналитиков? Тогда они смогут напрямую работать с КХ, ведь он отлично для этого подходит. Или предложить использовать Табикс/Графану, тогда можно будет анализировать данные с любого места и в любое время
  • https://t.me/clickhouse_ru
    У нас 2 сценария использования для аналитиков/манагеров (все на винде):
    1) Повертеть данные, посмотреть что-как обычными запросами любые таблицы (сырые, агрегированные, обогащенные данные). Для этой цели есть ридонли юзеры и им отдается tabix (только в версии чуть более старой, без процессов и всякого доп. мониторинга, т.к. полегче)
    2) Выгрузка "агрегатных" таблиц полностью (мы просто говорим, какие таблицы так можно выгружать, а какие нет - это и есть лимитирование) для того, чтобы их повертеть excel, графички построить и т.п. Для этих целей в дальнейшем мб будем использовать какой-нибудь Clickview, но там нужен уже полноценный odbc
  • https://t.me/clickhouse_ru
    @Totaki #16076 10:26 AM, 06 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @yuyugame #16077 12:29 PM, 06 Jun 2017
    Какие-нибудь доки/best practices по подходам к housekeeping в CH не присоветуете? Интересует CH-way для агрегирования/удаления старых/ненужных данных а ля RRD или retention policy в Influx в приложении к time series данным. Диски всё-таки не резиновые.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16078 12:29 PM, 06 Jun 2017
    это больная тема :(
  • https://t.me/clickhouse_ru
    @orantius #16079 12:29 PM, 06 Jun 2017
    дропать месяцами.
  • https://t.me/clickhouse_ru
    @yuyugame ↶ Reply to #16079 #16080 12:37 PM, 06 Jun 2017
    Месяцами - понятно. А если детальные данные дольше дня-недели-двух не нужны? Заморачиваться с таблицей на каждый день и дропом или переименованием? Можно ли для этого использовать движок Merge в котором будет обновляемый список (много) MergeTree таблиц? Или тут могут быть грабли?
  • @lexa_work #16081 12:46 PM, 06 Jun 2017
    все затаились и ждут доработки с произвольным партиционированием (ну или хотяб по дням).
    ну или в вашем случае можно попробовать глянуть на https://clickhouse.yandex/docs/ru/table_engines/graphitemergetree.html
  • @lexa_work #16082 12:47 PM, 06 Jun 2017
    но это совсем не дженерик вариант
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16083 12:47 PM, 06 Jun 2017
    я лично затаился и жду, костылиазация ретеншена очень неприятная и сложная
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16084 12:47 PM, 06 Jun 2017
    но это скорее будет не ретеншен, а просто дроп старых данных
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16085 12:48 PM, 06 Jun 2017
    но, опять же, вручную имея возможность дропать данные по дням это будет легко реализовать вручную, обрабатывается день, перекладывается вдругую базу - дропается
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16086 12:48 PM, 06 Jun 2017
    и так каждый день
  • @mfilimonov #16087 01:10 PM, 06 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @rheinx #16088 01:50 PM, 06 Jun 2017
    Ребят, а конвертация MergeTree в ReplicatedMergeTree возможна?
  • https://t.me/clickhouse_ru
    @rheinx #16089 01:50 PM, 06 Jun 2017
    И на сколько ресурсоемкая операция?
  • https://t.me/clickhouse_ru
    @Mblpz0r #16090 01:54 PM, 06 Jun 2017
    ребят а как кто делает бекапы clickhouse?
  • https://t.me/clickhouse_ru
    Через FREEZE
  • https://t.me/clickhouse_ru
    Переименовать старую, создать новую, скопировать данные. Может быть можно обойтись без копирования, через detach/attach партиций. Но если данных не очень много, то спокойнее через insert-select.
  • https://t.me/clickhouse_ru
    @bgaifullin #16093 02:13 PM, 06 Jun 2017
    а если вставлять напрямую в inner таблицу, репликация данных пройзойдет или надо вручную на каждом хосте делать insert ?
  • https://t.me/clickhouse_ru
    @alexanderzaitsev #16094 02:47 PM, 06 Jun 2017
    Если inner таблица реплицируема, то, конечно, репликация будет
  • https://t.me/clickhouse_ru
    @bgaifullin #16095 02:47 PM, 06 Jun 2017
    спасибо за информацию
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16096 03:15 PM, 06 Jun 2017
    а кто-либо юзал кликхаус вместе с ZFS?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16097 03:15 PM, 06 Jun 2017
    (на линуксе, естественно)
  • https://t.me/clickhouse_ru
    @bgaifullin #16098 03:17 PM, 06 Jun 2017
    а в чем профит такой комбинации?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16099 03:22 PM, 06 Jun 2017
    возможность собрать очень большие партиции из большого числа дисков в пределах одной машины
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16100 03:23 PM, 06 Jun 2017
    сейчас насколько я понимаю, кликхаусу нельзя скормить 24 3Тб жестких диска, чтобы он самостоятельно разместил данные на них равномерно.
  • https://t.me/clickhouse_ru
    @pskobelev #16101 05:31 PM, 06 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    а чем аналог из md не устроит?
  • https://t.me/clickhouse_ru
    @nikitosiusis #16103 05:32 PM, 06 Jun 2017
    кажется использовать зфс чтобы объединить диски это оверкилл
  • https://t.me/clickhouse_ru
    @OrNixx #16104 05:33 PM, 06 Jun 2017
    всем привет. полечите по фотографии пожалуйста. КХ жрёт проц как не в себя, в show processlist висят инсёрты, приложение легло. Как понять, почему инсёрты висят?
  • https://t.me/clickhouse_ru
    @OrNixx #16105 05:33 PM, 06 Jun 2017
    в логах что-то непонятное, щас на пастебин выложу
  • https://t.me/clickhouse_ru
    @OrNixx #16106 05:33 PM, 06 Jun 2017
    место на диске есть
  • https://t.me/clickhouse_ru
  • @ztlpn #16109 05:52 PM, 06 Jun 2017
    sudo perf top что показывает?
  • @ztlpn #16110 05:59 PM, 06 Jun 2017
    в логах ошибки просто означают, что селекты тормозят и не укладываются во временной лимит
  • https://t.me/clickhouse_ru
    @OrNixx #16111 06:18 PM, 06 Jun 2017
    есть какой-нибудь аналог эксплэйна мускулевского?
  • @ztlpn #16112 06:22 PM, 06 Jun 2017
    Неким аналогом является то, что в логе после <Debug> executeQuery: Query pipeline:. Но эта информация обычно имеет мало ценности, потому что запрос почти однозначно преобразуется в план.
  • https://t.me/clickhouse_ru
    @Felixoid ↶ Reply to #16100 #16113 06:44 PM, 06 Jun 2017
    md в этом месте кажется более удачным решением. В десятку его со sparse 2 — и красота
  • https://t.me/clickhouse_ru
    @nikitosiusis #16114 06:47 PM, 06 Jun 2017
    нуда 32 харда в рейд 10. мистер бесконечные деньги:)
  • https://t.me/clickhouse_ru
    @Yaroslav_Ilin #16115 06:57 PM, 06 Jun 2017
    Joined.
  • Мы напилили свой элоквент билдер и свой клиент. Могу на гитхаб вывалить. Для миграций простой query runner через artisan. Список серверов настраивается через конфиг. Не стали мудрить с грамматикой и прочим в их схеме с миграциями.
  • https://t.me/clickhouse_ru
    @alexey_laptev #16117 08:50 PM, 06 Jun 2017
    всем привет, собираю стату по кликам, нужно пометить через некоторое время конверсионный, по сути нужен апдейт по номеру клика одного поля

    как тут лучше быть?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16118 10:02 PM, 06 Jun 2017
    выше спрашивал почему зфс
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16119 10:02 PM, 06 Jun 2017
    а не md или что-то еще
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16120 10:02 PM, 06 Jun 2017
    основная проблема не отсуствие возможности объединенное блочное устройство сделать, для этого есть lvm, dm, md и аппаратные рейды
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16121 10:03 PM, 06 Jun 2017
    скорее вопрос в том, какую файловую систему ставить поверх этого 10-60 терабайтного блочного устройства
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16122 10:03 PM, 06 Jun 2017
    ext4 и прочие - идут мимо. был приятный опыт недельного fsck в оффлайн режиме на 20тб, больше не хочется :)
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16123 10:04 PM, 06 Jun 2017
    а ZFS On Linux с центосом 6 и 7м прекррасно хранил по 60 тб без единой проблемы почти 3 года, но это были бэкапы с довольно своеобразным паттерном записи (в основном последовательная)
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16124 10:04 PM, 06 Jun 2017
    отсюда и вопрос, был у кого опыт или нету)
  • https://t.me/clickhouse_ru
    @IlyaSinelnikov #16125 10:04 PM, 06 Jun 2017
    Могу соврать, но у нас на сколько я помню часто ставят xfs на дисковые полки. Но это не для КХ.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16126 10:05 PM, 06 Jun 2017
    вполне возможно, но все равно на таких объемах файловую систему без self-healing как зфс страшно :(
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16127 10:06 PM, 06 Jun 2017
    XFS я как-то совершенно упустил из практики, лет 7 назад были потери данных, а после этого "осадок остался" и везде был экст3 ну и потом экст4, с сопутствующим им приколами
  • https://t.me/clickhouse_ru
    @maxlapshin #16128 10:28 PM, 06 Jun 2017
    вот никак не могу найти ответ в мануале: а почему count() возвращается в json как строка?
  • 07 June 2017 (126 messages)
  • https://t.me/clickhouse_ru
    @orantius #16129 12:01 AM, 07 Jun 2017
    uint64/int64 по умолчанию сериализуется в json как строка чтобы не ломаться у людей без целых 64-битных типов. отключается настройкой output_format_json_quote_64bit_integers
  • https://t.me/clickhouse_ru
    Выложите пожалуйста
  • Сегодня точно выложу клиент, который можно использовать отдельно. Пока там нет поддержки —external файла для использования в условиях where in / not in, но в ближайшие пару дней добавим. Билдер элоквента сегодня в течение дня постараемся покрыть тестами и тоже выложить на гитхаб.
  • https://t.me/clickhouse_ru
    @inotnako #16132 06:30 AM, 07 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @winogradoff #16133 07:34 AM, 07 Jun 2017
    Всем привет! Не появился еще odbc под windows?
  • @lexa_work #16134 08:20 AM, 07 Jun 2017
    сейчас постоянно сыпит такое в лог:
    2017.06.07 11:19:08.089529 [ 13 ] <Error> mprobe.sccp_msu_sharded (StorageReplicatedMergeTree): checkPartAndAddToZooKeeper: node /clickhouse/tables/s3_r2_03/mprobe/sccp_msu_sharded/replicas/xdray-9/parts/20170607_20170607_3608084_3614891_1627 already exists
    2017.06.07 11:19:08.096770 [ 13 ] <Error> DB::StorageReplicatedMergeTree::queueTask()::<lambda(DB::StorageReplicatedMergeTree::LogEntryPtr&)>: Code: 235, e.displayText() = DB::Exception: Part 20170607_20170607_3608084_3614891_1627 already exists, e.what() = DB::Exception, Stack trace:

    0. clickhouse-server(StackTrace::StackTrace()+0x16) [0x27a44c6]
    1. clickhouse-server(DB::Exception::Exception(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)+0x1f) [0xfe082f]
    2. clickhouse-server(DB::MergeTreeData::renameTempPartAndReplace(std::shared_ptr<DB::MergeTreeDataPart>&, SimpleIncrement*, DB::MergeTreeData::Transaction*)+0xee3) [0x28cee63]
    3. clickhouse-server(DB::StorageReplicatedMergeTree::fetchPart(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, unsigned long)+0x3a3) [0x288ee83]
    4. clickhouse-server(DB::StorageReplicatedMergeTree::executeLogEntry(DB::ReplicatedMergeTreeLogEntry const&)+0x7b7) [0x28903a7]
    5. clickhouse-server() [0x289362e]
    6. clickhouse-server(DB::ReplicatedMergeTreeQueue::processEntry(std::function<std::shared_ptr<zkutil::ZooKeeper> ()>, std::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&, std::function<bool (std::shared_ptr<DB::ReplicatedMergeTreeLogEntry>&)>)+0x3b) [0x293e08b]
    7. clickhouse-server(DB::StorageReplicatedMergeTree::queueTask()+0x132) [0x28735d2]
    8. clickhouse-server(DB::BackgroundProcessingPool::threadFunction()+0x3cc) [0x28b9b9c]
    9. clickhouse-server() [0x3174adf]
    10. /lib64/libpthread.so.0(+0x7dc5) [0x7f083e96bdc5]
    11. /lib64/libc.so.6(clone+0x6d) [0x7f083c23d21d]

    При этом данные вроде доступны. Есть идеи что с этим делать?
  • https://t.me/clickhouse_ru
    @amalikov #16135 08:38 AM, 07 Jun 2017
    привет!

    нужно округление времени до границы в 20 минут (как timeSlot, только 20 минут)
    (и за этот интервал буду брать среднее значение value)

    intDiv(ts, 1200) будет прекрасно работать или у timeSlot есть какая-то дополнительная магия (типа преагрегации)?
  • @lexa_work #16136 08:47 AM, 07 Jun 2017
    Коллеги, а что обычно делают, когда на двух репликах получилось разное кол-во строк
  • @lexa_work #16137 08:47 AM, 07 Jun 2017
    ну и сыпится постоянно вот та ошибка, что выше приведена?
  • https://t.me/clickhouse_ru
    @vladenisov #16138 10:41 AM, 07 Jun 2017
    привет. столкнулся со странной ошибкой. запрос такой:
    SELECT screen_name, count(*) FROM (
    SELECT screen_name, session_id, event_time
    FROM analytics.apps_clickstream
    LIMIT 2 BY session_id
    )
    GROUP BY screen_name LIMIT 50

    фейлится с ошибкой DB::Exception: Not found column session_id in block. There are only columns: screen_name, e.what() = DB::Exception

    подзапрос при этом выполняется и отображает все колонки.
  • https://t.me/clickhouse_ru
    @maxlapshin #16139 10:46 AM, 07 Jun 2017
    можешь по-другому это сделать:
  • https://t.me/clickhouse_ru
    @maxlapshin #16140 10:46 AM, 07 Jun 2017
    select screen_name, uniqExact((session_id, event_time)) from analytics.apps_clickstream group by screen_name
  • https://t.me/clickhouse_ru
    @maxlapshin #16141 10:46 AM, 07 Jun 2017
    так не лучше?
  • https://t.me/clickhouse_ru
    да это я для примера такой запрос сделал, чтобы показать проблему. изначальная задача вообще определить второй экран в сессии. )
  • https://t.me/clickhouse_ru
    @a_nikushin #16143 11:50 AM, 07 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @Sestra_Tolstogo #16144 11:51 AM, 07 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @nosurrenderrr #16145 11:57 AM, 07 Jun 2017
    Joined.
  • @pookieShmukie #16146 12:01 PM, 07 Jun 2017
    Кстати в КХ есть неприятный баг, который неправильно оптимизирует запрос и выкидывает какие то блоки данных
  • @pookieShmukie #16147 12:02 PM, 07 Jun 2017
    Мне из-за этого пришлось считать среднеквадратичное отклонение на прикладном уровне блин...а там бывает по 100 000 строк в результате запроса
  • https://t.me/clickhouse_ru
    а ты уже создал issue на github для этого?
  • @pookieShmukie #16149 12:04 PM, 07 Jun 2017
    Нет еще, руки не дошли, но в гугл группах мне кто-то из команды КХ подсказал как этот баг обойти, но этот костыль не всегда работает
  • @sr_maks1 ↶ Reply to #16149 #16150 12:07 PM, 07 Jun 2017
    так все-таки пусть руки дойдут 😊 Просто наверняка многие с этим столкнуться/сталкивались.
  • @pookieShmukie #16151 12:07 PM, 07 Jun 2017
    Да, я думаю многие, но никто еще не написал ) В течение пары часов постараюсь добраться и описать баг
  • @sr_maks1 ↶ Reply to #16151 #16152 12:07 PM, 07 Jun 2017
    Спасибо!
  • https://t.me/clickhouse_ru
    @boltnev #16153 12:18 PM, 07 Jun 2017
    Joined.
  • @ztlpn ↶ Reply to #16146 #16154 12:45 PM, 07 Jun 2017
    Речь про Float в первичном ключе или что-то другое?
  • @pookieShmukie #16155 12:46 PM, 07 Jun 2017
    Нет, есть у меня запрос в котором есть несколько вложенных подзапросов. И поверх всех типа select * from (куча подзапросов вложенных). Дак вот самый верхний ругается мол "column learnerHash not found in block"
  • @pookieShmukie #16156 12:46 PM, 07 Jun 2017
    Хотя если сделать select *, count(learnerHash) from (куча подзапросов вложенных), то все ок
  • @iamigor #16157 12:47 PM, 07 Jun 2017
    а джойнов нет? звездочка только по левой таблице столбцы выбирает
  • https://groups.google.com/d/msg/clickhouse/tzLZG-FWbvE/siX-Df9tBAAJ вот тут я описывал проблему
    Google Groups

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

  • Есть и джоины. Про звездочку не знал, но там не в это дело. learnerHash изначально имеется в левой таблице
  • @iamigor #16160 12:48 PM, 07 Jun 2017
    а. хм. прикольно
  • @pookieShmukie #16161 12:48 PM, 07 Jun 2017
    Например даже если я делаю select median(duration) from (куча подзапросов вложенных) то валится ошибка
  • @pookieShmukie #16162 12:49 PM, 07 Jun 2017
    А если к медиане припишу еще count(learnerHash), то все ок работает )
  • Мне там Николай Кочетов ответил как решить проблему, но это решение не всегда работает и не всегда удобно его использовать в запросах
  • https://t.me/clickhouse_ru
    @Mardukk #16164 12:58 PM, 07 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @rheinx #16165 01:06 PM, 07 Jun 2017
    Ребят, а есть простой способ пронумеровать строки в выводе?
  • @iamigor #16166 01:08 PM, 07 Jun 2017
    rowNumberInAllBlocks()
    только лучше основной запрос обернуть в подзапрос (а эту функцию запихнуть снаружи) и ORDER BY timestamp какой-нибудь в подзапросе указать, но могу ошибаться
  • @artmkin ↶ Reply to #16133 #16167 01:08 PM, 07 Jun 2017
    Releases · ClickHouse/clickhouse-odbc

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

  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #16166 #16168 01:10 PM, 07 Jun 2017
    спасибо! то что нужно
  • https://t.me/clickhouse_ru
    это же не будет нумерацией строк в выводе. в CH аналога оконной row_number() over () нет, насколько я помню
  • @ztlpn #16170 01:15 PM, 07 Jun 2017
    Добавил презентацию с РИТ++: https://github.com/yandex/clickhouse-presentations/tree/master/rit2017
    yandex/clickhouse-presentations

    clickhouse-presentations - Presentations, meetups and talks for ClickHouse

  • @ztlpn #16171 01:16 PM, 07 Jun 2017
    Для опытных пользователей нового мало, но есть красивые схемки
  • https://t.me/clickhouse_ru
    сорри, перепроверил с подзапросом. действительно, работает.
  • @emptyname #16173 01:30 PM, 07 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @baryshev #16174 01:31 PM, 07 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @tellef #16177 02:07 PM, 07 Jun 2017
    Joined.
  • @262563341 #16178 02:07 PM, 07 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @tellef #16179 02:08 PM, 07 Jun 2017
    Ребят, подскажите, пожалуйста, где почитать как развернуть свой tabix proxy
  • Запостил issue в гитхаб по поводу бага с которым я столкнулся 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...

  • @ztlpn #16181 02:10 PM, 07 Jun 2017
    Всё-таки не блоки, а столбцы :)
  • @ztlpn #16182 02:10 PM, 07 Jun 2017
    Если бы ещё и строки выкидывались, это гораздо серьёзнее баг
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @tellef ↶ Reply to #16183 #16184 02:12 PM, 07 Jun 2017
    клиент - tabix - ch

    без прямого коннекта к ch не работает
  • @Evanushechkin #16185 02:12 PM, 07 Jun 2017
    вкладка tabix.server интересует
  • @Evanushechkin #16186 02:13 PM, 07 Jun 2017
    в данном клиенте. Она работает через tabix.proxy
  • @Evanushechkin #16187 02:14 PM, 07 Jun 2017
    а доков по нему нет, не официальных, не подпольных. Ни кто не задавался вопросом? Чтобы не открывать порты clickhouse наружу
  • @garikanet #16188 02:16 PM, 07 Jun 2017
    Tabix.Server - это закрытая пока разработка, она не в паблике и сильно не доделана

    Если нужно прикрыть СH могу посоветовать nginx в котором proxypass на ch.
    но сам такое не использовал еще
  • https://t.me/clickhouse_ru
    @ztarbuaer #16189 02:20 PM, 07 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @belomore #16190 02:26 PM, 07 Jun 2017
    у нас такое используется примерно так
  • https://t.me/clickhouse_ru
    @belomore #16191 02:26 PM, 07 Jun 2017
    location /api/v666 {
    proxy_pass http://localhost:8123;
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header Authorization "Basic tralala";
    }
  • https://t.me/clickhouse_ru
    @tellef #16192 02:39 PM, 07 Jun 2017
    tabix на location можно посадить или обязательно с отдельным server_name?
  • @garikanet #16193 02:40 PM, 07 Jun 2017
    нужно пробовать, я использую ui.tabix.io )
  • @sr_maks1 ↶ Reply to #16192 #16194 02:41 PM, 07 Jun 2017
    Без разницы. Главное скопировать с архива папку с сайтом tabix. Там все достаточно просто
  • @AmirOmarov #16195 02:45 PM, 07 Jun 2017
    Joined.
  • @pookieShmukie #16196 02:48 PM, 07 Jun 2017
    Вывалил на github клиент для CH на PHP. https://github.com/the-tinderbox/ClickhouseClient
    GitHub - the-tinderbox/ClickhouseClient: Clickhouse client over HTTP

    Clickhouse client over HTTP. Contribute to the-tinderbox/ClickhouseClient development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @pavel_odintsov #16197 02:53 PM, 07 Jun 2017
    тру!
  • @pookieShmukie #16198 02:58 PM, 07 Jun 2017
    Планировал сегодня выложить билдер запросов в CH для Laravel/Lumen, но к сожалению нам не удалось завершить его сегодня. Полагаю до конца недели мы с ним закончим и выложу на гитхаб.
  • https://t.me/clickhouse_ru
    спасибо
  • @pookieShmukie #16200 03:38 PM, 07 Jun 2017
    Кстати о презентации, есть запись?
  • @153030146 #16201 03:43 PM, 07 Jun 2017
    Кстати о презентации. Есть новости про CH хакатон?
  • @ztlpn #16202 03:54 PM, 07 Jun 2017
    Записи, как я понял, будут за деньги :( Ну и может быть, через некоторое время бесплатно.
  • @r1van #16203 04:00 PM, 07 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16204 04:00 PM, 07 Jun 2017
    конференции с платным видео
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16205 04:00 PM, 07 Jun 2017
    у меня в голове не укладываются такие вещи :/
  • https://t.me/clickhouse_ru
    @Civiloid #16206 04:00 PM, 07 Jun 2017
    Бывают такие странные люди которые считают что конференции могут быть прибыльными и даже кормить организатора
  • https://t.me/clickhouse_ru
    а простите, как оно должно быть по-другому? =)
  • @a_beloglazov #16208 04:03 PM, 07 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16209 04:05 PM, 07 Jun 2017
    это офтоп здесь
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16210 04:07 PM, 07 Jun 2017
    есть множество конференций таких как NANOG, RIPE, ENOG, DNS OARC, которые ставят во главу угла все же распространение знаний, а не бабло :)
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #16207 #16211 04:12 PM, 07 Jun 2017
    на самоокупаемости и волоентерах, иначе оно превратится в рекламу продуктов от спонсоров
  • @sr_maks1 ↶ Reply to #16202 #16212 04:22 PM, 07 Jun 2017
    Учитывая что Алексей говорил про идеи для хакатона и прочее - ребята, простите, но кто же будет потом в этом безобразие участвовать?)
  • @ztlpn ↶ Reply to #16212 #16213 04:23 PM, 07 Jun 2017
    Речь не про хакатон, а про конференцию РИТ++
  • @ztlpn #16214 04:24 PM, 07 Jun 2017
    На которой я рассказал про архитектуру ClickHouse и выложил сегодня презентацию :)
  • @ztlpn #16215 04:24 PM, 07 Jun 2017
    Про хакатон у меня нет информации
  • @sr_maks1 ↶ Reply to #16213 #16216 04:25 PM, 07 Jun 2017
    понятно. Тут тоже неоднозначно то всё.
  • @sr_maks1 #16217 04:27 PM, 07 Jun 2017
    Иногда (в очень редких а порой в очень очень редких случаях) презентации могут как то быть такими же полезными как и само выступление.Поэтому презентация без выступления это как туманный альбион без тумана)
  • @sr_maks1 ↶ Reply to #16204 #16218 04:28 PM, 07 Jun 2017
    😊 ни разу не встречал такое за 10+ лет работы в IT
  • https://t.me/clickhouse_ru
    @ikrasinsky #16220 05:04 PM, 07 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16221 05:05 PM, 07 Jun 2017
    ооо, Илья, такие люди) привет со СГАУ))
  • https://t.me/clickhouse_ru
    @yuyugame #16222 05:32 PM, 07 Jun 2017
    Поясните, pls : доках написано, что в таблицы с движком ENGINE=SET можно добавлять данные через INSERT. А если надо удалить ненужный элемент из множества? Только через DROP TABLE ?
    И вопрос вдогонку: каковы практические ограничения/рекомендации на размеры SET таблиц?
  • @akrolman #16223 05:35 PM, 07 Jun 2017
    Joined.
  • //оффтоп
    Highload - первое, что сразу вспоминается
  • @DigDiver #16225 05:41 PM, 07 Jun 2017
    Вечер добрый всем. А можно ли как-то прочитать данные из таблицы "задом-наперед". Хочется отобразить live feed, чтобы последние записи появлялись вверху. Если делать так:
    select date, event from events
    where date > '2017-06-01'
    order by date DESC
    limit 15
    то CH читает все данные с указанной даты, затем делает сортировку по дате в обратном порядке. Получается, вместо того, чтобы прочитать последние 15 записей, мы читаем все с заданной даты, и этих данных может быть очень много. Кто как решает подобные задачи?
  • https://t.me/clickhouse_ru
    @maxlapshin #16226 06:11 PM, 07 Jun 2017
    за КХ не скажу, но вот так, как вы описали, поступает мускль, а постгрес читает по индексу на date назад и как правило с первого блока набирает первую страницу
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #16224 #16227 06:25 PM, 07 Jun 2017
    Так про него и была речь
  • https://t.me/clickhouse_ru
    @evervoid #16228 06:37 PM, 07 Jun 2017
    Ребята, такой вопрос.
    Что будет, если писать в Date поле случайные равномерно распределенные числа?
    Не спрашивайте зачем :)
  • @iamigor #16229 06:38 PM, 07 Jun 2017
    ну, можно проверить

    будет либо 0000-00-00, либо нормльная дата
  • @iamigor #16230 06:39 PM, 07 Jun 2017
    toDate(rand()): 2014-12-26
    toDate(0): 0000-00-00
    toDate(1): 1970-01-02
    toDate(23011): 2033-01-01
    toDate(65535): 0000-00-00
  • https://t.me/clickhouse_ru
    @evervoid #16231 06:39 PM, 07 Jun 2017
    Имею в виду то самое date поле в движке MergeTree. Какое будет поведение кликхауса в этом случае, в плане хранения данных, индексации и поиска.
  • @iamigor #16232 06:42 PM, 07 Jun 2017
    ну можно же проверить легко
  • @iamigor #16233 06:42 PM, 07 Jun 2017
    CREATE TABLE datetest (date Date, s String) ENGINE=MergeTree(date, (date, s), 8192);

    INSERT INTO datetest VALUES (0, '0'), (1, '1'), (10000, '10000'), (23011, '23011'), (65535, '65535'), (99999999999, '99999999999');

    SELECT * FROM datetest;

    SELECT partition, name, active, table, min_date, max_date FROM system.parts WHERE table = 'datetest';
  • @ztlpn #16234 06:43 PM, 07 Jun 2017
    Всё будет плохо - данные попадут в разные месяца, а значит в разные партиции. Мержиться ничего не будет, и селекты будут тормозить.
  • @ztlpn #16235 06:43 PM, 07 Jun 2017
    А всё-таки, зачем? :)
  • @iamigor ↶ Reply to #16234 #16236 06:44 PM, 07 Jun 2017
    смотря в каком диапазоне числа еще, есть вероятность падать в одну партицию 197001 %)
  • @ztlpn #16237 06:44 PM, 07 Jun 2017
    Это да
  • https://t.me/clickhouse_ru
    @evervoid #16238 06:47 PM, 07 Jun 2017
    Если я скажу, вы мне все равно не поверите:)
    Я же правильно понимаю, что все будет ок для случая, когда мы заранее знаем конкретный месяц и не выбираем данные, попадающие в 2 месяца сразу?
  • @iamigor #16239 06:48 PM, 07 Jun 2017
    эээ.. а чего хочется добиться-то в итоге?
  • @iamigor #16240 06:48 PM, 07 Jun 2017
    типа, собственное партицирование по фейковым месяцам?
  • https://t.me/clickhouse_ru
    @evervoid #16241 06:48 PM, 07 Jun 2017
    Да
  • @iamigor #16242 06:48 PM, 07 Jun 2017
    чтобы селекты не запрашивали две партиции?
  • @iamigor #16243 06:48 PM, 07 Jun 2017
    а :)
  • @iamigor #16244 06:49 PM, 07 Jun 2017
    ну да, это должно работать норм, если вам так будет удобно
  • https://t.me/clickhouse_ru
    @orantius #16245 06:49 PM, 07 Jun 2017
    данные, попадающие в два месяца сразу? оО
  • @iamigor #16246 06:49 PM, 07 Jun 2017
    там вроде к концу года обещали сделать произвольное партицирование
  • https://t.me/clickhouse_ru
    @evervoid #16247 06:50 PM, 07 Jun 2017
    Имеллсь в виду,что не запрашиваем данные из нескольких месяцев сразу :)
  • https://t.me/clickhouse_ru
    @evervoid #16248 06:50 PM, 07 Jun 2017
    Спасибо огромное! Попробуем
  • https://t.me/clickhouse_ru
    @evervoid #16249 06:52 PM, 07 Jun 2017
    И еще +1 к легиону ждунов произвольного партиционирования
  • https://t.me/clickhouse_ru
    @feriat #16250 08:17 PM, 07 Jun 2017
    Привет! А какой самый правильный способ скопировать таблицу из одного кластера в другой, если нет доступа до диска серверов, чисто по http api? Видимо CREATE TABLE table AS SELECT * from remote('address', db.table) ?
  • https://t.me/clickhouse_ru
    @boris_o #16251 08:46 PM, 07 Jun 2017
    Синтаксис чуть-чуть другой
    CREATE TABLE table engine = Engine AS SELECT * from remote('host', 'db', 'table', 'login', 'password')
  • https://t.me/clickhouse_ru
    @vzubkov #16252 09:00 PM, 07 Jun 2017
    Joined.
  • @f1yegor #16253 09:57 PM, 07 Jun 2017
    как лучше расследовать если query стали выполняться в разы медленнее?
  • @f1yegor #16254 10:09 PM, 07 Jun 2017
    такое ощущение что кардинально поменялся характер нагрузки, но отдельные query я еще не сравнивал
  • @f1yegor #16255 10:10 PM, 07 Jun 2017
    SELECT
    count(),
    avg(query_duration_ms),
    avg(read_rows),
    avg(memory_usage)
    FROM system.query_log
    WHERE (event_date = today()) AND (type = 2)

    ┌─count()─┬─avg(query_duration_ms)─┬────avg(read_rows)─┬─avg(memory_usage)─┐
    │ 58430 │ 600.8495635803525 │ 1666922.955279822 │ 94408267.76395687 │
    └─────────┴────────────────────────┴───────────────────┴───────────────────┘
  • @f1yegor #16256 10:10 PM, 07 Jun 2017
    вчера
  • @f1yegor #16257 10:10 PM, 07 Jun 2017
    SELECT
    count(),
    avg(query_duration_ms),
    avg(read_rows),
    avg(memory_usage)
    FROM system.query_log
    WHERE (event_date = yesterday()) AND (type = 2)

    ┌─count()─┬─avg(query_duration_ms)─┬────avg(read_rows)─┬─avg(memory_usage)─┐
    │ 58577 │ 27.065093808149957 │ 57156.20260511805 │ 73023700.41504344 │
    └─────────┴────────────────────────┴───────────────────┴───────────────────┘
  • 08 June 2017 (190 messages)
  • https://t.me/clickhouse_ru
    @maxlapshin #16258 06:03 AM, 08 Jun 2017
    Если ничего не поможет, то могу поискать у нас в вики инструкции, как узнать, что в vfs кеше
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #16254 #16259 06:09 AM, 08 Jun 2017
    Я думаю одни из первых вопросов которые тут зададут - версия кх и сколько кусков не смержено?
  • @f1yegor #16260 06:18 AM, 08 Jun 2017
    198, как узнать сколько кусков? Мержи в это время уже не шли
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #16260 #16261 06:21 AM, 08 Jun 2017
    Может стоит обновиться до последнего стейбла и сделать оптимайз?
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #16260 #16262 06:22 AM, 08 Jun 2017
    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
    @Civiloid #16263 06:22 AM, 08 Jun 2017
    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
    @Civiloid #16264 06:23 AM, 08 Jun 2017
    Второе про куски, первое про мержи которые идут
  • https://t.me/clickhouse_ru
    @Civiloid #16266 07:43 AM, 08 Jun 2017
    @miptgirl спам ^
  • https://t.me/clickhouse_ru
    @elBroom #16267 07:51 AM, 08 Jun 2017
    Возможно ли в запросе сделать разделителем десятичного числа вместо точки запятой?
  • @pookieShmukie #16268 07:52 AM, 08 Jun 2017
    Там вроде были функции для работы с регулярками
  • replaceRegexpOne можно использовать и регулярку типа /(\d)(?=(\d\d\d)+([^\d]|$))/ в качестве замены например "$1 "
  • @pookieShmukie #16270 07:54 AM, 08 Jun 2017
    Сам не пробовал, это чисто предположение
  • https://t.me/clickhouse_ru
    @yuyugame #16271 08:00 AM, 08 Jun 2017
    Что-то я не понимаю: это баг или фича?

    Есть 2 таблицы - одна обычная, другая с движком Set:

    USE proba
    SHOW CREATE TABLE set_1
    CREATE TABLE proba.set_1 ( d UInt32, i UInt32) ENGINE = Set
    SHOW CREATE TABLE test
    CREATE TABLE proba.test ( dev UInt32, idx UInt32) ENGINE = Memory

    Такая выборка работает:
    SELECT * FROM test WHERE (dev,idx) IN set_1 FORMAT CSV
    1,11

    А эта вылетает:
    SELECT * FROM test where (dev,idx) IN proba.set_1 FORMAT CSV
    Received exception from server:
    Code: 60. DB::Exception: Received from localhost:9000, ::1. DB::Exception: Table proba.proba.set_1 doesn't exist..

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

    Вроде же синтаксис для имён таблиц такой: [db.]name
    Или есть ньюансы?
  • https://t.me/clickhouse_ru
    @elBroom #16272 08:10 AM, 08 Jun 2017
    Возможно проще преобразовать разделитель, не приводя float к строке?
    SELECT replaceRegexpOne(toString(toFloat32(12.1)), '(\\d+)\\.(\\d+)', '\\1,\\2') AS number
  • @f1yegor ↶ Reply to #16261 #16273 08:12 AM, 08 Jun 2017
    мержей активных нет, количество кусков для каждого месяца - 4-14 штук. оптимайз части таблиц я сделал для предыдущих месяцев
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #16273 #16274 08:13 AM, 08 Jun 2017
    просто первая идея которая лезет в голову - что что-то пошло не так с мержем последних кусков и их слишком много
  • @f1yegor #16275 08:14 AM, 08 Jun 2017
    да, я это понимаю. сегодня если повторится - буду анализировать изменились ли запросы. хотя не должны
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #16275 #16276 08:15 AM, 08 Jun 2017
    а сейчас скорость нормализировалась?
  • @f1yegor #16277 08:19 AM, 08 Jun 2017
    пока что нет особой нагрузки.
  • Думаю нет :) Все таки разделить на разряды - это строка получится в любом случае. Clickhouse строго типизирован
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #16277 #16279 08:23 AM, 08 Jun 2017
    И в любом случаи стоит обновиться на последний стейбл
  • @f1yegor #16280 08:57 AM, 08 Jun 2017
    существует ли сейчас возможность запускать что-то, чтобы как select * from system.processes, но для всех нод в кластере?
  • https://t.me/clickhouse_ru
    мб создать дистрибьютед таблицу поверх processes?
  • @f1yegor #16282 08:59 AM, 08 Jun 2017
    насколько я понимаю тогда я не смогу различить процессы на разных нодах?
  • https://t.me/clickhouse_ru
    @hagen1778 #16283 09:01 AM, 08 Jun 2017
    есть ведь client_hostname поле
  • @f1yegor #16284 09:01 AM, 08 Jun 2017
    ок, попробую
  • https://t.me/clickhouse_ru
    @lizikk #16285 10:41 AM, 08 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @srgkm #16286 10:57 AM, 08 Jun 2017
    Добрый день! Раньше где-то видел ссылку на changelog, но сейчас ничего похожего найти не могу =( https://github.com/yandex/ClickHouse/releases/tag/v1.1.54236-stable — как понять, что изменилось не изучая все коммиты?
    yandex/ClickHouse

    ClickHouse is a free analytic DBMS for big data.

  • @pookieShmukie #16287 10:58 AM, 08 Jun 2017
    Кстати да, интересный вопрос )
  • @f1yegor #16288 11:06 AM, 08 Jun 2017
  • @f1yegor #16289 11:06 AM, 08 Jun 2017
    ClickHouse Release Notes

    ClickHouse is an exellent DBMS with very smart people working on it. Unfortunately, it still lacks some important communication procedures, and arguable the most wanted one is release notes.  Altinity mission is to make ClickHouse use easy for everbody, and we will try to fill the gap betwe

  • https://t.me/clickhouse_ru
    @srgkm #16290 11:09 AM, 08 Jun 2017
    @f1yegor спасибо
  • https://t.me/clickhouse_ru
    @rlipovsky #16291 11:28 AM, 08 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @pavel_velikhov #16292 11:55 AM, 08 Jun 2017
    Joined.
  • @cosmokit #16293 12:42 PM, 08 Jun 2017
    Joined.
  • @Valeriy_Bykov #16294 01:00 PM, 08 Jun 2017
    Мб со страницы со старой необновляемой (так ведь?) документацией https://clickhouse.yandex/reference_ru.html сделать редирект на новую обновляемую https://clickhouse.yandex/docs/ru/single/ ?
    Документация ClickHouse | Документация ClickHouse

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

  • @Valeriy_Bykov #16295 01:04 PM, 08 Jun 2017
    А то случайно выяснилось, что я уже давно устаревшей пользуюсь :( Правда, новая тормозит нещадно, так что мб лучше продолжить пользоваться старой.
  • @f1yegor ↶ Reply to #16281 #16296 01:07 PM, 08 Jun 2017
    мб кому пригодится
    CREATE TABLE system.query_log_all AS system.query_log ENGINE = Distributed(cluster, system, query_log, rand());
  • @f1yegor #16297 01:08 PM, 08 Jun 2017
    я правда не уверен что это хорошая идея создавать это в system db
  • https://t.me/clickhouse_ru
    да, тоже такое сделал на прошлой неделе. Можно мониторить кол-во запросов с кластера:
    $rateColumns(
    concat(substring(query, 1, 45), '...') AS query,
    count() c)
    FROM $table

    SELECT
    $timeSeries as t,
    avg(query_duration_ms) select_duration
    FROM $table
    WHERE $timeFilter AND type = 2
    and query like 'SELECT%'
    GROUP BY t
    ORDER BY t
  • @cosmokit #16299 01:11 PM, 08 Jun 2017
    у кого-то есть опыт логирования урлов для группировки по параметрам урла?
  • @f1yegor #16300 01:13 PM, 08 Jun 2017
    да, у меня что-то типа такого и получилось
  • @f1yegor ↶ Reply to #16298 #16301 01:14 PM, 08 Jun 2017
    а оно работает нормально? у меня только это заработало
  • @f1yegor #16302 01:14 PM, 08 Jun 2017
    $rateColumns(type, sum(query_duration_ms) c) FROM system.query_log_all WHERE $timeFilter
  • https://t.me/clickhouse_ru
    @hagen1778 #16303 01:15 PM, 08 Jun 2017
    да, а почему Вы думаете, что что-то может пойти не так?
  • @f1yegor #16304 01:15 PM, 08 Jun 2017
    наверное потому что что-то не так пошло)
  • https://t.me/clickhouse_ru
    @hagen1778 #16305 01:15 PM, 08 Jun 2017
    WHERE $timeFilte
    не нужен
  • https://t.me/clickhouse_ru
    @hagen1778 #16306 01:15 PM, 08 Jun 2017
    он подставляется
  • @f1yegor #16307 01:16 PM, 08 Jun 2017
    вот так получилось
  • @f1yegor #16308 01:16 PM, 08 Jun 2017
    SELECT
    $timeSeries as t,
    avg(query_duration_ms) select_duration
    FROM system.query_log_all
    WHERE $timeFilter AND type = 2
    and query like 'SELECT%'
    GROUP BY t
    ORDER BY t
  • @f1yegor #16309 01:21 PM, 08 Jun 2017
    тут мне говорят что у меня старая версия плагина, так что простой копипаст может не работать!
  • https://t.me/clickhouse_ru
    @archimed_shaman #16310 02:02 PM, 08 Jun 2017
    Joined.
  • @IgorVakhotin #16311 02:13 PM, 08 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #16299 #16312 02:18 PM, 08 Jun 2017
    extract(x, "([^=]+)=") + extractURLParameters
  • https://t.me/clickhouse_ru
    @alexfed90 #16313 02:20 PM, 08 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @alexfed90 #16314 02:21 PM, 08 Jun 2017
    всем привет. кто-нибудь подключал здесь odbc драйвер на винде? пытались подключить его к spss моделлеру - ничего не вышло. скачивали сборку из гитхаба последнюю
  • @DenysLamanov #16315 02:21 PM, 08 Jun 2017
    JDBC драйвер прекрасно работает с DBeaver под Windows
  • https://t.me/clickhouse_ru
    @alexfed90 #16316 02:23 PM, 08 Jun 2017
    нужен конкретно odbc драйвер. с jdbc делали подключение через плагин для языка R.
  • @cosmokit #16317 02:23 PM, 08 Jun 2017
    оке. допустим параметры хранятся в филде типа Array. как правильно указать условия WHERE и GROUP BY если нужна группировка по переменным с конкретными значениями? SELECT * FROM table WHERE urlvar IN (1,2,3) GROUP BY urlvar
  • https://t.me/clickhouse_ru
    @alexfed90 #16318 02:24 PM, 08 Jun 2017
    можете подсказать к кому обратиться по вопросу с odbc? если помогут разобраться - могу сделать PR с описание как его собрать/настроить
  • @f1yegor #16319 02:25 PM, 08 Jun 2017
    сделал такую штуку,
  • @f1yegor #16320 02:25 PM, 08 Jun 2017
    CREATE TABLE system.query_log_all AS system.query_log ENGINE = Distributed(cluster, system, query_log, rand());

    CREATE TABLE system.processes_all AS system.processes ENGINE = Distributed(cluster, system, processes, rand());
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #16317 #16321 02:26 PM, 08 Jun 2017
    давайте начнем немного с начала. у вас есть таблица, в ней одна строка это нечто с урлом. также у вас есть колонка Array(String) с параметрами, например с их именами. а рядом, можно предположить, есть еще одна колонка с значениями, тоже Array(String), в хорошем случае такой же длины как первый.
  • @f1yegor #16322 02:26 PM, 08 Jun 2017
    но непонятно как отличать запросы на разных нодах друг от друга
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #16317 #16323 02:28 PM, 08 Jun 2017
    и вот вы хотите какой-то отчет, например select k, count() from urls array join Param.Keys as k, Param.Values as v where k in ('1','2','3') group by k. а может быть нет.
  • @cosmokit #16324 02:32 PM, 08 Jun 2017
    такой запрос теряет смысл, потому что нет привязки между урлами и Param.Keys и Param.Values. Не факт, что в урле вообще будут какие-то параметры. Смысл в получении отчета по трафику, который пришел с урла с определенными переменными в урле и их значениями.
  • https://t.me/clickhouse_ru
    @orantius #16325 02:34 PM, 08 Jun 2017
    ну так если у урла нет параметров, то он явно не относится к этому трафику.
  • @cosmokit #16326 02:34 PM, 08 Jun 2017
    раньше для таких репортов в мускуле пришлось завести отдельные таблицы, которые мержились с основной статой по primary key
  • https://t.me/clickhouse_ru
    @orantius #16327 02:34 PM, 08 Jun 2017
    а что такое "отчет по трафику"
  • https://t.me/clickhouse_ru
    Мы еще добавляем node, чтоб ы можно было из одного места смотреть все и в разбивке по нодам. Для этого на каждой ноде создается view, где в node прописано имя ноды, а потом уже distributed смотрит на все вместе
  • https://t.me/clickhouse_ru
    @orantius #16329 02:35 PM, 08 Jun 2017
    может вам нужно arrayExists(x,y-> x='k' and y='v', Param.Key, Param.Value) ?
  • @cosmokit #16330 02:36 PM, 08 Jun 2017
    имеется ввиду таблица MergeTree, в которую сливается стата по импрешенам-кликам, и в которую пишутся страна, ось, браузер и тд и тп
  • https://t.me/clickhouse_ru
    @orantius #16331 02:37 PM, 08 Jun 2017
    вам по параметрам урлов надо группировать или фильтровать?
  • @cosmokit #16332 02:38 PM, 08 Jun 2017
    и то и другое.
  • https://t.me/clickhouse_ru
    @orantius #16333 02:39 PM, 08 Jun 2017
    и что именно у вас не получается?
  • @cosmokit #16334 02:40 PM, 08 Jun 2017
    не могу понять как правильно запрос формировать к фиелду типа Array
  • А это чтобы достать список процессов на всех нодах кластера?
  • @cosmokit #16336 02:40 PM, 08 Jun 2017
    чтоб и фильтровать и группировать
  • https://t.me/clickhouse_ru
    @taroff #16337 02:41 PM, 08 Jun 2017
    можно кстати сложить их допольнительными строками в БД, вместо Array
  • https://t.me/clickhouse_ru
    @taroff #16338 02:41 PM, 08 Jun 2017
    тогда с группировкой и фильтрацией попроще
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16339 02:42 PM, 08 Jun 2017
    мне хочется странной визуализиации в кликхаусе, у меня около 15ти числовых полей (32 бита) в базе, я хочу делать отражения в 3х мерное пространство трех заданных полей.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16340 02:43 PM, 08 Jun 2017
    и хочу видеть это на 3х мерной картинке с возможностью ее покрутить
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #16336 #16341 02:43 PM, 08 Jun 2017
    хорошо, а если бы эти параметры лежали в другой таблице 1 ко многим, вы бы как этот запрос написали?
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #16339 #16342 02:44 PM, 08 Jun 2017
    казалось бы, причем здесь кликхаус.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16343 02:44 PM, 08 Jun 2017
    тут много плагинов для визуализации обсуждается
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16344 02:46 PM, 08 Jun 2017
    для 2х мерного случая я абсолютно рад графане, но для 3д в голову не приходит ничего
  • https://t.me/clickhouse_ru
    @orantius #16345 02:46 PM, 08 Jun 2017
    последнее куда я данные заливал, был projector.tensorflow.org , можно сразу в 15 измерениях PCA построить или t-SNE
  • https://t.me/clickhouse_ru
    @orantius #16346 02:47 PM, 08 Jun 2017
    хотя он немного не для этого.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16347 02:50 PM, 08 Jun 2017
    красиво, но хочется что-то stand alone, в облаке много штук которые это могут, но обычно хочут денег
  • @cosmokit #16348 02:50 PM, 08 Jun 2017
    в текущей реализации, есть основная таблица со статой с primary key statId, таблица urlvars (statid, varid, varval), таблица var (varid, varname). По условию varval и varname выбираются подходящие statId и проводится группировка
  • https://t.me/clickhouse_ru
    @orantius #16349 02:51 PM, 08 Jun 2017
    может вам нужно arrayExists(x,y-> x='k' and y='v', Param.Key, Param.Value) ?
  • @cosmokit #16350 02:53 PM, 08 Jun 2017
    хм... скорее всего. а это сработает если помимо необходимых переменных и значений, в фиелде Array будут другие переменные?
  • @cosmokit #16351 02:54 PM, 08 Jun 2017
    и как можно ускорить работу по этому филду?
  • https://t.me/clickhouse_ru
    @105390624 #16352 02:54 PM, 08 Jun 2017
    Всем привет, скажите пожалуйста для каких целей Вы используюете ClickHouse?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16353 02:55 PM, 08 Jun 2017
    Храню Netflow/sflow телеметрию с сетей в нем ;)
  • Аналитика данных в системах СДО
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #16350 #16355 02:57 PM, 08 Jun 2017
    какие другие? arrayExists выдает true если для хотя бы одного индекса предикат выполнился.
  • https://t.me/clickhouse_ru
    @inv2004 ↶ Reply to #16352 #16356 02:57 PM, 08 Jun 2017
    Пытаюсь запихнуть в КХ маркет-дату.
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #16352 #16357 02:58 PM, 08 Jun 2017
    когда мне скучно, я его ломаю, это поднимает настроение.
  • @cosmokit ↶ Reply to #16352 #16358 02:59 PM, 08 Jun 2017
    логирование траффика для последующего анализа
  • @cosmokit #16359 03:01 PM, 08 Jun 2017
    papa, спасибо, сейчас буду тестить, но видимо это то, что мне нужно!
  • @cosmokit #16360 03:01 PM, 08 Jun 2017
    кликхаус это просто праздник какой-то
  • https://t.me/clickhouse_ru
    @orantius #16361 03:02 PM, 08 Jun 2017
    arratFilter arrayMap тоже могут принимать несколько массивов и лямбду соответствующей арности
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16363 03:05 PM, 08 Jun 2017
    @hagen1778 супер! спасибо!
  • https://t.me/clickhouse_ru
    @hagen1778 #16364 03:05 PM, 08 Jun 2017
    Natel Energy Overview | Grafana Labs

    Data visualization & monitoring with support for Graphite, InfluxDB, Prometheus, Elasticsearch and many more databases

  • https://t.me/clickhouse_ru
    @inv2004 #16365 03:06 PM, 08 Jun 2017
    Вопрос: хочу избежать дублей для таблицы в которой будет храниться словарь. Вроде Set лёг бы идеально, но словари с ним не работают. Вопрос: как бы лучше и быстрее осуществить вставку недублирующих значений, ну или проверку + ставку если нет.
  • @emptyname #16366 03:07 PM, 08 Jun 2017
    Добрый день.

    Каким-нибудь образом реально делать суточные бекапы, учитывая, что партиции бывают только месячные?

    И соответственно вопрос, что если использовать месячные партиции как суточные, имитируя новый месяц каждый день?
  • @sr_maks1 ↶ Reply to #16359 #16367 03:07 PM, 08 Jun 2017
    + Сложные и необычные запросы
  • @sr_maks1 ↶ Reply to #16366 #16368 03:08 PM, 08 Jun 2017
    Все ждут произвольного партицирования...
  • https://t.me/clickhouse_ru
    @Civiloid #16369 03:08 PM, 08 Jun 2017
    очень ждут :(
  • @emptyname #16370 03:09 PM, 08 Jun 2017
    Ага, это я видел :)

    Но теоретически имитация нового месяца вполне рабочий вариант?
  • @emptyname #16371 03:09 PM, 08 Jun 2017
    Начиная с 197001 и вперед
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #16370 #16372 03:09 PM, 08 Jun 2017
    ну в общем работать будет, но месяцев не так чтоб прям очень много будет )
  • https://t.me/clickhouse_ru
    @Civiloid #16373 03:09 PM, 08 Jun 2017
    и вопрос - что делать потом?
  • @emptyname #16374 03:09 PM, 08 Jun 2017
    Ну лет вперед же много )
  • https://t.me/clickhouse_ru
    @Civiloid #16375 03:10 PM, 08 Jun 2017
    так мне кажется в КХ только до 2038 года date сейчас
  • https://t.me/clickhouse_ru
    @Civiloid #16376 03:10 PM, 08 Jun 2017
    хотя я не помню...
  • @sr_maks1 ↶ Reply to #16375 #16377 03:10 PM, 08 Jun 2017
    по крайней мере так написано
  • https://t.me/clickhouse_ru
    @Civiloid #16378 03:10 PM, 08 Jun 2017
    то есть хватит на 816 дней
  • https://t.me/clickhouse_ru
    @Civiloid #16379 03:11 PM, 08 Jun 2017
    условно
  • @sr_maks1 #16380 03:11 PM, 08 Jun 2017
    а там партицирование заработает))
  • https://t.me/clickhouse_ru
    @Civiloid #16381 03:11 PM, 08 Jun 2017
    ага, но потом переделывать все )
  • @emptyname #16382 03:11 PM, 08 Jun 2017
    ну то есть если нужны данные за 2 года, можно по модулю 365*2 даты ротировать :)
  • @emptyname #16383 03:11 PM, 08 Jun 2017
    дропая старые партиции
  • @emptyname #16384 03:11 PM, 08 Jun 2017
    это конечно не очень классно, но ждать тоже неклассно )
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16385 03:12 PM, 08 Jun 2017
    иногда подождать - лучшее решение
  • https://t.me/clickhouse_ru
    @Civiloid #16386 03:12 PM, 08 Jun 2017
    нужно как-то в софте поддерживать маппинг 1970-01 в реальную дату
  • https://t.me/clickhouse_ru
    @Civiloid #16387 03:12 PM, 08 Jun 2017
    еще и консистентно везде
  • @emptyname #16388 03:12 PM, 08 Jun 2017
    Ну это реалистично. Неудобно конечно.

    В принципе можно конечно итеративно снимать бекап месяца, просто к концу месяца он уже будет совсем большой
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16389 03:13 PM, 08 Jun 2017
    или использовать дедупликацию в бэкапе
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16390 03:13 PM, 08 Jun 2017
    хотя бы на блочном уровне
  • @emptyname #16391 03:13 PM, 08 Jun 2017
    Хм. А поподробнее?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16392 03:14 PM, 08 Jun 2017
    ну если система бэкапа умеет поблочную дедупликацию, то можно делать бэкап каждый день, но по факту будет добавляться лишь вновь добавленная информация
  • @emptyname #16393 03:14 PM, 08 Jun 2017
    а система бекапа = это не FREEZE PARTITION?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16394 03:15 PM, 08 Jun 2017
    ага, консистентности так или иначе надо как-то добиваться
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16395 03:15 PM, 08 Jun 2017
    ну или LVM snapshot / ZFS snapshot и разморозка сразу же
  • https://t.me/clickhouse_ru
    Для разных вещей: список процессов, список запросов, колонки и таблицы -- чтобы можно было с одного места увидеть все, сравнить между нодами и т.п.
  • https://t.me/clickhouse_ru
    @alexanderzaitsev #16397 03:22 PM, 08 Jun 2017
    В общем, наверное, все таблицы из system.*
  • Интересно насколько реализация в tabix хуже, я сделал так: SELECT * FROM remote('_NODES_LIST_',system.processes)
    где в nodes перечислены все узлы кластера через запятую
    На наших 12ти нодах на ура работает ))
  • @emptyname #16399 03:25 PM, 08 Jun 2017
    а если суточный бекап снимать как
    select * from table where date = ? into outfile ...
    что об этом подумает кликхаус?)
  • https://t.me/clickhouse_ru
    @inv2004 ↶ Reply to #16399 #16400 03:26 PM, 08 Jun 2017
    А как его потом обратно вставлять?
  • @emptyname #16401 03:31 PM, 08 Jun 2017
    если случилась жопа и нужны бекапы, то видимо скриптом батчить инзерты?
  • @cosmokit #16402 03:34 PM, 08 Jun 2017
    хороший вопрос. или например на ноде посыпался винт
  • @emptyname #16403 03:35 PM, 08 Jun 2017
    у нас RAID-10, надо успеть заменить его :)
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16404 03:35 PM, 08 Jun 2017
    если железо позволяет проще лить на два сервера одини и те же данные
  • @emptyname #16405 03:35 PM, 08 Jun 2017
    мы так и делаем
  • @emptyname #16406 03:36 PM, 08 Jun 2017
    но хочется иметь бекапы на случай ядерной войны
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16407 03:36 PM, 08 Jun 2017
    хочется еще долгие бэкапы?
  • @emptyname #16408 03:36 PM, 08 Jun 2017
    ага
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16409 03:36 PM, 08 Jun 2017
    на случай ядерной войны консервы и патроны лучше)
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16410 03:36 PM, 08 Jun 2017
    а так, да, оправдано
  • @emptyname #16411 03:37 PM, 08 Jun 2017
    сливать их куда-нибудь в coldline гуглу и быть уверенным, что даже если оба ДЦ умрут, данные не похерятся
  • @emptyname #16412 03:37 PM, 08 Jun 2017
    осталось понять как их сливать
  • @emptyname #16413 03:42 PM, 08 Jun 2017
    Ну в принципе можно конечно по итогу месяца сливать партишн, а в рамках месяца сливать в csv
  • @emptyname #16414 03:42 PM, 08 Jun 2017
    тогда восстановление будет аттачем старых партишнов и инзертом недавних данных
  • А можно уточнить, что под timestamp тут подразумеваеться? Unix epoch?
  • https://t.me/clickhouse_ru
    @taroff #16416 04:06 PM, 08 Jun 2017
    да, тоже самое наблюдал, предварительный конверт в строку ускряет вставку в 6 раз
  • @pookieShmukie #16417 04:07 PM, 08 Jun 2017
    Я на самом деле еще не смог упереться в какой то потолок при вставке данных
  • @cosmokit #16418 04:07 PM, 08 Jun 2017
    думаю этот вопрос задавали, но спрошу - имеет ли смысл использование star schema? типа хранить численные айди в кликхаус, а значение, например, в мускуле?
  • How setting the TZ environment variable avoids thousands of system calls

    TL;DR This blog post explains how setting an environment variable can save thousands (or in some cases, tens of thousands) of unnecessary system calls that can be generated by glibc over small periods of time. This has been tested on Ubuntu Precise (12.04) and Ubuntu Xenial (16.04). It likely applies to other flavors of Linux, as well. It is very easy to test if this applies to you and to correct it, if so. Keep reading for more details!

  • @pookieShmukie #16420 04:08 PM, 08 Jun 2017
    200 потоков, 3 сервера, пишу в distributed таблицу. Пробивал потолок в 10кк в минуту
  • @pookieShmukie #16421 04:09 PM, 08 Jun 2017
    Хотя пиковая нагрузка 4кк в минуту
  • https://t.me/clickhouse_ru
    @taroff ↶ Reply to #16419 #16422 04:11 PM, 08 Jun 2017
    спс за инфо, возможно
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16423 04:13 PM, 08 Jun 2017
    со временем надо быть предельно аккуратными, даже в С/С++ легко отрелить себе что-нибудь полезное
  • @yamlcoder #16424 04:13 PM, 08 Jun 2017
    "даже"? :)
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16425 04:14 PM, 08 Jun 2017
    ну я про производительность, обычно они дьяволски быстры на фоне всего прочего)
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16426 04:14 PM, 08 Jun 2017
    а вот время... была у меня статейка
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16427 04:16 PM, 08 Jun 2017
    On Linux vDSO and clock_gettime sometimes being slow

    Like the previous post on this somewhat dormant blog, I want to share an oddity I discovered that no search engine could really find for me...

  • https://t.me/clickhouse_ru
    @pavel_odintsov #16428 04:16 PM, 08 Jun 2017
    во
  • @yamlcoder #16429 04:18 PM, 08 Jun 2017
    оно еще и в Xen не через vdso
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16430 04:19 PM, 08 Jun 2017
    виртуализация вообще дьявольщина, я каждый раз разубеждаю юзать любую) чистое железо предсказуемее всего, как ни странно
  • @yamlcoder #16431 04:20 PM, 08 Jun 2017
    а куда без нее, с железками мороки много
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16432 04:21 PM, 08 Jun 2017
    https://github.com/yandex/ClickHouse/issues/371 мб тикет уже закрыть надо, поидее исправлено?
    Security issue: bind 127.0.0.1 only for unsecured database · Issue #371 · yandex/ClickHouse

    Hello, I install ClickHouse on the debian server, and play around according the guides. Thanks for the great product! I find ClickHouse server bind to 0.0.0.0 by default, and all databases are unse...

  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #16431 #16433 04:21 PM, 08 Jun 2017
    Так все равно с ним кто то будет разбираться
  • https://t.me/clickhouse_ru
    @Civiloid #16434 04:21 PM, 08 Jun 2017
    Не ты, так провайдер, но за твои деньги
  • @yamlcoder #16435 04:21 PM, 08 Jun 2017
    конечно будет. кто-то, но не все :)
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #16435 #16436 04:22 PM, 08 Jun 2017
    А это от процессов зависит
  • https://t.me/clickhouse_ru
    @Civiloid #16437 04:22 PM, 08 Jun 2017
    При наличии людей, можно вполне выделить команду которая занимается железом
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16438 04:23 PM, 08 Jun 2017
    а ссд еще сильнее снижают сложность обслуживания
  • @ztlpn ↶ Reply to #16416 #16439 04:32 PM, 08 Jun 2017
    Вставка через VALUES?
  • https://t.me/clickhouse_ru
    @taroff #16440 04:32 PM, 08 Jun 2017
    да
  • @ztlpn #16442 04:36 PM, 08 Jun 2017
    Тогда резолв таймзоны ни при чём (в ClickHouse он всё равно один раз делается). При парсинге VALUES используются два парсера - быстрый и медленный, который включается при ошибках в быстром, зато умеет выражения. Для DateTime строка 'YYYY-MM-DD HH:MM:SS' считается нативным форматом, а unix timestamp - "выражением". Поэтому во втором случае используется медленный парсер.
  • https://t.me/clickhouse_ru
    @kemsa #16443 04:38 PM, 08 Jun 2017
    Стоит смотреть, он развивается. На подходе приятные киллерфичи)
  • https://t.me/clickhouse_ru
    @taroff ↶ Reply to #16442 #16444 04:39 PM, 08 Jun 2017
    это бы в документацию, я случайно обнаружил )
  • @ztlpn #16445 04:39 PM, 08 Jun 2017
    согласен :)
  • @lexa_work #16446 04:42 PM, 08 Jun 2017
    Спасибо за рязъяснения с DateTime
  • @Nikqwag #16447 04:52 PM, 08 Jun 2017
    На вокзале
  • @cosmokit #16448 04:59 PM, 08 Jun 2017
    когда поезд?
  • @Nikqwag #16449 05:09 PM, 08 Jun 2017
    Дык уже) Извините, промахнулся на радостях, что странность такая же с dateTime выходила.
  • 09 June 2017 (64 messages)
  • @pookieShmukie #16450 06:08 AM, 09 Jun 2017
    Всем доброго времени суток! Кто-то занимался переносом данных с одного сервера на другой? Нужно кусок данных перекинуть на другой сервер. Лучше через select ... into outfile ?
  • @iamigor #16451 06:11 AM, 09 Jun 2017
    Привет! А какой самый правильный способ скопировать таблицу из одного кластера в другой, если нет доступа до диска серверов, чисто по http api? Видимо CREATE TABLE table AS SELECT * from remote('address', db.table) ?
  • @iamigor #16452 06:11 AM, 09 Jun 2017
    Синтаксис чуть-чуть другой
    CREATE TABLE table engine = Engine AS SELECT * from remote('host', 'db', 'table', 'login', 'password')
  • @iamigor #16453 06:12 AM, 09 Jun 2017
    либо, как в документации, сразу партиции перетаскивать
  • @pookieShmukie #16454 06:12 AM, 09 Jun 2017
    Спасибо! Тут проблемка ) Сервера в разных подсетях ( Возможности доступа из одной в другую нет
  • @pookieShmukie #16455 06:12 AM, 09 Jun 2017
    Просто мне надо не все данные
  • @iamigor #16456 06:12 AM, 09 Jun 2017
    detach / attach
  • @pookieShmukie #16457 06:12 AM, 09 Jun 2017
    Ок, попробую с партициями поиграться, спасибо!
  • @iamigor #16458 06:14 AM, 09 Jun 2017
    если надо меньше данных, чем в партиции, тогда да, наверное сдампить все что нужно в файл (в формате Native вроде лучше всего) и инсертнуть в нем же на другом серваке
  • @pookieShmukie #16459 06:15 AM, 09 Jun 2017
    Просто у меня там данные по разных объектам, а мне по сути только по одному нужно. Так что лучше наверное дамп будет
  • https://t.me/clickhouse_ru
    @mitrofanovnk #16460 07:46 AM, 09 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @alexfed90 #16461 07:49 AM, 09 Jun 2017
    так я переливал данные большого объема(70 ГБ кусок)

    nohup curl -v -T test351560.csv -X POST 'http://username:passwordg@domain.ru:8123/?query=insert%20into%20customer360.agg_pm_kpi_weekly_prp_dist%20format%20CSV' -H "Transfer-Encoding: chunked" -H 'Expect:' &
  • https://t.me/clickhouse_ru
    @alexfed90 #16462 07:50 AM, 09 Jun 2017
    здесь объем может быть любым, в ограничение по оперативной памяти не упрётесь
  • @pookieShmukie #16463 07:52 AM, 09 Jun 2017
    Супер! Спасибо большое!
  • @pookieShmukie #16464 07:52 AM, 09 Jun 2017
    Выгрузил пока данные в Native формате, зажал и перекинул куда надо. Данных примерно 100 гигов всего в общей сложности, мне надо было только часть перекинуть
  • @enetrebko #16465 08:48 AM, 09 Jun 2017
    Joined.
  • @352494346 #16466 09:20 AM, 09 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16467 09:47 AM, 09 Jun 2017
    спамеры набегают я смотрю :/
  • https://t.me/clickhouse_ru
    @badgersow #16468 11:32 AM, 09 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @yuyugame #16469 12:02 PM, 09 Jun 2017
    Можно для поля Enum типа прописывать default значения, чтобы строки не из enum-списка не кидали exception?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #16469 #16470 12:05 PM, 09 Jun 2017
    деволтное занчение, оно же на случай отсутствия значения в insert
  • https://t.me/clickhouse_ru
    @yuyugame ↶ Reply to #16470 #16471 12:10 PM, 09 Jun 2017
    Может я не так сформулировал вопрос. Мне надо, чтобы при парсинге входного json для неизвестных значений поставлялось что-то из списка допустимых, а не кидалось исключение.
  • @e11it #16472 12:33 PM, 09 Jun 2017
    Привет!

    Подскажите плиз.
    Есть географически удаленный кластер КХ. Для заливки данных в него развернутся машина и создана Distributed таблица.
    Наблюдаю следующую проблему, в таблицу вставили большую пачку строк и данные не утекают на целевые сервера кластера, в логах:

    2017.06.09 15:24:46.867466 [ 395 ] <Trace> dd.Distributed.DirectoryMonitor: Started processing `/var/lib/clickhouse/data/sample/dd/default:NotARealPassord@192%2E168%2E98%2E106:9000/66972.bin`
    2017.06.09 15:24:46.888801 [ 395 ] <Error> dd.Distributed.DirectoryMonitor: Code: 210, e.displayText() = DB::NetException: I/O error: Broken pipe: while reading from socket (192.168.98.106:9000), e.what() = DB::NetException, Stack trace:

    0. clickhouse-server(StackTrace::StackTrace()+0x16) [0x28c6df6]
    1. clickhouse-server(DB::WriteBufferFromPocoSocket::nextImpl()+0x49d) [0x28dbd6d]
    2. clickhouse-server(DB::Connection::sendData(DB::Block const&, std::string const&)+0xd3) [0x2abc8b3]
    3. clickhouse-server(DB::Connection::sendQuery(std::string const&, std::string const&, unsigned long, DB::Settings const*, DB::ClientInfo const*, bool)+0xc21) [0x2abded1]
    4. clickhouse-server(DB::RemoteBlockOutputStream::writePrefix()+0x56) [0x2b6aee6]
    5. clickhouse-server(DB::StorageDistributedDirectoryMonitor::processFile(std::string const&)+0x611) [0x29e2ef1]
    6. clickhouse-server(DB::StorageDistributedDirectoryMonitor::findFiles()+0x10c) [0x29e491c]
    7. clickhouse-server(DB::StorageDistributedDirectoryMonitor::run()+0x85) [0x29e4e05]
    8. clickhouse-server() [0x34b1aaf]
    9. /lib/x86_64-linux-gnu/libpthread.so.0(+0x8064) [0x7f3f4b5f9064]
    10. /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7f3f4ac2162d]

    И так уже 4 часа для всех серверов из distributed таблицы.

    При этом запросы на select к этой distributed таблице работают и вроде как все хорошо. Данные которые сегодня вставили не видны, т.е. ни до одного сервера не доехали.

    В чем может быть проблема?
  • https://t.me/clickhouse_ru
    @rheinx #16473 12:38 PM, 09 Jun 2017
    А с сеткой все ок? Если к примеру тем же telnet попробовать
  • @e11it #16474 12:41 PM, 09 Jun 2017
    селекты к этой таблице(и тем серера) успешно отрабатывают...
  • @e11it #16475 12:43 PM, 09 Jun 2017
    смотрел tcpdumpом, трафика не смотря на ошибки к 192.168.98.106 нету.. Если делаю селект - то появляется..
  • @e11it #16476 12:43 PM, 09 Jun 2017
    Такое ощущение что pipe сдохли, а кх это не задетектил...
  • https://t.me/clickhouse_ru
    @rheinx #16477 12:55 PM, 09 Jun 2017
    тут уже точно не подскажу, но я бы смотрел на вывод lsof. И кстати, ребут не помогает или он недопустим?
  • @e11it #16478 12:58 PM, 09 Jun 2017
    пока не допустим. Нетстат вот такое водит:

    netstat --timers|grep '.106:9000'
    tcp 0 0 msk-ch:57691 192.168.98.106:9000 ESTABLISHED off (0.00/0/0)
  • https://t.me/clickhouse_ru
    @rheinx #16479 01:21 PM, 09 Jun 2017
    А lsof показывает еще соединения?
  • https://t.me/clickhouse_ru
    @rheinx #16480 01:21 PM, 09 Jun 2017
    с тем же сервером
  • @e11it #16481 01:44 PM, 09 Jun 2017
    Столькоже сколько и netstat

    clickhous 22148 clickhouse 40u IPv4 113678595 0t0 TCP msk-ch:57691->192.168.98.106:9000 (ESTABLISHED)
  • https://t.me/clickhouse_ru
    @Myafk #16482 01:48 PM, 09 Jun 2017
    Всем приветы! Подскажите, пожалуйста по конфигу кликхауса.
  • https://t.me/clickhouse_ru
    @Myafk #16483 01:49 PM, 09 Jun 2017
    Выставляю параметр <max_memory_usage>40000000000</max_memory_usage>
    прямо в сеции yandex, перезапускаю кликхаус - значение не верное.
  • https://t.me/clickhouse_ru
    @Myafk #16484 01:49 PM, 09 Jun 2017
    Что я делаю не так?)
  • https://t.me/clickhouse_ru
    @Felixoid #16485 01:58 PM, 09 Jun 2017
    это в <profiles> для профиля должно быть
  • https://t.me/clickhouse_ru
    @Myafk #16486 01:59 PM, 09 Jun 2017
    я понял, спасибо.
  • https://t.me/clickhouse_ru
    @Felixoid #16487 01:59 PM, 09 Jun 2017
    <?xml version="1.0"?>
    <yandex>
    <profiles><name><max_memory_usage>32212254720</max_memory_usage>
  • @357442497 #16488 02:36 PM, 09 Jun 2017
    Joined.
  • @pookieShmukie #16490 02:37 PM, 09 Jun 2017
    ?*:яяяяяяя...не люблю спамеров. Что они тут забыли?
  • @Andrew_ya3 #16492 02:38 PM, 09 Jun 2017
    упорный
  • @cosmokit #16493 02:39 PM, 09 Jun 2017
    закладки еще не предлагали?
  • @cosmokit #16494 02:40 PM, 09 Jun 2017
    тут же целевая аудитория, клондайк
  • @pookieShmukie #16495 02:40 PM, 09 Jun 2017
    Ага, творческие люди и все такое
  • @pookieShmukie #16496 02:40 PM, 09 Jun 2017
    Предлагаю таких "по айпи вычислять" )))))
  • https://t.me/clickhouse_ru
    @archimed_shaman #16497 04:02 PM, 09 Jun 2017
    привет, у меня тоже проблема с кластером, которая 100500 ошибок
    2017.06.09 12:00:32.379509 [ 36 ] <Error> events_all.Distributed.DirectoryMonitor: Code: 210, e.displayText() = DB::NetException: I/O error: Broken pipe: while reading from socket (10.7.16.229:9000), e.what() = DB::NetException, Stack trace:
  • https://t.me/clickhouse_ru
    @archimed_shaman #16498 04:03 PM, 09 Jun 2017
    данные через jdbc вставляются медленно шопипец - за час несколько миллионов строк
  • https://t.me/clickhouse_ru
    @archimed_shaman #16499 04:03 PM, 09 Jun 2017
    пробовал все ноды рестартовать - не помогло. куда рыть?
  • https://t.me/clickhouse_ru
    @archimed_shaman #16500 04:04 PM, 09 Jun 2017
    раньше, кстати, все бодренько-шустренько вставлялось
  • https://t.me/clickhouse_ru
    @Myafk #16501 04:20 PM, 09 Jun 2017
    Может слишком маленькими пачками вставляете и кликхаус не успевает их мержить?
  • https://t.me/clickhouse_ru
    @archimed_shaman #16502 04:30 PM, 09 Jun 2017
    теоретически, возможно, вставляю спарком через коннектор. но вроде как репартиционировал побольше и batch size 3 ляма выставил
  • https://t.me/clickhouse_ru
    @inv2004 #16503 07:59 PM, 09 Jun 2017
    array(...) - не считается агрегатной функцией? - не понятно.
  • https://t.me/clickhouse_ru
    @orantius #16504 09:57 PM, 09 Jun 2017
    array - это функция конструирования массива из аргументов переданных в функцию. агрегатная функция это groupArray
  • https://t.me/clickhouse_ru
    @orantius #16505 10:06 PM, 09 Jun 2017
    SELECT groupArray(x)
    FROM
    (
    SELECT [number, number + 1] AS x
    FROM system.numbers
    LIMIT 2
    )

    ┌─groupArray(x)─┐
    │ [[0,1],[1,2]] │
    └───────────────┘
  • https://t.me/clickhouse_ru
    @inv2004 #16506 10:26 PM, 09 Jun 2017
    А полиморфизм функций планируется? А то много всего одинакового, но только для разных типов данных. Понятно что это даже не второстепенная задача.
  • https://t.me/clickhouse_ru
    @orantius #16507 11:13 PM, 09 Jun 2017
    1. у кликхауса сейчас идеология делять много функций, каждая для своего случая как можно оптимальней. например поэтому нет неявной конверсии типов, а есть явная и есть перегрузки под различные комбинации типов аргументов.
    2. например одна из сигнатур arrayMap :: (a->b) -> [a] -> [b], это достаточно полиморфно?
  • https://t.me/clickhouse_ru
    @inv2004 ↶ Reply to #16507 #16508 11:19 PM, 09 Jun 2017
    да, вполне логично. Достаточно или нет - это тяжело оценить. В кдб с другой стороны обратная ситуация - всё очень полиморфно, но кажется что не хватает оптимизации как раз для простых типов/вариантов использования.
  • https://t.me/clickhouse_ru
    @inv2004 ↶ Reply to #16507 #16509 11:28 PM, 09 Jun 2017
    Сейчас посмотрел, и подумал, что не достаточно, но конечно от случая зависит, так как векторизированный 1+[1,2,3] в sse может мало того что быть быстрее, чем +1 через map. Но и с виду проще :). Т.е. map сама по себе плохая операция, но тут бы как раз помог бы полиморфизм +
  • https://t.me/clickhouse_ru
    @orantius #16510 11:32 PM, 09 Jun 2017
    а, ну то есть полиморфизм у вас не в терминах system f, хорошо.
  • https://t.me/clickhouse_ru
    @inv2004 #16511 11:33 PM, 09 Jun 2017
    Да, систем-ф на apl пока не получилось натянуть.
  • https://t.me/clickhouse_ru
    @inv2004 #16512 11:38 PM, 09 Jun 2017
    Вообще как язык k/q очень эффективен и при этом прост.
  • https://t.me/clickhouse_ru
    @orantius #16513 11:38 PM, 09 Jun 2017
    насчет того что он прост я видел разные мнения.
  • https://t.me/clickhouse_ru
    @orantius #16514 11:40 PM, 09 Jun 2017
    кликхаус более многословен, это правда. но он все таки больше sql, чем например язык для работы с массивами. что иногда неудобно.
  • https://t.me/clickhouse_ru
    @inv2004 ↶ Reply to #16514 #16515 11:43 PM, 09 Jun 2017
    Согласен. K/Q как язык в общем-то эффективен и прост, но с ходу не привычен, как и векторные базы :) А про полиморфизм: местами (в данном случае для plus) эффективнее чем более сложные конструкции типа map (\x -> x+1)
  • 10 June 2017 (19 messages)
  • https://t.me/clickhouse_ru
    @Roman_Ernst #16516 05:23 AM, 10 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @BloodJazMan #16517 11:33 AM, 10 Jun 2017
    https://github.com/yandex/ClickHouse/issues/777

    есть подвижки с zetcd
    но пока все валится на вставке
    блин =( я в C++ не шарю, было бы круто разобраться с этими падениями
    clickhouse core dumped when try work over zetcd · Issue #777 · yandex/ClickHouse

    i create repo https://github.com/Slach/clickhouse-zetcd for reproducing stand clickhouse + zetcd latest clickhouse Dockerimage core dumped after run following query sudo docker-compose run clickhou...

  • @ztlpn #16518 11:37 AM, 10 Jun 2017
    Посмотрю на следующей неделе.
  • https://t.me/clickhouse_ru
    @maxlapshin #16519 12:30 PM, 10 Jun 2017
    я конечно продолжаю быть в шоке от кликхауса: у нас 900 млн записей в таблице, индексов нет и всё работает очень и очень быстро.
  • https://t.me/clickhouse_ru
    @maxlapshin #16520 12:34 PM, 10 Jun 2017
    я никак не могу понять: если я хочу сделать сервер для постоянной репликации для бекапа, мне всё равно надо использовать зукипер? Я бы хотел это отложить до последнего
  • @vludv ↶ Reply to #16520 #16521 12:42 PM, 10 Jun 2017
    Так вам репликация нужна или необходиcть создавать бэкапы раз в N дней?
  • https://t.me/clickhouse_ru
    @maxlapshin #16522 12:57 PM, 10 Jun 2017
    я хочу копирование всех записей на другой сервер с минимальной задержкой
  • @vludv #16523 01:13 PM, 10 Jun 2017
    Тогда без зукипера никак. А какие с ним сложности?
  • https://t.me/clickhouse_ru
    @maxlapshin #16524 01:15 PM, 10 Jun 2017
    с ним в принципе надо разбираться и надо поднимать несколько экземпляров
  • @DenysLamanov #16525 01:38 PM, 10 Jun 2017
    Можешь поставить его через Cloudera Manager
  • https://t.me/clickhouse_ru
    @IlyaSinelnikov #16526 02:17 PM, 10 Jun 2017
    С зукипером кстати как и с любой инфраструктурной штукой одна проблема - не хочется усложнять себе жизнь, когда у тебя уже стоит скажем консул. Зоопарк мало кто любит.
  • https://t.me/clickhouse_ru
    @v2nek #16527 03:27 PM, 10 Jun 2017
    Можно смигрировать все на зукипер :)
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #16526 #16528 03:28 PM, 10 Jun 2017
    В современном мире скорее всего у тебя будет любые 2 из консула, etcd, zookeeper что бы ты ни делал
  • https://t.me/clickhouse_ru
    @Civiloid #16529 03:29 PM, 10 Jun 2017
    У zetcd минус это скорость, которая может стать критичной. Даже если он с кх заработает
  • https://t.me/clickhouse_ru
    Хз, хз. Вон в тарантуле планируют поддержать все 3 и дать выбор пользователю.
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #16530 #16531 03:36 PM, 10 Jun 2017
    Я в чудеса не верю, вероятно один из трёх будет ощутимо лучше работать
  • https://t.me/clickhouse_ru
    Если будет удовлетворять требованиям, то какая разница? Выше, сильнее и быстрее не всегда лучше -иногда нужно просто чтобы без гемора. :)
  • @ztlpn #16533 04:50 PM, 10 Jun 2017
    Скорее всего, речь будет идти не о быстрее-выше-сильнее, а о злостных и непонятных багах, возникающих на двух других системах из-за того, что код был написан в расчёте на одну из них и хорошо отлажен там же. (Тоже не верю в чудеса)
  • https://t.me/clickhouse_ru
    @IlyaSinelnikov #16534 05:08 PM, 10 Jun 2017
    Ну что спорить, увидим. :)
  • 11 June 2017 (4 messages)
  • @milovidov_an #16535 06:43 AM, 11 Jun 2017
    Мы подумываем над тем, чтобы удалить поддержку SET GLOBAL. (Конечно, удалять будем постепенно - сначала из документации, а только потом из кода). Причина - не очевидный порядок применения по отношению к настройкам из профилей пользователей, особенно во время обновления этих профилей; и эту логику стало сложно поддерживать.

    Я сам несколько раз пользовался этой возможностью для экспериментов по включению всем некоторых новых настроек. Но это не сильно удобнее, чем добавить или отредактировать файл в users.d. Поэтому я сомневаюсь в том, насколько она нужна.

    Вопрос - есть ли кто-нибудь из вас, кто пользовался SET GLOBAL и кто что думает по этому поводу?
  • @zaplavsky #16536 10:02 AM, 11 Jun 2017
    Привет всем еще раз. Не хочу засорять чат, но спрошу. Нужен специалист по СН. Делаем трекер для нашей рекламной сети. Все функции и задачи уже сформированы. Работы на 2 недели с полным фокусом на наших задачах. Кому нибудь интересно? Если знаете кому может быть интересно, можете помочь связаться? Всем хорошего воскресенья.
  • @204501267 #16537 07:09 PM, 11 Jun 2017
    Joined.
  • @354717288 #16538 09:23 PM, 11 Jun 2017
    Joined.
  • 12 June 2017 (33 messages)
  • @patchmobile #16539 06:15 AM, 12 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @BloodJazMan #16542 01:26 PM, 12 Jun 2017
    всем привет, пытаюсь юзать скрипт по загрузке данных из yandex metrica
    https://github.com/yndx-metrika/logs_api_integration/

    юзаю виртуалку ubuntu 16.04 с 2 гигами оперативки и дефолтным конфигом

    получаю
    Out of memory: Kill process 13197 (BackgrProcPool) score 906 or sacrifice child
    Jun 12 13:21:53 local-metrika2clickhouse-clickhouse-pro kernel: Killed process 13182 (ConfigReloader) total-vm:14636140kB, anon-rss:1830256kB, file-rss:692kB

    данных вроде не много грузится
    куски по 70 мегабайт

    суммарно данных 1.5 гигабайта в TSV формате
    как так получается что clickhouse умирает по OOM ?
    GitHub - yndx-metrika/logs_api_integration: Script for integration with Logs API

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

  • @cosmokit #16543 01:28 PM, 12 Jun 2017
    а сколько памяти сама ось в виртуалке кушает?
  • @shinebell #16544 02:12 PM, 12 Jun 2017
    'max_memory_usage_for_user', 'max_memory_usage_for_all_queries'
  • @shinebell #16545 02:12 PM, 12 Jun 2017
    смотрите в эту сторону
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #16542 #16546 02:24 PM, 12 Jun 2017
    по дефолту ограничение 10гб вроде в кликхаусе. Поправьте users.xml чтобы не вылезал за физически доступный обьем
  • https://t.me/clickhouse_ru
    @BloodJazMan #16547 03:35 PM, 12 Jun 2017
    <Trace> MergeTreeBlockInputStream: Reading 1 ranges from part 20140701_20140731_568_568_0, approx. 8192 rows starting from 0

    что значит эта запись в логах?
  • @patchmobile #16548 03:38 PM, 12 Jun 2017
    Только что поставил Clickhouse на CentOS. (Александр АТ c google groups, если ты это читаешь, то просто "от души")).
    Я больше все-таки работаю с данными, чем программирую, поэтому в знаниях часто пробелы, но есть огромное желание попробовать, а под рукой есть сервер и БД, которая прямо-таки требует внимания)
    Алексей, спасибо за все это и отличную документацию! А Яндексу и сообществу спасибо за опен-сорс)
  • Спасибо! Надеемся, будет полезно для ваших задач :)
  • Эта запись сообщает нам о том, какие диапазоны строк необходимо будет сейчас прочитать для выполнения запроса или фонового слияния. Нам говорят, что из такого-то куска данных мы будем читать примерно 8192 строки с самого начала.
  • https://t.me/clickhouse_ru
    @BloodJazMan #16551 04:13 PM, 12 Jun 2017
    у меня очень странное поведение просто, у меня тупо в какой то момент сейчас сервер падает, но без всякого OOM уже
    и эта запись
    2017.06.12 16:10:06.886533 [ 12 ] <Trace> MergeTreeBlockInputStream: Reading 1 ranges from part 20140601_20140630_552_552_0, approx. 8192 rows starting from 0
    последнее что есть в log файле
    и последнее что есть в .err.log файле это просто
    2017.06.12 16:10:01.027339 [ 3 ] <Warning> ConfigProcessor: Include not found: clickhouse_compression
    т.е. жалобы на конфиг

    при этом
    service clickhouse-server restart
    не помогает сервер тупо не стартует
  • https://t.me/clickhouse_ru
    @BloodJazMan #16552 04:14 PM, 12 Jun 2017
    хотя
    service clickhouse-server status
    показывает
    ● clickhouse-server.service - LSB: Yandex clickhouse-server daemon
    Loaded: loaded (/etc/init.d/clickhouse-server; bad; vendor preset: enabled)
    Active: active (exited) since Mon 2017-06-12 16:09:58 UTC; 3min 55s ago
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16553 04:14 PM, 12 Jun 2017
    попробуйте включить core dumps или запустить clickhouse под gdb
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16554 04:15 PM, 12 Jun 2017
    а в dmesg написано что "clickhouse-server segfaulted..." или подобное?
  • https://t.me/clickhouse_ru
    @BloodJazMan #16555 04:18 PM, 12 Jun 2017
    ну вот сделал я service clickhouse-server stop
    потом
    service clickhouse-server start

    и видимо запустилась какая то компактификация
    потому что у меня 20-30 мегов в секунду чтение и iotop даже в консоли не может запуститься...
    в смысле консольный ввод вывод тормозит
    а хост машина показывает что VboxHeadless отжирает 20-30 мегов на чтение
  • @milovidov_an #16556 04:26 PM, 12 Jun 2017
    > запустилась какая то компактификация

    Так и есть. Компактификация (мерж) производится в фоне почти всегда.

    > 20-30 мегов в секунду чтение

    Это мало.

    > iotop даже в консоли не может запуститься...

    Проблема с виртуальной машиной - слишком урезанная конфигурация?
  • @milovidov_an #16557 04:30 PM, 12 Jun 2017
    Совет такой: откройте
    top -d0.5
    отсортируйте по оперативке: Shift+M
    и смотрите, что происходит.
  • https://t.me/clickhouse_ru
    @BloodJazMan #16558 05:16 PM, 12 Jun 2017
    так, ну вот сейчас заработали лимиты
    и приложение которое льет данные стало выпадать
    ValueError: Code: 241, e.displayText() = DB::Exception: Memory limit (for query) exceeded: would use 477.21 MiB (attempt to allocate chunk of 1048576 bytes), maximum: 476.84 MiB, e.what() = DB::Exception
    зачем нужно 0.5 гигабайта памяти для TSV файла который весит 70 мегабайт?
  • https://t.me/clickhouse_ru
    @BloodJazMan #16559 05:18 PM, 12 Jun 2017
    файл c данными это просто выгрузка из metrika logs api
  • https://t.me/clickhouse_ru
    @BloodJazMan #16560 05:22 PM, 12 Jun 2017
    https://mega.nz/#!uU42CBoI!58xKHMdW1tBgsWBRzUGdo6zcHhRA6pnSWBIeUWbet60
    вот образец данных которые я пытаюсь грузить через запрос вот такого вида
    CREATE DATABASE metrika2clickhouse;
    CREATE TABLE metrika2clickhouse.hits_all ( Artificial UInt8, Browser String, BrowserCountry String, BrowserEngine String, BrowserEn
    gineVersion1 UInt16, BrowserEngineVersion2 UInt16, BrowserEngineVersion3 UInt16, BrowserEngineVersion4 UInt16, BrowserLanguage String, BrowserMajorVersion String, BrowserMinorVersion String, ClientID UInt64, ClientTimeZone Int16, CookieEnabled UInt8, CounterID UInt32, Da
    te Date, DateTime DateTime, DeviceCategory String, Download UInt8, Event UInt8, FlashMajor UInt8, FlashMinor UInt8, From String, GoalsID Array(UInt32), HasGCLID UInt8, HttpError String, IFrame UInt8, IpAddress String, JavascriptEnabled UInt8, LastAdvEngine String, LastSe
    archEngine String, LastSearchEngineRoot String, LastSocialNetwork String, LastSocialNetworkProfile String, LastTrafficSource String, Link UInt8, MobilePhone String, MobilePhoneModel String, NetworkType String, NotBounce UInt8, OpenstatAd String, OpenstatCampaign String,
    OpenstatService String, OpenstatSource String, OperatingSystem String, OperatingSystemRoot String, PageCharset String, Params String, PhysicalScreenHeight UInt16, PhysicalScreenWidth UInt16, Referer String, RegionCity String, RegionCountry String, ScreenColors UInt8, Scr
    eenFormat UInt16, ScreenHeight UInt16, ScreenOrientation String, ScreenWidth UInt16, ShareService String, ShareTitle String, ShareURL String, Title String, URL String, UTMCampaign String, UTMContent String, UTMMedium String, UTMSource String, UTMTerm String, WatchID UInt
    64, WindowClientHeight UInt16, WindowClientWidth UInt16 ) ENGINE = MergeTree(Date, intHash32(ClientID), (Date, intHash32(ClientID)), 8192)
    INSERT INTO metrika2clickhouse.hits_all FORMAT TabSeparatedWithNames
    Link

    MEGA provides free cloud storage with convenient and powerful always-on privacy. Claim your free 20GB now

  • https://t.me/clickhouse_ru
    @BloodJazMan #16561 05:36 PM, 12 Jun 2017
    в общем я не удержался
    https://github.com/yandex/ClickHouse/issues/868
    сделал issue
    потому что считаю такое поведение clickhouse очень странным
    How many memory need for insert 70Mb TSV file? · Issue #868 · yandex/ClickHouse

    i install latest clickhouse-server official ubuntu package from repository change settings in users.xml 500000000 1000000000</max_mem...

  • https://t.me/clickhouse_ru
    @kykypy3 #16562 05:59 PM, 12 Jun 2017
    Joined.
  • @milovidov_an #16563 06:59 PM, 12 Jun 2017
    В целом в этом нет ничего странного, так как на каждый столбец выделяются буферы для ввода-вывода (по-умолчанию по 1 MB), а также выделяются буферы для столбцов одного блока. Хотя 0.5 гигабайта всё-равно выглядят черезмерно, и с этим можно разобраться. Спасибо, что приложили файл.
  • https://t.me/clickhouse_ru
    Очень люблю такое. Вам бы сразу к Бокунову. Я за неделю не напишу. Никто не напишет. Если нормально. А абы как - обращайтесь. За деньги поможем.
    Сколько готовы платить?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16565 10:00 PM, 12 Jun 2017
    Ребят, давайте финансы в личку, а?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16566 10:03 PM, 12 Jun 2017
    @artmkin Павел, а не было каких-либо изменений с ColumnDate? Почему-то в С++ клиенте отвалились поля Date (все по нулям), хотя считается все как и раньше, поле DataTime рядом - заполняется корректно.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16567 10:07 PM, 12 Jun 2017
    +void ColumnDate::Append(const std::time_t& value) {
    + data_->Append(static_cast<uint16_t😠value / 86400));
    +}
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16568 10:07 PM, 12 Jun 2017
    кажется я понял свою ошибку :)
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16569 10:10 PM, 12 Jun 2017
    починилось, я пытался кастить и сам приводить в нужный формат дату, а нужно было лишь использовать тот же time_t, что использовал для DateTime. Красота :) Прошу прощения за беспокойство.
  • С первого взгляда этот код выглядит абсолютно неверным, так как в сутках не обязательно 86400 секунд и сутки не обязательно начинаются тогда же как в UTC. Можно предположить, что он корректный, если бы в описании этой функции было указано, что туда надо передавать особенное значение time_t, которое соответствует началу нужного дня в UTC. Но в комментариях этого не написано. Указано только бессмысленное:
    /// Appends one element to the end of column.
    void Append(const std::time_t& value);
    Поэтому не удивительно, что при использовании этого кода возникает путаница.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16571 11:16 PM, 12 Jun 2017
    на самом деле код делающий тоже самое у меня выглядел примерно также :(
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16572 11:17 PM, 12 Jun 2017
    но сломался он потому что была двойная конверсия секунды в дни и потом опять дней еще раз в дни, что в итоге в любом случае давало нули
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16573 11:19 PM, 12 Jun 2017
    его наверное просто стоит передавать далее как time_t и не заморачиваться преобразованием в самой библиотеке отправляя эту проблему в CH ;)
  • 13 June 2017 (83 messages)
  • @pookieShmukie #16574 09:56 AM, 13 Jun 2017
    Ребят....проблема с distributed таблицей. Пишу данные и в логах вот такое сыпится

    2017.06.13 12:55:19.446774 [ 22 ] <Error> statements.Distributed.DirectoryMonitor: Code: 210, e.displayText() = DB::NetException: I/O error: Broken pipe: while reading from socket (10.20.122.3:9000), e.what() = DB::NetException, Stack trace:

    0. clickhouse-server(StackTrace::StackTrace()+0x16) [0x2969826]
    1. clickhouse-server(DB::WriteBufferFromPocoSocket::nextImpl()+0x5ad) [0x297de7d]
    2. clickhouse-server(DB::Connection::sendData(DB::Block const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+0xe5) [0x2b6f365]
    3. clickhouse-server(DB::Connection::sendQuery(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, DB::Settings const*, DB::ClientInfo const*, bool)+0xc35) [0x2b709b5]
    4. clickhouse-server(DB::RemoteBlockOutputStream::writePrefix()+0x6a) [0x2c25eda]
    5. clickhouse-server(DB::StorageDistributedDirectoryMonitor::processFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+0x6f9) [0x2aa4cf9]
    6. clickhouse-server(DB::StorageDistributedDirectoryMonitor::findFiles()+0x14c) [0x2aa680c]
    7. clickhouse-server(DB::StorageDistributedDirectoryMonitor::run()+0xc5) [0x2aa6d05]
    8. clickhouse-server() [0x36744ef]
    9. /lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba) [0x7f4f0fd8a6ba]
    10. /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7f4f0f3ab82d]
  • @pookieShmukie #16575 09:57 AM, 13 Jun 2017
    ClickHouse server version 1.1.54236
  • https://t.me/clickhouse_ru
    @archimed_shaman #16576 10:01 AM, 13 Jun 2017
    @FacedSID и скорость вставки смешная получается, да?
  • Проблема в том, что данные даже не пишутся в таблицу, их нет. Хотя в соседнюю распределенную таблицу пишутся, но в ней всего 4 столбца, она как лог служит
  • @pookieShmukie #16578 10:04 AM, 13 Jun 2017
    Может стоит на последний стейбл обновиться?
  • https://t.me/clickhouse_ru
    @archimed_shaman #16579 10:06 AM, 13 Jun 2017
    я вот до 1.1.54236 обновился, и тоже такая шляпа началась
  • @pookieShmukie #16580 10:08 AM, 13 Jun 2017
    Ну в гите вроде как 54237 последняя, но ее вроде не собрали в релиз еще
  • @pookieShmukie #16581 10:11 AM, 13 Jun 2017
    Интересно, а если делать даунгрейд версии сервера, ничего не сломается?
  • @316953409 #16582 10:28 AM, 13 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @sanjik22 #16583 10:33 AM, 13 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @alborisovua #16584 11:04 AM, 13 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @NataMakarova #16585 12:02 PM, 13 Jun 2017
    Всем привет!
    ClickHouse meetup наконец-то едет в Минск! Встреча 29 июня.
    Будет интересно как администраторам ClickHouse, так и тем, кто пока только присматривается к системе. Мы приглашаем белорусских пользователей также поделиться своим опытом использования ClickHоuse и выступить на встрече с блиц-докладами.
    Участие в мероприятии бесплатное, но необходимо заранее зарегистрироваться: количество мест в зале ограничено.
    Посмотреть программу и подать заявку на участие можно на странице встречи: https://events.yandex.ru/events/meetings/29-june-2017/
    ClickHouse Meetup, 29 июня 2017, Минск — События Яндекса

    События — вся информация о конференциях, школах, семинарах и других мероприятиях Яндекса — как прошедших, так и предстоящих.

  • https://t.me/clickhouse_ru
    @NataMakarova #16586 12:03 PM, 13 Jun 2017
    Также можно поделиться с друзьями в сетях
    https://www.facebook.com/Yandex.Events/posts/1568900803130035
    https://vk.com/yandex.events?w=wall-17796776_5432
    https://twitter.com/ya_events/status/874564684531335168
    Яндекс.Мероприятия

    ClickHouse Meetup отправляется в Минск! 29 июня в Минске впервые выступят с докладами создатели СУБД ClickHоuse и те, кто ежедневно использует её для решения аналитических задач. Докладчики...

  • @DenysLamanov #16587 12:04 PM, 13 Jun 2017
    Боюсь спрашивать про митап в Украине)
  • https://t.me/clickhouse_ru
    @NataMakarova #16588 12:10 PM, 13 Jun 2017
    А я боюсь отвечать :) Приезжайте в Минск!
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16589 12:10 PM, 13 Jun 2017
    Минск прекрасен, рекомендую :)
  • https://t.me/clickhouse_ru
    @sanjik22 #16590 12:12 PM, 13 Jun 2017
    А когда уже в москве?)
  • @cosmokit #16591 12:15 PM, 13 Jun 2017
    а онлайн будет?
  • https://t.me/clickhouse_ru
    @NataMakarova #16592 12:15 PM, 13 Jun 2017
    Нет, не планируется.
  • @cosmokit #16593 12:15 PM, 13 Jun 2017
    пичалька(
  • @shinebell #16595 12:16 PM, 13 Jun 2017
    а тут написано, что будет трансляция
  • @shinebell #16596 12:16 PM, 13 Jun 2017
    кому верить ? )
  • https://t.me/clickhouse_ru
    @NataMakarova #16597 12:17 PM, 13 Jun 2017
    Верить мне, не будет трансляции (
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @NataMakarova #16599 12:17 PM, 13 Jun 2017
    была опечатка
  • @cosmokit #16600 12:17 PM, 13 Jun 2017
    ну а репорт по итогу?
  • https://t.me/clickhouse_ru
    @NataMakarova #16601 12:20 PM, 13 Jun 2017
    Видео тоже не планиурется. Опубликуем пост в блоге ClickHouse https://yandex.ru/blog/clickhouse
  • @emptyname #16602 12:28 PM, 13 Jun 2017
    А видео не хотите по каким-то legal issues?
  • @emptyname #16603 12:28 PM, 13 Jun 2017
    было бы очень интересно посмотреть
  • https://t.me/clickhouse_ru
    @BloodJazMan #16604 12:30 PM, 13 Jun 2017
    попробовал поделить файл пополам, все вставилось нормально
    значит дело все таки в том что у меня там 72 колонки
    и 130 тысяч строк
    ну вроде по вашим словам не должно аллоцироваться больше 100 мегабайт

    все таки было бы не плохо разобраться
  • @filonov_ae #16605 12:40 PM, 13 Jun 2017
    Я пачки по 10-15 гигабайт заливал
  • @filonov_ae #16606 12:41 PM, 13 Jun 2017
    Хотя колонок было поменьше
  • @pookieShmukie #16607 12:59 PM, 13 Jun 2017
    У меня проблема с записью другая. На сервере пишу в распределенную таблицу и получаю IO Error: Broken pipe, причем на шардах никаких ошибок в логах нет...
  • @pookieShmukie #16608 12:59 PM, 13 Jun 2017
    И это блин на продакшене...
  • @pookieShmukie #16609 01:00 PM, 13 Jun 2017
    И че с этим делать даже не знаю. Один вариант - сделать роутинг на нужный сервер на уровне приложения
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16610 02:01 PM, 13 Jun 2017
    я бы начал с strace процесса CH и tcpumpd/wireshark
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16611 02:01 PM, 13 Jun 2017
    broken pipe должен возвращать вполне конкретный сокет и эту ошибку видно в сисколлах
  • @DigDiver #16612 02:15 PM, 13 Jun 2017
    Добрый день, где посмотреть список имен часовых поясов, которые понимает CH? Пытаюсь для UTC-3 найти подходящее значение, не могу.
  • @ztlpn #16613 02:19 PM, 13 Jun 2017
    В /usr/share/zoneinfo. Если хочется руками задать оффсет от UTC (что не рекомендуется), можно попробовать Etc/GMT+3
  • @DigDiver #16614 02:33 PM, 13 Jun 2017
    Спасибо. Только походу toDateTime не поддерживает таймзоны
  • @iamigor #16615 02:33 PM, 13 Jun 2017
    вторым аргументом разве нельзя указать таймзону?
  • @ztlpn ↶ Reply to #16574 #16616 02:33 PM, 13 Jun 2017
    Попробуем поймать... Скажите, с какой версии обновились? Какая конфигурация кластера? Чем отличаются Distributed таблицы, в которые INSERT работает, от тех, в которые не работает?
  • @iamigor #16617 02:33 PM, 13 Jun 2017
    а, это toString()
  • Обновлялся с релиза перед 1.1.54236. Конфигурация кластера абсолютно идентична (имеется ввиду все три шарда идентичны, т.к. это по факту клоны виртуалок). Таблицы отличаются только структурой, т.е. разный набор колонок.
  • @ztlpn ↶ Reply to #16614 #16619 02:37 PM, 13 Jun 2017
    можно так: toDateTime(toUnixTimestamp('2017-06-13 00:00:00', 'Etc/GMT+3'))
  • @ztlpn ↶ Reply to #16618 #16620 02:41 PM, 13 Jun 2017
    То есть с 1.1.54231, верно? Кластер 3 шарда, есть ли реплики, или всего 3 сервера? Distributed таблица создана на одном из этих серверов?
  • @pookieShmukie #16621 02:41 PM, 13 Jun 2017
    Да
  • @pookieShmukie #16622 02:41 PM, 13 Jun 2017
    Реплик нет, просто 3 шарда
  • @pookieShmukie #16623 02:42 PM, 13 Jun 2017
    Distributed таблица создана на всех трех серверах
  • @ztlpn #16624 03:06 PM, 13 Jun 2017
    Да, удалось повторить. Проблема возникает, если в кластере шарды без реплик и соединение во время какой-то вставки разорвалось. Тогда соединение не переустанавливается, и последующие вставки залипают. Должно лечиться перезапуском.
  • @ztlpn #16625 03:06 PM, 13 Jun 2017
    Постараюсь сегодня сделать фикс
  • @pookieShmukie #16626 03:09 PM, 13 Jun 2017
    Супер! Спасибо большое! :)
  • @pookieShmukie #16627 03:10 PM, 13 Jun 2017
    И там еще был баг с выбросом колонки при оптимизации запроса 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...

  • @pookieShmukie #16628 03:10 PM, 13 Jun 2017
    Достаточно неприятный кейс на самом деле (
  • https://t.me/clickhouse_ru
    @alek_si #16629 04:44 PM, 13 Jun 2017
    Привет. https://clickhouse.yandex/docs/ru/table_engines/graphitemergetree.html – насколько этот движок специфичен для Graphite? Насколько он стабилен? И будет ли документаци на него на английском?
  • https://t.me/clickhouse_ru
    @BloodJazMan #16631 04:44 PM, 13 Jun 2017
    Ребята, clickhouse упал по OOM Killer
    после старта сервера
    отожрал всю свободную память
    и увел в жестокий iowait всю систему...
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @BloodJazMan #16633 04:45 PM, 13 Jun 2017
    все счетчики показывают что система начинает есть на чтение весь доступный диск
  • https://t.me/clickhouse_ru
    @alek_si #16634 04:47 PM, 13 Jun 2017
    Есть ли альтернативы GraphiteMergeTree для прореживания данных?
  • @ztlpn ↶ Reply to #16629 #16635 04:56 PM, 13 Jun 2017
    Движок стабильный. Можно использовать и не для Graphite, но структуру таблицы он требует вполне определённую.
  • https://t.me/clickhouse_ru
    @alek_si #16636 04:57 PM, 13 Jun 2017
    Какую? Где почитать?
  • https://t.me/clickhouse_ru
    @alek_si #16637 04:57 PM, 13 Jun 2017
    Точнее, есть ли ещё что-то, кроме ссылки выше и исходников? :)
  • https://t.me/clickhouse_ru
    @alek_si #16638 05:01 PM, 13 Jun 2017
    Можно ли указать несколько pattern'ов? Что такое version? Важен ли формат path?
  • @ztlpn #16639 05:05 PM, 13 Jun 2017
    Вроде бы, в документации про это есть... Да, можно указывать сколько угодно паттернов. Version это столбец, который при прореживании позволяет среди значений с одинаковым Path и Time выбрать одно. Формат Path не важен - главное, чтобы под паттерны подходил.
  • @ztlpn #16640 05:05 PM, 13 Jun 2017
    Структура такая: Path, Time, Value, Version
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @alek_si #16642 05:06 PM, 13 Jun 2017
    > Version это столбец, который при прореживании позволяет среди значений с одинаковым Path и Time выбрать одно.
    Как? По максимальному значению?
  • @ztlpn #16643 05:06 PM, 13 Jun 2017
    Да.
  • https://t.me/clickhouse_ru
    @alek_si #16644 05:08 PM, 13 Jun 2017
    https://github.com/yandex/ClickHouse/blob/master/dbms/tests/integration/test_graphite_merge_tree/test.py#L30 – тут будет храниться и дата, и timestamp? Почему timestamp – UInt32, а не DateTime?
    yandex/ClickHouse

    ClickHouse is a free analytic DBMS for big data.

  • https://t.me/clickhouse_ru
    @taroff #16645 05:09 PM, 13 Jun 2017
    Добрый вечер! А вы не планируете вторичные индексы? Всегда хватает 1 ключа или есть сложности в реализации? Раздумываю над запросами, временами фулскан выходит т.к. не все попадают в primary key
  • https://t.me/clickhouse_ru
    @burunduk3 #16646 05:19 PM, 13 Jun 2017
    Кажется, можно выносить отдельные ключи в MATERIALIZED VIEW и join'ить, join'ить.
  • https://t.me/clickhouse_ru
    @taroff #16647 05:20 PM, 13 Jun 2017
    м, спс
  • @ztlpn ↶ Reply to #16644 #16648 07:55 PM, 13 Jun 2017
    Дата тоже нужна (как и для обычного MergeTree). Значения даты и других столбцов, не участвующих в прореживании, будут взяты из первой строки группы строк, объединяющихся в одну (строки отсортированы по первичному ключу).
  • @ztlpn #16649 07:55 PM, 13 Jun 2017
    Timestamp типа DateTime тоже можно
  • https://t.me/clickhouse_ru
    @inv2004 #16650 08:01 PM, 13 Jun 2017
    Вопрос: это что-то известное? Вставляю в buffer, в котором есть materialized поле. Какое-то время всё ок, но потом сервер начинает сыпать Cannot insert column col_mat со стек-трейсом. Версия 1.1.54236
  • @ztlpn #16651 08:10 PM, 13 Jun 2017
    Похоже на то, что значения материализовались при вставке в buffer-таблицу, а когда пришло время флашить их в основную таблицу, конкретное значение в материализованный столбец уже не вставить.
  • @ztlpn #16652 08:11 PM, 13 Jun 2017
    Можно использовать default-поля
  • https://t.me/clickhouse_ru
    @inv2004 #16653 08:19 PM, 13 Jun 2017
    А, те в buffer default, а в таргете оставить как есть. Понял.
  • https://t.me/clickhouse_ru
    @inv2004 #16654 08:20 PM, 13 Jun 2017
    Или наоборот :), в общем понял, спасибо.
  • https://t.me/clickhouse_ru
    @rlomonosov #16655 08:23 PM, 13 Jun 2017
    https://clickhouse.yandex/docs/ru/table_engines/graphitemergetree.html

    В документации колонка называется Version, а в коде дефолтное название Timestamp - https://github.com/yandex/ClickHouse/blob/e03ae570f7a760a4acedbea77e5063a99a9b15e2/dbms/src/Storages/StorageFactory.cpp#L199
    yandex/ClickHouse

    ClickHouse is a free analytic DBMS for big data.

  • https://t.me/clickhouse_ru
    Не дождался я предложения :-(
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16657 09:26 PM, 13 Jun 2017
    ну может человек забросил удочку и ушел искать в ином месте)
  • 14 June 2017 (179 messages)
  • https://t.me/clickhouse_ru
    @BloodJazMan #16658 05:27 AM, 14 Jun 2017
    А кто нибудь пробовал пускать clickhouse из docker с volume на data папку?
  • @exsmund #16659 05:55 AM, 14 Jun 2017
    как-то так docker run -p8123:8123 -d —name some-clickhouse-server —ulimit nofile=262144:262144 -v /var/lib/clickhouse/:/var/lib/clickhouse/ yandex/clickhouse-server
  • https://t.me/clickhouse_ru
    @commjuve #16660 07:07 AM, 14 Jun 2017
    Joined.
  • @pookieShmukie #16661 07:37 AM, 14 Jun 2017
    Помните прикол с Broken pipe при разрыве соединения distributed таблиц? ) Рестартнул сервера иииииии...у меня появилось по 7-8 дубликатов этих данных на каждого юзера ) Например вместо 3000 эвентов, 24 000, но это из-за того, что я как раз таки 7 или 8 раз пытался данные записать в КХ
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #16661 #16662 07:39 AM, 14 Jun 2017
    похоже действительно коннект теряется, а CH этого не замечает. Рестарт восстанавливает коннект и все что не залилось, доливается)
  • @pookieShmukie #16663 07:39 AM, 14 Jun 2017
    Весело ) Причем такая беда была примерно неделю ) Ну, слава богу данные на месте!
  • https://t.me/clickhouse_ru
    @BuckwheatMonster #16664 08:03 AM, 14 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @alexdirect #16665 08:05 AM, 14 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @archimed_shaman #16666 08:39 AM, 14 Jun 2017
    у меня broken pipe перманентно в логах сыпется, и данные почти не вставляются :(
  • https://t.me/clickhouse_ru
    @archimed_shaman #16667 08:39 AM, 14 Jun 2017
    рестарт ниалё
  • @pookieShmukie #16668 08:42 AM, 14 Jun 2017
    А мне помогло ( Возможно у вас другая проблема
  • @pookieShmukie #16669 08:42 AM, 14 Jun 2017
    Там где то советовали как выловить причину
  • @serovvitaly #16670 08:53 AM, 14 Jun 2017
    Joined.
  • @molchanovdp #16671 08:56 AM, 14 Jun 2017
    Joined.
  • @kurchenkov #16672 09:28 AM, 14 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @qweran #16673 09:31 AM, 14 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @ksukjjiohoh8789 #16674 09:43 AM, 14 Jun 2017
    Добрый день! Кто-нибудь пробовал AD прикрутить к кликхаусу?
  • @litvinenkonick #16675 09:48 AM, 14 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @umaxfun #16676 09:48 AM, 14 Jun 2017
    Аутентификацию?
  • https://t.me/clickhouse_ru
    @umaxfun #16677 09:49 AM, 14 Jun 2017
    GitHub - kvspb/nginx-auth-ldap: LDAP authentication module for nginx

    LDAP authentication module for nginx. Contribute to kvspb/nginx-auth-ldap development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @ksukjjiohoh8789 #16678 10:09 AM, 14 Jun 2017
    спасибо
  • @Dima_Ishchenko #16679 10:52 AM, 14 Jun 2017
    Joined.
  • @cosmokit #16685 11:21 AM, 14 Jun 2017
    это что было?
  • @milovidov_an #16686 11:22 AM, 14 Jun 2017
    Какая-то особенность Telegram - текст, начинающийся на / воспринимается как команда, и если на него нажать, то производится автоматический перепост этой команды. Подробнее не знаю.
  • @cosmokit #16687 11:26 AM, 14 Jun 2017
    аа, это не особенность, это комманды для ботов
  • @cosmokit #16688 11:27 AM, 14 Jun 2017
    я решил, что телеграмм так ссылку отформатировал
  • https://t.me/clickhouse_ru
    @archimed_shaman #16689 11:33 AM, 14 Jun 2017
    Я посмотрел у себя эти broken pipe когда начинаются. Ситуация такая - есть кластер из 14 машин, 7 шардов по 2 реплики. Таблица с хитами, на данный момент в ней в районе 45 миллиардов записей. От этой таблицы есть несколько materialized view AggregatingMergeTree.
  • https://t.me/clickhouse_ru
    @archimed_shaman #16690 11:33 AM, 14 Jun 2017
    Идея была такая - в таблицу пихаются данные, и автоматически рассчитываются предагрегации для дальнейших отчетов.
  • https://t.me/clickhouse_ru
    @archimed_shaman #16691 11:35 AM, 14 Jun 2017
    Судя по всему, что-то пошло не так, сейчас при попытке дальнейших вставок валится
    DB::Exception: Memory limit (total) exceeded: would use 93.13 GiB (attempt to allocate chunk of 512 bytes), maximum: 93.13 GiB, e.what() = DB::Exception (from 10.7.16.188:54877) (in query: INSERT INTO dbreports.events (<куча колонок>) FORMAT TabSeparated)
  • https://t.me/clickhouse_ru
    @archimed_shaman #16692 11:35 AM, 14 Jun 2017
    и после этого с нод валятся broken pipe
  • https://t.me/clickhouse_ru
    @maxgabba #16693 11:35 AM, 14 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @archimed_shaman #16694 11:36 AM, 14 Jun 2017
    Вопрос: что я делаю не так, не стоит ли поубивать нафиг эти материализованные вьюхи (подозреваю, что это они жрут память при вставке), и как вообще работать с такими объемами, потому как при попытке полностью предрассчитать отчет и вставить данные селектом в таблицу, я тоже вываливаюсь по памяти
  • Память может расходоваться данными для INSERT-а и запросами, которые делают вычисления для вставки во VIEW. Обычно, такие запросы должны потреблять меньше оперативки, чем сами данные для INSERT-а, так как для обработки они используют только пачку вставляемых данных. Но это если вы не используете в запросах для VIEW какие-нибудь IN, JOIN с другими таблицами.
  • https://t.me/clickhouse_ru
    @archimed_shaman #16696 11:52 AM, 14 Jun 2017
    @milovidov_an у меня по идее обычная вставка в табицу events, по сути распаршенные сырые данные (вставка из spark'а через jdbc), ну и собственно вот одна из материализованых вьюх:
    CREATE MATERIALIZED VIEW dbreports.top_pages_month_without_geo_ ( month Date, did UInt64, short_url String, Users AggregateFunction(uniq, UInt64), Cnt AggregateFunction(count)) ENGINE = ReplicatedAggregatingMergeTree(\'/clickhouse/tables/{shard}/top_pages_month_without_geo_20170515\', \'{replica}\', month, (month, did, short_url), 8192) AS SELECT toStartOfMonth(event_date) AS month, did, short_url, uniqState(uid) AS Users, countState() AS Cnt FROM dbreports.events GROUP BY month, did, short_url
  • @milovidov_an #16697 11:53 AM, 14 Jun 2017
    Выглядит нормально. А напишите, какой стек трейс у ошибки? Его можно посмотреть в логе сервера.
  • @iamigor #16702 11:56 AM, 14 Jun 2017
    или в issue на гитхабе)
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @archimed_shaman #16704 11:56 AM, 14 Jun 2017
    вот так вот лучше
  • @milovidov_an #16705 11:57 AM, 14 Jun 2017
    А эта ошибка именно при INSERT?
    (не при SELECT, не при создании materialized view?)
  • https://t.me/clickhouse_ru
    @archimed_shaman #16706 11:58 AM, 14 Jun 2017
    > in query: INSERT INTO dbreports.events
    :)
  • https://t.me/clickhouse_ru
    @archimed_shaman #16707 11:59 AM, 14 Jun 2017
    от dbreports.events материализованные вьюхи должны автоматически заполняться, я на это грешу
  • @milovidov_an #16708 12:00 PM, 14 Jun 2017
    Да, но они обрабатывают не более чем ту пачку данных, которую вы вставляете INSERT-ом. После агрегации этой пачки данных, не должно расходоваться сильно больше оперативки. А с помощью какого интерфейса вставляете? (Может быть, получается большой размер пачки?)
  • https://t.me/clickhouse_ru
    @archimed_shaman #16709 12:01 PM, 14 Jun 2017
    @milovidov_an цепочка сложная. spark->clickhouse_spark_connector->jdbc
  • https://t.me/clickhouse_ru
    @archimed_shaman #16710 12:01 PM, 14 Jun 2017
    коннектор я тут вот форкнул: https://github.com/archimed-shaman/clickhouse-spark-connector
    archimed-shaman/clickhouse-spark-connector

    spark to yandex clickhouse connector. Contribute to archimed-shaman/clickhouse-spark-connector development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @archimed_shaman #16711 12:02 PM, 14 Jun 2017
    батчами пытаюсь писать по 5000000 записей, могу попробовать поменьше :)
  • https://t.me/clickhouse_ru
    @rheinx #16712 12:35 PM, 14 Jun 2017
    по дефолту вроде 1 000 000 на кусок
  • @pookieShmukie #16713 12:45 PM, 14 Jun 2017
    А кто подскажет, при отправке через HTTP интерфейс сразу нескольких файлов для использования в запросе, их можно зажать? Или в случае с —external файлы передаются не сжатыми?
  • @pookieShmukie #16714 12:48 PM, 14 Jun 2017
    Судя по тестам в гите - гзип работает только при вставке данных (
  • https://t.me/clickhouse_ru
    @ChuPika #16715 12:51 PM, 14 Jun 2017
    А в CH специально нет защиты от дурака, чтобы запросы вроде
    CREATE MATERIALIZED VIEW buyers
    ENGINE = MaterializedView
    AS SELECT distinct_id
    FROM purchases
    WHERE distinct_id <> UUIDStringToNum(toFixedString('', 36));
    ложили CH?
  • @emptyname #16716 12:52 PM, 14 Jun 2017
    а где такая есть?)
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16717 12:54 PM, 14 Jun 2017
    ложили - это речь про то, что демон падает или о том, что тормозит?
  • @pookieShmukie #16718 12:54 PM, 14 Jun 2017
    Хм. Почему то вот такая команда clickhouse-client —query="SELECT * FROM system.numbers WHERE number in _numbers" —external —file=numbers.csv —format=CSV —structure="number UInt64" —name=_numbers выполняет запрос, но процесс просто висит и все
  • @pookieShmukie #16719 12:55 PM, 14 Jun 2017
    клиент КХ не отдает exit статус короче
  • @pookieShmukie #16720 12:55 PM, 14 Jun 2017
    И такая же петрушка при HTTP запросе
  • @pookieShmukie #16721 12:57 PM, 14 Jun 2017
    Сервер и клиент 1.1.54236
  • @pookieShmukie #16722 12:57 PM, 14 Jun 2017
    В файле один столбец с цифрами от 1 до 6
  • @pookieShmukie #16723 01:02 PM, 14 Jun 2017
    Я кажется понял в чем прикол :) Там же почти бесконечность в таблице numbers :)
  • @iamigor #16724 01:02 PM, 14 Jun 2017
    это потому что лимита нету по system.numbers
  • @iamigor #16725 01:02 PM, 14 Jun 2017
    да
  • @iamigor #16726 01:02 PM, 14 Jun 2017
    надо LIMIT N указывать :)
  • @pookieShmukie #16727 01:02 PM, 14 Jun 2017
    Сорри за панику! Только сейчас дошло
  • @mityanin #16728 01:08 PM, 14 Jun 2017
    Joined.
  • @DigDiver #16729 01:14 PM, 14 Jun 2017
    Есть две реплики. Данные синхронизируются, но в логах одни ошибки:
    ReshardingWorker: no node, path: /clickhouse/task_queue/resharding/ip-xxx-xxx-xxx-xxx.ec2.internal
    И постоянный CPU usage - 20% на обоих машинах.
    В чем проблема, куда копать
  • Если используется обычный HTTP интерфейс (не Native формат) и настройка max_insert_block_size не изменена, то сервер сам разобъёт на куски по 1 048 576 строк.

    А сколько в байтах весят ваши чанки?
  • Вы не используете решардинг?
  • @DigDiver #16732 01:38 PM, 14 Jun 2017
    Нет.
  • @milovidov_an #16733 01:39 PM, 14 Jun 2017
    Закомментируйте секцию <resharding> в конфиге.
    Более подробно про описанное поведение сказать не могу.
  • Тут не понял вопрос, защита от чего конкретно нужна?
  • @VitalVas #16735 01:40 PM, 14 Jun 2017
    кто-нибуть пробовал тестровать хранения ext4 vs xfs?
  • @DigDiver #16736 01:41 PM, 14 Jun 2017
    Единственное, перед запуском CH удалили в ZooKeeper все старые данные.
    Вот лог из Zookepera.
    Thu Jun 08 06:36:14 UTC 2017 INFO deleteNode() deleted node [/clickhouse/task_queue/resharding_distributed/online/ip-172-16-0-199.ec2.internal]
    Thu Jun 08 06:36:14 UTC 2017 INFO deleteNode() deleted node [/clickhouse/task_queue/resharding_distributed/online/ip-172-16-0-60.ec2.internal]
    Thu Jun 08 06:36:14 UTC 2017 INFO deleteNode() deleted node [/clickhouse/task_queue/resharding]
  • @VitalVas #16737 01:47 PM, 14 Jun 2017
    отловил занимательное поведения - развалился клауд на час - CH начал употреблять дофига ресурсов на чтения https://drop.vitalvas.com/storage/18/92/b6a7499da46ea24b717f54d2c9f3.png
    error log: https://pastebin.com/8PFTbguk
    версия 1.1.54198
  • @DigDiver #16738 01:48 PM, 14 Jun 2017
    Может удалить из конфига?
    <resharding>
    <task_queue_path>/clickhouse/task_queue</task_queue_path>
    </resharding>
    Но в любом случае Перешардирование не запускалось ни разу.
  • Можно.
  • Восстановление реплики?
  • @VitalVas #16741 01:51 PM, 14 Jun 2017
    там всего-то 35 гиг
    реплики нет - только еще один шард
  • @VitalVas #16742 01:57 PM, 14 Jun 2017
    походу 8 livemigration не пережил
  • https://t.me/clickhouse_ru
    @ChuPika ↶ Reply to #16717 #16743 02:12 PM, 14 Jun 2017
    Демон падает, в логах что-то про нулевой указатель.
  • Плохо. Пришлите описание структуры таблицы. Можно на pastebin.
  • @DigDiver #16745 02:20 PM, 14 Jun 2017
    При каких кейсах данные в
    MATERIALIZED VIEW ENGINE = eplicatedSummingMergeTree могут не соответствовать данным в самой таблице. На больших данных заметить проблему сложно. Но сейчас идут редкие инсерты, и видно, что данные отличаются.
  • https://t.me/clickhouse_ru
    @marliotto #16746 02:25 PM, 14 Jun 2017
    Joined.
  • @milovidov_an #16747 02:28 PM, 14 Jun 2017
    Вставка в основную таблицу и в mat. view неатомарна. Но если использовать Replicated-таблицы для обеих и повторять вставку после любой ошибки, то данные будут корректно вставлены без дубликатов в оба места.
  • https://t.me/clickhouse_ru
    @inv2004 #16748 02:42 PM, 14 Jun 2017
    ... удалено. Похоже poco флашит автоматом.
  • https://t.me/clickhouse_ru
    А у меня сложилось впечатление, покрепленное опытом, что атомарна или почти. Ошибка вставки в MV приводит к откату вставки в основную таблицу. Исключение -- когда несколько некаскадных MV на одной таблице: если на момент ошибки какие-то MV уже обновились, то они не откатываются
  • https://t.me/clickhouse_ru
    @alexanderzaitsev #16750 03:01 PM, 14 Jun 2017
    Во всяком случае в рамках одной реплики. Остальные реплики (основая таблица и MV) догоняются полностью независимо
  • @milovidov_an #16751 03:04 PM, 14 Jun 2017
    Вставка идёт сначала в MV, потом в основную таблицу. Если ошибка на этапе вставки в MV, то ничего не вставится.
  • @serlex777 #16752 03:08 PM, 14 Jun 2017
    Всем привет!
    есть возможность средствами КХ выстраивать запросы в очередь?
    есть органичение по кол-во конкурентных запросов. Есть ли у КХ средство из коробки или всегда будет лететь ошибка?
  • https://t.me/clickhouse_ru
    @archimed_shaman #16754 03:15 PM, 14 Jun 2017
    а можно как-то кх ограничить по памяти? а то жрет всю оперативу, выжирает весь своп и сервер вешается так, что даже по ssh не достучаться
  • https://t.me/clickhouse_ru
    @archimed_shaman #16755 03:15 PM, 14 Jun 2017
    шуршит в фоне мержами
  • @iamigor #16756 03:17 PM, 14 Jun 2017
    'max_memory_usage_for_user', 'max_memory_usage_for_all_queries'
  • @iamigor #16757 03:17 PM, 14 Jun 2017
    + 'max_memory_usage', 'max_bytes_before_external_group_by'
  • https://t.me/clickhouse_ru
    @archimed_shaman #16758 03:19 PM, 14 Jun 2017
    max_memory_usage выставлено, но чот по ощущениям выжрато весьма больше :)
  • @iamigor #16759 03:19 PM, 14 Jun 2017
    max_memory_usage - это на один запрос
  • https://t.me/clickhouse_ru
    @archimed_shaman #16760 03:19 PM, 14 Jun 2017
    а ну да
  • https://t.me/clickhouse_ru
    @BloodJazMan #16761 03:20 PM, 14 Jun 2017
    У меня такая же ошибка тоже на вставках последняя версия выжраламвсю оперативу и сервер крашнулся по oom
  • @DigDiver ↶ Reply to #16751 #16762 03:25 PM, 14 Jun 2017
    У меня получается наоборот, в основной таблице данных больше чем в MV. Ошибок при вставке нет. Получается данные в основную таблицу попали, а до MV не доехали. Когда не было реплик, вроде данные соответствовали, а с репликами что-то не получается добиться правильно работы MV
  • @dr_gavrikov #16763 03:32 PM, 14 Jun 2017
    Коллеги, у меня в запросе есть условие WHERE category_id IN (:categoryIds), использую NamedParameterJdbcTemplate

    а можно как-то на уровне SQL переписать это условие, чтобы в случае, если в :categoryIds передавалось NULL, то это условие игнорировалось по сути, и в фильте запроса не было категории? ну то есть чтобы SELECT вывел по всем категориям?
  • Поставьте в users.xml в profiles/default
    <background_pool_size>2</background_pool_size>

    Может быть в будущем сделаем, чтобы сервер сам подстраивался под инсталляции с очень маленьким объёмом оперативки.
  • MV создана с Replicated движком?
  • https://t.me/clickhouse_ru
    @archimed_shaman #16766 03:48 PM, 14 Jun 2017
    @milovidov_an ну я бы не сказал, что 120gb - это очень маленький объем :)
  • Да, это явно не про ваш случай. Про Slach, у которого 4 GB.
  • config.xml:

    <!— Maximum number of concurrent queries. —>
    <max_concurrent_queries>100</max_concurrent_queries>

    Также в users.xml в профиле пользователя можно прописать queue_max_wait_ms:
    /** The wait time in the request queue, if the number of concurrent requests exceeds the maximum. */
  • Ситуация такая. У вас выставлено ограничение max_memory_usage_for_all_queries. Некоторые SELECT-ы в сумме используют много памяти. Затем идёт INSERT. Сам INSERT расходует немного памяти, но в сумме на все запросы оперативки уже не хватает. Поэтому INSERT кидает исключение.
  • https://t.me/clickhouse_ru
    @archimed_shaman #16770 03:55 PM, 14 Jun 2017
    ох, спасибо. выставлял потому, что именно память зажирает и сервак вешает. почему - пока понять не могу
  • @milovidov_an #16772 03:57 PM, 14 Jun 2017
    Решение: выставить также обычный max_memory_usage меньше, чем max_memory_usage_for_all_queries. Уменьшить максимальное количество запросов на пользователя - max_concurrent_queries_for_user. Включить внешнюю агрегацию - см. https://clickhouse.yandex/docs/ru/query_language/queries.html?highlight=max_bytes_before_external_group_by#id8
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16773 03:57 PM, 14 Jun 2017
    интересно, а линукс умеет пристрелить отдельный поток, а не приложение целиком при событии OOM?
  • @milovidov_an #16774 03:57 PM, 14 Jun 2017
    Пристрелить отдельный поток, для программы на C++, не имеет смысла - кто же будет деструкторы вызывать - разблокировать mutex, освобождать память и т. п.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16775 03:58 PM, 14 Jun 2017
    это да, конечно...
  • https://t.me/clickhouse_ru
    @etkee #16776 03:58 PM, 14 Jun 2017
    Если я правильно понимаю, это освободит только стек потока, что не очень много
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16777 03:58 PM, 14 Jun 2017
    в теории ведь можно добавить поток в отдельную cgroup
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16778 03:59 PM, 14 Jun 2017
    и наложить на нее ограничения памяти
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16779 03:59 PM, 14 Jun 2017
    но как это состыкуется с C++ - оооочень сложный вопрос
  • https://t.me/clickhouse_ru
    @etkee #16780 03:59 PM, 14 Jun 2017
    потоки имеют общее адресное пространство (процесса), сомневаюсь, что это вообще возможно
  • queue_max_wait_ms

    а эта настройка в доке не описана

    дефолтное значение у нее получается 0?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16782 04:00 PM, 14 Jun 2017
    если бы ОС умела передать инфуормацию об этом в приложении - поидее было бы возможно
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16783 04:00 PM, 14 Jun 2017
    в бусте есть т.н. interruption point
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16784 04:00 PM, 14 Jun 2017
    когда приложение может прочесть уведомление и например пристрелить поток
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16785 04:01 PM, 14 Jun 2017
    и вызвать корректно освобождение занятых ресурсов конкретно этим потоком
  • https://t.me/clickhouse_ru
    @etkee #16786 04:01 PM, 14 Jun 2017
    Because this ability caused certain problems, the ability to independently manipulate the cgroup memberships of the threads in a process has been removed in cgroups v2
  • https://t.me/clickhouse_ru
    @etkee ↶ Reply to #16785 #16787 04:02 PM, 14 Jun 2017
    Адресное пространство - общее, у потока нет его ресурсов (кроме стэка)
  • @DigDiver ↶ Reply to #16765 #16788 04:02 PM, 14 Jun 2017
    Да
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16789 04:04 PM, 14 Jun 2017
    эх, сколько развлечения удалили :)
  • По-умолчанию, 5 секунд.
  • В таком случае я затрудняюсь сказать навскидку, какая возможна причина. Можно посмотреть в лог. Для каждого INSERT-а, при записи, пишется сообщения вида:

    <Debug> merge..inner.hits_timings2 (Replicated OutputStream): Wrote block 125579 with ID 17833449664338286632_166080607874846114, 116 rows

    И посмотреть на соответствия с обычной таблицей и MV.
  • @DigDiver #16792 04:11 PM, 14 Jun 2017
    Ок, попробую покопаться
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #16763 #16793 04:14 PM, 14 Jun 2017
    если вам не нужна фильтрация по id, то зачем вы ее добавляете в запрос?
  • @dr_gavrikov #16794 04:15 PM, 14 Jun 2017
    ну там передается либо список ID шников, либо NULL и если NULL, то это значит вывести все категории
  • https://t.me/clickhouse_ru
    @orantius #16795 04:16 PM, 14 Jun 2017
    там - это где
  • https://t.me/clickhouse_ru
    @orantius #16796 04:16 PM, 14 Jun 2017
    и почему это не означает список из одного id, равного null
  • https://t.me/clickhouse_ru
    @orantius #16797 04:21 PM, 14 Jun 2017
    по-моему драйвера запросы особенно не парсят и вряд ли что-то в них удаляют.
  • https://t.me/clickhouse_ru
    @salttan #16798 04:31 PM, 14 Jun 2017
    Такое как-то можно починить?
    Сегодня уже 14 июня, а он все еще надеется...
    Part 20170606_20170606_238257_238365_21 is covered by 20170606_20170606_238257_238370_22 but should be merged into 20170606_20170606_238257_238372_22. This shouldn't happen often.
    Checking if anyone has part covering 20170606_20170606_238257_238372_22.
    Found all blocks for missing part 20170606_20170606_238257_238372_22. Will wait for them to be merged.
  • @milovidov_an #16799 04:32 PM, 14 Jun 2017
    Есть неактивные реплики?
  • https://t.me/clickhouse_ru
    @salttan #16800 05:02 PM, 14 Jun 2017
    Нет
  • @milovidov_an #16801 05:14 PM, 14 Jun 2017
    У вас записываются метрики в Graphite?
  • https://t.me/clickhouse_ru
    @salttan #16802 05:15 PM, 14 Jun 2017
    записываются в Zabbix, правда не все
  • @milovidov_an #16803 05:18 PM, 14 Jun 2017
    Посмотрите ClickHouse.Metrics.LeaderReplica, ClickHouse.ProfileEvents.LeaderElectionAcquiredLeadership для обеих реплик. Если по первому графику видно, что они перекрывались хоть в какой-то момент времени - значит это баг на нашей стороне.
  • https://t.me/clickhouse_ru
    @salttan #16804 05:27 PM, 14 Jun 2017
    Эти не записываются. Я включу, такое наверняка повторится.
    А можно как-то починить?
  • @milovidov_an #16805 05:32 PM, 14 Jun 2017
    Можно, но не очень удобно.
  • https://t.me/clickhouse_ru
    @salttan #16806 05:33 PM, 14 Jun 2017
    Мне подходит неудобно :)
  • https://t.me/clickhouse_ru
    @salttan #16807 05:35 PM, 14 Jun 2017
    Кстати такая же штука случалась с таблицей, где всего одна реплика была
  • @milovidov_an #16808 05:35 PM, 14 Jun 2017
    Где всего одна реплика была всегда?
  • https://t.me/clickhouse_ru
    @salttan #16809 05:35 PM, 14 Jun 2017
    да
  • https://t.me/clickhouse_ru
    @salttan #16810 05:36 PM, 14 Jun 2017
    тестовый сервер
  • @milovidov_an #16811 05:36 PM, 14 Jun 2017
    Но там ведь было слегка другое сообщение?
  • https://t.me/clickhouse_ru
    @salttan #16812 05:36 PM, 14 Jun 2017
    нет, такое же
  • @milovidov_an #16813 05:37 PM, 14 Jun 2017
    > Checking if anyone has part covering 20170606_20170606_238257_238372_22.
    Found all blocks for missing part 20170606_20170606_238257_238372_22. Will wait for them to be merged.

    Это выводится, если есть другие реплики...
  • https://t.me/clickhouse_ru
    @salttan #16814 05:37 PM, 14 Jun 2017
    Found all blocks for missing part 20170413_20170413_43744_43847_18. Will wait for them to be merged.
  • https://t.me/clickhouse_ru
    @salttan #16815 05:40 PM, 14 Jun 2017
    И все-таки, как починить?
  • @VitalVas #16816 05:41 PM, 14 Jun 2017
    почему когда вылетает ошибка "Considering to remove broken part /var/lib/clickhouse//data/..... because it's impossible to repair." партиция не переезжает в папку "detached"?
  • Напишите на почту (clickhouse-feedback). Нужно больше подробностей.
  • https://t.me/clickhouse_ru
    @salttan #16818 05:44 PM, 14 Jun 2017
    Хорошо, спасибо
  • https://t.me/clickhouse_ru
    @leontiev_anton #16819 06:21 PM, 14 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @rheinx #16820 06:33 PM, 14 Jun 2017
    Вот и меня настигла проблема broken pipe

    2017.06.14 18:16:04.011259 [ 2 ] <Error> hits_d.Distributed.DirectoryMonitor: Code: 210, e.displayText() = DB::NetException: I/O error: Broken pipe: while reading from socket (10.138.208.224:9000), e.what() = DB::NetException, Stack trace:

    0. clickhouse-server(StackTrace::StackTrace()+0x16) [0x2969826]
    1. clickhouse-server(DB::WriteBufferFromPocoSocket::nextImpl()+0x5ad) [0x297de7d]
    2. clickhouse-server(DB::Connection::sendData(DB::Block const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+0xe5) [0x2b6f365]
    3. clickhouse-server(DB::Connection::sendQuery(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, DB:
    :Settings const*, DB::ClientInfo const*, bool)+0xc35) [0x2b709b5]
    4. clickhouse-server(DB::RemoteBlockOutputStream::writePrefix()+0x6a) [0x2c25eda]
    5. clickhouse-server(DB::StorageDistributedDirectoryMonitor::processFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+0x6f9) [0x2aa4cf9]
    6. clickhouse-server(DB::StorageDistributedDirectoryMonitor::findFiles()+0x14c) [0x2aa680c]
    7. clickhouse-server(DB::StorageDistributedDirectoryMonitor::run()+0xc5) [0x2aa6d05]
    8. clickhouse-server() [0x36744ef]
    9. /lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba) [0x7f3c3ac906ba]
    10. /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7f3c3a2b182d]
  • https://t.me/clickhouse_ru
    @rheinx #16821 06:34 PM, 14 Jun 2017
    простая Distributed таблица на 2х серверах
  • https://t.me/clickhouse_ru
    @rheinx #16822 06:39 PM, 14 Jun 2017
    На втором сервере:

    2017.06.14 09:43:36.158877 [ 19 ] <Error> ServerErrorHandler: Code: 101, e.displayText() = DB::NetException: Unexpected packet from client, e.what() = DB::NetException, Stack trace:

    0. clickhouse-server(StackTrace::StackTrace()+0x16) [0x2969826]
    1. clickhouse-server(DB::Exception::Exception(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)+0x1f) [0x108f49f]
    2. clickhouse-server(DB::TCPHandler::receiveHello()+0xc8) [0x10a34f8]
    3. clickhouse-server(DB::TCPHandler::runImpl()+0x1cc) [0x10a721c]
    4. clickhouse-server(DB::TCPHandler::run()+0x2b) [0x10a827b]
    5. clickhouse-server(Poco::Net::TCPServerConnection::start()+0xf) [0x3274d5f]
    6. clickhouse-server(Poco::Net::TCPServerDispatcher::run()+0x13b) [0x327b19b]
    7. clickhouse-server(Poco::PooledThread::run()+0xb7) [0x34e6e07]
    8. clickhouse-server(Poco::ThreadImpl::runnableEntry(void*)+0xa5) [0x34b2e45]
    9. /lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba) [0x7efc71ac56ba]
    10. /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7efc710e682d]
  • @vludv ↶ Reply to #16822 #16823 06:56 PM, 14 Jun 2017
    А какая у вас версия сервера? И есть ли в таблице Nullable-колонки?
  • https://t.me/clickhouse_ru
    @rheinx #16824 06:56 PM, 14 Jun 2017
    Nullable нет. Версию сейчас скажу
  • https://t.me/clickhouse_ru
    @rheinx #16825 06:57 PM, 14 Jun 2017
    1.1.54236
  • https://t.me/clickhouse_ru
    @rheinx #16826 06:58 PM, 14 Jun 2017
    Таблица маленькая. До 100мб если считать объём внутри clickhouse
  • @vludv #16827 06:59 PM, 14 Jun 2017
    Ок, просто в относительно старой версии c Nullable-колонками похожая проблема с Unexpected packet была.
  • https://t.me/clickhouse_ru
    @rheinx #16828 07:01 PM, 14 Jun 2017
    Не, у меня их нет. В кластере вообще по сути 1 таблица. На каждом из серверов локальные. Плюс на каждом из серверов distributed поверх локальных. Движок mergetree
  • @ztlpn #16829 07:23 PM, 14 Jun 2017
    Фикс бага со вставкой в Distributed таблицу в мастере. Постараемся на этой неделе сделать релиз.
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #16829 #16830 07:33 PM, 14 Jun 2017
    Ура, спасибо!
  • https://t.me/clickhouse_ru
    @rheinx #16831 07:33 PM, 14 Jun 2017
    А деталей не расскажете? В чем была проблема?
  • @ztlpn #16832 07:37 PM, 14 Jun 2017
    Если при вставке обрывалось соединение до удалённого инстанса, то плохое соединение оставалось в пуле и не делалось попытки реконнекта.
  • @ztlpn #16833 07:38 PM, 14 Jun 2017
    Соответственно последующие вставки не проходили.
  • https://t.me/clickhouse_ru
    @rheinx #16834 07:38 PM, 14 Jun 2017
    Ага, понятно, логично. Спасибо!
  • @pookieShmukie #16835 07:59 PM, 14 Jun 2017
    Всем привет! Выкатили новую версию php клиента https://github.com/the-tinderbox/ClickhouseClient. Подробности в релизе.
    GitHub - the-tinderbox/ClickhouseClient: Clickhouse client over HTTP

    Clickhouse client over HTTP. Contribute to the-tinderbox/ClickhouseClient development by creating an account on GitHub.

  • @pookieShmukie #16836 07:59 PM, 14 Jun 2017
    Так же выкатили обещанный билдер запросов с fluent подобным интерфейсом
  • @pookieShmukie #16837 08:00 PM, 14 Jun 2017
    https://github.com/the-tinderbox/ClickhouseBuilder
    Можно пользоваться как standalone так и подключить в Laravel/Lumen
    GitHub - the-tinderbox/ClickhouseBuilder: Fluent queries builder for Clickhouse. Also has integration with Laravel / Lumen.

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

  • @pookieShmukie #16838 08:03 PM, 14 Jun 2017
    Если у кого то будут вопросы, пожелания - все в личку :) Если будет что добавить, то кидайте pull-реквесты
  • @f1yegor #16839 08:36 PM, 14 Jun 2017
    может быть дурацкий вопрос: когда я начинаю стримить результаты какой-то query, то курсор пойдет только по данным на тот момент, или вновь добавленные записи могут всплыть?
  • @pookieShmukie #16840 08:37 PM, 14 Jun 2017
    Я так полагаю, что результат хранится в оперативке
  • @pookieShmukie #16841 08:37 PM, 14 Jun 2017
    Ну т.е. ничего не должно всплыть
  • @pookieShmukie #16842 08:38 PM, 14 Jun 2017
    Это монга по курсору ходит и то, даже она вроде как не выкидывает вновь добавленные данные
  • @pookieShmukie #16843 08:38 PM, 14 Jun 2017
    Хотя на счет КХ я могу ошибаться :)
  • @ztlpn #16844 09:07 PM, 14 Jun 2017
    При выполнении запроса берётся снапшот данных таблицы.
  • @ztlpn #16845 09:07 PM, 14 Jun 2017
    То есть добавляемые данные всплывать не должны.
  • @f1yegor #16846 09:09 PM, 14 Jun 2017
    спасибо
  • https://t.me/clickhouse_ru
    А по поводу авторизации через АД можете что - нибудь подсказать?
  • 15 June 2017 (73 messages)
  • https://t.me/clickhouse_ru
    @citronix #16849 06:53 AM, 15 Jun 2017
    Коллеги, батч инсерт INSERT INTO $table FORMAT Values и получаю иногда Code: 32, e.displayText() = DB::Exception: Attempt to read after eof, e.what() = DB::Exception
  • https://t.me/clickhouse_ru
    @citronix #16850 06:53 AM, 15 Jun 2017
    Кто нибудь сталкивался с такой проблемой?
  • https://t.me/clickhouse_ru
    @Felixoid ↶ Reply to #16849 #16851 07:09 AM, 15 Jun 2017
    Нету какой-нибудь прокси или балансера перед КХ?
  • https://t.me/clickhouse_ru
    @citronix #16852 07:11 AM, 15 Jun 2017
    @Felixoid я сам просто шлю батчи на разные сервера
  • https://t.me/clickhouse_ru
    @citronix #16853 07:11 AM, 15 Jun 2017
    такой типа round-robin
  • У меня была подобная проблема, только Expected end of line, но это при селекте с использованием внешнего файла. Проблема возникала потому, что я отправлял зажатый файл, а при селекте зажатый файлец нельзя отправлять
  • В КХ вроде был встроенный механизм балансировки, могу ошибаться, но в документации есть https://clickhouse.yandex/docs/ru/settings/settings.html#load-balancing
  • https://t.me/clickhouse_ru
    @citronix #16856 10:33 AM, 15 Jun 2017
    Разобрался, это потому что вместе DateTime передаю пустую строку
  • https://t.me/clickhouse_ru
    @citronix #16857 10:34 AM, 15 Jun 2017
    такой вопрос теперь, а можно ли передать как то null?
  • @pookieShmukie #16858 10:45 AM, 15 Jun 2017
    yandex/ClickHouse

    ClickHouse is a free analytic DBMS for big data.

  • @pookieShmukie #16859 10:46 AM, 15 Jun 2017
    Там в тесте есть примеры
  • @iamigor #16860 10:46 AM, 15 Jun 2017
    но они в бете пока
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16862 12:13 PM, 15 Jun 2017
    sorry :/
  • https://t.me/clickhouse_ru
    @archimed_shaman #16863 12:16 PM, 15 Jun 2017
    а когда релиз планируется с багфиксом broken pipe?
  • https://t.me/clickhouse_ru
    @pavel_kozyrev #16864 12:26 PM, 15 Jun 2017
    Joined.
  • @Evanushechkin #16865 12:29 PM, 15 Jun 2017
    Добрый день! А как то можно скрыть пароль пользователя в логах?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #16863 #16866 12:46 PM, 15 Jun 2017
    В течение недели, вчера мне сообщили так в этом чате.
  • @pookieShmukie #16867 12:46 PM, 15 Jun 2017
    Это супер новости! А по багу с оптимизацией запросов ничего не известно пока?
  • https://t.me/clickhouse_ru
    @alex_p_7 #16869 03:34 PM, 15 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @inv2004 #16870 03:36 PM, 15 Jun 2017
    Я правильно понимаю что вставка из одного хэндла однопотоковая?
  • @ztlpn #16871 03:42 PM, 15 Jun 2017
    Имеется в виду одно соединение?
  • https://t.me/clickhouse_ru
    @inv2004 #16872 03:45 PM, 15 Jun 2017
    Да
  • https://t.me/clickhouse_ru
    @inv2004 #16873 03:46 PM, 15 Jun 2017
    Т.е. вижу что в сеть не упирается, но в 4 потока в 4 раза быстрее.
  • @pookieShmukie #16874 03:46 PM, 15 Jun 2017
    Ну так написано в доке, что в несколько потоков вставка быстрее
  • @ztlpn #16875 03:46 PM, 15 Jun 2017
    Ага, однопоточная
  • @ztlpn #16876 03:46 PM, 15 Jun 2017
    Причём узкое место часто сортировка
  • @pookieShmukie #16877 03:47 PM, 15 Jun 2017
    Ага и я так полагаю уже измусоленные unix таймштампы вместо времени? )
  • https://t.me/clickhouse_ru
    @inv2004 #16878 03:47 PM, 15 Jun 2017
    Ага, понял, спасибо. Просто в буфер вставляю, он вроде дублируется в памяти по потокам.
  • https://t.me/clickhouse_ru
    @tellef #16879 03:48 PM, 15 Jun 2017
    Host http://our-clickhouse:8123 is cooling down for 1 seconds

    NoAvailableHostsException: No available hosts among: ['http://our-clickhouse:8123']

    тоже из-за больших вставок в одном запросе?)
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16880 03:51 PM, 15 Jun 2017
    сотировка по времени?
  • @ztlpn ↶ Reply to #16879 #16881 03:51 PM, 15 Jun 2017
    Мы такого не пишем :) это какой драйвер?
  • @ztlpn ↶ Reply to #16880 #16882 03:51 PM, 15 Jun 2017
    сортировка по первичному ключу
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16883 03:52 PM, 15 Jun 2017
    ммм, я видел такое в InfluxDB
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16884 03:52 PM, 15 Jun 2017
    они как опцию предлагают сортировать на клиенте
  • https://t.me/clickhouse_ru
    @tellef ↶ Reply to #16881 #16885 03:52 PM, 15 Jun 2017
    python clickhouse
  • @ztlpn #16886 03:54 PM, 15 Jun 2017
    Если уже данные уже отсортированы в нужно порядке, вставка будет быстрее. Но специально сортировать мало смысла - вряд ли это получится эффективнее, чем в ClickHouse
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16887 03:57 PM, 15 Jun 2017
    резонно
  • @ztlpn ↶ Reply to #16885 #16888 04:02 PM, 15 Jun 2017
    Какой из? Их несколько вроде... И наверно лучше у авторов драйвера спросить, что когда такое бывает.
  • https://t.me/clickhouse_ru
    @alex_p_7 #16889 04:02 PM, 15 Jun 2017
    Всем привет. Тестируем СН, жутко тормозит запрос вида select * from test where id > x order by id limit y. По статистике видно что идёт чтение всей таблицы целиком. Можно ли что-нибудь настроить, чтобы такой запрос отрабатывал быстро?
  • @pookieShmukie #16890 04:02 PM, 15 Jun 2017
    В первичный ключ если только добавить нужную колонку
  • @pookieShmukie #16891 04:03 PM, 15 Jun 2017
    Либо выбирать не все колонки
  • @pookieShmukie #16892 04:03 PM, 15 Jun 2017
    т.е. не по звездочке
  • @pookieShmukie #16893 04:03 PM, 15 Jun 2017
    Много колонок?
  • https://t.me/clickhouse_ru
  • @ztlpn #16896 04:07 PM, 15 Jun 2017
    на первый взгляд получается, что при любой ошибке такое
  • @ztlpn #16897 04:07 PM, 15 Jun 2017
    понять, что за ошибка, можно по строчке вида Error while requesting to %s: %s
  • https://t.me/clickhouse_ru
    @alex_p_7 ↶ Reply to #16893 #16898 04:08 PM, 15 Jun 2017
    Id, date, string. В запросе конечно не пишу *. Написал тут для экономии места.
  • @ztlpn #16899 04:13 PM, 15 Jun 2017
    ORDER BY сейчас не использует индекс
  • https://t.me/clickhouse_ru
    помогло
    СПАСИБО
  • https://t.me/clickhouse_ru
    @alex_p_7 ↶ Reply to #16899 #16901 04:20 PM, 15 Jun 2017
    Пичалька. Как жить?
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #16886 #16902 04:20 PM, 15 Jun 2017
    но наверное имеет смысл, если ты можешь, готовить данные сразу в правильном порядке )
  • @ztlpn #16903 04:21 PM, 15 Jun 2017
    именно так :)
  • https://t.me/clickhouse_ru
    @plotnikovandrei #16904 05:20 PM, 15 Jun 2017
    Joined.
  • @skripov #16905 05:57 PM, 15 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @evervoid ↶ Reply to #16901 #16906 06:42 PM, 15 Jun 2017
    Поддерживаю вопрос. Очень туго живется без ORDER BY.
  • https://t.me/clickhouse_ru
    @the_real_jkee #16907 06:55 PM, 15 Jun 2017
    Подождите, вроде order by тут ни при чем
  • https://t.me/clickhouse_ru
    Там в запросе where по индексу
  • https://t.me/clickhouse_ru
    @the_real_jkee #16909 06:56 PM, 15 Jun 2017
    Как я понимаю, он не работает
  • https://t.me/clickhouse_ru
    @the_real_jkee #16910 06:56 PM, 15 Jun 2017
    А order by по индексу в большинстве случаев не будет давать ожидаемого профита, как я понимаю. Следствие организации хранения данных в merge tree.
  • https://t.me/clickhouse_ru
    @the_real_jkee #16911 06:58 PM, 15 Jun 2017
    Подумал ещё немного. Будет, но зависит от данных и запроса. Не так как в классических базах с каким-нибудь btree.
  • @DenysLamanov #16912 07:56 PM, 15 Jun 2017
    Ребята, вы можете обновить benchmark? Например, там сравнение с очень старой версией MemSQL. Сейчас 5.8, а начиная с 4.0 columnstore существенно переработан и ускорен
  • А какое отношение MemSql имеет к КХ?
  • @DenysLamanov #16914 08:12 PM, 15 Jun 2017
    Там же написано - benchmark
  • @milovidov_an #16916 08:21 PM, 15 Jun 2017
    Надо обновить. Для MemSQL даже не так сложно, потому что сохранилась пошаговая инструкция. Сделаем, если найдём время.
  • https://t.me/clickhouse_ru
    @SLASH_CyberPunk #16917 09:09 PM, 15 Jun 2017
    Я все вертику жду обновления, уже версия 8.1 в проде бегает 😬
  • https://t.me/clickhouse_ru
    @alexanderzaitsev #16918 09:35 PM, 15 Jun 2017
    С Вертикой не будет принципиальной разницы в зависимости от версий
  • https://t.me/clickhouse_ru
    @taroff ↶ Reply to #13348 #16919 10:21 PM, 15 Jun 2017
    Добрый день! Как-то проблема решилась? Тоже самое наблюдаю, все норм работает. INFO. Но все же. Сыпятся постоянно такие сообщения..
  • Это вообще не ошибка. Это говорит о том, что мы спросили у ZK данные о каком-то узле, но узла нет. С точки зрения приложения, и с точки зрения самого ZK, это нормальная ситуация. Можете понизить уровень логгирования в ZK.
  • https://t.me/clickhouse_ru
    @taroff #16921 10:38 PM, 15 Jun 2017
    ок, спс
  • @f1yegor ↶ Reply to #16916 #16922 10:39 PM, 15 Jun 2017
    есть такой человек Andy Pavlo, он хорошо знает ребят из MemSQL, может они сами захотят прогнать?
  • @milovidov_an #16923 10:40 PM, 15 Jun 2017
    Смысл в том, что все системы проходят тесты на одинаковых серверах.

    А вообще было бы хорошо. Сейчас для этого не хватает генератора тестовых данных.
  • 16 June 2017 (128 messages)
  • https://t.me/clickhouse_ru
    @alexfed90 #16924 06:54 AM, 16 Jun 2017
    Всем привет. Кто-нибудь пробовал использовать odbc драйвер на windows? У вас он хоть с какой-нибудь программой начал отрабатывать?
  • https://t.me/clickhouse_ru
    @alexfed90 #16925 06:55 AM, 16 Jun 2017
    Мы пробовали spss моделлер, excel 2013, tableau 10.3 - где-то видит только таблицы, где-то еще видны поля. но селект нигде не получилось сделать. эксель просто не подлкючился
  • https://t.me/clickhouse_ru
    @reamon26 #16926 07:14 AM, 16 Jun 2017
    Joined.
  • @danton0v ↶ Reply to #16924 #16927 07:24 AM, 16 Jun 2017
    пока не получается настроить табло чтобы подцепить кх https://community.tableau.com/message/629589#629589
  • https://t.me/clickhouse_ru
    @pavel_kozyrev #16928 08:38 AM, 16 Jun 2017
    Здравствуйте!

    Система генерирует поток событий. У события есть время появления, уникальный идентификатор и текстовое представление события.
    Структура таблицы для хранения событий:
    CREATE TABLE IF NOT EXISTS test_data (CounterID UInt32, EventDate Date, Payload String) ENGINE = MergeTree(EventDate, (CounterID, EventDate), 8192)
    Я хочу использовать кликхаус в качестве хранилища событий с возможностью запуска аналитики и с возможностью последующей выгрузки в другие системы.

    Записал в таблицу примерно 0.5*10^9 таких событий и пытаюсь перегружать их по мере пеступления во внешнего клиента таким запросом:
    SELECT CounterID,EventDate,Payload FROM test_data WHERE CounterID > 5 ORDER BY CounterID LIMIT 5 FORMAT JSON

    Запрос выполняется 50 минут.

    Всего строк
    COUNT()=623171850

    "statistics":
    {
    "elapsed": 3094.789434725,
    "rows_read": 623171850,
    "bytes_read": 430075954723
    }

    Аналогично для запроса

    SELECT CounterID,EventDate,Payload FROM test_data WHERE CounterID > 623171000 ORDER BY CounterID LIMIT 5

    По какой причине в этом запросе происходит чтение всех строк и не используется индекс?
    Есть ли правильный способ перегружать данные из таблицы во внешнюю систему по мере поступления событий или clickhouse в принципе не предназначен для таких задач?

    версия clickhouse 1.1.54236
  • @pookieShmukie #16933 08:53 AM, 16 Jun 2017
    Судя по вчерашнему общению на тему order by, то он вроде как не использует индекс
  • @pookieShmukie #16934 08:56 AM, 16 Jun 2017
    И возможно так долго данные читаются как раз таки из-за order by, но я могу ошибаться ) Лучше дождаться ответа от разработчиков
  • @pookieShmukie #16935 08:57 AM, 16 Jun 2017
    Хотя...скорее всего у вас слишком большая гранулированность CounterID
  • @pookieShmukie #16936 08:57 AM, 16 Jun 2017
    И получается так, что особого профита от индекса по этой колонке нет
  • @pookieShmukie #16937 08:57 AM, 16 Jun 2017
    Получается аналогично фулскану
  • @pookieShmukie #16938 08:58 AM, 16 Jun 2017
    Можно добавить еще колонку какую то типа eventBatch и класть туда например пометку о каждых 10 миллионах записей
  • @pookieShmukie #16939 08:58 AM, 16 Jun 2017
    И вместо CounterID включить ее в индекс
  • @pookieShmukie #16940 08:59 AM, 16 Jun 2017
    Например на батчи в диапозоне 623 170 000 - 623 171 000 значение eventBatch будет 623 170 000
  • @pookieShmukie #16941 08:59 AM, 16 Jun 2017
    Тогда можно будет делать запрос типа prewhere eventBatch > 623 170 000 where CounterID > 623 171 000
  • @pookieShmukie #16942 09:03 AM, 16 Jun 2017
    Вот тут есть очень развернутый ответ Алексея на тему того как работает первичный ключ: https://groups.google.com/forum/#!topic/clickhouse/eUrsP30VtSU
  • https://t.me/clickhouse_ru
    @maxlog_org #16943 09:28 AM, 16 Jun 2017
    А нет ли желания рассказать про ClickHouse на https://smartdataconf.ru/ ?
    Link

    SmartData 2021 — конференция для Data-инженеров. 4 дня. Спикеры со всего мира. Несколько десятков технических докладов о хранилищах данных, стриминге, data governance и многом другом.

  • https://t.me/clickhouse_ru
    Спасибо, интересно
  • https://t.me/clickhouse_ru
    @spotted_horse #16945 09:48 AM, 16 Jun 2017
    Joined.
  • @milovidov_an #16946 10:14 AM, 16 Jun 2017
    Про Excel.
  • @milovidov_an #16947 10:14 AM, 16 Jun 2017
    В 2016 запрос через odbc - работает. 2013 ещё надо найти.
  • Можем. Организаторы заинтересованы в нашем докладе?
  • Если читается много строк - значит получается, что много строк подходят под условие CounterID > 5 или CounterID > 623171000. При этом ORDER BY CounterID LIMIT 5 уже не помогает, так как ORDER BY не использует индекс.

    Чтобы было эффективнее, можно поставить условие на CounterID сверху, как-то наугад: CounterID > 5 AND CounterID < 500. Понятное дело, что так не всегда возможно.

    ORDER BY не использует индекс. Но это было бы хорошо реализовать. Ещё не реализовано, потому что требуется несколько другой способ распараллеливания запроса (разделения задач по потокам) - более "последовательный", чем когда известно, что мы будем читать весь диапазон. И такая логика просто ещё не разработана.
  • https://t.me/clickhouse_ru
    Затрудняюсь ответить. Я пока только посетитель конференций, проводимых JUG.ru.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16951 10:31 AM, 16 Jun 2017
    ну хоть кто-то здесь не ненавидит яву=)
  • @278690219 #16952 10:36 AM, 16 Jun 2017
    Joined.
  • @milovidov_an #16953 10:42 AM, 16 Jun 2017
    Вспомнил, что у нас уже есть предварительная договорённость о конференции от Jug.ru как раз в это время. Думаю, это она и есть. Значит будем.
  • https://t.me/clickhouse_ru
    @pavel_kozyrev #16954 10:57 AM, 16 Jun 2017
    про использование order by понял, спасибо
  • https://t.me/clickhouse_ru
    @hagen1778 #16955 11:01 AM, 16 Jun 2017
    Существует ли возможность смерджить одноуровневые массивы? Например, для структуры: Key UInt32 | Value Array(UInt32)
    поулчить все уникальные значения элементов массива Value для определенного ключа?
  • Где то видел модификаторы агрегатных функций ForEach
  • @pookieShmukie #16957 11:09 AM, 16 Jun 2017
    Которые по массиву топают
  • Можно воспользоваться агрегатной функцией groupUniqArrayArray. На вход принимает массивы. На выходе будет массив со всеми уникальными значениями.
    Название необычное, потому что это - агрегатная функция groupUniqArray, к которой ещё приписали комбинатор -Array.
  • https://t.me/clickhouse_ru
    спасибо!
  • @Nikqwag #16960 11:45 AM, 16 Jun 2017
    Расскажите, пожалуйста, по-подробнее, что такое seek-и. Откуда возникают и что влияет на их количество. Что с их помощью оценить​ - есть в документации, но не понимаю откуда они.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16961 11:46 AM, 16 Jun 2017
    это из области жесктих дисков, время необходимое на передвижение головки механического диска на другую дорожку
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16962 11:46 AM, 16 Jun 2017
    условно, это время задержки межда получением команды "прочти блок Х" и его прочтением с магнитной пластины.
  • @Nikqwag #16963 11:48 AM, 16 Jun 2017
    И, если я правильно понимаю, оно будет увеличиваться с количеством данных на диске?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16964 11:48 AM, 16 Jun 2017
    нет :)
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16965 11:49 AM, 16 Jun 2017
    это относительно постоянная величина в районе 4-9 мс
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16966 11:49 AM, 16 Jun 2017
    она зависит сугубо от расстояния между дорожками (чем дальше - от центра - данные на диск легли - тем дольше)
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16967 11:50 AM, 16 Jun 2017
    ну и как следствие, чем больше обращений с паттерном "рандом read / write", когда чтение запись идет не последовательно, а в разные файлы (как следствие размещенные в физически разных местах жесктого диска) идет этот самый seek
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16968 11:50 AM, 16 Jun 2017
    чем больше рандомность - тем больше он времени жрет. Идеальный вариант - когда данные пишутся последовательно и очень большими блоками, так будет быстрее всего.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16969 11:51 AM, 16 Jun 2017
    либо выкинуть начерт механические диски и забыть про бурду что я только что рассказал :)
  • @Nikqwag #16970 11:54 AM, 16 Jun 2017
    Ясно, спасибо! Смутил тот факт, что при выполнении select event, value from system.events where event == 'Seek' возвращает 1621052. Бывает увеличивается скачками немного, не уменьшается и не понятно в каких попугаях измеряется.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16971 11:55 AM, 16 Jun 2017
    я почти уверен, что - в штуках :)
  • https://t.me/clickhouse_ru
    @vladimirmyuge #16972 12:24 PM, 16 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @maxnaumov #16973 12:25 PM, 16 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @omakarova #16974 12:44 PM, 16 Jun 2017
    Joined.
  • В штуках с момента запуска сервера. Это количество системных вызовов для seek.
  • https://t.me/clickhouse_ru
    @maxlapshin #16976 01:13 PM, 16 Jun 2017
    т.е. это не seek шпинделя?
  • @Nikqwag #16977 01:14 PM, 16 Jun 2017
    И смысл такого счётчика тоже, пожалуйста)
  • @milovidov_an #16978 01:16 PM, 16 Jun 2017
    С реальным перемещением головок связано косвенно.
    Смысл счётчика - количество мест, с которых мы читали файлы.
    Например, если после обработки запроса, счётчик увеличился на 10 - значит было 10 разных мест, начиная с которых мы делали чтения файлов.
  • https://t.me/clickhouse_ru
    @polymorph84 #16979 01:21 PM, 16 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @Bromansky #16980 01:24 PM, 16 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #16981 01:25 PM, 16 Jun 2017
    удобная штука для отладки
  • https://t.me/clickhouse_ru
    @rheinx #16982 01:26 PM, 16 Jun 2017
    Ребят, а есть какие нибудь костыли против broken pipe до релиза новой версии?
  • @ztlpn ↶ Reply to #16982 #16983 01:38 PM, 16 Jun 2017
    Вот такое только что придумал.
  • @ztlpn #16984 01:38 PM, 16 Jun 2017
    Можно в каждом шарде задублировать реплику
  • @ztlpn #16985 01:39 PM, 16 Jun 2017
    и не забыть выставить везде internal_replication = true
  • @ztlpn #16986 01:40 PM, 16 Jun 2017
    то есть было так:
    <remote_servers>
    <test_cluster>
    <shard>
    <replica>
    <host>remote</host>
    <port>9000</port>
    </replica>
    </shard>
    </test_cluster>
    </remote_servers>
  • @ztlpn #16987 01:40 PM, 16 Jun 2017
    стало так:
    <remote_servers>
    <test_cluster>
    <shard>
    <internal_replication>true</internal_replication>
    <replica>
    <host>remote</host>
    <port>9000</port>
    </replica>
    <replica>
    <host>remote</host>
    <port>9000</port>
    </replica>
    </shard>
    </test_cluster>
    </remote_servers>
  • @ztlpn #16988 01:40 PM, 16 Jun 2017
    И так для каждого шарда
  • @pookieShmukie #16989 01:40 PM, 16 Jun 2017
    А если у меня виртуалки? Я могу просто склонировать три шарда и сделать их репликами? Данные будут переналиваться или лучше чистый инстанс кх поднимать?
  • @ztlpn #16990 01:40 PM, 16 Jun 2017
    Должно помочь :)
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #16990 #16991 01:41 PM, 16 Jun 2017
    Чет не совсем понимаю, а как оно поможет?
  • @ztlpn ↶ Reply to #16989 #16992 01:41 PM, 16 Jun 2017
    Плохо объяснил наверно. Реплики существуют только в конфиге
  • @ztlpn #16993 01:42 PM, 16 Jun 2017
    По факту сервера остаются теми же, просто их надо внести в конфиг два раза
  • @ztlpn ↶ Reply to #16991 #16994 01:44 PM, 16 Jun 2017
    Если реплик больше одной, используется другой код, в котором проблемы нет. Таким конфигом мы заставляем ClickHouse думать, что их две на шард, хотя на самом деле одна :)
  • @ztlpn #16995 01:46 PM, 16 Jun 2017
    Посколько при internal_replication=true вставка будет производиться только на одну из "реплик", дублирования данных не будет.
  • @ztlpn #16996 01:47 PM, 16 Jun 2017
    При запросе в distributed таблицу запрос тоже направляется только на одну из "реплик" шарда.
  • @ztlpn #16997 01:47 PM, 16 Jun 2017
    То есть всё будет работать как надо
  • https://t.me/clickhouse_ru
    @rheinx #16998 01:49 PM, 16 Jun 2017
    очень интересное решение
  • https://t.me/clickhouse_ru
    @rheinx #16999 01:49 PM, 16 Jun 2017
    А zookeeper нужен?
  • @ztlpn #17000 01:50 PM, 16 Jun 2017
    Ну вы же просили костыль :)
  • @ztlpn #17001 01:50 PM, 16 Jun 2017
    Нет не нужен - можно обойтись только правкой конфига
  • https://t.me/clickhouse_ru
    @rheinx #17002 01:50 PM, 16 Jun 2017
    Огонь, тогда то что нужно!)
  • https://t.me/clickhouse_ru
    @rheinx #17003 01:51 PM, 16 Jun 2017
    я вот правда одного понять не могу. Как такая версия попала в репозитории? Ведь на сколько я помню версия сначала обкатывается на метрике, и только спустя какое то время выкладывается в репу
  • https://t.me/clickhouse_ru
    @rheinx #17004 01:51 PM, 16 Jun 2017
    или в Яндексе идеальные сети?))
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17005 01:52 PM, 16 Jun 2017
    скорее вопрос, зачем поставили в продакшен то, что прилетело в репах
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17006 01:52 PM, 16 Jun 2017
    нежели чем к авторам. КХ - опенсорс и идет без гарантий, SLA и прочего
  • @ztlpn #17007 01:54 PM, 16 Jun 2017
    Сети хорошие, но естественно неидеальные. У нас баг не проявился потому, что вставка идёт напрямую в локальные таблицы.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17008 01:54 PM, 16 Jun 2017
    мы держим свой репо со старой версией КХ и долгим процессом обновления на новую версию
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17009 01:54 PM, 16 Jun 2017
    по факту 1-2 месяца задержки между продакшеном и выходом фичи в репо КХ
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #17006 #17010 01:54 PM, 16 Jun 2017
    Не, у меня вопрос без претензий. Чисто истерес. Т.е. если эта версия стоит на метрике и там все работает, быть может админы метрики имеют какое-то секретное заклинание.
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #17007 #17011 01:54 PM, 16 Jun 2017
    А, вот он и ответ. Спасибо!)
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17012 01:55 PM, 16 Jun 2017
    выше описали) они по другому вставляют
  • https://t.me/clickhouse_ru
    @vladimirmyuge #17013 03:16 PM, 16 Jun 2017
    Всем привет, а существует ли чатик про логс апи метрики? И если нет - уместно ли будет тут спрашивать?
  • https://t.me/clickhouse_ru
    @dmitry_burov #17014 03:19 PM, 16 Jun 2017
    Joined.
  • @milovidov_an #17015 03:52 PM, 16 Jun 2017
    Говорят, чата по Logs API нет и надо писать в поддержку Метрики.
  • https://t.me/clickhouse_ru
    @the_real_jkee #17016 03:53 PM, 16 Jun 2017
    Так и есть.
  • @select_user_name #17017 04:02 PM, 16 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #16988 #17018 06:26 PM, 16 Jun 2017
    попробовал
  • https://t.me/clickhouse_ru
    @rheinx #17019 06:26 PM, 16 Jun 2017
    не помогло)
  • @ztlpn #17020 06:37 PM, 16 Jun 2017
    Возможно, придётся ещё раз перезапустить после изменения конфига
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #17020 #17021 06:40 PM, 16 Jun 2017
    я возможно не правильно сделал. У меня 2 шарда. Я получается в кадом шарде создаю еще по одной такой же реклике и добавляю <internal_replication>true</internal_replication>
  • https://t.me/clickhouse_ru
    @rheinx #17022 06:40 PM, 16 Jun 2017
    верно?
  • @ztlpn #17023 06:41 PM, 16 Jun 2017
    Да. У вас же одна реплика на шард была?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #17023 #17024 06:43 PM, 16 Jun 2017
    да
  • @ztlpn #17025 06:48 PM, 16 Jun 2017
    А перезапуск после изменения конфига был?
  • @ztlpn #17026 06:49 PM, 16 Jun 2017
    Перезапуск всё-таки нужен, несмотря на то, что конфиг кластеров подхватывается автоматически.
  • @pookieShmukie #17027 06:50 PM, 16 Jun 2017
    Это без ZK он автоматом цепляется?
  • @pookieShmukie #17028 06:51 PM, 16 Jun 2017
    Там watcher на файле конфига висит? )
  • @ztlpn #17029 06:51 PM, 16 Jun 2017
    Просто раз в пару секунд проверяем, что файл не изменился.
  • @pookieShmukie #17030 06:52 PM, 16 Jun 2017
    А автоматом хватает только секцию remote_servers? Или какие то части конфига тоже?
  • @pookieShmukie #17031 06:52 PM, 16 Jun 2017
    И тут еще уточнение, делать reload или именно restart?
  • @ztlpn #17032 06:57 PM, 16 Jun 2017
    Автоматом подхватываются конфиги кластеров и пользователей
  • @ztlpn #17033 06:57 PM, 16 Jun 2017
    reload и restart у нас одно и то же делают
  • @pookieShmukie #17034 06:57 PM, 16 Jun 2017
    А планируется какой то механизм управления юзерами, например как в mysql?
  • @pookieShmukie #17035 06:57 PM, 16 Jun 2017
    Что бы не через конфиг рулить
  • @ztlpn #17036 06:58 PM, 16 Jun 2017
    что-то типа CREATE USER?
  • @pookieShmukie #17037 06:58 PM, 16 Jun 2017
    Только вроде restart ждет пока все коннекшены отработают? А релоад вроде аля graceful? Или прям один в один команды? )
  • @pookieShmukie #17038 06:58 PM, 16 Jun 2017
    Да, что то типа того
  • @ztlpn #17039 06:59 PM, 16 Jun 2017
    Нет, не планировали такого
  • @pookieShmukie #17040 06:59 PM, 16 Jun 2017
    Удобно было бы джунам и разрабам давать доступ к деву например, что бы не один логин пасс на всех )
  • @ztlpn #17041 07:00 PM, 16 Jun 2017
    По-хорошему, конечно, reload не должен ничего перезапускать, а должен аккуратно перезагрузить конфигурацию. Но у нас это синоним restart. Не знаю, зачем добавили, видимо для совместимости.
  • @pookieShmukie #17042 07:01 PM, 16 Jun 2017
    Понятно, спасибо за объяснения :)
  • @pookieShmukie #17043 08:15 PM, 16 Jun 2017
    Кстати, а не планируете добавить автообновление словарей так же как и кластеров и юзеров? )
  • @pookieShmukie #17044 08:15 PM, 16 Jun 2017
    Было бы полезно
  • Конфиги словарей обновляются без перезапуска сервера. Так было сделано с самого начала.
  • Супер! Не знал об этом!
  • @romakorzh #17048 09:36 PM, 16 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @inv2004 #17049 09:42 PM, 16 Jun 2017
    Надо двигаться дальше - автодобавление в словарь!
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17050 09:48 PM, 16 Jun 2017
    AMD has Intel squarely in their sights with the Ryzen release; all the released and currently available consumer Ryzen CPUs have native hardware SHA support, and their highly-anticipated Naples (codename Epyc) server chipsets due for release in Q2 2017 are sure to win them favor in the high performance, high throughput, encrypted endpoint game when they’re released in just a few months.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17051 09:49 PM, 16 Jun 2017
    Немного офтоп, но думаю много кому такая оптимизация будет актуальна
  • @korservick #17052 10:16 PM, 16 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #17050 #17053 10:25 PM, 16 Jun 2017
    у интела тоже есть аппаратный SHA :)
  • https://t.me/clickhouse_ru
    @Civiloid #17054 10:25 PM, 16 Jun 2017
    и уже ржали что они анонсировали аппаратный SHA1 чуть ли не в день когда в нем нашли последнюю уязвимость
  • https://t.me/clickhouse_ru
    @Civiloid #17055 10:26 PM, 16 Jun 2017
    Intel® SHA Extensions

    Download PDF New Instructions Supporting the Secure Hash Algorithm on Intel® Architecture Processors July 2013 Executive Summ

  • https://t.me/clickhouse_ru
    @Civiloid #17056 10:26 PM, 16 Jun 2017
    опкоды и поведение совпадает с теми, что в Ryzen'е
  • 17 June 2017 (6 messages)
  • @linuxbymonk #17057 12:31 PM, 17 Jun 2017
    Joined.
  • @IgnatenkovNikita #17058 12:46 PM, 17 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @edubnitsky #17059 01:05 PM, 17 Jun 2017
    Joined.
  • @pavel_maksimow #17060 03:10 PM, 17 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @stereome #17061 07:08 PM, 17 Jun 2017
    Joined.
  • @396623638 #17062 09:26 PM, 17 Jun 2017
    Joined.
  • 18 June 2017 (1 messages)
  • @alex89888 #17063 02:56 PM, 18 Jun 2017
    Joined.
  • 19 June 2017 (141 messages)
  • @245303384 #17064 03:30 AM, 19 Jun 2017
    Joined.
  • @245303384 #17065 03:32 AM, 19 Jun 2017
    Ребята, доброго времени суток. Подскажите пожалуйста каким образом производятся операции бэкапирования (в ClickHouse). Возможно у кого то есть свои определенные "best-практикс" на этот счет. Буду рад любой информации по этому вопросу. Заранее благодарен
  • https://t.me/clickhouse_ru
    @yaBloom #17066 03:40 AM, 19 Jun 2017
    На сколько мне известно, там можно прям папку базы скопирнуть
  • @245303384 #17067 03:42 AM, 19 Jun 2017
    Думал над подобным вариантом. Вот только сразу ряд "Но" возникает. Если запись будет в базу вестись постоянно (24x7) - то скопировать наверное не получится. А вариант с инсертом в другую базу и только потом архивирование (например) - как то громозко выглядит
  • https://t.me/clickhouse_ru
    @yaBloom #17068 03:48 AM, 19 Jun 2017
    Смотри в сторону FREEZE PARTITION
  • https://t.me/clickhouse_ru
    @yaBloom #17069 03:48 AM, 19 Jun 2017
    наверно ответ там
  • @245303384 #17070 03:59 AM, 19 Jun 2017
    Спасибо... изучу этот момент. Очень признателен за ответ
  • @mityanin #17071 06:41 AM, 19 Jun 2017
    Joined.
  • @mityanin #17072 06:42 AM, 19 Jun 2017
    Всем привет! Кто-нибудь сталкивался с арифметикой для больших чисел? Что делать, если результат не вмещается в размер UInt64, а посчитать сумму надо?
  • @mityanin #17075 07:25 AM, 19 Jun 2017
    никто, да?
  • https://t.me/clickhouse_ru
    @finio #17076 07:32 AM, 19 Jun 2017
    Использовать float?
  • @mityanin ↶ Reply to #17076 #17077 07:49 AM, 19 Jun 2017
    дело в том, что данные представляют собой денежный эквивалент, а float для денег не подходит
  • @mityanin #17078 07:49 AM, 19 Jun 2017
    сейчас это UInt64 где хранится значение * 100
  • https://t.me/clickhouse_ru
    @finio #17081 07:57 AM, 19 Jun 2017
    Ой не чушь пишу
  • https://t.me/clickhouse_ru
    @yaBloom #17082 07:59 AM, 19 Jun 2017
    Интересно, а в строку это реально будет преобразовать?
  • https://t.me/clickhouse_ru
    @yaBloom #17083 08:00 AM, 19 Jun 2017
    или оно умрет на этапе суммирования?
  • @pookieShmukie #17084 08:01 AM, 19 Jun 2017
    А вы не в Белорусии считаете? )
  • @pookieShmukie #17085 08:02 AM, 19 Jun 2017
    Просто там как бы сумма то огого должна получиться, max value вроде 18446744073709551615...
  • @mityanin ↶ Reply to #17082 #17086 08:03 AM, 19 Jun 2017
    если в строке будет большее число, чем сможет вместить в себя тип данных, то оно не распарсится
  • @mityanin ↶ Reply to #17085 #17087 08:04 AM, 19 Jun 2017
    когда данных много за большой период, то сумма, с учетом умножения на 100, может получаться больше максимальной границы
  • https://t.me/clickhouse_ru
    @yaBloom #17088 08:07 AM, 19 Jun 2017
    а работа с 16ричными числами поддерживается?
  • https://t.me/clickhouse_ru
    @yaBloom #17089 08:07 AM, 19 Jun 2017
    чисто интересно
  • https://t.me/clickhouse_ru
    @etkee ↶ Reply to #17084 #17090 08:07 AM, 19 Jun 2017
    Там давно деноминацию провели
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17091 08:20 AM, 19 Jun 2017
    И 1 новый рубль почти как полбакса стоит ;) оч недурно
  • https://t.me/clickhouse_ru
    @finio ↶ Reply to #17087 #17092 08:41 AM, 19 Jun 2017
    184467440 миллиардов не хватит?
  • @mityanin #17093 08:41 AM, 19 Jun 2017
    я бы, наверное, не спрашивал, если бы хватало
  • https://t.me/clickhouse_ru
    @erokhindima #17094 08:59 AM, 19 Jun 2017
    Привет. Можно чтоб в словаре flat или hashed идентификатор был строкового типа? или только через complex_key_hashed ?
  • @kochetovnicolai #17095 09:06 AM, 19 Jun 2017
    только через complex_key
  • https://t.me/clickhouse_ru
    @archimed_shaman #17096 09:06 AM, 19 Jun 2017
    Релиз новый еще не собрали?
  • https://t.me/clickhouse_ru
    @finio ↶ Reply to #17093 #17097 09:18 AM, 19 Jun 2017
    ну я не вижу вариантов, кроме как хранить кусками поразрядно
    КХ при этом не сможет просуммировать больше uint64
    если нужно uint128 сделать 8 полей по uint16
    потом выбирать SUM(f1), SUM(f2), ... SUM(f8)
    и уже в своей программе досуммировать, учитывая единицу переноса
  • https://t.me/clickhouse_ru
    @finio #17098 09:19 AM, 19 Jun 2017
    как минимум 2^(64-16) строк так можно хранить
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17099 09:21 AM, 19 Jun 2017
    128 битные числа - мне нравится идея
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17100 09:22 AM, 19 Jun 2017
    как минимум - я бы мог использовать их для IPv6 и манипуляции с ними, FixedString, конечно, работает, но нэтивный да еще и числовой тип с потенциальной возможность увеличения компрессии... мммм! :)
  • @igorl86 #17101 09:50 AM, 19 Jun 2017
    Привет! подскажите плиз как правильнее работать с праймари ключами, когда необходимо делать запросы по непересекающимся критериям.
    например есть большая таблица фактов, там среди прочих есть колонки clientId, applicationId, country.

    1/3 запросов будет делать фильтровать по clientId, 1/3 запросов будет делать group by applicationId, 1/3 будет фильтровать/группировать по полю country.
    Можно создать композитный (clientId, applicationId, country), но вроде как он ускорит только первый тип запросов.

    Вопроса два:
    1. Влияет ли наличие поля в праймари ключе на выполнение запросов с group by?
    2. В приведенном выше кейсе, какой из способов создания праймари ключа выбрать?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #17101 #17102 09:58 AM, 19 Jun 2017
    Вот есть подробное описание от Алексея. Думаю будет полезно: https://groups.google.com/d/msg/clickhouse/eUrsP30VtSU/p4-pxgdXAgAJ
    Google Groups

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

  • @igorl86 #17103 10:04 AM, 19 Jun 2017
    да, вопрос появился как раз после прочтения. т.е. непонятно что делать когда есть 2-3 разных поля, по каждому из которых может производиться фильтрация (которая затраивает лишь это поле и не трогает два других)
  • https://t.me/clickhouse_ru
    @masterdizer #17104 10:13 AM, 19 Jun 2017
    2-3 таблицы?
  • https://t.me/clickhouse_ru
    @a_nikushin #17105 10:13 AM, 19 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @taroff #17106 10:13 AM, 19 Jun 2017
    или + mat view с другим набором ключей
  • @igorl86 #17107 10:18 AM, 19 Jun 2017
    о, спасибо, слона то я и не приметил
  • https://t.me/clickhouse_ru
    @taroff #17108 10:20 AM, 19 Jun 2017
    решение впрочем не оч удобное, жаль нет вторичных индексов
  • https://t.me/clickhouse_ru
    @DenisTST #17109 10:49 AM, 19 Jun 2017
    Joined.
  • @a_beloglazov #17110 11:01 AM, 19 Jun 2017
    Eсть ли NaN для Int типов? Или NaN есть только для Float?
  • @igorl86 #17111 11:07 AM, 19 Jun 2017
    @pavel_odintsov Павел, а как ты сейчас ipv6 айпишки хранишь, просто как String?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17112 11:11 AM, 19 Jun 2017
    FixedString16
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17113 11:11 AM, 19 Jun 2017
    просто string будет сильно неоптимально AFAIK :(
  • @vludv ↶ Reply to #17110 #17114 12:09 PM, 19 Jun 2017
    nan значения есть только в float-типах
  • @iamigor ↶ Reply to #17113 #17115 12:10 PM, 19 Jun 2017
    я уииды пробовал просто в string хранить, да, как раз раза в два-три медленнее запросы и больше оперативки
  • https://t.me/clickhouse_ru
    @alexkrupin #17116 12:38 PM, 19 Jun 2017
    Ребят, через tcp драйвер можно
    set max_memory_usage
    ставить?
  • https://t.me/clickhouse_ru
    @kshvakov #17117 12:55 PM, 19 Jun 2017
    через гошный можно
  • https://t.me/clickhouse_ru
    @alexkrupin #17118 01:52 PM, 19 Jun 2017
    Я его проставил, но похоже на весь кластер не распространилась настройка
  • https://t.me/clickhouse_ru
    @alexkrupin #17119 01:53 PM, 19 Jun 2017
    Так как при обращении к ditributed таблице другие сервера прекращают выполнение из-за памяти
  • @pookieShmukie #17120 02:05 PM, 19 Jun 2017
    А в КХ как то можно получить значение колонки предыдущей строки в блоке?

    Например у меня такая логика: если column = 1, то вернуть 0, если нет, то посчитать runningDifference(column2), но при условии что у предыдущей строки column != 2 например
  • https://t.me/clickhouse_ru
    @inv2004 #17121 02:06 PM, 19 Jun 2017
    Вопрос: а какие-то энджины с индексами но без даты - планируются или врядли?
  • @pookieShmukie #17122 02:06 PM, 19 Jun 2017
    Хотя я догадываюсь как можно. Применить sequenceMatch с нужными правилами и если match = 1, то делал runningDifference
  • @pookieShmukie #17123 02:09 PM, 19 Jun 2017
    Нет, не получится так сделать, к сожалению ( Это же блин агрегатная функция (
  • https://t.me/clickhouse_ru
    @hagen1778 #17124 02:10 PM, 19 Jun 2017
    Всем привет! Подскажите, есть ли возможность подсчитать процентное значение столбца от общей суммы?
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #17124 #17125 02:11 PM, 19 Jun 2017
    вы же не знаете сумму, пока не дочитаете до конца.
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #17120 #17126 02:12 PM, 19 Jun 2017
    разве что свернуть столбец в массив.
  • @pookieShmukie #17127 02:13 PM, 19 Jun 2017
    Хорошая мысль, сейчас попробую :)
  • https://t.me/clickhouse_ru
    не знаю, но мне хотелось бы ее подсчитать один раз на запрос. Например, вы подсчитываете кол-во событий с каким-то условием. А потом считаете процентное соотношение от общей суммы событий
  • https://t.me/clickhouse_ru
    @hagen1778 #17129 02:14 PM, 19 Jun 2017
    это можно сделать вроде
    select countIf(condition) / (select count() from ...) from ... group by...
  • https://t.me/clickhouse_ru
    @orantius #17130 02:14 PM, 19 Jun 2017
    это можно сделать как sumIf(x,y)/sum(x)
  • https://t.me/clickhouse_ru
    @orantius #17131 02:17 PM, 19 Jun 2017
    а, от общей суммы. да, встроенного нормализатора нет.
  • https://t.me/clickhouse_ru
    @orantius #17132 02:18 PM, 19 Jun 2017
    а в стандартном sql это как выглядит? наверно сработал бы count() / count() over (partition by 42), если бы он был.
  • @WisestOwl #17133 02:24 PM, 19 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    там есть cross join https://stackoverflow.com/questions/30509149/get-column-sum-and-use-to-calculate-percent-of-total-mysql
    не знаю, правда, как быстро он работает
    Get column sum and use to calculate percent of total (mySQL)

    Here is a very basic look at my table. I have columns 1 and 2 and need to generate column 3. Column 3 is simply the total of the Number column for all Name divided by Number for the given row. |...

  • @pookieShmukie #17135 02:48 PM, 19 Jun 2017
    Блин, этот баг с оптимизацией запроса просто не дает спокойно жить (
  • @pookieShmukie #17136 02:48 PM, 19 Jun 2017
    Простой запрос не работает
  • @cosmokit #17138 02:57 PM, 19 Jun 2017
    сорри(
  • @sr_maks1 ↶ Reply to #17120 #17139 02:59 PM, 19 Jun 2017
    Мы все трём лапки и ждем побольше running функций...
  • https://t.me/clickhouse_ru
    @inv2004 #17140 03:18 PM, 19 Jun 2017
    Вопрос: в документации часто упоминается пример с userId. Вопрос: как в вашем случае реализован вывод , если нужно имя пользователя?: это словарь или join по другой таблице или может словарь во внешней базе?
  • https://t.me/clickhouse_ru
    @inv2004 #17141 03:19 PM, 19 Jun 2017
    Так как отличий от маркет-дата по сути никаких в данном случае.
  • Вот я тоже :) Может быть ребята не знаю что народ хочет? ) Поэтому особо ничего нового в этом направлении не появляется?
  • https://t.me/clickhouse_ru
    @orantius #17143 03:20 PM, 19 Jun 2017
    в нашем случае нет имени пользователя.
  • @sr_maks1 ↶ Reply to #17140 #17144 03:21 PM, 19 Jun 2017
    у нас словарь сделан
  • https://t.me/clickhouse_ru
    @inv2004 ↶ Reply to #17144 #17145 03:21 PM, 19 Jun 2017
    Внешняя база?
  • @sr_maks1 ↶ Reply to #17145 #17146 03:22 PM, 19 Jun 2017
    Да. Так как КХ только только планирует внедрить updateable словари то у нас сделано в Postgres.
  • https://t.me/clickhouse_ru
    @inv2004 ↶ Reply to #17146 #17147 03:24 PM, 19 Jun 2017
    Извините, а можно подробнее? Так как я про такие словари спрашивал месяц наверное назад и я так понял что этого ждать не стоит. Так как это одна из основных фишек кдб, очень удобная, и которой нет в КХ
  • https://t.me/clickhouse_ru
    @inv2004 #17148 03:25 PM, 19 Jun 2017
    И, в отсутствии этого посещают мысли или самому пытаться реализовать или , как сейчас, приходится экспериментировать странными способами
  • @sr_maks1 #17149 03:25 PM, 19 Jun 2017
    написал в личку)
  • https://t.me/clickhouse_ru
    @inv2004 #17150 03:25 PM, 19 Jun 2017
    А именно: сохраняю строки, но в словарь загружаю из view на основании выборки
  • https://t.me/clickhouse_ru
    @maxlapshin #17151 04:15 PM, 19 Jun 2017
    у меня быстрый вопрос. Я решил воспользоваться прогрессом возвращаемым в HTTP хедерах
  • https://t.me/clickhouse_ru
    @maxlapshin #17152 04:15 PM, 19 Jun 2017
    < X-ClickHouse-Progress: {"read_rows":"214418","read_bytes":"25670058","total_rows":"327680"}
    < X-ClickHouse-Progress: {"read_rows":"222610","read_bytes":"25686442","total_rows":"327680"}
  • https://t.me/clickhouse_ru
    @maxlapshin #17153 04:15 PM, 19 Jun 2017
    я правильно понимаю, что read_rows*100 / total_rows это примерно процент выполнения запроса?
  • @iamigor #17154 04:16 PM, 19 Jun 2017
    да
  • https://t.me/clickhouse_ru
    @maxlapshin #17155 04:18 PM, 19 Jun 2017
    спасибо
  • https://t.me/clickhouse_ru
    @maxlapshin #17156 04:18 PM, 19 Jun 2017
    ща сделаем круто в интерфейсе
  • @extead #17157 04:20 PM, 19 Jun 2017
    Joined.
  • Если делаете это на чистом JavaScript, можете сбросить пример попробую в tabix прикрутить)
  • https://t.me/clickhouse_ru
    @maxlapshin #17159 04:37 PM, 19 Jun 2017
    А как в яваскрипте получить поток хедеров
  • Мне кажется этот вопрос не тут нужно задавать :)
  • https://t.me/clickhouse_ru
    @maxlapshin #17161 04:46 PM, 19 Jun 2017
    Ну так это вопрос о том как в табиксе получить прогресс
  • https://t.me/clickhouse_ru
    @archimed_shaman #17162 04:49 PM, 19 Jun 2017
    Так, а как отсюда вот правильно руками собрать кликхаус? https://github.com/yandex/ClickHouse
    GitHub - ClickHouse/ClickHouse: ClickHouse® is a free analytics DBMS for big data

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

  • @iamigor #17163 04:49 PM, 19 Jun 2017
    там build.md лежит рядом
  • @iamigor #17164 04:49 PM, 19 Jun 2017
    в docs/, кажется
  • https://t.me/clickhouse_ru
    @archimed_shaman #17165 04:50 PM, 19 Jun 2017
    а, ништяк, спасибо. почитаю. а то я чот сбилдил, а что - сам не понял
  • @iamigor #17166 04:52 PM, 19 Jun 2017
    ну если сбилдил, то где-то в dbms должен валяться теперь бинарник clickhouse, который по умолчанию запускается как сервер
  • @iamigor #17167 04:52 PM, 19 Jun 2017
    если прокинуть ему опцию --client или сделать симлинк и назвать clickhouse-client - станет клиентом
  • https://t.me/clickhouse_ru
    @archimed_shaman #17168 04:54 PM, 19 Jun 2017
    @iamigor да я даже деб пакет вроде собрал, сейчас попробую развернуть по серверам взамен версии с багой
  • https://t.me/clickhouse_ru
    @inv2004 #17169 04:55 PM, 19 Jun 2017
    Оу, оу, это классная идея прикрутить пользователю прогресс-бар.
  • https://t.me/clickhouse_ru
    @inv2004 #17170 04:56 PM, 19 Jun 2017
    Правда вроде иногда он сбрасывается если подзапрос.
  • https://t.me/clickhouse_ru
    @maxlapshin #17172 05:00 PM, 19 Jun 2017
    Ага
  • https://t.me/clickhouse_ru
    @OrNixx #17173 05:30 PM, 19 Jun 2017
    всем привет. как правильно юзать <remote_servers incl="clickhouse_remote_servers" /> через инклюд?
  • https://t.me/clickhouse_ru
    @OrNixx #17174 05:31 PM, 19 Jun 2017
    надо создать clickhouse_remote_servers.xml, и он подхватится7
  • https://t.me/clickhouse_ru
    @OrNixx #17175 05:31 PM, 19 Jun 2017
    ?
  • @iamigor #17176 05:31 PM, 19 Jun 2017
    файлик создать
  • @iamigor #17177 05:31 PM, 19 Jun 2017
    да
  • https://t.me/clickhouse_ru
    @OrNixx #17178 05:33 PM, 19 Jun 2017
    че-то не хочет
  • https://t.me/clickhouse_ru
    @OrNixx #17179 05:33 PM, 19 Jun 2017
    2017.06.19 17:33:35.028015 [ 2 ] <Debug> ConfigReloader: Loading config `/etc/clickhouse-server/config.xml'
    2017.06.19 17:33:35.029582 [ 2 ] <Warning> ConfigProcessor: Include not found: clickhouse_remote_servers
  • @iamigor #17180 05:35 PM, 19 Jun 2017
    <!-- If element has 'incl' attribute, then for it's value will be used corresponding substitution from another file.
    By default, path to file with substitutions is /etc/metrika.xml. It could be changed in config in 'include_from' element.
    Values for substitutions are specified in /yandex/name_of_substitution elements in that file.
    -->
  • https://t.me/clickhouse_ru
    @OrNixx #17182 05:39 PM, 19 Jun 2017
    к сожалению нифига не понял, даже в русском варианте
  • https://t.me/clickhouse_ru
    @OrNixx #17183 05:39 PM, 19 Jun 2017
    каким боком здесь /yandex/
  • https://t.me/clickhouse_ru
    @orantius #17184 06:07 PM, 19 Jun 2017
    это дефолтное имя корневого элемента xml
    конфига.
  • @milovidov_an #17185 06:20 PM, 19 Jun 2017
    Нужно добавить в документацию пример со структурой директорий и файлами.
  • https://t.me/clickhouse_ru
    @inv2004 #17186 09:43 PM, 19 Jun 2017
    А как rowbinary обрабатывает default поля - надо обязательно указать или можно игнорировать?
  • @milovidov_an #17187 09:50 PM, 19 Jun 2017
    Также, как и другие форматы. Можно указать меньше столбцов в INSERT INTO table (columns...). Тогда нужно отправлять данные только для указанных столбцов, а значения остальных будут вычислены при вставке.
  • https://t.me/clickhouse_ru
    @inv2004 #17188 09:58 PM, 19 Jun 2017
    Не понимаю как он понимает чему binary соответствует. Если только длину блока сравнивать с разными размерами. А если два default ...
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17189 10:38 PM, 19 Jun 2017
    @milovidov_an Добрый день, скажите столкнулись с проблемой. как её можно решить
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17191 10:38 PM, 19 Jun 2017
    626 млн записей read. 255 сек....
  • https://t.me/clickhouse_ru
    @orantius #17192 10:49 PM, 19 Jun 2017
    а сколько должно быть
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17193 10:55 PM, 19 Jun 2017
    если сделать select count(*) за даты которые я сканю выходит 300 млн. почему 626 млн сканит не понятно
  • https://t.me/clickhouse_ru
    @orantius #17194 10:57 PM, 19 Jun 2017
    у вас за полчаса стало больше на 250М. значит 84Гб это за неделю. значит у вас 1кrps, и события по 130б. вряд ли по этому скриншоту получится наванговать большее.
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17195 11:00 PM, 19 Jun 2017
    @orantius ну на основе этих данных строим отчет. но данные приходят за 250 сек и пост обработка еще пару минут. как быть? и я так и не понял почему фулл скан идет. подсчитывает на 300 млн записей. а запросом на sum сканит 600+
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17196 11:02 PM, 19 Jun 2017
    select
    eventDate,
    toString(country) as country,
    toString(region) as region,
    toString(city) as city,
    toString(gender) as gender,
    age as group_age,
    SUM(requests_count) AS requests
    from
    `audience_statistic_segments
    where
    `eventDate` between '2017-05-21' and '2017-06-19'
    group by
    eventDate,
    `country`,
    `region`,
    `city`,
    `gender`,
    `group_age
    order by
    eventDate asc,
    `country` asc,
    `region` asc,
    `city` asc,
    `gender` asc,
    `group_age` asc
  • https://t.me/clickhouse_ru
    @orantius #17197 11:04 PM, 19 Jun 2017
    а c count() запрос такой же?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17198 11:05 PM, 19 Jun 2017
    select
    count(*)
    from
    `audience_statistic_segments`
    where
    `eventDate` between '2017-05-21' and '2017-06-19'
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17199 11:05 PM, 19 Jun 2017
    count - 335340740
  • https://t.me/clickhouse_ru
    @orantius #17200 11:07 PM, 19 Jun 2017
    а в статистике при этом что написано, 300М?
  • https://t.me/clickhouse_ru
    @orantius #17201 11:09 PM, 19 Jun 2017
    а у вас для древних дат статистика продолжает обновляться?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17203 11:11 PM, 19 Jun 2017
    я туплю там тоже 300 млн. совпало
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17204 11:11 PM, 19 Jun 2017
    но все равно не пойму как тогда на основе большого количества данных построить отчет
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17205 11:11 PM, 19 Jun 2017
    в тех же метриках явно можно фильтровать как угодно и группировать
  • https://t.me/clickhouse_ru
    @orantius #17206 11:12 PM, 19 Jun 2017
    а зачем toString()?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17207 11:14 PM, 19 Jun 2017
    чтобы вместо пустых строк (где нету данных) не прилетала длинная невидимая строка с байтами
  • https://t.me/clickhouse_ru
    @orantius #17208 11:44 PM, 19 Jun 2017
    а откуда >100 байт на запись? дата регион*3 пол возраст штуки это примерно 2+2+2+2+1+1+4=14
  • https://t.me/clickhouse_ru
    @orantius #17209 11:46 PM, 19 Jun 2017
    данные в прошлое обновляются? если нет, то месяц надо один раз посчитать, а не при отчете.
  • https://t.me/clickhouse_ru
    @orantius #17210 11:46 PM, 19 Jun 2017
    userid есть, семплировать можно?
  • https://t.me/clickhouse_ru
    @orantius #17211 11:46 PM, 19 Jun 2017
    сколько строк в ответе, сколько машин хранят данные.
  • 20 June 2017 (466 messages)
  • @319239414 #17212 06:06 AM, 20 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    одна машина у нас. не понял на счет > 100 байт
  • https://t.me/clickhouse_ru
    @akaydalov #17216 07:54 AM, 20 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17217 08:00 AM, 20 Jun 2017
    А может ли долго запрос возвращаться из-за высокого IOPS ?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17218 08:01 AM, 20 Jun 2017
    6 тыс IOPS
  • https://t.me/clickhouse_ru
    @rheinx #17219 08:23 AM, 20 Jun 2017
    Может конечно. В случаях если вы берете много данных для расчёта (чтение с диска) или если вы уходите в своп в процессе расчёта. Или если стоят опции external_group_by, external_sort (в точном названии могу ошибиться)
  • https://t.me/clickhouse_ru
    600+ млн записей по 40 полей. расчет суммы и группировка по 5 полям и сортировка по 5. смотрю по мониторингу что местам то 5 то 6 тыс IOPS. что значит external_group_by и external_sort? как можно оптимизить скорость выполнения?
  • @mityanin #17221 08:26 AM, 20 Jun 2017
    По умолчанию КХ выполняет все операции в оперативной памяти, и, если ее не хватит, запрос со сложной групировкой может не выполниться. Для этого есть параметры max_bytes_before_external_group_by и max_bytes_before_external_sort, которые указывают после какого порога сбрасыавть данные во временные файлы на диск
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17222 08:28 AM, 20 Jun 2017
    запустили запрос. еще выполняется
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17224 08:28 AM, 20 Jun 2017
    это memory
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17225 08:28 AM, 20 Jun 2017
    процессор
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17227 08:30 AM, 20 Jun 2017
    по IOPS пик был на 304
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17228 08:30 AM, 20 Jun 2017
    из этого следует что он упирается именно в проц?
  • https://t.me/clickhouse_ru
    @the_real_jkee #17229 08:33 AM, 20 Jun 2017
    Create table в студию
  • @mityanin #17230 08:34 AM, 20 Jun 2017
    percent-steal в обычном режиме не должен быть таким высоким. Скорей всего на машине очень много чего работает одновременно, либо настройка КХ не совсем корректна, например, выставлен больший параметр по использованию потоков чем есть виртуальных процессоров на машине
  • https://t.me/clickhouse_ru
    это отдельная машина для кх. там только он и стоит. до запрос steal был 22%, после запроса 35-45. где можно уменьшить этот параметр ?
  • https://t.me/clickhouse_ru
    таблица содержит только 1 индекс на eventDate. запрос который запускаю - выше (вчера скидывал)
  • @mityanin ↶ Reply to #17231 #17233 08:38 AM, 20 Jun 2017
    сколько процессов КХ работает на машине?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17235 08:41 AM, 20 Jun 2017
    а как посчитать?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17236 08:42 AM, 20 Jun 2017
    есть еще процесы которые просто висят не грузят проц. но жрут память таких много
  • @mityanin #17237 08:42 AM, 20 Jun 2017
    ps ax | grep clickhouse-server | wc -l
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17238 08:42 AM, 20 Jun 2017
    ps ax | grep clickhouse-server | wc -l
    2
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17239 08:43 AM, 20 Jun 2017
    и 2 виртуальных ядра
  • @mityanin #17240 08:45 AM, 20 Jun 2017
    не ту команду дал
  • @mityanin #17241 08:45 AM, 20 Jun 2017
    ps -axH | grep clickhouse-server | wc -l
  • @mityanin #17242 08:46 AM, 20 Jun 2017
    два ядра немного маловато для описанного вами профиля нагрузки
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17243 08:47 AM, 20 Jun 2017
    ps -axH | grep clickhouse-server | wc -l
    43
  • @pookieShmukie #17244 08:47 AM, 20 Jun 2017
    Я тестировал кх на 1 ядре и 4 гигах оперативы :) показал достаточно хороший результат с таблицей в 90 гигов и 18 колонками
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17246 08:48 AM, 20 Jun 2017
    idle 0 ) снова запустил запрос
  • @mityanin #17247 08:48 AM, 20 Jun 2017
    вы уверены, что на машине только КХ? В скриншоте у вас там еще Java запущена
  • @mityanin #17248 08:49 AM, 20 Jun 2017
    на Jenkins похоже
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17249 08:50 AM, 20 Jun 2017
    и jenkins есть да. но он не грузит ведь ничего
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17250 08:50 AM, 20 Jun 2017
    и apache стоит для tabix
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17251 08:50 AM, 20 Jun 2017
    и collectd для сбора метрик
  • https://t.me/clickhouse_ru
    @rheinx #17252 08:51 AM, 20 Jun 2017
    виртуалка?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17253 08:51 AM, 20 Jun 2017
    да
  • https://t.me/clickhouse_ru
    @rheinx #17254 08:51 AM, 20 Jun 2017
    высокий steal-time это время сворованное у виртуалки гипервизором
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17256 08:51 AM, 20 Jun 2017
    amazon
  • https://t.me/clickhouse_ru
    @rheinx #17257 08:52 AM, 20 Jun 2017
    Оу)
  • https://t.me/clickhouse_ru
    @rheinx #17258 08:52 AM, 20 Jun 2017
    st — (Steal Time) время, «украденное» гипервизором у этой виртуальной машины для других задач (например работа другой виртуальной машины)

    это из википедии
  • https://t.me/clickhouse_ru
    @rheinx #17259 08:52 AM, 20 Jun 2017
    т.е. в это время ваша вирта не работала
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17260 08:52 AM, 20 Jun 2017
    я знаю что такое steal
  • https://t.me/clickhouse_ru
    @v2nek #17261 08:52 AM, 20 Jun 2017
    может помочь стоп-старт виртуалки
  • https://t.me/clickhouse_ru
    @v2nek #17262 08:53 AM, 20 Jun 2017
    или снапшот - убиение - старт
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17263 08:53 AM, 20 Jun 2017
    прод машину нельзя останавливать)
  • https://t.me/clickhouse_ru
    @v2nek #17264 08:53 AM, 20 Jun 2017
    есть вероятность запуститься на новом гипервизоре, раз этот перегружен
  • https://t.me/clickhouse_ru
    @v2nek #17265 08:53 AM, 20 Jun 2017
    если нельзя - нужна отказоустойчивость :)
  • https://t.me/clickhouse_ru
    @v2nek #17266 08:53 AM, 20 Jun 2017
    тогда можно
  • https://t.me/clickhouse_ru
    @v2nek #17267 08:54 AM, 20 Jun 2017
    тем более амазон - снапшот, запуск копии, доливка данных, переключение прода
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17268 08:55 AM, 20 Jun 2017
    можешь более подробно объяснить эту кухню
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17269 08:56 AM, 20 Jun 2017
    если остановить машину и снова включить - есть вероятность попасть на другой гипервизор и будет steal ниже, всегда?
  • https://t.me/clickhouse_ru
    @v2nek #17270 08:56 AM, 20 Jun 2017
    нет
  • https://t.me/clickhouse_ru
    @v2nek #17271 08:56 AM, 20 Jun 2017
    есть вероятность что на новом гипервизоре стил будет ниже :)
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #17231 #17272 08:57 AM, 20 Jun 2017
    steal значит что на физ хосте оверселинг довольно высокий и тебя активно переключает гипервизор, если очень условно
  • https://t.me/clickhouse_ru
    @Civiloid #17273 08:57 AM, 20 Jun 2017
    а, уже ответили
  • https://t.me/clickhouse_ru
    @v2nek #17274 08:58 AM, 20 Jun 2017
    но тебе никто не запрещает эту процедуру повторять регулярно
  • https://t.me/clickhouse_ru
    @Civiloid #17275 08:58 AM, 20 Jun 2017
    @maksim_melnichuk условно представь себе секунду. Steal 50% значит что твоя машина хочет работать всю секунду, а ей дают только 0.5
  • https://t.me/clickhouse_ru
    @Civiloid #17276 08:58 AM, 20 Jun 2017
    условно и упрощенно
  • https://t.me/clickhouse_ru
    @v2nek #17277 08:59 AM, 20 Jun 2017
    а когда у тебя кластер кх, который не умирает от выключения одной ноды, то это и вообще отлично - никто не заметит
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17278 09:02 AM, 20 Jun 2017
    в общем я так понял это проблема виртуализации
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17279 09:02 AM, 20 Jun 2017
    или выделения ресурсов
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17280 09:02 AM, 20 Jun 2017
    это не означает, что гипервизор сломался/плохой
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17281 09:02 AM, 20 Jun 2017
    это скорее означает, что потребление ресурсов больше, чем вы заплатили / выделено админами
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17282 09:02 AM, 20 Jun 2017
    и гипервизор режет это потребление в соотвествии с тем, что вам выделено.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17283 09:03 AM, 20 Jun 2017
    если мы говорим о нормальных облаках - а-ля амазон, гугл, азур - то на другой машине все будет точно-также
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17284 09:04 AM, 20 Jun 2017
    это значит что сервер упирается в нагрузку по тарифному плану и гипервизор режет ?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17285 09:04 AM, 20 Jun 2017
    скорее всего именно это и значит, эта штука крайне специфична к типу гипервизора и ведет себя по-разному
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17286 09:05 AM, 20 Jun 2017
    другие инстансы имеют такие же конфиги железа и там тоже есть нунлевой steal?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17287 09:05 AM, 20 Jun 2017
    окей кто работал с amazon какой тип инстанса предпочтительнее для кх ?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17288 09:05 AM, 20 Jun 2017
    точно ли нагрузка на все инстансы идентичная?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17289 09:05 AM, 20 Jun 2017
    ui сервер тоже бывает steal 40+ %
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17290 09:06 AM, 20 Jun 2017
    если нагрузки нету то steal вообще 0
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17291 09:07 AM, 20 Jun 2017
    Типы инстансов Amazon EC2 – Amazon Web Services

    Типы инстансов EC2 включают различные комбинации таких компонентов, как ЦПУ, память, хранилище и сетевые ресурсы. Это обеспечивает возможность выбирать тип инстанса, наиболее соответствующий вашим потребностям.

  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17292 09:07 AM, 20 Jun 2017
    какой инстанс нужен для нормальной работы кх ?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17293 09:08 AM, 20 Jun 2017
    мы используем почти везде t2
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17294 09:08 AM, 20 Jun 2017
    может в этом проблема
  • https://t.me/clickhouse_ru
    @v2nek #17295 09:11 AM, 20 Jun 2017
    сколько кредитов там осталось?
  • https://t.me/clickhouse_ru
    @v2nek #17296 09:11 AM, 20 Jun 2017
    на т2
  • https://t.me/clickhouse_ru
    @v2nek #17297 09:11 AM, 20 Jun 2017
    в информации по инстансу есть
  • @milovidov_an #17298 09:14 AM, 20 Jun 2017
    Как раз статья на тему - сравнение ClickHouse на AWS с физическим сервером и с Redshift:

    https://www.altinity.com/blog/2017/6/20/clickhouse-vs-redshift
    ClickHouse vs Amazon RedShift Benchmark

    Jun 19, 2017   We continue benchmarking ClickHouse. In this article we discuss a benchmark against Amazon RedShift.

  • https://t.me/clickhouse_ru
    где это глянуть ? предположу что в monitoring CPU Utilization ( Percent ) ?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17301 09:19 AM, 20 Jun 2017
    @milovidov_an не хватает тестов физической железки в ряду =(
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17302 09:20 AM, 20 Jun 2017
    И контейнеров! :)
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17303 09:20 AM, 20 Jun 2017
    какой instance предпочтитетльнее для работы КХ?
  • https://t.me/clickhouse_ru
    @rheinx #17304 09:23 AM, 20 Jun 2017
    железный :)
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17305 09:24 AM, 20 Jun 2017
    из списка который есть
  • https://t.me/clickhouse_ru
    @v2nek ↶ Reply to #17300 #17306 09:30 AM, 20 Jun 2017
    это очень мало
  • https://t.me/clickhouse_ru
    @v2nek #17307 09:31 AM, 20 Jun 2017
    надо апгрейдить виртуалку
  • https://t.me/clickhouse_ru
    @v2nek #17308 09:31 AM, 20 Jun 2017
    она съела все кредиты
  • https://t.me/clickhouse_ru
    @v2nek #17309 09:31 AM, 20 Jun 2017
    почитай что это такое
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17310 09:31 AM, 20 Jun 2017
    да я почитал
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17311 09:31 AM, 20 Jun 2017
    я создаю c4.xlarge инстанс
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17312 09:31 AM, 20 Jun 2017
    думаю он спасет)
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17313 09:31 AM, 20 Jun 2017
    и еще одна проблема мы используем gp2 диск на 100 гигов. а это всего 300 IOPS что может тормозить дополнительно
  • https://t.me/clickhouse_ru
    @v2nek #17314 09:32 AM, 20 Jun 2017
    кликхаус создан чтобы работать на не очень быстрых дисках
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17315 09:35 AM, 20 Jun 2017
    ничего себе не на быстрых. по 5 тыс IOPS
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17316 09:37 AM, 20 Jun 2017
    обычная сата - это от силы 200-300 IOPS
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17317 09:37 AM, 20 Jun 2017
    и клихаусу вполне хватает
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17318 09:38 AM, 20 Jun 2017
    в общем наша ошибка была в том что мы взяли T2 инстанс под кх. он съедал кредиты цпу мигом и потом тормозил
  • @pookieShmukie #17319 09:39 AM, 20 Jun 2017
    Кто-то может подсказать как можно в КХ просуммировать по следующей логике.

    Есть вот такой результат https://img.facedsid.ru/6e9wq.jpg
    Суммировать нужно все, что между строками у которых skip = 1 :) При этом еще как то умудриться выдернуть первый eventTime который лежит в промежутках между skip = 1 и собственно на выходе должно получиться что-то вроде:

    2016-11-09 18:43:08 - 29
    2016-11-09 19:52:08 - 1318

    и т.д.
  • @pookieShmukie #17320 09:40 AM, 20 Jun 2017
    Суммировать нужно колонку duration )
  • https://t.me/clickhouse_ru
    @v2nek ↶ Reply to #17318 #17321 09:50 AM, 20 Jun 2017
    ну т2 надо понимать зачем использовать, так то это отличная штука
  • https://t.me/clickhouse_ru
    да согласен переборщили отдав такой инстанс на кх
  • https://t.me/clickhouse_ru
    @Civiloid #17323 09:53 AM, 20 Jun 2017
    @maksim_melnichuk я бы сказал, что это хорошая идея (и по бюджету и в целом) вынести DWH за пределы Amazon'а. Под DWH я понимаю все что хранить данные которые нужны для анализа вашими аналитиками, а не реально для работы системы
  • https://t.me/clickhouse_ru
    @Civiloid #17324 09:53 AM, 20 Jun 2017
    вынести это куда-нибудь в хецнер - будет скорее всего ощутимо дешевле
  • https://t.me/clickhouse_ru
    @Civiloid #17325 09:53 AM, 20 Jun 2017
    и при этом проблем с гипервизором не будет
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17326 09:54 AM, 20 Jun 2017
    online.net люто рекомендую =)
  • https://t.me/clickhouse_ru
    привет) в ближайшие месяцы мы планируем с концам уехат на хецнер, т.к. посчитали что это в 2 раза выгоднее по цене и полный контроль
  • https://t.me/clickhouse_ru
    @Civiloid #17328 09:54 AM, 20 Jun 2017
    ну там варианты уже ) не таких дорогих хостингов прям много
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17329 09:54 AM, 20 Jun 2017
    полный контроль... я бы НЕ РЕКОМЕНДОВАЛ если дорожите своим бизнесом %)
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #17329 #17330 09:55 AM, 20 Jun 2017
    ну на самом деле с хецнером не так прям чтоб много проблем пока ты мелкий-средний
  • https://t.me/clickhouse_ru
    @Civiloid #17331 09:55 AM, 20 Jun 2017
    особенно если все в белую делать
  • https://t.me/clickhouse_ru
    @Civiloid #17332 09:55 AM, 20 Jun 2017
    просто надо иметь в виду что хецнер очень дешевый и в случаи чего виноват клиент по их мнению
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17333 09:55 AM, 20 Jun 2017
    хецнер это не для mission critical. точка =)
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17334 09:56 AM, 20 Jun 2017
    там как повезет, повезет с железкой - будет все ок долгие годы
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #17333 #17335 09:56 AM, 20 Jun 2017
    им сейчас можно доплатить чтобы железо было не БУ )
  • https://t.me/clickhouse_ru
    @Civiloid #17336 09:56 AM, 20 Jun 2017
    разово на каждую замену каждой железки
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17337 09:56 AM, 20 Jun 2017
    увы, это не решает
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17338 09:56 AM, 20 Jun 2017
    траст ми! айм энджинер!
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17339 09:57 AM, 20 Jun 2017
    ну точнее я 7 лет с ними работал с несколькими тысячами машин в саб-аренде
  • https://t.me/clickhouse_ru
    если сервер сдохнет они не несут ответственности ?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17341 09:57 AM, 20 Jun 2017
    отвественность? о чем вы?
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17342 09:57 AM, 20 Jun 2017
    железка в месяц стоит дешевле чем ужин в ресторане
  • @sr_maks1 #17343 09:58 AM, 20 Jun 2017
    хетцнер используйте
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #17340 #17344 09:59 AM, 20 Jun 2017
    у них нет SLA :)
  • https://t.me/clickhouse_ru
    @hagen1778 #17345 09:59 AM, 20 Jun 2017
    сейчас насоветуют)
  • @sr_maks1 ↶ Reply to #17345 #17346 10:05 AM, 20 Jun 2017
    Причем тут насоветуют? Конечно свое железо это оптимальное решение.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17347 10:05 AM, 20 Jun 2017
    свое в своем дц со своим техником - маст, если mission critical :)
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17348 10:06 AM, 20 Jun 2017
    а иначе будут постоянно постмортемы в стиле "ну у нас облако упало, мы не виноватые такие"
  • https://t.me/clickhouse_ru
    @Civiloid #17349 10:08 AM, 20 Jun 2017
    @pavel_odintsov вопрос должен быть исходя из затрат и выгоды
  • https://t.me/clickhouse_ru
    @Civiloid #17350 10:08 AM, 20 Jun 2017
    если затраты на свой ДЦ превышают потери от падения - то как бы и ладно, пусть падает
  • https://t.me/clickhouse_ru
    @Civiloid #17351 10:09 AM, 20 Jun 2017
    ровно поэтому и хецнер ок, если ты стартап, например
  • https://t.me/clickhouse_ru
    @Civiloid #17352 10:09 AM, 20 Jun 2017
    потому что выгода превышает риск
  • @VictorVa #17353 10:09 AM, 20 Jun 2017
    Joined.
  • @cosmokit #17354 10:16 AM, 20 Jun 2017
    много кто советует хетцнер, но там же есть ограничения по траффику. аще не комильфо.
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17355 10:18 AM, 20 Jun 2017
    они наружу же, а не во внутренней сети
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17356 10:18 AM, 20 Jun 2017
    внутри можно ваще свич свой попросить и в стойку влепить :)
  • https://t.me/clickhouse_ru
    @Totaki #17357 10:19 AM, 20 Jun 2017
    А кто-нибудь пробовал clickhouse на RPi
  • https://t.me/clickhouse_ru
    @Totaki #17358 10:19 AM, 20 Jun 2017
    ?
  • @cosmokit ↶ Reply to #17356 #17359 10:20 AM, 20 Jun 2017
    не вариант для тех, у кого свои ноды по локациям распределены
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17360 10:23 AM, 20 Jun 2017
    увы тогда
  • https://t.me/clickhouse_ru
    @finio #17361 10:44 AM, 20 Jun 2017
    подскажите, какой наиболее оптимальный порядок полей в первичном ключе
    например, есть колонки в PK дата, id сайта, id страны
    причем стран гораздо больше, чем сайтов
    какая комбинация выгоднее: (date, id сайта, id страны) или (date, id страны, id сайта)?
  • https://t.me/clickhouse_ru
    @rheinx #17362 10:54 AM, 20 Jun 2017
    id сайта, id страны
  • https://t.me/clickhouse_ru
    @rheinx #17363 10:54 AM, 20 Jun 2017
    А дату какой смысл тащить туда? Она и так PK
  • https://t.me/clickhouse_ru
    @finio #17364 10:59 AM, 20 Jun 2017
    у меня просто ReplacingMergeTree и дата нужна для замены
    ок, спасибо
    т.е. более вариативный столбец ставим после менее вариантивного
  • https://t.me/clickhouse_ru
    @rheinx #17365 11:08 AM, 20 Jun 2017
    Да, верно.
  • @dn1dev #17366 11:10 AM, 20 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #17361 #17367 11:22 AM, 20 Jun 2017
    зависит от того, какие будут запросы. если они всегда включают фильтр по id сайта и диапазону дат, то лучше (счетчик, дата), если нет, то могут быть разные варианты.
  • @dn1dev #17368 11:23 AM, 20 Jun 2017
    подскажите пожалуйста, возможно ли настриоть хранение данных на двух дисковых массивах одного сервера? к примеру: данные за последний месяц на первый(SSD), остальные данные на второй(SATA).
  • https://t.me/clickhouse_ru
    @archimed_shaman #17369 11:35 AM, 20 Jun 2017
    а у КХ есть какой нибудь флаг дебага для запуска из консоли? а то
    > clickhouse —extract-from-config —config-file=/etc/clickhouse-server/config.xml —key=path
    > /work1/clickhouse/
    и все, процесс не поднимается
  • https://t.me/clickhouse_ru
    @proller ↶ Reply to #17357 #17370 11:41 AM, 20 Jun 2017
    RPI есть 3 разные версии, 2 их них 32 бит - на них никак. версия 3 - 64 бит, на ней запустить можно. Но в ней только 1g ram .
  • https://t.me/clickhouse_ru
    @Totaki ↶ Reply to #17370 #17371 11:42 AM, 20 Jun 2017
    Я про 3-ю, но понятно. Просто ищу timeseries бд на нее.
  • https://t.me/clickhouse_ru
    @proller #17372 11:43 AM, 20 Jun 2017
    если хочется с такими железками поиграть - лучше odroid c2 , там и памяти 2g и процессор побыстрее
  • https://t.me/clickhouse_ru
    @proller #17373 11:44 AM, 20 Jun 2017
    и еще особенность - clickhouse сейчас не собрать на железке с 2gram, а своп изнасилует sdкарту и если и соберется - очень долго
  • https://t.me/clickhouse_ru
    так, попырил сырцы, все просто, —stacktrace —log-level debug
  • https://t.me/clickhouse_ru
    хотя, один чорд понятнее не стало, почему не взлетает
    > $ clickhouse —extract-from-config —config-file=/etc/clickhouse-server/config.xml —key=path —stacktrace —log-level debug
    > 2017-06-20 07:52:20.029 <Warning> ConfigProcessor: Include not found: clickhouse_compression
    > /work1/clickhouse/
  • https://t.me/clickhouse_ru
    @proller #17376 11:55 AM, 20 Jun 2017
    лог создается?
  • https://t.me/clickhouse_ru
    лог остался от того кликхауса, который ставил до этого из пакетов, и он не обновляется, в том и беда
  • https://t.me/clickhouse_ru
    @archimed_shaman #17378 11:58 AM, 20 Jun 2017
    попробовал от sudo -u clickhouse -g clickhouse, не помогло
  • https://t.me/clickhouse_ru
    @proller #17379 12:04 PM, 20 Jun 2017
    gdb -ex run --args clickhouse —config-file=.........
  • https://t.me/clickhouse_ru
    @archimed_shaman #17380 12:06 PM, 20 Jun 2017
    prll сорян, я кажется олень. —extract-from-config и key нафиг не нужный были. но это я из rc скриптов пытался выдернуть, чтобы понять. почему же не стартует
  • https://t.me/clickhouse_ru
    @archimed_shaman #17381 12:11 PM, 20 Jun 2017
    чот я жостко протупил :) это же не строка запуска, а получение ключа из конфига, по именам же понятно, а я баклан не ту строчку поди взял 😂
  • https://t.me/clickhouse_ru
    @proller #17382 12:12 PM, 20 Jun 2017
    А кому-нибудь еще хочется поднять clickhouse на arm железках? если да, то 32 или 64бит ?
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #17371 #17383 12:22 PM, 20 Jun 2017
    Я б посоветовал брать виртуалки с армв8 и собирать на них.
  • https://t.me/clickhouse_ru
    @Totaki ↶ Reply to #17383 #17384 12:23 PM, 20 Jun 2017
    Ок, подумаю
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #17371 #17385 12:24 PM, 20 Jun 2017
    Я б посоветовал взять графит на самом деле, кх кажется оверкилл
  • https://t.me/clickhouse_ru
    @Civiloid #17386 12:25 PM, 20 Jun 2017
    В простом случаи go-carbon + carbonapi + grafana
  • https://t.me/clickhouse_ru
    @Totaki #17387 12:32 PM, 20 Jun 2017
    Спс
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17388 01:08 PM, 20 Jun 2017
    Поставили c2.xlarge (4 ядра и 8 гигов ram). выполняется 3 запроса каждые 5 сек. по 100 млн read rows. 1 ядро съедает все. если запустить большой запрос на выборку в добавок то получится 2-3 ядра будут забиты. как держать нагрузку если 100 человек захотят получить данные статистики если уже при нескольких запросов такой сервер съедает. percent-steal 0%
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #17388 #17389 01:10 PM, 20 Jun 2017
    а вы что конкретно делаете и для какой аудитории? )
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #17382 #17390 01:11 PM, 20 Jun 2017
    на самом деле, мне надо докупить ссдшку и у меня будет дома относительно шустрая ARMv7 железка
  • https://t.me/clickhouse_ru
    @Civiloid #17391 01:11 PM, 20 Jun 2017
    могу на ней даже регулярно собирать, если будет шанс что ваще КХ будет собираться
  • https://t.me/clickhouse_ru
    ну теже графики построить на основе статистики в кх
  • https://t.me/clickhouse_ru
    @Civiloid #17393 01:12 PM, 20 Jun 2017
    ну или воткнуть диск от ноута
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #17392 #17394 01:12 PM, 20 Jun 2017
    а зачем там 100 человек одновременно?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17395 01:12 PM, 20 Jun 2017
    шлется запрос получаются агрегационные данные - строится график
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17396 01:12 PM, 20 Jun 2017
    у каждого зарегистрированного пользователя есть свои графики (дашборд)
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #17388 #17397 01:15 PM, 20 Jun 2017
    возьмите уже с них по 1 евро и арендуйте сервер ;)
  • https://t.me/clickhouse_ru
    и так выходит 200$ в месяц этот кх сервер который не держит даже 10 запросов
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17399 01:16 PM, 20 Jun 2017
    не пойму что не так...
  • https://t.me/clickhouse_ru
    @inv2004 #17400 01:17 PM, 20 Jun 2017
    У меня продолжение вчерашнего вопроса: как при вставке в таблицу в default в середине таблицы - пропустить это значение, чтоб оно сработало из default как раз?
  • https://t.me/clickhouse_ru
    @nikitosiusis #17401 01:19 PM, 20 Jun 2017
    за 200 баксов в месяц можно кластер из трех i7 32гиговых собрать в хетзнере
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17402 01:20 PM, 20 Jun 2017
    @milovidov_an Алексей хотел бы услышать ваше мнение на счет clickhouse, почему он такой прожорливый или может мы делаем что-то не так
  • https://t.me/clickhouse_ru
    @nikitosiusis #17403 01:20 PM, 20 Jun 2017
    ну у вас в память оно явно не влезает, а хранилище у амазона по дефолту тормозное
  • https://t.me/clickhouse_ru
    @nikitosiusis #17404 01:21 PM, 20 Jun 2017
    сколько иовейт-то?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17405 01:22 PM, 20 Jun 2017
    почти 0-1% всегда
  • https://t.me/clickhouse_ru
    @nikitosiusis #17406 01:24 PM, 20 Jun 2017
    ну тогда надо знать запрос:) сожрать 100м рядами одно ядро не сложно) мы же не знаем чего ты там считаешь.
  • https://t.me/clickhouse_ru
    @inv2004 ↶ Reply to #17298 #17407 01:25 PM, 20 Jun 2017
    Читаю это. И видно что люди занимаются тем же самым - нормализуют строки. все пытаются нормализовать строки :)
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #17402 #17408 01:33 PM, 20 Jun 2017
    Да потому что это OLAP. В отличие от того же PG работает в множестве потоков и максимально мобилизует ресурсы сервера для выполнения запроса.
  • https://t.me/clickhouse_ru
    @inv2004 #17409 01:36 PM, 20 Jun 2017
    Может там что-то конкретное тормозит - типа asc? Или toString?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17411 01:39 PM, 20 Jun 2017
    load average 1.5
  • https://t.me/clickhouse_ru
    @nikitosiusis #17412 01:40 PM, 20 Jun 2017
    оно таки влезает в память судя по объему
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17413 01:41 PM, 20 Jun 2017
    эти 3 запроса выполняются каждые 5 секунд по очереди
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17415 01:42 PM, 20 Jun 2017
    вот запустились еще парочку запросов для показа статистики. load average 3
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17416 01:43 PM, 20 Jun 2017
    3 ядра забито из 4
  • https://t.me/clickhouse_ru
    @rheinx #17417 01:44 PM, 20 Jun 2017
    поле с датой используете в where?
  • https://t.me/clickhouse_ru
    @rheinx #17418 01:44 PM, 20 Jun 2017
    если вам графики рисовать, то наверное можно не все вытаскивать, а только последние N минут/секунд
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17419 01:44 PM, 20 Jun 2017
    да конечно
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17420 01:45 PM, 20 Jun 2017
    а если я хочу посмотреть суммарное количество показателей за месяц
  • @lexa_work #17421 01:49 PM, 20 Jun 2017
    Спотнкулись со словарями.
    Переопределил dictionaries_config через отдельный файл
    <yandex>
    <dictionaries_config>dictionaries.d/*.xml</dictionaries_config>
    </yandex>

    По данному пути положил словарь, но он не подхватывается, хотя
    [root@xdray-3 clickhouse-server]# grep dictionaries_config config-preprocessed.xml
    <dictionaries_config>dictionaries.d/*.xml</dictionaries_config>

    Перезапуск сервера не помогает
  • @lexa_work #17422 01:50 PM, 20 Jun 2017
    если положить словарь в /etc/clickhouse-server то все подхватывает
  • @lexa_work #17423 01:51 PM, 20 Jun 2017
    т.е. работает дефолтный патерн
    <dictionaries_config>*_dictionary.xml</dictionaries_config>
  • @lexa_work #17424 01:51 PM, 20 Jun 2017
    в чем подвох?
  • https://t.me/clickhouse_ru
    @proller #17425 01:58 PM, 20 Jun 2017
    а если /etc/clickhouse-server/dictionaries.d/*.xml ?
  • https://t.me/clickhouse_ru
    @v2nek #17426 01:59 PM, 20 Jun 2017
    Максим, попробуй кэшировать эти запросы. У меня разработчики накосячили чуть чуть с демонами и тим вот всем
  • https://t.me/clickhouse_ru
    @v2nek #17427 01:59 PM, 20 Jun 2017
    и не заметили, сервер две недели был в 100% утилизации
  • @f1yegor #17428 01:59 PM, 20 Jun 2017
    кто может подсказать, нормальный синтаксис с join пранировали на Q3?
  • https://t.me/clickhouse_ru
    @v2nek #17429 01:59 PM, 20 Jun 2017
    накинул кэширование - сразу в 0 стало
  • не понял вопрос
  • @lexa_work #17431 02:00 PM, 20 Jun 2017
    показать содержимое чтоль?
  • @lexa_work #17432 02:01 PM, 20 Jun 2017
    и еще попутно. Видел тут много про "DB::NetException: I/O error: Broken pipe:" Какая сейчас ситуация?
  • @lexa_work #17433 02:01 PM, 20 Jun 2017
    есть релиз с фиксом?
  • https://t.me/clickhouse_ru
    объясни плиз. они вроде как по дефолту должны кешироваться самим кх?
  • https://t.me/clickhouse_ru
    @v2nek #17435 02:01 PM, 20 Jun 2017
    да вроде не кэшируется
  • https://t.me/clickhouse_ru
    @v2nek #17436 02:02 PM, 20 Jun 2017
    я просто нгинксом в кэш кидаю, очень годно и удобно
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17437 02:02 PM, 20 Jun 2017
    я что-то пригрустил. вначале небыло предела моему счастью когда мы слезли с mysql, а теперь это какой нужен сервер чтобы обслужить хотябы 500 реал тайм человек..
  • https://t.me/clickhouse_ru
    @v2nek #17438 02:02 PM, 20 Jun 2017
    мне кажется вы используете кликхаус как-то не так :)
  • https://t.me/clickhouse_ru
    @v2nek #17439 02:02 PM, 20 Jun 2017
    это не замена mysql, это аналитическая базка
  • https://t.me/clickhouse_ru
    @v2nek #17440 02:03 PM, 20 Jun 2017
    где малое количество юзеров делают какое-то количество запросов на огромных наборах данных
  • https://t.me/clickhouse_ru
    @v2nek #17441 02:03 PM, 20 Jun 2017
    и кх в этом великолепен
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17442 02:03 PM, 20 Jun 2017
    мы только для статистики её используем
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17443 02:03 PM, 20 Jun 2017
    но на основе почти 1 млрд записей мы строит пользователю графики и отчеты
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17444 02:03 PM, 20 Jun 2017
    а админу свои отчеты более показательные
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17445 02:04 PM, 20 Jun 2017
    про nginx не понял. как ты его связал с кх запросы ведь летят на порт кх
  • https://t.me/clickhouse_ru
    @v2nek #17446 02:04 PM, 20 Jun 2017
    мы используем веб интерфейс кх для запросов
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17447 02:04 PM, 20 Jun 2017
    smi2 ?
  • https://t.me/clickhouse_ru
    @v2nek #17448 02:04 PM, 20 Jun 2017
    да
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17449 02:05 PM, 20 Jun 2017
    а мы шлем запросы напрямую на порт сервера через драйвер сми2
  • https://t.me/clickhouse_ru
    @v2nek #17450 02:05 PM, 20 Jun 2017
    но та статистика, которая отрисовывается юзерам - предаггрегированная
  • https://t.me/clickhouse_ru
    @v2nek #17451 02:05 PM, 20 Jun 2017
    нам оказалось проще на стороне загрузки раскидывать по разным базам статистику
  • https://t.me/clickhouse_ru
    @v2nek #17452 02:05 PM, 20 Jun 2017
    и с нее делать запросы
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17453 02:07 PM, 20 Jun 2017
    если я захочу посмотреть график посекундно мне агрегация не подходит
  • https://t.me/clickhouse_ru
    @v2nek #17454 02:07 PM, 20 Jun 2017
    аггрегируй по секундам :)
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17455 02:07 PM, 20 Jun 2017
    схлопнуть 1 млрд в 50 млн не проблема. но это будет по минутам или часам
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17456 02:07 PM, 20 Jun 2017
    а при достижении большей нагрузки 50 млн когда нибудь снова привратяться в 1 млрд
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17457 02:08 PM, 20 Jun 2017
    я думаю за пол года спокойно
  • https://t.me/clickhouse_ru
    @v2nek #17458 02:09 PM, 20 Jun 2017
    мне кажется ты ожидаешь от кх чего-то невозможного в рамках инсталляции на c2.xlarge
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17459 02:09 PM, 20 Jun 2017
    вот интересно как яндекс построил свои метрики. у них ведь и кеша никакого нету. прямые запросы. я конечно понимаю что у них сервера реактивные, но я думаю в чем-то есть принципиальная разница архитектурная в хранении данных может
  • https://t.me/clickhouse_ru
    @kshvakov #17460 02:10 PM, 20 Jun 2017
    скорее всего там в индекс юзерайди добавлен и не нужно лопатить все данные
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17461 02:10 PM, 20 Jun 2017
    я очень сомневаюсь, что у яндекса нету "кэша" который копит свежие данные и мгновенно выдает их в метрике
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17462 02:10 PM, 20 Jun 2017
    ну так писал миловидов их начальник по clickhouse
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17463 02:10 PM, 20 Jun 2017
    в веб интерфейсе я имею в виду
  • https://t.me/clickhouse_ru
    @v2nek #17464 02:11 PM, 20 Jun 2017
    дорого на их объеме такой кэш содержать
  • https://t.me/clickhouse_ru
    @v2nek #17465 02:11 PM, 20 Jun 2017
    я думаю выезжают за счет распределенных запросов
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17466 02:11 PM, 20 Jun 2017
    ну user_id это хорошо. решает много проблем
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17467 02:12 PM, 20 Jun 2017
    но если нужно построить отчет по всем пользователям суммарный
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17468 02:12 PM, 20 Jun 2017
    такой запрос просто повалит сервер на бочок
  • https://t.me/clickhouse_ru
    @kshvakov #17469 02:13 PM, 20 Jun 2017
    ну, агрегируйте такой отчет отдельно, в любом случае подобные вещи дико считать по сырой статистике
  • https://t.me/clickhouse_ru
    @nikitosiusis #17470 02:13 PM, 20 Jun 2017
    построить расчет по всем это задача мапредьюса и не реалтаймовая
  • https://t.me/clickhouse_ru
    можно более подробно?
  • https://t.me/clickhouse_ru
    делать вставку дублирующая на таблицу типа agregateMergerTree ?
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17473 02:18 PM, 20 Jun 2017
    вернее не такой же. а с тем набором полей который необходим в отчете. просто пусть суммирует для каждого пользователя
  • https://t.me/clickhouse_ru
    @kshvakov #17474 02:19 PM, 20 Jun 2017
    зачем для каждого если у вас проблема с отчетом по всем ?
  • https://t.me/clickhouse_ru
    @v2nek #17475 02:20 PM, 20 Jun 2017
    а вдруг понадобится :)
  • https://t.me/clickhouse_ru
    @v2nek #17476 02:20 PM, 20 Jun 2017
    надо все-все предусмотреть
  • https://t.me/clickhouse_ru
    @v2nek #17477 02:20 PM, 20 Jun 2017
    посекундно
  • https://t.me/clickhouse_ru
    @proller ↶ Reply to #17431 #17478 02:20 PM, 20 Jun 2017
    нет, прописать <dictionaries_config>/etc/clickhouse-server/dictionaries.d/*.xml</dictionaries_config>
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #17433 #17479 02:20 PM, 20 Jun 2017
    А он уже в репах?
  • Это я как бы спрашиваю
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #17480 #17481 02:22 PM, 20 Jun 2017
    А) ну на прошлой неделе тут в чате говорили что в течение нелели примерно будет. Так что надеемся на этой неделе )
  • https://t.me/clickhouse_ru
    я имею ввиду что вместо 1 большой таблицы. делать несколько таблиц по секундно, по минутно, по часам, дням, месяцам. Соответственно по секундно можно выбрать диапазаон только час. по часам день. Ну и агрегировать в разные таблицы данные
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17483 02:23 PM, 20 Jun 2017
    или как
  • https://t.me/clickhouse_ru
    @kshvakov #17484 02:26 PM, 20 Jun 2017
    храните сырую стату столько сколько она вам реально нужна, а для отчетов используйте уже схлопнутую по минутам или по 15 минут (не знаю какая вам точность нужна)
  • https://t.me/clickhouse_ru
    @inv2004 #17485 02:31 PM, 20 Jun 2017
    +1. Даже кдб такого не выдержит. Из-за этого много статсов. Без этого никуда.
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #17461 #17486 02:53 PM, 20 Jun 2017
    метрика выдает отчеты из кх. но у нас 400+ машин и при необходимости используется семплирование.
  • https://t.me/clickhouse_ru
    что представляет из себя это сэмплирование?
  • https://t.me/clickhouse_ru
    Грубо говоря по индексу читается только часть данных в надежде на то, что получится достаточно репрезентативная выборка
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #17487 #17489 03:25 PM, 20 Jun 2017
    в некоторых случаях клиенту все равно, пришло к нему на сайт 1000 человек или 1001. тогда можно строить отчет по части данных, который показывает примерные числа, но работает быстрее.
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17490 03:29 PM, 20 Jun 2017
    а если важно
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17491 03:30 PM, 20 Jun 2017
    тогда кликхаус не используют
  • https://t.me/clickhouse_ru
    @pavel_odintsov #17492 03:30 PM, 20 Jun 2017
    а тащут ACID базу
  • https://t.me/clickhouse_ru
    Тогда и модели данных другие используют
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17494 03:35 PM, 20 Jun 2017
    в общем из большой базы сырых данных надо делать подготовленные агрегейтмердж таблицы а лучше summerge. но проблема потом добавлять новое поле, ведь update нету и добавить данные из сырой в подготовленную не получится
  • Вроде помогло. Правда я еще одновременно откатился на чуть раньшую версию CH. Но думаю именно абсолютный путь тут помог.
    Спасибо!
  • https://t.me/clickhouse_ru
    @proller #17496 03:39 PM, 20 Jun 2017
    там разная логика для путей начинающихся с / и просто name*.xml
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #17494 #17497 03:46 PM, 20 Jun 2017
    то что нужно делать зависит от того, скольк у вас данных пишется, сколько у вас данных читается, какой сервис с какими отчетами вы делаете, какие у вас требования к нему по времени ответа, количеству запросов, точности ответа, а также сколько у вас есть на это денег.
  • https://t.me/clickhouse_ru
    @orantius #17498 03:47 PM, 20 Jun 2017
    может быть несколько summing merge tree подойдут.
  • https://t.me/clickhouse_ru
    @akaydalov #17499 03:50 PM, 20 Jun 2017
    Добрый вечер, коллеги, подскажите пожалуйста, если внешним словарём является исполняемый скрипт, и запрос вида Select .... LIMIT 10; то исполняемый скрипт выполнится только 10 раз (LIMIT) или для всего набора данных?
  • @iamigor #17500 03:56 PM, 20 Jun 2017
    внешние словари вроде целиком данные все подсасывают
    каждые N секунд, в зависимости от лайфтайма и того, запрашивали их или нет

    а потом просто в оперативке хранятся в течение своего TTL
    (так происходит в случае с flat, hashed)
    а для cache описывается, как доп.запросы будут происходить
    https://clickhouse.yandex/docs/ru/single/index.html#cache
  • @lexa_work #17501 04:29 PM, 20 Jun 2017
    INSERT INTO table2 SELECT * FROM table1
    DB::Exception: Memory limit (for query) exceeded: would use 9.31 GiB (attempt to allocate chunk of 524288 bytes), maximum: 9.31 GiB.
  • @lexa_work #17502 04:29 PM, 20 Jun 2017
    и что делать с большими таблицами?
  • @lexa_work #17503 04:29 PM, 20 Jun 2017
    через внешний файл только?
  • @iamigor #17504 04:30 PM, 20 Jun 2017
    ну можно кусками инсертить же
  • @iamigor #17505 04:30 PM, 20 Jun 2017
    INSERT INTO table2 SELECT * FROM table WHERE date BETWEEN '2017-05-01' AND '2017-05-31';
  • @lexa_work #17506 04:31 PM, 20 Jun 2017
    ну... закат солнца вручную конечно
  • @lexa_work #17507 04:31 PM, 20 Jun 2017
    но для CH походу это норма и фича
  • @lexa_work #17508 04:31 PM, 20 Jun 2017
    ща попробуем так
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #17501 #17509 04:35 PM, 20 Jun 2017
    сам запрос у вас потоковый, но если у вас тяжелые строки, а в случае select * так может быть, то нужно чтобы за один раз в память читалось не слишком много строк.
  • @lexa_work #17510 04:36 PM, 20 Jun 2017
    ну и ограничение делать вот по редложению Игоря?
  • https://t.me/clickhouse_ru
    @orantius #17511 04:37 PM, 20 Jun 2017
    я бы покрутил что-то вроде max_block_size
  • @lexa_work #17512 04:44 PM, 20 Jun 2017
    нда... суточные данные не всегда проходят
  • @lexa_work #17513 04:44 PM, 20 Jun 2017
    либо еще дробить либо как-то системно
  • @lexa_work #17514 04:44 PM, 20 Jun 2017
    значит max_block_size, говорите
  • @lexa_work #17515 04:46 PM, 20 Jun 2017
    а этот параметр можно на уровне сесси установить?
  • @lexa_work #17516 04:47 PM, 20 Jun 2017
    но как-то из описания не очень вериться, что это поможет
  • @lexa_work #17517 04:53 PM, 20 Jun 2017
    перечитал еще раз
  • @lexa_work #17518 04:53 PM, 20 Jun 2017
    да похоже оно
  • @lexa_work #17519 04:53 PM, 20 Jun 2017
    спасибо за наводку
  • Ещё поставьте max_threads = 1.
    Для INSERT SELECT без фильтрации большее количество не имеет смысла.
  • @iamigor #17521 04:58 PM, 20 Jun 2017
    извините что фигню посоветовал (
  • @lexa_work #17522 04:58 PM, 20 Jun 2017
    ды не почему
  • @lexa_work #17523 04:58 PM, 20 Jun 2017
    норм
  • @lexa_work #17524 04:58 PM, 20 Jun 2017
    просто у меня данные вылезают
  • @lexa_work #17525 04:58 PM, 20 Jun 2017
    в другом случае может и прокатило бы
  • @lexa_work #17526 04:58 PM, 20 Jun 2017
    но это более системный вариант походу
  • @lexa_work #17527 04:59 PM, 20 Jun 2017
    ща нащупаю размеры оптимальные и запущу
  • https://t.me/clickhouse_ru
    @inv2004 #17528 05:15 PM, 20 Jun 2017
    А decompress=1 какие компрессии поддерживает? Через gzip прогнать ок?
  • @lexa_work #17529 05:19 PM, 20 Jun 2017
    а вот при таком массовом insert-е как merge работает? Я правильно ожидаю, что после копирования новая таблица будет иметь больше part-ов чем исходная (в которой достаточно старые данные)?
  • @lexa_work #17530 05:20 PM, 20 Jun 2017
    и как следствие больше размер и менее эффективная
  • decompress=1 поддерживает только внутренний формат сжатия.
    Для использования gzip, указывать его не нужно. Вместо этого просто используйте HTTP заголовок.
    https://github.com/yandex/ClickHouse/blob/master/dbms/tests/queries/0_stateless/00302_http_compression.sh
    yandex/ClickHouse

    ClickHouse is a free analytic DBMS for big data.

  • Да, после копирования таблица может иметь больше part-ов.
    Мержи работают примерно так же, как при обычных INSERT-ах, хотя и более оптимально если вставляются уже сортированные данные (это так при INSERT SELECT без преобразований, и с выставленной настройкой max_threads=1).
  • @lexa_work #17533 05:25 PM, 20 Jun 2017
    у меня изменился немного PK
  • @lexa_work #17534 05:25 PM, 20 Jun 2017
    это преобразование?
  • @milovidov_an #17535 05:26 PM, 20 Jun 2017
    Да. Если сортированность данных по PK меняется, то будет несколько менее оптимально по CPU.
  • @lexa_work #17536 05:27 PM, 20 Jun 2017
    спасибо за пояснения!
  • Да, отчёты Метрики строятся налету из неагрегированных данных, хранящихся в ClickHouse. Это работает одинаково, как для свежих, так и для старых данных. Отдельных примочек для свежих данных нет, кэшей нет, предагрегации тоже нет.
  • А после выборки есть какая то постобработка? Есть же какая то бизнес-логика поверх данных
  • https://t.me/clickhouse_ru
    и почему так быстро?. у нас 600 млн записей почти минуту отдает, пытаюсь посчитать для них сумму и сгруппировать по странам регионам
  • У меня 850 млн строк и достаточно массивные запросы отрабатывают не дольше 150мс
  • Очень странно, что у вас все так долго (
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17542 05:32 PM, 20 Jun 2017
    эм.. тогда я точно не понимаю в чем дело
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17543 05:33 PM, 20 Jun 2017
    а какой сервер? может какие-то настройки сервера отличные от тех что по умолчанию?
  • @pookieShmukie #17544 05:33 PM, 20 Jun 2017
    Я нормальное распределение считаю по 500 млн буквально за 50мс )
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17545 05:33 PM, 20 Jun 2017
    у меня много группировок по строковым типам
  • @pookieShmukie #17546 05:33 PM, 20 Jun 2017
    У нас три шарда по 32 ядра, 96 гигов оперативы и по 300 гигов ссд. Это виртуалки.
  • @pookieShmukie #17547 05:34 PM, 20 Jun 2017
    Может есть смысл сделать внешний словарь и перевести строки в числа? Что-то типа предварительной подготовки данных
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17548 05:35 PM, 20 Jun 2017
    ну это только некоторые из полей можно так сделать. но не все к сожалению
  • @pookieShmukie #17549 05:36 PM, 20 Jun 2017
    Мы периодически перекладываем данные из монги в КХ, но из монги берем только нужные данные. Предварительно я вычисляю идентификатор пользователя и идентификатор "сайта"
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17550 05:36 PM, 20 Jun 2017
    сервер 4 ядра и 8 гигов ram. это конечно в 10к раз хуже вашего
  • @pookieShmukie #17551 05:36 PM, 20 Jun 2017
    Ну я первый раз гонял КХ на сервере с один ядром и 4 гигами оперативы :) Навалил туда 2.5 ярда )
  • @pookieShmukie #17552 05:37 PM, 20 Jun 2017
    Это на одной машине, без шардов. Скорость выполнения запросов даже параллельных была достаточно большая.
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17553 05:37 PM, 20 Jun 2017
    магия
  • @pookieShmukie #17554 05:39 PM, 20 Jun 2017
    Действительно странно
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17555 05:45 PM, 20 Jun 2017
    вот элементарный пример
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17556 05:45 PM, 20 Jun 2017
    SELECT count(*) FROM xxx
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17558 05:46 PM, 20 Jun 2017
    7 сек чтобы посчитать количество ... это норм?
  • https://t.me/clickhouse_ru
    @orantius #17560 05:48 PM, 20 Jun 2017
    не тормозит
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17562 05:51 PM, 20 Jun 2017
    это в 4 раза медленее. но это запрос на сервере. а если отправлять запрос на порт 8123 то 7 сек
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17563 05:52 PM, 20 Jun 2017
    и у вас 18 rows/s у меня почему-то 3 rows/s
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17564 05:52 PM, 20 Jun 2017
    диски ssd
  • @pookieShmukie #17565 05:53 PM, 20 Jun 2017
    У нас сложная бизнес-логика и нам приходится какие то данные агрегировать и "кешировать", но данные мы выбираем асинхронно, порядка 10-11 одновременных запросов в КХ. Таких инстансов, делающих асинхронные запросы на данный момент 50 штук.
  • @pookieShmukie #17566 05:53 PM, 20 Jun 2017
    Все летает
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17567 05:54 PM, 20 Jun 2017
    но на примере обычного теста я отстаю в 4 раза. это как объяснить?)
  • @pookieShmukie #17568 05:54 PM, 20 Jun 2017
    Возможно все таки кол-во потоков играет определенную роль :)
  • @pookieShmukie #17569 05:55 PM, 20 Jun 2017
    Попробуйте поднять мониторинг на том же графите с карбоном и посмотрите куда у вас что течет
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17570 05:56 PM, 20 Jun 2017
    есть мониторинг
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17571 05:57 PM, 20 Jun 2017
    только что смотреть. памяти хватает. проц съедают потоки clickhouse-server. место есть
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17572 05:57 PM, 20 Jun 2017
    iops не упирается в диск
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17573 05:57 PM, 20 Jun 2017
    вот еще раз выполнил запрос
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17575 05:57 PM, 20 Jun 2017
    уже почти 0.5
  • https://t.me/clickhouse_ru
    @maksim_melnichuk #17576 05:58 PM, 20 Jun 2017
    в среднем от 0.2 до 0.5
  • https://t.me/clickhouse_ru
    @Civiloid #17577 06:00 PM, 20 Jun 2017
    А ещё к слову, мне тут что то подумалось, что индекс же должен влиять в том числе на скорость group by, даже если нет фильтрации. Разве нет?
  • @pookieShmukie #17578 06:00 PM, 20 Jun 2017
    Я, к сожалению не спец по кишкам КХ, но я думаю должен
  • @pookieShmukie #17579 06:01 PM, 20 Jun 2017
    Я долго с PK игрался, пока оптимальный вариант не подобрал
  • @pookieShmukie #17580 06:01 PM, 20 Jun 2017
    В том числе и группировки стали шустрее работать
  • https://t.me/clickhouse_ru
    @Civiloid #17581 06:01 PM, 20 Jun 2017
    Ну логика говорит что должен влиять в общем :)
  • https://t.me/clickhouse_ru
    @orantius #17582 06:04 PM, 20 Jun 2017
    группировки по ключу?
  • @pookieShmukie #17583 06:04 PM, 20 Jun 2017
    У меня да, используются в группировках колонки, которые в ключе есть, но иногда и без них данные группирую
  • @pookieShmukie #17584 06:05 PM, 20 Jun 2017
    Просто по этим же колонкам приходится еще фильтр делать
  • @pookieShmukie #17585 06:05 PM, 20 Jun 2017
    В ключе у меня 4 колонки всего
  • @pookieShmukie #17586 06:05 PM, 20 Jun 2017
    Дата, идентификатор сайта, идентификатор пользователя и действие которое пользователь совершил
  • @pookieShmukie #17587 06:07 PM, 20 Jun 2017
    Когда перекладываем данные, то они частично сортированы и пишутся пачками по 100 000 строк в 200 потоков :) Потолок в 10млн строк в минуту не пробил, т.к. монга быстрее не отдает
  • https://t.me/clickhouse_ru
    @orantius #17588 06:08 PM, 20 Jun 2017
    а сколько у вас дисков, от 100->200 потоков было какое-то увеличение в скорости?
  • @pookieShmukie #17589 06:09 PM, 20 Jun 2017
    У нас по одному диску на каждом шарде. Скорость увеличивалась по мере увеличения потоков на запись
  • @pookieShmukie #17590 06:09 PM, 20 Jun 2017
    Причем чуть ли не линейно )
  • https://t.me/clickhouse_ru
    @orantius #17591 06:10 PM, 20 Jun 2017
    а, вы не в одну машину пишете
  • @pookieShmukie #17592 06:18 PM, 20 Jun 2017
    В три
  • @pookieShmukie #17593 06:18 PM, 20 Jun 2017
    Точнее в одну распределенную таблицу
  • @pookieShmukie #17594 06:18 PM, 20 Jun 2017
    А данные уже по шардам расползаются сами
  • @pookieShmukie #17595 06:19 PM, 20 Jun 2017
    Сейчас из-за бага с broken pipe пишу по серверам напрямую, но там не больше 10к строк раз в 10 минут )
  • @pookieShmukie #17596 06:20 PM, 20 Jun 2017
    Большими порциями мы архивные данные гоняем в КХ, такое практикуем раз в месяц где то
  • @milovidov_an #17597 06:43 PM, 20 Jun 2017
    Сейчас есть release candidate. В stable ещё не попало, так как много заморочек с выкладкой на наши серверы. Из последнего тега testing уже можете собирать.
  • @pookieShmukie #17598 06:44 PM, 20 Jun 2017
    А инструкции по сборке deb пакетов есть у вас?
  • @milovidov_an #17599 06:46 PM, 20 Jun 2017
    Да - нужно воспользоваться обычной инструкцией по сборке - там внизу пункт.
  • @pookieShmukie #17600 06:50 PM, 20 Jun 2017
    Спасибо вам всем за все что вы делаете :)
  • Алексей, а есть какая то информация по этому багу? 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...

  • @pookieShmukie #17603 06:52 PM, 20 Jun 2017
    Очень жить мешает :)
  • @milovidov_an #17604 06:56 PM, 20 Jun 2017
    Неправильное выкидывание ненужных столбцов из подзапросов. Пока не исправили. Эта функциональность сделана неудобно и возникает желание сделать исправление более глобально. Может быть, получится исправить быстрее, если очень надо.
  • Ну это не прям критично для нас, просто может быть кто-то тоже с таким сталкивался. У нас данных пока не так много, что бы прям сильно страдать от этого
  • @pookieShmukie #17606 06:57 PM, 20 Jun 2017
    Просто если это пофиксить, то это сэкономит тонну процессорного времени
  • @pookieShmukie #17607 06:57 PM, 20 Jun 2017
    Из-за невозможности выполнить подобный запрос приходится считать результаты таких запросов на прикладном уровне, а это иногда бывает не быстро
  • @milovidov_an #17608 06:59 PM, 20 Jun 2017
    А можете ещё приложить структуры таблиц (SHOW CREATE TABLE)?
  • @pookieShmukie #17609 06:59 PM, 20 Jun 2017
    Да, сейчас напишу в issue
  • @pookieShmukie #17610 07:01 PM, 20 Jun 2017
    Закинул
  • @pookieShmukie #17611 07:04 PM, 20 Jun 2017
    Могу так же семпл данных приложить
  • @milovidov_an #17612 07:07 PM, 20 Jun 2017
    Пригодится.
  • @pookieShmukie #17613 07:08 PM, 20 Jun 2017
    Ок, тогда подготовлю сейчас семпл в csv и закину тоже
  • @pookieShmukie #17614 07:16 PM, 20 Jun 2017
    Добавил семпл с данными. Там 2.5 млн строк
  • https://t.me/clickhouse_ru
    @inv2004 #17615 07:38 PM, 20 Jun 2017
    Как же все сложно в обычном sql:
    ... where sym in (select arrayJoin(arrayMap(x->cityHash64(x), ['AAA','BBB'])))
    вместо векторного:
    ... where sym in cityHash64 each ['AAA','BBB']
  • https://t.me/clickhouse_ru
    @orantius #17616 07:42 PM, 20 Jun 2017
    я бы делал has(arrayMap(x->cityHash64(x), ['AAA','BBB']), sym)
  • https://t.me/clickhouse_ru
    @orantius #17617 07:43 PM, 20 Jun 2017
    хотя наверно то же самое будет.
  • https://t.me/clickhouse_ru
    @inv2004 #17618 07:45 PM, 20 Jun 2017
    Совсем не ясно почему колонка (что в векторной базе = вектор), тут не считается вектором (массивом) по сути.
  • @ja1cap #17619 07:46 PM, 20 Jun 2017
    Joined.
  • https://t.me/clickhouse_ru
    @inv2004 #17620 07:47 PM, 20 Jun 2017
    С has вообще не очень понятно как работает, те и не должно по идее работать, но главное в 200 раз медленнее
  • https://t.me/clickhouse_ru
    @orantius #17621 07:48 PM, 20 Jun 2017
    синтаксически список в правой части in это вообще тупл, т.е. не массив, хотя проверки относительно него делаются как для массива, проверяется существования общего типа всех компонентов. массивы же не считаются отношениями, это такой вектор-строка, в отличие от вектора-столбца, который представляет собой таблица с одной скалярной колонкой. arrayReduce немного маскирует это отличие, но не всегда помогает.
  • https://t.me/clickhouse_ru
    @inv2004 #17622 07:49 PM, 20 Jun 2017
    Has возвращает булевый массив, но он будет не соответствовать длине sym => странно что where его вообще принимает.
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #17620 #17623 07:50 PM, 20 Jun 2017
    а вот это интересно. ну т.е. работать должно, почему бы и не работать, неужели он хеши считает на каждую строку.
  • https://t.me/clickhouse_ru
    @inv2004 #17624 07:51 PM, 20 Jun 2017
    Я не понимаю как where может работать при таком подходе, :) может только тиражирует все на каждую строку, отсюда и скорость.
  • https://t.me/clickhouse_ru
    @orantius #17625 07:51 PM, 20 Jun 2017
    SELECT has([1, 2, 3], 1)

    ┌─has([1, 2, 3], 1)─┐
    │ 1 │
    └───────────────────┘
  • https://t.me/clickhouse_ru
    @orantius #17626 07:52 PM, 20 Jun 2017
    а у вас sym это массив?
  • https://t.me/clickhouse_ru
    @inv2004 #17627 07:52 PM, 20 Jun 2017
    А, извиняюсь, параметры в голове местами переставил. Тогда странно что так медленно
  • https://t.me/clickhouse_ru
    @inv2004 #17628 07:52 PM, 20 Jun 2017
    Нет, сим - это колонка.
  • https://t.me/clickhouse_ru
    @inv2004 #17629 07:55 PM, 20 Jun 2017
    Чуть позже пришлю запрос как он в кдб выглядит и какой он получается (пока не получается).
  • https://t.me/clickhouse_ru
    @orantius #17630 07:59 PM, 20 Jun 2017
    SELECT *
    FROM
    (
    SELECT number AS x
    FROM system.numbers
    LIMIT 100000000
    )
    WHERE has(
    (
    SELECT arrayMap(x -> cityHash64(x), ['AAA', 'BBB'])
    ), x)

    Ok.

    0 rows in set. Elapsed: 1.693 sec. Processed 100.01 million rows, 800.06 MB (59.07 million rows/s., 472.52 MB/s.)

    SELECT *
    FROM
    (
    SELECT number AS x
    FROM system.numbers
    LIMIT 100000000
    )
    WHERE has(arrayMap(x -> cityHash64(x), ['AAA', 'BBB']), x)

    Ok.

    0 rows in set. Elapsed: 4.484 sec. Processed 100.01 million rows, 800.06 MB (22.30 million rows/s., 178.43 MB/s.)в три раза отличается.
  • https://t.me/clickhouse_ru
    @orantius #17631 08:02 PM, 20 Jun 2017
    SELECT *
    FROM
    (
    SELECT number AS y
    FROM system.numbers
    LIMIT 100000000
    )
    WHERE y IN
    ( SELECT arrayJoin(arrayMap(x -> cityHash64(x), ['AAA', 'BBB']))
    )

    Ok.

    0 rows in set. Elapsed: 0.389 sec. Processed 100.01 million rows, 800.06 MB (257.02 million rows/s., 2.06 GB/s.)еще четыре раза. любопытно.
  • https://t.me/clickhouse_ru
    @orantius #17632 08:03 PM, 20 Jun 2017
    видимо в таком виде этот кусок не реплицируется на каждую строку.
  • https://t.me/clickhouse_ru
    @inv2004 #17633 08:05 PM, 20 Jun 2017
    Ну с точки зрения векторизации последний вариант понятно будет быстрее.
  • https://t.me/clickhouse_ru
    @orantius #17634 08:16 PM, 20 Jun 2017
    ну можно сделать вывод, что во-первых сервер не вычисляет cityHash64 от констант, иначе первый вариант работал бы как второй, а также для has с первым аргументом-константой как минимум в одном случае оптимальнее переписывать в in.
  • https://t.me/clickhouse_ru
    @inv2004 #17635 08:18 PM, 20 Jun 2017
    Не понял про константы.
  • https://t.me/clickhouse_ru
    @inv2004 #17636 08:18 PM, 20 Jun 2017
    Переписал
  • https://t.me/clickhouse_ru
    @inv2004 #17638 08:19 PM, 20 Jun 2017
    Признаться не так ужасно , кроме этой обработки массива, ну и словаря конечно, + скорость очень порадовала. сначала думал, ну вот, в 5 раз от кдб отстаёт, а потом смотрю - дату забыл поставить.
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #17635 #17639 08:20 PM, 20 Jun 2017
    has(arr,val) эквивалентно val in (select arrayJoin(arr)) если arr не зависит от строки. если arr сам столбец, то так не получится.
  • @lexa_work #17640 08:20 PM, 20 Jun 2017
    Парни, нужна помощь
  • @lexa_work #17641 08:20 PM, 20 Jun 2017
    какой-то разрыв шаблонов получается
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #17637 #17642 08:21 PM, 20 Jun 2017
    а какие времена ответов. и где во втором запросе cityhash
  • https://t.me/clickhouse_ru
    @inv2004 #17643 08:23 PM, 20 Jun 2017
    Ля, я не так написал, сейчас.
  • @lexa_work #17644 08:23 PM, 20 Jun 2017
    и так CH кластер:
    <s3_r1>
    <shard>
    <weight>1</weight>
    <internal_replication>false</internal_replication>
    <replica>
    <host>xdray-1</host>
    <port>9000</port>
    </replica>
    </shard>
    <shard>
    <weight>1</weight>
    <internal_replication>false</internal_replication>
    <replica>
    <host>xdray-2</host>
    <port>9000</port>
    </replica>
    </shard>
    <shard>
    <weight>1</weight>
    <internal_replication>false</internal_replication>
    <replica>
    <host>xdray-3</host>
    <port>9000</port>
    </replica>
    </shard>
    </s3_r1>

    на каждом сервере создана локальная таблица с таким конфигом:
    ...
    ENGINE = ReplicatedMergeTree('/clickhouse/tables/s3_r1/omega/omega_sccp_local','{replica}',
    EventDate, cityHash64(sccp_src_local_ref, sccp_dst_local_ref),
    (EventDate, session_type, Timestamp, sccp_cr_m3ua_opc, sccp_cr_m3ua_dpc,
    cityHash64(sccp_src_local_ref, sccp_dst_local_ref)), 8192);
  • @lexa_work #17645 08:23 PM, 20 Jun 2017
    т.е. Replicated, но реальных реплик нет
  • @lexa_work #17646 08:24 PM, 20 Jun 2017
    поверх создана таблица типа:
    CREATE TABLE omega.omega_sccp AS omega.omega_sccp_local
    ENGINE = Distributed(s3_r1, omega, omega_sccp_local, cityHash64(sccp_src_local_ref,sccp_dst_local_ref,sccp_cr_m3ua_opc,sccp_cr_m3ua_dpc));
  • @lexa_work #17647 08:24 PM, 20 Jun 2017
    при вставке строки в таблицу идет копирование на каждый шард
  • @lexa_work #17648 08:24 PM, 20 Jun 2017
    т.е. вставляешь 1 строку, получаешь 3
  • @lexa_work #17649 08:24 PM, 20 Jun 2017
    причем это дубликаты
  • @lexa_work #17650 08:25 PM, 20 Jun 2017
    и запрос из omega.omega_sccp их честно выдает
  • https://t.me/clickhouse_ru
  • @lexa_work #17652 08:25 PM, 20 Jun 2017
    в чем фокус?
  • https://t.me/clickhouse_ru
    @inv2004 #17653 08:28 PM, 20 Jun 2017
    @orantius время ответа: КХ - около 200мс, что в общем-то много все равно. В кдб - 48мс
  • @ztlpn ↶ Reply to #17652 #17654 08:29 PM, 20 Jun 2017
    У вас replicated таблицы являются репликами друг друга.
  • @ztlpn #17655 08:29 PM, 20 Jun 2017
    Поскольку они в разных шардах, это неправильно.
  • https://t.me/clickhouse_ru
    @inv2004 #17656 08:29 PM, 20 Jun 2017
    Ситихеш - это временное решения для быстрой нормализации строк.
  • @ztlpn #17657 08:30 PM, 20 Jun 2017
    То есть путь (первый параметр движка) должен быть разный в разных шардах.
  • не очень понял... ща еще раз перепроверю