
Maksim
10.04.2017
13:00:37
Скажите сервера 1 CPU и 2gb RAM это очень плохо для запросов на select sum в таблицы с 100 млн записей каждую минуту и около 1000-2000 вставок в секунду ? прочитал что RAM должно быть столько же сколько ГБ данных (я так понял данные в памяти висят). кто что скажет по этому поводу?

Dmitry
10.04.2017
13:08:54
Привет. Мы выложили в OpenSource Graphouse - компонент, который позволяет использовать ClickHouse как хранилище метрик для Графита.
Graphouse содержит:
1. TCP cервер для приема метрик
2. HTTP API для поиска метрик и получения данных (с питонячим модулем для graphite-web)
3. HTTP API для управления деревом метрик.
Лежит тут - https://github.com/yandex/graphouse
Доступны deb пакеты.
Документацию постепенно дополняем. Будем рады любым замечаниям и предложениям.

Vitaliy
10.04.2017
13:09:22

Google

Maksim
10.04.2017
13:11:40

Bob
10.04.2017
13:49:31
Привет @AndreevDm ! Круто! А не подскажешь, чем вы проверки делаете?

Dmitry
10.04.2017
13:49:48
Какие именно проверки?

Bob
10.04.2017
13:50:11
Alertmanager какой..
...Что шлет email когда все плохо)

Dmitry
10.04.2017
14:34:21
У нас всё своё

Bob
10.04.2017
14:36:51
А вы на Graphouse остановитесь или и ее выложите? ))

Dmitry
10.04.2017
14:52:46
Ничего такого выкладывать не планируем

Alexey
10.04.2017
17:28:26

Maksim
10.04.2017
17:30:04

Maksim
10.04.2017
17:31:56

Alexey
10.04.2017
17:32:55

Google

Alexey
10.04.2017
17:35:25


Maksim
10.04.2017
17:39:45

Alexey
10.04.2017
17:41:29
А зачем такие слабые машины? Лучше меньше машин, по посерьёзнее.

Maksim
10.04.2017
17:46:31
А зачем такие слабые машины? Лучше меньше машин, по посерьёзнее.
возможно. решили просто попробовать вытянет ли. и он тянет нормально, но когда начинает выгружать данные из 100 млн таблиц с компрессией то average растте критически. думал сделать ограничение cpu для процесса. На самом делел тут проблема лишь в бэкапе.
Алексей а скажите пожалуйста при однородной схеме кластера на какой сервер слать запрос? или не важно? он перенаправит на другой сервер запрос и вернет результат на первый?


Alexey
10.04.2017
17:50:55
> возможно. решили просто попробовать вытянет ли. и он тянет нормально, но когда начинает выгружать данные из 100 млн таблиц с компрессией то average растте критически. думал сделать ограничение cpu для процесса. На самом делел тут проблема лишь в бэкапе.
Для одного запроса ClickHouse использует по-умолчанию не больше CPU ядер, чем есть на машине.
LA может быть большим, например, из-за того, что система упирается в диски. ClickHouse хочет прочитать что-то с диска. При этом в системе работают другие программы, которые тоже периодически что-то читают, и им приходится тоже ждать. Так получается больше потоков, которые ждут диска и растёт LA.
Вы можете легко это проверить, запустив
iostat -dmx 1
> Алексей а скажите пожалуйста при однородной схеме кластера на какой сервер слать запрос? или не важно? он перенаправит на другой сервер запрос и вернет результат на первый?
Можно отправлять запрос на любой сервер, он выполнит его распределённо и вернёт результат (впрочем, в случае наличия одного шарда - выполнит его у себя).
Выбирать следует любой живой сервер, возможно с приоритетами в зависимости от расположения в сети. Вы можете сделать логику на стороне клиента, которая просто выбирает первый попавшийся живой сервер по кругу, соединяясь с небольшим таймаутом. Или можете использовать HAProxy.


Maksim
10.04.2017
17:55:01

Alexey
10.04.2017
18:01:40
Достаточно проверять возможность соединения с сервером за небольшой таймаут, если соединение ещё не установлено. Это покрывает почти все кейсы (хотя и не все).
Таймаут на результат не подходит. Запросы бывают разные, с разным временем выполнения.

Maksim
10.04.2017
18:08:02

Alexey
10.04.2017
18:16:29
Есть немного здесь: https://clickhouse.yandex/tutorial.html
Но без пошаговой инструкции.

f1yegor
10.04.2017
18:59:11
@milovidov_an http://devzen.ru/episode-0135/ это одна из тем слушателей. слушать с 01:42:44

Alexey
10.04.2017
19:02:56
Спасибо! Вчера послушал. Человек говорит странное мнение. Как можно подумать, что ClickHouse подходит "только для int-ов", когда самый популярный кейс - это clickstream, где всякие URL, Referer и тому подобное.

Pavel
10.04.2017
19:26:13
и правда странное :)

Maksim
10.04.2017
19:41:52
добрый вечер, никто не сталкивался с Read timed out равным 30 секундам на jdbc? хачется его увеличить

Maksim
10.04.2017
19:45:18

Pavel
10.04.2017
19:52:29
есть глупый вопрос, есть буфер таблица traffic_buffer, есть таблица, в которую данные пушатся для сохранения на диск - traffic. Хочется сделать селект данныех только из буфер таблицы, чтобы не было выборки из таблицы, которая уже на диске.
судя по документации, select * from traffic_buffer делает выборку из буфер таблицы и из той, что уже сохранена на диск. А мне вот надо именно внутренности буфера.

