• 01 August 2018 (175 messages)
  • @621817705 #60499 12:53 AM, 01 Aug 2018
    Joined.
  • @632246705 #60501 02:56 AM, 01 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @vladenisov #60503 05:06 AM, 01 Aug 2018
    привет. внезапно прекратились мержи, в логах КХ ошибки типа:
    2018.08.01 05:04:46.025443 [ 53 ] <Warning> local.clickstream_new (StorageReplicatedMergeTree, PartCheckThread): Found parts with the same min block and with the same max block as the missing part 201807-0_783_809_5. Hoping that it will eventually appear as a result of a merge.
    в папке таблицы набралось много папок 201807-0_XXX_XXX_0.

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

    куда смотреть?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #60480 #60505 06:38 AM, 01 Aug 2018
    scrape_uri - это адрес КХ (обычно 127.0.0.1), в прометеусе вы можете руками прописать адреса экспортеров, либо использовать консул и регать экспортеры там, если у вас окружение динамическое то лучше использовать консул и там регистрироваться, если нет то просто пропишите в него адреса экспортеров.
  • https://t.me/clickhouse_ru
    @149051052 #60506 06:41 AM, 01 Aug 2018
    Добрый день!
    Есть столбцы (string, hash): data1, data2, data3, и другие столбцы
    Нужно делать поиск по data1 ИЛИ data2 ИЛИ data3
    Как лучше организовать таблицу или таблицы, чтобы CH максимально хорошо и быстро искал нужные строки?
  • https://t.me/clickhouse_ru
    @pokoleniboroda #60507 07:45 AM, 01 Aug 2018
    Добрый день, коллеги!
    Делаю выборку:
    select request_id
    from my_table
    where request_id = '59f911f179bea204f6890ea5'
    Результат - одна строка.

    Затем подставляю в селекте вместо request_id некоторую константу, но с тем же условием:
    select 'new_request_id' as request_id
    from my_table
    where request_id = '59f911f179bea204f6890ea5'
    Результат - пусто.

    Что бы это могло быть?
  • @356722520 #60508 07:45 AM, 01 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @343206394 #60509 07:46 AM, 01 Aug 2018
    Так работает?
    select 'new_request_id' as request_id2
    from my_table
    where request_id = '59f911f179bea204f6890ea5'
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #60507 #60510 07:48 AM, 01 Aug 2018
    Проще говоря он реплейсит request_id на new_request_id
  • https://t.me/clickhouse_ru
    @kshvakov #60511 07:48 AM, 01 Aug 2018
    Не делайте алиасы с названием колонок
  • https://t.me/clickhouse_ru
    Да, если присваивать другой алиас, то всё работает нормально.
  • https://t.me/clickhouse_ru
    @343206394 #60514 08:34 AM, 01 Aug 2018
    Кто-нибудь использует кластер в который интенсивно пишут? Раз 50-100 в минуту я имею в виду.
    Попробуйте стопануть одну реплику, у меня на второй прекражаються мержи и через 2-3-5 минут привет исключение о медленных мержах (притом такое поведение даже если все вьюхи убрать)

    Может есть какая-то настройка чтобы оставшаяся в живых реплика не прекращала мержить?

    Таблица причины почему мержи не идут полна такого
    │ MetricsFree │ Not merging into part c1d05dd4c541bdc14737a222ad2b09b1_1147_1561_155 because part c1d05dd4c541bdc14737a222ad2b09b1_1147_1560_154 is not ready yet (log entry for that part is being processed). │ Poco::Exception. Code: 1000, e.code() = 111, e.displayText() = Connection refused, e.what() = Connection refused

    и такого
    │ Metrics │ Not merging into part babccf0c7ab1c3af920fb405ca79c901_36891_36895_1 because part babccf0c7ab1c3af920fb405ca79c901_36892_36892_0 is not ready yet (log entry for that part is being processed). │ Code: 234, e.displayText() = DB::Exception: No active replica has part babccf0c7ab1c3af920fb405ca79c901_36891_36895_1 or covering part, e.what() = DB::Exception │

    Потеря реплики это обычный сценарии, верно?

    А он поломан. Не критично?
  • @Dima_Ishchenko #60515 08:51 AM, 01 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #60514 #60516 09:16 AM, 01 Aug 2018
    Пишите синхронно, чтоб данные были на обеих машинах, сейчас записи о данных в ZK есть, а на оставшейся машине их нет и взять ей неоткуда (смотрите insert_quorum).
  • https://t.me/clickhouse_ru
    @343206394 #60517 09:17 AM, 01 Aug 2018
    Если insert_quorum поставлю в 2 (2 реплики) то перестанет писать сразу же как я остановлю 1 реплику, верно?
  • https://t.me/clickhouse_ru
    @nordluf #60518 09:18 AM, 01 Aug 2018
    Подскажите, а имеет смысл вытаскивать в primary key поле eventDate если в WHERE оно фильтруется везде от начала месяца до конца? Будут ли использоваться оптимизации засечек при джоинах?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #60517 #60519 09:25 AM, 01 Aug 2018
    Да
  • @1115100 #60520 09:47 AM, 01 Aug 2018
    Господа, а где бы посмотреть принципы/пример заполнения дыр в time-series на уровне запросов? А то от всех моих вариантов начинают кровоточить глаза
  • https://t.me/clickhouse_ru
    @Imaskar ↶ Reply to #60516 #60522 09:53 AM, 01 Aug 2018
    А не будут проблемы при неудавшихся вставках? Да и много ресурсов на кросс-репликацию.
  • https://t.me/clickhouse_ru
    @kmarenov ↶ Reply to #60520 #60523 09:57 AM, 01 Aug 2018
    я обычно делаю что-то типа такого
    SELECT
    date,
    ...
    FROM
    (
    SELECT toDate('2018-07-02') + number AS date
    FROM system.numbers LIMIT 7
    ) ANY LEFT JOIN (
    ...тут запрос, в результате которого могут быть "дыры" в датах...
    ) USING date
  • @1115100 ↶ Reply to #60523 #60524 09:59 AM, 01 Aug 2018
    О! Спасибо! Не знал про system.numbers, извращался с range()
  • https://t.me/clickhouse_ru
    Я тоже :)

    SELECT
    arrayJoin(aligned).1 AS ts,
    arrayJoin(aligned).2
    FROM
    (
    WITH
    groupArray((ts, value)) AS series,
    toDateTime('2018-01-01 00:00:00') AS zero_time,
    range(4) AS range,
    3600 AS step,
    arraySort(arrayMap(pos -> (zero_time + (step * pos), arrayFirst(t -> (t.1 = (zero_time + (step * pos))), series).2), range)) AS aligned
    SELECT aligned
    FROM timeserie
    GROUP BY metric
    )
  • @1115100 ↶ Reply to #60525 #60526 10:08 AM, 01 Aug 2018
    Во-во, а если еще добавить скользящее среднее, то при зачитывании вслух будет открываться портал в варп
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #60522 #60527 10:09 AM, 01 Aug 2018
    А с чего там сильно больше ресурсов? Там при вставке живые реплики из ZK проверяются + проверка что куски доехали, просто вставка медленнее.
  • https://t.me/clickhouse_ru
    Среднее, это чтобы экстраполировать, а не нулями забивать?
  • @1115100 ↶ Reply to #60528 #60529 10:13 AM, 01 Aug 2018
    Чтобы отдельные большие значения не так сильно влияли на график
  • https://t.me/clickhouse_ru
    @Imaskar ↶ Reply to #60527 #60530 10:16 AM, 01 Aug 2018
    А где-нибудь есть статьи о механике всего процесса? А то не везде понятно, на что можно рассчитывать и как правильно делать.
  • https://t.me/clickhouse_ru
    @xammett #60531 10:18 AM, 01 Aug 2018
    добрый день, скажите, возможно ли в будущем использовать удаление для distributed таблиц или иметь возможность на локальных таблицах делать ALTER TABLE DELETE ON CLUSTER test WHERE ...?
  • https://t.me/clickhouse_ru
    а что за where ?
  • https://t.me/clickhouse_ru
    @xammett #60533 10:19 AM, 01 Aug 2018
    условия по которому мы будем что-то удалять
  • https://t.me/clickhouse_ru
    @stufently #60534 10:20 AM, 01 Aug 2018
    так вы таблицу собираетесь удалять или что ?
  • https://t.me/clickhouse_ru
    @xammett #60535 10:20 AM, 01 Aug 2018
    например, у нас есть distributed таблица, которая размазанная на x серверов
  • https://t.me/clickhouse_ru
    @xammett #60536 10:20 AM, 01 Aug 2018
    не удалять
  • https://t.me/clickhouse_ru
    @stufently #60537 10:20 AM, 01 Aug 2018
    вообще не очень понимаю какие там условия могут быть
  • https://t.me/clickhouse_ru
    @xammett #60538 10:20 AM, 01 Aug 2018
    а удалять часть данных по критерию
  • https://t.me/clickhouse_ru
    @stufently #60539 10:20 AM, 01 Aug 2018
    в дистрибьютед таблице нет данных же
  • https://t.me/clickhouse_ru
    @xammett #60540 10:20 AM, 01 Aug 2018
    смотрите, например, мы неправильно залили первый месяц
  • https://t.me/clickhouse_ru
    @xammett #60541 10:20 AM, 01 Aug 2018
    да это вьюха на локальные таблицы
  • https://t.me/clickhouse_ru
    @xammett #60542 10:21 AM, 01 Aug 2018
    смысл в том, чтобы не ходить на каждый сервер а сделать операцию через on cluster
  • https://t.me/clickhouse_ru
    Автор подразумевает, что мутационный запрос транслируется на нижележащие таблицы
  • https://t.me/clickhouse_ru
    @stufently #60544 10:21 AM, 01 Aug 2018
    ну а зачем для этого нужна дистрибьютед , делайте онкластер на локальные
  • https://t.me/clickhouse_ru
    @stufently #60545 10:21 AM, 01 Aug 2018
    зачем заходить при этом на каждый сервер тоже не понятно
  • https://t.me/clickhouse_ru
    @xammett #60546 10:21 AM, 01 Aug 2018
    сейчас не поддерживается on cluster для удаления
  • @ztlpn #60547 10:23 AM, 01 Aug 2018
    ON CLUSTER для ALTER DELETE должен поддерживаться
  • https://t.me/clickhouse_ru
    Для альтер вроде поддерживается, по крайней мере все Альтеры я делаю он кластер
  • https://t.me/clickhouse_ru
    @xammett ↶ Reply to #60549 #60550 10:26 AM, 01 Aug 2018
    delete?
  • https://t.me/clickhouse_ru
    @stufently #60551 10:27 AM, 01 Aug 2018
    Ну и делете наверно мне кажется тоже
  • https://t.me/clickhouse_ru
    @xammett #60552 10:27 AM, 01 Aug 2018
    наверное синтаксис у меня неверный, спасибо
  • https://t.me/clickhouse_ru
    @QuietFelix #60553 10:28 AM, 01 Aug 2018
    Привет всем. За неделю запутался, читая чат. У нас есть кластер из 2-х машин КХ и 3-х машин ZK. Есть ReplicatedMergeTree, на которую навесили MaterializedView с движком MergeTree. Если данные попали в ReplicatedMergeTree, есть ли гарантия, что они окажутся и в MaterializedView, если все машины живы? Я понимаю, что в случае вылета КХ или ZK последствия могут быть рандомными, но если без вылетов?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #60553 #60554 10:32 AM, 01 Aug 2018
    В MV данные попадут только на той машине где запись, делайте MV реплицируемыми
  • https://t.me/clickhouse_ru
    @QuietFelix #60555 10:32 AM, 01 Aug 2018
    О. Кажется, именно это мы и продолбали. Спасибо. :)
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #60530 #60556 10:33 AM, 01 Aug 2018
    Вот тут можно посмотреть про механику https://events.yandex.ru/lib/talks/5800/
  • https://t.me/clickhouse_ru
    @Imaskar #60557 10:38 AM, 01 Aug 2018
    Спасибо
  • https://t.me/clickhouse_ru
    @Imaskar ↶ Reply to #60553 #60558 10:55 AM, 01 Aug 2018
    как-то странно, когда сделали 5 машин вместо 2, но при выходе из строя одной последствия рандомные. получается менее устойчиво, нет?
  • https://t.me/clickhouse_ru
    Это не 5 вместо 2. Это 2 + 3. Даже при самой крутой и стабильной архитектуре вылет любого сервера может привести порою к рандому, если случится в "удачное" схождение звёзд.
  • https://t.me/clickhouse_ru
    @DmitryMishchenko #60561 11:55 AM, 01 Aug 2018
    Привет всем, у меня тут на мой взгляд страшная ситуация, на 1 из шардов на репликах не совпадают данные. Смотрю логи ошибок вроде нет, может подскажите на что обратить внимание?
  • https://t.me/clickhouse_ru
    @yourock88 #60562 11:56 AM, 01 Aug 2018
    Насколько я понимаю, поскольку у ClickHouse асинхронная репликация, то при выпадании одной ноды КХ данных потеряется не слишком много (только то, что не успело доехать). А при выпадании ZK ноды вообще ничего страшного не должно происходить, потому что он использует Paxos (или какой-то другой протокол для распределенного консенсуса).

    На практике, конечно, это всё стоит проверить :))
  • https://t.me/clickhouse_ru
    @DmitryMishchenko #60563 12:01 PM, 01 Aug 2018
    Спасибо, за ответ, ноя ничего не понял)) делать то что? Как понять на какой из реплик верные данные? Как их восстановить?
  • https://t.me/clickhouse_ru
    На той, где их больше, насколько я понимаю
  • https://t.me/clickhouse_ru
    @den_crane #60565 12:03 PM, 01 Aug 2018
    А репликация через replicated.... таблицы или детская?
  • https://t.me/clickhouse_ru
    @DmitryMishchenko #60566 12:03 PM, 01 Aug 2018
    Replicated
  • https://t.me/clickhouse_ru
    Зукипер есть?
  • https://t.me/clickhouse_ru
    @DmitryMishchenko #60568 12:04 PM, 01 Aug 2018
    Да
  • https://t.me/clickhouse_ru
    @den_crane #60569 12:06 PM, 01 Aug 2018
    А как проверяли что не совпадает? Т.е. для всяких replacing и agregating резултат select count() может зависеть от того завершился merge или нет.
  • https://t.me/clickhouse_ru
    @DmitryMishchenko #60570 12:07 PM, 01 Aug 2018
    sum по основным столбцам
  • https://t.me/clickhouse_ru
    @den_crane #60571 12:08 PM, 01 Aug 2018
    и заливка остановлена? реплика видит данные с задержкой, если запрос sum идет 10 сек., будут разные результаты
  • https://t.me/clickhouse_ru
    @DmitryMishchenko #60572 12:08 PM, 01 Aug 2018
    Ну там значительно отличается
  • https://t.me/clickhouse_ru
    @DmitryMishchenko #60573 12:09 PM, 01 Aug 2018
    Ничего не стопил пока
  • https://t.me/clickhouse_ru
    @den_crane #60574 12:11 PM, 01 Aug 2018
    а что показывает select from system.parts про партции этой таблицы? на обоих репликах
  • https://t.me/clickhouse_ru
    Ну количество строк в таблице system.part разное
  • https://t.me/clickhouse_ru
    @den_crane #60576 12:17 PM, 01 Aug 2018
    а replication_queue есть запросы на репликацию? странно это все
  • https://t.me/clickhouse_ru
    Вот тут куча строк и в поле last_exception connection timeout ошибки
  • https://t.me/clickhouse_ru
    @shursh #60578 12:27 PM, 01 Aug 2018
    Трабла со вчерашнего вопроса про dns, спасибо! Надо обновиться
  • https://t.me/clickhouse_ru
    Друг, спасибо тебе огромное!))))
  • https://t.me/clickhouse_ru
    @den_crane #60580 12:27 PM, 01 Aug 2018
    ну значит реплика не может подключится к брату по http (9000) ?
  • https://t.me/clickhouse_ru
    Уже все)
  • https://t.me/clickhouse_ru
    @den_crane #60582 12:30 PM, 01 Aug 2018
    можно мониторить типа :
    'rep_future_parts')
    sql="select sum(value) from (select sum(future_parts) as value from system.replicas union all select toUInt64(0) as value)"
    ;;

    'rep_parts_to_check')
    sql="select sum(value) from (select sum(parts_to_check) as value from system.replicas union all select toUInt64(0) as value)"
    ;;

    'rep_stalled')
    sql="select sum(value) from (select count(*) as value from system.replication_queue where num_tries > 100 union all select toUInt64(0) as value)"
    ;;
  • https://t.me/clickhouse_ru
    @DmitryMishchenko #60583 12:32 PM, 01 Aug 2018
    Ок, спасибо)
  • https://t.me/clickhouse_ru
    @336107587 #60584 01:26 PM, 01 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @336107587 #60585 01:52 PM, 01 Aug 2018
    Здравствуйте.
    Подскажите пожалуйста,
    Если гаснет нода zk follower - то clickhouse (если он подключен именно к этой ноде) теряет один пакет и переподключается.
    Если гаснет нода zk leader то таблицы переходят в readonly до сообщения в логе ZooKeeper session has expired. Switching to a new session. (60 секунд до этого момента проходит). Что яч делаю не правильно. Подскажите пожалуйста.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #60585 #60586 01:57 PM, 01 Aug 2018
    А что не так?
  • https://t.me/clickhouse_ru
    @336107587 #60587 01:58 PM, 01 Aug 2018
    Не хочется 60 секундного ридонли
  • https://t.me/clickhouse_ru
    @stufently #60588 02:00 PM, 01 Aug 2018
    ну бывает раз в сто лет так что терпимо
  • https://t.me/clickhouse_ru
    @336107587 #60590 02:06 PM, 01 Aug 2018
    А имеет смысл уменьшать zookeeper_session_expiration_check_period ? И чем это грозит?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #60590 #60591 03:06 PM, 01 Aug 2018
    Нет, Зукиперы не сильно часто падают, а минута в RO тоже не так уж и много, легко дозалить данные которые накопились.
  • @lagutinskiy #60592 03:25 PM, 01 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @343206394 #60593 03:56 PM, 01 Aug 2018
    Попробовал "insert_quorum" как тут советовали.
    В логах каждого сервера некоторое кол-во таких сообщении валится
    2018.08.01 15:46:30.776377 [ 420 ] <Error> MetricsDistributed.Distributed.DirectoryMonitor: Code: 286, e.displayText() = DB::Exception: Received from 10.1.2.57:9000. DB::Exception: Quorum for previous write has not been satisfied yet. Status: version: 1
    2018.08.01 15:47:21.476415 [ 421 ] <Error> MetricsDistributed.Distributed.DirectoryMonitor: Code: 286, e.displayText() = DB::Exception: Received from 10.1.1.183:9000. DB::Exception: Quorum for previous write has not been satisfied yet. Status: version: 1
    2018.08.01 15:47:41.518425 [ 5462 ] <Error> executeQuery: Code: 286, e.displayText() = DB::Exception: Another quorum insert has been already started, e.what() = DB::Exception (from 10.1.1.249:52124) (in query: INSERT INTO MetricsDistributed FORMAT TabSeparated), Stack trace:
    2018.08.01 15:47:41.578393 [ 5462 ] <Error> HTTPHandler: Code: 286, e.displayText() = DB::Exception: Another quorum insert has been already started, e.what() = DB::Exception, Stack trace:

    И самое непоиятно что появились опять дуюликаты хотя вьюх нету

    В коде нашел что транзакция откатывается но откуда тогда дубликаты?

    else if (multi_code == ZooKeeperImpl::ZooKeeper::ZNODEEXISTS && failed_op_path == quorum_info.status_path)
    {
    transaction.rollback();

    throw Exception("Another quorum insert has been already started", ErrorCodes::UNSATISFIED_QUORUM_FOR_PREVIOUS_WRITE);
    }
  • https://t.me/clickhouse_ru
    @343206394 #60594 03:57 PM, 01 Aug 2018
    Сообщения фиг с ними, задержки сети или еще что-нибудь в растпеделенной системе пусть будут
    Но эти дубликаты в различной вариации меня немного измотали
  • https://t.me/clickhouse_ru
    @den_crane #60595 04:01 PM, 01 Aug 2018
    >Но эти дубликаты в различной вариации меня немного измотали
    я вот читаю который день про ваши дубликаты, и вот чего не могу понять,
    вы же сами пишете по нескольку раз, при ошибке, поэтому дубликаты, правильно?
  • https://t.me/clickhouse_ru
    @343206394 #60596 04:02 PM, 01 Aug 2018
    Да, а как иначе если батч не прошел?
    Replaced движок это борьба с последствиями
  • https://t.me/clickhouse_ru
    @343206394 #60597 04:03 PM, 01 Aug 2018
    Одна причина это вьюхи, от них со скрипом отказались и выкручиваемся без них
  • https://t.me/clickhouse_ru
    @phrlog #60598 04:03 PM, 01 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @nordluf #60599 04:03 PM, 01 Aug 2018
    Скажите пожалуйста, а почему в документации нету описания arrayReduce?
  • https://t.me/clickhouse_ru
    @343206394 #60600 04:04 PM, 01 Aug 2018
    Вылез нюанс что если писать асинхронно и стопануть одну из 2 реплик то перестает мержить
  • https://t.me/clickhouse_ru
    @343206394 #60601 04:04 PM, 01 Aug 2018
    В свою очередь после Х немержей шард перестает отвечать и кластер полудоступен
    Хотя вроде как потеря реплики не должна к такому приводить.
  • https://t.me/clickhouse_ru
    @343206394 #60602 04:05 PM, 01 Aug 2018
    Ок, сделали синхронную запись, опять 25, при остановке реплики вылезли дубликаты (видимо не только нет атомарности между таблицей и вьюхой но и между репликами)
  • https://t.me/clickhouse_ru
    @343206394 #60603 04:09 PM, 01 Aug 2018
    Мы готовы к потерям данных или даже к дубликатам если полкластера легло, но при потере одной двух нод как то не расчитывали что пичаль настигнет
  • https://t.me/clickhouse_ru
    @343206394 #60604 04:12 PM, 01 Aug 2018
    insert_quorum придется вернуть в 0
    от вьюх отказались, будем сами писаль в несколько таблиц.
    ЗЫ я не жалуюсь, я делюсь. Продукт оч быстрый, но есть нюансы при использовании как и везде. Просто эти дубликаты выглядят как серьезная проблема для серьезного использования
  • https://t.me/clickhouse_ru
    но вы понимаете, что дубликаты replacing может схлопнуть в отдаленном будущем а может и нет, т.е. надо писать запросы правильно к такой таблице чтобы дубликаты скрывать?
  • https://t.me/clickhouse_ru
    @salttan #60606 04:18 PM, 01 Aug 2018
    а я не понимаю, что у вас за ошибки при инсертах, из-за которых вы батчи повторяете?
  • https://t.me/clickhouse_ru
    @den_crane #60607 04:18 PM, 01 Aug 2018
    >Да, а как иначе если батч не прошел?
    >Replaced движок это борьба с последствиями
    >Одна причина это вьюхи, от них со скрипом отказались и
    >выкручиваемся без них
    все это очень странно, у меня миллиард строк в день, все обвешено вьюхами, проблемы бывают ну раз в году может и то обычно я сам виноват.
  • https://t.me/clickhouse_ru
    @343206394 #60608 04:19 PM, 01 Aug 2018
    ноду стопали?
  • https://t.me/clickhouse_ru
    @den_crane #60609 04:19 PM, 01 Aug 2018
    постоянно и падают и стопаю, я правда не пользуюсь записью через distributed
  • https://t.me/clickhouse_ru
    @343206394 #60610 04:19 PM, 01 Aug 2018
    У меня тоже все работало
    А как начал тустировать что будет если вдруг нода выпадет так ой
  • https://t.me/clickhouse_ru
    я могу конечно и это еще попробовать, но мои ошибки которые я тут выкладываю вроде не намекают что это может быть корень проблем
  • https://t.me/clickhouse_ru
    тут и тут описал
    https://github.com/yandex/ClickHouse/issues/2765
    https://github.com/yandex/ClickHouse/issues/2755
    Deduplication doesn't work if MV exists. #2765

    Hello, we use Materialized Views a lot. There is one problem with them, if you use batch insert and it passes to main table but was rejected by one of MV, whole insert will return exception. Client will retry send batch and again it can ...

  • https://t.me/clickhouse_ru
    @343206394 #60613 04:22 PM, 01 Aug 2018
    Спрашивайте если что нужно дополнительно
  • https://t.me/clickhouse_ru
    @den_crane #60614 04:23 PM, 01 Aug 2018
    так а что с:

    но вы понимаете, что дубликаты replacing может схлопнуть в отдаленном будущем а может и нет, т.е. надо писать запросы правильно к такой таблице чтобы дубликаты скрывать?
  • https://t.me/clickhouse_ru
    @343206394 #60615 04:24 PM, 01 Aug 2018
    Так я ответил что этот движок использовать не будем
  • https://t.me/clickhouse_ru
    @salttan ↶ Reply to #60612 #60616 04:26 PM, 01 Aug 2018
    это уже последствия, а не причина
  • https://t.me/clickhouse_ru
    @343206394 #60617 04:26 PM, 01 Aug 2018
    Без вьюх дубликатов нет (они есть или с вьюхами или если insest_quorum выставить в 2 например, как я написал выше причина видимо одна, неатомарность вставки со вьюхами (это подтверждено разработикми) и с репликами видимо тоже атомарности нет и в одну проходит а в другую нет)
  • https://t.me/clickhouse_ru
    @den_crane #60618 04:26 PM, 01 Aug 2018
    ну все ясно мне, я ни хера не понял.
  • https://t.me/clickhouse_ru
    Не совсем понимаю о какой причине речь идет, я не разработчик КХ, точно указать причину мне сложно.

    Или вы намекаете что стопать ноду не надо и все будет хорошо? К сожалентю в реальности они постоянно ломаються (сервера я имею в виду)
  • https://t.me/clickhouse_ru
    @343206394 #60620 04:29 PM, 01 Aug 2018
    Татьяна я искренне пытаюсь подробно ответить на вашии вопросы, переформулируйте пожадуйста если я отвечаю не на то что вы задали
  • https://t.me/clickhouse_ru
    @salttan #60621 04:29 PM, 01 Aug 2018
    у вас дубликаты, потому что вы вставляете по два раза
    почему вы вставляете по два раза?
  • https://t.me/clickhouse_ru
    @343206394 #60622 04:31 PM, 01 Aug 2018
    потому что в первый раз что-то упало.
    что-то упало в нашем случае например отказ на вставку из-за медленных мержей,
    а они медленный в свою очередь потому как если одна реплика упала то на 2й какие-то танцы происходят
    все что я при этом вижу в системных таблицах и логах я выложил в issue
  • https://t.me/clickhouse_ru
    @343206394 #60623 04:32 PM, 01 Aug 2018
    давайте по пунктам напишу?
  • https://t.me/clickhouse_ru
    @salttan #60624 04:32 PM, 01 Aug 2018
    и вы надеетесь, что дедупликация в КХ не допустит повторной вставки?
  • https://t.me/clickhouse_ru
    @343206394 #60625 04:32 PM, 01 Aug 2018
    конечно
  • https://t.me/clickhouse_ru
    @salttan #60626 04:33 PM, 01 Aug 2018
    и вы вставляете второй раз теми же блоками, какими вставляли в первый?
  • https://t.me/clickhouse_ru
    @343206394 #60627 04:33 PM, 01 Aug 2018
    вроде как есди блоки одинаковые а они такие то не должно проходить
  • https://t.me/clickhouse_ru
    @343206394 #60628 04:33 PM, 01 Aug 2018
    Алексей мой код проверил
  • https://t.me/clickhouse_ru
    @343206394 #60629 04:33 PM, 01 Aug 2018
    Вроде бы не нашел явных багов
  • https://t.me/clickhouse_ru
    @343206394 #60630 04:33 PM, 01 Aug 2018
    Вставляем точно тот же кусок
  • https://t.me/clickhouse_ru
    @343206394 #60631 04:34 PM, 01 Aug 2018
    блок меньше настройки
  • https://t.me/clickhouse_ru
    @343206394 #60632 04:34 PM, 01 Aug 2018
    и это работает но только если нет вьюх и нет синхронной репликации как выяснилось
  • https://t.me/clickhouse_ru
    @salttan #60633 04:35 PM, 01 Aug 2018
    т.е. у вас блоки одинаковые, но их очень много, и вы не помещаетесь в 100 блоков, информацию о которых хранит КХ для дедупликации?
  • https://t.me/clickhouse_ru
    @343206394 #60634 04:35 PM, 01 Aug 2018
    Я не могу ответить на вопрос о корне проблем. Если бы я знал куда мы не помещаемся то я бы постарался это исправить
  • https://t.me/clickhouse_ru
    @343206394 #60635 04:36 PM, 01 Aug 2018
    Вставок около 100 в минуту
  • https://t.me/clickhouse_ru
    @343206394 #60636 04:36 PM, 01 Aug 2018
    по 40-50к строк
  • https://t.me/clickhouse_ru
    @343206394 #60637 04:37 PM, 01 Aug 2018
    Как я понял с вьюхами проблема известная и она не в настройках и блоках
  • https://t.me/clickhouse_ru
    @salttan #60638 04:37 PM, 01 Aug 2018
    вы можете посмотреть, про какие 100 блоков знает КХ, они в Зукипере лежат.
    Но при 100 вставках в минуту я бы не рассчитывала на дедупликацию в КХ
  • https://t.me/clickhouse_ru
    @salttan #60639 04:38 PM, 01 Aug 2018
    проблема с вьюхами не имеет отношения к проблеме дубликатов
  • https://t.me/clickhouse_ru
    @343206394 #60640 04:38 PM, 01 Aug 2018
    Пример
    1. Вставка в осн таблицу прошла
    2. Во вьюху упала
    3. Вернули исключение на клиент
    4. Клиент перевставил
    5. В осн прошла вставка
    Бинго у нас дубликаты
  • https://t.me/clickhouse_ru
    @343206394 #60641 04:39 PM, 01 Aug 2018
    Мне то что я вам выше написал объяснили разработчики
    Если это не так то давайте с вами попробуем понять причину и главно ечто делать
  • https://t.me/clickhouse_ru
    @343206394 #60642 04:39 PM, 01 Aug 2018
    100 можно увеличить как-то до 1000 и проверить?
  • https://t.me/clickhouse_ru
    @salttan #60643 04:42 PM, 01 Aug 2018
    Вставка в таблицу и вью не атомарная, это факт, с этим надо жить.
    Придумайте другой способ обработки ошибок, не вставляйте второй раз.
  • https://t.me/clickhouse_ru
    @343206394 #60644 04:45 PM, 01 Aug 2018
    так я ж без понятия что и куда вставилось а что и куда нет
    если в исключении например будет информация что 1-Т вставилось а Т-П не вставилось и куда (в какую вью или таблицу) то я с удовольствием обработаю
    а без этой информации не представляю как.
  • https://t.me/clickhouse_ru
    при какой частоте вставки можно расчитывать по вашему? попробую повоевать в этом направлении
  • https://t.me/clickhouse_ru
    @ilnur_ibatullin #60646 04:46 PM, 01 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    так то что я по пунктам написал ложное предполажение и дубликаты не из-за этого?
  • https://t.me/clickhouse_ru
    @343206394 #60648 04:54 PM, 01 Aug 2018
    пролейте свет пожалуйста
  • https://t.me/clickhouse_ru
    @salttan ↶ Reply to #60645 #60649 05:05 PM, 01 Aug 2018
    Если вы вставляете раз в минуту, то КХ будет помнить про блок примерно 100 минут.
    Если вы вставляете раз в секунду, то КХ будет помнить про блок примерно 100 секунд.
    Как долго КХ должен помнить про блоки, чтобы вы с уверенностью могли повторять вставку?
  • https://t.me/clickhouse_ru
    @343206394 #60650 05:05 PM, 01 Aug 2018
    идея понятно
  • https://t.me/clickhouse_ru
    @343206394 #60651 05:05 PM, 01 Aug 2018
    спсб
  • https://t.me/clickhouse_ru
    @343206394 #60652 05:06 PM, 01 Aug 2018
    помнит распределенная таблица или каждая локальная?
  • https://t.me/clickhouse_ru
    @salttan #60653 05:06 PM, 01 Aug 2018
    помнит нода в Зукипере, т.е. таблица RepilcatedMergeTree
  • https://t.me/clickhouse_ru
    @salttan #60654 05:07 PM, 01 Aug 2018
    но если вы вставляете в Distributed, как вы можете быть уверены, что у вас блоки одинаковые?
  • https://t.me/clickhouse_ru
    @343206394 #60655 05:08 PM, 01 Aug 2018
    не знаю как ответить но мне пояснили что это не важно
  • https://t.me/clickhouse_ru
    @343206394 #60656 05:09 PM, 01 Aug 2018
    (сейчас переделываю на вставку в локальную таблицу, как я понял вставка должна быть в одну и ту же RepilcatedMergeTree таблицу? есть разница на какую реплику? )
  • https://t.me/clickhouse_ru
    @salttan #60657 05:10 PM, 01 Aug 2018
    нет, у разных реплик одной таблицы нода в Зукипере одна и та же
  • https://t.me/clickhouse_ru
    @343206394 #60658 05:12 PM, 01 Aug 2018
    спсб
  • https://t.me/clickhouse_ru
    @salttan #60659 05:13 PM, 01 Aug 2018
    Но я не могу представить, как могут получиться одинаковые блоки при вставке в Distributed таблицу, которая шардирует по rand()
  • https://t.me/clickhouse_ru
    @343206394 #60660 05:13 PM, 01 Aug 2018
    судя по тому что нода в ЗК одна то и шарда не важна, тоесть можно переслать на любую ноду кластера
    это облегчает
  • https://t.me/clickhouse_ru
    я тут некопенгаген ))
  • https://t.me/clickhouse_ru
    @salttan #60662 05:14 PM, 01 Aug 2018
    нода в ЗК - это первый параметр у ReplicatedMergeTree, по идее на разных шардах он разный должен быть
  • https://t.me/clickhouse_ru
    Вы перевстявляете в ту же шарду или все равно куда?
  • @672556906 #60664 05:48 PM, 01 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @den_crane #60665 06:11 PM, 01 Aug 2018
    я не пользуюсь дедупликацией и вставкой в distibuted поэтому мне параллельно в какой шард и в какую реплику повторять вставку.
  • https://t.me/clickhouse_ru
    @den_crane #60666 06:16 PM, 01 Aug 2018
    я вообще не понимаю откуда такие требования к точности в биг дата, вон дремель возращает результат с 99.7% шардов, ну и точность запроса будет 99.9%, да пофиг.
  • https://t.me/clickhouse_ru
    @den_crane #60667 06:18 PM, 01 Aug 2018
    если надо 100%, храните в mysql
  • https://t.me/clickhouse_ru
    @QuietFelix #60668 06:23 PM, 01 Aug 2018
    Вроде всё-таки big data не включает в себя потерю данных. Ну т.е. у меня, к примеру, ответное непонимание. Продолбать десять лямов записей? Пф, это же биг дата. :)
  • https://t.me/clickhouse_ru
    @343206394 #60669 06:23 PM, 01 Aug 2018
    Спсб за совет. У всех разные кейсы
    Я не вижу что хочу чего-то невероятного
    Просто пытаюсь разобраться
    Если вы уже разобрались я искренне рад
    Мне пока до конца не удалось, перебираю варианты
  • https://t.me/clickhouse_ru
    Я тоже не могу себе позволить такого
    Не всем везет
  • https://t.me/clickhouse_ru
    @den_crane #60671 06:37 PM, 01 Aug 2018
    КХ не гарантирует целостность данных. Там нет Durability (в терминах ACID).
    Поэтому потери гарантированы самим дизайном.
  • https://t.me/clickhouse_ru
    @QuietFelix #60672 06:47 PM, 01 Aug 2018
    Если эти потери прям фактически гарантированы, стоило бы на главной странице рядом с "Не тормозит" большими буквами добавить "и не сохраняет", раз уж ACID так сурово не соблюдается. Но мне пока думается, что всё менее трагично и D теряется в кейсах, которых можно избежать. Правда, их описания в доке поди найди.
  • https://t.me/clickhouse_ru
    @den_crane #60673 06:59 PM, 01 Aug 2018
    хм, а что какая-то буква из ACID соблюдается в КХ ?

    кейс очень простой, делаем insert, видим OK, тут же посылаем kill -9 демону КХ, стартуем и не видим проинсерченного.
  • @ztlpn ↶ Reply to #60673 #60674 07:25 PM, 01 Aug 2018
    Не должно быть такого - после ОК данные должны оказаться хотя бы в кэше файловой системы. Вот если нода целиком внезапно умрет, тогда да.
  • https://t.me/clickhouse_ru
    Емнип, неделю назад тут отвечали, что ответ 200 ОК означает таки сохранение на ноде.
  • @fgwrsfds #60676 07:50 PM, 01 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @AlexAkulov #60677 10:02 PM, 01 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @AlexAkulov #60678 10:04 PM, 01 Aug 2018
    Юзает кто-нибудь Tableau Server на линуксе в связке с ClickHouse?
  • https://t.me/clickhouse_ru
    @AlexAkulov #60679 10:04 PM, 01 Aug 2018
    У меня это говнище нивкакую не заводится
  • https://t.me/clickhouse_ru
    @AlexAkulov #60680 10:05 PM, 01 Aug 2018
    Я ОРУ!
  • @githubreleases_bot #60681 b o t 10:21 PM, 01 Aug 2018
    yandex/ClickHouse was tagged: v18.6.0-stable
    Link: https://github.com/yandex/ClickHouse/releases/tag/v18.6.0-stable
    Release notes:
    Auto version update to [18.6.0] [54401]
    yandex/ClickHouse

    ClickHouse is a free analytic DBMS for big data.

  • 02 August 2018 (105 messages)
  • @pookieShmukie #60684 06:11 AM, 02 Aug 2018
    Как же приятно видеть новый тег и сразу чейнджлог к нему!
  • @599379329 #60685 06:18 AM, 02 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    Господа, пытаюсь получить суммарную скорость чтения с дисков: http://paste.org.ru/?b8oeay
    Либо я что-то не понимаю, либо runningDifference как-то странно работает.
  • https://t.me/clickhouse_ru
    @kmarenov ↶ Reply to #60686 #60687 08:03 AM, 02 Aug 2018
    Попробуйте в подзапросе сделать ORDER BY datetime, а уже над результатом подзапроса выполнить runningDifference
  • https://t.me/clickhouse_ru
    Хм... Так работает. Осталось сделать, чтоб ещё и для N хостов в IN сработало...
  • https://t.me/clickhouse_ru
    @yurikosan #60689 08:32 AM, 02 Aug 2018
    Привет, товарищи.

    Вопрос: в каком случае КХ будет быстрее искать?

    - поиск гуида в строке ( position("guid1,guid2,guid3", "guid2") )

    - поиск гуида в массиве строк ( has(["guid1","guid2","guid3"], "guid2") )
  • https://t.me/clickhouse_ru
    @508124506 #60690 08:33 AM, 02 Aug 2018
    Привет.
    Есть 2 реплики с таблицей ReplicatedMergeTree.
    Хочу выполнить удаление партиции: ALTER TABLE table ON CLUSTER cluster DROP PARTITION 'partition'.
    Возвращается ошибка "Password required for user default".
    Мне понятно что тот сервер, на котором я выполняю запрос не является лидером, но в конфигурации кластера я задал для каждой реплики user и password (к тому же user не называется default). В users.xml так же присутствует используемый пользователь.
    Версия Clickhouse 1.1.54388.
    Подскажите пожалуйста, в чем может быть проблема?
  • https://t.me/clickhouse_ru
    Мы в таком случае заменили гуиды на инты (есть отдельный словарь) и используем второй вариант с массивами
  • https://t.me/clickhouse_ru
    @yurikosan #60692 08:37 AM, 02 Aug 2018
    Тяжело от гуидов уйти к сожалению, все ими пронизано.
  • https://t.me/clickhouse_ru
    @Imaskar ↶ Reply to #60692 #60694 08:39 AM, 02 Aug 2018
    а в 2 uint64 преобразовать не получится?
  • Второй вариант лучше.
  • https://t.me/clickhouse_ru
    как вариант, другими словами 2 uint64 дешевле строкового гуида?

    Я просто помню постулаты КХ - храните строками если надо, он справится
  • https://t.me/clickhouse_ru
    понял.
    предложенные преобразования guid -> int коснутся объема данных точно, а производительность сильно улучшит?
  • https://t.me/clickhouse_ru
    @Imaskar #60698 08:42 AM, 02 Aug 2018
    я не знаю, надо проверять. преобразование-то не бесплатное будет.
  • https://t.me/clickhouse_ru
    @yurikosan #60699 08:44 AM, 02 Aug 2018
    спасибо! буду играться. Начну с 2 варианта, как Алексей предложил.
  • @659680561 #60700 08:53 AM, 02 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @ponyengine #60701 09:00 AM, 02 Aug 2018
    Здравствуйте, а можно ли как-то хранить данные в кх без привязки ко времени?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Да, можно:
    1. не использовать MergeTree (не рекомендуется, скорость запросов не максимальная)
    2. создать таблицу с кастомным партиционированием
  • https://t.me/clickhouse_ru
    @ponyengine #60704 09:04 AM, 02 Aug 2018
    Спасибо большое, ребята!
  • https://t.me/clickhouse_ru
    @yapozdnyakov #60705 09:06 AM, 02 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @proller ↶ Reply to #60679 #60706 09:48 AM, 02 Aug 2018
    Нет. А можно больше инфы что и где не заводится?
  • https://t.me/clickhouse_ru
    @Sablast #60707 10:11 AM, 02 Aug 2018
    Подскажите в 18.6.0 можно сделать JOIN ON таблицы саму на себя?
  • https://t.me/clickhouse_ru
    @Sablast #60708 10:21 AM, 02 Aug 2018
    SELECT
    f.date,
    s.date
    FROM default.rep_price AS f
    ANY LEFT JOIN default.rep_price AS s ON date = second.date

    Received exception from server (version 18.6.0):
    Code: 47. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Unknown identifier: second.date.
  • https://t.me/clickhouse_ru
    @kvapen ↶ Reply to #60708 #60709 10:23 AM, 02 Aug 2018
    а почему second вместо s?
  • https://t.me/clickhouse_ru
    @Sablast #60710 10:23 AM, 02 Aug 2018
    опечатка)
  • https://t.me/clickhouse_ru
    @Sablast #60711 10:23 AM, 02 Aug 2018
    SELECT
    f.date,
    s.date
    FROM default.rep_price AS f
    ANY LEFT JOIN default.rep_price AS s ON date = s.date

    Received exception from server (version 18.6.0):
    Code: 47. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Unknown identifier: s.date.
  • https://t.me/clickhouse_ru
    @Sablast #60712 10:28 AM, 02 Aug 2018
    SELECT *
    FROM test1 AS f
    ANY LEFT JOIN test2 AS s ON f.id = toUInt32(s.id + 1)

    Exception on client:
    Code: 32. DB::Exception: Attempt to read after eof: while receiving packet from localhost:9000, 127.0.0.1
    А вот так вешается сервер - условие ON - заведомо не выполнимо
  • https://t.me/clickhouse_ru
    @makrushin_evgenii #60713 10:34 AM, 02 Aug 2018
    Привет, может кто-нибудь подсказать по подключению mongo-словаря?
    В аттрибутах обязательно необходимо перечислить все колонки таблицы, и должен ли быть object_id частью ключа?
  • https://t.me/clickhouse_ru
    @343206394 #60714 10:34 AM, 02 Aug 2018
    Не подскажите какой официальный способ уменьшить кластер?
  • https://t.me/clickhouse_ru
    @343206394 #60715 10:34 AM, 02 Aug 2018
    Например с 8 шард до 6
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #60690 #60716 10:39 AM, 02 Aug 2018
    Удаление партиции реплицируется, выполните запрос на любой реплике.
  • https://t.me/clickhouse_ru
    @Sablast #60717 10:39 AM, 02 Aug 2018
    с JOIN ON напортачил с движками таблиц, на MergeTree всё корректно работает. Будет ли работать для ReplicatedMergeTree?
  • https://t.me/clickhouse_ru
    @chronovos #60718 10:50 AM, 02 Aug 2018
    Друзья. Не подскажите, существует ли быстрый способ переименования столбца?
    или копирования столбца в новый стобец с удалением старого?
  • https://t.me/clickhouse_ru
    @rheinx ↶ Reply to #60718 #60719 10:57 AM, 02 Aug 2018
    Rename вроде был.
  • https://t.me/clickhouse_ru
    Вижу только для таблиц.
    Для колонок нет. (или невнимательно смотрю)
  • https://t.me/clickhouse_ru
    @Sablast #60721 11:00 AM, 02 Aug 2018
    нету, можно создать дубликат таблицы с переименованным столбцом - залить в него данные и убить исходную
  • https://t.me/clickhouse_ru
    Ок, спасибо большое
  • https://t.me/clickhouse_ru
    Я опустил один важный момент. Конфигурация кластера 2 шарда по 2 реплики. Хотелось одним запросом с любой ноды удалять партицию (одноименная партиция присутствует на обоих шардах).
  • https://t.me/clickhouse_ru
    и на любой реплике это не прокатит, реплика должна быть лидером, иначе ошибка отсутствия пароля для пользователя default
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #60724 #60725 11:17 AM, 02 Aug 2018
    Я думал уже поправили это, у нас просто нет пароля для default и нет проблем )
  • https://t.me/clickhouse_ru
    @marshalov #60727 12:14 PM, 02 Aug 2018
    Ребят, подскажите, диалект hibernate для КХ никто не пилит?
  • https://t.me/clickhouse_ru
    "Пропал дом"
  • https://t.me/clickhouse_ru
    Я бы попробовал 2 вещи:

    1. Руками повставлять в remote таблицы на других серверах, пошардив самому при выборке как-нибудь
    2. Попробовать clickhouse-copier, но я сам не пробовал 🙂
  • https://t.me/clickhouse_ru
    @343206394 #60730 12:17 PM, 02 Aug 2018
    Уже на 2 нацелились
    Попробуем в понедельник
    В четверг что-то сцыкотно ))
    Спсб
  • @mikhainin #60731 12:27 PM, 02 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #60714 #60732 12:30 PM, 02 Aug 2018
    Перестать писать в 2-а шарда, а данные из него перекинуть через distributed таблицу (insert into distributed select from local) в оставшиеся
  • @mikhainin #60733 12:33 PM, 02 Aug 2018
    Всем привет! В system.parts есть два поля - "partition" и "partition_id", хотя в документации описано только первое, а второе вроде-как добавлено относительно недавно. Отсюда 2 вопроса: есть ли в этом скрытый смысл? Стоит ли ожидать, что "partition_id" будет со временем выпилено?
  • @ztlpn #60734 12:37 PM, 02 Aug 2018
    Вот тут в конце немного про разницу есть: https://clickhouse.yandex/docs/ru/operations/table_engines/custom_partitioning_key/
  • @ztlpn #60735 12:39 PM, 02 Aug 2018
    Она становится важна при всяких экзотических выражениях партиционирования. Например партиционируете по строке, тогда partition это будет сама строка, а partition_id - её хэш. И в именах кусков будет именно partition_id.
  • @mikhainin #60736 12:49 PM, 02 Aug 2018
    Благодарю. Если я всё верно понял, что для alter table правильнее использовать значение "partition".
  • @ztlpn #60737 12:56 PM, 02 Aug 2018
    Можно и то и то, как удобнее. Если пишете например ALTER TABLE t DROP PARTITION expr, то expr это константное выражение, значение которого должно быть равно значению partition, которую вы хотите дропнуть. Или можно написать ALTER TABLE t DROP PARTITION ID 'id', если вы вытащили id из имён кусков.
  • @vstakhov #60738 12:57 PM, 02 Aug 2018
    а есть ли какая-то возможность, что у нас после insert into table ... values данные при селекте не видны, а в clickhouse-server.err.log все пусто на этот счет?
  • @myoldloverock #60740 01:35 PM, 02 Aug 2018
    Доброго времени суток! Ребят можете подсказать не могу разобраться, с резервным копированием и восстановлением в КХ. Делаю по вот этой статье https://ruhighload.com/%D0%91%D0%B5%D0%BA%D0%B0%D0%BF+%D0%B8+%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5+%D0%B2+clickhouse. Не могу понять как сделать ATTACH партиций
    Бекап и восстановление в Clickhouse

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

  • https://t.me/clickhouse_ru
    @stufently #60741 01:41 PM, 02 Aug 2018
    Аттач партитион и дата партиции
  • @myoldloverock #60742 01:47 PM, 02 Aug 2018
    А если у меня так выливается?
  • @myoldloverock #60743 01:47 PM, 02 Aug 2018
    ─partition─┬─table─────────────┬─database───┐
    │ 201803 │ test │ production │
    │ 201803 │ test │ production │
    │ 201804 │ test │ production │
    │ 201804 │ test │ production │
    │ 201804 │ test │ production │
    │ 201805 │ test │ production │
    │ 201805 │ test │ production │
    │ 201805 │ test │ production │
    │ 201805 │ test │ production │
    │ 201805 │ test │ production │
    │ 201806 │ test │ production │
    │ 201806 │ test │ production │
    │ 201806 │ test │ production │
    │ 201807 │ test │ production │
    │ 201807 │ test │ production │
    │ 201807 │ test │ production │
    │ 201807 │ test │ production │
    │ 201807 │ test │ production │
    │ 201807 │ test │ production │
    │ 201807 │ test │ production │
    │ 201808 │ test │ production │
    │ 201808 │ test │ production │
    │ 201808 │ test │ production │
    │ 201808 │ test │ production │
    │ 201808 │ test │ production │
    │ 201808 │ test │ production │
    │ 201808 │ test │ production │
    │ 201808 │ test │ production │
    │ 201803 │ test_backup │ production │
    │ 201804 │ test_backup │ production │
    │ 201804 │ test_backup │ production │
    │ 201805 │ test_backup │ production │
    │ 201805 │ test_backup │ production │
    │ 201806 │ test_backup │ production │
    │ 201806 │ test_backup │ production │
    │ 201806 │ test_backup │ production │
    │ 201806 │ test_backup │ production │
    │ 201806 │ test_backup │ production │
  • @myoldloverock #60744 01:47 PM, 02 Aug 2018
    при таком запросе
  • @myoldloverock #60745 01:47 PM, 02 Aug 2018
    SELECT partition, table, database FROM system.parts WHERE active AND database = 'production';
  • https://t.me/clickhouse_ru
    @den_crane #60746 01:50 PM, 02 Aug 2018
    JFYI, в 18й есть регрессия, distinct в MV ломает результат.
    https://github.com/yandex/ClickHouse/issues/2795
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #60742 #60747 03:26 PM, 02 Aug 2018
    А что не так?
  • Я тут вроде разобрался
  • @KciNKh #60749 03:34 PM, 02 Aug 2018
    подскажите что-то поменялось в формате config-file для clickhouse-client?
    старый config.xml файл с настройками перестал отрабатывать после обновления с 1.1.54385 на 18.6.54401, вернее <host>clickhouse-srv1</host> подхватывается а <user>|<password> похоже нет. пытается под default подключиться.
  • https://t.me/clickhouse_ru
    @QuietFelix #60750 03:42 PM, 02 Aug 2018
    Привет.
    В документации Settings сказано, что max_threads "By default, 8".
    В исходнике Settings.h иначе — max_threads, 0, "The maximum number of threads to execute the request. By default, it is determined automatically."
    В документации бага или таки на каком-то этапе max_threads становится 8 (правда, искал и не нашёл)?
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #60750 #60751 03:45 PM, 02 Aug 2018
    SELECT *
    FROM system.settings
    WHERE name = 'max_threads'

    Row 1:
    ──────
    name: max_threads
    value: 20
    changed: 0
    description: The maximum number of threads to execute the request. By default, it is determined automatically.
  • https://t.me/clickhouse_ru
    @QuietFelix #60752 03:46 PM, 02 Aug 2018
    Ага, значит, документация.
  • @KciNKh ↶ Reply to #60749 #60753 03:53 PM, 02 Aug 2018
    host и password применяются из файла, а вот user нет.
    так работает
    clickhouse-client --config-file ./test-ch.xml --user user
    а так не работает
    clickhouse-client --config-file ./test-ch.xml
    ...... DB::Exception: Wrong password for user default.
    что не так?
  • https://t.me/clickhouse_ru
    @MaksymHryhoriev #60754 04:08 PM, 02 Aug 2018
    А нет для словаря функции чтобы вызвать ее по значению атрибута и получить ид?
  • https://t.me/clickhouse_ru
    @MaksymHryhoriev #60755 04:09 PM, 02 Aug 2018
    А то сейчас прикрутил словарь к тестовой таблице и понял что условия where надо либо через ид писать либо вызывать dictGetString на колонке и сравнивать
  • https://t.me/clickhouse_ru
    @den_crane #60756 04:19 PM, 02 Aug 2018
    в общем случае никак. Для некоторых типов словарей можно сделать таблицу с Engine = Dictionary использовать как таблицу.
    Если нужна скорость я бы сделал еще один словарь и там свапнул key -> value.
  • https://t.me/clickhouse_ru
    @MaksymHryhoriev #60757 04:21 PM, 02 Aug 2018
    :( печаль.
  • https://t.me/clickhouse_ru
    @MaksymHryhoriev #60758 04:23 PM, 02 Aug 2018
    А кому не нужна скорость :))) так бы и на постгрес можно остаться
  • https://t.me/clickhouse_ru
    @den_crane #60759 04:24 PM, 02 Aug 2018
    а в чем проблема? В любом случае будет медленно

    select *, getDict( , key, ) fx
    from table
    where fx = ....

    что этак

    select *
    from table
    where getDict( , key, ) = ....
  • https://t.me/clickhouse_ru
    @den_crane #60760 04:25 PM, 02 Aug 2018
    что

    select *
    from table
    where key = (select key from dicttable where = ...)
  • https://t.me/clickhouse_ru
    @den_crane #60761 04:30 PM, 02 Aug 2018
    хотя последнее может и будет быстрее, какой layout у словаря?
  • https://t.me/clickhouse_ru
    @MaksymHryhoriev #60762 04:30 PM, 02 Aug 2018
    Flat
  • https://t.me/clickhouse_ru
    @den_crane #60763 04:32 PM, 02 Aug 2018
    а ну тогда можно

    CREATE TABLE dictTable ( поля) ENGINE = Dictionary('словарь');

    мы просто базу создаем
    create database dict Engine = Dictionary;
    и там все словари будут как таблицы.
  • https://t.me/clickhouse_ru
    @Imaskar #60764 05:12 PM, 02 Aug 2018
    Может MV поверх словаря со свапом v->k?
  • https://t.me/clickhouse_ru
    @count0ru #60765 05:45 PM, 02 Aug 2018
    подскажите, есть odbc датасорс, при помощи isql я к нему подключаюсь, пробую его подключить как словарь и кх его не видит, пишет
    SQLSTATE = IM002
    Native Error Code = 0
    [unixODBC][Driver Manager]Data source name not found, and no default driver specified
  • https://t.me/clickhouse_ru
    @count0ru #60766 05:45 PM, 02 Aug 2018
    второй сервер с таким же датасорсом и аналогичным конфигом работает без проблем
  • https://t.me/clickhouse_ru
    @count0ru #60767 05:45 PM, 02 Aug 2018
    есть подозрение что я упустил что-то в сетапе odbc
  • https://t.me/clickhouse_ru
    @count0ru #60768 05:46 PM, 02 Aug 2018
    и да, ubuntu\postgres
  • @668977694 #60769 06:14 PM, 02 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @proller #60770 06:17 PM, 02 Aug 2018
    а функция odbc ? а как dsn выглядит ?
  • https://t.me/clickhouse_ru
    @count0ru #60771 06:20 PM, 02 Aug 2018
    [dsb]
    Description = PostgreSQL connection
    Driver = PostgreSQL
    Servername = mypostgres.local
    Port = 5432
    UserName = pguser
    Password = pgpass
    Database = mybase
    ReadOnly = True
  • https://t.me/clickhouse_ru
    @count0ru #60772 06:20 PM, 02 Aug 2018
    через isql -n dsb подключаюсь, базу вижу
  • https://t.me/clickhouse_ru
    @count0ru #60773 06:20 PM, 02 Aug 2018
    такое ощущение что именно кликхаус не видит odbc драйвер, или что-то в этом роде
  • https://t.me/clickhouse_ru
    @count0ru #60774 06:25 PM, 02 Aug 2018
    Added unixodbc as a submodule. (#2789) · yandex/ClickHouse@e6be3df

    * Using unixodbc as submodule [#CLICKHOUSE-3] * Using unixodbc as submodule [#CLICKHOUSE-3] * Using unixodbc as submodule [#CLICKHOUSE-3] * Using unixodbc as submodule [#CLICKHOUSE-3] *...

  • https://t.me/clickhouse_ru
    @count0ru #60775 06:26 PM, 02 Aug 2018
    совпадение?
  • @70532431 #60776 08:11 PM, 02 Aug 2018
    А как зафорсить кликхаус после падения зукиперов обращаться к зукиперам? Zookeeper восстановили, а кликхаус продолжает накапливать данные в distributed таблице.
  • https://t.me/clickhouse_ru
    @regorov #60777 08:15 PM, 02 Aug 2018
    Всем привет! вопрос. Сейчас более актуальная документация на английском языке или на русском? или 1:1
  • @70532431 ↶ Reply to #60776 #60778 08:15 PM, 02 Aug 2018
    то есть в MergeTree не грузит - таблицы в read only, собственно как это поправить можно
  • https://t.me/clickhouse_ru
    @matwey_kornilov #60779 08:16 PM, 02 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @salttan ↶ Reply to #60777 #60780 08:34 PM, 02 Aug 2018
    пишут на русском, потом переводят на английский
  • https://t.me/clickhouse_ru
    @salttan ↶ Reply to #60778 #60781 08:36 PM, 02 Aug 2018
    а что в логах?
    попробуйте SYSTEM DROP DNS CACHE
    ну и рестарт всегда помогает
  • @356722520 #60782 08:47 PM, 02 Aug 2018
    Всем привет!
    пытаюсь заменить influxdb на CH с визуализацией в Grafana - и вот какой возник вопрос:
    предположим, есть MergeTree таблица с TimeStamp (DateTime), EventDate (Date) и Millisec (UInt16)
    я хочу визуализировать данные с миллисекундной гранулярностью запросом:

    SELECT
    $timeSeries + Millisec as t,
    avg(MyMetricName)
    FROM $table
    WHERE $timeFilter
    GROUP BY t
    ORDER BY t

    в испекторе получается вот что:

    SELECT (intDiv(toUInt32(TimeStamp), 1) * 1) * 1000 + Millisec as t, avg(MyMetricName) FROM myDB.myTable WHERE EventDate BETWEEN toDate(1531719775) AND toDate(1531794372) AND TimeStamp BETWEEN toDateTime(1531719775) AND toDateTime(1531794372) GROUP BY t ORDER BY t
  • @356722520 #60783 08:50 PM, 02 Aug 2018
    при zoom in в графане на более ччем часовой промежуток поинты пропадают - скорее всего это связано с "where" выражением - там TimeStamp в стандартном epoch timestamp
  • @356722520 #60784 08:51 PM, 02 Aug 2018
    если убрать where - все рисуется как надо, но ожидаемо выгребает запросом все данные в таблице
  • @356722520 #60785 08:51 PM, 02 Aug 2018
    есть какие-нибудь workaround-ы?
  • @70532431 ↶ Reply to #60781 #60786 08:55 PM, 02 Aug 2018
    спасибо, всё снесли и поставили заново 🙂
    покараптились данные в зукипере и кликхаусы после рестарта не стартовали, ругались на зк
  • @70532431 #60787 09:02 PM, 02 Aug 2018
    А может с вершины опыта кто-то может подсказать: мы запустили кластер с шардируемой ReplicatedMergeTree таблицей, но реплика каждого шарда пока в единственном экземлпяре. Зукиперы тоже работают как задел на ближайшее будущее.
    Можно ли будет потом подключить шардам реплики, чтобы они как бы стянули данные с шард и стали полными репликами? Какова процедура добавления реплик, когда была раньше всего одна?
  • https://t.me/clickhouse_ru
    @qweran ↶ Reply to #60787 #60788 09:04 PM, 02 Aug 2018
    Просто создать таблицу, правильно прописав путь в зукипере
  • @70532431 ↶ Reply to #60788 #60789 09:05 PM, 02 Aug 2018
    Благодарю
  • https://t.me/clickhouse_ru
    Создать так же как и первые таблицы. А новая реплика сама подтянет данные, в самом зукипере ничего не надо менять
  • сделайте zoomIN до проблемы и посмотри какой select генерируется, далее запустить руками в CH, если он ничего не отдает то вот и причина. Может вы попадаете в промежуток где графана ожидает данные, а и нет. например вы собираете данные данные раз в сутки а при zoomin у вас отфильтруется только 8 часов(как пример)
  • 03 August 2018 (164 messages)
  • @697225677 #60792 04:32 AM, 03 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @metikovvadim #60793 04:36 AM, 03 Aug 2018
    Привет всем!
    Кто-то пользовался настройкой target-blacklist graphite-clickhouse ?
  • Спасибо, решено заменой на where TimeStamp BETWEEN $from AND $to

    Данные статичные за июль 2018
  • https://t.me/clickhouse_ru
    @regorov #60795 05:20 AM, 03 Aug 2018
    Tatiana, мерси!
  • А почему, если не секрет, хотите уйти от influx?
  • Боттлнеки по цпу на больших выборках
  • Ну и СН видится мне пока более перспективным с точки зрения возможностей по агрегации/аналитике
  • @molchanovdp #60799 05:59 AM, 03 Aug 2018
    Спасибо
  • https://t.me/clickhouse_ru
    Можно ли с ее помощью скрыть саму метрику из поиска?
  • https://t.me/clickhouse_ru
    Добрый день! Зарегистрировался на мероприятие. Должно ли прийти подтверждение?
  • Я недели две ждал апрува, иногда в самый последний день апрув прилетает.
  • https://t.me/clickhouse_ru
    печально. Надо как-то на работе порешать вопрос с отсутствием (я не из Питера), а времени уже остается мало
  • @pookieShmukie #60804 09:01 AM, 03 Aug 2018
    Я сам с Питера и вот в Москву так ездил ) 50% на 50%. Апрув пришел за день до митапа, но в компании были наготове покупать билеты и согласовали командировку.
  • https://t.me/clickhouse_ru
    @EvgenyVinogradov #60805 09:07 AM, 03 Aug 2018
    В той же ситуации, только из Мск ) Очень хотелось бы получить комментарии от сотрудников Яндекса
  • @master_slave_controller #60806 09:34 AM, 03 Aug 2018
    больше вопросов было только в анкете jug.ru для людей которые потратили по 50к чтобы получить свое видео
  • https://t.me/clickhouse_ru
    @nordluf #60807 10:09 AM, 03 Aug 2018
    А нет вариантов как в Табиксе сделать окошко результа во внешнем окошке?
  • https://t.me/clickhouse_ru
    @pokoleniboroda #60808 10:57 AM, 03 Aug 2018
    Коллеги, добрый день!
    А у кого-то удавалось подключить внешний словарь в виде api через http?
    Я прописал все конфиги, есть api, которая возвращает json. Делаю запрос к словарю и в итоге возвращается ошибка вида:

    Code: 27. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Cannot parse input: expected { before: [{"publisher_id": 999, "id": 1}, {"publisher_id": 5, "id": 2}, {"publisher_id": 756, "id": 3}]: (at row 1)

    Т.е. КХ видит api, получает из неё данные, но не может переварить результат. Я конфигах указывал и JSON и JSONEachRow. Ничего не помогает.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #60808 #60809 11:14 AM, 03 Aug 2018
    1) то что видно - это не JSONEachRow точно
    2) дайте весь ответ от API и конфиг словаря
  • https://t.me/clickhouse_ru
    @pokoleniboroda #60810 11:18 AM, 03 Aug 2018
    Запрос: select dictGetString('positions_publishers', 'publisher_id', toUInt64(2))
    Ответ:
    Received exception from server (version 1.1.54370):
    Code: 85. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Format JSON is not suitable for input.

    Конфиг:
    <dictionary>
    <name>positions_publishers</name>
    <source>
    <http>
    <url>http://localhost:8000/campaigns/api/clickhouse/get_publishers</url>
    <format>JSON</format>
    </http>
    </source>
    <layout>
    <flat/>
    </layout>

    <lifetime>
    <min>3</min>
    <max>7</max>
    </lifetime>

    <structure>
    <id>
    <name>id</name>
    </id>
    <attribute>
    <name>publisher_id</name>
    <type>String</type>
    <null_value>0</null_value>
    </attribute>
    </structure>
    </dictionary>
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #60810 #60811 11:21 AM, 03 Aug 2018
    Как минимум publisher_id у вас не String
  • https://t.me/clickhouse_ru
    Об это я споткнулся, когда подключал другой словарь из Postgres через ODBC. В источнике id'шник типа integer, ну и логично было указать в конфиге Int32. Прописал, сохранил, делаю запрос - ошибка на какое-то нессответствие типов. Пробовал разные варианты для этого атрибута: (U)Int16, (U)Int32, (U)Int64. Всё время была ошибка. Помогло только String. Хотя в источнике этот атрибут с типом integer.
  • DB::Exception: Format JSON is not suitable for input.
  • @AlexanderMillin #60814 11:52 AM, 03 Aug 2018
    вам сервер намекает
  • @AlexanderMillin #60815 11:53 AM, 03 Aug 2018
    что format JSON нельзя использовать для input
  • https://t.me/clickhouse_ru
    ммм, так стало быть, КХ не сможет прочитать данные из API?
  • @AlexanderMillin #60819 11:59 AM, 03 Aug 2018
    может, если API отдает данные в формате JSONEachRow
  • @AlexanderMillin #60820 12:01 PM, 03 Aug 2018
    Cannot parse input: expected { before: [{"publisher_id": 999, "id": 1}, {"publisher_id": 5, "id": 2}, {"publisher_id": 756, "id": 3}]: (at row 1)
  • @AlexanderMillin #60821 12:01 PM, 03 Aug 2018
    не должно быть [ вначале
  • @AlexanderMillin #60822 12:01 PM, 03 Aug 2018
    и разделителем данных должен быть перенос строки
  • https://t.me/clickhouse_ru
    @Imaskar #60823 12:02 PM, 03 Aug 2018
    странные ограничения
  • @AlexanderMillin #60824 12:04 PM, 03 Aug 2018
    да и вообще нет смысла отдавать весь массив, нужно отдавать один запрашиваемый элемент по ключу POST запроса
  • @AlexanderMillin #60825 12:04 PM, 03 Aug 2018
    select dictGetString('positions_publishers', 'publisher_id', toUInt64(2)) -> {"publisher_id": 5, "id": 2}
  • https://t.me/clickhouse_ru
    В идеале хотелось бы весь словарь хранить в памяти (layout - flat). При схеме "один запрос к словарю"-"одно обращение к api", если я правильно понимаю, будет много ненужного обращения к api. Т.е. при вставке миллионов строк для обогащения атрибутом publisher_id будут сделаны миллионы запросов к api. Зачем, ведь словарь же можно и памяти хранить.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #60826 #60827 12:13 PM, 03 Aug 2018
    да, лучше все держать в памяти, если данных не сильно много то это вполне терпимо
  • @AlexanderMillin #60828 12:14 PM, 03 Aug 2018
    извините, не обратил внимание что у вас flat. Да, тогда есть смысл весь массив отдать
  • @AlexanderMillin #60829 12:15 PM, 03 Aug 2018
    он массив должен быть в одном из допустимых для input форматов
  • https://t.me/clickhouse_ru
    @pokoleniboroda #60830 12:36 PM, 03 Aug 2018
    В общем, не получилось. Придётся брать данные по ODBC из самой postgres.
    Буду признателен, если кто-нибудь поделется своим решением по поводу api и json.
  • @AlexanderMillin #60831 12:38 PM, 03 Aug 2018
    а что конкретно не получилось?
  • https://t.me/clickhouse_ru
    @pokoleniboroda #60832 12:42 PM, 03 Aug 2018
    Победить сообщение "Cannot parse input: expected { before:" при обращении к словарю.
    Дальше после этого сообщения идёт содержимое ответа api, вот ведь оно, дошло сообщение api. Но я не понимаю почему КХ не может разобрать ответ.
  • https://t.me/clickhouse_ru
    Эта ошибка возникает при обращении к словарю или при релоаде словаря?
  • https://t.me/clickhouse_ru
    @pokoleniboroda #60834 12:54 PM, 03 Aug 2018
    При обращении.
  • https://t.me/clickhouse_ru
    @mihart00 #60835 12:55 PM, 03 Aug 2018
    Joined.
  • @Lednick #60836 12:56 PM, 03 Aug 2018
    Joined.
  • @Lednick #60837 12:59 PM, 03 Aug 2018
    Всем привет! Прошу помощи!
    Code: 47, e.displayText() = DB::Exception: Unknown identifier: createdAt, e.what() = DB::Exception
    При SELECT * FROM coupons WHERE (couponCode = '0200000001') ORDER BY createdAt DESC FORMAT JSON
    запрос кидаю черех smi2/phpClickHouse
    Ошибка вылетает раз в 1-3 запроса, остальные отрабатывают норм, реплик нету, в чём проблема может быть?
  • https://t.me/clickhouse_ru
    @Imaskar #60838 01:01 PM, 03 Aug 2018
    говорит, что столбца createdAt нет в результате
  • https://t.me/clickhouse_ru
    @Imaskar #60839 01:01 PM, 03 Aug 2018
    точнее, в таблице coupons
  • @Lednick #60840 01:01 PM, 03 Aug 2018
    Да, но он есть
  • https://t.me/clickhouse_ru
    @Imaskar #60841 01:02 PM, 03 Aug 2018
    может регистр не совпадает или русская буква затесалась?
  • @Lednick #60842 01:03 PM, 03 Aug 2018
    Ну, оно раз в 3 запроса падает, я думаю оно бы тогда падало постоянно
  • @Lednick #60846 01:08 PM, 03 Aug 2018
    Чекнул всё, всеравно падает иногда, через нативный клиент работает всё, через табикс тоже работает, а вот если с пыхи кидать - падает раз в 3
  • @garikanet #60847 01:09 PM, 03 Aug 2018
    $client->verbose(); вам в помошь, можно попробовать просто через консольный curl
  • https://t.me/clickhouse_ru
    @Imaskar ↶ Reply to #60846 #60848 01:10 PM, 03 Aug 2018
    похоже, придётся дебажить пхп клиент
  • @Lednick #60849 01:11 PM, 03 Aug 2018
    Запросы он кидает одинаковые всегда, дебажил, вот сам сервак возвращает разные ответы всегда
  • @Lednick #60850 01:11 PM, 03 Aug 2018
    Просто это странно, раз в 2-3 запроса падает, остальные норм отдаёт
  • https://t.me/clickhouse_ru
    @Imaskar #60851 01:13 PM, 03 Aug 2018
    if (source.agent==php) suffer();
  • @Lednick ↶ Reply to #60851 #60852 01:14 PM, 03 Aug 2018
    Было бы смешно, если бы не было так грустно)))
  • https://t.me/clickhouse_ru
    @count0ru #60853 01:18 PM, 03 Aug 2018
    @milovidov_an Алексей, подскажите, в настройке словарей через odbc в версиях 18.1.хх что-то менялось? После обновления перестали работать словари - не может найти датасорс. Откатили на 1.1.54394 - все опять заработало
  • https://t.me/clickhouse_ru
    Видимо API все таки возвращает JSON, а не JSONEachRow.
    Мы у себя добились JSONEachRow с помощью реализации кастомного форматтера для ответа из API.
    Если ваш API возвращает все таки JSONEachRow - попробуйте сделать RELOAD словаря и посмотреть в системной таблице словарей последнюю ошибку.
  • https://t.me/clickhouse_ru
    Ну и в конфигурации словаря соответственно надо проверить, что указан формат JSONEachRow
  • https://t.me/clickhouse_ru
    @mihart00 #60856 01:26 PM, 03 Aug 2018
    Доброго дня всем!
    Возникла ситуация: кончилось место на диске.
    Этот факт был отмечен в логах clickhouse, в то время, как он сам перестал отвечать на попытки подключиться к нему.
    Потом место мы освободили, сервер перезапустили, но clickhouse все равно на попытки подключиться отвечает:

    ClickHouse client version 1.1.54236.
    Connecting to localhost:9000.
    Code: 210. DB::NetException: Connection refused: (localhost:9000, ::1)

    В чем может быть проблема?
  • https://t.me/clickhouse_ru
    @Imaskar #60857 01:27 PM, 03 Aug 2018
    вроде логичнее было бы просто json сделать
  • Проверьте DNS - что IP всегда сервера, и что database('name') - всегда указан, может есть еще база с такой таблицей
    SELECT * FROM coupons.coupons WHERE (couponCode = '0200000001') ORDER BY createdAt
    И самый простой вариант - это через простой Curl подергать CH без PHP
  • https://t.me/clickhouse_ru
    Смотрите что КХ пишет в логах, возможно он ещё не стартанул
  • @novikovantonio #60860 01:27 PM, 03 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    Мне удалось буквально только что сделать так, что бы КХ понимал простой json. Т.е. API отдаёт {'publisher_id': '999', 'id': '1'} и запрос SELECT dictGetString('positions_publishers', 'publisher_id', toUInt64(1)) отрабатывает без ошибки и возвращает 999.
    А если на стороне api формирую список словарей (python) и отдаю, то опять возникает ошибка "Cannot parse input: expected { before: ...".
    Т.е., видимо, что-то на стороне api при конвертировании питоновского списка словарей не так.
  • https://t.me/clickhouse_ru
    @mihart00 #60862 01:28 PM, 03 Aug 2018
    Вот то, что клик пишет в лог при запуске
  • https://t.me/clickhouse_ru
    @mihart00 #60863 01:29 PM, 03 Aug 2018
    Я там ничего подозрительного не увидел
  • https://t.me/clickhouse_ru
    Попробуйте через Postman обратиться к своему API и посмотреть какие данные возвращаются. Если это список объектов, типа: [{...}, {...}, ...], то в этом и есть проблема, т.к. с этим форматом Clickhouse не работает. Надо избавляться от [] и использовать разделитель перенос строки, вместо запятой.
  • https://t.me/clickhouse_ru
    используйте TSV или CSV вместо json
  • https://t.me/clickhouse_ru
    @den_crane #60866 01:38 PM, 03 Aug 2018
    select 999 publisher_id, 1 id
    union all
    select 5 publisher_id, 2 id
    union all
    select 756 publisher_id, 3 id
    format JSONEachRow

    вот что ожидает КХ
    {"publisher_id":999,"id":1}
    {"publisher_id":756,"id":3}
    {"publisher_id":5,"id":2}
  • https://t.me/clickhouse_ru
    @den_crane #60867 01:42 PM, 03 Aug 2018
    Обычный json слишком медленный для парсинга, видимо разработчики тратить время на него не хотят.
  • https://t.me/clickhouse_ru
    @pokoleniboroda #60868 01:44 PM, 03 Aug 2018
    Получилось!
  • https://t.me/clickhouse_ru
    @regorov #60869 01:44 PM, 03 Aug 2018
    Ребят, а не было какой нить инструкции пошаговой, как dictionary подключить через odbc. Например файл с описанием внешнего словаря надо создать это я понял, а котом его где нибудь надо в config.xml прописывать? или он и так поймет?
  • https://t.me/clickhouse_ru
    @regorov #60870 01:44 PM, 03 Aug 2018
    то что сейчас есть https://clickhouse.yandex/docs/ru/operations/table_engines/dictionary/, не очевидно имхо. Я бы внес изменения даже как PR, но хотя бы понять куда копать.
  • https://t.me/clickhouse_ru
    Сейчас вышлю
  • https://t.me/clickhouse_ru
    @pokoleniboroda #60872 01:45 PM, 03 Aug 2018
    Мой api в итоге отправляет такой ответ b'[{"publisher_id": "999", "id": "1"}, {"publisher_id": "5", "id": "2"}, {"publisher_id": "756", "id": "3"}]'
  • https://t.me/clickhouse_ru
    @pokoleniboroda #60873 01:45 PM, 03 Aug 2018
    Надо было просто убрать квадратные скобки
  • https://t.me/clickhouse_ru
    @regorov ↶ Reply to #60871 #60874 01:48 PM, 03 Aug 2018
    Спасибо!
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @pokoleniboroda #60876 01:56 PM, 03 Aug 2018
    Инструкция писалась для себя, наспех зареплейсил свои внутреннии названия в ней, так что может сразу что-то не сойтись, но смысл, надеюсь, должен быть понятным.
  • @Lednick ↶ Reply to #60858 #60877 01:59 PM, 03 Aug 2018
    Прочекал всё, попробовал всё дропнуть и заново создать, теперь
    Code: 49, e.displayText() = DB::Exception: Could not find a column of minimum size in MergeTree, part /var/lib/clickhouse/data/coupon/coupons/20180803_20180803_1_6_1/, e.what() = DB::Exception
  • @Lednick #60878 01:59 PM, 03 Aug 2018
    Может знает кто в чём дело?
  • https://t.me/clickhouse_ru
    @madm1ke #60879 02:01 PM, 03 Aug 2018
    Привет.
    После обновления кластера до актуальной версии на одной из реплик появилась проблема с мерджем очень старых данных. Мердж идет, в итоге возникает ошибка - и он повторяется заново, в цикле. Почему-то с другой реплики этот part не скачивается. На второй реплике этого шарда никаких проблем нет.

    2018.08.03 16:56:02.583570 [ 12 ] <Error> SrcData.TTStatBase (StorageReplicatedMergeTree): Code: 40, e.displayText() = DB::Exception: Checksums of parts don't match: hash of uncompressed files doesn't match, uncompressed hash of compressed files doesn't match, e.what() = DB::Exception. Data after merge is not byte-identical to data on another replicas. There could be several reasons: 1. Using newer version of compression library after server update. 2. Using another compression method. 3. Non-deterministic compression algorithm (highly unlikely). 4. Non-deterministic merge algorithm due to logical error in code. 5. Data corruption in memory due to bug in code. 6. Data corruption in memory due to hardware issue. 7. Manual modification of source data after server startup. 8. Manual modification of checksums stored in ZooKeeper. We will download merged part from replica to force byte-identical result.

    Вот выдержка из лога по этому треду.

    2018.08.03 16:56:02.352540 [ 12 ] <Debug> SrcData.TTStatBase (MergerMutator): Merge sorted 118552713 rows, containing 166 columns (6 merged, 160 gathered) in 234.24 sec., 506113.87 rows/sec., 649.20 MB/sec.
    2018.08.03 16:56:02.356438 [ 12 ] <Trace> SrcData.TTStatBase (Data): Renaming temporary part tmp_merge_201709_63076_64611_5 to 201709_63076_64611_5.
    2018.08.03 16:56:02.356510 [ 12 ] <Trace> SrcData.TTStatBase (MergerMutator): Merged 3 parts: from 201709_63076_63675_4 to 201709_64197_64611_4
    2018.08.03 16:56:02.583501 [ 12 ] <Debug> SrcData.TTStatBase (Data): Undoing transaction. Removing parts: 201709_63076_64611_5.
    2018.08.03 16:56:02.583570 [ 12 ] <Error> SrcData.TTStatBase (StorageReplicatedMergeTree): Code: 40, e.displayText() = DB::Exception: Checksums of parts don't match: hash of uncompressed files doesn't match, uncompressed hash of compressed files doesn't match, e.what() = DB::Exception. Data after merge is not byte-identical to data on another replicas. There could be several reasons: 1. Using newer version of compression library after server update. 2. Using another compression method. 3. Non-deterministic compression algorithm (highly unlikely). 4. Non-deterministic merge algorithm due to logical error in code. 5. Data corruption in memory due to bug in code. 6. Data corruption in memory due to hardware issue. 7. Manual modification of source data after server startup. 8. Manual modification of checksums stored in ZooKeeper. We will download merged part from replica to force byte-identical result.
    2018.08.03 16:56:02.583670 [ 12 ] <Debug> MemoryTracker: Peak memory usage: 39.87 MiB.
    2018.08.03 16:56:02.753503 [ 12 ] <Debug> SrcData.TTStatBase (StorageReplicatedMergeTree): Part 201709_63076_64611_5 (state Outdated) should be deleted after previous attempt before fetch
    2018.08.03 16:56:02.753556 [ 12 ] <Trace> SrcData.TTStatBase (StorageReplicatedMergeTree): Executing log entry to merge parts 201709_63076_63675_4, 201709_63676_64196_4, 201709_64197_64611_4 to 201709_63076_64611_5
    2018.08.03 16:56:02.753587 [ 22 ] <Trace> SrcData.TTStatBase (Data): Found 1 old parts to remove.
    2018.08.03 16:56:02.753614 [ 12 ] <Debug> SrcData.TTStatBase (MergerMutator): Merging 3 parts: from 201709_63076_63675_4 to 201709_64197_64611_4 into tmp_merge_201709_63076_64611_5
    2018.08.03 16:56:02.753622 [ 22 ] <Debug> SrcData.TTStatBase (StorageReplicatedMergeTree): Removing 1 old parts from ZooKeeper
    2018.08.03 16:56:02.755014 [ 12 ] <Debug> SrcData.TTStatBase (MergerMutator): Selected MergeAlgorithm: Vertical
    2018.08.03 16:56:02.755235 [ 12 ] <Trace> MergeTreeBlockInputStream: Reading 1 ranges from part 201709_63076_63675_4, approx. 46530560 rows starting from 0
  • https://t.me/clickhouse_ru
    @madm1ke #60880 02:01 PM, 03 Aug 2018
    2018.08.03 16:56:02.755405 [ 12 ] <Trace> MergeTreeBlockInputStream: Reading 1 ranges from part 201709_63676_64196_4, approx. 40615936 rows starting from 0
    2018.08.03 16:56:02.755483 [ 12 ] <Trace> MergeTreeBlockInputStream: Reading 1 ranges from part 201709_64197_64611_4, approx. 31416320 rows starting from 0
  • Seems like the problem was 2 instances of clickhouse-server running at the same time. Not sure how I got to this scenario...
    https://groups.google.com/forum/#!topic/clickhouse/chYoOYgcxoQ
    тут чате тоже есть про Could not find a column of minimum size
  • https://t.me/clickhouse_ru
    @madm1ke ↶ Reply to #60879 #60882 02:09 PM, 03 Aug 2018
    Что с этим можно сделать? Рестарт CH не помогает. Версии CH на репликах сейчас идентичны, но в процессе апдейта некоторое время были разными, конечно.
  • https://t.me/clickhouse_ru
    @regorov ↶ Reply to #60876 #60883 02:11 PM, 03 Aug 2018
    Спасибо. Да, тут гораздо больше надо действий чем написано в доке.
  • Подтверждения присылаются не сразу, а периодически - сразу пачкой.
  • https://t.me/clickhouse_ru
    а в течение какого периода можно ожидать?
  • Да, в 18.6.0 попали изменения с фильтрацией connection string. Поставьте пока 18.5.1.
  • До 15 августа.
  • https://t.me/clickhouse_ru
    спасибо
  • https://t.me/clickhouse_ru
    @count0ru ↶ Reply to #60886 #60890 02:27 PM, 03 Aug 2018
    спасибо
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #60892 02:34 PM, 03 Aug 2018
    Кто-нибудь использует alias для JOIN?
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #60893 02:34 PM, 03 Aug 2018
    Возвращает не совсем то, что ожидается
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #60894 02:35 PM, 03 Aug 2018
    При этом если указать так
    SELECT
    *, d.*, d.values

    Тогда d.values вернёт то что нужно. Выглядит как баг
  • @vstakhov #60895 02:38 PM, 03 Aug 2018
    а есть ли возможность сохранить метаданные таблицы, например, версию схемы, чтобы сделать какие-то миграции?
  • https://t.me/clickhouse_ru
    @Alesapin ↶ Reply to #60894 #60896 02:39 PM, 03 Aug 2018
    Звездочка будет переделываться, сейчас работает странно в джойнах... пока лучше явно указывать нужные колонки
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #60897 02:39 PM, 03 Aug 2018
    Просто совсем недавно, условно месяц назад, такого поведения не было
  • https://t.me/clickhouse_ru
    @Alesapin #60898 02:40 PM, 03 Aug 2018
    Не может быть)
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #60899 02:40 PM, 03 Aug 2018
    Мне создать issue?
  • https://t.me/clickhouse_ru
    @mihart00 #60900 02:40 PM, 03 Aug 2018
    Еще раз всем привет, я пока не смог решить проблему, но обнаружил интересный эффект. Если я залезу в /var/lib/clickhouse/data и перенесу папку с данными самой активно пользуемой базы куда-нибудь, то проблем при запуске не возникает и в логе появляются строки:

    2013.05.15 04:02:00.275454 [ 1 ] <Information> Application: Listening http://[::0.0.0.0]:8123
    2013.05.15 04:02:00.275647 [ 1 ] <Information> Application: Listening tcp: [::0.0.0.0]:9000
    2013.05.15 04:02:00.275825 [ 1 ] <Information> Application: Listening interserver: [::0.0.0.0]:9009
    2013.05.15 04:02:00.276018 [ 1 ] <Information> Application: Ready for connections.

    Если вернуть на место, проблемы возвращаются. Что это может значить?
  • https://t.me/clickhouse_ru
    @Alesapin ↶ Reply to #60899 #60901 02:40 PM, 03 Aug 2018
    Вот очень похожее https://github.com/yandex/ClickHouse/issues/2786 и там даже PR предложили.
    Unexpected SELECT * with Join #2786

    Steps to reproduce the behavior SELECT * FROM (SELECT 1 AS id, 2 AS value) ANY INNER JOIN (SELECT 1 AS id, 2 AS values) USING id; Expected Result 1 2 2 Actual Result 1 2

  • https://t.me/clickhouse_ru
    @Alesapin ↶ Reply to #60900 #60902 02:46 PM, 03 Aug 2018
    А в логе больше ничего нет, кроме того, что ты приложил?
  • https://t.me/clickhouse_ru
    @mihart00 ↶ Reply to #60902 #60904 02:47 PM, 03 Aug 2018
    Нет
  • https://t.me/clickhouse_ru
    @mihart00 ↶ Reply to #60902 #60905 02:49 PM, 03 Aug 2018
    На этом месте он задумываетсяя (если запускать клик из консли) и при попытке остановить его (ctrl+c) пишет в лог

    <Information> Application: Received termination signal (Interrupt)

    И не останавливается. При повторном нажатии пишет

    2013.05.15 04:08:22.359170 [ 5 ] <Information> Application: Received termination signal (Interrupt)
    2013.05.15 04:08:22.359205 [ 5 ] <Information> Application: Received second signal Interrupt. Immediately terminate.

    И после этого уже умирает
  • https://t.me/clickhouse_ru
    @Alesapin #60906 02:50 PM, 03 Aug 2018
    Это поведение ожидаемо. Но конечно без gdb'ы/strace'a тут сложно понять, почему он задумывается и что он там делает.
  • @Lednick ↶ Reply to #60881 #60907 02:51 PM, 03 Aug 2018
    Спасибо, помогло
  • @694906624 #60908 02:53 PM, 03 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @mihart00 ↶ Reply to #60906 #60910 03:04 PM, 03 Aug 2018
    Самая нагруженная таблица - energomonitor
  • https://t.me/clickhouse_ru
    @Alesapin #60911 03:04 PM, 03 Aug 2018
    И при таком трейсе ничего в логах?!
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @mihart00 #60913 03:09 PM, 03 Aug 2018
    Лог с того момента, как я использовал strace
  • https://t.me/clickhouse_ru
    @mihart00 #60914 03:10 PM, 03 Aug 2018
    Не считая сообщений о том. как я его в конце "убивал"
  • https://t.me/clickhouse_ru
    @Alesapin #60915 03:13 PM, 03 Aug 2018
    А почему версия, которой уже почти 1.5 года? Если честно, с такой древностью разбираться сложно совсем.
  • https://t.me/clickhouse_ru
    @den_crane #60916 03:13 PM, 03 Aug 2018
    fsck делали?
  • https://t.me/clickhouse_ru
    @den_crane #60917 03:13 PM, 03 Aug 2018
    что sar -d 1 100
    показывает в момент старта КХ?
  • https://t.me/clickhouse_ru
    @mihart00 ↶ Reply to #60915 #60918 03:22 PM, 03 Aug 2018
    Хм, это странно. Вопрос тогда снимается, пока мы версию не обновим.
  • https://t.me/clickhouse_ru
    @mihart00 ↶ Reply to #60916 #60919 03:22 PM, 03 Aug 2018
    Сделаем
  • https://t.me/clickhouse_ru
    @mihart00 ↶ Reply to #60917 #60920 03:23 PM, 03 Aug 2018
    Это где, я не нашел такого
  • https://t.me/clickhouse_ru
    @den_crane #60921 03:24 PM, 03 Aug 2018
    это команда/софтина в юниксе, показывает нагрузку, в данном случае -d диски
  • https://t.me/clickhouse_ru
    @den_crane #60922 03:26 PM, 03 Aug 2018
    я подозреваю что вы просто не дожидаетесь пока КХ прочитает с диска файлы, или с дисками проблемы и будут запредельные числа в столбиках svctm и await
    15:24:40 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
    15:24:40 dev8-0 0.00 0.00 0.00 0.00 0.40 0.00 0.00 40.00
    15:24:40 dev8-16 0.00 0.00 0.00 0.00 0.40 0.00 0.00 40.00
  • https://t.me/clickhouse_ru
    @mihart00 #60923 03:27 PM, 03 Aug 2018
    Я понял, возможно. Хорошо, спасибо, это тоже проверим.
  • https://t.me/clickhouse_ru
    @Alesapin ↶ Reply to #60922 #60924 03:30 PM, 03 Aug 2018
    Впринципе да, последняя запись в логе, что он как раз начинает грузить табличку. На текущей версии там идёт логирование, которое как-то описывает процесс, было бы более наглядно.
  • https://t.me/clickhouse_ru
    @den_crane #60925 03:33 PM, 03 Aug 2018
    и fsck надо сделать, потому что там возможно получились бесконечные файлы из нулей в конце.
  • https://t.me/clickhouse_ru
    @QuietFelix #60926 03:36 PM, 03 Aug 2018
    Вопрос по нативному протоколу и пакету Data. В клиенте в Connection::receiveData есть readStringBinary(external_table_name, *in). Но на сервере TCPHandler::sendData туда пишет пустую строку: writeStringBinary("", *out).
    Есть ли в этом какой-то смысл? Или остаток непригодившейся фичи?
  • https://t.me/clickhouse_ru
    @evikbook #60927 03:39 PM, 03 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @molo4ko007 #60928 03:45 PM, 03 Aug 2018
    Привет
    Если пользоваться хттп-словарем, насколько сильно заметно разницу в производительности по сравнению в файлом? хттп-сервис “рядом”, скорость “не ограничена”.
  • https://t.me/clickhouse_ru
    @molo4ko007 #60929 03:46 PM, 03 Aug 2018
    Кэшируются ли такие словари?
  • https://t.me/clickhouse_ru
    @nordluf #60930 03:46 PM, 03 Aug 2018
    Подскажите пожалуйста, а как сделать что-то вроде emptyArrayTuple() ?
  • https://t.me/clickhouse_ru
    @orantius #60931 03:48 PM, 03 Aug 2018
    select cast([] as Array(Tuple(Int8)))
  • https://t.me/clickhouse_ru
    @Alesapin ↶ Reply to #60929 #60932 03:49 PM, 03 Aug 2018
    В зависимости от типа — cached/hashed
  • https://t.me/clickhouse_ru
    @nordluf ↶ Reply to #60931 #60933 03:50 PM, 03 Aug 2018
    спасибо
  • https://t.me/clickhouse_ru
    с файлом? в смысле словарь vs КХ таблица?
    словарь быстрее для рандомного доступа
  • @nnn_roman #60936 03:56 PM, 03 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @molo4ko007 #60937 03:57 PM, 03 Aug 2018
    Ок, спасибо.
  • https://t.me/clickhouse_ru
    @nordluf ↶ Reply to #58059 #60938 04:11 PM, 03 Aug 2018
    А есть возможность попросить о фиче в новый табикс? Очень не хватает возможности выносить окощке результата в другое окно, чтобы былоа как в хроме, когда дебаггер и страница в разных окнах. Ну или показывать его справа, как предпросмотр сейчас сделан.
    Не хватает высоты окна редактирования :(
  • Нарисуйте issue сделаю)
  • https://t.me/clickhouse_ru
    @nordluf ↶ Reply to #60939 #60941 04:13 PM, 03 Aug 2018
    спасибо
  • https://t.me/clickhouse_ru
    @leidruid #60943 04:25 PM, 03 Aug 2018
    А альфа уже юзабельная ?
  • Нет((
  • https://t.me/clickhouse_ru
    @asavitskyi #60945 04:57 PM, 03 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @asavitskyi #60946 04:58 PM, 03 Aug 2018
    ПОдскажите как сделать запрос с like вида
    SELECT
    Time, OpenTime, CloseTime
    FROM db.test
    Where Time LIKE('2018-08-01%’)
    ORDER BY (Time, TimeMillisecond) DESC
  • https://t.me/clickhouse_ru
    @BushkovDm #60947 05:10 PM, 03 Aug 2018
    Как-то так)
    SELECT
    Time, OpenTime, CloseTime
    FROM db.test
    Where Time LIKE '2018-08-01%’
    ORDER BY (Time, TimeMillisecond) DESC
  • https://t.me/clickhouse_ru
    @vstepankov #60948 05:11 PM, 03 Aug 2018
    вот это поворот
  • https://t.me/clickhouse_ru
    получаю - Error running query: Code: 43, e.displayText() = DB::Exception: Illegal type DateTime of argument of function like, e.what() = DB::Exception
  • https://t.me/clickhouse_ru
    Он ругается на тип колонки Time. Можно кастануть ее в строку:
    where toString(Time) like '2018-08-01 %'
  • https://t.me/clickhouse_ru
    спасибо!
  • https://t.me/clickhouse_ru
    @den_crane #60952 05:33 PM, 03 Aug 2018
    это удар по перфомансу.

    Time between '2018-08-01 00:00:00' and '2018-08-01 23:59:59'
    или
    toYYYYMMDD(Time) = '2018-08-01'
  • https://t.me/clickhouse_ru
    @BushkovDm #60953 05:33 PM, 03 Aug 2018
    вот-вот, как раз хотел спросить, какой тип у колонки Time
  • https://t.me/clickhouse_ru
    @den_crane #60955 06:18 PM, 03 Aug 2018
    >toYYYYMMDD(Time) = '2018-08-01'
    и удивительно, КХ единственная известная мне БД, где такой вариант заооптимизирован, остальные субд не парятся разворотом хешфункций.
  • https://t.me/clickhouse_ru
    Если судить по названию, кажется, что функция должна вернуть '20180801')
    Я такой, честно говоря, даже не знал и гонял between
  • @milovidov_an #60957 07:31 PM, 03 Aug 2018
    toDate(Time)
  • https://t.me/clickhouse_ru
    а ну правильно, а toYYYYMMDD видимо для кастомного партиционирования сделали

    select * from (select toDateTime('2018-01-01 01:01:01') a)
    where
    toYYYYMMDD(a) = 20180101 and
    toDate(a) = '2018-01-01'

    я тоже везде пишу between, но вообще-то индекс работает с toYYYYMMDD и с toDate

    отбрасывание партиций еще страннее, партиционировали скажем по floor(x/100), у каждой партиции есть атрибуты max(x) и min(x), поэтому в запросе для оптимизации выбора партиции пишем where x=5, вместо привычных мне floor(x/100)= floor(5/100), это взрывает мне мозг.
  • Пришлось много менять в UI/ux, все переделывать - но мне кажется лучше получается, "подразню" скином сравнением https://monosnap.com/file/1kn68QAl34wPAc2Jl3mWMi4i0IMIZw
  • https://t.me/clickhouse_ru
    @notmaxx #60960 08:21 PM, 03 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @leidruid ↶ Reply to #60959 #60961 08:43 PM, 03 Aug 2018
    👍
  • https://t.me/clickhouse_ru
    @regorov #60962 10:13 PM, 03 Aug 2018
    Робяты, если у меня в dictionary внешнем (Postgres через ODBC) есть поле Timestamp, которое так же может быть NULL. Как его правильно оформить в <attribute></attribute> что бы не ругался? Ну и видимо конвертация нужна. Использовать <expression></expression> или есть какой то другой идиоматический способ?
  • https://t.me/clickhouse_ru
    <null_value>0000-00-00 00:00:00</null_value>
  • https://t.me/clickhouse_ru
    @regorov #60965 10:33 PM, 03 Aug 2018
    Спасибо, попробую
  • Посмотрите также expression:
    https://clickhouse.yandex/docs/ru/single/#_115

    Может быть можно подставить COALESCE(Timestamp, ...)
  • 04 August 2018 (19 messages)
  • @636009276 #60967 12:42 AM, 04 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Civiloid ↶ Reply to #60325 #60968 06:11 AM, 04 Aug 2018
    Он скорее как бэкэнд для чего то что можно назвать tsdb. А так на Вики вообще мало баз самих больше 50 только в opensource
  • @652078594 #60969 10:34 AM, 04 Aug 2018
    Joined.
  • @Antonprk #60970 02:07 PM, 04 Aug 2018
    Добрый день.
    Столкнулся с ошибкой и не понимаю куда рыть дальше. Помогите пожалуйста понять:
    Создаю вьюху
    CREATE MATERIALIZED VIEW IF NOT EXISTS db1.r_test_transactions ON CLUSTER comparatio_cloud
    ENGINE = ReplicatedReplacingMergeTree('/clickhouse/db1/tables/r_test_transactions', '{replica}', DATE, (ED1_ID, CO1_ID), 8192, ED1_UPLOAD_TIMESTAMP) AS
    SELECT *
    FROM db1.rtest_transactions

    ┌─host────┬─port─┬─status─┬─error─┬─num_hosts_remaining─┬─num_hosts_active─┐
    │ ch-srv1 │ 9000 │ 0 │ │ 1 │ 0 │
    │ ch-srv2 │ 9000 │ 0 │ │ 0 │ 0 │
    └─────────┴──────┴────────┴───────┴─────────────────────┴──────────────────┘

    2 rows in set. Elapsed: 0.108 sec.

    Вставляю данные
    ip-172-31-16-11.us-west-2.compute.internal :) insert into db1.rtest_transactions select * from db1.rtest_transactions;

    INSERT INTO db1.rtest_transactions SELECT *
    FROM db1.rtest_transactions

    Ok.

    0 rows in set. Elapsed: 0.001 sec.

    на втором сервере делаю ip-172-31-16-10.us-west-2.compute.internal :) optimize table db1.r_test_transactions;

    OPTIMIZE TABLE db1.r_test_transactions

    Received exception from server (version 18.6.0):
    Code: 194. DB::Exception: Received from localhost:9000, ::1. DB::Exception: Received from ch-srv2:9000, 172.31.16.11. DB::Exception: Password required for user default.

    0 rows in set. Elapsed: 0.079 sec.
  • @Antonprk #60971 02:08 PM, 04 Aug 2018
    нее может подключиться, если сделать наоброт, на первом сервере создать вьюху, на первом все работает, на втором OPTIMIZE не работает
  • @70532431 #60972 07:16 PM, 04 Aug 2018
    Добрый вечер! У меня в Зукипере, с которым работает только КХ, накопилось уже 11 лог-файлов, хотя в конфиге зукипера указано ротировать по 10 (autopurge.snapRetainCount).

    root@east-dwarf-zk1:/var/zookeeper/logs/version-2# ls -lh
    total 19G
    -rw-r--r-- 1 zookeeper zookeeper 1.2G Aug 3 09:43 log.10019933c
    -rw-r--r-- 1 zookeeper zookeeper 1.7G Aug 3 15:51 log.10030917f
    -rw-r--r-- 1 zookeeper zookeeper 2.1G Aug 3 23:25 log.100519d74
    -rw-r--r-- 1 zookeeper zookeeper 2.3G Aug 4 03:52 log.1007ad569
    -rw-r--r-- 1 zookeeper zookeeper 2.3G Aug 4 07:40 log.100a742c0
    -rw-r--r-- 1 zookeeper zookeeper 1.7G Aug 4 10:07 log.100d4c983
    -rw-r--r-- 1 zookeeper zookeeper 2.3G Aug 4 12:43 log.100f41aa2
    -rw-r--r-- 1 zookeeper zookeeper 1.3G Aug 4 14:52 log.10120bd50
    -rw-r--r-- 1 zookeeper zookeeper 1.7G Aug 4 17:30 log.10139afc5
    -rw-r--r-- 1 zookeeper zookeeper 1.3G Aug 4 19:28 log.1015a31d4
    -rw-r--r-- 1 zookeeper zookeeper 1.9G Aug 4 22:12 log.10173df82

    root@east-dwarf-zk1:/var/zookeeper/logs/version-2# cat /opt/zookeeper/conf/zoo.cfg
    autopurge.purgeInterval=1
    maxSessionTimeout=60000000
    dataDir=/var/zookeeper/data
    4lw.commands.whitelist=*
    syncLimit=10
    dataLogDir=/var/zookeeper/logs
    reconfigEnabled=true
    leaderServes=yes
    standaloneEnabled=false
    skipACL=yes
    autopurge.snapRetainCount=10
    tickTime=2000
    initLimit=30000
    snapCount=3000000
    preAllocSize=131072
    maxClientCnxns=2000
    dynamicConfigFile=/opt/zookeeper/conf/zoo.cfg.dynamic.100000000

    Подскажите, плиз, нормальная ли это ситуация? Зукиперы запускались с такими конфигами, ничего после запуска не дописывалось, т.е. всё по идее должно быть применено.
  • @70532431 #60973 07:18 PM, 04 Aug 2018
    О, только что создался и начал писаться 12 файл лога =)
  • https://t.me/clickhouse_ru
    @125885693 #60974 07:23 PM, 04 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @den_crane #60975 07:26 PM, 04 Aug 2018
    Снепшоты и логи не одно и тоже.
  • @70532431 #60976 07:27 PM, 04 Aug 2018
    При этом зукипер видит настройки. Версия 3.5.3.

    2018-08-02 23:06:05,104 [myid:1] - INFO [main:DatadirCleanupManager@78] - autopurge.snapRetainCount set to 10
    2018-08-02 23:06:05,112 [myid:1] - INFO [main:DatadirCleanupManager@79] - autopurge.purgeInterval set to 1
  • @70532431 ↶ Reply to #60975 #60977 07:27 PM, 04 Aug 2018
    Это уже что-то) Так логи можно просто > logfile занулять, или даже просто удалять?
  • https://t.me/clickhouse_ru
    @125885693 #60978 07:30 PM, 04 Aug 2018
    Коллеги, подскажите: хочу подключить коллекцию mongodb как внешний словарь. В коллекции есть поле-массив строк, но, как я понял, поддержка Array() во внешних словарях не реализована. В целом, меня бы устроило записывать конкатенацию строк, но возможно ли это реализовать? Через expression? Не нашел в каком виде они задаются.
  • @70532431 ↶ Reply to #60975 #60979 07:33 PM, 04 Aug 2018
    # systemctl status zookeeper
    ● zookeeper.service - ZooKeeper Service
    Loaded: loaded (/etc/systemd/system/zookeeper.service; enabled)
    Active: active (running) since Thu 2018-08-02 23:45:43 MSK; 1 day 22h ago
    Docs: http://zookeeper.apache.org
    Main PID: 13115 (java)
    CGroup: /system.slice/zookeeper.service
    └─13115 /usr/bin/java -cp $ZOOCFGDIR:/opt/zookeeper/zookeeper-3.5.3-beta.jar:/opt/zookeeper/lib:/opt/zookeeper/lib/slf4j-log4j12-1.7.5.jar:/opt/zookeeper/lib/slf4j-api-1.7.5.jar:/opt/zookeep...

    Aug 04 15:45:44 east-dwarf-zk1: java[13115]: Removing file: 2 авг. 2018 г., 23:45:44 /var/zookeeper/data/version-2/snapshot.0
    Aug 04 17:45:43 east-dwarf-zk1: java[13115]: Removing file: 2 авг. 2018 г., 23:45:44 /var/zookeeper/data/version-2/snapshot.100000000
    Aug 04 19:45:43 east-dwarf-zk1: java[13115]: Removing file: 3 авг. 2018 г., 5:15:13 /var/zookeeper/logs/version-2/log.100000001
    Aug 04 19:45:44 east-dwarf-zk1: java[13115]: Removing file: 3 авг. 2018 г., 5:15:13 /var/zookeeper/data/version-2/snapshot.10019933a

    а он, похоже, всё же что-то удаляет. помониторю ещё.
  • Нет, expression в Mongo словарях не поддерживается.

    Я думаю, это несложно добавить. Надо смотреть в MongoDBDictionarySource.cpp,
    функция createCursor.

    Для этого нужен человек, который чуть-чуть знает C++ (может пересобирать, перезапускать ClickHouse с mongo словарём).
  • https://t.me/clickhouse_ru
    @125885693 #60981 07:46 PM, 04 Aug 2018
    благодарю
  • @70532431 ↶ Reply to #60973 #60982 07:48 PM, 04 Aug 2018
    ура, ложная тревога, всё ротируется) только что процесс прошёл. будет +1 файл, то есть если

    autopurge.snapRetainCount=10
    то будет 11 файлов всегда, где 11 - в который сейчас пишется

    cat /var/log/zookeeper-logger/zookeeper.log | grep -i Removing
    2018-08-04 15:45:44,676 [myid:1] - INFO [PurgeTask:PurgeTxnLog@154] - Removing file: 2 авг. 2018 г., 23:45:44 /var/zookeeper/data/version-2/snapshot.0
    2018-08-04 17:45:43,994 [myid:1] - INFO [PurgeTask:PurgeTxnLog@154] - Removing file: 2 авг. 2018 г., 23:45:44 /var/zookeeper/data/version-2/snapshot.100000000
    2018-08-04 19:45:43,994 [myid:1] - INFO [PurgeTask:PurgeTxnLog@154] - Removing file: 3 авг. 2018 г., 5:15:13 /var/zookeeper/logs/version-2/log.100000001
    2018-08-04 19:45:44,038 [myid:1] - INFO [PurgeTask:PurgeTxnLog@154] - Removing file: 3 авг. 2018 г., 5:15:13 /var/zookeeper/data/version-2/snapshot.10019933a
    2018-08-04 22:45:44,012 [myid:1] - INFO [PurgeTask:PurgeTxnLog@154] - Removing file: 3 авг. 2018 г., 9:43:06 /var/zookeeper/logs/version-2/log.10019933c
    2018-08-04 22:45:44,042 [myid:1] - INFO [PurgeTask:PurgeTxnLog@154] - Removing file: 3 авг. 2018 г., 9:43:06 /var/zookeeper/data/version-2/snapshot.10030916a
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #60970 #60983 10:47 PM, 04 Aug 2018
    Для default пароль не задавайте, это поведение нужно поправить, считайте что пока это фича такая.
  • https://t.me/clickhouse_ru
    @fediq #60984 11:15 PM, 04 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @fediq #60985 11:20 PM, 04 Aug 2018
    Здравствуйте! Есть где-нибудь детальное описание, как хранятся данные внутри MergeTree?
    Как лежат на диске, как в памяти, используется ли кодирование столбцов, какой минимальный размер блока и т.п.?
  • 05 August 2018 (35 messages)
  • https://t.me/clickhouse_ru
    @regorov #60986 05:31 AM, 05 Aug 2018
    Что нужно знать об архитектуре ClickHouse / Алексей Зателепин (Яндекс)

    Приглашаем на Saint HighLoad ++ 2021 20 и 21 сентября 2021, Санкт-Петербург, DESIGN DISTRICT DAA in SPB Программа, билеты и подробности - https://clck.ru/VmKaW -------- РИТ++ 2017, Backend Conf Тезисы: http://backendconf.ru/2017/abstracts/2803.html ClickHouse - высокопроизводительная аналитическая база данных с открытыми исходниками, разработанная в Яндексе. Изначально ClickHouse создавался для задач Яндекс.Метрики, но постепенно нашёл множество применений как внутри Яндекса, так и в других компаниях. Я расскажу, как ClickHouse устроен внутри с акцентом на то, какие у выбранной архитектуры следствия с точки зрения прикладного разработчика. Будут затронуты следующие темы: - Как ClickHouse хранит данные на диске и выполняет запрос, почему такой способ хранения позволяет на несколько порядков ускорить аналитические запросы, но плохо подходит для OLTP и key-value нагрузки. - Как устроена репликация и шардирование, как добиться линейного масштабирования и что делать с eventual consistency. - Как диагностировать…

  • https://t.me/clickhouse_ru
    @regorov #60987 05:32 AM, 05 Aug 2018
    @fediq , наверно вот тут для базового понимания.
  • https://t.me/clickhouse_ru
    @fediq #60988 06:53 AM, 05 Aug 2018
    Спасибо!
  • @382278347 #60989 09:45 AM, 05 Aug 2018
    Joined.
  • @382278347 #60990 09:48 AM, 05 Aug 2018
    Всем привет. Возник вопрос при select ... where text like %localhost%. Вот так работает. А вот так уже нет. ....where text like %Localhost%. Заранее спасибо.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @QuietFelix #60992 09:56 AM, 05 Aug 2018
    Собсно, кейс там во всех функциях важен, учитывайте это.
  • @382278347 #60993 10:05 AM, 05 Aug 2018
    Что скажете по поводу lower(text) like ...?
  • https://t.me/clickhouse_ru
    @QuietFelix #60994 10:07 AM, 05 Aug 2018
    Я предпочитаю регулярками разруливать. Но разумнее попробовать как так, так и эдак, выбрать то, что подходит.
  • @382278347 #60995 10:32 AM, 05 Aug 2018
    Спасибо
  • @vasya_p0pkin #60996 02:11 PM, 05 Aug 2018
    Joined.
  • @672277609 #60997 02:12 PM, 05 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @regorov ↶ Reply to #60966 #60998 03:41 PM, 05 Aug 2018
    Спасибо! да, все получилось!
  • https://t.me/clickhouse_ru
    @regorov #60999 03:45 PM, 05 Aug 2018
    Ребят, а еще такой вопрос. У меня справочники, которые надо в JOIN по всякому использовать. Их структура чуть сложнее чем (id, name). Если я их как TinyLog буду хранить, это ведь нормально? Меня просто в документации смутило - жирным "Индексы не поддерживаются. ". Это ведь не страшно? значения колонок ведь тоже хранятся на диске в отсортированном виде? И доступ к данным в такой таблице быстрый?
  • https://t.me/clickhouse_ru
    @nicname #61000 03:47 PM, 05 Aug 2018
    можно как-то дропнуть таблицы по маске имени?

    то есть вот так я их могу выбрать
    select name FROM system.tables WHERE name like '%__tmp%'

    а как дроп прикрутить?
  • https://t.me/clickhouse_ru
    @regorov #61001 03:50 PM, 05 Aug 2018
    может выгрузить названия таблиц в файл через 'DROP TABLE ' || tablename; его потом запустить через параметр в clickhouse-client
  • https://t.me/clickhouse_ru
    @nicname #61002 03:56 PM, 05 Aug 2018
    да, спасибо, как вариант, думал может есть что-то с меньшим количеством шагов
  • https://t.me/clickhouse_ru
    @regorov #61004 04:18 PM, 05 Aug 2018
    Ну и еще один вопрос. Если у меня есть таблица-полу-справочник (больше 1 млн записей), в которых регулярно происходят обновления атрибутов. Я ее объявляю таким образом.
    CREATE TABLE runner_catalog
    (
    selection_id UInt64,
    runner_name String,
    handicap UInt64,
    sort_priority UInt8,
    version UInt64
    )
    ENGINE = ReplacingMergeTree(version)
    PARTITION BY intHash64(selection_id)
    ORDER BY (selection_id, runner_name);
    Я все правильно делаю? В качестве первичного ключа исползьую selection_id. Но из документации, не совсем понял зачем указывать ORDER BY.
  • https://t.me/clickhouse_ru
    @regorov #61005 04:19 PM, 05 Aug 2018
    Меня смущает, что в документации написано, что слияние происходит в фоне. Значит ли это, что можно столкнуться с ситуацией, когда в таблице runner_catalog будет больше одной записи с одинаковым selection_id?
  • @667468826 #61006 04:54 PM, 05 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    Секция partition by - это не первичный ключ, это ключ разбиения на секции. В случае со словарем подозреваю, что вам не нужен партишионинг
  • https://t.me/clickhouse_ru
    @marshalov #61008 04:58 PM, 05 Aug 2018
    А то, что вы называете первичным ключем - это секция order by (при этом это все же не совсем первичный ключ, это ключ сортировки)
  • https://t.me/clickhouse_ru
    @regorov #61009 04:59 PM, 05 Aug 2018
    да, не нужен. Спасибо.
  • https://t.me/clickhouse_ru
    @marshalov #61010 05:00 PM, 05 Aug 2018
    И да, записи с одним ключем будут повторяться в какие- то моменты времени. Это решается либо вызовом optimize, либо запросом с группировкой
  • https://t.me/clickhouse_ru
    @regorov #61011 05:00 PM, 05 Aug 2018
    Спасибо. Получилось так.

    create table runner_catalog (
    selection_id UInt64,
    runner_name String,
    handicap UInt64,
    sort_priority UInt8,
    version UInt64)
    Engine = ReplacingMergeTree(version)
    ORDER BY (selection_id);
  • @649434985 #61012 08:31 PM, 05 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @fediq ↶ Reply to #60986 #61013 09:35 PM, 05 Aug 2018
    А есть следующий уровень? =)

    У меня нездоровый, можно даже сказать, академический, интерес к представлению данных.
    На 10:55 Алексей рассказывает "Как работает индекс". Он упоминает файлы индекса (primary.idx), засечек (.mrk) и данных (.bin). С кем можно обсудить формат этих файлов?

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

    РИТ++ 2017, Backend Conf Зал Сан-Паулу, 6 июня, 15:00 Тезисы: http://backendconf.ru/2017/abstracts/2803.html ClickHouse - высокопроизводительная аналитическа...

  • https://t.me/clickhouse_ru
    @regorov #61015 10:28 PM, 05 Aug 2018
    @fediq , исходники?
  • https://t.me/clickhouse_ru
    @fediq #61016 10:29 PM, 05 Aug 2018
    Обсуждать с исходниками - это когда тебя совсем никто не любит. =(
  • https://t.me/clickhouse_ru
    @zion_o_zaur #61017 10:38 PM, 05 Aug 2018
    зато они никогда не введут в заблуждение, даже невольно
  • @nnn_roman #61019 11:24 PM, 05 Aug 2018
    @fediq https://events.yandex.ru/lib/talks/5800/
    Вот хороший обзор внутренностей MergeTree движка
  • Уже определили сумму которую готовы выложить за прекрасные новые знания?
  • @master_slave_controller #61021 11:33 PM, 05 Aug 2018
    open ! = free
  • https://t.me/clickhouse_ru
    @fediq #61022 11:36 PM, 05 Aug 2018
    Тоже вариант. В ПМ?
  • https://t.me/clickhouse_ru
    @fediq ↶ Reply to #61019 #61023 11:37 PM, 05 Aug 2018
    Спасибо! Посмотрю.
  • 06 August 2018 (138 messages)
  • @Antonprk ↶ Reply to #60983 #61024 05:06 AM, 06 Aug 2018
    Спасибо! Помогло. Только жаль, что это нигде в документации не описано...
  • @Antonprk #61025 05:44 AM, 06 Aug 2018
    Добрый день.
    Может еще кто то знает еще одна ошибка
    Очистка Materialized View работает только на том сервере, где была создана, на любых других выходит ошибка:
    ip-172-31-16-10.us-west-2.compute.internal :) truncate table db1.r_test_transactions;

    TRUNCATE TABLE db1.r_test_transactions

    Received exception from server (version 18.6.0):
    Code: 48. DB::Exception: Received from localhost:9000, ::1. DB::Exception: Can't proxy this query. Unsupported query type.

    0 rows in set. Elapsed: 0.080 sec.

    А тут Materialized View была создана и все работает:
    ip-172-31-16-11.us-west-2.compute.internal :) truncate table db1.r_test_transactions
    :-] ;

    TRUNCATE TABLE db1.r_test_transactions

    Ok.

    0 rows in set. Elapsed: 0.047 sec.
    Это ошибка CH или я опять где-то что то не так делаю?
  • https://t.me/clickhouse_ru
    @gulya_imasheva #61026 05:50 AM, 06 Aug 2018
    Подскажите пожалуйста, ClickHouse не позволяет создавать таблицы с одинаковыми наименованием столбцов? engine = log, Хотела создать таблицу, которая имеет пару одинаковых наименования полей как в ранее созданных таблиц, тогда выдает ошибку DB::Exception: Column ID already exists.
  • https://t.me/clickhouse_ru
    @gulya_imasheva #61027 05:51 AM, 06 Aug 2018
    Это из за того что движок LOG или в целом clickhouse не позволяет повторение наименование столбцов
  • https://t.me/clickhouse_ru
    @gulya_imasheva #61028 05:51 AM, 06 Aug 2018
    новичок в ClickHouse, подскажите плиз не моге найти инфу
  • https://t.me/clickhouse_ru
    @vstepankov #61029 05:54 AM, 06 Aug 2018
    одинаковые столбцы это как?
    Это вообще законно?
  • https://t.me/clickhouse_ru
    А какая бд позволяет?
  • https://t.me/clickhouse_ru
    @gulya_imasheva #61031 05:57 AM, 06 Aug 2018
    У меня ранее скажем создана таблица "A" с колонками (id Int32, Name String) engine = log, и скажем я пытаюсь создать таблицу "B" с колонками ( id Int32, City String) engine = log
  • https://t.me/clickhouse_ru
    @gulya_imasheva #61032 05:57 AM, 06 Aug 2018
    и тогда у меня возникает ошибка DB::Exception: Column ID already exists.
  • https://t.me/clickhouse_ru
    Это простой пример
  • https://t.me/clickhouse_ru
    @gulya_imasheva #61034 06:09 AM, 06 Aug 2018
    Кажется я поняла в чем причина
  • https://t.me/clickhouse_ru
    @regorov #61035 06:39 AM, 06 Aug 2018
    Gulya, в чем? Тоже интересно стало.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61024 #61036 06:46 AM, 06 Aug 2018
    А это "фича" и её нужно поправить
  • https://t.me/clickhouse_ru
    Плюсую интерес к причине.
  • https://t.me/clickhouse_ru
    @quarrant #61038 07:42 AM, 06 Aug 2018
    Народ
  • https://t.me/clickhouse_ru
    @quarrant #61039 07:42 AM, 06 Aug 2018
    такая штука select one, 2 as one from (select 1 as one, 2 as two)
  • https://t.me/clickhouse_ru
    @quarrant #61040 07:43 AM, 06 Aug 2018
    в результате будет 2 2, а не 1 2
  • https://t.me/clickhouse_ru
    @quarrant #61041 07:43 AM, 06 Aug 2018
    это баг или фича ?
  • @antonio_antuan #61042 07:44 AM, 06 Aug 2018
    А если select one, select 2 as ne_one...?
  • https://t.me/clickhouse_ru
    @quarrant #61043 07:45 AM, 06 Aug 2018
    если алиасы разные будут то значения правильные вернутся
  • https://t.me/clickhouse_ru
    @quarrant #61044 07:47 AM, 06 Aug 2018
    получается что при таком запросе insert into table (id, name) select 2 as id, 'test' as name, from table where id = 1
  • https://t.me/clickhouse_ru
    @quarrant #61045 07:47 AM, 06 Aug 2018
    выбирается на запись с id = 1, а запись с id 2
  • @Dima_Ishchenko #61046 08:37 AM, 06 Aug 2018
    Joined.
  • @Dima_Ishchenko #61047 08:39 AM, 06 Aug 2018
    Здравствуйте

    Кто-то сталкивался с подобной проблемой: "Poco::Exception. Code: 1000 ... Malformed message: Field value too long/no CRLF found"?

    Отправляю external_data через curl. Передаю список. Если длинной менее 1000, все ок. Больше - ошибка

    Через клиент все работает без проблем.
  • https://t.me/clickhouse_ru
    @DmitryMishchenko #61048 08:53 AM, 06 Aug 2018
    привет всем, а у кого-то есть пример как залить сsv в кликхаус на golang?
  • https://t.me/clickhouse_ru
    А почему бы просто через хттп запрос не лить?
  • https://t.me/clickhouse_ru
    @Imaskar #61050 08:54 AM, 06 Aug 2018
    зачем голанг, если есть cli?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @Imaskar #61052 08:55 AM, 06 Aug 2018
    clickhouse-client умеет csv закидывать на серввер
  • https://t.me/clickhouse_ru
    я знаю, спасибо) Просто странный вопрос от вас)
  • https://t.me/clickhouse_ru
    Спасибо, хотел просто ссылку на готовый пример или вроде того, чтобы не писать самому, не смог найти на просторах(
  • https://t.me/clickhouse_ru
    @MaksymHryhoriev #61055 08:59 AM, 06 Aug 2018
    Пост запрос в теле цсв а урл "/query=insert into TABLENANE format csv"
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @Imaskar #61058 09:02 AM, 06 Aug 2018
    через cli:
    clickhouse-client --host=... --query="INSERT INTO ... FORMAT CSV" < /path/to/data.csv
  • https://t.me/clickhouse_ru
    @azubarev #61059 09:04 AM, 06 Aug 2018
    /stat@combot
  • https://t.me/clickhouse_ru
    @dlazarchuk #61061 09:33 AM, 06 Aug 2018
    Всем доброго дня! Ребят подскажите или киньте ссылочку где можно почитать, каким способом кроме пересоздания таблицы можно изменить параметры внутри Engine? Есть таблица с типом SummingMergeTree с явным указанием колонок для суммирования, нужно добавить еще одну колонку в таблицу и включить её в колонки для суммирования! Спасибо!
  • https://t.me/clickhouse_ru
    @dlazarchuk #61062 09:36 AM, 06 Aug 2018
    А лучше всего как убрать с Engine явно заданные колонки, чтобы остался просто ключ по которому будет идти суммирование
  • https://t.me/clickhouse_ru
    @quarrant ↶ Reply to #61061 #61063 10:06 AM, 06 Aug 2018
    никак
  • https://t.me/clickhouse_ru
    Спасибо!
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #61061 #61068 11:21 AM, 06 Aug 2018
    Не то что поменять движок, даже набор колонок в ПК нельзя поменять
  • https://t.me/clickhouse_ru
    @navel_tail #61069 11:39 AM, 06 Aug 2018
    Читал в этом чате что в конец ключа можно добавлять, вроде даже тесты на эту фичу написаны
  • https://t.me/clickhouse_ru
    @molo4ko007 #61070 12:53 PM, 06 Aug 2018
    кстати, рендерер md->html не работает с картинками, кажется
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @molo4ko007 #61072 12:54 PM, 06 Aug 2018
    в md на гитхабе все в порядке
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61069 #61073 01:00 PM, 06 Aug 2018
    Можно добавляеть если не меняется сортировка для ПК (т.е. в ключ добаляются поля с дефалтовыми значениями) и работает только для MergeTree.
  • https://t.me/clickhouse_ru
    @508124506 #61074 01:33 PM, 06 Aug 2018
    Привет!
    Увидел в тикете на github (https://github.com/yandex/ClickHouse/issues/1178) такую конструкцию: OPTIMIZE TABLE tablename [FINAL] DEDUPLICATE;

    Про DEDUPLICATE в документации ничего не нашел. Кто нибудь знает что именно делает DEDUPLICATE и работает ли это вообще?
    How to guarantee data deduplication by clickhouse? · Issue #1178 · yandex/ClickHouse

    At first,I thought ReplacingMergeTree can do this, after i tried serveral times (insert a set of data by file with version 1, than insert the same data set with version 2), i find this method can&a...

  • https://t.me/clickhouse_ru
    @Vasyaabr #61075 02:16 PM, 06 Aug 2018
    А кто-нибудь пользуется Kafka и кворумной записью? Не возникнет ли там каких-то граблей?
  • https://t.me/clickhouse_ru
    @nordluf #61076 02:28 PM, 06 Aug 2018
    А есть какой-то магический вариант задавать в самом начале запроса переменную которая потом будет использоваться в запросах включая подзапросы?
  • https://t.me/clickhouse_ru
    @alexanderzaitsev #61077 02:32 PM, 06 Aug 2018
    WITH expr AS ident SELECT ...
  • @emptyname #61078 02:34 PM, 06 Aug 2018
    Если бы еще табикс можно как-то приучить нормально форматировать такие выборки :)
  • https://t.me/clickhouse_ru
    @nordluf ↶ Reply to #61077 #61079 02:39 PM, 06 Aug 2018
    Это не попадает во вложенные селекты и юнионы же
  • @N0tNu11 #61080 02:55 PM, 06 Aug 2018
    Всем привет! Подскажите, пожалуйста, как использовать IPv4StringToNum в JDBC
  • @N0tNu11 #61081 02:56 PM, 06 Aug 2018
    Пытаюсь sendRowBinaryStream stream.writeString("IPv4StringToNum(" + lfadto.getIp4() + ")") , строка вставляется, но что-то явно идет не так. Переписываются другие поля
  • @358181242 #61082 03:12 PM, 06 Aug 2018
    Подскажите пожалуйста, как использовать кликхаус в качестве backend'а в проекте django?
  • https://t.me/clickhouse_ru
    Вам только для чтения нужно?
  • @358181242 #61084 03:39 PM, 06 Aug 2018
    Да только чтение
  • https://t.me/clickhouse_ru
    @paveltyavin #61085 03:40 PM, 06 Aug 2018
    Ну тогда использование orm неоправданно. Просто обращайтесь к вашим ch-табличкам через http интерфейс.
  • @358181242 #61086 03:41 PM, 06 Aug 2018
    Хорошо, а если понадобится запись?
  • @vstakhov #61087 03:46 PM, 06 Aug 2018
    а можно ли в tsv поставить значение today() в поле типа Date?
  • @vstakhov ↶ Reply to #61087 #61088 04:03 PM, 06 Aug 2018
    нельзя: ERROR: Date must be in YYYY-MM-DD format.
  • @vap_on_telegram #61089 04:40 PM, 06 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    У нас Kafka, но кворум победить не смогли. Задолбало ловить рандомно конфликты нод ZooKeeper, волево вырубили кворум.
  • https://t.me/clickhouse_ru
    Недавно наткнулись на проблему с дедупликацией при инсертах, когда приходили две одинаковых строки на вставку, а в итоге записывалась только одна! В общем дедупликация нужна в том случае когда не ждешь или когда не нужно иметь в таблице две одинаковых строки! По умолчанию она включена, чтобы выключить нужно установить insert_deduplicate в конфиге в 0.
  • https://t.me/clickhouse_ru
    Мне кажется, вы на стопку граблей наступите, когда Django будет генерировать запросы. Кучу всего руками править — то же создание моделей в базе уже со старта не совместимо.
  • Что тогда посоветуете?
  • https://t.me/clickhouse_ru
    Ничего. :) На деле кворум и Кафка — это разные штуки. Мы об кворум бились при разных источниках данных. Возможно, выкрутитесь через "не получил 200, попробуй записать ещё раз", но, емнип, тут мы уже огребали с дедупликацией, но толком уже не помню.
    А Кафка норм, как накопитель вполне. Тут ещё несколько человек её так используют.
  • https://t.me/clickhouse_ru
    Блин, не на то ответил. С ORM и ClickHouse пока толком ничего нет, кажется.
  • https://t.me/clickhouse_ru
    @QuietFelix #61096 07:19 PM, 06 Aug 2018
    Да и зачем? Сила евойная в аналитике, которую можно спихнуть на базу и она не крякнет. Аналитику сию делать на таблицах с большим количеством колонок. Соответственно, у вас и модели раздутые будут. А полезные запросы всё равно вне ORM писать. Если вам всё-таки тут прям очень нужен ORM, кажется, проще наваять своё ровно под свои задачи.
  • @antonio_antuan #61097 07:24 PM, 06 Aug 2018
    алхимию пользуем в связке с кх, особо не жалуемся
  • @antonio_antuan #61098 07:24 PM, 06 Aug 2018
    благо что запросы там можно какие угодно строить
  • https://t.me/clickhouse_ru
    @QuietFelix #61099 07:27 PM, 06 Aug 2018
    О. А сколько колонок в таблицах?
  • https://t.me/clickhouse_ru
  • не помню, штук 50 что ли. а какое это имеет значение?
  • @antonio_antuan #61102 07:30 PM, 06 Aug 2018
    в разрезе данного вопроса :)
  • https://t.me/clickhouse_ru
    @QuietFelix #61103 07:30 PM, 06 Aug 2018
    Интересует размер моделей в смысле "это наш класс клика, у него три сотни полей".
  • https://t.me/clickhouse_ru
    @QuietFelix #61104 07:32 PM, 06 Aug 2018
    Ну т.е. я раньше прикидывал кейсы использования КХ и у меня получалось, что либо ORM не нужен, либо КХ используется как простобаза. Видимо, что-то пропустил.
  • @antonio_antuan #61105 07:33 PM, 06 Aug 2018
    алхимию можно ипользовать не как орм, а как средство декларирования таблиц и генерации запросов
  • @antonio_antuan #61106 07:34 PM, 06 Aug 2018
    у неё есть core часть и orm часть, которая обертка над первой
  • https://t.me/clickhouse_ru
    @QuietFelix #61107 07:34 PM, 06 Aug 2018
    Да, но объём кода и работы не тот же, что без Алхимии?
  • @antonio_antuan #61108 07:34 PM, 06 Aug 2018
    вторую использовать никто не заставляет
  • @antonio_antuan #61109 07:34 PM, 06 Aug 2018
    не пробовал без неё)
  • @antonio_antuan #61110 07:34 PM, 06 Aug 2018
    ну в целом разница будет не велика
  • @antonio_antuan #61111 07:36 PM, 06 Aug 2018
    select([func.toMonday(table.x.time), func.count(), func.groupUniq(table.c.user_id)]).where(table.c.time >= X).group_by(func.toMonday(table.x.time))
  • @antonio_antuan #61112 07:36 PM, 06 Aug 2018
    вот пример запроса
  • @antonio_antuan #61113 07:36 PM, 06 Aug 2018
    думаю, можно представить, сколько он будет занимать на raw sql
  • https://t.me/clickhouse_ru
    @QuietFelix #61114 07:36 PM, 06 Aug 2018
    Такой же, что и в raw, собсно.
  • @antonio_antuan #61115 07:37 PM, 06 Aug 2018
    в целом да
  • @antonio_antuan #61116 07:37 PM, 06 Aug 2018
    только табличку описать надо будет :)
  • @antonio_antuan #61117 07:37 PM, 06 Aug 2018
    но структурированней получается эт точно
  • https://t.me/clickhouse_ru
    @QuietFelix #61118 07:37 PM, 06 Aug 2018
    А нафига тогда? :) Привычка?
  • @antonio_antuan #61119 07:37 PM, 06 Aug 2018
    крайне полезно при генерации запросов
  • @antonio_antuan #61120 07:37 PM, 06 Aug 2018
    на ходу
  • @antonio_antuan #61121 07:37 PM, 06 Aug 2018
    ну и да, привычка
  • https://t.me/clickhouse_ru
    @QuietFelix #61122 07:37 PM, 06 Aug 2018
    Понятно. Спасибо. :)
  • @antonio_antuan #61123 07:37 PM, 06 Aug 2018
    оверхеда почти нет, так что почему бы и нет
  • https://t.me/clickhouse_ru
    @den_crane #61124 07:44 PM, 06 Aug 2018
    А как работает alter колонок? UInt64-> Int64, UInt32 -> UInt64, Float32 -> Int32, при мердже меняет или на лету (во время select)?

    create table x (a Float32) engine=MergeTree partition by tuple() order by tuple();
    insert into x values (-1000), (4.3), (3.14), (3000), (-100400.4);
    alter table x modify column a Int32;
  • Преобразует сразу - во время ALTER.
  • https://t.me/clickhouse_ru
    @den_crane #61126 07:47 PM, 06 Aug 2018
    т.е. на колонке размером 1 TБ, придется ждать?
  • @milovidov_an #61127 07:47 PM, 06 Aug 2018
    Да.
  • https://t.me/clickhouse_ru
    ОК, Спасибо.
  • https://t.me/clickhouse_ru
    @den_crane #61129 07:49 PM, 06 Aug 2018
    А кстати insert в этот момент, пока alter идет, в каком типе делать?
  • @Denimm #61130 07:50 PM, 06 Aug 2018
    А никто не проверял, реальный perforamce String vs Fixed String. Есть строка, размер которой от 1 до 1024, что реально быстрее? Вроде как fixed string должен быть, а как на самом деле?
  • FixedString имеет смысл использовать, когда размер действительно фиксированный. То есть, не от 1 до 1024, а всегда 32, например.

    В остальных случаях лучше предпочитать String.
  • @Denimm ↶ Reply to #61131 #61132 07:56 PM, 06 Aug 2018
    Спасибо
  • https://t.me/clickhouse_ru
    @Fiery_Fenix #61134 08:01 PM, 06 Aug 2018
    /stat@combot
  • @vstakhov #61136 08:25 PM, 06 Aug 2018
    О, кстати, Алексей, хотел спросить, насколько плохая идея вместо fat width таблицы использовать много, объединенных по индексу FixedString(32)?
  • А какой в этом смысл (какое преимущество)?
  • @vstakhov #61138 08:26 PM, 06 Aug 2018
    То есть, сам по себе memcmp для 32х байт - это довольно быстро, но там растет число джоинов
  • @vstakhov ↶ Reply to #61137 #61139 08:26 PM, 06 Aug 2018
    Да никакого - расширял схему, добавляя таблицы и не ломая совместимость
  • @vstakhov #61140 08:27 PM, 06 Aug 2018
    В принципе, у меня момент, когда я могу все кардинально поломать
  • @vstakhov #61141 08:28 PM, 06 Aug 2018
    Вопрос в том, насколько быстрее будет жирная таблица
  • @milovidov_an #61142 08:28 PM, 06 Aug 2018
    Много JOIN-ов плохо работает - как по удобству (сейчас более одного JOIN-а в запросе писать трудно), так и по скорости (для JOIN правая часть сохраняется в хэш-таблицу и по ней делаются lookup-ы).
  • @vstakhov #61143 08:30 PM, 06 Aug 2018
    То есть, лучше сделать колбасу без возможности миграции?
  • @milovidov_an #61144 08:31 PM, 06 Aug 2018
    Если только она не слишком широкая. Слишком - это многие тысячи столбцов - тогда вставки будут медленными. Впрочем, если всегда вставляется всё сразу, то толстая таблица всё-равно лучше.
  • @vstakhov #61145 08:32 PM, 06 Aug 2018
    Хотя я сам склоняюсь к такому варианту - я слишком думал о flexibility, забывая, что ch - это не мускуль с row oriented идеологией
  • @vstakhov #61146 08:32 PM, 06 Aug 2018
    У меня толстые массивы
  • @vstakhov #61147 08:32 PM, 06 Aug 2018
    Колонок там будет точно меньше тысячи
  • @milovidov_an #61148 08:33 PM, 06 Aug 2018
    Ок. В зависимости от толщины массивов может быть разумно уменьшить index_granularity а также размер пачки при вставке.
  • @692113934 #61149 08:34 PM, 06 Aug 2018
    Joined.
  • @vstakhov ↶ Reply to #61148 #61150 08:36 PM, 06 Aug 2018
    Я думаю, у меня в почтах именно размеры вставки не такие впечатляющие, как в кликах пользователей. Там будут жырные инсерты по тысяче записей - каждая на 2 килобайта текста, скажем, раз в 10 секунд
  • @vstakhov #61151 08:37 PM, 06 Aug 2018
    А вот медленный селект - это проблема, да
  • Это Ок.
  • https://t.me/clickhouse_ru
    @freeseacher #61153 08:44 PM, 06 Aug 2018
    господа а как долго может продлится стадия Starting up tables. ?
  • https://t.me/clickhouse_ru
    @freeseacher #61154 08:44 PM, 06 Aug 2018
    чот уже 20 минут в логе это последняя запись
  • https://t.me/clickhouse_ru
    @freeseacher #61155 08:45 PM, 06 Aug 2018
    данных не скзать что много. чуть больше 1t. но по ресурсам не видно что бы что то потреблялось. просто висим и всё
  • @milovidov_an #61156 08:50 PM, 06 Aug 2018
    В основном это зависит от числа таблиц и числа кусков в них. В случае если таблицы маленькие, но их много, ClickHouse будет выводить в лог прогресс в процентах.
  • @milovidov_an #61157 08:51 PM, 06 Aug 2018
    Также он выводит, какие именно таблицы он загружает.
  • https://t.me/clickhouse_ru
    @freeseacher #61158 08:52 PM, 06 Aug 2018
    сам себе отвечу. 30 минут.
  • https://t.me/clickhouse_ru
    увы нет
  • https://t.me/clickhouse_ru
  • Наверное вы переключили логгирование в information.
    2018.08.06 22:45:31.162028 [ 2 ] <Debug> default.hits_1000m (Data): Loading data parts
  • https://t.me/clickhouse_ru
    @freeseacher #61162 08:54 PM, 06 Aug 2018
    да конечно в information
  • @milovidov_an #61163 08:54 PM, 06 Aug 2018
    А может быть 30 минут - это таймаут для источника словаря, как написано в логе?
  • https://t.me/clickhouse_ru
    @freeseacher #61164 08:55 PM, 06 Aug 2018
    на трассе слишком много информации. я бы и инфо наверное бы хотел избавить от <Information> HTTPHandler: Done processing query
  • https://t.me/clickhouse_ru
    нее. монги там давно нету. чистый http
  • @milovidov_an #61166 08:56 PM, 06 Aug 2018
    Наверное для соединения с этим словарём такой таймаут.
  • https://t.me/clickhouse_ru
    @freeseacher #61167 08:57 PM, 06 Aug 2018
    хм. проверю. спасибо
  • @N0tNu11 #61168 09:03 PM, 06 Aug 2018
    /stat@combot
  • 07 August 2018 (116 messages)
  • https://t.me/clickhouse_ru
    @live_man_oleg #61170 04:37 AM, 07 Aug 2018
    подскажите, как посмотреть подробности, в чем именно ошибка

    текст ошибки такой
    [ClickHouse SQL] Code: 36, e.displayText() = DB::Exception: Sampling expression must be present in the primary key, e.what() = DB::Exception
  • https://t.me/clickhouse_ru
    @live_man_oleg #61171 04:39 AM, 07 Aug 2018
    это был запрос на создание таблицы
  • @NUR_naldoshkin #61173 05:12 AM, 07 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Vasyaabr ↶ Reply to #61090 #61174 05:35 AM, 07 Aug 2018
    А вы писали на какой-то одной реплике, или пытались на многих (в то смысле, что это проблема именно Кафка<->кворум, или параллельность<->кворум)? Я так понимаю, если запустить четко один поток записи на одной реплике, через MV например, и кворум, то должно быть ок, кворум не любит только параллельную запись.
  • https://t.me/clickhouse_ru
    @Vasyaabr ↶ Reply to #61090 #61175 05:36 AM, 07 Aug 2018
    И как в итоге выкручиваетесь без кворума? Пишете руками на каждую ноду самостоятельно, или смирились с асинхронной репликацией?
  • https://t.me/clickhouse_ru
    Это точно не проблема Кафки, т.к. конфликт кворума возникал в основном без неё, когда мы интенсивно скриптом мигрировали данные из Эластика в КХ.
  • https://t.me/clickhouse_ru
    Смирились. :) На носу придумывание и раскатка мастер-базы — поднимем какой-нибудь MySQL / PostgreSQL, раз в час будем сверять с КХ количество строк в таблицах, если что, дольём.
  • https://t.me/clickhouse_ru
    @alexey_konkov #61180 09:40 AM, 07 Aug 2018
    коллеги, добрый день!
    по чатику найти не смог, поэтому напишу повторно, звиняйте, если что.

    баг:
    1. таблица id, str, int
    2. строка значений: 1, 'some text \\', 0
    3. при выгрузке в csv получаем строку 1,"some text \",0
    4. при этом получается экранированная слэшом кавычка, что не даёт правильно распарсить csv штатными средствами
  • https://t.me/clickhouse_ru
    @Alesapin #61181 09:41 AM, 07 Aug 2018
    А хотелось бы чтобы там осталось \\?
  • https://t.me/clickhouse_ru
    @alexey_konkov #61182 09:44 AM, 07 Aug 2018
    ну, конечно
  • https://t.me/clickhouse_ru
    @alexey_konkov #61183 09:44 AM, 07 Aug 2018
    версия 1.1.54390
  • https://t.me/clickhouse_ru
    @alexey_konkov #61184 09:44 AM, 07 Aug 2018
    т.е. даже не так: там должно быть \\\\, чтобы обратно эта строка в кавычках разбиралась как \\
  • @358181242 #61185 10:25 AM, 07 Aug 2018
    Подскажите, наиболее быстрый способ загрузки данных в КХ. Данных очень много. И еще вопрос целесообразно ли использовать kafka?
  • https://t.me/clickhouse_ru
    csv, можно в несколько потоков загружать
  • https://t.me/clickhouse_ru
    csv

    Например, сейчас у меня из мускуля 1 час экспортится 50гигов csv.
    В КХ импортится все это минут за 6-7
  • @358181242 #61188 10:29 AM, 07 Aug 2018
    Порядка 300-400 гб в час в csv файлах
  • https://t.me/clickhouse_ru
    распараллель
  • https://t.me/clickhouse_ru
    Лей напрямую в stdin
  • https://t.me/clickhouse_ru
    Кафка хороша как накопитель. Грубо говоря, КХ любит одну пачку INSERT на тысячу строк, а не тысячу INSERT по строке. Соответственно, ставится Кафка, в которую в топики со всех концов льются понемногу данные, а с другого конца раз в секунду, например, что-то выгребает и стопками впихует в КХ.
  • https://t.me/clickhouse_ru
    @bloodrain777 #61192 10:44 AM, 07 Aug 2018
    Importing from MySQL dump to Clickhouse

    I want to import from MySQL dump to Clickhouse. I've tried going through the official docs but cannot find anything. I've tried importing using CSV following Stack Overflow answer. Any help appreci...

  • https://t.me/clickhouse_ru
    @bloodrain777 #61193 10:44 AM, 07 Aug 2018
    Писал еще давненько. Лучше способа не нашел
  • А есть библиотека, которая обращается к client и напрямую льет данные в stdin?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61194 #61195 11:00 AM, 07 Aug 2018
    А чем cat не устроил?
  • У меня не один файл, а несколько тысяч и новые выпадают раз в 5-10 секунд. Просто плохо представляю как это сделать через cat. Могли бы вы поподробнее объяснить.
  • https://t.me/clickhouse_ru
    @nordluf #61197 11:07 AM, 07 Aug 2018
    cat * |
  • @alexander_shatunov #61198 11:08 AM, 07 Aug 2018
    лучше уж тогда tail -f *|
  • https://t.me/clickhouse_ru
    * выдаст файлы на момент запуска.
  • https://t.me/clickhouse_ru
    @nordluf #61200 11:14 AM, 07 Aug 2018
    Чтобы избежать дублей, я бы брал файлы оттуда где они появляются, переносил в отдельную папку, оттуда загружал и переносил дальше, в постоянный архив
  • вы правы, для обновлемых по имени файлов не подойдет
  • @358181242 #61202 11:17 AM, 07 Aug 2018
    А есть возможность не из файлов, а напрямую потоком загружать данные в кх?
  • https://t.me/clickhouse_ru
    откуда именно загружать?
  • @358181242 #61204 11:34 AM, 07 Aug 2018
    Данные транслировать по сети, и не создавая файлов загружать в кх.
  • https://t.me/clickhouse_ru
    И? В чём проблема?
  • https://t.me/clickhouse_ru
    У ch есть два интерфейса для этого - http и tcp
  • https://t.me/clickhouse_ru
    В конце-концов, можно поставить клиента на удалённой машине
  • https://t.me/clickhouse_ru
    Я ссылку для кого кидал ?
  • https://t.me/clickhouse_ru
    /me на части хостов вообще через curl грузит...
  • https://t.me/clickhouse_ru
    Какая библиотека ? Из консоли все делается
  • @358181242 #61211 11:37 AM, 07 Aug 2018
    /me
  • https://t.me/clickhouse_ru
    Ну почему же? Есть и библиотеки для питонов всяких...
  • https://t.me/clickhouse_ru
    Это из других чатов
  • https://t.me/clickhouse_ru
    @zion_o_zaur #61214 11:38 AM, 07 Aug 2018
    даже во всяких питонах лучше кормить субпроцесс кликхаус-клиента через стдин
  • https://t.me/clickhouse_ru
    @zion_o_zaur #61215 11:38 AM, 07 Aug 2018
    по кр мере, проще
  • А вот это уже очень интересно. Можно рассказать подробнее
  • https://t.me/clickhouse_ru
    @zion_o_zaur #61220 11:42 AM, 07 Aug 2018
    ээээ

    proc = subprocess.Popen(
    [
    'clickhouse-client',
    '--database=<>',
    '--query=' + ins_stmt,
    ...
    ],
    stdin=subprocess.PIPE,
    stdout=subprocess.PIPE,
    )

    output, err = proc.communicate(input=bytes(YOUR_CUTE_DATA, 'utf-8'))
  • https://t.me/clickhouse_ru
    @zion_o_zaur #61221 11:42 AM, 07 Aug 2018
    чот типа такого, наверное?
  • Спасибо большое, добрый человек! Обязательно попробую так сделать)
  • https://t.me/clickhouse_ru
    @oZZyTOP #61223 11:50 AM, 07 Aug 2018
    @milovidov_an Доброго дня, Вы под алпайн кликхаус не собираете?
  • https://t.me/clickhouse_ru
    @usuychik #61224 11:51 AM, 07 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @yurikosan #61225 12:10 PM, 07 Aug 2018
    Привет, товарищи.
    Скажите, SummingMergeTree гарантирует полное схлопывание строк или нет?
    Наблюдаю частичное суммирование, часть строк остались отдельно жить.
  • https://t.me/clickhouse_ru
    @yurikosan #61226 12:11 PM, 07 Aug 2018
    ┌─adv_id─┬─price─┬─event_date─┬─event_type─┬─event_count─┬──────event_datetime─┐
    │ 1 │ 100 │ 2018-08-07 │ publish │ 1 │ 2018-08-07 15:09:47 │
    │ 1 │ 100 │ 2018-08-07 │ publish │ 1 │ 2018-08-07 15:09:47 │
    │ 1 │ 100 │ 2018-08-07 │ publish │ 1 │ 2018-08-07 15:09:47 │
    │ 1 │ 100 │ 2018-08-07 │ publish │ 21 │ 2018-08-07 15:09:25 │
    └────────┴───────┴────────────┴────────────┴─────────────┴─────────────────────┘
  • https://t.me/clickhouse_ru
    @Vasyaabr #61227 12:11 PM, 07 Aug 2018
    Нет. Применяйте OPTIMIZE ... FINAL , но и это не даст 100% гарантии.
  • https://t.me/clickhouse_ru
    @yurikosan #61228 12:12 PM, 07 Aug 2018
    спасибо
  • https://t.me/clickhouse_ru
    хм. дало эффект однако
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61223 #61230 12:13 PM, 07 Aug 2018
    КХ сам по себе не мало весит и смысла брать алпайн нет, больше проблем с созданием под него пакетов, в официальном ubuntu-minimal, который тоже не сильно большой.
  • https://t.me/clickhouse_ru
    @Vasyaabr ↶ Reply to #61229 #61231 12:15 PM, 07 Aug 2018
    Ну и хорошо :) Но обычно доагрегируем уже в SELECT-е, главное что SummingMergeTree сделает за вас 99% работы, и как правило на порядки ускорит агрегацию результата.
  • https://t.me/clickhouse_ru
    @sc0rp10 #61232 01:25 PM, 07 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @sc0rp10 #61233 01:26 PM, 07 Aug 2018
    господа, а ни у кого нет рабочей связки logstash-clickhouse?
  • https://t.me/clickhouse_ru
    Logstash with ClickHouse

    Dec 18, 2017  There are many cases where ClickHouse is a good or even the best solution for storing analytics data. One common example is web servers logs processing. In this article, we guide you through Nginx web server example but it is applicable to other web servers as well.We will use Logstash with ClickHouse in order to process web logs. Logstash is a commonly used tool for parsing different kinds of logs and putting them somewhere else. For example, in ClickHouse. This solution is a part of Altinity Demo Appliance

  • https://t.me/clickhouse_ru
    @sc0rp10 #61235 01:29 PM, 07 Aug 2018
    оно не особо работает нынче
  • а какие вы логи хотите лить в КХ?
  • https://t.me/clickhouse_ru
    @sc0rp10 #61237 01:29 PM, 07 Aug 2018
    версия logstash-mixin-http_client (<6.0.0) конфликтует с той, что поставляется с логстешем 6.2
  • https://t.me/clickhouse_ru
    @sc0rp10 ↶ Reply to #61236 #61238 01:29 PM, 07 Aug 2018
    небольшое кол-во логов приложения
  • @konstantin_mitjurin #61239 01:30 PM, 07 Aug 2018
    а у приложения нет возможности конфигурировать log format?
  • @konstantin_mitjurin #61240 01:30 PM, 07 Aug 2018
    я лью в КХ аксес логи nginx
  • https://t.me/clickhouse_ru
    @sc0rp10 #61241 01:30 PM, 07 Aug 2018
    приложение не хочется учить само ходить в КХ
  • @konstantin_mitjurin #61242 01:31 PM, 07 Aug 2018
    так не надо, его учить ходить в КХ
  • https://t.me/clickhouse_ru
    @sc0rp10 #61243 01:31 PM, 07 Aug 2018
    пусть оно и дальше пишет в файл, который ротируется и прочее, а filebeat + logstash пишут в кх
  • https://t.me/clickhouse_ru
    @sc0rp10 ↶ Reply to #61242 #61244 01:31 PM, 07 Aug 2018
    а куда его писать?
  • @konstantin_mitjurin #61245 01:32 PM, 07 Aug 2018
    я сделал все банально просто: в nginx сформировал access log в json формате, и повесил на крон баш скрипт, которые раз в 5 минут ротирует лог файл и льет данные в КХ
  • @konstantin_mitjurin #61246 01:32 PM, 07 Aug 2018
    да, попахивает велосипедом, но работает на ура
  • https://t.me/clickhouse_ru
    @sc0rp10 #61247 01:32 PM, 07 Aug 2018
    это немного топорно, ага
  • @konstantin_mitjurin #61248 01:33 PM, 07 Aug 2018
    да, топорно, но мне ничего более и не надо
  • https://t.me/clickhouse_ru
    @yurikosan #61250 03:12 PM, 07 Aug 2018
    Привет. Подскажите пжлст такой момент.

    У меня таблица
    SummingMergeTree(event_date, (adv_id, price, event_type), 8192, event_count)

    где я собираю события публикации/снятия с публикации объектов.

    Специфика такая, что юзеры могут перепубликовывать (без снятия) много раз объявления для:
    - актуализации даты
    - для изменения цены

    Такие события схлопываются успешно и суммируются в event_count
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @yurikosan #61252 03:13 PM, 07 Aug 2018
    Все ок. Но дальше юзер снимает с публикации объявление.
    А через пару дней - снова публикует.
    И эта публикация начинает схлопываться снова.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @yurikosan #61254 03:13 PM, 07 Aug 2018
    А делать этого мне нельзя, так как это не последовательно идущие публикации.
    Последовательность разрывается событием UNPUBLISH.

    Средствами движка можно как то реализовать схлопывание только последовательно идущих одинаковых значений первичного ключа (adv_id, price, event_type) ?
  • Нет, не собираем.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61254 #61256 03:15 PM, 07 Aug 2018
    При unpublish версию документа меняйте и запихайте её в ПК
  • https://t.me/clickhouse_ru
    @343206394 #61257 03:15 PM, 07 Aug 2018
    Добрый вечер, как из массива строку получить не подскажите?
  • https://t.me/clickhouse_ru
    @343206394 #61258 03:15 PM, 07 Aug 2018
    [1,2,4,5] -> 1_2_4_5
  • https://t.me/clickhouse_ru
    это на ReplacingMergeTree значит переходить надо? там версии указываются
  • https://t.me/clickhouse_ru
    @oZZyTOP ↶ Reply to #61255 #61260 03:16 PM, 07 Aug 2018
    спасибо
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #61257 #61263 03:18 PM, 07 Aug 2018
    arrayStringConcat(arrayMap(x -> toString(x), [1, 2, 3, 4]), '_')
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61257 #61264 03:18 PM, 07 Aug 2018
    arrayStringConcat

    SELECT arrayStringConcat(['a', 'b', 'c'], '_')

    ┌─arrayStringConcat(['a', 'b', 'c'], '_')─┐
    │ a_b_c │
    └─────────────────────────────────────────┘
  • https://t.me/clickhouse_ru
    @343206394 #61265 03:18 PM, 07 Aug 2018
    Спсб большое в доках не нашел - плохо искал
  • https://t.me/clickhouse_ru
    понял мысль. спасибо, можно и на прежнем двиге остаться
  • https://t.me/clickhouse_ru
    First argument for function arrayStringConcat must be array of strings..
  • https://t.me/clickhouse_ru
    @343206394 #61268 03:22 PM, 07 Aug 2018
    A если целые то какая магия?
  • https://t.me/clickhouse_ru
    @vstepankov #61269 03:23 PM, 07 Aug 2018
    привести к строке?
  • https://t.me/clickhouse_ru
    @343206394 #61270 03:24 PM, 07 Aug 2018
    ага
  • https://t.me/clickhouse_ru
    @Krashuevina #61271 03:26 PM, 07 Aug 2018
    arrayMap
  • https://t.me/clickhouse_ru
    @343206394 #61272 03:27 PM, 07 Aug 2018
    Спсб
  • https://t.me/clickhouse_ru
    @343206394 #61273 03:27 PM, 07 Aug 2018
    Чувствую летать будет ))
  • https://t.me/clickhouse_ru
    @marshalov #61274 04:31 PM, 07 Aug 2018
    @milovidov_an Подскажи, другие алгоритмы джоинов помимо hash join не планируются?
  • Планируем сделать merge join.
    Также уже сейчас есть nested loops (для cross join).
  • https://t.me/clickhouse_ru
    merge join - это отлично. Смешно ) я вообще не знал, что есть cross join, ведь в доке он не описан. Хотелось бы возможно выбора nested loops для всего, потому что:
    1) Не всегда весь набор таблиц, участвующих в join, влезает в память
    2)Часто нужен джоин не только на равенство колонок
  • https://t.me/clickhouse_ru
    @den_crane #61277 04:59 PM, 07 Aug 2018
    @milovidov_an я попробовал 18.1 и сразу наступил на https://github.com/yandex/ClickHouse/issues/2795
    и я не могу понять почему это вообще сломалось (читая readme и комиты) и вот теперь уже страшно вообще тестить 18-ю, там вообще много затронуто и что могло сломаться еще?
  • https://t.me/clickhouse_ru
    @quarrant #61278 06:24 PM, 07 Aug 2018
    Разработчики КХ, это просто песня, спасибо вам)
  • https://t.me/clickhouse_ru
    @kenota #61279 06:31 PM, 07 Aug 2018
    Я помню на митапе в Берлине обсуждался вопрос отсутствия английского слогана для кх. Как на счёт "Clickhouse - performance full house" ?)
  • https://t.me/clickhouse_ru
    @quarrant #61280 06:36 PM, 07 Aug 2018
    Нет правда мы не КХ написали корпоративный мессенджер =) действильно fullhouse
  • https://t.me/clickhouse_ru
    @yourock88 #61281 06:51 PM, 07 Aug 2018
    ClickHouse does not lag?
  • https://t.me/clickhouse_ru
    @den_crane #61282 06:51 PM, 07 Aug 2018
    да просто написать Clickhouse -- ne tormozit.
    со спатником и перестройкой прокатило.
  • https://t.me/clickhouse_ru
    @yourock88 #61283 06:51 PM, 07 Aug 2018
    Is ClickHouse slow? Nyet
  • https://t.me/clickhouse_ru
    @399999446 #61284 06:52 PM, 07 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @den_crane #61285 06:59 PM, 07 Aug 2018
    clickhouse never slow down
  • https://t.me/clickhouse_ru
    @stufently #61286 07:02 PM, 07 Aug 2018
    Даун можно опустить
  • https://t.me/clickhouse_ru
    @quarrant #61287 07:12 PM, 07 Aug 2018
    clickhouse - no chaos
  • https://t.me/clickhouse_ru
    @Imaskar ↶ Reply to #61287 #61288 08:42 PM, 07 Aug 2018
    не катит, если читать правильно(
  • https://t.me/clickhouse_ru
    @nordluf ↶ Reply to #61275 #61289 09:18 PM, 07 Aug 2018
    А где бы почитать об этом? :(
  • Я тоже (пока) не знаю, каким образом это сломалось. Ошибка для нас новая; сами уже используем версию 18.5.1 в продакшене. Сейчас будем разбираться.

    По количеству изменений, не смотря на изменение схемы версионирования, разница между версиями 1.1.54394 и 18.1.0 такая же как при других релизах.
  • У нас в настоящее время идёт работа по JOIN. Один из пунктов - поддержка варианта записи, в котором таблицы перечисляются через запятую, а условия приводятся в WHERE. Такой вариант преобразуется в INNER JOIN путём переноса максимального возможного количества условий в ON, но если таких нет - получится CROSS JOIN.
  • Мне не совсем понятно, как ClickHouse подходит для мессенджера. Можно складывать все сообщения в таблицу для аналитики. Но в качестве основной базы для мессенджера - это вряд ли.
  • https://t.me/clickhouse_ru
    @xtwist #61293 09:33 PM, 07 Aug 2018
    ClickHouse - performance first 🤘🏻
  • https://t.me/clickhouse_ru
    *niet
  • 08 August 2018 (132 messages)
  • https://t.me/clickhouse_ru
    А потом еще добавить "(+)"-синтаксис из оракла для outer join и вообще огонь! :)
  • https://t.me/clickhouse_ru
    @metikovvadim #61296 05:05 AM, 08 Aug 2018
    Привет всем!
    Кто подскажет, что необходимо сделать после изменения схемы хранения, чтобы КХ перезста смердживать данные до 1 минуты, конфиг такой:
    <pattern>
    <regexp>^DevOps\.clickhouse\.test\.</regexp>
    <function>avg</function>
    <retention>
    <age>0</age>
    <precision>5</precision>
    </retention>
    </pattern>
    а данные:
    SELECT
    Timestamp,
    Value
    FROM graphite
    WHERE Path = 'DevOps.clickhouse.test.testval'
    ORDER BY Timestamp ASC

    ┌──Timestamp─┬──────────────Value─┐
    │ 1533703153 │ 6 │
    │ 1533703199 │ 13.5 │
    │ 1533703259 │ 34.333333333333336 │
    │ 1533703269 │ 43.5 │
    │ 1533703319 │ 90.5 │
    │ 1533703342 │ 116.16666666666667 │
    │ 1533703439 │ 163.64285714285714 │
    │ 1533703492 │ 219 │
    │ 1533703619 │ 257 │
    │ 1533703679 │ 321.5 │
    │ 1533703739 │ 375 │
    │ 1533703784 │ 415.5263157894737 │
    │ 1533703799 │ 433 │
    │ 1533703859 │ 492 │
    │ 1533703919 │ 522 │
    │ 1533703979 │ 577.5 │
    │ 1533704039 │ 640.5 │
    │ 1533704099 │ 694.5 │
    │ 1533704119 │ 714 │
    │ 1533704219 │ 746.5 │
    │ 1533704246 │ 767.0357142857143 │
    │ 1533704279 │ 801 │
    │ 1533704339 │ 856.90625 │
    │ 1533704395 │ 911.5 │
    │ 1533704459 │ 922 │
    │ 1533704519 │ 981.5 │
    │ 1533704579 │ 1036.5 │
    │ 1533704623 │ 1078.1818181818182 │
    │ 1533704639 │ 1092.5 │
    │ 1533704642 │ 1102 │
    │ 1533704663 │ 1113.5 │
    │ 1533704679 │ 1131.5 │
    └────────────┴────────────────────┘
    шлю каждую секунду
  • https://t.me/clickhouse_ru
    @metikovvadim #61297 05:05 AM, 08 Aug 2018
    инкрементальный счетчик
  • https://t.me/clickhouse_ru
    +1. Очень ждем. И ещё бы разобраться с поведением звездочки и алиасов https://github.com/yandex/ClickHouse/issues/2786
    Unexpected SELECT * with Join #2786

    Steps to reproduce the behavior SELECT * FROM (SELECT 1 AS id, 2 AS value) ANY INNER JOIN (SELECT 1 AS id, 2 AS values) USING id; Expected Result 1 2 2 Actual Result 1 2

  • @dIoMeDs #61300 06:20 AM, 08 Aug 2018
    Подскажите пожалуйста по поводу рабочей практики бекапа данных КХ. Кто как делает?
  • https://t.me/clickhouse_ru
    Настройки в отжельном xml-файле. Он просто не действует. Как заставить КХ брать настройки хранения из отдельного файла?
    пробовал его и <include_from> и складывать в conf.d рядом с config.xml
  • @ligich ↶ Reply to #61300 #61302 07:19 AM, 08 Aug 2018
    мы пишем в 2 кластера
  • @ligich #61303 07:20 AM, 08 Aug 2018
    даже, если мы представим, что мы сняли бекап в ~30ТБ, то время восстановления будет неприемлимо
  • @dIoMeDs ↶ Reply to #61302 #61304 07:22 AM, 08 Aug 2018
    А каким образом в два кластера? Вы имеете в виду шардирование? Или каким-то определенным образом данные перегоняете?
  • @ligich #61305 07:22 AM, 08 Aug 2018
    я имею ввиду 2 кластера отдельных
  • @ligich #61306 07:23 AM, 08 Aug 2018
    пишем в очередь, оттуда кладется в 2 очереди выходные. из выходных уже пишется в СН соблюдая очередность создания файлов
  • @myoldloverock #61307 07:24 AM, 08 Aug 2018
    Доброго времени суток! Господа кто нибудь связывал 1с и кх? Кх как бэкэнд в замену постгри
  • @dIoMeDs ↶ Reply to #61306 #61308 07:25 AM, 08 Aug 2018
    Т.е по сути вы просто дублируете данные?
  • @Lamobot #61309 07:25 AM, 08 Aug 2018
    По-моему, бэкапы это несколько другое - типа хранения данных на некоторый момент времени в прошлом. Чтобы в случае непреднамеренной порчи можно было восстановиться.
  • https://t.me/clickhouse_ru
    @Vasyaabr ↶ Reply to #61307 #61310 07:25 AM, 08 Aug 2018
    КХ для этого не предназначен, ИМХО.
  • @ligich ↶ Reply to #61308 #61311 07:25 AM, 08 Aug 2018
    да
  • @Lamobot #61312 07:25 AM, 08 Aug 2018
    В случае косяка, у вас данные попортятся в двух кластерах
  • @ligich #61313 07:26 AM, 08 Aug 2018
    партиции по суткам. их можно дропнуть и перезалить
  • Просто было интересно, то postgres маленько не доставляет (
  • @ligich #61315 07:27 AM, 08 Aug 2018
    файлы после обработки переезжают в папку processed и там живут несколько суток, так что можно все выправить
  • @ligich #61316 07:28 AM, 08 Aug 2018
    если что-то случится дропаем партиции и перекладываем файлы во входную очередь
  • @Lamobot ↶ Reply to #61315 #61317 07:28 AM, 08 Aug 2018
    Тогда зачем два кластера? Когда есть стандартная репликация, которая делает то же самое, по сути
  • @ligich #61318 07:28 AM, 08 Aug 2018
    что касается обновлений, то обновляются они раздельно и живут на разных версиях
  • https://t.me/clickhouse_ru
    @Vasyaabr ↶ Reply to #61314 #61319 07:28 AM, 08 Aug 2018
    postgres/mssql/oracle и КХ - это две принципиально разные парадигмы работы с данными. Ну не впихнешь 1С в колоночную аналитическую базу, как не старайся.
    Например в КХ нет UPDATE, это вас не смущает? :)
  • @ligich #61320 07:29 AM, 08 Aug 2018
    мы живем на арендованных серверах. там часто вылетают 2 диска из рейда 1 или было 3 диска из рейда 6
  • @ligich #61321 07:29 AM, 08 Aug 2018
    если такое происходит на ноде, ее надо переливать, а интерфейс зачастую 1 в таких серверах
  • Смущает)
  • https://t.me/clickhouse_ru
    @Vasyaabr ↶ Reply to #61322 #61323 07:31 AM, 08 Aug 2018
    И ещё много чего нет. Вот тут, например, хорошая статья (пусть и немного устаревшая): https://felixit.blog/2017/07/04/clickhouse-zachem/
    ClickHouse: Зачем

    Два англичанина ловят рыбу в Темзе. У одного дергается поплавок, он подсекает и вытаскивает прелестную русалку. Полюбовавшись ею, снимает русалку с крючка и бросает обратно в воду. Второй удивляетс...

  • Честь и хвала
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61313 #61325 07:32 AM, 08 Aug 2018
    Тогда нафига вам эти проблемы с 2-я разными кластерами, сделайте реплику и храните сырые данные для восстановления последних данных, для всего остального FREEZE PARTITION.
  • @ligich #61326 07:34 AM, 08 Aug 2018
    у нас нету проблем с 2 кластерами
  • https://t.me/clickhouse_ru
    Статья устарела, я осенью обновлю её. :)
  • @ligich #61328 07:34 AM, 08 Aug 2018
    еще решается вот такая проблема - "небыло печали - апдейтов накачали"
  • https://t.me/clickhouse_ru
    @Vasyaabr ↶ Reply to #61327 #61329 07:35 AM, 08 Aug 2018
    О, так это вы мой любимый автор в IT :)
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61326 #61330 07:36 AM, 08 Aug 2018
    У вас есть 2-а кластера в неизвестном относительно друг-друга состоянии, а так да, все норм)
  • https://t.me/clickhouse_ru
    @QuietFelix #61331 07:36 AM, 08 Aug 2018
    Тоже себя люблю, спасибо. :)
  • @ligich #61332 07:36 AM, 08 Aug 2018
    очереди мониторятся и есть тулл для отслеживания консистентности
  • @dIoMeDs ↶ Reply to #61332 #61333 07:37 AM, 08 Aug 2018
    А вот тут можно попросить подробнее? Чем и как?
  • @ligich #61334 07:37 AM, 08 Aug 2018
    на отчетах на данных с разных кластеров данные совпадают
  • @ligich ↶ Reply to #61333 #61335 07:38 AM, 08 Aug 2018
    если честно, то я не знаю. я девопс, тулл девелоперы запилили, но подозреваю что строятся 2 отчета и данные сравниваются
  • @dIoMeDs #61336 07:40 AM, 08 Aug 2018
    А мониторинг?
  • @ligich #61337 07:41 AM, 08 Aug 2018
    очереди мониторятся просто - количество файлов в очередях
  • @ligich #61338 07:42 AM, 08 Aug 2018
    по поводу тула - берутся данные почасовые и сравниваются
  • https://t.me/clickhouse_ru
    @quarrant ↶ Reply to #61292 #61339 07:43 AM, 08 Aug 2018
    Храним сообщения уже готовыми структурами в, уведомления о новых сообщениях выдергиваем по timestamp, работает, как часы
  • https://t.me/clickhouse_ru
    @quarrant ↶ Reply to #61339 #61340 07:44 AM, 08 Aug 2018
    Сейчас ботов пилим
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61339 #61341 07:44 AM, 08 Aug 2018
    Возьмите PostgreSQL ;)
  • https://t.me/clickhouse_ru
    @quarrant ↶ Reply to #61341 #61342 07:45 AM, 08 Aug 2018
    Есть выбор либо MSSQL через промежуточный API либо отдельный сервер с КХ )
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61342 #61343 07:45 AM, 08 Aug 2018
    MSSQL - отличная СУБД.
  • https://t.me/clickhouse_ru
    @quarrant #61344 07:46 AM, 08 Aug 2018
    Возможно, но промежуточный API, в текущей реализации, - нет
  • https://t.me/clickhouse_ru
    @metikovvadim #61345 07:57 AM, 08 Aug 2018
    Схему прореживания (graphite_rollup) можно как-то исменить без перезагрузки сервера ?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61345 #61346 08:27 AM, 08 Aug 2018
    Нет
  • https://t.me/clickhouse_ru
    @metikovvadim #61347 08:27 AM, 08 Aug 2018
    Спасибо. А инклюдить можно ее ?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61347 #61348 08:31 AM, 08 Aug 2018
    Там все можно инклудить, попробуйте, например, <graphite_rollup>conf.d/graphite_rollup.xml</graphite_rollup>
  • https://t.me/clickhouse_ru
    Так он проигнорировал настройки.
  • https://t.me/clickhouse_ru
    @Mike_Er #61350 09:11 AM, 08 Aug 2018
    Коллеги, добрый день, обновили тут кластер до 18.6.0 - отвалились все словари из постгреса через ODBC. Ошибку выдал следующую - https://pastebin.com/SxdiCPML . Я что-то упустил в чендж логе?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61349 #61351 09:12 AM, 08 Aug 2018
    <graphite_rollup_example>conf.d/graphite_rollup_example.xml</graphite_rollup_example>

    В /etc/clickhouse-server/conf.d/graphite_rollup_example.xml

    <?xml version="1.0"?>
    <yandex>
    <graphite_rollup_example>
    <pattern>
    <regexp>click_cost</regexp>
    <function>any</function>
    <retention>
    <age>0</age>
    <precision>3600</precision>
    </retention>
    <retention>
    <age>86400</age>
    <precision>60</precision>
    </retention>
    </pattern>
    <default>
    <function>max</function>
    <retention>
    <age>0</age>
    <precision>60</precision>
    </retention>
    <retention>
    <age>3600</age>
    <precision>300</precision>
    </retention>
    <retention>
    <age>86400</age>
    <precision>3600</precision>
    </retention>
    </default>
    </graphite_rollup_example>
    </yandex>
  • https://t.me/clickhouse_ru
    @kshvakov #61352 09:13 AM, 08 Aug 2018
    Можно посмотреть /etc/clickhouse-server/config-preprocessed.xml он там заменит секцию graphite_rollup_example на ту что в conf.d
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61350 #61353 09:20 AM, 08 Aug 2018
    unixODBC connection failed after upgrade to 18.5.1 · Issue #2806 · yandex/ClickHouse

    Clickhouse failed to connect to unixODBC datasource after upgrade from 18.1.0 to 18.5.1 Exception: Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = Connection attempt failed: Connection...

  • https://t.me/clickhouse_ru
    @Mike_Er ↶ Reply to #61353 #61354 09:23 AM, 08 Aug 2018
    Благодарю - не додумался баги на гитхабе посмотреть. Буду ждать резолва тогда.
  • https://t.me/clickhouse_ru
    @metikovvadim #61355 09:59 AM, 08 Aug 2018
    Недавно обновились на версию 18.5.1-1el7
    Сегодня посыпалось:
    ] <Error> default.graphite (StorageReplicatedMergeTree): Code: 228, e.displayText() = DB::Exception: Unexpected uncompressed size of file Date.bin in data part, e.what() = DB::Exception. Data after merge is not byte-identical to data on another replicas. There could be several reasons: 1. Using newer version of compression library after server update. 2. Using another compression method. 3. Non-deterministic compression algorithm (highly unlikely). 4. Non-deterministic merge algorithm due to logical error in code. 5. Data corruption in memory due to bug in code. 6. Data corruption in memory due to hardware issue. 7. Manual modification of source data after server startup. 8. Manual modification of checksums stored in ZooKeeper. We will download merged part from replica to force byte-identical result.
  • https://t.me/clickhouse_ru
    @Mike_Er #61356 10:05 AM, 08 Aug 2018
    Откатиться чтоли с 18.хх пока не поздно :(
  • https://t.me/clickhouse_ru
    @kshvakov #61357 10:07 AM, 08 Aug 2018
    Просто нужно иметь стейджинг и на нем играться; повезло с версией - выкатываем в продакшен )
  • https://t.me/clickhouse_ru
    @Mike_Er #61358 10:09 AM, 08 Aug 2018
    тут согласен
  • https://t.me/clickhouse_ru
    @metikovvadim #61359 10:11 AM, 08 Aug 2018
    откатился на 1.1.54390 , ошибка не ушла
  • https://t.me/clickhouse_ru
    @metikovvadim #61360 10:11 AM, 08 Aug 2018
    так проявилось через дня 3
  • https://t.me/clickhouse_ru
    @metikovvadim #61361 10:11 AM, 08 Aug 2018
    и на стейджинге раскатано было
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61359 #61362 11:08 AM, 08 Aug 2018
    Обычно данные кораптятся только в одну сторону и откатом версии тут не помочь. У вас конфиг сжатия на репликах одинаковый, а то мало ли одна жмет lz4, другая zstd. Или реплики были разных версий и чудили.
  • @alexander_sabaev #61363 11:08 AM, 08 Aug 2018
    Joined.
  • @alexander_sabaev #61364 11:11 AM, 08 Aug 2018
    Добрый день. У меня падает клиент. gdb говорит это:

    mnstat19.luxup.ru :) show tables

    SHOW TABLES

    Program received signal SIGILL, Illegal instruction.
    0x0000000005132ae4 in DB::PrettyBlockOutputStream::calculateWidths(DB::Block const&, std::vector<DB::PODArray<unsigned long, 4096ul, Allocator<false>, 0ul>, std::allocator<DB::PODArray<unsigned long, 4096ul, Allocator<false>, 0ul> > >&, DB::PODArray<unsigned long, 4096ul, Allocator<false>, 0ul>&, DB::PODArray<unsigned long, 4096ul, Allocator<false>, 0ul>&, DB::FormatSettings const&) ()
    (gdb)
  • @alexander_sabaev #61365 11:12 AM, 08 Aug 2018
    как я понимаю разработчики кидают эксепшн - но ничего не пишут чтобы понять причину
  • @alexander_sabaev #61366 11:12 AM, 08 Aug 2018
    клиент свежий из репозитория. на другой машине такой же клиент работает
  • @vstakhov #61367 11:14 AM, 08 Aug 2018
    cat /proc/cpuinfo | fgrep sse4_2 | uniq
  • @alexander_sabaev #61368 11:15 AM, 08 Aug 2018
    а разве клиенту это нужно ?
  • @alexander_sabaev #61369 11:16 AM, 08 Aug 2018
    sse4_2 эта машине не поддерживает - но клиент вроде в этом не должен нуждаться
  • https://t.me/clickhouse_ru
    У клиента и сервера бинарник один. Параметры запуска разные
  • https://t.me/clickhouse_ru
    Да, какое-то время были разные версии на репликах. Сейчас 2я пишет:
    <Error> default.graphite (StorageReplicatedMergeTree): Code: 40, e.displayText() = DB::Exception: Checksums of parts don't match: hash of uncompressed files doesn't match, uncompressed hash of compressed files doesn't match, e.what() = DB::Exception. Data after merge is not byte-identical to data on another replicas. There could be several reasons: 1. Using newer version of compression library after server update. 2. Using another compression method. 3. Non-deterministic compression algorithm (highly unlikely). 4. Non-deterministic merge algorithm due to logical error in code. 5. Data corruption in memory due to bug in code. 6. Data corruption in memory due to hardware issue. 7. Manual modification of source data after server startup. 8. Manual modification of checksums stored in ZooKeeper. We will download merged part from replica to force byte-identical result.
  • https://t.me/clickhouse_ru
    @metikovvadim #61372 11:23 AM, 08 Aug 2018
    Решено перналить ее с первой, так как при ее остановке первая перестала писать ошибку.
  • https://t.me/clickhouse_ru
    @Vasyaabr #61373 11:28 AM, 08 Aug 2018
    Аналогичная ошибка, встречалась уже не первый раз, и ругается всегда на поле с установленным значением DEAFULT (но может так совпало).
    Но, насколько я понимаю по тексту ошибки, КХ сам должен привести данные в соответствие (We will download merged part from replica to force byte-identical result)?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61373 #61374 11:30 AM, 08 Aug 2018
    Да, он должен скачать проблемный кусок с другой реплики если это возможно.
  • @vstakhov ↶ Reply to #61369 #61375 11:42 AM, 08 Aug 2018
    если собирать все с -march=sse4.2, то эти инструкции будут везде. сомневаюсь, что у клиента какие-то особые флаги сборки
  • https://t.me/clickhouse_ru
    @proller #61376 12:01 PM, 08 Aug 2018
    можно собрать всё без sse, в чате нужная строка запуска сборки уже проскакивала
  • https://t.me/clickhouse_ru
    так там один же бинарник , он и сервер и клиент .
  • @vstakhov #61378 12:08 PM, 08 Aug 2018
    гм, а есть ли способ передать через http интерфейс два запроса, скажем, create table + insert в нее же?
  • @vstakhov #61379 12:10 PM, 08 Aug 2018
    мда, похоже, мне со своей асинхронщиной придется выдумывать монады 😕
  • https://t.me/clickhouse_ru
    Что у вас за асинхронщина и зачем что-то выдумывать?
  • @vstakhov #61381 12:12 PM, 08 Aug 2018
    ну, у меня асинхронные запросы к http. корутин я пока не завел, поэтому приходится по-старинке делать коллбэки
  • @vstakhov #61382 12:13 PM, 08 Aug 2018
    никакой гарантии, что запрос X1 уйдет раньше запроса X2 нет
  • @vstakhov #61383 12:13 PM, 08 Aug 2018
    поэтому инсерт может улететь до того, как мы создали таблицу
  • @vstakhov #61384 01:02 PM, 08 Aug 2018
    пришлось делать через жопу 🙁 https://github.com/vstakhov/rspamd/blob/master/src/plugins/lua/clickhouse.lua#L746
    rspamd/rspamd

    Rapid spam filtering system. Contribute to rspamd/rspamd development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    @vstepankov #61385 01:06 PM, 08 Aug 2018
    жопа тоже интерфейс ¯\_(ツ)_/¯
  • какая глубокая мысль
  • https://t.me/clickhouse_ru
    @regorov #61387 02:20 PM, 08 Aug 2018
    Робяты, вопрос. Как может так оказаться, что при создании таблицы с таким движком, в ней хранится две записи.
  • https://t.me/clickhouse_ru
    @regorov #61388 02:20 PM, 08 Aug 2018
    version UInt64
    )
    Engine = ReplacingMergeTree(version)
    ORDER BY (id);
  • https://t.me/clickhouse_ru
    @regorov #61389 02:28 PM, 08 Aug 2018
    попали они туда через INSERT понятное дело. Есть два подозрения. Или в одном пачке пришли сразу. Или при наличии одинакового version, одна запись не убирается?
  • @vstakhov #61390 02:31 PM, 08 Aug 2018
    после альтера перестали работать запросы:
    DB::Exception: Position 2 is out of bound in Block::safeGetByPosition(), max position = 0,
    или
    DB::Exception: Not found column IPNet in block. There are only columns: Date.
  • @vstakhov #61391 02:31 PM, 08 Aug 2018
    Date - старая колонка, хочу выбрать новую - IPNet
  • @vstakhov #61392 02:31 PM, 08 Aug 2018
    select IPNet from rspamd where Date = today();
  • @vstakhov #61393 02:32 PM, 08 Aug 2018
    при этом такой запрос отрабатывает: select IPNet from rspamd order by TS desc limit 10000
  • https://t.me/clickhouse_ru
    @125885693 #61394 02:41 PM, 08 Aug 2018
    коллеги, подскажите, возможно ли использовать materialized столбцы для dictionary таблиц?
    при создании такой таблицы ошибки не возникает, однако при попытке доступа к столбцу получаю not found column
  • @vstakhov #61395 02:56 PM, 08 Aug 2018
    да, похоже на багу:

    select IPNet from rspamd where Date = today();
    Code: 10. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Not found column IPNet in block. There are only columns: Date.

    чуть-чуть поменяем запрос на эквивалентный:

    select IPNet from rspamd where Date = today() and TS > '2018-08-08 00:00:00';
    1001327 rows in set. Elapsed: 0.060 sec. Processed 1.08 million rows, 15.69 MB (18.04 million rows/s., 261.29 MB/s.)
  • https://t.me/clickhouse_ru
    @den_crane #61396 03:06 PM, 08 Aug 2018
    забавно, я как раз сегодня наступил
    на Not found column ... in block
    https://github.com/yandex/ClickHouse/issues/2827
  • @vstakhov #61397 03:07 PM, 08 Aug 2018
    ага
  • https://t.me/clickhouse_ru
    @den_crane #61398 03:07 PM, 08 Aug 2018
    select * from rspamd where Date = today();
    у вас наверное optimize move to prewhere включен
  • @vstakhov #61399 03:08 PM, 08 Aug 2018
    * как раз выбирается
  • @vstakhov #61400 03:08 PM, 08 Aug 2018
    а новая колонка - нет
  • @vstakhov #61401 03:09 PM, 08 Aug 2018
    если не добавить вот этот странный AND TS > '2018-08-08 00:00:00'
  • https://t.me/clickhouse_ru
    @den_crane #61402 03:09 PM, 08 Aug 2018
    в * новая колонка (IPNet) есть? ну и используйте это как воркэраунд
  • @vstakhov #61403 03:10 PM, 08 Aug 2018
    у себя-то я и грохнуть могу нафиг эти таблицы, а не заморачиваться альтером
  • @vstakhov #61404 03:10 PM, 08 Aug 2018
    но вот пользователи не поймут-с
  • https://t.me/clickhouse_ru
    @den_crane #61405 03:10 PM, 08 Aug 2018
    я думаю проще можно 1. optimize final все пофиксит или 2. выбирайте IPNet,date
  • https://t.me/clickhouse_ru
    replacing не гарантирует отсуствие дубликатов, они МОГУТ схлопываться в будущем при мерже.

    optimize final инициирует мерж и МОЖЕТ схлопнуть

    select from table final выбирает без дубликатов (но работает до 1000 раз медленнее)

    version -- не обязателен, КХ сам сэмулирует это поле.

    схлопывание работает только в рамках партиции

    create table y(a Int64, b Int64, z Date) engine = ReplacingMergeTree partition by (a,z) order by b;
    insert into y select 1,1, toDate('2018-01-01') from numbers(1);
    insert into y select 2,1, toDate('2018-02-01') from numbers(1);
    optimize table y final;

    select count() cnt from y
    cnt
    2

    select count() cnt from y final
    cnt
    1
  • @vstakhov ↶ Reply to #61405 #61407 03:20 PM, 08 Aug 2018
    optimize не пофиксил
  • @vstakhov #61408 03:20 PM, 08 Aug 2018
    второй способ тоже не помог
  • https://t.me/clickhouse_ru
    @den_crane #61409 03:22 PM, 08 Aug 2018
    какая версия КХ? как делали optimize ?
  • https://t.me/clickhouse_ru
    @den_crane #61410 03:22 PM, 08 Aug 2018
    select * возвращает новое поле ?
  • @vstakhov #61411 03:23 PM, 08 Aug 2018
    select * возвращает
  • @vstakhov #61412 03:23 PM, 08 Aug 2018
    optimize делал без final, сейчас пробую с final
  • @vstakhov #61413 03:23 PM, 08 Aug 2018
    да, после этого заработало
  • https://t.me/clickhouse_ru
    да забавно, надо другую колонку добавлять (которая не в prewhere), чтобы не было экспепшина

    select c,d,z from y prewhere a <1000 -- работает
    select c,d,a from y prewhere a <1000 -- не работает
  • https://t.me/clickhouse_ru
    final просто создал эту колонку для старых строк, естественно перезапишутся все 100 тыщ миллиардов строк, поэтому не всегда возможно это.
  • @vstakhov ↶ Reply to #61415 #61416 03:57 PM, 08 Aug 2018
    да, я думаю, что это все-таки бага в сабже, которую неплохо было бы исправить
  • https://t.me/clickhouse_ru
    @den_crane #61417 03:58 PM, 08 Aug 2018
    а что у кого-то были сомнения?
  • https://t.me/clickhouse_ru
    @Sfinks80 #61418 04:29 PM, 08 Aug 2018
    SELECT dictGetUInt64('urls', 'project_id', toUInt64(pid)) FROM тра-та-та....

    ↘️ Progress: 3.54 million rows, 159.72 MB (3.40 million rows/s., 153.57 MB/s.) 66%Received exception from server (version 1.1.54385):
    Code: 69. DB::Exception: Received from ...... DB::Exception: urls: identifier should be less than 500000.
    Подскажите, как бороться?
  • @antonio_antuan #61419 04:31 PM, 08 Aug 2018
    поменяйте тип источника на flat
  • @antonio_antuan #61420 04:32 PM, 08 Aug 2018
    в конфиге словаря
  • @antonio_antuan #61421 04:32 PM, 08 Aug 2018
    hashed нельзя использовать, если есть записи с идентификатором > 500000
  • @ztlpn #61422 04:33 PM, 08 Aug 2018
    Только наоборот :)
  • @antonio_antuan #61423 04:34 PM, 08 Aug 2018
    ну да, попутал :)
  • https://t.me/clickhouse_ru
    @Sfinks80 #61424 04:34 PM, 08 Aug 2018
    Да, уже нашел, спасибо!
  • https://t.me/clickhouse_ru
    @ValarMorghuliis #61425 04:51 PM, 08 Aug 2018
    Всем привет! Вырос на кластере резко compressed read buffer - https://yadi.sk/i/PVYBui073a3LWz - стали дольше работать основные запросы, хотя обрабатываемая память сиильно не увеличилась - это же не похоже на сложные запросы? Может кто сталкивался?
  • https://t.me/clickhouse_ru
    @ValarMorghuliis #61426 05:06 PM, 08 Aug 2018
    В логах ошибки вида ServerErrorHandler: Code: 210, e.displayText() = DB::NetException: Connection reset by peer: while reading from socket
  • https://t.me/clickhouse_ru
    @DenisTST #61427 07:45 PM, 08 Aug 2018
    Joined.
  • 09 August 2018 (228 messages)
  • https://t.me/clickhouse_ru
    @125504471 #61429 12:25 AM, 09 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    Ошибка не уходит и повторяется 5-10 раз в секунду. На 2м сервере в логе при этом:
    [ 16 ] <Error> default.graphite (StorageReplicatedMergeTree): Code: 40, e.displayText() = DB::Exception: Checksums of parts don't match: hash of uncompressed files doesn't match, uncompressed hash of compressed files doesn't match, e.what() = DB::Exception. Data after merge is not byte-identical to data on another replicas. There could be several reasons: 1. Using newer version of compression library after server update. 2. Using another compression method. 3. Non-deterministic compression algorithm (highly unlikely). 4. Non-deterministic merge algorithm due to logical error in code. 5. Data corruption in memory due to bug in code. 6. Data corruption in memory due to hardware issue. 7. Manual modification of source data after server startup. 8. Manual modification of checksums stored in ZooKeeper. We will download merged part from replica to force byte-identical result.

    Как валидно дропнуть эту реплику и перезалить с 1го, без смены ID реплики?
  • https://t.me/clickhouse_ru
    поискать по слову force в документации, там было про файловый флаг, после выставления которого идёт перезалитие
  • https://t.me/clickhouse_ru
    @metikovvadim #61432 04:15 AM, 09 Aug 2018
    я дропнул таблицу на 2м, пересоздал и пошла реплика.
  • https://t.me/clickhouse_ru
    @metikovvadim #61433 04:16 AM, 09 Aug 2018
    Ещё вопрос, если меняется схема прореживания (graphite_rollup) в конфиге, нужно менять и перезагружать сервер на всех репликах и максимально синхронно, так?
  • https://t.me/clickhouse_ru
    @metikovvadim #61434 04:53 AM, 09 Aug 2018
    Остановил 2й сервер, так как реплика с 1го отняла все ресурсы(LoadAverage подскочил вдвое больше числа), и на 1м в логах пошли:
    <Error> executeQuery: Code: 252, e.displayText() = DB::Exception: Too many parts (300). Merges are processing significantly slower than inserts., e.what() = DB::Exception (from 127.0.0.1:57754)
    Прошло полчаса без нагрузки, а первый ни строчки не вставил, и все пишет <Error> executeQuery: Code: 252, e.displayText() = DB::Exception: Too many parts (300). Merges are processing significantly slower than inserts., e.what() = DB::Exception (from 127.0.0.1:57754)
  • https://t.me/clickhouse_ru
    А откуда у вас столько партов? Надо наверно сперва решить с этим вопрос
  • https://t.me/clickhouse_ru
    @metikovvadim #61436 04:57 AM, 09 Aug 2018
    Обычно в него пишется несколько Миллионов метрик в минуту, сейчас около 200 метрик
  • https://t.me/clickhouse_ru
    @metikovvadim #61437 04:57 AM, 09 Aug 2018
    ни один файл из carbon-clickhouse не удалился
  • https://t.me/clickhouse_ru
    @metikovvadim #61438 04:58 AM, 09 Aug 2018
    а сколько должно быть, я искад по данной ошибке, и у других не 300
  • https://t.me/clickhouse_ru
    @metikovvadim #61439 04:59 AM, 09 Aug 2018
    carbon-clickhouse вставляет каждые 10 секунд
  • https://t.me/clickhouse_ru
    @metikovvadim #61440 04:59 AM, 09 Aug 2018
    то есть примерно по 600к записей за раз
  • https://t.me/clickhouse_ru
    @metikovvadim #61441 05:00 AM, 09 Aug 2018
    @stufently Я так понимаю, таких ошибок не должно быть, когда с сервера льется реплика на новый(объем данных около 2 ТБ)
  • https://t.me/clickhouse_ru
    @stufently #61442 05:03 AM, 09 Aug 2018
    Если у вас это на пустой реплике то ощущение что настройки или версии кх у вас разные
  • https://t.me/clickhouse_ru
    @stufently #61443 05:03 AM, 09 Aug 2018
    Если на обоих одно и тоже то такие ошибки должны быть везде
  • https://t.me/clickhouse_ru
    @metikovvadim #61444 05:12 AM, 09 Aug 2018
    2я реплика остановлена сейчас, 1я тормозит и сыплет ошибками, процессоры загружены на 50-80%, вставка не идет
  • https://t.me/clickhouse_ru
    @stufently #61445 05:14 AM, 09 Aug 2018
    ну судя по всему первой не хватало совсем ресурсов и она не успевала мержить ваши парты
  • https://t.me/clickhouse_ru
    @stufently #61446 05:15 AM, 09 Aug 2018
    а что по конфигу сервера для реплики ?
  • https://t.me/clickhouse_ru
    @metikovvadim #61447 05:15 AM, 09 Aug 2018
    конфиг одинаковый, как узнать ,ч тосейчас делает сервер?
    в мерджах ничего
  • https://t.me/clickhouse_ru
    @stufently #61448 05:15 AM, 09 Aug 2018
    в целом мы так делали и вроде хватало ресурсов и на отдавать реплику и мержить , хотя у нас данных поменьше и вставка вероятно тоже
  • https://t.me/clickhouse_ru
    посмотреть в логе кх
  • https://t.me/clickhouse_ru
    @stufently #61450 05:16 AM, 09 Aug 2018
    ну и всегда можно зайти и посмотреть что с партами в каталоге дата кх
  • https://t.me/clickhouse_ru
    @metikovvadim #61451 05:25 AM, 09 Aug 2018
    в каталоге данных нет ни мерджей ни инзертов
  • https://t.me/clickhouse_ru
    @stufently #61452 05:27 AM, 09 Aug 2018
    ну тогда смотрите логи
  • https://t.me/clickhouse_ru
    @stufently #61453 05:27 AM, 09 Aug 2018
    странно что нет данных так как оно начинается сразу
  • https://t.me/clickhouse_ru
    @metikovvadim #61454 05:29 AM, 09 Aug 2018
    2й сервер поднялся кроном, остановил и все пошло, 1й отстал со вставкой на 1 час, сейчас наверстывает. @stufently Спасибо за помощь
  • https://t.me/clickhouse_ru
    @metikovvadim #61455 05:42 AM, 09 Aug 2018
    @stufently не подскажешь, от чего зависит быстродействие КХ? сейчас он вставляет в 1,5 раза(25М строк вместо 16М) больше данных чем обычно(данных накопилось на 1 час), хотя ранее при испытаниях(когда останавливал сервер и потом вставлялось из carbon-clickhouse) была скорость 3-5 раз(до 80М строк вместо 15М), процессоры заняты слабо(220% из 40 ядер), диски(ССД) отдыхают, памяти 100Г из 120Г свободно
  • https://t.me/clickhouse_ru
    @metikovvadim #61456 05:44 AM, 09 Aug 2018
    может подять
    <background_pool_size>50
    <background_schedule_pool_size>24
    ?
  • https://t.me/clickhouse_ru
    @stufently #61457 05:44 AM, 09 Aug 2018
    А есть ошибкт в еррор логе?
  • https://t.me/clickhouse_ru
    @stufently #61458 05:45 AM, 09 Aug 2018
    Вообще особого смысла ложить кх на такие супер толстые сервера не вижу
  • https://t.me/clickhouse_ru
    @metikovvadim #61459 05:46 AM, 09 Aug 2018
    2018.08.09 08:43:25.003270 [ 57 ] <Warning> default.graphite (ReplicatedMergeTreePartCheckThread): Checking if anyone has a part covering 20180708_20180731_711637_711662_11.
    2018.08.09 08:43:25.004147 [ 57 ] <Warning> default.graphite (ReplicatedMergeTreePartCheckThread): Found parts with the same min block and with the same max block as the missing part 20180708_20180731_711637_711662_11. Hoping that it will eventually appear as a result of a merge.
    2018.08.09 08:44:01.864955 [ 49 ] <Error> default.graphite (StorageReplicatedMergeTree): Code: 228, e.displayText() = DB::Exception: Unexpected uncompressed size of file Date.bin in data part, e.what() = DB::Exception. Data after merge is not byte-identical to data on another replicas. There could be several reasons: 1. Using newer version of compression library after server update. 2. Using another compression method. 3. Non-deterministic compression algorithm (highly unlikely). 4. Non-deterministic merge algorithm due to logical error in code. 5. Data corruption in memory due to bug in code. 6. Data corruption in memory due to hardware issue. 7. Manual modification of source data after server startup. 8. Manual modification of checksums stored in ZooKeeper. We will download merged part from replica to force byte-identical result.
    2018.08.09 08:44:01.865692 [ 111 ] <Warning> default.graphite (ReplicatedMergeTreePartCheckThread): Checking part 20180708_20180731_711637_711662_11
    2018.08.09 08:44:01.865950 [ 111 ] <Warning> default.graphite (ReplicatedMergeTreePartCheckThread): Checking if anyone has a part covering 20180708_20180731_711637_711662_11.
    2018.08.09 08:44:01.866669 [ 111 ] <Warning> default.graphite (ReplicatedMergeTreePartCheckThread): Found parts with the same min block and with the same max block as the missing part 20180708_20180731_711637_711662_11. Hoping that it will eventually appear as a result of a merge.
    2018.08.09 08:44:39.522705 [ 43 ] <Error> default.graphite (StorageReplicatedMergeTree): Code: 228, e.displayText() = DB::Exception: Unexpected uncompressed size of file Date.bin in data part, e.what() = DB::Exception. Data after merge is not byte-identical to data on another replicas. There could be several reasons: 1. Using newer version of compression library after server update. 2. Using another compression method. 3. Non-deterministic compression algorithm (highly unlikely). 4. Non-deterministic merge algorithm due to logical error in code. 5. Data corruption in memory due to bug in code. 6. Data corruption in memory due to hardware issue. 7. Manual modification of source data after server startup. 8. Manual modification of checksums stored in ZooKeeper. We will download merged part from replica to force byte-identical result.
    2018.08.09 08:44:39.531295 [ 112 ] <Warning> default.graphite (ReplicatedMergeTreePartCheckThread): Checking part 20180708_20180731_711637_711662_11
    2018.08.09 08:44:39.531490 [ 112 ] <Warning> default.graphite (ReplicatedMergeTreePartCheckThread): Checking if anyone has a part covering 20180708_20180731_711637_711662_11.
    2018.08.09 08:44:39.532384 [ 112 ] <Warning> default.graphite (ReplicatedMergeTreePartCheckThread): Found parts with the same min block and with the same max block as the missing part 20180708_20180731_711637_711662_11. Hoping that it will eventually appear as a result of a merge.
  • https://t.me/clickhouse_ru
    @metikovvadim #61460 05:46 AM, 09 Aug 2018
    сервер достался от графита(go-carbon)
  • https://t.me/clickhouse_ru
    @stufently #61461 05:47 AM, 09 Aug 2018
    Ощущение что у вас ещё мусор в зукипере остался как минимум
  • https://t.me/clickhouse_ru
    @metikovvadim #61462 05:48 AM, 09 Aug 2018
    мусор, думаю, от 3й реплики, которая сейчас также остановлена
  • https://t.me/clickhouse_ru
    @metikovvadim #61463 05:48 AM, 09 Aug 2018
    как-то можно ускорить КХ?
  • https://t.me/clickhouse_ru
    @metikovvadim #61464 05:49 AM, 09 Aug 2018
    ресурсов не ест, ощущение, что он однопоточный, ядро занято мерджами и ядро инзертами, итого 2 ядра из 40
  • https://t.me/clickhouse_ru
    @stufently #61465 05:49 AM, 09 Aug 2018
    Вообще надо было раскидать шарды по серверам попроще наверно
  • https://t.me/clickhouse_ru
    @stufently #61466 05:50 AM, 09 Aug 2018
    У нас вообще под кх изначально было 2 ядра 8 гигов оперативны
  • https://t.me/clickhouse_ru
    @metikovvadim #61467 05:50 AM, 09 Aug 2018
    нет шардов, но если так и буде тормозить с наливкой реплик, придется делить данные
  • https://t.me/clickhouse_ru
    @metikovvadim #61468 05:51 AM, 09 Aug 2018
    сервер и нагрузка с текущего графита, что ограничивает скорость мерджей, настройки выше не помогут?
  • https://t.me/clickhouse_ru
    @stufently #61469 05:51 AM, 09 Aug 2018
    Ну мне кажется в плане вертикального масштабирования все не так хорошо везде, а горизонтально все ок
  • https://t.me/clickhouse_ru
    @stufently #61470 05:51 AM, 09 Aug 2018
    Ну и вставки можно переносить между шардами если есть какие то проблемы
  • https://t.me/clickhouse_ru
    @metikovvadim #61471 05:53 AM, 09 Aug 2018
    когда читаешь с КХ то он утилизирует до 30 ядер и все ок, сейчас без чтения только вставка и оч медленно
  • https://t.me/clickhouse_ru
    надо наверно Миловидова спросить , я сказать четсно не сталкивался с медленной вставкой всегда хватало и не помню каких то материалов по тюнингу кх для максимальной вставки
  • https://t.me/clickhouse_ru
    @stufently #61473 05:56 AM, 09 Aug 2018
    а посмотрите еще у вас не ругается на то что мержи не идут из за того что кусков больше 300:
  • https://t.me/clickhouse_ru
    @stufently #61474 05:56 AM, 09 Aug 2018
    ?
  • https://t.me/clickhouse_ru
    @metikovvadim #61475 05:57 AM, 09 Aug 2018
    @milovidov_an Привет. Есть догадки, почему вставка замдлилась?
  • https://t.me/clickhouse_ru
    @stufently #61476 05:57 AM, 09 Aug 2018
    как было до этого , если ругается то надо просто количество партов разрешенных увеличить
  • https://t.me/clickhouse_ru
    @metikovvadim #61477 06:01 AM, 09 Aug 2018
    как это сделать? сейчас один диск из 10 на 35% занят вот и вся нагрузка
  • https://t.me/clickhouse_ru
    @metikovvadim #61478 06:04 AM, 09 Aug 2018
    Читал это : https://github.com/yandex/ClickHouse/issues/1510
    у нас 1.1.54390
    Merges are processing significantly slower than inserts #1510

    Hello, after update a server and client from the version 1.1.54189. to the latest 1.1.54310, we enconuntered with an error &quot;Too many parts (372). Merges are processing significantly slower than inserts&quot;. We have already added &lt;max_bytes_...

  • https://t.me/clickhouse_ru
    ну ошибку поискать в логе в текстовом просмотрщике или грепом
  • https://t.me/clickhouse_ru
    @metikovvadim #61480 06:07 AM, 09 Aug 2018
    сейчас нет ошибок, кроме мусора в зукипере
  • https://t.me/clickhouse_ru
    @metikovvadim #61481 06:08 AM, 09 Aug 2018
    МБ есть какая-то версия, которая точно стабильная?
    @stufently у вас какая ?
  • https://t.me/clickhouse_ru
    @stufently #61482 06:10 AM, 09 Aug 2018
    у меня какая то старая давно не обновлялся, смотрю пока тут сыпят по тихоньку ошибки из 18 версии, пока нет необходимости острой обновляться, хотя надо бы прикрутить делете
  • https://t.me/clickhouse_ru
    @stufently #61483 06:10 AM, 09 Aug 2018
    у меня 1.1.54370
  • https://t.me/clickhouse_ru
    эта проблема давно пофикшена , 300 партов и нельзя писать это не баг это как бы фича настраиваемая
  • https://t.me/clickhouse_ru
    @metikovvadim #61485 06:13 AM, 09 Aug 2018
    как настроить, что бы не останавливались инзерты при нагрузке?
  • https://t.me/clickhouse_ru
    @stufently #61486 06:14 AM, 09 Aug 2018
    ну вообще это шардами больше решается а так увеличить количество разрешенных партов не смерженных
  • https://t.me/clickhouse_ru
    @stufently #61487 06:14 AM, 09 Aug 2018
    но опять таки в миллион их не стоит поднимать это скажется на перфомансе
  • https://t.me/clickhouse_ru
    @metikovvadim #61488 06:21 AM, 09 Aug 2018
    удвоил background_pool_size до 100 , перезагрузил, смотрю
  • https://t.me/clickhouse_ru
    @metikovvadim #61489 06:22 AM, 09 Aug 2018
    судя по метрике insertedRows, не помогло
    @stufently не так увеличивать партишены?
  • https://t.me/clickhouse_ru
    @stufently #61490 06:23 AM, 09 Aug 2018
    ну если у вас нет ошибок что больше 300 партов и не лочится вставка то это не поможет , опция другая , по дефолту она 300, можно наверно ее легко найти в доке, на вскидку не помню как она называется
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61488 #61491 06:27 AM, 09 Aug 2018
    Вы так только память всю съедите.
  • https://t.me/clickhouse_ru
    @metikovvadim #61492 06:28 AM, 09 Aug 2018
    Памяти 100Г из 120 своюодно, КХ ест 4-5Г
  • https://t.me/clickhouse_ru
    @metikovvadim #61493 06:29 AM, 09 Aug 2018
    как распараллелить вставки/мерджи, сейчас ровно 2 ядра заняты
  • https://t.me/clickhouse_ru
    @metikovvadim #61494 06:31 AM, 09 Aug 2018
    в исходниках нашел:
    /** If more than this number active parts, throw 'Too many parts ...' exception */ \
    M(SettingUInt64, parts_to_throw_insert, 300)
  • https://t.me/clickhouse_ru
    @kshvakov #61495 06:31 AM, 09 Aug 2018
    Что там в select * system.merges ? Он еще может немержить из-за проблем с репликацией select * from system.replication_queue
  • https://t.me/clickhouse_ru
    @kshvakov #61496 06:31 AM, 09 Aug 2018
    Не надо их выше поднимать
  • https://t.me/clickhouse_ru
    @metikovvadim #61497 06:32 AM, 09 Aug 2018
    вот, сейчас вижу мердж:
    :) select progress from system.merges;

    SELECT progress
    FROM system.merges

    ┌────────────progress─┐
    │ 0.10913025462625675 │
  • https://t.me/clickhouse_ru
    @metikovvadim #61498 06:43 AM, 09 Aug 2018
    max_bytes_to_merge_at_max_space_in_pool поднять стоит?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61498 #61500 07:07 AM, 09 Aug 2018
    А в логи часто пишет что откинул мерж из-за этого?
  • @mgorkunov #61501 07:20 AM, 09 Aug 2018
    Joined.
  • @mgorkunov #61502 07:22 AM, 09 Aug 2018
    Всем привет! такой вопрос, есть ли возможность изменить индекс (добавить одно или несколько полей в него) для уже существующей таблицы?
  • https://t.me/clickhouse_ru
    @metikovvadim #61503 07:22 AM, 09 Aug 2018
    не поднимал, в логах аномального ничего нет
  • https://t.me/clickhouse_ru
    @metikovvadim #61504 07:23 AM, 09 Aug 2018
    сейчас идет долгий мердж, занял 28,5Г диска под него
  • https://t.me/clickhouse_ru
    @metikovvadim #61505 07:25 AM, 09 Aug 2018
    LoadAverage 2.4 , если нормализовать, то 7%
  • https://t.me/clickhouse_ru
    @metikovvadim #61506 07:25 AM, 09 Aug 2018
    один мердж не распараллелить?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61506 #61507 07:32 AM, 09 Aug 2018
    нет, один мерж не распараллелить
  • https://t.me/clickhouse_ru
    @metikovvadim #61508 07:33 AM, 09 Aug 2018
    по-идее, как он закончится, инзерты должны быстрее идти?
  • https://t.me/clickhouse_ru
    @stufently #61509 07:33 AM, 09 Aug 2018
    да по идее в вашем конфиге он не должен особо влиять
  • https://t.me/clickhouse_ru
    @stufently #61510 07:34 AM, 09 Aug 2018
    у вас же ссд ?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61508 #61511 07:35 AM, 09 Aug 2018
    Только если он вам диск "нагибает" + если кусков в партиции больше 150 то КХ "притормаживает" инсерты, соответственно если мерж эти куски склеит то и инсерты быстрее будут
  • https://t.me/clickhouse_ru
    @kshvakov #61512 07:36 AM, 09 Aug 2018
    В system.merges можно посмотреть какие куски мержастся и что получится
  • https://t.me/clickhouse_ru
    по количеству партиций у него нет ошибок в иррор логе, ну а диск мне кажется все таки ссд, так как данных всего 2тб, а сервер на 40 ядер и 128 гигов оперативы
  • https://t.me/clickhouse_ru
    @stufently #61514 07:39 AM, 09 Aug 2018
    как вари ант идет реплика на второй сервер и возможно не хватает сети, не загружен ли случаем гигабит сети на 100%
  • https://t.me/clickhouse_ru
    @metikovvadim #61515 07:42 AM, 09 Aug 2018
    нет, сейчас реплика никуда не идет, вот стата:
    PRC | sys 4.31s | user 41.58s | | | #proc 426 | #trun 4 | #tslpi 976 | | #tslpu 0 | #zombie 0 | clones 1166 | | | no procacct |
    CPU | sys 34% | user 427% | | irq 2% | | idle 3527% | wait 11% | | | steal 0% | guest 0% | curf 2.73GHz | | curscal 88% |
    CPL | avg1 3.57 | | avg5 3.01 | avg15 2.95 | | | | csw 178924 | | intr 481099 | | | numcpu 40 | |
    MEM | tot 125.6G | free 8.8G | cache 100.7G | dirty 1.7G | buff 0.0M | slab 2.7G | slrec 2.5G | shmem 3.0G | shrss 0.0M | shswp 0.0M | vmbal 0.0M | | hptot 0.0M | hpuse 0.0M |
    SWP | tot 0.0M | free 0.0M | | | | | | | | | | vmcom 20.6G | | vmlim 62.8G |
    LVM | centos-home | busy 16% | | read 660 | write 1122 | | KiB/r 123 | KiB/w 409 | MBr/s 8.0 | | MBw/s 44.9 | avq 98.07 | | avio 0.92 ms |
    LVM | centos-root | busy 0% | | read 0 | write 35 | | KiB/r 0 | KiB/w 22 | MBr/s 0.0 | | MBw/s 0.1 | avq 1.50 | | avio 0.46 ms |
    DSK | sdg | busy 13% | | read 39 | write 691 | | KiB/r 131 | KiB/w 502 | MBr/s 0.5 | | MBw/s 33.9 | avq 118.22 | | avio 1.72 ms |
    DSK | sdd | busy 1% | | read 24 | write 163 | | KiB/r 128 | KiB/w 404 | MBr/s 0.3 | | MBw/s 6.4 | avq 57.93 | | avio 0.77 ms |
    DSK | sdj | busy 1% | | read 209 | write 34 | | KiB/r 126 | KiB/w 354 | MBr/s 2.6 | | MBw/s 1.2 | avq 5.24 | | avio 0.53 ms |
    NET | transport | tcpi 50651 | tcpo 34781 | udpi 0 | | udpo 0 | tcpao 14 | tcppo 19 | tcprs 0 | tcpie 0 | tcpor 6 | | udpnp 0 | udpie 0 |
    NET | network | ipi 50655 | | ipo 34570 | ipfrw 0 | | deliv 50651 | | | | | icmpi 0 | | icmpo 0 |
    NET | bond0 29% | pcki 254968 | pcko 16862 | | sp 1000 Mbps | si 298 Mbps | so 1283 Kbps | | coll 0 | mlti 0 | erri 0 | erro 0 | drpi 0 | drpo 0 |
    NET | eno1 29% | pcki 254740 | pcko 16862 | | sp 1000 Mbps | si 298 Mbps | so 1283 Kbps | | coll 0 | mlti 0 | erri 0 | erro 0 | drpi 0 | drpo 0
  • https://t.me/clickhouse_ru
    @stufently #61516 07:46 AM, 09 Aug 2018
    ну в таом виде стата просто набор символов
  • https://t.me/clickhouse_ru
    @metikovvadim #61517 07:49 AM, 09 Aug 2018
    ...
    NET | bond0 29% | pcki 254968 | ....
    NET | eno1 29% | pcki 254740 ...
  • https://t.me/clickhouse_ru
    @metikovvadim #61518 07:49 AM, 09 Aug 2018
    это 300Мбит входящих в carbon-clickhouse метрик
  • https://t.me/clickhouse_ru
    @stufently #61519 07:49 AM, 09 Aug 2018
    у вас еще и бондинг ?
  • https://t.me/clickhouse_ru
    @stufently #61520 07:49 AM, 09 Aug 2018
    а почему 300 мбит а не 1000 ?
  • https://t.me/clickhouse_ru
    @stufently #61521 07:50 AM, 09 Aug 2018
    если бондинг
  • https://t.me/clickhouse_ru
    @metikovvadim #61522 07:56 AM, 09 Aug 2018
    столько метрик влетает, больше нет
  • https://t.me/clickhouse_ru
    @regorov #61523 08:00 AM, 09 Aug 2018
    Коллеги, подскажите где поподробней почитать рекомендации по выбору полей в индекс. Вот к примеру у меня .... Engine = MergeTree(event_date, (selection_id, received_at), 8192) и я не особо понимаю, каким образом мне подобрать поля в этот индекс. selection_id, received_at? или может три поля. Или может быть выбрать другие поля?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Нужно знать основные типы запросов и поля, по которым эти запросы фильтруют. У нас это дата события и тип события, а ещё иногда id-пользователя. Поэтому первичный ключ такой: mark, date, userId
  • https://t.me/clickhouse_ru
    @regorov #61526 08:08 AM, 09 Aug 2018
    именно фильтруют/группируют. К сортировке это можно скзаать не относится?
  • https://t.me/clickhouse_ru
    @regorov #61527 08:08 AM, 09 Aug 2018
    @kshvakov спасибо!
  • https://t.me/clickhouse_ru
    Не могу сказать. Но скорее всего нет, не относится
  • https://t.me/clickhouse_ru
    Мердж закончился , вставка не выросла, куда ещё смотреть?
  • https://t.me/clickhouse_ru
    А нагрузку на диск как смотрели? Можете скин скинуть iotop-а?
  • https://t.me/clickhouse_ru
    @metikovvadim #61531 08:12 AM, 09 Aug 2018
    iotop -d6 :
    Total DISK READ : 0.00 B/s | Total DISK WRITE : 42.42 M/s
    Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 11.43 M/s
    TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
    25012 be/4 elastics 0.00 B/s 1343.69 B/s 0.00 % 0.01 % java -Xms1g -Xmx1g -XX:+Us~th.conf=/etc/elasticsearch
    25041 be/4 elastics 0.00 B/s 1343.69 B/s 0.00 % 0.01 % java -Xms1g -Xmx1g -XX:+Us~th.conf=/etc/elasticsearch
    25014 be/4 elastics 0.00 B/s 1343.69 B/s 0.00 % 0.01 % java -Xms1g -Xmx1g -XX:+Us~th.conf=/etc/elasticsearch
    39011 be/4 root 0.00 B/s 671.85 B/s 0.00 % 0.01 % graphite-clickhouse -confi~e/graphite-clickhouse.conf
    2246 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % graphite-clickhouse -confi~e/graphite-clickhouse.conf
    5472 be/4 root 0.00 B/s 671.85 B/s 0.00 % 0.00 % graphite-clickhouse -confi~e/graphite-clickhouse.conf
    5759 be/4 root 0.00 B/s 671.85 B/s 0.00 % 0.00 % graphite-clickhouse -confi~e/graphite-clickhouse.conf
    4980 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % graphite-clickhouse -confi~e/graphite-clickhouse.conf
    38715 be/4 root 0.00 B/s 1343.69 B/s 0.00 % 0.00 % graphite-clickhouse -confi~e/graphite-clickhouse.conf
    39182 be/4 root 0.00 B/s 2.62 K/s 0.00 % 0.00 % graphite-clickhouse -confi~e/graphite-clickhouse.conf
    3658 be/4 root 0.00 B/s 671.85 B/s 0.00 % 0.00 % graphite-clickhouse -confi~e/graphite-clickhouse.conf
    40807 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % graphite-clickhouse -confi~e/graphite-clickhouse.conf
    3699 be/4 root 0.00 B/s 1343.69 B/s 0.00 % 0.00
  • https://t.me/clickhouse_ru
    @metikovvadim #61532 08:14 AM, 09 Aug 2018
    читабельно ?
  • https://t.me/clickhouse_ru
    @metikovvadim #61533 08:14 AM, 09 Aug 2018
    iostat -xmt 6 :
    09.08.2018 11:14:39
    avg-cpu: %user %nice %system %iowait %steal %idle
    16,99 0,00 2,75 0,00 0,00 80,26

    Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
    sde 0,00 0,67 0,00 12,17 0,00 0,05 7,78 0,00 0,32 0,00 0,32 0,07 0,08
    sdd 0,00 0,67 0,00 11,00 0,00 0,06 10,30 0,00 0,29 0,00 0,29 0,05 0,05
    sdb 0,00 1,50 0,00 9,50 0,00 0,05 10,11 0,00 0,14 0,00 0,14 0,09 0,08
    sda 0,00 0,17 0,00 13,67 0,00 0,51 75,80 0,01 0,89 0,00 0,89 0,10 0,13
    sdc 0,00 1,17 0,00 20,83 0,00 2,04 200,45 0,09 4,18 0,00 4,18 0,22 0,45
    sdf 0,00 0,67 0,00 18,00 0,00 0,26 30,10 0,04 2,44 0,00 2,44 0,42 0,75
    sdg 0,00 0,33 0,00 9,17 0,00 0,02 5,24 0,00 0,16 0,00 0,16 0,05 0,05
    sdh 0,00 0,17 0,00 12,17 0,00 0,05 8,11 0,00 0,23 0,00 0,23 0,04 0,05
    sdi 0,00 0,50 0,00 14,83 0,00 2,03 280,90 0,18 12,19 0,00 12,19 0,61 0,90
    sdj 0,00 0,33 0,00 11,50 0,00 0,04 7,54 0,00 0,06 0,00 0,06 0,03 0,03
    dm-0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
    dm-1 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
    dm-2 0,00 0,00 0,00 64,00 0,00 5,11 163,40 0,35 5,41 0,00 5,41 0,25 1,58
  • https://t.me/clickhouse_ru
    а диск точно ссд все таки ?
  • https://t.me/clickhouse_ru
    @metikovvadim #61535 08:15 AM, 09 Aug 2018
    да, 10 штук LVMом
  • https://t.me/clickhouse_ru
    @stufently #61536 08:16 AM, 09 Aug 2018
    ну по нагрузке почти ее нет для ссд и по иотопу видно что никакущая нагрузка
  • https://t.me/clickhouse_ru
    @metikovvadim #61537 08:20 AM, 09 Aug 2018
    вот, нагрузки нет, а инзерты идут еле-еле(28M), при тестах было 80М+
  • https://t.me/clickhouse_ru
    @metikovvadim #61538 08:21 AM, 09 Aug 2018
    загружено 1-1,5 ядра
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61529 #61539 08:21 AM, 09 Aug 2018
    А что вообще в таблице?

    select partition, count() as num_parts from system.parts where table = 'ВАША ТАБЛИЦА' and active group by partition order by partition
  • https://t.me/clickhouse_ru
    @metikovvadim #61540 08:22 AM, 09 Aug 2018
    select partition, count() as num_parts from system.parts where table = 'graphite' and active group by partition order by partition

    ┌─partition─┬─num_parts─┐
    │ 201706 │ 1 │
    │ 201801 │ 2 │
    │ 201804 │ 1 │
    │ 201805 │ 6 │
    │ 201806 │ 16 │
    │ 201807 │ 21 │
    │ 201808 │ 18 │
    └───────────┴───────────┘

    7 rows in set. Elapsed: 0.011 sec.
  • https://t.me/clickhouse_ru
    @metikovvadim #61541 08:22 AM, 09 Aug 2018
    данные полноценные с 201805
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61540 #61542 08:22 AM, 09 Aug 2018
    тут все хорошо
  • https://t.me/clickhouse_ru
    @metikovvadim #61543 08:23 AM, 09 Aug 2018
    тоже ищу, где плохо
  • https://t.me/clickhouse_ru
    @metikovvadim #61544 08:29 AM, 09 Aug 2018
    инзерты отстают на 4 минуты, как догонит, включу 2й сервер и буду наблюдать за нагрузкой при наливке реплики
  • https://t.me/clickhouse_ru
    @metikovvadim #61545 08:47 AM, 09 Aug 2018
    ещё вопрос, вроде вчера задавал:
    пишу в конфиге КХ
    <graphite_rollup>
    <regexp>^DevOps\,clickhouse\.</regexp>
    <function>avg</function>
    <retention>
    <age>0</age>
    <precision>5</precision>
    </retention>
    </pattern>
    ...
    <graphite_rollup>
    но он через время мерджит до минуты, как умолчание
    кто-то сталкивался
  • https://t.me/clickhouse_ru
    @stufently #61546 08:49 AM, 09 Aug 2018
    а ни у кого случаем нет раскиданного по европе зукипера на 7 нод ?
  • https://t.me/clickhouse_ru
    @kloya #61547 08:53 AM, 09 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @kloya #61548 09:09 AM, 09 Aug 2018
    Всем привет, кто подскажет советом:
    Приложение на питоне, используем clickhouse_driver
    Есть три таблицы с одинаковыми данными, отличие что у них PK свой. Предположим таблица №1, №2 и №3
    Препдоположим нам пришло 10 тыс событий и бага в том что статистика запишется так:
    №1 примерно 10005-10015 событий (т.е запишется больше чем пришло!!)
    №2,№3 запишется ровно 10 тыс событий

    Искали ошкибку в коде, по принтам увидели что все окей, идет ровно 3 записи
    Репликация асинхронная, мульти-мастер
    Кто подскажет может кто сталкивался с таким?
  • https://t.me/clickhouse_ru
    @stufently #61549 09:14 AM, 09 Aug 2018
    ну посмотрите просто какие именно записи лишние то
  • https://t.me/clickhouse_ru
    @stufently #61550 09:14 AM, 09 Aug 2018
    что это за 5-15 записей что в них
  • https://t.me/clickhouse_ru
    Всё зависит от того, какая структура таблиц, и как пишите данные
  • https://t.me/clickhouse_ru
    @kloya ↶ Reply to #61550 #61552 09:15 AM, 09 Aug 2018
    это дубли записей, с тем же datetime
  • https://t.me/clickhouse_ru
    @kloya ↶ Reply to #61551 #61553 09:16 AM, 09 Aug 2018
    таблица типа MergeTree, пишем через INSERT
  • https://t.me/clickhouse_ru
    @kloya #61554 09:26 AM, 09 Aug 2018
    код примерно такой:
    for table_name in [table1, table2,table3]:
    записать документ А в table_name
  • https://t.me/clickhouse_ru
    Если вы пишите по одной записе - это не правильно
  • https://t.me/clickhouse_ru
    @kloya #61556 09:28 AM, 09 Aug 2018
    нет, пишем около 20 запией разом
  • https://t.me/clickhouse_ru
    @kloya #61557 09:29 AM, 09 Aug 2018
    пишем 20 записей, 19 запишутся норм, но 1на может задублироваться
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #61558 09:29 AM, 09 Aug 2018
    Это мало. На каждый инсерт создается новый файл в КХ и куча других действий. И вставлять чаще чем раз в секунду - тоже плохо сказывается. Предполагаю что на 10001-ю вставку КХ что-то пишет в ответ типа ошибки. Ваш драйвер точно возвращает ошибку если не вставил?
  • https://t.me/clickhouse_ru
    @zion_o_zaur #61559 09:31 AM, 09 Aug 2018
    здравствуйте. есть какая нито зависимость между гранулярностью индекса MergeTree и оптимальным количеством вставляемых записей?
  • https://t.me/clickhouse_ru
    @kloya ↶ Reply to #61558 #61560 09:32 AM, 09 Aug 2018
    то есть вы допускаете что ошибка дублирования может быть из за частой записи?
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #61561 09:33 AM, 09 Aug 2018
    Я допускаю что по причине частых вставок КХ становится плохо и он в какой-то момент начинает творить дичь (как например у вас)
  • https://t.me/clickhouse_ru
    скорее всего дичь творит на мой взгляд софт
  • https://t.me/clickhouse_ru
    Ну и его тоже проверить
  • https://t.me/clickhouse_ru
    @stufently #61564 09:38 AM, 09 Aug 2018
    думаю самое простое почи тать лог ошибок в кх
  • https://t.me/clickhouse_ru
    Сейчас даные на 2й сервер идут с максимальной скоростью, которую поддерживает 2й.400МБит/с данных уходит в реплике 1й сервер ошибок не показывает, занят на 11% по процессорам
  • https://t.me/clickhouse_ru
    @kloya ↶ Reply to #61564 #61566 09:59 AM, 09 Aug 2018
    да нет, поднял логи за время дублей - ошибок нету...
  • https://t.me/clickhouse_ru
    @den_crane #61567 10:33 AM, 09 Aug 2018
    а таблица в которой записей больше одна и таже? Питон получает таймаут на инсерт и пишет все еще раз.
  • https://t.me/clickhouse_ru
    @kloya #61568 10:49 AM, 09 Aug 2018
    да, одна и тажа.
    НО пишем батчем, т.е там например 20 записей разом, и дублируются не все записи, а одна или две.
    Даже предположим дублирующая запись была 5ой, то 2,3,4 не дублировались...
  • https://t.me/clickhouse_ru
    @kloya #61569 10:50 AM, 09 Aug 2018
    то есть не похоже что питон повторяет запись, тогда бы были все дубли, как минимум до какой то "ошибки"
  • https://t.me/clickhouse_ru
    @WitnessOfThe #61570 10:57 AM, 09 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @den_crane #61571 10:59 AM, 09 Aug 2018
    А таблицы дистрибьютид?
  • https://t.me/clickhouse_ru
    @kloya #61572 11:02 AM, 09 Aug 2018
    MergeTree
  • https://t.me/clickhouse_ru
    @kloya #61573 11:06 AM, 09 Aug 2018
    или я не так понял вопрос, а так да: 3 шарда и у каждого по реплики
  • https://t.me/clickhouse_ru
    @stufently #61574 11:09 AM, 09 Aug 2018
    Вставляете в дистрибьютед таблицу или напрямую в репликейтедмерджтри
  • https://t.me/clickhouse_ru
    @stufently #61575 11:09 AM, 09 Aug 2018
    ?
  • https://t.me/clickhouse_ru
    @kloya #61576 11:13 AM, 09 Aug 2018
    send_tracking_campaigns │ Distributed │ 2018-04-03 16:19:06 │
    send_tracking_campaigns_replicated │ ReplicatedMergeTree │ 2018-04-03 15:08:56

    да, похоже что Distributed
  • @572708835 #61577 11:14 AM, 09 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @kloya #61579 11:24 AM, 09 Aug 2018
    вот что еще интересно
    1 шард - 6 дублей, где всего 4016072 записей
    2 шард 2 дубля, где всего 4016988 записей
    3 шард, ~6500дублей, где всего 4026013 записей
  • https://t.me/clickhouse_ru
    @AlexAkulov #61581 11:51 AM, 09 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @AlexAkulov #61582 11:52 AM, 09 Aug 2018
    Всем привет!
    Подскажите, КХ может пользователей из zookeeper брать?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61582 #61583 11:55 AM, 09 Aug 2018
    В ZK можно целиком секцию users хранить и он ее должен заменить, но это не очень удобно
  • https://t.me/clickhouse_ru
    @AlexAkulov #61584 11:56 AM, 09 Aug 2018
    Почему неудобно? В такой конфигурации я смогу пользователей налету добавлять без перезагрузки КХ?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61584 #61585 11:56 AM, 09 Aug 2018
    Для обновления пользователей нужно просто конфиг помепнять без перезагрузки сервера
  • https://t.me/clickhouse_ru
    @AlexAkulov #61586 11:57 AM, 09 Aug 2018
    круто!
  • https://t.me/clickhouse_ru
    @AlexAkulov #61587 11:57 AM, 09 Aug 2018
    А почему неудобно в zookeeper хранить?
  • https://t.me/clickhouse_ru
    @kshvakov #61588 11:58 AM, 09 Aug 2018
    По дефолту неудобно, у меня для этих целей своя структура для хранения конфигов в ZK + агенты для серверов которые понимают что обновить и нужно ли каскадно ребутать сервера если нужно
  • https://t.me/clickhouse_ru
    @d60e87b4 #61589 02:00 PM, 09 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @d60e87b4 #61590 02:02 PM, 09 Aug 2018
    не могу найти инфу про обновление сервера
  • https://t.me/clickhouse_ru
    @d60e87b4 #61591 02:03 PM, 09 Aug 2018
    КХ нормально обновляется через несколько версий
  • https://t.me/clickhouse_ru
    @stufently #61592 02:05 PM, 09 Aug 2018
    если нет каких то фатальных изменения для вас в ченджлоге то да
  • https://t.me/clickhouse_ru
    @suslov_k #61593 02:11 PM, 09 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61591 #61594 02:30 PM, 09 Aug 2018
    Он и при обновлении на следующую версию может вам что-нибудь отчекрыжить, а может и через несколько версий легко взлететь.
  • https://t.me/clickhouse_ru
    ну бывает софт который надо обновлять только на следующую версию
  • https://t.me/clickhouse_ru
    @d60e87b4 ↶ Reply to #61595 #61596 02:33 PM, 09 Aug 2018
    а с КХ как?
  • https://t.me/clickhouse_ru
    @stufently #61597 02:34 PM, 09 Aug 2018
    с кх можно прыгать
  • https://t.me/clickhouse_ru
    @kshvakov #61598 02:34 PM, 09 Aug 2018
    С бубном )
  • https://t.me/clickhouse_ru
    @mo1seev ↶ Reply to #61597 #61599 02:34 PM, 09 Aug 2018
    не забыв предварительно помолиться
  • https://t.me/clickhouse_ru
    @stufently #61600 02:35 PM, 09 Aug 2018
    ну я лично пока с обновлениями проблем не имел , ченджлог вроде тоже почитать не сложно, бывают конечно проблемы в каких то случаях, но я бы не сказал чтобы они были чаще чем в любом другом софте который я использую
  • https://t.me/clickhouse_ru
    @AlexAkulov #61601 02:36 PM, 09 Aug 2018
    с 1.1.54342 до 18.6.0 всё норм обновлюсь? )
  • https://t.me/clickhouse_ru
    @stufently #61602 02:36 PM, 09 Aug 2018
    скорее всего да
  • https://t.me/clickhouse_ru
    +1. Пока все обновления вплоть до текущей версии проходили штатно
  • https://t.me/clickhouse_ru
    @d60e87b4 ↶ Reply to #61601 #61604 02:38 PM, 09 Aug 2018
    отпишись
  • https://t.me/clickhouse_ru
    @Mike_Er ↶ Reply to #61601 #61605 02:59 PM, 09 Aug 2018
    ODBC поломан в 18.6, у нас словари отвалились
  • https://t.me/clickhouse_ru
    @Mike_Er #61606 03:00 PM, 09 Aug 2018
    хрен бы с ними со словарями, но если есть таблицы с engine=dictionary - то сервер не стартует. приходится руками ему помогать
  • https://t.me/clickhouse_ru
    вы тестили? У меня примерно 6 ишью при таком переходе, вплоть до не старта КХ, лечится, но все равно.
  • https://t.me/clickhouse_ru
    @stufently #61608 03:01 PM, 09 Aug 2018
    Кстати сегодня доразнес кластер зукипера из семи штук по разным датацентрам и провайдерам в Европе, пока 20 минут полет нормальный. Как то момент геораспределенности очень плохо описан в интернете либо же все пишут что так делать не надо
  • https://t.me/clickhouse_ru
    @AlexAkulov #61609 03:01 PM, 09 Aug 2018
    нет, не тестили, вот только собираюсь
  • https://t.me/clickhouse_ru
    @vlkolobaev #61610 03:05 PM, 09 Aug 2018
    Мы вчера на 6.0 обновились, с 1.0, всё прошло хорошо, нареканий нет
  • https://t.me/clickhouse_ru
    Поделитесь "подводными камнями"
  • https://t.me/clickhouse_ru
    @stufently #61612 03:14 PM, 09 Aug 2018
    Ну их не было
  • https://t.me/clickhouse_ru
    @stufently #61613 03:15 PM, 09 Aug 2018
    Переживаю только за связность сети и способность кластера зукипера собираться после развала
  • https://t.me/clickhouse_ru
    конечно не надо, больше 3 зукиперов и если летенси между ними больше 50мс, это просто палки в колесах. Каждый инсерт ждет согласовния и тормозов семи нод.
  • https://t.me/clickhouse_ru
    @stufently #61615 03:19 PM, 09 Aug 2018
    Ну посмотрим
  • https://t.me/clickhouse_ru
    @kloya #61616 03:19 PM, 09 Aug 2018
    похоже нашли проблему дублей - internal_replication параметр
  • https://t.me/clickhouse_ru
    @stufently #61617 03:19 PM, 09 Aug 2018
    Ну там в целом меньше 50мс везде
  • @640409857 #61618 03:36 PM, 09 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    одну ноду обновил, вроде всё ок
  • https://t.me/clickhouse_ru
    @d60e87b4 ↶ Reply to #61619 #61620 04:42 PM, 09 Aug 2018
    обновлялся с 1.1.54318
  • https://t.me/clickhouse_ru
    @d60e87b4 #61621 04:42 PM, 09 Aug 2018
    не завелось
  • https://t.me/clickhouse_ru
    @kockockoc #61622 05:02 PM, 09 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @notmaxx #61623 06:12 PM, 09 Aug 2018
    я хочу потесить КХ, какую версию порекомендуете, вот читаю, что словари поломаны в 18.6, мне они вроде не нужны - стоит ее брать?
  • https://t.me/clickhouse_ru
    @stufently #61624 06:14 PM, 09 Aug 2018
    Последнюю
  • https://t.me/clickhouse_ru
    @quarrant #61625 06:22 PM, 09 Aug 2018
    Ребята смотрю скоро будут множественные джойны, а как скоро?)
  • https://t.me/clickhouse_ru
    множественные джойны??? а откуда инфа? сами очень ждем
  • https://t.me/clickhouse_ru
    @vstepankov #61627 07:05 PM, 09 Aug 2018
    Так Алексей писал, что для Replicated уже чтоль готовы, для обычного MergeTree осталось запилить
  • https://t.me/clickhouse_ru
    @d60e87b4 ↶ Reply to #61626 #61628 07:08 PM, 09 Aug 2018
    Roadmap на Q3 2018 написано
  • https://t.me/clickhouse_ru
    @d60e87b4 #61629 07:08 PM, 09 Aug 2018
    Или q4
  • https://t.me/clickhouse_ru
    @sergebezborodov #61630 07:09 PM, 09 Aug 2018
    ох скорей бы, скорей
  • https://t.me/clickhouse_ru
    @sergebezborodov #61631 07:09 PM, 09 Aug 2018
    у нас запросы генерятся из интерфейса таблицы с фильтрами, через вложенные подзапросы и лапша жесть получается
  • https://t.me/clickhouse_ru
    Аналогичная лапша. Тоже ждём с нетерпением
  • https://t.me/clickhouse_ru
    @quarrant ↶ Reply to #61631 #61633 07:16 PM, 09 Aug 2018
    Да....
  • @nezed #61634 07:17 PM, 09 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @notmaxx #61635 07:36 PM, 09 Aug 2018
    А еще в роадмапе были DROP для GDPR, это еще в процессе
  • https://t.me/clickhouse_ru
    @notmaxx #61636 07:36 PM, 09 Aug 2018
    ?
  • @ll14m4n #61638 07:42 PM, 09 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @nekrasovweb #61639 07:51 PM, 09 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @den_crane #61640 07:53 PM, 09 Aug 2018
    alter delete работает, я уже на проде 700млн. строк (залитых по ошибке) удалил (18.5.1), (два часа удалялось)
  • https://t.me/clickhouse_ru
    @notmaxx #61641 07:57 PM, 09 Aug 2018
    Еще такой вопрос - в кубере на АВС КХ запускается? Я видел офиц докер image
  • https://t.me/clickhouse_ru
    @nvartolomei #61642 08:38 PM, 09 Aug 2018
    Joined.
  • @664267601 #61643 08:44 PM, 09 Aug 2018
    Joined.
  • @238773844 #61644 09:16 PM, 09 Aug 2018
    для знктоков CH+Supeset: можно ли меять client timeZone при коннекте?
  • @238773844 #61645 09:17 PM, 09 Aug 2018
    чтоб в superset показывать данные в другой timezone
  • @201321484 #61646 10:40 PM, 09 Aug 2018
    Обновился до последней версии и теперь пишет
    2018.08.10 01:40:11.116978 [ 1 ] <Error> Application: Net Exception: Address already in use: [::1]:8123
    2018.08.10 01:40:11.117101 [ 1 ] <Information> Application: shutting down
    2018.08.10 01:40:11.117183 [ 1 ] <Debug> Application: Uninitializing subsystem: Logging Subsystem
    2018.08.10 01:40:11.117321 [ 6 ] <Information> BaseDaemon: Stop SignalListener thread

    ничего не помогает(
  • @201321484 #61647 10:41 PM, 09 Aug 2018
    порт свободен
  • https://t.me/clickhouse_ru
    даже reboot?
  • @201321484 #61649 10:44 PM, 09 Aug 2018
    даже рибут(
  • https://t.me/clickhouse_ru
    а возврат старого бинарника помогает?
  • @201321484 #61651 10:48 PM, 09 Aug 2018
    еще не пробовал ...
  • https://t.me/clickhouse_ru
    @proller #61652 10:48 PM, 09 Aug 2018
    а что еще пишет ?
  • https://t.me/clickhouse_ru
    @proller #61653 10:48 PM, 09 Aug 2018
    полный лог можно ?
  • @201321484 #61654 10:49 PM, 09 Aug 2018
    /etc/clickhouse-server# sudo service clickhouse-server start
    /etc/clickhouse-server# sudo service clickhouse-server status
    ● clickhouse-server.service - ClickHouse Server (analytic DBMS for big data)
    Loaded: loaded (/lib/systemd/system/clickhouse-server.service; disabled; vendor preset: enabled)
    Active: activating (auto-restart) (Result: exit-code) since Thu 2018-08-09 22:49:32 UTC; 1s ago
    Process: 1820 ExecStart=/usr/bin/clickhouse-server --config=/etc/clickhouse-server/config.xml (code=exited, status=70)
    Process: 1814 ExecStartPre=/bin/chown clickhouse:clickhouse -R /etc/clickhouse-server (code=exited, status=0/SUCCESS)
    Process: 1813 ExecStartPre=/usr/bin/chown clickhouse:clickhouse -R /etc/clickhouse-server (code=exited, status=203/EXEC)
    Main PID: 1820 (code=exited, status=70)
    CPU: 204ms

    Aug 09 22:49:32 ubuntu-2gb-fra1-01 systemd[1]: clickhouse-server.service: Failed with result 'exit-code'.
  • @201321484 #61655 10:50 PM, 09 Aug 2018
    в логах пусто
  • @201321484 #61656 10:50 PM, 09 Aug 2018
    если запускать так clickhouse-server --config-file=/etc/clickhouse-server/config.xml

    2018.08.10 01:50:30.903804 [ 1 ] <Debug> Application: Loaded metadata.
    2018.08.10 01:50:30.904167 [ 1 ] <Information> Application: Listening http://[::]:8123
    2018.08.10 01:50:30.904248 [ 1 ] <Information> Application: Listening tcp: [::]:9000
    2018.08.10 01:50:30.904311 [ 1 ] <Information> Application: Listening interserver http: [::]:9009
    2018.08.10 01:50:30.904589 [ 1 ] <Information> Application: Shutting down storages.
    2018.08.10 01:50:30.907096 [ 1 ] <Debug> Application: Shutted down storages.
    2018.08.10 01:50:31.688774 [ 1 ] <Debug> Application: Destroyed global context.
    2018.08.10 01:50:31.689365 [ 1 ] <Error> Application: Net Exception: Address already in use: 127.0.0.1:8123
    2018.08.10 01:50:31.689395 [ 1 ] <Information> Application: shutting down
    2018.08.10 01:50:31.689412 [ 1 ] <Debug> Application: Uninitializing subsystem: Logging Subsystem
    2018.08.10 01:50:31.689523 [ 4 ] <Information> BaseDaemon: Stop SignalListener thread
  • https://t.me/clickhouse_ru
    @proller #61657 10:51 PM, 09 Aug 2018
    убрать из listen_host все кроме ::
  • @201321484 #61658 10:54 PM, 09 Aug 2018
    спасибо!)
  • @201321484 #61659 10:54 PM, 09 Aug 2018
    убрать из listen_host все кроме ::
  • 10 August 2018 (77 messages)
  • https://t.me/clickhouse_ru
    @notmaxx #61660 01:16 AM, 10 Aug 2018
    вот такой вопрос - я пытаюсь заимпортить New York Taxi data по гайду https://clickhouse.yandex/docs/en/getting_started/example_datasets/nyc_taxi/
  • https://t.me/clickhouse_ru
    @notmaxx #61661 01:17 AM, 10 Aug 2018
    можно ли мне просто обработать строки sed'ом и time clickhouse-client --query="INSERT INTO trips FORMAT CSV" < data/yellow_tripdata_2010-03.csv
  • https://t.me/clickhouse_ru
    @notmaxx #61662 01:18 AM, 10 Aug 2018
    в гайде описан шаг с импортом в PG потом выгрузка оттуда в TabSeparated и загрузка TabSeparated в КХ
  • @679040548 #61663 02:25 AM, 10 Aug 2018
    Joined.
  • @lexa_work #61664 05:04 AM, 10 Aug 2018
    /stat@combot
  • @238773844 #61666 05:58 AM, 10 Aug 2018
    подскажите по архитектуре схемы: есть распределенная табилца с шардами. Как лучше сделать materilized view на эти распределенные данные? можно сделать на распределенную таблицу, а можно на локальную и сделпть поверх этого distributed.
  • @238773844 #61667 05:59 AM, 10 Aug 2018
    + продублирую вопрос:
    для знатоков CH+Superset: можно ли меять client timeZone при коннекте?

    чтоб в superset показывать данные в другой timezone
  • https://t.me/clickhouse_ru
    прочекал пинги вчера самый большой 15 мс , полет пока нормальный
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #61666 #61670 06:21 AM, 10 Aug 2018
    Да, лучше всего сделать реплцированные MV на локальные таблы на всех репликах, поверх MV Distributed, так работает нормально
  • https://t.me/clickhouse_ru
    @Shegloff ↶ Reply to #61661 #61671 06:24 AM, 10 Aug 2018
    Судя по этому, нет:
    Then the data must be pre-processed in PostgreSQL. This will create selections of points in the polygons (to match points on the map with the boroughs of New York City) and combine all the data into a single denormalized flat table by using a JOIN. To do this, you will need to install PostgreSQL with PostGIS support.
  • @635438679 #61672 08:23 AM, 10 Aug 2018
    Joined.
  • @lnpj12 #61673 09:43 AM, 10 Aug 2018
    подскажите, можно ли массивы использовать в словарях?
  • https://t.me/clickhouse_ru
    @dolbyzerr #61674 09:43 AM, 10 Aug 2018
    Всем привет, вопрос про функции работы с временем которые поддерживают таймзоны. Насколько я вижу по ошибкам параметр таймзоны должен быть константой, можно ли это как-то обойти? У меня в запросе таймзона всегда одна в рамках запроса но она должна браться из словаря. Пока что решил это тем что делаю два запроса со стороны приложения, сначала достаю таймзону а потом во второй запрос подставляю.
  • https://t.me/clickhouse_ru
    @AlexAkulov #61675 10:27 AM, 10 Aug 2018
    Всем привет! Пробую тут обновить кластер и после перезагрузки ноды начинают сыпаться такие исключения
    DB::Exception: Received from clickhouse9:9000, 192.168.231.101. DB::Exception: Table is in readonly mode. Stack trace
  • https://t.me/clickhouse_ru
    @AlexAkulov #61676 10:27 AM, 10 Aug 2018
    Что это значит?
  • https://t.me/clickhouse_ru
    @vladenisov #61677 10:28 AM, 10 Aug 2018
    привет. а насколько нормально создавать MATERIALIZED VIEW от Replicated* таблицы? Создал distributed, которая смотрит на вьюхи, и каждый запрос получаю разные значения.
  • https://t.me/clickhouse_ru
    обычно это случается когда отвалился зукипер
  • https://t.me/clickhouse_ru
    @AlexAkulov #61679 10:30 AM, 10 Aug 2018
    Ну с зукипером вроде всё ок
  • https://t.me/clickhouse_ru
    @stufently #61680 10:33 AM, 10 Aug 2018
    ну у меня таблица в риадонли уходила только когда нет зукипера , возможно есть другие причины для этого, надо болльше строк смотреть в ерорлоге кх
  • https://t.me/clickhouse_ru
    @AlexAkulov #61681 10:33 AM, 10 Aug 2018
    2018.08.10 10:31:33.137838 [ 38 ] <Error> executeQuery: Code: 242, e.displayText() = DB::Exception: Table is in readonly mode, e.what() = DB::Exception (from [::ffff:192.168.231.104]:58274) (in query: INSERT INTO metrika.productsites_log_local (Timestamp, Method, HttpStatus, HostName, UriPath, UriParam, Referer, RawUserAgent, ClientIp, PortalUserId, PortalSessionId, RequestLength, BytesSent, UpstreamResponseTime, EventDate, NgToken) FORMAT Values), Stack trace:

    0. /usr/bin/clickhouse-server(StackTrace::StackTrace()+0x16) [0x56d1436]
    1. /usr/bin/clickhouse-server(DB::Exception::Exception(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)+0x22) [0x2db80f2]
    2. /usr/bin/clickhouse-server(DB::StorageReplicatedMergeTree::assertNotReadonly() const+0x72) [0x4fc9332]
    3. /usr/bin/clickhouse-server(DB::StorageReplicatedMergeTree::write(std::shared_ptr<DB::IAST> const&, DB::Settings const&)+0x25) [0x4fc93b5]
    4. /usr/bin/clickhouse-server(DB::PushingToViewsBlockOutputStream::PushingToViewsBlockOutputStream(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&, std::shared_ptr<DB::IStorage> const&, DB::Context const&, std::shared_ptr<DB::IAST> const&, bool)+0x718) [0x520c138]
    5. /usr/bin/clickhouse-server(DB::InterpreterInsertQuery::execute()+0x23a) [0x4e6440a]
    6. /usr/bin/clickhouse-server() [0x4ef181b]
    7. /usr/bin/clickhouse-server(DB::executeQuery(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, DB::Context&, bool, DB::QueryProcessingStage::Enum)+0x8a) [0x4ef283a]
    8. /usr/bin/clickhouse-server(DB::TCPHandler::runImpl()+0x3d7) [0x2dc4c27]
    9. /usr/bin/clickhouse-server(DB::TCPHandler::run()+0x2b) [0x2dc5acb]
    10. /usr/bin/clickhouse-server(Poco::Net::TCPServerConnection::start()+0xf) [0x58c56af]
    11. /usr/bin/clickhouse-server(Poco::Net::TCPServerDispatcher::run()+0x16a) [0x58c5a8a]
    12. /usr/bin/clickhouse-server(Poco::PooledThread::run()+0x77) [0x5966e97]
    13. /usr/bin/clickhouse-server(Poco::ThreadImpl::runnableEntry(void*)+0x38) [0x5962d58]
    14. /usr/bin/clickhouse-server() [0x938cc0f]
    15. /lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba) [0x7f00806586ba]
    16. /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7f007fe8141d]
  • https://t.me/clickhouse_ru
    @stufently #61682 10:38 AM, 10 Aug 2018
    ну должен быть еще же контекст выше и ниже
  • https://t.me/clickhouse_ru
    @stufently #61683 10:39 AM, 10 Aug 2018
    а место на диске случаем не закончилось ?
  • https://t.me/clickhouse_ru
    @AlexAkulov #61684 10:58 AM, 10 Aug 2018
    Может и прадва зукипер. У меня секция zookeeper-servers была в файле, вместе с секцией clickhouse_remote_servers.
    Я перенёс zookeeper-servers в отдельный файл, сделал инклуд и оно похоже не завелось из-за этого
  • https://t.me/clickhouse_ru
    @AlexAkulov #61685 10:58 AM, 10 Aug 2018
    Я не понимаю
  • https://t.me/clickhouse_ru
    @stufently #61686 10:59 AM, 10 Aug 2018
    ну верни как было
  • https://t.me/clickhouse_ru
    @stufently #61687 10:59 AM, 10 Aug 2018
    какой смысл менять конфиг и при этом еще и обновлять кх
  • https://t.me/clickhouse_ru
    @Mike_Er #61688 11:02 AM, 10 Aug 2018
    Коллеги, а привычный sql join on в 18.6 должен уже работать или все еще немного свой синтаксис?
  • https://t.me/clickhouse_ru
    недавно появилась ограниченная поддержка ON, но это ещё не всё, что запланировано в данном направлении
  • @WestDragon #61690 11:45 AM, 10 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Synoecium #61691 11:56 AM, 10 Aug 2018
    Извиняюсь за вопрос не в тему кликхауса, но может кто подскажет куда копать. Пытаюсь скомпилировать с++ библиотеку GMP под win7-64, в оболочке MSYS. Выдает такую ошибку во время сборки: Error: unknown pseudo-op: `.hidden'
  • @530606154 #61692 11:58 AM, 10 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @al_tush #61693 12:10 PM, 10 Aug 2018
    Добрый день!
    Подскажите, пожалуйста, как настроить проверку переполнения при insert. В конфигурации Кликхауса по умолчанию такая вставка проходит без ошибок:
    CREATE TABLE default.test (
    i32 UInt32
    ) ENGINE = Memory;

    INSERT INTO default.test (i32) VALUES (123456789012345);

    (проверял также для MergeTree - поведение такое же)
  • https://t.me/clickhouse_ru
    @pokoleniboroda #61694 12:15 PM, 10 Aug 2018
    Коллеги, добрый день!
    Никто не сталкивался с таким явлением с матвью.
    Есть два идентичных по результату запроса: один к таблице с детальными данными, второй к матвью. Запрос к таблице с детальными данными отрабатывает быстрее чем к матвью. Это первое.
    И второе. В обоих запросах использутеся функция toStartOfFifteenMinutes. Так вот, запрос к детальным данным возвращает одно количество строк, а запрос к матвью в 10 раз меньше. Т.е. второй запрос пропускает какие-то времена. Хотя общие итоги совпадают.

    Я перестал что-то понимать в матвью. У кого-то было что-то подобное?

    П.С. Матвью создавалось на рабочей боевой таблице с ключевым словом populate. Т.е. во время работы команды CREATE MATERIALIZED VIEW... данные понемногу загружались в таблицу с детальными данными небольшими порциями (сотни-несколько тысяч записей в минуту, записываются не непрерывно, а квантами). Про то что таблицу надо "останавливать" для CREATE в курсе. Но в итоге общие count и uniq на таблице с детальными данными и матвью совпадают, потому сделал вывод, что рабочий процесс по загрузке данных не повлиял на матвью и данные не потерялись.
  • @118813509 #61695 12:17 PM, 10 Aug 2018
    Joined.
  • @118813509 #61696 12:22 PM, 10 Aug 2018
    Доброго дня.
    Никто не подскажет со следующей проблемой:
    Есть слежующее железо: Dell PowerEdge T610 (http://www.dell.com/ru/business/p/poweredge-t610/pd)
    Как носители информации используются обычные HDD, памяти ОЗУ тоже не сильно много, около 16Гб.
    Нужно работать с большими выборками, при крупных запросах и операциях добавления данных сервер фризит.
    Может ли решить проблему установка SSD, или же проблема скорее суммарно в слабом железе?
  • https://t.me/clickhouse_ru
    @Mike_Er ↶ Reply to #61691 #61697 12:33 PM, 10 Aug 2018
    Build fails with GNU Make v4.2.1 (MSYS2) #373

    Complaining about buildvm_x86.dasc: Assembler message and such.

  • https://t.me/clickhouse_ru
    насколько я знаю - нет
  • https://t.me/clickhouse_ru
    У меня было что-то похожее, по моей вине, некоторые данные просто дублировались из-за неправльной репликации. Проверь запросом GROUP BY по какому нибудь уникальному полю
  • https://t.me/clickhouse_ru
    У меня таблица сама по себе, репликации нет. Проверил итоги на одном id, ситуация всё та же: общие итоги сходятся, а группировка по toStartOfFifteenMinutes даёт разное кол-во записей.
  • https://t.me/clickhouse_ru
    I
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61694 #61702 01:31 PM, 10 Aug 2018
    Как выглядит запрос на создание въюхи, какие запросы делаете и что ожидаете увидеть?
  • https://t.me/clickhouse_ru
    Создание:
    CREATE MATERIALIZED VIEW td_stats.mvw_td_stats_site_zone_position_all_resp_by_15minute
    ENGINE = AggregatingMergeTree(created_date, (created_date, position_id), 8192) POPULATE
    as
    select
    created_date,
    toStartOfFifteenMinutes(created) as created_15minute,
    site_id,
    zone_id,
    position_id,
    countState() as total,
    uniqState(user_id) as unique
    from td_stats.td_stats
    group by created_date, toStartOfFifteenMinutes(created), site_id, zone_id, position_id

    Запрос к матвью (время работы ~450 мс):
    select
    created_15minute as date,
    toInt32(countMerge(total)) as total,
    toInt32(uniqMerge(unique)) as unique
    from td_stats.mvw_td_stats_site_zone_position_all_resp_by_15minute
    where position_id = 6103
    group by created_15minute
    order by created_15minute

    Запрос к таблице с детальными данными (время работы ~170 мс !!!):
    select
    toStartOfFifteenMinutes(created) as date,
    toInt32(count()) as total,
    toInt32(uniq(user_id)) as unique
    from td_stats.td_stats
    where position_id = 6103
    group by toStartOfFifteenMinutes(created)
    order by toStartOfFifteenMinutes(created)
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61703 #61704 01:47 PM, 10 Aug 2018
    1) Для данного набора колонок у вас достаточно странный ПК
    2) Если версия КХ >= 18.1.0, то смысла использовать AggregatingMergeTree нет, берите Summing и храните стейты только для того что нужно, например тотал легко считается без хранения состояния.
  • https://t.me/clickhouse_ru
    Почему странный?
  • https://t.me/clickhouse_ru
    @pokoleniboroda #61706 01:56 PM, 10 Aug 2018
    Что ещё не понятно так это общие количества строк - они разные:
    select count() from
    (
    select
    toStartOfFifteenMinutes(created) as date,
    toInt32(count()) as total,
    toInt32(uniq(user_id)) as unique
    from td_stats.td_stats
    where
    position_id = 6103
    group by toStartOfFifteenMinutes(created)
    order by toStartOfFifteenMinutes(created)
    )

    select count() from
    (
    select
    created_15minute as date,
    toInt32(countMerge(total)) as total,
    toInt32(uniqMerge(unique)) as unique
    from td_stats.mvw_td_stats_site_zone_position_all_resp_by_15minute
    where
    position_id = 6103
    group by created_15minute
    order by created_15minute
    )

    Первый возвращает 1374, второй - 127.
  • https://t.me/clickhouse_ru
    @den_crane #61707 02:33 PM, 10 Aug 2018
    toInt32(uniq(user_id)) as unique -- это нельзя посчитать в MV.
    u +u+u
    1+1+1 = 3, а должно быть 1
  • https://t.me/clickhouse_ru
    В самом матвью для подсчёта уников использую uniqState(user_id). А в запросе к матвью использую uniqMerge(unique).
  • https://t.me/clickhouse_ru
    @den_crane #61709 02:43 PM, 10 Aug 2018
    ясно, я не заметил.
  • https://t.me/clickhouse_ru
    @den_crane #61710 02:48 PM, 10 Aug 2018
    но тогда как уже правильно заметили в order by нужен created_15minute
    чтобы для каждого значения created_15minute хранились стейты
  • @655029410 #61711 02:53 PM, 10 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    Всё так и есть. В матвью такой group by:
    group by created_date, toStartOfFifteenMinutes(created), site_id, zone_id, position_id
  • https://t.me/clickhouse_ru
    @den_crane #61713 02:57 PM, 10 Aug 2018
    блин, в моей голове новый синтаксис partition by order by, я про ключ схлапывания AggregatingMergeTree, который PK aka sortkey

    AggregatingMergeTree(created_date, (created_date, position_id, created_15minute)
  • https://t.me/clickhouse_ru
    @pokoleniboroda #61714 02:59 PM, 10 Aug 2018
    > > AggregatingMergeTree(created_date, (created_date, position_id, created_15minute)
    Надо будет попробовать. Спасибо за совет!
  • https://t.me/clickhouse_ru
    @den_crane #61715 03:03 PM, 10 Aug 2018
    ну и если вы пишете
    group by created_date, toStartOfFifteenMinutes(created), site_id, zone_id, position_id

    то логично все тоже самое перечислить и в PK
  • https://t.me/clickhouse_ru
    @den_crane #61716 03:03 PM, 10 Aug 2018
    тогда агрегаты будут хранится для всех комбинаций значений

    created_date, toStartOfFifteenMinutes(created), site_id, zone_id, position_id
  • https://t.me/clickhouse_ru
    Да, матвью с таким определением AggregatingMergeTree(created_date, (created_date, created_15minute, position_id), 8192) POPULATE возвращает такое же количество записей как и запрос к таблице с детальными данными. Хоть с этим разобрался.

    Но время выполнения почему-то больше у матвью. У матвью около 800 мс, у запроса к таблице с детальными данными около 170 мс.
  • https://t.me/clickhouse_ru
    @den_crane #61718 03:10 PM, 10 Aug 2018
    скорее всего uniqMerge работает медленно.
    сколько строк во вью и сколько в таблице? optimize final ?
  • https://t.me/clickhouse_ru
    @den_crane #61719 03:16 PM, 10 Aug 2018
    быстро будет потом, когда не нужно будет ходить в таблицу и считать count поднимая данные за месяц, можно будет сходить во вью и посчитать сумму, взяв готовые каунты для всех 15 мин. интервалов, т.е. когда во вью будет млн строк, а в таблице миллиард.
  • https://t.me/clickhouse_ru
    @den_crane #61720 03:21 PM, 10 Aug 2018
    а хотя с другой стороны, может и не будет быстрее, надо же все равно домерживать, т.е. во вью будет
    u,u1,u2,u4
    u,u1,u2,u3
    u11,u111
  • https://t.me/clickhouse_ru
    В матвью - 476 078 записей.
    В таблице с детальными данными - 299 304 710 записей.
  • https://t.me/clickhouse_ru
    @pokoleniboroda #61722 03:30 PM, 10 Aug 2018
    Запустил
    optimize table td_stats.TMP_mvw_td_stats_site_zone_position_all_resp_by_15minute final

    Теперь запрос к матвью отрабатывает за около 1.6 с. Время увеличилось вдвое.
    Что я делаю не так?
  • https://t.me/clickhouse_ru
    @den_crane #61723 03:36 PM, 10 Aug 2018
    не знаю, вот мой тест 0.009 MV vs 0.148 Table

    drop table z; drop table mvz;

    create table z(d Date, u String) Engine=MergeTree partition by tuple() order by tuple();

    CREATE MATERIALIZED VIEW mvz ENGINE = AggregatingMergeTree(d, (d), 8192) as select d, uniqState(u) as us from z group by d

    insert into z select today(), concat('usr',toString(rand()%664579)) from numbers(10000000);
    insert into z select today()-1, concat('usr',toString(rand()%664579)) from numbers(10000000);

    select (uniqMerge(us)) as unique from mvz group by d order by d;
    ┌─unique─┐
    │ 662715 │
    │ 662715 │
    └────────┘

    2 rows in set. Elapsed: 0.009 sec.

    select (uniq(u)) as unique from z group by d order by d;

    ┌─unique─┐
    │ 662715 │
    │ 662715 │
    └────────┘

    2 rows in set. Elapsed: 0.148 sec. Processed 20.00 million rows, 396.65 MB (135.45 million rows/s., 2.69 GB/s.)
  • https://t.me/clickhouse_ru
    @den_crane #61724 03:39 PM, 10 Aug 2018
    правда у меня строки схлапываются и во вью совсем мало строк (CH 18.6.0)
  • https://t.me/clickhouse_ru
    @den_crane #61725 03:42 PM, 10 Aug 2018
    ну и если строк много и все запросы типа where position_id = 6103, я бы position_id поставил первым в PK чтобы спускаться сразу к нему
  • https://t.me/clickhouse_ru
    @pokoleniboroda #61726 03:49 PM, 10 Aug 2018
    матвью пересоздал с прежним ключём. Время запроса по конкретному position_id прежнее - около 700-800 мс. Пересоздал матвью с ключом, в котором position_id поставил на первое место. Время выполнения запроса по position_id стало лучше - около 350 мс. Но всё равно, на таблице с детальными данными запрос отрабатывает быстрее - 170 мс.
  • https://t.me/clickhouse_ru
    Точнее так. Новое матвью создал совсеми ключами, какие перечислены в селекте, но position_id поставил на первое место:
    AggregatingMergeTree(created_date, (position_id, created_date, created_15minute, site_id, zone_id), 8192) POPULATE
  • https://t.me/clickhouse_ru
    @den_crane #61728 03:55 PM, 10 Aug 2018
    ОК. А сколько строк и какое время

    select count()
    from td_stats.mvw_td_stats_site_zone_position_all_resp_by_15minute
    where position_id = 6103
  • https://t.me/clickhouse_ru
    @pokoleniboroda #61729 03:58 PM, 10 Aug 2018
    select count() from td_stats.TMP_mvw_td_stats_site_zone_position_all_resp_by_15minute where position_id = 6103
    1 374 стр. За 12 мс.

    select count() from td_stats.td_stats where position_id = 6103
    1 862 345 стр. За 22 мс.
  • https://t.me/clickhouse_ru
    @den_crane #61730 04:02 PM, 10 Aug 2018
    тогда сделайте еще одно вью без site_id, zone_id
    иначе неравноценное сравнение
  • https://t.me/clickhouse_ru
    Матвью с только position_id:
    CREATE MATERIALIZED VIEW td_stats.TMP_mvw_td_stats_only_position_all_resp_by_15minute
    ENGINE = AggregatingMergeTree(created_date, (position_id, created_date, created_15minute), 8192) POPULATE
    as
    select
    created_date,
    toStartOfFifteenMinutes(created) as created_15minute,
    position_id,
    countState() as total,
    uniqState(user_id) as unique
    from td_stats.td_stats
    group by created_date, toStartOfFifteenMinutes(created), position_id

    Запрос с выбором конкретного position_id:
    select
    created_15minute as date,
    toInt32(countMerge(total)) as total,
    toInt32(uniqMerge(unique)) as unique
    from td_stats.TMP_mvw_td_stats_only_position_all_resp_by_15minute
    where
    position_id = 6103
    group by created_15minute
    order by created_15minute

    Время выполнения около 500 мс. Стало хуже.
  • https://t.me/clickhouse_ru
    @den_crane #61732 04:32 PM, 10 Aug 2018
    ну не знаю, возможно у вас такие хитрые юзеры, может из-за времени,
    у меня MV делает таблицу, и если много уникальных пользователей и если мало
    https://gist.github.com/den-crane/a72614fbe6d23eb9c2f1bce40c66893f
  • https://t.me/clickhouse_ru
    user_id - fixedstring(24)
    Так же есть hash_user_id - UInt64, содержит результат выражения sipHash64(toString(user_id)).

    Пересоздал матвью с использованием этого хеша - uniqState(hash_user_id) as unique.
    В итоге время чуть лучше стало, но не существенно.

    И на том большое спасибо! Будем думать дальше.
  • https://t.me/clickhouse_ru
    свопит может?
    Но 16 ГБ вообще не вариант если данных много, и ssd не поможет, потому что запросы выполняются в памяти, тупо будет падать каждый второй запрос.
  • примерно так и происходит. Сейчас база еще наполнена примерно только на 30%, объем базы уже привысил 300Тб.
    Вот про ссд впервые подумал, когда по статистике I/O увидел то, что CH занимает почти весь тайминг у HDD.
    Потом решил усомниться в своем предположении. На моей практике это первый проект с такими объемами. Толком вот не знаю, сколько по хорошему надо рессурсов и каких
  • https://t.me/clickhouse_ru
    @den_crane #61736 07:09 PM, 10 Aug 2018
    300 T или 300 Г ? От запросов зависит и их количества, посчитать тяжело, просто 16 сильно мало, особенно если запросы будут перетряхивать 300Г а потом агрегировать в памяти например 10, наверняка у вас под кеш линукса осталось 4.
  • @118813509 #61737 07:10 PM, 10 Aug 2018
    300Gb, опечатался
  • @118813509 #61738 07:11 PM, 10 Aug 2018
    тоесть я правильно понимаю, что больше важна тут ОЗУ, чем само дисковое хранилище?
  • 11 August 2018 (74 messages)
  • https://t.me/clickhouse_ru
    зависит от запросов у меня на 2тб выходит 6 виртуалок по 8 гигов и 2 ядра пока хватат
  • https://t.me/clickhouse_ru
    @notmaxx #61740 01:34 AM, 11 Aug 2018
    Доброе утро, правильно я понимаю, что после INSERT батча в MergeTree движках новые данные для SELECT будут доступны сразу после завершения INSERT. Но если я хочу использовать специфику типа Summing/Collapsing/Replacing то мне нужно чтоб случился merge либо ипользовать FINAL ?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61740 #61742 04:19 AM, 11 Aug 2018
    Для всех движков после INSERT данные будут доступны сразу, для Summing нужно всегда делать агрегацию. Движки в фоне, в зависимости от специфики, при мержах разным спосоом куски обрабатывают.
  • https://t.me/clickhouse_ru
    @baltazorbest #61743 05:46 AM, 11 Aug 2018
    Привет. Подскажите пожалуйста, использую движок ReplacingMergeTree делаю count получаю 1.7млн записей делаю count с final получаю 580к записей, делаю optimize table но записи все равно не чистятся и результаты получаю такие же самые, в чем может быть причина? Ключ версии выбрал поле типа DateTime
  • https://t.me/clickhouse_ru
    Возможно вы делаете оптимайз не того партишига. Найдите запросом месяц, в котором есть хоть один дубль и вызовите для него оптимайз
  • https://t.me/clickhouse_ru
    @baltazorbest #61745 06:23 AM, 11 Aug 2018
    Спасибо, попробую
  • https://t.me/clickhouse_ru
    @notmaxx #61746 06:59 AM, 11 Aug 2018
    Подскажите, какой Engine использовать для следующего кейса: постоянно создаются и меняются новые объекты (до 100 000 в сек) для разных пользователей, объект может быть в 3 состояниях - Started -> InProgress -> Completed (иногда Started->Completed), нужно считать количество объектов в каждом состоянии по каждому пользователю и выдавать их список за какой-то диапазон времени. Изменение состояния большинства объектов происходит в течние минуты. Финальное состояние хотелось бы видеть сразу в SELECT, а не после непредсказуемого merge. Первое, что приходит в голову, - вставлять запись о каждом состоянии в MergeTree (но непонятно, как выбирать только последний стейт каждого объекта) или ReplacingMT и делать SELECT FINAL (но, по тому, что я читал, скорость выборки падает в разы), а так же делать AggregatedMT MV для каждого состояния, чтоб считать объекты в каждом состоянии.
    Есть какие-то best practice для подобной задачи в КХ?
  • https://t.me/clickhouse_ru
    @baltazorbest #61747 07:01 AM, 11 Aug 2018
    MergeTree
  • https://t.me/clickhouse_ru
    @baltazorbest #61748 07:02 AM, 11 Aug 2018
    Например так:
    2 поля start / complete
    0 / 0 - start
    1 / 0 - in progress
    1 / 1 - complete
  • https://t.me/clickhouse_ru
    @baltazorbest #61749 07:02 AM, 11 Aug 2018
    Всегда можно узнать состояние
  • https://t.me/clickhouse_ru
    Он уже поддерживает update?
  • https://t.me/clickhouse_ru
    @baltazorbest #61751 07:02 AM, 11 Aug 2018
    Ну или просто progress поле с 3 состояниями
  • https://t.me/clickhouse_ru
    @baltazorbest #61752 07:02 AM, 11 Aug 2018
    И типом UInt8
  • https://t.me/clickhouse_ru
    @baltazorbest #61753 07:03 AM, 11 Aug 2018
    Update на сколько я знаю только начинают вводить в кодовую базу
  • https://t.me/clickhouse_ru
    @BloodJazMan #61754 07:03 AM, 11 Aug 2018
    Как из него последнее состояние выбрать?
  • https://t.me/clickhouse_ru
    @baltazorbest #61755 07:04 AM, 11 Aug 2018
    Where progress=3 если 1 поле
    И
    Where start =1 and complete =1
  • https://t.me/clickhouse_ru
    @BloodJazMan #61756 07:04 AM, 11 Aug 2018
    Last_value partition by насколько я знаю нет
  • https://t.me/clickhouse_ru
    @BloodJazMan #61757 07:04 AM, 11 Aug 2018
    Это не последнее состояние
  • https://t.me/clickhouse_ru
    @baltazorbest #61758 07:04 AM, 11 Aug 2018
    Последнее состояние чего?
  • https://t.me/clickhouse_ru
    @BloodJazMan #61759 07:05 AM, 11 Aug 2018
    Объекта
  • https://t.me/clickhouse_ru
    @BloodJazMan #61760 07:05 AM, 11 Aug 2018
    Финальное состояние человек хочет в select
  • https://t.me/clickhouse_ru
    @baltazorbest #61761 07:05 AM, 11 Aug 2018
    Update это по сути
    select with change 1 field
  • https://t.me/clickhouse_ru
    @baltazorbest #61762 07:05 AM, 11 Aug 2018
    На данный момент
  • https://t.me/clickhouse_ru
    @baltazorbest #61763 07:05 AM, 11 Aug 2018
    Ну
  • https://t.me/clickhouse_ru
    @baltazorbest #61764 07:06 AM, 11 Aug 2018
    select count(*) from table where start =1 and complete=1
  • https://t.me/clickhouse_ru
    @baltazorbest #61766 07:06 AM, 11 Aug 2018
    Если делать с 1 поле то подходит
  • https://t.me/clickhouse_ru
    @baltazorbest #61767 07:06 AM, 11 Aug 2018
    Если ввести поле progress с 3 состояниями
  • https://t.me/clickhouse_ru
    @BloodJazMan #61768 07:07 AM, 11 Aug 2018
    Ок :) все теперь и я знаю про argmax
  • https://t.me/clickhouse_ru
    @baltazorbest #61769 07:07 AM, 11 Aug 2018
    0 - start
    1 - in progress
    2 - complete
  • https://t.me/clickhouse_ru
    @baltazorbest #61770 07:07 AM, 11 Aug 2018
    В любой момент времени можно узнать когда и сколько и каких было состояний
  • https://t.me/clickhouse_ru
    @notmaxx #61771 07:08 AM, 11 Aug 2018
    спасибо, а как выбрать список объектов с последними состоянями до того как мердж не прошел?
  • https://t.me/clickhouse_ru
    @baltazorbest #61772 07:09 AM, 11 Aug 2018
    А он и не пройдет
  • https://t.me/clickhouse_ru
    @baltazorbest #61773 07:09 AM, 11 Aug 2018
    При MergeTree у вас остаются все 3 записи
  • https://t.me/clickhouse_ru
    @baltazorbest #61774 07:10 AM, 11 Aug 2018
    Это более надёжно для вашей задачи
  • https://t.me/clickhouse_ru
    @notmaxx #61775 07:10 AM, 11 Aug 2018
    то есть делать клиентскую обработку?
  • https://t.me/clickhouse_ru
    @baltazorbest #61776 07:10 AM, 11 Aug 2018
    Да
  • https://t.me/clickhouse_ru
    @baltazorbest #61777 07:10 AM, 11 Aug 2018
    Тогда вы не потеряете свои данные
  • https://t.me/clickhouse_ru
    @baltazorbest #61778 07:11 AM, 11 Aug 2018
    А старые всегда можно сделать detach
  • https://t.me/clickhouse_ru
    @baltazorbest #61779 07:11 AM, 11 Aug 2018
    И куда то сложить
  • https://t.me/clickhouse_ru
    @notmaxx #61780 07:11 AM, 11 Aug 2018
    фактически на 100 записей мне приедет 300 состояний, я перед дальнейшей обработкой откидываю 200?
  • https://t.me/clickhouse_ru
    @evsign #61781 07:13 AM, 11 Aug 2018
    MergeTree

    objectKey | state | userId | date

    select count(), state, userId from table where date between .... and ... group by state, userId order by date desc limit 1 by objectKey, state, userId
  • https://t.me/clickhouse_ru
    @notmaxx #61782 07:22 AM, 11 Aug 2018
    а state надо в PK включать? или достаточно user-id?
  • https://t.me/clickhouse_ru
    @evsign #61783 07:24 AM, 11 Aug 2018
    Как хотите) Я бы objectKey и userId ток в пк добавил)
  • https://t.me/clickhouse_ru
    @notmaxx #61784 07:25 AM, 11 Aug 2018
    спасибо, буду пробовать на реальных данных
  • @nezed ↶ Reply to #61782 #61785 07:25 AM, 11 Aug 2018
    В этом кейсе лишним не будет. Причем лучше date, state, user-id
  • https://t.me/clickhouse_ru
    @npestrov #61786 11:07 AM, 11 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    Если это игра и результаты запроса нужны не для анализа постфактум, а для хода игры, то не полетит, кх eventual consistent и время выполнения запросов непредсказуемо и слишком медленно для маленьких выборок.
  • https://t.me/clickhouse_ru
    @yuriyturiy #61788 11:52 AM, 11 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @soider #61789 12:07 PM, 11 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @notmaxx ↶ Reply to #61787 #61791 03:06 PM, 11 Aug 2018
    Не, надо показать пользователю страничку с его объектами и аналитикой за неделю, мес, год
  • https://t.me/clickhouse_ru
    @notmaxx #61792 03:08 PM, 11 Aug 2018
    И доп фильтры по завершенным/незавершенным
  • https://t.me/clickhouse_ru
    @notmaxx #61793 03:09 PM, 11 Aug 2018
    Большого кол-ва SELECT быть не должно
  • @248840725 #61794 04:20 PM, 11 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @notmaxx #61795 04:33 PM, 11 Aug 2018
    @den_crane правильно я понимаю, если у меня несколько реплик данных и SELECT будут приходить на разные машины, то это повысит SELECT request rate?
  • https://t.me/clickhouse_ru
    @notmaxx #61796 04:36 PM, 11 Aug 2018
    @count0ru я нашел случайно на гитхабе твою репу с КХ под кубер, хотел поинтересоваться, взлетело?
  • https://t.me/clickhouse_ru
    @den_crane #61797 04:38 PM, 11 Aug 2018
    Ну да, можно больше запросов делать. И можно тяжёлые запросы выполнять сразу двумя репликами, но это не всегда помогает и ускоряет не кратно числу реплик.
  • https://t.me/clickhouse_ru
    @notmaxx ↶ Reply to #61797 #61798 04:43 PM, 11 Aug 2018
    про фразу "кх eventual consistent и время выполнения запросов непредсказуемо и слишком медленно для маленьких выборок." - правильно, я понимаю, что это by design, то есть он не держит большое количество SELECT в принципе (условно говоря 1-3 в секунду - ок), но так как данные после INSERT доступны сразу для SELECT (как написали выше), то с этой точки зрения он консистентен?
  • https://t.me/clickhouse_ru
    @notmaxx #61799 04:44 PM, 11 Aug 2018
    (это я спросил)
  • https://t.me/clickhouse_ru
    Да, так
  • https://t.me/clickhouse_ru
    @notmaxx #61801 04:45 PM, 11 Aug 2018
    спасибо
  • https://t.me/clickhouse_ru
    @den_crane #61802 04:53 PM, 11 Aug 2018
    КХ невероятно быстро умеет перемолоть 50 млрд. записей на 10 нодах обработав данные за 2 года. КХ не заточен выбирать 10 записей.
  • https://t.me/clickhouse_ru
    @vstepankov #61803 04:55 PM, 11 Aug 2018
    https://felixit.blog/2017/07/04/clickhouse-zachem/
    Очень хорошие слова
    Самое важное, что следует запомнить и понять — эта база данных делалась не для вас и не для ваших задач.
    Нужно особенности кликхауса превращать в плюсы для своего приложения
    ClickHouse: Зачем

    Два англичанина ловят рыбу в Темзе. У одного дергается поплавок, он подсекает и вытаскивает прелестную русалку. Полюбовавшись ею, снимает русалку с крючка и бросает обратно в воду. Второй удивляетс...

  • https://t.me/clickhouse_ru
    @notmaxx #61804 04:56 PM, 11 Aug 2018
    да, спасибо, я
  • https://t.me/clickhouse_ru
    @notmaxx #61805 04:56 PM, 11 Aug 2018
    это все прочитал
  • https://t.me/clickhouse_ru
    @notmaxx #61806 04:57 PM, 11 Aug 2018
    буду тестировать и думать смогу я его особенности превратить в плюсы или нет
  • https://t.me/clickhouse_ru
    @vstepankov #61807 04:58 PM, 11 Aug 2018
    тут самое сложное, это бить себя по рукам, чтобы не получалось негативного переноса навыков
  • https://t.me/clickhouse_ru
    @notmaxx #61808 04:58 PM, 11 Aug 2018
    у меня есть две разные задачи - аналитика, под нее он подходит хорошо
  • https://t.me/clickhouse_ru
    @notmaxx #61809 04:58 PM, 11 Aug 2018
    показывать небольшие списки - под нее он подходит плохо
  • @f1x3rr #61810 04:59 PM, 11 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @count0ru ↶ Reply to #61796 #61811 05:04 PM, 11 Aug 2018
    Почти да )
  • https://t.me/clickhouse_ru
    @count0ru #61812 05:04 PM, 11 Aug 2018
    Но это было давно - я бы поискал Хельм чарт
  • https://t.me/clickhouse_ru
    @regorov #61813 07:31 PM, 11 Aug 2018
    Робяты, кто нить на Go использует эту библиотеку? "github.com/kshvakov/clickhouse". Никак не могу побороть сохранение в таблице поля, который является массивов UInt64. Может кто подскажет как?
    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
    @chromebookman #61814 07:46 PM, 11 Aug 2018
    Ребята, кто может подсказать по когортному анализу в Google Sheets, с помощью плагин Analytics Addon?
  • https://t.me/clickhouse_ru
    @nicname ↶ Reply to #61813 #61815 07:53 PM, 11 Aug 2018
    @kshvakov скорее всего подскажет )
  • 12 August 2018 (15 messages)
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61813 #61817 04:25 AM, 12 Aug 2018
    Должно работать как и для любого другого значения INSERT INTO T (ColumnAUInt64) VALUES(?), в Exec передаете массив.
  • https://t.me/clickhouse_ru
  • @635382753 #61819 07:17 AM, 12 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @regorov #61820 07:22 AM, 12 Aug 2018
    @kshvakov, спасибо!
  • https://t.me/clickhouse_ru
    @freeseacher #61821 08:18 AM, 12 Aug 2018
    Коллеги, а как так может получится что кх не переделывает -preprocessed файлы ?
  • https://t.me/clickhouse_ru
    @freeseacher #61822 08:19 AM, 12 Aug 2018
    -rwxrwxr-x. 1 clickhouse clickhouse 1583 авг 11 06:46 administrativedomain-preprocessed.xml
    -rw-r--r-- 1 root root 1326 авг 12 11:15 administrativedomain.xml
  • https://t.me/clickhouse_ru
    @Shegloff #61823 08:26 AM, 12 Aug 2018
    Ошибка видимо в конфиге
  • https://t.me/clickhouse_ru
    @notmaxx #61825 06:37 PM, 12 Aug 2018
    Скажите, а КХ нормально относится к запросам когда надо вернуть десяток млн записей по PK раз час условно? В capn'proto например, список UInt32
  • https://t.me/clickhouse_ru
    @notmaxx #61826 06:39 PM, 12 Aug 2018
    Аггрегацию по ним он считает полсекунды на моем датасете
  • https://t.me/clickhouse_ru
    @notmaxx #61827 06:40 PM, 12 Aug 2018
    Фактически ему надо вычитать 40 МБ с диска и запихать в сеть
  • https://t.me/clickhouse_ru
    Почему бы и нет, но профит от кх в таких запросах сомнительный. Мы выгружаем несколько сот тысяч ежесуточно, пока ничего не сломалось :)
  • https://t.me/clickhouse_ru
    @notmaxx #61829 06:41 PM, 12 Aug 2018
    Быстро отрабатывает несколько сот тыс? По PK?
  • https://t.me/clickhouse_ru
    @EvgenyVinogradov #61830 06:49 PM, 12 Aug 2018
    Выборка не полностью по pk. Отрабатывает достаточно быстро. Основное время - сеть и запись в dest выгрузки
  • https://t.me/clickhouse_ru
    @notmaxx ↶ Reply to #61830 #61831 06:57 PM, 12 Aug 2018
    Спасибо, буду тестить тоже
  • @varyhin #61832 08:15 PM, 12 Aug 2018
    Joined.
  • 13 August 2018 (127 messages)
  • https://t.me/clickhouse_ru
    @149051052 #61834 06:43 AM, 13 Aug 2018
    Доброе утро!
    Есть запрос с JOIN. В результате получаем выборку и группируем ее.
    В процессе этой группировки необходимо работать с количество строк в этом JOIN. Как получить это количество в том же запросе?
    Например:
    >SELECT A.name, sum(B.val) / count(B.date) FROM A JOIN B GROUP BY B.date
    - count(B.date) в данном случае вернет конечно же количество строк в группировке, есть способ получить число строк в JOIN?
  • https://t.me/clickhouse_ru
    @cyssima #61835 06:47 AM, 13 Aug 2018
    Кто нить пользуется kafka table engine https://clickhouse.yandex/docs/en/operations/table_engines/kafka/? Для кого рода задач?
  • https://t.me/clickhouse_ru
    @cyssima #61836 06:49 AM, 13 Aug 2018
    /stat@combot
  • https://t.me/clickhouse_ru
    @Vasyaabr ↶ Reply to #61834 #61838 06:54 AM, 13 Aug 2018
    Собрать всё нужное во вложенном запросе, и уже в окончательном посчитать?
  • https://t.me/clickhouse_ru
    >JOIN (SELECT B.date, count())
    - так нельзя сделать
    Нужны отдельно каждая строка и количество этих строк

    Можно было бы сделать как-то так, но это дополнительный ненужный запрос
    >JOIN (SELECT B.date FROM B)
    >JOIN (SELECT count() as count FROM B)

    В процессе агрегирования (группировке) нужен доступ к оригиналу таблицы без учета агрегации
  • https://t.me/clickhouse_ru
    @al_tush #61840 07:34 AM, 13 Aug 2018
    Всем привет!
    Пока не разобрался с этим, поэтому повторю вопрос:
    Подскажите, пожалуйста, как настроить проверку переполнения при insert. В конфигурации Кликхауса по умолчанию такая вставка проходит без ошибок:
    CREATE TABLE default.test (
    i32 UInt32
    ) ENGINE = Memory;

    INSERT INTO default.test (i32) VALUES (123456789012345);

    (проверял также для MergeTree - поведение такое же)
  • https://t.me/clickhouse_ru
    Никак, проверяйте на клиенте, перед отправкой
  • https://t.me/clickhouse_ru
    Приведите пример полного запроса, что именно вам нужно
  • @Polamane #61843 07:44 AM, 13 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @gani8484 #61844 07:45 AM, 13 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @data_kvh #61845 07:45 AM, 13 Aug 2018
    Joined.
  • @559568973 #61846 07:47 AM, 13 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @vi_pl #61847 07:48 AM, 13 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @blessyoub #61848 07:52 AM, 13 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @i_Molodec #61849 07:55 AM, 13 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @avozorom #61850 07:59 AM, 13 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @osiyuk #61851 08:10 AM, 13 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @borzilo_y #61852 08:25 AM, 13 Aug 2018
    Joined.
  • @594975525 #61853 08:45 AM, 13 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    TABLE A: id, colA
    TABLE B: id, colB

    SELECT colA/(количество строк в табилце "В"), sum(colB) FROM A
    ANY INNER JOIN (SELECT id, colB FROM B) USING id
    GROUP BY colA

    Возможно ли в процессе агрегации обращаться к неагрегированным данным таблицы?
  • https://t.me/clickhouse_ru
    @IDMatveev #61855 09:00 AM, 13 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    Может как-то так
    SELECT
    colA / sum(bCount),
    sum(colB)
    FROM
    A
    ANY INNER JOIN (
    SELECT
    id,
    colB,
    1 AS bCount
    FROM
    B
    ) USING id
    GROUP BY
    colA

    Но проще сделать отдельный запрос и явно подставить count() от B в запрос
  • https://t.me/clickhouse_ru
    Предположу, что так он подсчитает число sum(bCount) для каждого colA, а не для всех, т.е. это так же с учетом агрегации
  • https://t.me/clickhouse_ru
    @149051052 #61858 09:29 AM, 13 Aug 2018
    Знаю, что в CH есть есть комбинатор -State, подумал, может быть есть и такой, который будет обрабатывать данные на уровне "за группировкой"
  • @Mergen_Abusheev #61859 10:10 AM, 13 Aug 2018
    Joined.
  • @Mergen_Abusheev #61860 10:12 AM, 13 Aug 2018
    Привет всем!
    пытаюсь подключитсья к CH через докер, не выходит.

    docker run -it yandex/clickhouse-client:latest -h IP --port PORT -u USER --password PASS --database DBNAME

    Code: 32. DB::Exception: Attempt to read after eof

    В чем может быть проблема?
  • https://t.me/clickhouse_ru
    А как докер сервера как запускали? PORT торчит наружу?
  • Я до этого только с идешки подключался, порт наружу
  • @Mergen_Abusheev #61863 10:17 AM, 13 Aug 2018
    С табикса и идешки норм получается, в терминале через докер не получается
  • есть идеи в чем может быть проблема?
  • https://t.me/clickhouse_ru
    @ytsemashko #61865 10:34 AM, 13 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #61866 10:36 AM, 13 Aug 2018
    Скорее всего проблема в том, что вы из докера, через слиент КХ, пытаетесь обратиться к порту, доступному из хоста (там, где докеры запущены). И вам нужно как-то прокинуть порт для докера (я не сильно разбираюсь), как-то так
    https://forums.docker.com/t/accessing-host-machine-from-within-docker-container/14248/4
    Accessing host machine from within docker container

    Expected behavior I should have a way to access host machine from within container. Actual behavior Cant figure out how to do that with docker for mac beta Information With the change to all the docker images running on localhost and the ditching of virtualbox (which from what little I understand, made networking more difficult), I would think there would be a standard way to access the host machine from within the docker container. Is there a way to do this with docker for mac? All the docs r...

  • https://t.me/clickhouse_ru
    @dmitry_berezhnov #61867 10:37 AM, 13 Aug 2018
    Но это не факт
  • убрал порт вообще, зашел, спасибо)
  • https://t.me/clickhouse_ru
    @ytsemashko #61869 10:55 AM, 13 Aug 2018
    Здравствуйте. Подскажите по первичному ключу в MergeTree пожалуйста. ПК - это то, как кликхаус будет сортировать записи при вставке. И описывать ПК слишком детально, наверное, не стоит - скорость вставки может сиильно понизиться, верно?
    Вставлять первым элементом в кортеж поле типа DateTime не очень хороошая идея? А если это DateTime всегда округлено до пяти минут (00:00:00, 00:00:05 etc т.к. метрики ко мне прилетают четко раз в пять миинут)?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61869 #61870 10:57 AM, 13 Aug 2018
    Для метрик DateTime в индексе отличный выбор ;)
  • https://t.me/clickhouse_ru
    @Imaskar #61871 10:58 AM, 13 Aug 2018
    DateTime или Date?
  • https://t.me/clickhouse_ru
    @ytsemashko #61872 10:58 AM, 13 Aug 2018
    DateTime
  • https://t.me/clickhouse_ru
    @ytsemashko #61873 10:59 AM, 13 Aug 2018
    ну типа да. Просто зачем я вдруг подумал про DateTime в ПК: я внезапно захотел заюзать SummingMergeTree, чтобы оно мне метрики за одно и то же время по одним и тем же, скажем, связям суммировал.
  • https://t.me/clickhouse_ru
    @ytsemashko #61874 10:59 AM, 13 Aug 2018
    У меня есть сценарий, когда по одному набору "измерений" прилетают счетчики по очереди: сначала counter1, потом counter2.
  • https://t.me/clickhouse_ru
    @ytsemashko #61875 11:00 AM, 13 Aug 2018
    думал, устанавливать отсутствующие счетчики в 0 и позволять SUmmingMergeTree сразу же аггрегировать подобные записи. Вот такой пример у меня моей схемы: https://gist.github.com/azzz/c9e2d1cb4ec99184a4c790e820db504e
  • https://t.me/clickhouse_ru
    @Imaskar #61876 11:00 AM, 13 Aug 2018
    это я у Кирилла спрашивал. обычно просто рекомендуют в индекс выносить Date
  • https://t.me/clickhouse_ru
    @ytsemashko #61877 11:01 AM, 13 Aug 2018
    я думаю, Кирилл сарказмировал
  • https://t.me/clickhouse_ru
    @Imaskar #61878 11:01 AM, 13 Aug 2018
    похоже, да
  • https://t.me/clickhouse_ru
    @kshvakov #61879 11:01 AM, 13 Aug 2018
    Нет, у вас все норм, только старайтесь вместо строк числовые идентификаторы использовать
  • https://t.me/clickhouse_ru
    @ytsemashko #61880 11:01 AM, 13 Aug 2018
    соответственно, три пути:
    - пусть программа группрует такие записи
    - пусть группирует КХ - он умный.
    - вообще не группировать прии вставке и не париться.
  • https://t.me/clickhouse_ru
    @ytsemashko #61881 11:02 AM, 13 Aug 2018
    @kshvakov ну, я эти строки в Dictionary вынесу. Тем более, что те строки - это вообще полная печалька, там... UUIDы.
  • https://t.me/clickhouse_ru
    @kshvakov #61882 11:03 AM, 13 Aug 2018
    Для метрик SummingMergeTree отличный выбор, мы так туда из кафки сырые даные скидываем, а он в фоне суммирует
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61881 #61883 11:03 AM, 13 Aug 2018
    Тогда FixedString(16) и все будет хорошо
  • https://t.me/clickhouse_ru
    @ytsemashko #61884 11:04 AM, 13 Aug 2018
    в документации пишут, что с FixedString умеют работать не все функции и лучше его избегать. Но в принциипе, я не собираюсь проводиить манипуляции с ними.
  • https://t.me/clickhouse_ru
    @ytsemashko #61885 11:05 AM, 13 Aug 2018
    Окей, но SummingMergeTree мержит записи не при каждом инсерте, а когда сам посчитает нужным. Т.е. вполне вероятен сценарий, когда я сделаю select и вместо одной записи получу 4 - т.к. еще не смержил, не успел.

    Выходит, что group by прийдется делать всегда при селекте?
  • https://t.me/clickhouse_ru
    @ytsemashko #61886 11:06 AM, 13 Aug 2018
    таким образом, SummingMergeTree не то, чтобы сильно оптимизириует время получения данных, но зато оптимизирует процесс хранения, ага?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61885 #61887 11:06 AM, 13 Aug 2018
    да, всегда нужно делать "доагрегированние"
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61886 #61888 11:07 AM, 13 Aug 2018
    Он сильно можнт оттимизировать все схлопнув 1кк метрик в 500
  • https://t.me/clickhouse_ru
    @ytsemashko #61889 11:08 AM, 13 Aug 2018
    ну так-то да.
  • https://t.me/clickhouse_ru
    @ytsemashko #61890 11:09 AM, 13 Aug 2018
    спасибо.
  • https://t.me/clickhouse_ru
    @AlexAkulov #61891 11:26 AM, 13 Aug 2018
    Не совсем понятно из документаци <allow_databases> нужно указывать в настройках пользователя или в настройках квоты?
  • https://t.me/clickhouse_ru
    @sl_aleksandr #61892 11:27 AM, 13 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61891 #61893 11:41 AM, 13 Aug 2018
    Пользователя
  • https://t.me/clickhouse_ru
    @AlexAkulov #61894 11:41 AM, 13 Aug 2018
    спс
  • https://t.me/clickhouse_ru
    @edyya #61896 11:53 AM, 13 Aug 2018
    Друзья, подскажите, пожалуйста, когда ожидается функционал КХ, который позволит разграничивать права пользователей на запись к конкретным бд ?
  • https://t.me/clickhouse_ru
    @chertus #61897 11:54 AM, 13 Aug 2018
    в текущем roadmap-е нет https://clickhouse.yandex/docs/en/roadmap/
  • https://t.me/clickhouse_ru
    Что-то я не понимаю, а <allow_databases> это разве не оно?
  • https://t.me/clickhouse_ru
    @chertus #61899 11:58 AM, 13 Aug 2018
    Также, в необязательном разделе <allow_databases> можно указать перечень баз, к которым у пользователя будет доступ. По умолчанию пользователю доступны все базы. Можно указать базу данных default, в этом случае пользователь получит доступ к базе данных по умолчанию.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @chertus #61901 11:59 AM, 13 Aug 2018
    этого достаточно?
  • https://t.me/clickhouse_ru
    @edyya #61902 11:59 AM, 13 Aug 2018
    а там разве мжно как-либо сделать так, чтобы у пользователя Х был доступ на Запись к бд1 и только Чтение к бд2?
  • https://t.me/clickhouse_ru
    нет
  • https://t.me/clickhouse_ru
    @AlexAkulov #61904 12:00 PM, 13 Aug 2018
    Доступ к БД не связан с настройкой readonly. Невозможно дать полный доступ к одной БД и readonly к другой.
  • https://t.me/clickhouse_ru
    @edyya #61905 12:01 PM, 13 Aug 2018
    В этом и проблема. У нас тут орда аналитков, которым желательно не давать доступ на запись к основым бд, но при этом у них должжен быть доступ на запись к своим бд
  • https://t.me/clickhouse_ru
    @chertus #61906 12:02 PM, 13 Aug 2018
    звучит как issue. можно завести на github и дообсудить там
  • https://t.me/clickhouse_ru
    @edyya #61907 12:02 PM, 13 Aug 2018
    да, заведу. Спасибо
  • https://t.me/clickhouse_ru
    @vstepankov #61908 12:03 PM, 13 Aug 2018
    а chproxy не решает?
  • https://t.me/clickhouse_ru
    @edyya #61909 12:08 PM, 13 Aug 2018
    он вроде не решает эту проблему:
    чтобы у пользователя Х был доступ на Запись к бд1 и только Чтение к бд2
  • https://t.me/clickhouse_ru
    @MaxMatiukhin #61910 12:35 PM, 13 Aug 2018
    Joined.
  • @Andriiqq #61911 12:52 PM, 13 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @edyya ↶ Reply to #61906 #61912 12:53 PM, 13 Aug 2018
    Разграничение прав пользователей к разным бд #2858

    Добрый день! Нам очень нужен функционал, который позволит разграничивать права доступа к бд внутри КХ. Например, у пользователя Х должен быть доступ на Запись к бд1 и только Чтение к бд2. Чтобы можно было реализовать такую логическую стр...

  • @Mergen_Abusheev #61913 01:15 PM, 13 Aug 2018
    Есть две таблицы
    1 таблица
    домен дата и время посещения
    ххх.ру 2016-12-31 21:02:07

    2 таблица
    домен дата и время перехода
    ххх.ру 2016-12-31 20:48:07

    необходимо заджоинить все случаи, когда переходы были с одного домена и примерно в одно время(1 час разброс)

    Вопрос: как указать разброс через ON?
  • @nezed #61914 01:16 PM, 13 Aug 2018
    Подскажите, пожалуйста, можно ли полагаться на коды ошибок КХ?
    Нашёл их перечисление только здесь

    https://github.com/yandex/ClickHouse/blob/master/dbms/src/Common/ErrorCodes.cpp
  • https://t.me/clickhouse_ru
    @chertus ↶ Reply to #61914 #61915 01:18 PM, 13 Aug 2018
    в каком смысле полагаться?
  • https://t.me/clickhouse_ru
    @chertus #61916 01:22 PM, 13 Aug 2018
    если про проверку конкретных кодов ошибок, то наверное пока не стоит. ситуация, когда вместо одной ошибки в новой версии прилетит другая, вполне возможна. специально это не проверяется
  • https://t.me/clickhouse_ru
    @chertus #61917 01:24 PM, 13 Aug 2018
    специально порядок из приведенного выше файла никто ломать не будет, но ошибки могут например, переупорядочиться - был запрос, возвращающий ошибку X, добавили оптимизацию и вместо X он стал возвращать Y
  • @nezed #61918 01:30 PM, 13 Aug 2018
    Вполне логично) Спасибо
  • https://t.me/clickhouse_ru
    @ytsemashko #61919 01:44 PM, 13 Aug 2018
    Я тут себе в программу добавил кликхаус и половину кода пришлось удалить. Было на постгресе (мы положили 500 миллионов запсией в постгрес и он умер). КХ работает чудесно - я рад. Надеюсь, все глюки будут решаемы.

    Но есть вопрос: кастомер меня спрашивает "а хренли КХ?". Мои доводы "я бы рад что угодно другое, но что под руку попалось то и взял т.к. до дедлайна у нас три дня, а со спарком мне времени разбираться нет". Однако, всякие там манагеры немного стремаются юзать столь молодое решение. Посему вопрос: есть ли какой-нибудь платный саппорт? Яндексу это нафиг не нужно, конечно, но может какая-то сторонняя компания, которую можно порекомендовать?
  • https://t.me/clickhouse_ru
    @ytsemashko #61920 01:45 PM, 13 Aug 2018
    платный саппорт на случай ответа на вопрос "у нас по постгресу огромный ноуледж, мы всё знаем, все знают поостгрес, а что делать с КХ если он упадет ааааааа"
  • https://t.me/clickhouse_ru
    @ytsemashko #61921 01:45 PM, 13 Aug 2018
    (почему с огромным ноуледжом мы смогли ушатать постгрес и ничего не смогли с этим сделать - оставиим за кадром)
  • https://t.me/clickhouse_ru
    @Imaskar #61922 01:45 PM, 13 Aug 2018
    Altinity же. первая строчка в гугле
  • https://t.me/clickhouse_ru
    @ytsemashko #61923 01:46 PM, 13 Aug 2018
    ну а ее порекомендовать кроме гугла кто-то может?
  • https://t.me/clickhouse_ru
    @ytsemashko #61924 01:46 PM, 13 Aug 2018
    что это вообще за чувачки?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #61923 #61925 01:49 PM, 13 Aug 2018
    @alexanderzaitsev может рассказать вам кто они и чем занимаются
  • https://t.me/clickhouse_ru
    @ytsemashko #61926 01:50 PM, 13 Aug 2018
    ага, CO-FOUNDER. Спасибо
  • https://t.me/clickhouse_ru
    @Sheenpaul #61927 01:52 PM, 13 Aug 2018
    Joined.
  • @pavel_maksimow #61928 02:56 PM, 13 Aug 2018
    Подскажите пожалуйста, почему данные не вставляются, ругается на разделитель, там где значение пустое. Ведь в этом случае он по умолчанию должен 0 вставить?
  • https://t.me/clickhouse_ru
    Мы используем, для интеграции - много загрузчиков из разных источников пишут данные в кафку, КХ материализует данные пачками в БД.
  • https://t.me/clickhouse_ru
    @chertus ↶ Reply to #61928 #61930 03:08 PM, 13 Aug 2018
    можете привести строку, которая не вставилась? кажется там могут быть варианты в зависимости, есть кавычки или нет
  • @pavel_maksimow #61932 03:17 PM, 13 Aug 2018
    "38855324,x,32691717,3158850595,5300453710,TEXT_AD,NONE,ON,ACCEPTED,Идут показы.,,,"Вернитесь, чтобы завершить заказ!",,"Вы не забыли про свой заказ в магазине? Он ждет Вас!",https://x.ru/cart.html,NO,x.ru,ваша-корзина,39100487,ACCEPTED,Контактная информация принята на модерации.,ACCEPTED,Отображаемая ссылка принята на модерации.,0,,,b2U77LytWaTeztLmelASvw,ACCEPTED,Изображение принято на модерации.,[],,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"

    обернул в кавычки.

    Попробовал вставить с CSV разделителем, тоже самое

    Column 31, name: TextAdVideoExtensionCreativeID, type: UInt32, ERROR: text ",,,,,,,,,," is not like UInt32
  • @pavel_maksimow #61933 03:20 PM, 13 Aug 2018
    есть подозрение, что массив с символами [] вносит такую ошибку, что там с его экранированием пходу
  • https://t.me/clickhouse_ru
    @Imaskar #61934 03:20 PM, 13 Aug 2018
    Не всё в кавычки, а только текстовое значение
  • https://t.me/clickhouse_ru
    @cyssima ↶ Reply to #61929 #61935 03:22 PM, 13 Aug 2018
    А проблему с json с вложенными объектами как-то решали? Или перевели в 1-уровневую структуру?
  • https://t.me/clickhouse_ru
    Я сталкивался с этим же и не решил проблему (перешёл на другой формат) Дай знать, если найдётся решение
  • 😃 ладно
  • проблема возникла на пустом массиве, на первом скрине видно, поэтому до вложеннх еще не дошел
  • https://t.me/clickhouse_ru
    @chertus ↶ Reply to #61933 #61939 03:25 PM, 13 Aug 2018
    можно в виде двух запросов: один на create table, один на вставку clickhouse-clisent -q INSERT FORMAT CSV ?
  • https://t.me/clickhouse_ru
    @chertus #61940 03:26 PM, 13 Aug 2018
    типа такого echo '"2016-01-01 01:02:03","1"
    2016-01-02 01:02:03, "2"
    1502792101,"3"
    99999,"4"' | $CLICKHOUSE_CLIENT --query="INSERT INTO test.csv FORMAT CSV";
  • @pavel_maksimow #61941 03:40 PM, 13 Aug 2018
    в личку написал, чтоб не захламлять тут
  • @pavel_maksimow #61942 03:49 PM, 13 Aug 2018
    принудительно проставил 0, нормально стало
  • @Mergen_Abusheev #61943 03:51 PM, 13 Aug 2018
    При загрузке файла CSV через докер меняется часовой пояс у дат в файле.

    Пытался и таймзону докера менять и таймзону контейнера-никак. Все равно меняется.

    Подскажите, как фиксили?
  • https://t.me/clickhouse_ru
    @stufently #61944 03:52 PM, 13 Aug 2018
    Меняется на что?
  • https://t.me/clickhouse_ru
    @chertus #61945 03:53 PM, 13 Aug 2018
    в конфиге пробовали менять?
  • https://t.me/clickhouse_ru
    @chertus #61946 03:53 PM, 13 Aug 2018
    <!-- Server time zone could be set here.

    Time zone is used when converting between String and DateTime types,
    when printing DateTime in text formats and parsing DateTime from text,
    it is used in date and time related functions, if specific time zone was not passed as an argument.

    Time zone is specified as identifier from IANA time zone database, like UTC or Africa/Abidjan.
    If not specified, system time zone at server startup is used.

    Please note, that server could display time zone alias instead of specified name.
    Example: W-SU is an alias for Europe/Moscow and Zulu is an alias for UTC.
    -->
    <!-- <timezone>Europe/Moscow</timezone> -->
  • https://t.me/clickhouse_ru
    Никак не решали, используем плоскую структуру
  • @265651634 #61948 06:37 PM, 13 Aug 2018
    Joined.
  • By default, the client switches to the timezone of the server when it connects. You can change this behavior by enabling the client command-line option --use_client_time_zone.
  • @sklepych ↶ Reply to #61935 #61950 06:52 PM, 13 Aug 2018
    у меня был такой вопрос, клик не умеет нестед джейсон парсить, поэтому пришлось делать скрипт который сам смотрит в кафку и потом делает плоский джейсон. Дальше - можете писать это в другой топик xDDD
  • https://t.me/clickhouse_ru
    @cyssima ↶ Reply to #61950 #61951 06:58 PM, 13 Aug 2018
    А как лучше поступить с полем, являющимся массивом обьектов?
  • https://t.me/clickhouse_ru
    @cyssima #61952 06:58 PM, 13 Aug 2018
    Да и если таких в документе несколько?
  • @sklepych ↶ Reply to #61951 #61953 07:01 PM, 13 Aug 2018
    авком парсил, но потом на самом деле уже в клик не пихал, у меня своя задачка была, надо было сделать что-то и быстро, поэтому кафка через баш скрипт в телеграф далее в инфлюкс и потом в графану
  • @sklepych #61954 07:02 PM, 13 Aug 2018
    кстати вот вертика отлично вычитывает нестед джейсон
  • https://t.me/clickhouse_ru
    @cyssima ↶ Reply to #61954 #61956 07:31 PM, 13 Aug 2018
    Она в бесплатном варианте лишь 1Тб ограничена
  • @sklepych ↶ Reply to #61956 #61957 07:41 PM, 13 Aug 2018
    да, я понимаю что это дорого. да может быть и далеко не так красиво как клик в каких то вещах, но что делать.
  • @vstakhov #61958 08:16 PM, 13 Aug 2018
    Писать патчи, конечно же
  • @vstakhov #61959 08:17 PM, 13 Aug 2018
    Основное преимущество не бесплатность вовсе, а возможность реализовать свои хотелки на отличной базе
  • https://t.me/clickhouse_ru
    @fokkoru #61960 09:14 PM, 13 Aug 2018
    Joined.
  • @sklepych ↶ Reply to #61958 #61961 09:17 PM, 13 Aug 2018
    Если есть время - то да, если нет, то склеить из того что есть под руками, гораздо проще распарсить самому тем же авком или jq и потом если есть желание отправить в кафку, консюмера и продюсера с использованием библиотек кафки сделать довольно тривиально, как выяснилосью Ну это как бы ап ту ю
  • @githubreleases_bot #61962 b o t 09:31 PM, 13 Aug 2018
    yandex/ClickHouse was tagged: v18.10.3-stable
    Link: https://github.com/yandex/ClickHouse/releases/tag/v18.10.3-stable
    Release notes:
    Auto version update to [18.10.3] [54405]
    yandex/ClickHouse

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

  • @419594135 #61963 10:22 PM, 13 Aug 2018
    Joined.
  • @581670445 #61964 11:58 PM, 13 Aug 2018
    Joined.
  • 14 August 2018 (146 messages)
  • @238773844 #61965 12:18 AM, 14 Aug 2018
    помоите пожалуйста, пытаюсь протестировать CH + BI тулзами, сейчас играюсь с jasperreports CE, не могу подцепить. JDBC driver
  • @238773844 #61966 12:19 AM, 14 Aug 2018
    положил driver в папку с либами, но сервак его не видит
  • @238773844 #61967 12:19 AM, 14 Aug 2018
    так же скачал report desigener, полодил драйвер рядом с MySQL драйвером, все-равно в UI оно не появляется
  • @pavel_maksimow #61969 05:52 AM, 14 Aug 2018
    Подскажите пожалуйста, в каких случаях возникает ошибка при вставке данных:
    Code: 117. DB::Exception: Expected end of line
    ?
  • https://t.me/clickhouse_ru
    yandex/ClickHouse

    ClickHouse is a free analytic DBMS for big data.

  • спасибо
  • https://t.me/clickhouse_ru
    если верить их доке, то есть ещё вариант с загрузкой драйвера через веб-интерфейс https://community.jaspersoft.com/wiki/how-add-jdbc-driver-jasperreports-server
    How to add JDBC driver to JasperReports Server

    This is a very easy and also popular question but in case of problems with this configuration I would like to remind you that if you would like to add a new JDBC driver to the application in all versions of the software in the releases: 3.* - 5.0.1: you should add jar file of JDBC driver to the lib folder of your application server in case of Apache-Tomcat it should be apache-tomcat/lib folder 5.1.0 - 6.0.1 (the most modern version, 13.04.2015): you can use approach from the suggestion above (apache-tomcat/lib folder) you can use web graphical user interface of your JDBC data source configurat

  • @238773844 #61974 05:58 AM, 14 Aug 2018
    болт
  • @solazar #61975 05:58 AM, 14 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @notmaxx #61976 05:58 AM, 14 Aug 2018
    Добрый день, правильно я понимаю что преимущество SummingTree перед обычным MT что он хранит агрегированные данные на диске после бэкграунд Merge операции?
  • @238773844 #61978 06:00 AM, 14 Aug 2018
    Есть идея
  • @238773844 #61979 06:00 AM, 14 Aug 2018
    открыл драйвер через eclipse
  • @238773844 #61980 06:00 AM, 14 Aug 2018
    // Compiled from ClickHouseDriver.java (version 1.6 : 50.0, super bit)
  • @238773844 #61981 06:00 AM, 14 Aug 2018
    ./java/bin/java -version
    java version "1.8.0_151"
    Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
  • @238773844 #61982 06:01 AM, 14 Aug 2018
    Я не спец в java
  • @238773844 #61983 06:01 AM, 14 Aug 2018
    но у yandex есть 2 билда, для 1.6, и 1.8
  • @238773844 #61985 06:02 AM, 14 Aug 2018
    вот только как скачать билд для 1.8 пока не понял, на крайняк буду осваивать mvn, но если кто занет, то поделитесь инфой плз
  • как я понял, да
  • https://t.me/clickhouse_ru
    Возможно эта штука неправильно диагностику даёт и на самом деле проблема в отсутствии зависимостей, можно попробовать собрать ...-jar-with-dependencies через mvn package assembly:single -DskipTests=true
  • @238773844 #61988 06:06 AM, 14 Aug 2018
    так лень устанавливать/разбираться с mvn =)
  • @238773844 #61989 06:09 AM, 14 Aug 2018
    для начала попробую найти драйвер скомпиленый через JDK 1.8 и подсуну его, если не найду буду собирать jar
  • https://t.me/clickhouse_ru
    @cyssima #61990 07:09 AM, 14 Aug 2018
    Коллеги, пожскажите, пожалуйста, на сколько клик удобен для такого рода задач (или может быть кто знает что по лучше): есть поток пар <a1,b11>,<a2,b21>,<a1,b12>.....где грубо говоря a-это набор статических аттрибутов документа, а b-динамических. Поток настолько велик, что использовать систему с update по id не годится. Задача: строить всяческую аналитику с использованием последних значений b для a.
  • https://t.me/clickhouse_ru
    @Vasyaabr ↶ Reply to #61990 #61991 07:12 AM, 14 Aug 2018
    Можно и попробовать прикрутить. Сделать AggregatingMergeTree, которое будет сразу агрегировать последние значения в разрезе An, и готово.
  • https://t.me/clickhouse_ru
    @metikovvadim #61992 07:14 AM, 14 Aug 2018
    Парни, кто сталкивался с
    [ 78 ] <Error> default.graphite (StorageReplicatedMergeTree): Code: 40, e.displayText() = DB::Exception: Checksums of parts don't match: hash of uncompressed files doesn't match, uncompressed hash of compressed files doesn't match, e.what() = DB::Exception. Data after merge is not byte-identical to data on another replicas. There could be several reasons: 1. Using newer version of compression library after server update. 2. Using another compression method. 3. Non-deterministic compression algorithm (highly unlikely). 4. Non-deterministic merge algorithm due to logical error in code. 5. Data corruption in memory due to bug in code. 6. Data corruption in memory due to hardware issue. 7. Manual modification of source data after server startup. 8. Manual modification of checksums stored in ZooKeeper. We will download merged part from replica to force byte-identical result.
    уже до последней версии обновил оба сервера, как только начинаю лить реплику на 2й, на превом выходит такая ошибка и пишет ежесекундно
  • https://t.me/clickhouse_ru
    @cyssima ↶ Reply to #61991 #61993 07:14 AM, 14 Aug 2018
    А aggMergeTree поддерживает distributing?
  • https://t.me/clickhouse_ru
    на обоих такое, что-то в данных первой реплики?
  • https://t.me/clickhouse_ru
    @metikovvadim #61995 07:19 AM, 14 Aug 2018
    а после нее идет сразу:
    [ 126 ] <Warning> default.graphite (ReplicatedMergeTreePartCheckThread): Checking part 20180814_20180814_333681_333686_1
    [ 126 ] <Warning> default.graphite (ReplicatedMergeTreePartCheckThread): Checking if anyone has a part covering 20180814_20180814_333681_333686_1.
    [ 126 ] <Warning> default.graphite (ReplicatedMergeTreePartCheckThread): Found parts with the same min block and with the same max block as the missing part 20180814_20180814_333681_333686_1. Hoping that it will eventually appear as a result of a merge.
  • @pavel_maksimow #61996 07:27 AM, 14 Aug 2018
    Подскажите пожалуйста. Возникли проблемы с удалением данных. Смотрю в таблицу system.mutations запросы в очереди просто висят. Это связанно только с одной таблицей, для другиз запросы выполняются судя по system.mutations. Может оттуда удалить записи? может поможет

    В логах ошибка:
    <Error> void DB::BackgroundProcessingPool::threadFunction(): Code: 53, e.displayText() = DB::Exception: Types of column 1 in section IN don't match: String on the right, UInt32 on the left., e.what() = DB::Exception, Stack trace:

    были такие запросы, где была синтакситечская ошибка, наверно с этим как раз связано
  • https://t.me/clickhouse_ru
    У меня такое было, удаление зависалр на середине. Но я так и не разобрался что не так. Потрите что в лог КХ пишет
  • @pavel_maksimow #61998 07:36 AM, 14 Aug 2018
    в общем похоже на то, что если использовать при удалении в секции IN только одно значение, то КХ удалить не может данные
    Пример:
    ALTER TABLE data.clients DELETE WHERE AccountID IN (38855324)
  • https://t.me/clickhouse_ru
    @alinapletneva #61999 07:53 AM, 14 Aug 2018
    Joined.
  • @medov_alexey #62000 08:02 AM, 14 Aug 2018
    Joined.
  • @medov_alexey #62005 08:36 AM, 14 Aug 2018
    Хотелось бы чтобы кто-нибудь выложил на ютуб видео по разворачиванию clickhouse кластера в самом простом варианте.
  • @medov_alexey #62006 08:37 AM, 14 Aug 2018
    Не получится у большинства просто взять и разобраться.
  • @medov_alexey #62007 08:38 AM, 14 Aug 2018
    Вот что например означает эта ошибка ?
  • https://t.me/clickhouse_ru
    @NickBlade #62010 08:39 AM, 14 Aug 2018
    Всем привет. Пробую настроить репликацию. Сделал два шарда по две реплики на каждом. Создание таблицы на одной ноде раскидывают таблицу на все ноды кластера. Это ок. А вот если делать alter table , то изменения появляются только в границах одного шарда. Подскажите это это норм или что-то недонастроил?
  • Покажите пожалуйста команду с помощью которой вы создали реплицируемую таблицу
  • https://t.me/clickhouse_ru
    @NickBlade #62012 08:45 AM, 14 Aug 2018
    CREATE TABLE IF NOT EXISTS test_db.events_shard ON CLUSTER test_cluster (
    event_date Date DEFAULT toDate(now()),
    company_id UInt32,
    product_id UInt32
    ) ENGINE=ReplicatedMergeTree(
    '/clickhouse/tables/{shard}/events_shard', '{replica}',
    event_date,
    (company_id),
    8192
    );
  • @medov_alexey #62013 08:46 AM, 14 Aug 2018
    Спасибо, а в {replica} в макросе указали имя сервера ?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62010 #62014 08:47 AM, 14 Aug 2018
    Это норм
  • @medov_alexey #62015 08:50 AM, 14 Aug 2018
    @kshvakov
    Скажите пожалуйста

    <macros>
    <shard>01</shard>
    <replica>example05-02-1.yandex.ru</replica>
    </macros>

    в поле реплика, должен быть указан ip адрес сервера ?
  • @medov_alexey #62016 08:50 AM, 14 Aug 2018
    или hostname ?
  • @medov_alexey #62017 08:51 AM, 14 Aug 2018
    или не имеет значения что указанно в этом поле, главное чтобы оно отличалось от того же поля на другом сервере ?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62015 #62018 08:52 AM, 14 Aug 2018
    Всеравно что - это просто идентификатор таблицы внутри шарда, чтоб понимать какие куски где есть
  • Спасибо за ответ !
  • https://t.me/clickhouse_ru
    @kshvakov #62020 08:53 AM, 14 Aug 2018
    В рамках шарда он должен быть уникален для таблиц, если таблицы находятся на разных серверах то, обычно, пишут hostname чтоб понятнее было
  • @medov_alexey #62021 08:54 AM, 14 Aug 2018
    А так называемая шарда должна быть указана обязательно ?
    Нельзя на первом сервере указать просто:

    <macros>
    <replica>my_server_1</replica>
    </macros>

    А на втором сервере:

    <macros>
    <replica>my_server_2</replica>
    </macros>
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62021 #62022 08:58 AM, 14 Aug 2018
    Это просто макросы для подстановки, в Engine первый параметр нужен для "регистрации" реплики (таблицы которую нужно реплицировать, туда можно вписать что угодно и как угодно, с макроcами просто удобнее), второй параметр это идентификтор копии таблици для репликации, каждая копия получает задание не репликацию и тащит куски, если они будут одинаковые на разных серверах то у вас будет непонятно что;)
  • Вот я на первом сервере выполнил:

    create table test_table_1 (MyDate Date, MyDateTime_1 DateTime, MyDateTime_2 DateTime) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/test_table_1', '{replica}', MyDate, MyDateTime_1, 8192)

    где shard=01, replica=server1

    А на втором сервере выполнил:

    create table test_table_1 (MyDate Date, MyDateTime_1 DateTime, MyDateTime_2 DateTime) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/test_table_1', '{replica}', MyDate, MyDateTime_1, 8192)

    где shard=01, replica=server2

    ================================

    Все правильно сделал ? просто когда инсертнул в таблицу инфу, то вместо синхронизации я вижу только ошибки
  • @medov_alexey #62024 09:03 AM, 14 Aug 2018
    <Error> InterserverIOHTTPHandler: Code: 221, e.displayText() = DB::Exception: No interserver IO endpoint named DataPartsExchange:/clickhouse/tables/01/test_table_1/replicas/server_2, e.what() = DB::Exception, Stack trace:
  • @medov_alexey #62025 09:03 AM, 14 Aug 2018
    а потом следующая ошибка:
    2018.08.14 10:25:25.266948 [ 13 ] <Error> default.test_table_1 (StorageReplicatedMergeTree): DB::StorageReplicatedMergeTree::queueTask()::<lambda(DB::StorageReplicatedMergeTree::LogEntryPtr&)>: Code: 33, e.displayText() = DB::Exception: Cannot read all data. Bytes read: 0. Bytes expected: 8., e.what() = DB::Exception, Stack trace:
  • @medov_alexey #62026 09:03 AM, 14 Aug 2018
    и так по кругу идут, друг за дружкой
  • https://t.me/clickhouse_ru
    Вот и у меня так же было. Поэтому мы у себя пока не используем удаление
  • Так я ничего не удалял. Просто создал на обоих серверах одну и ту же таблицу, и вставил в нее данные.
  • @medov_alexey #62029 09:07 AM, 14 Aug 2018
    insert into default.test_table_1 (MyDate, MyDateTime_1, MyDateTime_2) VALUES ('1990.01.01', '1990.01.01 12:00:00', '1990.01.01 12:00:00')
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62024 #62031 09:10 AM, 14 Aug 2018
    У вас там еще в ZK что-то лежит после "экспериментов" с созданием реплики. Если просто играетесь то удалите все таблици из КХ и удалите /clickhouse/ в ZK, потом снова стартаните сервер и создайте таблицы.
  • Вполне возможно что так. Сейчас все попробую и отпишусь. Спасибо !
  • 🙏👍
  • https://t.me/clickhouse_ru
    <macros>
    <shard>01</shard>
    <replica>clickhouse_shard1_replica1</replica>
    </macros>
  • @medov_alexey #62035 09:27 AM, 14 Aug 2018
    Вдруг кому то пригодится...

    Для удаления конфигурации ClickHous'a из Apache Zookeper:
    1) остановите все сервера clickhouse
    2) войдите в клиент Apache Zookeeper
    /opt/zookeeper/bin/zkCli.sh
    3) выполните рекурсивное удаление дерева
    rmr /clickhouse
    4) Готово
    quit

    #zookeeper #удалить из zookeeper #удалить /clickhouse/ в ZK
  • Благодарю !
  • Дропнул таблицу в кликхаус, выключил сервера CH, дропнул дерево в ZK, включил сервера CH. Затем создал таблицу на обоих серверах. Никаких ошибок не появилось. Потом сделал инсерт в созданную таблицу на первом сервере, после чего на втором сервере посыпались бесконечные такие ошибки:
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62037 #62039 10:29 AM, 14 Aug 2018
    А машины видят друг-друга по хостнейму ?
  • Да, телнет, в обе стороны проходит по портам 9000, 8123 и 9009
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62040 #62041 10:32 AM, 14 Aug 2018
    так, вот это странно No interserver IO endpoint named, я на такое еще не натыкался, надо посмотреть почему так может быть, но @milovidov_an может знать наверняка :)
  • Почему он ? Он разработчик?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62042 #62043 10:34 AM, 14 Aug 2018
    Да, он может дать ответы на большинство вопросов, главное не злоупотреблять;)
  • @medov_alexey #62044 10:35 AM, 14 Aug 2018
    Спасибо за совет, попробую с ним связаться.
  • https://t.me/clickhouse_ru
    так он тут
  • https://t.me/clickhouse_ru
    @zion_o_zaur #62046 10:36 AM, 14 Aug 2018
    и достаточно часто отвечает на вопросы
  • Значит задам ему вопрос тут)
  • @medov_alexey #62048 10:37 AM, 14 Aug 2018
    Только покопаюсь немного, может сам смогу понять в чем дело.
  • https://t.me/clickhouse_ru
    @NickBlade #62049 10:43 AM, 14 Aug 2018
    ага, а если alter сделать так

    alter table test_db.events_shard on cluster test_cluster add column name3 String;

    то выдает

    An error occured before execution: Code: 371, e.displayText() = DB::Exception: Table events_shard is replicated, but shard #1 isn't replicated according to its cluster definition. Possibly <internal_replication>true</internal_replication> is forgotten in the cluster config., e.what() = DB::Exception
  • @RomanYx #62050 11:00 AM, 14 Aug 2018
    Всем привет, подскажите по ALTER DELETE
    есть таблица, в которой event_date Date MATERIALIZED toDate(timestamp)
    ENGINE = CollapsingMergeTree(event_date, (affiliate_id, event_date, event_id), 8192, sign)
    пытался сделать DELETE WHERE (player_id = 54182449) AND ((event_date >= '2018-08-06') AND (event_date <= '2018-08-07'))
    получаю в лог кучу ошибок <Error> void DB::BackgroundProcessingPool::threadFunction(): Code: 10, e.displayText() = DB::Exception: Not found column event_date in block.

    баг? и можно ли как то отменить эту мутацию, чтобы не летела куча ошибок в лог?
  • https://t.me/clickhouse_ru
    @kloya #62051 11:26 AM, 14 Aug 2018
    подскажите пожалуйста, как посмотреть Primary Key таблицы
  • https://t.me/clickhouse_ru
    show create table my_table;
  • https://t.me/clickhouse_ru
    @kloya #62053 11:27 AM, 14 Aug 2018
    спасибо
  • @kalombos #62054 12:10 PM, 14 Aug 2018
    Пытаюсь сделать доступным кликхаус только для одного ip-адреса. В config.xml добавляю <listen_host>some_ip</listen_host> Получаю ошибку <Error> Application: Net Exception: Cannot assign requested address: some_ip:8124 Подскажите, пожалуйста, что не так. <listen_host>::</listen_host> работает нормально.
  • https://t.me/clickhouse_ru
    надо "повесить" КХ на адрес или разрешить коннект с КХ с определенного адреса?
  • https://t.me/clickhouse_ru
    @EvgenyVinogradov #62056 12:12 PM, 14 Aug 2018
    listen_host - это какой адрес будет прослушивать КХ
  • @kalombos #62057 12:13 PM, 14 Aug 2018
    А как быть тогда? У меня приложение на другом сервере, которое должно коннектиться к кликхаусу, соответсвенно, я хочу разрешить только коннект с этого сервера и всё.
  • https://t.me/clickhouse_ru
    @EvgenyVinogradov #62058 12:14 PM, 14 Aug 2018
    users.xml секция <users>-><username> в ней определяем секцию <networks><ip>1.2.3.4/32</ip></networks>
  • https://t.me/clickhouse_ru
    @EvgenyVinogradov #62059 12:15 PM, 14 Aug 2018
    username - имя пользователя
  • https://t.me/clickhouse_ru
    @quarrant ↶ Reply to #62057 #62060 12:15 PM, 14 Aug 2018
    у меня КХ крутится на сервере под NGINX, в нем все доступы и разруливаются
  • @kalombos #62061 12:15 PM, 14 Aug 2018
    Спасибо
  • https://t.me/clickhouse_ru
    так по-моему более изящно
  • https://t.me/clickhouse_ru
    @Sablast #62063 01:29 PM, 14 Aug 2018
    подскажите, создал дистриб таблицу, при SELECT ругается что
    DB::Exception: Password required for user default.
    пароль для default задан на всех нодах и везде одинаковый
  • https://t.me/clickhouse_ru
    @Sablast #62064 01:43 PM, 14 Aug 2018
    и еще 1 вопрос - зависают запросы вида SELECT ... FROM mysql(), после выполнения запрос висит в processlist
  • https://t.me/clickhouse_ru
    @chertus ↶ Reply to #62063 #62065 01:45 PM, 14 Aug 2018
    можно задать пользователя и пароль в секции <remote_servers> в конфиге https://clickhouse.yandex/docs/en/operations/table_engines/distributed/
  • https://t.me/clickhouse_ru
    @Sablast ↶ Reply to #62065 #62066 01:46 PM, 14 Aug 2018
    спасибо, сейчас попробуем.
  • https://t.me/clickhouse_ru
    @calculating_infinity #62067 01:50 PM, 14 Aug 2018
    а по какой причине positionCaseInsensitive(haystack, 'needle') ничего не находит, хотя Like '%needle%' находит довольно таки много строк? Разве результат выполнения like в данном случае не должен быть подмножеством результата positionCaseInsensitive()?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @Krashuevina #62070 02:11 PM, 14 Aug 2018
    Вопрос на тему мутаций. Запустил для датасета размером ~100 Gb мутацию. Селект из таблицы system.mutations не очень репрезентативный. Куда ещё поглазеть можно? В Zoo куда-нибудь, например, или ещё что

    SELECT
    *,
    (now() - create_time) / 60 AS minutes_running
    FROM system.mutations

    Row 1:
    ──────
    database: user_split
    table: .inner.user_settings
    mutation_id: 0000000000
    command: DELETE WHERE settings_id = 0
    create_time: 2018-08-14 13:33:59
    block_numbers.partition_id: ['200101']
    block_numbers.number: [3528023]
    parts_to_do: 2
    is_done: 0
    minutes_running: 37.63333333333333
  • @ztlpn ↶ Reply to #62070 #62071 02:19 PM, 14 Aug 2018
    Больше особо некуда. Для реплицируемых таблиц есть столбец part_mutations_in_queue в system.replicas (плюс можно смотреть за задачами типа MUTATE_PART в system.replication_queue) - задания на мутацию кусков в очереди. И ещё есть системная метрика PartMutation - количество выполняемых в данный момент мутаций кусков.
  • https://t.me/clickhouse_ru
    Спасибо за ответ, но этой инфы не хватает для дебага (

    SELECT
    database,
    table,
    engine,
    is_leader,
    merges_in_queue,
    part_mutations_in_queue
    FROM replicas
    WHERE table = '.inner.user_settings'

    Row 1:
    ──────
    database: user_split
    table: .inner.user_settings
    engine: ReplicatedAggregatingMergeTree
    is_leader: 1
    merges_in_queue: 0
    part_mutations_in_queue: 0
  • https://t.me/clickhouse_ru
    @Krashuevina #62073 02:21 PM, 14 Aug 2018
    Т.е. part_mutations_in_queue пустой для этой таблицы
  • https://t.me/clickhouse_ru
    @Krashuevina #62074 02:25 PM, 14 Aug 2018
    Очередь реплики для всей схемы этой таблицы:

    SELECT *
    FROM system.replication_queue
    WHERE database = 'user_split'
    Ok.
    0 rows in set. Elapsed: 0.096 sec.

    И метрика нулевая:

    SELECT *
    FROM metrics
    WHERE metric = 'PartMutation'

    ┌─metric───────┬─value─┐
    │ PartMutation │ 0 │
    └──────────────┴───────┘
    1 rows in set. Elapsed: 0.108 sec.
  • @RomanYx #62075 02:26 PM, 14 Aug 2018
    @ztlpn а по моему вопросу с Not found column event_date in block. не подскажите ничего?
  • @ztlpn ↶ Reply to #62072 #62076 02:29 PM, 14 Aug 2018
    Можно ещё попробовать посмотреть, какие именно куски ещё осталось помутировать запросом вида select name from system.parts where active and table = '.inner.user_settings' and data_version < 3528023
  • @ztlpn ↶ Reply to #62075 #62077 02:30 PM, 14 Aug 2018
    А какая у вас версия?
  • @RomanYx #62078 02:30 PM, 14 Aug 2018
    18.6.0 revision 54401.
  • https://t.me/clickhouse_ru
    Что-то дало!

    SELECT
    sum(rows),
    if(data_version < 3528023, 'old', 'new') AS version
    FROM system.parts
    WHERE active AND (table = '.inner.user_settings')
    GROUP BY version

    ┌──sum(rows)─┬─version─┐
    │ 4574899817 │ new │
    │ 6522625858 │ old │
    └────────────┴─────────┘

    Чтобы не значила магическая версия 3528023, уже какой-то результат. Если new - это результат работы мутации (а не новые данные, которые льются в таблицу), то значит за час у меня намутировало партиций на 4B строк, и надо подождать ещё пару часов. Доложусь по прошествии времени!
  • @ztlpn ↶ Reply to #62078 #62080 02:41 PM, 14 Aug 2018
    Да, это баг - в помутированных кусках не сохраняются materialized столбцы.
  • @ztlpn #62081 02:41 PM, 14 Aug 2018
    У вас обычное MergeTree?
  • @RomanYx #62082 02:41 PM, 14 Aug 2018
    CollapsingMergeTree
  • https://t.me/clickhouse_ru
    Видимо этот баг и на мой случай распространяется, т.к. я пытаюсь мутировать вьюху
  • @ztlpn ↶ Reply to #62082 #62084 02:45 PM, 14 Aug 2018
    Тогда удалите из data-директории таблицы файл с мутацией ( /var/lib/clickhouse/data/<database>/<table>/mutation_<что-то>.txt ) и сделайте DETACH/ATTACH таблице
  • @ztlpn ↶ Reply to #62083 #62085 02:46 PM, 14 Aug 2018
    Вряд ли, т.к. тогда задачи всё-таки бы создавались в очереди
  • @RomanYx #62086 02:46 PM, 14 Aug 2018
    ок, попробую, спасибо
  • @ztlpn ↶ Reply to #62079 #62087 02:48 PM, 14 Aug 2018
    Магическую версию 3528023 я взял из стоблца block_numbers таблицы system.mutations. Это номер блока в партиции '200101', и нужно изменить все куски с номерами блоков меньше этого
  • @ztlpn #62088 02:48 PM, 14 Aug 2018
    (я так понял в таблице одна партиция)
  • https://t.me/clickhouse_ru
    так точно
  • @ztlpn ↶ Reply to #62079 #62090 02:57 PM, 14 Aug 2018
    New это как раз могут быть как свежие данные, которые льются в таблицу, так и успешно помутированные данные. А сколько вообще в таблице активных кусков с data_version < 3528023 и c data_version != min_block_number?
  • https://t.me/clickhouse_ru

    SELECT
    count(),
    if(data_version != min_block_number, 1, 0) AS version_equality
    FROM system.parts
    WHERE (table = '.inner.user_settings') AND active AND (data_version < 3528023)
    GROUP BY version_equality

    ┌─count()─┬─version_equality─┐
    │ 2 │ 0 │
    └─────────┴──────────────────┘
  • @ztlpn #62092 03:04 PM, 14 Aug 2018
    Значит вообще почему-то не назначаются мутации индивидуальных кусков. Надо искать причину в логах по ключевому слову mergeSelectingTask
  • https://t.me/clickhouse_ru
    @Krashuevina #62093 03:05 PM, 14 Aug 2018
    На сервере-инициаторе, или по всем репликам?
  • @ztlpn #62094 03:06 PM, 14 Aug 2018
    на лидере
  • Короче как только заменил все ip адреса в config.xml на имена, прописал соответствие имен ip адресам в /etc/hosts на обоих нодах, перезапустил сервера, и создал новые реплицируемые таблицы - все завелось.

    правда пока не понял, в каком месте замена ip адреса на имя помогла...
    буду методом тыка сейчас проверять, чтобы отловить момент.
  • https://t.me/clickhouse_ru
    Ну и perf trace / strace никто не отменял, как средство дебага даже при полном отсутствии логов :).
  • https://t.me/clickhouse_ru
    @yourock88 #62097 03:27 PM, 14 Aug 2018
    Но почти час для мутации датасета в 100 Гб это как-то долго кажется, хотя, может, я придираюсь :).
  • https://t.me/clickhouse_ru
    @yourock88 #62098 03:32 PM, 14 Aug 2018
    У меня вот вообще получается заставить кликхаус крепко призадуматься довольно простыми, на первый взгляд, запросами:

    -- CREATE TABLE stats ( date Date, metric_id Int32, uniq_state AggregateFunction(uniq, Int64));

    SELECT
    toStartOfDay(timestamp) AS dt,
    uniqMerge(uniq_state)
    FROM stats
    WHERE (metric_id = 1234) AND date >= '2018-07-13' AND date <= '2018-08-13'
    GROUP BY dt;

    Показывает такие цифры:

    30 rows in set. Elapsed: 0.927 sec. Processed 425.98 thousand rows, 61.98 MB (459.43 thousand rows/s., 66.85 MB/s.)
  • https://t.me/clickhouse_ru
    @yourock88 #62099 03:32 PM, 14 Aug 2018
    чтения с диска при этом нет, всё помещается в оперативу
  • https://t.me/clickhouse_ru
    @Krashuevina #62100 03:33 PM, 14 Aug 2018
    так тут как раз в перфе будет хорошо видно HLL* функции
  • https://t.me/clickhouse_ru
    Но 60 мб/сек, Карл! Обычно КХ хотя бы миллионы строк в секунду и гигабайты в секунду процессит 🙂
  • https://t.me/clickhouse_ru
    @yourock88 #62102 03:48 PM, 14 Aug 2018
    Возможно, при хранении агрегатных функций стоит поставить размер блока поменьше, чтобы мерж состояний мог в большее число потоков идти, но это моё предположение.
  • https://t.me/clickhouse_ru
    @artemzaikin #62103 03:57 PM, 14 Aug 2018
    Joined.
  • @medov_alexey #62104 03:58 PM, 14 Aug 2018
    Короче если кто то еще нактнется на проблему что репликация не работает, и видит ошибки типа:

    DB::Exception: No interserver IO endpoint named DataPartsExchange

    DB::StorageReplicatedMergeTree::queueTask() DB::Exception: Cannot read all data.

    Решение простое:

    Выключайте сервера ClickHouse.

    в /etc/clickhouse-server/config.xml на серверах пропишете следующую строку:
    <interserver_http_host>this_server_hostname</interserver_http_host>
    где вместо this_server_hostname напишите реальное имя хоста.

    Например если у вас есть два сервера которые называются server_1 и server_2
    То соостветственно на первом сервере в конфиге пишите:
    <interserver_http_host>server_1</interserver_http_host>

    На втором сервере в конфиге пропишите:
    <interserver_http_host>server_2</interserver_http_host>

    на обоих серверах в /etc/hosts добавьте строки типа:
    192.168.1.10 server_1
    192.168.1.11 server_2
    чтобы реальные hostname соотвествовали реальным ip адресам.

    Включите сервера ClickHouse.

    Теперь проверим что все работает.
    Создаем на обоих серверах ReplicatedMergeTree таблицу и на одном из серверов производим наполнение в нашу таблицу. После чего проверяем что на втором сервере в таблице появилась информация тоже.

    На всякий случай напишу, что если у вас все равно останутся такие же ошибки, попробуйте заменить все ip адреса упоминающиеся в файле /etc/clickhouse/config.xml на доменные имена. После чего не забудьте прописать все что нужно в /etc/hosts.

    #инструкция #manual #решение проблемы #настройка репликации #репликация
  • https://t.me/clickhouse_ru
    репликация по http?
  • https://t.me/clickhouse_ru
    @nonamehobo #62106 04:02 PM, 14 Aug 2018
    я к тому, что у меня вообще нет такой настройки и, тфу тфу, всё работает как часы
  • По http или нет не знаю, но пока я не указал данный параметр у меня ничего не работало.

    <interserver_http_host>server_1</interserver_http_host>
  • @medov_alexey #62108 04:05 PM, 14 Aug 2018
    Если я комментирую или удаляю данный параметр, и перезапускаю сервер, репликация перестает работать, и сервер пишет ошибки
  • @medov_alexey #62109 04:07 PM, 14 Aug 2018
    получается типа, если данного параметра нет, сервер 1 не знает как называется сервер 2, и сервер 2 не знает как называется сервер 1.
  • @medov_alexey #62110 04:07 PM, 14 Aug 2018
    Иначе я не знаю как это обьяснить
  • @medov_alexey #62111 04:08 PM, 14 Aug 2018
    Вот что сказано в документации:

    interserver_http_host
    Имя хоста, которое могут использовать другие серверы для обращения к этому.
  • @medov_alexey #62112 04:08 PM, 14 Aug 2018
    я думал слово "могут" здесь ключевое, и данный параметр не обязателен
  • https://t.me/clickhouse_ru
    @den_crane #62113 04:34 PM, 14 Aug 2018
    >uniqMerge
    миллионы строк свернуты в несколько тысяч, при uniqMerge эти несколько тысяч схлапываются, получается скорость тысяча в секунду вместо млн.

    aaaaa
    bbbb
    cccc
    ddd

    aaaaa,bbbb,cccc,ddd
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62095 #62114 04:43 PM, 14 Aug 2018
    IP адреса можно было указать в interserver_http_host, там по дефолту для репликации хостнейм, а не IP используется и КХ, действительно, мог не видеть друг друга
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62105 #62115 04:44 PM, 14 Aug 2018
    Да, КХ по HTTP скачивает куски с реплик
  • если кому интересно: скачала исходники и сбилдил jar, подсунул jar с зависимостями и jasper server его принял через UI
  • @238773844 #62117 05:26 PM, 14 Aug 2018
    собрал c openjdk 1.8
  • https://t.me/clickhouse_ru
    @theyoshi86 #62118 05:55 PM, 14 Aug 2018
    Joined.
  • 15 August 2018 (93 messages)
  • https://t.me/clickhouse_ru
    @goulyaev #62120 03:26 AM, 15 Aug 2018
    Обновился до последней версии Application: Net Exception: Address already in use: [::]:8123
  • https://t.me/clickhouse_ru
    @goulyaev #62121 03:35 AM, 15 Aug 2018
    <!-- <listen_host>::</listen_host> -->
    <listen_host>::</listen_host>
    <listen_host>::</listen_host>
  • https://t.me/clickhouse_ru
    @nicname #62122 03:50 AM, 15 Aug 2018
    а вы поиск по listen_host тут сделайте :)
  • https://t.me/clickhouse_ru
    @stufently #62123 03:52 AM, 15 Aug 2018
    слишком много листен хостов )))
  • https://t.me/clickhouse_ru
    @goulyaev ↶ Reply to #62123 #62124 04:11 AM, 15 Aug 2018
    с прошлого года не менялось, во 2-й строке только 127.0.0.1 был. Оставил :: после обновления и ошибок. Сейчас 1 строку оставил, взлетело
  • https://t.me/clickhouse_ru
    Приветствую, Михаил. Как решили проблему?
  • https://t.me/clickhouse_ru
    @madm1ke ↶ Reply to #62125 #62126 06:44 AM, 15 Aug 2018
    На одном шарде очистил одну колонку, на другом с некоторым геморроем проделал optimize table partition xxx.
  • https://t.me/clickhouse_ru
    @madm1ke #62127 06:45 AM, 15 Aug 2018
    На разных шардах были разные проблемы.
  • https://t.me/clickhouse_ru
    Не всегда ругается на конкретное поле. Удалил таблицу на 2м сервере, пересоздал, реплика шла и в проессе появились:
    <Error> default.graphite (StorageReplicatedMergeTree): Code: 40, e.displayText() = DB::Exception: Checksums of parts don't match: hash of uncompressed files doesn't match, uncompressed hash of compressed files doesn't match, e.what() = DB::Exception. Data after merge is not byte-identical to data on another replicas. There could be several reasons: 1. Using newer version of compression library after server update. 2. Using another compression method. 3. Non-deterministic compression algorithm (highly unlikely). 4. Non-deterministic merge algorithm due to logical error in code. 5. Data corruption in memory due to bug in code. 6. Data corruption in memory due to hardware issue. 7. Manual modification of source data after server startup. 8. Manual modification of checksums stored in ZooKeeper. We will download merged part from replica to force byte-identical result.
    и оно не проходит. На 2м сервере данные с 1го, что откудаКХ должен скачать?
  • https://t.me/clickhouse_ru
    @madm1ke #62129 06:47 AM, 15 Aug 2018
    Я делал optimize на втором, насколько я помню. Это заставит первый скачать новые данные или сделать аналогичный альтер после фейла очередного мерджа.
  • https://t.me/clickhouse_ru
    @metikovvadim #62130 06:53 AM, 15 Aug 2018
    ок, спасибо,попробую. Иначе застревает, одни и те же мерджи делает. откатываеет, ни одной строки за 8 часов не вставляет ни одна из реплик
  • https://t.me/clickhouse_ru
    @yurikosan #62131 06:54 AM, 15 Aug 2018
    Всем привет.
    У меня вопрос по импорту CSV tab separated в КХ.
    Возникает проблема постоянно, что

    1) КХ зажирает оперативу и не отпускает ее после заливки нескольких дампов (Code: 210. DB::NetException: Connection refused: (localhost:9000, 127.0.0.1))

    2) не хватает памяти. - как следствие от заливки предыдущих дампов.

    На борту:

    12 ГБ оперативки
    HDD 1Тб
    Дампы по 500тыс. строк, весом 870Мб в несжатом виде.

    В логах вижу что идут удаления, ренеймы папок и иная внутренняя работа - но оперативку не отпускает все равно.
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @yurikosan #62133 06:57 AM, 15 Aug 2018
    Параметры сервера дефолтные. Ubuntu 18.04
  • https://t.me/clickhouse_ru
    @yurikosan #62134 06:57 AM, 15 Aug 2018
    Ну и задача в том и состоит, чтобы заливать регулярные дампы в КХ. Как архивное хранилище информации.
  • https://t.me/clickhouse_ru
    @metikovvadim #62135 06:58 AM, 15 Aug 2018
    Как запускать длительные запросы из cli ?
    пробую OPTIMIZE TABLE graphite

    Received exception from server (version 18.6.0):
    Code: 209. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::NetException. DB::NetException: Timeout exceeded while reading from socket (192.168.148.16:9000): while receiving packet from graphite01:9000, 192.168.148.16.

    0 rows in set. Elapsed: 300.284 sec.
  • https://t.me/clickhouse_ru
    @madm1ke #62136 07:08 AM, 15 Aug 2018
    Nohup
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62135 #62137 07:24 AM, 15 Aug 2018
    Запрос всеравно продолжит выполняться
  • https://t.me/clickhouse_ru
    @metikovvadim #62138 07:24 AM, 15 Aug 2018
    спасибо
  • https://t.me/clickhouse_ru
    @asavitskyi #62139 08:51 AM, 15 Aug 2018
    привет !
    Подскажите как сделать выборку полей где ChannelID не является уникальным ?
    count(ChannelID)>1

    SELECT
    Time, TimeMillisecond, OpenTime, CloseTime, State, ChannelID, OpenHeight, CloseHeight, ChannelPoint, Capacity,
    Node1, Node1FeeBaseMSat, Node1FeeRateMilliMSat, Node1TimeLockDelta, Node1MinHTLC,
    Node2, Node2FeeBaseMSat, Node2FeeRateMilliMSat, Node2TimeLockDelta, Node2MinHTLC
    FROM lns.Channel
    WHERE CloseTime>=toDateTime('2018-08-10 23:59:59') AND CloseTime<=toDateTime('2018-08-11 23:59:59') AND count(ChannelID)>1
    ORDER BY (ChannelID, Time, TimeMillisecond)
  • https://t.me/clickhouse_ru
    Звучит как group by + having
  • https://t.me/clickhouse_ru
    @metikovvadim #62141 09:52 AM, 15 Aug 2018
    Привет всем. Если есть ошибки в данных, optimize table <tablename>
    исправит ошибки?
    ...FINAL - поможет?
  • https://t.me/clickhouse_ru
    Альтер?
    ALTER TABLE Optimize ...?
  • https://t.me/clickhouse_ru
    @madm1ke ↶ Reply to #62142 #62143 10:08 AM, 15 Aug 2018
    Да, optimize partition XXXX.
  • https://t.me/clickhouse_ru
    @madm1ke #62144 10:09 AM, 15 Aug 2018
    с нужной партицией. Если обычный альтер не покатит - возможно, поможет final.
  • https://t.me/clickhouse_ru
    @madm1ke #62145 10:09 AM, 15 Aug 2018
    Если партиция неизвестна, или ошибки везде - логично, оптимизировать придется всю таблицу.
  • https://t.me/clickhouse_ru
    @metikovvadim #62146 10:10 AM, 15 Aug 2018
    И прямо помогло? какая версия КХ? У меня в моменты выполнения optimize ошибки редели и вставка шла , до 50% от нормы, но через минуту перкращалась.
  • https://t.me/clickhouse_ru
    @metikovvadim #62147 10:10 AM, 15 Aug 2018
    ок, спасибо ещё раз попробую. До и во время репликации
  • https://t.me/clickhouse_ru
    @tskolm #62148 10:51 AM, 15 Aug 2018
    Joined.
  • @faerics #62149 10:53 AM, 15 Aug 2018
    Joined.
  • @faerics #62151 10:56 AM, 15 Aug 2018
    Привет! слышал, тут отвечают на вопросы по кликхаусу. Мне надо посчитать runningDifference вместе с group by, или посчитать разницу между соседними элементами массива. Есть сейчас такая возможность?
    более подробно на stack overflow: https://stackoverflow.com/questions/51856397/clickhouse-running-diff-with-grouping

    Спасибо.
    Clickhouse running diff with grouping

    General Task A table consists of three columns (time, key, value). The task is to calculate a running difference for each key. So, from input --------------- | time | key | value | --------------...

  • @Hodlord #62152 11:07 AM, 15 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @dkarakulov #62153 11:07 AM, 15 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @madm1ke ↶ Reply to #62146 #62154 11:10 AM, 15 Aug 2018
    без reply или тегов не вижу вопроса. Логично, что optimize может блокировать вставки. Поэтому речь про отдельные проблемные partition.
    Очевидно, что если я пишу «решил проблему вот так-то» - значит, помогло.
    Возможно, придется оптимизировать куски по очереди на обеих репликах, если оптимизация одной не поможет.
  • https://t.me/clickhouse_ru
    @madm1ke #62155 11:11 AM, 15 Aug 2018
    проблемные места - искать в логах, в вашем же примере куски указаны, кажется.
  • https://t.me/clickhouse_ru
    @madm1ke #62156 11:11 AM, 15 Aug 2018
    а нет, не указаны - должны быть выше или ниже в логах с тем же id потока CH.
  • https://t.me/clickhouse_ru
    Спасибо. На одном все прооптимизирую и опять буду пробовать реплицировать.
  • https://t.me/clickhouse_ru
    @madm1ke #62158 11:14 AM, 15 Aug 2018
    нужно дождаться, когда optimize проедет на второй, по system.merges в том числе - и там же увидеть, что все проблемные мерджи закончились.
  • https://t.me/clickhouse_ru
    @metikovvadim #62159 11:17 AM, 15 Aug 2018
    вторую дропнул, без этого ни строчки не вставлялось, на 12 часов данные отстали, только удалил реплицируемую таблицу на 2м, первый начал писать и по 100М строк вставлял, за 2 часа все нагнал, сейчас на единственном все прооптимизирую и буду снова реплицировать. Ещё хотелось бы знать версю на которй все решилось, сейчас последняя, до перехода на неё не было ошибок.
  • https://t.me/clickhouse_ru
    @leidruid #62160 11:19 AM, 15 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @msnezhkov #62161 11:25 AM, 15 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @aka_TR17l #62162 11:30 AM, 15 Aug 2018
    Есть такой enum ru.yandex.clickhouse.except.ClickHouseErrorCode, а где можно найти более подробное описание этих ошибок ? Или считается, что названия переменных уже говорящие и не требующие уточнений / комментария ? К примеру из непонятного LIMIT_EXCEEDED(290), тут может быть, что угодно за лимит
  • https://t.me/clickhouse_ru
    @chertus #62163 11:33 AM, 15 Aug 2018
    помимо кода ошибки есть сообщение, которое идет вместе с ним
  • https://t.me/clickhouse_ru
    @chertus #62164 11:33 AM, 15 Aug 2018
    оно должно быть чуть более информативное
  • https://t.me/clickhouse_ru
    @aka_TR17l #62165 11:35 AM, 15 Aug 2018
    это в случае когда она уже произошла, мне же требуется написать обработчик ошибок, условно заранее заложиться на возомжные инфраструктурные проблемы, например, слишком большое кол-во мержей, слишком много выделено памяти, но читая вот этот список из 300+ ошибок , как мне показалось не все говорящие
  • https://t.me/clickhouse_ru
    @chertus #62166 11:36 AM, 15 Aug 2018
    пока ошибки человекоориентированные, гарантий по их машинной обработке нет
  • https://t.me/clickhouse_ru
    @chertus #62167 11:37 AM, 15 Aug 2018
    поддерживать такие гарантии довольно дорого
  • https://t.me/clickhouse_ru
    @chertus #62168 11:38 AM, 15 Aug 2018
    можно подумать о выделении определенного класса ошибок, который покрыть тестами
  • https://t.me/clickhouse_ru
    @chertus #62169 11:39 AM, 15 Aug 2018
    если кто-то готов написать такие тесты - было бы клево ;)
  • https://t.me/clickhouse_ru
    @aka_TR17l #62170 11:39 AM, 15 Aug 2018
    ))
  • https://t.me/clickhouse_ru
    @SigvardRuegen #62171 11:47 AM, 15 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @konstantin_ptr #62172 11:47 AM, 15 Aug 2018
    Откройте регистрацию на митап, человеку зарегестрировать надо
  • https://t.me/clickhouse_ru
    @SigvardRuegen #62173 11:49 AM, 15 Aug 2018
    Добрый день. Пишем скориноговую модель на базе альтернативных источников данных. Хотим к вам, есть места? Спасибо
  • https://t.me/clickhouse_ru
    Боюсь там уже совсем битком @Alexander_Anisimov
  • https://t.me/clickhouse_ru
    Места закончились
  • https://t.me/clickhouse_ru
    Да, полный зал
  • https://t.me/clickhouse_ru
    @konstantin_ptr #62177 11:51 AM, 15 Aug 2018
    Тогда, кто уступит свое место, наверняка не всем интересно
  • https://t.me/clickhouse_ru
    @kmarenov #62178 12:10 PM, 15 Aug 2018
    пора перекупам билетов браться за митапы
  • @master_slave_controller #62179 12:14 PM, 15 Aug 2018
    Доброго времени суток, я же правильно понимаю что файл users.xml обновляеться в рантайме, и если я добавлю дефолтную настройку для сохранения логов запросов она автоматически подсосется?
  • https://t.me/clickhouse_ru
    @chertus ↶ Reply to #62179 #62180 12:36 PM, 15 Aug 2018
    есть ручка для обновления конфига: SYSTEM RELOAD CONFIG
  • Спасибушки
  • https://t.me/clickhouse_ru
    @NickBlade #62182 12:57 PM, 15 Aug 2018
    Подскажите плиз чем может быть вызвана данная ошибка :

    2018-08-15 12:55:26,547 [myid:] - INFO [ProcessThread(sid:0 cport:2181)::PrepRequestProcessor@653] - Got user-level KeeperException when processing sessionid:0x100015ef7a00002 type:create cxid:0x25 zxid:0x40 txntype:-1 reqpath:n/a Error Path:/clickhouse/tables/02/events_shard/mutations Error:KeeperErrorCode = NodeExists for /clickhouse/tables/02/events_shard/mutations
  • https://t.me/clickhouse_ru
    @tim_kkk #62183 01:06 PM, 15 Aug 2018
    Тупой вопрос по TABIX , если закрыть ту или иную вкладку, то непонятно как ее потом открыть? где они сохраняются?
  • никак
  • https://t.me/clickhouse_ru
    @tim_kkk #62185 01:12 PM, 15 Aug 2018
    я нашел)
  • https://t.me/clickhouse_ru
    @tim_kkk #62186 01:12 PM, 15 Aug 2018
    но это совсем неочевидно
  • https://t.me/clickhouse_ru
    @tim_kkk #62187 01:13 PM, 15 Aug 2018
    с учетом что там написано в всплывайке Query log
  • @medov_alexey #62188 01:14 PM, 15 Aug 2018
    ничего себе открытие)) я давно уже пользуюсь табиксом, но не знал, потому что видимо не пригождалось. Кстати есть очень удобная бесплатная кросплатформенная IDE DBeaver.
  • @medov_alexey #62189 01:14 PM, 15 Aug 2018
    Там к кликхаусу в два клика подключаешься
  • @lnpj12 #62190 01:14 PM, 15 Aug 2018
    Всем привет. выполняю запрос вида:
    SELECT
    COUNT(eventDate) AS clicks
    FROM (
    SELECT
    FROM
    ALL INNER JOIN USING
    PREWHERE qtype='pv'
    WHERE
    )
    ANY INNER JOIN (
    SELECT
    FROM
    PREWHERE
    WHERE
    ) USING

    WHERE
    GROUP BY
    и раз в ~10 запросов count для одной из строки результата получается на 1 меньше(8 вместо 9), чем нужно.
    Есть альтернативный запрос, он всегда возвращает верный ответ.
    Если выполнить запрос без агрегации с фильтром по нужным данным, то количество строк верное(9 всегда)
    Мне не даёт это покоя, что count не постоянен
    версия 18.1.0
  • https://t.me/clickhouse_ru
    @madm1ke ↶ Reply to #62159 #62191 01:15 PM, 15 Aug 2018
    Connected to ClickHouse server version 18.6.0 revision 54401.

    У меня все решилось без нового апдгрейда, просто разумные мерджи.
  • @saitavr #62192 01:30 PM, 15 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    eventDate не может быть NULL?
  • @lnpj12 ↶ Reply to #62193 #62194 01:35 PM, 15 Aug 2018
    нет
  • @ilstreltsov #62195 01:37 PM, 15 Aug 2018
    Всем привет.
    SELECT
    programId,
    countIf(windowId={know_this_value_for_each_programId}) as firstWindow,
    countIf(windowId={know_this_value_for_each_programId}) as lastWindow
    FROM smth
    WHERE programId IN (1,2,…)
    GROUP BY programId
    как мне подставить know_this_value_for_each_program_id? Словарь вида {programId: {‘firstWindowId’: x, ‘lastWindowId’: y}} могу составить в приложении, а дальше что? Создание временной таблицы и инсерта данных всех элементов, встречающихся в IN, при каждом селекте? Или внешний словарь? Что лучше?
  • @lnpj12 ↶ Reply to #62190 #62196 01:38 PM, 15 Aug 2018
    нашёл, проблема в логике
  • https://t.me/clickhouse_ru
    @NickBlade #62197 01:46 PM, 15 Aug 2018
    <macros>
    <layer>05</layer>
    <shard>02</shard>
    <replica>example05-02-1.yandex.ru</replica>
    </macros>

    в реплика мы указываем свой айпишник (хост) или айпишник (хост) нашей реплики?
  • @Glomen #62198 01:50 PM, 15 Aug 2018
    Joined.
  • я указывал свой hostname
  • https://t.me/clickhouse_ru
    @NickBlade #62200 01:52 PM, 15 Aug 2018
    я тоже, но как правильно не понятно
  • @medov_alexey #62201 01:52 PM, 15 Aug 2018
    то есть если мой сервер, на котором развернут сервер clickhouse называется server_1. то в макросе я пишу <>server_1</replica>
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62200 #62202 02:00 PM, 15 Aug 2018
    На всех машинах должно быть разное, а IP или Hostname неважно, можно что угодно писать туда
  • https://t.me/clickhouse_ru
    @NickBlade #62203 02:01 PM, 15 Aug 2018
    разное оно и так будет, я к тому что туда вписывать - себя или свою реплику?
  • пишите hostname и 100% все будет работать
  • https://t.me/clickhouse_ru
    @NickBlade #62205 02:02 PM, 15 Aug 2018
    чей? Свой или своей реплики?)
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62205 #62206 02:17 PM, 15 Aug 2018
    Машины на которой конфиг
  • верно
  • https://t.me/clickhouse_ru
    @NickBlade #62208 02:25 PM, 15 Aug 2018
    спасибо
  • https://t.me/clickhouse_ru
    @molo4ko007 #62209 03:38 PM, 15 Aug 2018
    Использование словарей как-то на зукипере может сказываться? Наблюдаю подозрительный скачок нагрузки и трафика на зк с момента деплоя конфига со словарем.
  • https://t.me/clickhouse_ru
    @zion_o_zaur #62211 04:51 PM, 15 Aug 2018
    здравствуйте. такой вот вопрос:
    sumMap(k, v) в качестве k умеет работать только с интами и флоатами(по крайней мере, для 18.6.0 это так, как я экспериментальным путём выяснил).
    есть ли в планах расширение функционала до строк?
    как временное решение, сделали из строк енум, суммап его ожидаемо корректно обработал, но если нам енума не хватит, будет неприятно.
  • https://t.me/clickhouse_ru
    @athathot #62215 06:19 PM, 15 Aug 2018
    а как можно суммировать строки?
  • https://t.me/clickhouse_ru
    @zion_o_zaur #62216 06:22 PM, 15 Aug 2018
    так строки и не надо. строки хотелось бы использовать в качестве ключей
  • https://t.me/clickhouse_ru
    @athathot #62217 08:06 PM, 15 Aug 2018
    Протупил, прости
  • 16 August 2018 (59 messages)
  • https://t.me/clickhouse_ru
    @gruff4l0 #62218 06:27 AM, 16 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62209 #62219 06:33 AM, 16 Aug 2018
    Нет, не должно.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62211 #62220 06:35 AM, 16 Aug 2018
    Пока можно использовать функции хеширования для преобразования строк в Int64 и таким образом решить проблему, но, с sumMap есть еще одна фича, данные должны помещаться в память, что не всегда возможно (вот это надо править).
  • https://t.me/clickhouse_ru
    @alla_agency #62221 07:07 AM, 16 Aug 2018
    Joined.
  • @andrey45263 #62222 07:38 AM, 16 Aug 2018
  • https://t.me/clickhouse_ru
    вы только что натолкнули меня на мысль, что строки то у меня короткие, до 5-7 символов(утф8 правда), так что теоретически можно попробовать реинтерпретировать строку в фиксд стринг(8) а потом в инт.

    спасибо, добрый человек, доберусь до консоли, попробую
  • @238773844 #62224 08:11 AM, 16 Aug 2018
    Стоит ли использовать ch для оперативных отчётов без агрегации с выборкой большого количества колонок с фильтрация по датам, Пробовал погираться, уперлось в memory limit, может быть есть хорошая практика как это делать или не делать.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62224 #62225 08:13 AM, 16 Aug 2018
    Да, просто настрйки max_bytes_before_external_sort, max_bytes_before_external_group_by и max_memory_usage_*** покрутите
  • @238773844 #62226 08:13 AM, 16 Aug 2018
    Спасибо!
  • подскажите плиз)
  • @faerics ↶ Reply to #62195 #62228 08:44 AM, 16 Aug 2018
    А это не одно и то же? Как внутри работают словари?
  • https://t.me/clickhouse_ru
    @leidruid #62229 08:50 AM, 16 Aug 2018
    Подскажите, а почему происходит вот так:
    DB::Exception: Too many parts (302). Merges are processing significantly slower than inserts
    При этом
    графики выглядят вот так:
  • https://t.me/clickhouse_ru
    @leidruid #62230 08:52 AM, 16 Aug 2018
    левый график - select sum(num_parts) from system.merges
    правый - select count() from system.merges
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62229 #62231 08:58 AM, 16 Aug 2018
    Потому, что куски в партиции нужно смотреть в system.parts ;)
  • https://t.me/clickhouse_ru
    @kshvakov #62232 09:00 AM, 16 Aug 2018
    Например SELECT database, table, partition, COUNT() AS parts FROM system.parts WHERE active GROUP BY database, table, partition ORDER BY parts DESC LIMIT 20
  • https://t.me/clickhouse_ru
    @leidruid ↶ Reply to #62231 #62233 09:08 AM, 16 Aug 2018
    спасибо
  • https://t.me/clickhouse_ru
    @leidruid #62235 09:08 AM, 16 Aug 2018
    Я почему-то думал, что эта ошибка относится к кол-ву партиций в мержах
  • ответил на SO.
  • @faerics ↶ Reply to #62236 #62237 09:50 AM, 16 Aug 2018
    Спасибо. Скоро посмотрю.
  • https://t.me/clickhouse_ru
    @rheinx #62238 10:11 AM, 16 Aug 2018
    JetBrains выкатил апдейт DataGrip с поддержкой ClickHouse!

    https://blog.jetbrains.com/datagrip/2018/08/15/datagrip-2018-2-2-clickhouse-support-and-bugfixes/
  • Так DataGrip и так же поддерживало ClickHouse
  • @medov_alexey #62240 10:15 AM, 16 Aug 2018
    Мы его как минимум месяца два используем
  • https://t.me/clickhouse_ru
    @rheinx #62241 10:16 AM, 16 Aug 2018
    ¯\_(ツ)_/¯
  • https://t.me/clickhouse_ru
    @QuietFelix #62242 10:23 AM, 16 Aug 2018
    С нативной поддержкой синтаксиса используете, да?
  • https://t.me/clickhouse_ru
    @msnezhkov #62244 10:26 AM, 16 Aug 2018
    Всем привет.
    Пытаюсь вставить несжатых данных 30гб в clickhouse через chproxy
    curl -XPOST -T "./db1.table2.dump" -u username:password "http://chproxy:9090/?query=INSERT%20INTO%20db1.table2%20FORMAT%20Native"
    chproxy возвращает
    DEBUG: 2018/08/16 10:18:00 proxy.go:115: [ Id: 154B3C1CDF2C71F3; User "global-writer"(1) proxying as "default"(1) to "clickhouse1:8123"(1); RemoteAddr: "192.168.1.5:45926"; LocalAddr: "192.168.1.10:9090"; Duration: 1m0.006860656s ]: request failure: non-200 status code 499; query:
    Не могу понять на какое ограничение натыкаюсь, данные напрямую в clickhouse льются без проблем. Может быть кто-нибудь сталкивался и сможет подсказать в какую сторону копать?
  • https://t.me/clickhouse_ru
    @msnezhkov #62245 10:28 AM, 16 Aug 2018
    Ошибка на стороне clickhouse если заливать через chproxy:
    <Error> HTTPHandler: Code: 33, e.displayText() = DB::Exception: Cannot read all data. Bytes read: 5. Bytes expected: 8., e.what() = DB::Exception, Stack trace:

    0. /usr/bin/clickhouse-server(StackTrace::StackTrace()+0x16) [0x56d1436]
    1. /usr/bin/clickhouse-server(DB::Exception::Exception(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)+0x22) [0x2db80f2]
    2. /usr/bin/clickhouse-server(DB::ReadBuffer::readStrict(char*, unsigned long)+0x1c1) [0x2dc9ed1]
    3. /usr/bin/clickhouse-server() [0x47bbe0c]
    4. /usr/bin/clickhouse-server(DB::DataTypeString::deserializeBinaryBulk(DB::IColumn&, DB::ReadBuffer&, unsigned long, double) const+0x160) [0x47bcbb0]
    5. /usr/bin/clickhouse-server(DB::NativeBlockInputStream::readData(DB::IDataType const&, DB::IColumn&, DB::ReadBuffer&, unsigned long, double)+0x113) [0x476e593]
    6. /usr/bin/clickhouse-server(DB::NativeBlockInputStream::readImpl()+0x967) [0x476f2c7]
    7. /usr/bin/clickhouse-server(DB::IProfilingBlockInputStream::read()+0x25a) [0x4768cfa]
    8. /usr/bin/clickhouse-server(DB::InputStreamFromASTInsertQuery::readImpl()+0x28) [0x4ef3408]
    9. /usr/bin/clickhouse-server(DB::IProfilingBlockInputStream::read()+0x25a) [0x4768cfa]
    10. /usr/bin/clickhouse-server(DB::copyData(DB::IBlockInputStream&, DB::IBlockOutputStream&, std::atomic<bool>*)+0x81) [0x477f3d1]
    11. /usr/bin/clickhouse-server(DB::executeQuery(DB::ReadBuffer&, DB::WriteBuffer&, bool, DB::Context&, std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>)+0x1a3) [0x4ef2a53]
    12. /usr/bin/clickhouse-server(DB::HTTPHandler::processQuery(Poco::Net::HTTPServerRequest&, HTMLForm&, Poco::Net::HTTPServerResponse&, DB::HTTPHandler::Output&)+0x3147) [0x2dd2a37]
    13. /usr/bin/clickhouse-server(DB::HTTPHandler::handleRequest(Poco::Net::HTTPServerRequest&, Poco::Net::HTTPServerResponse&)+0x248) [0x2dd4b48]
    14. /usr/bin/clickhouse-server(Poco::Net::HTTPServerConnection::run()+0x332) [0x58cce02]
    15. /usr/bin/clickhouse-server(Poco::Net::TCPServerConnection::start()+0xf) [0x58c56af]
    16. /usr/bin/clickhouse-server(Poco::Net::TCPServerDispatcher::run()+0x16a) [0x58c5a8a]
    17. /usr/bin/clickhouse-server(Poco::PooledThread::run()+0x77) [0x5966e97]
    18. /usr/bin/clickhouse-server(Poco::ThreadImpl::runnableEntry(void*)+0x38) [0x5962d58]
    19. /usr/bin/clickhouse-server() [0x938cc0f]
    20. /lib/x86_64-linux-gnu/libpthread.so.0(+0x76db) [0x7f584972d6db]
    21. /lib/x86_64-linux-gnu/libc.so.6(clone+0x3f) [0x7f5848eb488f]
  • @robingoose #62246 10:32 AM, 16 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @chertus ↶ Reply to #62245 #62247 10:56 AM, 16 Aug 2018
    похоже на какую-то ошибку формата передачи данных. можно попробовать сделать tcpdump и посмотреть wireshark-ом разницу между вставкой через прокси и напрямую. Выглядит так, что кликхаус ждет больше данных, чем ему передали
  • https://t.me/clickhouse_ru
    @chumric #62248 11:17 AM, 16 Aug 2018
    Joined.
  • @ruexcalib #62249 11:28 AM, 16 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @NickBlade #62250 12:47 PM, 16 Aug 2018
    Господа, подскажите пожалуйста где и в каком формате кликхаус хранит словари
  • https://t.me/clickhouse_ru
    @NickBlade #62251 12:47 PM, 16 Aug 2018
    не конфиги, а сами данные, которые он засинкал уже
  • https://t.me/clickhouse_ru
    @Vasyaabr #62252 12:49 PM, 16 Aug 2018
    В памяти вообще то
  • https://t.me/clickhouse_ru
    @NickBlade #62253 12:50 PM, 16 Aug 2018
    нет ли способа проверить по определенному айдишнику наличие записи в словаре?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @NickBlade #62255 12:53 PM, 16 Aug 2018
    Спасибо
  • https://t.me/clickhouse_ru
    @orantius ↶ Reply to #62253 #62256 12:54 PM, 16 Aug 2018
    create database dictionaries ENGINE = Dictionary, потом заселектить из таблицы
  • https://t.me/clickhouse_ru
    @artemzaikin #62259 01:07 PM, 16 Aug 2018
    Всем привет! Подскажите, пожалуйста, как Кликхаус определят живость реплики? Можно ли как-то тюнить это процесс?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62259 #62260 01:13 PM, 16 Aug 2018
    Можно настроить отставание в секундах для distributed запросов, а так смотрит на флажек в ZK при кворумной вставке и на лаг для distributed запросов если он выставлен
  • @Dilemma #62261 01:30 PM, 16 Aug 2018
    Добрый день!
    А возможно ли как-то передать сохранённый в текстовом файле запрос в командную строку?
  • @Dilemma #62263 01:34 PM, 16 Aug 2018
    Вместо clickhouse-client --query="SELECT shell, count() AS c FROM passwd GROUP BY shell ORDER BY c DESC", например, clickhouse-client --e query.txt
  • cat filename возможно поможет
  • https://t.me/clickhouse_ru
    @NickBlade #62267 01:39 PM, 16 Aug 2018
    Можно ли как-нибудь вручную вызвать обновленние словарей?
  • @lnpj12 ↶ Reply to #62267 #62268 01:40 PM, 16 Aug 2018
    system reload dictionaries
  • https://t.me/clickhouse_ru
    @NickBlade #62269 01:40 PM, 16 Aug 2018
    огромное спасибо
  • https://t.me/clickhouse_ru
    А как вообще определятся что реплика доступна на чтение при дистрибьютед запросах? Ноды кх как-то пингуют друг друга?
  • https://t.me/clickhouse_ru
    @artemzaikin #62271 01:50 PM, 16 Aug 2018
    Что должно произойти, чтобы реплика была исключена из списка "живых"?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62270 #62272 02:00 PM, 16 Aug 2018
    Сервер просто ретраит запросы
  • https://t.me/clickhouse_ru
    system reload dictionary ddddd;
    или все сразу system reload dictionaries;
  • https://t.me/clickhouse_ru
    @NickBlade #62274 02:03 PM, 16 Aug 2018
    спасибо
  • https://t.me/clickhouse_ru
    @den_crane #62275 02:03 PM, 16 Aug 2018
    ну или touch dddd.xml
  • https://t.me/clickhouse_ru
    Моя не понимат) Есть какой-то таймаут на коннект или на выполнение запроса после которого запрос пойдет на другую реплику?
  • https://t.me/clickhouse_ru
    @molo4ko007 #62277 02:13 PM, 16 Aug 2018
    а chproxy не умеет вести access log?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    Ох, я опасался такой ссылки, спасибо)
  • https://t.me/clickhouse_ru
    @igor_dia #62280 07:02 PM, 16 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @chernievsky #62281 08:22 PM, 16 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @Pershin_Artem_spb #62282 09:37 PM, 16 Aug 2018
    Joined.
  • 17 August 2018 (133 messages)
  • Можно подробности получить? У меня получилось заставить работать как оперативные отчеты так и MDX, так же удалось подцепить query designer, schema workbench
  • @238773844 #62284 05:39 AM, 17 Aug 2018
    Тестирую на тестовых данных, результат агрегации в Pivot4j сходится с результатами из консоли
  • https://t.me/clickhouse_ru
    @NickBlade #62285 06:59 AM, 17 Aug 2018
    Может кто-то объяснить про internal_replication ?
    Из документации не очень ясно
  • https://t.me/clickhouse_ru
    @umaxfun ↶ Reply to #62283 #62286 07:01 AM, 17 Aug 2018
    Деталей я не помню уже, помню что ни один инструмент по итогу не заработал. Может что-то с тех пор поменялось в кх или пентахо? Как настраивал? Были танцы с бубном?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62285 #62287 07:05 AM, 17 Aug 2018
    Для distributed таблиц значит что нужно ли им самим писать во все реплики или в кластере или достаточно в одну т.к. та реплицируется сама. Плюс примерно тоже самое для ALTER TABLE ON CLUSTER X
  • https://t.me/clickhouse_ru
    @NickBlade #62288 07:06 AM, 17 Aug 2018
    ну вот у меня create table расбрасывается по всем нодам класетера без этой опции, а вот alter работает на всех только при включенной опции <internal_replication>true</internal_replication>
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62288 #62289 07:07 AM, 17 Aug 2018
    ДА
  • https://t.me/clickhouse_ru
    @NickBlade #62290 07:08 AM, 17 Aug 2018
    учитывая что машин в кластере может быть много и они могут добавляться, почему по умолчанию эта опция выключена? Это же чертовски удобно
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62290 #62291 07:10 AM, 17 Aug 2018
    Потому, что это афектит запись в distributed таблицы, а шардов не так много и можно на каждом альтер забубенить
  • https://t.me/clickhouse_ru
    @NickBlade #62292 07:10 AM, 17 Aug 2018
    т.е. лучше ее выключенной держать?
  • https://t.me/clickhouse_ru
    @kshvakov #62293 07:10 AM, 17 Aug 2018
    да
  • https://t.me/clickhouse_ru
    @NickBlade #62294 07:11 AM, 17 Aug 2018
    ясно. Спасибо
  • https://t.me/clickhouse_ru
    @kshvakov #62295 07:11 AM, 17 Aug 2018
    если пишите в distributed и под ней лежат реплицируемые таблицы
  • https://t.me/clickhouse_ru
    @kmarenov #62296 07:49 AM, 17 Aug 2018
    Тут статью в википедии собираются удалять
    https://ru.wikipedia.org/wiki/Википедия:К_удалению/15_августа_2018#ClickHouse
    Википедия:К удалению/15 августа 2018

    список всех кандидатов на удаление

  • https://t.me/clickhouse_ru
    Кто-нибудь в курсе как этому можно помешать?
  • https://t.me/clickhouse_ru
    @NickBlade #62298 07:53 AM, 17 Aug 2018
    Поробовать залогиниться и оставить коментарий
  • https://t.me/clickhouse_ru
    @kmarenov #62299 07:53 AM, 17 Aug 2018
    Википедия:Что делать, если ваша статья стала кандидатом на удаление

    Вашу статью хотят удалить?! Некоторые участники смело создают новую статью, но вскоре другие участники её помечают к удалению, и это обсуждается на странице Википедия:К удалению. Так бывает. Статьи, не соответствующие формату Википедии или противоречащие правилам, удаляются, если сообщество согласится с этим. В очевидных случаях статьи помечаются к быстрому удалению без обсуждения. Однако бывают случаи, когда статью ставят на удаление другие участники, не согласные с точкой зрения, выраженной в статье, или негативно относящиеся к теме, которая в ней затронута. В таком случае конструктивное обсуждение (см. ниже) поможет сохранить статью.

  • https://t.me/clickhouse_ru
    @NickBlade #62300 07:54 AM, 17 Aug 2018
    "ссылки на сам Яндекс не считаются независимыми" вот это маразм дичайший. Какого хера ?
  • https://t.me/clickhouse_ru
    @NickBlade #62301 07:54 AM, 17 Aug 2018
    если яндекс это разработчик, где по их мнению должны размещаться ссылки?
  • https://t.me/clickhouse_ru
    @nvartolomei #62302 07:59 AM, 17 Aug 2018
    Доля правды есть, я думаю это воспринимаемся как топик который создала компания, без значимый пользы остальным
  • https://t.me/clickhouse_ru
    @NickBlade #62303 07:59 AM, 17 Aug 2018
    субъективщина чистой воды
  • https://t.me/clickhouse_ru
    @NickBlade #62304 08:00 AM, 17 Aug 2018
    MongoDB

    документоориентированная СУБД с открытым исходным кодом

  • https://t.me/clickhouse_ru
    @NickBlade #62305 08:00 AM, 17 Aug 2018
    в чем различие?
  • https://t.me/clickhouse_ru
    @NickBlade #62306 08:01 AM, 17 Aug 2018
    пусть в статье вики укажут ссылку на гитхаб с исходниками, мало ли
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62305 #62307 08:02 AM, 17 Aug 2018
    Как минимум в
    Литература
    Кайл Бэнкер. MongoDB в действии = MongoDB in Action. — ДМК Пресс, 2014. — 394 с. — ISBN 978-5-97060-057-3.
    Kristina Chodorow. MongoDB: The Definitive Guide, 2nd Edition. — O'Reilly Media, Inc., 2013. — 432 с. — ISBN 978-1-4493-4468-9.
    David Hows, Peter Membrey, Eelco Plugge, Tim Hawkins. The Definitive Guide to MongoDB: A complete guide to dealing with Big Data using MongoDB, Third Edition. — Apress, 2015. — 376 с. — ISBN 978-1-4842-1183-0.
    Eelco Plugge, Peter Membrey, Tim Hawkins. The Definitive Guide to MongoDB: The NoSQL Database for Cloud and Desktop Computing. — Apress, 2010. — 327 с. — ISBN 1-4302-3051-7.
    Mithun Satheesh; Bruno Joseph D'mello; Jason Krol. Web Development with MongoDB and NodeJS - Second Edition. — Packt Publishing, 2015. — 300 с. — ISBN 978-1-78528-745-9.
    Steve Hoberman. Data Modeling for MongoDB. — Technics Publications, 2014. — 226 с. — ISBN 978-1-935504-70-2.
    Mitch Pirtle. MongoDB for Web Development. — Addison-Wesley Professional, 2011. — С. 360. — ISBN 9780321705334.
  • https://t.me/clickhouse_ru
    @nvartolomei #62308 08:02 AM, 17 Aug 2018
    Плюс в примечаниях ещё есть
  • https://t.me/clickhouse_ru
    @NickBlade #62309 08:03 AM, 17 Aug 2018
    я ж говорю, добавить в примечение ссылки на гитхаб и на тот же habrahabr (там статей хуева туча)
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62309 #62310 08:08 AM, 17 Aug 2018
    На хабре статьи от Яндекса, можно на бложик Cloudflare ссылки дать.
  • https://t.me/clickhouse_ru
    @NickBlade #62311 08:08 AM, 17 Aug 2018
    не только от яндекса
  • @faerics ↶ Reply to #62296 #62312 08:10 AM, 17 Aug 2018
    и абсолютно правильно собираются. Не понимаю вашего возмущения. Статья действительно незначима.
  • https://t.me/clickhouse_ru
    @NickBlade #62314 08:11 AM, 17 Aug 2018
    https://habr.com/post/322620/

    https://habr.com/post/324846/

    https://habr.com/company/oleg-bunin/blog/351308/

    как минимум они не от яндекса
    Переезд на Yandex ClickHouse

    Александр Зайцев отвечает на вопросы относительно переезда на Yandex ClickHouse. Это — расшифровка доклада Highload++ 2016. Всем здравствуйте! За эти два дня...

  • @faerics #62315 08:12 AM, 17 Aug 2018
    про монго статья гораздо более ёмкая и имеет хоть какой-то смысл.
  • https://t.me/clickhouse_ru
    @NickBlade #62316 08:13 AM, 17 Aug 2018
    Возмущение в том, что причины высосаны из пальца
  • @faerics #62317 08:13 AM, 17 Aug 2018
    А в статье о кликхаусе просто перевод документации (или копипаста, я не знаю). Имхо, я согласен с тем, что статья не значима в смысле википедии и ей там (в том варианте, в котором она сейчас лежит) не место
  • https://t.me/clickhouse_ru
    @NickBlade #62318 08:13 AM, 17 Aug 2018
    Статья по кликхаусу тоже имеет смысл. Как минимум чтобы люди познакомились и перешли на более узкоспециализированные блоги по теме
  • @faerics ↶ Reply to #62318 #62319 08:14 AM, 17 Aug 2018
    википедия не для этого придумана, не для знакомства с.
  • https://t.me/clickhouse_ru
    @NickBlade #62320 08:15 AM, 17 Aug 2018
    А для чего?
  • https://t.me/clickhouse_ru
    @NickBlade #62321 08:15 AM, 17 Aug 2018
    и для знакомства в том числе
  • @faerics #62322 08:18 AM, 17 Aug 2018
    ну сама по себе статья ничего нового по сравнению с документацией не превносит. Хотелось бы увидеть отдельным разделом упоминания, отдельным — список проектов, которые используют, отдельным — мнения о том, почему кликхаус хорош, почему плох, с кем его корректно сравнивать, с кем — нет.
    тогда это было бы да. А так — эту информацию любой интересующийся кх и так найдёт, а тому, кто не интересуется конкретно кх, это не будет полезно, мне кажется.
    хотя, как знать.
  • https://t.me/clickhouse_ru
    @NickBlade #62323 08:19 AM, 17 Aug 2018
    Ну мне кажется что статья быть дожна, как минимум потому что в статье про колоночные СУБД должны быть ссылки на статьи и по Vertica и по Clickhouse
  • https://t.me/clickhouse_ru
    @NickBlade #62324 08:19 AM, 17 Aug 2018
    Очевидно что каждый останется при своем мнении
  • @faerics #62325 08:20 AM, 17 Aug 2018
    Да, это верно. Статья быть должна, с этим я и не спорю.
    > ссылки на сам Яндекс не считаются независимыми.
    это хороший аргумент.
  • https://t.me/clickhouse_ru
    @zion_o_zaur #62326 08:20 AM, 17 Aug 2018
    хм. искал в свое время колоночную субд, пока меня знакомый в кх не ткнул, я про него даже не слышал
  • https://t.me/clickhouse_ru
    @NickBlade #62327 08:20 AM, 17 Aug 2018
    Не могу с вами согласиться)
  • https://t.me/clickhouse_ru
    @zion_o_zaur #62328 08:20 AM, 17 Aug 2018
    так что не все так однозначно
  • @faerics ↶ Reply to #62326 #62329 08:20 AM, 17 Aug 2018
    у меня точно та же история.
  • https://t.me/clickhouse_ru
    ну вертика там упоминалась а кх нет
  • https://t.me/clickhouse_ru
    @zion_o_zaur #62331 08:21 AM, 17 Aug 2018
    и это мягко говоря странно
  • https://t.me/clickhouse_ru
    @NickBlade #62332 08:21 AM, 17 Aug 2018
    вот вот
  • https://t.me/clickhouse_ru
    @zion_o_zaur #62333 08:22 AM, 17 Aug 2018
    и еще там упоминаются гуглячьи решения, которые вообще исключительно внутренние
  • https://t.me/clickhouse_ru
    @zion_o_zaur #62334 08:22 AM, 17 Aug 2018
    что еще страннее
  • @faerics #62335 08:22 AM, 17 Aug 2018
    Ну так можно же сделать правку и упомянуть там кх! и это будет как раз уже аргументом: статья востребована и дополняет энциклопедию.
  • https://t.me/clickhouse_ru
    @NickBlade #62336 08:22 AM, 17 Aug 2018
    логично
  • https://t.me/clickhouse_ru
    ну это ж логиниться надо...
  • @faerics #62338 08:24 AM, 17 Aug 2018
    То есть надо не исправлять статью, чтобы её не удалили, а подумать, зачем она действительно нужна, и показать это остальным — что мы, вроде как, и поняли. А дальше уж тот, кому не лень, залогинится, может даже кто-нибудь из Яндекса найдёт время :)
  • https://t.me/clickhouse_ru
    @yurytrostin #62339 08:55 AM, 17 Aug 2018
    Всем привет! Вчера на митапе в СПБ говорилось про табличную функцию odbc наряду с другими табличными функциями, но в документации по ней информации нет (а по другим есть). Где можно найти информацию?)
  • odbc (odbc connect string, table)
  • @pookieShmukie #62342 09:13 AM, 17 Aug 2018
    Дальше описание имеется
  • https://t.me/clickhouse_ru
    @yurytrostin #62343 09:17 AM, 17 Aug 2018
    Спасибо!
  • https://t.me/clickhouse_ru
    @densol92 #62344 09:45 AM, 17 Aug 2018
    Joined.
  • @mobydi #62345 10:01 AM, 17 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @rkazakov #62346 10:33 AM, 17 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @EvgenyVinogradov #62347 11:25 AM, 17 Aug 2018
    добрый день! А можно где-то увидеть презентации по вчерашнему митапу в Питере?
  • https://t.me/clickhouse_ru
    @yarusenko #62348 11:29 AM, 17 Aug 2018
    Joined.
  • Я полагаю, что Алексей чуть позде выложит все и напишет
  • https://t.me/clickhouse_ru
    @EvgenyVinogradov #62350 12:14 PM, 17 Aug 2018
    Спасибо
  • https://t.me/clickhouse_ru
    @kshvakov #62351 12:15 PM, 17 Aug 2018
    Вообще рано или поздно все презентации выкладываются тут https://github.com/yandex/clickhouse-presentations
    ClickHouse/clickhouse-presentations

    Presentations, meetups and talks about ClickHouse. Contribute to ClickHouse/clickhouse-presentations development by creating an account on GitHub.

  • @mfilimonov #62352 12:19 PM, 17 Aug 2018
    Поправил статью на википедии, думаю теперь должно быть ок. Почитайте / поправьте если что-то плохо получилось, или очепятки какие-то. https://ru.wikipedia.org/wiki/ClickHouse
    ClickHouse

    ClickHouse — это колоночная аналитическая СУБД с открытым кодом, позволяющая выполнять аналитические запросы в режиме реального времени на структурированных больших данных, разрабатываемая компанией Яндекс .

  • @mr_ehbr #62353 12:21 PM, 17 Aug 2018
    Joined.
  • @N0tNu11 #62354 12:26 PM, 17 Aug 2018
    Всем привет! Гружу данные в clickhouse из CSV. В данных есть ip-адрес в виде строки. Могу ли я в инсерте сделать IPv4StringToNum?
  • @N0tNu11 #62355 12:26 PM, 17 Aug 2018
    и правильно ли я понимаю, что ip-адрес лучше хранить в UInt?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62354 #62356 12:26 PM, 17 Aug 2018
    Нет, но можете через временную таблицу перегнать.
  • @N0tNu11 #62357 12:27 PM, 17 Aug 2018
    Понял, спасибо
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62355 #62358 12:28 PM, 17 Aug 2018
    Мы и IPv4 и v6 храним в одном поле, поэтому нам, например, для этого нужен FixedString(16)
  • @N0tNu11 #62359 12:29 PM, 17 Aug 2018
    Т.е. вы их не перегоняете в UInt, а прямо со строкой работаете?
  • @N0tNu11 #62360 12:29 PM, 17 Aug 2018
    Не мерили ли разницу с UInt?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62359 #62361 12:29 PM, 17 Aug 2018
    нет, они лежат в бинарном виде
  • https://t.me/clickhouse_ru
    @zion_o_zaur #62362 12:30 PM, 17 Aug 2018
    uint64+uint64 же
  • @N0tNu11 #62363 12:30 PM, 17 Aug 2018
    ну да, логично)
  • https://t.me/clickhouse_ru
    @kshvakov #62364 12:30 PM, 17 Aug 2018
    если в КХ нет встроенного бинарного типа мы используем FixedString для более компактного представления некоторых типов
  • @thx_durov #62365 12:33 PM, 17 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62352 #62366 12:33 PM, 17 Aug 2018
    👍
  • @N0tNu11 #62367 12:34 PM, 17 Aug 2018
    https://github.com/roistat/go-clickhouse вот тут люди похоже на уровне библиотеки превращают ip в num
    GitHub - roistat/go-clickhouse: Golang ClickHouse connector

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

  • @SunnyJackR #62368 12:34 PM, 17 Aug 2018
    Joined.
  • @medov_alexey #62369 12:37 PM, 17 Aug 2018
    Добрый день.

    Скажите пожалуйста, процесс репликации проходит через Zookeeper'ы, или ClickHouse ноды прямиком общаються друг к другу ?
  • @medov_alexey #62370 12:37 PM, 17 Aug 2018
    Вот например я сделал Альтер
  • @medov_alexey #62371 12:38 PM, 17 Aug 2018
    Как информация об этом накатывается на другие сервера ClickHouse ?
  • @medov_alexey #62372 12:39 PM, 17 Aug 2018
    Информация о том что сервер проделал Альтер передается в Zookeeper, там все таблицы должны привезтись к такому же виду в Zookeeper, после чего другие ClickHouse сервера подтягивают изменения с Zookeeper, верно ?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62372 #62373 12:40 PM, 17 Aug 2018
    Там задачи в ZK для серверов в кластере ставятся и они их выполняют
  • @medov_alexey #62374 12:41 PM, 17 Aug 2018
    То есть то что я выше написал правильно ?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62374 #62375 12:42 PM, 17 Aug 2018
    Да, для репликации ведется лог и который пишется в ZK (не данные) и все сервера этот лог "проигрывают", напрямую они не общяются между собой, единственное обращение - это стягивание кусков по http
  • @medov_alexey #62376 12:43 PM, 17 Aug 2018
    ".... единственное обращение - это стягивание кусков по http...."

    Каких кусков ? самих данных ?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62376 #62377 12:44 PM, 17 Aug 2018
    Да, данные в КХ кранятся кусками
  • @medov_alexey #62378 12:45 PM, 17 Aug 2018
    То есть репликация идет не только через Zookeeker.
    Она сначала выполняется на Zookeeper, а потом данные передаются не посредственно между серверами
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62378 #62379 12:47 PM, 17 Aug 2018
    Нет, там все примерно так: данные пишутся на диск, в ZK добавляется запись о новом куске в таблице, сервера видят что куска у них нет и скачивают его (упрощенно).
  • https://t.me/clickhouse_ru
    @konstantin_ptr #62380 12:47 PM, 17 Aug 2018
    сырые данные по сайтам лучше собирать в разные базы и потом методом кластер стотроить общий отчет? или лучше все в одну базу пушить?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62380 #62381 12:47 PM, 17 Aug 2018
    Пишите все в одну таблицу
  • А теперь понятно) спасибо ! 👍
  • https://t.me/clickhouse_ru
    @quarrant #62383 01:08 PM, 17 Aug 2018
    А почему select toUInt64(111111) from table format JSON возвращает "1111111"
  • https://t.me/clickhouse_ru
    @quarrant #62384 01:08 PM, 17 Aug 2018
    Кто нибудь сталкивался с таким?
  • https://t.me/clickhouse_ru
    @orantius #62385 01:09 PM, 17 Aug 2018
    потому что uint64
  • https://t.me/clickhouse_ru
    @quarrant ↶ Reply to #62385 #62386 01:10 PM, 17 Aug 2018
    В смысле? Почему интовое поле и без принудительного привидения возвращает стринг
  • https://t.me/clickhouse_ru
    @orantius #62387 01:10 PM, 17 Aug 2018
    некоторые языки программирования плохо себя ведут с длинными числами, поэтому есть возможность отдавать их в кавычках, есть возможность делать это без кавычек
  • https://t.me/clickhouse_ru
    @beeblebrox #62388 01:10 PM, 17 Aug 2018
    потому что format JSON, не?
  • https://t.me/clickhouse_ru
    @quarrant ↶ Reply to #62387 #62389 01:11 PM, 17 Aug 2018
    Просто буквально пару дней назад возвращался нормальный инт, а теперь стал стринг...
  • https://t.me/clickhouse_ru
    @orantius #62390 01:12 PM, 17 Aug 2018
    либо поменялся тип, либо поменялся output_format_json_quote_64bit_integers
  • https://t.me/clickhouse_ru
    @quarrant ↶ Reply to #62390 #62391 01:14 PM, 17 Aug 2018
    output_format_json_quote_64bit_integers │ 1
  • https://t.me/clickhouse_ru
    @quarrant #62392 01:14 PM, 17 Aug 2018
    По всей видимости...
  • https://t.me/clickhouse_ru
    @quarrant ↶ Reply to #62390 #62393 01:27 PM, 17 Aug 2018
    Исправил, спасибо
  • https://t.me/clickhouse_ru
    @letfoolsdie #62394 01:56 PM, 17 Aug 2018
    Joined.
  • @maxim_vorsobine #62395 02:11 PM, 17 Aug 2018
    Добрый день,
    есть возможность как нибудь ускорить WHERE t IN (SELECT ...), если известно, что возвращаемое во вложенном SELECT множество сортировано ?
  • @149076979 #62396 02:12 PM, 17 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62395 #62397 02:16 PM, 17 Aug 2018
    Убедится что t в индексе и убедиться что у вас не сильно старая версия и она использует ПК для IN
  • У нас t - это tuple(test_id, tun_id), и оба они ПК:
    ORDER BY (test_id, id)
    и в таблице внутреннего SELECT, и во внешней таблице тоже.
    Можно ещё что-то сделать для того, чтобы ускорить эту часть запроса?
  • https://t.me/clickhouse_ru
    @notmaxx #62399 02:22 PM, 17 Aug 2018
    Добрый день, можно как-то скопировать готовые базы КХ на другую машину? Зукипера нет, реплик нет, просто тестовая база на одной машине
  • https://t.me/clickhouse_ru
    @zion_o_zaur #62400 02:23 PM, 17 Aug 2018
    Господа, а можно как-то примерно прикинуть, сколько по времени КХ будет делать optimize table ... final?
  • https://t.me/clickhouse_ru
    @salttan ↶ Reply to #62399 #62401 02:25 PM, 17 Aug 2018
    остановить КХ, скопировать data и metadata на другую машину, запустить КХ
  • https://t.me/clickhouse_ru
    @notmaxx ↶ Reply to #62401 #62402 02:40 PM, 17 Aug 2018
    А пути в конфигах прописаны?
  • https://t.me/clickhouse_ru
    @salttan #62403 02:40 PM, 17 Aug 2018
    да
  • https://t.me/clickhouse_ru
    @notmaxx ↶ Reply to #62403 #62404 02:41 PM, 17 Aug 2018
    Понял, спасибо
  • @milovidov_an #62406 04:25 PM, 17 Aug 2018
    В КХ есть возможность получить лог/отчёт/метрики по запросам и сожранными ими CPU time
  • @milovidov_an #62407 04:25 PM, 17 Aug 2018
    И есть ли возможность каким либо способом в рамках явно заданного временного интервала, повторно не исполнять одинаковые запросы. Регистрировать их где-нибудь в системных таблицах КХ и результаты работы самого первого запроса отдавать остальным клиентам
  • @milovidov_an #62408 04:25 PM, 17 Aug 2018
    Мы можем это сделать в редисе или где-нибудь ещё, но мы любим КХ и не любим тратить ресурсы
  • @milovidov_an #62409 04:25 PM, 17 Aug 2018
    :)
  • @milovidov_an #62410 04:25 PM, 17 Aug 2018
    Только анонсирована (вчера) вощможность получать метрики по реальному CPU и IO time по запросам.
  • @milovidov_an #62411 04:25 PM, 17 Aug 2018
    Ооооо супер
  • @milovidov_an #62412 04:25 PM, 17 Aug 2018
    Пока нет кэша запросов - придётся на своей стороне.
  • были конечно, если руки дойдут то опубликую how-to
  • https://t.me/clickhouse_ru
    @166654608 #62414 09:26 PM, 17 Aug 2018
    Joined.
  • @creadone #62415 10:20 PM, 17 Aug 2018
    Подскажите, пожалуйста:
    1. Лучше мощная машина или несколько средних нод для кластера?
    2. Если лучше ноды, то можно ли без даунтайма докинуть еще нод в существующий кластер?
    3. Увеличивается ли линейно скорость выполнения запроса с количеством нод пусть и со снижением производительности до полной синхронизации? (Можно ли просчитать стоимость железа исходя из объема данных и требуемых RPS).
    4. Апгрейд на минорную версию сложная задача по сравнению с постгресом?
    5. Есть ли готовые инструменты бэкапа или достаточно стянуть data и metadata?
    6. Можно ли развернуть сначала в простом варианте без кафки и реплик и по мере необходимости докидывать ресурсы, либо лучше сразу организовать кластер?
  • @mrmnightt #62416 11:50 PM, 17 Aug 2018
    1. Несколько средних лучше (быстрее), чем одна жирная, как правило.
    2. Можно, перечитает на лету
    3. Зависит от запроса, но за то же время в n раз данных параллельно считывается с диска больше, но есть накладки на получение их на мержащей ноде и на процессе мержа результата
    4. Не пробовали даунгрейдить
    5. Про готовое не слышал, есть варианты с FREEZE PARTITION, почитайте в доке
    6. Не кафки, а зукипера, наверное, а вообще вам решать насколько доступны должны быть данные, если вы можете себе позволить восстанавливаться n времени из бэкапа/tsv/чего угодно, то можно и без реплик=) Кстати, кластер -- это не обязательно конфигурация с репликацией, можно просто несколько шардов и без нее, и зукипер не нужен
  • @creadone ↶ Reply to #62416 #62417 11:58 PM, 17 Aug 2018
    Спасибо!
  • 18 August 2018 (31 messages)
  • https://t.me/clickhouse_ru
    Не увидел там в списке компаний Сми2 которые используют КХ :) может плохо искал
  • https://t.me/clickhouse_ru
    @fewald #62419 11:23 AM, 18 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    @kshvakov #62420 12:00 PM, 18 Aug 2018
    А еще ClickHouse используют в xHamster :)
  • https://t.me/clickhouse_ru
    @dmks6 #62421 12:06 PM, 18 Aug 2018
    И ща все сделают вид что воооооообще никогда о таких не слышали
  • https://t.me/clickhouse_ru
    @calculating_infinity #62422 02:25 PM, 18 Aug 2018
    добрый день,
    ситуация - есть сотни дампов из postgres, по несколько гигабайт каждый. каков наиболее эффективный способ залить это в КХ?
    По всей видимости эти дампы придется первоначально залить в postgres. Есть ли возможность прямого импорта данных из постгреса или придется промежуточно выгружать данные на диск в tsv?
  • https://t.me/clickhouse_ru
    емнип, в доке, где описаны тестовые наборы данных, есть справка как конвертить postgres дампы в KH
  • https://t.me/clickhouse_ru
    @notmaxx #62424 02:58 PM, 18 Aug 2018
    Добрый день, мне надо сделать SELECT DISTINCT по строке (примерно 1-5% записей дублируются остальные разные) чтоб из дубликатов выбрать последний, если я заведу ее в PK это сильно поможет? (есть дргугие условия SLECT'а которые уже в PK)
  • https://t.me/clickhouse_ru
    спасибо, доки смотрел, но не догадался посмотреть в тестовых наборах)
  • https://t.me/clickhouse_ru
    если речь про https://clickhouse.yandex/docs/ru/getting_started/example_datasets/nyc_taxi/#_1
    то там перенос данных из pg в кх осуществляется через экспорт данных из pg в tsv на диск
    при этом, правда, упомянуто что "Импорт данных напрямую из Postgres также возможен с использованием COPY ... TO PROGRAM."
  • https://t.me/clickhouse_ru
    тут уж я пас, просто вспомнил момент из доки
  • https://t.me/clickhouse_ru
    @calculating_infinity #62428 03:27 PM, 18 Aug 2018
    но и это уже помогло, спасибо
    буду читать про copy ... to program
  • https://t.me/clickhouse_ru
    Ну я к тому что ребята все таки хттп веб клиент сделали и пилят пхп клиент, жаль было бы их не упомянуть , ну и плюс они одни из самых первых заявили о крутизне КХ после внедрения :)
  • https://t.me/clickhouse_ru
    @notmaxx ↶ Reply to #62429 #62430 04:22 PM, 18 Aug 2018
    А где можно почитать?
  • https://t.me/clickhouse_ru
    @baltazorbest #62431 04:22 PM, 18 Aug 2018
    На тему?
  • https://t.me/clickhouse_ru
    @baltazorbest #62432 04:22 PM, 18 Aug 2018
    Если веб клиент то это Tabix
  • https://t.me/clickhouse_ru
    @notmaxx #62433 04:22 PM, 18 Aug 2018
    А, ок
  • https://t.me/clickhouse_ru
    @baltazorbest #62434 04:22 PM, 18 Aug 2018
    Если пхп клиент то это php-clickhouse
  • https://t.me/clickhouse_ru
    @baltazorbest #62435 04:23 PM, 18 Aug 2018
    А если о внедрении нужно найти видео выступление
  • https://t.me/clickhouse_ru
    @baltazorbest #62436 04:23 PM, 18 Aug 2018
    Сейчас попробую найти
  • https://t.me/clickhouse_ru
    @notmaxx ↶ Reply to #62435 #62437 04:23 PM, 18 Aug 2018
    Да вот это
  • https://t.me/clickhouse_ru
    @baltazorbest #62438 04:24 PM, 18 Aug 2018
    Как запустить ClickHouse своими силами и выиграть джекпот
    https://habr.com/post/314558/
    Как запустить ClickHouse своими силами и выиграть джекпот

    Мы решили описать простой и проверенный путь для тех, кто хочет внедрить аналитическую СУБД ClickHouse своими силами или просто испробовать ClickHouse на...

  • https://t.me/clickhouse_ru
    @baltazorbest #62439 04:24 PM, 18 Aug 2018
    Вот
  • https://t.me/clickhouse_ru
    @baltazorbest #62440 04:25 PM, 18 Aug 2018
    Видео пока не нашел (
  • https://t.me/clickhouse_ru
    @notmaxx ↶ Reply to #62438 #62441 04:28 PM, 18 Aug 2018
    Спасибо, это читал
  • https://t.me/clickhouse_ru
    @notmaxx #62442 04:32 PM, 18 Aug 2018
    Скажите, есть набор записей, одно поле совпадает - уникальный ID группы, нужно брать последнее значение определенного поля в группе по времени
  • https://t.me/clickhouse_ru
    @notmaxx #62443 04:33 PM, 18 Aug 2018
    Это решается только через GROUP by uniqID ?
  • https://t.me/clickhouse_ru
    @notmaxx #62444 04:33 PM, 18 Aug 2018
    Может есть хитрая ф-ция в CH которая все круто сделает?
  • https://t.me/clickhouse_ru
    @notmaxx #62445 04:37 PM, 18 Aug 2018
    Всего групп - сотни миллионов и стремится к бесконечности, количество повторений в группе - десяток
  • https://t.me/clickhouse_ru
    @jamert ↶ Reply to #62442 #62446 04:51 PM, 18 Aug 2018
    https://clickhouse.yandex/docs/ru/query_language/select/#limit-n-by
    если вам нужна последняя по времени запись со всеми столбцами целиком (GROUP BY не нужен, но нужно будет сортировать)

    https://clickhouse.yandex/docs/ru/query_language/agg_functions/reference/#anylastx
    если вам нужно обработать только *одно* поле (тогда нужно будет делать GROUP BY uniqID)
  • https://t.me/clickhouse_ru
    @notmaxx ↶ Reply to #62446 #62447 04:54 PM, 18 Aug 2018
    Спасибо буду читать
  • @134763391 #62448 05:05 PM, 18 Aug 2018
    Joined.
  • 19 August 2018 (35 messages)
  • https://t.me/clickhouse_ru
    @Har01d #62449 02:25 AM, 19 Aug 2018
    Привет! Никто не замечал, что начиная где-то с версии 18.10.3 CollapsingMergeTree начал схлопывать записи совершенно рандомно? На параллельном необновлённом сервере с 18.6.0 с такими же данными такого нет. Таблица CollapsingMergeTree (date1, (string2, int3, int4), 8192, int5sign) — такое впечатление, что стал склеивать просто по string2 игнорируя всё остальное на свете.
  • https://t.me/clickhouse_ru
    @Har01d #62450 02:28 AM, 19 Aug 2018
    В чейнджлоге только одно изменение про этот движок “поддежка пустых кусков после мержей в движках Summing, Collapsing and VersionedCollapsing”
  • В 18.10.3 такое не меняли, поэтому нужно больше подробностей для разбирательств.
  • Проверил на одном из серверов, где версия 18.10.3 и CollapsingMergeTree с составным ключом - нет заметной разницы в количестве строк в сутки после выкладки.
  • https://t.me/clickhouse_ru
    @Har01d #62453 04:11 AM, 19 Aug 2018
    У нас после обновления где-то в районе версии 1.1.54390 Кликхаус падать с сегфолтами типа
    2018.08.14 03:50:29.451454 [ 223631 ] <Error> BaseDaemon: ########################################
    2018.08.14 03:50:29.451482 [ 223631 ] <Error> BaseDaemon: (from thread 223630) Received signal Segmentation fault (11). где-то раз в несколько дней, поэтому начали обновлять всё время до последних версий с каждым релизом, чтобы посмотреть — может пропадёт сегфолт.

    Баг с CollapsingMergeTree появился как раз в районе 13-го числа, когда вышла 18.10, затрагивает примерно 0.5% вставки. При вставки записи в составной ключ второй частью входит совершенно новый числовой id, но склеивается он почему-то с очень старыми записями (где понятное дело другой id).

    Сейчас откатились на 18.6, смотрим.
  • https://t.me/clickhouse_ru
    @Har01d #62454 04:15 AM, 19 Aug 2018
    Пока чистили таблицы от этих кривых мёрджей (у нас можно заново данные получить из другой БД) методом INSERT INTO … SELECT * (битые из другой БД, нормальные так) — в логе появилась пара ошибок типа число строк со знаком “1” отличается больше чем на 1 от числа строк со знаком “-1”
  • https://t.me/clickhouse_ru
    @Har01d #62455 04:16 AM, 19 Aug 2018
    По сегфолту кстати целиком могу лог выложить
  • Интересует стек трейс, который чуть ниже в логе.
  • https://t.me/clickhouse_ru
    @Har01d #62465 04:51 AM, 19 Aug 2018
    2018.08.14 03:50:29.451454 [ 223631 ] <Error> BaseDaemon: ########################################
    2018.08.14 03:50:29.451482 [ 223631 ] <Error> BaseDaemon: (from thread 223630) Received signal Segmentation fault (11).
    2018.08.14 03:50:29.451488 [ 223631 ] <Error> BaseDaemon: Address: 0x50d8
    2018.08.14 03:50:29.451492 [ 223631 ] <Error> BaseDaemon: Access: write.
    2018.08.14 03:50:29.451498 [ 223631 ] <Error> BaseDaemon: Address not mapped to object.
    2018.08.14 03:50:29.481747 [ 223631 ] <Error> BaseDaemon: 0. [0xbb070008]
    2018.08.14 03:50:29.481783 [ 223631 ] <Error> BaseDaemon: 1. /usr/bin/clickhouse-server(DB::MemoryBlockInputStream::readImpl()+0x836) [0x4faa646]
    2018.08.14 03:50:29.481795 [ 223631 ] <Error> BaseDaemon: 2. /usr/bin/clickhouse-server(DB::IProfilingBlockInputStream::read()+0x25a) [0x4768cfa]
    2018.08.14 03:50:29.481805 [ 223631 ] <Error> BaseDaemon: 3. /usr/bin/clickhouse-server(DB::FilterBlockInputStream::readImpl()+0xa9) [0x51cfba9]
    2018.08.14 03:50:29.481816 [ 223631 ] <Error> BaseDaemon: 4. /usr/bin/clickhouse-server(DB::IProfilingBlockInputStream::read()+0x25a) [0x4768cfa]
    2018.08.14 03:50:29.481826 [ 223631 ] <Error> BaseDaemon: 5. /usr/bin/clickhouse-server(DB::ExpressionBlockInputStream::readImpl()+0x2e) [0x51cefde]
    2018.08.14 03:50:29.481836 [ 223631 ] <Error> BaseDaemon: 6. /usr/bin/clickhouse-server(DB::IProfilingBlockInputStream::read()+0x25a) [0x4768cfa]
    2018.08.14 03:50:29.481846 [ 223631 ] <Error> BaseDaemon: 7. /usr/bin/clickhouse-server(DB::PartialSortingBlockInputStream::readImpl()+0x2e) [0x520a7ce]
    2018.08.14 03:50:29.481856 [ 223631 ] <Error> BaseDaemon: 8. /usr/bin/clickhouse-server(DB::IProfilingBlockInputStream::read()+0x25a) [0x4768cfa]
    2018.08.14 03:50:29.481877 [ 223631 ] <Error> BaseDaemon: 9. /usr/bin/clickhouse-server(DB::ParallelInputsProcessor<DB::UnionBlockInputStream<(DB::StreamUnionMode)0>::Handler, (DB::StreamUnionMode)0>::l
    oop(unsigned long)+0x125) [0x4e81bc5]
    2018.08.14 03:50:29.481895 [ 223631 ] <Error> BaseDaemon: 10. /usr/bin/clickhouse-server(DB::ParallelInputsProcessor<DB::UnionBlockInputStream<(DB::StreamUnionMode)0>::Handler, (DB::StreamUnionMode)0>::
    thread(MemoryTracker*, unsigned long)+0x219) [0x4e82479]
    2018.08.14 03:50:29.481905 [ 223631 ] <Error> BaseDaemon: 11. /usr/bin/clickhouse-server() [0x938cc0f]
    2018.08.14 03:50:29.481915 [ 223631 ] <Error> BaseDaemon: 12. /lib/x86_64-linux-gnu/libpthread.so.0(+0x7494) [0x7f8cfe0d4494]
    2018.08.14 03:50:29.481937 [ 223631 ] <Error> BaseDaemon: ########################################
    2018.08.14 03:50:29.481946 [ 223631 ] <Error> BaseDaemon: (from thread 223632) Received signal Segmentation fault (11).
    2018.08.14 03:50:29.481953 [ 223631 ] <Error> BaseDaemon: Address: 0x30730
    2018.08.14 03:50:29.481967 [ 223631 ] <Error> BaseDaemon: Access: read.
    2018.08.14 03:50:29.481974 [ 223631 ] <Error> BaseDaemon: Address not mapped to object.
    2018.08.14 03:50:29.505355 [ 223631 ] <Error> BaseDaemon: 0. [0xa690b002]
    2018.08.14 03:50:29.505364 [ 223631 ] <Error> BaseDaemon: 1. /usr/bin/clickhouse-server(DB::MemoryBlockInputStream::readImpl()+0x836) [0x4faa646]
    2018.08.14 03:50:29.505370 [ 223631 ] <Error> BaseDaemon: 2. /usr/bin/clickhouse-server(DB::IProfilingBlockInputStream::read()+0x25a) [0x4768cfa]
    2018.08.14 03:50:29.505376 [ 223631 ] <Error> BaseDaemon: 3. /usr/bin/clickhouse-server(DB::FilterBlockInputStream::readImpl()+0xa9) [0x51cfba9]
    2018.08.14 03:50:29.505381 [ 223631 ] <Error> BaseDaemon: 4. /usr/bin/clickhouse-server(DB::IProfilingBlockInputStream::read()+0x25a) [0x4768cfa]
    2018.08.14 03:50:29.505386 [ 223631 ] <Error> BaseDaemon: 5. /usr/bin/clickhouse-server(DB::ExpressionBlockInputStream::readImpl()+0x2e) [0x51cefde]
    2018.08.14 03:50:29.505392 [ 223631 ] <Error> BaseDaemon: 6. /usr/bin/clickhouse-server(DB::IProfilingBlockInputStream::read()+0x25a) [0x4768cfa]
    2018.08.14 03:50:29.505397 [ 223631 ] <Error> BaseDaemon: 7. /usr/bin/clickhouse-server(DB::PartialSortingBlockInputStream::readImpl()+0x2e) [0x520a7ce]
    2018.08.14 03:50:29.505402 [ 223631 ] <Error> BaseDaemon: 8. /usr/bin/clickhouse-server(DB::IProfiling
  • https://t.me/clickhouse_ru
    @Har01d #62466 04:51 AM, 19 Aug 2018
    BlockInputStream::read()+0x25a) [0x4768cfa]
    2018.08.14 03:50:29.505410 [ 223631 ] <Error> BaseDaemon: 9. /usr/bin/clickhouse-server(DB::ParallelInputsProcessor<DB::UnionBlockInputStream<(DB::StreamUnionMode)0>::Handler, (DB::StreamUnionMode)0>::loop(unsigned long)+0x125) [0x4e81bc5]
    2018.08.14 03:50:29.505418 [ 223631 ] <Error> BaseDaemon: 10. /usr/bin/clickhouse-server(DB::ParallelInputsProcessor<DB::UnionBlockInputStream<(DB::StreamUnionMode)0>::Handler, (DB::StreamUnionMode)0>::thread(MemoryTracker*, unsigned long)+0x219) [0x4e82479]
    2018.08.14 03:50:29.505422 [ 223631 ] <Error> BaseDaemon: 11. /usr/bin/clickhouse-server() [0x938cc0f]
    2018.08.14 03:50:29.505427 [ 223631 ] <Error> BaseDaemon: 12. /lib/x86_64-linux-gnu/libpthread.so.0(+0x7494) [0x7f8cfe0d4494]
    2018.08.14 03:50:29.505433 [ 223631 ] <Error> BaseDaemon: ########################################
    2018.08.14 03:50:29.505439 [ 223631 ] <Error> BaseDaemon: (from thread 223633) Received signal Segmentation fault (11).
    2018.08.14 03:50:29.505443 [ 223631 ] <Error> BaseDaemon: Address: 0x50d7
    2018.08.14 03:50:29.505447 [ 223631 ] <Error> BaseDaemon: Access: write.
    2018.08.14 03:50:29.505451 [ 223631 ] <Error> BaseDaemon: Address not mapped to object.
    2018.08.14 03:50:29.528330 [ 223631 ] <Error> BaseDaemon: 0. [0x5210903f]
    2018.08.14 03:50:29.528338 [ 223631 ] <Error> BaseDaemon: 1. /usr/bin/clickhouse-server(DB::MemoryBlockInputStream::readImpl()+0x836) [0x4faa646]
    2018.08.14 03:50:29.528343 [ 223631 ] <Error> BaseDaemon: 2. /usr/bin/clickhouse-server(DB::IProfilingBlockInputStream::read()+0x25a) [0x4768cfa]
    2018.08.14 03:50:29.528348 [ 223631 ] <Error> BaseDaemon: 3. /usr/bin/clickhouse-server(DB::FilterBlockInputStream::readImpl()+0xa9) [0x51cfba9]
    2018.08.14 03:50:29.528353 [ 223631 ] <Error> BaseDaemon: 4. /usr/bin/clickhouse-server(DB::IProfilingBlockInputStream::read()+0x25a) [0x4768cfa]
    2018.08.14 03:50:29.528358 [ 223631 ] <Error> BaseDaemon: 5. /usr/bin/clickhouse-server(DB::ExpressionBlockInputStream::readImpl()+0x2e) [0x51cefde]
    2018.08.14 03:50:29.528364 [ 223631 ] <Error> BaseDaemon: 6. /usr/bin/clickhouse-server(DB::IProfilingBlockInputStream::read()+0x25a) [0x4768cfa]
    2018.08.14 03:50:29.528369 [ 223631 ] <Error> BaseDaemon: 7. /usr/bin/clickhouse-server(DB::PartialSortingBlockInputStream::readImpl()+0x2e) [0x520a7ce]
    2018.08.14 03:50:29.528374 [ 223631 ] <Error> BaseDaemon: 8. /usr/bin/clickhouse-server(DB::IProfilingBlockInputStream::read()+0x25a) [0x4768cfa]
    2018.08.14 03:50:29.528386 [ 223631 ] <Error> BaseDaemon: 9. /usr/bin/clickhouse-server(DB::ParallelInputsProcessor<DB::UnionBlockInputStream<(DB::StreamUnionMode)0>::Handler, (DB::StreamUnionMode)0>::loop(unsigned long)+0x125) [0x4e81bc5]
    2018.08.14 03:50:29.528396 [ 223631 ] <Error> BaseDaemon: 10. /usr/bin/clickhouse-server(DB::ParallelInputsProcessor<DB::UnionBlockInputStream<(DB::StreamUnionMode)0>::Handler, (DB::StreamUnionMode)0>::thread(MemoryTracker*, unsigned long)+0x219) [0x4e82479]
    2018.08.14 03:50:29.528402 [ 223631 ] <Error> BaseDaemon: 11. /usr/bin/clickhouse-server() [0x938cc0f]
    2018.08.14 03:50:29.528406 [ 223631 ] <Error> BaseDaemon: 12. /lib/x86_64-linux-gnu/libpthread.so.0(+0x7494) [0x7f8cfe0d4494]
    2018.08.14 03:50:29.528412 [ 223631 ] <Error> BaseDaemon: ########################################
    2018.08.14 03:50:29.528418 [ 223631 ] <Error> BaseDaemon: (from thread 205) Received signal Segmentation fault (11).
    2018.08.14 03:50:29.528422 [ 223631 ] <Error> BaseDaemon: Address: 0x1
    2018.08.14 03:50:29.528426 [ 223631 ] <Error> BaseDaemon: Access: read.
    2018.08.14 03:50:29.528430 [ 223631 ] <Error> BaseDaemon: Address not mapped to object.
    2018.08.14 03:50:29.563819 [ 223631 ] <Error> BaseDaemon: 0. /usr/bin/clickhouse-server(tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)+0x11b) [0x5a698eb]
    2018.08.14 03:50:29.563827 [ 223631 ] <Error> BaseDaemon: 1. /usr/bin/clickhouse-server(tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)+0x1c) [0x5a6998c]
    2018.08.14 03:50:29.563833 [ 223631 ] <Error> Ba
  • https://t.me/clickhouse_ru
    @Har01d #62467 04:51 AM, 19 Aug 2018
    seDaemon: 2. /usr/bin/clickhouse-server(tc_deletearray+0x369) [0x9406529]
    2018.08.14 03:50:29.563838 [ 223631 ] <Error> BaseDaemon: 3. /usr/bin/clickhouse-server(DB::StorageMemory::drop()+0x1d1) [0x4fa6391]
    2018.08.14 03:50:29.563850 [ 223631 ] <Error> BaseDaemon: 4. /usr/bin/clickhouse-server(DB::InterpreterDropQuery::executeToTable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, DB::ASTDropQuery::Kind, bool, bool)+0x1102) [0x4e5ef02]
    2018.08.14 03:50:29.563856 [ 223631 ] <Error> BaseDaemon: 5. /usr/bin/clickhouse-server(DB::InterpreterDropQuery::execute()+0x345) [0x4e61db5]
    2018.08.14 03:50:29.563861 [ 223631 ] <Error> BaseDaemon: 6. /usr/bin/clickhouse-server() [0x4ef181b]
    2018.08.14 03:50:29.563874 [ 223631 ] <Error> BaseDaemon: 7. /usr/bin/clickhouse-server(DB::executeQuery(DB::ReadBuffer&, DB::WriteBuffer&, bool, DB::Context&, std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>)+0x116) [0x4ef29c6]
    2018.08.14 03:50:29.563881 [ 223631 ] <Error> BaseDaemon: 8. /usr/bin/clickhouse-server(DB::HTTPHandler::processQuery(Poco::Net::HTTPServerRequest&, HTMLForm&, Poco::Net::HTTPServerResponse&, DB::HTTPHandler::Output&)+0x3147) [0x2dd2a37]
    2018.08.14 03:50:29.563887 [ 223631 ] <Error> BaseDaemon: 9. /usr/bin/clickhouse-server(DB::HTTPHandler::handleRequest(Poco::Net::HTTPServerRequest&, Poco::Net::HTTPServerResponse&)+0x248) [0x2dd4b48]
    2018.08.14 03:50:29.563893 [ 223631 ] <Error> BaseDaemon: 10. /usr/bin/clickhouse-server(Poco::Net::HTTPServerConnection::run()+0x332) [0x58cce02]
    2018.08.14 03:50:29.563898 [ 223631 ] <Error> BaseDaemon: 11. /usr/bin/clickhouse-server(Poco::Net::TCPServerConnection::start()+0xf) [0x58c56af]
    2018.08.14 03:50:29.563903 [ 223631 ] <Error> BaseDaemon: 12. /usr/bin/clickhouse-server(Poco::Net::TCPServerDispatcher::run()+0x16a) [0x58c5a8a]
    2018.08.14 03:50:29.563909 [ 223631 ] <Error> BaseDaemon: 13. /usr/bin/clickhouse-server(Poco::PooledThread::run()+0x77) [0x5966e97]
    2018.08.14 03:50:29.563915 [ 223631 ] <Error> BaseDaemon: 14. /usr/bin/clickhouse-server(Poco::ThreadImpl::runnableEntry(void*)+0x38) [0x5962d58]
    2018.08.14 03:50:29.563919 [ 223631 ] <Error> BaseDaemon: 15. /usr/bin/clickhouse-server() [0x938cc0f]
    2018.08.14 03:50:29.563924 [ 223631 ] <Error> BaseDaemon: 16. /lib/x86_64-linux-gnu/libpthread.so.0(+0x7494) [0x7f8cfe0d4494]
    2018.08.14 03:50:29.563936 [ 223631 ] <Error> BaseDaemon: ########################################
    2018.08.14 03:50:29.563942 [ 223631 ] <Error> BaseDaemon: (from thread 223634) Received signal Segmentation fault (11).
    2018.08.14 03:50:29.563947 [ 223631 ] <Error> BaseDaemon: Address: 0x2db88f9
    2018.08.14 03:50:29.563957 [ 223631 ] <Error> BaseDaemon: Access: write.
    2018.08.14 03:50:29.563961 [ 223631 ] <Error> BaseDaemon: Attempted access has violated the permissions assigned to the memory area.
    2018.08.14 03:50:29.563974 [ 223631 ] <Error> BaseDaemon: ########################################
    2018.08.14 03:50:29.563978 [ 223631 ] <Error> BaseDaemon: (from thread 223635) Received signal Illegal instruction (4).
    2018.08.14 03:50:29.563983 [ 223631 ] <Error> BaseDaemon: Illegal operand.
    2018.08.14 03:50:29.586460 [ 223631 ] <Error> BaseDaemon: 0. [0x74511000]
    2018.08.14 03:50:29.586468 [ 223631 ] <Error> BaseDaemon: 1. /usr/bin/clickhouse-server(DB::MemoryBlockInputStream::readImpl()+0x836) [0x4faa646]
    2018.08.14 03:50:29.586473 [ 223631 ] <Error> BaseDaemon: 2. /usr/bin/clickhouse-server(DB::IProfilingBlockInputStream::read()+0x25a) [0x4768cfa]
    2018.08.14 03:50:29.586478 [ 223631 ] <Error> BaseDaemon: 3. /usr/bin/clickhouse-server(DB::FilterBlockInputStream::readImpl()+0xa9) [0x51cfba9]
    2018.08.14 03:50:29.586483 [ 223631 ] <Error> BaseDaemon: 4. /usr/bin/clickhouse-server(DB::IProfilingBlockInputStream::read()+0x25a) [0x4768cfa]
    2018.08.14 03:50:29.586488 [ 223631 ] <Error> BaseDaemon: 5. /usr/bin/clickhouse-server(DB::ExpressionBlockInputStream::readImpl()+0x2e) [0x51cefde]
    2018.08.14 03:50:2
  • https://t.me/clickhouse_ru
    @Har01d #62468 04:51 AM, 19 Aug 2018
    9.586493 [ 223631 ] <Error> BaseDaemon: 6. /usr/bin/clickhouse-server(DB::IProfilingBlockInputStream::read()+0x25a) [0x4768cfa]
    2018.08.14 03:50:29.586498 [ 223631 ] <Error> BaseDaemon: 7. /usr/bin/clickhouse-server(DB::PartialSortingBlockInputStream::readImpl()+0x2e) [0x520a7ce]
    2018.08.14 03:50:29.586504 [ 223631 ] <Error> BaseDaemon: 8. /usr/bin/clickhouse-server(DB::IProfilingBlockInputStream::read()+0x25a) [0x4768cfa]
    2018.08.14 03:50:29.586511 [ 223631 ] <Error> BaseDaemon: 9. /usr/bin/clickhouse-server(DB::ParallelInputsProcessor<DB::UnionBlockInputStream<(DB::StreamUnionMode)0>::Handler, (DB::StreamUnionMode)0>::loop(unsigned long)+0x125) [0x4e81bc5]
    2018.08.14 03:50:29.586519 [ 223631 ] <Error> BaseDaemon: 10. /usr/bin/clickhouse-server(DB::ParallelInputsProcessor<DB::UnionBlockInputStream<(DB::StreamUnionMode)0>::Handler, (DB::StreamUnionMode)0>::thread(MemoryTracker*, unsigned long)+0x219) [0x4e82479]
    2018.08.14 03:50:29.586523 [ 223631 ] <Error> BaseDaemon: 11. /usr/bin/clickhouse-server() [0x938cc0f]
    2018.08.14 03:50:29.586528 [ 223631 ] <Error> BaseDaemon: 12. /lib/x86_64-linux-gnu/libpthread.so.0(+0x7494) [0x7f8cfe0d4494]
  • https://t.me/clickhouse_ru
    @Har01d #62469 04:51 AM, 19 Aug 2018
  • https://t.me/clickhouse_ru
    @Har01d #62470 04:51 AM, 19 Aug 2018
    Файлом если удобнее, иначе в несколько сообщений бьёт
  • По стек трейсу на первый взгляд непонятно, в чём проблема. Надо обсудить в личке, как отладить.
  • @238773844 #62472 07:57 AM, 19 Aug 2018
    Добрый день, подскажите пожалуйста как оптимальнее вывести nested со структурой name/ value?? Чтобы в выводе был формат 1,1,1,1,1,[aaa:bbb,ccc:ddd], где aaa name bbb value
  • @238773844 #62473 07:57 AM, 19 Aug 2018
    1,1,1,1,1 это значения из родительской таблицы
  • @238773844 #62474 07:58 AM, 19 Aug 2018
    Ccc - name, ddd - value
  • https://t.me/clickhouse_ru
    нашел видео сегодня: https://www.youtube.com/watch?v=tf38TPvwjJ4&t=5s
    Александр Зайцев — Переезжаем на Yandex ClickHouse

    Подробнее о докладе: http://www.highload.ru/2016/abstracts/2297.html Подписаться на канал: https://goo.gl/EjIehg Сайт: https://habrahabr.ru Социальные сети: ...

  • Да, нужно использовать функцию argMax вместе с group by. Функцию anyLast использовать не советую, порядок строк в группах может быть недетерминированным.
  • @vladislavadv #62477 11:42 AM, 19 Aug 2018
    Всем привет.

    Ищу разработчика, который сможет реализовать и запулить(и что бы приняли) функцию аналогичную функции lag в oracle.

    Мы когда-то делали на основе RunningDifferent, но не получилось реализовать для string, там как-то сложно получалось.
  • Это можно сделать при помощи функции arrayMap.
  • https://t.me/clickhouse_ru
    @notmaxx #62479 03:43 PM, 19 Aug 2018
    добрый вечер, а можно ли в SummingTree использовать дату в WHERE, счетчики будут корректно показываться (без FINAL но с sum() и group by user_id)?
  • https://t.me/clickhouse_ru
    @den_crane #62480 04:04 PM, 19 Aug 2018
    Да, можно. И where и prewhere.
  • Сделать можно и при помощи JOIN.
    Вопрос перфоманса и потребления оперативки.
    На табличке в несколько ТБ, arraymap\join заканчивается OOM.
  • https://t.me/clickhouse_ru
    @NickBlade #62482 05:55 PM, 19 Aug 2018
    Добрый вечер. Если честно так и не понял для чего нужен chproxy https://github.com/Vertamedia/chproxy

    Размазывает нагрузку на несколько нод кластера но все-равно через disturbed таблицу?
    GitHub - Vertamedia/chproxy: ClickHouse http proxy and load balancer

    ClickHouse http proxy and load balancer. Contribute to Vertamedia/chproxy development by creating an account on GitHub.

  • https://t.me/clickhouse_ru
    Добрый! Мы постарались описать основные преимущества использования здесь - https://github.com/Vertamedia/chproxy#chproxy
    GitHub - Vertamedia/chproxy: ClickHouse http proxy and load balancer

    ClickHouse http proxy and load balancer. Contribute to Vertamedia/chproxy development by creating an account on GitHub.

  • @faerics ↶ Reply to #62477 #62484 06:12 PM, 19 Aug 2018
    А так можно?
  • https://t.me/clickhouse_ru
    @hagen1778 #62485 06:14 PM, 19 Aug 2018
    Попробую кратко описать юзкейсы:
    - равномерно распределять вставки по шардам кластера без использования дистрибьютед таблицы. chproxy каждый раз выбирает следующий наименее загруженный "живой" шард (least-loaded + round-robin)
    - равномерно распределять нагрузки при чтении из кластера
    - кешировать ответы от КХ (отлично подходит для систем визуализации вроде Grafana)
    - лимитировать доступ к кластеру по пользователям или адресам
    - контролировать кол-во одновременно выполняющихся запросов и максимальное время их выполнения
    - избежать перегрузки кластера при аномальном повышении кол-ва запросов путем выстроения их в очередь
    - автоматическая выписка https сертификатов
  • В смысле?
    Я ищу разработчика за деньги, конечно же. Который сможет реализовать и довести задачу до пул реквеста. По деньгам не обижу. :)
  • https://t.me/clickhouse_ru
    Спасибо
  • https://t.me/clickhouse_ru
    @NickBlade #62488 06:17 PM, 19 Aug 2018
    в чем фишка не использовать дистрибьютед таблицы ?
  • https://t.me/clickhouse_ru
    с помощью них вы сможете одним запросом получить данные со всех шардов
  • https://t.me/clickhouse_ru
    @NickBlade #62490 06:19 PM, 19 Aug 2018
    это я понимаю, но почему chproxy избегает их использование для вставки данных?
  • https://t.me/clickhouse_ru
    @hagen1778 #62491 06:23 PM, 19 Aug 2018
    Так рекомендуется делать при больших объемах данных, чтобы избежать перегрузки ноды, на которой производится вставка. Т.е. вы можете так делать, но писать данные на конкретный шард - более оптимально
  • 20 August 2018 (210 messages)
  • Если об этом написано где-нибудь в таком месте, на которое можно сослаться из википедии (чат не подходит), то можно добавить :)
  • Добавил.
  • https://t.me/clickhouse_ru
    @metikovvadim #62495 05:49 AM, 20 Aug 2018
    Кто-то сталкивался с тем, что INSERT ... SELECT
    прочитывает примерно 30-40% исходной таблицы и вставляет около того, не выводя ошибок ?
  • Может быть какие-то лимиты срабатывают? Проверьте SELECT * FROM system.settings WHERE changed = 1
  • https://t.me/clickhouse_ru
    Да, есть измененные:
    │ max_query_size │ 10485760 │ 1 │
    │ use_uncompressed_cache │ 0 │ 1 │
    │ background_pool_size │ 50 │ 1 │ │
    │ background_schedule_pool_size │ 24 │ 1 │ │
    │ load_balancing │ random │ 1 │ │
    │ max_rows_to_read │ 600000000000 │ 1 │ │
    │ max_execution_time │ 60 │ 1 │ │
    │ timeout_overflow_mode │ break │ 1 │ │
    │ max_ast_elements │ 1000000 │ 1 │ │
    │ max_memory_usage │ 40000000000 │ 1 │
  • https://t.me/clickhouse_ru
    @metikovvadim #62498 06:08 AM, 20 Aug 2018
    что может ограничивать? max_query_size ?
  • @mfilimonov #62499 06:09 AM, 20 Aug 2018
    Думаю что timeout_overflow_mode + max_execution_time
  • @mfilimonov #62500 06:10 AM, 20 Aug 2018
    за минуту не успевает. И вместо throw ("брось исключение") включено break ("прерви без сообщения об ошибке")
  • @mfilimonov #62501 06:11 AM, 20 Aug 2018
    Ну или может быть max_rows_to_read
  • @mfilimonov #62502 06:11 AM, 20 Aug 2018
    Но тогда бы было исключение
  • https://t.me/clickhouse_ru
    @metikovvadim #62503 06:13 AM, 20 Aug 2018
    Ок, отключил бряк, поднял лимиты.
  • https://t.me/clickhouse_ru
    Спасибо огромное. Помогло.
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62493 #62505 07:32 AM, 20 Aug 2018
    Я уточню, может где и напишут ;)
  • https://t.me/clickhouse_ru
    @chipcoding #62506 07:52 AM, 20 Aug 2018
    Joined.
  • А это вам не подходит? https://stackoverflow.com/a/51873915/1555175
    Clickhouse running diff with grouping

    General Task A table consists of three columns (time, key, value). The task is to calculate a running difference for each key. So, from input --------------- | time | key | value | --------------...

  • @faerics ↶ Reply to #62507 #62508 08:23 AM, 20 Aug 2018
    Скоро там появится и решение, к которому я в итоге пришел.
    Вроде оно, да
  • https://t.me/clickhouse_ru
    @live_man_oleg #62509 09:04 AM, 20 Aug 2018
    ... в одном из видео, слышал что для КХ нужно минимум 10Г оперативки
    как задать минимальный лимит? в доках не нашел
  • https://t.me/clickhouse_ru
    @metikovvadim #62510 09:06 AM, 20 Aug 2018
    max_memory_usage
  • https://t.me/clickhouse_ru
    можно поточнее пожалуйста, в какой конфиг вписывается, или ссылку ?
  • https://t.me/clickhouse_ru
    @metikovvadim #62512 09:08 AM, 20 Aug 2018
    users.xml
    https://clickhouse.yandex/docs/en/operations/settings/query_complexity/#max_memory_usage_for_all_queries
    Restrictions on Query Complexity | ClickHouse Documentation

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

  • https://t.me/clickhouse_ru
    @live_man_oleg #62513 09:08 AM, 20 Aug 2018
    спасибо
  • @alexspektr #62514 09:42 AM, 20 Aug 2018
    Joined.
  • https://t.me/clickhouse_ru
    Вроде не строгое правило. Зависит от запросов, например. Я и на восьми поднимал, норм работало, пока тяжёлые SELECT'ы не подсунул, там начало кушать.
  • @faerics ↶ Reply to #62515 #62516 09:47 AM, 20 Aug 2018
    на четырёх норм может работать, всё зависит от задач, которые требуется решать, и объёмов данных, на которых нужно работать.
  • https://t.me/clickhouse_ru
    @metikovvadim #62517 09:48 AM, 20 Aug 2018
    На 8GB работает с декабря, все норм.
  • https://t.me/clickhouse_ru
    @ValarMorghuliis #62518 09:55 AM, 20 Aug 2018
    Всем привет! Как можно сгруппировать по хешу значения из таблицы, при этом оставив названия полей текущими? Например:

    SELECT
    client_id,
    any(category_id) as category_id,
    cityHash64(category_id) as category_id_hash,
    count() as cnt
    FROM db.table
    GROUP BY (client_id, category_id_hash);

    пишет что DB::Exception: Unknown identifier: any(category_id)

    и хотелось бы на выходе получить именно название category_id: (если изменить его, то все отрабатывает, к примеру: any(category_id) as _category_id)
  • Там скорее всего имелось ввиду, что в настройках по умолчанию стоит лимит в 10 гигов памяти. Я лично стенды поднимал на серверах с 2 гигами оперативы и все замечательно работало.
  • Промахнулся :) ответ выше ^^
  • https://t.me/clickhouse_ru
    @live_man_oleg #62521 10:02 AM, 20 Aug 2018
    с оперативкой разобрался, там написано, в доках написано что это максимальный вариант
    но в видео, почему-то было озвучено, что это минимальный лимит
  • https://t.me/clickhouse_ru
    @makrushin_evgenii #62522 10:06 AM, 20 Aug 2018
    Привет, не подскажете, как можно посмотреть запрос, использованный для создания таблицы?
  • https://t.me/clickhouse_ru
    show create table table_name
  • https://t.me/clickhouse_ru
    спасибо
  • https://t.me/clickhouse_ru
    @letfoolsdie #62526 10:24 AM, 20 Aug 2018
    Привет,
    Чтобы забирать данные из постгреса в КХ, обязательно ли настраивать конфигурации словаря и odbc.ini (как описано в https://clickhouse.yandex/docs/ru/query_language/dicts/external_dicts_dict_sources/#postgresql) или можно обойтись передачей всех параметров в connection string типа select * from odbc('UID=username;PWD=password;HOST=127.0.0.1;PORT=5432;DATABASE=my_db', 'table_name') ?
  • https://t.me/clickhouse_ru
    @Alesapin #62527 10:24 AM, 20 Aug 2018
    Можно передавать connection_string в функцию, настраивать не обязательно
  • https://t.me/clickhouse_ru
    @letfoolsdie #62528 10:25 AM, 20 Aug 2018
    спасибо
  • @NUR_naldoshkin #62529 10:28 AM, 20 Aug 2018
    всем привет
    имеется две таблицы размеров 38.25 GiB и 33.06 GiB
    вопрос сколько нужноопертивной памяти чтобы выполнить join по ним скажем по ID_user ?
    сейчас селект отказывается выполнятся ссылаясь на ограничение озу в 30 гигов
  • Если их полностью переджойнить, то думаю, что как минимум 60гиг. А размер в сжатом виде?
  • @NUR_naldoshkin #62531 10:30 AM, 20 Aug 2018
    это размер уже в сжатом виде
  • @faerics #62532 10:30 AM, 20 Aug 2018
    Если нужен полный джойн (т.e в результате все строки присутствуют), то обе таблицы должны влезть в озу (разумеется, только те колонки, которые нужны).
  • Тогда боюсь, что больше 60 гиг )
  • Кстати да
  • @pookieShmukie #62535 10:30 AM, 20 Aug 2018
    Про колонки забыл совсем
  • @NUR_naldoshkin #62536 10:31 AM, 20 Aug 2018
    нужен не full outer join а просто inner join
  • @faerics #62537 10:31 AM, 20 Aug 2018
    то есть это сумма несжатых размеров всех колонок, которые нужны + возможно какой-то оверхед.
  • ну это размер таблиц , который показывает селект
    --Размер таблиц
    SELECT table,
    formatReadableSize(sum(bytes)) as size,
    min(min_date) as min_date,
    max(max_date) as max_date
    FROM system.parts
    WHERE active
    GROUP BY table
  • @NUR_naldoshkin #62539 10:33 AM, 20 Aug 2018
    т.е в таблицах больше 30 млдр записей, а если делать join то около 50 млн
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62539 #62541 11:14 AM, 20 Aug 2018
    КХ должен материализовать левую часть джоина в памяти, вот в это очень легко воткнуться и пока не будет мерж-джоина эта проблема будет.
  • только левую?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62542 #62543 11:16 AM, 20 Aug 2018
    Правую, я руки перепутал )
  • @NUR_naldoshkin #62544 11:18 AM, 20 Aug 2018
    если в правой части будет вложенный селект который из таблицы выбирает только нужные нам по like значения и уже потом будет соединяет их с другой таблицей разница будет или нет? он всё равно должен будет материализовать всю праую таблицу целиком?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62544 #62545 11:20 AM, 20 Aug 2018
    Нет, он материализует результат выполнения запроса, на его размер можно влиять, но он независим от левой части что там напишете то и будет.
  • https://t.me/clickhouse_ru
    @kshvakov #62546 11:21 AM, 20 Aug 2018
    SELECT * FROM T JOIN T2 (SELECT * FROM TT LIMIT 5) USING(c) - не будет писать в память TT целиком, только 5 строк
  • https://t.me/clickhouse_ru
    @geebv #62547 11:24 AM, 20 Aug 2018
    Коллеги, привет
    От админа по поводу бекапов CH пришло
    бэкап кликхайса в процессе. но вообще как бэкапить шардированный кластер пока что вообще не понятно. инфу я находил тока как один сервер бэкапить
    Подскажите как бекапить шардированный кластер?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62547 #62548 11:24 AM, 20 Aug 2018
    Бекапить каждый шард )
  • https://t.me/clickhouse_ru
    @geebv #62549 11:25 AM, 20 Aug 2018
    Шарды будут не согласованы?
  • https://t.me/clickhouse_ru
    @kshvakov ↶ Reply to #62549 #62550 11:25 AM, 20 Aug 2018
    А они и так никак к друг другу не относятся
  • https://t.me/clickhouse_ru
    @geebv #62551 11:27 AM, 20 Aug 2018
    Получается да
  • https://t.me/clickhouse_ru
    @geebv #62552 11:27 AM, 20 Aug 2018
    Спасибо
  • https://t.me/clickhouse_ru
    @chubukov #62553 11:34 AM, 20 Aug 2018
    Привет! Как спросить из файла?
  • https://t.me/clickhouse_ru
  • https://t.me/clickhouse_ru
    @ytsemashko #62555 12:00 PM, 20 Aug 2018
    Добрый день. Я хочу странного: хочу использовать SummingMergeTree и при этом чтобы у меня оставались записи, в которых все суммируемые поля по нулям. Чтобы для историии: вот пришла метрика. вот были везде нулии. А не так, что нет метрики - и бог его знает: то ли были нули, то ли не пришла метркиа.

    Думаю, можно добавить какое-нибудь еще поле OloloCounter и ставить его в еденичку всегда. Нолики дже не много места будут занимать на диске в пожатом виде, да?
  • https://t.me/clickhouse_ru
    @ytsemashko #62556 12:01 PM, 20 Aug 2018
    или будут много занимать? Или чо им там вообще щанимать место-то на диске
  • https://t.me/clickhouse_ru
    @ytsemashko #62557 12:01 PM, 20 Aug 2018
    а может есть просто опция у движка?
  • @NUR_naldoshkin #62558 12:42 PM, 20 Aug 2018
    select count(distinctuser_id) from all_data
    таблица весит 35 гигов
    обьем озу 60 гигов но для КХ дали 30
    селект вываливается с ошибкой Code: 241, e.displayText() = DB::Exception: Memory limit (for query) exceeded: would use 28.03 GiB (attempt to allocate chunk of 2147483648 bytes), maximum: 27.94 GiB, e.what() = DB::Exception

    как это обойти?
  • @NUR_naldoshkin #62559 12:42 PM, 20 Aug 2018
    а если таблица до 300 гигов разрастется?
  • https://t.me/clickhouse_ru
    фильтровать, либо увеличивать доступный объем памяти
  • @faerics ↶ Reply to #62560 #62561 12:45 PM, 20 Aug 2018
    а распределённость может здесь помочь?
  • https://t.me/clickhouse_ru
    только для скорости фильтрации
  • @NUR_naldoshkin #62563 12:47 PM, 20 Aug 2018
    а как нибудь можно посмотреть размер гб колонки?
  • https://t.me/clickhouse_ru
    @athathot #62564 12:47 PM, 20 Aug 2018
    ну на файловой системе, например? не?
  • https://t.me/clickhouse_ru
    @athathot #62565 12:48 PM, 20 Aug 2018
    это просто файлы
  • https://t.me/clickhouse_ru
    установить max_bytes_before_external_sort, max_bytes_before_external_group_by ы 10ГБ?
  • @VladimirKoptev #62567 12:48 PM, 20 Aug 2018
    Всем привет. Подзапросы в мат.вьюхах разрешены? Ругается при вставке в table, что нет поля time_slot
    AS SELECT date, time_slot, _string_field as string_field, string_field_hash, events FROM (SELECT date, timeSlot(event_time) as time_slot, any(string_field) as _string_field, cityHash64(string_field) as string_field_hash, count() as events FROM table group by date,time_slot, string_field_hash)
  • https://t.me/clickhouse_ru
    @athathot #62568 12:49 PM, 20 Aug 2018
    я вижу, что ты пытаешься групировать по time_slot, а у тебя поле event_time
  • @faerics ↶ Reply to #62562 #62569 12:49 PM, 20 Aug 2018
    ну есть у меня таблица на 100gb, и памяти есть на одном сервере 50 и на втором 50. Могу я посчитать тогда строки в таблице, верно?
  • https://t.me/clickhouse_ru
    что значит "посчитать ... строки"? count - нет проблем :)
  • https://t.me/clickhouse_ru
    @athathot ↶ Reply to #62570 #62571 12:51 PM, 20 Aug 2018
    у него там distinct по не ключевому полю
  • @faerics ↶ Reply to #62558 #62572 12:51 PM, 20 Aug 2018
    вот такие проблемы бывают, их же вроде обсуждаем
  • @NUR_naldoshkin #62573 12:51 PM, 20 Aug 2018
    странности какие то
    select count(distinct user_id) from all_data - выдает ошибку
    а вот select count(*) from all_data - отрабатывается как так то?
  • @faerics ↶ Reply to #62571 #62574 12:52 PM, 20 Aug 2018
    ну, я имел в виду в тех условиях, да
  • https://t.me/clickhouse_ru
    @athathot ↶ Reply to #62573 #62575 12:52 PM, 20 Aug 2018
    тут все логично, если знать приниципы работы БД
  • https://t.me/clickhouse_ru
    @EvgenyVinogradov #62576 12:52 PM, 20 Aug 2018
    distinct user_id - есть uniq sort, поэтому много памяти кушает
  • https://t.me/clickhouse_ru
    @athathot #62577 12:52 PM, 20 Aug 2018
    ты хочешь сделать аналог TABLE FULL SCAN и посчитать все уникальные значения в таблицы (огромной)
  • https://t.me/clickhouse_ru
    @athathot #62578 12:53 PM, 20 Aug 2018
    а КХ в отличии от классических БД это все пытаетс я провернуть в памяти
  • так всё дело в том, что сам запрос отрабатывает ок. но если его засунуть в мат.вьюху, то при вставке в логи сыпятся ошибки.
  • https://t.me/clickhouse_ru
    @athathot ↶ Reply to #62579 #62580 12:54 PM, 20 Aug 2018
    попробуй в group by таки вставить toTimeLapse(....) вдруг прокатит?
  • https://t.me/clickhouse_ru
    @EvgenyVinogradov #62581 12:56 PM, 20 Aug 2018
    вышли show create table all_data?
  • чтобы этого избежать можно сделать ли два поля ключевыми?
    ENGINE = MergeTree PARTITION BY date order by (user_id,parner_user_id);
  • https://t.me/clickhouse_ru
    @athathot #62583 12:57 PM, 20 Aug 2018
    самое смешное, когда КХ начнет сортировать/группировать на диске, народ будет сюда приходить и писать, что у него кончилось место на диске :)
  • https://t.me/clickhouse_ru
    system.columns data_compressed_bytes data_uncompressed_bytes
    system.parts_columns по партам
  • https://t.me/clickhouse_ru
    @athathot ↶ Reply to #62582 #62585 12:58 PM, 20 Aug 2018
    ответ надо искать в архитектуре приложения, я не знаю, если честно. а что у Вас там первичный ключ?
    вероятно, Вам стоить сделать ключом какой-то там таймстамп, и считать за периоды, чтобы КХ не удивлялся.
  • https://t.me/clickhouse_ru
    @athathot #62586 12:58 PM, 20 Aug 2018
    я же не знаю ваших бихнес задач
  • @NUR_naldoshkin #62587 12:59 PM, 20 Aug 2018
    с технической точки так можно? и соотвесвенно по нему count будет шустрее ходить?
  • @faerics #62588 01:00 PM, 20 Aug 2018
    поле ключевое => данные по нему отсортированы => сортировать не надо
  • @NUR_naldoshkin #62589 01:01 PM, 20 Aug 2018
    да я это понял
  • https://t.me/clickhouse_ru
    @athathot #62590 01:01 PM, 20 Aug 2018
    только по-моему по сути нонсенс какой-то. подумайте, сколько возможный уникальных сочетаний (user_id,parner_user_id) будет? какой-то фиговый ключ, наверное
  • @NUR_naldoshkin #62591 01:02 PM, 20 Aug 2018
    ну таблица маппинг по сути
  • @NUR_naldoshkin #62592 01:02 PM, 20 Aug 2018
    хранит юзеров одной базы и другой, т.е. обьеденяет