
Michal
19.09.2018
09:07:55
Что-нибудь похожее на ваши данные погенерить из numbers() и rand?
И какой-то минимальный пример?

Evgeny
19.09.2018
09:28:27
@milovidov_an добрый день
можно поинтересоваться,
в случае, если будет реализована новая полезная функция в виде pull request, то каков примерный срок вхождения ее в релиз?

Google

Алексей
19.09.2018
09:29:55

Evgeny
19.09.2018
09:30:16
понятно, спасибо

Ivan
19.09.2018
09:32:55

Evgeny
19.09.2018
09:33:24
понятно

Светлана
19.09.2018
09:41:58

Vladimir
19.09.2018
09:51:26

Светлана
19.09.2018
10:16:07

Irina
19.09.2018
11:16:13
Привет, мне сказали, что тут есть люди, которые умеют селектить, а не как я.
есть пользователи, они иногда приходят. Есть retention недельный. Для дня Х мы хотим посчитать следующую чиселку: уники, который пришли в диапазоне (Х-2 недели, Х-неделя) и еще раз пришли в (Х-неделя,Х). Вроде всё просто
а теперь хочется селект, который для последний 14 дней будет выдавать эту чиселку

Ivan
19.09.2018
11:26:10

Irina
19.09.2018
11:27:08
Это самых похожие слова, что я нашла в документации

Wolf
19.09.2018
11:50:04

Google

MAdmS
19.09.2018
11:50:31

Эмин
19.09.2018
11:52:09
Ребята, посоветуйте хорошие, полезные статьи по Catboost?


Denis
19.09.2018
11:52:26
Но тот же самый запрос с тем же самым arrayJoin и группировкой в памяти, а не чтением из таблицы с заранее сгруппированными данными, отрабатывает с меньшим потреблением памяти и не падает.
Могу предположить такой сценарий: у кх где-нибудь есть параметр - сколько записей читать одним блоком. Примем за 100. Приходит полный запрос, читает блок 100 записей, получает из них условно 10 строчек с массивами по 10. От них считает математику, кушая 100*0,2% доступной памяти. Параллельно ещё 3 процессора работают, всего 80% памяти съедено.
Ситуация 2. Приходит запрос на создание промежуточной таблицы. Берёт 100 записей, группирует, пишет 10 строчек с массивами по 10 за каждый обработанный блок. Приходит 2й запрос на сложную математику, читает 100 строчек, но теперь каждая строчка - это уже массив из 10 элементов. И в памяти такой блок занимает не 100*0,2%, а 1000*0,2%. ООМ.
пс. это всего лишь предположение, реального сценария не знаю.


molo4ko
19.09.2018
11:54:18
как-то можно сделать distributed join двух таблиц (с одинаковым ключом шардирования) как будто в режиме local?
select a,b from (select a from tableA where foo=bar all inner join (select b from tableB where x = y) using id)
я помню, что можно было просто указывать имя локальной таблицы во вложенном запросе, но, кажется, это только если tableA == tableB

Алексей
19.09.2018
12:13:17
Ошибка «Attempt to attach to nullptr thread group» при <Error> DDLWorker: Query CREATE MATERIALIZED VIEW - известная проблема или нет?

Alexey
19.09.2018
12:18:33
У меня такая же ошибка при create table engine = memory on cluster

Michal
19.09.2018
12:24:32

Алексей
19.09.2018
12:25:45

Alexey
19.09.2018
12:26:17
и что делать?
не знаю, дождаться ответа разработчиков или issue сделать, например

Алексей
19.09.2018
12:26:53

Michal
19.09.2018
12:32:49

Ivan
19.09.2018
12:33:10

Michal
19.09.2018
12:35:05
Но понять просто
Кстати если данных не очень много то можно просто sequenceMatch написать https://clickhouse.yandex/docs/en/query_language/agg_functions/parametric_functions/#sequencematchpatterntime-cond1-cond2 или windowFunnel

Irina
19.09.2018
12:40:24
Так да, за день я могу, мне надо график рисовать. Вот про окна очень не хватает какие-то примеров похожего толка. Но кажется, будет многовато, это ретеншн всего сервиса

