@clickhouse_ru

Страница 708 из 723
Denis
17.10.2018
14:33:30
18.14.8 интересно глючит, запрос выдает неправильный результат, в зависимости от кол-ва условий в where и после рестарта все проходит, view нету, но есть подзапросы в where ( enable_optimize_predicate_expression включено, пока не понял из-за него или нет).

такое ощущения что КХ начал кешировать результат подзапроса и спустя сутки подзапрос выдает все тот же результат, т.е. типа where a < (select max(aa) from ...)

Denys
17.10.2018
14:56:00
кэш как причина проблемы как волчанка в сериале доктор хаус

каждый раз на него думают и каждый раз не он

Google
Pavel
17.10.2018
14:56:21
неправда

обычно винят сеть

(а потом, конечно, кэш)

Denys
17.10.2018
14:56:47
ты код сразу в проде редактируешь?

через вим

Pavel
17.10.2018
14:56:59
конечно же

Олег
17.10.2018
14:57:02
А в утечках и перерасходе памяти — фрагментацию и кривые аллокаторы.

Denys
17.10.2018
14:57:07
конечно же
красиво

Pavel
17.10.2018
14:57:28
/me думает как править все облако vim'ом

Denys
17.10.2018
14:58:18
это ж не ирк

Pavel
17.10.2018
14:58:41
а жаль

Denys
17.10.2018
15:03:57
@pavel_odintsov https://www.youtube.com/watch?v=pcr8kBeA_kE

Pavel
17.10.2018
15:04:35
irc никуда не уходил, чтобы возвращаться ?

Google
Roman
17.10.2018
15:32:36
Господа, помогите с составлением запроса, чтобы посчитать разницу между значениями одного типа. SELECT intDiv(toUInt32(Time), 120) * 120 AS t, Type, max(Packets) AS c FROM table GROUP BY t, Type ORDER BY t ASC, Type ASC ┌──────────t─┬─Type─┬─────c─┐ │ 1535712600 │ tcp │ 1000 │ │ 1535712600 │ udp │ 1000 │ │ 1535712720 │ tcp │ 3000 │ │ 1535712720 │ udp │ 5000 │ │ 1535712840 │ tcp │ 5000 │ │ 1535712840 │ udp │ 9000 │ │ 1535712960 │ tcp │ 7000 │ │ 1535712960 │ udp │ 13000 │ │ 1535713080 │ tcp │ 9000 │ │ 1535713080 │ udp │ 17000 │ └────────────┴──────┴───────┘ С ответа видно, что tcp возрастает на 2к, а udp на 4к каждые 2 минуты, что и нужно получить в итоговом запросе. Как посчитать эту разницу? >> runningDifference считает разницу с предыдущей строкой. В моем случае, предыдущая строка может принадлежать другому Type, сравнение с которым будет неправильным.

Т.е. ответ должен быть примерно таким, но без условия в WHERE: SELECT t, Type, runningDifference(c) AS c FROM ( SELECT intDiv(toUInt32(Time), 120) * 120 AS t, Type, max(Packets) AS c FROM table WHERE Type = 'udp' GROUP BY t, Type ORDER BY t ASC, Type ASC ) ┌──────────t─┬─Type─┬────c─┐ │ 1535712600 │ udp │ 0 │ │ 1535712720 │ udp │ 4000 │ │ 1535712840 │ udp │ 4000 │ │ 1535712960 │ udp │ 4000 │ │ 1535713080 │ udp │ 4000 │ └────────────┴──────┴──────┘

Andrey
17.10.2018
17:01:59
Ребят, docker образ clickhouse, ubuntu 18.04. При установке пакета iputils-ping получаю bash: /usr/bin/clickhouse: Operation not permitted Убираю пакет, все ок…

prll
17.10.2018
17:29:44
что значит установке/убираю ?

⚓️Alexander
17.10.2018
18:21:19
Добрый вечер, кто-то может объяснить, что кликхаус делает при запросе dictGet на http словарь? У меня в запросе стоял лимит на 1000, он мне после выполнения запроса, судя по логам, отправил >1000 ключей на http сервер словаря

Wolf
17.10.2018
18:25:24
покажите запрос и станет все ясно

Andrey
17.10.2018
18:31:15
что значит установке/убираю ?
Эм apt install iputils-ping -> трабл Убираем установку пакета, все ок

Darafei
17.10.2018
18:32:07
Эм apt install iputils-ping -> трабл Убираем установку пакета, все ок
Кого он там зависимостями притаскивает?

Andrey
17.10.2018
18:51:30
Denis
17.10.2018
19:24:29
кэш как причина проблемы как волчанка в сериале доктор хаус
ну не знаю https://github.com/yandex/ClickHouse/issues/3410 у меня воспроизводится. Очень мерзкая бага, результат запроса неверный и как полечить это неясно.

