
Alexey
14.02.2017
22:21:36
Спасибо! Будем как-нибудь распространять? Вариант минимум - можно запостить ссылки в те места, где раньше спрашивали на английском языке про первичный ключ.

Олег
14.02.2017
22:47:28
На clickhouse.yandex ссылку поставьте. Или в вики на github скопируйте. Информация-то ценная.

Alexey
15.02.2017
00:01:18

Mo
15.02.2017
05:09:49
Hi guys, perhaps a newbie questions. Does ClickHouse do dictionary encoding for string columns, just like Druid.IO? And when querying with string column filters, how does ClickHouse handle it?

Google

Slava
15.02.2017
09:16:27
Здравствуйте. Подскажите пожалуйста в вопрос дизайна таблиц: есть пользователь(customer) и у него может быть множество покупок(orders), правильнее ли все поля которые относяться к orders сделать в виде nested структуры в таблице customers?

Igor
15.02.2017
09:17:25

Alexander
15.02.2017
09:18:20
А не лучше ли просто сделать столбец в виде id пользователя и id покупки
&
?
и когда надо будет список покупок пользователя доставать, просто сделать SELECT ... WHERE customer_id = ...

Slava
15.02.2017
09:18:59

Igor
15.02.2017
09:19:34
информации о пользователе много? можно одну таблицу сделать (orders) и хранить инфу о кастомерах в ней

Slava
15.02.2017
09:23:22

Igor
15.02.2017
09:25:39
много столбцов это ОК для кликхаусе, вы же не будете сразу по всем столбцам данные читать. да, данные на диске избыточно хранятся, но скорость запросов будет быстрее, чем джойны, имхо

Slava
15.02.2017
09:29:20

Igor
15.02.2017
09:31:54
Да, но я могу ошибаться, надеюсь меня поправят если что)

Google

Fike
15.02.2017
09:56:57
не на 100%, конечно но у меня append only вид данных и по ним требуется строить разную аналитику,
Кликхаус обычно используют не как ssot (single source of truth, грубо можно обозначить как первичное место хранения данных), а как вторичный сервис, куда сгружаются данные из ssot. По ряду причин из-за этого кликхаус и не стоит использовать как ssot (например, внутренний движок заточен на поиск по колонкам, а не на вытаскивание целиковых записей, и доступ к конкретной записи может выражаться в N чтениях в кликхаусе, когда в row-based или k/v базе это будет одно чтение с диска), и мое личное мнение тоже состоит в том, что непосредственно хранение данных лучше оставить другому сервису.


Slava
15.02.2017
10:02:01
Кликхаус обычно используют не как ssot (single source of truth, грубо можно обозначить как первичное место хранения данных), а как вторичный сервис, куда сгружаются данные из ssot. По ряду причин из-за этого кликхаус и не стоит использовать как ssot (например, внутренний движок заточен на поиск по колонкам, а не на вытаскивание целиковых записей, и доступ к конкретной записи может выражаться в N чтениях в кликхаусе, когда в row-based или k/v базе это будет одно чтение с диска), и мое личное мнение тоже состоит в том, что непосредственно хранение данных лучше оставить другому сервису.
спасибо, стало более понятнее. У меня похожий кейс, кажется, вствляется большой документ, а читать требуется не большое количество колонок(в сравнении вставкой), вернее даже не читать, а строить некую аналитику. И данные только добавляются, без изменений и удалений их в будущем


f1yegor
15.02.2017
12:44:15
возможно баг. у меня 2 колонки UInt8. первая является default для второй. когда пытаешься alter table drop column <первая> -DB::Exception: Unknown identifier: <первая>. если удалить вторую(with default) - все удаляется
version 1.1.54140. docker 1.1.54159.

Oleg
15.02.2017
14:57:33
В руководстве написано, что разрешено добавление значений в Enum столбец, указанный в первичном ключе, а CH выдаёт Code: 44. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: trying to ALTER key column upstream_addr. Версия 1.1.54140. Я что-то не так делаю, или документация опережает события?

Alexey
15.02.2017
15:01:56
Опережает.

f1yegor
15.02.2017
16:11:08
Неправильное сообщение об ошибке. занести на github?

Alexey
15.02.2017
16:11:28
Давай.

