
Алексей
25.03.2018
10:59:45
Господа, а можно выключалку встроенному переопределятору ctrl+f на странице с докой ?
она грузит 100500 мой бедный проц и делает не то что я хочу.

Vladimir
25.03.2018
11:49:39
Всем привет. Мне нужно создать словарь из вьюшки в кликхаусе. Обязательно ли указывать порт, логин и пароль к локальному CH для источника словаря?
<source>
<clickhouse>
<host>localhost</host>
<port>9000</port>
<user>default</user>
<password></password>
<db>default</db>
<table>ids</table>
</clickhouse>
</source>

Ivan
25.03.2018
12:04:08
Господа, подскажите по бд system

Google

Ivan
25.03.2018
12:04:39
Она разрослась и весит больше, чем бд, в которой я данные храню
Можно ее без последствий почистить, например?

Ilya
25.03.2018
12:07:32

Ivan
25.03.2018
12:07:42
Можно это отключить и почистить?

Ilya
25.03.2018
12:35:48

Alexey
25.03.2018
15:48:22
'DB::Exception: Block structure mismatch in MergingSorted stream: different number of columns:
id Int64 Int64(size = 10), pcount Int32 Int32(size = 10), date Date UInt16(size = 10)
id Int64 Int64(size = 0), pcount Int32 Int32(size = 0). '
Это не напрямую связано с LIMIT - конечно, LIMIT работает в 1.1.54370. Тем не менее, это сообщение говорит о том, что для какого-то запроса нарушена логика. Нужен пример, по которому можно будет понять, в каких случаях это происходит.
Какая-то особенность конкретного запроса - например, ORDER BY без GROUP BY из Distributed, или какая-то взаимосвязь с ALIAS столбцами или ещё что-то в этом роде.

Google

Alexey
25.03.2018
15:53:50
Если удалите таблицу query_log, то данные в неё перестанут записываться и сервер будет писать ошибки в лог до перезапуска.

Wolf
25.03.2018
15:59:11
А как легко дропнуть все записи из нее?

Ivan
25.03.2018
16:32:17
drop table TableName
можно предварительно скопировать структуру таблицы в другую временную таблицу, а потом вернуть, если нужно почистить содержимое таблицы без удаления самой таблицы

Nikita
25.03.2018
18:46:34
Есть ли разница по скорости вычисления uint8 столбец или uint64 (например посчитать среднее)?
Мне подсознание говорит что меньше объем данных — быстрее вычисления. Но современные процессоры со всякими своими оффсетами могут со мной не согласится.

Andrey
25.03.2018
19:54:11

Alexey
25.03.2018
22:28:14

Артемий
26.03.2018
05:37:34
Всем привет. Хотелось бы попасть на "Я.Субботник по базам данных" на этой неделе. Можно как-то увеличить вероятность одобрения завявки?

Kirill
26.03.2018
05:41:35

Stanislav
26.03.2018
07:06:09
После дизастера с зукипером и последующего восстановления (пришлось прибить лог зукипера и восстанавливать только со снапшота, затем аттачить партишны, которые посыпались в detached) вижу в логах зукипера много такого:
NoNode for /clickhouse/tables/01/telegraf_disk/block_numbers/201803/block-0001874180
На работе кликхауса на первый взгляд никак не отражается, но неаккуратненько как-то.
Насколько это страшно и что с этим принято делать?

LeiDruid
26.03.2018
07:13:17


Stanislav
26.03.2018
07:14:17
Предыстория - zookeeper объявил себя read-only. После рестарта начал бесконечно перечитывать свой снапшот + лог.
Почему объявил - непонятно, в логах по этому поводу единственный эксепшн:
2018-03-24 08:20:46,955 - WARN [RecvWorker:3:QuorumCnxManager$RecvWorker@810] - Connection broken for id 3, my id = 1, error =
java.io.EOFException
at java.io.DataInputStream.readInt(DataInputStream.java:392)
at org.apache.zookeeper.server.quorum.QuorumCnxManager$RecvWorker.run(QuorumCnxManager.java:795)
2018-03-24 08:20:46,956 - WARN [RecvWorker:3:QuorumCnxManager$RecvWorker@813] - Interrupting SendWorker
2018-03-24 08:20:46,957 - WARN [SendWorker:3:QuorumCnxManager$SendWorker@727] - Interrupted while waiting for message on queue
java.lang.InterruptedException
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.reportInterruptAfterWait(AbstractQueuedSynchronizer.java:2014)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2088)
at java.util.concurrent.ArrayBlockingQueue.poll(ArrayBlockingQueue.java:418)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.pollSendQueue(QuorumCnxManager.java:879)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.access$500(QuorumCnxManager.java:65)
at org.apache.zookeeper.server.quorum.QuorumCnxManager$SendWorker.run(QuorumCnxManager.java:715)
2018-03-24 08:20:46,957 - WARN [SendWorker:3:QuorumCnxManager$SendWorker@736] - Send worker leaving thread


