
Alexey
17.04.2018
19:23:15

Denis
17.04.2018
19:24:33
т.е. если у меня 5000 словарей, то я напишу 5000 раз хост, порт и т.д. в 5000 xml файлов?

Alexey
17.04.2018
19:25:10
Можно все словари объявить в одном xml файле.

Denis
17.04.2018
19:48:28
не догоняю, можно ли пароль и пользовтель один раз описать, что за подстановки?
https://clickhouse.yandex/docs/ru/dicts/external_dicts/
<!--Необязательный элемент, имя файла с подстановками-->
<include_from>/etc/metrika.xml</include_from>

Google

Nick
17.04.2018
20:31:04
а будет ли вообще у кликхауса таймстемп с таймзоной?

Alexey
17.04.2018
20:33:14
Улучшена поддержка часовых поясов. В типе DateTime может быть указана таймзона, которая используется для парсинга и отображения данных в текстовом виде. Пример: DateTime('Europe/Moscow'). При указании таймзоны в функциях работы с DateTime, тип возвращаемого значения будет запоминать таймзону, для того, чтобы значение отображалось ожидаемым образом.

Nick
17.04.2018
20:40:02
а где это найти в документации?

Alexey
17.04.2018
20:40:21
Наверное отсутствует.

Nick
17.04.2018
20:40:40
есть ли более актуальная, чем на https://clickhouse.yandex/docs/ ?

Alexey
17.04.2018
20:40:53
Нет.

Felixoid
17.04.2018
20:50:42

Nick
17.04.2018
21:30:23
Вчитался в документацию. Правильно ли я понимаю, что отсутствие буферизации при штучном инсерте решается через https://clickhouse.yandex/docs/ru/table_engines/buffer/ и проблемы вообще никакой нет?

Evgeny
18.04.2018
03:32:59

Stanislav
18.04.2018
03:34:04
точнее, буфер решает, если инсертов максимум несколько сотен в секунду.

_
18.04.2018
06:53:43
/stat@combot

Combot
18.04.2018
06:53:43
combot.org/chat/-1001080295593

Google

Valeriy
18.04.2018
06:54:22
Мы немного допилили драйвер для себя. Проблема ошибок в табло в большинстве случаев из-за ODBC-запросов, которые содержат нереализованные пока функции. Смысл в том, чтобы научить парсер ODBC-драйвера понимать новые функции и отдавать их соотвествующим функциям кликхауса (если они есть, что не всегда) вместе с параметрами.

Slach
18.04.2018
06:56:01

Valeriy
18.04.2018
07:00:21
не делали коммитов, но сейчас сделаем
почему бы и нет

Combot
18.04.2018
07:01:45
combot.org/chat/-1001080295593

Vladimir
18.04.2018
07:24:20

Vladimir
18.04.2018
07:24:50
/stat@combot

Combot
18.04.2018
07:24:50
combot.org/chat/-1001080295593

Valeriy
18.04.2018
07:37:29
а есть где то ваш форк в github?
fork - vstep0 (сделали в феврале)
Допилили для себя только то, что нужно было для нашех текущих репортов. Встречали проблему - фиксили, системного подхода не было. Поэтому например LTRIM реализован, а RTRIM нет. Немного пересеклись с основной веткой (EXTRACT и CURRENT_TIMESTAMP), пока что не мержили, потому что нам функциональности нашей версии хватает. Также тупо(try-catch) заставили ODBC не приводить к крешу, когда Poco не мог сконвертить NaN в числа. Еще один важный момент: при использовании в Tableau кострукции CASE-WHEN-THEN нельзя использовать неконстантные выражения после THEN. Лучше заменить на IF-ELSEIF-THEN (это из-за деталей реализации в самом кликхаусе, мы туда не залазили и решили просто обойти пока что).
https://github.com/vstep0/clickhouse-odbc

Alex
18.04.2018
08:04:12
Мы у себя используем:
props.values[indexOf(props.name, 'country_code')]
прям сосвсем человечно :)

