
Константин
27.01.2017
07:32:15
Скажите, поле типа MATERIALIZED - заполняется значением при вставке или расчитывается на лету при селекте?

Valeriy
27.01.2017
08:42:10
Судя по названию - заполняется при вставке.

f1yegor
27.01.2017
09:17:05
подскажите, в CollapsingMergeTree я пишу сначала первую запись с 1 знаком, при каждом апдейте я сначала пишу запись с -1 знаком, а потом обновленную версию?

Google

Yury
27.01.2017
09:29:58
Если я правильно пониманию, то если нужно оставить старую версию то да, нужно записать -1, потом 1, а если старая версия не нужна, то можно просто новую вставить с 1

papa
27.01.2017
09:55:06

f1yegor
27.01.2017
09:59:30
я пока использую обычный MergeTree и пишу по окончании сессии

papa
27.01.2017
10:01:12
апдейты сессий можно писать в Collapsing, тогда старую версию при апдейте надо вычитать, и переписать все запросы, которые считают статистику, с учетом Sign.

f1yegor
27.01.2017
10:03:12
ну вот и вопрос. в описании старая строка с -1, но как я ее получу, если всегда пишу с 1

papa
27.01.2017
10:16:15
Если я правильно пониманию, то если нужно оставить старую версию то да, нужно записать -1, потом 1, а если старая версия не нужна, то можно просто новую вставить с 1
если вы пишете только строки с sign=1, у вас при мерже для ключа остается одна строка, и если вы только пишете или только читаете, то это ок. но если вы и пишете и читаете, то вы читаете из не до конца померженной таблицы, и тогда надо либо делать final, что медленно, либо компенсировать в статистике старые версии объектов, т.е. записывать их с sign=-1.

Peter
27.01.2017
10:19:24
А в чем тогда разница между CollapsingMergeTree и ReplacingMergeTree ? Что лучше использовать, для того чтобы изменять данные?

hamper ?
27.01.2017
10:21:18
Кто такое ReplacingMergeTree? В документации нет такого вроде
Я вот тоже не понял еще как правильнее дополнять данные

Igor
27.01.2017
10:22:26

hamper ?
27.01.2017
10:22:29
Или изменять их

f1yegor
27.01.2017
13:19:02

Google

Igor
27.01.2017
13:25:55
офигенно, спасибо) а то очень популярный движок, а до сих пор не документирован %)

Yury
27.01.2017
13:55:09
Можно коротенечко, в чем суть этого движка или где можно прочитать? Замена по ключу? Просто update всей строки?
я про ReplacingMergeTree

Dmitriy Ch
27.01.2017
13:57:27
можно тут почитать https://github.com/yandex/ClickHouse/blob/master/dbms/src/Storages/StorageFactory.cpp#L608

Yury
27.01.2017
14:05:54
Спасибо

f1yegor
27.01.2017
15:03:38
кстати, тест на него задизейблили. сдается мне что не документировали его специально. но увидим.
Спасибо
в этом месте тоже https://github.com/yandex/ClickHouse/blob/012c5f1079e7a2605e872eb223b9c5dcd065880e/dbms/tests/queries/0_stateless/00325_replacing_merge_tree.sql.disabled

Sasha
27.01.2017
15:05:33
Добрый день. В таблице MySQL храним координаты широту и долготу в Decimal, какой тип данных лучше использовать при подключении таблицы в качестве словаря в CH? Float32?

Kirill
27.01.2017
15:13:32
Decimal в MySql 4 байта значит float32 хватит

papa
27.01.2017
15:13:54
23 бита мантиссы дает точность в сантиметрах, должно быть достаточно.

Sasha
27.01.2017
15:31:21
Спасибо

Darafei
27.01.2017
15:38:39
ну, не в сантиметрах, а около 5 метров... :)
экватор (~40 000 км) / 2^23 ~= 4.8 метров

Dmitry
27.01.2017
15:41:21
а знак
?
в каждую сторону 20k
imho там и int32 хватит

Darafei
27.01.2017
15:44:30
понятное дело, в большинстве практических задач лучше в меркатор перевести
но знак тебе даст 2.4 метра, и не сантиметры

Dmitry
27.01.2017
15:45:18
ну да

Google

Dmitry
27.01.2017
15:45:41
а кто-то собрался с точностью до сантиметра мерять? :)

Darafei
27.01.2017
15:45:41
в старых гарминах так экономили, родовая болячка у них была - раскуроченные домики

Dmitry
27.01.2017
15:45:57
2.4 метра -- попадет в любое здание, и даже в ларек
даром что для столба и опор погрешность великовата

Darafei
27.01.2017
15:46:55
а потом у тебя, например, восстановленная скорость в два раза пляшет :)

Dmitry
27.01.2017
15:47:01
garmin etrex, который у меня был, вообще +- 10 метров за погрешность не считал
а кто скорость по координатам восстанавливать собрался?
нужна скорость - пиши мгновенную скорость отдельно
как ведет себя первая производная кусочно-линейной функции? :)