Sergey
15.02.2017
16:22:48
Привет всем! Есть 440к уникальных строк (выгрузка из БД), вставляю ее в КХ, и проверяю кол-во уникальных, а он отображает, что их только 230к. Как я могу создавать дубликаты из уникальных строк?

Andrey
15.02.2017
16:24:20
так реально уникальных 440к или 230к?
вставка работает корректно?

Sergey
15.02.2017
16:25:40
Выгрузка идет через механизм репликации и до этого работала корректно, поэтому сейчас и ищу причины этого
Работала корректно с другими данными и в другую бд

Andrey
15.02.2017
16:26:56
Если где-то есть записи с null, то они могут не проходить при вставке
вот и получатется потом 230 вместо 440

Sergey
15.02.2017
16:29:33
В базе он подобные отмечает как NULL в текстовом поле, а для числовых у меня 0 вставлен, если данных нет

Andrey
15.02.2017
16:56:35
Если выражение для значения по умолчанию не указано, то в качестве значений по умолчанию будут использоваться нули для чисел, пустые строки для строк, пустые массивы для массивов, а также 0000-00-00 для дат и 0000-00-00 00:00:00 для дат с временем. NULL-ы не поддерживаются.
Текстовые поля должны иметь пустые строки вместо null

Andrey
15.02.2017
17:43:40
а подскажите плз бенчмарки на офф. сайте вцелом корректны и отражают реальность? почему-то не увидел ни одного запроса с джойном

Google

Alexey
15.02.2017
18:10:46
а подскажите плз бенчмарки на офф. сайте вцелом корректны и отражают реальность? почему-то не увидел ни одного запроса с джойном
Бенчмарки на официальном сайте корректны и соответствуют реальности, но в наборе запросов нет ни одного запроса с JOIN.
Причина в том, что во время создания бенчмарков несколько лет назад (2013), ClickHouse ещё не поддерживал JOIN. С тех пор набор запросов не меняли.
Результаты периодически обновляются для части систем - для ClickHouse, Vertica, недавно добавили Greenplum. Но для некоторых систем так и остались старые результаты - например, для Hive, MonetDB. В бенчмарке указана версия, которая тестировалась.
Также можно обратить внимание на независимые бенчмарки, например,
https://www.percona.com/blog/2017/02/13/clickhouse-new-opensource-columnar-database/
http://tech.marksblogg.com/benchmarks.html
хотя они ещё менее подробные, чем официальные.

Vitaliy
15.02.2017
19:43:29
здесь есть автор библиотеки на go?

Sergey
15.02.2017
20:13:36

Александр
15.02.2017
20:15:38
Скажите, пожалуйста, можно ли как-то проверить лаг для Distributed таблицы? То есть я вставляю данные на одном сервере и хочу убедиться, что все они отправились на остальные шарды.

Alexey
15.02.2017
20:16:05
По-умолчанию count(distict ...) работает так же как функция uniq - используя приближённый расчёт. Поменять можно настройкой count_distinct_implementation. Например, SET count_distinct_implementation = 'uniqExact'

Sergey
15.02.2017
20:21:25
Похоже, что в документации не хватает раздела популярных ошибок) Я же не первый))

Alexey
15.02.2017
22:10:57

Evgeniy
15.02.2017
22:14:17
принцип наименьшего удивления да

Александр
16.02.2017
04:15:01

Kirill
16.02.2017
07:49:13

Константин
16.02.2017
08:41:12
Добрый деень! Скажите, можно как-то подключить какую-либо geo ip базу, чтобы можно было посмотреть города в исторических данных? дело в том, что мы пишем в поле страну, а город - нет.


Alibek
16.02.2017
08:53:20
Бенчмарки на официальном сайте корректны и соответствуют реальности, но в наборе запросов нет ни одного запроса с JOIN.
Причина в том, что во время создания бенчмарков несколько лет назад (2013), ClickHouse ещё не поддерживал JOIN. С тех пор набор запросов не меняли.
Результаты периодически обновляются для части систем - для ClickHouse, Vertica, недавно добавили Greenplum. Но для некоторых систем так и остались старые результаты - например, для Hive, MonetDB. В бенчмарке указана версия, которая тестировалась.
Также можно обратить внимание на независимые бенчмарки, например,
https://www.percona.com/blog/2017/02/13/clickhouse-new-opensource-columnar-database/
http://tech.marksblogg.com/benchmarks.html
хотя они ещё менее подробные, чем официальные.
В официальных бенмарках не приведены тестовые конфигурации, нет инфы о том какие схемы применялись, каким образом создавалась нагрузка... Или может есть, но не очевидно где именно.

