@clickhouse_ru

Страница 198 из 723
Василий
11.07.2017
08:54:29
привет. ведь приконектиться к серверу с кликхаусом дефолтная авторизация: ?username=default&password= так?

Roman
11.07.2017
09:01:39
Повторю вопрос, вдруг тот, кто знает вчера пропустил. 1) хотелось бы понять насколько оптимальна запись в AggregatingMergeTree, если хочется собирать данные по часам - везде в примерах по датам 2) И насколько там адекватно использовать GROUP BY во вложенных запросах и в целом вложенные запросы, Например: таблицы примерно так соотносятся: на каждую запись в Init в районе 10-15 записей в Event и 10-15 записей в Flow c одним sessionId metricN - uint8/16, ufa - фиксированная стринга CREATE MATERIALIZED VIEW default.AggregatedEvent ENGINE = AggregatingMergeTree(date, (hour, eventId, suid, date), 8192) AS SELECT toStartOfHour( toDateTime( time ) ) hour eventId, suid, any(date) date, countState() count, uniqState(ufa) AS unique, avgState(metric1) AS metric1, avgState(metric2) AS metric2, avgState(metric3) AS metric3 FROM ( SELECT sessionId, time, eventId, date, metric1, metric2, metric3 FROM ( SELECT sessionId, time, eventId, date FROM Event ) ANY LEFT JOIN ( SELECT sessionId, avg(metric1) metric1, avg(metric2) metric2, avg(metric3) metric3 FROM Flow GROUP BY sessionId ) USING sessionId ) ANY LEFT JOIN ( SELECT id sessionId, suid, ufa FROM Init ) USING sessionId GROUP BY hour, eventId, suid;

Василий
11.07.2017
09:03:41
Повторю вопрос, вдруг тот, кто знает вчера пропустил. 1) хотелось бы понять насколько оптимальна запись в AggregatingMergeTree, если хочется собирать данные по часам - везде в примерах по датам 2) И насколько там адекватно использовать GROUP BY во вложенных запросах и в целом вложенные запросы, Например: таблицы примерно так соотносятся: на каждую запись в Init в районе 10-15 записей в Event и 10-15 записей в Flow c одним sessionId metricN - uint8/16, ufa - фиксированная стринга CREATE MATERIALIZED VIEW default.AggregatedEvent ENGINE = AggregatingMergeTree(date, (hour, eventId, suid, date), 8192) AS SELECT toStartOfHour( toDateTime( time ) ) hour eventId, suid, any(date) date, countState() count, uniqState(ufa) AS unique, avgState(metric1) AS metric1, avgState(metric2) AS metric2, avgState(metric3) AS metric3 FROM ( SELECT sessionId, time, eventId, date, metric1, metric2, metric3 FROM ( SELECT sessionId, time, eventId, date FROM Event ) ANY LEFT JOIN ( SELECT sessionId, avg(metric1) metric1, avg(metric2) metric2, avg(metric3) metric3 FROM Flow GROUP BY sessionId ) USING sessionId ) ANY LEFT JOIN ( SELECT id sessionId, suid, ufa FROM Init ) USING sessionId GROUP BY hour, eventId, suid;
я б рад тебе помочь, Роман. Но я к своему кликхаусу даже присоединиться не могу

Kirill
11.07.2017
09:03:41
привет. ведь приконектиться к серверу с кликхаусом дефолтная авторизация: ?username=default&password= так?
смотря каким клиентом, если просто по http то можно почитать тут https://clickhouse.yandex/docs/en/single/#http-interface Using HTTP Basic Authentication. Example: echo 'SELECT 1' | curl 'http://user:password@localhost:8123/' -d @- In the ‘user’ and ‘password’ URL parameters. Example: echo 'SELECT 1' | curl 'http://localhost:8123/?user=user&password=password' -d @- Using ‘X-ClickHouse-User’ and ‘X-ClickHouse-Key’ headers. Example: echo 'SELECT 1' | curl -H "X-ClickHouse-User: user" -H "X-ClickHouse-Key: password" 'http://localhost:8123/' -d @-

Google
Василий
11.07.2017
09:04:19
мне надо чтобы приложение с ним работало. порт 8123 открыт на сервере.

стучусь на tcp://server:8123/?username=default&password=

Slach
11.07.2017
09:05:23
может http а не tcp ? ;)

Kirill
11.07.2017
09:05:26
на 9000 по tcp стучитесь

Василий
11.07.2017
09:06:17
в ответ: :8123: connectex: No connection could be made because the target machine actively refused it.

