
Alexey
09.04.2018
19:23:37
arraySort?
:) select arraySort([1, 5, 2, 9, 3, 8, 18, 4])
┌─arraySort([1, 2, 3, 4, 5, 8, 9, 18])─┐
│ [1,2,3,4,5,8,9,18] │
└──────────────────────────────────────┘
класс )) а в доке нема
еще такая есть
:) select arrayReverseSort([1, 5, 2, 9, 3, 8, 18, 4])
┌─arrayReverseSort([1, 5, 2, 9, 3, 8, 18, 4])─┐
│ [18,9,8,5,4,3,2,1] │
└─────────────────────────────────────────────┘

Alexsey
09.04.2018
19:27:06
а там нету сразу nDCG@K ?

Александр
09.04.2018
20:06:25
не ужели все так плохо? Вешаться на вставку ? Или и чтении в том числе ? Я пока столькнлся только с тем что место на диске выжирается, но это при нескольких тысячах инсертов в секунду
Я баловался до поры инсертами в сотню потоков. Выжимал хороший инсерт рейт, но как только стал писать чуточку больше (объем данных), то КХ стало плохо. Он действительно подвисал на фоновых мерджах. У меня на сервере крутится 100 процессов, которые обрабатывают данные и готовят к записи в КХ. Я просто пишу все это дело в кучу по разным файлам. Раз в минуту формирую список файлов, которые нужно вставить в КХ, перемещаю их в другую директорию, мерджу в один файл и вставляю. Максимальная задержка - 1 минута, что вполне себе ок., учитывая то, что это не вешает сервак даже на чтение, а api падало по таймаутам достаточно часто, несмотря на то, что у меня 4 шарда по 2 реплики.

Google

Александр
09.04.2018
20:08:07
еще такая есть
:) select arrayReverseSort([1, 5, 2, 9, 3, 8, 18, 4])
┌─arrayReverseSort([1, 5, 2, 9, 3, 8, 18, 4])─┐
│ [18,9,8,5,4,3,2,1] │
└─────────────────────────────────────────────┘
Можно сделать PR в гитхабе с исправленной документацией! :)


Sergei
09.04.2018
20:10:09
Я баловался до поры инсертами в сотню потоков. Выжимал хороший инсерт рейт, но как только стал писать чуточку больше (объем данных), то КХ стало плохо. Он действительно подвисал на фоновых мерджах. У меня на сервере крутится 100 процессов, которые обрабатывают данные и готовят к записи в КХ. Я просто пишу все это дело в кучу по разным файлам. Раз в минуту формирую список файлов, которые нужно вставить в КХ, перемещаю их в другую директорию, мерджу в один файл и вставляю. Максимальная задержка - 1 минута, что вполне себе ок., учитывая то, что это не вешает сервак даже на чтение, а api падало по таймаутам достаточно часто, несмотря на то, что у меня 4 шарда по 2 реплики.
Спасибо, а реплики с replicatedMergeTree или distributed ?

Александр
09.04.2018
20:10:44
Т.е. случайно одну из восьми машин выбираю и туда пишу

Sergei
09.04.2018
20:15:02

Wolf
09.04.2018
20:15:14

Sergei
09.04.2018
20:15:32

Александр
09.04.2018
20:15:40

Sergei
09.04.2018
20:17:48

Александр
09.04.2018
20:19:51
Ну, это если по одной строке писать ) я пишу в такие таблице не чаще чем 500 строк в минуту. Просто данных больше нет.

Wolf
09.04.2018
20:19:54

Google

Alexey
09.04.2018
20:20:47
ну там репликацией, в понимании этого слова, и не пахнет, просто данные дублируются и все. а тут тебе реплика и попорченные данные сама скачает, и не позволит дубли записать, и восстановится после сбоя, одни плюсы

Wolf
09.04.2018
20:21:11

Sergei
09.04.2018
20:21:53

Wolf
09.04.2018
20:22:05

Sergei
09.04.2018
20:24:36
Ок, буду настраивать replicated tree

Wolf
09.04.2018
20:26:29
Для админов

Alexsey
09.04.2018
21:32:08
sum(чего то) выдало NULL
чего это может быть
понятно - это так таббикс NaN читает