Harry
18.04.2018
08:16:11
Подскажите пожалуйста какое железо подойдет под следуюший проект: одна таблица, данных 5 млн строк в день (пик иногда до 10), одна строка занимает 24 байта, используются datetime, int64, float32. Основная нагрузка формирования онлайн-отчетов для пользователей с агрегацией (ожидаемая нагрузука 300 запросов в минуту). Спасибо!

Kirill
18.04.2018
08:30:28

Jen
18.04.2018
08:31:23
зато модно :)

Alexander
18.04.2018
08:33:38
у меня раза в два меньше нагрузка, перешел на КХ, не жалею ни разу. сегодня собрал вставку в кучки штук по сто, до сих пор не могу поверить, как выросла производительность
по железу не подскажу, возможно, мое - оверкилл

Harry
18.04.2018
08:35:38

Ivan
18.04.2018
08:35:46

Kirill
18.04.2018
08:47:58

Harry
18.04.2018
08:50:41

Kirill
18.04.2018
08:52:42

Google

Victor
18.04.2018
08:52:46
и count() означает что, количество раз которое была такая комбинация url,name,value?
да, именно так. но считать хочется не отдельные кортежи, а массивы кортежей
например есть такие исходные данные:
date1,url1,Nested([[name1,name2,badName1],[value1,value2,value3]])
date2,url1,Nested([[name1,name2,badName1],[value1,value2]])
date1,url1,Nested([[name3,name4],[value1,value2]])
date1,url1,Nested([[name3,name4],[value1,value2]])
date1,url2,Nested([[name1,name2,name4],[value5,value6,value1]])
date1,url2,Nested([[name1,name2,name4,badName2],[value5,value6,value1,value4]])
результат хочется такой
url p my_count
url1 [(name1=value1),(name2=value2)] 2
url1 [(name3=value1),(name4=value1)] 2
url2 [(name1=value5),(name2=value6),(name3=value1)] 2
я придумал только в лоб собирать кортежи arrayMap
select
url,
count() my_count
arrayFilter(x -> tupleElement(x,1) not in ['badName1,badName2'], arrayMap(x,y -> tuple(x,y),params.Name,params.Value)) p
group by url, p


Harry
18.04.2018
08:54:19

Ivan
18.04.2018
08:59:31

Harry
18.04.2018
08:59:54

Гаврилов
18.04.2018
09:02:18

Kirill
18.04.2018
09:04:01
а какие проблемы от кх?)
Его, как минимум, надо админить и если что-то пошло не так то уметь решить. В этом плане с PostgreSQL/MySQL проще, пока что. Поэтому если данных не много и можно обойтись без КХ какими-либо привычными инструментами то так и стоит делать

Гаврилов
18.04.2018
09:05:38
а тоесть PostgreSQL/MySQL не надо админить?

Kirill
18.04.2018
09:07:24

Гаврилов
18.04.2018
09:07:46
а если вот новый проект
нет ничего)
понятно что какойнить документоборот
не получится на кх сделать

Kirill
18.04.2018
09:13:41
нет ничего)
Т.е. в новый проект вы входите как в "Час расплаты" стирая себе память? Так или иначе выбирают, обычно, инструмент/технологию исходя из опыта и применимости данной технологии под задачу, не всегда нужно забивать микроскопом гвозди.

Гаврилов
18.04.2018
09:15:08
а потом когда надо будет в огромном проекте вставить кликхаус срочно, сидеть и бится головой об стену?)
когда данных резко миллиарды станет

Kirill
18.04.2018
09:16:40

Jen
18.04.2018
09:17:07
но прогнозы не всегда сбываются :)

Гаврилов
18.04.2018
09:17:49
бывает
5 лет никто не следит за сервисом

Google

Гаврилов
18.04.2018
09:17:56
и все)

Kirill
18.04.2018
09:19:05

?
18.04.2018
09:19:30
кликхаус просто настолько классный и приятный, что меня им даже гвозди тянет заколачивать

Гаврилов
18.04.2018
09:20:02
наномолоток?
я вот не вижу никаких сложностей с кх
мы его поставили и практически забыли
в постгресе намного чаще ковырятся надо

