
Pavel
07.02.2017
10:57:48
офигеть!)
каждый раз сложный вопрос который донимает меня неделями уже решен в CH:) Супер!

Dmitry
07.02.2017
10:59:11
Только надо быть осторожно, в ней мало гарантий и есть небольшой риск потерять данные

Pavel
07.02.2017
11:03:41
в целом это для моего типа данных приемлемо

Google

Evgeny
07.02.2017
11:13:25

Иван
07.02.2017
11:55:05
доброго времени суток! я тупой, с линуксом на вы. расскажите как правильно развернуть CH на сервере, у которого нет доступа к интернету, или поделитесь полезной ссылкой. я попытался это сделать своими кривыми руками у меня ch-сервер не запускается и пишет ошибки: "No directory, logging in with HOME=/", "access to file denied: /opt/clickhouse/core"
дерьмом кидаться разрешается, ибо очень хочу поюзать CH и вытерплю все.

Pavel
07.02.2017
11:56:36
дык скачайте пакет если ос debian-like руками
вот отсюда: http://repo.yandex.ru/clickhouse/trusty/pool/main/c/clickhouse/

Иван
07.02.2017
11:57:49
так и сделал

Pavel
07.02.2017
11:58:02
и поставьте у себя как sudo dpkg -i <имя_пакета>
а как запускаете?
от рута?

Иван
07.02.2017
11:58:58

Pavel
07.02.2017
12:00:02
sudo service clickhouse-server start?

Иван
07.02.2017
12:00:09
скачал эти файлы, потом с помощью dpkg-scanpackage сделал apt реп и добавил его в source.list

Pavel
07.02.2017
12:01:43
ну sudo stat /opt/clickhouse/core

Google

Pavel
07.02.2017
12:01:49
sudo stat /opt/clickhouse
и наконец sudo stat /opt

Roman
07.02.2017
13:36:40
А через interserver_http_port можно произвести какие-нить деструктивные действия с сервером? Удалить данные, заальтерить или еще чего?

Pavel
07.02.2017
13:38:56
@rlomonosov А вы к нему напрямую обращаетесь?

Roman
07.02.2017
13:42:50
Я за него беспокоюсь. Он хоть и торчит во внутреннюю сеть, но мало ли

Pavel
07.02.2017
13:47:56
Через него можно налить каких-нибудь битых данных, но надо постараться, чтобы соблюсти нужный формат. Изменение метаданных через него выполнить нельзя.

Alexey
07.02.2017
13:50:50

Pavel
07.02.2017
13:51:59
залить можно данные в лююубю таблицу или толлько настреонную как ditributed?

Slach
07.02.2017
13:52:56
залить можно в любую и пока это вроде как быстрее выбрать конкретный сервер и залить в него, вместо того чтобы лить через distributed таблицу... коллеги я прав?

Roman
07.02.2017
13:55:04
> @milovidov_an
Через него можно скачать данные. Так что во внешнюю сеть торчать не должно.
Скачивание не беспокоит - он действительно торчит только во внутреннюю сеть. Но по ней шарятся всякие сканеры безопасности и любят тыкать куда не просят

papa
07.02.2017
14:26:38


Alexander
07.02.2017
14:31:04
5 Nested структур меня смущают тем, что у них должно быть в каждой одинаковое количество элементов. Т.е. если у одного профиля 20 целей, то мне и для всех нужно сделать массив из 20 целей с нулевыми элементами, иначе будут проблемы при развертке. В принципе это похоже на вариант с большим количеством колонок
Вообще Nested выглядит больше синтаксическим сахаром над массивом, не давая какого-то решения. Сразу возникают вопросы о слиянии, например. Я не очень понимаю, как должны сливаться два массива, так как в CH нет сложения массивов или умножения массива на число
Интуитивно хотелось сделать как-то так сначала
CREATE TABLE test.stat
(
date Date,
offer_id UInt64,
...
profiles Nested
(
id UInt64,
...
),
goals Nested
(
id UInt64,
...
)
) ENGINE = CollapsingMergeTree(date, (date, offer_id), 8192, sign);
но на самом деле это не сработает, так как целей больше профилей,
и, например, запрос с array join profiles as profile, goals as goal вернет ошибку
и опять же проблема со слиянием


papa
07.02.2017
14:50:16
а если бы у вас была обычная реационная схема, без всей этой бигдаты, у вас бы как эти данные лежали?
реляционная*

Alexander
07.02.2017
14:54:02
сейчас это лежит в Postgres, есть три таблички отдельные – со статистикой маркетплейса, со статистикой по профилям, со статисткой по целям
при запросах это все довольно медленно джойнится

Slach
07.02.2017
15:22:05
Citusdata пробовали?