Slach
10.04.2018
05:06:17
а правильно ли я понимаю что
Common/ProfileEvents.h
эта статистика не хранится в system таблицах и может быть доступна только через <use_graphite>true</use_graphite> ?

Alex
10.04.2018
05:59:26

Slach
10.04.2018
06:13:54
В system.events доступна
SELECT * FROM system.events
не могу найти DuplicatedInsertBlocks со значнеием 0
в graphite выгружается
оно там появляется только есил репликация есть?

?
10.04.2018
07:29:33
а у нас sqrt есть, а sqr нету?

Konstantin
10.04.2018
07:54:10
ну так это не только у нас
но i * i должно вам помочь

?
10.04.2018
07:59:53
ну да, я и говорю – не нужна. там просто не i, а просто myVeryVeryLongNamedColumn поэтому и спросил )

Алексей
10.04.2018
08:00:32
а что-то типа POW нет разве?

?
10.04.2018
08:02:08
да, оно, спасибо

Google

Slach
10.04.2018
10:21:53
AsynchronousMetrics.MaxPartCountForPartition
а кто нибудь может точно объяснить что именно означает эта метрика?

Slava
10.04.2018
10:54:56
парни привет, вы наверно сталкивались с проблемой DB::Exception: Timeout exceeded: elapsed 5.000088625 seconds, когда запрос после 5 секунд валится, есть атрибут max_execution_time, который отвечает за это дело, но при прописывании в конфиге и ребуте после этого, значение в таблице settings остается тем же
может быть я что-то неправильно делаю
у вас были подобные проблемы?

Alexey
10.04.2018
10:56:58
ребут не нужен, подхватывается налету, прописывается в профиль в файле users.xml

Slava
10.04.2018
10:57:19

Alexey
10.04.2018
10:57:42
https://clickhouse.yandex/docs/ru/operations/settings/settings_profiles/

Slava
10.04.2018
11:01:26

Sergey
10.04.2018
12:13:21
Народ, подскажите, а есть ли в РФ компании, предоставляющие поддержку CH?

Kirill
10.04.2018
12:16:44

Sergey
10.04.2018
12:18:48
Они вроде в UK

Kirill
10.04.2018
12:19:21
Они вроде в UK
Они вполне себе и в России, вы можете связаться @alexanderzaitsev

Sergey
10.04.2018
12:20:00

Vladimir
10.04.2018
12:31:59
Привет! Кто нибудь использует коннект к КХ из node js?

Kirill
10.04.2018
12:38:16

Vladimir
10.04.2018
12:39:08

Kirill
10.04.2018
12:41:05
у нас в продакшене вот это https://github.com/apla/node-clickhouse
стабилен, проблем нет

Aloneibreak
10.04.2018
12:52:13
добрый день
подскажите пожалуйста какие допустимые значения для настройки
distributed_product_mode
в документации этого нет

Andrey
10.04.2018
13:38:18
Ачввпммрьодлтииттто

antuan
10.04.2018
13:47:00
робит-робит

Google

Nikolai
10.04.2018
13:51:06

Aloneibreak
10.04.2018
13:51:37

Nikolai
10.04.2018
13:54:47
Я не знаю, но есть вот такой кусок кода:
/// The setting for executing distributed subqueries inside IN or JOIN sections.
enum class DistributedProductMode
{
DENY = 0, /// Disable
LOCAL, /// Convert to local query
GLOBAL, /// Convert to global query
ALLOW /// Enable
};

Aloneibreak
10.04.2018
13:55:06
спасибо

Ievgen
10.04.2018
14:05:19
Мм, господа, подтвердите плиз, допустим есть шард, в нем к примеру 2 реплики, на которых при запуске были вывполнены правильные create table, затем на одной из реплик были выполнены какие либо alter, которые успешно отреплицировались, теперь я добавляю 3 реплику в шард, для того чтобы поднялась репликация я на новой реплике так же должен сказать create table, теперь вопрос схема таблицы должна быть такая же точно как на тех двух уже сущесвтующих репликах?

Дмитрий
10.04.2018
14:06:45
Да, с учетом примененого ALTER'а