Igor
17.10.2018
19:30:18
А как делать healthcheck кликхауса из докера-композа? В документации говорится, что надо curl-ом запросить начальную страницу, а курла в докеровском образе нет. Собирать еще один образ чисто ради мониторинга не хочется.

и тот же вопрос с zookeeper

Igor
17.10.2018
19:41:07
Это чисто по прикладному проще. Тупо запускаем docker ps -a и видим, какие сервисы живы. И парсится оно несложно. И мб дальше на мониторинг передается.

Igor
17.10.2018
19:48:06
не. снаружи стукнуться - проблем никаких

Daniel
17.10.2018
19:48:20
и тот же вопрос с zookeeper
зукипер в докере вам точно не нужен

Google
Igor
17.10.2018
19:48:59
почему?

Alexey
17.10.2018
19:51:49
@milovidov_an Алексей, а движок MySQL в принципе Decimal поля из MySQL не поддерживает?
Нет. Но это сейчас очень частый запрос, и мы будем это делать.

Viktor
17.10.2018
19:52:09
Спасибо за ответ

Daniel
17.10.2018
19:53:12
почему?
он очень чувствителен к летенси, он не нуждается в обновлении, он stateful, работа репликации и реплицируемых таблиц clickhouse напрямую зависит от здоровья зукипер. если у вас зукипер будет педалить - таблицы replicated будут переходить в readonly

Igor
17.10.2018
19:54:23
хм... спасибо. подумаю

Daniel
17.10.2018
19:56:19
если у вас будет один сервер на котором докер и в нём контейнеризован зукипер, и больше ничего, это будет работать, но встаёт вопрос, а не является ли докер в этом всём элементом карго культа ?

Denis
17.10.2018
20:45:01
select * from testx where not a and t < (select tkey from dt) ┌──────t─┬─a─┐ │ 100000 │ 0 │ └────────┴───┘ select tkey from dt ┌─tkey─┐ │ 0 │ └──────┘ select * from testx where not a and t < 0 0 rows in set. Elapsed: 0.001 sec.

Daniel
17.10.2018
21:42:21
А как можно посмотреть detached партиции запросом для таблицы, если их взяли из бэкапа, сделанного freeze, и поместили в detached папку вновь созданной таблицы?

Paul
18.10.2018
05:31:58
Коллеги, кто-нибудь испытывал проблему записью данных по шардам из distributed-таблицы в 18.14.9?

https://github.com/yandex/ClickHouse/issues/3411

?
18.10.2018
08:25:40
подскажите, какой мигратор нормально с кх работает?

Wolf
18.10.2018
08:26:02
Мигратор откуда куда

?
18.10.2018
08:26:58
из up в down :) типа такого https://github.com/golang-migrate/migrate но этот чутка кривой

Konstantin
18.10.2018
08:29:53
Блин, там кодить 40 строчек

Igor
18.10.2018
08:46:18
Подскажите плиз, как удалить или заигнорить part у которого чексумма не совпадает ? кроме выключение проверки чексум

Wolf
18.10.2018
08:46:57
Детач ему сделайте

А хотя там только партишен можно детачнуть

Детачите партишен , удаляете парт , аттачите партишен

Igor
18.10.2018
08:50:30
аа, понял, спс щас пробну

Google
Igor
18.10.2018
08:51:07
а то я удалил просто парт, а оно начало другую ошибку сыпать Could not find a column of minimum size in MergeTree, p

Wolf
18.10.2018
08:51:51
Ну без детача удалять парт на живой базе это конечно хитро

Ivan
18.10.2018
09:05:50
А можно ли как-то не перезапуская попросить кликхаус снова отрезолвить адрес реплики?

Wolf
18.10.2018
09:07:12
там есть команда типо флаш двс кеш

прямо в кликхаусе должна быть , это по моему ваш вариант

Гурам
18.10.2018
09:28:50
Добрый день. При использовании запроса ALTER TABLE ..... ON CLUSTER ... DELETE ... появилась ошибка: Code: 60, e.displayText() = DB::Exception: There was an error on XX.XX.XX.XX: An error occured before execution: Code: 60, e.displayText() = DB::Exception: Table default.table doesn't exist., e.what() = DB::Exception, e.what() = DB::Exception Запрос выполняется через http интерфейс. название БД установлено GET параметром. Данная ошибка появилась после обновления до версии 18.14.8. Т.е. на удаленный хост запрос почему-то теперь стучится в БД по умолчанию, хотя до обновления запрос выполнялся. Кто-нибудь подскажет в чем причина?

Wolf
18.10.2018
09:30:28
создайте ишью на гитхабе, видимо баг

Igor
18.10.2018
09:31:13
у меня вообще ON CLUSTER в принципе не работает и виснет, везет что хоть ошибка есть)