Alexey
10.04.2017
19:55:19

Google

Alexey
10.04.2017
19:55:54

Pavel
10.04.2017
19:55:58
:(
очень-очень жаль :(
Спасибо за ответ!

Maksim
10.04.2017
19:57:12

Maksim
10.04.2017
19:57:26
Если множество столбцов таблицы Buffer не совпадает с множеством столбцов подчинённой таблицы, то будут вставлено подмножество столбцов, которое присутствует в обеих таблицах.
а если добавить поле которое будет присутствовать только в буферизированной таблице и по нему делать where ?

Alexey
10.04.2017
19:58:06
Спасибо за ответ!
Эту возможность можно добавить - с помощью виртуальных столбцов. Для примера смотрите использование столбца _part в StorageMergeTree.


Maksim
10.04.2017
20:01:21

Alexey
10.04.2017
20:12:23
На стороне клиента, который ходит на ваш кластер из одного шарда и многих реплик, вы можете воспользоваться одним из трёх вариантов:
1. Выбирать живую реплику в клиентском коде.
2. Установить HAProxy и ходить в него.
3. Установить пустой clickhouse-server и создать на нём Distributed таблицу, которая смотрит на кластер. Ходить в него.

Maksim
10.04.2017
20:22:37

Maksim
10.04.2017
20:23:28

Alexey
10.04.2017
20:24:47
Обычно просто для отказоустойчивости и распределения нагрузки.

Maksim
10.04.2017
20:27:37
но репликация должны быть двухстороняя ?
если говорить о однородной схеме класстера

Alexey
10.04.2017
20:28:22
В ClickHouse репликация всегда multi-master.

Pavel
10.04.2017
21:14:22
вопрос по плагину Гарфаны для CH. А как добиться, чтобы оно работало, когда у меня CH на 127.0.0.1, а в гарфану я хожу проксируя ее через nginx с http auth?
я выбираю proxy режим, но при попытке теста соединения меня выбивает и требует пароль от узла, на котором у меня доступна графана.

Google

Pavel
10.04.2017
21:16:27
InfluxDB подключен точь-в-точь по такой же схеме, но при этом пашет ОК.
Такое ощущение, то ли он пытается использовать мой http auth пароль для того, чтобы влезть в CH либо что-то еще.

Дмитрий
10.04.2017
21:21:38
Я могу ошибаться но галочка proxy в grafana в таком случае не нужна

Pavel
10.04.2017
21:23:51
не, у меня что инфлакс что кликхаус - на 127.0.0.1
Графана выставлена на публичный айпи и закрыта http auth. То есть инфлакс ходит в режиме прокси.
Пытаюсь добиться точь-в-точь такого же поведения с CH

Дмитрий
10.04.2017
21:24:30
http://ip_proxy:порт_clickhouse + Basic Auth c логиным и паролем от CH

Pavel
10.04.2017
21:26:56
а если пароль на CH дефалтный / без пароля?
меня еще смущает "There is a small feature - ClickHouse treats HTTP Basic Authentication credentials as a database user and will try to run queries using its name."

Дмитрий
10.04.2017
21:28:42
Так не пробовал но по умолчанию у пользователя default в пароля нет
Если не вводить пользователя используется пользователь default

Pavel
10.04.2017
21:29:56
вот так вот оно ведет себя в отладке хрома
Www-Authenticate:Basic realm="ClickHouse server HTTP API"

Дмитрий
10.04.2017
21:32:12
http://ip:8123/ что выдает в отладке

Pavel
10.04.2017
21:32:13
угу, судя по всему как-то данные от моего логина в Графану закрытого http auth просачиваются как реквизиты для коннекта к кликхаусу

Vladimir
10.04.2017
21:32:46
скорее всего надо настраивать.
Просто если два basic

Pavel
10.04.2017
21:32:56
Bad Gateway :)

Vladimir
10.04.2017
21:32:59
то один затрет второй

Google

Vladimir
10.04.2017
21:33:02
профит

Pavel
10.04.2017
21:33:30
ну при выборках с CH мне вообще атворизация не нужна, все с одних реквизитов лезут

Дмитрий
10.04.2017
21:35:45
Это из описания clickhouse datasource c grafana.com "ClickHouse treats HTTP Basic Authentication credentials as a database user and will try to run queries using its name."
Видимо так как ты хочешь не получиться сделать

Pavel
10.04.2017
21:37:24
или создать такого же юзера в базе, лол.

Дмитрий
10.04.2017
21:37:56
Ну это что то больно извращенно и не факт что работать будет

Vladimir
10.04.2017
21:39:50
мне всегда казалось что в графане можно переопределить user/password в проксе.

Pavel
10.04.2017
21:40:15
как-нить вот так http://default:@127.0.0.1:8123 ?

Vladimir
10.04.2017
21:40:24
например так

Pavel
10.04.2017
21:40:38
неа, нихт.

Vladimir
10.04.2017
21:40:44
ну либо извратиться с авторизацией.
я думаю можно в нгинксе типа так
http://shairosenfeld.blogspot.ru/2011/03/authorization-header-in-nginx-for.html
ну либо почитать подобное.

Vladimir
10.04.2017
21:41:21
неа, нихт.
как минимум в графитном datasource'е можно ткнуть галку basic auth

Vladimir
10.04.2017
21:41:24
я буду такое делать но не сейчас. Просто пару раз наталкивался на подобное