на 9000 по tcp стучитесь
счас попробую

может http а не tcp ? ;)
исходный код по tcp стучится

на 9000 по tcp стучитесь
не, аналогично.

файервол для порта открыт

Tima
11.07.2017
09:10:37
привет. ведь приконектиться к серверу с кликхаусом дефолтная авторизация: ?username=default&password= так?
Ни через HTTP, ни через консольный клиент, ни через jdbc эти дефолтные параметры указывать не нужно

Virus
11.07.2017
09:11:45
на машине с кликхаусом сделайте netstat -anp|grep click

Google
Василий
11.07.2017
09:12:32
на машине с кликхаусом сделайте netstat -anp|grep click
sudo netstat -anp|grep click tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 17784/clickhouse-se tcp 0 0 127.0.0.1:9009 0.0.0.0:* LISTEN 17784/clickhouse-se tcp 0 0 127.0.0.1:8123 0.0.0.0:* LISTEN 17784/clickhouse-se tcp6 0 0 ::1:9000 :::* LISTEN 17784/clickhouse-se tcp6 0 0 ::1:9009 :::* LISTEN 17784/clickhouse-se tcp6 0 0 ::1:8123 :::* LISTEN 17784/clickhouse-se

Virus
11.07.2017
09:12:47
у вас кликхаус только локалхост слушает

поменяйте в конфиге адрес на 0.0.0.0

Василий
11.07.2017
09:13:26
а параметром ему при старте сказать нельзя?

Mike
11.07.2017
10:38:55
Глупый вопрос к разработчикам: а что мешает делать апдейты для типов данных фиксированной длины, типа U/IntXY или FixedString? Можно же, в теории, прямо в файлике, в одном и ровно одном месте поменять и евент в реплики отправить. Медленно? Да вроде бы быстро, опять же в теории, особенно если редко использовать.

Mike
11.07.2017
10:41:56
Эээ, тогда колонки для апдейтов помечать и не сжимать :)

Александр
11.07.2017
11:09:53
Ох, не знаю уже что делать. Проблема следующая: отправляю csv файл зажатый на сервер КХ (разные ноды, разные версии), судя по iftop и tcpdump на сервере и клиенте пакеты ходят и все ок. КХ принимает данные и пишет строчку в логе, что запрос поступил и все такое. Далее все просто висит. Клиент тупо чего то ждет и по таймауту отваливается. Причем этот же клиент в другом проекте работает отлично с теми же серверами КХ. Окружение одинаковое, с сетью проблем нет. Может быть со стороны КХ что он задумался или еще чего?

Причем во время "зависания" если разоврать соединение, то КХ ошибок не выдает и данные доступны в таблице для чтения. В процессе "зависания" же данные для чтения недоступны.

Причем последний пакет перед зависанием судя по tcpdump от КХ такой: 14:07:37.454475 IP clickhouse-0.8123 > curs-handlers-0.55638: Flags [.], ack 277894, win 1452, options [nop,nop,TS val 1436621072 ecr 1926019], length 0

Ну и на клиенте соответственно такой же пакет имеется

Хотя лог tcpdump немного отличается на клиенте и сервере. Сервер 14:07:37.454464 IP curs-handlers-0.55638 > clickhouse-0.8123: Flags [P.], seq 277188:277894, ack 26, win 229, options [nop,nop,TS val 1926019 ecr 1436621072], length 706 14:07:37.454475 IP clickhouse-0.8123 > curs-handlers-0.55638: Flags [.], ack 277894, win 1452, options [nop,nop,TS val 1436621072 ecr 1926019], length 0 Клиент 14:07:37.454429 IP curs-handlers-0.55638 > 10.20.121.4.8123: Flags [P.], seq 277188:277894, ack 26, win 229, options [nop,nop,TS val 1926019 ecr 1436621072], length 706 14:07:37.454437 IP 10.20.121.4.8123 > curs-handlers-0.55638: Flags [.], ack 269948, win 1428, options [nop,nop,TS val 1436621072 ecr 1926019], length 0 14:07:37.454521 IP 10.20.121.4.8123 > curs-handlers-0.55638: Flags [.], ack 275740, win 1428, options [nop,nop,TS val 1436621072 ecr 1926019], length 0 14:07:37.454566 IP 10.20.121.4.8123 > curs-handlers-0.55638: Flags [.], ack 277894, win 1452, options [nop,nop,TS val 1436621072 ecr 1926019], length 0 Судя по логу видно, что парочки пакетов не хватает.

