
vladimir
29.05.2018
16:04:32

Ivan
29.05.2018
16:05:22

Andrew
29.05.2018
16:06:02
атеист? // простите, не удержался)

Ivan
29.05.2018
16:07:56

Google

Andrew
29.05.2018
16:08:33
вот теперь точно флуд надо сворачивать ? заббикс - вечная тема)

Alexey
29.05.2018
20:01:44
Выложена презентация с BackendConf 2018:
https://yandex.github.io/clickhouse-presentations/rit2018/#

Konstantin
29.05.2018
20:40:42
@nengchak не решил свою проблему с EOF reached for partition?

Egor
29.05.2018
23:10:56

Konstantin
29.05.2018
23:18:44

Egor
29.05.2018
23:22:13
А где чейнжлог на 1.1.54382 ? Что там поменяли?

Alexandr
30.05.2018
03:53:16
Всем привет, ребят, есть ли какие ты right way гайды, как делать отчеты из кликхауса + любая другая DB, т.е. несколько источников данных, и по ним надо делать всякие order, group, where…
есть идея заливать в кликхаус, но эти данные подвержены частым изменениям

Wolf
30.05.2018
03:55:22
Тогда кх не для вас
А как вы сейчас меняете сотни гигабайт данных?

Vasilij
30.05.2018
05:52:00
Привет!
У нас используется кворумная запись (на 3 реплики) и select_sequential_consistency. И при дропе партиции на одной из реплик, последующий запрос говорит:
DB::Exception: Replica doesn't have part .... which was successfully written to quorum of other replicas. Send query to another replica or disable 'select_sequential_consistency' setting..
Как правильно дропать партиции с такими настройками? Я что-то опасаюсь дальше дропать на остальных репликах...
И заодно: как вылечить теперь эту ситуацию? На крайний случай, я могу дропнуть всю таблицу на всех репликах, скорее всего это поможет. Но это пока она новенькая и её легко перезаполнить.

Google

Stanislav
30.05.2018
06:11:30
Похоже, поменялось поведение argMax
Ранее запроc вида:
SELECT
datetime,
argMax(runningDifference(cpu), 0) AS cpu
FROM telegraf.hosting2_users
WHERE login = 'login' AND datetime > '$date1' AND datetime < '$date2'
GROUP BY datetime
ORDER BY datetime ASC
выдавал только неотрицательные значения.
Сейчас:
SELECT *
FROM
(
SELECT
datetime,
argMax(runningDifference(cpu), 0) AS cpu
FROM telegraf.hosting2_users
WHERE (login = 'c1133') AND (datetime >= 1525750000)
GROUP BY datetime
ORDER BY datetime ASC
)
WHERE cpu < 0
┌────────────datetime─┬───────────────cpu─┐
│ 2018-05-27 01:31:30 │ -383.349985351786 │
└─────────────────────┴───────────────────┘

Vasilij
30.05.2018
06:25:39


Konstantin
30.05.2018
08:48:19
Уже вроде спрашивали, но давно и ответа не видно. В кафку падают сообщения по 100/200 в секунду. Далее импортируется в КХ движком Kafka в MergeTree. Но из-за малого объема данных импорт происходит крайне редко, вроде бы когда сообщений 65536 (но это не точно, бывает и больше и меньше). Пробовал крутить параметры librdkafka - ничего не поменялось. Да, история не совсем про КХ (с большим количеством данных), но хочу понять - данное поведение нельзя изменить для импорта малого количества данных, чтоб не ждать по пол дня?

Sergei
30.05.2018
09:28:08

Vitaliy
30.05.2018
10:40:32

Alexey
30.05.2018
10:41:20

Egor
30.05.2018
10:57:39

Alex
30.05.2018
10:58:54
ТАм не вижу
Версия 54382 не релизилась. Можно считать, что её нет.

Slava
30.05.2018
11:02:22
а в каком номере релиза ожидается delete, в таком случае?

Alex
30.05.2018
11:09:19
В следующем.
Не номере, а релизе. Номер может быть любой больший.

Daniel
30.05.2018
11:34:49
Мы тут тестируем разного рода аварийные ситуации, заметили, что некоторые старые таблицы (возрастом больше недели), в которые давно никто не пишет и используются только для селектов, покараптились.
Вычитал про Freeze partition.
Есть два вопроса:
1) Почему покараптились данные? Из-за постоянных попыток слияний? Таблица MergeTree
2) Freeze partition поможет остановить write операции на старых данных, где оптимизировать-сжимать больше нечего?

Alexey
30.05.2018
11:37:28