Гурам
18.10.2018
09:33:37
Было один раз такое, что вис, но сейчас не виснет

Igor
18.10.2018
09:35:51
был баг что оно не работает в кластере, в котором есть internal replication. Создал без репликации - тот же эффект

Гурам
18.10.2018
09:48:12
Я точно не помню на чем у меня выскакивал данный баг, но суть была в том, что пока я тестировал данную конструкцию в определенный момент, запрос подвис и далее на ON CLUSTER вообще ничего не срабатывало. Помог только рестрт клика.

Wolf
18.10.2018
09:50:51
был баг что оно не работает в кластере, в котором есть internal replication. Создал без репликации - тот же эффект
что за баг? у меня недавно была проблема с он кластер после апдейта, но на деле ошибка появилась потому что после апдейта был перезапущен кх даже в бложик чирканул статейку http://pumainthailand.com/neponyatnaya-problema-s-klasternymi-zaprosa-v-baze-dannyh-clickhouse/

Гурам
18.10.2018
10:19:51
Для исследования нужно полное описание проблемы, чтобы можно было воспроизвести
Есть кластер из двух нод, создана реплецируемая таблица "db.table" (ReplicatedCollapsingMergeTree). При выполнении на первой ноде указанного выше запроса, через http интерфейс (название БД установлено GET параметром "database=db") появляется ошибка что на второй ноде нет таблицы "default.table". Хотя если в запросе явно задать ALTER TABLE db.table DELETE WHERE .... то такой запрос отрабатывает без ошибок.

undiabler
18.10.2018
10:22:29
ch не реплицирует сам структуру таблиц

ручками создавать надо на каждой ноде

Гурам
18.10.2018
10:22:54
Это мне?

undiabler
18.10.2018
10:23:40
ну да =) > создана реплецируемая таблица "db.table" создана на обеих нодах?

Alexandr
18.10.2018
10:24:39
всем привет :) У нас сейчас есть такая задача, перенести полностью базу с одной группы серверов на другие. У кого-то может быть был опыт, как к этому вообще лучше подходить? clickhouse-copier воспользоваться это нормальный вариант?

Гурам
18.10.2018
10:25:04
ну да =) > создана реплецируемая таблица "db.table" создана на обеих нодах?
1. Да, таблицы созданы везде 2. Я выше написал что запрос ранее работал 3. в последнем сообщении указанно что при указании БД в самом запросе он отрабатывает. Так что если бы небыло таблицы он не отрабатывал бы

Google
Vladislav
18.10.2018
10:31:52
привет. а делал кто-нибудь отдельный шард с hdd вместо ssd для холодных данных? интересует несколько вопросов: - как лучше переносить данные (допустим, старше 3 месяцев)? - наверно, стоит добавить первичный ключ со значением 0/1 для быстрого поиска? - может что-то еще?

Andrey
18.10.2018
10:46:29
@kshvakov Добрый день, подскажите пожалуйста как сделать вставку сразу нескольких строк, я динамически формирую строку, получается например так: stmt, err := tx.Prepare(insert into test.test (id, message) VALUES (?, ?) (?, ?)) _, err = stmt.Exec("1","1 message","2","2 message") получаю ошибку: expected 2 arguments, got 4

идея взята отсюда https://stackoverflow.com/questions/21108084/golang-mysql-insert-multiple-data-at-once

Vadim
18.10.2018
10:47:46
Привет всем, как узнать, почему КХ не перечитывает дочерний конфиг? в логах - ничего, даже если слать серверу HUP ничего не происходит

Dmitry
18.10.2018
10:52:33
Добрый день! Подскажите, пожалуйста, как правильно понимать фразу из документации по INSERT INTO (https://clickhouse.yandex/docs/ru/query_language/insert_into/): "Снижения производительности не будет, если: Данные поступают в режиме реального времени." Хотя часто в документации упоминается, что лучше вставлять отсортированные большие пачки данных (более 1000 строк). В моём случае в реальном времени приходит порядка 50 записей. Правильно я понимаю, что мне можно не накапливать 1000 строк, а сразу вставлять пришедшие 50, и на производительность это не повлияет?

Andrey
18.10.2018
10:52:52
Andrey
18.10.2018
11:12:03
@kshvakov но это уже не будет один запрос, это будет несколько запросов insert, хотелось сделать одним запросом, так как кликхаус не люлбит одиночные запросы

Andrey
18.10.2018
11:17:20
@kshvakov я думал , что Exec отправляет запрос и они копятся пока не будет Commit тоесть получится поток begin INSERT INTO T VALUES(1, "text") INSERT INTO T VALUES(2, "text") commit получается что 2 insert в транзакции

как там может получиться один запрос не могу понять

Страница 708 из 723