Ievgen
10.04.2018
14:07:58
мы не можем залить на новую реплику некую промежуточную схему и затем при помощи alter довести ее до состояния остальных реплик в шарде, поскольлку это корректируюшие alter бутут в свою очередь реплицированы, что может привести к странным результатам (если таблица вообще создастся)
ясно, спасибо

Sergei
10.04.2018
14:15:13
Подскажите пожалуйста, почему может не проходить репликация в одном направление. Есть две таблица с репликациеями между ними, если писать в node1 , то данные в node2 появляються, Наборот - нет. Причем в system.replicas видно что queue_size увеличивается.
Тут http://collabedit.com/vpg4u по system_replicas результат селектов.

Дмитрий
10.04.2018
14:18:53
Проверьте доступность порта 9009 на node1 с node2

Sergei
10.04.2018
14:20:57
а вот с node1 на node2 не пашет

Kirill
10.04.2018
14:23:40
С node1 резолвится node2?

Sergei
10.04.2018
14:25:00

Kirill
10.04.2018
14:28:19

Дмитрий
10.04.2018
14:28:59
проверил, все ок
Я следовал вашему сообщению. Если верить логу что вы дали то проблемы с доступом как раз к node2, и данные не появляются в ней, так как очередь копится на первой. Посмотрите в настройки node2, возможно на ней просто закрыт порт, она слушает неправильный адрес, или прописано что-то плохое в https://clickhouse.yandex/docs/en/operations/server_settings/settings/#interserver_http_port

Sergei
10.04.2018
14:37:20

Nikita
10.04.2018
14:39:05

Google

Sergei
10.04.2018
15:04:19
а кто нить у себя в проде дедупликацию отключает для репликейтед таблиц ?

Kirill
10.04.2018
15:05:46
Там дедупликация на уровне блоков, чтоб она рабатола нужно постораться.

Sergei
10.04.2018
15:08:24
по дефолту 100 блоков, я возможно упрусь, так как планирую активно юзать ReplicatedAggregatingMergeTree

Kirill
10.04.2018
15:09:50
Вам для дедупликации нужно гарантировать что вы вставляете полностью идентичные блоки (тогда КХ поймет что это дубли)
Пример:
У нас есть демон который читает из кафки и сбрасывает блоки по таймеру или при определенном количестве строк в блоке. Если что-то пошло не так эти строки из буфера не удаляются и встявятся потом, в каком это будет порядке не понятно, как и количество строк которое мы сбросим. Поэтому у нас дедупликация работать не может
Но! У нас CollapsedMergeTree который по PK удалит дубликаты

Sergei
10.04.2018
15:15:03
ок, наверное действительно надо постараться что бы в проде попасть на дедупликацию

Michal
10.04.2018
15:42:45
Добрый вечер. Если в clickhouse-client вставить из буффера какой-нибудь длиннющий многострочный запрос - то фрагменты этого запроса (обычно на конце линий) волшебным и весьма неприятным образом теряются. Сначала грешил на screen/ssh но локально тоже самое. Кто-то сталкивался, или это у меня какой-то неправильный билд?

prll
10.04.2018
15:44:29
а если в какой-нибудь vim-mcedit вставлять то все норм ?

Viktor
10.04.2018
15:56:40
Всем добрый вечер. Есть желание ходить в кликхаус спарком, кто-какие способы оптимизации этого дела знает (помимо не ходить)? Поделитесь, пожалуйста

Alex
10.04.2018
15:57:27

Viktor
10.04.2018
16:00:14
Это да, но что можно сделать, чтобы это быстрее было? Помимо вдумчивого использования партиций. Вдруг что-то есть.

Denis
10.04.2018
17:01:02
Обычно я использую для неопределенной даты окончания периода -- 9999-12-31 23:59:59
Получается удобно писать
вместо date_begin <= today() and (date_end >= today() or date_end is null)
я пишу today() between date_begin and date_end
Но CH превращает 9999-12-31 23:59:59 --> 1970-01-01 19:59:59
И что делать? Как жить дальше? Что использовать в виде суперудаленного будущего?

papa
10.04.2018
17:03:28
2038

Denis
10.04.2018
17:09:05
Ок. Спс. Надеюсь я сдохну до 38 года и меня коллеги не достанут за такие красивые грабли.

Alexander
10.04.2018
17:11:48
Там же давно до 2106 подняли