Anatoly
16.02.2017
08:55:47

Alibek
16.02.2017
09:00:25
ок пусть без данных (хотя схему немного "обфусцировав" можно и привести), но описаний стендов нет - так какая-то пузомерка, с предложением верить, как в гомеопатию ?

Anatoly
16.02.2017
09:07:16

Alibek
16.02.2017
09:11:36
Вот тест (overall): mysql = 1, clickhouse = 0 - чистая правда! А объективен-ли он?

Aleksandr
16.02.2017
09:19:44
Имхо достаточно странно сравнивать CH vs spark. Вроде сильно разные вещи. Было бы круто увидеть CH vs Kudu (https://kudu.apache.org/). Делал кто-нибудь интересно?

Vladimir
16.02.2017
09:20:47

Google

Alibek
16.02.2017
09:23:37

Vladimir
16.02.2017
09:24:03
Цитата оттуда "Железо такое: двухсокетный E5-2650 v2, 128 GiB RAM, RAID-5 из 8 дисков SATA 7200 RPM на 6 ТБ.
ОС — Ubuntu 14.04."
Или как то так
А так в общем любое тестирование субъективно

Alibek
16.02.2017
09:30:46

Vladimir
16.02.2017
09:31:16
Можно на ней простые тесты гонять
Чтобы проверить самому

Fike
16.02.2017
09:31:43
Я думаю, мейнтейнеры понимают проблему, но пока не имели времени привести все в порядок. Насколько помню, этот вопрос уже поднимался пару раз.

Alibek
16.02.2017
09:32:15
Ну ок будем ждать

Vladimir
16.02.2017
09:33:22
Или еще лучше - загрузить часть реальных что будут в продакшене
И самостоятельно проверить

Kirill
16.02.2017
09:33:23
не надо ждать, нужно пробовать самим ;)

Vladimir
16.02.2017
09:36:19
Все равно данные будут другими, структура другая и цели вероятно другие

Alibek
16.02.2017
09:37:17
ну у нас и свои объемы не маленькие и тесты свои и пробуем. Но вопрос был не про это а про продукт. Я так понимаю - яндекс позиционирует ch как один из своих продуктов, под своим брендом, и просто указал на косяк в продвижении продукта. Но если он уже исправляется - то вопрос снят.

Alex
16.02.2017
11:22:26
Добрый день. Решили рассмотреть ClickHouse для хранения части данных для аналитики. Скажите - есть ли для него дрова или что-то подобное на c#?

Google

Nick
16.02.2017
11:23:42
Коллеги, кто-нибудь сталкивался с задачей репликации из оракла в кликхаус больших объемов данных?

Anatoly
16.02.2017
11:35:59

Renat
16.02.2017
11:41:49
как защитить себя от дубликатов в базе?
Например, во время выполнения вставки соединение обрывается (http), но кликхаус продолжает выполнять этот запрос и соответсвенно данные будут сохранены в базе. Но мы об этом достоверно не знаем и пытаемся выполнить вставку повторно. Как можно решить данную проблему?

Рулон
16.02.2017
12:00:23

Anatoly
16.02.2017
12:03:06

Рулон
16.02.2017
12:07:49
Если С# то это виндовс. Виндовых дров, чтобы создать odbc конекш, нет.

Pavel
16.02.2017
12:09:00
а вдруг Mono!

Vladimir
16.02.2017
12:09:04

Рулон
16.02.2017
12:09:55
Ну если моно, есть родной jdbc )

Anatoly
16.02.2017
12:13:37

Pavel
16.02.2017
12:14:05
это вопрос религии :) Тут такое не приветствуется :)
если не виндовс и не моно, то стоит упомянуть платформу, я считаю

Anatoly
16.02.2017
12:14:28
Linux/Mac + .net core.

Pavel
16.02.2017
12:14:34
разработчики они не пифия, им все заранее не известно :)

Vitaliy
16.02.2017
12:24:07

Alibek
16.02.2017
12:25:43

Sasha
16.02.2017
12:29:24