Может быть такое, что клиент по факту пакеты от КХ получил, но сервер КХ не получил ответа о том, что пакеты дошли и ждет?

Dmitry
11.07.2017
11:26:31
Новые возможности: * Распределённые DDL (например, CREATE TABLE ON CLUSTER) * Реплицируемый запрос ALTER TABLE CLEAR COLUMN IN PARTITION * Движок таблиц Dictionary (доступ к данным словаря в виде таблицы) * Движок баз данных Dictionary (в такой базе автоматически доступны Dictionary-таблицы для всех подключённых внешних словарей) * Возможность проверки необходимости обновления словаря путём отправки запроса в источник * Qualified имена столбцов * Квотирование идентификаторов двойными кавычками * Сессии в HTTP интерфейсе * Запрос OPTIMIZE Replicated таблицы теперь можно выполнять не только на лидере Обратно несовместимые изменения: * Убрана команда SET GLOBAL Мелочи: * Теперь после получения сигнала в лог печатается полный стектрейс * Ослаблена проверка на количество повреждённых/лишних кусков при старте (было слишком много ложных срабатываний) Исправления: * Исправлено залипание плохого соединения при вставке в Distributed таблицу * GLOBAL IN теперь работает при запросе из таблицы Merge, смотрящей в Distributed * Теперь правильно определяется количество ядер на виртуалках Google Compute Engine * Исправления в работе executable источника кэшируемых внешних словарей * Исправлены сравнения строк, содержащих нулевые символы * Исправлено сравнение полей первичного ключа типа Float32 с константами * Раньше неправильная оценка размера поля могла приводить к слишком большим аллокациям * Исправлено падение при запросе Nullable столбца, добавленного в таблицу ALTER-ом * Исправлено падение при сортировке по Nullable столбцу, если количество строк меньше LIMIT * Исправлен ORDER BY подзапроса, состоящего только из константных значений * Раньше Replicated таблица могла остаться в невалидном состоянии после неудавшегося DROP TABLE * Алиасы для скалярных подзапросов с пустым результатом теперь не теряются * Теперь запрос, в котором использовалась компиляция, не завершается ошибкой, если .so файл повреждается
можете подсказать, что такое "Qualified имена столбцов"?

papa
11.07.2017
11:27:29
table.column

Alex
11.07.2017
11:32:45
Кстати к вопросу о распределённых DDL. В моём случае не взлетело - на всех серверах distributed_ddl установлен, при попытке прогнать запрос, клиент висит 2 минуты и отваливается. В зукипере эти транзакции видны, но никто их не применяет.

Pavel
11.07.2017
11:34:09
Есть вопросик по Grafana для CH от Vertica

недавно поставили актуальную версию из grafana.net и почему-то не могу никак сменить "Table transformation: Time series to rows" на "Table".