M
26.03.2018
07:16:24
а сколько у вас в кластере зукипера серверов?

Stanislav
26.03.2018
07:16:27
3

M
26.03.2018
07:16:40
все живы были при этом?

Stanislav
26.03.2018
07:16:43
да
Эксепшн был на всех примерно в одно и то же время

Jack
26.03.2018
07:32:16
Всем привет. Помогите пожалуйста. Есть большой запрос. Мне нужно сгруппировать записи если их больше 1 по часам. Но если запись одна то вывести значение ReceiveDate из этой записи. И как я понимаю, дергать каждый раз такой большой запрос - не правильно. Подскажите, каким образом можно оптимизировать такую работу. SELECT toHour(toDateTime(toUnixTimestamp(ReceiveDate) + 14400)) + 1 as "Index",
MIN(UpperValue) as MinUpper,
MAX(UpperValue) as MaxUpper,
MIN(LowerValue) as MinLower,
MAX(LowerValue) as MaxLower,
minIf(HeartRate, HeartRate > 0) as MinHeartRate,
maxIf(HeartRate, HeartRate > 0) as MaxHeartRate
FROM default.TestTable
WHERE ReceiveDate >= toDateTime('2018-01-12T07:38:46')
AND SubjectId = 2
GROUP BY toHour(toDateTime(toUnixTimestamp(ReceiveDate) + 14400))
ORDER BY toHour(toDateTime(toUnixTimestamp(ReceiveDate) + 14400))

Ivan
26.03.2018
07:35:07

Google

Kirill
26.03.2018
07:36:05

M
26.03.2018
07:36:10

Ivan
26.03.2018
07:37:14

Kirill
26.03.2018
07:37:56
Всем привет. Помогите пожалуйста. Есть большой запрос. Мне нужно сгруппировать записи если их больше 1 по часам. Но если запись одна то вывести значение ReceiveDate из этой записи. И как я понимаю, дергать каждый раз такой большой запрос - не правильно. Подскажите, каким образом можно оптимизировать такую работу. SELECT toHour(toDateTime(toUnixTimestamp(ReceiveDate) + 14400)) + 1 as "Index",
MIN(UpperValue) as MinUpper,
MAX(UpperValue) as MaxUpper,
MIN(LowerValue) as MinLower,
MAX(LowerValue) as MaxLower,
minIf(HeartRate, HeartRate > 0) as MinHeartRate,
maxIf(HeartRate, HeartRate > 0) as MaxHeartRate
FROM default.TestTable
WHERE ReceiveDate >= toDateTime('2018-01-12T07:38:46')
AND SubjectId = 2
GROUP BY toHour(toDateTime(toUnixTimestamp(ReceiveDate) + 14400))
ORDER BY toHour(toDateTime(toUnixTimestamp(ReceiveDate) + 14400))
toStartOfHour https://clickhouse.yandex/docs/en/single/#tostartofhour


Stanislav
26.03.2018
07:38:29
Не думаю, что выборы лидера длились бы столько времени.

Ivan
26.03.2018
07:39:13
Нет, ничем.
А можно ее дропать или просто почистить и выставить параметр в 0?

Kirill
26.03.2018
07:40:08

Ivan
26.03.2018
07:40:52

Kirill
26.03.2018
07:42:35

Ivan
26.03.2018
07:42:47

Kirill
26.03.2018
07:43:45

Ivan
26.03.2018
07:44:00

Wolf
26.03.2018
08:14:19
А вот при обновлении с оф репо на убунту 16.04 сервер автоматом не перезапускается и работает на старой версии, это так задумано ?

Alexander
26.03.2018
08:18:06

Wolf
26.03.2018
08:18:30
очень странная задумка

Alexander
26.03.2018
08:19:12
Не моя. Сожрало всю память и рухнуло. Думал, я один такой.