Dmitry
19.09.2018
12:52:40
Всем привет! Описываю конфиг внешнего словаря, там нужно указать null_value для атрибута. Какой валидный null_value для DateTime? Такой вариант падает с ошибкой:
<attribute>
<name>start_time</name>
<type>DateTime</type>
<null_value>NULL</null_value>
</attribute>
.

Google

molo4ko
19.09.2018
12:56:37
https://clickhouse.yandex/docs/ru/operations/settings/settings/#distributed_product_mode ?
select
a, b
from tableA
all inner join (
SELECT b
FROM tableB
) USING id
без установки d_p_m
Double-distributed IN/JOIN subqueries is denied (distributed_product_mode = 'deny’)
d_p_m=local
Table default.tableB_replicated doesn't exist., e.what() = DB::Exception
(потому что b_local в бд shard_0, а не в default)
d_p_m=allow
DB::Exception: Table shard_0.tableB doesn't exist.., e.what() = DB::Exception
(непонятно, почему)
d_p_m=global
работает
вероятно, d_p_m не слишком хорошо дружит с перекрестной репликацией/шардингом? у кого-то есть опыт?

Denis
19.09.2018
13:06:52

molo4ko
19.09.2018
13:09:43
а как это работает?
это же при dpm=local?

Danil
19.09.2018
13:10:40
Всем доброго дня. На многих вебинарах встречаю фразу, что нельзя в клик сваливать джисонки и растаскивать их по вьюхам, но нигде не нашел объяснения почему. Может кто-то знает или даст ссылку почитать?

Denis
19.09.2018
13:11:07

Kirill
19.09.2018
13:12:10

Denis
19.09.2018
13:12:17
это сделано для скорости, там нет нормального парсера, потому что это будет очень тормозить, json плохой формат.

molo4ko
19.09.2018
13:15:38
dpm тут вообще ни к селу кмк, это полиси.
а что тогда это значит?
>tableB_SHARD
есть бд default c tableA/tableB, которые смотрят на tableA_replicated/tableB_replicated на разных машинах, как можно шард указать?

Danil
19.09.2018
13:15:46

Andrey
19.09.2018
13:16:41
Disk sdb read requests merge per second -
подскажите, что физически означает эта метрика?:

Denis
19.09.2018
13:18:20
Не совсем понял. Если у меня в клике запись json = {"id":1, "var1": "value", "var2":"value"}, то ее же можно разобрать через visitParamExtractUInt(json,'id'). То есть тут вопрос не столько в формате, сколько в скорости? То есть хочу понять в какой момент проблемы всплывут
ну вот то и значит, что в КХ это не json
вот раз
select visitParamExtractString('{"id": "1", "var1": "value", "var2":"value"}', 'id')
вот два
select visitParamExtractString('{"id":"1", "var1": "value", "var2":"value"}', 'id')

LeiDruid
19.09.2018
13:20:15
А как посмотреть, куда клик заныкал RES память ?
В system.processes как-то маловато
ну гиг там, суммарно

Alex
19.09.2018
13:20:35
Привет, коллеги. Такой вопрос. Сопоставима ли скорость кликхаус memory движок со скоростью чтения тем же редисом?

LeiDruid
19.09.2018
13:20:37
Но не 60 же

Kirill
19.09.2018
13:21:46

Google

Stanislav
19.09.2018
13:23:21
Вот как мне посмотреть, что там происходит до того, как сервер click2 упадёт по oom?

Denis
19.09.2018
13:24:40

LeiDruid
19.09.2018
13:25:29

Stanislav
19.09.2018
13:26:06
Аналогично, причём на click2 в момент проверки работало два запроса: insert от telegraf на том же сервере и мой.

Danil
19.09.2018
13:27:16

Denis
19.09.2018
13:27:35

Denis
19.09.2018
13:28:34

Vasilij
19.09.2018
13:30:25

Denis
19.09.2018
13:37:32

terry
19.09.2018
13:42:24
добрый день
тупой вопрос
есть инструмент, который показывает в реалтайме обновление таблицы c данными?

Kirill
19.09.2018
13:43:51

Danil
19.09.2018
13:43:52
@Vasyaabr @den_crane @kshvakov спасибо!

terry
19.09.2018
13:44:10
@borys_yermokhin https://t.me/clickhouse_ru/66275

Светлана
19.09.2018
13:45:09
А можете попробовать сделать какой-то воспроизводимый пример?
Оказалось, что в запросах потерян ордеринг по дате, с ним и первый запрос падает по памяти:) Без ордеринга такие запросы не имеют смысла, но просто чтобы воспроизвести ситуацию, сделала совсем простой вариант - без ордера и только с одним типом ивентов. На нём можно увидеть, что есть разница по памяти. https://gist.github.com/svpetrova/b82880ceeba395d0ffa26356d78bd84b


