
Alexandr
24.01.2018
18:53:09
и еще один вопрос, я правильно понимаю, что даже в случае с 500+ серверами в Яндек Метрике кластере, каждый Distributed запрос посетит все 500 серверов независимо от схемы шардирования - рандомно или по ключу user_id? Или все таки есть способ разграничить SELECTы?

papa
24.01.2018
19:22:08

Alexandr
24.01.2018
19:36:14

Petr
24.01.2018
20:42:03
Привет, в версии 1.1.54342 делаю выборку по колонке. В результате ключ по котрому делается запрос растягивается на все записи. Как сделать чтобы он полностью был в каждой записи

Google

Petr
24.01.2018
20:42:06

Nikolai
24.01.2018
20:46:02
Можете показать запрос?

Petr
24.01.2018
20:49:10
Я использую infi.clickhouse_orm так что в прямом виде запроса нет
До этого в версии 1.1.54292 все было как нужно

Alexey
24.01.2018
22:46:28


Ololo
25.01.2018
03:21:59
Ключ составной, из 7 значений. Все значения в ключе string.
К сожалению, сейчас мне нужно найти быстрое обходное решение, поэтому я не смогу дальше разбираться с этим багом. Пока что буду просто испольовать MergeTree с доп. полем.

Google

Alexander
25.01.2018
06:13:39

Ivan
25.01.2018
07:25:05
Друзья, тут после апдейта в определённый момент стала падать ошибка
Exception: Could not find a column of minimum size in MergeTree, part /var/lib/clickhouse//data/public/events/20180124_20180124_14437_14442_1/.
Подскажите что делать (
ClickHouse server version 1.1.54337.

Roman
25.01.2018
07:51:22

Ivan
25.01.2018
07:55:38
@roman_yashin Увы нет.

Alexey
25.01.2018
08:05:14

Andrey
25.01.2018
09:30:58
Подскажите пожалуйста, я пытаюсь вставлять через JDBC очень много данных (миллиарды в минуту), батчами по 10M записей в 40 потоков. INSERT часто падает с трейсом :
Too many parts Merges are processing significantly slower than inserts.
Я вижу в таблице system.merges от 5 до 10 записей.
Сам сервак не загружен. CPU и MEM не загружаются полностью. LA не шкалит, и io диска свободные есть.
Вопрос, как увеличить колличество тредов отвечающих за мёржи кусков и где настроить триггер, который срабатывает при моём эксепшене?

Alex
25.01.2018
09:35:24

Andrey
25.01.2018
09:37:15
Огромное спасибо!
Я уже просто устал читать доку, ибо в ней этой настройки нет

Alex
25.01.2018
09:39:47
Andrey , возьмите на вооружение этот файл, там кладезь настроек :)

Andrey
25.01.2018
09:43:48
А в какую секцию конфига эта настройка должна войти?
И ещё не понятно, где посмотреть значение по умолчанию для каждой настройки из этого файла

Alex
25.01.2018
09:45:36

Ivan
25.01.2018
09:49:42
@Shegloff Спасибо за совет, попробовал сделал DETACH ATTACH для основной таблицы, но ошибка повотряется. Возникает у материализованных представлений на данную таблицу.

Andrey
25.01.2018
09:50:17
@Krashuevina Как я понимаю, рестартовать сервис для того чтобы он подхватил настройку не нужно?

Alexey
25.01.2018
09:50:24
не, надо именно у вьюшной таблицы inner_ так сделать
alter table db..inner.table attach partition 201801
мат.вьюха это же как отдельная таблица, куда "как-будто триггерами" суются данные из основной при инсертах

Ivan
25.01.2018
09:53:45
Хмм а как к ней запрос выполнить? Он на 2ю точку ругается

Alexey
25.01.2018
09:53:59
в обратных апострофах

Google

Alexey
25.01.2018
09:54:32
alter table db.`.inner.table` detach partition 201801
alter table db.`.inner.table` attach partition 201801

Ivan
25.01.2018
09:55:21
Понял)
Благодарю за совет.

Alexey
25.01.2018
09:56:18
можете на проблемной реплике вообще удалить все данные после detach из папки detached, после attach проблемная скачает всю партицию

Sergey
25.01.2018
12:15:10

pavel
25.01.2018
12:55:40
Верно ли то, что невозможно DETACH PARTITION для MaterializedView или для ReplicatedMaterializedView ?

Alexey
25.01.2018
12:56:44
неверно, два сообщения выше посмотрите

pavel
25.01.2018
13:04:31
Причём получилось ATTACH в ту партицию, в которой уже были данные. Я думал она должна быть совершенно чистой для аттача.
А можно 2 раза сделать аттач на одних и тех же detached данных? Они приаттачатся, исчезнут из detached, а мы в detached снова положим копию припасённую в рукаве. Данные продублируются в итоге в целевой таблице? Просто интересна физика процесса.

Vladislav
25.01.2018
13:29:27
Всем привет.
А никто не находил модуля для nginx, позволяющего складировать access\error логи в clickhouse?

Vyacheslav
25.01.2018
13:31:39
написать простейшую хрень на lua? постить через http. там же и буферизацию можно приделать.

Kirill
25.01.2018
13:32:29
Google говорит что есть
например https://github.com/mintance/nginx-clickhouse

Vsevolod
25.01.2018
13:32:59
tail -f | perl | clickhouse-client

Alexey
25.01.2018
13:42:44


