@clickhouse_ru

Страница 55 из 723
Константин
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
нету, да, ток в исходниках
я сегодня создал PR на эту тему)

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
а кто скорость по координатам восстанавливать собрался?
обычно именно так и происходит в тех проектах, где округляют координаты до float. при этом скорость обычно режут до int ;)

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
Всем привет! Подскажите плз == Для одного счетчика Яндекс.Метрики суммарный размер данных, передаваемых в запросах (включая не удаленные из хранилища логи), составляет 10 ГБ == ограничение 1 день? спасибо!
Такого не помню (кстати, чат не про Метрику). Общего ограничения нет. Но есть ограничение на суммарный размер параметров визитов (это которые передаются произвольным JSON-ом).

кстати, тест на него задизейблили. сдается мне что не документировали его специально. но увидим.
С этим движком всё Ок. Тест убрали, так как сам тест немного некорректный. В нём вызовы OPTIMIZE не обязательно мержат всё до конца. Возникает race condition, если до этого уже запустилось другое слияние автоматически. Тогда OPTIMIZE не будет мержить те куски, которые уже мержатся. Этот race condition является нормальным и не означает некорректную работу.

Google
Alexey
27.01.2017
16:34:19
я сегодня создал PR на эту тему)
Там чуть-чуть некорректно написано. Поправлю сам.

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

Oleg
27.01.2017
17:01:50
это ограничения на объемы выгрузки через logs api, сама метрика принимает данные в количествах ограниченных другими факторами.
Да, я понимаю. Вот вопрос и состоит в том - это ограничение на обьем в день? Час? "Суммарный обьем данных передаваемый в запросах"

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

papa
27.01.2017
17:35:32
Да, я понимаю. Вот вопрос и состоит в том - это ограничение на обьем в день? Час? "Суммарный обьем данных передаваемый в запросах"
вы делаете запрос в logs api, за день/час/месяц, для ответа во внутреннем облаке создается файл или файлы с данными. суммарный объем этих временных файлов на один счетчик ограничен 10Гб.

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

видимо fixedstring16 сначала превращается в текстовый uuid, а потом идет группировка?

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

Alexey
27.01.2017
18:29:27
видимо fixedstring16 сначала превращается в текстовый uuid, а потом идет группировка?
Вроде бы нет - этой функции нет в списке "инъективных". Это недоработка. Если бы была - было бы ещё быстрее. Запрос стал быстрее, потому что функция точно быстрее страшного выражения с регекспом :)

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
я просто в докерконтейнере не вижу таких файлов. проверю еще раз

Страница 55 из 723