Darafei
27.01.2017
15:51:39
в общем, я хотел обратить ваше внимание, что зачастую тупое "нам точнее трёх метров не надо" раскладывает грабли в неожиданных местах

nikoinlove
27.01.2017
15:52:07
а кликхаус сжимать то что хранит умеет же?

Darafei
27.01.2017
15:52:23
и float32 в лоб - не сантиметры :)

Kirill
27.01.2017
15:54:39

Oleg
27.01.2017
15:55:51
Всем привет! Подскажите плз == Для одного счетчика Яндекс.Метрики суммарный размер данных, передаваемых в запросах (включая не удаленные из хранилища логи), составляет 10 ГБ == ограничение 1 день? спасибо!

Darafei
27.01.2017
15:55:54

papa
27.01.2017
15:56:42

Oleg
27.01.2017
16:01:33
вы имеете в виду данные посещаемости?
Да, это цитата отсюда https://tech.yandex.ru/metrika/doc/api2/logs/intro-docpage/.. Предполагаю, что день, но хотелось бы подтверждения от компетентных людей ) Только-только начинаем работать с ClickHouse.. Спасибо! )

Alexey
27.01.2017
16:28:38

Google

Alexey
27.01.2017
16:34:19

Oleg
27.01.2017
16:48:03

papa
27.01.2017
16:56:43

Oleg
27.01.2017
17:01:50

f1yegor
27.01.2017
17:30:31
@milovidov_an https://twitter.com/marklit82/status/824892282910306304?cn=cmVwbHk%3D&refsrc=email

Alexey
27.01.2017
17:31:50

papa
27.01.2017
17:35:32

Oleg
27.01.2017
17:54:16

Maksim
27.01.2017
18:16:13
поставил свежий кликхаус, заменил старый страшный регексп на UUIDtostring и запрос резко стал быстрее
видимо fixedstring16 сначала превращается в текстовый uuid, а потом идет группировка?

papa
27.01.2017
18:21:18
скорее сначала идет группировка, а потом превращается в текст.

Alexey
27.01.2017
18:29:27

Maksim
27.01.2017
19:10:39
а что такое инъективная?

Alexey
27.01.2017
19:12:19
Значит можно GROUP BY f(x) исполнять так же как GROUP BY x. Это используется в оптимизаторе запросов.

papa
27.01.2017
19:12:57
x!=y=>f(x)!=f(y)

Maksim
27.01.2017
19:17:52
ух
соответственно простой регексп гарантированно не является гарантированно инъективным?
я может не очень внимательно прочитал документацию (вообще её почти не читал, если честно), но мне кажется, что недостаточно четко отражен тот факт, что надо достаточно агрессивно просовывать все обращения к CH через пулы и синглтоны
у нас в какой-то момент свалилась запись, потому что пришел ещё один клиент, рестартнули сервер записи в CH и выяснилось, что мы на подключение клиента делаем прямой запрос в кликхаус и это очень больно
слишком много одновременных запросов

Google

Alexey
27.01.2017
19:21:29
слишком много одновременных запросов
Это настраивается в конфиге. Там есть ограничение на количество соединений (соединения расходуются если клиент просто ничего не делает), 1024 по-умолчанию, и на количество одновременных запросов, 100 по-умолчанию, если я правильно помню.

Maksim
27.01.2017
19:22:54
да, 100
ну у вас наверное какое-то современное умолчание, не под компьютеры с 256 мб памяти?

Alexey
27.01.2017
19:23:12
ClickHouse пытается выделить на один запрос максимум ресурсов. Когда много одновременных и тяжёлых запросов, то это работает хуже, чем если эти запросы выстроить в очередь.

Maksim
27.01.2017
19:24:33
ну я об этом и говорю: надо думать головой и агрегироваьт запросы на стороне софта
ладно хоть рельсы тут проблем не создадут =)

Alexey
27.01.2017
19:26:15
Да, если есть возможность на стороне софта это контролировать - это хорошо.

Maksim
27.01.2017
19:26:29
а куда деваться то =)

f1yegor
27.01.2017
21:38:54
@milovidov_an а вы откуда качали nyc-taxi-data? как в статье написано несжатые csv? или где-то есть пожатая версия?

Alexey
27.01.2017
21:40:12
Как в Github, да - несжатые.

Abdulla
28.01.2017
12:07:46
Приветствую. Есть ли готовые сборки ch под debian jessie? Или подскажите как правильнее собрать пакет под jessie?

f1yegor
28.01.2017
12:13:03
подскажите, в clickhouse-cli же история не пишется ни в какой файлик?

Igor
28.01.2017
12:13:21
пишется
~/.clickhouse-cli_history
а clickhouse-client'ом - в ~/.clickhouse-client-history

f1yegor
28.01.2017
12:14:37
я просто в докерконтейнере не вижу таких файлов. проверю еще раз