Vyacheslav
25.01.2018
14:12:54
есть плагин к графане https://github.com/Vertamedia/clickhouse-grafana
там есть макрос $columns(key, value) - query values as array of [key, value], where key will be used as label
пытаюсь его использовать:
$columns(group, sum(s) r) FROM (SELECT any(time) as time, $timeSeries as tt, date, dictGetString('edge','group', tuple(srv)) as group, srv, avg(nic_speed) as s FROM net WHERE $timeFilter AND srv like 'edge%' GROUP BY tt, date, srv)
это транслируется в
SELECT t, groupArray((group, r)) as groupArr FROM ( SELECT (intDiv(toUInt32(time), 60) * 60) * 1000 as t, group, sum(s) r FROM (SELECT any(time) as time, (intDiv(toUInt32(time), 60) * 60) * 1000 as tt, date, dictGetString('edge','group', tuple(srv)) as group, srv, avg(nic_speed) as s FROM net WHERE date >= toDate(1516803127) AND time >= toDateTime(1516803127) AND date >= toDate(1516803127) AND time >= toDateTime(1516803127) AND srv like 'edge%' GROUP BY tt, date, srv) GROUP BY t, group ORDER BY t, group) GROUP BY t ORDER BY t
и кликхаус ругается:
Code: 184. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Aggregate function any(time) is found in WHERE or PREWHERE in query.
есть варианты обойти это?


papa
25.01.2018
14:14:35
а есть варианты не делать any(time) AS time ?

Vyacheslav
25.01.2018
14:15:13
будет другая ругань

Google

Vyacheslav
25.01.2018
14:16:23
на тему что колонка есть, но не в агрегатеной функции и не в group by

papa
25.01.2018
14:16:56
может дополнительный слой подзапроса (select any_time as time from (select any(time) as any_time.. ) .. )
с графаной не скрещивал, поэтому не знаю какие там степени свободы.

Roman
25.01.2018
14:19:02
а зачем вы выбираете any(time)? Вы ведь его не используете потом

Vyacheslav
25.01.2018
14:19:39
использую. я же дал ссылку на макрос.
а сколько вложенных селектов позволяет кликхаус?

Dmitriy
25.01.2018
14:27:10
@vladislavadv также у nginx можно настроить кастомный формат логов так чтобы он максимально походил на csv. единственное что кликхаус требователен к качеству данных и скорее всего придётся чистить. но всё-таки чистить проще чем разбирать access log и писать csv

Vladimir
25.01.2018
14:27:55
в nginx можно нативно писать в json

Vyacheslav
25.01.2018
14:28:04
еще проще написать на lua обработчик лог-фазы и постить по http, имхо

Vladimir
25.01.2018
14:28:05
и его уже очень просто разобрать и отправить куда угодно
я может конечно что-то не понимаю, но я бы делая такую систему хотел бы иметь все неблокирующее, чтобы если какой net split не ждать таймаутов
в обработчике

Roman
25.01.2018
14:29:02
использую. я же дал ссылку на макрос.
Извините, вот Ваш макрос:
$columns(
group,
sum(s) r)
FROM
(
SELECT
any(time) as time,
$timeSeries as tt,
date,
dictGetString('edge', 'group', tuple(srv)) as group,
srv,
avg(nic_speed) as s
FROM net
WHERE
$timeFilter
AND srv like 'edge%'
GROUP BY
tt,
date,
srv
)
я не вижу зачем здесь any(time)

Vladimir
25.01.2018
14:29:14
поэтому я бы писал на диск json, а потом бы его отдельной мелкой тулзой слал в КХ

Vyacheslav
25.01.2018
14:30:12
нет, описание макроса по ссылке — https://github.com/Vertamedia/clickhouse-grafana
и там показывается (правда довольно криво) как при разворачивании появляется time (по ссылке EventTime)

Alexey
25.01.2018
14:51:59
на новой (1.1.54342) последней версии слетел мониторинг внешних словарей, похоже там баг - колонки last_exception и source местами перепутаны
Row 1:
──────
name: db_table
last_exception: MySQL: db.table
source:

Nikolai
25.01.2018
15:01:43
действительно. поправлю.

Vladislav
25.01.2018
15:07:05

Google

Alex
25.01.2018
15:11:38
День добрый! Вопрос - если включен insert_distributed_sync, и insert_quorum = Число реплик в шарде. Означает ли это, что по окончанию INSERT данные _обязательно_ должны быть видны в SELECT?

Felixoid
25.01.2018
15:13:54

Alex
25.01.2018
15:15:49
@Felixoid , вы имеете в виду, что INSERT не пройдёт?
из-за не досягаемости кворума

Felixoid
25.01.2018
15:17:26
всё так

Alex
25.01.2018
15:21:53
всё так
Мы пока наступали на грабли, что с одного шарда данные не видны, не взирая на кворумную запись. Пытаемся разобраться, где проблема, пока не понимаем.

Alexander
25.01.2018
15:49:49
Ребят, подскажите пожалуйста где можно почитать про партицирование в CH
Интересует именно https://github.com/yandex/ClickHouse/blob/fb9c7ab81d3d208b0585080e2288fccf0a768ec3/dbms/tests/queries/0_stateless/00502_custom_partitioning_local.sql
для графита

papa
25.01.2018
15:56:43
это https://clickhouse.yandex/docs/ru/table_engines/custom_partitioning_key.html ?