
Виктор
16.11.2016
16:25:52
Точнее скажет Наташа @NataMakarova

Roman
16.11.2016
16:33:57

Alexey
17.11.2016
04:58:43
Добрый день всем!
Кто-нибудь грузил данные в CH из hadoop (hdfs)?
Как лучше всего делать? Если пускать map, то CH давится объёмами (hadoop кластер мощнее). Запускать отдельное приложение- админы против (ещё одна программа- ещё им работы).

Evgeniy
17.11.2016
05:02:55

Google

Alexey
17.11.2016
05:04:33
Хотя бы и так - в hadoop есть отлаженный процесс расчётов данных под конкретные алгоритмы. А в CH будут аналитики искать новые.

Evgeniy
17.11.2016
05:05:10
Блин .. это рвет мою картину мира )) Обычно все ровно наоборот
- или Вы хотите сказать что CH гораздо удобнее в анализе сырых данных чем hadoop (+ hive(hawq))
o-o-o может ну его hadoop ? )

Виктор
17.11.2016
07:03:34
Тут смотря что называть сырыми данными
Если там неизвестно что, то лучше hadoop
А если схема есть, то ClickHouse обычно будет сильно удобней
Особенно если сравнивать с Hive

Alexey
17.11.2016
07:06:07
Схема есть. У нас две связанные "таблицы". В каждую ежедневно льются сотни миллионов строк (то же структуры).
Надо аналитикам покрутить "а вот если сделать группировку вот так и вот сяк, то что будет?".

Evgeniy
17.11.2016
09:25:47

Alexey
17.11.2016
09:31:47
Удобнее ли клик? Я не знаю. Это надо исслидовать.
Вопрос про хадуп собственно.

Алексей
17.11.2016
09:38:17
привет. на крайний случай можно же всегда выплюнуть CSV из хадупа на ноду КХ и загрузить балк лоадом оттуда в ХД. такой вариант не рассматривали ?

Alexey
17.11.2016
09:39:00
Нет пока. Спасибо, подумаем.

Алексей
17.11.2016
09:43:32
а у вас разовая выгрузка с хадупа или периодически собираетесь ? просто интересно, как кто с хадупа инкремент захватывает

Google

Nikita
17.11.2016
09:45:16
каждый день выгрузка
логов за один день

Алексей
17.11.2016
09:45:29
а, ну по дате инкремент просто
это проще конечно

Alexander
17.11.2016
09:46:28
Всем привет! Писали в техподдержку, но там ответа так и не получили, решил сюда обратиться:)
Столкнулись с такой проблемой: после создания любой таблицы в базе и попытке обращения к этой таблице возникает ошибка вида -
Code: 1000. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: File not found: /opt/clickhouse/data/myapptest2/testtable/pageURL.bin.
ClickHouse client version 1.1.54030.
ClickHouse server version 1.1.54030
Обновили до версии 1.1.54046
Теперь следующее поведение:
2016.11.15 12:58:56.602 [ 2 ] <Error> HTTPHandler: Poco::Exception. Code: 1000, e.code() = 2, e.displayText() = File not found: /opt/clickhouse//data/myapp/installations/app_id.bin, e.what() = File not found
Может кто знает в какую сторону стоит копать?

Evgeniy
17.11.2016
09:50:04

Alexander
17.11.2016
09:55:45
Ставили из пакета который указан на clickhouse.yandex, версия - Ubuntu 16.04 LTS

Evgeniy
17.11.2016
09:56:35
из сырцов собрать можете ? - обычно это помогает если не хватает связаной библиотеки , то явно ошибки огребете

Alexander
17.11.2016
10:03:24
Не пробовали, будем пробовать. Собрать из сырцов и протестировать этот же момент?

Андрей Михайлович
17.11.2016
10:18:25
Добра. А вы когда выкатываете что-то, всегда не пишете как собирать?

?Zloool?
17.11.2016
10:20:17


Андрей Михайлович
17.11.2016
10:21:01
О! Класс. Запихнули в doc. Теперь вижу.
В том смысле, что это умолчание. Я ж не настраивал пути.
Потому мне не понятно, кто и где это прописал.

?Zloool?
17.11.2016
10:22:37
Это так, предположение, я без идей

Андрей Михайлович
17.11.2016
10:23:35
А вот мне ещё другое интересно: собрали пакет, а в ответе написано, что где-то чего-то не хватает. Вроде как при грамотной сборки зависимости тянутся сами. Не?
Это я про репу

Pavel
17.11.2016
10:47:09

Dmitry
17.11.2016
10:47:38

Google

Андрей Михайлович
17.11.2016
10:51:34
Привет. А движок какой?
Хороший вопрос. Там ставили также, как и тыкдом. Так что даже не вдавались в этот вопрос. Это надо смотреть в коде или спрашивать у разрабов.
Собственное, ссылка https://github.com/5craft/blackbears-analytics
попробуем сейчас выяснить.
я, кстати, даже не знал, что у него их может быть несколько

Nikita
17.11.2016
10:54:08

Pavel
17.11.2016
10:55:06
для большинста случаев тебе нужно семейство MergeTree движков. Судя по пути движок стоит не MergeTree. Чтобы посмотреть движок "show create table", в конце он написан