?
18.04.2018
09:21:22
ну, справедливости ради, я помню как вы, вроде бы, мне вместо кх тоже постгресс или мускуль предлагали )

Гаврилов
18.04.2018
09:21:54
в инете видел цитату от разработчиков Eliptics
"если у вас нет трех стоек в двух дата центрах, то отойдите и не мешайте работать"
вот тут наверно все на такомже принципе идет
ну если так посмотреть, то у нас на проекте есть postgres mssql clickhouse и cassandra
но при этом у нас нет 3х стоек)

Kirill
18.04.2018
09:27:47
Eliptics - это немного про другое. И, для Eliptics - это справедливо.

Harry
18.04.2018
09:30:41

Yuran
18.04.2018
09:30:59
Я не думаю, что это вообще как-то связано с задачами, которые стояли перед разработчиками. Всегда хорошо иметь возможность «поставить поиграться» какую-нибудь новую базу или другую софтину, и она должна уметь работать, хотя бы как-то, на одной машине. Например тот же CockroachDB сделан для (относительно) больших кластеров, но может и на одной ноде работать.

Ivan
18.04.2018
09:32:03

Yuran
18.04.2018
09:32:26
Другой вопрос, что если вам нужна хорошая кластерная ФС, может быть у вас и есть пара недель на её настройку. С другой стороны, разных продуктов много, и стоит их попробовать несколько разных перед тем, как принимать решение о том, чтобы пускать её в продакшен. Если каждое требует пары недель настройки, то так можно ничего и не запустить в итоге :).

Гаврилов
18.04.2018
09:32:58

Ivan
18.04.2018
09:33:21

Google

Kirill
18.04.2018
09:33:38

Гаврилов
18.04.2018
09:33:53
а ну да
тут можно заранее все общитать
и положить

Harry
18.04.2018
09:37:16


Alex
18.04.2018
09:42:31
Коллеги, а подскажите способы ускорения INSERT SELECT, выполняемого с целью очистки от "мусора".
Изначально таблица реплицированная, после очистки ожидается что такой и останется.
Пробовали INSERT в несколько MergeTree, и конвертацию в Replicated потом, но наткнулись на коллизию имён партов.
Пробовали параллельный INSERT разных диапазонов данных на разных репликах шарда - стали натыкаться на too many parts. Настройку "не ругаться" подняли, но есть всё равно свободный CPU, а тот что занят - занимается мёржами. В диск/RAM также не упирались.
Из того, что сам надумал:
1.) Может есть способ "отключить" мёржи для таблицы, чтобы они не стопорили процесс заливки, а стартовали в конце?
2.) Может мы недоглядели какие-то настройки, которые позволят в одном INSERT SELECT генерить парты крупнее/эффективнее?

Gantzer
18.04.2018
09:50:32
Добрый день. Можно ли в уже созданную таблицу MergeTree добавить новый столбец к первичному ключу?

Kirill
18.04.2018
09:58:35


Tomazov
18.04.2018
10:04:58
Добрый день.
Подскажите, пожалуйста, правильно ли я делаю выборку товара по последней дате изменения (таблица ReplacingMergeTree)
SELECT unitHashId, lastTime, price /* параметры */ FROM products WHERE (unitHashId, lastTime) IN (SELECT unitHashId, MAX(lastTime) FROM products WHERE lastTime > '2018-04-17 12:56:35' GROUP BY unitHashId) ORDER BY price ASC LIMIT 0,20
кстати как вы в Яндекс.Маркете работаете с товарами, которые обновляют цены

Sergei
18.04.2018
10:36:45
Но сам запрос вроде верный

Александр
18.04.2018
10:38:48

Tomazov
18.04.2018
10:39:35
я пока эксперементирую, база в mysql 1.18 billion rows

Sergei
18.04.2018
10:41:05

Tomazov
18.04.2018
10:44:51
нет mysql я в CH использую только как справочник,
данные о товарных изменениях в CH кидаю пачками в реальном времени и пытаюсь их как-то получать, на холодном кэше разогнать CH быстрее 1.5 сек. не получается ?

Kirill
18.04.2018
11:14:07