Александр
19.09.2018
13:49:51
А как себя поведет КХ если я вставляю блок данных из разных партиций, но ДО лимита в 1 млн строк (что бы данные одним блоком отправились с клиента) и вот возникла ошибка во время вставки, либо вставка была прервана, то данные запишутся частично или нет? Просто у меня сейчас подозрение, что если данные из разных партиций, то он частично пишет данные. Т.е. я отправляю запрос на инсерт большого куска данных ДО 1 млн строк и у меня как-то каждую секунду увеличивается количество строк в таблице (пишу в один поток).

LeiDruid
19.09.2018
13:50:22
Как проверить остальное
?

Google

Александр
19.09.2018
13:50:33
Хотя по идее оно должно вставить разом, т.е. пишу 500 000 строк из 10 партиций, то оно по окончанию вставки должно сразу показать + 500 000 строк, а не кусочками?

Kirill
19.09.2018
13:51:47

Александр
19.09.2018
13:52:39
Не, мы через clickhouse-client пишем данные
Типа cat file | clickhouse-client -q 'insert into ...'

Michal
19.09.2018
13:57:05
Оказалось, что в запросах потерян ордеринг по дате, с ним и первый запрос падает по памяти:) Без ордеринга такие запросы не имеют смысла, но просто чтобы воспроизвести ситуацию, сделала совсем простой вариант - без ордера и только с одним типом ивентов. На нём можно увидеть, что есть разница по памяти. https://gist.github.com/svpetrova/b82880ceeba395d0ffa26356d78bd84b
Из моего опыта - по памяти сортировку лучше делать внутри каждый группы отдельно. Примерно так:
WITH
groupArray( tuple(value,time) ) as val_time_tuples,
arraySort( x -> x.2, val_time_tuples ) as val_time_tuples_sorted,
arrayMap( t -> t.1, indexes) as time_sorted_vals,

Kirill
19.09.2018
14:05:32
Надо вот тут покопаться https://github.com/yandex/ClickHouse/blob/db13ef96d62ce739c3e666deaa042c9bfda61b1a/dbms/programs/client/Client.cpp#L960 (insert_format_max_block_size - по дефолту 1048576, но есть подозрение что он не будет его копить, а будет чаще блоки скидывать)

Denis
19.09.2018
14:10:58

Александр
19.09.2018
14:12:44
Причем постоянно

Alexey
19.09.2018
14:13:14
Я думаю, что это связано с наличием в таблице "толстых" строк (длинных массивов) и достаточно большим index_granularity по-умолчанию. Наверное стоит указать в таблице с временными данными поменьше index_granularity. Например, 64.

Ivan
19.09.2018
14:15:24
Всем привет. Есть какая-то альтернатива aioch ( постлянно выхватываю ошибку https://github.com/mymarilyn/aioch/issues/2), кроме aiohttp клиента ?

Yaroslav
19.09.2018
14:15:32
Коллеги, есть кластер два шарда по две реплики. Шардирование и репликация через zookeeper. Страшен ли clickhous`у split brain реплик в каждом шарде в случае когда данные льются постоянно на обе реплики, а связь между репликами оборвалась?
Или после восстановления связи просто все безболезнено синхронизируется?
Есть ли у zookeeper`а какие-то общие данные, которые могут поломаться в таком случае?

Denis
19.09.2018
14:18:55