Андрей Михайлович
17.11.2016
10:59:02
Я вижу, что log. Его ж можно сменить на ходу?
или это вообще не мне было? ?

Dmitry
17.11.2016
11:00:40

Pavel
17.11.2016
11:02:44
или это вообще не мне было? ?
нет, создай новую. И перелей. В MergeTree есть индексы, репликация(ReplicatedMergeTree).
Вообще не тебе, но рекомендации общие.
На Log можно легко увидеть, как быстро работает full scan в ClickHouse.

Alexey
17.11.2016
11:37:50

Dmitry
17.11.2016
11:40:29
Там в коментах есть про 2.7

Алексей
17.11.2016
13:08:16

Alexey
17.11.2016
17:47:08
Количество одновременных запросов на пользователя - можно. Но время ожидания - нет (при превышении сразу кидается исключение).

Алексей
17.11.2016
19:20:18
Вот очередь бы реализовать и было бы супер
Нагрузки балансировать для пиков

Alexey
17.11.2016
19:21:30
Запишу на секретную страничку.
У нас есть такое только для общего количества запросов на сервер. Но почти бесполезно. Потому что выполняющийся запрос не обязательно тратит ресурсы, а может ждать данных по сети или отправлять данные клиенту. Поэтому общее количество запросов на сервер ставим в заведомо большую величину.
А вот для пользователей было бы полезно. Например, ставишь максимум два одновременных запроса, третий ждёт.

Алексей
17.11.2016
20:15:45
да

Google


Алексей
17.11.2016
20:15:57
плюс параметр таймаута очереди
например 5 минут если очередь конкурентов не освободилась, то пристреливать запрос в очереди долго ждущий
когда ддосят всякие кубы, хадупы, а так же самописные системы, забивая глупыми запросами и мешая остальным жить в системе, очень помогает
и еще разрабов очередь очень помогает успокоить админам, которым хочется, чтобы система в любые пики сохраняла адекватное время ответа :)
в вертике поглубже сделано - там есть понятие "пул ресурсов", на который цепляется выделенная память, приоритеты на доступ к ресурсам, можно прицепить явно количество процов и количество конкурентов. на пулы тематических пользователей цепляют, например пул для загрузчиков, для агрегатников, для адхоков, для систем забора инфы и т.д.
в итоге каждая группа юзеров в свой песочнице - если кто то плохо сделал, остальные пулы и юзеры от этого не страдают
ну и до тучи отстрел запросов с очереди быстрого пула в более медленный не приоритетный и т.д., много всего, но имхо это уже от задач системы зависит, наверное КХ усложнять всем этим на текущем этапе не надо, только багов огрести можно
очередь и все довольны :)


/dev
17.11.2016
20:28:58


Алексей
17.11.2016
20:34:18
ну тут дело админа
нужное количество конкурентов и ресурсов выставить
это достигается путем анализа работы кластера, выявлением таких узких мест и постепенной балансировкой с помощью таких пулов
пока минимальные и пиковые нагрузки разных групп юзеров не достигнут равновесия работы кластера
не надо тут автомата, только хуже будет
никто предугадать не может когда кто и зачем будет ддосить кластер
пишутся правила на основании опыта работы кластера и дальше корректируются по мере внештатных отклонений
очередь тоже забавная штука. есть аналитики, у них есть Вася, который любит слать огромные запросы. все под одним юзером. вот Вася шлет запрос, он занимает место в конкуренте, другие аналитики занимают свои места. Вася устал ждать и еще раз шлет запрос, а потом еще раз :)
в итоге дикая очередь в пуле одних запросов одинаковых от Васи
а другие звонят админу и говорят что кластер вообще у них не отзывается, все запросы просто висят и ничего не делают :)
в Вертике Вася по времени будет если его запрос плохой в низкоприоритетный пул уводится и там уже с такими же горемыками сражаться за ресурсы, не мешая прочим :)

Google

Dmitry
17.11.2016
20:41:41
У ORACLE long running queries лет 100 как
на самом деле - нафиг не нужно
решается административно
и все говорят Васе спасибо

Alexey
17.11.2016
20:56:57
У нас есть наработки на эту тему: квоты, max_memory_usage_for_user, max_threads, priority, max_execution_time, min_execution_speed, force_primary_key и т. п.
И постоянно нужно больше способов что-нибудь как-нибудь ограничивать.
У нас приоритизация запросов от разных видов пользователей - очень актуальная проблема.
Вплоть до того, что хочется определять, что если запрос задан по крону или в бесконечном цикле из скрипта, то лучше его выполнять не особо при этом торопясь. Но такого не сделано.

Evgeniy
17.11.2016
20:58:40

Alexey
17.11.2016
20:59:53
Нету. А было бы полезно. Возможно реализовать кэширование на уровне промежуточных данных в конвейере выполнения запроса - если часть запроса отличается, а часть вычислений совпадает.

Андрей Михайлович
18.11.2016
04:04:25
Ну, раз вы переписываетесь до полуночи, всем этим плюшкам уже пора быть. Столько продуктивного времени!

Dmitry
18.11.2016
06:26:50
Может быть стоит вынести этот функционал в отдельный менеджер транзакций?

Vladislav
18.11.2016
06:31:03