Alexander
07.02.2017
15:34:28
не пробовали, а стоит? у нас шардирование обычно на уровне клиентов, если приходит большой клиент, ему просто выделяется отдельная железка
выделять по несколько железок кажется пока жирновато)

Google

Slach
07.02.2017
15:38:23
ок ясно
ну в том плане что в Цитусдата есть columnar storage cstore_fdw
и оно может вам на join, group by как то ускорить без перехода на другую платформу
но чего то такого советовать вам я боюсь =)
в кликхаусе вместо таблиц измерений будут "словари"
и в общем я не вижу проблем в случае если у вас "много пустых значений"
и вроде как джойнить словари вполне себе нормальная затея
и про ARRAY JOIN почитать наверное надо еще раз внимательнее насколько оно вам подходит

Alexander
07.02.2017
15:50:52
за cstore_fdw спасибо, для него тоже задачка у нас есть )
много пустых значений меня не пугает, я скорее думаю о том, что меньшее из бед – раздувание кол-ва колонок или раздувание строк с дублированием информации


Aleksey
07.02.2017
15:53:46
Привет!
Есть задача: заранее завести побольше логических шардов, чтобы отсрочить решардинг.
И есть 2 варианта решения:
1-й вариант: поднять под каждый шард отдельный инстанс ClickHouse. Т.е. изначально на каждом физическом сервере будет несколько инстансов, а при росте количества данных мы просто разнесём инстансы по разным машинам.
2-й вариант: в рамках одного инстанса завести несколько копий-"шардов" каждой таблицы, натравить на них Merge-таблицы, а Distributed-таблицы будут смотреть уже на эти Merge-таблицы.
Первый вариант выглядит более правильным, но мы сразу получаем много инстансов, усложняется администрирование.
Во втором варианте смущает связка двух сложных механизмов Merge+Distributed: есть опасения по поводу производительности.
Что посоветуете?
P.S.
В Distributed не пишем, только читаем, т.е. шардированием управляем вручную.

Slach
07.02.2017
15:54:29


Alexey
07.02.2017
16:06:14
Привет!
Есть задача: заранее завести побольше логических шардов, чтобы отсрочить решардинг.
И есть 2 варианта решения:
1-й вариант: поднять под каждый шард отдельный инстанс ClickHouse. Т.е. изначально на каждом физическом сервере будет несколько инстансов, а при росте количества данных мы просто разнесём инстансы по разным машинам.
2-й вариант: в рамках одного инстанса завести несколько копий-"шардов" каждой таблицы, натравить на них Merge-таблицы, а Distributed-таблицы будут смотреть уже на эти Merge-таблицы.
Первый вариант выглядит более правильным, но мы сразу получаем много инстансов, усложняется администрирование.
Во втором варианте смущает связка двух сложных механизмов Merge+Distributed: есть опасения по поводу производительности.
Что посоветуете?
P.S.
В Distributed не пишем, только читаем, т.е. шардированием управляем вручную.
Первый вариант имеет следующие недостатки:
- много инстансов на одном сервере сложнее в эксплуатации: директории, порты, скрипты start/stop и т. п;
- количество потоков для обработки запроса будет расчитываться неверно, придётся вручную ограничивать max_threads;
- вообще, с распределением ресурсов между инстансами могут быть проблемы.
Второй вариант имеет следующие недостатки:
- при использовании Merge таблиц, отключается автоматический перенос в PREWHERE;
В обеих вариантах, по сравнению с одной таблицей, будет чуть хуже распределение работы по ядрам.


Aleksey
07.02.2017
16:12:32
А явно заданный PREWHERE в Merge будет работать?

Alexey
07.02.2017
16:25:34
Будет.

Aleksey
07.02.2017
16:27:37
спасибо!

f1yegor
07.02.2017
19:06:54

Alexey
07.02.2017
19:13:53
Лучше через HTTP интерфейс.

f1yegor
07.02.2017
19:14:37
если бы кто написал небольшую спеку, я займусь

Anton
07.02.2017
19:26:36
Здравствуйте. Скажите, а clickhouse поддерживает https из коробки, или проще поставить перед ним nginx ?

Alexey
07.02.2017
19:27:39
> проще поставить перед ним nginx

Anton
07.02.2017
19:27:46
Окей )
А то шифрование как-то иначе не понятно как реализовать.

Roman
07.02.2017
19:28:17
а что понимается под состоянием кластера? стандартный мониторинг не дает достаточно информации?

Alexey
07.02.2017
19:30:17
Я не знаю, что точно имел ввиду Виктор.
Наверное, это картинка, где каждому серверу соответствует квадратик; наглядно представлены шарды и реплики, по цвету квадратика можно определить, жив ли сервер, посмотреть отставание реплик, какие-либо метрики производительности, а также system.processes и system.merges.

