
Let Eat
03.05.2017
16:08:29
Scylladb хвастаются своим решением на задаче которая (кажется) хорошо ложится на кликхаус. Может получится пост для топа hacker news если сравнить два решения по скорости/цене/простоте. http://www.scylladb.com/2017/05/02/analyzing-flight-delays-scylla-spark/

Pavel
03.05.2017
16:09:18
сцилла это а-ля кассандра

Let Eat
03.05.2017
16:10:11
Да, но задача вроде sql ем решается тоже, если есть поддержка group by :)

Fike
03.05.2017
16:15:42
там, думаю, все-таки на порядок ниже производительность будет. все это дело должно выгрузиться целиком из сциллы, пройти через внешний обработчик, который вероятнее всего обрабатывает записи построчно, и там сгруппироваться. насколько помню, КХ очень агрессивно юзает обработку массивами (и, скорее всего, оттуда и все использования SSE), и здесь будет сложно добиться каких-то аналогичных результатов с выгрузкой по сетке и обработкой каждой записи отдельно.

Google

nikoinlove
03.05.2017
16:17:47
видимо речь шла сначала сконвертировать данные в кх а потом уже посчитать его средствами
они там еще и в докере все сделали. хипстеры какие-то

Fike
03.05.2017
16:20:34
там через спарк гонят
сцилла при этом сама рекомендует использовать себя только на XFS, как там union fs с этим - хз

Let Eat
03.05.2017
16:27:17

Fike
03.05.2017
16:28:10
ну я и говорю что кх по прикидкам должен солидно выиграть только за счет самой модели, не говоря про более мелкие нюансы )

Let Eat
03.05.2017
16:35:36

Дмитрий
03.05.2017
17:59:37

Dmitry
04.05.2017
08:48:38
Добрый день. Сlickhouse не собирается на FreeBSD 11-STABLE

Igor
04.05.2017
08:52:23
Что пишет? 26 и 25-26 строки в build_freebsd.sh закомменчены, пробовали с ними?
Как вариант проще - докер?..

Dmitry
04.05.2017
08:57:55
/tmp/usr/ports/databases/clickhouse/work/ClickHouse-1.1.54214-testing/dbms/src/AggregateFunctions/AggregateFunctionSequenceMatch.h:306:32: error: no matching member function for call to 'ignore'
if (special_open_p.ignore(pos, end))
~~~~~~~~~~~~~~~^~~~~~
/tmp/usr/ports/databases/clickhouse/work/ClickHouse-1.1.54214-testing/dbms/src/Parsers/IParser.h:43:10: note: candidate function not viable: no known conversion from 'char *' to 'Pos &' (aka 'const char *&') for 1st argument
bool ignore(Pos & pos, Pos end)
^

nikoinlove
04.05.2017
09:01:46
Порты в tmp это солидно

prll
04.05.2017
09:03:48
ошибка известна, полный лог такой http://beefy12.nyi.freebsd.org/data/head-amd64-default/p439918_s317660/logs/clickhouse-1.1.54214.log

Google

prll
04.05.2017
09:17:17
и на 11.0-RELEASE с clang3.8 не воспроизводится

Veniamin
04.05.2017
09:25:35

Dmitry
04.05.2017
10:22:18
вот еще информация об этом: https://bugs.freebsd.org/bugzilla/buglist.cgi?order=Importance&query_format=advanced&short_desc=clickhouse&short_desc_type=allwordssubstr

Denys
04.05.2017
11:24:18
Всем привет!)
У кого-нибудь есть свежий clickhouse-jdbc?
Или как его собрать со всеми зависимостями под виндовс?

papa
04.05.2017
11:26:55
свежее чем http://central.maven.org/maven2/ru/yandex/clickhouse/clickhouse-jdbc/0.1.20/ ?

Denys
04.05.2017
11:27:15
Спасибо

Vitaliy
04.05.2017
11:28:19
Всем доброго дня! А кто-то настраивал чере jdbc-драйвер, отображение, скажем, в DataGrip?

Denys
04.05.2017
11:29:04
В DBeaver все прекрасно работает)

Vladislav
04.05.2017
11:29:52
Пока только в Idea. Если не считать пару небольших косяков, работает нормально
В DG скорее всего аналогичная настройка

Vitaliy
04.05.2017
11:30:10
Ага, то есть возможно! Спасибо, буду пробовать

Vladislav
04.05.2017
11:30:48
Да, создается новый источник с jdbc драйвером и дальше как обычно

Andrey
04.05.2017
11:31:12
У меня коллега удачно настроил. Даже список полей в таблицах виден с типами

Denys
04.05.2017
11:31:27