Daniel
30.05.2018
11:38:17
В логах появились такие записи:
2018.05.28 12:06:07.721545 [ 1 ] <Error> testdb.log_2017_07 (Data): Detaching broken part /opt/clickhouse-data/data/testdb/log_2017_07/20170707_20170712_3491_6873_5 because it covers less than 2 parts. You need to resolve this manually
грубо говоря, сервер вынуждали зависать и выдёргивали из розетки
попробовал команду freeze на неизменяющейся таблице для одной из партиций. но почему-то вместо хардлинков в shadow был создан один файлик
# ls -l
total 4
-rw-r----- 1 clickhouse clickhouse 2 May 30 15:09 increment.txt
чяднт?
но у нас датадир не /var/lib/clickhouse/ а свой, в /opt, права все выставлены
О, разобрался. Мануал говорит, что в FREEZE надо использовать name, я и использовал имя из колонки name из system.parts. А надо было имя из колонки partition вида 201710

Google


Pavel
30.05.2018
12:48:21
Помогите разобраться, может кто сталкивался.
поднято 2 ch, как один шард с двумя репликами и 2 zookeeper, все в докере. На запрос на первом сервере
CREATE TABLE zootest ON CLUSTER ch
(
day Date DEFAULT toDate(created),
query String,
type String
)
ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/zootest', '{replica}', day, (day, type), 8192)
получаю ошибку
DB::Exception: Watching task /clickhouse/task_queue/ddl/query-0000000000 is executing longer than distributed_ddl_task_timeout (=180) seconds. There are 2 unfinished hosts (0 of them are currently active), they are going to execute the query in background.
По логам на втором сервере вижу только
2018.05.30 12:45:15.313603 [ 2 ] <Debug> DDLWorker: Cleaning queue
2018.05.30 12:45:15.318869 [ 2 ] <Debug> DDLWorker: Processing tasks
2018.05.30 12:45:15.339531 [ 2 ] <Debug> DDLWorker: Will not execute task query-0000000000: There is no a local address in host list
2018.05.30 12:45:15.339584 [ 2 ] <Debug> DDLWorker: Waiting a watch
Понимаю, что чего-то не хватает, но чего?


Евгений
30.05.2018
13:08:41
Помогите разобраться, может кто сталкивался.
поднято 2 ch, как один шард с двумя репликами и 2 zookeeper, все в докере. На запрос на первом сервере
CREATE TABLE zootest ON CLUSTER ch
(
day Date DEFAULT toDate(created),
query String,
type String
)
ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/zootest', '{replica}', day, (day, type), 8192)
получаю ошибку
DB::Exception: Watching task /clickhouse/task_queue/ddl/query-0000000000 is executing longer than distributed_ddl_task_timeout (=180) seconds. There are 2 unfinished hosts (0 of them are currently active), they are going to execute the query in background.
По логам на втором сервере вижу только
2018.05.30 12:45:15.313603 [ 2 ] <Debug> DDLWorker: Cleaning queue
2018.05.30 12:45:15.318869 [ 2 ] <Debug> DDLWorker: Processing tasks
2018.05.30 12:45:15.339531 [ 2 ] <Debug> DDLWorker: Will not execute task query-0000000000: There is no a local address in host list
2018.05.30 12:45:15.339584 [ 2 ] <Debug> DDLWorker: Waiting a watch
Понимаю, что чего-то не хватает, но чего?
1. Зукиперов должно быть не четное число 1,3 и т.д. Так как если один отвалиться , не сможет пройти кворум
2. Реплицируемую таблицу нужно отдельно создавать на каждой ноде CH. (Без ON CLUSTER ch). И на каждой ноде макрос {replica} должен быть разный


Alexey
30.05.2018
13:12:13
2. реплицируемая таблица с макросами прекрасно создается с запросом ON CLUSTER
если все правильно настроено

Денис
30.05.2018
13:13:38
На сколько я знаю должно быть больше 2х нод
Для выбора арбитра надо минимум3

Евгений
30.05.2018
13:14:54
Кластер зукипера не сможет выбрать лидера и реплицируемая таблица станет readonly

Wolf
30.05.2018
13:15:19
если два отвалится то просто встанут реплицируемые таблицы

Денис
30.05.2018
13:15:23

Wolf
30.05.2018
13:15:36
зукиперов живых должно быть больше чем мертвых не более того
если у вас 3 зк, то 2 живых минимум, если 5 зк, то три живых

Денис
30.05.2018
13:16:07

Евгений
30.05.2018
13:17:24
То можно