Roman
07.02.2017
19:32:40
думаю, можно расширить https://github.com/f1yegor/clickhouse_exporter дополнительными запросами и на их основе построить дашборд в графане
или добавить поддержку кастомных запросов в бд, как это сделано в postgres exporter

Google

f1yegor
07.02.2017
19:44:56
@the_real_jkee ^

Виктор
07.02.2017
19:45:58
О, крутяк
Я попробую написать что хочется более детально

f1yegor
07.02.2017
19:50:07
потому что да, часть инфы я уже собираю. https://grafana.net/dashboards/882 например replica leaders & read only replicas

Evgeny
07.02.2017
20:42:47
к вчерашнему вопросу насчет Buffer и проблем построчной записи - добавил поддержку Buffer таблицы в проект для питона infi.clickhouse_orm, 50 тыс записей пока в течении минут 40 полет на ноутбуке нормальный, никаких проблем. если кто пользуется этой библиотекой, то вот тут код с поддержкой буфера https://github.com/Infinidat/infi.clickhouse_orm/pull/15

f1yegor
07.02.2017
20:56:40
вы хотите сказать что 50к записей вставляются 40 минут?
или тестируете с 50к в секунду уже 40 минут?

papa
07.02.2017
21:10:13
возможно 50к записей это 20rps*40 минут.
в этом случае ожидается что полет будет нормальный и проблем не будет.

r
07.02.2017
21:12:04
Производительность при вставке данных.
Данные рекомендуется вставлять пачками не менее 1000 строк или не более одного запроса в секунду.
Что если вставлять более 1K строк чаще чем раз в секунду (большими инсертами). Как это будет сказываться на производительности? Оптимально ли это? Рекомендации указанные в руководстве относятся к инстансу/базе/таблице?

papa
07.02.2017
21:15:50
Buffer-таблицы https://clickhouse.yandex/reference_ru.html#Buffer добавляют к этому некоторые возможности.

Alexey
07.02.2017
21:19:25

Evgeny
07.02.2017
21:26:09

r
07.02.2017
21:31:04

Alexey
07.02.2017
21:33:40
Да.

r
07.02.2017
21:34:56
Алексей, спасибо за ответ, самое главное стало ясно что лучше делать вставки раз/сек, не чаще в каждую из таблиц.
Т.е. к примеру если имеем 1000 таблиц, следуем рекомендации - запись в каждую из них не чаще раз/сек, то каких-либо негативных последствий от общего количества вставок (1000/сек) ожидать не стоит?

Anton
07.02.2017
21:53:02
Пытались собрать из f87ae68, не удалось скомпилировать dbms/src/Client/Client.cpp, line 254, не нашлась функция read_history.
Кажется, строчкой выше написали #ifdef USE_READLINE, а имели в виду #if USE_READLINE.
А еще у вас больше 20Гб тестов, что съело место в разделе. Поправимо, то стало внезапностью.

Alexey
07.02.2017
22:27:00

Google

prll
07.02.2017
22:41:20

r
07.02.2017
22:49:46

Anton
07.02.2017
23:07:19

Igor
08.02.2017
09:46:23
Подскажите, в коде CH нашли хеш-функции FarmHash-семейста, которые не описаны в документации: https://clickhouse.yandex/reference_ru.html#Функции хэширования
SELECT farmHash64('hello')
┌─farmHash64(\'hello\')─┐
│ 14403600180753024522 │
Можем смело использовать в продакшене ?
И что лучше FarmHash или CityHash ?

Square
08.02.2017
10:40:10
Всем здрасьти в этом чяти
https://lonewolfer.files.wordpress.com/2015/01/hash-function-benchmark.png

Igor
08.02.2017
10:41:18
murmurhash, милота

Square
08.02.2017
10:42:06

Andrey
08.02.2017
10:46:52
Добрый день. Я верно понял, что репликация таблиц служит исключительно как failover и между репликами запросы не параллелятся? По крайней мере, у меня сложилось такое впечатление исходя из времени выполнения запроса на разных конфигурациях.

papa
08.02.2017
10:48:34
https://clickhouse.yandex/reference_ru.html#max_parallel_replicas

Dmitry
08.02.2017
10:55:28
А есть ли надежды на то, что runningAccumulate когда-нибудь заработает не только в пределах блока?

Vitaliy
08.02.2017
11:55:28

Alexandra
08.02.2017
14:42:47
Анонс от Яндекс.Метрики:
14 февраля у нас будет вебинар по работе с Logs API Яндекс.Метрики и ClickHouse.
Mariya Mansurova покажет, как на сырых данных строить кастомные модели атрибуции и считать Retention.
Зарегистрироваться можно здесь -
https://events.webinar.ru/10562/268557/

Alexey
08.02.2017
15:11:11


Igor
08.02.2017
15:32:23
> @milovidov_an
С имеющимися настройками, farmHash ничем не лучше cityHash.
Спасибо!