Vladislav
04.05.2017
11:31:51
Только собрать самому ((
Предложение складывать ее тоже в централ пока не поддержали =(

Vasiliy
04.05.2017
11:32:35
Там же мавен все сам установит

Vladislav
04.05.2017
11:33:16
Если ты подключаешь его как источник через файл драйвера к приложению то не установит

Google

Denys
04.05.2017
11:34:23
собирать через maven или maven2?

Vladislav
04.05.2017
11:36:01
Я так думаю не принципиально. Там тривиальная сборка
Я собирал через встроенный в Idea

Vladimir
04.05.2017
11:38:00
? ребят я не прогер - но там сборка проста как дважды два. Единственное - указать либо с зависимостями либо без. Ну и скип тест. В принципе в гитхабе все написано
если нужен кому то - в личку пишите - соберу.

Andrey
04.05.2017
11:40:55
Ребят, а кто-нибудь завел Pentaho, Tableau или что-то подобное с ClickHouse?

Vitaliy
04.05.2017
11:44:03
При попытке добавления в datagrip падает с ошибкой:
java.lang.RuntimeException: ru.yandex.clickhouse.except.ClickHouseException: ClickHouse exception, code: 46, host: 127.0.0.1, port: 8123; Code: 46, e.displayText() = DB::Exception: Unknown function timezone, e.what() = DB::Exception
никто не сталкивался с такой проблемой?

papa
04.05.2017
11:46:23
в какой-то из версий драйвера при старте он делает запрос в сервер за таймзоной, эта функция есть не во всех версиях сервера. в следующей версии драйвера это поведение по умолчанию выключено.
т.е. должно лечиться либо апгрейдом сервера либо драйвера.

Vitaliy
04.05.2017
11:46:59
я взял последний код из гитхаба

Andrew
04.05.2017
11:47:46
а не подскажете, как в той же Datagrip заэкранировать ? в тернарном операторе, чтобы IDE не просила туда значение параметра подставить?

papa
04.05.2017
11:48:55
if(a,b,c)

Andrew
04.05.2017
11:49:55
логично, спасибо

Dmitry
04.05.2017
11:52:23
А в чатике есть успешно собравшие свежий мастер под macos?

Vladislav
04.05.2017
11:53:57

Vitaliy
04.05.2017
11:54:23

papa
04.05.2017
11:55:00
да, там нужно выставить его в false, и видимо установить use_time_zone в что-то вроде europe/moscow

Vitaliy
04.05.2017
12:04:26

Andrey
04.05.2017
12:06:52

Google

Vitaliy
04.05.2017
12:08:16
да, там нужно выставить его в false, и видимо установить use_time_zone в что-то вроде europe/moscow
Да, помогло, спасибо! Подключиться получилось, список таблиц виден, но при попытке просмотреть какую-либо из них получаю ошибку:
[62] ClickHouse exception, code: 62, host: 127.0.0.1, port: 8123; Code: 62, e.displayText() = DB::Exception: Syntax error: failed at position 17: "default".ib_log t FORMAT TabSeparatedWithNamesAndTypes;, expected identifier, e.what() = DB::Exception java.lang.Throwable: Code: 62, e.displayText() = DB::Exception: Syntax error: failed at position 17: "default".ib_log t FORMAT TabSeparatedWithNamesAndTypes;, expected identifier, e.what() = DB::Exception

papa
04.05.2017
12:08:49
а откуда берется это имя в кавычках?

Vitaliy
04.05.2017
12:09:15
это jdbc драйвер так поставляет

papa
04.05.2017
12:09:57
кликхаус имена понимает либо просто default либо в обратных кавычках default, которые телеграм не рисует.

Андрей
04.05.2017
12:11:00
`default`
Надо просто две кавычки поставить

Vitaliy
04.05.2017
12:11:27
ок, буду смотреть в настройках

Vladislav
04.05.2017
12:31:00
Поэтому просто перепиши запрос к таблице руками =)

Vitaliy
04.05.2017
12:32:38
да, с запросом руками все ОК :)

Igor
04.05.2017
13:23:22
Подскажите, что я делаю не так с Enum
CREATE TABLE model.x11 (
site_id Int32,
type Enum8('normal' = 1, 'bad' = 2)
) ENGINE = Log;
INSERT INTO model.x11
SELECT toInt32(123) as site_id,'normal' as type
>> DB::Exception: Type mismatch for column type. Column has type Enum8('normal' = 1, 'bad' = 2), got type String

Igor
04.05.2017
13:25:25
https://github.com/yandex/ClickHouse/issues/215
там какая-то движуха вон недавно была, может в новых версиях исправлено

Aleksey
04.05.2017
13:25:55
Добрый день
Проектирую систему аналитики, похожую на метрику
Т.е. фиксируются все клики и собираются около 70 параметров по ним.
Часть кликов будет помечена как конверсионные
Задача - строить различные отчеты по группе параметров и дате. Как в метрике.
Планируется 1 млрд кликов в год и пиковая нагрузка 1000rps на запись в эту таблицу.
Вопросы:
1. Все 70 параметров помещать в одну таблицу или разбивать на важные и не важные
2. Стоит ли разбивать таблицу по проектно,по счетчикам если брать за пример метрику
3. Какие параметры сервера нужны под такие требования?

Igor
04.05.2017
13:27:04

Combot
04.05.2017
13:27:30
combot.org/chat/-1001080295593

papa
04.05.2017
13:28:11

Igor
04.05.2017
13:28:24
3. Какие параметры сервера нужны под такие требования?
https://github.com/yandex/ClickHouse/blob/master/doc/administration/tips.txt
Больше RAM - лучше

Aleksey
04.05.2017
13:33:16
понятно, а по первым двум вопросам что можете посоветовать?

Igor
04.05.2017
13:33:27
1. Все 70 параметров помещать в одну таблицу или разбивать на важные и не важные
2. Стоит ли разбивать таблицу по проектно,по счетчикам если брать за пример метрику
- Пишите в одну таблицу в кластер ReplicatedMergeTree
- Жмите если возможно поля через cityHash64(user_id_hash) для экономии места
- 70 параметров и млрд кликов в год - не много -> не стоит дробить

Aleksey
04.05.2017
13:35:22
а под такой объем данных можете назвать необходимый RAM и проц и место на диске? Понятно что чем больше тем лучше, но хотелось оптимальный вариант

Google

Aleksey
04.05.2017
13:35:41
чтобы от чегото отталкиваться

Igor
04.05.2017
13:36:17
все зависит от того, запросы за какой период, каких данных и какой сложности будете выполнять

Vitaliy
04.05.2017
13:36:20
» 70 параметров и млрд кликов в год - не много -> не стоит дробить
О, а тут имеется ввиду сделать какое-то поле fake_date MATERIALIZED toDate(0),
и делать MergeTree(fake_date, ...) ?

Aleksey
04.05.2017
13:39:26
ок, спасибо


papa
04.05.2017
13:44:39
Добрый день
Проектирую систему аналитики, похожую на метрику
Т.е. фиксируются все клики и собираются около 70 параметров по ним.
Часть кликов будет помечена как конверсионные
Задача - строить различные отчеты по группе параметров и дате. Как в метрике.
Планируется 1 млрд кликов в год и пиковая нагрузка 1000rps на запись в эту таблицу.
Вопросы:
1. Все 70 параметров помещать в одну таблицу или разбивать на важные и не важные
2. Стоит ли разбивать таблицу по проектно,по счетчикам если брать за пример метрику
3. Какие параметры сервера нужны под такие требования?
если чуть более серьезно, то
- с точки зрения использования одна таблица с 70 параметрами работает нормально, если они фиксированной или ограниченной не очень большой длины,
- со стороны чтения удобно ходить в одну distributed таблицу, которая до некоторой степени абстрагирует логику шардирования.
- если соберетесь шардировать, у вас будет несколько вариантов со своими плюсами и минусами, по времени, по клиентам, по кликам..
- в простом случае ключ, судя по всему, у вас начинается с даты и клиента, это хорошо.
- 1 ярд событий, если они даже по килобайту это 1Тб в год, т.е. по диску вам больше одной машины не надо, из тех же соображений, вставка 1Мб/с не ограничена производительностью этой машины. при желании вы эти данные вообще можете в памяти держать. реплицировать, конечно же, нужно.
- если вы будете апдейтить клики, то ваша работа станет чуть менее удобной, хотя и более гибкой.
- по железу отталкивайтесь от чего угодно, поднимите виртуалку например, сгенерите случайные данные, посмотрите получаемую скорость, возможно вам уже будет достаточно. у нас тут люди запускаются на машинах от 200Гб до кофеварок с 1-2Гб. подходящая конфигурация может зависеть от количества одновременных запросов, от типового размера данных, от желаемого времени ответа итд.


Aleksey
04.05.2017
13:46:49
понятно, радует что все одной таблице

Dima
04.05.2017
14:10:29
/stat@combot

Combot
04.05.2017
14:10:29
combot.org/chat/-1001080295593

Andrey
04.05.2017
14:11:12
А есть ли в ClickHouse возможность джойнить по date between start_date and end_date?

Igor
04.05.2017
14:11:36
можно джойнить по кортежам
или мб даже массивам
хз правда что из этого выйдет, если одно поле