Pavel
30.05.2018
13:51:10
1. Зукиперов должно быть не четное число 1,3 и т.д. Так как если один отвалиться , не сможет пройти кворум
2. Реплицируемую таблицу нужно отдельно создавать на каждой ноде CH. (Без ON CLUSTER ch). И на каждой ноде макрос {replica} должен быть разный
Убрать ON CLUSTER частично помогло, но похоже, что проблема была не в нем. В докер контейнер я пробрасываю фейковый hostname, чтоб было понятно, на какой машине я нахожусь, так кликхаус его использует для поднятия соединения, судя по логу:
2018.05.30 13:45:32.521258 [ 11 ] <Error> default.zootest (StorageReplicatedMergeTree): DB::StorageReplicatedMergeTree::queueTask()::<lambda(DB::StorageReplicatedMergeTree::LogEntryPtr&)>: Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = Host not found: clickhouse-1-2, e.what() = Host not found


nikoinlove
30.05.2018
14:00:57
2018.05.30 16:59:19.110988 [ 96209 ] <Error> ServerErrorHandler: Poco::Exception. Code: 1000, e.code() = 104, e.displayText() = Connection reset by peer, e.what() = Connection reset by peer
а что это и почему у меня весь лог этим завален ?)

Alexey
30.05.2018
14:08:34
грубо говоря, сервер вынуждали зависать и выдёргивали из розетки
Да, это возможно, если данные из ФС не сбросились на диск за время жизни старых кусков, оставшихся после мержа (по-умолчанию, 8 минут). Если таблица реплицированная, то всё восстановится автоматически. Если нет - надо либо увеличить old_parts_lifetime в config.xml, секция merge_tree. См. описание в файле MergeTreeSettings.h. Либо изменить параметры в /proc/sys/vm/...

Daniel
30.05.2018
14:11:29

Gennady
30.05.2018
14:39:42
Алексей, расскажите, если можно, поподробнее, как данные сбрасываются на диск? Есть ли механизмы, подобные write-ahead-log + checkpoint, которые защищают от потери данных при выключении питания?

Google

Alexey
30.05.2018
15:02:48

Daniel
30.05.2018
15:06:08

Alexey
30.05.2018
15:11:39

Daniel
30.05.2018
15:15:12

Alexey
30.05.2018
15:16:45
Да.

Daniel
30.05.2018
15:31:53
Да.
old_parts_lifetime в xml указывается же в секундах? или надо в формате 15*60, как в коде?
там M(SettingSeconds, old_parts_lifetime, 8 * 60)

Gennady
30.05.2018
15:36:42
Нет.
Спасибо, тогда другой вопрос:
выключение питания сервера при активной записи на диск может привести к потере всех данных в таблице/партиции и можно ли застраховаться от этого?

Daniel
30.05.2018
15:38:59

Alexey
30.05.2018
15:43:01

Diomid
30.05.2018
15:46:58

Alexey
30.05.2018
15:50:05
INSERT возвращает клиенту успех после того, как данные записаны на файловую систему. При этом fsync не делается, и данные, записанные на файловую систему, могут быть ещё не записаны на диск. Данные реплицируются сразу после INSERT, то есть, могут быть реплицированы, когда ещё не записаны на диск ни на одной реплике.

Daniel
30.05.2018
15:56:06
В виде одного числа - в секундах.
Прописал, перезапустил сервис. Параметр появился в config-preprocessed.xml , но если сделать
select * from system.settings where changed;
изменение параметра не отображается. Или и не должно в случае с old_parts_lifetime ?
ClickHouse server version 1.1.54362

Alexey
30.05.2018
15:56:47
Это не настройка запроса/пользователя/сессии. Поэтому в system.settings нет.

Gennady
30.05.2018
16:00:07

?
30.05.2018
17:37:30

Kirill
30.05.2018
18:03:44

Google

Alex
30.05.2018
18:05:31
коллеги, подскажите пожалуйста а сейчас есть механизмы чистки зукипера от давно померших реплик?

Maksim
30.05.2018
18:07:39

Alex
30.05.2018
18:08:15
то есть костыликами?)

Maksim
30.05.2018
18:09:01
Мм, не вижу тут ничего костыльного

Alex
30.05.2018
18:09:41
ну по идее мы лезем в те структуры которые принадлежат приложению кх

Maksim
30.05.2018
18:10:11
И да и нет
Части от мертвых реплик уже не принадлежат приложению
Но они находятся в структуре кх

Alex
30.05.2018
18:11:26
ладно это религиозный спор, встроенных средств как я понимаю нет

Wolf
30.05.2018
18:12:02
Ну вариантов нет, ибо кх сам не знает что оно умерло, так как сервер с репликой видимо из за железа умер
А так прекрасно работает стандартное удаление из кх и автоматом чистится зукипер
Все таки железная смерть сервера не такое частое явление

Alex
30.05.2018
18:18:57

Kirill
30.05.2018
18:19:41

Alex
30.05.2018
18:20:13
и скажем по дефолту сделать месяц,а в динамических окружениях например пару дней хватит

Wolf
30.05.2018
18:20:52