Google
Pavel
11.07.2017
11:35:03
оно сбрасывается обратно каждый раз :(

Александр
11.07.2017
11:38:37
Хм, к слову о своей проблеме. На маленьких объемах данных все ок, например если писать 100 строк через файл, а если писать 10к строк через файл, то все, начинает висеть. Может быть проблема с фрагментацией пакетов?

Pavel
11.07.2017
11:42:20
@BloodJazMan сейчассс...

Александр
11.07.2017
11:51:25
Прикольно. Файл больше 1 мегабайта "зависает". Попробую на физических тачках, а не в виртуалках

Pavel
11.07.2017
11:57:15
заделал баг для Vertica/Grafana: https://github.com/Vertamedia/clickhouse-grafana/issues/11

Александр
11.07.2017
12:29:44
А Clickhouse как то обрабатывает заголовок Expect: 100-Continue ?

Igor
11.07.2017
12:57:38
подскажите плиз, а можно ли nullable тип кастануть к non-nullable?

Обычный CAST(..., 'String') выдает Cannot convert data from a nullable type to a non-nullable type

пытаюсь сделать приведение Nullable(String) типа к типу String при создании MaterializedView

Roman
11.07.2017
13:02:33
coalesce( .., '' ) не помогает?

Igor
11.07.2017
13:03:42
спасибо, помогло. не знал что coalesce() появился

Roman
11.07.2017
13:07:15
а вы вьюхи по датам тоже делаете?

Igor
11.07.2017
13:11:38
А зачем? Если дата не нужна - можно же не включать ее в PK, по логике

Roman
11.07.2017
13:19:44
у вас AggregatingMergeTree? ну вы же по каким-то срезам временным агрегируете?

Artem
11.07.2017
14:15:39
Привет

Помогите с установкой и запуском плиз

Поставил на убунту, но потом наткнулся на такую информацию, что можно запустить на винде через какой то docker

Что это такое и как его запустить

Google
papa
11.07.2017
14:18:51
а вы пробовали доку почитать?

Artem
11.07.2017
14:19:38
,Да, в официальной доке кликхауса про это ничего нет



Pavel
11.07.2017
14:19:50
скорее вопрос про что такое Docker

Artem
11.07.2017
14:19:57
Только на юптере

Хочу на винде кликхаус поднять, помогите пжс

Pavel
11.07.2017
14:20:35
ну а гугл на что, простите?

https://www.docker.com/

официальный сайт проекта

Get Docker, в самом верху

https://www.docker.com/docker-windows

Artem
11.07.2017
14:40:37
Установил. В мануале написано что он сам запустится и в трее появится значек с китом, но у меня он не запустился, поиск по приложениям тоже не нашел (

Как его руками найти и стартануть?

Slach
11.07.2017
14:41:31
у тебя Windows 10 ?

Artem
11.07.2017
14:41:39
Да

Права пользователя

Slach
11.07.2017
14:43:17
тогда у тебя скорее всего ничего не поставилось... Hyper-V надо разрешить в компонентах Windows

Vladimir
11.07.2017
14:44:28
Всем привет. У нас в одной таблице мы изменяем некоторые данные (CollapsingMergeTree). Ради оптимизации хранения данных мы вынесли изменямые поля в отдельную таблицу, а неизменяемые оставили в другой. Для того, чтобы схлопыпалось (и как следствие дублировалось) меньше полей. Есть ли в этом смысл, или стоит все же использовать одну CollapsingMergeTree-таблицу?

Artem
11.07.2017
14:44:29
Хайпер в уже запускал, есть у меня

Когда виртуалку запускаю ввожу логин пароль локального админа. Видимо и докер нужно так же запускать из под админа, но где его найти не понятно

Google
Artem
11.07.2017
14:47:17
Нашел ?

Igor
11.07.2017
14:50:37
@kraynenko не, я вот щас попробовал колонку Date сделать просто одним значением и не включать в PK для AggregateMergeTree, чтобы сделать предгруппировку в 300 млн таблице, работает отлично. То есть не обязательно над датами это делать, можно по чему угодно.

Alex
11.07.2017
15:39:49
Подскажите, пожалуйста, а время возникновения события можно класть в первичный ключ (речь о тысячах эвентов в секунду), или это сильно по performance бахнет?

Kirill
11.07.2017
16:35:31
Подскажите, пожалуйста, а время возникновения события можно класть в первичный ключ (речь о тысячах эвентов в секунду), или это сильно по performance бахнет?
по производительности не особо бахнет, а эффективность можно посчитать вот так SELECT sum(if(c >= 8192, c, 0))/sum(c) FROM (SELECT count() AS c FROM table GROUP BY index_col1, index_col2, ..., index_colN ) чем ближе к 1 - тем лучше

Alex
11.07.2017
16:46:12
А зачем? Первичный ключ может быть составным. Например может содержать дату и id-записи
Я в первичный ключ заношу время события (т.к. по нему идёт фильтрация при агрегации) и id записи (для дедупликации)

Roman
11.07.2017
16:49:45
В прошлый раз, когда я поднял этот вопрос, мнения разделились, имеет ли это смысл. Мы тоже перед таким выбором стоим )

Vladimir
11.07.2017
17:49:38
Может кто сталкивался

Linux OOM killer под наргузкой прибивает КХ

... [357455.218075] Killed process 7326 (clickhouse-serv) total-vm:48389456kB, anon-rss:30015008kB, file-rss:0kB [357456.127546] Killed process 7328 (clickhouse-serv) total-vm:48389456kB, anon-rss:30015496kB, file-rss:0kB [357457.726902] Killed process 7372 (clickhouse-serv) total-vm:48389456kB, anon-rss:30015604kB, file-rss:0kB [357460.421496] Killed process 7384 (clickhouse-serv) total-vm:48389456kB, anon-rss:30016480kB, file-rss:4kB [357592.325954] Killed process 7452 (clickhouse-serv) total-vm:42034508kB, anon-rss:29854968kB, file-rss:0kB

Можно как-то ограничить потребление памяти, ну типа 80% Я в линуксе не очень :)

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