Wolf
26.03.2018
08:20:44
Такой проблемы не наблюдаю, сказать честно ничего в логах про запуск второго нового кликхауса тоже не наблюдаю

prll
26.03.2018
08:20:53

Wolf
26.03.2018
08:21:42
ну тут мне кажется скорее плохое решение чем даже среднее

Google

Deance
26.03.2018
08:24:40
Всем привет, а есть ли у кликхауза возможность принудительно обновить внешние словари?

Alexander
26.03.2018
08:25:08
У меня раз в пол минуты шла ошибка в лог. Рестарт сервиса ни к чему хорошему не проводил. Я сварщик не настоящий, смог только грохнуть старый совсем.

Kirill
26.03.2018
08:28:28

Deance
26.03.2018
08:34:33
Спасибо!
SYSTEM RELOAD DICTIONARIES

Artiom
26.03.2018
08:45:53
Всем добрый день. Есть вопрос: как избавиться от дублирующихся по primary key записей? Пример: есть данные, которые грузятся из разных источников, но они могут дублироваться по первичному ключу, в конечном счёте в clickhouse должна остаться только одна запись для каждого первичного ключа

Kirill
26.03.2018
08:51:11

Artiom
26.03.2018
08:52:12
Спасибо, изучу. Но есть вероятность, что данные в момент формирования запроса могут быть по прежнему с дублями
Правильно я понимаю?

Kirill
26.03.2018
08:53:59
Да, есть. Вообще вариантов много: можно движками пользоваться, можно LIMIT N BY и т.д. смотрите что для вас лучше

Wolf
26.03.2018
08:54:03
Так и будет

Artiom
26.03.2018
08:54:49
И на сколько вижу, нужно знать, что запись новая или старая, а это не совсем наш use case, записи все актуальные, но нужна только одна.

Kirill
26.03.2018
08:56:35

Artiom
26.03.2018
08:56:54
Про limit by?

Kirill
26.03.2018
08:58:52
Про limit by?
Можно https://clickhouse.yandex/docs/en/single/#limit-n-by-clause

Artiom
26.03.2018
08:59:09
Благодарю

prll
26.03.2018
09:12:21

Vsevolod
26.03.2018
09:20:03
┌─url──────────────────────────────────────────────────────────┐
│ https://seo.miraiserver.com/redirect.php?url=http://?????.ᴿ? │
└──────────────────────────────────────────────────────────────┘

Google

Vsevolod
26.03.2018
09:20:16
а откуда у меня вот это вот zalgo вместо utf8?
гм, похоже, это спамеры так idn эксплуатируют, вопрос снимается

Jack
26.03.2018
10:01:51
Можно ли вернуть COUNT() для определенного запроса?

Ilya
26.03.2018
10:18:41
Count(*)

Jack
26.03.2018
10:20:53
Это будет одно и тоже что и COUNT() ? я не могу понять разницу

Ilya
26.03.2018
10:24:59

Андрей
26.03.2018
11:06:42
Хочу в докер-образ КХ добавить установку id пользователя и группы clickhouse, переданные в переменных окружения.
Это нужно для того, чтобы при запуске контейнера монтировать не отдельные файлы конфигов, а папку с конфигами (и чтобы у КХ были права на запись в эту папку).
Примете подобный PR?

prll
26.03.2018
11:08:01
Давай посмотрим

Michal
26.03.2018
11:09:01
Это будет одно и тоже что и COUNT() ? я не могу понять разницу
count() это синтаксис, который поддерживается в ClickHouse, а count(*) - это часть стандарта SQL. Насколько я понимаю count(*) - добавлено в ClickHouse чтобы проще было при переходе и при использовании всяких стандартных утилит. Результат count() и count(*) - тот же самый.

Jack
26.03.2018
11:13:11

Ivan
26.03.2018
11:39:22
Господа, а truncate в КХ не предусмотрен?

Kirill
26.03.2018
11:40:05

Konstantin
26.03.2018
11:47:45
вроде был же truncate, вот буквально на той неделе сталкивался

Ievgen
26.03.2018
11:55:30
Всем привет, есть вопрос - есть ли какие либо встроенные методы программного управления базами таблицами - версионирование схемы итд итп, или все за пределами KX? автоматизирую этот процесс и вот решил на всякий случай уточнить. Спасибо.